summaryrefslogtreecommitdiff
path: root/asm/code_8057824.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_8057824.s')
-rw-r--r--asm/code_8057824.s6272
1 files changed, 18 insertions, 6254 deletions
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index 2856506..fc57de4 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -1209,7 +1209,7 @@ sub_80582EC:
adds r4, r2, 0
adds r6, r3, 0
adds r1, r4, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _08058328
@@ -1684,7 +1684,7 @@ sub_805867C:
adds r4, r2, 0
adds r6, r3, 0
adds r1, r4, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _080586B8
@@ -2255,7 +2255,7 @@ SkyAttackMoveAction:
mov r8, r0
adds r0, r4, 0
adds r1, r5, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _08058B14
@@ -3847,7 +3847,7 @@ sub_805968C:
beq _080596B6
adds r0, r5, 0
adds r1, r6, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _080596EC
@@ -3972,7 +3972,7 @@ sub_8059790:
adds r4, r2, 0
adds r6, r3, 0
adds r1, r4, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _080597CC
@@ -4077,7 +4077,7 @@ _0805986C: .4byte gUnknown_80FD128
_08059870:
adds r0, r4, 0
adds r1, r5, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _080598A4
@@ -4548,7 +4548,7 @@ _08059BE2:
beq _08059C08
adds r0, r5, 0
adds r1, r4, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
lsls r0, 24
cmp r0, 0
beq _08059C08
@@ -4573,7 +4573,7 @@ _08059C08:
adds r4, r1, r0
ldr r1, [r4]
adds r0, r5, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
adds r1, r7, 0
adds r1, 0x5C
movs r2, 0
@@ -4912,7 +4912,7 @@ _08059E8A:
bne _08059F1A
adds r0, r6, 0
adds r1, r7, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -5002,7 +5002,7 @@ sub_8059F38:
mov r8, r0
adds r0, r4, 0
adds r1, r5, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _08059FA0
@@ -5094,7 +5094,7 @@ _08059FFE:
bne _0805A090
adds r0, r6, 0
adds r1, r7, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -8374,7 +8374,7 @@ SkullBashMoveAction:
adds r4, r2, 0
adds r6, r3, 0
adds r1, r4, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _0805B8EC
@@ -10965,7 +10965,7 @@ CanUseWithStatusChecker_2:
cmp r0, 0x1
bne _0805CEE0
adds r0, r7, 0
- bl GetMoveCannotHitFrozen
+ bl MoveCannotHitFrozen
lsls r0, 24
cmp r0, 0
beq _0805CEE0
@@ -12001,7 +12001,7 @@ _0805D928:
strb r5, [r1, 0x1]
bl GetLeaderEntity
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
bne _0805D976
@@ -12327,7 +12327,7 @@ _0805DBF4: .4byte 0x00000673
_0805DBF8:
mov r0, r10
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _0805DC08
@@ -16024,7 +16024,7 @@ _0805F9A0:
bl sub_80073B8
bl GetLeaderEntity
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _0805F9CC
@@ -30935,7 +30935,7 @@ _0806721C: .4byte gUnknown_80F8BE0
_08067220:
adds r0, r6, 0
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _08067248
@@ -36500,6240 +36500,4 @@ _08069D6C:
bx r0
thumb_func_end sub_8069D4C
- thumb_func_start TargetTileInFront
-TargetTileInFront:
- push {r4,lr}
- ldr r1, [r0, 0x70]
- mov r12, r1
- ldr r3, _08069E08
- mov r4, r12
- adds r4, 0x46
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- movs r2, 0xB6
- lsls r2, 1
- add r2, r12
- strh r1, [r2]
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1, 0x2]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- movs r0, 0xB7
- lsls r0, 1
- add r0, r12
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069E08: .4byte gAdjacentTileOffsets
- thumb_func_end TargetTileInFront
-
- thumb_func_start sub_8069E0C
-sub_8069E0C:
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, [r4, 0x70]
- movs r1, 0x25
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069E44
- adds r0, r4, 0
- bl GetWeather
- ldr r1, _08069E40
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x5C
- movs r2, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r2, [r0]
- adds r6, r5, 0
- adds r6, 0x5E
- b _08069E62
- .align 2, 0
-_08069E40: .4byte gUnknown_80F520C
-_08069E44:
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0x5C
- adds r6, r5, 0
- adds r6, 0x5E
-_08069E4E:
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- adds r1, r4, 0
- bl GetPokemonType
- adds r1, r7, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x1
- ble _08069E4E
-_08069E62:
- movs r4, 0
-_08069E64:
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- adds r1, r4, 0
- bl GetPokemonAbility
- adds r1, r6, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x1
- ble _08069E64
- ldr r0, _08069E88
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xC]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069E88: .4byte gDungeonGlobalData
- thumb_func_end sub_8069E0C
-
- thumb_func_start TriggerWeatherAbilities
-TriggerWeatherAbilities:
- push {r4-r7,lr}
- ldr r3, _08069ED8
- ldr r2, [r3]
- ldrb r0, [r2, 0xC]
- cmp r0, 0
- beq _08069F44
- movs r1, 0
- strb r1, [r2, 0xC]
- ldr r0, [r3]
- ldr r2, _08069EDC
- adds r0, r2
- strb r1, [r0]
- movs r7, 0
- adds r5, r3, 0
- movs r6, 0x1
-_08069EAA:
- ldr r0, [r5]
- lsls r1, r7, 2
- ldr r2, _08069EE0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08069F3E
- adds r0, r4, 0
- movs r1, 0x4
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069EE8
- ldr r0, [r5]
- ldr r1, _08069EE4
- b _08069F16
- .align 2, 0
-_08069ED8: .4byte gDungeonGlobalData
-_08069EDC: .4byte 0x0000e279
-_08069EE0: .4byte 0x000135cc
-_08069EE4: .4byte 0x0000e273
-_08069EE8:
- adds r0, r4, 0
- movs r1, 0x1C
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069F04
- ldr r0, [r5]
- ldr r2, _08069F00
- adds r0, r2
- b _08069F18
- .align 2, 0
-_08069F00: .4byte 0x0000e271
-_08069F04:
- adds r0, r4, 0
- movs r1, 0x31
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069F1A
- ldr r0, [r5]
- ldr r1, _08069F4C
-_08069F16:
- adds r0, r1
-_08069F18:
- strb r6, [r0]
-_08069F1A:
- adds r0, r4, 0
- movs r1, 0x8
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- bne _08069F36
- adds r0, r4, 0
- movs r1, 0x2D
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069F3E
-_08069F36:
- ldr r0, [r5]
- ldr r2, _08069F50
- adds r0, r2
- strb r6, [r0]
-_08069F3E:
- adds r7, 0x1
- cmp r7, 0x13
- ble _08069EAA
-_08069F44:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F4C: .4byte 0x0000e270
-_08069F50: .4byte 0x0000e279
- thumb_func_end TriggerWeatherAbilities
-
- thumb_func_start sub_8069F54
-sub_8069F54:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- asrs r0, r1, 16
- ldr r2, _08069F88
- adds r1, r2
- lsrs r1, 16
- cmp r1, 0x3
- bhi _08069F94
- adds r0, r5, 0
- movs r1, 0x25
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08069F90
- ldr r4, _08069F8C
- adds r0, r5, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- b _08069F94
- .align 2, 0
-_08069F88: .4byte 0xfe880000
-_08069F8C: .4byte gUnknown_80F520C
-_08069F90:
- movs r0, 0xBC
- lsls r0, 1
-_08069F94:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069F54
-
- thumb_func_start sub_8069F9C
-sub_8069F9C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- mov r9, r2
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08069FB8
- b _0806A0FA
-_08069FB8:
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08069FC6
- b _0806A0FA
-_08069FC6:
- cmp r8, r6
- bne _08069FCC
- b _0806A0FA
-_08069FCC:
- mov r0, r8
- ldr r2, [r0, 0x70]
- adds r3, r2, 0
- ldr r7, [r6, 0x70]
- movs r4, 0x1
- negs r4, r4
- adds r0, r7, 0
- adds r0, 0x5E
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _08069FE4
- movs r4, 0
-_08069FE4:
- adds r0, r7, 0
- adds r0, 0x5F
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _08069FF0
- movs r4, 0x1
-_08069FF0:
- cmp r4, 0
- blt _0806A068
- movs r1, 0
- adds r0, r2, 0
- adds r0, 0x5E
- ldrb r2, [r0]
- cmp r2, 0
- beq _0806A006
- mov r0, sp
- strb r2, [r0]
- movs r1, 0x1
-_0806A006:
- adds r0, r3, 0
- adds r0, 0x5F
- ldrb r2, [r0]
- cmp r2, 0
- beq _0806A018
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r1, 0x1
-_0806A018:
- cmp r1, 0
- beq _0806A068
- cmp r1, 0x1
- bne _0806A024
- movs r1, 0
- b _0806A030
-_0806A024:
- adds r0, r1, 0
- bl DungeonRandomCapped
- adds r1, r0, 0
- cmp r1, 0
- blt _0806A068
-_0806A030:
- adds r0, r7, 0
- adds r0, 0x5E
- adds r0, r4
- add r1, sp
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0806A108
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xC]
- ldr r0, _0806A10C
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0806A110
- ldr r2, [r0]
- mov r0, r8
- adds r1, r6, 0
- bl sub_80522F4
- adds r0, r6, 0
- bl sub_8042900
- mov r0, r8
- adds r1, r6, 0
- bl sub_806ABAC
-_0806A068:
- movs r0, 0xAD
- lsls r0, 1
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0806A0FA
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x3B
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806A0FA
- mov r0, r8
- mov r1, r9
- bl GetMoveType_2
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r9
- ldrh r0, [r1, 0x2]
- cmp r0, 0x1F
- bne _0806A0AA
- mov r0, r8
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806A114
- adds r0, r1
- ldrb r5, [r0]
-_0806A0AA:
- cmp r5, 0
- beq _0806A0FA
- adds r0, r6, 0
- adds r1, r5, 0
- bl HasType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0806A0FA
- adds r4, r7, 0
- adds r4, 0x5C
- strb r5, [r4]
- adds r1, r7, 0
- adds r1, 0x5D
- strb r0, [r1]
- adds r1, 0x99
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0806A10C
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldrb r0, [r4]
- bl GetUnformattedTypeString
- adds r1, r0, 0
- ldr r0, _0806A118
- bl strcpy
- ldr r0, _0806A11C
- ldr r2, [r0]
- mov r0, r8
- adds r1, r6, 0
- bl sub_80522F4
- adds r0, r6, 0
- bl sub_8042968
-_0806A0FA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A108: .4byte gDungeonGlobalData
-_0806A10C: .4byte gAvailablePokemonNames
-_0806A110: .4byte gUnknown_80FCC7C
-_0806A114: .4byte gUnknown_80F51E4
-_0806A118: .4byte gUnknown_202DE58
-_0806A11C: .4byte gUnknown_80FCCAC
- thumb_func_end sub_8069F9C
-
- thumb_func_start sub_806A120
-sub_806A120:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A19C
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A19C
- cmp r7, r6
- beq _0806A19C
- ldr r5, [r6, 0x70]
- adds r0, r5, 0
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _0806A19C
- adds r0, r7, 0
- adds r1, r4, 0
- bl GetMoveType_2
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092364
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0806A19C
- adds r0, r5, 0
- adds r0, 0x5C
- movs r1, 0
- strb r4, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, r6, 0
- bl sub_8041BBC
- ldr r0, _0806A1A4
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- adds r0, r4, 0
- bl GetUnformattedTypeString
- adds r1, r0, 0
- ldr r0, _0806A1A8
- bl strcpy
- ldr r0, _0806A1AC
- ldr r2, [r0]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80522F4
-_0806A19C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1A4: .4byte gAvailablePokemonNames
-_0806A1A8: .4byte gUnknown_202DE58
-_0806A1AC: .4byte gUnknown_80FDCC8
- thumb_func_end sub_806A120
-
- thumb_func_start sub_806A1B0
-sub_806A1B0:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A1DE
- adds r0, r4, 0
- movs r1, 0x2A
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806A1DE
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8076090
-_0806A1DE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806A1B0
-
- thumb_func_start sub_806A1E8
-sub_806A1E8:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A234
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0806A210
- ldr r0, [r4, 0x70]
- movs r1, 0
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0806A20E
- movs r1, 0x1
-_0806A20E:
- adds r5, r1, 0
-_0806A210:
- ldr r0, _0806A23C
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0806A21C
- movs r5, 0
-_0806A21C:
- cmp r5, 0
- beq _0806A234
- adds r0, r4, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- bne _0806A234
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
-_0806A234:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A23C: .4byte gUnknown_203B46C
- thumb_func_end sub_806A1E8
-
- thumb_func_start sub_806A240
-sub_806A240:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B4
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0806A26A
- ldr r0, [r4, 0x70]
- movs r1, 0
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0806A268
- movs r1, 0x1
-_0806A268:
- adds r6, r1, 0
-_0806A26A:
- cmp r6, 0
- beq _0806A284
- adds r0, r4, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- bne _0806A284
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
- b _0806A2B4
-_0806A284:
- adds r0, r5, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0806A29C
- ldr r0, [r5, 0x70]
- movs r1, 0
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0806A29A
- movs r1, 0x1
-_0806A29A:
- adds r6, r1, 0
-_0806A29C:
- cmp r6, 0
- beq _0806A2B4
- adds r0, r5, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- bne _0806A2B4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_806A2BC
-_0806A2B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806A240
-
- thumb_func_start sub_806A2BC
-sub_806A2BC:
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A328
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0806A328
- ldr r5, _0806A2F4
- ldr r0, [r5]
- ldr r1, _0806A2F8
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r4
- beq _0806A328
- adds r7, r4, 0x4
- cmp r6, 0
- beq _0806A30C
- movs r0, 0x1
- bl sub_804178C
- b _0806A302
- .align 2, 0
-_0806A2F4: .4byte gDungeonGlobalData
-_0806A2F8: .4byte 0x000181f8
-_0806A2FC:
- movs r0, 0x34
- bl sub_803E46C
-_0806A302:
- ldr r0, [r5]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0x3B
- ble _0806A2FC
-_0806A30C:
- movs r0, 0x4
- movs r1, 0x44
- bl sub_803E708
- adds r0, r4, 0
- bl sub_803F508
- adds r0, r7, 0
- bl sub_804AC20
- ldr r0, _0806A330
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
-_0806A328:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A330: .4byte gDungeonGlobalData
- thumb_func_end sub_806A2BC
-
- thumb_func_start nullsub_95
-nullsub_95:
- bx lr
- thumb_func_end nullsub_95
-
- thumb_func_start sub_806A338
-sub_806A338:
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0806A378
-_0806A33E:
- ldr r0, [r6]
- lsls r1, r5, 2
- ldr r2, _0806A37C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A384
- ldr r0, [r4, 0x70]
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0806A384
- ldr r1, [r6]
- ldr r2, _0806A380
- adds r0, r1, r2
- str r4, [r0]
- ldr r0, [r4, 0x70]
- adds r2, 0xC
- adds r1, r2
- adds r0, 0x98
- ldr r0, [r0]
- str r0, [r1]
- b _0806A38A
- .align 2, 0
-_0806A378: .4byte gDungeonGlobalData
-_0806A37C: .4byte 0x000135cc
-_0806A380: .4byte 0x00017b30
-_0806A384:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0806A33E
-_0806A38A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806A338
-
- thumb_func_start sub_806A390
-sub_806A390:
- push {r4-r7,lr}
- ldr r0, [r0, 0x70]
- movs r7, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r0, r1
- adds r5, r4, 0
- movs r6, 0x3
-_0806A3A0:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A3C2
- ldrb r1, [r4, 0x1]
- movs r0, 0xF7
- ands r0, r1
- movs r1, 0xEF
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl GetMoveMaxPP
- strb r0, [r4, 0x4]
-_0806A3C2:
- adds r4, 0x8
- adds r5, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _0806A3A0
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A390
-
- thumb_func_start sub_806A3D4
-sub_806A3D4:
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r0, 0
- adds r6, r2, 0
- lsls r1, 16
- asrs r5, r1, 16
- lsls r3, 24
- cmp r3, 0
- beq _0806A404
- ldr r4, _0806A400
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- mov r0, sp
- adds r1, r4, 0
- bl sprintf
- b _0806A41C
- .align 2, 0
-_0806A400: .4byte gUnknown_8106EA8
-_0806A404:
- ldr r4, _0806A450
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- mov r0, sp
- adds r1, r4, 0
- bl sprintf
-_0806A41C:
- ldr r1, _0806A454
- mov r0, sp
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- ldr r1, [r4, 0x4]
- asrs r0, 12
- adds r0, r1
- lsls r1, r6, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r4, 0
- bl CloseFile
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A450: .4byte gUnknown_8106EB0
-_0806A454: .4byte gDungeonFileArchive
- thumb_func_end sub_806A3D4
-
- thumb_func_start sub_806A458
-sub_806A458:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- movs r0, 0
- mov r9, r0
- ldr r0, [r6, 0x70]
- ldrb r0, [r0, 0x6]
- mov r10, r0
- adds r0, r6, 0
- bl sub_80696A8
- cmp r0, 0
- bne _0806A47C
- movs r0, 0
- b _0806A4CC
-_0806A47C:
- movs r7, 0x1
- negs r7, r7
-_0806A480:
- movs r5, 0x1
- negs r5, r5
- adds r1, r7, 0x1
- mov r8, r1
-_0806A488:
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- adds r0, r5
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- adds r1, r7
- bl GetMapEntity
- adds r4, r0, 0
- ldr r0, [r4, 0x10]
- cmp r0, 0
- beq _0806A4B6
- bl GetEntityType
- cmp r0, 0x1
- bne _0806A4B6
- ldr r0, [r4, 0x10]
- ldr r0, [r0, 0x70]
- ldrb r0, [r0, 0x6]
- cmp r0, r10
- beq _0806A4B6
- movs r0, 0x1
- add r9, r0
-_0806A4B6:
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806A488
- mov r7, r8
- cmp r7, 0x1
- ble _0806A480
- movs r0, 0
- mov r1, r9
- cmp r1, 0x1
- ble _0806A4CC
- movs r0, 0x1
-_0806A4CC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806A458
-
- thumb_func_start sub_806A4DC
-sub_806A4DC:
- push {r4,lr}
- sub sp, 0x64
- adds r4, r0, 0
- ldr r1, _0806A530
- ldr r0, [sp, 0x60]
- ands r0, r1
- ldr r1, _0806A534
- ands r0, r1
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x60]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- add r0, sp, 0x60
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- movs r2, 0
- movs r3, 0
- bl sub_808CFD0
- add r1, sp, 0x8
- ldrh r0, [r4, 0x2]
- strh r0, [r1, 0x8]
- ldrb r0, [r4, 0x9]
- strb r0, [r1, 0x3]
- ldrh r0, [r4, 0xC]
- strh r0, [r1, 0x14]
- ldrb r0, [r4, 0x14]
- strb r0, [r1, 0x18]
- ldrb r0, [r4, 0x16]
- strb r0, [r1, 0x1A]
- adds r0, r1, 0
- bl sub_808F700
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A530: .4byte 0xffffff00
-_0806A534: .4byte 0xffff00ff
- thumb_func_end sub_806A4DC
-
- thumb_func_start sub_806A538
-sub_806A538:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- ldr r0, _0806A554
- cmp r1, r0
- beq _0806A550
- ldr r0, _0806A558
- cmp r1, r0
- beq _0806A550
- cmp r2, 0
- bge _0806A55C
-_0806A550:
- movs r0, 0x1
- b _0806A55E
- .align 2, 0
-_0806A554: .4byte 0x000055aa
-_0806A558: .4byte 0x00005aa5
-_0806A55C:
- movs r0, 0
-_0806A55E:
- pop {r1}
- bx r1
- thumb_func_end sub_806A538
-
- thumb_func_start sub_806A564
-sub_806A564:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _0806A57C
- cmp r1, r0
- beq _0806A584
- ldr r0, _0806A580
- cmp r1, r0
- beq _0806A584
- movs r0, 0
- b _0806A586
- .align 2, 0
-_0806A57C: .4byte 0x000055aa
-_0806A580: .4byte 0x00005aa5
-_0806A584:
- movs r0, 0x1
-_0806A586:
- pop {r1}
- bx r1
- thumb_func_end sub_806A564
-
- thumb_func_start sub_806A58C
-sub_806A58C:
- push {lr}
- lsls r0, 16
- movs r1, 0xCE
- lsls r1, 17
- cmp r0, r1
- bls _0806A59C
- movs r0, 0
- b _0806A59E
-_0806A59C:
- movs r0, 0x1
-_0806A59E:
- pop {r1}
- bx r1
- thumb_func_end sub_806A58C
-
- thumb_func_start sub_806A5A4
-sub_806A5A4:
- push {lr}
- lsls r0, 16
- cmp r0, 0
- blt _0806A5B0
- movs r0, 0
- b _0806A5B2
-_0806A5B0:
- movs r0, 0x1
-_0806A5B2:
- pop {r1}
- bx r1
- thumb_func_end sub_806A5A4
-
- thumb_func_start sub_806A5B8
-sub_806A5B8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0806A5CE
- b _0806A6D2
-_0806A5CE:
- adds r0, r6, 0
- bl GetMapEntityForDungeonEntity
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x2
- bne _0806A664
- ldr r4, [r6, 0x70]
- ldr r1, _0806A640
- ldr r0, _0806A644
- ldr r0, [r0]
- ldr r2, _0806A648
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A650
- adds r0, r4, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A608
- adds r0, r6, 0
- adds r1, r6, 0
- bl SendImmobilizeEndMessage
-_0806A608:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl GetWalkableTiles
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0806A6D2
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- ldr r0, _0806A64C
- cmp r1, r0
- beq _0806A6D2
- cmp r1, 0x92
- beq _0806A6D2
- adds r0, r4, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806A6D2
- adds r0, r6, 0
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8076210
- b _0806A6D2
- .align 2, 0
-_0806A640: .4byte gDungeonWaterType
-_0806A644: .4byte gDungeonGlobalData
-_0806A648: .4byte 0x00003a0e
-_0806A64C: .4byte 0x00000113
-_0806A650:
- adds r0, r4, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A6D2
- adds r0, r6, 0
- adds r1, r6, 0
- bl sub_807A290
- b _0806A6D2
-_0806A664:
- cmp r1, 0
- bne _0806A6D2
- ldr r7, [r6, 0x70]
- ldrb r0, [r7, 0x7]
- cmp r0, 0
- beq _0806A6D2
- movs r0, 0x9E
- lsls r0, 1
- adds r4, r7, r0
- ldr r5, [r4]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x5
- bl sub_80942C0
- ldr r0, [sp]
- str r0, [r4]
- movs r1, 0
- mov r8, r1
- adds r0, r5, 0
- bl RoundUpFixedPoint
- cmp r0, 0x13
- ble _0806A6A4
- ldr r0, [r4]
- bl RoundUpFixedPoint
- cmp r0, 0x13
- bgt _0806A6A4
- ldr r0, _0806A6E0
- ldr r0, [r0]
- mov r8, r0
-_0806A6A4:
- adds r0, r5, 0
- bl RoundUpFixedPoint
- cmp r0, 0x9
- ble _0806A6C4
- movs r2, 0x9E
- lsls r2, 1
- adds r0, r7, r2
- ldr r0, [r0]
- bl RoundUpFixedPoint
- cmp r0, 0x9
- bgt _0806A6C4
- ldr r0, _0806A6E4
- ldr r0, [r0]
- mov r8, r0
-_0806A6C4:
- mov r0, r8
- cmp r0, 0
- beq _0806A6D2
- adds r0, r6, 0
- mov r1, r8
- bl SendMessage
-_0806A6D2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A6E0: .4byte gUnknown_80FD594
-_0806A6E4: .4byte gUnknown_80FD5B8
- thumb_func_end sub_806A5B8
-
- thumb_func_start sub_806A6E8
-sub_806A6E8:
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r0, 0
- ldr r6, [r7, 0x70]
- adds r0, r6, 0
- adds r0, 0x64
- adds r1, r6, 0
- adds r1, 0x62
- ldrb r2, [r0]
- ldrb r1, [r1]
- cmp r2, r1
- beq _0806A77A
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0806A764
- cmp r1, 0xA
- beq _0806A70E
- cmp r1, 0x2B
- bne _0806A72E
-_0806A70E:
- movs r0, 0x9E
- lsls r0, 1
- adds r5, r6, r0
- ldr r4, [r5]
- mov r0, sp
- movs r1, 0xA
- bl sub_80943A0
- ldr r2, [sp]
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_80942C0
- ldr r0, [sp, 0x4]
- str r0, [r5]
- b _0806A744
-_0806A72E:
- cmp r1, 0x1B
- bne _0806A744
- add r0, sp, 0x8
- movs r1, 0
- bl sub_80943A0
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r6, r0
- ldr r0, [sp, 0x8]
- str r0, [r1]
-_0806A744:
- ldr r0, _0806A75C
- ldr r0, [r0]
- ldr r1, _0806A760
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806A776
- adds r0, r7, 0
- bl DungeonEntityUpdateStatusSprites
- b _0806A776
- .align 2, 0
-_0806A75C: .4byte gDungeonGlobalData
-_0806A760: .4byte 0x00000676
-_0806A764:
- cmp r1, 0x11
- beq _0806A76C
- cmp r2, 0x11
- bne _0806A776
-_0806A76C:
- movs r0, 0x1
- bl sub_803F580
- bl sub_8040A84
-_0806A776:
- bl sub_807AA30
-_0806A77A:
- adds r0, r6, 0
- adds r0, 0x60
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0806A792
- adds r0, r6, 0
- adds r0, 0x62
- ldrb r1, [r0]
- adds r0, 0x2
- b _0806A796
-_0806A792:
- adds r0, r6, 0
- adds r0, 0x64
-_0806A796:
- strb r1, [r0]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A6E8
-
- thumb_func_start sub_806A7A0
-sub_806A7A0:
- push {r4,r5,lr}
- movs r5, 0
-_0806A7A4:
- ldr r0, _0806A7E0
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806A7E4
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A7D2
- ldr r2, [r4, 0x70]
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- ble _0806A7D2
- adds r1, r0, 0
- subs r1, 0x1
- adds r0, r2, 0
- bl sub_806A7E8
-_0806A7D2:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0806A7A4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A7E0: .4byte gDungeonGlobalData
-_0806A7E4: .4byte 0x0001357c
- thumb_func_end sub_806A7A0
-
- thumb_func_start sub_806A7E8
-sub_806A7E8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x30
- adds r5, r0, 0
- mov r0, sp
- bl GetNumAvailableIQSkills
- mov r9, r0
- add r4, sp, 0x18
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl GetNumAvailableIQSkills
- adds r6, r0, 0
- ldr r0, _0806A828
- adds r1, r5, 0
- movs r2, 0
- bl SetMessageArgument_2
- movs r2, 0x1
- mov r8, r4
-_0806A818:
- movs r3, 0
- movs r5, 0
- movs r1, 0
- adds r4, r2, 0x1
- cmp r3, r9
- bge _0806A83E
- mov r0, sp
- b _0806A836
- .align 2, 0
-_0806A828: .4byte gAvailablePokemonNames
-_0806A82C:
- adds r1, 0x1
- cmp r1, r9
- bge _0806A83E
- mov r7, sp
- adds r0, r7, r1
-_0806A836:
- ldrb r0, [r0]
- cmp r0, r2
- bne _0806A82C
- movs r3, 0x1
-_0806A83E:
- movs r1, 0
- cmp r1, r6
- bge _0806A85C
- mov r7, r8
- ldrb r0, [r7]
- b _0806A856
-_0806A84A:
- adds r1, 0x1
- cmp r1, r6
- bge _0806A85C
- mov r7, r8
- adds r0, r7, r1
- ldrb r0, [r0]
-_0806A856:
- cmp r0, r2
- bne _0806A84A
- movs r5, 0x1
-_0806A85C:
- cmp r3, r5
- beq _0806A87A
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetIQSkillName
- adds r1, r0, 0
- ldr r0, _0806A890
- bl strcpy
- ldr r0, _0806A894
- ldr r1, [r0]
- movs r0, 0
- bl sub_805239C
-_0806A87A:
- adds r2, r4, 0
- cmp r2, 0x17
- ble _0806A818
- add sp, 0x30
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A890: .4byte gUnknown_202DE58
-_0806A894: .4byte gUnknown_80FEAC4
- thumb_func_end sub_806A7E8
-
- thumb_func_start sub_806A898
-sub_806A898:
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r1, r2, 24
- ldr r5, [r4, 0x70]
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _0806A8C2
- ldrh r1, [r4, 0x4]
- movs r2, 0xB6
- lsls r2, 1
- adds r0, r5, r2
- strh r1, [r0]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- adds r2, 0x2
- adds r1, r5, r2
- strh r0, [r1]
- b _0806A8C8
-_0806A8C2:
- adds r0, r4, 0
- bl MoveIfPossible
-_0806A8C8:
- movs r0, 0xB6
- lsls r0, 1
- adds r6, r5, r0
- ldr r0, [r6]
- cmp r0, 0
- beq _0806A90E
- adds r0, r4, 0
- movs r1, 0x1
- bl CannotMove
- lsls r0, 24
- cmp r0, 0
- beq _0806A8EE
- adds r0, r4, 0
- bl CannotAct
- lsls r0, 24
- cmp r0, 0
- bne _0806A90E
-_0806A8EE:
- adds r0, r4, 0x4
- adds r1, r6, 0
- bl CalculateFacingDir
- adds r2, r0, 0
- movs r1, 0x7
- ands r0, r1
- adds r1, r5, 0
- adds r1, 0x46
- strb r0, [r1]
- cmp r7, 0
- beq _0806A90E
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_806CE68
-_0806A90E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A898
-
- thumb_func_start sub_806A914
-sub_806A914:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
-_0806A92A:
- ldr r0, _0806A96C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806A970
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A95C
- ldr r0, [r4, 0x70]
- cmp r7, 0
- beq _0806A952
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A95C
-_0806A952:
- adds r0, r4, 0
- mov r1, r8
- adds r2, r6, 0
- bl sub_806A898
-_0806A95C:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0806A92A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A96C: .4byte gDungeonGlobalData
-_0806A970: .4byte 0x000135cc
- thumb_func_end sub_806A914
-
- thumb_func_start sub_806A974
-sub_806A974:
- push {r4,r5,lr}
- movs r5, 0
-_0806A978:
- ldr r0, _0806A9AC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806A9B0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806A99E
- ldr r0, [r4, 0x70]
- adds r0, 0x46
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806CE68
-_0806A99E:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0806A978
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A9AC: .4byte gDungeonGlobalData
-_0806A9B0: .4byte 0x000135cc
- thumb_func_end sub_806A974
-
- thumb_func_start sub_806A9B4
-sub_806A9B4:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806AA02
- ldr r0, [r4, 0x70]
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- adds r1, r5, 0
- bl sub_80935B8
- cmp r0, 0
- bne _0806A9E0
- ldr r0, _0806A9DC
- b _0806A9E6
- .align 2, 0
-_0806A9DC: .4byte gPtrLinkedMovesComeApartMessage
-_0806A9E0:
- cmp r0, 0x1
- bne _0806A9F4
- ldr r0, _0806A9F0
-_0806A9E6:
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- b _0806AA02
- .align 2, 0
-_0806A9F0: .4byte gPtrLinkMoveOneUseWarningMessage
-_0806A9F4:
- cmp r0, 0x2
- bne _0806AA02
- ldr r0, _0806AA08
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
-_0806AA02:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AA08: .4byte gPtrLinkMoveTwoUsesWarningMessage
- thumb_func_end sub_806A9B4
-
- thumb_func_start sub_806AA0C
-sub_806AA0C:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl IsExclusivePokemonUnlocked
- lsls r0, 24
- cmp r0, 0
- beq _0806AA56
- ldr r0, _0806AA5C
- ldr r0, [r0]
- ldr r1, _0806AA60
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806AA40
- adds r0, r4, 0
- bl GetBaseSpecies
- lsls r0, 16
- movs r1, 0xCF
- lsls r1, 17
- cmp r0, r1
- beq _0806AA56
-_0806AA40:
- cmp r4, 0x97
- bne _0806AA68
- ldr r0, _0806AA5C
- ldr r0, [r0]
- ldr r1, _0806AA64
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806AA56
- cmp r5, 0
- bne _0806AA68
-_0806AA56:
- movs r0, 0
- b _0806AA6A
- .align 2, 0
-_0806AA5C: .4byte gDungeonGlobalData
-_0806AA60: .4byte 0x000037fd
-_0806AA64: .4byte 0x000037ff
-_0806AA68:
- movs r0, 0x1
-_0806AA6A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806AA0C
-
- thumb_func_start sub_806AA70
-sub_806AA70:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _0806AAB4
- mov r8, r0
-_0806AA7C:
- mov r1, r8
- ldr r0, [r1]
- lsls r1, r7, 2
- ldr r2, _0806AAB8
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806AB12
- ldr r0, [r4, 0x70]
- ldrb r2, [r0, 0xA]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0806AAC4
- mov r1, r8
- ldr r0, [r1]
- ldrb r0, [r0, 0x11]
- cmp r0, 0x1
- bne _0806AABC
- adds r0, r4, 0
- bl sub_8042B20
- b _0806AB0A
- .align 2, 0
-_0806AAB4: .4byte gDungeonGlobalData
-_0806AAB8: .4byte 0x0001357c
-_0806AABC:
- adds r0, r4, 0
- bl sub_8042B0C
- b _0806AB0A
-_0806AAC4:
- cmp r2, 0
- blt _0806AB12
- movs r6, 0
- ldr r1, _0806AB24
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0806AB28
- adds r0, r2
- ldr r1, [r1]
- adds r5, r1, r0
- mov r1, r8
- ldr r0, [r1]
- ldrb r0, [r0, 0x11]
- cmp r0, 0
- bne _0806AB04
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- bl sub_806A564
- lsls r0, 24
- cmp r0, 0
- bne _0806AB04
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- bl sub_806A58C
- lsls r0, 24
- cmp r0, 0
- beq _0806AB00
- movs r6, 0x1
-_0806AB00:
- cmp r6, 0
- beq _0806AB12
-_0806AB04:
- adds r0, r4, 0
- bl sub_8042B0C
-_0806AB0A:
- adds r1, r4, 0
- adds r1, 0x20
- movs r0, 0
- strb r0, [r1]
-_0806AB12:
- adds r7, 0x1
- cmp r7, 0x3
- ble _0806AA7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AB24: .4byte gRecruitedPokemonRef
-_0806AB28: .4byte 0x00008df8
- thumb_func_end sub_806AA70
-
- thumb_func_start sub_806AB2C
-sub_806AB2C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r0, _0806ABA4
- mov r9, r0
-_0806AB3A:
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r4, 2
- ldr r2, _0806ABA8
- adds r0, r2
- adds r0, r1
- ldr r7, [r0]
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- adds r4, 0x1
- mov r8, r4
- cmp r0, 0
- beq _0806AB92
- ldr r5, [r7, 0x70]
- movs r6, 0
-_0806AB5C:
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r6, 2
- ldr r2, _0806ABA8
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806AB8C
- cmp r7, r4
- beq _0806AB8C
- adds r0, r5, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- ldrh r1, [r4, 0x26]
- cmp r0, r1
- bne _0806AB8C
- adds r0, r5, 0
- adds r0, 0x80
- str r4, [r0]
-_0806AB8C:
- adds r6, 0x1
- cmp r6, 0x13
- ble _0806AB5C
-_0806AB92:
- mov r4, r8
- cmp r4, 0x13
- ble _0806AB3A
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ABA4: .4byte gDungeonGlobalData
-_0806ABA8: .4byte 0x000135cc
- thumb_func_end sub_806AB2C
-
- thumb_func_start sub_806ABAC
-sub_806ABAC:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, [r4, 0x70]
- adds r0, r4, 0
- movs r1, 0x16
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806ABD4
- adds r0, r5, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0806ABD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A290
-_0806ABD4:
- adds r0, r4, 0
- movs r1, 0x40
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806ABF4
- adds r0, r5, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0806ABF4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A400
-_0806ABF4:
- adds r0, r4, 0
- movs r1, 0x42
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806AC14
- adds r0, r5, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806AC14
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A290
-_0806AC14:
- adds r0, r4, 0
- movs r1, 0x29
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806AC34
- adds r0, r5, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0806AC34
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A400
-_0806AC34:
- adds r0, r4, 0
- movs r1, 0x36
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- bne _0806AC50
- adds r0, r4, 0
- movs r1, 0x49
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806AC72
-_0806AC50:
- adds r0, r4, 0
- bl IsSleeping
- lsls r0, 24
- cmp r0, 0
- bne _0806AC66
- adds r0, r5, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0806AC72
-_0806AC66:
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_807A124
-_0806AC72:
- adds r0, r4, 0
- movs r1, 0x41
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806AC92
- adds r0, r5, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806AC92
- adds r0, r6, 0
- adds r1, r4, 0
- bl SendImmobilizeEndMessage
-_0806AC92:
- adds r0, r4, 0
- movs r1, 0x45
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806ACB8
- adds r0, r5, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806ACB8
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A290
-_0806ACB8:
- adds r0, r4, 0
- movs r1, 0x25
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0806ACE0
- adds r1, r5, 0
- adds r1, 0xF6
- movs r0, 0
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _0806ACE0
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807A4C8
-_0806ACE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806ABAC
-
- thumb_func_start sub_806ACE8
-sub_806ACE8:
- push {r4,r5,lr}
- adds r4, r1, 0
- ldr r0, [r0, 0x70]
- mov r12, r0
- movs r5, 0xEF
- movs r2, 0x8C
- lsls r2, 1
- add r2, r12
- movs r3, 0x3
-_0806ACFA:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
- adds r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _0806ACFA
- movs r2, 0x9C
- lsls r2, 1
- add r2, r12
- ldrb r0, [r2]
- movs r3, 0xEF
- ands r3, r0
- movs r5, 0
- strb r3, [r2]
- ldrh r1, [r4, 0x2]
- movs r0, 0xB0
- lsls r0, 1
- cmp r1, r0
- bne _0806AD2E
- movs r1, 0x10
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
- b _0806AD36
-_0806AD2E:
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4]
-_0806AD36:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806ACE8
-
- thumb_func_start sub_806AD3C
-sub_806AD3C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0806AE1C
- add sp, r4
- ldr r0, _0806AE20
- ldr r0, [r0]
- ldr r1, _0806AE24
- adds r4, r0, r1
- mov r0, sp
- movs r1, 0
- bl sub_803D808
- str r0, [sp, 0x200]
- movs r7, 0
- cmp r7, r0
- bge _0806ADEC
- mov r6, sp
- adds r7, r0, 0
-_0806AD66:
- adds r0, r6, 0
- bl ExtractSpeciesIndex
- strh r0, [r4]
- adds r0, r6, 0
- bl ExtractLevel
- strh r0, [r4, 0x2]
- adds r0, r4, 0x4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x2
- ldrsh r2, [r4, r3]
- bl sub_8072AC8
- ldrh r0, [r4, 0x4]
- cmp r0, 0
- bne _0806AD90
- movs r0, 0xB8
- lsls r0, 1
- strh r0, [r4, 0x4]
-_0806AD90:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_806C444
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r3, 0xE
- adds r3, r4
- mov r9, r3
- movs r0, 0x10
- adds r0, r4
- mov r8, r0
- movs r1, 0x14
- adds r1, r4
- mov r10, r1
-_0806ADB2:
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- adds r2, r5, 0
- bl sub_806C488
- mov r2, r9
- adds r1, r2, r5
- strb r0, [r1]
- movs r3, 0
- ldrsh r0, [r4, r3]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r2, r5, 0
- bl sub_806C4D4
- mov r3, r8
- adds r1, r3, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806ADB2
- mov r4, r10
- adds r6, 0x8
- subs r7, 0x1
- cmp r7, 0
- bne _0806AD66
- ldr r7, [sp, 0x200]
-_0806ADEC:
- cmp r7, 0x3F
- bgt _0806ADFC
- movs r0, 0
-_0806ADF2:
- strh r0, [r4]
- adds r4, 0x14
- adds r7, 0x1
- cmp r7, 0x3F
- ble _0806ADF2
-_0806ADFC:
- movs r7, 0
- ldr r4, _0806AE28
- ldr r3, _0806AE20
- ldr r2, _0806AE2C
- movs r1, 0
-_0806AE06:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r7
- strb r1, [r0]
- adds r7, 0x1
- cmp r7, r4
- ble _0806AE06
- movs r0, 0x1
- mov r10, r0
- movs r7, 0
- b _0806AE94
- .align 2, 0
-_0806AE1C: .4byte 0xfffffdfc
-_0806AE20: .4byte gDungeonGlobalData
-_0806AE24: .4byte 0x00002f3c
-_0806AE28: .4byte 0x000001a7
-_0806AE2C: .4byte 0x0000363c
-_0806AE30:
- movs r2, 0x1
- negs r2, r2
- mov r8, r2
- mov r9, r8
- ldr r3, [sp, 0x200]
- cmp r3, 0
- ble _0806AE7A
- mov r5, sp
- adds r6, r3, 0
-_0806AE42:
- adds r0, r5, 0
- bl ExtractSpeciesIndex
- lsls r0, 16
- asrs r4, r0, 16
- ldr r1, _0806AECC
- ldr r0, [r1]
- ldr r2, _0806AED0
- adds r0, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806AE72
- adds r0, r5, 0
- bl ExtractLevel
- adds r1, r0, 0
- adds r0, r4, 0
- bl CalculateEXPGain
- cmp r9, r0
- bge _0806AE72
- mov r9, r0
- mov r8, r4
-_0806AE72:
- adds r5, 0x8
- subs r6, 0x1
- cmp r6, 0
- bne _0806AE42
-_0806AE7A:
- mov r3, r8
- cmp r3, 0
- blt _0806AE9A
- ldr r1, _0806AECC
- ldr r0, [r1]
- ldr r2, _0806AED0
- adds r0, r2
- add r0, r8
- mov r3, r10
- strb r3, [r0]
- movs r0, 0x2
- add r10, r0
- adds r7, 0x1
-_0806AE94:
- ldr r1, [sp, 0x200]
- cmp r7, r1
- blt _0806AE30
-_0806AE9A:
- movs r7, 0
- ldr r5, _0806AECC
- ldr r4, _0806AED0
- movs r3, 0x1
- ldr r2, _0806AED4
-_0806AEA4:
- ldr r0, [r5]
- adds r0, r4
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, 0
- bne _0806AEB2
- strb r3, [r1]
-_0806AEB2:
- adds r7, 0x1
- cmp r7, r2
- ble _0806AEA4
- movs r3, 0x81
- lsls r3, 2
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AECC: .4byte gDungeonGlobalData
-_0806AED0: .4byte 0x0000363c
-_0806AED4: .4byte 0x000001a7
- thumb_func_end sub_806AD3C
-
- thumb_func_start sub_806AED8
-sub_806AED8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r10, r0
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- ldr r0, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- mov r8, r1
- lsls r0, 16
- asrs r7, r0, 16
- ldr r1, _0806AF04
- ldr r0, [r1]
- ldr r4, _0806AF08
- adds r6, r0, r4
- movs r3, 0
- b _0806AF7A
- .align 2, 0
-_0806AF04: .4byte gDungeonGlobalData
-_0806AF08: .4byte 0x00002f3c
-_0806AF0C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r7
- bne _0806AF6E
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, r8
- bne _0806AF6E
- movs r5, 0xE
- adds r5, r6
- mov r8, r5
- movs r0, 0x10
- adds r0, r6
- mov r9, r0
- mov r1, r10
- adds r1, 0x20
- str r1, [sp, 0x14]
- adds r5, r6, 0x4
- mov r4, r10
- movs r7, 0x3
-_0806AF34:
- ldrh r1, [r5]
- adds r0, r4, 0
- bl sub_8092AA8
- adds r5, 0x2
- adds r4, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0806AF34
- ldrh r0, [r6, 0xC]
- ldr r2, [sp, 0x8]
- strh r0, [r2]
- movs r5, 0
- mov r3, r8
- mov r2, r9
-_0806AF52:
- ldr r0, [sp, 0xC]
- adds r1, r0, r5
- adds r0, r3, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [sp, 0x10]
- adds r1, r0, r5
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806AF52
- b _0806B084
-_0806AF6E:
- adds r4, 0x14
- adds r3, 0x1
- cmp r3, 0x3F
- bgt _0806AF84
- ldr r0, [r1]
- adds r6, r0, r4
-_0806AF7A:
- ldrh r2, [r6]
- movs r5, 0
- ldrsh r0, [r6, r5]
- cmp r0, 0
- bne _0806AF0C
-_0806AF84:
- cmp r3, 0x40
- bne _0806AFE6
- mov r0, sp
- adds r1, r7, 0
- mov r2, r8
- bl sub_8072AC8
- mov r0, r10
- adds r0, 0x20
- str r0, [sp, 0x14]
- mov r5, sp
- mov r4, r10
- movs r6, 0x3
-_0806AF9E:
- ldrh r1, [r5]
- adds r0, r4, 0
- bl sub_8092AA8
- adds r5, 0x2
- adds r4, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _0806AF9E
- adds r0, r7, 0
- mov r1, r8
- bl sub_806C444
- ldr r1, [sp, 0x8]
- strh r0, [r1]
- movs r5, 0
-_0806AFBE:
- adds r0, r7, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_806C488
- ldr r2, [sp, 0xC]
- adds r1, r2, r5
- strb r0, [r1]
- adds r0, r7, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_806C4D4
- ldr r2, [sp, 0x10]
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806AFBE
- b _0806B084
-_0806AFE6:
- strh r7, [r6]
- mov r5, r8
- strh r5, [r6, 0x2]
- adds r4, r6, 0x4
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r8
- bl sub_8072AC8
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl sub_806C444
- strh r0, [r6, 0xC]
- movs r5, 0
- movs r0, 0xE
- adds r0, r6
- mov r8, r0
- movs r1, 0x10
- adds r1, r6
- mov r9, r1
- mov r2, r10
- adds r2, 0x20
- str r2, [sp, 0x14]
-_0806B01A:
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r2, r5, 0
- bl sub_806C488
- mov r2, r8
- adds r1, r2, r5
- strb r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r2, r5, 0
- bl sub_806C4D4
- mov r2, r9
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806B01A
- mov r5, r10
- movs r7, 0x3
-_0806B04C:
- ldrh r1, [r4]
- adds r0, r5, 0
- bl sub_8092AA8
- adds r4, 0x2
- adds r5, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0806B04C
- ldrh r0, [r6, 0xC]
- ldr r5, [sp, 0x8]
- strh r0, [r5]
- movs r5, 0
- mov r3, r8
- mov r2, r9
-_0806B06A:
- ldr r0, [sp, 0xC]
- adds r1, r0, r5
- adds r0, r3, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [sp, 0x10]
- adds r1, r0, r5
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806B06A
-_0806B084:
- movs r0, 0
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806AED8
-
- thumb_func_start sub_806B09C
-sub_806B09C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r7, 0
- movs r2, 0
- mov r6, r8
- adds r6, 0x2
- mov r9, r8
-_0806B0BA:
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0806B0E4
- adds r0, r1
- ldr r3, _0806B0E8
- ldr r1, [r3]
- adds r5, r1, r0
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- adds r2, 0x1
- mov r10, r2
- cmp r0, 0
- beq _0806B124
- lsrs r0, r1, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806B124
- movs r4, 0
- b _0806B0EE
- .align 2, 0
-_0806B0E4: .4byte 0x00008df8
-_0806B0E8: .4byte gRecruitedPokemonRef
-_0806B0EC:
- adds r4, 0x1
-_0806B0EE:
- cmp r4, r7
- bge _0806B106
- lsls r0, r4, 3
- add r0, r8
- bl ExtractSpeciesIndex
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- cmp r0, r1
- bne _0806B0EC
-_0806B106:
- cmp r4, r7
- bne _0806B124
- movs r3, 0xE
- ldrsh r2, [r5, r3]
- mov r0, r9
- movs r1, 0
- bl sub_808E9D8
- movs r0, 0
- strh r0, [r6]
- strh r0, [r6, 0x2]
- adds r6, 0x8
- movs r0, 0x8
- add r9, r0
- adds r7, 0x1
-_0806B124:
- mov r2, r10
- cmp r2, 0x3
- ble _0806B0BA
- mov r0, r8
- adds r1, r7, 0
- bl sub_803D808
- adds r7, r0, 0
- ldr r1, [sp]
- cmp r1, 0
- beq _0806B150
- lsls r4, r7, 3
- add r4, r8
- ldr r2, _0806B164
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_808E9D8
- movs r0, 0
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- adds r7, 0x1
-_0806B150:
- adds r0, r7, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B164: .4byte 0x000001a5
- thumb_func_end sub_806B09C
-
- thumb_func_start sub_806B168
-sub_806B168:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- ldr r0, _0806B324
- ldr r1, [r0]
- ldr r2, _0806B328
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- ldr r4, _0806B32C
- adds r1, r4
- movs r2, 0
- ldrsh r1, [r1, r2]
- bl GetMapTileAtPosition
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x2C]
- movs r3, 0
- mov r4, sp
- adds r4, 0x1C
- str r4, [sp, 0x30]
- ldr r2, _0806B330
- ldr r1, _0806B334
-_0806B19C:
- ldr r0, [r2]
- adds r0, r1
- strh r3, [r0, 0xC]
- adds r1, 0x64
- adds r3, 0x1
- cmp r3, 0x3
- ble _0806B19C
- movs r4, 0
- movs r3, 0
- ldr r0, _0806B324
- mov r8, r0
- ldr r0, _0806B330
- ldr r7, [r0]
- movs r5, 0x1
- add r6, sp, 0xC
-_0806B1BA:
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806B334
- adds r0, r1
- adds r2, r7, r0
- ldrh r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0806B1DA
- lsrs r0, r1, 1
- ands r0, r5
- cmp r0, 0
- beq _0806B1DA
- stm r6!, {r2}
- adds r4, 0x1
-_0806B1DA:
- adds r3, 0x1
- cmp r3, 0x3
- ble _0806B1BA
- cmp r4, 0x3
- bgt _0806B1F4
- movs r1, 0
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
-_0806B1EC:
- stm r0!, {r1}
- adds r4, 0x1
- cmp r4, 0x3
- ble _0806B1EC
-_0806B1F4:
- movs r4, 0
- movs r6, 0
- add r2, sp, 0xC
- ldr r5, [sp, 0x30]
- movs r3, 0x3
-_0806B1FE:
- ldr r1, [r2]
- cmp r1, 0
- beq _0806B210
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _0806B210
- str r6, [r2]
- stm r5!, {r1}
- adds r4, 0x1
-_0806B210:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0806B1FE
- mov r2, r8
- ldr r0, [r2]
- ldr r3, _0806B338
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806B24C
- movs r6, 0
- add r2, sp, 0xC
- lsls r0, r4, 2
- ldr r1, [sp, 0x30]
- adds r5, r0, r1
- movs r3, 0x3
-_0806B232:
- ldr r1, [r2]
- cmp r1, 0
- beq _0806B244
- ldrb r0, [r1, 0x4]
- cmp r0, 0x41
- bne _0806B244
- str r6, [r2]
- stm r5!, {r1}
- adds r4, 0x1
-_0806B244:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0806B232
-_0806B24C:
- movs r5, 0
- add r2, sp, 0xC
- lsls r0, r4, 2
- ldr r3, [sp, 0x30]
- adds r0, r3
- movs r3, 0x3
-_0806B258:
- ldr r1, [r2]
- cmp r1, 0
- beq _0806B264
- str r5, [r2]
- stm r0!, {r1}
- adds r4, 0x1
-_0806B264:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0806B258
- cmp r4, 0x3
- bgt _0806B280
- movs r1, 0
- lsls r0, r4, 2
- ldr r2, [sp, 0x30]
- adds r0, r2
-_0806B278:
- stm r0!, {r1}
- adds r4, 0x1
- cmp r4, 0x3
- ble _0806B278
-_0806B280:
- movs r3, 0
-_0806B282:
- lsls r0, r3, 2
- ldr r4, [sp, 0x30]
- adds r0, r4, r0
- ldr r0, [r0]
- mov r8, r0
- adds r0, r3, 0x1
- str r0, [sp, 0x34]
- mov r1, r8
- cmp r1, 0
- bne _0806B298
- b _0806B3E8
-_0806B298:
- movs r2, 0xE
- ldrsh r1, [r1, r2]
- ldr r0, _0806B33C
- cmp r1, r0
- beq _0806B2AE
- adds r0, 0x2
- cmp r1, r0
- beq _0806B2AE
- subs r0, 0x1
- cmp r1, r0
- bne _0806B2B6
-_0806B2AE:
- movs r0, 0xBC
- lsls r0, 1
- mov r4, r8
- strh r0, [r4, 0xE]
-_0806B2B6:
- ldr r0, _0806B340
- ldr r2, [r0]
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r3, 0x1
- str r3, [sp, 0x34]
- ldr r3, _0806B340
- cmp r0, 0x63
- beq _0806B350
- ldr r4, _0806B324
- mov r9, r4
- ldr r0, _0806B328
- mov r10, r0
- adds r5, r3, 0
-_0806B2D2:
- lsls r0, r2, 16
- asrs r7, r0, 16
- mov r4, r9
- ldr r1, [r4]
- mov r4, r10
- adds r0, r1, r4
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r0, r7, r0
- asrs r6, r2, 16
- ldr r2, _0806B32C
- adds r1, r2
- movs r4, 0
- ldrsh r1, [r1, r4]
- adds r1, r6, r1
- str r3, [sp, 0x38]
- bl GetMapTileAtPosition
- adds r1, r0, 0
- ldrb r0, [r1, 0x9]
- ldr r3, [sp, 0x38]
- ldr r2, [sp, 0x2C]
- cmp r0, r2
- bne _0806B344
- mov r4, r8
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- bl sub_807034C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x38]
- cmp r4, 0
- bne _0806B344
- mov r3, r8
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- mov r3, r9
- ldr r2, [r3]
- mov r3, r10
- b _0806B3A8
- .align 2, 0
-_0806B324: .4byte gDungeonGlobalData
-_0806B328: .4byte 0x0000e218
-_0806B32C: .4byte 0x0000e21a
-_0806B330: .4byte gRecruitedPokemonRef
-_0806B334: .4byte 0x00008df8
-_0806B338: .4byte 0x0000065c
-_0806B33C: .4byte 0x00000179
-_0806B340: .4byte gUnknown_80F4598
-_0806B344:
- adds r5, 0x4
- ldr r2, [r5]
- movs r4, 0
- ldrsh r0, [r5, r4]
- cmp r0, 0x63
- bne _0806B2D2
-_0806B350:
- movs r0, 0
- cmp r0, 0
- bne _0806B3E8
- ldr r2, [r3]
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0x63
- beq _0806B3E8
- ldr r3, _0806B3CC
- mov r9, r3
- ldr r5, _0806B3D0
-_0806B366:
- lsls r0, r2, 16
- asrs r7, r0, 16
- mov r4, r9
- ldr r1, [r4]
- ldr r3, _0806B3D4
- adds r0, r1, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r0, r7, r0
- asrs r6, r2, 16
- ldr r2, _0806B3D8
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r1, r6, r1
- bl GetMapTileAtPosition
- adds r1, r0, 0
- mov r4, r8
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- bl sub_807034C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0806B3DC
- mov r3, r8
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- mov r3, r9
- ldr r2, [r3]
- ldr r3, _0806B3D4
-_0806B3A8:
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r1, r7, r1
- ldr r3, _0806B3D8
- adds r2, r3
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r2, r6, r2
- str r4, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r3, r8
- bl sub_806B8CC
- b _0806B3E8
- .align 2, 0
-_0806B3CC: .4byte gDungeonGlobalData
-_0806B3D0: .4byte gUnknown_80F4598
-_0806B3D4: .4byte 0x0000e218
-_0806B3D8: .4byte 0x0000e21a
-_0806B3DC:
- adds r5, 0x4
- ldr r2, [r5]
- movs r4, 0
- ldrsh r0, [r5, r4]
- cmp r0, 0x63
- bne _0806B366
-_0806B3E8:
- ldr r3, [sp, 0x34]
- cmp r3, 0x3
- bgt _0806B3F0
- b _0806B282
-_0806B3F0:
- bl sub_806B678
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806B168
-
- thumb_func_start sub_806B404
-sub_806B404:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- movs r5, 0
- movs r2, 0
- ldr r0, _0806B480
- mov r9, r0
- ldr r0, _0806B484
- ldr r7, [r0]
- movs r6, 0x1
- ldr r1, _0806B488
- mov r8, r1
-_0806B422:
- movs r0, 0x64
- muls r0, r2
- ldr r3, _0806B48C
- adds r0, r3
- adds r3, r7, r0
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0806B446
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _0806B446
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, r8
- beq _0806B490
-_0806B446:
- adds r2, 0x1
- cmp r2, 0x3
- ble _0806B422
-_0806B44C:
- cmp r5, 0x3
- bgt _0806B460
- movs r1, 0
- lsls r0, r5, 2
- add r0, sp
- adds r0, 0xC
-_0806B458:
- stm r0!, {r1}
- adds r5, 0x1
- cmp r5, 0x3
- ble _0806B458
-_0806B460:
- movs r0, 0
- mov r2, r9
- str r0, [r2]
- bl GetLeaderEntity
- adds r5, r0, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806B49C
- ldrh r0, [r5, 0x6]
- lsls r0, 16
- ldrh r4, [r5, 0x4]
- b _0806B4AE
- .align 2, 0
-_0806B480: .4byte gLeaderPokemon
-_0806B484: .4byte gRecruitedPokemonRef
-_0806B488: .4byte 0x000055aa
-_0806B48C: .4byte 0x00008df8
-_0806B490:
- lsls r0, r5, 2
- add r0, sp
- adds r0, 0xC
- str r3, [r0]
- adds r5, 0x1
- b _0806B44C
-_0806B49C:
- ldr r0, _0806B560
- ldr r0, [r0]
- ldr r3, _0806B564
- adds r1, r0, r3
- ldr r2, _0806B568
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- ldrh r4, [r1]
-_0806B4AE:
- orrs r4, r0
- lsls r5, r4, 16
- asrs r0, r5, 16
- asrs r4, 16
- adds r1, r4, 0
- bl GetMapTileAtPosition
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x20]
- movs r2, 0
- str r5, [sp, 0x24]
- mov r10, r4
-_0806B4C6:
- lsls r0, r2, 2
- add r0, sp
- adds r0, 0xC
- ldr r6, [r0]
- adds r2, 0x1
- str r2, [sp, 0x28]
- cmp r6, 0
- bne _0806B4D8
- b _0806B65E
-_0806B4D8:
- ldrh r1, [r6]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0806B4E6
- b _0806B65E
-_0806B4E6:
- lsrs r0, r1, 1
- ands r0, r2
- cmp r0, 0
- bne _0806B4F0
- b _0806B65E
-_0806B4F0:
- movs r3, 0xA
- ldrsh r1, [r6, r3]
- ldr r0, _0806B56C
- cmp r1, r0
- beq _0806B4FC
- b _0806B65E
-_0806B4FC:
- ldr r0, _0806B570
- strh r0, [r6, 0xA]
- movs r7, 0
- ldr r2, _0806B574
- ldr r0, [r2]
- str r0, [sp, 0x1C]
- add r0, sp, 0x1C
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r9, r2
- adds r2, r0, 0
- cmp r1, 0x63
- beq _0806B58C
- ldr r0, [sp, 0x24]
- asrs r0, 16
- mov r8, r0
-_0806B51C:
- movs r1, 0
- ldrsh r0, [r2, r1]
- add r0, r8
- ldr r1, [sp, 0x1C]
- asrs r1, 16
- mov r5, r10
- adds r1, r5
- str r2, [sp, 0x2C]
- bl GetMapTileAtPosition
- adds r1, r0, 0
- ldrb r0, [r1, 0x9]
- ldr r2, [sp, 0x2C]
- ldr r3, [sp, 0x20]
- cmp r0, r3
- bne _0806B578
- movs r3, 0xE
- ldrsh r0, [r6, r3]
- bl sub_807034C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, [sp, 0x2C]
- cmp r4, 0
- bne _0806B578
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- ldr r2, [sp, 0x1C]
- asrs r2, 16
- adds r2, r5
- b _0806B642
- .align 2, 0
-_0806B560: .4byte gDungeonGlobalData
-_0806B564: .4byte 0x0000e218
-_0806B568: .4byte 0x0000e21a
-_0806B56C: .4byte 0x000055aa
-_0806B570: .4byte 0x00005aa5
-_0806B574: .4byte gUnknown_80F4598
-_0806B578:
- adds r7, 0x1
- ldr r1, _0806B5E4
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x63
- bne _0806B51C
-_0806B58C:
- movs r3, 0
- cmp r3, 0
- bne _0806B65E
- movs r7, 0
- mov r1, r9
- ldr r0, [r1]
- str r0, [sp, 0x1C]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0x63
- beq _0806B5FC
- ldr r0, [sp, 0x24]
- asrs r0, 16
- mov r8, r0
-_0806B5A8:
- movs r1, 0
- ldrsh r0, [r2, r1]
- add r0, r8
- ldr r1, [sp, 0x1C]
- asrs r1, 16
- mov r5, r10
- adds r1, r5
- str r2, [sp, 0x2C]
- bl GetMapTileAtPosition
- adds r1, r0, 0
- movs r3, 0xE
- ldrsh r0, [r6, r3]
- bl sub_807034C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, [sp, 0x2C]
- cmp r4, 0
- bne _0806B5E8
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- ldr r2, [sp, 0x1C]
- asrs r2, 16
- adds r2, r5
- b _0806B642
- .align 2, 0
-_0806B5E4: .4byte gUnknown_80F4598
-_0806B5E8:
- adds r7, 0x1
- ldr r1, _0806B654
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x63
- bne _0806B5A8
-_0806B5FC:
- movs r3, 0
- cmp r3, 0
- bne _0806B65E
- movs r7, 0
- adds r5, r2, 0
-_0806B606:
- adds r0, r5, 0
- str r2, [sp, 0x2C]
- bl sub_8083660
- lsls r0, 24
- ldr r2, [sp, 0x2C]
- cmp r0, 0
- beq _0806B658
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r3, 0x2
- ldrsh r1, [r5, r3]
- bl GetMapTileAtPosition
- adds r1, r0, 0
- movs r3, 0xE
- ldrsh r0, [r6, r3]
- bl sub_807034C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, [sp, 0x2C]
- cmp r4, 0
- bne _0806B658
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r3, 0x2
- ldrsh r2, [r5, r3]
-_0806B642:
- str r4, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r3, r6, 0
- bl sub_806B8CC
- b _0806B65E
- .align 2, 0
-_0806B654: .4byte gUnknown_80F4598
-_0806B658:
- adds r7, 0x1
- cmp r7, 0x63
- ble _0806B606
-_0806B65E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x3
- bgt _0806B666
- b _0806B4C6
-_0806B666:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806B404
-
- thumb_func_start sub_806B678
-sub_806B678:
- push {r4,r5,lr}
- movs r5, 0
-_0806B67C:
- ldr r0, _0806B6AC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806B6B0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806B6B8
- ldr r0, [r4, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0806B6B8
- adds r0, r4, 0
- bl sub_803F4A0
- ldr r1, _0806B6B4
- ldr r0, [r4, 0x4]
- str r0, [r1]
- b _0806B6BE
- .align 2, 0
-_0806B6AC: .4byte gDungeonGlobalData
-_0806B6B0: .4byte 0x0001357c
-_0806B6B4: .4byte gUnknown_202EE0C
-_0806B6B8:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0806B67C
-_0806B6BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806B678
-
- thumb_func_start sub_806B6C4
-sub_806B6C4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, _0806B708
- ldr r0, [r4]
- movs r1, 0xD1
- lsls r1, 3
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- mov r8, r0
- movs r0, 0x7A
- bl sub_80860A8
- lsls r0, 24
- cmp r0, 0
- beq _0806B710
- movs r0, 0x97
- bl HasRecruitedMon
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0806B710
- ldr r0, [r4]
- ldr r2, _0806B70C
- adds r0, r2
- b _0806B71A
- .align 2, 0
-_0806B708: .4byte gDungeonGlobalData
-_0806B70C: .4byte 0x000037ff
-_0806B710:
- ldr r0, _0806B77C
- ldr r0, [r0]
- ldr r1, _0806B780
- adds r0, r1
- movs r1, 0x1
-_0806B71A:
- strb r1, [r0]
- movs r0, 0x38
- bl DungeonRandomCapped
- adds r5, r0, 0
- movs r0, 0x20
- bl DungeonRandomCapped
- adds r7, r0, 0
- movs r0, 0
-_0806B72E:
- adds r7, 0x1
- cmp r7, 0x20
- bne _0806B736
- movs r7, 0
-_0806B736:
- adds r0, 0x1
- mov r10, r0
- mov r4, sp
- movs r2, 0x37
- mov r9, r2
-_0806B740:
- adds r5, 0x1
- cmp r5, 0x38
- bne _0806B748
- movs r5, 0
-_0806B748:
- adds r0, r5, 0
- adds r1, r7, 0
- bl GetMapTileAtPosition
- ldrh r1, [r0, 0x4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0806B7C2
- movs r6, 0
- mov r0, r8
- cmp r0, 0
- beq _0806B784
- ldr r0, _0806B77C
- ldr r0, [r0]
- movs r1, 0xD1
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- movs r1, 0x1
- movs r0, 0x1
- strh r0, [r4, 0x8]
- strb r1, [r4, 0x2]
- movs r6, 0x1
- b _0806B794
- .align 2, 0
-_0806B77C: .4byte gDungeonGlobalData
-_0806B780: .4byte 0x000037ff
-_0806B784:
- movs r0, 0
- bl sub_803D970
- movs r1, 0
- strh r0, [r4]
- mov r2, r8
- strh r2, [r4, 0x8]
- strb r1, [r4, 0x2]
-_0806B794:
- movs r0, 0
- str r0, [sp, 0x4]
- strb r0, [r4, 0x10]
- strh r5, [r4, 0xC]
- strh r7, [r4, 0xE]
- cmp r6, 0
- bne _0806B7B2
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl sub_806AA0C
- lsls r0, 24
- cmp r0, 0
- beq _0806B7C2
-_0806B7B2:
- mov r0, sp
- movs r1, 0
- bl sub_806B7F8
- cmp r0, 0
- beq _0806B7C2
- movs r2, 0
- mov r8, r2
-_0806B7C2:
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- cmp r1, 0
- bge _0806B740
- mov r0, r10
- cmp r0, 0x1F
- ble _0806B72E
- mov r2, r8
- cmp r2, 0
- beq _0806B7E2
- ldr r0, _0806B7F4
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xA]
-_0806B7E2:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806B7F4: .4byte gDungeonGlobalData
- thumb_func_end sub_806B6C4
-
- thumb_func_start sub_806B7F8
-sub_806B7F8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- bl GetMapTileAtPosition
- adds r1, r0, 0
- movs r3, 0
- ldrsh r0, [r6, r3]
- bl sub_807034C
- lsls r0, 24
- cmp r0, 0
- bne _0806B834
- movs r4, 0
- ldrsh r0, [r6, r4]
- bl sub_804550C
- adds r7, r0, 0
- cmp r7, 0
- bne _0806B838
-_0806B834:
- movs r0, 0
- b _0806B8B8
-_0806B838:
- ldr r3, _0806B8C8
- movs r0, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_806BC68
- ldr r5, [r7, 0x70]
- movs r0, 0x1
- strb r0, [r5, 0x6]
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r5, 0
- adds r1, 0x10
- adds r2, r5, 0
- adds r2, 0x14
- movs r3, 0x16
- adds r3, r5
- mov r9, r3
- movs r3, 0x2
- ldrsh r4, [r5, r3]
- str r4, [sp]
- ldrb r4, [r5, 0x9]
- str r4, [sp, 0x4]
- mov r3, r9
- bl sub_806AED8
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- movs r4, 0x8A
- lsls r4, 1
- adds r1, r5, r4
- ldr r0, [r6, 0x4]
- str r0, [r1]
- ldrb r0, [r6, 0x2]
- cmp r0, 0
- bne _0806B8B6
- mov r0, r8
- cmp r0, 0
- bne _0806B8B6
- ldrb r0, [r6, 0x10]
- cmp r0, 0
- bne _0806B8B6
- movs r0, 0x64
- bl DungeonRandomCapped
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- bl GetUnk1D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- ble _0806B8B6
- adds r0, r7, 0
- movs r1, 0x7F
- bl sub_8075BF4
- adds r0, r7, 0
- movs r1, 0x8
- bl sub_806CE68
-_0806B8B6:
- adds r0, r7, 0
-_0806B8B8:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B8C8: .4byte gUnknown_202EE0C
- thumb_func_end sub_806B7F8
-
- thumb_func_start sub_806B8CC
-sub_806B8CC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r9, r1
- mov r10, r2
- adds r5, r3, 0
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- ldrb r1, [r5, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- mov r8, r0
- ldr r0, [sp, 0x4C]
- cmp r0, 0
- beq _0806B906
- movs r0, 0
- ldr r1, [sp, 0x4C]
- str r0, [r1]
-_0806B906:
- adds r0, r4, 0
- bl GetBaseSpecies
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0xCF
- lsls r0, 1
- cmp r1, r0
- bne _0806B932
- cmp r6, 0
- beq _0806B930
- ldr r0, _0806B92C
- ldr r0, [r0]
- movs r2, 0xE0
- lsls r2, 6
- adds r0, r2
- movs r3, 0
- ldrsh r4, [r0, r3]
- b _0806B932
- .align 2, 0
-_0806B92C: .4byte gDungeonGlobalData
-_0806B930:
- adds r4, r1, 0
-_0806B932:
- mov r0, r9
- mov r1, r10
- bl GetMapTileAtPosition
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_807034C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0806B956
- adds r0, r4, 0
- bl sub_80453AC
- str r0, [sp, 0x1C]
- cmp r0, 0
- bne _0806B95A
-_0806B956:
- movs r0, 0
- b _0806BB3C
-_0806B95A:
- mov r0, sp
- movs r7, 0
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r2, r10
- strh r2, [r0, 0xE]
- strh r4, [r0]
- mov r1, sp
- ldrb r0, [r5, 0x3]
- strh r0, [r1, 0x8]
- mov r0, sp
- strb r7, [r0, 0x2]
- str r6, [sp, 0x4]
- strb r7, [r0, 0x10]
- ldr r4, _0806BB4C
- ldr r3, _0806BB50
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0]
- add r0, r9
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0806BB54
- ldr r1, [sp, 0x14]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x14]
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x2]
- add r0, r10
- lsls r0, 16
- ldr r2, _0806BB58
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x14]
- ldr r3, _0806BB5C
- mov r0, r8
- cmp r0, 0
- beq _0806B9B0
- add r3, sp, 0x14
-_0806B9B0:
- movs r0, 0x1
- ldr r1, [sp, 0x1C]
- mov r2, sp
- bl sub_806BC68
- ldr r1, [sp, 0x1C]
- ldr r4, [r1, 0x70]
- strb r7, [r4, 0x6]
- strb r7, [r4, 0x8]
- mov r2, r8
- strb r2, [r4, 0x7]
- adds r0, r4, 0
- adds r0, 0xF9
- mov r3, sp
- ldrb r3, [r3, 0x18]
- strb r3, [r0]
- ldr r0, _0806BB60
- str r6, [r0]
- mov r6, r8
- cmp r6, 0
- beq _0806B9E4
- ldr r0, _0806BB5C
- mov r7, r9
- strh r7, [r0]
- mov r1, r10
- strh r1, [r0, 0x2]
-_0806B9E4:
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x10]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- movs r3, 0
- movs r2, 0x1C
- adds r2, r5
- mov r8, r2
- movs r6, 0x50
- adds r6, r5
- mov r10, r6
- movs r7, 0x94
- adds r7, r4
- mov r9, r7
- adds r0, r4, 0
- adds r0, 0x8C
- str r0, [sp, 0x20]
- adds r1, r4, 0
- adds r1, 0xF3
- str r1, [sp, 0x24]
- adds r2, r4, 0
- adds r2, 0x64
- str r2, [sp, 0x28]
- movs r6, 0x14
- adds r6, r4
- mov r12, r6
- adds r7, r5, 0
- adds r7, 0x14
- adds r6, r4, 0
- adds r6, 0x16
- adds r2, r5, 0
- adds r2, 0x16
-_0806BA28:
- mov r0, r12
- adds r1, r0, r3
- adds r0, r7, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r6, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x1
- ble _0806BA28
- movs r1, 0x8C
- lsls r1, 1
- adds r2, r4, r1
- adds r1, r2, 0
- mov r0, r8
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- movs r0, 0x1
- mov r8, r0
- movs r7, 0xEF
- movs r6, 0xDF
- movs r3, 0x3
-_0806BA60:
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _0806BA72
- adds r0, r7, 0
- ands r0, r1
- ands r0, r6
- strb r0, [r2]
-_0806BA72:
- adds r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _0806BA60
- movs r1, 0x9C
- lsls r1, 1
- adds r2, r4, r1
- ldrb r1, [r2]
- movs r0, 0xEF
- ands r0, r1
- movs r1, 0xDF
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x3]
- strb r0, [r4, 0x9]
- ldrh r0, [r5, 0x8]
- movs r2, 0
- strh r0, [r4, 0xC]
- mov r3, r10
- ldrb r0, [r3]
- mov r6, r9
- strb r0, [r6]
- ldr r0, [r5, 0x4C]
- ldr r7, [sp, 0x20]
- str r0, [r7]
- ldr r0, [r5, 0x54]
- str r0, [r4, 0x3C]
- ldr r0, [r5, 0x4]
- str r0, [r4, 0x40]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r4, r0
- ldr r0, [r5, 0x44]
- str r0, [r1]
- movs r3, 0xA0
- lsls r3, 1
- adds r1, r4, r3
- ldr r0, [r5, 0x48]
- str r0, [r1]
- ldrh r0, [r5, 0xC]
- strb r0, [r4, 0xA]
- ldr r0, [r5, 0x40]
- str r0, [r4, 0x60]
- ldr r0, [sp, 0x24]
- strb r2, [r0]
- ldr r6, [sp, 0x28]
- strb r2, [r6]
- ldr r7, _0806BB64
- ldr r0, [r7]
- ldr r1, _0806BB68
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806BB24
- bl IsBossBattle
- lsls r0, 24
- cmp r0, 0
- bne _0806BB24
- adds r0, r4, 0
- adds r0, 0x5E
- ldrb r0, [r0]
- cmp r0, 0x47
- beq _0806BAFC
- adds r0, r4, 0
- adds r0, 0x5F
- ldrb r0, [r0]
- cmp r0, 0x47
- bne _0806BB24
-_0806BAFC:
- adds r4, 0x60
- ldrb r1, [r4]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0806BB24
- movs r0, 0
- bl sub_803D73C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x69
- beq _0806BB24
- adds r0, r4, 0
- movs r2, 0
- bl xxx_init_itemslot_8090A8C
- ldr r2, [sp, 0x24]
- strb r5, [r2]
-_0806BB24:
- ldr r0, [sp, 0x1C]
- bl sub_806A6E8
- ldr r0, [sp, 0x1C]
- bl LoadIQSkills
- ldr r3, [sp, 0x4C]
- cmp r3, 0
- beq _0806BB3A
- ldr r6, [sp, 0x1C]
- str r6, [r3]
-_0806BB3A:
- movs r0, 0x1
-_0806BB3C:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BB4C: .4byte gAdjacentTileOffsets
-_0806BB50: .4byte gUnknown_202F32C
-_0806BB54: .4byte 0xffff0000
-_0806BB58: .4byte 0x0000ffff
-_0806BB5C: .4byte gUnknown_202EE0C
-_0806BB60: .4byte gLeaderPokemon
-_0806BB64: .4byte gDungeonGlobalData
-_0806BB68: .4byte 0x00000644
- thumb_func_end sub_806B8CC
-
- thumb_func_start sub_806BB6C
-sub_806BB6C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r7, r0, 0
- lsls r4, r1, 16
- asrs r4, 16
- ldr r0, [r7, 0x70]
- mov r9, r0
- mov r8, r9
- adds r0, 0x98
- ldr r0, [r0]
- bl DeletePokemonDungeonSprite
- add r0, sp, 0x8
- movs r1, 0
- mov r10, r1
- movs r6, 0
- lsls r5, r4, 16
- lsrs r5, 16
- strh r5, [r0]
- strh r6, [r0, 0x8]
- mov r2, r10
- strb r2, [r0, 0x2]
- ldr r0, [r7, 0x4]
- str r0, [sp, 0x14]
- str r6, [sp, 0xC]
- movs r0, 0
- adds r1, r4, 0
- bl sub_8069F54
- lsls r0, 16
- adds r1, r7, 0
- adds r1, 0x22
- mov r2, r10
- strb r2, [r1]
- ldr r1, [r7, 0x70]
- asrs r2, r0, 16
- lsrs r0, 16
- strh r0, [r1, 0x4]
- ldr r0, [r7, 0x70]
- strh r5, [r0, 0x2]
- adds r0, r2, 0
- bl sub_80687D0
- str r0, [r7, 0x64]
- adds r1, r7, 0
- adds r1, 0x6A
- movs r0, 0x7
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x6C
- mov r5, r10
- strb r5, [r0]
- adds r1, 0x1
- movs r0, 0xFF
- strb r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- str r6, [r7, 0x1C]
- mov r0, r9
- adds r0, 0xB0
- ldrb r0, [r0]
- subs r0, 0x3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806BC08
- mov r0, r9
- adds r0, 0x9C
- ldr r0, [r0]
- bl sub_8076CB4
-_0806BC08:
- movs r1, 0
- mov r6, r9
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _0806BC14
- movs r1, 0x1
-_0806BC14:
- adds r0, r1, 0
- adds r1, r7, 0
- add r2, sp, 0x8
- movs r3, 0
- bl sub_806BC68
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- mov r1, r8
- adds r1, 0x10
- mov r2, r8
- adds r2, 0x14
- mov r3, r8
- adds r3, 0x16
- mov r5, r8
- movs r6, 0x2
- ldrsh r4, [r5, r6]
- str r4, [sp]
- ldrb r4, [r5, 0x9]
- str r4, [sp, 0x4]
- bl sub_806AED8
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- mov r0, r10
- strb r0, [r5, 0x8]
- adds r0, r7, 0
- bl sub_80429E8
- adds r0, r7, 0
- bl DungeonEntityUpdateStatusSprites
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806BB6C
-
- thumb_func_start sub_806BC68
-sub_806BC68:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- mov r8, r1
- adds r7, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806BD0C
- ldr r0, [r1]
- movs r5, 0
- movs r2, 0x1
- mov r9, r2
- mov r3, r9
- strb r3, [r0, 0xC]
- mov r0, r8
- ldr r6, [r0, 0x70]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_806BFC0
- ldrb r1, [r7, 0x2]
- adds r0, r6, 0
- adds r0, 0xA4
- strb r1, [r0]
- mov r0, r8
- adds r0, 0x20
- mov r1, r9
- strb r1, [r0]
- adds r0, 0x2
- strb r5, [r0]
- ldr r0, _0806BD10
- mov r2, r8
- strh r0, [r2, 0x8]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r2, 0xA]
- ldr r0, _0806BD14
- strh r0, [r2, 0x4]
- strh r0, [r2, 0x6]
- movs r3, 0xC
- ldrsh r1, [r7, r3]
- movs r0, 0xE
- ldrsh r2, [r7, r0]
- mov r0, r8
- movs r3, 0x1
- bl sub_80694C0
- mov r0, r8
- movs r1, 0
- bl sub_804535C
- cmp r4, 0
- bne _0806BD5E
- movs r2, 0
- ldrsh r1, [r7, r2]
- movs r0, 0xBE
- lsls r0, 1
- cmp r1, r0
- bne _0806BD20
- ldr r3, _0806BD0C
- ldr r1, [r3]
- ldr r4, _0806BD18
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806BD20
- ldr r2, _0806BD1C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806BD20
- ldrb r0, [r7, 0x2]
- cmp r0, 0
- bne _0806BD20
- mov r3, r9
- strb r3, [r6, 0x8]
- b _0806BD24
- .align 2, 0
-_0806BD0C: .4byte gDungeonGlobalData
-_0806BD10: .4byte 0x0000ffff
-_0806BD14: .4byte 0x0000fffe
-_0806BD18: .4byte 0x0000066e
-_0806BD1C: .4byte 0x00003a0a
-_0806BD20:
- movs r0, 0
- strb r0, [r6, 0x8]
-_0806BD24:
- movs r4, 0x2
- ldrsh r0, [r6, r4]
- bl GetBaseSpecies
- lsls r0, 16
- movs r1, 0xCF
- lsls r1, 17
- cmp r0, r1
- bne _0806BD42
- ldr r0, _0806BD94
- ldr r0, [r0]
- ldr r1, _0806BD98
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0806BD42:
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- bl GetBaseSpecies
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x97
- bne _0806BD5E
- ldr r0, _0806BD94
- ldr r0, [r0]
- ldr r3, _0806BD9C
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
-_0806BD5E:
- adds r2, r6, 0
- adds r2, 0x98
- ldr r0, _0806BD94
- ldr r1, [r0]
- ldr r4, _0806BDA0
- adds r1, r4
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x9C
- movs r0, 0
- str r0, [r1]
- ldrh r1, [r7, 0x8]
- movs r3, 0x8
- ldrsh r0, [r7, r3]
- mov r9, r2
- cmp r0, 0
- bne _0806BDA4
- movs r4, 0
- ldrsh r0, [r7, r4]
- bl sub_803DA20
- strb r0, [r6, 0x9]
- b _0806BDA6
- .align 2, 0
-_0806BD94: .4byte gDungeonGlobalData
-_0806BD98: .4byte 0x000037fd
-_0806BD9C: .4byte 0x000037ff
-_0806BDA0: .4byte 0x000037f0
-_0806BDA4:
- strb r1, [r6, 0x9]
-_0806BDA6:
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r6, r0
- ldr r0, [r7, 0x4]
- str r0, [r1]
- movs r4, 0x1
- strh r4, [r6, 0xC]
- adds r0, r6, 0
- adds r0, 0x8C
- movs r1, 0
- bl SetDefaultIQSkills
- adds r0, r6, 0
- adds r0, 0x3C
- bl sub_808E6F4
- strh r4, [r6, 0x10]
- strh r4, [r6, 0xE]
- mov r0, sp
- movs r1, 0x64
- bl sub_80943A0
- movs r2, 0x9E
- lsls r2, 1
- adds r1, r6, r2
- ldr r0, [sp]
- str r0, [r1]
- add r0, sp, 0x4
- movs r1, 0x64
- bl sub_80943A0
- movs r3, 0xA0
- lsls r3, 1
- adds r1, r6, r3
- ldr r0, [sp, 0x4]
- str r0, [r1]
- mov r4, r10
- cmp r4, 0
- beq _0806BE00
- movs r0, 0xB6
- lsls r0, 1
- adds r1, r6, r0
- ldr r0, [r4]
- str r0, [r1]
- b _0806BE12
-_0806BE00:
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r6, r1
- mov r2, r10
- strh r2, [r0]
- movs r3, 0xB7
- lsls r3, 1
- adds r0, r6, r3
- strh r2, [r0]
-_0806BE12:
- movs r7, 0
- movs r4, 0
- strh r4, [r6]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r6, r1
- strb r7, [r0]
- ldr r2, _0806BFB4
- adds r0, r6, r2
- strb r7, [r0]
- movs r3, 0xFA
- lsls r3, 1
- adds r0, r6, r3
- strh r4, [r0]
- adds r1, 0xB2
- adds r0, r6, r1
- strh r4, [r0]
- adds r0, r6, 0
- adds r0, 0x78
- strb r7, [r0]
- adds r1, r6, 0
- adds r1, 0x88
- mov r2, r8
- ldr r0, [r2, 0x4]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x80
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- subs r0, 0x8
- strh r4, [r0]
- adds r0, 0x83
- strb r7, [r0]
- subs r3, 0x80
- adds r0, r6, r3
- str r4, [r0]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r6, r1
- strb r7, [r0]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_806BFC0
- adds r0, r6, 0
- adds r0, 0x60
- strb r7, [r0, 0x2]
- strb r7, [r0, 0x1]
- strb r7, [r0]
- adds r0, 0x4
- strb r7, [r0]
- movs r2, 0x80
- lsls r2, 2
- adds r0, r6, r2
- str r4, [r0]
- movs r3, 0xB2
- lsls r3, 1
- adds r1, r6, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, 0x66
- adds r1, r6, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- movs r1, 0xFE
- lsls r1, 1
- adds r0, r6, r1
- str r4, [r0]
- subs r2, 0xB9
- adds r0, r6, r2
- strb r7, [r0]
- subs r3, 0x1E
- adds r0, r6, r3
- strb r7, [r0]
- subs r1, 0x96
- adds r0, r6, r1
- strb r7, [r0]
- adds r2, 0xB1
- adds r0, r6, r2
- strh r4, [r0]
- adds r3, 0xB4
- adds r0, r6, r3
- strh r4, [r0]
- subs r1, 0x1E
- adds r0, r6, r1
- strb r7, [r0]
- subs r2, 0xAF
- adds r0, r6, r2
- strb r7, [r0]
- subs r3, 0x82
- adds r0, r6, r3
- strh r4, [r0]
- adds r0, r6, 0
- adds r0, 0xFA
- strb r7, [r0]
- adds r0, 0x2
- strb r7, [r0]
- adds r1, 0x3
- adds r0, r6, r1
- strb r7, [r0]
- adds r2, 0x3
- adds r0, r6, r2
- movs r5, 0x1
- strb r5, [r0]
- subs r3, 0x2A
- adds r0, r6, r3
- strh r4, [r0]
- adds r1, 0x5
- adds r0, r6, r1
- strh r4, [r0]
- adds r2, 0x6
- adds r0, r6, r2
- strb r7, [r0]
- adds r3, 0x5
- adds r0, r6, r3
- strb r7, [r0]
- movs r4, 0xAA
- lsls r4, 1
- adds r0, r6, r4
- strb r7, [r0]
- adds r1, 0x5
- adds r0, r6, r1
- strb r7, [r0]
- adds r2, 0x17
- adds r0, r6, r2
- strb r7, [r0]
- adds r0, r6, 0
- adds r0, 0xFD
- strb r7, [r0]
- adds r1, r6, 0
- adds r1, 0xFE
- movs r0, 0x63
- strb r0, [r1]
- adds r3, 0x5
- adds r0, r6, r3
- strb r7, [r0]
- adds r4, 0x5
- adds r0, r6, r4
- strb r7, [r0]
- movs r1, 0xAD
- lsls r1, 1
- adds r0, r6, r1
- strb r7, [r0]
- mov r0, r8
- bl GetMovementSpeed
- movs r2, 0xAB
- lsls r2, 1
- adds r1, r6, r2
- strb r5, [r1]
- movs r3, 0xAE
- lsls r3, 1
- adds r0, r6, r3
- strb r7, [r0]
- adds r4, 0x5
- adds r0, r6, r4
- strb r7, [r0]
- adds r2, 0x7
- adds r0, r6, r2
- strb r7, [r0]
- adds r3, 0x3
- adds r0, r6, r3
- strb r7, [r0]
- adds r4, 0x2
- adds r0, r6, r4
- strb r7, [r0]
- ldrh r0, [r6, 0x4]
- subs r0, 0x32
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806BF70
- strb r7, [r1]
-_0806BF70:
- mov r0, r8
- ldrh r1, [r0, 0x6]
- lsls r1, 16
- ldrh r0, [r0, 0x4]
- orrs r0, r1
- str r0, [sp, 0x8]
- mov r1, r9
- ldr r0, [r1]
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- add r2, sp, 0x8
- ldr r3, _0806BFB8
- ldr r3, [r3]
- ldr r4, _0806BFBC
- adds r3, r4
- ldrb r3, [r3]
- bl AddPokemonDungeonSprite
- mov r0, r8
- bl LoadIQSkills
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl sub_806A898
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BFB4: .4byte 0x00000145
-_0806BFB8: .4byte gDungeonGlobalData
-_0806BFBC: .4byte 0x00018208
- thumb_func_end sub_806BC68
-
- thumb_func_start sub_806BFC0
-sub_806BFC0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- adds r1, r4, 0
- adds r1, 0xA8
- movs r0, 0
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x8
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r2, r4, 0
- adds r2, 0xB4
- movs r1, 0x22
- str r1, [r2]
- adds r1, r4, 0
- adds r1, 0xBC
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x4
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x4
- strb r0, [r1]
- adds r1, 0x9
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x4
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x3
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- strb r0, [r1]
- movs r0, 0xB2
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, _0806C168
- adds r1, r4, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- movs r1, 0
- movs r7, 0x84
- lsls r7, 1
- adds r0, r4, r7
- movs r5, 0x4
-_0806C080:
- strb r1, [r0]
- strb r1, [r0, 0x5]
- adds r0, 0x1
- subs r5, 0x1
- cmp r5, 0
- bge _0806C080
- movs r0, 0
- str r0, [sp, 0x4]
- movs r5, 0
- adds r1, r4, 0
- adds r1, 0x5E
- str r1, [sp, 0x8]
- movs r2, 0x5C
- adds r2, r4
- mov r10, r2
- adds r7, r4, 0
- adds r7, 0xFD
- str r7, [sp, 0x20]
- adds r0, r4, 0
- adds r0, 0xF4
- str r0, [sp, 0xC]
- adds r1, 0x9D
- str r1, [sp, 0x1C]
- adds r2, r4, 0
- adds r2, 0xF5
- str r2, [sp, 0x10]
- subs r7, 0x7
- str r7, [sp, 0x14]
- adds r0, 0x3
- str r0, [sp, 0x18]
- adds r1, 0x4
- str r1, [sp, 0x24]
- movs r2, 0x1
- mov r9, r2
- movs r3, 0xA
- subs r7, 0xC2
- str r7, [sp, 0x28]
- subs r0, 0xCB
- str r0, [sp, 0x2C]
- adds r2, r4, 0
- adds r2, 0x24
- subs r1, 0xDF
- str r1, [sp, 0x38]
- adds r6, r4, 0
- adds r6, 0x1C
- movs r7, 0x80
- lsls r7, 1
- mov r8, r7
-_0806C0E0:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r1, r5, 0
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- bl GetPokemonAbility
- ldr r7, [sp, 0x8]
- adds r1, r7, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x30]
- ldr r3, [sp, 0x34]
- cmp r0, 0x25
- bne _0806C104
- movs r0, 0x1
- str r0, [sp, 0x4]
-_0806C104:
- ldr r1, [sp]
- cmp r1, 0
- beq _0806C11E
- adds r0, r4, 0
- adds r0, 0x14
- adds r0, r5
- mov r7, r9
- strb r7, [r0]
- adds r0, r4, 0
- adds r0, 0x16
- adds r0, r5
- mov r1, r9
- strb r1, [r0]
-_0806C11E:
- strh r3, [r6]
- ldr r7, [sp, 0x38]
- strh r3, [r7]
- strh r3, [r2]
- ldr r1, [sp, 0x2C]
- mov r0, r8
- stm r1!, {r0}
- str r1, [sp, 0x2C]
- ldr r7, [sp, 0x28]
- stm r7!, {r0}
- str r7, [sp, 0x28]
- adds r2, 0x2
- ldr r0, [sp, 0x38]
- adds r0, 0x2
- str r0, [sp, 0x38]
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806C0E0
- ldr r1, [sp, 0x4]
- cmp r1, 0
- beq _0806C170
- movs r0, 0
- bl GetWeather
- ldr r1, _0806C16C
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- mov r2, r10
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x5D
- strb r1, [r0]
- b _0806C188
- .align 2, 0
-_0806C168: .4byte 0x00000165
-_0806C16C: .4byte gUnknown_80F520C
-_0806C170:
- movs r5, 0
-_0806C172:
- movs r7, 0x2
- ldrsh r0, [r4, r7]
- adds r1, r5, 0
- bl GetPokemonType
- mov r2, r10
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x1
- ble _0806C172
-_0806C188:
- ldr r0, _0806C1D0
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0xC]
- movs r0, 0
- strh r2, [r4, 0x28]
- movs r7, 0x89
- lsls r7, 1
- adds r1, r4, r7
- strb r0, [r1]
- ldr r1, [sp, 0x20]
- strb r0, [r1]
- ldr r2, _0806C1D4
- adds r1, r4, r2
- strb r0, [r1]
- ldr r7, [sp, 0xC]
- strb r0, [r7]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldr r2, [sp, 0x10]
- strb r0, [r2]
- ldr r7, [sp, 0x14]
- strb r0, [r7]
- ldr r1, [sp, 0x18]
- strb r0, [r1]
- ldr r2, [sp, 0x24]
- strb r0, [r2]
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C1D0: .4byte gDungeonGlobalData
-_0806C1D4: .4byte 0x00000113
- thumb_func_end sub_806BFC0
-
- thumb_func_start sub_806C1D8
-sub_806C1D8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
-_0806C1E2:
- ldr r0, _0806C258
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806C25C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- adds r5, 0x1
- mov r9, r5
- cmp r0, 0
- beq _0806C244
- ldr r4, [r4, 0x70]
- ldrb r6, [r4, 0xA]
- cmp r6, 0
- blt _0806C244
- movs r5, 0
- movs r0, 0x8C
- lsls r0, 1
- mov r12, r0
- movs r2, 0x1
- mov r8, r2
- adds r3, r4, 0
- movs r7, 0xFE
-_0806C218:
- lsls r0, r5, 3
- adds r0, r4
- add r0, r12
- ldrb r1, [r0]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _0806C234
- ldr r0, _0806C260
- adds r2, r3, r0
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r2]
-_0806C234:
- adds r3, 0x8
- adds r5, 0x1
- cmp r5, 0x3
- ble _0806C218
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_806C264
-_0806C244:
- mov r5, r9
- cmp r5, 0x3
- ble _0806C1E2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C258: .4byte gDungeonGlobalData
-_0806C25C: .4byte 0x0001357c
-_0806C260: .4byte 0x00000119
- thumb_func_end sub_806C1D8
-
- thumb_func_start sub_806C264
-sub_806C264:
- push {r4,r5,lr}
- mov r12, r1
- ldr r2, _0806C31C
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806C320
- adds r0, r1
- ldr r1, [r2]
- adds r3, r1, r0
- mov r2, r12
- ldrh r0, [r2, 0xE]
- strh r0, [r3, 0x10]
- ldrh r0, [r2, 0x10]
- strh r0, [r3, 0x12]
- ldr r0, [r2, 0x18]
- str r0, [r3, 0x18]
- adds r2, 0x14
- adds r1, r3, 0
- adds r1, 0x14
- movs r4, 0x1
-_0806C28C:
- ldrb r0, [r2]
- strb r0, [r1]
- ldrb r0, [r2, 0x2]
- strb r0, [r1, 0x2]
- adds r2, 0x1
- adds r1, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _0806C28C
- ldr r4, _0806C324
- adds r0, r4, 0
- mov r5, r12
- ldrh r5, [r5, 0x4]
- adds r0, r5
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0806C2B6
- movs r0, 0xBC
- lsls r0, 1
- strh r0, [r3, 0xE]
-_0806C2B6:
- adds r1, r3, 0
- adds r1, 0x1C
- movs r0, 0x8C
- lsls r0, 1
- add r0, r12
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- mov r1, r12
- ldrb r0, [r1, 0x9]
- strb r0, [r3, 0x3]
- ldrh r0, [r1, 0xC]
- strh r0, [r3, 0x8]
- mov r0, r12
- adds r0, 0x8C
- ldr r0, [r0]
- str r0, [r3, 0x4C]
- mov r0, r12
- adds r0, 0x94
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x50
- strb r1, [r0]
- mov r2, r12
- ldr r0, [r2, 0x3C]
- str r0, [r3, 0x54]
- movs r0, 0x9E
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- str r0, [r3, 0x44]
- movs r0, 0xA0
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- str r0, [r3, 0x48]
- ldr r0, [r2, 0x60]
- str r0, [r3, 0x40]
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- ldr r0, _0806C328
- cmp r1, r0
- bne _0806C316
- ldr r0, _0806C32C
- strh r0, [r3, 0xA]
-_0806C316:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C31C: .4byte gRecruitedPokemonRef
-_0806C320: .4byte 0x00008df8
-_0806C324: .4byte 0xfffffe87
-_0806C328: .4byte 0x000055aa
-_0806C32C: .4byte 0x00005aa5
- thumb_func_end sub_806C264
-
- thumb_func_start sub_806C330
-sub_806C330:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- asrs r2, 16
- mov r12, r2
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _0806C370
- ldr r0, [r0]
- ldr r1, _0806C374
- adds r2, r0, r1
- movs r3, 0
- ldr r0, [r2, 0x40]
- cmp r3, r0
- bge _0806C382
- mov r1, r12
- lsls r0, r1, 16
- lsrs r6, r0, 16
- adds r1, r2, 0
-_0806C358:
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _0806C378
- ldrb r0, [r1, 0x4]
- cmp r0, r4
- bne _0806C378
- ldrb r0, [r1, 0x5]
- cmp r0, r5
- bne _0806C378
- strh r6, [r1]
- strb r7, [r1, 0x2]
- b _0806C3B8
- .align 2, 0
-_0806C370: .4byte gDungeonGlobalData
-_0806C374: .4byte 0x0000057c
-_0806C378:
- adds r1, 0x8
- adds r3, 0x1
- ldr r0, [r2, 0x40]
- cmp r3, r0
- blt _0806C358
-_0806C382:
- ldr r0, [r2, 0x40]
- cmp r0, 0x7
- bgt _0806C3B8
- lsls r0, 3
- adds r0, r2, r0
- movs r1, 0x1
- strb r1, [r0, 0x3]
- ldr r0, [r2, 0x40]
- lsls r0, 3
- adds r0, r2, r0
- strb r4, [r0, 0x4]
- ldr r0, [r2, 0x40]
- lsls r0, 3
- adds r0, r2, r0
- strb r5, [r0, 0x5]
- ldr r0, [r2, 0x40]
- lsls r0, 3
- adds r0, r2, r0
- mov r1, r12
- strh r1, [r0]
- ldr r0, [r2, 0x40]
- lsls r0, 3
- adds r0, r2, r0
- strb r7, [r0, 0x2]
- ldr r0, [r2, 0x40]
- adds r0, 0x1
- str r0, [r2, 0x40]
-_0806C3B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806C330
-
- thumb_func_start sub_806C3C0
-sub_806C3C0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r0, _0806C424
- ldr r0, [r0]
- ldr r1, _0806C428
- adds r7, r0, r1
- movs r6, 0
- ldr r0, [r7, 0x40]
- cmp r6, r0
- bge _0806C416
- mov r5, sp
- movs r0, 0
- mov r8, r0
- movs r2, 0
- adds r4, r7, 0
-_0806C3E2:
- ldrb r0, [r4, 0x3]
- cmp r0, 0
- beq _0806C40C
- ldrh r0, [r4]
- strh r0, [r5]
- strh r2, [r5, 0x8]
- ldrb r0, [r4, 0x4]
- strh r0, [r5, 0xC]
- ldrb r0, [r4, 0x5]
- strh r0, [r5, 0xE]
- ldrb r0, [r4, 0x2]
- strb r0, [r5, 0x2]
- str r2, [sp, 0x4]
- mov r1, r8
- strb r1, [r5, 0x10]
- mov r0, sp
- movs r1, 0x1
- str r2, [sp, 0x14]
- bl sub_806B7F8
- ldr r2, [sp, 0x14]
-_0806C40C:
- adds r4, 0x8
- adds r6, 0x1
- ldr r0, [r7, 0x40]
- cmp r6, r0
- blt _0806C3E2
-_0806C416:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C424: .4byte gDungeonGlobalData
-_0806C428: .4byte 0x0000057c
- thumb_func_end sub_806C3C0
-
- thumb_func_start sub_806C42C
-sub_806C42C:
- ldr r0, _0806C43C
- ldr r0, [r0]
- ldr r1, _0806C440
- adds r0, r1
- movs r1, 0
- str r1, [r0, 0x40]
- bx lr
- .align 2, 0
-_0806C43C: .4byte gDungeonGlobalData
-_0806C440: .4byte 0x0000057c
- thumb_func_end sub_806C42C
-
- thumb_func_start sub_806C444
-sub_806C444:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- lsls r0, 16
- asrs r6, r0, 16
- adds r0, r6, 0
- bl GetBaseHP
- adds r5, r0, 0
- movs r4, 0x2
- cmp r4, r7
- bgt _0806C478
- mov r8, sp
-_0806C462:
- mov r0, sp
- adds r1, r6, 0
- adds r2, r4, 0
- bl GetPokemonLevelData
- mov r1, r8
- ldrh r0, [r1, 0x4]
- adds r5, r0
- adds r4, 0x1
- cmp r4, r7
- ble _0806C462
-_0806C478:
- adds r0, r5, 0
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806C444
-
- thumb_func_start sub_806C488
-sub_806C488:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- mov r8, r2
- lsls r0, 16
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r8
- bl GetPokemonAttSpatt
- adds r5, r0, 0
- movs r4, 0x2
- cmp r4, r7
- bgt _0806C4C4
- mov r0, sp
- adds r0, 0x6
- add r8, r0
-_0806C4AE:
- mov r0, sp
- adds r1, r6, 0
- adds r2, r4, 0
- bl GetPokemonLevelData
- mov r1, r8
- ldrb r0, [r1]
- adds r5, r0
- adds r4, 0x1
- cmp r4, r7
- ble _0806C4AE
-_0806C4C4:
- adds r0, r5, 0
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806C488
-
- thumb_func_start sub_806C4D4
-sub_806C4D4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- mov r8, r2
- lsls r0, 16
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r8
- bl GetPokemonDefSpdef
- adds r5, r0, 0
- movs r4, 0x2
- cmp r4, r7
- bgt _0806C50E
- add r0, sp, 0x8
- add r8, r0
-_0806C4F8:
- mov r0, sp
- adds r1, r6, 0
- adds r2, r4, 0
- bl GetPokemonLevelData
- mov r1, r8
- ldrb r0, [r1]
- adds r5, r0
- adds r4, 0x1
- cmp r4, r7
- ble _0806C4F8
-_0806C50E:
- adds r0, r5, 0
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806C4D4
-
- thumb_func_start sub_806C51C
-sub_806C51C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x50
- adds r6, r0, 0
- ldr r0, [r6, 0x70]
- mov r8, r0
- ldr r0, _0806C544
- ldr r1, [r0]
- ldr r2, _0806C548
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r6
- bne _0806C54C
- movs r3, 0
- str r3, [sp, 0x38]
- b _0806C554
- .align 2, 0
-_0806C544: .4byte gDungeonGlobalData
-_0806C548: .4byte 0x000181f8
-_0806C54C:
- ldr r4, _0806C5AC
- adds r0, r1, r4
- ldrb r0, [r0]
- str r0, [sp, 0x38]
-_0806C554:
- mov r0, r8
- adds r0, 0xC8
- ldrb r1, [r0]
- str r0, [sp, 0x40]
- cmp r1, 0x2
- bne _0806C564
- movs r7, 0x1
- str r7, [sp, 0x38]
-_0806C564:
- adds r0, r6, 0
- adds r0, 0x6B
- adds r1, r6, 0
- adds r1, 0x6A
- ldrb r2, [r0]
- str r0, [sp, 0x48]
- mov r9, r1
- adds r5, r6, 0
- adds r5, 0x6D
- adds r0, 0x1
- str r0, [sp, 0x4C]
- adds r4, r6, 0
- adds r4, 0x6F
- subs r1, 0x47
- str r1, [sp, 0x44]
- mov r3, r9
- ldrb r3, [r3]
- cmp r2, r3
- bne _0806C676
- ldrb r0, [r5]
- ldr r7, [sp, 0x4C]
- ldrb r7, [r7]
- cmp r0, r7
- bne _0806C654
- ldrb r0, [r4]
- cmp r0, 0
- bne _0806C654
- movs r2, 0
- ldrh r1, [r6, 0x28]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0806C5B0
- movs r0, 0
- b _0806C5B2
- .align 2, 0
-_0806C5AC: .4byte 0x00018210
-_0806C5B0:
- lsrs r0, r1, 15
-_0806C5B2:
- cmp r0, 0
- bne _0806C5B8
- movs r2, 0x1
-_0806C5B8:
- adds r0, r6, 0
- adds r0, 0x23
- str r0, [sp, 0x44]
- cmp r2, 0
- beq _0806C654
- adds r0, r6, 0
- bl sub_806CEBC
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r6, 0
- adds r1, 0x21
- movs r0, 0x1
- strb r0, [r1]
- mov r1, r8
- adds r1, 0xFE
- ldrb r0, [r1]
- cmp r0, 0x63
- bne _0806C620
- ldr r1, [sp, 0x48]
- ldrb r0, [r1]
- cmp r0, 0xC
- bhi _0806C61C
- mov r0, r8
- adds r0, 0xC0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806C5F4
- movs r2, 0x2
- b _0806C600
-_0806C5F4:
- ldr r2, [sp, 0x44]
- ldrb r0, [r2]
- movs r2, 0x1
- cmp r0, 0x2
- bhi _0806C600
- movs r2, 0
-_0806C600:
- ldr r1, _0806C618
- movs r0, 0xD
- muls r0, r2
- ldr r7, [sp, 0x48]
- ldrb r7, [r7]
- adds r0, r7
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0806C622
- adds r0, r3, 0
- b _0806C622
- .align 2, 0
-_0806C618: .4byte gUnknown_8106EC8
-_0806C61C:
- movs r0, 0x63
- b _0806C622
-_0806C620:
- ldrb r0, [r1]
-_0806C622:
- cmp r0, 0x63
- beq _0806C654
- mov r1, r9
- strb r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x7
- ands r0, r1
- ldr r2, [sp, 0x4C]
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r4]
- mov r7, r9
- ldrb r0, [r7]
- cmp r0, 0x6
- bne _0806C654
- adds r1, r6, 0
- adds r1, 0x6E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _0806C654
- strb r3, [r7]
-_0806C654:
- ldr r1, [sp, 0x48]
- ldrb r0, [r1]
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- bne _0806C676
- ldrb r0, [r5]
- ldr r3, [sp, 0x4C]
- ldrb r3, [r3]
- cmp r0, r3
- bne _0806C676
- ldrb r0, [r4]
- movs r7, 0x28
- adds r7, r6
- mov r10, r7
- cmp r0, 0
- beq _0806C714
-_0806C676:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, [sp, 0x48]
- strb r0, [r2]
- ldr r3, [sp, 0x4C]
- mov r10, r3
- ldrb r0, [r3]
- strb r0, [r5]
- movs r7, 0
- strb r7, [r4]
- adds r0, r6, 0
- adds r0, 0x68
- movs r1, 0
- ldrsh r7, [r0, r1]
- mov r2, r8
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- mov r4, r9
- ldrb r1, [r4]
- bl sub_808DA44
- lsls r0, 24
- cmp r0, 0
- beq _0806C6A8
- movs r7, 0
-_0806C6A8:
- ldr r0, [sp, 0x38]
- cmp r0, 0
- bne _0806C6D6
- bl Random
- movs r4, 0x3
- ands r4, r0
- adds r5, r6, 0
- adds r5, 0x28
- ldr r1, [r6, 0x64]
- mov r3, r9
- ldrb r2, [r3]
- mov r0, r10
- ldrb r3, [r0]
- str r7, [sp]
- str r4, [sp, 0x4]
- ldr r4, [sp, 0x38]
- str r4, [sp, 0x8]
- adds r0, r5, 0
- bl sub_80053AC
- mov r10, r5
- b _0806C704
-_0806C6D6:
- ldr r0, _0806C774
- bl sub_80687D0
- adds r5, r0, 0
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r4, r6, 0
- adds r4, 0x28
- mov r0, r9
- ldrb r2, [r0]
- ldr r0, [sp, 0x4C]
- ldrb r3, [r0]
- str r7, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80053AC
- mov r10, r4
-_0806C704:
- mov r2, r9
- ldrb r0, [r2]
- cmp r0, 0x6
- beq _0806C714
- adds r1, r6, 0
- adds r1, 0x6E
- movs r0, 0
- strb r0, [r1]
-_0806C714:
- ldr r0, _0806C778
- ldr r1, [r0]
- ldr r3, _0806C77C
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806C784
- ldr r4, [sp, 0x48]
- ldrb r0, [r4]
- cmp r0, 0x7
- bne _0806C73C
- mov r7, r8
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl GetWalkableTiles
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0806C7E2
-_0806C73C:
- movs r0, 0xAE
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806C76A
- movs r0, 0xB0
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806C7E2
- ldr r0, _0806C780
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806C76A
- mov r0, r10
- bl sub_80054BC
- mov r0, r10
- bl sub_80054BC
-_0806C76A:
- mov r0, r10
- bl sub_80054BC
- b _0806C7E2
- .align 2, 0
-_0806C774: .4byte 0x000001a5
-_0806C778: .4byte gDungeonGlobalData
-_0806C77C: .4byte 0x0001356c
-_0806C780: .4byte 0x0000015f
-_0806C784:
- mov r0, r8
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806C7E2
- cmp r0, 0x6
- beq _0806C7E2
- ldr r2, _0806C7B4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806C7BC
- ldr r3, _0806C7B8
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806C7BC
- mov r0, r10
- bl sub_80054BC
- mov r0, r10
- bl sub_80054BC
- b _0806C7DC
- .align 2, 0
-_0806C7B4: .4byte 0x0000066c
-_0806C7B8: .4byte 0x0001c05f
-_0806C7BC:
- ldr r4, [sp, 0x48]
- ldrb r0, [r4]
- cmp r0, 0
- beq _0806C7C8
- cmp r0, 0x7
- bne _0806C7DC
-_0806C7C8:
- ldr r0, [r6, 0x70]
- movs r7, 0x82
- lsls r7, 1
- adds r0, r7
- ldr r0, [r0]
- cmp r0, 0x1
- ble _0806C7DC
- mov r0, r10
- bl sub_80054BC
-_0806C7DC:
- mov r0, r10
- bl sub_80054BC
-_0806C7E2:
- ldr r1, [r6, 0xC]
- ldr r0, [r6, 0x14]
- cmp r1, r0
- bne _0806C800
- ldr r1, [r6, 0x10]
- ldr r0, [r6, 0x18]
- cmp r1, r0
- bne _0806C800
- ldr r1, [sp, 0x44]
- ldrb r0, [r1]
- cmp r0, 0x9
- bhi _0806C806
- adds r0, 0x1
- strb r0, [r1]
- b _0806C806
-_0806C800:
- movs r0, 0
- ldr r2, [sp, 0x44]
- strb r0, [r2]
-_0806C806:
- ldr r0, [r6, 0xC]
- str r0, [r6, 0x14]
- ldr r2, [r6, 0x10]
- str r2, [r6, 0x18]
- cmp r0, 0
- bge _0806C814
- adds r0, 0xFF
-_0806C814:
- asrs r1, r0, 8
- ldr r0, _0806C88C
- ldr r3, [r0]
- ldr r4, _0806C890
- adds r0, r3, r4
- movs r7, 0
- ldrsh r0, [r0, r7]
- subs r1, r0
- str r1, [sp, 0x2C]
- ldr r0, [r6, 0x1C]
- subs r0, r2, r0
- movs r1, 0xBA
- lsls r1, 1
- add r1, r8
- ldr r1, [r1]
- subs r0, r1
- cmp r0, 0
- bge _0806C83A
- adds r0, 0xFF
-_0806C83A:
- asrs r1, r0, 8
- ldr r4, _0806C894
- adds r0, r3, r4
- movs r7, 0
- ldrsh r3, [r0, r7]
- subs r1, r3
- str r1, [sp, 0x30]
- adds r0, r2, 0
- cmp r0, 0
- bge _0806C850
- adds r0, 0xFF
-_0806C850:
- asrs r0, 8
- subs r0, r3
- mov r9, r0
- lsrs r0, 31
- add r0, r9
- asrs r0, 1
- mov r9, r0
- movs r0, 0xAB
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806C870
- movs r0, 0x1
- negs r0, r0
- add r9, r0
-_0806C870:
- movs r0, 0xAE
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806C898
- adds r0, r6, 0
- bl sub_8042768
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0806C8D8
- .align 2, 0
-_0806C88C: .4byte gDungeonGlobalData
-_0806C890: .4byte 0x000181f0
-_0806C894: .4byte 0x000181f2
-_0806C898:
- ldr r0, _0806C8B8
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806C8C6
- ldr r0, _0806C8BC
- ldr r0, [r0]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0806C8C0
- ldr r1, [sp, 0x2C]
- adds r1, 0x1
- str r1, [sp, 0x2C]
- b _0806C8C6
- .align 2, 0
-_0806C8B8: .4byte 0x0000015d
-_0806C8BC: .4byte gUnknown_202EDCC
-_0806C8C0:
- ldr r2, [sp, 0x2C]
- subs r2, 0x1
- str r2, [sp, 0x2C]
-_0806C8C6:
- movs r1, 0
- movs r0, 0xAF
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806C8D6
- movs r1, 0x1
-_0806C8D6:
- str r1, [sp, 0x34]
-_0806C8D8:
- ldr r0, [r6, 0xC]
- cmp r0, 0
- bge _0806C8E0
- adds r0, 0xFF
-_0806C8E0:
- lsls r0, 8
- lsrs r0, 16
- ldr r1, _0806C998
- ldr r2, [sp, 0x28]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x28]
- ldr r1, [r6, 0x10]
- ldr r0, [r6, 0x1C]
- subs r1, r0
- movs r5, 0xBA
- lsls r5, 1
- add r5, r8
- ldr r0, [r5]
- subs r0, r1, r0
- cmp r0, 0
- bge _0806C904
- adds r0, 0xFF
-_0806C904:
- lsls r0, 8
- lsrs r0, 16
- lsls r0, 16
- ldr r1, _0806C99C
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x28]
- add r0, sp, 0xC
- mov r1, r10
- bl sub_8005700
- mov r4, r8
- adds r4, 0x98
- ldr r0, [r4]
- add r1, sp, 0x28
- ldr r2, _0806C9A0
- ldr r2, [r2]
- ldr r3, _0806C9A4
- adds r2, r3
- ldrb r3, [r2]
- add r2, sp, 0xC
- bl sub_800F958
- adds r0, r6, 0
- bl EntityGetStatusSprites
- adds r2, r0, 0
- ldr r4, [r4]
- mov r0, r8
- movs r1, 0x4
- ldrsh r7, [r0, r1]
- movs r3, 0
- ldr r0, [sp, 0x34]
- cmp r0, 0
- beq _0806C958
- movs r0, 0xA6
- lsls r0, 1
- add r0, r8
- ldrb r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r3, r0, 31
-_0806C958:
- adds r0, r4, 0
- adds r1, r7, 0
- bl UpdateDungeonPokemonSprite
- adds r0, r6, 0
- mov r1, r9
- bl sub_8042EC8
- movs r0, 0xAE
- lsls r0, 1
- add r0, r8
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806C9BA
- mov r0, r8
- adds r0, 0xFF
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806C9AC
- ldr r1, [r5]
- ldr r0, _0806C9A8
- cmp r1, r0
- bgt _0806C9BA
- movs r2, 0x80
- lsls r2, 4
- adds r0, r1, r2
- str r0, [r5]
- movs r1, 0xC8
- lsls r1, 8
- cmp r0, r1
- ble _0806C9BA
- b _0806C9B8
- .align 2, 0
-_0806C998: .4byte 0xffff0000
-_0806C99C: .4byte 0x0000ffff
-_0806C9A0: .4byte gDungeonGlobalData
-_0806C9A4: .4byte 0x00018208
-_0806C9A8: .4byte 0x0000c7ff
-_0806C9AC:
- ldr r0, [r5]
- ldr r3, _0806CA5C
- adds r0, r3
- str r0, [r5]
- cmp r0, 0
- bge _0806C9BA
-_0806C9B8:
- str r1, [r5]
-_0806C9BA:
- ldr r4, [sp, 0x34]
- cmp r4, 0
- bne _0806C9C2
- b _0806CBDE
-_0806C9C2:
- movs r4, 0
- adds r0, r6, 0
- bl sub_806CF54
- lsls r0, 24
- lsrs r7, r0, 24
- add r1, sp, 0x1C
- ldr r2, _0806CA60
- strh r2, [r1]
- ldr r0, _0806CA64
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r4, [r1, 0x6]
- strh r4, [r1, 0x8]
- ldr r0, _0806CA68
- ldr r0, [r0]
- ldr r2, _0806CA6C
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 10
- strh r0, [r1, 0xA]
- mov r3, r8
- ldrb r0, [r3, 0x6]
- adds r5, r1, 0
- cmp r0, 0
- beq _0806CA08
- ldr r1, _0806CA70
- adds r0, r1, 0
- ldrh r2, [r3, 0x4]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0806CA08
- movs r4, 0x1
-_0806CA08:
- mov r0, r8
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806CA22
- ldr r0, _0806CA68
- ldr r0, [r0]
- ldr r3, _0806CA74
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806CA22
- movs r4, 0x1
-_0806CA22:
- cmp r4, 0
- beq _0806CA32
- ldrh r1, [r5, 0x6]
- movs r4, 0x80
- lsls r4, 3
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r5, 0x6]
-_0806CA32:
- movs r0, 0
- str r0, [sp, 0x3C]
- mov r1, r8
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _0806CA46
- ldr r2, [sp, 0x40]
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0806CA4A
-_0806CA46:
- movs r3, 0x1
- str r3, [sp, 0x3C]
-_0806CA4A:
- mov r0, r8
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _0806CA58
- cmp r0, 0x47
- bne _0806CA78
-_0806CA58:
- movs r0, 0x1
- b _0806CA7A
- .align 2, 0
-_0806CA5C: .4byte 0xfffff400
-_0806CA60: .4byte 0x0000f3ff
-_0806CA64: .4byte 0x0000ffff
-_0806CA68: .4byte gDungeonGlobalData
-_0806CA6C: .4byte 0x00018208
-_0806CA70: .4byte 0xfffffe5f
-_0806CA74: .4byte 0x0001820f
-_0806CA78:
- movs r0, 0
-_0806CA7A:
- cmp r0, 0
- bne _0806CA88
- mov r0, r8
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806CA8C
-_0806CA88:
- movs r4, 0x1
- str r4, [sp, 0x3C]
-_0806CA8C:
- mov r0, r8
- adds r0, 0xFF
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0806CB16
- mov r0, r8
- adds r0, 0xB0
- ldrb r1, [r0]
- cmp r1, 0x6
- beq _0806CAAC
- subs r0, 0x4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0806CAAC
- cmp r1, 0x2
- bne _0806CABA
-_0806CAAC:
- ldr r0, _0806CAC4
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- ldr r1, [sp, 0x2C]
- adds r1, r0
- str r1, [sp, 0x2C]
-_0806CABA:
- ldr r2, [sp, 0x38]
- cmp r2, 0
- beq _0806CACC
- ldr r0, _0806CAC8
- b _0806CAD2
- .align 2, 0
-_0806CAC4: .4byte gUnknown_202EDCC
-_0806CAC8: .4byte 0x000001a5
-_0806CACC:
- mov r3, r8
- movs r4, 0x4
- ldrsh r0, [r3, r4]
-_0806CAD2:
- movs r1, 0
- bl GetPokemonOverworldPalette
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r6, 0
- adds r0, 0x22
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806CAF8
- str r2, [sp]
- str r5, [sp, 0x4]
- mov r0, r10
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- mov r3, r9
- bl sub_800558C
- b _0806CB16
-_0806CAF8:
- cmp r1, 0x1
- bne _0806CB16
- ldr r0, _0806CBF0
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _0806CB16
- str r2, [sp]
- str r5, [sp, 0x4]
- mov r0, r10
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- mov r3, r9
- bl sub_800558C
-_0806CB16:
- ldr r0, [r6, 0xC]
- cmp r0, 0
- bge _0806CB1E
- adds r0, 0xFF
-_0806CB1E:
- asrs r0, 8
- ldrh r1, [r6, 0x38]
- adds r0, r1
- movs r1, 0xB8
- lsls r1, 1
- add r1, r8
- strh r0, [r1]
- ldr r0, [r6, 0x10]
- cmp r0, 0
- bge _0806CB34
- adds r0, 0xFF
-_0806CB34:
- asrs r0, 8
- ldrh r2, [r6, 0x3A]
- adds r0, r2
- movs r3, 0xB9
- lsls r3, 1
- add r3, r8
- strh r0, [r3]
- movs r4, 0
- ldrsh r2, [r1, r4]
- ldr r0, _0806CBF4
- ldr r1, [r0]
- ldr r4, _0806CBF8
- adds r0, r1, r4
- movs r4, 0
- ldrsh r0, [r0, r4]
- subs r4, r2, r0
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r3, _0806CBFC
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- subs r5, r2, r0
- movs r0, 0x20
- negs r0, r0
- cmp r4, r0
- blt _0806CBDE
- cmp r5, r0
- blt _0806CBDE
- ldr r0, _0806CC00
- cmp r4, r0
- bgt _0806CBDE
- cmp r5, 0xBF
- bgt _0806CBDE
- cmp r7, 0x6
- beq _0806CBDE
- adds r0, r6, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806CBDE
- ldr r0, [sp, 0x3C]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- ldr r1, _0806CC04
- adds r0, r1
- adds r3, r2, r0
- movs r0, 0xAB
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806CBDE
- movs r2, 0x8
- ldrsh r1, [r3, r2]
- adds r1, r4, r1
- ldr r0, _0806CC08
- ands r1, r0
- ldrh r2, [r3, 0x2]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x2]
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r1, r5, r1
- ldr r0, _0806CC0C
- ands r1, r0
- lsls r1, 4
- ldrh r2, [r3, 0x6]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x6]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_0806CBDE:
- add sp, 0x50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CBF0: .4byte gUnknown_202EDCC
-_0806CBF4: .4byte gDungeonGlobalData
-_0806CBF8: .4byte 0x000181f0
-_0806CBFC: .4byte 0x000181f2
-_0806CC00: .4byte 0x0000010f
-_0806CC04: .4byte gUnknown_202ED28
-_0806CC08: .4byte 0x000001ff
-_0806CC0C: .4byte 0x00000fff
- thumb_func_end sub_806C51C
-
- thumb_func_start sub_806CC10
-sub_806CC10:
- push {r4,r5,lr}
- movs r5, 0
-_0806CC14:
- ldr r0, _0806CC68
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806CC6C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806CC5C
- ldr r2, [r4, 0x70]
- movs r1, 0xB3
- lsls r1, 1
- adds r0, r2, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0806CC5C
- subs r1, 0x1
- strb r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0806CC5C
- adds r0, r2, 0
- adds r0, 0x46
- ldrb r2, [r0]
- subs r2, 0x1
- movs r0, 0x7
- ands r2, r0
- adds r0, r4, 0
- movs r1, 0
- bl sub_806CDD4
-_0806CC5C:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0806CC14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CC68: .4byte gDungeonGlobalData
-_0806CC6C: .4byte 0x000135cc
- thumb_func_end sub_806CC10
-
- thumb_func_start sub_806CC70
-sub_806CC70:
- push {r4,r5,lr}
- movs r5, 0
-_0806CC74:
- ldr r0, _0806CCAC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0806CCB0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0806CCA0
- adds r0, r4, 0
- bl sub_806CEBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806CCB4
-_0806CCA0:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0806CC74
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CCAC: .4byte gDungeonGlobalData
-_0806CCB0: .4byte 0x000135cc
- thumb_func_end sub_806CC70
-
- thumb_func_start sub_806CCB4
-sub_806CCB4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r7, [r5, 0x70]
- ldr r0, _0806CD40
- ldr r0, [r0]
- ldr r2, _0806CD44
- adds r1, r0, r2
- ldrb r6, [r1]
- ldr r3, _0806CD48
- adds r0, r3
- ldr r0, [r0]
- cmp r5, r0
- bne _0806CCDC
- movs r6, 0
-_0806CCDC:
- adds r0, r5, 0
- adds r0, 0x6B
- movs r3, 0
- strb r4, [r0]
- adds r2, r5, 0
- adds r2, 0x6A
- strb r4, [r2]
- adds r4, r7, 0
- adds r4, 0x46
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r1, 0x6D
- strb r0, [r1]
- ldrb r0, [r4]
- subs r1, 0x1
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x6F
- strb r3, [r0]
- subs r0, 0x7
- movs r3, 0
- ldrsh r4, [r0, r3]
- mov r9, r4
- adds r0, r7, 0
- adds r0, 0xC8
- ldrb r0, [r0]
- adds r7, r2, 0
- mov r8, r1
- cmp r0, 0x2
- beq _0806CD4C
- cmp r6, 0
- bne _0806CD4C
- bl Random
- movs r4, 0x3
- ands r4, r0
- adds r0, r5, 0
- adds r0, 0x28
- ldr r1, [r5, 0x64]
- ldrb r2, [r7]
- mov r7, r8
- ldrb r3, [r7]
- mov r7, r9
- str r7, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_80053AC
- b _0806CD76
- .align 2, 0
-_0806CD40: .4byte gDungeonGlobalData
-_0806CD44: .4byte 0x00018210
-_0806CD48: .4byte 0x000181f8
-_0806CD4C:
- ldr r0, _0806CD8C
- bl sub_80687D0
- adds r4, r0, 0
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r2, [r7]
- mov r6, r8
- ldrb r3, [r6]
- mov r7, r9
- str r7, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r1, r4, 0
- bl sub_80053AC
-_0806CD76:
- adds r1, r5, 0
- adds r1, 0x6E
- movs r0, 0
- strb r0, [r1]
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CD8C: .4byte 0x000001a5
- thumb_func_end sub_806CCB4
-
- .align 2,0
+ .align 2, 0 \ No newline at end of file