summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/code_80428A0.s1346
-rw-r--r--asm/code_8044210.s1329
-rw-r--r--asm/code_8049590.s4
-rw-r--r--asm/code_8057824.s4
-rw-r--r--asm/code_80701A4.s985
-rw-r--r--asm/code_807034C.s970
-rw-r--r--asm/code_8070E3C.s (renamed from asm/code_8070D04.s)113
-rw-r--r--asm/code_80718D8.s2
8 files changed, 2309 insertions, 2444 deletions
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index bb4e09e..5febc6a 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -2853,1348 +2853,4 @@ _080441E2:
bx r1
thumb_func_end IsBossBattle
- thumb_func_start IsFixedDungeon
-IsFixedDungeon:
- push {lr}
- ldr r0, _08044200
- ldr r0, [r0]
- ldr r1, _08044204
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x3F
- bgt _08044208
- movs r0, 0
- b _0804420A
- .align 2, 0
-_08044200: .4byte gDungeonGlobalData
-_08044204: .4byte 0x00003a0e
-_08044208:
- movs r0, 0x1
-_0804420A:
- pop {r1}
- bx r1
- thumb_func_end IsFixedDungeon
-
- thumb_func_start sub_8044210
-sub_8044210:
- push {lr}
- ldr r0, _0804422C
- ldr r0, [r0]
- ldr r1, _08044230
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bls _08044234
- movs r0, 0
- b _08044236
- .align 2, 0
-_0804422C: .4byte gDungeonGlobalData
-_08044230: .4byte 0x00000644
-_08044234:
- movs r0, 0x1
-_08044236:
- pop {r1}
- bx r1
- thumb_func_end sub_8044210
-
- thumb_func_start RunDungeon
-RunDungeon:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044994
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- adds r0, r4, 0
- bl xxx_dungeon_80442D0
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- cmp r4, 0
- beq _08044280
- bl sub_807E378
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
-_08044280:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044574
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044820
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080442C6
- bl sub_8044AB4
- ldr r0, _080442CC
- ldr r0, [r0]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r0, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080442C6
- strh r4, [r1]
-_080442C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080442CC: .4byte gDungeonGlobalData
- thumb_func_end RunDungeon
-
- thumb_func_start xxx_dungeon_80442D0
-xxx_dungeon_80442D0:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl GetLeaderEntity
- adds r5, r0, 0
- cmp r5, 0
- beq _0804431A
- bl TriggerWeatherAbilities
- adds r0, r5, 0
- bl GetMovementSpeed
- ldr r3, _08044320
- ldr r1, _08044324
- ldr r1, [r1]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0804431A
- ldr r0, [r5, 0x70]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08044328
-_0804431A:
- movs r0, 0
- b _0804444E
- .align 2, 0
-_08044320: .4byte gSpeedTurns
-_08044324: .4byte gDungeonGlobalData
-_08044328:
- bl GetLeaderEntity
- adds r5, r0, 0
- cmp r5, 0
- beq _0804431A
- movs r0, 0
- bl UseAttack
- lsls r0, 24
- cmp r0, 0
- bne _0804435C
- ldr r0, _08044388
- ldr r1, [r0]
- ldr r2, _0804438C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08044356
- ldr r3, _08044390
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804435C
-_08044356:
- movs r0, 0xC
- bl sub_803E46C
-_0804435C:
- ldr r0, [r5, 0x70]
- adds r0, 0xF8
- movs r1, 0
- strb r1, [r0]
- bl sub_8044B28
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0804431A
- ldr r0, _08044388
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xB8
- str r5, [r0]
- adds r1, 0xBC
- str r2, [r1]
- cmp r7, 0
- beq _08044394
- movs r7, 0
- b _0804439A
- .align 2, 0
-_08044388: .4byte gDungeonGlobalData
-_0804438C: .4byte 0x0000066c
-_08044390: .4byte 0x00000673
-_08044394:
- adds r0, r5, 0
- bl TickStatusHeal
-_0804439A:
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804431A
- adds r0, r5, 0
- bl sub_8071DA4
- ldr r6, _08044434
- ldr r1, [r6]
- movs r0, 0x1
- strb r0, [r1, 0xF]
- bl sub_805D8C8
- ldr r0, [r6]
- strb r4, [r0, 0xF]
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- adds r0, r5, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- ldr r2, [r5, 0x70]
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08044400
- subs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- movs r3, 0x80
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
-_08044400:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- bl sub_8044454
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804444C
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBC
- ldr r1, [r0]
- cmp r1, 0
- beq _08044438
- bl sub_805F02C
- ldr r0, [r6]
- adds r0, 0xBC
- str r4, [r0]
- movs r7, 0x1
- b _08044328
- .align 2, 0
-_08044434: .4byte gDungeonGlobalData
-_08044438:
- ldr r0, [r5, 0x70]
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804444C
- movs r3, 0xCC
- lsls r3, 3
- adds r0, r2, r3
- strh r1, [r0]
- b _08044328
-_0804444C:
- movs r0, 0x1
-_0804444E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end xxx_dungeon_80442D0
-
- thumb_func_start sub_8044454
-sub_8044454:
- push {r4-r6,lr}
- ldr r0, _080444E8
- ldr r1, [r0]
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- beq _080444E2
- movs r0, 0
- strb r0, [r1, 0xE]
- movs r6, 0
-_08044466:
- ldr r0, _080444E8
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _080444EC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080444DC
- ldr r5, [r4, 0x70]
- ldrh r0, [r5]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080444DC
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080444E2
- adds r0, r4, 0
- bl TickStatusHeal
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080444DC
- adds r0, r4, 0
- bl sub_8071DA4
- adds r0, r4, 0
- movs r1, 0
- bl DecideAction
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- ldrh r0, [r5]
- ldr r2, _080444F0
- adds r1, r2, 0
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- adds r1, r2, 0
- orrs r0, r1
- strh r0, [r5]
-_080444DC:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08044466
-_080444E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080444E8: .4byte gDungeonGlobalData
-_080444EC: .4byte 0x000135cc
-_080444F0: .4byte 0x00007fff
- thumb_func_end sub_8044454
-
- thumb_func_start sub_80444F4
-sub_80444F4:
- push {r4-r6,lr}
- adds r6, r0, 0
- bl GetLeaderEntity
- cmp r6, r0
- bne _08044566
- ldr r0, _0804456C
- ldr r1, [r0]
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- beq _08044566
- movs r0, 0
- strb r0, [r1, 0xE]
- movs r5, 0
-_08044510:
- ldr r0, _0804456C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08044570
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044560
- cmp r6, r4
- beq _08044560
- ldr r0, [r4, 0x70]
- ldrh r0, [r0]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08044560
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044566
- adds r0, r4, 0
- movs r1, 0
- bl DecideAction
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
-_08044560:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08044510
-_08044566:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804456C: .4byte gDungeonGlobalData
-_08044570: .4byte 0x000135cc
- thumb_func_end sub_80444F4
-
- thumb_func_start sub_8044574
-sub_8044574:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- bl GetLeaderEntity
- mov r10, r0
- movs r7, 0
- mov r0, sp
- adds r0, 0x4
- str r0, [sp, 0x40]
- ldr r1, _08044634
- mov r9, r1
-_08044592:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- ldr r3, _08044638
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- ldr r6, [r5, 0x70]
- mov r8, r6
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080446A4
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080446AC
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xB8
- str r5, [r0]
- bl TriggerWeatherAbilities
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r6, r2
- strb r4, [r0]
- adds r0, r5, 0
- bl GetMovementSpeed
- mov r3, r9
- ldr r1, [r3]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- ldr r0, _0804463C
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080446A4
- movs r3, 0xA4
- lsls r3, 1
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080446A4
- ldrh r1, [r6]
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080446A4
- movs r3, 0x80
- lsls r3, 7
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08044644
- ldr r2, _08044640
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r6]
- b _080446A4
- .align 2, 0
-_08044634: .4byte gDungeonGlobalData
-_08044638: .4byte 0x0001357c
-_0804463C: .4byte gSpeedTurns
-_08044640: .4byte 0x0000bfff
-_08044644:
- ldr r1, _08044668
- add r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- bl TickStatusHeal
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- adds r0, r5, 0
- bl sub_8071DA4
- movs r4, 0
- b _0804466E
- .align 2, 0
-_08044668: .4byte 0x00000145
-_0804466C:
- adds r4, 0x1
-_0804466E:
- cmp r4, 0x2
- bgt _080446A4
- adds r0, r5, 0
- movs r1, 0
- bl DecideAction
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080446A4
- adds r0, r5, 0
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0804466C
-_080446A4:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080446AC
- b _08044592
-_080446AC:
- movs r0, 0
- mov r8, r0
-_080446B0:
- adds r0, 0x1
- mov r9, r0
- add r2, sp, 0x8
- ldr r1, [sp, 0x40]
- mov r0, sp
- movs r7, 0x2
-_080446BC:
- mov r3, r8
- str r3, [r0]
- str r2, [r1]
- adds r2, 0x8
- adds r1, 0x8
- adds r0, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _080446BC
- str r3, [sp, 0x18]
- str r3, [sp, 0x1C]
- movs r7, 0
-_080446D4:
- ldr r0, _08044710
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08044714
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044760
- ldr r1, [r4, 0x70]
- movs r3, 0xA2
- lsls r3, 1
- adds r2, r1, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _08044760
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- beq _08044718
- adds r3, 0x1
- adds r0, r1, r3
- mov r1, r8
- strb r1, [r0]
- strb r1, [r2]
- b _08044760
- .align 2, 0
-_08044710: .4byte gDungeonGlobalData
-_08044714: .4byte 0x0001357c
-_08044718:
- mov r2, r10
- movs r3, 0x4
- ldrsh r1, [r2, r3]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- subs r2, r1, r0
- cmp r2, 0
- bge _0804472A
- negs r2, r2
-_0804472A:
- mov r3, r10
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- subs r1, r0
- cmp r1, 0
- bge _0804473C
- negs r1, r1
-_0804473C:
- cmp r1, r2
- bge _08044742
- adds r1, r2, 0
-_08044742:
- cmp r1, 0x2
- ble _08044748
- movs r1, 0x2
-_08044748:
- add r3, sp, 0x20
- lsls r0, r7, 3
- adds r3, r0
- str r4, [r3]
- add r2, sp, 0x24
- adds r2, r0
- lsls r1, 3
- ldr r0, [sp, 0x40]
- adds r1, r0, r1
- ldr r0, [r1]
- str r0, [r2]
- str r3, [r1]
-_08044760:
- adds r7, 0x1
- cmp r7, 0x3
- ble _080446D4
- mov r5, sp
- movs r6, 0
-_0804476A:
- ldr r4, [r5]
- cmp r4, 0
- beq _080447A0
- ldr r1, [r4, 0x70]
- ldr r3, _08044814
- adds r2, r1, r3
- movs r0, 0x1
- strb r0, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r1, r2
- strb r6, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl DecideAction
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- adds r0, r4, 0
- bl EntityExists
-_080447A0:
- ldr r5, [r5, 0x4]
- cmp r5, 0
- bne _0804476A
- mov r0, r9
- cmp r0, 0x2
- ble _080446B0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044802
- movs r7, 0
-_080447B8:
- ldr r0, _08044818
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r3, _0804481C
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080447FC
- ldr r0, [r4, 0x70]
- movs r1, 0xA2
- lsls r1, 1
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0
- beq _080447FC
- adds r0, r4, 0
- bl sub_8074094
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080447FC
- adds r0, r4, 0
- bl sub_8071DA4
- movs r0, 0
- strb r0, [r5]
-_080447FC:
- adds r7, 0x1
- cmp r7, 0x3
- ble _080447B8
-_08044802:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044814: .4byte 0x00000145
-_08044818: .4byte gDungeonGlobalData
-_0804481C: .4byte 0x0001357c
- thumb_func_end sub_8044574
-
- thumb_func_start sub_8044820
-sub_8044820:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _08044830
- mov r8, r0
- b _080448FC
- .align 2, 0
-_08044830: .4byte gSpeedTurns
-_08044834:
- ldr r4, [r5, 0x70]
- ldr r0, [r6]
- adds r0, 0xB8
- str r5, [r0]
- bl TriggerWeatherAbilities
- ldrh r2, [r4]
- movs r1, 0x80
- lsls r1, 8
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _080448FA
- movs r1, 0x80
- lsls r1, 7
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0804486C
- ldr r1, _08044868
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r4]
- b _080448FA
- .align 2, 0
-_08044868: .4byte 0x0000bfff
-_0804486C:
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl GetMovementSpeed
- ldr r1, [r6]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- add r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080448FA
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080448FA
- ldrh r1, [r4]
- ldr r2, _08044984
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0
- strh r1, [r4]
- ldr r2, _08044988
- adds r1, r4, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl TickStatusHeal
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080448FA
- adds r0, r5, 0
- bl sub_8071DA4
- adds r0, r5, 0
- movs r1, 0
- bl DecideAction
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044924
- adds r0, r5, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044924
-_080448FA:
- adds r7, 0x1
-_080448FC:
- cmp r7, 0xF
- bgt _08044924
- ldr r6, _0804498C
- ldr r0, [r6]
- lsls r1, r7, 2
- ldr r2, _08044990
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080448FA
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08044834
-_08044924:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804497A
- movs r7, 0
-_08044930:
- ldr r0, _0804498C
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08044990
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044974
- ldr r0, [r4, 0x70]
- movs r1, 0xA2
- lsls r1, 1
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0
- beq _08044974
- adds r0, r4, 0
- bl sub_8074094
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044974
- adds r0, r4, 0
- bl sub_8071DA4
- movs r0, 0
- strb r0, [r5]
-_08044974:
- adds r7, 0x1
- cmp r7, 0xF
- ble _08044930
-_0804497A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044984: .4byte 0x00003fff
-_08044988: .4byte 0x00000145
-_0804498C: .4byte gDungeonGlobalData
-_08044990: .4byte 0x0001358c
- thumb_func_end sub_8044820
-
- thumb_func_start sub_8044994
-sub_8044994:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08044A94
- ldr r4, _08044A98
- ldr r0, [r4]
- movs r2, 0xCC
- lsls r2, 3
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 1
- adds r1, 0x32
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08044A8A
- bl sub_8071B48
- ldr r0, [r4]
- ldr r2, _08044A9C
- adds r0, r2
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r4]
- ldr r3, _08044AA0
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r4]
- ldr r1, _08044AA4
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- adds r3, 0x2
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r4]
- ldr r3, _08044AA8
- adds r1, r0, r3
- str r2, [r1]
- ldr r1, _08044AAC
- adds r0, r1
- movs r1, 0x2
- str r1, [r0]
- mov r8, r2
- adds r7, r4, 0
-_080449F2:
- ldr r0, [r7]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08044AB0
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044A7A
- ldr r0, [r5, 0x70]
- adds r4, r0, 0
- movs r0, 0xA4
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldrb r0, [r4, 0x6]
- movs r6, 0x1
- cmp r0, 0
- beq _08044A24
- movs r6, 0
-_08044A24:
- adds r0, r5, 0
- movs r1, 0x32
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08044A46
- ldr r1, [r7]
- ldr r2, _08044AA8
- adds r0, r1, r2
- str r5, [r0]
- ldr r3, _08044AAC
- adds r1, r3
- adds r0, r4, 0
- adds r0, 0x98
- ldr r0, [r0]
- str r0, [r1]
-_08044A46:
- adds r0, r5, 0
- movs r1, 0x3F
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08044A60
- ldr r0, [r7]
- ldr r1, _08044AA4
- adds r0, r1
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
-_08044A60:
- adds r0, r5, 0
- movs r1, 0x38
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08044A7A
- ldr r0, [r7]
- ldr r2, _08044A9C
- adds r0, r2
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
-_08044A7A:
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x13
- ble _080449F2
- movs r0, 0
- bl sub_8043ED0
-_08044A8A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044A94: .4byte gSpeedTurns
-_08044A98: .4byte gDungeonGlobalData
-_08044A9C: .4byte 0x000037f8
-_08044AA0: .4byte 0x000037f9
-_08044AA4: .4byte 0x000037fa
-_08044AA8: .4byte 0x00017b2c
-_08044AAC: .4byte 0x00017b38
-_08044AB0: .4byte 0x000135cc
- thumb_func_end sub_8044994
-
- thumb_func_start sub_8044AB4
-sub_8044AB4:
- push {r4,lr}
- ldr r1, _08044ADC
- ldr r0, _08044AE0
- ldr r0, [r0]
- movs r2, 0xCC
- lsls r2, 3
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r1, 0x32
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08044B1A
- movs r4, 0
- b _08044AE6
- .align 2, 0
-_08044ADC: .4byte gSpeedTurns
-_08044AE0: .4byte gDungeonGlobalData
-_08044AE4:
- adds r4, 0x1
-_08044AE6:
- cmp r4, 0x13
- bgt _08044B08
- ldr r0, _08044B20
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _08044B24
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08044AE4
- movs r0, 0
- bl UseAttack
-_08044B08:
- movs r0, 0x1
- movs r1, 0
- bl sub_807EAA0
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
-_08044B1A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044B20: .4byte gDungeonGlobalData
-_08044B24: .4byte 0x000135cc
- thumb_func_end sub_8044AB4
-
- thumb_func_start sub_8044B28
-sub_8044B28:
- push {r4,lr}
- ldr r4, _08044B48
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08044B76
- bl GetLeaderEntity
- cmp r0, 0
- bne _08044B50
- ldr r0, [r4]
- ldr r1, _08044B4C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08044B76
- .align 2, 0
-_08044B48: .4byte gDungeonGlobalData
-_08044B4C: .4byte 0x00000654
-_08044B50:
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- cmp r2, 0x1
- bne _08044B68
- ldr r2, _08044B64
- adds r1, r0, r2
- movs r0, 0x2
- strb r0, [r1]
- b _08044B76
- .align 2, 0
-_08044B64: .4byte 0x00000654
-_08044B68:
- cmp r2, 0x2
- beq _08044B70
- movs r0, 0
- b _08044B78
-_08044B70:
- ldr r1, _08044B80
- adds r0, r1
- strb r2, [r0]
-_08044B76:
- movs r0, 0x1
-_08044B78:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08044B80: .4byte 0x00000654
- thumb_func_end sub_8044B28
-
- thumb_func_start sub_8044B84
-sub_8044B84:
- push {lr}
- ldr r0, _08044B9C
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _08044BA0
- bl sub_8044B28
- lsls r0, 24
- lsrs r0, 24
- b _08044BA2
- .align 2, 0
-_08044B9C: .4byte gDungeonGlobalData
-_08044BA0:
- movs r0, 0x1
-_08044BA2:
- pop {r1}
- bx r1
- thumb_func_end sub_8044B84
-
- thumb_func_start sub_8044BA8
-sub_8044BA8:
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0x26
- bne _08044BCC
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08044BCC
- ldr r0, _08044BC8
- b _08044C02
- .align 2, 0
-_08044BC8: .4byte gUnknown_80F91EC
-_08044BCC:
- ldr r1, _08044BEC
- lsls r0, r4, 3
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r1, _08044BF0
- bl strcmp
- cmp r0, 0
- beq _08044BE0
- movs r0, 0x1
-_08044BE0:
- lsls r0, 24
- cmp r0, 0
- beq _08044BF4
- ldr r0, [r4]
- b _08044C04
- .align 2, 0
-_08044BEC: .4byte gUnknown_80F7C50
-_08044BF0: .4byte gUnknown_80F697C
-_08044BF4:
- ldr r4, _08044C0C
- adds r0, r5, 0
- bl GetItemCategory
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
-_08044C02:
- ldr r0, [r0]
-_08044C04:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08044C0C: .4byte gActions
- thumb_func_end sub_8044BA8
-
- thumb_func_start sub_8044C10
-sub_8044C10:
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8083654
- adds r2, r0, 0
- adds r1, r2, 0
- adds r1, 0x44
- movs r3, 0
- movs r0, 0
- strh r0, [r1]
- cmp r4, 0
- beq _08044C44
- adds r0, r2, 0
- adds r0, 0x48
- strb r3, [r0]
- adds r0, 0x8
- strb r3, [r0]
- adds r1, 0x14
- ldr r0, _08044C4C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
-_08044C44:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044C4C: .4byte 0x0000ffff
- thumb_func_end sub_8044C10
-
- thumb_func_start sub_8044C50
-sub_8044C50:
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8083654
- adds r2, r0, 0
- adds r0, 0x44
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- adds r0, 0x8
- strb r1, [r0]
- adds r1, r2, 0
- adds r1, 0x58
- ldr r0, _08044C84
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044C84: .4byte 0x0000ffff
- thumb_func_end sub_8044C50
-
- thumb_func_start ResetAction
-ResetAction:
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- strb r2, [r0, 0x4]
- strb r2, [r0, 0xC]
- bx lr
- thumb_func_end ResetAction
-
- .align 2, 0
+ .align 2, 0 \ No newline at end of file
diff --git a/asm/code_8044210.s b/asm/code_8044210.s
new file mode 100644
index 0000000..282af3b
--- /dev/null
+++ b/asm/code_8044210.s
@@ -0,0 +1,1329 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8044210
+sub_8044210:
+ push {lr}
+ ldr r0, _0804422C
+ ldr r0, [r0]
+ ldr r1, _08044230
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bls _08044234
+ movs r0, 0
+ b _08044236
+ .align 2, 0
+_0804422C: .4byte gDungeonGlobalData
+_08044230: .4byte 0x00000644
+_08044234:
+ movs r0, 0x1
+_08044236:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044210
+
+ thumb_func_start RunDungeon
+RunDungeon:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044994
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ adds r0, r4, 0
+ bl xxx_dungeon_80442D0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ cmp r4, 0
+ beq _08044280
+ bl sub_807E378
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+_08044280:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044574
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044820
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080442C6
+ bl sub_8044AB4
+ ldr r0, _080442CC
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080442C6
+ strh r4, [r1]
+_080442C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080442CC: .4byte gDungeonGlobalData
+ thumb_func_end RunDungeon
+
+ thumb_func_start xxx_dungeon_80442D0
+xxx_dungeon_80442D0:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl GetLeaderEntity
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ bl TriggerWeatherAbilities
+ adds r0, r5, 0
+ bl GetMovementSpeed
+ ldr r3, _08044320
+ ldr r1, _08044324
+ ldr r1, [r1]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0804431A
+ ldr r0, [r5, 0x70]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08044328
+_0804431A:
+ movs r0, 0
+ b _0804444E
+ .align 2, 0
+_08044320: .4byte gSpeedTurns
+_08044324: .4byte gDungeonGlobalData
+_08044328:
+ bl GetLeaderEntity
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ movs r0, 0
+ bl UseAttack
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804435C
+ ldr r0, _08044388
+ ldr r1, [r0]
+ ldr r2, _0804438C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08044356
+ ldr r3, _08044390
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804435C
+_08044356:
+ movs r0, 0xC
+ bl sub_803E46C
+_0804435C:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0804431A
+ ldr r0, _08044388
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ str r5, [r0]
+ adds r1, 0xBC
+ str r2, [r1]
+ cmp r7, 0
+ beq _08044394
+ movs r7, 0
+ b _0804439A
+ .align 2, 0
+_08044388: .4byte gDungeonGlobalData
+_0804438C: .4byte 0x0000066c
+_08044390: .4byte 0x00000673
+_08044394:
+ adds r0, r5, 0
+ bl TickStatusHeal
+_0804439A:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804431A
+ adds r0, r5, 0
+ bl sub_8071DA4
+ ldr r6, _08044434
+ ldr r1, [r6]
+ movs r0, 0x1
+ strb r0, [r1, 0xF]
+ bl sub_805D8C8
+ ldr r0, [r6]
+ strb r4, [r0, 0xF]
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ ldr r2, [r5, 0x70]
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044400
+ subs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+_08044400:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ bl sub_8044454
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804444C
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xBC
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _08044438
+ bl sub_805F02C
+ ldr r0, [r6]
+ adds r0, 0xBC
+ str r4, [r0]
+ movs r7, 0x1
+ b _08044328
+ .align 2, 0
+_08044434: .4byte gDungeonGlobalData
+_08044438:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804444C
+ movs r3, 0xCC
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _08044328
+_0804444C:
+ movs r0, 0x1
+_0804444E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_dungeon_80442D0
+
+ thumb_func_start sub_8044454
+sub_8044454:
+ push {r4-r6,lr}
+ ldr r0, _080444E8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _080444E2
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r6, 0
+_08044466:
+ ldr r0, _080444E8
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _080444EC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ ldr r5, [r4, 0x70]
+ ldrh r0, [r5]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080444DC
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080444E2
+ adds r0, r4, 0
+ bl TickStatusHeal
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ adds r0, r4, 0
+ movs r1, 0
+ bl DecideAction
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ ldrh r0, [r5]
+ ldr r2, _080444F0
+ adds r1, r2, 0
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r5]
+_080444DC:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08044466
+_080444E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080444E8: .4byte gDungeonGlobalData
+_080444EC: .4byte 0x000135cc
+_080444F0: .4byte 0x00007fff
+ thumb_func_end sub_8044454
+
+ thumb_func_start sub_80444F4
+sub_80444F4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl GetLeaderEntity
+ cmp r6, r0
+ bne _08044566
+ ldr r0, _0804456C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _08044566
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r5, 0
+_08044510:
+ ldr r0, _0804456C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08044570
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044560
+ cmp r6, r4
+ beq _08044560
+ ldr r0, [r4, 0x70]
+ ldrh r0, [r0]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044560
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044566
+ adds r0, r4, 0
+ movs r1, 0
+ bl DecideAction
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044560:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08044510
+_08044566:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804456C: .4byte gDungeonGlobalData
+_08044570: .4byte 0x000135cc
+ thumb_func_end sub_80444F4
+
+ thumb_func_start sub_8044574
+sub_8044574:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ bl GetLeaderEntity
+ mov r10, r0
+ movs r7, 0
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x40]
+ ldr r1, _08044634
+ mov r9, r1
+_08044592:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ ldr r3, _08044638
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ ldr r6, [r5, 0x70]
+ mov r8, r6
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080446A4
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080446AC
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl TriggerWeatherAbilities
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r6, r2
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl GetMovementSpeed
+ mov r3, r9
+ ldr r1, [r3]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _0804463C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080446A4
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080446A4
+ ldrh r1, [r6]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080446A4
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08044644
+ ldr r2, _08044640
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r6]
+ b _080446A4
+ .align 2, 0
+_08044634: .4byte gDungeonGlobalData
+_08044638: .4byte 0x0001357c
+_0804463C: .4byte gSpeedTurns
+_08044640: .4byte 0x0000bfff
+_08044644:
+ ldr r1, _08044668
+ add r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl TickStatusHeal
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ adds r0, r5, 0
+ bl sub_8071DA4
+ movs r4, 0
+ b _0804466E
+ .align 2, 0
+_08044668: .4byte 0x00000145
+_0804466C:
+ adds r4, 0x1
+_0804466E:
+ cmp r4, 0x2
+ bgt _080446A4
+ adds r0, r5, 0
+ movs r1, 0
+ bl DecideAction
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080446A4
+ adds r0, r5, 0
+ bl sub_8072CF4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804466C
+_080446A4:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080446AC
+ b _08044592
+_080446AC:
+ movs r0, 0
+ mov r8, r0
+_080446B0:
+ adds r0, 0x1
+ mov r9, r0
+ add r2, sp, 0x8
+ ldr r1, [sp, 0x40]
+ mov r0, sp
+ movs r7, 0x2
+_080446BC:
+ mov r3, r8
+ str r3, [r0]
+ str r2, [r1]
+ adds r2, 0x8
+ adds r1, 0x8
+ adds r0, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080446BC
+ str r3, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ movs r7, 0
+_080446D4:
+ ldr r0, _08044710
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044714
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044760
+ ldr r1, [r4, 0x70]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08044760
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _08044718
+ adds r3, 0x1
+ adds r0, r1, r3
+ mov r1, r8
+ strb r1, [r0]
+ strb r1, [r2]
+ b _08044760
+ .align 2, 0
+_08044710: .4byte gDungeonGlobalData
+_08044714: .4byte 0x0001357c
+_08044718:
+ mov r2, r10
+ movs r3, 0x4
+ ldrsh r1, [r2, r3]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _0804472A
+ negs r2, r2
+_0804472A:
+ mov r3, r10
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _0804473C
+ negs r1, r1
+_0804473C:
+ cmp r1, r2
+ bge _08044742
+ adds r1, r2, 0
+_08044742:
+ cmp r1, 0x2
+ ble _08044748
+ movs r1, 0x2
+_08044748:
+ add r3, sp, 0x20
+ lsls r0, r7, 3
+ adds r3, r0
+ str r4, [r3]
+ add r2, sp, 0x24
+ adds r2, r0
+ lsls r1, 3
+ ldr r0, [sp, 0x40]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ str r0, [r2]
+ str r3, [r1]
+_08044760:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080446D4
+ mov r5, sp
+ movs r6, 0
+_0804476A:
+ ldr r4, [r5]
+ cmp r4, 0
+ beq _080447A0
+ ldr r1, [r4, 0x70]
+ ldr r3, _08044814
+ adds r2, r1, r3
+ movs r0, 0x1
+ strb r0, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r1, r2
+ strb r6, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl DecideAction
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ adds r0, r4, 0
+ bl EntityExists
+_080447A0:
+ ldr r5, [r5, 0x4]
+ cmp r5, 0
+ bne _0804476A
+ mov r0, r9
+ cmp r0, 0x2
+ ble _080446B0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044802
+ movs r7, 0
+_080447B8:
+ ldr r0, _08044818
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r3, _0804481C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_080447FC:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080447B8
+_08044802:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044814: .4byte 0x00000145
+_08044818: .4byte gDungeonGlobalData
+_0804481C: .4byte 0x0001357c
+ thumb_func_end sub_8044574
+
+ thumb_func_start sub_8044820
+sub_8044820:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _08044830
+ mov r8, r0
+ b _080448FC
+ .align 2, 0
+_08044830: .4byte gSpeedTurns
+_08044834:
+ ldr r4, [r5, 0x70]
+ ldr r0, [r6]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl TriggerWeatherAbilities
+ ldrh r2, [r4]
+ movs r1, 0x80
+ lsls r1, 8
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _080448FA
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0804486C
+ ldr r1, _08044868
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r4]
+ b _080448FA
+ .align 2, 0
+_08044868: .4byte 0x0000bfff
+_0804486C:
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl GetMovementSpeed
+ ldr r1, [r6]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080448FA
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080448FA
+ ldrh r1, [r4]
+ ldr r2, _08044984
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0
+ strh r1, [r4]
+ ldr r2, _08044988
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl TickStatusHeal
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ adds r0, r5, 0
+ bl sub_8071DA4
+ adds r0, r5, 0
+ movs r1, 0
+ bl DecideAction
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+_080448FA:
+ adds r7, 0x1
+_080448FC:
+ cmp r7, 0xF
+ bgt _08044924
+ ldr r6, _0804498C
+ ldr r0, [r6]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044834
+_08044924:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804497A
+ movs r7, 0
+_08044930:
+ ldr r0, _0804498C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_08044974:
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _08044930
+_0804497A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044984: .4byte 0x00003fff
+_08044988: .4byte 0x00000145
+_0804498C: .4byte gDungeonGlobalData
+_08044990: .4byte 0x0001358c
+ thumb_func_end sub_8044820
+
+ thumb_func_start sub_8044994
+sub_8044994:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08044A94
+ ldr r4, _08044A98
+ ldr r0, [r4]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044A8A
+ bl sub_8071B48
+ ldr r0, [r4]
+ ldr r2, _08044A9C
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA0
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r1, _08044AA4
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r3, 0x2
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA8
+ adds r1, r0, r3
+ str r2, [r1]
+ ldr r1, _08044AAC
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [r0]
+ mov r8, r2
+ adds r7, r4, 0
+_080449F2:
+ ldr r0, [r7]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08044AB0
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r5, 0x70]
+ adds r4, r0, 0
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r4, 0x6]
+ movs r6, 0x1
+ cmp r0, 0
+ beq _08044A24
+ movs r6, 0
+_08044A24:
+ adds r0, r5, 0
+ movs r1, 0x32
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A46
+ ldr r1, [r7]
+ ldr r2, _08044AA8
+ adds r0, r1, r2
+ str r5, [r0]
+ ldr r3, _08044AAC
+ adds r1, r3
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ str r0, [r1]
+_08044A46:
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A60
+ ldr r0, [r7]
+ ldr r1, _08044AA4
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A60:
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r7]
+ ldr r2, _08044A9C
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A7A:
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x13
+ ble _080449F2
+ movs r0, 0
+ bl sub_8043ED0
+_08044A8A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044A94: .4byte gSpeedTurns
+_08044A98: .4byte gDungeonGlobalData
+_08044A9C: .4byte 0x000037f8
+_08044AA0: .4byte 0x000037f9
+_08044AA4: .4byte 0x000037fa
+_08044AA8: .4byte 0x00017b2c
+_08044AAC: .4byte 0x00017b38
+_08044AB0: .4byte 0x000135cc
+ thumb_func_end sub_8044994
+
+ thumb_func_start sub_8044AB4
+sub_8044AB4:
+ push {r4,lr}
+ ldr r1, _08044ADC
+ ldr r0, _08044AE0
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044B1A
+ movs r4, 0
+ b _08044AE6
+ .align 2, 0
+_08044ADC: .4byte gSpeedTurns
+_08044AE0: .4byte gDungeonGlobalData
+_08044AE4:
+ adds r4, 0x1
+_08044AE6:
+ cmp r4, 0x13
+ bgt _08044B08
+ ldr r0, _08044B20
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _08044B24
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044AE4
+ movs r0, 0
+ bl UseAttack
+_08044B08:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_807EAA0
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044B1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044B20: .4byte gDungeonGlobalData
+_08044B24: .4byte 0x000135cc
+ thumb_func_end sub_8044AB4
+
+ thumb_func_start sub_8044B28
+sub_8044B28:
+ push {r4,lr}
+ ldr r4, _08044B48
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08044B76
+ bl GetLeaderEntity
+ cmp r0, 0
+ bne _08044B50
+ ldr r0, [r4]
+ ldr r1, _08044B4C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08044B76
+ .align 2, 0
+_08044B48: .4byte gDungeonGlobalData
+_08044B4C: .4byte 0x00000654
+_08044B50:
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x1
+ bne _08044B68
+ ldr r2, _08044B64
+ adds r1, r0, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08044B76
+ .align 2, 0
+_08044B64: .4byte 0x00000654
+_08044B68:
+ cmp r2, 0x2
+ beq _08044B70
+ movs r0, 0
+ b _08044B78
+_08044B70:
+ ldr r1, _08044B80
+ adds r0, r1
+ strb r2, [r0]
+_08044B76:
+ movs r0, 0x1
+_08044B78:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044B80: .4byte 0x00000654
+ thumb_func_end sub_8044B28
+
+ thumb_func_start sub_8044B84
+sub_8044B84:
+ push {lr}
+ ldr r0, _08044B9C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08044BA0
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r0, 24
+ b _08044BA2
+ .align 2, 0
+_08044B9C: .4byte gDungeonGlobalData
+_08044BA0:
+ movs r0, 0x1
+_08044BA2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044B84
+
+ thumb_func_start sub_8044BA8
+sub_8044BA8:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0x26
+ bne _08044BCC
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08044BCC
+ ldr r0, _08044BC8
+ b _08044C02
+ .align 2, 0
+_08044BC8: .4byte gUnknown_80F91EC
+_08044BCC:
+ ldr r1, _08044BEC
+ lsls r0, r4, 3
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r1, _08044BF0
+ bl strcmp
+ cmp r0, 0
+ beq _08044BE0
+ movs r0, 0x1
+_08044BE0:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044BF4
+ ldr r0, [r4]
+ b _08044C04
+ .align 2, 0
+_08044BEC: .4byte gUnknown_80F7C50
+_08044BF0: .4byte gUnknown_80F697C
+_08044BF4:
+ ldr r4, _08044C0C
+ adds r0, r5, 0
+ bl GetItemCategory
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+_08044C02:
+ ldr r0, [r0]
+_08044C04:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044C0C: .4byte gActions
+ thumb_func_end sub_8044BA8
+
+ thumb_func_start sub_8044C10
+sub_8044C10:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r1, r2, 0
+ adds r1, 0x44
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r1]
+ cmp r4, 0
+ beq _08044C44
+ adds r0, r2, 0
+ adds r0, 0x48
+ strb r3, [r0]
+ adds r0, 0x8
+ strb r3, [r0]
+ adds r1, 0x14
+ ldr r0, _08044C4C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+_08044C44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C4C: .4byte 0x0000ffff
+ thumb_func_end sub_8044C10
+
+ thumb_func_start sub_8044C50
+sub_8044C50:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r0, 0x44
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ adds r0, 0x8
+ strb r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x58
+ ldr r0, _08044C84
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C84: .4byte 0x0000ffff
+ thumb_func_end sub_8044C50
+
+ thumb_func_start ResetAction
+ResetAction:
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ strb r2, [r0, 0x4]
+ strb r2, [r0, 0xC]
+ bx lr
+ thumb_func_end ResetAction
+
+ .align 2, 0
diff --git a/asm/code_8049590.s b/asm/code_8049590.s
index 846f24c..07f51c4 100644
--- a/asm/code_8049590.s
+++ b/asm/code_8049590.s
@@ -4,7 +4,7 @@
.syntax unified
.text
-
+
thumb_func_start GetMapEntity
GetMapEntity:
push {r4,r5,lr}
@@ -292,7 +292,7 @@ _080497F8: .4byte 0x00003a0e
_080497FC: .4byte gDungeonFileArchive
_08049800: .4byte gUnknown_202F18C
_08049804: .4byte gUnknown_202EE8C
-_08049808: .4byte gUnknown_202F314
+_08049808: .4byte gWalkableTileToCrossableTerrain
_0804980C: .4byte gDungeonWaterType
_08049810:
strb r6, [r2, 0x4]
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index 84d3407..2856506 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -12949,7 +12949,7 @@ _0805E0C2:
mov r0, r10
adds r1, r5, 0
str r3, [sp, 0x20]
- bl CanMoveForward2
+ bl CanMoveInDirection
lsls r0, 24
ldr r3, [sp, 0x20]
cmp r0, 0
@@ -14878,7 +14878,7 @@ _0805EFF6:
bne _0805F008
mov r0, r8
adds r1, r4, 0
- bl CanMoveForward2
+ bl CanMoveInDirection
lsls r0, 24
cmp r0, 0
beq _0805F014
diff --git a/asm/code_80701A4.s b/asm/code_80701A4.s
index d8549f9..04b317b 100644
--- a/asm/code_80701A4.s
+++ b/asm/code_80701A4.s
@@ -211,989 +211,4 @@ _08070322:
bx r1
thumb_func_end sub_80701A4
- thumb_func_start GetCrossableTerrain
-GetCrossableTerrain:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl GetWalkableTiles
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _0807033E
- adds r0, r1, 0
- b _08070344
-_0807033E:
- ldr r0, _08070348
- adds r0, r1, r0
- ldrb r0, [r0]
-_08070344:
- pop {r1}
- bx r1
- .align 2, 0
-_08070348: .4byte gUnknown_202F314
- thumb_func_end GetCrossableTerrain
-
- thumb_func_start sub_807034C
-sub_807034C:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r2, r0, 16
- ldr r0, [r4, 0x10]
- cmp r0, 0
- bne _08070398
- ldrh r1, [r4]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08070398
- adds r0, r2, 0
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r2, r0, 24
- ldrh r0, [r4]
- movs r1, 0x3
- ands r1, r0
- cmp r2, 0x1
- beq _08070388
- cmp r2, 0x1
- bgt _08070382
- cmp r2, 0
- beq _0807038C
- b _08070390
-_08070382:
- cmp r2, 0x2
- beq _08070394
- b _08070390
-_08070388:
- cmp r1, 0x2
- beq _08070390
-_0807038C:
- cmp r1, 0x1
- bne _08070398
-_08070390:
- movs r0, 0
- b _0807039A
-_08070394:
- cmp r1, 0
- bne _08070390
-_08070398:
- movs r0, 0x1
-_0807039A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807034C
-
- thumb_func_start sub_80703A0
-sub_80703A0:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r7, [r6, 0x70]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _08070456
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0
- blt _08070456
- cmp r0, 0x37
- bgt _08070456
- cmp r1, 0x1F
- bgt _08070456
- ldr r0, [r5, 0x10]
- cmp r0, 0
- bne _08070456
- ldrh r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08070456
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- bne _08070400
- adds r0, r7, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807044E
- adds r0, r6, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- bne _0807044E
-_08070400:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5]
- movs r5, 0x3
- ands r5, r0
- adds r0, r6, 0
- movs r1, 0xC
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070422
- movs r4, 0x2
-_08070422:
- adds r0, r6, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070432
- movs r4, 0x3
-_08070432:
- cmp r4, 0x1
- beq _08070446
- cmp r4, 0x1
- bgt _08070440
- cmp r4, 0
- beq _0807044A
- b _0807044E
-_08070440:
- cmp r4, 0x2
- beq _08070452
- b _0807044E
-_08070446:
- cmp r5, 0x2
- beq _0807044E
-_0807044A:
- cmp r5, 0x1
- bne _08070456
-_0807044E:
- movs r0, 0
- b _08070458
-_08070452:
- cmp r5, 0
- bne _0807044E
-_08070456:
- movs r0, 0x1
-_08070458:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80703A0
-
- thumb_func_start CanCrossWalls
-CanCrossWalls:
- push {r4,lr}
- adds r1, r0, 0
- ldr r0, [r1, 0x70]
- adds r4, r0, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08070492
- adds r0, r1, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- bne _08070492
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08070492
- movs r0, 0
- b _08070494
-_08070492:
- movs r0, 0x1
-_08070494:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CanCrossWalls
-
- thumb_func_start sub_807049C
-sub_807049C:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r7, [r6, 0x70]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _0807055A
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0
- blt _0807055A
- cmp r0, 0x37
- bgt _0807055A
- cmp r1, 0x1F
- bgt _0807055A
- ldrh r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807055A
- ldr r0, [r5, 0x10]
- cmp r0, 0
- beq _080704E2
- bl GetEntityType
- cmp r0, 0x1
- bne _0807055A
-_080704E2:
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- bne _08070504
- adds r0, r7, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08070552
- adds r0, r6, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- bne _08070552
-_08070504:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5]
- movs r5, 0x3
- ands r5, r0
- adds r0, r6, 0
- movs r1, 0xC
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070526
- movs r4, 0x2
-_08070526:
- adds r0, r6, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070536
- movs r4, 0x3
-_08070536:
- cmp r4, 0x1
- beq _0807054A
- cmp r4, 0x1
- bgt _08070544
- cmp r4, 0
- beq _0807054E
- b _08070552
-_08070544:
- cmp r4, 0x2
- beq _08070556
- b _08070552
-_0807054A:
- cmp r5, 0x2
- beq _08070552
-_0807054E:
- cmp r5, 0x1
- bne _0807055A
-_08070552:
- movs r0, 0
- b _0807055C
-_08070556:
- cmp r5, 0
- bne _08070552
-_0807055A:
- movs r0, 0x1
-_0807055C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807049C
-
- thumb_func_start sub_8070564
-sub_8070564:
- push {r4-r6,lr}
- adds r4, r1, 0
- ldr r6, [r0, 0x70]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _080705E6
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0
- blt _080705E6
- cmp r0, 0x37
- bgt _080705E6
- cmp r1, 0x1F
- bgt _080705E6
- ldrh r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080705E6
- ldr r0, [r5, 0x10]
- cmp r0, 0
- beq _080705A8
- bl GetEntityType
- cmp r0, 0x1
- bne _080705E6
-_080705A8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- ldrh r0, [r5]
- movs r1, 0x3
- ands r1, r0
- adds r0, r1, 0
- cmp r2, 0x1
- beq _080705DE
- cmp r2, 0x1
- bgt _080705CC
- cmp r2, 0
- beq _080705D8
- b _080705D4
-_080705CC:
- cmp r3, 0x3
- bgt _080705D4
- cmp r1, 0
- beq _080705E6
-_080705D4:
- movs r0, 0
- b _080705E8
-_080705D8:
- cmp r1, 0x1
- bne _080705E6
- b _080705D4
-_080705DE:
- cmp r1, 0x2
- beq _080705D4
- cmp r0, 0x1
- beq _080705D4
-_080705E6:
- movs r0, 0x1
-_080705E8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8070564
-
- thumb_func_start sub_80705F0
-sub_80705F0:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r7, [r6, 0x70]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _0807069A
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0
- blt _0807069A
- cmp r0, 0x37
- bgt _0807069A
- cmp r1, 0x1F
- bgt _0807069A
- ldrh r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807069A
- ldr r0, [r5, 0x10]
- cmp r0, 0
- beq _08070636
- bl GetEntityType
- cmp r0, 0x1
- bne _0807069A
-_08070636:
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- bne _08070658
- adds r0, r7, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08070696
- adds r0, r6, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- bne _08070696
-_08070658:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5]
- movs r5, 0x3
- ands r5, r0
- adds r0, r6, 0
- movs r1, 0xC
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807067A
- movs r4, 0x2
-_0807067A:
- adds r0, r6, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807068A
- movs r4, 0x3
-_0807068A:
- cmp r4, 0
- blt _08070696
- cmp r4, 0x2
- bgt _08070696
- cmp r5, 0
- beq _0807069A
-_08070696:
- movs r0, 0
- b _0807069C
-_0807069A:
- movs r0, 0x1
-_0807069C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80705F0
-
- thumb_func_start sub_80706A4
-sub_80706A4:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r6, [r7, 0x70]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _0807076A
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0
- blt _0807076A
- cmp r0, 0x37
- bgt _0807076A
- cmp r1, 0x1F
- bgt _0807076A
- ldrh r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807076A
- ldr r0, [r5, 0x10]
- cmp r0, 0
- beq _080706F2
- bl GetEntityType
- cmp r0, 0x1
- bne _0807076A
- ldr r0, [r5, 0x10]
- ldr r0, [r0, 0x70]
- cmp r0, r6
- bne _0807076A
-_080706F2:
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- bne _08070714
- adds r0, r6, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08070762
- adds r0, r7, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- bne _08070762
-_08070714:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5]
- movs r5, 0x3
- ands r5, r0
- adds r0, r7, 0
- movs r1, 0xC
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070736
- movs r4, 0x2
-_08070736:
- adds r0, r7, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070746
- movs r4, 0x3
-_08070746:
- cmp r4, 0x1
- beq _0807075A
- cmp r4, 0x1
- bgt _08070754
- cmp r4, 0
- beq _0807075E
- b _08070762
-_08070754:
- cmp r4, 0x2
- beq _08070766
- b _08070762
-_0807075A:
- cmp r5, 0x2
- beq _08070762
-_0807075E:
- cmp r5, 0x1
- bne _0807076A
-_08070762:
- movs r0, 0
- b _0807076C
-_08070766:
- cmp r5, 0
- bne _08070762
-_0807076A:
- movs r0, 0x1
-_0807076C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80706A4
-
- thumb_func_start GetMovementSpeed
-GetMovementSpeed:
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, [r6, 0x70]
- movs r4, 0
- movs r0, 0x84
- lsls r0, 1
- adds r1, r5, r0
- movs r2, 0x4
-_08070784:
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _0807078C
- subs r4, 0x1
-_0807078C:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08070794
- adds r4, 0x1
-_08070794:
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08070784
- adds r0, r5, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080707A8
- subs r4, 0x1
-_080707A8:
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl GetMoveSpeed
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0x6
- bl HasType
- lsls r0, 24
- cmp r0, 0
- beq _080707D0
- adds r0, r6, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bne _080707D0
- adds r4, 0x1
-_080707D0:
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- ldr r0, _0807081C
- cmp r1, r0
- bne _080707DC
- adds r4, 0x1
-_080707DC:
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0xBE
- lsls r0, 1
- cmp r1, r0
- bne _080707FE
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- beq _080707FE
- ldr r0, _08070820
- ldr r0, [r0]
- ldr r1, _08070824
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080707FE
- adds r4, 0x1
-_080707FE:
- cmp r4, 0
- bge _08070804
- movs r4, 0
-_08070804:
- cmp r4, 0x4
- ble _0807080A
- movs r4, 0x4
-_0807080A:
- movs r1, 0x82
- lsls r1, 1
- adds r0, r5, r1
- str r4, [r0]
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0807081C: .4byte 0x000001a3
-_08070820: .4byte gDungeonGlobalData
-_08070824: .4byte 0x0000066e
- thumb_func_end GetMovementSpeed
-
- thumb_func_start sub_8070828
-sub_8070828:
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08070840
- movs r0, 0
- b _080708AE
-_08070840:
- adds r0, r4, 0
- movs r1, 0x1B
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807085E
- adds r0, r4, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0807085E
- movs r5, 0x1
-_0807085E:
- adds r0, r4, 0
- movs r1, 0x4A
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807087C
- adds r0, r4, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807087C
- movs r5, 0x1
-_0807087C:
- cmp r6, 0
- beq _080708A0
- ldr r0, [r4, 0x70]
- movs r1, 0x40
- adds r2, r5, 0
- bl SetVisualFlags
- lsls r0, 24
- cmp r0, 0
- beq _080708A0
- adds r0, r4, 0
- bl sub_80429B4
- ldr r0, _080708A8
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
-_080708A0:
- cmp r5, 0
- bne _080708AC
- movs r0, 0x1
- b _080708AE
- .align 2, 0
-_080708A8: .4byte gUnknown_80FEE80
-_080708AC:
- movs r0, 0x2
-_080708AE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8070828
-
- thumb_func_start SetMessageArgument_2
-SetMessageArgument_2:
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- ldr r0, _080708E8
- ldr r2, [r0]
- ldr r5, _080708EC
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080708DC
- adds r5, 0x6
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080708DC
- adds r0, r1, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080708F4
-_080708DC:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _080708F4
- ldr r0, _080708F0
- b _08070900
- .align 2, 0
-_080708E8: .4byte gDungeonGlobalData
-_080708EC: .4byte 0x0001820a
-_080708F0: .4byte gUnknown_80F8988
-_080708F4:
- adds r0, r1, 0
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08070910
- ldr r0, _0807090C
-_08070900:
- ldr r1, [r0]
- adds r0, r3, 0
- bl strcpy
- b _0807095A
- .align 2, 0
-_0807090C: .4byte gUnknown_80F8968
-_08070910:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08070942
- adds r0, r1, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _0807092A
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08070936
-_0807092A:
- movs r0, 0x4
- ldrsh r1, [r1, r0]
- adds r0, r3, 0
- bl CopyYellowSpeciesNametoBuffer
- b _0807095A
-_08070936:
- movs r5, 0x4
- ldrsh r1, [r1, r5]
- adds r0, r3, 0
- bl CopyCyanSpeciesNametoBuffer
- b _0807095A
-_08070942:
- ldr r2, _08070960
- ldrb r1, [r1, 0xA]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070964
- adds r0, r1
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- adds r2, r4, 0
- bl sub_808D9DC
-_0807095A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gRecruitedPokemonRef
-_08070964: .4byte 0x00008df8
- thumb_func_end SetMessageArgument_2
-
- thumb_func_start sub_8070968
-sub_8070968:
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r2, 0
- adds r0, r1, 0
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08070990
- ldr r1, _08070988
- adds r2, 0x30
- ldr r0, _0807098C
- ldr r3, [r0]
- adds r0, r4, 0
- bl ExpandPlaceholdersBuffer
- b _080709BA
- .align 2, 0
-_08070988: .4byte gUnknown_8106FA4
-_0807098C: .4byte gUnknown_80F8974
-_08070990:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _080709A2
- movs r0, 0x4
- ldrsh r1, [r1, r0]
- adds r0, r4, 0
- bl CopyCyanSpeciesNametoBuffer
- b _080709BA
-_080709A2:
- ldr r2, _080709C0
- ldrb r1, [r1, 0xA]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080709C4
- adds r0, r1
- ldr r1, [r2]
- adds r1, r0
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_808D9DC
-_080709BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080709C0: .4byte gRecruitedPokemonRef
-_080709C4: .4byte 0x00008df8
- thumb_func_end sub_8070968
-
- thumb_func_start sub_80709C8
-sub_80709C8:
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080709F8
- ldr r2, [r0]
- ldr r4, _080709FC
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080709EE
- adds r4, 0x6
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080709EE
- adds r0, r1, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08070A04
-_080709EE:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08070A04
- ldr r0, _08070A00
- b _08070A10
- .align 2, 0
-_080709F8: .4byte gDungeonGlobalData
-_080709FC: .4byte 0x0001820a
-_08070A00: .4byte gUnknown_80F8994
-_08070A04:
- adds r0, r1, 0
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08070A20
- ldr r0, _08070A1C
-_08070A10:
- ldr r1, [r0]
- adds r0, r3, 0
- bl strcpy
- b _08070A48
- .align 2, 0
-_08070A1C: .4byte gUnknown_80F8974
-_08070A20:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08070A32
- movs r0, 0x4
- ldrsh r1, [r1, r0]
- adds r0, r3, 0
- bl CopySpeciesNametoBuffer
- b _08070A48
-_08070A32:
- ldr r2, _08070A50
- ldrb r1, [r1, 0xA]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070A54
- adds r0, r1
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- bl sub_808DA0C
-_08070A48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A50: .4byte gRecruitedPokemonRef
-_08070A54: .4byte 0x00008df8
- thumb_func_end sub_80709C8
-
.align 2, 0 \ No newline at end of file
diff --git a/asm/code_807034C.s b/asm/code_807034C.s
new file mode 100644
index 0000000..8ce57cc
--- /dev/null
+++ b/asm/code_807034C.s
@@ -0,0 +1,970 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_807034C
+sub_807034C:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bne _08070398
+ ldrh r1, [r4]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08070398
+ adds r0, r2, 0
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrh r0, [r4]
+ movs r1, 0x3
+ ands r1, r0
+ cmp r2, 0x1
+ beq _08070388
+ cmp r2, 0x1
+ bgt _08070382
+ cmp r2, 0
+ beq _0807038C
+ b _08070390
+_08070382:
+ cmp r2, 0x2
+ beq _08070394
+ b _08070390
+_08070388:
+ cmp r1, 0x2
+ beq _08070390
+_0807038C:
+ cmp r1, 0x1
+ bne _08070398
+_08070390:
+ movs r0, 0
+ b _0807039A
+_08070394:
+ cmp r1, 0
+ bne _08070390
+_08070398:
+ movs r0, 0x1
+_0807039A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807034C
+
+ thumb_func_start sub_80703A0
+sub_80703A0:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ ldr r7, [r6, 0x70]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _08070456
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ blt _08070456
+ cmp r0, 0x37
+ bgt _08070456
+ cmp r1, 0x1F
+ bgt _08070456
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ bne _08070456
+ ldrh r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08070456
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070400
+ adds r0, r7, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0807044E
+ adds r0, r6, 0
+ movs r1, 0x9
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807044E
+_08070400:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5]
+ movs r5, 0x3
+ ands r5, r0
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070422
+ movs r4, 0x2
+_08070422:
+ adds r0, r6, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070432
+ movs r4, 0x3
+_08070432:
+ cmp r4, 0x1
+ beq _08070446
+ cmp r4, 0x1
+ bgt _08070440
+ cmp r4, 0
+ beq _0807044A
+ b _0807044E
+_08070440:
+ cmp r4, 0x2
+ beq _08070452
+ b _0807044E
+_08070446:
+ cmp r5, 0x2
+ beq _0807044E
+_0807044A:
+ cmp r5, 0x1
+ bne _08070456
+_0807044E:
+ movs r0, 0
+ b _08070458
+_08070452:
+ cmp r5, 0
+ bne _0807044E
+_08070456:
+ movs r0, 0x1
+_08070458:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80703A0
+
+ thumb_func_start CanCrossWalls
+CanCrossWalls:
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r0, [r1, 0x70]
+ adds r4, r0, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08070492
+ adds r0, r1, 0
+ movs r1, 0x9
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070492
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08070492
+ movs r0, 0
+ b _08070494
+_08070492:
+ movs r0, 0x1
+_08070494:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CanCrossWalls
+
+ thumb_func_start sub_807049C
+sub_807049C:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ ldr r7, [r6, 0x70]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _0807055A
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ blt _0807055A
+ cmp r0, 0x37
+ bgt _0807055A
+ cmp r1, 0x1F
+ bgt _0807055A
+ ldrh r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0807055A
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080704E2
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807055A
+_080704E2:
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070504
+ adds r0, r7, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08070552
+ adds r0, r6, 0
+ movs r1, 0x9
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070552
+_08070504:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5]
+ movs r5, 0x3
+ ands r5, r0
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070526
+ movs r4, 0x2
+_08070526:
+ adds r0, r6, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070536
+ movs r4, 0x3
+_08070536:
+ cmp r4, 0x1
+ beq _0807054A
+ cmp r4, 0x1
+ bgt _08070544
+ cmp r4, 0
+ beq _0807054E
+ b _08070552
+_08070544:
+ cmp r4, 0x2
+ beq _08070556
+ b _08070552
+_0807054A:
+ cmp r5, 0x2
+ beq _08070552
+_0807054E:
+ cmp r5, 0x1
+ bne _0807055A
+_08070552:
+ movs r0, 0
+ b _0807055C
+_08070556:
+ cmp r5, 0
+ bne _08070552
+_0807055A:
+ movs r0, 0x1
+_0807055C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807049C
+
+ thumb_func_start sub_8070564
+sub_8070564:
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ ldr r6, [r0, 0x70]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _080705E6
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ blt _080705E6
+ cmp r0, 0x37
+ bgt _080705E6
+ cmp r1, 0x1F
+ bgt _080705E6
+ ldrh r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080705E6
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080705A8
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _080705E6
+_080705A8:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ ldrh r0, [r5]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r2, 0x1
+ beq _080705DE
+ cmp r2, 0x1
+ bgt _080705CC
+ cmp r2, 0
+ beq _080705D8
+ b _080705D4
+_080705CC:
+ cmp r3, 0x3
+ bgt _080705D4
+ cmp r1, 0
+ beq _080705E6
+_080705D4:
+ movs r0, 0
+ b _080705E8
+_080705D8:
+ cmp r1, 0x1
+ bne _080705E6
+ b _080705D4
+_080705DE:
+ cmp r1, 0x2
+ beq _080705D4
+ cmp r0, 0x1
+ beq _080705D4
+_080705E6:
+ movs r0, 0x1
+_080705E8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8070564
+
+ thumb_func_start sub_80705F0
+sub_80705F0:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ ldr r7, [r6, 0x70]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _0807069A
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ blt _0807069A
+ cmp r0, 0x37
+ bgt _0807069A
+ cmp r1, 0x1F
+ bgt _0807069A
+ ldrh r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0807069A
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ beq _08070636
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807069A
+_08070636:
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070658
+ adds r0, r7, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08070696
+ adds r0, r6, 0
+ movs r1, 0x9
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070696
+_08070658:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5]
+ movs r5, 0x3
+ ands r5, r0
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807067A
+ movs r4, 0x2
+_0807067A:
+ adds r0, r6, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807068A
+ movs r4, 0x3
+_0807068A:
+ cmp r4, 0
+ blt _08070696
+ cmp r4, 0x2
+ bgt _08070696
+ cmp r5, 0
+ beq _0807069A
+_08070696:
+ movs r0, 0
+ b _0807069C
+_0807069A:
+ movs r0, 0x1
+_0807069C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80705F0
+
+ thumb_func_start sub_80706A4
+sub_80706A4:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ ldr r6, [r7, 0x70]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _0807076A
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ blt _0807076A
+ cmp r0, 0x37
+ bgt _0807076A
+ cmp r1, 0x1F
+ bgt _0807076A
+ ldrh r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0807076A
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080706F2
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807076A
+ ldr r0, [r5, 0x10]
+ ldr r0, [r0, 0x70]
+ cmp r0, r6
+ bne _0807076A
+_080706F2:
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070714
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08070762
+ adds r0, r7, 0
+ movs r1, 0x9
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070762
+_08070714:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ bl GetCrossableTerrain
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5]
+ movs r5, 0x3
+ ands r5, r0
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070736
+ movs r4, 0x2
+_08070736:
+ adds r0, r7, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070746
+ movs r4, 0x3
+_08070746:
+ cmp r4, 0x1
+ beq _0807075A
+ cmp r4, 0x1
+ bgt _08070754
+ cmp r4, 0
+ beq _0807075E
+ b _08070762
+_08070754:
+ cmp r4, 0x2
+ beq _08070766
+ b _08070762
+_0807075A:
+ cmp r5, 0x2
+ beq _08070762
+_0807075E:
+ cmp r5, 0x1
+ bne _0807076A
+_08070762:
+ movs r0, 0
+ b _0807076C
+_08070766:
+ cmp r5, 0
+ bne _08070762
+_0807076A:
+ movs r0, 0x1
+_0807076C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80706A4
+
+ thumb_func_start GetMovementSpeed
+GetMovementSpeed:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, [r6, 0x70]
+ movs r4, 0
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r2, 0x4
+_08070784:
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _0807078C
+ subs r4, 0x1
+_0807078C:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08070794
+ adds r4, 0x1
+_08070794:
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08070784
+ adds r0, r5, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080707A8
+ subs r4, 0x1
+_080707A8:
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl GetMoveSpeed
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl HasType
+ lsls r0, 24
+ cmp r0, 0
+ beq _080707D0
+ adds r0, r6, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bne _080707D0
+ adds r4, 0x1
+_080707D0:
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ ldr r0, _0807081C
+ cmp r1, r0
+ bne _080707DC
+ adds r4, 0x1
+_080707DC:
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0xBE
+ lsls r0, 1
+ cmp r1, r0
+ bne _080707FE
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ beq _080707FE
+ ldr r0, _08070820
+ ldr r0, [r0]
+ ldr r1, _08070824
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080707FE
+ adds r4, 0x1
+_080707FE:
+ cmp r4, 0
+ bge _08070804
+ movs r4, 0
+_08070804:
+ cmp r4, 0x4
+ ble _0807080A
+ movs r4, 0x4
+_0807080A:
+ movs r1, 0x82
+ lsls r1, 1
+ adds r0, r5, r1
+ str r4, [r0]
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807081C: .4byte 0x000001a3
+_08070820: .4byte gDungeonGlobalData
+_08070824: .4byte 0x0000066e
+ thumb_func_end GetMovementSpeed
+
+ thumb_func_start sub_8070828
+sub_8070828:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070840
+ movs r0, 0
+ b _080708AE
+_08070840:
+ adds r0, r4, 0
+ movs r1, 0x1B
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807085E
+ adds r0, r4, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0807085E
+ movs r5, 0x1
+_0807085E:
+ adds r0, r4, 0
+ movs r1, 0x4A
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807087C
+ adds r0, r4, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807087C
+ movs r5, 0x1
+_0807087C:
+ cmp r6, 0
+ beq _080708A0
+ ldr r0, [r4, 0x70]
+ movs r1, 0x40
+ adds r2, r5, 0
+ bl SetVisualFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080708A0
+ adds r0, r4, 0
+ bl sub_80429B4
+ ldr r0, _080708A8
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+_080708A0:
+ cmp r5, 0
+ bne _080708AC
+ movs r0, 0x1
+ b _080708AE
+ .align 2, 0
+_080708A8: .4byte gUnknown_80FEE80
+_080708AC:
+ movs r0, 0x2
+_080708AE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8070828
+
+ thumb_func_start SetMessageArgument_2
+SetMessageArgument_2:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ ldr r0, _080708E8
+ ldr r2, [r0]
+ ldr r5, _080708EC
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080708DC
+ adds r5, 0x6
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080708DC
+ adds r0, r1, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080708F4
+_080708DC:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _080708F4
+ ldr r0, _080708F0
+ b _08070900
+ .align 2, 0
+_080708E8: .4byte gDungeonGlobalData
+_080708EC: .4byte 0x0001820a
+_080708F0: .4byte gUnknown_80F8988
+_080708F4:
+ adds r0, r1, 0
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08070910
+ ldr r0, _0807090C
+_08070900:
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl strcpy
+ b _0807095A
+ .align 2, 0
+_0807090C: .4byte gUnknown_80F8968
+_08070910:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08070942
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _0807092A
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08070936
+_0807092A:
+ movs r0, 0x4
+ ldrsh r1, [r1, r0]
+ adds r0, r3, 0
+ bl CopyYellowSpeciesNametoBuffer
+ b _0807095A
+_08070936:
+ movs r5, 0x4
+ ldrsh r1, [r1, r5]
+ adds r0, r3, 0
+ bl CopyCyanSpeciesNametoBuffer
+ b _0807095A
+_08070942:
+ ldr r2, _08070960
+ ldrb r1, [r1, 0xA]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070964
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r2, r4, 0
+ bl sub_808D9DC
+_0807095A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070960: .4byte gRecruitedPokemonRef
+_08070964: .4byte 0x00008df8
+ thumb_func_end SetMessageArgument_2
+
+ thumb_func_start sub_8070968
+sub_8070968:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r2, 0
+ adds r0, r1, 0
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08070990
+ ldr r1, _08070988
+ adds r2, 0x30
+ ldr r0, _0807098C
+ ldr r3, [r0]
+ adds r0, r4, 0
+ bl ExpandPlaceholdersBuffer
+ b _080709BA
+ .align 2, 0
+_08070988: .4byte gUnknown_8106FA4
+_0807098C: .4byte gUnknown_80F8974
+_08070990:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _080709A2
+ movs r0, 0x4
+ ldrsh r1, [r1, r0]
+ adds r0, r4, 0
+ bl CopyCyanSpeciesNametoBuffer
+ b _080709BA
+_080709A2:
+ ldr r2, _080709C0
+ ldrb r1, [r1, 0xA]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080709C4
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_808D9DC
+_080709BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080709C0: .4byte gRecruitedPokemonRef
+_080709C4: .4byte 0x00008df8
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_80709C8
+sub_80709C8:
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080709F8
+ ldr r2, [r0]
+ ldr r4, _080709FC
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080709EE
+ adds r4, 0x6
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080709EE
+ adds r0, r1, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08070A04
+_080709EE:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08070A04
+ ldr r0, _08070A00
+ b _08070A10
+ .align 2, 0
+_080709F8: .4byte gDungeonGlobalData
+_080709FC: .4byte 0x0001820a
+_08070A00: .4byte gUnknown_80F8994
+_08070A04:
+ adds r0, r1, 0
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08070A20
+ ldr r0, _08070A1C
+_08070A10:
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl strcpy
+ b _08070A48
+ .align 2, 0
+_08070A1C: .4byte gUnknown_80F8974
+_08070A20:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08070A32
+ movs r0, 0x4
+ ldrsh r1, [r1, r0]
+ adds r0, r3, 0
+ bl CopySpeciesNametoBuffer
+ b _08070A48
+_08070A32:
+ ldr r2, _08070A50
+ ldrb r1, [r1, 0xA]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070A54
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_808DA0C
+_08070A48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A50: .4byte gRecruitedPokemonRef
+_08070A54: .4byte 0x00008df8
+ thumb_func_end sub_80709C8
+
+ .align 2, 0 \ No newline at end of file
diff --git a/asm/code_8070D04.s b/asm/code_8070E3C.s
index ce9f343..7af381e 100644
--- a/asm/code_8070D04.s
+++ b/asm/code_8070E3C.s
@@ -1,115 +1,10 @@
#include "asm/constants/gba_constants.inc"
- #include "asm/macros.inc"
+ #include "asm/macros.inc"
- .syntax unified
-
- .text
-
- thumb_func_start CanMoveForward2
-CanMoveForward2:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, [r4, 0x70]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl GetCrossableTerrain
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- ldr r1, _08070DD8
- lsls r2, r6, 2
- adds r2, r1
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r3, 0x6
- ldrsh r1, [r4, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- adds r1, r2
- bl GetMapTileAtPosition
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08070E34
- ldr r0, [r2, 0x10]
- cmp r0, 0
- bne _08070E34
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- bne _08070E04
- ldr r0, [r4, 0x70]
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08070DD2
- adds r0, r4, 0
- movs r1, 0x9
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- beq _08070DDC
-_08070DD2:
- movs r5, 0x3
- b _08070E04
- .align 2, 0
-_08070DD8: .4byte gAdjacentTileOffsets
-_08070DDC:
- adds r0, r4, 0
- movs r1, 0xC
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- bne _08070E02
- adds r0, r4, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08070E04
- movs r0, 0x1
- ands r0, r6
- movs r5, 0x3
- cmp r0, 0
- beq _08070E04
-_08070E02:
- movs r5, 0x2
-_08070E04:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- adds r2, r0, 0
- adds r1, r2, 0
- adds r1, 0xA
- adds r1, r5
- ldr r2, _08070E30
- movs r0, 0x7
- ands r0, r6
- adds r0, r2
- ldrb r1, [r1]
- ldrb r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08070E34
- movs r0, 0x1
- b _08070E36
- .align 2, 0
-_08070E30: .4byte gDirectionBitMasks
-_08070E34:
- movs r0, 0
-_08070E36:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanMoveForward2
+ .syntax unified
+ .text
+
thumb_func_start sub_8070E3C
sub_8070E3C:
push {r4-r7,lr}
diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s
index 4ee7f09..030fd72 100644
--- a/asm/code_80718D8.s
+++ b/asm/code_80718D8.s
@@ -2652,7 +2652,7 @@ _08072F84:
bne _08072FCC
adds r0, r4, 0
adds r1, r3, 0
- bl CanMoveForward2
+ bl CanMoveInDirection
lsls r0, 24
cmp r0, 0
bne _08072FCC