summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_8040094.s2
-rw-r--r--asm/code_8045A00.s4
-rw-r--r--asm/code_80521D0.s81
-rw-r--r--asm/code_8057144.s6
-rw-r--r--asm/code_8057824.s6272
-rw-r--r--asm/code_8069E0C.s6209
-rw-r--r--asm/code_80701A4.s2
-rw-r--r--asm/code_8071858.s37
-rw-r--r--asm/code_8073CF0.s2
-rw-r--r--asm/code_8075BA4.s1931
-rw-r--r--asm/code_807C4A0.s742
-rw-r--r--asm/code_807CABC.s12516
-rw-r--r--asm/code_807CD9C.s12493
-rw-r--r--data/data_80F4468.s1165
-rw-r--r--data/data_80F4DB4.s272
-rw-r--r--data/data_80F4E2C.s881
-rw-r--r--data/data_80F59C8.s4
-rw-r--r--include/charge_move.h3
-rw-r--r--include/constants/move.h10
-rw-r--r--include/dungeon_ai.h2
-rw-r--r--include/dungeon_ai_attack.h13
-rw-r--r--include/dungeon_ai_attack_1.h9
-rw-r--r--include/dungeon_capabilities_1.h2
-rw-r--r--include/dungeon_pokemon_attributes.h16
-rw-r--r--include/dungeon_pokemon_attributes_1.h21
-rw-r--r--include/map.h2
-rw-r--r--include/moves.h11
-rw-r--r--include/pokemon_3.h2
-rw-r--r--include/status_checks.h2
-rw-r--r--include/targeting.h9
-rw-r--r--include/targeting_flags.h10
-rwxr-xr-xld_script.txt14
-rw-r--r--src/charge_move.c48
-rw-r--r--src/code_8041AD0.c9
-rw-r--r--src/code_8057824.c2
-rw-r--r--src/dungeon_ai.c17
-rw-r--r--src/dungeon_ai_1.c2
-rw-r--r--src/dungeon_ai_attack.c530
-rw-r--r--src/dungeon_ai_attack_1.c76
-rw-r--r--src/dungeon_ai_item_weight.c6
-rw-r--r--src/dungeon_ai_items.c12
-rw-r--r--src/dungeon_ai_movement.c6
-rw-r--r--src/dungeon_capabilities_1.c2
-rw-r--r--src/dungeon_pokemon_attributes.c177
-rw-r--r--src/dungeon_pokemon_attributes_1.c161
-rw-r--r--src/dungeon_visibility.c2
-rw-r--r--src/items.c2
-rw-r--r--src/moves.c22
-rw-r--r--src/moves_1.c8
-rw-r--r--src/pokemon_3.c1
-rw-r--r--src/status_checks.c4
-rw-r--r--src/targeting.c11
-rw-r--r--src/targeting_flags.c16
-rw-r--r--sym_ewram.txt6
54 files changed, 21600 insertions, 22265 deletions
diff --git a/asm/code_8040094.s b/asm/code_8040094.s
index 5ea38ec..431c7ba 100644
--- a/asm/code_8040094.s
+++ b/asm/code_8040094.s
@@ -2501,7 +2501,7 @@ _080414A0:
_080414A4:
adds r0, r4, 0
adds r1, r5, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/code_8045A00.s b/asm/code_8045A00.s
index 2792ef7..944744e 100644
--- a/asm/code_8045A00.s
+++ b/asm/code_8045A00.s
@@ -4,7 +4,7 @@
.syntax unified
.text
-
+
thumb_func_start CanSee_2
CanSee_2:
push {r4,r5,lr}
@@ -566,7 +566,7 @@ _08045DF4:
_08045E08:
adds r0, r7, 0
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _08045E40
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index 648cdec..05ebda7 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -2505,7 +2505,7 @@ _080537B0: .4byte gUnknown_80FCD28
_080537B4:
adds r0, r7, 0
mov r1, r8
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
@@ -2599,7 +2599,7 @@ _08053874:
adds r0, r7, 0
mov r1, r8
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
movs r1, 0xF0
ands r1, r0
cmp r1, 0
@@ -2831,7 +2831,7 @@ _08053A4C:
movs r4, 0
adds r0, r7, 0
mov r1, r8
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
bne _08053A7E
@@ -2897,7 +2897,7 @@ _08053AE8:
adds r0, r7, 0
mov r1, r8
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
lsls r0, 16
asrs r1, r0, 16
ldr r0, _08053C88
@@ -2958,7 +2958,7 @@ _08053B5C:
adds r0, r7, 0
mov r1, r8
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
lsls r0, 16
movs r1, 0xF0
lsls r1, 12
@@ -3310,7 +3310,7 @@ _08053E4A:
adds r0, r7, 0
mov r1, r8
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
movs r1, 0xF
ands r1, r0
cmp r1, 0
@@ -5857,7 +5857,7 @@ sub_8055640:
mov r9, r3
ldr r7, [sp, 0x44]
adds r1, r5, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -6114,7 +6114,7 @@ sub_8055864:
adds r5, r2, 0
adds r6, r3, 0
adds r1, r5, 0
- bl GetMoveType_2
+ bl GetMoveTypeForPokemon
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -6521,7 +6521,7 @@ _08055B74:
adds r0, r5, 0
adds r1, r6, 0
str r2, [sp, 0x30]
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r6, 0x4]
@@ -7112,7 +7112,7 @@ _08056068:
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
movs r4, 0xF0
adds r1, r4, 0
ands r1, r0
@@ -7124,7 +7124,7 @@ _08056084:
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
adds r1, r4, 0
ands r1, r0
cmp r1, 0x80
@@ -7148,7 +7148,7 @@ _080560AE:
beq _080560CC
adds r0, r5, 0
adds r1, r7, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
bne _080560CC
@@ -7165,7 +7165,7 @@ _080560CC:
bl sub_80928C0
adds r0, r5, 0
adds r1, r7, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _08056124
@@ -8038,7 +8038,7 @@ _080567EC:
beq _08056820
mov r0, r10
ldr r1, [sp, 0x1C]
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
bne _08056820
@@ -8349,7 +8349,7 @@ _08056A66:
mov r0, r10
ldr r1, [sp, 0x1C]
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
@@ -8731,7 +8731,7 @@ _08056D44:
adds r0, r5, 0
mov r1, r8
movs r2, 0
- bl GetTargetingFlags
+ bl GetMoveTargetingFlagsForPokemon
lsls r0, 16
asrs r7, r0, 16
movs r0, 0xF
@@ -8740,7 +8740,7 @@ _08056D44:
bne _08056D86
adds r0, r5, 0
mov r1, r8
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
lsrs r4, r0, 24
mov r2, r8
@@ -9186,49 +9186,4 @@ _080570A6:
bx r1
thumb_func_end sub_8057088
- thumb_func_start sub_80570AC
-sub_80570AC:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080570C2
- b _080570E8
-_080570BE:
- movs r0, 0x1
- b _080570EA
-_080570C2:
- ldr r0, [r4, 0x70]
- movs r3, 0
- ldr r2, _080570F0
- adds r4, r0, 0
- adds r4, 0xC0
-_080570CC:
- ldrh r1, [r2]
- cmp r1, 0
- beq _080570E8
- ldrh r0, [r5, 0x2]
- cmp r0, r1
- bne _080570E0
- ldrb r0, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- beq _080570BE
-_080570E0:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x63
- ble _080570CC
-_080570E8:
- movs r0, 0
-_080570EA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080570F0: .4byte gChargeMovesToStatuses
- thumb_func_end sub_80570AC
-
- .align 2, 0
+ .align 2, 0 \ No newline at end of file
diff --git a/asm/code_8057144.s b/asm/code_8057144.s
index 795e7cf..efe2728 100644
--- a/asm/code_8057144.s
+++ b/asm/code_8057144.s
@@ -392,7 +392,7 @@ IsMoveUsable_2:
cmp r1, 0x5
bne _08057414
adds r0, r4, 0
- bl GetMoveDealsDirectDamage
+ bl MoveDealsDirectDamage
lsls r0, 24
cmp r0, 0
beq _0805743E
@@ -460,7 +460,7 @@ sub_805744C:
cmp r1, 0x5
bne _0805748E
adds r0, r4, 0
- bl GetMoveDealsDirectDamage
+ bl MoveDealsDirectDamage
lsls r0, 24
cmp r0, 0
beq _080574B6
@@ -932,7 +932,7 @@ _080577C8: .4byte gUnknown_80FD14C
_080577CC:
adds r0, r4, 0
adds r1, r6, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _080577F8
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
diff --git a/asm/code_8069E0C.s b/asm/code_8069E0C.s
new file mode 100644
index 0000000..151cdcf
--- /dev/null
+++ b/asm/code_8069E0C.s
@@ -0,0 +1,6209 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 GetMoveTypeForPokemon
+ 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 GetMoveTypeForPokemon
+ 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
diff --git a/asm/code_80701A4.s b/asm/code_80701A4.s
index 04b317b..df0521b 100644
--- a/asm/code_80701A4.s
+++ b/asm/code_80701A4.s
@@ -153,7 +153,7 @@ _080702B0:
beq _08070312
adds r0, r7, 0
adds r1, r4, 0
- bl sub_80570AC
+ bl MoveMatchesChargingStatus
lsls r0, 24
cmp r0, 0
beq _08070312
diff --git a/asm/code_8071858.s b/asm/code_8071858.s
deleted file mode 100644
index 9fc337a..0000000
--- a/asm/code_8071858.s
+++ /dev/null
@@ -1,37 +0,0 @@
- #include "asm/constants/gba_constants.inc"
- #include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start HasType
-HasType:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- ldr r0, [r0, 0x70]
- adds r2, r0, 0
- cmp r1, 0
- beq _0807187A
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r0, r1
- beq _0807187E
- adds r0, r2, 0
- adds r0, 0x5D
- ldrb r0, [r0]
- cmp r0, r3
- beq _0807187E
-_0807187A:
- movs r0, 0
- b _08071880
-_0807187E:
- movs r0, 0x1
-_08071880:
- pop {r1}
- bx r1
- thumb_func_end HasType
-
- .align 2, 0
diff --git a/asm/code_8073CF0.s b/asm/code_8073CF0.s
index 7cadcc3..36da354 100644
--- a/asm/code_8073CF0.s
+++ b/asm/code_8073CF0.s
@@ -105,7 +105,7 @@ _08073D80:
_08073D98:
adds r0, r6, 0
movs r1, 0x1
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _08073DC8
diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s
index 9d92ce6..def36e3 100644
--- a/asm/code_8075BA4.s
+++ b/asm/code_8075BA4.s
@@ -10245,7 +10245,7 @@ _0807AE32:
_0807AE6A:
adds r0, r5, 0
adds r1, r7, 0
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
beq _0807AE80
@@ -11081,7 +11081,7 @@ _0807B4C8:
mov r10, r1
mov r0, r9
adds r1, r7, 0
- bl ShouldAvoidEnemies_2
+ bl ShouldAvoidEnemiesAndShowEffect
lsls r0, 24
cmp r0, 0
bne _0807B4E4
@@ -11972,1931 +11972,4 @@ sub_807BB78:
bx lr
thumb_func_end sub_807BB78
- thumb_func_start DecideAttack
-DecideAttack:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x5C
- mov r10, r0
- ldr r0, [r0, 0x70]
- mov r8, r0
- mov r0, r10
- movs r1, 0
- bl CannotAttack
- lsls r0, 24
- cmp r0, 0
- beq _0807BBB6
- b _0807C03A
-_0807BBB6:
- mov r0, r10
- movs r1, 0x1
- bl ShouldAvoidEnemies_2
- lsls r0, 24
- cmp r0, 0
- beq _0807BBC6
- b _0807C03A
-_0807BBC6:
- mov r0, r10
- movs r1, 0x8
- bl HasTactic
- lsls r0, 24
- cmp r0, 0
- beq _0807BBD6
- b _0807C03A
-_0807BBD6:
- mov r0, r8
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0807BBF2
- ldr r0, _0807BC70
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl RollPercentChance
- lsls r0, 24
- cmp r0, 0
- beq _0807BBF2
- b _0807C03A
-_0807BBF2:
- mov r0, r8
- adds r0, 0xC0
- ldrb r1, [r0]
- str r0, [sp, 0x50]
- cmp r1, 0
- beq _0807BC7C
- movs r5, 0
- movs r4, 0x8C
- lsls r4, 1
- add r4, r8
-_0807BC06:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807BC74
- mov r0, r10
- adds r1, r4, 0
- bl sub_80570AC
- lsls r0, 24
- cmp r0, 0
- beq _0807BC74
- mov r0, r8
- adds r0, 0xC2
- ldrb r0, [r0]
- cmp r0, r5
- bne _0807BC74
- mov r0, r8
- adds r0, 0x44
- movs r1, 0x15
- bl SetAction
- adds r3, r5, 0
- mov r6, r8
- adds r6, 0x48
- cmp r5, 0
- bgt _0807BC3E
- b _0807C006
-_0807BC3E:
- ldrb r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0807BC4A
- b _0807C006
-_0807BC4A:
- movs r4, 0x2
- lsls r0, r5, 3
- movs r2, 0x8C
- lsls r2, 1
- adds r0, r2
- mov r7, r8
- adds r2, r0, r7
-_0807BC58:
- subs r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bgt _0807BC62
- b _0807C006
-_0807BC62:
- ldrb r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _0807BC58
- b _0807C006
- .align 2, 0
-_0807BC70: .4byte gConfusedAttackChance
-_0807BC74:
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, 0x3
- ble _0807BC06
-_0807BC7C:
- movs r0, 0
- str r0, [sp, 0x44]
- movs r1, 0
- str r1, [sp, 0x40]
- movs r2, 0x8C
- lsls r2, 1
- add r2, r8
- movs r4, 0x1
- movs r3, 0x4
- movs r5, 0x3
-_0807BC90:
- ldrb r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0807BCB0
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0807BCA8
- ldr r7, [sp, 0x40]
- adds r7, 0x1
- str r7, [sp, 0x40]
-_0807BCA8:
- ldrb r0, [r2, 0x4]
- ldr r1, [sp, 0x44]
- adds r1, r0
- str r1, [sp, 0x44]
-_0807BCB0:
- adds r2, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _0807BC90
- ldr r2, [sp, 0x44]
- cmp r2, 0
- bne _0807BCF8
- add r4, sp, 0x2C
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r4, 0
- bl InitPokemonMove
- mov r0, sp
- mov r1, r10
- adds r2, r4, 0
- bl FindMoveTarget
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BCDE
- b _0807C03A
-_0807BCDE:
- mov r0, r8
- adds r0, 0x44
- movs r1, 0x17
- bl SetAction
- mov r0, sp
- ldrb r1, [r0, 0x1]
- movs r0, 0x7
- ands r0, r1
- mov r1, r8
- adds r1, 0x46
- strb r0, [r1]
- b _0807C008
-_0807BCF8:
- mov r0, r10
- movs r1, 0xB
- bl HasIQSkill
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x48]
- mov r0, r10
- movs r1, 0x6
- bl HasIQSkill
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x3C]
- movs r7, 0
- str r7, [sp, 0x44]
- mov r0, sp
- adds r0, 0x28
- str r0, [sp, 0x4C]
- adds r2, r0, 0
- movs r1, 0x1
- adds r0, 0x3
-_0807BD2A:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r2
- bge _0807BD2A
- ldr r1, [sp, 0x3C]
- cmp r1, 0
- beq _0807BDC0
- movs r2, 0x63
- movs r4, 0
- movs r5, 0
- movs r3, 0x8C
- lsls r3, 1
- add r3, r8
- b _0807BD98
-_0807BD46:
- cmp r5, 0
- beq _0807BD7A
- ldrb r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0807BD7A
- adds r0, r4, 0x1
- adds r6, r5, 0x1
- cmp r0, r5
- bge _0807BD74
- cmp r2, 0x1
- bgt _0807BD74
- adds r1, r4, 0
- cmp r1, r5
- bge _0807BD74
- ldr r2, [sp, 0x4C]
- movs r4, 0
-_0807BD6A:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, r5
- blt _0807BD6A
-_0807BD74:
- ldrb r2, [r3, 0x4]
- adds r4, r5, 0
- b _0807BD86
-_0807BD7A:
- ldrb r1, [r3, 0x4]
- cmp r1, r2
- ble _0807BD82
- adds r1, r2, 0
-_0807BD82:
- adds r2, r1, 0
- adds r6, r5, 0x1
-_0807BD86:
- adds r5, r6, 0
- cmp r5, 0x3
- bgt _0807BDA2
- lsls r0, r5, 3
- movs r7, 0x8C
- lsls r7, 1
- adds r0, r7
- mov r1, r8
- adds r3, r1, r0
-_0807BD98:
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807BD46
-_0807BDA2:
- adds r0, r4, 0x1
- cmp r0, r5
- bge _0807BDC0
- cmp r2, 0x1
- bgt _0807BDC0
- adds r1, r4, 0
- cmp r1, r5
- bge _0807BDC0
- ldr r2, [sp, 0x4C]
- movs r3, 0
-_0807BDB6:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, r5
- blt _0807BDB6
-_0807BDC0:
- movs r5, 0
- movs r2, 0
- str r2, [sp, 0x54]
- add r4, sp, 0x4
- movs r7, 0x8C
- lsls r7, 1
- add r7, r8
- adds r6, r7, 0
- mov r9, sp
- mov r0, sp
- str r0, [sp, 0x58]
-_0807BDD6:
- movs r2, 0
- mov r1, r9
- strb r2, [r1]
- ldrb r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807BE64
- ldr r1, [sp, 0x4C]
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807BE64
- mov r0, r10
- adds r1, r5, 0
- ldr r2, [sp, 0x3C]
- bl IsMoveUsable
- lsls r0, 24
- cmp r0, 0
- beq _0807BE64
- ldrb r1, [r7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0807BE64
- movs r0, 0x1
- mov r2, r9
- strb r0, [r2]
- ldr r1, [sp, 0x50]
- ldrb r0, [r1]
- cmp r0, 0xB
- bne _0807BE38
- ldrh r0, [r7, 0x2]
- cmp r0, 0x80
- bne _0807BE24
- movs r2, 0
- str r2, [r4]
- b _0807BE64
-_0807BE24:
- mov r0, r10
- adds r1, r6, 0
- bl GetMoveType_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _0807BE4A
- movs r0, 0x1
- b _0807BE54
-_0807BE38:
- ldr r1, [sp, 0x48]
- cmp r1, 0
- beq _0807BE4A
- ldr r0, [sp, 0x58]
- mov r1, r10
- adds r2, r6, 0
- bl FindMoveTarget
- b _0807BE54
-_0807BE4A:
- adds r0, r6, 0
- bl GetMoveWeight
- lsls r0, 24
- lsrs r0, 24
-_0807BE54:
- str r0, [r4]
- add r0, sp, 0x4
- ldr r2, [sp, 0x54]
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [sp, 0x44]
- adds r1, r0
- str r1, [sp, 0x44]
-_0807BE64:
- ldr r2, [sp, 0x54]
- adds r2, 0x8
- str r2, [sp, 0x54]
- adds r4, 0x8
- adds r7, 0x8
- adds r6, 0x8
- movs r0, 0x8
- add r9, r0
- ldr r1, [sp, 0x58]
- adds r1, 0x8
- str r1, [sp, 0x58]
- adds r5, 0x1
- cmp r5, 0x3
- ble _0807BDD6
- movs r0, 0
- str r0, [sp, 0x24]
- mov r0, r10
- movs r1, 0x17
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- bne _0807BECA
- ldr r2, [sp, 0x50]
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _0807BECA
- add r0, sp, 0x20
- movs r1, 0x1
- strb r1, [r0]
- ldrb r0, [r2]
- cmp r0, 0xB
- bne _0807BEAA
- str r1, [sp, 0x24]
- b _0807BEC2
-_0807BEAA:
- ldr r7, [sp, 0x48]
- cmp r7, 0
- beq _0807BEB4
- movs r0, 0x2
- b _0807BEC0
-_0807BEB4:
- ldr r0, _0807BEE8
- ldr r2, [sp, 0x40]
- lsls r1, r2, 1
- adds r1, r0
- movs r7, 0
- ldrsh r0, [r1, r7]
-_0807BEC0:
- str r0, [sp, 0x24]
-_0807BEC2:
- ldr r0, [sp, 0x24]
- ldr r1, [sp, 0x44]
- adds r1, r0
- str r1, [sp, 0x44]
-_0807BECA:
- ldr r2, [sp, 0x48]
- cmp r2, 0
- beq _0807BF2A
- movs r5, 0
- movs r7, 0
- str r7, [sp, 0x44]
- add r0, sp, 0x4
- adds r3, r0, 0
- mov r2, sp
- movs r4, 0x4
-_0807BEDE:
- ldrb r1, [r2]
- cmp r1, 0
- bne _0807BEEC
- str r1, [r3]
- b _0807BEF4
- .align 2, 0
-_0807BEE8: .4byte gUnknown_80F4E22
-_0807BEEC:
- ldr r1, [r3]
- cmp r5, r1
- bge _0807BEF4
- adds r5, r1, 0
-_0807BEF4:
- adds r3, 0x8
- adds r2, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _0807BEDE
- movs r4, 0
- movs r6, 0
- adds r1, r0, 0
- adds r3, r1, 0
- mov r2, sp
-_0807BF08:
- ldrb r0, [r2]
- cmp r0, 0
- beq _0807BF1E
- ldr r0, [r1]
- cmp r5, r0
- beq _0807BF16
- str r6, [r1]
-_0807BF16:
- ldr r0, [r3]
- ldr r7, [sp, 0x44]
- adds r7, r0
- str r7, [sp, 0x44]
-_0807BF1E:
- adds r1, 0x8
- adds r3, 0x8
- adds r2, 0x8
- adds r4, 0x1
- cmp r4, 0x4
- ble _0807BF08
-_0807BF2A:
- ldr r0, [sp, 0x44]
- cmp r0, 0
- bne _0807BF32
- b _0807C03A
-_0807BF32:
- bl DungeonRandomCapped
- str r0, [sp, 0x38]
- movs r1, 0
- mov r9, r1
- mov r0, r10
- movs r1, 0x17
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- bne _0807BF5A
- add r1, sp, 0x34
- mov r0, r10
- movs r2, 0x1
- bl TargetRegularAttack
- lsls r0, 24
- lsrs r6, r0, 24
- b _0807BF5E
-_0807BF5A:
- movs r6, 0
- str r6, [sp, 0x34]
-_0807BF5E:
- movs r5, 0
- mov r4, sp
- movs r7, 0
-_0807BF64:
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807C010
- add r0, sp, 0x4
- adds r0, r7
- ldr r0, [r0]
- cmp r0, 0
- beq _0807C010
- add r9, r0
- ldr r2, [sp, 0x38]
- cmp r9, r2
- blt _0807C010
- cmp r5, 0x4
- bne _0807BF9C
- cmp r6, 0
- beq _0807C03A
- mov r0, r8
- adds r0, 0x44
- movs r1, 0x32
- bl SetAction
- ldr r0, [sp, 0x34]
- movs r1, 0x7
- ands r0, r1
- mov r1, r8
- adds r1, 0x46
- strb r0, [r1]
- b _0807C008
-_0807BF9C:
- movs r0, 0x8C
- lsls r0, 1
- mov r9, r0
- adds r2, r7, r0
- add r2, r8
- adds r0, r4, 0
- mov r1, r10
- bl FindMoveTarget
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807C01A
- mov r0, r8
- adds r0, 0x44
- movs r1, 0x15
- bl SetAction
- adds r3, r5, 0
- mov r6, r8
- adds r6, 0x48
- movs r1, 0x46
- add r1, r8
- mov r12, r1
- cmp r5, 0
- ble _0807BFFC
- mov r2, r8
- adds r0, r2, r7
- add r0, r9
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807BFFC
- movs r7, 0x2
- lsls r0, r5, 3
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- adds r2, r0, r2
-_0807BFEA:
- subs r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- ble _0807BFFC
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0807BFEA
-_0807BFFC:
- ldrb r1, [r4, 0x1]
- movs r0, 0x7
- ands r0, r1
- mov r2, r12
- strb r0, [r2]
-_0807C006:
- strb r3, [r6]
-_0807C008:
- mov r0, r10
- bl TargetTileInFront
- b _0807C03A
-_0807C010:
- adds r4, 0x8
- adds r7, 0x8
- adds r5, 0x1
- cmp r5, 0x4
- ble _0807BF64
-_0807C01A:
- cmp r6, 0
- beq _0807C03A
- mov r0, r8
- adds r0, 0x44
- movs r1, 0x32
- bl SetAction
- ldr r0, [sp, 0x34]
- movs r1, 0x7
- ands r0, r1
- mov r1, r8
- adds r1, 0x46
- strb r0, [r1]
- mov r0, r10
- bl TargetTileInFront
-_0807C03A:
- add sp, 0x5C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DecideAttack
-
- thumb_func_start FindMoveTarget
-FindMoveTarget:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x8]
- adds r6, r1, 0
- mov r10, r2
- movs r0, 0x1
- str r0, [sp, 0x10]
- ldr r4, [r6, 0x70]
- movs r1, 0
- mov r8, r1
- ldr r1, _0807C0C8
- movs r2, 0
- adds r0, r1, 0x7
-_0807C06E:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _0807C06E
- adds r0, r6, 0
- mov r1, r10
- movs r2, 0x1
- bl GetTargetingFlags
- lsls r0, 16
- asrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x8
- bl HasIQSkill
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0
- ldr r2, [sp, 0x8]
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0807C0B0
- mov r0, r10
- bl GetMoveDealsDirectDamage
- lsls r0, 24
- cmp r0, 0
- beq _0807C0C4
-_0807C0B0:
- ldr r3, [sp, 0x14]
- cmp r3, 0
- beq _0807C0CC
- adds r0, r6, 0
- mov r1, r10
- bl CanUseWithStatusChecker
- lsls r0, 24
- cmp r0, 0
- bne _0807C0CC
-_0807C0C4:
- movs r0, 0x1
- b _0807C48C
- .align 2, 0
-_0807C0C8: .4byte gCanAttackInDirection
-_0807C0CC:
- movs r0, 0xF0
- ldr r1, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _0807C0DE
- cmp r0, 0x10
- beq _0807C0DE
- cmp r0, 0x20
- bne _0807C19C
-_0807C0DE:
- adds r0, r4, 0
- adds r0, 0xE8
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _0807C128
- subs r0, 0xA2
- ldrb r7, [r0]
- ldr r0, _0807C118
- adds r0, r7, r0
- ldrb r3, [r0]
- cmp r3, 0
- beq _0807C0F8
- b _0807C3F6
-_0807C0F8:
- strb r1, [r0]
- ldr r0, _0807C11C
- add r0, r8
- strb r7, [r0]
- ldr r0, _0807C120
- mov r4, r8
- lsls r2, r4, 2
- adds r0, r2, r0
- movs r1, 0x63
- str r1, [r0]
- ldr r0, _0807C124
- adds r2, r0
- str r3, [r2]
- movs r0, 0x1
- add r8, r0
- b _0807C3F6
- .align 2, 0
-_0807C118: .4byte gCanAttackInDirection
-_0807C11C: .4byte gUnknown_202F388
-_0807C120: .4byte gPotentialTargetWeights_2
-_0807C124: .4byte gUnknown_202F3B0
-_0807C128:
- movs r7, 0
- movs r0, 0xF0
- ldr r1, [sp, 0xC]
- ands r0, r1
- lsls r5, r0, 16
-_0807C132:
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- ldr r1, _0807C198
- lsls r2, r7, 2
- adds r2, r1
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r4, 0x6
- ldrsh r1, [r6, r4]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- adds r1, r2
- bl GetMapTileAtPosition
- ldr r4, [r0, 0x10]
- cmp r4, 0
- beq _0807C18E
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807C18E
- asrs r0, r5, 16
- cmp r0, 0x10
- beq _0807C178
- cmp r0, 0x20
- beq _0807C178
- adds r0, r6, 0
- adds r1, r7, 0
- bl CanAttackInFront
- lsls r0, 24
- cmp r0, 0
- beq _0807C18E
-_0807C178:
- mov r0, r10
- str r0, [sp]
- ldr r1, [sp, 0x14]
- str r1, [sp, 0x4]
- mov r0, r8
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r4, 0
- bl WeightMoveIfUsable
- mov r8, r0
-_0807C18E:
- adds r7, 0x1
- cmp r7, 0x7
- ble _0807C132
- b _0807C3F6
- .align 2, 0
-_0807C198: .4byte gAdjacentTileOffsets
-_0807C19C:
- cmp r0, 0x30
- bne _0807C1F0
- movs r5, 0
-_0807C1A2:
- ldr r0, _0807C1E8
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807C1EC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807C1E0
- adds r0, r6, 0
- adds r1, r4, 0
- bl CanSee
- lsls r0, 24
- cmp r0, 0
- beq _0807C1E0
- mov r3, r10
- str r3, [sp]
- ldr r0, [sp, 0x14]
- str r0, [sp, 0x4]
- mov r0, r8
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r4, 0
- bl WeightMoveIfUsable
- mov r8, r0
-_0807C1E0:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807C1A2
- b _0807C3F6
- .align 2, 0
-_0807C1E8: .4byte gDungeonGlobalData
-_0807C1EC: .4byte 0x000135cc
-_0807C1F0:
- cmp r0, 0x40
- bne _0807C2A8
- movs r7, 0
- ldr r1, _0807C2A4
- mov r9, r1
-_0807C1FA:
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- mov r3, r9
- movs r4, 0
- ldrsh r1, [r3, r4]
- adds r0, r1
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- movs r4, 0x2
- ldrsh r2, [r3, r4]
- adds r1, r2
- bl GetMapTileAtPosition
- adds r4, r0, 0
- adds r0, r6, 0
- adds r1, r7, 0
- bl CanAttackInFront
- lsls r0, 24
- cmp r0, 0
- beq _0807C296
- ldr r5, [r4, 0x10]
- cmp r5, 0
- beq _0807C250
- adds r0, r5, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807C250
- mov r4, r8
- mov r0, r10
- str r0, [sp]
- ldr r1, [sp, 0x14]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r5, 0
- bl WeightMoveIfUsable
- mov r8, r0
- cmp r4, r8
- bne _0807C296
-_0807C250:
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- mov r3, r9
- movs r4, 0
- ldrsh r1, [r3, r4]
- lsls r1, 1
- adds r0, r1
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- movs r4, 0x2
- ldrsh r2, [r3, r4]
- lsls r2, 1
- adds r1, r2
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldr r5, [r4, 0x10]
- cmp r5, 0
- beq _0807C296
- adds r0, r5, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807C296
- mov r0, r10
- str r0, [sp]
- ldr r1, [sp, 0x14]
- str r1, [sp, 0x4]
- mov r0, r8
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r5, 0
- bl WeightMoveIfUsable
- mov r8, r0
-_0807C296:
- movs r2, 0x4
- add r9, r2
- adds r7, 0x1
- cmp r7, 0x7
- ble _0807C1FA
- b _0807C3F6
- .align 2, 0
-_0807C2A4: .4byte gAdjacentTileOffsets
-_0807C2A8:
- cmp r0, 0x50
- beq _0807C2B0
- cmp r0, 0x80
- bne _0807C394
-_0807C2B0:
- movs r3, 0x1
- str r3, [sp, 0x18]
- cmp r0, 0x50
- bne _0807C2BC
- movs r4, 0xA
- str r4, [sp, 0x18]
-_0807C2BC:
- movs r0, 0
- mov r9, r0
-_0807C2C0:
- ldr r0, _0807C37C
- ldr r0, [r0]
- mov r2, r9
- lsls r1, r2, 2
- ldr r3, _0807C380
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807C370
- cmp r6, r4
- beq _0807C370
- adds r1, r4, 0x4
- adds r0, r6, 0x4
- bl CalculateFacingDir
- adds r5, r0, 0
- ldr r0, _0807C384
- adds r7, r5, r0
- ldrb r0, [r7]
- cmp r0, 0
- bne _0807C370
- adds r0, r6, 0
- adds r1, r4, 0
- bl CanSee
- lsls r0, 24
- cmp r0, 0
- beq _0807C370
- adds r0, r6, 0
- adds r1, r4, 0
- ldr r2, [sp, 0x18]
- bl IsTargetInLineRange
- lsls r0, 24
- cmp r0, 0
- beq _0807C370
- ldr r0, [sp, 0x14]
- str r0, [sp]
- ldr r0, [sp, 0xC]
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r10
- bl CanUseStatusMove
- lsls r0, 24
- cmp r0, 0
- beq _0807C370
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- ldr r3, [sp, 0x18]
- bl IsTargetStraightAhead
- lsls r0, 24
- cmp r0, 0
- beq _0807C370
- movs r0, 0x1
- strb r0, [r7]
- ldr r0, _0807C388
- add r0, r8
- strb r5, [r0]
- adds r0, r6, 0
- mov r1, r10
- bl GetMoveType_2
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- adds r2, r4, 0
- bl WeightMove
- ldr r1, _0807C38C
- mov r3, r8
- lsls r2, r3, 2
- adds r1, r2, r1
- str r0, [r1]
- ldr r0, _0807C390
- adds r2, r0
- str r4, [r2]
- movs r4, 0x1
- add r8, r4
-_0807C370:
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x13
- ble _0807C2C0
- b _0807C3F6
- .align 2, 0
-_0807C37C: .4byte gDungeonGlobalData
-_0807C380: .4byte 0x000135cc
-_0807C384: .4byte gCanAttackInDirection
-_0807C388: .4byte gUnknown_202F388
-_0807C38C: .4byte gPotentialTargetWeights_2
-_0807C390: .4byte gUnknown_202F3B0
-_0807C394:
- cmp r0, 0x60
- bne _0807C3DC
- movs r5, 0
-_0807C39A:
- ldr r0, _0807C3D4
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807C3D8
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807C3CA
- mov r3, r10
- str r3, [sp]
- ldr r0, [sp, 0x14]
- str r0, [sp, 0x4]
- mov r0, r8
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r4, 0
- bl WeightMoveIfUsable
- mov r8, r0
-_0807C3CA:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807C39A
- b _0807C3F6
- .align 2, 0
-_0807C3D4: .4byte gDungeonGlobalData
-_0807C3D8: .4byte 0x000135cc
-_0807C3DC:
- cmp r0, 0x70
- bne _0807C3F6
- mov r1, r10
- str r1, [sp]
- ldr r2, [sp, 0x14]
- str r2, [sp, 0x4]
- mov r0, r8
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- adds r3, r6, 0
- bl WeightMoveIfUsable
- mov r8, r0
-_0807C3F6:
- mov r3, r8
- cmp r3, 0
- bne _0807C402
- ldr r4, [sp, 0x8]
- strb r3, [r4]
- b _0807C48A
-_0807C402:
- movs r4, 0
- movs r3, 0
- mov r0, r8
- cmp r0, 0
- ble _0807C420
- ldr r2, _0807C464
- mov r1, r8
-_0807C410:
- ldr r0, [r2]
- cmp r3, r0
- bge _0807C418
- adds r3, r0, 0
-_0807C418:
- adds r2, 0x4
- subs r1, 0x1
- cmp r1, 0
- bne _0807C410
-_0807C420:
- mov r1, r8
- cmp r1, 0
- ble _0807C43A
- movs r5, 0
- ldr r2, _0807C464
-_0807C42A:
- ldr r0, [r2]
- cmp r3, r0
- beq _0807C432
- str r5, [r2]
-_0807C432:
- adds r2, 0x4
- subs r1, 0x1
- cmp r1, 0
- bne _0807C42A
-_0807C43A:
- str r3, [sp, 0x10]
- mov r2, r8
- cmp r2, 0
- ble _0807C450
- ldr r2, _0807C464
- mov r1, r8
-_0807C446:
- ldm r2!, {r0}
- adds r4, r0
- subs r1, 0x1
- cmp r1, 0
- bne _0807C446
-_0807C450:
- adds r0, r4, 0
- bl DungeonRandomCapped
- adds r2, r0, 0
- movs r1, 0
- cmp r1, r8
- bge _0807C478
- ldr r3, _0807C464
- b _0807C470
- .align 2, 0
-_0807C464: .4byte gPotentialTargetWeights_2
-_0807C468:
- adds r3, 0x4
- adds r1, 0x1
- cmp r1, r8
- bge _0807C478
-_0807C470:
- ldr r0, [r3]
- subs r2, r0
- cmp r2, 0
- bge _0807C468
-_0807C478:
- movs r0, 0x1
- ldr r3, [sp, 0x8]
- strb r0, [r3]
- ldr r0, _0807C49C
- adds r0, r1, r0
- ldrb r0, [r0]
- strb r0, [r3, 0x1]
- movs r0, 0x8
- str r0, [r3, 0x4]
-_0807C48A:
- ldr r0, [sp, 0x10]
-_0807C48C:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807C49C: .4byte gUnknown_202F388
- thumb_func_end FindMoveTarget
-
- thumb_func_start IsTargetInLineRange
-IsTargetInLineRange:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- subs r3, r1, r0
- cmp r3, 0
- bge _0807C4B6
- negs r3, r3
-_0807C4B6:
- movs r6, 0x6
- ldrsh r1, [r4, r6]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- subs r1, r0
- cmp r1, 0
- bge _0807C4C6
- negs r1, r1
-_0807C4C6:
- adds r0, r1, 0
- cmp r1, r3
- bge _0807C4CE
- adds r0, r3, 0
-_0807C4CE:
- cmp r0, 0xA
- bgt _0807C578
- cmp r0, r2
- bgt _0807C578
- movs r6, 0x1
- negs r6, r6
- cmp r3, r1
- bne _0807C516
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- ldrh r2, [r4, 0x4]
- ldrh r3, [r5, 0x4]
- cmp r1, r0
- bge _0807C4FE
- movs r6, 0x6
- ldrsh r1, [r4, r6]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- blt _0807C574
- cmp r1, r0
- bgt _0807C574
-_0807C4FE:
- lsls r1, r2, 16
- lsls r0, r3, 16
- movs r6, 0x7
- cmp r1, r0
- ble _0807C570
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- cmp r1, r0
- ble _0807C570
- b _0807C574
-_0807C516:
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- movs r7, 0x4
- ldrsh r0, [r5, r7]
- ldrh r2, [r4, 0x4]
- ldrh r3, [r5, 0x4]
- cmp r1, r0
- bne _0807C532
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- blt _0807C574
-_0807C532:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- bge _0807C546
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- beq _0807C574
-_0807C546:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- bne _0807C55A
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- bgt _0807C574
-_0807C55A:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- ble _0807C570
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0807C570
- movs r6, 0x6
-_0807C570:
- cmp r6, 0
- blt _0807C578
-_0807C574:
- movs r0, 0x1
- b _0807C57A
-_0807C578:
- movs r0, 0
-_0807C57A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end IsTargetInLineRange
-
- thumb_func_start WeightMoveIfUsable
-WeightMoveIfUsable:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r2, 0
- adds r7, r3, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r2, [r5, 0x70]
- ldr r1, [r5, 0x4]
- ldr r0, [r7, 0x4]
- cmp r1, r0
- beq _0807C5BC
- movs r0, 0xF0
- mov r1, r9
- ands r0, r1
- cmp r0, 0x30
- beq _0807C5BC
- cmp r0, 0x60
- beq _0807C5BC
- cmp r0, 0x70
- bne _0807C5C4
-_0807C5BC:
- adds r0, r2, 0
- adds r0, 0x46
- ldrb r4, [r0]
- b _0807C5CE
-_0807C5C4:
- adds r0, r5, 0x4
- adds r1, r7, 0x4
- bl CalculateFacingDir
- adds r4, r0, 0
-_0807C5CE:
- ldr r0, _0807C638
- adds r0, r4
- mov r8, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C624
- mov r0, r10
- str r0, [sp]
- mov r0, r9
- adds r1, r5, 0
- adds r2, r7, 0
- ldr r3, [sp, 0x24]
- bl CanUseStatusMove
- lsls r0, 24
- cmp r0, 0
- beq _0807C624
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0807C63C
- adds r0, r6, r0
- strb r4, [r0]
- adds r0, r5, 0
- ldr r1, [sp, 0x24]
- bl GetMoveType_2
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- mov r1, r9
- adds r2, r7, 0
- bl WeightMove
- ldr r1, _0807C640
- lsls r2, r6, 2
- adds r1, r2, r1
- str r0, [r1]
- ldr r0, _0807C644
- adds r2, r0
- str r7, [r2]
- adds r6, 0x1
-_0807C624:
- adds r0, r6, 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
-_0807C638: .4byte gCanAttackInDirection
-_0807C63C: .4byte gUnknown_202F388
-_0807C640: .4byte gPotentialTargetWeights_2
-_0807C644: .4byte gUnknown_202F3B0
- thumb_func_end WeightMoveIfUsable
-
- thumb_func_start CanUseStatusMove
-CanUseStatusMove:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r1, [sp, 0x1C]
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r7, 0
- movs r0, 0xF
- ands r0, r6
- adds r1, r0, 0
- cmp r1, 0
- bne _0807C686
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl CanTarget
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807C6E0
- movs r7, 0x1
- b _0807C6E4
-_0807C686:
- cmp r1, 0x1
- beq _0807C6BE
- cmp r1, 0x2
- bne _0807C692
- ldr r1, [r4, 0x70]
- b _0807C69C
-_0807C692:
- cmp r1, 0x5
- bne _0807C6B6
- ldr r1, [r4, 0x70]
- cmp r5, r4
- beq _0807C6B2
-_0807C69C:
- movs r7, 0x1
- ldrb r0, [r1, 0x8]
- cmp r0, 0x1
- beq _0807C6B2
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0807C6B2
- cmp r0, 0x1
- bne _0807C6E0
-_0807C6B2:
- movs r0, 0
- b _0807C7A0
-_0807C6B6:
- cmp r1, 0x6
- bne _0807C6D4
- cmp r5, r4
- beq _0807C6B2
-_0807C6BE:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl CanTarget
- lsls r0, 24
- cmp r0, 0
- bne _0807C6E0
- movs r7, 0x1
- b _0807C6E4
-_0807C6D4:
- subs r0, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0807C6E0
- movs r7, 0x1
-_0807C6E0:
- cmp r7, 0
- beq _0807C79E
-_0807C6E4:
- mov r0, r9
- cmp r0, 0
- beq _0807C77C
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl CanUseWithStatusChecker_2
- lsls r0, 24
- cmp r0, 0
- beq _0807C6B2
- movs r1, 0xF0
- lsls r1, 4
- ands r1, r6
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _0807C78A
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- beq _0807C76E
- movs r0, 0xC0
- lsls r0, 2
- cmp r1, r0
- bne _0807C720
- adds r0, r4, 0
- bl HasNegativeStatus
- b _0807C774
-_0807C720:
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0807C730
- adds r0, r4, 0
- bl IsSleeping
- b _0807C774
-_0807C730:
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _0807C75A
- ldr r1, [r4, 0x70]
- adds r0, r1, 0
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _0807C74E
- adds r0, r1, 0
- adds r0, 0x5D
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0807C6B2
-_0807C74E:
- adds r0, r1, 0
- adds r0, 0xF5
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807C79E
- b _0807C6B2
-_0807C75A:
- movs r0, 0xA0
- lsls r0, 3
- cmp r1, r0
- bne _0807C79E
- adds r0, r4, 0
- bl HasNegativeStatus
- lsls r0, 24
- cmp r0, 0
- bne _0807C79E
-_0807C76E:
- adds r0, r4, 0
- bl HasQuarterHPOrLess
-_0807C774:
- lsls r0, 24
- cmp r0, 0
- bne _0807C79E
- b _0807C6B2
-_0807C77C:
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r6
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bne _0807C79E
-_0807C78A:
- mov r0, r8
- movs r1, 0x2
- bl GetMoveAccuracy
- adds r4, r0, 0
- movs r0, 0x64
- bl DungeonRandomCapped
- cmp r0, r4
- bge _0807C6B2
-_0807C79E:
- adds r0, r7, 0
-_0807C7A0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CanUseStatusMove
-
- thumb_func_start WeightMove
-WeightMove:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- mov r8, r2
- lsls r1, 16
- asrs r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- movs r6, 0x1
- ldr r4, [r2, 0x70]
- adds r7, r4, 0
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _0807C7D6
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0807C7DA
-_0807C7D6:
- movs r0, 0x1
- b _0807C848
-_0807C7DA:
- adds r0, r5, 0
- movs r1, 0x9
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807C804
- ldr r0, _0807C7FC
- ldr r0, [r0]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- ldr r2, _0807C800
- adds r0, r2
- adds r0, r1
- ldrb r6, [r0]
- b _0807C846
- .align 2, 0
-_0807C7FC: .4byte gDungeonGlobalData
-_0807C800: .4byte 0x0000363c
-_0807C804:
- adds r0, r5, 0
- movs r1, 0xA
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807C828
- ldrb r1, [r7, 0xE]
- movs r2, 0xC
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0807C846
- movs r6, 0x1
- b _0807C846
-_0807C828:
- adds r0, r5, 0
- movs r1, 0xB
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807C846
- adds r0, r5, 0
- mov r1, r8
- mov r2, r9
- bl WeightWeakTypePicker
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0807C846:
- adds r0, r6, 0
-_0807C848:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end WeightMove
-
- thumb_func_start TargetRegularAttack
-TargetRegularAttack:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x50
- adds r7, r0, 0
- str r1, [sp, 0x40]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x44]
- ldr r0, [r7, 0x70]
- movs r1, 0
- mov r8, r1
- adds r1, r0, 0
- adds r1, 0x46
- ldrb r6, [r1]
- adds r0, 0xE8
- ldrb r0, [r0]
- movs r3, 0x8
- mov r10, r3
- cmp r0, 0x1
- bne _0807C886
- movs r0, 0x1
- mov r10, r0
-_0807C886:
- movs r4, 0
- adds r0, r7, 0
- movs r1, 0x9
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- bne _0807C8A4
- adds r0, r7, 0
- movs r1, 0xA
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _0807C8A6
-_0807C8A4:
- movs r4, 0x1
-_0807C8A6:
- str r4, [sp, 0x48]
- adds r0, r7, 0
- movs r1, 0x8
- bl HasIQSkill
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4C]
- movs r1, 0
- mov r9, r1
- cmp r9, r10
- bge _0807C952
-_0807C8BE:
- movs r0, 0x7
- ands r6, r0
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- ldr r1, _0807C95C
- lsls r2, r6, 2
- adds r2, r1
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r3, 0x6
- ldrsh r1, [r7, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- adds r1, r2
- bl GetMapTileAtPosition
- ldr r5, [r0, 0x10]
- cmp r5, 0
- beq _0807C948
- adds r0, r5, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807C948
- adds r0, r7, 0
- adds r1, r6, 0
- bl CanAttackInFront
- lsls r0, 24
- cmp r0, 0
- beq _0807C948
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0
- ldr r3, [sp, 0x44]
- bl CanTarget
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807C948
- ldr r0, [sp, 0x4C]
- cmp r0, 0
- beq _0807C922
- ldr r0, [r5, 0x70]
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807C948
-_0807C922:
- mov r1, r8
- lsls r4, r1, 2
- mov r3, sp
- adds r0, r3, r4
- str r6, [r0]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0
- bl WeightMove
- add r1, sp, 0x20
- adds r1, r4
- str r0, [r1]
- ldr r0, [sp, 0x48]
- cmp r0, 0
- beq _0807C960
- movs r1, 0x1
- add r8, r1
-_0807C948:
- movs r3, 0x1
- add r9, r3
- adds r6, 0x1
- cmp r9, r10
- blt _0807C8BE
-_0807C952:
- mov r0, r8
- cmp r0, 0
- bne _0807C966
- movs r0, 0
- b _0807C9E8
- .align 2, 0
-_0807C95C: .4byte gAdjacentTileOffsets
-_0807C960:
- ldr r1, [sp, 0x40]
- str r6, [r1]
- b _0807C9E6
-_0807C966:
- movs r4, 0
- movs r3, 0
- mov r0, r8
- cmp r0, 0
- ble _0807C984
- add r1, sp, 0x20
- mov r2, r8
-_0807C974:
- ldr r0, [r1]
- cmp r3, r0
- bge _0807C97C
- adds r3, r0, 0
-_0807C97C:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bne _0807C974
-_0807C984:
- mov r1, r8
- cmp r1, 0
- ble _0807C9A0
- movs r5, 0
- add r1, sp, 0x20
- mov r2, r8
-_0807C990:
- ldr r0, [r1]
- cmp r3, r0
- beq _0807C998
- str r5, [r1]
-_0807C998:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bne _0807C990
-_0807C9A0:
- mov r3, r8
- cmp r3, 0
- ble _0807C9B4
- add r1, sp, 0x20
- mov r2, r8
-_0807C9AA:
- ldm r1!, {r0}
- adds r4, r0
- subs r2, 0x1
- cmp r2, 0
- bne _0807C9AA
-_0807C9B4:
- adds r0, r4, 0
- bl DungeonRandomCapped
- adds r1, r0, 0
- movs r2, 0
- cmp r2, r8
- bge _0807C9DC
- ldr r0, [sp, 0x20]
- subs r1, r0
- cmp r1, 0
- blt _0807C9DC
- add r3, sp, 0x20
-_0807C9CC:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, r8
- bge _0807C9DC
- ldr r0, [r3]
- subs r1, r0
- cmp r1, 0
- bge _0807C9CC
-_0807C9DC:
- lsls r0, r2, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [sp, 0x40]
- str r0, [r1]
-_0807C9E6:
- movs r0, 0x1
-_0807C9E8:
- add sp, 0x50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end TargetRegularAttack
-
.align 2, 0 \ No newline at end of file
diff --git a/asm/code_807C4A0.s b/asm/code_807C4A0.s
new file mode 100644
index 0000000..ef16f46
--- /dev/null
+++ b/asm/code_807C4A0.s
@@ -0,0 +1,742 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start IsTargetInLineRange
+IsTargetInLineRange:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ subs r3, r1, r0
+ cmp r3, 0
+ bge _0807C4B6
+ negs r3, r3
+_0807C4B6:
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807C4C6
+ negs r1, r1
+_0807C4C6:
+ adds r0, r1, 0
+ cmp r1, r3
+ bge _0807C4CE
+ adds r0, r3, 0
+_0807C4CE:
+ cmp r0, 0xA
+ bgt _0807C578
+ cmp r0, r2
+ bgt _0807C578
+ movs r6, 0x1
+ negs r6, r6
+ cmp r3, r1
+ bne _0807C516
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bge _0807C4FE
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ blt _0807C574
+ cmp r1, r0
+ bgt _0807C574
+_0807C4FE:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ movs r6, 0x7
+ cmp r1, r0
+ ble _0807C570
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ ble _0807C570
+ b _0807C574
+_0807C516:
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bne _0807C532
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ blt _0807C574
+_0807C532:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bge _0807C546
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ beq _0807C574
+_0807C546:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bne _0807C55A
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bgt _0807C574
+_0807C55A:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ ble _0807C570
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0807C570
+ movs r6, 0x6
+_0807C570:
+ cmp r6, 0
+ blt _0807C578
+_0807C574:
+ movs r0, 0x1
+ b _0807C57A
+_0807C578:
+ movs r0, 0
+_0807C57A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end IsTargetInLineRange
+
+ thumb_func_start WeightMoveIfUsable
+WeightMoveIfUsable:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r2, 0
+ adds r7, r3, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r2, [r5, 0x70]
+ ldr r1, [r5, 0x4]
+ ldr r0, [r7, 0x4]
+ cmp r1, r0
+ beq _0807C5BC
+ movs r0, 0xF0
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0x30
+ beq _0807C5BC
+ cmp r0, 0x60
+ beq _0807C5BC
+ cmp r0, 0x70
+ bne _0807C5C4
+_0807C5BC:
+ adds r0, r2, 0
+ adds r0, 0x46
+ ldrb r4, [r0]
+ b _0807C5CE
+_0807C5C4:
+ adds r0, r5, 0x4
+ adds r1, r7, 0x4
+ bl CalculateFacingDir
+ adds r4, r0, 0
+_0807C5CE:
+ ldr r0, _0807C638
+ adds r0, r4
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C624
+ mov r0, r10
+ str r0, [sp]
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r7, 0
+ ldr r3, [sp, 0x24]
+ bl CanUseStatusMove
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C624
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1]
+ ldr r0, _0807C63C
+ adds r0, r6, r0
+ strb r4, [r0]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x24]
+ bl GetMoveTypeForPokemon
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ mov r1, r9
+ adds r2, r7, 0
+ bl WeightMove
+ ldr r1, _0807C640
+ lsls r2, r6, 2
+ adds r1, r2, r1
+ str r0, [r1]
+ ldr r0, _0807C644
+ adds r2, r0
+ str r7, [r2]
+ adds r6, 0x1
+_0807C624:
+ adds r0, r6, 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
+_0807C638: .4byte gCanAttackInDirection
+_0807C63C: .4byte gPotentialAttackTargetDirections
+_0807C640: .4byte gPotentialTargetWeights_2
+_0807C644: .4byte gPotentialTargets
+ thumb_func_end WeightMoveIfUsable
+
+ thumb_func_start CanUseStatusMove
+CanUseStatusMove:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r1, [sp, 0x1C]
+ lsls r0, 16
+ asrs r6, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r7, 0
+ movs r0, 0xF
+ ands r0, r6
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0807C686
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CanTarget
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807C6E0
+ movs r7, 0x1
+ b _0807C6E4
+_0807C686:
+ cmp r1, 0x1
+ beq _0807C6BE
+ cmp r1, 0x2
+ bne _0807C692
+ ldr r1, [r4, 0x70]
+ b _0807C69C
+_0807C692:
+ cmp r1, 0x5
+ bne _0807C6B6
+ ldr r1, [r4, 0x70]
+ cmp r5, r4
+ beq _0807C6B2
+_0807C69C:
+ movs r7, 0x1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ beq _0807C6B2
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0807C6B2
+ cmp r0, 0x1
+ bne _0807C6E0
+_0807C6B2:
+ movs r0, 0
+ b _0807C7A0
+_0807C6B6:
+ cmp r1, 0x6
+ bne _0807C6D4
+ cmp r5, r4
+ beq _0807C6B2
+_0807C6BE:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CanTarget
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C6E0
+ movs r7, 0x1
+ b _0807C6E4
+_0807C6D4:
+ subs r0, 0x3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0807C6E0
+ movs r7, 0x1
+_0807C6E0:
+ cmp r7, 0
+ beq _0807C79E
+_0807C6E4:
+ mov r0, r9
+ cmp r0, 0
+ beq _0807C77C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl CanUseWithStatusChecker_2
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C6B2
+ movs r1, 0xF0
+ lsls r1, 4
+ ands r1, r6
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _0807C78A
+ movs r0, 0x80
+ lsls r0, 2
+ cmp r1, r0
+ beq _0807C76E
+ movs r0, 0xC0
+ lsls r0, 2
+ cmp r1, r0
+ bne _0807C720
+ adds r0, r4, 0
+ bl HasNegativeStatus
+ b _0807C774
+_0807C720:
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0807C730
+ adds r0, r4, 0
+ bl IsSleeping
+ b _0807C774
+_0807C730:
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _0807C75A
+ ldr r1, [r4, 0x70]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ beq _0807C74E
+ adds r0, r1, 0
+ adds r0, 0x5D
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0807C6B2
+_0807C74E:
+ adds r0, r1, 0
+ adds r0, 0xF5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807C79E
+ b _0807C6B2
+_0807C75A:
+ movs r0, 0xA0
+ lsls r0, 3
+ cmp r1, r0
+ bne _0807C79E
+ adds r0, r4, 0
+ bl HasNegativeStatus
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C79E
+_0807C76E:
+ adds r0, r4, 0
+ bl HasQuarterHPOrLess
+_0807C774:
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C79E
+ b _0807C6B2
+_0807C77C:
+ movs r0, 0xF0
+ lsls r0, 4
+ ands r0, r6
+ movs r1, 0x80
+ lsls r1, 1
+ cmp r0, r1
+ bne _0807C79E
+_0807C78A:
+ mov r0, r8
+ movs r1, 0x2
+ bl GetMoveAccuracy
+ adds r4, r0, 0
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ cmp r0, r4
+ bge _0807C6B2
+_0807C79E:
+ adds r0, r7, 0
+_0807C7A0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CanUseStatusMove
+
+ thumb_func_start WeightMove
+WeightMove:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ mov r8, r2
+ lsls r1, 16
+ asrs r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r6, 0x1
+ ldr r4, [r2, 0x70]
+ adds r7, r4, 0
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ beq _0807C7D6
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _0807C7DA
+_0807C7D6:
+ movs r0, 0x1
+ b _0807C848
+_0807C7DA:
+ adds r0, r5, 0
+ movs r1, 0x9
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C804
+ ldr r0, _0807C7FC
+ ldr r0, [r0]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ ldr r2, _0807C800
+ adds r0, r2
+ adds r0, r1
+ ldrb r6, [r0]
+ b _0807C846
+ .align 2, 0
+_0807C7FC: .4byte gDungeonGlobalData
+_0807C800: .4byte 0x0000363c
+_0807C804:
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C828
+ ldrb r1, [r7, 0xE]
+ movs r2, 0xC
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _0807C846
+ movs r6, 0x1
+ b _0807C846
+_0807C828:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C846
+ adds r0, r5, 0
+ mov r1, r8
+ mov r2, r9
+ bl WeightWeakTypePicker
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0807C846:
+ adds r0, r6, 0
+_0807C848:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end WeightMove
+
+ thumb_func_start TargetRegularAttack
+TargetRegularAttack:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x50
+ adds r7, r0, 0
+ str r1, [sp, 0x40]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x44]
+ ldr r0, [r7, 0x70]
+ movs r1, 0
+ mov r8, r1
+ adds r1, r0, 0
+ adds r1, 0x46
+ ldrb r6, [r1]
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ movs r3, 0x8
+ mov r10, r3
+ cmp r0, 0x1
+ bne _0807C886
+ movs r0, 0x1
+ mov r10, r0
+_0807C886:
+ movs r4, 0
+ adds r0, r7, 0
+ movs r1, 0x9
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C8A4
+ adds r0, r7, 0
+ movs r1, 0xA
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C8A6
+_0807C8A4:
+ movs r4, 0x1
+_0807C8A6:
+ str r4, [sp, 0x48]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl HasIQSkill
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4C]
+ movs r1, 0
+ mov r9, r1
+ cmp r9, r10
+ bge _0807C952
+_0807C8BE:
+ movs r0, 0x7
+ ands r6, r0
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ ldr r1, _0807C95C
+ lsls r2, r6, 2
+ adds r2, r1
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r3, 0x6
+ ldrsh r1, [r7, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ bl GetMapTileAtPosition
+ ldr r5, [r0, 0x10]
+ cmp r5, 0
+ beq _0807C948
+ adds r0, r5, 0
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807C948
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl CanAttackInFront
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C948
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0
+ ldr r3, [sp, 0x44]
+ bl CanTarget
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807C948
+ ldr r0, [sp, 0x4C]
+ cmp r0, 0
+ beq _0807C922
+ ldr r0, [r5, 0x70]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0807C948
+_0807C922:
+ mov r1, r8
+ lsls r4, r1, 2
+ mov r3, sp
+ adds r0, r3, r4
+ str r6, [r0]
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl WeightMove
+ add r1, sp, 0x20
+ adds r1, r4
+ str r0, [r1]
+ ldr r0, [sp, 0x48]
+ cmp r0, 0
+ beq _0807C960
+ movs r1, 0x1
+ add r8, r1
+_0807C948:
+ movs r3, 0x1
+ add r9, r3
+ adds r6, 0x1
+ cmp r9, r10
+ blt _0807C8BE
+_0807C952:
+ mov r0, r8
+ cmp r0, 0
+ bne _0807C966
+ movs r0, 0
+ b _0807C9E8
+ .align 2, 0
+_0807C95C: .4byte gAdjacentTileOffsets
+_0807C960:
+ ldr r1, [sp, 0x40]
+ str r6, [r1]
+ b _0807C9E6
+_0807C966:
+ movs r4, 0
+ movs r3, 0
+ mov r0, r8
+ cmp r0, 0
+ ble _0807C984
+ add r1, sp, 0x20
+ mov r2, r8
+_0807C974:
+ ldr r0, [r1]
+ cmp r3, r0
+ bge _0807C97C
+ adds r3, r0, 0
+_0807C97C:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0807C974
+_0807C984:
+ mov r1, r8
+ cmp r1, 0
+ ble _0807C9A0
+ movs r5, 0
+ add r1, sp, 0x20
+ mov r2, r8
+_0807C990:
+ ldr r0, [r1]
+ cmp r3, r0
+ beq _0807C998
+ str r5, [r1]
+_0807C998:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0807C990
+_0807C9A0:
+ mov r3, r8
+ cmp r3, 0
+ ble _0807C9B4
+ add r1, sp, 0x20
+ mov r2, r8
+_0807C9AA:
+ ldm r1!, {r0}
+ adds r4, r0
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0807C9AA
+_0807C9B4:
+ adds r0, r4, 0
+ bl DungeonRandomCapped
+ adds r1, r0, 0
+ movs r2, 0
+ cmp r2, r8
+ bge _0807C9DC
+ ldr r0, [sp, 0x20]
+ subs r1, r0
+ cmp r1, 0
+ blt _0807C9DC
+ add r3, sp, 0x20
+_0807C9CC:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, r8
+ bge _0807C9DC
+ ldr r0, [r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807C9CC
+_0807C9DC:
+ lsls r0, r2, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [sp, 0x40]
+ str r0, [r1]
+_0807C9E6:
+ movs r0, 0x1
+_0807C9E8:
+ add sp, 0x50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end TargetRegularAttack
+
+ .align 2, 0 \ No newline at end of file
diff --git a/asm/code_807CABC.s b/asm/code_807CABC.s
index e0d716d..888017d 100644
--- a/asm/code_807CABC.s
+++ b/asm/code_807CABC.s
@@ -327,12520 +327,4 @@ _0807CD54:
bx r0
thumb_func_end sub_807CB3C
- thumb_func_start GetTargetingFlags
-GetTargetingFlags:
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldrh r0, [r4, 0x2]
- cmp r0, 0xED
- bne _0807CD88
- cmp r5, 0
- bne _0807CD88
- adds r0, r3, 0
- movs r1, 0xE
- bl HasType
- lsls r0, 24
- cmp r0, 0
- bne _0807CD88
- movs r0, 0x73
- b _0807CD94
-_0807CD88:
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetMoveTargetingFlags
- lsls r0, 16
- asrs r0, 16
-_0807CD94:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetTargetingFlags
-
- thumb_func_start sub_807CD9C
-sub_807CD9C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- mov r9, r0
- adds r6, r1, 0
- adds r4, r2, 0
- movs r0, 0xA
- str r0, [sp, 0x24]
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- beq _0807CDC4
- ldr r0, _0807CDC0
- b _0807CDFE
- .align 2, 0
-_0807CDC0: .4byte gUnknown_80FC9E8
-_0807CDC4:
- cmp r9, r6
- bne _0807CDE4
- ldr r0, _0807CDDC
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807CDE0
- ldr r2, [r0]
- adds r0, r6, 0
- b _0807CE02
- .align 2, 0
-_0807CDDC: .4byte gAvailablePokemonNames
-_0807CDE0: .4byte gUnknown_80FCA10
-_0807CDE4:
- ldr r0, _0807CE0C
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- adds r0, r6, 0
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807CE28
- ldr r0, _0807CE10
-_0807CDFE:
- ldr r2, [r0]
- mov r0, r9
-_0807CE02:
- adds r1, r6, 0
- bl sub_80522F4
- b _0807D02A
- .align 2, 0
-_0807CE0C: .4byte gAvailablePokemonNames
-_0807CE10: .4byte gUnknown_80FCBCC
-_0807CE14:
- str r0, [sp, 0x28]
- b _0807CF26
-_0807CE18:
- ldrh r0, [r5]
- movs r1, 0x3
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- mov r10, r0
- b _0807CF20
-_0807CE28:
- ldr r1, [r6, 0x70]
- adds r2, r4, 0x4
- movs r3, 0x7
- adds r0, r2, 0
- ands r0, r3
- adds r1, 0x46
- strb r0, [r1]
- movs r0, 0x7
- ands r2, r0
- adds r0, r6, 0
- movs r1, 0x6
- bl sub_806CDD4
- ldr r1, _0807D03C
- adds r0, r6, 0
- bl sub_80421C0
- ldr r0, _0807D040
- ldr r2, [r0]
- mov r0, r9
- adds r1, r6, 0
- bl sub_80522F4
- movs r1, 0x1
- mov r10, r1
- movs r2, 0
- str r2, [sp, 0x28]
- lsls r1, r4, 2
- ldr r0, _0807D044
- adds r1, r0
- mov r8, r1
- add r7, sp, 0x18
-_0807CE68:
- ldr r2, [r6, 0x4]
- str r2, [sp, 0x18]
- ldrh r0, [r7]
- mov r3, r8
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0807D048
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x18]
- asrs r0, r1, 16
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- lsls r0, 16
- ldr r2, _0807D04C
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x18]
- movs r3, 0
- ldrsh r0, [r7, r3]
- cmp r0, 0
- blt _0807CF20
- asrs r1, r2, 16
- cmp r1, 0
- blt _0807CF20
- cmp r0, 0x37
- bgt _0807CF20
- cmp r1, 0x1F
- bgt _0807CF20
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- lsls r0, 10
- str r0, [sp, 0x2C]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- lsls r0, 10
- str r0, [sp, 0x30]
- movs r4, 0x5
-_0807CEBC:
- adds r0, r6, 0
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_804539C
- adds r0, r6, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807CED8
- movs r0, 0x19
- bl sub_803E46C
-_0807CED8:
- subs r4, 0x1
- cmp r4, 0
- bge _0807CEBC
- movs r1, 0
- ldrsh r0, [r7, r1]
- ldr r1, [sp, 0x18]
- asrs r1, 16
- bl GetMapTileAtPosition
- adds r5, r0, 0
- ldr r0, [r5, 0x10]
- cmp r0, 0
- bne _0807CE14
- add r4, sp, 0x18
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80705F0
- lsls r0, 24
- cmp r0, 0
- bne _0807CE18
- movs r2, 0
- ldrsh r1, [r7, r2]
- movs r3, 0x2
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r3, 0x1
- bl sub_80694C0
- ldr r0, [sp, 0x24]
- subs r0, 0x1
- str r0, [sp, 0x24]
- cmp r0, 0
- bgt _0807CE68
- movs r1, 0x1
- mov r10, r1
-_0807CF20:
- mov r2, r10
- cmp r2, 0
- bne _0807CF4E
-_0807CF26:
- adds r1, r6, 0x4
- adds r0, r6, 0
- bl sub_807D068
- ldr r0, _0807D050
- movs r3, 0
- ldrsh r2, [r0, r3]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r0, _0807D054
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- mov r0, r9
- adds r1, r6, 0
- movs r3, 0
- bl sub_806F370
-_0807CF4E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807D02A
- ldr r0, [sp, 0x28]
- cmp r0, 0
- beq _0807CF9E
- add r4, sp, 0x1C
- ldr r1, _0807D058
- adds r0, r4, 0
- bl InitPokemonMove
- ldr r0, [sp, 0x28]
- adds r1, r4, 0
- bl sub_80571F0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807CF9E
- mov r0, r9
- ldr r1, [sp, 0x28]
- bl sub_807A96C
- ldr r0, _0807D050
- movs r1, 0
- ldrsh r2, [r0, r1]
- str r4, [sp]
- str r4, [sp, 0x4]
- ldr r0, _0807D05C
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- str r4, [sp, 0x14]
- mov r0, r9
- ldr r1, [sp, 0x28]
- movs r3, 0
- bl sub_806F370
-_0807CF9E:
- bl sub_8044B28
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0807D02A
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807D02A
- adds r0, r6, 0
- bl sub_806A5B8
- adds r4, r6, 0x4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80706A4
- lsls r0, 24
- cmp r0, 0
- beq _0807CFD8
- adds r0, r6, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_807D148
-_0807CFD8:
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807D02A
- adds r0, r6, 0
- movs r1, 0x8
- bl sub_806CE68
- ldr r0, [r6, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0807D014
- ldr r1, _0807D060
- ldr r0, [r1]
- strb r5, [r0, 0x1]
- ldr r0, [r1]
- movs r2, 0xB8
- lsls r2, 3
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- adds r0, r4, 0
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
-_0807D014:
- adds r0, r6, 0
- bl sub_806A5B8
- ldr r0, _0807D060
- ldr r0, [r0]
- ldr r3, _0807D064
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8075900
-_0807D02A:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D03C: .4byte 0x000001a3
-_0807D040: .4byte gUnknown_80F8A0C
-_0807D044: .4byte gAdjacentTileOffsets
-_0807D048: .4byte 0xffff0000
-_0807D04C: .4byte 0x0000ffff
-_0807D050: .4byte gUnknown_80F4F90
-_0807D054: .4byte 0x00000219
-_0807D058: .4byte 0x00000163
-_0807D05C: .4byte 0x0000021a
-_0807D060: .4byte gDungeonGlobalData
-_0807D064: .4byte 0x00003a08
- thumb_func_end sub_807CD9C
-
- thumb_func_start sub_807D068
-sub_807D068:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- movs r0, 0
- ldrsh r2, [r1, r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 11
- movs r2, 0xC0
- lsls r2, 4
- adds r2, r0
- mov r10, r2
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r1, 0x80
- lsls r1, 5
- adds r1, r0
- mov r9, r1
- ldr r0, [r6, 0xC]
- subs r0, r2
- cmp r0, 0
- bge _0807D0A4
- negs r0, r0
-_0807D0A4:
- ldr r1, [r6, 0x10]
- cmp r0, 0xB
- bgt _0807D0B8
- mov r2, r9
- subs r0, r1, r2
- cmp r0, 0
- bge _0807D0B4
- negs r0, r0
-_0807D0B4:
- cmp r0, 0xB
- ble _0807D11E
-_0807D0B8:
- movs r0, 0
- mov r8, r0
- ldr r5, [r6, 0xC]
- adds r4, r1, 0
- mov r1, r10
- subs r0, r1, r5
- movs r1, 0xC
- bl __divsi3
- str r0, [sp, 0x8]
- mov r2, r9
- subs r0, r2, r4
- movs r1, 0xC
- bl __divsi3
- str r0, [sp, 0xC]
- mov r0, sp
- str r0, [sp, 0x10]
- movs r7, 0xB
-_0807D0DE:
- ldr r1, [sp, 0x8]
- adds r5, r1
- ldr r2, [sp, 0xC]
- adds r4, r2
- str r5, [sp]
- ldr r0, [sp, 0x10]
- str r4, [r0, 0x4]
- mov r0, r8
- bl sub_8009C7C
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- mov r1, sp
- bl sub_804535C
- adds r0, r6, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807D114
- movs r0, 0x1A
- bl sub_803E46C
-_0807D114:
- movs r1, 0xAA
- add r8, r1
- subs r7, 0x1
- cmp r7, 0
- bge _0807D0DE
-_0807D11E:
- mov r2, r10
- str r2, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [r6, 0x1C]
- adds r0, r6, 0
- mov r1, sp
- bl sub_804535C
- movs r0, 0x1A
- bl sub_803E46C
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807D068
-
- thumb_func_start sub_807D148
-sub_807D148:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
- str r3, [sp, 0x4]
- ldr r0, [r5, 0x70]
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _0807D180
- adds r1, r5, 0
- movs r2, 0
- bl SetMessageArgument
- adds r0, r5, 0
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807D188
- ldr r0, _0807D184
- b _0807D194
- .align 2, 0
-_0807D180: .4byte gAvailablePokemonNames
-_0807D184: .4byte gUnknown_80FCAE8
-_0807D188:
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- beq _0807D1A4
- ldr r0, _0807D1A0
-_0807D194:
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
- b _0807D3A8
- .align 2, 0
-_0807D1A0: .4byte gUnknown_80FC97C
-_0807D1A4:
- mov r2, r9
- cmp r2, 0x1
- bne _0807D1DC
- ldr r0, _0807D1D0
- ldr r0, [r0]
- ldr r3, _0807D1D4
- adds r0, r3
- ldr r1, [r0]
- ldr r0, [r5, 0x4]
- cmp r1, r0
- bne _0807D1DC
- ldr r0, _0807D1D8
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
- mov r0, r8
- adds r1, r5, 0
- bl sub_8076D10
- b _0807D3A8
- .align 2, 0
-_0807D1D0: .4byte gDungeonGlobalData
-_0807D1D4: .4byte 0x0000e21c
-_0807D1D8: .4byte gUnknown_80FC9A0
-_0807D1DC:
- ldr r0, _0807D27C
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- mov r0, r8
- adds r1, r5, 0
- bl sub_80421AC
- adds r0, r5, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807D252
- mov r0, r10
- adds r0, 0x46
- ldrb r4, [r0]
- ldr r1, [r5, 0x1C]
- movs r2, 0x80
- lsls r2, 4
- adds r1, r2
- str r1, [r5, 0x1C]
- ldr r2, _0807D280
- adds r6, r0, 0
- cmp r1, r2
- bgt _0807D252
- movs r7, 0x7
-_0807D21E:
- ldr r0, _0807D284
- ldr r0, [r0]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0807D23C
- adds r4, 0x1
- ands r4, r7
- adds r0, r4, 0
- ands r0, r7
- strb r0, [r6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806CE68
-_0807D23C:
- movs r0, 0x22
- bl sub_803E46C
- ldr r1, [r5, 0x1C]
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3
- str r1, [r5, 0x1C]
- ldr r0, _0807D280
- cmp r1, r0
- ble _0807D21E
-_0807D252:
- mov r0, r9
- cmp r0, 0x1
- beq _0807D288
- cmp r0, 0x1
- bcc _0807D264
- cmp r0, 0x2
- beq _0807D2B0
- cmp r0, 0x3
- beq _0807D2C8
-_0807D264:
- mov r0, sp
- bl sub_8083660
- lsls r0, 24
- cmp r0, 0
- bne _0807D2CE
- ldr r0, [r5, 0x4]
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _0807D2CE
- .align 2, 0
-_0807D27C: .4byte gUnknown_80FC584
-_0807D280: .4byte 0x00009fff
-_0807D284: .4byte gUnknown_202EDCC
-_0807D288:
- ldr r0, _0807D2A8
- ldr r1, [r0]
- ldr r2, _0807D2AC
- adds r1, r2
- mov r0, sp
- bl sub_808384C
- lsls r0, 24
- cmp r0, 0
- bne _0807D2CE
- ldr r0, [r5, 0x4]
- str r0, [sp]
- movs r3, 0x1
- str r3, [sp, 0x8]
- b _0807D2CE
- .align 2, 0
-_0807D2A8: .4byte gDungeonGlobalData
-_0807D2AC: .4byte 0x0000e21c
-_0807D2B0:
- mov r0, sp
- ldr r1, [sp, 0x4]
- bl sub_808384C
- lsls r0, 24
- cmp r0, 0
- bne _0807D2CE
- ldr r0, [r5, 0x4]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _0807D2CE
-_0807D2C8:
- ldr r1, [sp, 0x4]
- ldr r0, [r1]
- str r0, [sp]
-_0807D2CE:
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- adds r0, r5, 0
- movs r3, 0x1
- bl sub_80694C0
- adds r0, r5, 0
- movs r1, 0
- bl sub_804535C
- adds r0, r5, 0
- bl sub_807BB78
- movs r0, 0x1
- bl sub_803F580
- adds r0, r5, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807D340
- mov r1, r10
- adds r1, 0x46
- ldrb r4, [r1]
- movs r0, 0x9C
- lsls r0, 8
- str r0, [r5, 0x1C]
- adds r6, r1, 0
- movs r7, 0x7
-_0807D310:
- ldr r0, _0807D3B8
- ldr r0, [r0]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0807D32E
- adds r4, 0x1
- ands r4, r7
- adds r0, r4, 0
- ands r0, r7
- strb r0, [r6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806CE68
-_0807D32E:
- movs r0, 0x22
- bl sub_803E46C
- ldr r0, [r5, 0x1C]
- ldr r1, _0807D3BC
- adds r0, r1
- str r0, [r5, 0x1C]
- cmp r0, 0
- bgt _0807D310
-_0807D340:
- movs r4, 0
- str r4, [r5, 0x1C]
- movs r0, 0x22
- bl sub_803E46C
- ldr r2, [sp, 0x8]
- cmp r2, 0
- beq _0807D35C
- ldr r0, _0807D3C0
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
-_0807D35C:
- mov r3, r9
- cmp r3, 0x1
- bne _0807D36A
- mov r0, r8
- adds r1, r5, 0
- bl sub_8076D10
-_0807D36A:
- mov r1, r10
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- beq _0807D392
- adds r0, r5, 0x4
- bl sub_804AC20
- ldr r1, _0807D3C4
- ldr r0, [r1]
- strb r4, [r0, 0x1]
- ldr r0, [r1]
- movs r2, 0xB8
- lsls r2, 3
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- movs r0, 0
- bl sub_807EC28
-_0807D392:
- adds r0, r5, 0
- bl sub_806A5B8
- ldr r0, _0807D3C4
- ldr r0, [r0]
- ldr r3, _0807D3C8
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8075900
-_0807D3A8:
- 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
-_0807D3B8: .4byte gUnknown_202EDCC
-_0807D3BC: .4byte 0xfffffc00
-_0807D3C0: .4byte gUnknown_80FCB14
-_0807D3C4: .4byte gDungeonGlobalData
-_0807D3C8: .4byte 0x00003a08
- thumb_func_end sub_807D148
-
- thumb_func_start sub_807D3CC
-sub_807D3CC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- movs r2, 0
- ldr r4, _0807D448
- ldr r0, [r4]
- ldr r1, _0807D44C
- adds r0, r1
- ldrb r6, [r0]
- cmp r6, 0
- bne _0807D3E8
- movs r6, 0x2
-_0807D3E8:
- mov r0, r8
- str r2, [sp]
- bl GetEntityRoomIndex
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [sp]
- cmp r1, 0xFF
- bne _0807D450
- mov r3, r8
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- subs r5, r0, r6
- adds r0, r6
- cmp r5, r0
- bgt _0807D4A8
-_0807D408:
- mov r3, r8
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- subs r4, r0, r6
- adds r0, r6
- adds r7, r5, 0x1
- cmp r4, r0
- bgt _0807D438
-_0807D418:
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp]
- bl sub_807D4E0
- ldr r2, [sp]
- orrs r2, r0
- lsls r0, r2, 24
- lsrs r2, r0, 24
- adds r4, 0x1
- mov r3, r8
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- adds r0, r6
- cmp r4, r0
- ble _0807D418
-_0807D438:
- adds r5, r7, 0
- mov r3, r8
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- adds r0, r6
- cmp r5, r0
- ble _0807D408
- b _0807D4A8
- .align 2, 0
-_0807D448: .4byte gDungeonGlobalData
-_0807D44C: .4byte 0x00018209
-_0807D450:
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r3, _0807D468
- adds r0, r3
- ldr r1, [r4]
- adds r6, r1, r0
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- subs r5, r0, 0x1
- b _0807D49E
- .align 2, 0
-_0807D468: .4byte 0x000104c4
-_0807D46C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- subs r4, r0, 0x1
- movs r3, 0x6
- ldrsh r0, [r6, r3]
- adds r0, 0x1
- adds r7, r5, 0x1
- cmp r4, r0
- bgt _0807D49C
-_0807D47E:
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp]
- bl sub_807D4E0
- ldr r2, [sp]
- orrs r2, r0
- lsls r0, r2, 24
- lsrs r2, r0, 24
- adds r4, 0x1
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- adds r0, 0x1
- cmp r4, r0
- ble _0807D47E
-_0807D49C:
- adds r5, r7, 0
-_0807D49E:
- movs r3, 0x8
- ldrsh r0, [r6, r3]
- adds r0, 0x1
- cmp r5, r0
- ble _0807D46C
-_0807D4A8:
- cmp r2, 0
- beq _0807D4C4
- ldr r0, _0807D4C0
- ldr r1, [r0]
- mov r0, r8
- bl SendMessage
- bl sub_8040A84
- bl sub_8049ED4
- b _0807D4CE
- .align 2, 0
-_0807D4C0: .4byte gUnknown_80FD2F8
-_0807D4C4:
- ldr r0, _0807D4DC
- ldr r1, [r0]
- mov r0, r8
- bl SendMessage
-_0807D4CE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D4DC: .4byte gUnknown_80FD320
- thumb_func_end sub_807D3CC
-
- thumb_func_start sub_807D4E0
-sub_807D4E0:
- push {r4,lr}
- bl GetMapTileAtPosition
- ldr r4, [r0, 0x14]
- cmp r4, 0
- beq _0807D506
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x2
- bne _0807D506
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- bne _0807D506
- movs r0, 0x1
- strb r0, [r1]
- b _0807D508
-_0807D506:
- movs r0, 0
-_0807D508:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807D4E0
-
- thumb_func_start sub_807D510
-sub_807D510:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0807D540
- add sp, r4
- ldr r1, _0807D544
- add r1, sp
- str r0, [r1]
- movs r2, 0
- movs r3, 0xD1
- lsls r3, 4
- add r3, sp
- str r2, [r3]
- ldr r4, _0807D548
- add r4, sp
- str r2, [r4]
- add r5, sp, 0x4
- mov r8, r5
- mov r10, r2
- mov r9, r2
- add r7, sp, 0x8
- b _0807D606
- .align 2, 0
-_0807D540: .4byte 0xfffff2d4
-_0807D544: .4byte 0x00000d08
-_0807D548: .4byte 0x00000d0c
-_0807D54C:
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- ldr r2, _0807D650
- add r2, sp
- ldr r2, [r2]
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- subs r1, r0
- cmp r1, 0
- bge _0807D562
- negs r1, r1
-_0807D562:
- cmp r1, 0x2
- bgt _0807D580
- movs r3, 0x6
- ldrsh r1, [r5, r3]
- ldr r4, _0807D650
- add r4, sp
- ldr r4, [r4]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- subs r1, r0
- cmp r1, 0
- bge _0807D57C
- negs r1, r1
-_0807D57C:
- cmp r1, 0x2
- ble _0807D5FE
-_0807D580:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl GetMapTileAtPosition
- ldrh r1, [r0]
- movs r2, 0x3
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0807D5FE
- mov r3, r8
- str r2, [r3]
- ldr r4, _0807D654
- add r4, sp
- ldr r1, _0807D658
- add r1, sp
- ldr r1, [r1]
- lsls r0, r1, 2
- adds r4, r0
- str r4, [r7, 0x6C]
- ldr r0, [r5, 0x4]
- str r0, [r7]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 3
- adds r2, 0x4
- lsls r2, 8
- mov r0, r8
- bl sub_8045394
- movs r2, 0
- movs r1, 0
- strh r1, [r7, 0x22]
- movs r0, 0x1
- strb r0, [r7, 0x1C]
- strb r2, [r7, 0x1E]
- str r1, [r7, 0x18]
- ldr r0, _0807D65C
- ldr r0, [r0]
- ldr r5, _0807D660
- adds r0, r5
- add r0, r9
- ldr r0, [r0]
- str r0, [r4]
- adds r7, 0x74
- movs r0, 0x74
- add r8, r0
- ldr r2, _0807D658
- add r2, sp
- ldr r1, [r2]
- adds r1, 0x1
- str r1, [r2]
-_0807D5FE:
- movs r3, 0x4
- add r9, r3
- movs r4, 0x1
- add r10, r4
-_0807D606:
- ldr r0, _0807D65C
- ldr r1, [r0]
- ldr r5, _0807D664
- adds r0, r1, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r10, r0
- bge _0807D634
- ldr r3, _0807D668
- adds r0, r1, r3
- add r0, r9
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807D5FE
- ldr r4, _0807D658
- add r4, sp
- ldr r4, [r4]
- cmp r4, 0x18
- ble _0807D54C
-_0807D634:
- ldr r5, _0807D658
- add r5, sp
- ldr r5, [r5]
- cmp r5, 0
- bne _0807D670
- ldr r0, _0807D66C
- ldr r1, [r0]
- ldr r2, _0807D650
- add r2, sp
- ldr r0, [r2]
- bl SendMessage
- b _0807D9F4
- .align 2, 0
-_0807D650: .4byte 0x00000d08
-_0807D654: .4byte 0x00000b58
-_0807D658: .4byte 0x00000d0c
-_0807D65C: .4byte gDungeonGlobalData
-_0807D660: .4byte 0x00003804
-_0807D664: .4byte 0x00003904
-_0807D668: .4byte 0x0001361c
-_0807D66C: .4byte gUnknown_80FE034
-_0807D670:
- movs r1, 0
- movs r7, 0x1D
- ldr r0, _0807D754
- add r0, sp
-_0807D678:
- strb r1, [r0]
- subs r0, 0x1
- subs r7, 0x1
- cmp r7, 0
- bge _0807D678
- movs r7, 0
- ldr r3, _0807D758
- add r3, sp
- ldr r3, [r3]
- cmp r7, r3
- blt _0807D690
- b _0807D7CC
-_0807D690:
- ldr r4, _0807D75C
- mov r10, r4
- ldr r5, _0807D760
- movs r0, 0
- ldrsh r5, [r5, r0]
- ldr r0, _0807D764
- add r0, sp
- str r5, [r0]
-_0807D6A0:
- movs r1, 0
- mov r9, r1
- ldr r2, _0807D768
- add r2, sp
- ldr r2, [r2]
- ldrh r0, [r2, 0x4]
- ldr r1, _0807D76C
- ands r6, r1
- orrs r6, r0
- ldrh r0, [r2, 0x6]
- lsls r0, 16
- mov r4, r10
- ands r6, r4
- orrs r6, r0
- mov r4, r9
- adds r5, r7, 0x1
- movs r0, 0xD2
- lsls r0, 4
- add r0, sp
- str r5, [r0]
- ldr r1, _0807D760
- ldr r2, _0807D764
- add r2, sp
- ldr r2, [r2]
- cmp r2, 0x63
- beq _0807D790
- ldr r3, _0807D770
- add r3, sp
- mov r8, r3
-_0807D6DA:
- ldr r0, _0807D774
- add r0, sp
- adds r0, r4
- ldr r5, _0807D778
- add r5, sp
- str r0, [r5]
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D77C
- lsls r2, r4, 2
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, _0807D768
- add r1, sp
- ldr r1, [r1]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0807D76C
- ands r6, r1
- orrs r6, r0
- ldrh r0, [r2, 0x2]
- ldr r2, _0807D768
- add r2, sp
- ldr r2, [r2]
- ldrh r2, [r2, 0x6]
- adds r0, r2
- lsls r0, 16
- mov r3, r10
- ands r6, r3
- orrs r6, r0
- lsls r0, r6, 16
- asrs r0, 16
- asrs r1, r6, 16
- bl GetMapTileAtPosition
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r3, 0x3
- ands r3, r1
- cmp r3, 0x1
- bne _0807D77C
- movs r5, 0x80
- lsls r5, 2
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0807D77C
- ldr r0, [r2, 0x14]
- cmp r0, 0
- bne _0807D77C
- lsls r0, r7, 2
- add r0, r8
- str r6, [r0]
- ldr r0, _0807D778
- add r0, sp
- ldr r0, [r0]
- strb r3, [r0]
- b _0807D7B8
- .align 2, 0
-_0807D754: .4byte 0x00000d05
-_0807D758: .4byte 0x00000d0c
-_0807D75C: .4byte 0x0000ffff
-_0807D760: .4byte gUnknown_80F4468
-_0807D764: .4byte 0x00000d18
-_0807D768: .4byte 0x00000d08
-_0807D76C: .4byte 0xffff0000
-_0807D770: .4byte 0x00000bbc
-_0807D774: .4byte 0x00000ce8
-_0807D778: .4byte 0x00000d28
-_0807D77C:
- adds r4, 0x1
- cmp r4, 0x1D
- bgt _0807D790
- lsls r0, r4, 2
- ldr r1, _0807D9B4
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x63
- bne _0807D6DA
-_0807D790:
- mov r3, r9
- cmp r3, 0
- bne _0807D7B8
- movs r0, 0x74
- muls r0, r7
- add r0, sp
- adds r0, 0x4
- str r3, [r0]
- ldr r1, _0807D9B8
- add r1, sp
- lsls r0, r7, 2
- adds r1, r0
- ldrh r2, [r1]
- mov r0, r10
- orrs r0, r2
- strh r0, [r1]
- ldrh r2, [r1, 0x2]
- mov r0, r10
- orrs r0, r2
- strh r0, [r1, 0x2]
-_0807D7B8:
- movs r4, 0xD2
- lsls r4, 4
- add r4, sp
- ldr r7, [r4]
- ldr r5, _0807D9BC
- add r5, sp
- ldr r5, [r5]
- cmp r7, r5
- bge _0807D7CC
- b _0807D6A0
-_0807D7CC:
- movs r7, 0
- ldr r0, _0807D9BC
- add r0, sp
- ldr r0, [r0]
- cmp r7, r0
- bge _0807D866
-_0807D7D8:
- movs r0, 0x74
- adds r1, r7, 0
- muls r1, r0
- mov r8, r1
- mov r4, sp
- add r4, r8
- adds r4, 0x4
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807D85A
- adds r0, r4, 0x4
- movs r1, 0x1
- bl sub_80461C8
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- movs r3, 0x6
- ldrsh r1, [r4, r3]
- bl sub_80402AC
- movs r5, 0xC2
- lsls r5, 4
- add r5, sp
- lsls r6, r7, 3
- adds r5, r6
- ldr r4, _0807D9B8
- add r4, sp
- lsls r0, r7, 2
- adds r4, r0
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 8
- add r1, sp, 0x10
- add r1, r8
- ldr r1, [r1]
- subs r0, r1
- movs r1, 0x3C
- bl __divsi3
- str r0, [r5]
- ldr r5, _0807D9C0
- add r5, sp
- adds r5, r6
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 8
- add r1, sp, 0x14
- add r1, r8
- ldr r1, [r1]
- subs r0, r1
- movs r1, 0x3C
- bl __divsi3
- str r0, [r5]
-_0807D85A:
- adds r7, 0x1
- ldr r3, _0807D9BC
- add r3, sp
- ldr r3, [r3]
- cmp r7, r3
- blt _0807D7D8
-_0807D866:
- movs r1, 0xD1
- lsls r1, 1
- ldr r4, _0807D9C4
- add r4, sp
- ldr r0, [r4]
- bl sub_80421C0
- movs r5, 0
- mov r9, r5
- ldr r0, _0807D9C8
- ldr r0, [r0]
- ldr r1, _0807D9CC
- adds r0, r1
- ldrb r0, [r0]
- ldr r2, _0807D9D0
- add r2, sp
- str r0, [r2]
- mov r10, r5
- movs r6, 0
-_0807D88C:
- movs r7, 0
- mov r3, r10
- adds r3, 0x22
- ldr r4, _0807D9D4
- add r4, sp
- str r3, [r4]
- adds r5, r6, 0x1
- ldr r0, _0807D9D8
- add r0, sp
- str r5, [r0]
- ldr r1, _0807D9BC
- add r1, sp
- ldr r1, [r1]
- cmp r7, r1
- bge _0807D916
- mov r2, r9
- lsls r2, 24
- mov r8, r2
-_0807D8B0:
- movs r0, 0x74
- adds r5, r7, 0
- muls r5, r0
- mov r4, sp
- adds r4, r5
- adds r4, 0x4
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807D90A
- movs r0, 0xC2
- lsls r0, 4
- add r0, sp
- lsls r2, r7, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0807D9C0
- add r0, sp
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- bl sub_804539C
- mov r0, r10
- bl sub_8009C7C
- add r2, sp, 0x20
- adds r2, r5
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- str r1, [r2]
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- ldr r3, _0807D9D0
- add r3, sp
- ldr r1, [r3]
- movs r2, 0
- mov r4, r8
- lsrs r3, r4, 24
- bl sub_80462AC
-_0807D90A:
- adds r7, 0x1
- ldr r5, _0807D9BC
- add r5, sp
- ldr r5, [r5]
- cmp r7, r5
- blt _0807D8B0
-_0807D916:
- movs r0, 0x13
- bl sub_803E46C
- ldr r0, _0807D9D4
- add r0, sp
- ldr r0, [r0]
- mov r10, r0
- movs r0, 0x3
- ands r0, r6
- cmp r0, 0
- bne _0807D930
- movs r1, 0x1
- add r9, r1
-_0807D930:
- movs r0, 0x7
- mov r2, r9
- ands r2, r0
- mov r9, r2
- ldr r3, _0807D9D8
- add r3, sp
- ldr r6, [r3]
- cmp r6, 0x3B
- ble _0807D88C
- movs r7, 0
- ldr r4, _0807D9BC
- add r4, sp
- ldr r4, [r4]
- cmp r7, r4
- bge _0807D996
-_0807D94E:
- ldr r0, _0807D9B8
- add r0, sp
- lsls r1, r7, 2
- adds r4, r0, r1
- movs r5, 0
- ldrsh r0, [r4, r5]
- cmp r0, 0
- blt _0807D98A
- movs r0, 0x74
- muls r0, r7
- add r0, sp
- adds r0, 0x4
- bl GetItemData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_80460F8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80402AC
- movs r3, 0x1
- movs r4, 0xD1
- lsls r4, 4
- add r4, sp
- str r3, [r4]
-_0807D98A:
- adds r7, 0x1
- ldr r5, _0807D9BC
- add r5, sp
- ldr r5, [r5]
- cmp r7, r5
- blt _0807D94E
-_0807D996:
- movs r0, 0xD1
- lsls r0, 4
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- beq _0807D9E0
- ldr r0, _0807D9DC
- ldr r1, [r0]
- ldr r2, _0807D9C4
- add r2, sp
- ldr r0, [r2]
- bl SendMessage
- b _0807D9EE
- .align 2, 0
-_0807D9B4: .4byte gUnknown_80F4468
-_0807D9B8: .4byte 0x00000bbc
-_0807D9BC: .4byte 0x00000d0c
-_0807D9C0: .4byte 0x00000c24
-_0807D9C4: .4byte 0x00000d08
-_0807D9C8: .4byte gDungeonGlobalData
-_0807D9CC: .4byte 0x00018210
-_0807D9D0: .4byte 0x00000d14
-_0807D9D4: .4byte 0x00000d1c
-_0807D9D8: .4byte 0x00000d24
-_0807D9DC: .4byte gUnknown_80FE060
-_0807D9E0:
- ldr r0, _0807DA08
- ldr r1, [r0]
- ldr r3, _0807DA0C
- add r3, sp
- ldr r0, [r3]
- bl SendMessage
-_0807D9EE:
- movs r0, 0x1
- bl sub_807EC28
-_0807D9F4:
- ldr r3, _0807DA10
- 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
-_0807DA08: .4byte gUnknown_80FE034
-_0807DA0C: .4byte 0x00000d08
-_0807DA10: .4byte 0x00000d2c
- thumb_func_end sub_807D510
-
- thumb_func_start sub_807DA14
-sub_807DA14:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, [r6, 0x70]
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807DA50
- ldr r0, _0807DA48
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807DA4C
- b _0807DA5C
- .align 2, 0
-_0807DA48: .4byte gAvailablePokemonNames
-_0807DA4C: .4byte gUnknown_80FCB98
-_0807DA50:
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- beq _0807DA6C
- ldr r0, _0807DA68
-_0807DA5C:
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80522F4
- b _0807DB5E
- .align 2, 0
-_0807DA68: .4byte gUnknown_80FC9C0
-_0807DA6C:
- cmp r4, 0x8
- bne _0807DA76
- mov r0, r10
- adds r0, 0x46
- ldrb r4, [r0]
-_0807DA76:
- adds r0, r6, 0
- movs r1, 0x6
- adds r2, r4, 0
- bl sub_806CDD4
- lsls r1, r4, 2
- adds r2, r6, 0x4
- mov r9, r2
- ldr r0, _0807DAFC
- adds r1, r0
- mov r8, r1
-_0807DA8C:
- ldrh r0, [r6, 0x4]
- mov r3, r8
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- ldrh r1, [r6, 0x6]
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r0, 16
- orrs r7, r1
- lsls r0, r7, 16
- asrs r5, r0, 16
- cmp r5, 0
- ble _0807DB00
- asrs r4, r7, 16
- cmp r4, 0
- ble _0807DB00
- cmp r5, 0x36
- bgt _0807DB00
- cmp r4, 0x1E
- bgt _0807DB00
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapTileAtPosition
- adds r1, r0, 0
- ldr r0, [r1, 0x10]
- cmp r0, 0
- bne _0807DB00
- ldrh r1, [r1]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0807DB00
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_80694C0
- adds r0, r6, 0
- movs r1, 0
- bl sub_804535C
- adds r0, r6, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807DA8C
- movs r0, 0x3A
- bl sub_803E46C
- b _0807DA8C
- .align 2, 0
-_0807DAFC: .4byte gAdjacentTileOffsets
-_0807DB00:
- adds r0, r6, 0
- bl sub_806A5B8
- mov r1, r9
- adds r0, r6, 0
- bl sub_80706A4
- lsls r0, 24
- cmp r0, 0
- beq _0807DB20
- adds r0, r6, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_807D148
-_0807DB20:
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807DB5E
- adds r0, r6, 0
- movs r1, 0x8
- bl sub_806CE68
- mov r3, r10
- ldrb r0, [r3, 0x7]
- cmp r0, 0
- beq _0807DB48
- mov r0, r9
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
-_0807DB48:
- adds r0, r6, 0
- bl sub_806A5B8
- ldr r0, _0807DB6C
- ldr r0, [r0]
- ldr r1, _0807DB70
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8075900
-_0807DB5E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DB6C: .4byte gDungeonGlobalData
-_0807DB70: .4byte 0x00003a08
- thumb_func_end sub_807DA14
-
- thumb_func_start sub_807DB74
-sub_807DB74:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- bl IsFixedDungeon
- lsls r0, 24
- cmp r0, 0
- beq _0807DB94
- ldr r0, _0807DB90
- b _0807DBA0
- .align 2, 0
-_0807DB90: .4byte gUnknown_80FD060
-_0807DB94:
- bl IsWaterTileset
- lsls r0, 24
- cmp r0, 0
- beq _0807DBB0
- ldr r0, _0807DBAC
-_0807DBA0:
- ldr r1, [r0]
- adds r0, r7, 0
- bl SendMessage
- b _0807DC54
- .align 2, 0
-_0807DBAC: .4byte gUnknown_80FD08C
-_0807DBB0:
- movs r5, 0
- ldr r0, _0807DC24
- adds r6, r0, 0
-_0807DBB6:
- movs r4, 0
-_0807DBB8:
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetMapEntity
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _0807DBE2
- adds r0, r1, 0
- ands r0, r6
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80498A8
- movs r1, 0x1
- mov r8, r1
-_0807DBE2:
- adds r4, 0x1
- cmp r4, 0x37
- ble _0807DBB8
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0807DBB6
- movs r5, 0
-_0807DBF0:
- movs r4, 0
- adds r6, r5, 0x1
-_0807DBF4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049BB0
- adds r4, 0x1
- cmp r4, 0x37
- ble _0807DBF4
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _0807DBF0
- mov r0, r8
- cmp r0, 0
- beq _0807DC30
- ldr r1, _0807DC28
- adds r0, r7, 0
- bl sub_80421C0
- ldr r0, _0807DC2C
- ldr r1, [r0]
- adds r0, r7, 0
- bl SendMessage
- b _0807DC3A
- .align 2, 0
-_0807DC24: .4byte 0x0000fffc
-_0807DC28: .4byte 0x000001a1
-_0807DC2C: .4byte gUnknown_80FD05C
-_0807DC30:
- ldr r0, _0807DC60
- ldr r1, [r0]
- adds r0, r7, 0
- bl SendMessage
-_0807DC3A:
- ldr r0, _0807DC64
- ldr r0, [r0]
- movs r1, 0xCE
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_806CF60
- bl sub_8040A84
- bl sub_8049ED4
-_0807DC54:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DC60: .4byte gUnknown_80FD060
-_0807DC64: .4byte gDungeonGlobalData
- thumb_func_end sub_807DB74
-
- thumb_func_start sub_807DC68
-sub_807DC68:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- ldr r0, _0807DC88
- ldr r1, [r0]
- ldr r2, _0807DC8C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807DC94
- ldr r0, _0807DC90
- b _0807DCB8
- .align 2, 0
-_0807DC88: .4byte gDungeonGlobalData
-_0807DC8C: .4byte 0x00003a08
-_0807DC90: .4byte gUnknown_80FD3C8
-_0807DC94:
- ldr r3, _0807DCA4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807DCAC
- ldr r0, _0807DCA8
- b _0807DCB8
- .align 2, 0
-_0807DCA4: .4byte 0x00003a0b
-_0807DCA8: .4byte gUnknown_80FD3CC
-_0807DCAC:
- bl IsBossBattle
- lsls r0, 24
- cmp r0, 0
- beq _0807DCC8
- ldr r0, _0807DCC4
-_0807DCB8:
- ldr r1, [r0]
- mov r0, r9
- bl SendMessage
- b _0807DF0E
- .align 2, 0
-_0807DCC4: .4byte gUnknown_80FD3D0
-_0807DCC8:
- movs r0, 0
- mov r8, r0
- movs r5, 0x1
- movs r1, 0
- mov r10, r1
- ldr r2, _0807DD68
- adds r7, r2, 0
-_0807DCD6:
- movs r4, 0x1
-_0807DCD8:
- movs r6, 0
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapEntity
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r3, _0807DD6C
- adds r0, r3, 0
- adds r3, r1, 0
- ands r3, r0
- strh r3, [r2]
- mov r0, r10
- strb r0, [r2, 0x9]
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- bne _0807DD94
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0, 0
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0807DD94
- ldrh r0, [r2, 0x4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldr r1, _0807DD70
- adds r0, r1, 0
- adds r1, r3, 0
- ands r1, r0
- strh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807DD28
- movs r3, 0x1
- mov r8, r3
-_0807DD28:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _0807DD94
- cmp r0, 0x3
- beq _0807DD94
- cmp r5, 0x1
- beq _0807DD44
- cmp r4, 0x1
- beq _0807DD44
- cmp r5, 0x36
- beq _0807DD44
- cmp r4, 0x1E
- bne _0807DD5C
-_0807DD44:
- ldr r0, [r2, 0x14]
- cmp r0, 0
- bne _0807DD5C
- ldr r0, _0807DD74
- ldr r0, [r0]
- movs r1, 0xCE
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807DD5C
- movs r6, 0x1
-_0807DD5C:
- cmp r6, 0
- beq _0807DD78
- ldrh r0, [r2]
- ands r0, r7
- movs r1, 0x2
- b _0807DD90
- .align 2, 0
-_0807DD68: .4byte 0x0000fffc
-_0807DD6C: .4byte 0x0000fbff
-_0807DD70: .4byte 0x0000fff7
-_0807DD74: .4byte gDungeonGlobalData
-_0807DD78:
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0807DD94
- adds r0, r1, 0
- ands r0, r7
- movs r1, 0x1
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
-_0807DD90:
- orrs r0, r1
- strh r0, [r2]
-_0807DD94:
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0807DCD8
- adds r5, 0x1
- cmp r5, 0x36
- ble _0807DCD6
- ldr r0, _0807DF1C
- ldr r1, [r0]
- ldr r2, _0807DF20
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r2, 0x2
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r2, 0x1
- bl sub_8050C30
- lsls r0, 24
- cmp r0, 0
- beq _0807DE02
- movs r5, 0
- movs r6, 0x84
- lsls r6, 8
- movs r7, 0
-_0807DDC8:
- movs r4, 0
-_0807DDCA:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapEntity
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0807DDF6
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r6
- bne _0807DDF6
- ldr r3, _0807DF24
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
-_0807DDF6:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0807DDCA
- adds r5, 0x1
- cmp r5, 0x37
- ble _0807DDC8
-_0807DE02:
- mov r0, r8
- cmp r0, 0
- beq _0807DE14
- ldr r0, _0807DF1C
- ldr r0, [r0]
- ldr r1, _0807DF28
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807DE14:
- movs r5, 0
-_0807DE16:
- movs r4, 0
- adds r6, r5, 0x1
-_0807DE1A:
- mov r2, r8
- cmp r2, 0
- beq _0807DE30
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapEntity
- ldrh r2, [r0]
- movs r1, 0x40
- orrs r1, r2
- strh r1, [r0]
-_0807DE30:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049BB0
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0807DE1A
- adds r5, r6, 0
- cmp r5, 0x37
- ble _0807DE16
- movs r5, 0
-_0807DE46:
- ldr r0, _0807DF1C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r3, _0807DF2C
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807DE74
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl GetMapTileAtPosition
- ldrb r1, [r0, 0x9]
- adds r0, r4, 0
- adds r0, 0x25
- strb r1, [r0]
-_0807DE74:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807DE46
- bl sub_804EB30
- bl sub_804AAD4
- bl sub_8049884
- bl sub_806CF60
- bl sub_8040A84
- bl sub_8049ED4
- ldr r0, _0807DF30
- ldr r1, [r0]
- mov r0, r9
- bl SendMessage
- movs r0, 0x28
- movs r1, 0x2B
- bl sub_803E708
- mov r0, r9
- movs r1, 0x1
- bl sub_8075900
- movs r5, 0
-_0807DEAE:
- ldr r0, _0807DF1C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r3, _0807DF2C
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807DEF4
- adds r0, r4, 0
- bl sub_806A5B8
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807DEF4
- adds r1, r4, 0x4
- adds r0, r4, 0
- bl sub_80706A4
- lsls r0, 24
- cmp r0, 0
- beq _0807DEF4
- adds r0, r4, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_807D148
-_0807DEF4:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807DEAE
- ldr r0, _0807DF1C
- ldr r0, [r0]
- ldr r1, _0807DF34
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x14
- movs r1, 0x2B
- bl sub_803E708
-_0807DF0E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DF1C: .4byte gDungeonGlobalData
-_0807DF20: .4byte 0x0000e21c
-_0807DF24: .4byte 0x0000fffc
-_0807DF28: .4byte 0x00003a0c
-_0807DF2C: .4byte 0x000135cc
-_0807DF30: .4byte gUnknown_80FD3A0
-_0807DF34: .4byte 0x00003a08
- thumb_func_end sub_807DC68
-
- thumb_func_start sub_807DF38
-sub_807DF38:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp, 0x8]
- mov r10, r1
- str r2, [sp, 0xC]
- adds r6, r3, 0
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 16
- asrs r1, 16
- str r1, [sp, 0x14]
- movs r5, 0
- b _0807DF62
-_0807DF60:
- adds r5, 0x1
-_0807DF62:
- cmp r5, 0x13
- bgt _0807DF8E
- ldr r0, _0807DFA8
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807DFAC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807DF60
- adds r0, r4, 0
- movs r1, 0x15
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807DF60
-_0807DF8E:
- cmp r5, 0x14
- beq _0807DFB4
- ldr r0, [sp, 0x8]
- mov r1, r10
- bl sub_804218C
- ldr r0, _0807DFB0
- mov r1, r10
- movs r2, 0
- bl SetMessageArgument
- b _0807DFC2
- .align 2, 0
-_0807DFA8: .4byte gDungeonGlobalData
-_0807DFAC: .4byte 0x000135cc
-_0807DFB0: .4byte gAvailablePokemonNames
-_0807DFB4:
- mov r0, r10
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0807DFD4
-_0807DFC2:
- ldr r0, _0807DFD0
- ldr r2, [r0]
- ldr r0, [sp, 0x8]
- mov r1, r10
- bl sub_80522F4
- b _0807E174
- .align 2, 0
-_0807DFD0: .4byte gUnknown_80F96EC
-_0807DFD4:
- ldr r0, [sp, 0x8]
- mov r1, r10
- adds r2, r6, 0
- bl sub_804216C
- ldr r0, _0807E184
- mov r1, r10
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807E188
- ldr r2, [r0]
- ldr r0, [sp, 0x8]
- mov r1, r10
- bl sub_80522F4
- movs r5, 0
- ldr r0, _0807E18C
- lsls r1, r6, 2
- adds r0, r1, r0
- ldr r0, [r0]
- mov r9, r0
- ldrh r4, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- str r1, [sp, 0x1C]
- cmp r0, 0x63
- bne _0807E00E
- b _0807E124
-_0807E00E:
- mov r0, sp
- adds r0, 0x4
- str r0, [sp, 0x18]
-_0807E014:
- ldr r1, [sp, 0xC]
- ldrh r0, [r1]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0807E190
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- ldr r2, [sp, 0xC]
- ldrh r0, [r2, 0x2]
- mov r3, r9
- ldrh r3, [r3, 0x2]
- adds r0, r3
- lsls r0, 16
- ldr r2, _0807E194
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- ldr r1, [sp, 0x18]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _0807E112
- asrs r1, r2, 16
- cmp r1, 0
- blt _0807E112
- cmp r0, 0x37
- bgt _0807E112
- cmp r1, 0x1F
- bgt _0807E112
- bl GetMapEntity
- mov r8, r0
- ldr r0, [sp, 0x18]
- movs r2, 0
- ldrsh r1, [r0, r2]
- cmp r1, 0
- ble _0807E0BE
- ldr r0, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0
- ble _0807E0BE
- cmp r1, 0x36
- bgt _0807E0BE
- cmp r0, 0x1E
- bgt _0807E0BE
- mov r3, r8
- ldrh r1, [r3]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0807E0BE
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807E0BE
- ldr r2, _0807E198
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r3]
- movs r5, 0x1
- negs r5, r5
- add r7, sp, 0x4
-_0807E09A:
- movs r4, 0x1
- negs r4, r4
- adds r6, r5, 0x1
-_0807E0A0:
- movs r3, 0
- ldrsh r0, [r7, r3]
- adds r0, r4
- ldr r1, [sp, 0x4]
- asrs r1, 16
- adds r1, r5
- bl sub_80498A8
- adds r4, 0x1
- cmp r4, 0x1
- ble _0807E0A0
- adds r5, r6, 0
- cmp r5, 0x1
- ble _0807E09A
- movs r5, 0x1
-_0807E0BE:
- mov r0, r8
- ldr r4, [r0, 0x14]
- cmp r4, 0
- beq _0807E0DC
- cmp r4, r10
- beq _0807E0DC
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x3
- bne _0807E0DC
- add r0, sp, 0x4
- movs r1, 0
- bl sub_80461C8
-_0807E0DC:
- mov r1, r8
- ldr r4, [r1, 0x10]
- cmp r4, 0
- beq _0807E112
- cmp r4, r10
- beq _0807E112
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807E112
- ldr r0, _0807E19C
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x8]
- adds r1, r4, 0
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl sub_807E1A0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807E124
-_0807E112:
- movs r3, 0x4
- add r9, r3
- mov r0, r9
- ldrh r4, [r0]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x63
- beq _0807E124
- b _0807E014
-_0807E124:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807E174
- mov r0, r10
- bl GetEntityType
- cmp r0, 0x1
- bne _0807E14E
- ldr r0, _0807E19C
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x8]
- mov r1, r10
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl sub_807E1A0
-_0807E14E:
- cmp r5, 0
- beq _0807E174
- movs r5, 0
-_0807E154:
- movs r4, 0
- adds r6, r5, 0x1
-_0807E158:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049BB0
- adds r4, 0x1
- cmp r4, 0x37
- ble _0807E158
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _0807E154
- bl sub_8040A84
- bl sub_8049ED4
-_0807E174:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E184: .4byte gAvailablePokemonNames
-_0807E188: .4byte gUnknown_80F96BC
-_0807E18C: .4byte gUnknown_8107178
-_0807E190: .4byte 0xffff0000
-_0807E194: .4byte 0x0000ffff
-_0807E198: .4byte 0x0000fffc
-_0807E19C: .4byte gUnknown_203B444
- thumb_func_end sub_807DF38
-
- thumb_func_start sub_807E1A0
-sub_807E1A0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x24
- mov r9, r0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807E244
- ldr r5, [r6, 0x70]
- add r4, sp, 0x1C
- ldr r1, _0807E20C
- adds r0, r4, 0
- bl InitPokemonMove
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80571F0
- lsls r0, 24
- cmp r0, 0
- bne _0807E244
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- bne _0807E210
- movs r0, 0xE
- ldrsh r4, [r5, r0]
- lsrs r0, r4, 31
- adds r5, r4, r0
- asrs r4, r5, 1
- adds r0, r6, 0
- movs r1, 0x2
- bl HasType
- lsls r0, 24
- cmp r0, 0
- beq _0807E202
- lsrs r0, r5, 31
- adds r0, r4, r0
- asrs r4, r0, 1
-_0807E202:
- cmp r4, 0
- bgt _0807E226
- movs r4, 0x1
- b _0807E226
- .align 2, 0
-_0807E20C: .4byte 0x00000163
-_0807E210:
- ldr r4, [sp, 0x40]
- adds r0, r6, 0
- movs r1, 0x2
- bl HasType
- lsls r0, 24
- cmp r0, 0
- beq _0807E226
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r4, r0, 1
-_0807E226:
- add r0, sp, 0x18
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- str r0, [sp, 0x14]
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_806F370
-_0807E244:
- add sp, 0x24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807E1A0
-
- thumb_func_start sub_807E254
-sub_807E254:
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807E274
- ldr r0, _0807E270
- adds r1, r6, 0
- b _0807E286
- .align 2, 0
-_0807E270: .4byte gAvailablePokemonNames
-_0807E274:
- adds r0, r7, 0
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807E2A4
- ldr r0, _0807E29C
- adds r1, r7, 0
-_0807E286:
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807E2A0
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80522F4
- b _0807E366
- .align 2, 0
-_0807E29C: .4byte gAvailablePokemonNames
-_0807E2A0: .4byte gUnknown_80FCAC0
-_0807E2A4:
- ldrh r1, [r6, 0x6]
- lsls r1, 16
- ldrh r0, [r6, 0x4]
- orrs r0, r1
- str r0, [sp]
- ldrh r1, [r7, 0x6]
- lsls r1, 16
- ldrh r0, [r7, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r5, sp
- mov r0, sp
- bl nullsub_93
- add r4, sp, 0x4
- adds r0, r4, 0
- bl nullsub_93
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x2
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- movs r3, 0x1
- bl sub_80694C0
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x2
- ldrsh r2, [r5, r0]
- adds r0, r7, 0
- movs r3, 0x1
- bl sub_80694C0
- adds r0, r6, 0
- movs r1, 0
- bl sub_804535C
- adds r0, r7, 0
- movs r1, 0
- bl sub_804535C
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807E330
- ldr r0, [r6, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0807E31A
- adds r0, r6, 0x4
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
-_0807E31A:
- adds r0, r6, 0
- bl sub_806A5B8
- ldr r0, _0807E370
- ldr r0, [r0]
- ldr r1, _0807E374
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8075900
-_0807E330:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807E366
- ldr r0, [r7, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0807E350
- adds r0, r7, 0x4
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
-_0807E350:
- adds r0, r7, 0
- bl sub_806A5B8
- ldr r0, _0807E370
- ldr r0, [r0]
- ldr r2, _0807E374
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_8075900
-_0807E366:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E370: .4byte gDungeonGlobalData
-_0807E374: .4byte 0x00003a08
- thumb_func_end sub_807E254
-
- thumb_func_start sub_807E378
-sub_807E378:
- push {r4-r7,lr}
- bl GetLeaderEntity
- adds r4, r0, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807E38C
- b _0807E564
-_0807E38C:
- ldr r0, _0807E41C
- ldr r1, [r0]
- ldr r3, _0807E420
- adds r2, r1, r3
- ldrh r3, [r2]
- movs r5, 0
- ldrsh r1, [r2, r5]
- adds r6, r0, 0
- cmp r1, 0
- ble _0807E3AA
- subs r0, r3, 0x1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _0807E3B4
-_0807E3AA:
- ldr r0, [r6]
- ldr r1, _0807E424
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
-_0807E3B4:
- adds r5, r6, 0
- ldr r1, [r5]
- ldr r7, _0807E424
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E434
- ldr r2, _0807E420
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0xF9
- ble _0807E3D0
- b _0807E564
-_0807E3D0:
- bl sub_805E804
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
- adds r0, r4, 0
- bl UseAttack
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807E3EE
- b _0807E564
-_0807E3EE:
- ldr r0, _0807E428
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- ldr r1, _0807E42C
- ldr r0, [r5]
- ldr r2, _0807E430
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl sub_80426C8
- ldr r0, [r5]
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- b _0807E564
- .align 2, 0
-_0807E41C: .4byte gDungeonGlobalData
-_0807E420: .4byte 0x00000666
-_0807E424: .4byte 0x0000067a
-_0807E428: .4byte gUnknown_80F9C4C
-_0807E42C: .4byte gUnknown_80F5FAC
-_0807E430: .4byte 0x00003a0e
-_0807E434:
- cmp r0, 0x1
- bne _0807E4A0
- ldr r2, _0807E490
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x95
- ble _0807E446
- b _0807E564
-_0807E446:
- bl sub_805E804
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
- adds r0, r4, 0
- bl UseAttack
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807E464
- b _0807E564
-_0807E464:
- ldr r0, _0807E494
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- ldr r1, _0807E498
- ldr r0, [r5]
- ldr r2, _0807E49C
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80426C8
- ldr r0, [r5]
- adds r0, r7
- movs r1, 0x2
- strb r1, [r0]
- b _0807E564
- .align 2, 0
-_0807E490: .4byte 0x00000666
-_0807E494: .4byte gUnknown_80F9C70
-_0807E498: .4byte gUnknown_80F5FAC
-_0807E49C: .4byte 0x00003a0e
-_0807E4A0:
- cmp r0, 0x2
- bne _0807E508
- ldr r2, _0807E4F8
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x31
- bgt _0807E564
- bl sub_805E804
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
- adds r0, r4, 0
- bl UseAttack
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807E564
- ldr r0, _0807E4FC
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- ldr r1, _0807E500
- ldr r0, [r5]
- ldr r2, _0807E504
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl sub_80426C8
- ldr r0, [r5]
- adds r0, r7
- movs r1, 0x3
- strb r1, [r0]
- b _0807E564
- .align 2, 0
-_0807E4F8: .4byte 0x00000666
-_0807E4FC: .4byte gUnknown_80F9C8C
-_0807E500: .4byte gUnknown_80F5FAC
-_0807E504: .4byte 0x00003a0e
-_0807E508:
- ldr r5, _0807E56C
- adds r0, r1, r5
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0807E564
- bl sub_805E804
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806A2BC
- adds r0, r4, 0
- bl UseAttack
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807E564
- ldr r0, _0807E570
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- ldr r1, _0807E574
- ldr r0, [r6]
- ldr r2, _0807E578
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_80426C8
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x4
- strb r1, [r0]
- ldr r1, _0807E57C
- adds r0, r4, 0
- adds r2, r4, 0
- bl sub_8068FE0
-_0807E564:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E56C: .4byte 0x00000666
-_0807E570: .4byte gUnknown_80F9CBC
-_0807E574: .4byte gUnknown_80F5FAC
-_0807E578: .4byte 0x00003a0e
-_0807E57C: .4byte 0x0000021e
- thumb_func_end sub_807E378
-
- thumb_func_start GetWeather
-GetWeather:
- push {lr}
- cmp r0, 0
- beq _0807E596
- movs r1, 0x2D
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- beq _0807E596
- movs r0, 0
- b _0807E5A0
-_0807E596:
- ldr r0, _0807E5A4
- ldr r0, [r0]
- ldr r1, _0807E5A8
- adds r0, r1
- ldrb r0, [r0]
-_0807E5A0:
- pop {r1}
- bx r1
- .align 2, 0
-_0807E5A4: .4byte gDungeonGlobalData
-_0807E5A8: .4byte 0x0000e264
- thumb_func_end GetWeather
-
- thumb_func_start sub_807E5AC
-sub_807E5AC:
- push {lr}
- ldr r0, _0807E5DC
- ldr r0, [r0]
- ldr r1, _0807E5E0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0807E5C6
- movs r0, 0x8
- bl DungeonRandomCapped
- lsls r0, 24
- lsrs r0, 24
-_0807E5C6:
- bl sub_807E5E4
- bl TriggerWeatherAbilities
- movs r0, 0
- movs r1, 0x1
- bl sub_807EAA0
- pop {r0}
- bx r0
- .align 2, 0
-_0807E5DC: .4byte gDungeonGlobalData
-_0807E5E0: .4byte 0x0001c578
- thumb_func_end sub_807E5AC
-
- thumb_func_start sub_807E5E4
-sub_807E5E4:
- push {r4-r6,lr}
- ldr r3, _0807E674
- ldr r1, [r3]
- ldr r2, _0807E678
- adds r1, r2
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r3]
- adds r2, r0, r2
- ldrb r1, [r2]
- ldr r2, _0807E67C
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldr r1, _0807E680
- adds r0, r1
- strb r4, [r0]
- movs r2, 0
- adds r4, r3, 0
- ldr r6, _0807E684
- movs r1, 0
- ldr r5, _0807E688
-_0807E610:
- ldr r0, [r4]
- adds r0, r6
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r5
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807E610
- ldr r0, [r3]
- ldr r2, _0807E68C
- adds r0, r2
- movs r2, 0
- movs r1, 0x9
- strb r1, [r0]
- ldr r0, [r3]
- ldr r1, _0807E690
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r3]
- adds r1, 0x1
- adds r0, r1
- strb r2, [r0]
- movs r6, 0xBE
- lsls r6, 1
- ldr r5, _0807E694
- movs r4, 0xBF
- lsls r4, 1
-_0807E64C:
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldr r0, [r3]
- adds r0, r1
- adds r0, r5
- strb r2, [r0]
- ldr r0, [r3]
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- adds r2, 0x1
- cmp r2, 0xFF
- ble _0807E64C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E674: .4byte gDungeonGlobalData
-_0807E678: .4byte 0x0000e265
-_0807E67C: .4byte 0x0000e264
-_0807E680: .4byte 0x0000e279
-_0807E684: .4byte 0x0000e267
-_0807E688: .4byte 0x0000e26f
-_0807E68C: .4byte 0x0000e266
-_0807E690: .4byte 0x0000e277
-_0807E694: .4byte 0x0000017d
- thumb_func_end sub_807E5E4
-
- thumb_func_start sub_807E698
-sub_807E698:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 16
- str r0, [sp, 0x4]
- ldr r0, _0807E724
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- mov r10, r0
- movs r0, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- bl sub_8042818
- movs r0, 0x25
- bl sub_803E46C
- movs r0, 0x1
- bl sub_804178C
- ldr r1, _0807E728
- ldrb r0, [r1]
- str r0, [sp, 0x8]
- movs r0, 0x1
- strb r0, [r1]
- movs r1, 0
- mov r9, r1
- ldr r2, _0807E72C
- mov r8, r2
-_0807E6EC:
- movs r7, 0
- movs r0, 0x25
- bl sub_803E46C
- movs r6, 0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 2
- mov r2, r10
- adds r5, r0, r2
- movs r0, 0xFF
- mov r12, r0
-_0807E702:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- movs r2, 0xBE
- lsls r2, 1
- adds r4, r0, r2
- ldrb r0, [r4]
- ldrb r3, [r5]
- subs r1, r0, r3
- cmp r1, 0
- bge _0807E71A
- negs r1, r1
-_0807E71A:
- cmp r1, 0x9
- bgt _0807E730
- strb r3, [r4]
- b _0807E746
- .align 2, 0
-_0807E724: .4byte gUnknown_202ECA0
-_0807E728: .4byte gUnknown_203B40D
-_0807E72C: .4byte gDungeonGlobalData
-_0807E730:
- movs r7, 0x1
- adds r2, r0, 0
- adds r1, r3, 0
- cmp r2, r1
- bcs _0807E73E
- adds r0, 0xA
- b _0807E744
-_0807E73E:
- cmp r2, r1
- bls _0807E746
- subs r0, 0xA
-_0807E744:
- strb r0, [r4]
-_0807E746:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- ldr r2, _0807E764
- adds r4, r0, r2
- ldrb r0, [r4]
- ldrb r3, [r5, 0x1]
- subs r1, r0, r3
- cmp r1, 0
- bge _0807E75C
- negs r1, r1
-_0807E75C:
- cmp r1, 0x9
- bgt _0807E768
- strb r3, [r4]
- b _0807E77E
- .align 2, 0
-_0807E764: .4byte 0x0000017d
-_0807E768:
- movs r7, 0x1
- adds r2, r0, 0
- adds r1, r3, 0
- cmp r2, r1
- bcs _0807E776
- adds r0, 0xA
- b _0807E77C
-_0807E776:
- cmp r2, r1
- bls _0807E77E
- subs r0, 0xA
-_0807E77C:
- strb r0, [r4]
-_0807E77E:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- movs r2, 0xBF
- lsls r2, 1
- adds r4, r0, r2
- ldrb r0, [r4]
- ldrb r3, [r5, 0x2]
- subs r1, r0, r3
- cmp r1, 0
- bge _0807E796
- negs r1, r1
-_0807E796:
- cmp r1, 0x9
- bgt _0807E79E
- strb r3, [r4]
- b _0807E7B4
-_0807E79E:
- movs r7, 0x1
- adds r2, r0, 0
- adds r1, r3, 0
- cmp r2, r1
- bcs _0807E7AC
- adds r0, 0xA
- b _0807E7B2
-_0807E7AC:
- cmp r2, r1
- bls _0807E7B4
- subs r0, 0xA
-_0807E7B2:
- strb r0, [r4]
-_0807E7B4:
- adds r6, 0x4
- adds r5, 0x4
- movs r0, 0x1
- negs r0, r0
- add r12, r0
- mov r1, r12
- cmp r1, 0
- bge _0807E702
- movs r0, 0
- movs r1, 0
- bl sub_803E874
- cmp r7, 0
- beq _0807E7DA
- movs r2, 0x1
- add r9, r2
- mov r0, r9
- cmp r0, 0x3F
- ble _0807E6EC
-_0807E7DA:
- ldr r0, _0807E7F8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- strb r1, [r0]
- ldr r0, [sp]
- bl sub_807E7FC
- 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
-_0807E7F8: .4byte gUnknown_203B40D
- thumb_func_end sub_807E698
-
- thumb_func_start sub_807E7FC
-sub_807E7FC:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _0807E874
- ldr r0, [r6]
- ldr r1, _0807E878
- adds r0, r1
- ldr r5, [r0]
- cmp r5, 0
- bne _0807E816
- bl GetLeaderEntity
- adds r5, r0, 0
-_0807E816:
- cmp r4, 0
- beq _0807E844
- ldr r0, [r6]
- ldr r2, _0807E87C
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E844
- ldr r4, _0807E880
- movs r0, 0
- bl GetWeather
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetWeatherName
- ldr r0, _0807E884
- ldr r1, [r0]
- adds r0, r5, 0
- bl SendMessage
-_0807E844:
- movs r5, 0
-_0807E846:
- ldr r0, _0807E874
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807E888
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807E866
- adds r0, r4, 0
- bl sub_807E8F0
-_0807E866:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807E846
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E874: .4byte gDungeonGlobalData
-_0807E878: .4byte 0x000181f8
-_0807E87C: .4byte 0x0001356c
-_0807E880: .4byte gAvailablePokemonNames
-_0807E884: .4byte gUnknown_80FC5E0
-_0807E888: .4byte 0x000135cc
- thumb_func_end sub_807E7FC
-
- thumb_func_start sub_807E88C
-sub_807E88C:
- push {r4-r7,lr}
- movs r0, 0
- bl GetWeather
- lsls r0, 24
- ldr r1, _0807E8E4
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- movs r4, 0
- ldr r5, _0807E8E8
- lsrs r0, 14
- adds r3, r0, r1
- movs r6, 0xBE
- lsls r6, 1
-_0807E8A8:
- ldr r0, [r5]
- lsls r2, r4, 2
- adds r0, r2
- ldrb r1, [r3]
- adds r0, r6
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r3, 0x1]
- ldr r7, _0807E8EC
- adds r0, r7
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r3, 0x2]
- movs r2, 0xBF
- lsls r2, 1
- adds r0, r2
- strb r1, [r0]
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, 0xFF
- ble _0807E8A8
- movs r0, 0
- movs r1, 0
- bl sub_803E874
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E8E4: .4byte gUnknown_202ECA0
-_0807E8E8: .4byte gDungeonGlobalData
-_0807E8EC: .4byte 0x0000017d
- thumb_func_end sub_807E88C
-
- thumb_func_start sub_807E8F0
-sub_807E8F0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807E90E
- b _0807EA0A
-_0807E90E:
- ldr r4, [r5, 0x70]
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- mov r9, r1
- mov r1, sp
- adds r6, r4, 0
- adds r6, 0x5C
- ldrb r0, [r6]
- strb r0, [r1]
- adds r7, r4, 0
- adds r7, 0x5D
- ldrb r0, [r7]
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- bl GetMovementSpeed
- adds r0, r5, 0
- movs r1, 0x25
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807E958
- adds r0, r5, 0
- bl GetWeather
- ldr r1, _0807E954
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- mov r1, r8
- strb r1, [r7]
- b _0807E984
- .align 2, 0
-_0807E954: .4byte gUnknown_80F520C
-_0807E958:
- adds r0, r4, 0
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _0807E984
- adds r0, r4, 0
- adds r0, 0xF6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E984
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl GetPokemonType
- strb r0, [r6]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl GetPokemonType
- strb r0, [r7]
-_0807E984:
- mov r0, sp
- adds r1, r4, 0
- adds r1, 0x5C
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0807E9A0
- mov r0, sp
- adds r1, r4, 0
- adds r1, 0x5D
- ldrb r0, [r0, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0807E9A4
-_0807E9A0:
- movs r0, 0x1
- mov r8, r0
-_0807E9A4:
- ldr r1, _0807E9D0
- adds r0, r1, 0
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bhi _0807E9FE
- adds r0, r5, 0
- movs r1, 0x25
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807E9D4
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8069F54
- b _0807E9D8
- .align 2, 0
-_0807E9D0: .4byte 0xfffffe88
-_0807E9D4:
- movs r0, 0xBC
- lsls r0, 1
-_0807E9D8:
- strh r0, [r4, 0x4]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, r9
- beq _0807E9FE
- bl sub_80687D0
- str r0, [r5, 0x64]
- adds r0, r5, 0
- bl sub_806CEBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806CCB4
- movs r0, 0x1
- mov r8, r0
-_0807E9FE:
- mov r1, r8
- cmp r1, 0
- beq _0807EA0A
- adds r0, r5, 0
- bl sub_80429D8
-_0807EA0A:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807E8F0
-
- thumb_func_start GetWeatherName
-GetWeatherName:
- push {lr}
- lsls r1, 24
- ldr r2, _0807EA2C
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl strcpy
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA2C: .4byte gWeatherNames
- thumb_func_end GetWeatherName
-
- thumb_func_start sub_807EA30
-sub_807EA30:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0807EA6C
- ldr r1, _0807EA5C
- movs r0, 0
- movs r2, 0
- bl sub_808417C
- ldr r1, _0807EA60
- ldr r1, [r1]
- ldr r2, _0807EA64
- adds r1, r2
- strb r0, [r1]
- bl GetLeaderEntity
- ldr r1, _0807EA68
- ldr r1, [r1]
- bl SendMessage
- b _0807EA8C
- .align 2, 0
-_0807EA5C: .4byte gUnknown_80F4EAC
-_0807EA60: .4byte gDungeonGlobalData
-_0807EA64: .4byte 0x0000e277
-_0807EA68: .4byte gUnknown_80FAD8C
-_0807EA6C:
- ldr r1, _0807EA90
- movs r0, 0
- movs r2, 0
- bl sub_808417C
- ldr r1, _0807EA94
- ldr r1, [r1]
- ldr r2, _0807EA98
- adds r1, r2
- strb r0, [r1]
- bl GetLeaderEntity
- ldr r1, _0807EA9C
- ldr r1, [r1]
- bl SendMessage
-_0807EA8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA90: .4byte gUnknown_80F4EAC
-_0807EA94: .4byte gDungeonGlobalData
-_0807EA98: .4byte 0x0000e278
-_0807EA9C: .4byte gUnknown_80FADB0
- thumb_func_end sub_807EA30
-
- thumb_func_start sub_807EAA0
-sub_807EAA0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- movs r1, 0x1
- negs r1, r1
- mov r9, r1
- movs r2, 0
- str r2, [sp, 0x8]
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r5, 0
- ldr r7, _0807EAF0
- ldr r6, _0807EAF4
-_0807EAD6:
- ldr r3, [r7]
- adds r0, r3, r6
- adds r4, r0, r5
- ldr r1, _0807EAF8
- adds r0, r3, r1
- adds r0, r5
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r1, r0, 0
- cmp r2, r1
- bcs _0807EAFC
- strb r0, [r4]
- b _0807EB08
- .align 2, 0
-_0807EAF0: .4byte gDungeonGlobalData
-_0807EAF4: .4byte 0x0000e267
-_0807EAF8: .4byte 0x0000e26f
-_0807EAFC:
- cmp r2, r1
- bls _0807EB08
- adds r0, r5, r6
- adds r0, r3, r0
- bl sub_80838EC
-_0807EB08:
- ldr r0, [r7]
- ldr r2, _0807EB38
- adds r0, r2
- adds r0, r5
- ldrb r1, [r0]
- ldr r0, _0807EB3C
- cmp r8, r1
- bge _0807EB1C
- mov r8, r1
- mov r9, r5
-_0807EB1C:
- adds r5, 0x1
- cmp r5, 0x7
- ble _0807EAD6
- mov r1, r9
- cmp r1, 0
- bge _0807EB44
- ldr r0, [r0]
- ldr r2, _0807EB40
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0x1
- adds r0, r2
- strb r1, [r0]
- b _0807EB4E
- .align 2, 0
-_0807EB38: .4byte 0x0000e267
-_0807EB3C: .4byte gDungeonGlobalData
-_0807EB40: .4byte 0x0000e265
-_0807EB44:
- ldr r0, [r0]
- ldr r1, _0807EB94
- adds r0, r1
- mov r2, r9
- strb r2, [r0]
-_0807EB4E:
- ldr r0, _0807EB98
- ldr r1, [r0]
- ldr r2, _0807EB9C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807EB64
- ldr r0, _0807EB94
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
-_0807EB64:
- movs r0, 0
- bl GetWeather
- lsls r0, 24
- lsrs r0, 24
- cmp r10, r0
- bne _0807EB78
- ldr r1, [sp, 0x4]
- cmp r1, 0
- beq _0807EB82
-_0807EB78:
- movs r2, 0x1
- str r2, [sp, 0x8]
- ldr r0, [sp]
- bl sub_807E698
-_0807EB82:
- ldr r0, _0807EB98
- ldr r0, [r0]
- ldr r2, _0807EBA0
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0807EBA4
- subs r0, 0x1
- b _0807EBA6
- .align 2, 0
-_0807EB94: .4byte 0x0000e264
-_0807EB98: .4byte gDungeonGlobalData
-_0807EB9C: .4byte 0x0000e279
-_0807EBA0: .4byte 0x0000e266
-_0807EBA4:
- movs r0, 0x9
-_0807EBA6:
- strb r0, [r1]
- ldr r4, _0807EC14
- ldr r0, [r4]
- ldr r2, _0807EC18
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0807EBD4
- adds r0, r1, 0
- bl sub_80838EC
- ldr r0, [r4]
- ldr r1, _0807EC18
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EBD4
- bl GetLeaderEntity
- ldr r1, _0807EC1C
- ldr r1, [r1]
- bl SendMessage
-_0807EBD4:
- ldr r4, _0807EC14
- ldr r0, [r4]
- ldr r2, _0807EC20
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0807EC00
- adds r0, r1, 0
- bl sub_80838EC
- ldr r0, [r4]
- ldr r1, _0807EC20
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EC00
- bl GetLeaderEntity
- ldr r1, _0807EC24
- ldr r1, [r1]
- bl SendMessage
-_0807EC00:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807EC14: .4byte gDungeonGlobalData
-_0807EC18: .4byte 0x0000e277
-_0807EC1C: .4byte gUnknown_80FA778
-_0807EC20: .4byte 0x0000e278
-_0807EC24: .4byte gUnknown_80FA758
- thumb_func_end sub_807EAA0
-
- thumb_func_start sub_807EC28
-sub_807EC28:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807EC46
- b _0807EF32
-_0807EC46:
- bl GetLeaderEntity
- adds r7, r0, 0
- ldr r0, [r7, 0x70]
- mov r9, r0
- ldr r4, _0807ECB4
- ldr r0, [r4]
- movs r5, 0xD3
- lsls r5, 3
- adds r0, r5
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- bl GetMapEntityForDungeonEntity
- ldrh r0, [r0]
- lsrs r0, 5
- mov r10, r0
- movs r0, 0x1
- mov r1, r10
- ands r1, r0
- mov r10, r1
- ldr r0, [r4]
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _0807ECB8
- adds r0, r3
- mov r2, r10
- strb r2, [r0]
- ldr r2, [r4]
- ldr r6, _0807ECBC
- adds r0, r2, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _0807EC90
- b _0807EF32
-_0807EC90:
- adds r6, 0x26
- adds r0, r2, r6
- ldr r0, [r0]
- cmp r0, 0
- bne _0807EC9C
- b _0807EF32
-_0807EC9C:
- mov r0, r9
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0807ECC0
- adds r0, r2, r5
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r3
- strb r1, [r0]
- b _0807EF32
- .align 2, 0
-_0807ECB4: .4byte gDungeonGlobalData
-_0807ECB8: .4byte 0x00000699
-_0807ECBC: .4byte 0x0000066e
-_0807ECC0:
- movs r0, 0
- str r0, [sp, 0xC]
- movs r6, 0
-_0807ECC6:
- ldr r0, _0807ED48
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0807ED4C
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807ED0E
- ldr r0, [r5, 0x70]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0807ED0E
- adds r0, r5, 0
- bl sub_8070BC0
- lsls r0, 24
- cmp r0, 0
- beq _0807ED0E
- adds r0, r7, 0
- bl GetEntityRoomIndex
- adds r4, r0, 0
- adds r0, r5, 0
- bl GetEntityRoomIndex
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0807ED0E
- movs r0, 0x1
- str r0, [sp, 0xC]
-_0807ED0E:
- adds r6, 0x1
- cmp r6, 0xF
- ble _0807ECC6
- ldr r1, _0807ED50
- ldr r0, [sp]
- ands r0, r1
- movs r1, 0xBE
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0807ED54
- ands r0, r1
- str r0, [sp]
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bne _0807ED5C
- mov r2, r10
- cmp r2, 0x1
- bne _0807ED64
- ldr r6, [sp, 0xC]
- cmp r6, 0
- bne _0807ED3A
- b _0807EF32
-_0807ED3A:
- ldr r0, _0807ED58
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
- b _0807EF32
- .align 2, 0
-_0807ED48: .4byte gDungeonGlobalData
-_0807ED4C: .4byte 0x0001358c
-_0807ED50: .4byte 0xffff0000
-_0807ED54: .4byte 0xff00ffff
-_0807ED58: .4byte gUnknown_80FE674
-_0807ED5C:
- mov r0, r10
- cmp r0, 0x1
- bne _0807ED64
- b _0807EF32
-_0807ED64:
- ldr r1, [sp, 0x8]
- cmp r1, 0x1
- bne _0807ED70
- mov r2, r10
- cmp r2, 0
- beq _0807ED78
-_0807ED70:
- mov r6, r8
- cmp r6, 0
- bne _0807ED78
- b _0807EF32
-_0807ED78:
- movs r0, 0
- str r0, [sp, 0x10]
- movs r1, 0
- str r1, [sp, 0x14]
- bl sub_807EF48
- lsls r0, 24
- cmp r0, 0
- bne _0807ED8C
- b _0807EECC
-_0807ED8C:
- movs r2, 0x1
- str r2, [sp, 0x14]
- movs r6, 0
-_0807ED92:
- ldr r0, _0807EE90
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0807EE94
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807EDAE
- b _0807EEC4
-_0807EDAE:
- ldr r0, [r5, 0x70]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- beq _0807EDB8
- b _0807EEC4
-_0807EDB8:
- adds r0, r5, 0
- bl sub_8070BC0
- lsls r0, 24
- cmp r0, 0
- bne _0807EDC6
- b _0807EEC4
-_0807EDC6:
- adds r0, r7, 0
- bl GetEntityRoomIndex
- adds r4, r0, 0
- adds r0, r5, 0
- bl GetEntityRoomIndex
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0807EEC4
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r0, 0x4
- ldrsh r1, [r7, r0]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- subs r1, r0
- cmp r1, 0
- bge _0807EDF0
- negs r1, r1
-_0807EDF0:
- cmp r1, 0x1
- bgt _0807EE10
- movs r6, 0x6
- ldrsh r1, [r7, r6]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- subs r1, r0
- cmp r1, 0
- bge _0807EE04
- negs r1, r1
-_0807EE04:
- adds r6, r7, 0x4
- mov r9, r6
- adds r0, r5, 0x4
- mov r8, r0
- cmp r1, 0x1
- ble _0807EE72
-_0807EE10:
- movs r3, 0x1
- negs r3, r3
- add r6, sp, 0x4
- adds r1, r7, 0x4
- mov r9, r1
- adds r2, r5, 0x4
- mov r8, r2
-_0807EE1E:
- movs r4, 0x1
- negs r4, r4
-_0807EE22:
- ldrh r0, [r7, 0x4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0807EE98
- ldr r2, [sp, 0x4]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- ldrh r0, [r7, 0x6]
- adds r0, r4
- lsls r0, 16
- ldr r1, _0807EE9C
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- movs r2, 0
- ldrsh r0, [r6, r2]
- asrs r1, 16
- str r3, [sp, 0x18]
- bl GetMapTileAtPosition
- ldrb r0, [r0, 0x9]
- ldr r3, [sp, 0x18]
- cmp r0, 0xFF
- beq _0807EE66
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80703A0
- lsls r0, 24
- ldr r3, [sp, 0x18]
- cmp r0, 0
- beq _0807EEA0
-_0807EE66:
- adds r4, 0x1
- cmp r4, 0x1
- ble _0807EE22
- adds r3, 0x1
- cmp r3, 0x1
- ble _0807EE1E
-_0807EE72:
- adds r0, r7, 0
- bl sub_8070BC0
- lsls r0, 24
- cmp r0, 0
- beq _0807EEAE
- mov r0, r9
- mov r1, r8
- bl CalculateFacingDir
- adds r1, r0, 0
- adds r0, r7, 0
- bl sub_806CE34
- b _0807EEB2
- .align 2, 0
-_0807EE90: .4byte gDungeonGlobalData
-_0807EE94: .4byte 0x0001358c
-_0807EE98: .4byte 0xffff0000
-_0807EE9C: .4byte 0x0000ffff
-_0807EEA0:
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x3
- adds r3, r6, 0
- bl sub_807D148
- b _0807EE72
-_0807EEAE:
- movs r6, 0
- str r6, [sp, 0x10]
-_0807EEB2:
- mov r0, r8
- mov r1, r9
- bl CalculateFacingDir
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_806CE68
- b _0807EECC
-_0807EEC4:
- adds r6, 0x1
- cmp r6, 0xF
- bgt _0807EECC
- b _0807ED92
-_0807EECC:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- beq _0807EF04
- ldr r1, [sp, 0x10]
- cmp r1, 0
- beq _0807EEDE
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _0807EF04
-_0807EEDE:
- ldr r0, _0807EEF8
- ldr r0, [r0]
- ldr r2, _0807EEFC
- adds r1, r0, r2
- ldr r6, _0807EF00
- adds r0, r6
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- ble _0807EF32
-_0807EEF2:
- bl sub_807F33C
- b _0807EF32
- .align 2, 0
-_0807EEF8: .4byte gDungeonGlobalData
-_0807EEFC: .4byte 0x00000694
-_0807EF00: .4byte 0x0000068c
-_0807EF04:
- ldr r0, [sp, 0x10]
- bl sub_807EFFC
- ldr r0, [sp, 0x10]
- bl sub_807F19C
- cmp r0, 0
- bne _0807EEF2
- ldr r0, [sp, 0x8]
- cmp r0, 0x1
- bne _0807EF32
- mov r1, r10
- cmp r1, 0
- bne _0807EF32
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _0807EF32
- ldr r0, _0807EF44
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
-_0807EF32:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EF44: .4byte gUnknown_80FE65C
- thumb_func_end sub_807EC28
-
- thumb_func_start sub_807EF48
-sub_807EF48:
- push {lr}
- ldr r0, _0807EF70
- ldr r2, [r0]
- ldr r1, _0807EF74
- adds r0, r2, r1
- ldr r3, _0807EF78
- adds r1, r2, r3
- ldr r0, [r0]
- ldr r1, [r1]
- subs r0, r1
- cmp r0, 0
- bgt _0807EF7C
- movs r1, 0xD2
- lsls r1, 3
- adds r0, r2, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0807EF7C
- movs r0, 0
- b _0807EF7E
- .align 2, 0
-_0807EF70: .4byte gDungeonGlobalData
-_0807EF74: .4byte 0x00000694
-_0807EF78: .4byte 0x0000068c
-_0807EF7C:
- movs r0, 0x1
-_0807EF7E:
- pop {r1}
- bx r1
- thumb_func_end sub_807EF48
-
- thumb_func_start sub_807EF84
-sub_807EF84:
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0807EFD0
- ldr r0, [sp]
- ands r0, r1
- movs r1, 0xBE
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0807EFD4
- ands r0, r1
- str r0, [sp]
- movs r0, 0x1
- bl sub_807EFFC
- movs r0, 0x1
- bl sub_807F19C
- adds r4, r0, 0
- cmp r4, 0
- beq _0807EFE2
- bl GetLeaderEntity
- bl GetMapEntityForDungeonEntity
- ldrh r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0807EFDC
- cmp r4, 0x2
- beq _0807EFEE
- ldr r0, _0807EFD8
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
- b _0807EFEE
- .align 2, 0
-_0807EFD0: .4byte 0xffff0000
-_0807EFD4: .4byte 0xff00ffff
-_0807EFD8: .4byte gUnknown_80FE63C
-_0807EFDC:
- bl sub_807F33C
- b _0807EFEE
-_0807EFE2:
- ldr r0, _0807EFF8
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
-_0807EFEE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EFF8: .4byte gUnknown_80FE5F0
- thumb_func_end sub_807EF84
-
- thumb_func_start sub_807EFFC
-sub_807EFFC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r4, _0807F168
- ldr r0, [r4]
- movs r5, 0xD2
- lsls r5, 3
- adds r2, r0, r5
- ldr r0, [r2]
- cmp r0, 0
- bne _0807F01E
- b _0807F158
-_0807F01E:
- ldr r1, _0807F16C
- ldr r0, [sp]
- ands r0, r1
- movs r1, 0xBE
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0807F170
- ands r0, r1
- str r0, [sp]
- cmp r3, 0
- bne _0807F036
- b _0807F158
-_0807F036:
- ldr r1, _0807F174
- ldr r0, [r2]
- str r0, [r1]
- ldr r0, _0807F178
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl sub_8052B8C
- cmp r0, 0x1
- beq _0807F04E
- b _0807F158
-_0807F04E:
- movs r0, 0xA6
- lsls r0, 1
- bl PlaySoundEffect
- ldr r0, [r4]
- adds r0, r5
- ldr r0, [r0]
- bl AddToTeamMoney
- ldr r0, [r4]
- ldr r2, _0807F17C
- adds r1, r0, r2
- ldr r1, [r1]
- str r1, [sp, 0xC]
- ldr r2, _0807F180
- adds r1, r0, r2
- ldr r6, [r1]
- ldr r1, _0807F184
- adds r0, r1
- ldr r0, [r0]
- cmp r6, r0
- bgt _0807F134
- mov r8, r4
-_0807F07C:
- mov r2, r8
- ldr r0, [r2]
- ldr r2, _0807F188
- adds r1, r0, r2
- ldr r5, [r1]
- ldr r1, _0807F18C
- adds r0, r1
- ldr r0, [r0]
- adds r2, r6, 0x1
- mov r10, r2
- cmp r5, r0
- bgt _0807F124
- lsls r0, r6, 16
- lsrs r0, 16
- mov r9, r0
-_0807F09A:
- lsls r0, r5, 16
- mov r1, r9
- orrs r0, r1
- str r0, [sp, 0x4]
- adds r0, r6, 0
- adds r1, r5, 0
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldrh r1, [r4]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0807F114
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807F114
- bl GetEntityType
- cmp r0, 0x3
- bne _0807F114
- ldr r0, [r4, 0x14]
- bl GetItemData
- adds r2, r0, 0
- ldrb r1, [r2]
- movs r7, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0807F114
- ldr r0, [r2]
- str r0, [sp, 0x8]
- add r4, sp, 0x4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, [sp, 0x8]
- lsrs r0, 16
- lsls r0, 24
- lsrs r0, 24
- bl CanSellItem
- lsls r0, 24
- add r3, sp, 0x8
- cmp r0, 0
- beq _0807F10A
- ldrb r0, [r3]
- adds r2, r7, 0
- orrs r2, r0
- ldr r1, _0807F190
- ldr r0, [sp, 0x8]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x8]
-_0807F10A:
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x1
- bl sub_80460F8
-_0807F114:
- adds r5, 0x1
- mov r2, r8
- ldr r0, [r2]
- ldr r1, _0807F18C
- adds r0, r1
- ldr r0, [r0]
- cmp r5, r0
- ble _0807F09A
-_0807F124:
- mov r6, r10
- mov r2, r8
- ldr r0, [r2]
- ldr r1, _0807F184
- adds r0, r1
- ldr r0, [r0]
- cmp r6, r0
- ble _0807F07C
-_0807F134:
- ldr r0, _0807F168
- ldr r0, [r0]
- ldr r1, _0807F194
- adds r2, r0, r1
- subs r1, 0x8
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [sp, 0xC]
- subs r1, r0
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r0, _0807F198
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
-_0807F158:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F168: .4byte gDungeonGlobalData
-_0807F16C: .4byte 0xffff0000
-_0807F170: .4byte 0xff00ffff
-_0807F174: .4byte gUnknown_202DE30
-_0807F178: .4byte gUnknown_80FE5C0
-_0807F17C: .4byte 0x0000068c
-_0807F180: .4byte 0x0000e240
-_0807F184: .4byte 0x0000e248
-_0807F188: .4byte 0x0000e244
-_0807F18C: .4byte 0x0000e24c
-_0807F190: .4byte 0xffffff00
-_0807F194: .4byte 0x00000694
-_0807F198: .4byte gUnknown_80FE4F4
- thumb_func_end sub_807EFFC
-
- thumb_func_start sub_807F19C
-sub_807F19C:
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807F1EC
- ldr r0, [sp]
- ands r0, r1
- movs r1, 0xBE
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0807F1F0
- ands r0, r1
- str r0, [sp]
- ldr r0, _0807F1F4
- ldr r0, [r0]
- ldr r3, _0807F1F8
- adds r1, r0, r3
- subs r3, 0x8
- adds r0, r3
- ldr r1, [r1]
- ldr r0, [r0]
- subs r4, r1, r0
- cmp r4, 0
- bgt _0807F1CE
- b _0807F31A
-_0807F1CE:
- cmp r2, 0
- beq _0807F1E6
- ldr r0, _0807F1FC
- str r4, [r0]
- ldr r0, _0807F200
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl sub_8052B8C
- cmp r0, 0x1
- beq _0807F204
-_0807F1E6:
- movs r0, 0x1
- b _0807F31C
- .align 2, 0
-_0807F1EC: .4byte 0xffff0000
-_0807F1F0: .4byte 0xff00ffff
-_0807F1F4: .4byte gDungeonGlobalData
-_0807F1F8: .4byte 0x00000694
-_0807F1FC: .4byte gUnknown_202DE30
-_0807F200: .4byte gUnknown_80FE568
-_0807F204:
- ldr r0, _0807F224
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r4
- bge _0807F22C
- ldr r0, _0807F228
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
- movs r0, 0x2
- b _0807F31C
- .align 2, 0
-_0807F224: .4byte gTeamInventory_203B460
-_0807F228: .4byte gUnknown_80FE520
-_0807F22C:
- movs r0, 0xA6
- lsls r0, 1
- bl PlaySoundEffect
- negs r0, r4
- bl AddToTeamMoney
- movs r6, 0
-_0807F23C:
- movs r5, 0
- adds r7, r6, 0x1
-_0807F240:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldrh r1, [r4]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0807F27E
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807F27E
- bl GetEntityType
- cmp r0, 0x3
- bne _0807F27E
- ldr r0, [r4, 0x14]
- bl GetItemData
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl CanSellItem
- lsls r0, 24
- cmp r0, 0
- beq _0807F27E
- ldrb r1, [r4]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r4]
-_0807F27E:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0807F240
- adds r6, r7, 0
- cmp r6, 0x37
- ble _0807F23C
- movs r5, 0
-_0807F28C:
- ldr r0, _0807F324
- lsls r1, r5, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807F2B2
- ldrb r0, [r4, 0x2]
- bl CanSellItem
- lsls r0, 24
- cmp r0, 0
- beq _0807F2B2
- ldrb r1, [r4]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r4]
-_0807F2B2:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807F28C
- movs r5, 0
-_0807F2BA:
- ldr r0, _0807F328
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807F32C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807F2F8
- ldr r0, [r4, 0x70]
- adds r4, r0, 0
- adds r4, 0x60
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807F2F8
- ldrb r0, [r4, 0x2]
- bl CanSellItem
- lsls r0, 24
- cmp r0, 0
- beq _0807F2F8
- ldrb r1, [r4]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r4]
-_0807F2F8:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0807F2BA
- ldr r0, _0807F328
- ldr r0, [r0]
- ldr r3, _0807F330
- adds r1, r0, r3
- ldr r2, _0807F334
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, _0807F338
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x1
- bl PrintFieldMessage
-_0807F31A:
- movs r0, 0
-_0807F31C:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807F324: .4byte gTeamInventory_203B460
-_0807F328: .4byte gDungeonGlobalData
-_0807F32C: .4byte 0x000135cc
-_0807F330: .4byte 0x00000694
-_0807F334: .4byte 0x0000068c
-_0807F338: .4byte gUnknown_80FE4D4
- thumb_func_end sub_807F19C
-
- thumb_func_start sub_807F33C
-sub_807F33C:
- push {r4-r7,lr}
- ldr r2, _0807F41C
- ldr r0, [r2]
- ldr r1, _0807F420
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldr r2, _0807F424
- adds r0, r2
- strb r1, [r0]
- bl GetLeaderEntity
- ldr r1, _0807F428
- ldr r1, [r1]
- bl SendMessage
- movs r6, 0
-_0807F360:
- movs r5, 0
- adds r7, r6, 0x1
-_0807F364:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807F38A
- bl GetEntityType
- cmp r0, 0x3
- bne _0807F38A
- ldr r0, [r4, 0x14]
- bl GetItemData
- ldrb r2, [r0]
- movs r1, 0xFD
- ands r1, r2
- strb r1, [r0]
-_0807F38A:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0807F364
- adds r6, r7, 0
- cmp r6, 0x37
- ble _0807F360
- movs r6, 0
- ldr r4, _0807F42C
- movs r5, 0x1
- movs r3, 0xFD
-_0807F39E:
- lsls r1, r6, 2
- ldr r0, [r4]
- adds r2, r0, r1
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0807F3B4
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
-_0807F3B4:
- adds r6, 0x1
- cmp r6, 0x13
- ble _0807F39E
- movs r6, 0
-_0807F3BC:
- ldr r0, _0807F41C
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r3, _0807F430
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807F3F4
- ldr r4, [r5, 0x70]
- movs r0, 0
- strb r0, [r4, 0x8]
- adds r0, r5, 0
- bl GetMovementSpeed
- adds r4, 0x60
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807F3F4
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r4]
-_0807F3F4:
- adds r6, 0x1
- cmp r6, 0x13
- ble _0807F3BC
- ldr r0, _0807F41C
- ldr r1, [r0]
- ldr r2, _0807F434
- adds r0, r1, r2
- movs r2, 0
- str r2, [r0]
- ldr r3, _0807F438
- adds r0, r1, r3
- str r2, [r0]
- movs r0, 0xD2
- lsls r0, 3
- adds r1, r0
- str r2, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F41C: .4byte gDungeonGlobalData
-_0807F420: .4byte 0x0000066e
-_0807F424: .4byte 0x0000066f
-_0807F428: .4byte gUnknown_80FE4B8
-_0807F42C: .4byte gTeamInventory_203B460
-_0807F430: .4byte 0x000135cc
-_0807F434: .4byte 0x00000694
-_0807F438: .4byte 0x0000068c
- thumb_func_end sub_807F33C
-
- thumb_func_start sub_807F43C
-sub_807F43C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10C
- str r0, [sp, 0xEC]
- mov r8, r1
- mov r0, r8
- movs r1, 0xE
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807F470
- ldr r0, _0807F468
- mov r1, r8
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807F46C
- b _0807F694
- .align 2, 0
-_0807F468: .4byte gAvailablePokemonNames
-_0807F46C: .4byte gUnknown_80FCB40
-_0807F470:
- ldr r0, [sp, 0xEC]
- cmp r0, r8
- bne _0807F490
- ldr r0, _0807F488
- mov r1, r8
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807F48C
- ldr r2, [r0]
- mov r0, r8
- b _0807F698
- .align 2, 0
-_0807F488: .4byte gAvailablePokemonNames
-_0807F48C: .4byte gUnknown_80FCB70
-_0807F490:
- mov r1, r8
- ldr r0, [r1, 0x4]
- add r1, sp, 0xD4
- str r0, [r1]
- movs r2, 0
- str r2, [sp, 0xF0]
-_0807F49C:
- movs r3, 0
- mov r9, r3
- movs r7, 0
- mov r4, sp
- adds r4, 0x18
- str r4, [sp, 0x108]
-_0807F4A8:
- ldr r0, _0807F504
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _0807F508
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- adds r3, r7, 0x1
- str r3, [sp, 0x104]
- cmp r0, 0
- bne _0807F4C8
- b _0807F602
-_0807F4C8:
- ldr r0, [sp, 0xEC]
- cmp r0, r4
- bne _0807F4D0
- b _0807F602
-_0807F4D0:
- cmp r8, r4
- bne _0807F4D6
- b _0807F602
-_0807F4D6:
- adds r1, r4, 0
- bl CanSee
- lsls r0, 24
- cmp r0, 0
- bne _0807F4E4
- b _0807F602
-_0807F4E4:
- ldr r1, [sp, 0xF0]
- cmp r1, 0
- bne _0807F50C
- ldr r0, [sp, 0xEC]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl CanTarget
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0807F500
- b _0807F602
-_0807F500:
- b _0807F51E
- .align 2, 0
-_0807F504: .4byte gDungeonGlobalData
-_0807F508: .4byte 0x000135cc
-_0807F50C:
- ldr r0, [sp, 0xEC]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl CanTarget
- lsls r0, 24
- cmp r0, 0
- bne _0807F602
-_0807F51E:
- ldr r2, [sp, 0xF0]
- cmp r2, 0
- bne _0807F594
- movs r5, 0
- add r6, sp, 0xC8
- adds r3, r7, 0x1
- str r3, [sp, 0x104]
- adds r7, r6, 0
- ldr r0, _0807F588
- mov r10, r0
-_0807F532:
- ldr r0, _0807F58C
- lsls r3, r5, 2
- adds r3, r0
- ldrh r0, [r4, 0x4]
- ldrh r1, [r3]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [r6]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- str r1, [r7]
- ldrh r2, [r4, 0x6]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- ldr r0, _0807F590
- ands r1, r0
- orrs r1, r2
- str r1, [r7]
- mov r0, r8
- add r1, sp, 0xC8
- bl sub_80703A0
- lsls r0, 24
- cmp r0, 0
- beq _0807F570
- adds r5, 0x1
- cmp r5, 0x7
- ble _0807F532
-_0807F570:
- cmp r5, 0x8
- beq _0807F602
- mov r3, r9
- cmp r3, 0x27
- bgt _0807F602
- ldr r0, [r4, 0x4]
- ldr r4, [sp, 0x108]
- stm r4!, {r0}
- str r4, [sp, 0x108]
- movs r0, 0x1
- add r9, r0
- b _0807F602
- .align 2, 0
-_0807F588: .4byte 0xffff0000
-_0807F58C: .4byte gAdjacentTileOffsets
-_0807F590: .4byte 0x0000ffff
-_0807F594:
- movs r5, 0
- add r6, sp, 0xCC
- adds r1, r7, 0x1
- str r1, [sp, 0x104]
- adds r7, r6, 0
- mov r2, r9
- lsls r0, r2, 2
- add r0, sp
- adds r0, 0x18
- mov r10, r0
-_0807F5A8:
- ldr r0, _0807F630
- lsls r3, r5, 2
- adds r3, r0
- ldrh r0, [r4, 0x4]
- ldrh r1, [r3]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0807F634
- ldr r1, [r6]
- ands r1, r2
- orrs r1, r0
- str r1, [r7]
- ldrh r2, [r4, 0x6]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- ldr r0, _0807F638
- ands r1, r0
- orrs r1, r2
- str r1, [r7]
- mov r0, r8
- add r1, sp, 0xCC
- bl sub_80703A0
- lsls r0, 24
- cmp r0, 0
- bne _0807F5FC
- mov r2, r9
- cmp r2, 0x27
- bgt _0807F5FC
- ldr r0, [r6]
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r0}
- ldr r0, [sp, 0x108]
- adds r0, 0x4
- str r0, [sp, 0x108]
- movs r1, 0x1
- add r9, r1
-_0807F5FC:
- adds r5, 0x1
- cmp r5, 0x7
- ble _0807F5A8
-_0807F602:
- ldr r7, [sp, 0x104]
- cmp r7, 0x13
- bgt _0807F60A
- b _0807F4A8
-_0807F60A:
- mov r2, r9
- cmp r2, 0
- bne _0807F63C
- ldr r3, [sp, 0xF0]
- adds r3, 0x1
- str r3, [sp, 0xF0]
- cmp r3, 0x1
- bgt _0807F61C
- b _0807F49C
-_0807F61C:
- ldr r0, [sp, 0xEC]
- adds r0, 0x4
- add r4, sp, 0xB8
- adds r1, r4, 0
- bl sub_80833E8
- movs r7, 0
- add r5, sp, 0xD0
- adds r6, r5, 0
- b _0807F654
- .align 2, 0
-_0807F630: .4byte gAdjacentTileOffsets
-_0807F634: .4byte 0xffff0000
-_0807F638: .4byte 0x0000ffff
-_0807F63C:
- mov r0, r9
- bl DungeonRandomCapped
- lsls r0, 2
- add r0, sp
- adds r0, 0x18
- ldr r0, [r0]
- str r0, [sp, 0xD4]
- b _0807F6A8
-_0807F64E:
- ldr r0, [r5]
- str r0, [sp, 0xD4]
- b _0807F68E
-_0807F654:
- ldr r0, [r4]
- ldr r1, [r4, 0x8]
- bl sub_808411C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0807F6A0
- ldr r1, [r5]
- ands r1, r2
- orrs r1, r0
- str r1, [r6]
- ldr r0, [r4, 0x4]
- ldr r1, [r4, 0xC]
- bl sub_808411C
- lsls r0, 16
- ldrh r1, [r6]
- orrs r1, r0
- str r1, [r6]
- mov r0, r8
- add r1, sp, 0xD0
- bl sub_80703A0
- lsls r0, 24
- cmp r0, 0
- beq _0807F64E
- adds r7, 0x1
- cmp r7, 0x63
- ble _0807F654
-_0807F68E:
- cmp r7, 0x64
- bne _0807F6A8
- ldr r0, _0807F6A4
-_0807F694:
- ldr r2, [r0]
- ldr r0, [sp, 0xEC]
-_0807F698:
- mov r1, r8
- bl sub_80522F4
- b _0807F99C
- .align 2, 0
-_0807F6A0: .4byte 0xffff0000
-_0807F6A4: .4byte gUnknown_80FE6B4
-_0807F6A8:
- ldr r0, _0807F860
- mov r1, r8
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807F864
- ldr r2, [r0]
- ldr r0, [sp, 0xEC]
- mov r1, r8
- bl sub_80522F4
- mov r0, r8
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807F6D0
- ldr r0, _0807F868
- bl PlaySoundEffect
-_0807F6D0:
- movs r4, 0
- str r4, [sp, 0x100]
- mov r1, r8
- ldr r0, [r1, 0x70]
- adds r0, 0x46
- ldrb r0, [r0]
- mov r9, r0
- add r2, sp, 0xD4
- movs r3, 0
- ldrsh r1, [r2, r3]
- mov r4, r8
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- subs r3, r1, r0
- movs r4, 0x2
- ldrsh r1, [r2, r4]
- mov r2, r8
- movs r4, 0x6
- ldrsh r0, [r2, r4]
- subs r1, r0
- cmp r1, r3
- bge _0807F6FE
- adds r1, r3, 0
-_0807F6FE:
- lsls r6, r1, 4
- cmp r6, 0x50
- ble _0807F706
- movs r6, 0x50
-_0807F706:
- cmp r6, 0x9
- bgt _0807F70C
- movs r6, 0xA
-_0807F70C:
- mov r1, r8
- adds r1, 0x4
- add r0, sp, 0xD4
- bl CalculateFacingDir
- adds r5, r0, 0
- add r2, sp, 0xD4
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 11
- movs r3, 0xC0
- lsls r3, 4
- adds r4, r3
- ldr r0, _0807F86C
- lsls r5, 2
- adds r5, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r1, 0x3
- bl __divsi3
- adds r4, r0
- str r4, [sp, 0xF4]
- movs r3, 0xD6
- add r3, sp
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 11
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r1, 0x3
- bl __divsi3
- adds r4, r0
- str r4, [sp, 0xF8]
- mov r2, r8
- ldr r5, [r2, 0xC]
- ldr r3, [sp, 0xF4]
- subs r0, r3, r5
- adds r1, r6, 0
- bl __divsi3
- str r0, [sp, 0xFC]
- mov r0, r8
- ldr r4, [r0, 0x10]
- ldr r1, [sp, 0xF8]
- subs r0, r1, r4
- adds r1, r6, 0
- bl __divsi3
- mov r10, r0
- add r0, sp, 0xD8
- str r5, [r0]
- str r4, [r0, 0x4]
- movs r7, 0
- adds r5, r0, 0
- cmp r7, r6
- bge _0807F7FC
- adds r4, r5, 0
-_0807F794:
- ldr r0, [r5]
- ldr r2, [sp, 0xFC]
- adds r0, r2, r0
- str r0, [r4]
- ldr r0, [r4, 0x4]
- add r0, r10
- str r0, [r4, 0x4]
- mov r0, r8
- adds r1, r4, 0
- bl sub_804535C
- mov r0, r8
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807F7E6
- ldr r0, [sp, 0x100]
- bl sub_8009C7C
- lsls r0, 5
- mov r3, r8
- str r0, [r3, 0x1C]
- movs r0, 0x3B
- bl sub_803E46C
- movs r0, 0x3
- ands r0, r7
- cmp r0, 0
- bne _0807F7E6
- movs r0, 0x7
- mov r1, r9
- ands r1, r0
- mov r9, r1
- mov r0, r8
- movs r1, 0x6
- mov r2, r9
- bl sub_806CDD4
- movs r2, 0x1
- add r9, r2
-_0807F7E6:
- movs r0, 0x80
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- ldr r3, [sp, 0x100]
- adds r3, r0
- str r3, [sp, 0x100]
- adds r7, 0x1
- cmp r7, r6
- blt _0807F794
-_0807F7FC:
- ldr r4, [sp, 0xF4]
- str r4, [r5]
- add r1, sp, 0xD8
- ldr r0, [sp, 0xF8]
- str r0, [r1, 0x4]
- movs r0, 0
- mov r2, r8
- str r0, [r2, 0x1C]
- mov r0, r8
- bl sub_804535C
- movs r0, 0x3B
- bl sub_803E46C
- mov r3, r8
- ldr r0, [r3, 0x70]
- movs r1, 0x7
- mov r4, r9
- ands r4, r1
- adds r0, 0x46
- strb r4, [r0]
- add r2, sp, 0xD4
- movs r1, 0
- ldrsh r0, [r2, r1]
- adds r4, r2, 0
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- bl GetMapTileAtPosition
- ldr r6, [r0, 0x10]
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807F876
- add r2, sp, 0xD4
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r3, 0x2
- ldrsh r2, [r4, r3]
- mov r0, r8
- movs r3, 0x1
- bl sub_80694C0
- mov r0, r8
- bl sub_807F9BC
- b _0807F99C
- .align 2, 0
-_0807F860: .4byte gAvailablePokemonNames
-_0807F864: .4byte gUnknown_80FE690
-_0807F868: .4byte 0x000001a3
-_0807F86C: .4byte gAdjacentTileOffsets
-_0807F870:
- ldr r0, [r7]
- str r0, [sp, 0xD4]
- b _0807F8BE
-_0807F876:
- movs r5, 0
- add r4, sp, 0xE0
- adds r7, r4, 0
-_0807F87C:
- ldr r0, _0807F8D0
- lsls r3, r5, 2
- adds r3, r0
- add r1, sp, 0xD4
- ldrh r0, [r1]
- ldrh r2, [r3]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0807F8D4
- ldr r1, [r7]
- ands r1, r2
- orrs r1, r0
- str r1, [r4]
- add r0, sp, 0xD4
- ldrh r2, [r0, 0x2]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- ldr r0, _0807F8D8
- ands r1, r0
- orrs r1, r2
- str r1, [r4]
- mov r0, r8
- add r1, sp, 0xE0
- bl sub_80703A0
- lsls r0, 24
- cmp r0, 0
- beq _0807F870
- adds r5, 0x1
- cmp r5, 0x7
- ble _0807F87C
-_0807F8BE:
- cmp r5, 0x8
- bne _0807F8DC
- ldr r0, [sp, 0xEC]
- mov r1, r8
- movs r2, 0
- movs r3, 0
- bl sub_807D148
- b _0807F8FA
- .align 2, 0
-_0807F8D0: .4byte gAdjacentTileOffsets
-_0807F8D4: .4byte 0xffff0000
-_0807F8D8: .4byte 0x0000ffff
-_0807F8DC:
- mov r0, r8
- add r1, sp, 0xD4
- bl sub_807D068
- add r0, sp, 0xD4
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r0, 0xD6
- add r0, sp
- movs r4, 0
- ldrsh r2, [r0, r4]
- mov r0, r8
- movs r3, 0x1
- bl sub_80694C0
-_0807F8FA:
- adds r0, r6, 0
- bl GetEntityType
- cmp r0, 0x1
- bne _0807F954
- add r4, sp, 0xE4
- ldr r1, _0807F9AC
- adds r0, r4, 0
- bl InitPokemonMove
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80571F0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0807F93C
- ldr r0, _0807F9B0
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r0, _0807F9B4
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- ldr r0, [sp, 0xEC]
- adds r1, r6, 0
- movs r3, 0
- bl sub_806F370
-_0807F93C:
- adds r0, r6, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807F954
- ldr r0, [r6, 0x70]
- adds r0, 0x46
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_806CE68
-_0807F954:
- ldr r0, _0807F9B0
- movs r4, 0
- ldrsh r2, [r0, r4]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r0, _0807F9B8
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- ldr r0, [sp, 0xEC]
- mov r1, r8
- movs r3, 0
- bl sub_806F370
- mov r0, r8
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807F98E
- mov r1, r8
- ldr r0, [r1, 0x70]
- adds r0, 0x46
- ldrb r1, [r0]
- mov r0, r8
- bl sub_806CE68
-_0807F98E:
- movs r0, 0x1E
- movs r1, 0x3B
- bl sub_803E708
- mov r0, r8
- bl sub_807F9BC
-_0807F99C:
- add sp, 0x10C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F9AC: .4byte 0x00000163
-_0807F9B0: .4byte gUnknown_80F4F92
-_0807F9B4: .4byte 0x0000021a
-_0807F9B8: .4byte 0x00000219
- thumb_func_end sub_807F43C
-
- thumb_func_start sub_807F9BC
-sub_807F9BC:
- push {r4,lr}
- adds r4, r0, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807FA0A
- ldr r0, [r4, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0807F9F4
- ldr r2, _0807FA10
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r0, [r2]
- movs r1, 0xB8
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- adds r0, r4, 0x4
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
-_0807F9F4:
- adds r0, r4, 0
- bl sub_806A5B8
- ldr r0, _0807FA10
- ldr r0, [r0]
- ldr r1, _0807FA14
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8075900
-_0807FA0A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FA10: .4byte gDungeonGlobalData
-_0807FA14: .4byte 0x00003a08
- thumb_func_end sub_807F9BC
-
- thumb_func_start sub_807FA18
-sub_807FA18:
- push {r4-r7,lr}
- sub sp, 0x4
- movs r6, 0
-_0807FA1E:
- movs r5, 0
- adds r7, r6, 0x1
-_0807FA22:
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMapEntity
- adds r4, r0, 0
- ldrh r1, [r4, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0807FA88
- lsls r0, r5, 16
- lsls r1, r6, 16
- lsrs r0, 16
- orrs r0, r1
- str r0, [sp]
- ldrh r1, [r4, 0x4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807FA4E
- movs r0, 0x6
- b _0807FA56
-_0807FA4E:
- bl sub_803D6FC
- lsls r0, 24
- lsrs r0, 24
-_0807FA56:
- cmp r0, 0x11
- bne _0807FA72
- movs r0, 0x11
- mov r1, sp
- movs r2, 0x2
- bl sub_8045684
- cmp r0, 0
- beq _0807FA88
- str r0, [r4, 0x14]
- adds r1, r0, 0
- adds r1, 0x20
- movs r0, 0x1
- b _0807FA86
-_0807FA72:
- mov r1, sp
- movs r2, 0
- bl sub_8045684
- cmp r0, 0
- beq _0807FA88
- str r0, [r4, 0x14]
- adds r1, r0, 0
- adds r1, 0x20
- movs r0, 0
-_0807FA86:
- strb r0, [r1]
-_0807FA88:
- adds r5, 0x1
- cmp r5, 0x37
- ble _0807FA22
- adds r6, r7, 0
- cmp r6, 0x1F
- ble _0807FA1E
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807FA18
-
- thumb_func_start sub_807FA9C
-sub_807FA9C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r2, _0807FAC4
- ldr r0, [r2]
- ldr r3, _0807FAC8
- adds r1, r0, r3
- ldrb r1, [r1]
- str r1, [sp]
- ldr r1, _0807FACC
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- subs r1, r0, 0x5
- mov r8, r1
- b _0807FBFE
- .align 2, 0
-_0807FAC4: .4byte gDungeonGlobalData
-_0807FAC8: .4byte 0x0001820f
-_0807FACC: .4byte 0x000181ea
-_0807FAD0:
- ldr r0, [r2]
- ldr r2, _0807FC18
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- subs r5, r0, 0x6
- adds r0, 0x6
- mov r1, r8
- adds r1, 0x1
- str r1, [sp, 0x4]
- cmp r5, r0
- blt _0807FAEA
- b _0807FBEE
-_0807FAEA:
- ldr r7, _0807FC1C
- ldr r2, _0807FC20
- mov r10, r2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- mov r9, r0
-_0807FAF8:
- movs r6, 0
- adds r0, r5, 0
- mov r1, r8
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807FB24
- bl GetEntityType
- cmp r0, 0x2
- bne _0807FB24
- ldr r0, [r4, 0x14]
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FB22
- ldr r3, [sp]
- cmp r3, 0
- beq _0807FB24
-_0807FB22:
- movs r6, 0x1
-_0807FB24:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0807FB34
- movs r6, 0x1
-_0807FB34:
- cmp r6, 0
- beq _0807FBD6
- ldr r0, _0807FC24
- ldr r1, [r0]
- ldr r3, _0807FC28
- adds r0, r1, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- mov r2, r9
- subs r3, r2, r0
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 3
- ldr r2, _0807FC2C
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- subs r2, r0, r1
- movs r0, 0x20
- negs r0, r0
- cmp r3, r0
- blt _0807FBD6
- cmp r2, r0
- blt _0807FBD6
- movs r0, 0x88
- lsls r0, 1
- cmp r3, r0
- bgt _0807FBD6
- cmp r2, 0xC0
- bgt _0807FBD6
- ldrh r1, [r7]
- mov r0, r10
- ands r0, r1
- strh r0, [r7]
- ldr r1, _0807FC30
- ands r1, r2
- lsls r1, 4
- ldrh r2, [r7, 0x6]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strh r0, [r7, 0x6]
- ldr r0, _0807FC34
- ands r3, r0
- ldrh r0, [r7, 0x2]
- movs r2, 0xFE
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- orrs r0, r3
- strh r0, [r7, 0x2]
- ldrh r1, [r7, 0x4]
- mov r0, r10
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- orrs r0, r3
- movs r1, 0
- orrs r0, r1
- movs r1, 0xA0
- lsls r1, 8
- ldr r2, _0807FC30
- ands r0, r2
- orrs r0, r1
- movs r3, 0
- orrs r0, r3
- movs r2, 0xFE
- lsls r2, 1
- movs r3, 0xFC
- lsls r3, 8
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r7, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_0807FBD6:
- movs r0, 0x18
- add r9, r0
- adds r5, 0x1
- ldr r0, _0807FC24
- ldr r0, [r0]
- ldr r1, _0807FC18
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r0, 0x6
- cmp r5, r0
- blt _0807FAF8
-_0807FBEE:
- ldr r3, [sp, 0x4]
- mov r8, r3
- ldr r2, _0807FC24
- ldr r0, [r2]
- ldr r1, _0807FC38
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
-_0807FBFE:
- adds r0, 0x5
- cmp r8, r0
- bge _0807FC06
- b _0807FAD0
-_0807FC06:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC18: .4byte 0x000181e8
-_0807FC1C: .4byte gUnknown_202EDC0
-_0807FC20: .4byte 0x0000f3ff
-_0807FC24: .4byte gDungeonGlobalData
-_0807FC28: .4byte 0x000181f0
-_0807FC2C: .4byte 0x000181f2
-_0807FC30: .4byte 0x00000fff
-_0807FC34: .4byte 0x000001ff
-_0807FC38: .4byte 0x000181ea
- thumb_func_end sub_807FA9C
-
- thumb_func_start sub_807FC3C
-sub_807FC3C:
- push {r4-r7,lr}
- ldr r6, _0807FC70
- ldr r4, [r6]
- ldrh r5, [r0]
- ldr r7, _0807FC74
- adds r3, r4, r7
- strh r5, [r3]
- ldrh r3, [r0, 0x2]
- ldr r5, _0807FC78
- adds r0, r4, r5
- strh r3, [r0]
- adds r7, 0x4
- adds r4, r7
- strb r1, [r4]
- ldr r0, [r6]
- ldr r1, _0807FC7C
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r6]
- subs r5, 0x6
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC70: .4byte gDungeonGlobalData
-_0807FC74: .4byte 0x00013574
-_0807FC78: .4byte 0x00013576
-_0807FC7C: .4byte 0x00013579
- thumb_func_end sub_807FC3C
-
- thumb_func_start CanLayTrap
-CanLayTrap:
- push {lr}
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl GetMapEntity
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0807FCCA
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _0807FCCA
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0807FCCA
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0807FCCA
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0807FCCA
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _0807FCCE
- bl GetEntityType
- cmp r0, 0x2
- beq _0807FCCE
-_0807FCCA:
- movs r0, 0
- b _0807FCD0
-_0807FCCE:
- movs r0, 0x1
-_0807FCD0:
- pop {r1}
- bx r1
- thumb_func_end CanLayTrap
-
- thumb_func_start sub_807FCD4
-sub_807FCD4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- bl GetMapEntity
- adds r6, r0, 0
- cmp r5, 0x13
- bls _0807FD12
- movs r4, 0
- b _0807FCFE
-_0807FCFC:
- adds r4, 0x1
-_0807FCFE:
- cmp r4, 0x1D
- bgt _0807FD0C
- bl sub_803D6FC
- adds r5, r0, 0
- cmp r5, 0x11
- beq _0807FCFC
-_0807FD0C:
- cmp r4, 0x1E
- bne _0807FD12
- movs r5, 0x10
-_0807FD12:
- ldrh r1, [r6]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0807FD6E
- ldrb r0, [r6, 0x9]
- cmp r0, 0xFF
- beq _0807FD6E
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0807FD6E
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0807FD6E
- movs r4, 0x3
- ands r4, r1
- cmp r4, 0x1
- bne _0807FD6E
- ldr r0, [r6, 0x14]
- cmp r0, 0
- beq _0807FD60
- bl GetEntityType
- cmp r0, 0x2
- bne _0807FD6E
- ldr r0, [r6, 0x14]
- bl GetTrapData
- strb r5, [r0]
- ldr r0, [r6, 0x14]
- bl GetTrapData
- mov r1, r8
- strb r1, [r0, 0x1]
- ldr r0, [r6, 0x14]
- b _0807FD74
-_0807FD60:
- adds r0, r5, 0
- adds r1, r7, 0
- mov r2, r8
- bl sub_8045684
- cmp r0, 0
- bne _0807FD72
-_0807FD6E:
- movs r0, 0
- b _0807FD7A
-_0807FD72:
- str r0, [r6, 0x14]
-_0807FD74:
- adds r0, 0x20
- strb r4, [r0]
- movs r0, 0x1
-_0807FD7A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807FCD4
-
- thumb_func_start sub_807FD84
-sub_807FD84:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- ldr r4, _0807FD9C
- ldr r0, [r4]
- ldr r2, _0807FDA0
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _0807FDA4
- movs r0, 0
- b _0807FDF6
- .align 2, 0
-_0807FD9C: .4byte gDungeonGlobalData
-_0807FDA0: .4byte 0x00013570
-_0807FDA4:
- strb r5, [r1]
- ldr r2, [r4]
- ldr r3, _0807FDD8
- adds r0, r2, r3
- adds r3, 0x4
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- bl sub_807FCD4
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0807FDE0
- ldr r1, [r4]
- ldr r0, _0807FDD8
- adds r1, r0
- ldr r0, _0807FDDC
- ldr r2, [r0]
- adds r0, r6, 0
- bl sub_8052364
- b _0807FDF0
- .align 2, 0
-_0807FDD8: .4byte 0x00013574
-_0807FDDC: .4byte gUnknown_80FC5F8
-_0807FDE0:
- ldr r1, [r4]
- ldr r2, _0807FDFC
- adds r1, r2
- ldr r0, _0807FE00
- ldr r2, [r0]
- adds r0, r6, 0
- bl sub_8052364
-_0807FDF0:
- bl sub_8049ED4
- adds r0, r5, 0
-_0807FDF6:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0807FDFC: .4byte 0x00013574
-_0807FE00: .4byte gUnknown_80FC5FC
- thumb_func_end sub_807FD84
-
- thumb_func_start sub_807FE04
-sub_807FE04:
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl GetMapEntity
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807FE3C
- bl GetEntityType
- cmp r0, 0x2
- bne _0807FE3C
- ldr r1, [r4, 0x14]
- movs r0, 0
- str r0, [r1]
- str r0, [r4, 0x14]
- cmp r5, 0
- beq _0807FE38
- bl sub_8049ED4
-_0807FE38:
- movs r0, 0x1
- b _0807FE3E
-_0807FE3C:
- movs r0, 0
-_0807FE3E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807FE04
-
- thumb_func_start sub_807FE44
-sub_807FE44:
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- cmp r0, 0
- beq _0807FE7C
- bl GetEntityType
- cmp r0, 0x2
- bne _0807FE7C
- ldr r0, [r4, 0x14]
- adds r0, 0x20
- movs r1, 0x1
- strb r1, [r0]
- cmp r5, 0
- beq _0807FE78
- bl sub_8049ED4
-_0807FE78:
- movs r0, 0x1
- b _0807FE7E
-_0807FE7C:
- movs r0, 0
-_0807FE7E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807FE44
-
- thumb_func_start GetTrapName
-GetTrapName:
- push {lr}
- lsls r1, 24
- ldr r2, _0807FE98
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl strcpy
- pop {r0}
- bx r0
- .align 2, 0
-_0807FE98: .4byte gTrapNames
- thumb_func_end GetTrapName
-
- thumb_func_start sub_807FE9C
-sub_807FE9C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- mov r9, r1
- str r2, [sp]
- lsls r3, 24
- lsrs r6, r3, 24
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- bl GetMapEntity
- str r0, [sp, 0x4]
- ldr r0, [r0, 0x14]
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x8]
- cmp r0, 0
- bne _0807FECE
- b _080801B4
-_0807FECE:
- bl GetEntityType
- cmp r0, 0x2
- beq _0807FED8
- b _080801B4
-_0807FED8:
- mov r0, r10
- bl GetTrapData
- mov r8, r0
- ldr r0, _0807FF58
- mov r2, r8
- ldrb r1, [r2]
- bl GetTrapName
- ldr r3, [sp, 0x4]
- ldr r4, [r3, 0x10]
- cmp r4, 0
- beq _0807FEFE
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x1
- beq _0807FEFE
- movs r4, 0
-_0807FEFE:
- mov r1, r10
- adds r1, 0x20
- ldrb r0, [r1]
- str r0, [sp, 0xC]
- movs r0, 0x1
- strb r0, [r1]
- cmp r4, 0
- beq _0807FF96
- adds r0, r4, 0
- bl sub_806A1E8
- cmp r6, 0
- beq _0807FF96
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x11
- beq _0807FF96
- movs r0, 0x64
- bl DungeonRandomCapped
- adds r7, r0, 0
- movs r6, 0
- adds r0, r4, 0
- movs r1, 0x1C
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- beq _0807FF3C
- ldr r0, _0807FF5C
- ldr r6, [r0]
-_0807FF3C:
- ldr r2, [sp, 0xC]
- cmp r2, 0x1
- beq _0807FF50
- ldr r0, _0807FF60
- ldr r0, [r0]
- ldr r3, _0807FF64
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FF68
-_0807FF50:
- cmp r7, 0
- bge _0807FF70
- b _0807FF6C
- .align 2, 0
-_0807FF58: .4byte gAvailablePokemonNames
-_0807FF5C: .4byte gUnknown_80FDB5C
-_0807FF60: .4byte gDungeonGlobalData
-_0807FF64: .4byte 0x0001820f
-_0807FF68:
- cmp r7, 0xE
- bgt _0807FF70
-_0807FF6C:
- ldr r0, _0807FFD8
- ldr r6, [r0]
-_0807FF70:
- cmp r6, 0
- beq _0807FF96
- mov r0, r9
- bl sub_803F428
- lsls r0, 24
- cmp r0, 0
- beq _0807FF84
- bl sub_8049ED4
-_0807FF84:
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80522F4
- ldr r0, [sp]
- cmp r0, 0
- bne _0807FF96
- b _080801B4
-_0807FF96:
- mov r0, r9
- bl sub_803F428
- lsls r0, 24
- cmp r0, 0
- beq _0807FFFA
- movs r1, 0xAE
- lsls r1, 1
- movs r0, 0
- bl sub_80421C0
- bl sub_8049ED4
- mov r1, r8
- ldrb r2, [r1]
- adds r0, r5, 0
- mov r1, r9
- bl sub_804225C
- ldr r0, _0807FFDC
- ldr r0, [r0]
- ldr r2, _0807FFE0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FFE8
- ldr r0, _0807FFE4
- ldr r1, [r0]
- adds r0, r5, 0
- bl SendMessage
- b _0807FFFA
- .align 2, 0
-_0807FFD8: .4byte gUnknown_80FDB7C
-_0807FFDC: .4byte gDungeonGlobalData
-_0807FFE0: .4byte 0x0001820a
-_0807FFE4: .4byte gUnknown_80FD7F4
-_0807FFE8:
- ldr r0, _08080010
- mov r3, r8
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r5, 0
- bl SendMessage
-_0807FFFA:
- cmp r4, 0
- beq _08080020
- mov r1, r8
- ldrb r0, [r1, 0x1]
- cmp r0, 0x2
- bne _08080014
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806F480
- b _08080020
- .align 2, 0
-_08080010: .4byte gUnknown_80FD7F8
-_08080014:
- cmp r0, 0x1
- bne _08080020
- adds r0, r4, 0
- movs r1, 0
- bl sub_806F480
-_08080020:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x1B
- bls _0808002A
- b _08080194
-_0808002A:
- lsls r0, 2
- ldr r1, _08080034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080034: .4byte _08080038
- .align 2, 0
-_08080038:
- .4byte _080800A8
- .4byte _080800B2
- .4byte _080800BC
- .4byte _080800C6
- .4byte _080800D0
- .4byte _080800DA
- .4byte _080800E6
- .4byte _080800F0
- .4byte _080800FA
- .4byte _08080104
- .4byte _0808010E
- .4byte _08080118
- .4byte _08080122
- .4byte _0808012C
- .4byte _08080136
- .4byte _08080140
- .4byte _0808014A
- .4byte _08080168
- .4byte _08080172
- .4byte _08080180
- .4byte _08080194
- .4byte _08080194
- .4byte _08080194
- .4byte _08080194
- .4byte _08080194
- .4byte _08080194
- .4byte _08080194
- .4byte _080800DA
-_080800A8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080A5C
- b _08080194
-_080800B2:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80801CC
- b _08080194
-_080800BC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_808024C
- b _08080194
-_080800C6:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080418
- b _08080194
-_080800D0:
- adds r0, r5, 0
- mov r1, r9
- bl sub_8080620
- b _0808017A
-_080800DA:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, [sp, 0x4]
- bl sub_8080504
- b _08080194
-_080800E6:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080374
- b _08080194
-_080800F0:
- mov r0, r10
- adds r1, r4, 0
- bl sub_8080884
- b _08080194
-_080800FA:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080364
- b _08080194
-_08080104:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080388
- b _08080194
-_0808010E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80803B4
- b _08080194
-_08080118:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80807C0
- b _08080194
-_08080122:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80803C8
- b _08080194
-_0808012C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80803D8
- b _08080194
-_08080136:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80803F8
- b _08080194
-_08080140:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8080700
- b _08080194
-_0808014A:
- cmp r4, 0
- beq _08080194
- ldr r0, _08080160
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, _08080164
- adds r0, r4, 0
- movs r2, 0xF
- bl sub_806F324
- b _08080194
- .align 2, 0
-_08080160: .4byte gUnknown_80F4F86
-_08080164: .4byte 0x00000213
-_08080168:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80807B4
- b _08080194
-_08080172:
- adds r0, r5, 0
- mov r1, r9
- bl sub_80808A4
-_0808017A:
- movs r3, 0x1
- str r3, [sp, 0x8]
- b _08080194
-_08080180:
- cmp r4, 0
- beq _08080194
- ldr r0, _080801C4
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, _080801C8
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_806F324
-_08080194:
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080801A6
- adds r0, r4, 0
- bl sub_8071DA4
-_080801A6:
- ldr r3, [sp, 0x8]
- cmp r3, 0
- beq _080801B4
- mov r0, r9
- movs r1, 0x1
- bl sub_807FE04
-_080801B4:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080801C4: .4byte gUnknown_80F4F84
-_080801C8: .4byte 0x00000206
- thumb_func_end sub_807FE9C
-
- thumb_func_start sub_80801CC
-sub_80801CC:
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _08080240
- movs r0, 0x64
- bl DungeonRandomCapped
- adds r1, r0, 0
- cmp r0, 0x18
- bgt _080801EC
- ldr r0, _080801E8
- b _080801F2
- .align 2, 0
-_080801E8: .4byte gUnknown_8106A4C
-_080801EC:
- cmp r0, 0x31
- bgt _0808020C
- ldr r0, _08080208
-_080801F2:
- ldr r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8076E20
- b _08080240
- .align 2, 0
-_08080208: .4byte gUnknown_8106A50
-_0808020C:
- cmp r1, 0x4A
- bgt _0808022C
- ldr r0, _08080228
- ldr r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8076F80
- b _08080240
- .align 2, 0
-_08080228: .4byte gUnknown_8106A4C
-_0808022C:
- ldr r0, _08080248
- ldr r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8076F80
-_08080240:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080248: .4byte gUnknown_8106A50
- thumb_func_end sub_80801CC
-
- thumb_func_start sub_808024C
-sub_808024C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x5C
- str r0, [sp, 0x54]
- mov r10, r1
- ldr r0, [r1, 0x70]
- mov r8, r0
- mov r0, r10
- movs r1, 0xE
- bl HasItem
- lsls r0, 24
- cmp r0, 0
- beq _08080278
- ldr r0, _08080274
- b _08080300
- .align 2, 0
-_08080274: .4byte gUnknown_80FDC7C
-_08080278:
- movs r6, 0
- mov r1, r8
- ldrb r0, [r1, 0x7]
- movs r1, 0x60
- add r1, r8
- mov r9, r1
- cmp r0, 0
- beq _080802C8
- movs r5, 0
- ldr r7, _0808030C
- mov r0, sp
- str r0, [sp, 0x58]
-_08080290:
- lsls r4, r5, 2
- ldr r0, [r7]
- adds r2, r4, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080802C2
- ldrb r0, [r2, 0x2]
- bl IsNotSpecialItem
- lsls r0, 24
- cmp r0, 0
- beq _080802C2
- ldr r0, [r7]
- adds r2, r0, r4
- ldrb r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080802C2
- ldr r1, [sp, 0x58]
- stm r1!, {r2}
- str r1, [sp, 0x58]
- adds r6, 0x1
-_080802C2:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08080290
-_080802C8:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080802FA
- mov r0, r8
- adds r0, 0x62
- ldrb r0, [r0]
- bl IsNotSpecialItem
- lsls r0, 24
- cmp r0, 0
- beq _080802FA
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080802FA
- lsls r0, r6, 2
- add r0, sp
- mov r1, r9
- str r1, [r0]
- adds r6, 0x1
-_080802FA:
- cmp r6, 0
- bne _08080314
- ldr r0, _08080310
-_08080300:
- ldr r2, [r0]
- ldr r0, [sp, 0x54]
- mov r1, r10
- bl sub_80522F4
- b _0808034A
- .align 2, 0
-_0808030C: .4byte gTeamInventory_203B460
-_08080310: .4byte gUnknown_80FDC40
-_08080314:
- adds r0, r6, 0
- bl DungeonRandomCapped
- ldr r2, _0808035C
- lsls r0, 2
- mov r1, sp
- adds r4, r1, r0
- ldr r1, [r4]
- adds r0, r2, 0
- bl sub_8045BF8
- ldr r2, [r4]
- ldrb r1, [r2]
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0xC9
- lsls r1, 1
- mov r0, r10
- bl sub_80421C0
- ldr r0, _08080360
- ldr r2, [r0]
- ldr r0, [sp, 0x54]
- mov r1, r10
- bl sub_80522F4
-_0808034A:
- add sp, 0x5C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808035C: .4byte gUnknown_202DE58
-_08080360: .4byte gUnknown_80FDC18
- thumb_func_end sub_808024C
-
- thumb_func_start sub_8080364
-sub_8080364:
- push {lr}
- cmp r1, 0
- beq _08080370
- movs r2, 0x1
- bl sub_8077AE4
-_08080370:
- pop {r0}
- bx r0
- thumb_func_end sub_8080364
-
- thumb_func_start sub_8080374
-sub_8080374:
- push {lr}
- cmp r1, 0
- beq _08080382
- movs r2, 0
- movs r3, 0
- bl sub_807D148
-_08080382:
- pop {r0}
- bx r0
- thumb_func_end sub_8080374
-
- thumb_func_start sub_8080388
-sub_8080388:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _080803A8
- ldr r1, _080803B0
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_808417C
- adds r2, r0, 0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8075C58
-_080803A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080803B0: .4byte gUnknown_80F4E74
- thumb_func_end sub_8080388
-
- thumb_func_start sub_80803B4
-sub_80803B4:
- push {lr}
- cmp r1, 0
- beq _080803C2
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80779F0
-_080803C2:
- pop {r0}
- bx r0
- thumb_func_end sub_80803B4
-
- thumb_func_start sub_80803C8
-sub_80803C8:
- push {lr}
- cmp r1, 0
- beq _080803D4
- movs r2, 0x1
- bl sub_80763F8
-_080803D4:
- pop {r0}
- bx r0
- thumb_func_end sub_80803C8
-
- thumb_func_start sub_80803D8
-sub_80803D8:
- push {lr}
- sub sp, 0x8
- adds r2, r1, 0x4
- movs r3, 0
- str r3, [sp]
- ldr r3, _080803F4
- str r3, [sp, 0x4]
- movs r3, 0x1
- bl sub_807DF38
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080803F4: .4byte 0x00000212
- thumb_func_end sub_80803D8
-
- thumb_func_start sub_80803F8
-sub_80803F8:
- push {lr}
- sub sp, 0x8
- adds r2, r1, 0x4
- movs r3, 0
- str r3, [sp]
- ldr r3, _08080414
- str r3, [sp, 0x4]
- movs r3, 0x2
- bl sub_807DF38
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08080414: .4byte 0x00000212
- thumb_func_end sub_80803F8
-
- thumb_func_start sub_8080418
-sub_8080418:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- mov r8, r0
- adds r6, r1, 0
- movs r0, 0
- mov r9, r0
- cmp r6, 0
- beq _080804F0
- ldr r7, [r6, 0x70]
- movs r3, 0
- ldrb r0, [r7, 0x7]
- cmp r0, 0
- beq _0808045A
- ldr r0, _080804C0
- movs r1, 0x1
- mov r12, r1
- ldr r2, [r0]
- mov r4, sp
- movs r5, 0x13
-_08080444:
- ldrb r1, [r2]
- mov r0, r12
- ands r0, r1
- cmp r0, 0
- beq _08080452
- stm r4!, {r2}
- adds r3, 0x1
-_08080452:
- adds r2, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08080444
-_0808045A:
- adds r2, r7, 0
- adds r2, 0x60
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08080470
- lsls r0, r3, 2
- add r0, sp
- str r2, [r0]
- adds r3, 0x1
-_08080470:
- cmp r3, 0
- ble _080804B6
- mov r4, sp
- adds r5, r3, 0
-_08080478:
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080804AE
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x54
- beq _080804AE
- movs r0, 0x64
- bl DungeonRandomCapped
- ldr r1, _080804C4
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- bge _080804AE
- movs r0, 0x1
- add r9, r0
- ldr r0, [r4]
- movs r1, 0x54
- movs r2, 0x2
- bl sub_8045C28
-_080804AE:
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bne _08080478
-_080804B6:
- mov r1, r9
- cmp r1, 0x1
- bne _080804CC
- ldr r0, _080804C8
- b _080804D4
- .align 2, 0
-_080804C0: .4byte gTeamInventory_203B460
-_080804C4: .4byte gUnknown_80F4E0E
-_080804C8: .4byte gUnknown_80FD788
-_080804CC:
- mov r2, r9
- cmp r2, 0
- bne _080804E4
- ldr r0, _080804E0
-_080804D4:
- ldr r2, [r0]
- mov r0, r8
- adds r1, r6, 0
- bl sub_80522F4
- b _080804F0
- .align 2, 0
-_080804E0: .4byte gUnknown_80FD7D4
-_080804E4:
- ldr r0, _08080500
- ldr r2, [r0]
- mov r0, r8
- adds r1, r6, 0
- bl sub_80522F4
-_080804F0:
- add sp, 0x58
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080500: .4byte gUnknown_80FD7AC
- thumb_func_end sub_8080418
-
- thumb_func_start sub_8080504
-sub_8080504:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r7, r2, 0
- movs r0, 0
- mov r8, r0
- cmp r4, 0
- bne _0808051A
- b _0808060E
-_0808051A:
- bl IsBossBattle
- lsls r0, 24
- cmp r0, 0
- beq _08080534
- ldr r0, _08080530
- ldr r1, [r0]
- adds r0, r6, 0
- bl SendMessage
- b _0808060E
- .align 2, 0
-_08080530: .4byte gUnknown_80FED0C
-_08080534:
- ldr r5, [r4, 0x70]
- adds r0, r4, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0808055E
- adds r0, r7, 0
- movs r1, 0x1B
- bl sub_8080B00
- movs r1, 0x1
- mov r8, r1
- ldr r1, _080805A4
- adds r0, r4, 0
- bl sub_80421C0
- movs r0, 0x1E
- movs r1, 0x48
- bl sub_803E708
-_0808055E:
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _080805C4
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080805B4
- movs r2, 0xAE
- lsls r2, 1
- adds r0, r5, r2
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x2
- adds r0, r5, r2
- strb r1, [r0]
- movs r0, 0x28
- movs r1, 0x4B
- bl sub_803E708
- ldr r0, _080805A8
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, _080805AC
- adds r0, r4, 0
- movs r2, 0x11
- bl sub_806F324
- ldr r0, _080805B0
- ldr r1, [r0]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- b _0808060E
- .align 2, 0
-_080805A4: .4byte 0x00000193
-_080805A8: .4byte gUnknown_80F4F8A
-_080805AC: .4byte 0x00000215
-_080805B0: .4byte gDungeonGlobalData
-_080805B4:
- ldr r0, _080805C0
- ldr r1, [r0]
- adds r0, r6, 0
- bl SendMessage
- b _08080600
- .align 2, 0
-_080805C0: .4byte gUnknown_80F9728
-_080805C4:
- ldr r0, _080805E4
- adds r1, r4, 0
- movs r2, 0
- bl SetMessageArgument
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- beq _080805EC
- ldr r0, _080805E8
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80522F4
- b _080805F6
- .align 2, 0
-_080805E4: .4byte gAvailablePokemonNames
-_080805E8: .4byte gUnknown_80F970C
-_080805EC:
- ldr r0, _08080618
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_805239C
-_080805F6:
- ldr r1, _0808061C
- adds r0, r4, 0
- adds r2, r6, 0
- bl sub_8068FE0
-_08080600:
- mov r0, r8
- cmp r0, 0
- beq _0808060E
- adds r0, r7, 0
- movs r1, 0x5
- bl sub_8080B00
-_0808060E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080618: .4byte gUnknown_80F970C
-_0808061C: .4byte 0x00000215
- thumb_func_end sub_8080504
-
- thumb_func_start sub_8080620
-sub_8080620:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp, 0x14]
- adds r7, r1, 0
- movs r0, 0x3
- bl DungeonRandomCapped
- adds r6, r0, 0
- adds r4, r6, 0x2
- movs r0, 0x8
- bl DungeonRandomCapped
- adds r5, r0, 0
- bl IsBossBattle
- lsls r0, 24
- cmp r0, 0
- bne _080806CA
- movs r0, 0
- mov r8, r0
- cmp r8, r4
- bge _080806BA
- mov r4, sp
- movs r1, 0
- mov r10, r1
- movs r2, 0
- mov r9, r2
- adds r6, 0x2
-_08080660:
- movs r0, 0
- bl sub_803D970
- movs r1, 0x7
- ands r5, r1
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl sub_806AA0C
- lsls r0, 24
- cmp r0, 0
- beq _080806B2
- mov r2, r9
- strh r2, [r4, 0x8]
- mov r0, r10
- strb r0, [r4, 0x2]
- ldr r0, _080806D8
- lsls r1, r5, 2
- adds r1, r0
- ldrh r0, [r1]
- ldrh r2, [r7]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r4, 0xE]
- mov r2, r9
- str r2, [sp, 0x4]
- mov r0, r10
- strb r0, [r4, 0x10]
- mov r0, sp
- movs r1, 0x1
- bl sub_806B7F8
- cmp r0, 0
- beq _080806B2
- movs r1, 0x1
- add r8, r1
-_080806B2:
- adds r5, 0x1
- subs r6, 0x1
- cmp r6, 0
- bne _08080660
-_080806BA:
- movs r1, 0xCA
- lsls r1, 1
- adds r0, r7, 0
- bl sub_80421EC
- mov r2, r8
- cmp r2, 0
- bne _080806E0
-_080806CA:
- ldr r0, _080806DC
- ldr r1, [r0]
- ldr r0, [sp, 0x14]
- bl SendMessage
- b _080806EA
- .align 2, 0
-_080806D8: .4byte gAdjacentTileOffsets
-_080806DC: .4byte gUnknown_80FED04
-_080806E0:
- ldr r0, _080806FC
- ldr r1, [r0]
- ldr r0, [sp, 0x14]
- bl SendMessage
-_080806EA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080806FC: .4byte gUnknown_80FED00
- thumb_func_end sub_8080620
-
- thumb_func_start sub_8080700
-sub_8080700:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- mov r8, r0
- adds r5, r1, 0
- movs r0, 0
- mov r12, r0
- cmp r5, 0
- beq _080807A4
- ldr r7, [r5, 0x70]
- movs r4, 0
- movs r3, 0
- mov r6, sp
-_0808071C:
- lsls r0, r3, 3
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- adds r2, r7, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08080742
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _08080742
- lsls r1, r4, 2
- stm r6!, {r2}
- add r0, sp, 0x10
- adds r0, r1
- str r3, [r0]
- adds r4, 0x1
-_08080742:
- adds r3, 0x1
- cmp r3, 0x3
- ble _0808071C
- cmp r4, 0
- beq _0808077A
- adds r0, r4, 0
- bl DungeonRandomCapped
- adds r4, r0, 0
- lsls r4, 2
- mov r0, sp
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1, 0x4]
- ldr r0, _08080790
- ldr r1, [r2]
- movs r2, 0
- bl sub_80928C0
- add r0, sp, 0x10
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_806A9B4
- movs r1, 0x1
- mov r12, r1
-_0808077A:
- mov r0, r12
- cmp r0, 0
- beq _08080798
- ldr r0, _08080794
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
- b _080807A4
- .align 2, 0
-_08080790: .4byte gUnknown_202DE58
-_08080794: .4byte gUnknown_80FDA80
-_08080798:
- ldr r0, _080807B0
- ldr r2, [r0]
- mov r0, r8
- adds r1, r5, 0
- bl sub_80522F4
-_080807A4:
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080807B0: .4byte gUnknown_80FDAA0
- thumb_func_end sub_8080700
-
- thumb_func_start sub_80807B4
-sub_80807B4:
- push {lr}
- movs r2, 0
- bl sub_8079E34
- pop {r0}
- bx r0
- thumb_func_end sub_80807B4
-
- thumb_func_start sub_80807C0
-sub_80807C0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0
- mov r9, r0
- cmp r7, 0
- beq _08080870
- mov r0, r8
- movs r2, 0x1
- bl sub_80716E8
- lsls r0, 24
- cmp r0, 0
- bne _08080870
- ldr r0, [r7, 0x70]
- movs r5, 0
- movs r6, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r2, r0, r1
- adds r3, r2, 0
- mov r12, sp
- movs r4, 0x3
-_080807F6:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08080816
- ldrb r1, [r2, 0x1]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08080816
- mov r0, r12
- adds r0, 0x4
- mov r12, r0
- subs r0, 0x4
- stm r0!, {r3}
- adds r5, 0x1
-_08080816:
- adds r2, 0x8
- adds r3, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _080807F6
- cmp r5, 0
- beq _08080848
- adds r0, r5, 0
- bl DungeonRandomCapped
- lsls r0, 2
- mov r1, sp
- adds r3, r1, r0
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _0808085C
- ldr r1, [r3]
- movs r2, 0
- bl sub_80928C0
- movs r0, 0x1
- mov r9, r0
-_08080848:
- mov r1, r9
- cmp r1, 0
- beq _08080864
- ldr r0, _08080860
- ldr r2, [r0]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80522F4
- b _08080870
- .align 2, 0
-_0808085C: .4byte gUnknown_202DE58
-_08080860: .4byte gUnknown_80FDB04
-_08080864:
- ldr r0, _08080880
- ldr r2, [r0]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80522F4
-_08080870:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080880: .4byte gUnknown_80FDB2C
- thumb_func_end sub_80807C0
-
- thumb_func_start sub_8080884
-sub_8080884:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _0808089E
- movs r0, 0x8
- bl DungeonRandomCapped
- adds r2, r0, 0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_807CD9C
-_0808089E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8080884
-
- thumb_func_start sub_80808A4
-sub_80808A4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- str r0, [sp, 0x14]
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp, 0x20]
- ldr r6, _080808D0
- ldr r0, [r6]
- ldr r1, _080808D4
- adds r0, r1
- ldrb r4, [r0]
- bl IsBossBattle
- lsls r0, 24
- cmp r0, 0
- beq _080808DC
- ldr r0, _080808D8
- b _08080A2E
- .align 2, 0
-_080808D0: .4byte gDungeonGlobalData
-_080808D4: .4byte 0x00018209
-_080808D8: .4byte gUnknown_80FED08
-_080808DC:
- cmp r4, 0
- bne _080808E2
- movs r4, 0x2
-_080808E2:
- movs r2, 0
- ldrsh r0, [r5, r2]
- movs r3, 0x2
- ldrsh r1, [r5, r3]
- bl GetMapTileAtPosition
- ldrb r1, [r0, 0x9]
- cmp r1, 0xFF
- bne _0808090A
- movs r0, 0
- ldrsh r1, [r5, r0]
- subs r2, r1, r4
- str r2, [sp, 0x18]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- subs r2, r0, r4
- adds r1, r4
- mov r10, r1
- adds r0, r4
- b _08080934
-_0808090A:
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08080994
- adds r0, r1
- ldr r1, [r6]
- adds r1, r0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- subs r0, 0x1
- str r0, [sp, 0x18]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- subs r2, r0, 0x1
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- adds r0, 0x1
- mov r10, r0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- adds r0, 0x1
-_08080934:
- str r0, [sp, 0x1C]
- adds r7, r2, 0
- ldr r0, [sp, 0x1C]
- cmp r7, r0
- bgt _08080A26
-_0808093E:
- ldr r6, [sp, 0x18]
- adds r1, r7, 0x1
- str r1, [sp, 0x24]
- cmp r6, r10
- bgt _08080A1E
- mov r5, sp
-_0808094A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl GetMapTileAtPosition
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- adds r2, r6, 0x1
- mov r9, r2
- cmp r0, 0
- beq _08080A18
- bl GetEntityType
- cmp r0, 0x3
- bne _08080A18
- ldr r0, [r4, 0x14]
- bl GetItemData
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08080A18
- movs r0, 0xBE
- lsls r0, 1
- strh r0, [r5]
- movs r2, 0
- mov r4, sp
-_08080980:
- ldr r0, _08080998
- ldr r0, [r0]
- ldr r3, _0808099C
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080809A0
- movs r0, 0xBE
- lsls r0, 1
- b _080809AE
- .align 2, 0
-_08080994: .4byte 0x000104c4
-_08080998: .4byte gDungeonGlobalData
-_0808099C: .4byte 0x0000066e
-_080809A0:
- movs r0, 0
- str r2, [sp, 0x28]
- bl sub_803D970
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp, 0x28]
-_080809AE:
- movs r1, 0
- mov r8, r1
- movs r3, 0
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0
- str r2, [sp, 0x28]
- str r3, [sp, 0x2C]
- bl sub_806AA0C
- lsls r0, 24
- ldr r2, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- cmp r0, 0
- bne _080809D4
- adds r2, 0x1
- cmp r2, 0x63
- ble _08080980
-_080809D4:
- movs r2, 0
- ldrsh r0, [r5, r2]
- movs r1, 0
- str r3, [sp, 0x2C]
- bl sub_806AA0C
- lsls r0, 24
- ldr r3, [sp, 0x2C]
- cmp r0, 0
- beq _08080A10
- strh r3, [r5, 0x8]
- mov r0, r8
- strb r0, [r5, 0x2]
- strh r6, [r5, 0xC]
- strh r7, [r5, 0xE]
- str r3, [sp, 0x4]
- strb r0, [r5, 0x10]
- mov r0, sp
- movs r1, 0x1
- bl sub_806B7F8
- cmp r0, 0
- beq _08080A10
- add r0, sp, 0xC
- movs r1, 0
- bl sub_80461C8
- ldr r1, [sp, 0x20]
- adds r1, 0x1
- str r1, [sp, 0x20]
-_08080A10:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80402AC
-_08080A18:
- mov r6, r9
- cmp r6, r10
- ble _0808094A
-_08080A1E:
- ldr r7, [sp, 0x24]
- ldr r2, [sp, 0x1C]
- cmp r7, r2
- ble _0808093E
-_08080A26:
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _08080A3C
- ldr r0, _08080A38
-_08080A2E:
- ldr r1, [r0]
- ldr r0, [sp, 0x14]
- bl SendMessage
- b _08080A46
- .align 2, 0
-_08080A38: .4byte gUnknown_80FDACC
-_08080A3C:
- ldr r0, _08080A58
- ldr r1, [r0]
- ldr r0, [sp, 0x14]
- bl SendMessage
-_08080A46:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080A58: .4byte gUnknown_80FDAE4
- thumb_func_end sub_80808A4
-
- thumb_func_start sub_8080A5C
-sub_8080A5C:
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _08080AEC
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x8
- bl sub_806CDD4
- movs r0, 0x10
- movs r1, 0x55
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_806CE68
- ldr r5, [r4, 0x70]
- adds r2, r5, 0
- adds r2, 0x60
- ldrb r1, [r2]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08080AEC
- ldr r0, [r5, 0x60]
- str r0, [sp, 0x8]
- movs r0, 0
- strb r0, [r2]
- bl FillInventoryGaps
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, 0
- bl sub_80421C0
- adds r0, r5, 0
- adds r0, 0x46
- ldrb r0, [r0]
- movs r2, 0x7
- ands r2, r0
- ldr r0, _08080AF4
- lsls r2, 2
- adds r2, r0
- ldrh r0, [r2]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _08080AF8
- ldr r1, [sp, 0x4]
- ands r1, r3
- orrs r1, r0
- str r1, [sp, 0x4]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x6]
- adds r0, r2
- lsls r0, 16
- ldr r2, _08080AFC
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- adds r1, r4, 0x4
- add r3, sp, 0x8
- str r6, [sp]
- adds r0, r7, 0
- add r2, sp, 0x4
- bl sub_804687C
-_08080AEC:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080AF4: .4byte gAdjacentTileOffsets
-_08080AF8: .4byte 0xffff0000
-_08080AFC: .4byte 0x0000ffff
- thumb_func_end sub_8080A5C
-
- thumb_func_start sub_8080B00
-sub_8080B00:
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, [r0, 0x14]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08080B2A
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x2
- bne _08080B26
- adds r0, r4, 0
- bl GetTrapData
- strb r5, [r0]
-_08080B26:
- bl sub_8049ED4
-_08080B2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8080B00
-
- thumb_func_start sub_8080B30
-sub_8080B30:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_8082F9C
- movs r0, 0
- str r0, [sp, 0xC]
- add r1, sp, 0xC
- mov r0, sp
- movs r2, 0x4
- bl sub_8082FA8
- mov r0, sp
- bl sub_8080B90
- mov r0, sp
- bl sub_8081454
- mov r0, sp
- bl sub_808165C
- mov r0, sp
- bl sub_808173C
- mov r0, sp
- bl sub_8080BBC
- mov r0, sp
- bl sub_8080C44
- mov r0, sp
- bl sub_8080CF0
- ldr r1, _08080B8C
- mov r0, sp
- bl sub_808300C
- mov r0, sp
- bl nullsub_98
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08080B8C: .4byte gUnknown_81071D4
- thumb_func_end sub_8080B30
-
- thumb_func_start sub_8080B90
-sub_8080B90:
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08080BB0
- bl sub_808300C
- ldr r0, _08080BB4
- ldr r1, [r0]
- ldr r0, _08080BB8
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0x58
- bl sub_8082FA8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080BB0: .4byte gUnknown_81071E0
-_08080BB4: .4byte gDungeonGlobalData
-_08080BB8: .4byte 0x00000644
- thumb_func_end sub_8080B90
-
- thumb_func_start sub_8080BBC
-sub_8080BBC:
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- ldr r1, _08080C38
- movs r2, 0
- add r0, sp, 0x4
-_08080BC8:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _08080BC8
- adds r0, r6, 0
- bl sub_808300C
- movs r7, 0
-_08080BD8:
- ldr r0, _08080C3C
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08080C40
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- movs r5, 0
- cmp r4, 0
- beq _08080C1A
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x3
- bne _08080C1A
- adds r0, r4, 0
- bl GetItemData
- adds r1, r0, 0
- adds r0, r6, 0
- bl sub_8081788
- adds r1, r4, 0x4
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0x6
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- movs r5, 0x1
-_08080C1A:
- cmp r5, 0
- bne _08080C28
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x5
- bl sub_8082FA8
-_08080C28:
- adds r7, 0x1
- cmp r7, 0x3F
- ble _08080BD8
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080C38: .4byte gUnknown_81071E0
-_08080C3C: .4byte gDungeonGlobalData
-_08080C40: .4byte 0x0001361c
- thumb_func_end sub_8080BBC
-
- thumb_func_start sub_8080C44
-sub_8080C44:
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- movs r7, 0
- ldr r3, _08080CE4
- movs r2, 0xFF
-_08080C50:
- mov r0, sp
- adds r1, r0, r7
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- adds r7, 0x1
- cmp r7, 0x4
- ble _08080C50
- adds r0, r6, 0
- adds r1, r3, 0
- bl sub_808300C
- movs r7, 0
-_08080C6A:
- ldr r0, _08080CE8
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08080CEC
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- movs r4, 0
- cmp r5, 0
- beq _08080CC8
- adds r0, r5, 0
- bl GetEntityType
- cmp r0, 0x2
- bne _08080CC8
- adds r0, r5, 0
- bl GetTrapData
- adds r4, r0, 0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0x1
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r5, 0
- adds r1, 0x20
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r5, 0x4
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r5, 0x6
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- movs r4, 0x1
-_08080CC8:
- cmp r4, 0
- bne _08080CD6
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x5
- bl sub_8082FA8
-_08080CD6:
- adds r7, 0x1
- cmp r7, 0x3F
- ble _08080C6A
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080CE4: .4byte gUnknown_81071E0
-_08080CE8: .4byte gDungeonGlobalData
-_08080CEC: .4byte 0x0001371c
- thumb_func_end sub_8080C44
-
- thumb_func_start sub_8080CF0
-sub_8080CF0:
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r1, _08080DD4
- bl sub_808300C
- ldr r4, _08080DD8
- ldr r0, [r4]
- ldr r1, _08080DDC
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_8083078
- ldr r0, [r4]
- ldr r2, _08080DE0
- adds r0, r2
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_8083078
- ldr r0, [r4]
- ldr r1, _08080DE4
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _08080DE8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08080DEC
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _08080DF0
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08080DF4
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _08080DF8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08080DFC
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _08080E00
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80830B4
- ldr r0, [r4]
- movs r1, 0xE0
- lsls r1, 6
- adds r0, r1
- ldrh r1, [r0]
- adds r0, r6, 0
- bl sub_8083030
- movs r5, 0
-_08080D9A:
- ldr r0, [r4]
- lsls r1, r5, 2
- ldr r2, _08080E04
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_8080E0C
- adds r5, 0x1
- cmp r5, 0x3
- ble _08080D9A
- movs r5, 0
- ldr r4, _08080DD8
-_08080DB6:
- ldr r0, [r4]
- lsls r1, r5, 2
- ldr r2, _08080E08
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_8080E0C
- adds r5, 0x1
- cmp r5, 0xF
- ble _08080DB6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08080DD4: .4byte gUnknown_81071E0
-_08080DD8: .4byte gDungeonGlobalData
-_08080DDC: .4byte 0x000037f0
-_08080DE0: .4byte 0x000037f4
-_08080DE4: .4byte 0x000037f8
-_08080DE8: .4byte 0x000037f9
-_08080DEC: .4byte 0x000037fa
-_08080DF0: .4byte 0x000037fb
-_08080DF4: .4byte 0x000037fc
-_08080DF8: .4byte 0x000037fd
-_08080DFC: .4byte 0x000037fe
-_08080E00: .4byte 0x000037ff
-_08080E04: .4byte 0x0001357c
-_08080E08: .4byte 0x0001358c
- thumb_func_end sub_8080CF0
-
- thumb_func_start sub_8080E0C
-sub_8080E0C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08080E88
- add sp, r4
- adds r5, r0, 0
- adds r4, r1, 0
- movs r1, 0
- add r0, sp, 0x20C
- str r1, [r0]
- movs r1, 0x1
- movs r6, 0x82
- lsls r6, 2
- mov r2, sp
- adds r0, r2, r6
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0xAA
- bl sub_8083060
- adds r0, r5, 0
- movs r1, 0x55
- bl sub_8083060
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08080E8C
- ldr r6, [r4, 0x70]
- add r1, sp, 0x208
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0x4
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0x6
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0
- adds r1, 0x20
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0
- adds r1, 0x26
- adds r0, r5, 0
- movs r2, 0x2
- bl sub_8082FA8
- b _08080ECC
- .align 2, 0
-_08080E88: .4byte 0xfffffd6c
-_08080E8C:
- mov r0, sp
- movs r1, 0
- adds r2, r6, 0
- bl memset
- mov r6, sp
- add r4, sp, 0x20C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_8082FA8
-_08080ECC:
- ldrh r1, [r6]
- adds r0, r5, 0
- bl sub_8083030
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_80817F4
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_80817F4
- ldrb r1, [r6, 0x6]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r6, 0x7]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r6, 0x9]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r6, 0xA]
- adds r0, r5, 0
- bl sub_8083060
- adds r1, r6, 0
- adds r1, 0x40
- adds r0, r5, 0
- bl sub_80818C8
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_8083048
- ldrb r1, [r6, 0x14]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r6, 0x15]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r6, 0x16]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r6, 0x17]
- adds r0, r5, 0
- bl sub_8083060
- ldr r1, [r6, 0x18]
- adds r0, r5, 0
- bl sub_8083078
- movs r0, 0x1C
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r2, 0x1E
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r0, 0x24
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r2, 0x26
- ldrsh r1, [r6, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r0, 0x28
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_8083048
- ldr r1, [r6, 0x2C]
- adds r0, r5, 0
- bl sub_80830A0
- ldr r1, [r6, 0x30]
- adds r0, r5, 0
- bl sub_80830A0
- ldr r1, [r6, 0x34]
- adds r0, r5, 0
- bl sub_80830A0
- ldr r1, [r6, 0x38]
- adds r0, r5, 0
- bl sub_80830A0
- adds r1, r6, 0
- adds r1, 0x44
- adds r0, r5, 0
- bl sub_80817C8
- adds r0, r6, 0
- adds r0, 0x5C
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_808180C
- adds r0, r6, 0
- adds r0, 0x5D
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_808180C
- adds r0, r6, 0
- adds r0, 0x5E
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8081824
- adds r0, r6, 0
- adds r0, 0x5F
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8081824
- adds r1, r6, 0
- adds r1, 0x60
- adds r0, r5, 0
- bl sub_8081788
- adds r0, r6, 0
- adds r0, 0x64
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80817B0
- movs r1, 0x78
- adds r1, r6
- mov r8, r1
- movs r2, 0x8C
- adds r2, r6
- mov r9, r2
- movs r0, 0x90
- adds r0, r6
- mov r10, r0
- adds r1, r6, 0
- adds r1, 0x94
- str r1, [sp, 0x214]
- adds r2, r6, 0
- adds r2, 0x3C
- str r2, [sp, 0x210]
- adds r0, r6, 0
- adds r0, 0x98
- str r0, [sp, 0x218]
- adds r1, 0x8
- str r1, [sp, 0x21C]
- adds r2, 0x64
- str r2, [sp, 0x220]
- adds r0, 0x10
- str r0, [sp, 0x228]
- adds r1, 0x10
- str r1, [sp, 0x22C]
- adds r2, 0x10
- str r2, [sp, 0x230]
- adds r0, 0x14
- str r0, [sp, 0x234]
- adds r1, 0x14
- str r1, [sp, 0x238]
- adds r2, 0x14
- str r2, [sp, 0x23C]
- adds r0, 0xC
- str r0, [sp, 0x240]
- adds r1, 0x10
- str r1, [sp, 0x244]
- adds r2, 0x18
- str r2, [sp, 0x248]
- adds r0, 0x18
- str r0, [sp, 0x24C]
- adds r1, 0x14
- str r1, [sp, 0x250]
- adds r2, 0xC
- str r2, [sp, 0x254]
- adds r0, 0xC
- str r0, [sp, 0x258]
- adds r1, 0xC
- str r1, [sp, 0x25C]
- adds r2, 0x9
- str r2, [sp, 0x260]
- adds r0, 0x6
- str r0, [sp, 0x264]
- adds r1, 0x3
- str r1, [sp, 0x268]
- adds r2, 0x3
- str r2, [sp, 0x26C]
- adds r0, 0x9
- str r0, [sp, 0x280]
- adds r1, 0x2
- str r1, [sp, 0x270]
- adds r2, 0x2
- str r2, [sp, 0x274]
- subs r0, 0x4
- str r0, [sp, 0x278]
- adds r1, 0x5
- str r1, [sp, 0x27C]
- adds r2, 0x6
- str r2, [sp, 0x284]
- adds r0, 0x6
- str r0, [sp, 0x288]
- adds r1, 0x4
- str r1, [sp, 0x28C]
- adds r2, 0x3
- str r2, [sp, 0x290]
- subs r0, 0x59
- str r0, [sp, 0x224]
- adds r4, r6, 0
- adds r4, 0x68
- movs r7, 0x3
-_080810C2:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80830D8
- adds r4, 0x4
- subs r7, 0x1
- cmp r7, 0
- bge _080810C2
- adds r0, r5, 0
- mov r1, r8
- bl sub_80818E4
- adds r0, r5, 0
- mov r1, r9
- bl sub_8081B54
- adds r0, r5, 0
- mov r1, r10
- bl sub_8081B54
- ldr r2, [sp, 0x214]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_8081880
- adds r0, r5, 0
- ldr r1, [sp, 0x210]
- bl sub_8081898
- ldr r0, [sp, 0x218]
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_8083078
- ldr r2, [sp, 0x21C]
- ldr r1, [r2]
- adds r0, r5, 0
- bl sub_8083078
- ldr r0, [sp, 0x220]
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_8083078
- adds r0, r5, 0
- ldr r1, [sp, 0x228]
- bl sub_8081920
- adds r0, r5, 0
- ldr r1, [sp, 0x22C]
- bl sub_808193C
- adds r0, r5, 0
- ldr r1, [sp, 0x230]
- bl sub_8081968
- adds r0, r5, 0
- ldr r1, [sp, 0x234]
- bl sub_8081994
- adds r0, r5, 0
- ldr r1, [sp, 0x238]
- bl sub_80819B0
- adds r0, r5, 0
- ldr r1, [sp, 0x23C]
- bl sub_80819D4
- adds r0, r5, 0
- ldr r1, [sp, 0x240]
- bl sub_80819F0
- adds r0, r5, 0
- ldr r1, [sp, 0x244]
- bl sub_8081A24
- adds r0, r5, 0
- ldr r1, [sp, 0x248]
- bl sub_8081A58
- adds r0, r5, 0
- ldr r1, [sp, 0x24C]
- bl sub_8081A74
- adds r0, r5, 0
- ldr r1, [sp, 0x250]
- bl sub_8081A80
- adds r0, r5, 0
- ldr r1, [sp, 0x254]
- bl sub_8081A9C
- adds r0, r5, 0
- ldr r1, [sp, 0x258]
- bl sub_8081AB8
- ldr r2, [sp, 0x25C]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x260]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, [sp, 0x264]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x268]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, [sp, 0x26C]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x280]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, [sp, 0x270]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x274]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, [sp, 0x278]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x27C]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, [sp, 0x284]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [sp, 0x288]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, [sp, 0x28C]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_8083060
- ldr r0, [sp, 0x290]
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_808183C
- movs r1, 0x80
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8081854
- movs r2, 0x82
- lsls r2, 1
- adds r0, r6, r2
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_808186C
- movs r0, 0x84
- lsls r0, 1
- adds r1, r6, r0
- adds r0, r5, 0
- movs r2, 0x5
- bl sub_808314C
- ldr r2, _08081428
- adds r1, r6, r2
- adds r0, r5, 0
- movs r2, 0x5
- bl sub_808314C
- movs r1, 0x89
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, _0808142C
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r2, 0x8C
- lsls r2, 1
- adds r1, r6, r2
- adds r0, r5, 0
- bl sub_8081B08
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r6, r0
- adds r0, r5, 0
- bl sub_8081B34
- movs r2, 0xA0
- lsls r2, 1
- adds r1, r6, r2
- adds r0, r5, 0
- bl sub_8081B34
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, _08081430
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r1, _08081434
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r2, 0xA3
- lsls r2, 1
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, _08081438
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r1, 0xA5
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r2, _0808143C
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r2, 0xA7
- lsls r2, 1
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r5, 0
- bl sub_8083030
- movs r1, 0xA8
- lsls r1, 1
- adds r0, r6, r1
- ldrh r1, [r0]
- adds r0, r5, 0
- bl sub_8083030
- movs r2, 0xA9
- lsls r2, 1
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r1, _08081440
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r2, 0xAA
- lsls r2, 1
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r1, _08081444
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r2, 0xAB
- lsls r2, 1
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- movs r1, 0xB2
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, _08081448
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r1, 0xB3
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, _0808144C
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r2, _08081450
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- movs r0, 0xB6
- lsls r0, 1
- adds r1, r6, r0
- adds r0, r5, 0
- bl sub_80830D8
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r6, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_80830A0
- movs r2, 0xBC
- lsls r2, 1
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r5, 0
- bl sub_8083030
- movs r1, 0xFC
- lsls r1, 1
- adds r0, r6, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r1, 0xFD
- lsls r1, 1
- adds r0, r6, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8083048
- movs r1, 0xFE
- lsls r1, 1
- adds r0, r6, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_8083078
- ldr r2, [sp, 0x224]
- ldrb r1, [r2]
- adds r0, r5, 0
- bl sub_80818B8
- movs r3, 0xA5
- 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
-_08081428: .4byte 0x0000010d
-_0808142C: .4byte 0x00000113
-_08081430: .4byte 0x00000145
-_08081434: .4byte 0x00000147
-_08081438: .4byte 0x00000149
-_0808143C: .4byte 0x0000014b
-_08081440: .4byte 0x00000153
-_08081444: .4byte 0x00000155
-_08081448: .4byte 0x00000165
-_0808144C: .4byte 0x00000167
-_08081450: .4byte 0x00000169
- thumb_func_end sub_8080E0C
-
- thumb_func_start sub_8081454
-sub_8081454:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r1, _08081600
- bl sub_808300C
- ldr r4, _08081604
- ldr r0, [r4]
- ldr r1, _08081608
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _0808160C
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081610
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r2, _08081614
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081618
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_8083060
- ldr r0, [r4]
- ldr r2, _0808161C
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_8083060
- ldr r0, [r4]
- ldr r1, _08081620
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _08081624
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _08081628
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _0808162C
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _08081630
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_8083048
- movs r1, 0
- mov r9, r4
-_08081510:
- lsls r0, r1, 2
- adds r2, r1, 0x1
- mov r8, r2
- adds r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 6
- ldr r1, _08081634
- adds r6, r0, r1
- movs r5, 0
- movs r4, 0x37
-_08081526:
- mov r2, r9
- ldr r1, [r2]
- adds r1, r6
- adds r1, r5
- adds r0, r7, 0
- bl sub_8081B60
- adds r5, 0x18
- subs r4, 0x1
- cmp r4, 0
- bge _08081526
- mov r1, r8
- cmp r1, 0x1F
- ble _08081510
- ldr r4, _08081604
- ldr r1, [r4]
- ldr r0, _08081638
- adds r1, r0
- adds r0, r7, 0
- bl sub_80830D8
- ldr r1, [r4]
- ldr r2, _0808163C
- adds r1, r2
- adds r0, r7, 0
- bl sub_80830D8
- ldr r6, _08081640
- movs r5, 0x7
-_08081560:
- ldr r1, [r4]
- adds r1, r6
- adds r0, r7, 0
- bl sub_80830D8
- adds r6, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08081560
- ldr r4, _08081604
- ldr r1, [r4]
- ldr r0, _08081644
- adds r1, r0
- adds r0, r7, 0
- bl sub_80830F8
- ldr r1, [r4]
- ldr r2, _08081648
- adds r1, r2
- adds r0, r7, 0
- bl sub_80830F8
- ldr r1, [r4]
- ldr r0, _0808164C
- adds r1, r0
- adds r0, r7, 0
- bl sub_808312C
- movs r1, 0
- mov r10, r4
-_0808159C:
- movs r4, 0
- adds r2, r1, 0x1
- mov r8, r2
- lsls r0, r1, 1
- lsls r2, r1, 3
- mov r9, r2
- adds r0, r1
- lsls r0, 6
- ldr r1, _08081650
- adds r6, r0, r1
- movs r5, 0
-_080815B2:
- mov r2, r10
- ldr r1, [r2]
- adds r1, r6
- adds r1, r5
- adds r0, r7, 0
- bl sub_8081B60
- mov r1, r10
- ldr r0, [r1]
- mov r2, r9
- adds r1, r4, r2
- ldr r2, _08081654
- adds r0, r2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl sub_8083060
- adds r5, 0x18
- adds r4, 0x1
- cmp r4, 0x7
- ble _080815B2
- mov r1, r8
- cmp r1, 0x7
- ble _0808159C
- ldr r0, _08081604
- ldr r1, [r0]
- ldr r0, _08081658
- adds r1, r0
- adds r0, r7, 0
- bl sub_8081B94
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08081600: .4byte gUnknown_81071E0
-_08081604: .4byte gDungeonGlobalData
-_08081608: .4byte 0x00003a08
-_0808160C: .4byte 0x00003a09
-_08081610: .4byte 0x00003a0a
-_08081614: .4byte 0x00003a0b
-_08081618: .4byte 0x00003a0c
-_0808161C: .4byte 0x00003a0d
-_08081620: .4byte 0x00003a0e
-_08081624: .4byte 0x00003a10
-_08081628: .4byte 0x00003a12
-_0808162C: .4byte 0x00003a14
-_08081630: .4byte 0x00003a16
-_08081634: .4byte 0x00003a18
-_08081638: .4byte 0x0000e218
-_0808163C: .4byte 0x0000e21c
-_08081640: .4byte 0x0000e220
-_08081644: .4byte 0x0000e240
-_08081648: .4byte 0x0000e250
-_0808164C: .4byte 0x0000e260
-_08081650: .4byte 0x0000e27c
-_08081654: .4byte 0x0000e87c
-_08081658: .4byte 0x0000e264
- thumb_func_end sub_8081454
-
- thumb_func_start sub_808165C
-sub_808165C:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _08081708
- bl sub_808300C
- ldr r4, _0808170C
- ldr r0, [r4]
- ldr r1, _08081710
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r0, [r4]
- ldr r1, _08081714
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8083060
- ldr r0, [r4]
- ldr r1, _08081718
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _0808171C
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081720
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081724
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081728
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _0808172C
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081730
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081734
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- ldr r0, [r4]
- ldr r1, _08081738
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80830B4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081708: .4byte gUnknown_81071E0
-_0808170C: .4byte gDungeonGlobalData
-_08081710: .4byte 0x00018208
-_08081714: .4byte 0x00018209
-_08081718: .4byte 0x0001820a
-_0808171C: .4byte 0x0001820b
-_08081720: .4byte 0x0001820c
-_08081724: .4byte 0x0001820d
-_08081728: .4byte 0x0001820e
-_0808172C: .4byte 0x0001820f
-_08081730: .4byte 0x00018210
-_08081734: .4byte 0x00018211
-_08081738: .4byte 0x00018213
- thumb_func_end sub_808165C
-
- thumb_func_start sub_808173C
-sub_808173C:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08081778
- ldr r0, [r4]
- ldr r1, _0808177C
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _08081780
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8083048
- ldr r0, [r4]
- ldr r1, _08081784
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8083048
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081778: .4byte gDungeonGlobalData
-_0808177C: .4byte 0x0001ced6
-_08081780: .4byte 0x0001ced8
-_08081784: .4byte 0x0001ceda
- thumb_func_end sub_808173C
-
- thumb_func_start sub_8081788
-sub_8081788:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081788
-
- thumb_func_start sub_80817B0
-sub_80817B0:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80817B0
-
- thumb_func_start sub_80817C8
-sub_80817C8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r1, r4, 0x2
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0x16
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80817C8
-
- thumb_func_start sub_80817F4
-sub_80817F4:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strh r1, [r2]
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80817F4
-
- thumb_func_start sub_808180C
-sub_808180C:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_808180C
-
- thumb_func_start sub_8081824
-sub_8081824:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8081824
-
- thumb_func_start sub_808183C
-sub_808183C:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_808183C
-
- thumb_func_start sub_8081854
-sub_8081854:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8081854
-
- thumb_func_start sub_808186C
-sub_808186C:
- push {lr}
- sub sp, 0x4
- str r1, [sp]
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_808186C
-
- thumb_func_start sub_8081880
-sub_8081880:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8081880
-
- thumb_func_start sub_8081898
-sub_8081898:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8083048
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_808180C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081898
-
- thumb_func_start sub_80818B8
-sub_80818B8:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl sub_8083060
- pop {r0}
- bx r0
- thumb_func_end sub_80818B8
-
- thumb_func_start sub_80818C8
-sub_80818C8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- bl sub_8083060
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80818C8
-
- thumb_func_start sub_80818E4
-sub_80818E4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r4, 0x3]
- adds r0, r5, 0
- bl sub_80830B4
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083030
- adds r4, 0x10
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80830D8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80818E4
-
- thumb_func_start sub_8081920
-sub_8081920:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081920
-
- thumb_func_start sub_808193C
-sub_808193C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x3]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808193C
-
- thumb_func_start sub_8081968
-sub_8081968:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x9]
- adds r0, r5, 0
- bl sub_8083060
- ldr r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083078
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081968
-
- thumb_func_start sub_8081994
-sub_8081994:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081994
-
- thumb_func_start sub_80819B0
-sub_80819B0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80819B0
-
- thumb_func_start sub_80819D4
-sub_80819D4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80819D4
-
- thumb_func_start sub_80819F0
-sub_80819F0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_80830B4
- ldrb r1, [r4, 0x3]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80819F0
-
- thumb_func_start sub_8081A24
-sub_8081A24:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldr r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083078
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x9]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081A24
-
- thumb_func_start sub_8081A58
-sub_8081A58:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081A58
-
- thumb_func_start sub_8081A74
-sub_8081A74:
- push {lr}
- movs r2, 0x1
- bl sub_8082FA8
- pop {r0}
- bx r0
- thumb_func_end sub_8081A74
-
- thumb_func_start sub_8081A80
-sub_8081A80:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081A80
-
- thumb_func_start sub_8081A9C
-sub_8081A9C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081A9C
-
- thumb_func_start sub_8081AB8
-sub_8081AB8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081AB8
-
- thumb_func_start sub_8081AD4
-sub_8081AD4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- bl sub_8083060
- ldrb r1, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8083060
- adds r1, r4, 0x2
- adds r0, r5, 0
- movs r2, 0x2
- bl sub_8082FA8
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083060
- ldrb r1, [r4, 0x5]
- adds r0, r5, 0
- bl sub_8083060
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081AD4
-
- thumb_func_start sub_8081B08
-sub_8081B08:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r7, 0
- movs r5, 0x3
-_08081B12:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8081AD4
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08081B12
- adds r0, r7, 0
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8083060
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8081B08
-
- thumb_func_start sub_8081B34
-sub_8081B34:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8083048
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8083048
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081B34
-
- thumb_func_start sub_8081B54
-sub_8081B54:
- push {lr}
- movs r2, 0x3
- bl sub_8082FA8
- pop {r0}
- bx r0
- thumb_func_end sub_8081B54
-
- thumb_func_start sub_8081B60
-sub_8081B60:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4]
- bl sub_8083030
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- bl sub_8083030
- adds r1, r4, 0
- adds r1, 0x9
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0xE
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8081B60
-
- thumb_func_start sub_8081B94
-sub_8081B94:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r5, 0x1
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FA8
- movs r4, 0
-_08081BAC:
- adds r0, r5, 0x3
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8083060
- adds r0, r5, 0
- adds r0, 0xB
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8083060
- adds r4, 0x1
- cmp r4, 0x7
- ble _08081BAC
- ldrb r1, [r5, 0x2]
- adds r0, r6, 0
- bl sub_8083060
- ldrb r1, [r5, 0x13]
- adds r0, r6, 0
- bl sub_8083060
- ldrb r1, [r5, 0x14]
- adds r0, r6, 0
- bl sub_8083060
- ldrb r1, [r5, 0x15]
- adds r0, r6, 0
- bl sub_80830B4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8081B94
-
- thumb_func_start sub_8081BF4
-sub_8081BF4:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_8082FD4
- add r1, sp, 0xC
- mov r0, sp
- movs r2, 0x4
- bl sub_8082FE0
- mov r0, sp
- bl sub_8081C50
- mov r0, sp
- bl sub_8081C7C
- mov r0, sp
- bl sub_8081F2C
- mov r0, sp
- bl sub_808201C
- mov r0, sp
- bl sub_8082060
- mov r0, sp
- bl sub_80820D8
- mov r0, sp
- bl sub_808217C
- ldr r1, _08081C4C
- mov r0, sp
- bl sub_8083018
- mov r0, sp
- bl nullsub_98
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08081C4C: .4byte gUnknown_81071D4
- thumb_func_end sub_8081BF4
-
- thumb_func_start sub_8081C50
-sub_8081C50:
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08081C70
- bl sub_8083018
- ldr r0, _08081C74
- ldr r1, [r0]
- ldr r0, _08081C78
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0x58
- bl sub_8082FE0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08081C70: .4byte gUnknown_81071E0
-_08081C74: .4byte gDungeonGlobalData
-_08081C78: .4byte 0x00000644
- thumb_func_end sub_8081C50
-
- thumb_func_start sub_8081C7C
-sub_8081C7C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r1, _08081E20
- bl sub_8083018
- adds r0, r7, 0
- bl sub_80831DC
- ldr r4, _08081E24
- ldr r1, [r4]
- ldr r2, _08081E28
- adds r1, r2
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r3, _08081E2C
- adds r1, r3
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08081E30
- adds r1, r2
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r3, _08081E34
- adds r1, r3
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_8083188
- ldr r1, [r4]
- ldr r2, _08081E38
- adds r1, r2
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_8083188
- ldr r1, [r4]
- ldr r3, _08081E3C
- adds r1, r3
- strb r0, [r1]
- adds r0, r7, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r2, _08081E40
- adds r1, r2
- strh r0, [r1]
- adds r0, r7, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r3, _08081E44
- adds r1, r3
- strh r0, [r1]
- adds r0, r7, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r2, _08081E48
- adds r1, r2
- strh r0, [r1]
- adds r0, r7, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r3, _08081E4C
- adds r1, r3
- strh r0, [r1]
- adds r0, r7, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r2, _08081E50
- adds r1, r2
- strh r0, [r1]
- movs r1, 0
- mov r9, r4
-_08081D2E:
- lsls r0, r1, 2
- adds r3, r1, 0x1
- mov r8, r3
- adds r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 6
- ldr r1, _08081E54
- adds r6, r0, r1
- movs r5, 0
- movs r4, 0x37
-_08081D44:
- mov r2, r9
- ldr r1, [r2]
- adds r1, r6
- adds r1, r5
- adds r0, r7, 0
- bl sub_8081E7C
- adds r5, 0x18
- subs r4, 0x1
- cmp r4, 0
- bge _08081D44
- mov r1, r8
- cmp r1, 0x1F
- ble _08081D2E
- ldr r4, _08081E24
- ldr r1, [r4]
- ldr r3, _08081E58
- adds r1, r3
- adds r0, r7, 0
- bl sub_80831F8
- ldr r1, [r4]
- ldr r0, _08081E5C
- adds r1, r0
- adds r0, r7, 0
- bl sub_80831F8
- ldr r6, _08081E60
- movs r5, 0x7
-_08081D7E:
- ldr r1, [r4]
- adds r1, r6
- adds r0, r7, 0
- bl sub_80831F8
- adds r6, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08081D7E
- ldr r4, _08081E24
- ldr r1, [r4]
- ldr r2, _08081E64
- adds r1, r2
- adds r0, r7, 0
- bl sub_8083220
- ldr r1, [r4]
- ldr r3, _08081E68
- adds r1, r3
- adds r0, r7, 0
- bl sub_8083220
- ldr r1, [r4]
- ldr r0, _08081E6C
- adds r1, r0
- adds r0, r7, 0
- bl sub_8083260
- movs r1, 0
- mov r10, r4
-_08081DBA:
- movs r4, 0
- adds r2, r1, 0x1
- mov r8, r2
- lsls r0, r1, 1
- lsls r3, r1, 3
- mov r9, r3
- adds r0, r1
- lsls r0, 6
- ldr r1, _08081E70
- adds r6, r0, r1
- movs r5, 0
-_08081DD0:
- mov r2, r10
- ldr r1, [r2]
- adds r1, r6
- adds r1, r5
- adds r0, r7, 0
- bl sub_8081E7C
- adds r0, r7, 0
- bl sub_8083188
- mov r3, r10
- ldr r1, [r3]
- mov r3, r9
- adds r2, r4, r3
- ldr r3, _08081E74
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- adds r5, 0x18
- adds r4, 0x1
- cmp r4, 0x7
- ble _08081DD0
- mov r1, r8
- cmp r1, 0x7
- ble _08081DBA
- ldr r0, _08081E24
- ldr r1, [r0]
- ldr r0, _08081E78
- adds r1, r0
- adds r0, r7, 0
- bl sub_8081EC0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08081E20: .4byte gUnknown_81071E0
-_08081E24: .4byte gDungeonGlobalData
-_08081E28: .4byte 0x00003a08
-_08081E2C: .4byte 0x00003a09
-_08081E30: .4byte 0x00003a0a
-_08081E34: .4byte 0x00003a0b
-_08081E38: .4byte 0x00003a0c
-_08081E3C: .4byte 0x00003a0d
-_08081E40: .4byte 0x00003a0e
-_08081E44: .4byte 0x00003a10
-_08081E48: .4byte 0x00003a12
-_08081E4C: .4byte 0x00003a14
-_08081E50: .4byte 0x00003a16
-_08081E54: .4byte 0x00003a18
-_08081E58: .4byte 0x0000e218
-_08081E5C: .4byte 0x0000e21c
-_08081E60: .4byte 0x0000e220
-_08081E64: .4byte 0x0000e240
-_08081E68: .4byte 0x0000e250
-_08081E6C: .4byte 0x0000e260
-_08081E70: .4byte 0x0000e27c
-_08081E74: .4byte 0x0000e87c
-_08081E78: .4byte 0x0000e264
- thumb_func_end sub_8081C7C
-
- thumb_func_start sub_8081E7C
-sub_8081E7C:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- adds r0, r5, 0
- bl sub_8083158
- movs r6, 0
- strh r0, [r4]
- adds r0, r5, 0
- bl sub_8083158
- strh r0, [r4, 0x4]
- adds r1, r4, 0
- adds r1, 0x9
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r1, r4, 0
- adds r1, 0xE
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- str r6, [r4, 0x10]
- str r6, [r4, 0x14]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8081E7C
-
- thumb_func_start sub_8081EC0
-sub_8081EC0:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r1, r5, 0x1
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8082FE0
- movs r4, 0
-_08081EE6:
- adds r0, r6, 0
- bl sub_8083188
- adds r1, r5, 0x3
- adds r1, r4
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8083188
- adds r1, r5, 0
- adds r1, 0xB
- adds r1, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x7
- ble _08081EE6
- adds r0, r6, 0
- bl sub_8083188
- strb r0, [r5, 0x2]
- adds r0, r6, 0
- bl sub_8083188
- strb r0, [r5, 0x13]
- adds r0, r6, 0
- bl sub_8083188
- strb r0, [r5, 0x14]
- adds r0, r6, 0
- bl sub_80831DC
- strb r0, [r5, 0x15]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8081EC0
-
- thumb_func_start sub_8081F2C
-sub_8081F2C:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _08081FE4
- bl sub_8083018
- ldr r4, _08081FE8
- ldr r0, [r4]
- ldr r1, _08081FEC
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, [r4]
- ldr r2, _08081FF0
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, [r4]
- ldr r2, _08081FF4
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08081FF8
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08081FFC
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082000
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082004
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082008
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _0808200C
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082010
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082014
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082018
- adds r1, r2
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081FE4: .4byte gUnknown_81071E0
-_08081FE8: .4byte gDungeonGlobalData
-_08081FEC: .4byte 0x000181f8
-_08081FF0: .4byte 0x00018208
-_08081FF4: .4byte 0x00018209
-_08081FF8: .4byte 0x0001820a
-_08081FFC: .4byte 0x0001820b
-_08082000: .4byte 0x0001820c
-_08082004: .4byte 0x0001820d
-_08082008: .4byte 0x0001820e
-_0808200C: .4byte 0x0001820f
-_08082010: .4byte 0x00018210
-_08082014: .4byte 0x00018211
-_08082018: .4byte 0x00018213
- thumb_func_end sub_8081F2C
-
- thumb_func_start sub_808201C
-sub_808201C:
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8083170
- ldr r4, _08082050
- ldr r1, [r4]
- ldr r2, _08082054
- adds r1, r2
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r2, _08082058
- adds r1, r2
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8083170
- ldr r1, [r4]
- ldr r2, _0808205C
- adds r1, r2
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082050: .4byte gDungeonGlobalData
-_08082054: .4byte 0x0001ced6
-_08082058: .4byte 0x0001ced8
-_0808205C: .4byte 0x0001ceda
- thumb_func_end sub_808201C
-
- thumb_func_start sub_8082060
-sub_8082060:
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _080820A4
- bl sub_8083018
- add r4, sp, 0x4
- mov r7, sp
- movs r6, 0x3F
-_08082072:
- adds r0, r5, 0
- mov r1, sp
- bl sub_80820A8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80831F8
- ldrb r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08082096
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0
- bl sub_80460F8
-_08082096:
- subs r6, 0x1
- cmp r6, 0
- bge _08082072
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080820A4: .4byte gUnknown_81071E0
- thumb_func_end sub_8082060
-
- thumb_func_start sub_80820A8
-sub_80820A8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- str r0, [r4]
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r1, r4, 0x1
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FE0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80820A8
-
- thumb_func_start sub_80820D8
-sub_80820D8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _08082178
- bl sub_8083018
- movs r0, 0x1
- add r0, sp
- mov r9, r0
- add r1, sp, 0x4
- mov r8, r1
- mov r7, sp
- movs r2, 0x3F
- mov r10, r2
-_080820FC:
- movs r0, 0x6
- strb r0, [r7]
- movs r0, 0
- mov r3, sp
- strb r0, [r3, 0x1]
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r5, 0
- mov r1, sp
- adds r1, 0x1
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r5, 0
- bl sub_80831DC
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- add r1, sp, 0x4
- bl sub_80831F8
- ldrb r0, [r7]
- cmp r0, 0xFF
- beq _0808215C
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- mov r3, sp
- movs r2, 0x6
- ldrsh r1, [r3, r2]
- bl GetMapEntity
- adds r4, r0, 0
- ldrb r0, [r7]
- mov r3, r9
- ldrb r2, [r3]
- mov r1, r8
- bl sub_8045684
- cmp r0, 0
- beq _0808215C
- str r0, [r4, 0x14]
- adds r0, 0x20
- strb r6, [r0]
-_0808215C:
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- mov r1, r10
- cmp r1, 0
- bge _080820FC
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08082178: .4byte gUnknown_81071E0
- thumb_func_end sub_80820D8
-
- thumb_func_start sub_808217C
-sub_808217C:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _08082250
- bl sub_8083018
- adds r0, r5, 0
- bl sub_80831A0
- ldr r4, _08082254
- ldr r1, [r4]
- ldr r2, _08082258
- adds r1, r2
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80831A0
- ldr r1, [r4]
- ldr r2, _0808225C
- adds r1, r2
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082260
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082264
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082268
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _0808226C
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082270
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082274
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _08082278
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [r4]
- ldr r2, _0808227C
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083158
- ldr r1, [r4]
- movs r2, 0xE0
- lsls r2, 6
- adds r1, r2
- strh r0, [r1]
- movs r4, 0
-_08082226:
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl sub_8082280
- adds r4, 0x1
- cmp r4, 0x3
- ble _08082226
- movs r4, 0
-_08082238:
- adds r0, r5, 0
- movs r1, 0
- adds r2, r4, 0
- bl sub_8082280
- adds r4, 0x1
- cmp r4, 0xF
- ble _08082238
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082250: .4byte gUnknown_81071E0
-_08082254: .4byte gDungeonGlobalData
-_08082258: .4byte 0x000037f0
-_0808225C: .4byte 0x000037f4
-_08082260: .4byte 0x000037f8
-_08082264: .4byte 0x000037f9
-_08082268: .4byte 0x000037fa
-_0808226C: .4byte 0x000037fb
-_08082270: .4byte 0x000037fc
-_08082274: .4byte 0x000037fd
-_08082278: .4byte 0x000037fe
-_0808227C: .4byte 0x000037ff
- thumb_func_end sub_808217C
-
- thumb_func_start sub_8082280
-sub_8082280:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0808266C
- add sp, r4
- adds r5, r0, 0
- str r2, [sp, 0x210]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x20C]
- movs r2, 0x82
- lsls r2, 2
- mov r0, sp
- movs r1, 0
- bl memset
- adds r0, r5, 0
- bl sub_8083188
- adds r0, r5, 0
- bl sub_8083188
- adds r0, r5, 0
- bl sub_8083188
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x214]
- add r4, sp, 0x208
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80831F8
- adds r0, r5, 0
- bl sub_80831DC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x218]
- adds r0, r5, 0
- bl sub_8083158
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x21C]
- ldr r1, _08082670
- movs r0, 0
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8083158
- mov r1, sp
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8082BC0
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r5, 0
- bl sub_8082BC0
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r5, 0
- bl sub_80831DC
- mov r1, sp
- strb r0, [r1, 0x6]
- adds r0, r5, 0
- bl sub_80831DC
- mov r1, sp
- strb r0, [r1, 0x7]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x8]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x9]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0xA]
- add r1, sp, 0x40
- adds r0, r5, 0
- bl sub_8082F64
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0xC]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x10]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x12]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x14]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x15]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x16]
- adds r0, r5, 0
- bl sub_8083188
- mov r1, sp
- strb r0, [r1, 0x17]
- adds r0, r5, 0
- bl sub_80831A0
- str r0, [sp, 0x18]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x1C]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x1E]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x20]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x22]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x24]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x26]
- adds r0, r5, 0
- bl sub_8083170
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r5, 0
- bl sub_80831C8
- str r0, [sp, 0x2C]
- adds r0, r5, 0
- bl sub_80831C8
- str r0, [sp, 0x30]
- adds r0, r5, 0
- bl sub_80831C8
- str r0, [sp, 0x34]
- adds r0, r5, 0
- bl sub_80831C8
- str r0, [sp, 0x38]
- add r1, sp, 0x44
- adds r0, r5, 0
- bl sub_8082CBC
- adds r0, r5, 0
- bl sub_8082BFC
- add r1, sp, 0x5C
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8082BFC
- mov r1, sp
- adds r1, 0x5D
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8082C18
- mov r1, sp
- adds r1, 0x5E
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8082C18
- mov r1, sp
- adds r1, 0x5F
- strb r0, [r1]
- add r1, sp, 0x60
- adds r0, r5, 0
- bl sub_80820A8
- adds r0, r5, 0
- bl sub_8082BE0
- add r1, sp, 0x64
- strb r0, [r1]
- add r7, sp, 0x78
- add r0, sp, 0x8C
- mov r8, r0
- add r1, sp, 0x90
- mov r9, r1
- add r2, sp, 0x94
- mov r10, r2
- mov r3, sp
- adds r3, 0x3C
- str r3, [sp, 0x270]
- mov r0, sp
- adds r0, 0x98
- str r0, [sp, 0x274]
- mov r1, sp
- adds r1, 0x9C
- str r1, [sp, 0x278]
- mov r2, sp
- adds r2, 0xA0
- str r2, [sp, 0x27C]
- adds r3, 0x6C
- str r3, [sp, 0x284]
- adds r0, 0x14
- str r0, [sp, 0x288]
- adds r1, 0x14
- str r1, [sp, 0x28C]
- adds r2, 0x1C
- str r2, [sp, 0x290]
- adds r3, 0x18
- str r3, [sp, 0x294]
- adds r0, 0x18
- str r0, [sp, 0x298]
- adds r1, 0x18
- str r1, [sp, 0x29C]
- adds r2, 0x14
- str r2, [sp, 0x220]
- adds r3, 0x1C
- str r3, [sp, 0x224]
- adds r0, 0x1C
- str r0, [sp, 0x228]
- adds r1, 0x1C
- str r1, [sp, 0x22C]
- adds r2, 0x18
- str r2, [sp, 0x230]
- adds r3, 0x10
- str r3, [sp, 0x234]
- adds r0, 0x10
- str r0, [sp, 0x238]
- adds r1, 0xD
- str r1, [sp, 0x23C]
- adds r2, 0xA
- str r2, [sp, 0x240]
- adds r3, 0x7
- str r3, [sp, 0x244]
- adds r0, 0x4
- str r0, [sp, 0x248]
- adds r1, 0xA
- str r1, [sp, 0x25C]
- adds r2, 0x3
- str r2, [sp, 0x24C]
- adds r3, 0x3
- str r3, [sp, 0x250]
- adds r0, 0x3
- str r0, [sp, 0x254]
- subs r1, 0x1
- str r1, [sp, 0x258]
- adds r2, 0x7
- str r2, [sp, 0x260]
- adds r3, 0x7
- str r3, [sp, 0x264]
- adds r0, 0x7
- str r0, [sp, 0x268]
- adds r1, 0x5
- str r1, [sp, 0x26C]
- subs r2, 0x58
- str r2, [sp, 0x280]
- add r4, sp, 0x68
- movs r6, 0x3
-_080824DC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80831F8
- adds r4, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _080824DC
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8082CE4
- adds r0, r5, 0
- mov r1, r8
- bl sub_8082D28
- adds r0, r5, 0
- mov r1, r9
- bl sub_8082D28
- adds r0, r5, 0
- bl sub_8082C84
- movs r4, 0
- mov r3, r10
- strb r0, [r3]
- adds r0, r5, 0
- ldr r1, [sp, 0x270]
- bl sub_8082F80
- adds r0, r5, 0
- bl sub_80831A0
- ldr r1, [sp, 0x274]
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80831A0
- ldr r2, [sp, 0x278]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_80831A0
- ldr r3, [sp, 0x27C]
- str r0, [r3]
- adds r0, r5, 0
- ldr r1, [sp, 0x284]
- bl sub_8082D34
- adds r0, r5, 0
- ldr r1, [sp, 0x288]
- bl sub_8082D50
- adds r0, r5, 0
- ldr r1, [sp, 0x28C]
- bl sub_8082D7C
- adds r0, r5, 0
- ldr r1, [sp, 0x290]
- bl sub_8082DA8
- adds r0, r5, 0
- ldr r1, [sp, 0x294]
- bl sub_8082DC4
- adds r0, r5, 0
- ldr r1, [sp, 0x298]
- bl sub_8082DE8
- adds r0, r5, 0
- ldr r1, [sp, 0x29C]
- bl sub_8082E04
- adds r0, r5, 0
- ldr r1, [sp, 0x220]
- bl sub_8082E38
- adds r0, r5, 0
- ldr r1, [sp, 0x224]
- bl sub_8082E6C
- adds r0, r5, 0
- ldr r1, [sp, 0x228]
- bl sub_8082E88
- adds r0, r5, 0
- ldr r1, [sp, 0x22C]
- bl sub_8082E94
- adds r0, r5, 0
- ldr r1, [sp, 0x230]
- bl sub_8082EB0
- adds r0, r5, 0
- ldr r1, [sp, 0x234]
- bl sub_8082ECC
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [sp, 0x238]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r2, [sp, 0x23C]
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r3, [sp, 0x240]
- strb r0, [r3]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [sp, 0x244]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r2, [sp, 0x248]
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_8083188
- ldr r3, [sp, 0x25C]
- strb r0, [r3]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, [sp, 0x24C]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r2, [sp, 0x250]
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r3, [sp, 0x254]
- strb r0, [r3]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, [sp, 0x258]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r2, [sp, 0x260]
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_8083188
- ldr r3, [sp, 0x264]
- strb r0, [r3]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, [sp, 0x268]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8082C34
- ldr r2, [sp, 0x26C]
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_8082C50
- add r1, sp, 0x100
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8082C6C
- add r1, sp, 0x104
- str r0, [r1]
- add r1, sp, 0x108
- adds r0, r5, 0
- movs r2, 0x5
- bl sub_8083288
- ldr r1, _08082674
- add r1, sp
- adds r0, r5, 0
- movs r2, 0x5
- bl sub_8083288
- adds r0, r5, 0
- bl sub_8083188
- movs r1, 0x89
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- b _08082678
- .align 2, 0
-_0808266C: .4byte 0xfffffd60
-_08082670: .4byte gLeaderPokemon
-_08082674: .4byte 0x0000010d
-_08082678:
- ldr r1, _08082818
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- add r1, sp, 0x114
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- add r1, sp, 0x118
- adds r0, r5, 0
- bl sub_8082F1C
- add r1, sp, 0x13C
- adds r0, r5, 0
- bl sub_8082F48
- add r1, sp, 0x140
- adds r0, r5, 0
- bl sub_8082F48
- adds r0, r5, 0
- bl sub_80831DC
- add r1, sp, 0x144
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, _0808281C
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, _08082820
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- movs r1, 0xA3
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- add r1, sp, 0x148
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, _08082824
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- movs r1, 0xA5
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, _08082828
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- add r1, sp, 0x14C
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083158
- movs r1, 0xA7
- lsls r1, 1
- add r1, sp
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8083158
- add r1, sp, 0x150
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- movs r1, 0xA9
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, _0808282C
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- add r1, sp, 0x154
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- ldr r1, _08082830
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_80831DC
- movs r1, 0xAB
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- add r1, sp, 0x164
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, _08082834
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- movs r1, 0xB3
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, _08082838
- add r1, sp
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- add r1, sp, 0x168
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8083188
- ldr r1, _0808283C
- add r1, sp
- strb r0, [r1]
- add r1, sp, 0x16C
- adds r0, r5, 0
- bl sub_80831F8
- adds r0, r5, 0
- bl sub_80831C8
- add r1, sp, 0x174
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8083158
- add r1, sp, 0x178
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8083170
- add r1, sp, 0x1F8
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8083170
- movs r1, 0xFD
- lsls r1, 1
- add r1, sp
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_80831A0
- add r1, sp, 0x1FC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8082CA0
- ldr r3, [sp, 0x280]
- strb r0, [r3]
- ldr r0, _08082840
- str r4, [r0]
- ldr r0, [sp, 0x214]
- cmp r0, 0
- beq _080828BE
- ldr r1, [sp, 0x20C]
- cmp r1, 0
- beq _08082844
- mov r0, sp
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- mov r1, sp
- movs r3, 0x4
- ldrsh r1, [r1, r3]
- ldr r2, [sp, 0x210]
- bl sub_80828E0
- b _08082856
- .align 2, 0
-_08082818: .4byte 0x00000113
-_0808281C: .4byte 0x00000145
-_08082820: .4byte 0x00000147
-_08082824: .4byte 0x00000149
-_08082828: .4byte 0x0000014b
-_0808282C: .4byte 0x00000153
-_08082830: .4byte 0x00000155
-_08082834: .4byte 0x00000165
-_08082838: .4byte 0x00000167
-_0808283C: .4byte 0x00000169
-_08082840: .4byte gLeaderPokemon
-_08082844:
- mov r0, sp
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- mov r1, sp
- movs r2, 0x4
- ldrsh r1, [r1, r2]
- ldr r2, [sp, 0x210]
- bl sub_8082A08
-_08082856:
- adds r7, r0, 0
- cmp r7, 0
- beq _080828BE
- ldr r6, [r7, 0x70]
- movs r5, 0x82
- lsls r5, 2
- mov r3, sp
- adds r4, r3, r5
- movs r1, 0
- ldrsh r0, [r4, r1]
- ldr r3, _080828D4
- add r3, sp
- movs r2, 0
- ldrsh r1, [r3, r2]
- bl GetMapEntity
- ldr r1, [r4]
- str r1, [r7, 0x8]
- ldr r1, [r4]
- str r1, [r7, 0x4]
- str r7, [r0, 0x10]
- adds r0, r7, 0
- adds r0, 0x20
- movs r4, 0
- add r1, sp, 0x218
- ldrb r1, [r1]
- strb r1, [r0]
- add r2, sp, 0x21C
- ldrh r2, [r2]
- strh r2, [r7, 0x26]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- bl memcpy
- ldr r0, _080828D8
- str r4, [r0]
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- beq _080828B0
- ldr r0, _080828DC
- ldrh r1, [r7, 0x4]
- strh r1, [r0]
- ldrh r1, [r7, 0x6]
- strh r1, [r0, 0x2]
-_080828B0:
- adds r0, r7, 0
- bl LoadIQSkills
- adds r0, r7, 0
- movs r1, 0
- bl sub_804535C
-_080828BE:
- movs r3, 0xA8
- 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
-_080828D4: .4byte 0x0000020a
-_080828D8: .4byte gLeaderPokemon
-_080828DC: .4byte gUnknown_203B410
- thumb_func_end sub_8082280
-
- thumb_func_start sub_80828E0
-sub_80828E0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r2, 0
- lsls r0, 16
- asrs r0, 16
- mov r10, r0
- lsls r1, 16
- asrs r1, 16
- mov r8, r1
- movs r4, 0x1
- negs r4, r4
- mov r0, r8
- bl GetPokemonSize
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- movs r0, 0x6
- subs r7, r0, r6
- ldr r0, _08082914
- mov r9, r0
- b _0808291A
- .align 2, 0
-_08082914: .4byte gUnknown_202EE70
-_08082918:
- adds r3, 0x1
-_0808291A:
- cmp r3, r7
- bgt _0808293E
- movs r2, 0
- cmp r2, r6
- bge _08082938
- mov r0, r9
- adds r1, r3, r0
- b _08082932
-_0808292A:
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, r6
- bge _08082938
-_08082932:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808292A
-_08082938:
- cmp r2, r6
- bne _08082918
- adds r4, r3, 0
-_0808293E:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0808294A
- movs r0, 0
- b _080829E6
-_0808294A:
- ldr r2, _080829F4
- ldr r0, [r2]
- lsls r1, r5, 2
- ldr r3, _080829F8
- adds r0, r3
- adds r0, r1
- ldr r7, [r0]
- movs r0, 0x1
- mov r9, r0
- str r0, [r7]
- adds r0, r7, 0
- adds r0, 0x24
- strb r5, [r0]
- lsls r0, r5, 6
- adds r0, r5
- lsls r0, 3
- ldr r1, _080829FC
- adds r0, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r7, 0x70]
- movs r5, 0
- mov r3, r10
- strh r3, [r1, 0x2]
- ldr r0, [r7, 0x70]
- mov r1, r8
- strh r1, [r0, 0x4]
- ldr r0, [r7, 0x70]
- strb r5, [r0, 0x6]
- mov r0, r8
- bl sub_80687D0
- str r0, [r7, 0x64]
- lsls r0, r4, 4
- adds r0, 0x40
- adds r1, r7, 0
- adds r1, 0x68
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x7
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x6C
- strb r5, [r0]
- adds r1, 0x1
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x6D
- mov r3, r9
- strb r3, [r0]
- adds r0, 0x2
- strb r3, [r0]
- movs r0, 0
- str r0, [r7, 0x1C]
- bl sub_8045ACC
- ldr r0, [r7, 0x70]
- ldr r1, _08082A00
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r7, 0x70]
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r3
- strb r6, [r0]
- cmp r6, 0
- beq _080829E4
- ldr r3, _08082A04
- movs r2, 0x1
- adds r1, r6, 0
-_080829D8:
- adds r0, r4, r3
- strb r2, [r0]
- adds r4, 0x1
- subs r1, 0x1
- cmp r1, 0
- bne _080829D8
-_080829E4:
- adds r0, r7, 0
-_080829E6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080829F4: .4byte gDungeonGlobalData
-_080829F8: .4byte 0x0001357c
-_080829FC: .4byte 0x0000069c
-_08082A00: .4byte 0x00000167
-_08082A04: .4byte gUnknown_202EE70
- thumb_func_end sub_80828E0
-
- thumb_func_start sub_8082A08
-sub_8082A08:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r2, 0
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- mov r0, r9
- bl GetPokemonSize
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- movs r0, 0x10
- subs r4, r0, r6
- ldr r7, _08082A3C
- b _08082A42
- .align 2, 0
-_08082A3C: .4byte gUnknown_202EE76
-_08082A40:
- adds r3, 0x1
-_08082A42:
- cmp r3, r4
- bgt _08082A64
- movs r2, 0
- cmp r2, r6
- bge _08082A5E
- adds r1, r3, r7
- b _08082A58
-_08082A50:
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, r6
- bge _08082A5E
-_08082A58:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08082A50
-_08082A5E:
- cmp r2, r6
- bne _08082A40
- mov r8, r3
-_08082A64:
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _08082A70
- movs r0, 0
- b _08082B1C
-_08082A70:
- ldr r2, _08082B2C
- ldr r0, [r2]
- lsls r1, r5, 2
- ldr r3, _08082B30
- adds r0, r3
- adds r0, r1
- ldr r7, [r0]
- movs r4, 0x1
- str r4, [r7]
- adds r0, r7, 0
- adds r0, 0x24
- movs r1, 0
- mov r10, r1
- strb r5, [r0]
- subs r0, 0x2
- mov r3, r10
- strb r3, [r0]
- lsls r0, r5, 6
- adds r0, r5
- lsls r0, 3
- ldr r1, _08082B34
- adds r0, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r7, 0x70]
- movs r5, 0
- mov r2, sp
- ldrh r2, [r2]
- strh r2, [r1, 0x2]
- ldr r0, [r7, 0x70]
- mov r3, r9
- strh r3, [r0, 0x4]
- ldr r0, [r7, 0x70]
- strb r4, [r0, 0x6]
- mov r0, r9
- bl sub_80687D0
- str r0, [r7, 0x64]
- mov r1, r8
- lsls r0, r1, 4
- adds r0, 0xA0
- adds r1, r7, 0
- adds r1, 0x68
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x7
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x6C
- strb r5, [r0]
- adds r1, 0x1
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x6D
- strb r4, [r0]
- adds r0, 0x2
- strb r4, [r0]
- mov r2, r10
- str r2, [r7, 0x1C]
- ldr r0, [r7, 0x70]
- ldr r3, _08082B38
- adds r0, r3
- mov r4, r8
- strb r4, [r0]
- ldr r0, [r7, 0x70]
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r1
- strb r6, [r0]
- cmp r6, 0
- beq _08082B16
- ldr r3, _08082B3C
- movs r2, 0x1
- adds r1, r6, 0
-_08082B06:
- mov r4, r8
- adds r0, r4, r3
- strb r2, [r0]
- movs r0, 0x1
- add r8, r0
- subs r1, 0x1
- cmp r1, 0
- bne _08082B06
-_08082B16:
- bl sub_8045ACC
- adds r0, r7, 0
-_08082B1C:
- 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
-_08082B2C: .4byte gDungeonGlobalData
-_08082B30: .4byte 0x0001358c
-_08082B34: .4byte 0x00000ebc
-_08082B38: .4byte 0x00000167
-_08082B3C: .4byte gUnknown_202EE76
- thumb_func_end sub_8082A08
-
- thumb_func_start sub_8082B40
-sub_8082B40:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r6, 0
-_08082B46:
- ldr r0, _08082BB8
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _08082BBC
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08082BA8
- ldr r4, [r5, 0x70]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_80687D0
- str r0, [r5, 0x64]
- adds r0, r5, 0
- bl sub_806CEBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806CCB4
- ldr r0, [r5, 0x4]
- str r0, [sp]
- adds r0, r4, 0
- adds r0, 0x98
- ldr r0, [r0]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- mov r2, sp
- movs r3, 0x3
- bl AddPokemonDungeonSprite
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl GetMapEntity
- ldrb r1, [r0, 0x9]
- adds r0, r5, 0
- adds r0, 0x25
- strb r1, [r0]
-_08082BA8:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08082B46
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08082BB8: .4byte gDungeonGlobalData
-_08082BBC: .4byte 0x000135cc
- thumb_func_end sub_8082B40
-
- thumb_func_start sub_8082BC0
-sub_8082BC0:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strh r1, [r2]
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FE0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082BC0
-
- thumb_func_start sub_8082BE0
-sub_8082BE0:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082BE0
-
- thumb_func_start sub_8082BFC
-sub_8082BFC:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082BFC
-
- thumb_func_start sub_8082C18
-sub_8082C18:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082C18
-
- thumb_func_start sub_8082C34
-sub_8082C34:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082C34
-
- thumb_func_start sub_8082C50
-sub_8082C50:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082C50
-
- thumb_func_start sub_8082C6C
-sub_8082C6C:
- push {lr}
- sub sp, 0x4
- movs r1, 0
- str r1, [sp]
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FE0
- ldr r0, [sp]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082C6C
-
- thumb_func_start sub_8082C84
-sub_8082C84:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082C84
-
- thumb_func_start sub_8082CA0
-sub_8082CA0:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- movs r1, 0
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8082CA0
-
- thumb_func_start sub_8082CBC
-sub_8082CBC:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- strh r0, [r4]
- adds r1, r4, 0x2
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- movs r0, 0x7
- strb r0, [r4, 0x3]
- adds r4, 0x14
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80831F8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082CBC
-
- thumb_func_start sub_8082CE4
-sub_8082CE4:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r5, 0
- bl sub_80831DC
- movs r6, 0
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80831DC
- strb r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_80831DC
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- bl sub_8083158
- strh r0, [r4, 0x4]
- str r6, [r4, 0x8]
- str r6, [r4, 0xC]
- adds r4, 0x10
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80831F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8082CE4
-
- thumb_func_start sub_8082D28
-sub_8082D28:
- push {lr}
- movs r2, 0x3
- bl sub_8082FE0
- pop {r0}
- bx r0
- thumb_func_end sub_8082D28
-
- thumb_func_start sub_8082D34
-sub_8082D34:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082D34
-
- thumb_func_start sub_8082D50
-sub_8082D50:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x2]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082D50
-
- thumb_func_start sub_8082D7C
-sub_8082D7C:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x8]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x9]
- adds r0, r4, 0
- bl sub_80831A0
- str r0, [r5, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082D7C
-
- thumb_func_start sub_8082DA8
-sub_8082DA8:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082DA8
-
- thumb_func_start sub_8082DC4
-sub_8082DC4:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082DC4
-
- thumb_func_start sub_8082DE8
-sub_8082DE8:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082DE8
-
- thumb_func_start sub_8082E04
-sub_8082E04:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_80831DC
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- bl sub_80831DC
- strb r0, [r5, 0x2]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x3]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082E04
-
- thumb_func_start sub_8082E38
-sub_8082E38:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_80831A0
- str r0, [r5, 0x4]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x8]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x9]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0xA]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082E38
-
- thumb_func_start sub_8082E6C
-sub_8082E6C:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082E6C
-
- thumb_func_start sub_8082E88
-sub_8082E88:
- push {lr}
- movs r2, 0x1
- bl sub_8082FE0
- pop {r0}
- bx r0
- thumb_func_end sub_8082E88
-
- thumb_func_start sub_8082E94
-sub_8082E94:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082E94
-
- thumb_func_start sub_8082EB0
-sub_8082EB0:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082EB0
-
- thumb_func_start sub_8082ECC
-sub_8082ECC:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082ECC
-
- thumb_func_start sub_8082EE8
-sub_8082EE8:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8083188
- strb r0, [r5]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_8082FE0
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x4]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082EE8
-
- thumb_func_start sub_8082F1C
-sub_8082F1C:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r7, 0
- movs r5, 0x3
-_08082F26:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8082EE8
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08082F26
- adds r0, r6, 0
- bl sub_8083188
- adds r1, r7, 0
- adds r1, 0x20
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8082F1C
-
- thumb_func_start sub_8082F48
-sub_8082F48:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8083170
- strh r0, [r5]
- adds r0, r4, 0
- bl sub_8083170
- strh r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082F48
-
- thumb_func_start sub_8082F64
-sub_8082F64:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8083188
- strb r0, [r5]
- adds r0, r4, 0
- bl sub_8083188
- strb r0, [r5, 0x1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082F64
-
- thumb_func_start sub_8082F80
-sub_8082F80:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8083170
- strh r0, [r5]
- adds r0, r4, 0
- bl sub_8082BFC
- strb r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082F80
-
- thumb_func_start sub_8082F9C
-sub_8082F9C:
- str r1, [r0]
- movs r3, 0
- str r3, [r0, 0x8]
- adds r1, r2
- str r1, [r0, 0x4]
- bx lr
- thumb_func_end sub_8082F9C
-
- thumb_func_start sub_8082FA8
-sub_8082FA8:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- beq _08082FCC
-_08082FB2:
- ldr r1, [r3]
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x1
- str r0, [r3]
- adds r4, 0x1
- subs r2, 0x1
- ldr r0, [r3, 0x8]
- adds r0, 0x1
- str r0, [r3, 0x8]
- cmp r2, 0
- bne _08082FB2
-_08082FCC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8082FA8
-
- thumb_func_start sub_8082FD4
-sub_8082FD4:
- str r1, [r0]
- movs r3, 0
- str r3, [r0, 0x8]
- adds r1, r2
- str r1, [r0, 0x4]
- bx lr
- thumb_func_end sub_8082FD4
-
- thumb_func_start sub_8082FE0
-sub_8082FE0:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- beq _08083002
-_08082FEA:
- ldr r1, [r3]
- ldrb r0, [r1]
- strb r0, [r4]
- adds r1, 0x1
- str r1, [r3]
- adds r4, 0x1
- subs r2, 0x1
- ldr r0, [r3, 0x8]
- adds r0, 0x1
- str r0, [r3, 0x8]
- cmp r2, 0
- bne _08082FEA
-_08083002:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8082FE0
-
- thumb_func_start nullsub_98
-nullsub_98:
- bx lr
- thumb_func_end nullsub_98
-
- thumb_func_start sub_808300C
-sub_808300C:
- push {lr}
- movs r2, 0x8
- bl sub_8082FA8
- pop {r0}
- bx r0
- thumb_func_end sub_808300C
-
- thumb_func_start sub_8083018
-sub_8083018:
- push {lr}
- sub sp, 0xC
- mov r1, sp
- movs r2, 0x8
- bl sub_8082FE0
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x8]
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8083018
-
- thumb_func_start sub_8083030
-sub_8083030:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strh r1, [r2]
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8083030
-
- thumb_func_start sub_8083048
-sub_8083048:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strh r1, [r2]
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8083048
-
- thumb_func_start sub_8083060
-sub_8083060:
- push {lr}
- sub sp, 0x4
- mov r2, sp
- strb r1, [r2]
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8083060
-
- thumb_func_start sub_8083078
-sub_8083078:
- push {lr}
- sub sp, 0x4
- str r1, [sp]
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8083078
-
- thumb_func_start sub_808308C
-sub_808308C:
- push {lr}
- sub sp, 0x4
- str r1, [sp]
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_808308C
-
- thumb_func_start sub_80830A0
-sub_80830A0:
- push {lr}
- sub sp, 0x4
- str r1, [sp]
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80830A0
-
- thumb_func_start sub_80830B4
-sub_80830B4:
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r1, 24
- movs r2, 0
- cmp r1, 0
- beq _080830C4
- movs r2, 0xFF
-_080830C4:
- mov r0, sp
- strb r2, [r0]
- adds r0, r3, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FA8
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80830B4
-
- thumb_func_start sub_80830D8
-sub_80830D8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80830D8
-
- thumb_func_start sub_80830F8
-sub_80830F8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0x4
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0xC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80830F8
-
- thumb_func_start sub_808312C
-sub_808312C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8082FA8
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FA8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808312C
-
- thumb_func_start sub_808314C
-sub_808314C:
- push {lr}
- bl sub_8082FA8
- pop {r0}
- bx r0
- thumb_func_end sub_808314C
-
- thumb_func_start sub_8083158
-sub_8083158:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FE0
- mov r0, sp
- ldrh r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8083158
-
- thumb_func_start sub_8083170
-sub_8083170:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x2
- bl sub_8082FE0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8083170
-
- thumb_func_start sub_8083188
-sub_8083188:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r0, [r0]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8083188
-
- thumb_func_start sub_80831A0
-sub_80831A0:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FE0
- ldr r0, [sp]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_80831A0
-
- thumb_func_start sub_80831B4
-sub_80831B4:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FE0
- ldr r0, [sp]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_80831B4
-
- thumb_func_start sub_80831C8
-sub_80831C8:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x4
- bl sub_8082FE0
- ldr r0, [sp]
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_80831C8
-
- thumb_func_start sub_80831DC
-sub_80831DC:
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0x1
- bl sub_8082FE0
- mov r0, sp
- ldrb r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_80831DC
-
- thumb_func_start sub_80831F8
-sub_80831F8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FE0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80831F8
-
- thumb_func_start sub_8083220
-sub_8083220:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- str r0, [r4]
- str r0, [r4, 0x4]
- str r0, [r4, 0x8]
- str r0, [r4, 0xC]
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r1, r4, 0x4
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r4, 0xC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FE0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8083220
-
- thumb_func_start sub_8083260
-sub_8083260:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8082FE0
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8082FE0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8083260
-
- thumb_func_start sub_8083288
-sub_8083288:
- push {lr}
- bl sub_8082FE0
- pop {r0}
- bx r0
- thumb_func_end sub_8083288
-
.align 2, 0 \ No newline at end of file
diff --git a/asm/code_807CD9C.s b/asm/code_807CD9C.s
new file mode 100644
index 0000000..f5de8e0
--- /dev/null
+++ b/asm/code_807CD9C.s
@@ -0,0 +1,12493 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_807CD9C
+sub_807CD9C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ mov r9, r0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ movs r0, 0xA
+ str r0, [sp, 0x24]
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CDC4
+ ldr r0, _0807CDC0
+ b _0807CDFE
+ .align 2, 0
+_0807CDC0: .4byte gUnknown_80FC9E8
+_0807CDC4:
+ cmp r9, r6
+ bne _0807CDE4
+ ldr r0, _0807CDDC
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807CDE0
+ ldr r2, [r0]
+ adds r0, r6, 0
+ b _0807CE02
+ .align 2, 0
+_0807CDDC: .4byte gAvailablePokemonNames
+_0807CDE0: .4byte gUnknown_80FCA10
+_0807CDE4:
+ ldr r0, _0807CE0C
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r0, r6, 0
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CE28
+ ldr r0, _0807CE10
+_0807CDFE:
+ ldr r2, [r0]
+ mov r0, r9
+_0807CE02:
+ adds r1, r6, 0
+ bl sub_80522F4
+ b _0807D02A
+ .align 2, 0
+_0807CE0C: .4byte gAvailablePokemonNames
+_0807CE10: .4byte gUnknown_80FCBCC
+_0807CE14:
+ str r0, [sp, 0x28]
+ b _0807CF26
+_0807CE18:
+ ldrh r0, [r5]
+ movs r1, 0x3
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ mov r10, r0
+ b _0807CF20
+_0807CE28:
+ ldr r1, [r6, 0x70]
+ adds r2, r4, 0x4
+ movs r3, 0x7
+ adds r0, r2, 0
+ ands r0, r3
+ adds r1, 0x46
+ strb r0, [r1]
+ movs r0, 0x7
+ ands r2, r0
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl sub_806CDD4
+ ldr r1, _0807D03C
+ adds r0, r6, 0
+ bl sub_80421C0
+ ldr r0, _0807D040
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_80522F4
+ movs r1, 0x1
+ mov r10, r1
+ movs r2, 0
+ str r2, [sp, 0x28]
+ lsls r1, r4, 2
+ ldr r0, _0807D044
+ adds r1, r0
+ mov r8, r1
+ add r7, sp, 0x18
+_0807CE68:
+ ldr r2, [r6, 0x4]
+ str r2, [sp, 0x18]
+ ldrh r0, [r7]
+ mov r3, r8
+ ldrh r3, [r3]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0807D048
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x18]
+ asrs r0, r1, 16
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ lsls r0, 16
+ ldr r2, _0807D04C
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x18]
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ blt _0807CF20
+ asrs r1, r2, 16
+ cmp r1, 0
+ blt _0807CF20
+ cmp r0, 0x37
+ bgt _0807CF20
+ cmp r1, 0x1F
+ bgt _0807CF20
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ lsls r0, 10
+ str r0, [sp, 0x2C]
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ lsls r0, 10
+ str r0, [sp, 0x30]
+ movs r4, 0x5
+_0807CEBC:
+ adds r0, r6, 0
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_804539C
+ adds r0, r6, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CED8
+ movs r0, 0x19
+ bl sub_803E46C
+_0807CED8:
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0807CEBC
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ ldr r1, [sp, 0x18]
+ asrs r1, 16
+ bl GetMapTileAtPosition
+ adds r5, r0, 0
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ bne _0807CE14
+ add r4, sp, 0x18
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80705F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807CE18
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ movs r3, 0x2
+ ldrsh r2, [r4, r3]
+ adds r0, r6, 0
+ movs r3, 0x1
+ bl sub_80694C0
+ ldr r0, [sp, 0x24]
+ subs r0, 0x1
+ str r0, [sp, 0x24]
+ cmp r0, 0
+ bgt _0807CE68
+ movs r1, 0x1
+ mov r10, r1
+_0807CF20:
+ mov r2, r10
+ cmp r2, 0
+ bne _0807CF4E
+_0807CF26:
+ adds r1, r6, 0x4
+ adds r0, r6, 0
+ bl sub_807D068
+ ldr r0, _0807D050
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _0807D054
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ mov r0, r9
+ adds r1, r6, 0
+ movs r3, 0
+ bl sub_806F370
+_0807CF4E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807D02A
+ ldr r0, [sp, 0x28]
+ cmp r0, 0
+ beq _0807CF9E
+ add r4, sp, 0x1C
+ ldr r1, _0807D058
+ adds r0, r4, 0
+ bl InitPokemonMove
+ ldr r0, [sp, 0x28]
+ adds r1, r4, 0
+ bl sub_80571F0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0807CF9E
+ mov r0, r9
+ ldr r1, [sp, 0x28]
+ bl sub_807A96C
+ ldr r0, _0807D050
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, _0807D05C
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ str r4, [sp, 0x14]
+ mov r0, r9
+ ldr r1, [sp, 0x28]
+ movs r3, 0
+ bl sub_806F370
+_0807CF9E:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0807D02A
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D02A
+ adds r0, r6, 0
+ bl sub_806A5B8
+ adds r4, r6, 0x4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CFD8
+ adds r0, r6, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_0807CFD8:
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D02A
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl sub_806CE68
+ ldr r0, [r6, 0x70]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _0807D014
+ ldr r1, _0807D060
+ ldr r0, [r1]
+ strb r5, [r0, 0x1]
+ ldr r0, [r1]
+ movs r2, 0xB8
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+_0807D014:
+ adds r0, r6, 0
+ bl sub_806A5B8
+ ldr r0, _0807D060
+ ldr r0, [r0]
+ ldr r3, _0807D064
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8075900
+_0807D02A:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D03C: .4byte 0x000001a3
+_0807D040: .4byte gUnknown_80F8A0C
+_0807D044: .4byte gAdjacentTileOffsets
+_0807D048: .4byte 0xffff0000
+_0807D04C: .4byte 0x0000ffff
+_0807D050: .4byte gUnknown_80F4F90
+_0807D054: .4byte 0x00000219
+_0807D058: .4byte 0x00000163
+_0807D05C: .4byte 0x0000021a
+_0807D060: .4byte gDungeonGlobalData
+_0807D064: .4byte 0x00003a08
+ thumb_func_end sub_807CD9C
+
+ thumb_func_start sub_807D068
+sub_807D068:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ movs r0, 0
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 11
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r2, r0
+ mov r10, r2
+ movs r0, 0x2
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0x80
+ lsls r1, 5
+ adds r1, r0
+ mov r9, r1
+ ldr r0, [r6, 0xC]
+ subs r0, r2
+ cmp r0, 0
+ bge _0807D0A4
+ negs r0, r0
+_0807D0A4:
+ ldr r1, [r6, 0x10]
+ cmp r0, 0xB
+ bgt _0807D0B8
+ mov r2, r9
+ subs r0, r1, r2
+ cmp r0, 0
+ bge _0807D0B4
+ negs r0, r0
+_0807D0B4:
+ cmp r0, 0xB
+ ble _0807D11E
+_0807D0B8:
+ movs r0, 0
+ mov r8, r0
+ ldr r5, [r6, 0xC]
+ adds r4, r1, 0
+ mov r1, r10
+ subs r0, r1, r5
+ movs r1, 0xC
+ bl __divsi3
+ str r0, [sp, 0x8]
+ mov r2, r9
+ subs r0, r2, r4
+ movs r1, 0xC
+ bl __divsi3
+ str r0, [sp, 0xC]
+ mov r0, sp
+ str r0, [sp, 0x10]
+ movs r7, 0xB
+_0807D0DE:
+ ldr r1, [sp, 0x8]
+ adds r5, r1
+ ldr r2, [sp, 0xC]
+ adds r4, r2
+ str r5, [sp]
+ ldr r0, [sp, 0x10]
+ str r4, [r0, 0x4]
+ mov r0, r8
+ bl sub_8009C7C
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_804535C
+ adds r0, r6, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D114
+ movs r0, 0x1A
+ bl sub_803E46C
+_0807D114:
+ movs r1, 0xAA
+ add r8, r1
+ subs r7, 0x1
+ cmp r7, 0
+ bge _0807D0DE
+_0807D11E:
+ mov r2, r10
+ str r2, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [r6, 0x1C]
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_804535C
+ movs r0, 0x1A
+ bl sub_803E46C
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807D068
+
+ thumb_func_start sub_807D148
+sub_807D148:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r8, r0
+ adds r5, r1, 0
+ mov r9, r2
+ str r3, [sp, 0x4]
+ ldr r0, [r5, 0x70]
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x8]
+ ldr r0, _0807D180
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r0, r5, 0
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D188
+ ldr r0, _0807D184
+ b _0807D194
+ .align 2, 0
+_0807D180: .4byte gAvailablePokemonNames
+_0807D184: .4byte gUnknown_80FCAE8
+_0807D188:
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D1A4
+ ldr r0, _0807D1A0
+_0807D194:
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _0807D3A8
+ .align 2, 0
+_0807D1A0: .4byte gUnknown_80FC97C
+_0807D1A4:
+ mov r2, r9
+ cmp r2, 0x1
+ bne _0807D1DC
+ ldr r0, _0807D1D0
+ ldr r0, [r0]
+ ldr r3, _0807D1D4
+ adds r0, r3
+ ldr r1, [r0]
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ bne _0807D1DC
+ ldr r0, _0807D1D8
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8076D10
+ b _0807D3A8
+ .align 2, 0
+_0807D1D0: .4byte gDungeonGlobalData
+_0807D1D4: .4byte 0x0000e21c
+_0807D1D8: .4byte gUnknown_80FC9A0
+_0807D1DC:
+ ldr r0, _0807D27C
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80421AC
+ adds r0, r5, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D252
+ mov r0, r10
+ adds r0, 0x46
+ ldrb r4, [r0]
+ ldr r1, [r5, 0x1C]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ str r1, [r5, 0x1C]
+ ldr r2, _0807D280
+ adds r6, r0, 0
+ cmp r1, r2
+ bgt _0807D252
+ movs r7, 0x7
+_0807D21E:
+ ldr r0, _0807D284
+ ldr r0, [r0]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0807D23C
+ adds r4, 0x1
+ ands r4, r7
+ adds r0, r4, 0
+ ands r0, r7
+ strb r0, [r6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806CE68
+_0807D23C:
+ movs r0, 0x22
+ bl sub_803E46C
+ ldr r1, [r5, 0x1C]
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3
+ str r1, [r5, 0x1C]
+ ldr r0, _0807D280
+ cmp r1, r0
+ ble _0807D21E
+_0807D252:
+ mov r0, r9
+ cmp r0, 0x1
+ beq _0807D288
+ cmp r0, 0x1
+ bcc _0807D264
+ cmp r0, 0x2
+ beq _0807D2B0
+ cmp r0, 0x3
+ beq _0807D2C8
+_0807D264:
+ mov r0, sp
+ bl sub_8083660
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807D2CE
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ b _0807D2CE
+ .align 2, 0
+_0807D27C: .4byte gUnknown_80FC584
+_0807D280: .4byte 0x00009fff
+_0807D284: .4byte gUnknown_202EDCC
+_0807D288:
+ ldr r0, _0807D2A8
+ ldr r1, [r0]
+ ldr r2, _0807D2AC
+ adds r1, r2
+ mov r0, sp
+ bl sub_808384C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807D2CE
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x8]
+ b _0807D2CE
+ .align 2, 0
+_0807D2A8: .4byte gDungeonGlobalData
+_0807D2AC: .4byte 0x0000e21c
+_0807D2B0:
+ mov r0, sp
+ ldr r1, [sp, 0x4]
+ bl sub_808384C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807D2CE
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ b _0807D2CE
+_0807D2C8:
+ ldr r1, [sp, 0x4]
+ ldr r0, [r1]
+ str r0, [sp]
+_0807D2CE:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl sub_80694C0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_804535C
+ adds r0, r5, 0
+ bl sub_807BB78
+ movs r0, 0x1
+ bl sub_803F580
+ adds r0, r5, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D340
+ mov r1, r10
+ adds r1, 0x46
+ ldrb r4, [r1]
+ movs r0, 0x9C
+ lsls r0, 8
+ str r0, [r5, 0x1C]
+ adds r6, r1, 0
+ movs r7, 0x7
+_0807D310:
+ ldr r0, _0807D3B8
+ ldr r0, [r0]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0807D32E
+ adds r4, 0x1
+ ands r4, r7
+ adds r0, r4, 0
+ ands r0, r7
+ strb r0, [r6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806CE68
+_0807D32E:
+ movs r0, 0x22
+ bl sub_803E46C
+ ldr r0, [r5, 0x1C]
+ ldr r1, _0807D3BC
+ adds r0, r1
+ str r0, [r5, 0x1C]
+ cmp r0, 0
+ bgt _0807D310
+_0807D340:
+ movs r4, 0
+ str r4, [r5, 0x1C]
+ movs r0, 0x22
+ bl sub_803E46C
+ ldr r2, [sp, 0x8]
+ cmp r2, 0
+ beq _0807D35C
+ ldr r0, _0807D3C0
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+_0807D35C:
+ mov r3, r9
+ cmp r3, 0x1
+ bne _0807D36A
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8076D10
+_0807D36A:
+ mov r1, r10
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _0807D392
+ adds r0, r5, 0x4
+ bl sub_804AC20
+ ldr r1, _0807D3C4
+ ldr r0, [r1]
+ strb r4, [r0, 0x1]
+ ldr r0, [r1]
+ movs r2, 0xB8
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ movs r0, 0
+ bl sub_807EC28
+_0807D392:
+ adds r0, r5, 0
+ bl sub_806A5B8
+ ldr r0, _0807D3C4
+ ldr r0, [r0]
+ ldr r3, _0807D3C8
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8075900
+_0807D3A8:
+ 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
+_0807D3B8: .4byte gUnknown_202EDCC
+_0807D3BC: .4byte 0xfffffc00
+_0807D3C0: .4byte gUnknown_80FCB14
+_0807D3C4: .4byte gDungeonGlobalData
+_0807D3C8: .4byte 0x00003a08
+ thumb_func_end sub_807D148
+
+ thumb_func_start sub_807D3CC
+sub_807D3CC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ movs r2, 0
+ ldr r4, _0807D448
+ ldr r0, [r4]
+ ldr r1, _0807D44C
+ adds r0, r1
+ ldrb r6, [r0]
+ cmp r6, 0
+ bne _0807D3E8
+ movs r6, 0x2
+_0807D3E8:
+ mov r0, r8
+ str r2, [sp]
+ bl GetEntityRoomIndex
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [sp]
+ cmp r1, 0xFF
+ bne _0807D450
+ mov r3, r8
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ subs r5, r0, r6
+ adds r0, r6
+ cmp r5, r0
+ bgt _0807D4A8
+_0807D408:
+ mov r3, r8
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ subs r4, r0, r6
+ adds r0, r6
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bgt _0807D438
+_0807D418:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp]
+ bl sub_807D4E0
+ ldr r2, [sp]
+ orrs r2, r0
+ lsls r0, r2, 24
+ lsrs r2, r0, 24
+ adds r4, 0x1
+ mov r3, r8
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ adds r0, r6
+ cmp r4, r0
+ ble _0807D418
+_0807D438:
+ adds r5, r7, 0
+ mov r3, r8
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ adds r0, r6
+ cmp r5, r0
+ ble _0807D408
+ b _0807D4A8
+ .align 2, 0
+_0807D448: .4byte gDungeonGlobalData
+_0807D44C: .4byte 0x00018209
+_0807D450:
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r3, _0807D468
+ adds r0, r3
+ ldr r1, [r4]
+ adds r6, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ subs r5, r0, 0x1
+ b _0807D49E
+ .align 2, 0
+_0807D468: .4byte 0x000104c4
+_0807D46C:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ subs r4, r0, 0x1
+ movs r3, 0x6
+ ldrsh r0, [r6, r3]
+ adds r0, 0x1
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bgt _0807D49C
+_0807D47E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp]
+ bl sub_807D4E0
+ ldr r2, [sp]
+ orrs r2, r0
+ lsls r0, r2, 24
+ lsrs r2, r0, 24
+ adds r4, 0x1
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ adds r0, 0x1
+ cmp r4, r0
+ ble _0807D47E
+_0807D49C:
+ adds r5, r7, 0
+_0807D49E:
+ movs r3, 0x8
+ ldrsh r0, [r6, r3]
+ adds r0, 0x1
+ cmp r5, r0
+ ble _0807D46C
+_0807D4A8:
+ cmp r2, 0
+ beq _0807D4C4
+ ldr r0, _0807D4C0
+ ldr r1, [r0]
+ mov r0, r8
+ bl SendMessage
+ bl sub_8040A84
+ bl sub_8049ED4
+ b _0807D4CE
+ .align 2, 0
+_0807D4C0: .4byte gUnknown_80FD2F8
+_0807D4C4:
+ ldr r0, _0807D4DC
+ ldr r1, [r0]
+ mov r0, r8
+ bl SendMessage
+_0807D4CE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D4DC: .4byte gUnknown_80FD320
+ thumb_func_end sub_807D3CC
+
+ thumb_func_start sub_807D4E0
+sub_807D4E0:
+ push {r4,lr}
+ bl GetMapTileAtPosition
+ ldr r4, [r0, 0x14]
+ cmp r4, 0
+ beq _0807D506
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _0807D506
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0807D506
+ movs r0, 0x1
+ strb r0, [r1]
+ b _0807D508
+_0807D506:
+ movs r0, 0
+_0807D508:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D4E0
+
+ thumb_func_start sub_807D510
+sub_807D510:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0807D540
+ add sp, r4
+ ldr r1, _0807D544
+ add r1, sp
+ str r0, [r1]
+ movs r2, 0
+ movs r3, 0xD1
+ lsls r3, 4
+ add r3, sp
+ str r2, [r3]
+ ldr r4, _0807D548
+ add r4, sp
+ str r2, [r4]
+ add r5, sp, 0x4
+ mov r8, r5
+ mov r10, r2
+ mov r9, r2
+ add r7, sp, 0x8
+ b _0807D606
+ .align 2, 0
+_0807D540: .4byte 0xfffff2d4
+_0807D544: .4byte 0x00000d08
+_0807D548: .4byte 0x00000d0c
+_0807D54C:
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ ldr r2, _0807D650
+ add r2, sp
+ ldr r2, [r2]
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807D562
+ negs r1, r1
+_0807D562:
+ cmp r1, 0x2
+ bgt _0807D580
+ movs r3, 0x6
+ ldrsh r1, [r5, r3]
+ ldr r4, _0807D650
+ add r4, sp
+ ldr r4, [r4]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807D57C
+ negs r1, r1
+_0807D57C:
+ cmp r1, 0x2
+ ble _0807D5FE
+_0807D580:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl GetMapTileAtPosition
+ ldrh r1, [r0]
+ movs r2, 0x3
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0807D5FE
+ mov r3, r8
+ str r2, [r3]
+ ldr r4, _0807D654
+ add r4, sp
+ ldr r1, _0807D658
+ add r1, sp
+ ldr r1, [r1]
+ lsls r0, r1, 2
+ adds r4, r0
+ str r4, [r7, 0x6C]
+ ldr r0, [r5, 0x4]
+ str r0, [r7]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ mov r0, r8
+ bl sub_8045394
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r7, 0x22]
+ movs r0, 0x1
+ strb r0, [r7, 0x1C]
+ strb r2, [r7, 0x1E]
+ str r1, [r7, 0x18]
+ ldr r0, _0807D65C
+ ldr r0, [r0]
+ ldr r5, _0807D660
+ adds r0, r5
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [r4]
+ adds r7, 0x74
+ movs r0, 0x74
+ add r8, r0
+ ldr r2, _0807D658
+ add r2, sp
+ ldr r1, [r2]
+ adds r1, 0x1
+ str r1, [r2]
+_0807D5FE:
+ movs r3, 0x4
+ add r9, r3
+ movs r4, 0x1
+ add r10, r4
+_0807D606:
+ ldr r0, _0807D65C
+ ldr r1, [r0]
+ ldr r5, _0807D664
+ adds r0, r1, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r10, r0
+ bge _0807D634
+ ldr r3, _0807D668
+ adds r0, r1, r3
+ add r0, r9
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D5FE
+ ldr r4, _0807D658
+ add r4, sp
+ ldr r4, [r4]
+ cmp r4, 0x18
+ ble _0807D54C
+_0807D634:
+ ldr r5, _0807D658
+ add r5, sp
+ ldr r5, [r5]
+ cmp r5, 0
+ bne _0807D670
+ ldr r0, _0807D66C
+ ldr r1, [r0]
+ ldr r2, _0807D650
+ add r2, sp
+ ldr r0, [r2]
+ bl SendMessage
+ b _0807D9F4
+ .align 2, 0
+_0807D650: .4byte 0x00000d08
+_0807D654: .4byte 0x00000b58
+_0807D658: .4byte 0x00000d0c
+_0807D65C: .4byte gDungeonGlobalData
+_0807D660: .4byte 0x00003804
+_0807D664: .4byte 0x00003904
+_0807D668: .4byte 0x0001361c
+_0807D66C: .4byte gUnknown_80FE034
+_0807D670:
+ movs r1, 0
+ movs r7, 0x1D
+ ldr r0, _0807D754
+ add r0, sp
+_0807D678:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r7, 0x1
+ cmp r7, 0
+ bge _0807D678
+ movs r7, 0
+ ldr r3, _0807D758
+ add r3, sp
+ ldr r3, [r3]
+ cmp r7, r3
+ blt _0807D690
+ b _0807D7CC
+_0807D690:
+ ldr r4, _0807D75C
+ mov r10, r4
+ ldr r5, _0807D760
+ movs r0, 0
+ ldrsh r5, [r5, r0]
+ ldr r0, _0807D764
+ add r0, sp
+ str r5, [r0]
+_0807D6A0:
+ movs r1, 0
+ mov r9, r1
+ ldr r2, _0807D768
+ add r2, sp
+ ldr r2, [r2]
+ ldrh r0, [r2, 0x4]
+ ldr r1, _0807D76C
+ ands r6, r1
+ orrs r6, r0
+ ldrh r0, [r2, 0x6]
+ lsls r0, 16
+ mov r4, r10
+ ands r6, r4
+ orrs r6, r0
+ mov r4, r9
+ adds r5, r7, 0x1
+ movs r0, 0xD2
+ lsls r0, 4
+ add r0, sp
+ str r5, [r0]
+ ldr r1, _0807D760
+ ldr r2, _0807D764
+ add r2, sp
+ ldr r2, [r2]
+ cmp r2, 0x63
+ beq _0807D790
+ ldr r3, _0807D770
+ add r3, sp
+ mov r8, r3
+_0807D6DA:
+ ldr r0, _0807D774
+ add r0, sp
+ adds r0, r4
+ ldr r5, _0807D778
+ add r5, sp
+ str r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D77C
+ lsls r2, r4, 2
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, _0807D768
+ add r1, sp
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0807D76C
+ ands r6, r1
+ orrs r6, r0
+ ldrh r0, [r2, 0x2]
+ ldr r2, _0807D768
+ add r2, sp
+ ldr r2, [r2]
+ ldrh r2, [r2, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ mov r3, r10
+ ands r6, r3
+ orrs r6, r0
+ lsls r0, r6, 16
+ asrs r0, 16
+ asrs r1, r6, 16
+ bl GetMapTileAtPosition
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r3, 0x3
+ ands r3, r1
+ cmp r3, 0x1
+ bne _0807D77C
+ movs r5, 0x80
+ lsls r5, 2
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0807D77C
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ bne _0807D77C
+ lsls r0, r7, 2
+ add r0, r8
+ str r6, [r0]
+ ldr r0, _0807D778
+ add r0, sp
+ ldr r0, [r0]
+ strb r3, [r0]
+ b _0807D7B8
+ .align 2, 0
+_0807D754: .4byte 0x00000d05
+_0807D758: .4byte 0x00000d0c
+_0807D75C: .4byte 0x0000ffff
+_0807D760: .4byte gUnknown_80F4468
+_0807D764: .4byte 0x00000d18
+_0807D768: .4byte 0x00000d08
+_0807D76C: .4byte 0xffff0000
+_0807D770: .4byte 0x00000bbc
+_0807D774: .4byte 0x00000ce8
+_0807D778: .4byte 0x00000d28
+_0807D77C:
+ adds r4, 0x1
+ cmp r4, 0x1D
+ bgt _0807D790
+ lsls r0, r4, 2
+ ldr r1, _0807D9B4
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x63
+ bne _0807D6DA
+_0807D790:
+ mov r3, r9
+ cmp r3, 0
+ bne _0807D7B8
+ movs r0, 0x74
+ muls r0, r7
+ add r0, sp
+ adds r0, 0x4
+ str r3, [r0]
+ ldr r1, _0807D9B8
+ add r1, sp
+ lsls r0, r7, 2
+ adds r1, r0
+ ldrh r2, [r1]
+ mov r0, r10
+ orrs r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r0, r10
+ orrs r0, r2
+ strh r0, [r1, 0x2]
+_0807D7B8:
+ movs r4, 0xD2
+ lsls r4, 4
+ add r4, sp
+ ldr r7, [r4]
+ ldr r5, _0807D9BC
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ bge _0807D7CC
+ b _0807D6A0
+_0807D7CC:
+ movs r7, 0
+ ldr r0, _0807D9BC
+ add r0, sp
+ ldr r0, [r0]
+ cmp r7, r0
+ bge _0807D866
+_0807D7D8:
+ movs r0, 0x74
+ adds r1, r7, 0
+ muls r1, r0
+ mov r8, r1
+ mov r4, sp
+ add r4, r8
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D85A
+ adds r0, r4, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ movs r3, 0x6
+ ldrsh r1, [r4, r3]
+ bl sub_80402AC
+ movs r5, 0xC2
+ lsls r5, 4
+ add r5, sp
+ lsls r6, r7, 3
+ adds r5, r6
+ ldr r4, _0807D9B8
+ add r4, sp
+ lsls r0, r7, 2
+ adds r4, r0
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x10
+ add r1, r8
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x3C
+ bl __divsi3
+ str r0, [r5]
+ ldr r5, _0807D9C0
+ add r5, sp
+ adds r5, r6
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x14
+ add r1, r8
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x3C
+ bl __divsi3
+ str r0, [r5]
+_0807D85A:
+ adds r7, 0x1
+ ldr r3, _0807D9BC
+ add r3, sp
+ ldr r3, [r3]
+ cmp r7, r3
+ blt _0807D7D8
+_0807D866:
+ movs r1, 0xD1
+ lsls r1, 1
+ ldr r4, _0807D9C4
+ add r4, sp
+ ldr r0, [r4]
+ bl sub_80421C0
+ movs r5, 0
+ mov r9, r5
+ ldr r0, _0807D9C8
+ ldr r0, [r0]
+ ldr r1, _0807D9CC
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r2, _0807D9D0
+ add r2, sp
+ str r0, [r2]
+ mov r10, r5
+ movs r6, 0
+_0807D88C:
+ movs r7, 0
+ mov r3, r10
+ adds r3, 0x22
+ ldr r4, _0807D9D4
+ add r4, sp
+ str r3, [r4]
+ adds r5, r6, 0x1
+ ldr r0, _0807D9D8
+ add r0, sp
+ str r5, [r0]
+ ldr r1, _0807D9BC
+ add r1, sp
+ ldr r1, [r1]
+ cmp r7, r1
+ bge _0807D916
+ mov r2, r9
+ lsls r2, 24
+ mov r8, r2
+_0807D8B0:
+ movs r0, 0x74
+ adds r5, r7, 0
+ muls r5, r0
+ mov r4, sp
+ adds r4, r5
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D90A
+ movs r0, 0xC2
+ lsls r0, 4
+ add r0, sp
+ lsls r2, r7, 3
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0807D9C0
+ add r0, sp
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ bl sub_804539C
+ mov r0, r10
+ bl sub_8009C7C
+ add r2, sp, 0x20
+ adds r2, r5
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ str r1, [r2]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ ldr r3, _0807D9D0
+ add r3, sp
+ ldr r1, [r3]
+ movs r2, 0
+ mov r4, r8
+ lsrs r3, r4, 24
+ bl sub_80462AC
+_0807D90A:
+ adds r7, 0x1
+ ldr r5, _0807D9BC
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ blt _0807D8B0
+_0807D916:
+ movs r0, 0x13
+ bl sub_803E46C
+ ldr r0, _0807D9D4
+ add r0, sp
+ ldr r0, [r0]
+ mov r10, r0
+ movs r0, 0x3
+ ands r0, r6
+ cmp r0, 0
+ bne _0807D930
+ movs r1, 0x1
+ add r9, r1
+_0807D930:
+ movs r0, 0x7
+ mov r2, r9
+ ands r2, r0
+ mov r9, r2
+ ldr r3, _0807D9D8
+ add r3, sp
+ ldr r6, [r3]
+ cmp r6, 0x3B
+ ble _0807D88C
+ movs r7, 0
+ ldr r4, _0807D9BC
+ add r4, sp
+ ldr r4, [r4]
+ cmp r7, r4
+ bge _0807D996
+_0807D94E:
+ ldr r0, _0807D9B8
+ add r0, sp
+ lsls r1, r7, 2
+ adds r4, r0, r1
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ blt _0807D98A
+ movs r0, 0x74
+ muls r0, r7
+ add r0, sp
+ adds r0, 0x4
+ bl GetItemData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_80460F8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80402AC
+ movs r3, 0x1
+ movs r4, 0xD1
+ lsls r4, 4
+ add r4, sp
+ str r3, [r4]
+_0807D98A:
+ adds r7, 0x1
+ ldr r5, _0807D9BC
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ blt _0807D94E
+_0807D996:
+ movs r0, 0xD1
+ lsls r0, 4
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807D9E0
+ ldr r0, _0807D9DC
+ ldr r1, [r0]
+ ldr r2, _0807D9C4
+ add r2, sp
+ ldr r0, [r2]
+ bl SendMessage
+ b _0807D9EE
+ .align 2, 0
+_0807D9B4: .4byte gUnknown_80F4468
+_0807D9B8: .4byte 0x00000bbc
+_0807D9BC: .4byte 0x00000d0c
+_0807D9C0: .4byte 0x00000c24
+_0807D9C4: .4byte 0x00000d08
+_0807D9C8: .4byte gDungeonGlobalData
+_0807D9CC: .4byte 0x00018210
+_0807D9D0: .4byte 0x00000d14
+_0807D9D4: .4byte 0x00000d1c
+_0807D9D8: .4byte 0x00000d24
+_0807D9DC: .4byte gUnknown_80FE060
+_0807D9E0:
+ ldr r0, _0807DA08
+ ldr r1, [r0]
+ ldr r3, _0807DA0C
+ add r3, sp
+ ldr r0, [r3]
+ bl SendMessage
+_0807D9EE:
+ movs r0, 0x1
+ bl sub_807EC28
+_0807D9F4:
+ ldr r3, _0807DA10
+ 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
+_0807DA08: .4byte gUnknown_80FE034
+_0807DA0C: .4byte 0x00000d08
+_0807DA10: .4byte 0x00000d2c
+ thumb_func_end sub_807D510
+
+ thumb_func_start sub_807DA14
+sub_807DA14:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r0, [r6, 0x70]
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DA50
+ ldr r0, _0807DA48
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807DA4C
+ b _0807DA5C
+ .align 2, 0
+_0807DA48: .4byte gAvailablePokemonNames
+_0807DA4C: .4byte gUnknown_80FCB98
+_0807DA50:
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DA6C
+ ldr r0, _0807DA68
+_0807DA5C:
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80522F4
+ b _0807DB5E
+ .align 2, 0
+_0807DA68: .4byte gUnknown_80FC9C0
+_0807DA6C:
+ cmp r4, 0x8
+ bne _0807DA76
+ mov r0, r10
+ adds r0, 0x46
+ ldrb r4, [r0]
+_0807DA76:
+ adds r0, r6, 0
+ movs r1, 0x6
+ adds r2, r4, 0
+ bl sub_806CDD4
+ lsls r1, r4, 2
+ adds r2, r6, 0x4
+ mov r9, r2
+ ldr r0, _0807DAFC
+ adds r1, r0
+ mov r8, r1
+_0807DA8C:
+ ldrh r0, [r6, 0x4]
+ mov r3, r8
+ ldrh r3, [r3]
+ adds r0, r3
+ lsls r0, 16
+ ldrh r1, [r6, 0x6]
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r7, r0, 16
+ orrs r7, r1
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ ble _0807DB00
+ asrs r4, r7, 16
+ cmp r4, 0
+ ble _0807DB00
+ cmp r5, 0x36
+ bgt _0807DB00
+ cmp r4, 0x1E
+ bgt _0807DB00
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMapTileAtPosition
+ adds r1, r0, 0
+ ldr r0, [r1, 0x10]
+ cmp r0, 0
+ bne _0807DB00
+ ldrh r1, [r1]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0807DB00
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80694C0
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_804535C
+ adds r0, r6, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DA8C
+ movs r0, 0x3A
+ bl sub_803E46C
+ b _0807DA8C
+ .align 2, 0
+_0807DAFC: .4byte gAdjacentTileOffsets
+_0807DB00:
+ adds r0, r6, 0
+ bl sub_806A5B8
+ mov r1, r9
+ adds r0, r6, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DB20
+ adds r0, r6, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_0807DB20:
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DB5E
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl sub_806CE68
+ mov r3, r10
+ ldrb r0, [r3, 0x7]
+ cmp r0, 0
+ beq _0807DB48
+ mov r0, r9
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+_0807DB48:
+ adds r0, r6, 0
+ bl sub_806A5B8
+ ldr r0, _0807DB6C
+ ldr r0, [r0]
+ ldr r1, _0807DB70
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8075900
+_0807DB5E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DB6C: .4byte gDungeonGlobalData
+_0807DB70: .4byte 0x00003a08
+ thumb_func_end sub_807DA14
+
+ thumb_func_start sub_807DB74
+sub_807DB74:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ bl IsFixedDungeon
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DB94
+ ldr r0, _0807DB90
+ b _0807DBA0
+ .align 2, 0
+_0807DB90: .4byte gUnknown_80FD060
+_0807DB94:
+ bl IsWaterTileset
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DBB0
+ ldr r0, _0807DBAC
+_0807DBA0:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+ b _0807DC54
+ .align 2, 0
+_0807DBAC: .4byte gUnknown_80FD08C
+_0807DBB0:
+ movs r5, 0
+ ldr r0, _0807DC24
+ adds r6, r0, 0
+_0807DBB6:
+ movs r4, 0
+_0807DBB8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl GetMapEntity
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0807DBE2
+ adds r0, r1, 0
+ ands r0, r6
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80498A8
+ movs r1, 0x1
+ mov r8, r1
+_0807DBE2:
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0807DBB8
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0807DBB6
+ movs r5, 0
+_0807DBF0:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0807DBF4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049BB0
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0807DBF4
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _0807DBF0
+ mov r0, r8
+ cmp r0, 0
+ beq _0807DC30
+ ldr r1, _0807DC28
+ adds r0, r7, 0
+ bl sub_80421C0
+ ldr r0, _0807DC2C
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+ b _0807DC3A
+ .align 2, 0
+_0807DC24: .4byte 0x0000fffc
+_0807DC28: .4byte 0x000001a1
+_0807DC2C: .4byte gUnknown_80FD05C
+_0807DC30:
+ ldr r0, _0807DC60
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+_0807DC3A:
+ ldr r0, _0807DC64
+ ldr r0, [r0]
+ movs r1, 0xCE
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bl sub_806CF60
+ bl sub_8040A84
+ bl sub_8049ED4
+_0807DC54:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DC60: .4byte gUnknown_80FD060
+_0807DC64: .4byte gDungeonGlobalData
+ thumb_func_end sub_807DB74
+
+ thumb_func_start sub_807DC68
+sub_807DC68:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ ldr r0, _0807DC88
+ ldr r1, [r0]
+ ldr r2, _0807DC8C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807DC94
+ ldr r0, _0807DC90
+ b _0807DCB8
+ .align 2, 0
+_0807DC88: .4byte gDungeonGlobalData
+_0807DC8C: .4byte 0x00003a08
+_0807DC90: .4byte gUnknown_80FD3C8
+_0807DC94:
+ ldr r3, _0807DCA4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807DCAC
+ ldr r0, _0807DCA8
+ b _0807DCB8
+ .align 2, 0
+_0807DCA4: .4byte 0x00003a0b
+_0807DCA8: .4byte gUnknown_80FD3CC
+_0807DCAC:
+ bl IsBossBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DCC8
+ ldr r0, _0807DCC4
+_0807DCB8:
+ ldr r1, [r0]
+ mov r0, r9
+ bl SendMessage
+ b _0807DF0E
+ .align 2, 0
+_0807DCC4: .4byte gUnknown_80FD3D0
+_0807DCC8:
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0x1
+ movs r1, 0
+ mov r10, r1
+ ldr r2, _0807DD68
+ adds r7, r2, 0
+_0807DCD6:
+ movs r4, 0x1
+_0807DCD8:
+ movs r6, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMapEntity
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ ldr r3, _0807DD6C
+ adds r0, r3, 0
+ adds r3, r1, 0
+ ands r3, r0
+ strh r3, [r2]
+ mov r0, r10
+ strb r0, [r2, 0x9]
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ bne _0807DD94
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0, 0
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0807DD94
+ ldrh r0, [r2, 0x4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldr r1, _0807DD70
+ adds r0, r1, 0
+ adds r1, r3, 0
+ ands r1, r0
+ strh r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807DD28
+ movs r3, 0x1
+ mov r8, r3
+_0807DD28:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0807DD94
+ cmp r0, 0x3
+ beq _0807DD94
+ cmp r5, 0x1
+ beq _0807DD44
+ cmp r4, 0x1
+ beq _0807DD44
+ cmp r5, 0x36
+ beq _0807DD44
+ cmp r4, 0x1E
+ bne _0807DD5C
+_0807DD44:
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ bne _0807DD5C
+ ldr r0, _0807DD74
+ ldr r0, [r0]
+ movs r1, 0xCE
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807DD5C
+ movs r6, 0x1
+_0807DD5C:
+ cmp r6, 0
+ beq _0807DD78
+ ldrh r0, [r2]
+ ands r0, r7
+ movs r1, 0x2
+ b _0807DD90
+ .align 2, 0
+_0807DD68: .4byte 0x0000fffc
+_0807DD6C: .4byte 0x0000fbff
+_0807DD70: .4byte 0x0000fff7
+_0807DD74: .4byte gDungeonGlobalData
+_0807DD78:
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0807DD94
+ adds r0, r1, 0
+ ands r0, r7
+ movs r1, 0x1
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+_0807DD90:
+ orrs r0, r1
+ strh r0, [r2]
+_0807DD94:
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0807DCD8
+ adds r5, 0x1
+ cmp r5, 0x36
+ ble _0807DCD6
+ ldr r0, _0807DF1C
+ ldr r1, [r0]
+ ldr r2, _0807DF20
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r2, 0x2
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r2, 0x1
+ bl sub_8050C30
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DE02
+ movs r5, 0
+ movs r6, 0x84
+ lsls r6, 8
+ movs r7, 0
+_0807DDC8:
+ movs r4, 0
+_0807DDCA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMapEntity
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0807DDF6
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, r6
+ bne _0807DDF6
+ ldr r3, _0807DF24
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+_0807DDF6:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0807DDCA
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _0807DDC8
+_0807DE02:
+ mov r0, r8
+ cmp r0, 0
+ beq _0807DE14
+ ldr r0, _0807DF1C
+ ldr r0, [r0]
+ ldr r1, _0807DF28
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807DE14:
+ movs r5, 0
+_0807DE16:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0807DE1A:
+ mov r2, r8
+ cmp r2, 0
+ beq _0807DE30
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMapEntity
+ ldrh r2, [r0]
+ movs r1, 0x40
+ orrs r1, r2
+ strh r1, [r0]
+_0807DE30:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049BB0
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0807DE1A
+ adds r5, r6, 0
+ cmp r5, 0x37
+ ble _0807DE16
+ movs r5, 0
+_0807DE46:
+ ldr r0, _0807DF1C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r3, _0807DF2C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DE74
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl GetMapTileAtPosition
+ ldrb r1, [r0, 0x9]
+ adds r0, r4, 0
+ adds r0, 0x25
+ strb r1, [r0]
+_0807DE74:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0807DE46
+ bl sub_804EB30
+ bl sub_804AAD4
+ bl sub_8049884
+ bl sub_806CF60
+ bl sub_8040A84
+ bl sub_8049ED4
+ ldr r0, _0807DF30
+ ldr r1, [r0]
+ mov r0, r9
+ bl SendMessage
+ movs r0, 0x28
+ movs r1, 0x2B
+ bl sub_803E708
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_8075900
+ movs r5, 0
+_0807DEAE:
+ ldr r0, _0807DF1C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r3, _0807DF2C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DEF4
+ adds r0, r4, 0
+ bl sub_806A5B8
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DEF4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DEF4
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_0807DEF4:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0807DEAE
+ ldr r0, _0807DF1C
+ ldr r0, [r0]
+ ldr r1, _0807DF34
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x14
+ movs r1, 0x2B
+ bl sub_803E708
+_0807DF0E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DF1C: .4byte gDungeonGlobalData
+_0807DF20: .4byte 0x0000e21c
+_0807DF24: .4byte 0x0000fffc
+_0807DF28: .4byte 0x00003a0c
+_0807DF2C: .4byte 0x000135cc
+_0807DF30: .4byte gUnknown_80FD3A0
+_0807DF34: .4byte 0x00003a08
+ thumb_func_end sub_807DC68
+
+ thumb_func_start sub_807DF38
+sub_807DF38:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp, 0x8]
+ mov r10, r1
+ str r2, [sp, 0xC]
+ adds r6, r3, 0
+ ldr r0, [sp, 0x40]
+ ldr r1, [sp, 0x44]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r1, 16
+ asrs r1, 16
+ str r1, [sp, 0x14]
+ movs r5, 0
+ b _0807DF62
+_0807DF60:
+ adds r5, 0x1
+_0807DF62:
+ cmp r5, 0x13
+ bgt _0807DF8E
+ ldr r0, _0807DFA8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0807DFAC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DF60
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DF60
+_0807DF8E:
+ cmp r5, 0x14
+ beq _0807DFB4
+ ldr r0, [sp, 0x8]
+ mov r1, r10
+ bl sub_804218C
+ ldr r0, _0807DFB0
+ mov r1, r10
+ movs r2, 0
+ bl SetMessageArgument
+ b _0807DFC2
+ .align 2, 0
+_0807DFA8: .4byte gDungeonGlobalData
+_0807DFAC: .4byte 0x000135cc
+_0807DFB0: .4byte gAvailablePokemonNames
+_0807DFB4:
+ mov r0, r10
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0807DFD4
+_0807DFC2:
+ ldr r0, _0807DFD0
+ ldr r2, [r0]
+ ldr r0, [sp, 0x8]
+ mov r1, r10
+ bl sub_80522F4
+ b _0807E174
+ .align 2, 0
+_0807DFD0: .4byte gUnknown_80F96EC
+_0807DFD4:
+ ldr r0, [sp, 0x8]
+ mov r1, r10
+ adds r2, r6, 0
+ bl sub_804216C
+ ldr r0, _0807E184
+ mov r1, r10
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807E188
+ ldr r2, [r0]
+ ldr r0, [sp, 0x8]
+ mov r1, r10
+ bl sub_80522F4
+ movs r5, 0
+ ldr r0, _0807E18C
+ lsls r1, r6, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ mov r9, r0
+ ldrh r4, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ str r1, [sp, 0x1C]
+ cmp r0, 0x63
+ bne _0807E00E
+ b _0807E124
+_0807E00E:
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x18]
+_0807E014:
+ ldr r1, [sp, 0xC]
+ ldrh r0, [r1]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0807E190
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ ldr r2, [sp, 0xC]
+ ldrh r0, [r2, 0x2]
+ mov r3, r9
+ ldrh r3, [r3, 0x2]
+ adds r0, r3
+ lsls r0, 16
+ ldr r2, _0807E194
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldr r1, [sp, 0x18]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _0807E112
+ asrs r1, r2, 16
+ cmp r1, 0
+ blt _0807E112
+ cmp r0, 0x37
+ bgt _0807E112
+ cmp r1, 0x1F
+ bgt _0807E112
+ bl GetMapEntity
+ mov r8, r0
+ ldr r0, [sp, 0x18]
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ ble _0807E0BE
+ ldr r0, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0
+ ble _0807E0BE
+ cmp r1, 0x36
+ bgt _0807E0BE
+ cmp r0, 0x1E
+ bgt _0807E0BE
+ mov r3, r8
+ ldrh r1, [r3]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0807E0BE
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0807E0BE
+ ldr r2, _0807E198
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r3]
+ movs r5, 0x1
+ negs r5, r5
+ add r7, sp, 0x4
+_0807E09A:
+ movs r4, 0x1
+ negs r4, r4
+ adds r6, r5, 0x1
+_0807E0A0:
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ adds r0, r4
+ ldr r1, [sp, 0x4]
+ asrs r1, 16
+ adds r1, r5
+ bl sub_80498A8
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0807E0A0
+ adds r5, r6, 0
+ cmp r5, 0x1
+ ble _0807E09A
+ movs r5, 0x1
+_0807E0BE:
+ mov r0, r8
+ ldr r4, [r0, 0x14]
+ cmp r4, 0
+ beq _0807E0DC
+ cmp r4, r10
+ beq _0807E0DC
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _0807E0DC
+ add r0, sp, 0x4
+ movs r1, 0
+ bl sub_80461C8
+_0807E0DC:
+ mov r1, r8
+ ldr r4, [r1, 0x10]
+ cmp r4, 0
+ beq _0807E112
+ cmp r4, r10
+ beq _0807E112
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807E112
+ ldr r0, _0807E19C
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x8]
+ adds r1, r4, 0
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl sub_807E1A0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E124
+_0807E112:
+ movs r3, 0x4
+ add r9, r3
+ mov r0, r9
+ ldrh r4, [r0]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x63
+ beq _0807E124
+ b _0807E014
+_0807E124:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E174
+ mov r0, r10
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807E14E
+ ldr r0, _0807E19C
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x8]
+ mov r1, r10
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl sub_807E1A0
+_0807E14E:
+ cmp r5, 0
+ beq _0807E174
+ movs r5, 0
+_0807E154:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0807E158:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049BB0
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0807E158
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _0807E154
+ bl sub_8040A84
+ bl sub_8049ED4
+_0807E174:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E184: .4byte gAvailablePokemonNames
+_0807E188: .4byte gUnknown_80F96BC
+_0807E18C: .4byte gUnknown_8107178
+_0807E190: .4byte 0xffff0000
+_0807E194: .4byte 0x0000ffff
+_0807E198: .4byte 0x0000fffc
+_0807E19C: .4byte gUnknown_203B444
+ thumb_func_end sub_807DF38
+
+ thumb_func_start sub_807E1A0
+sub_807E1A0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x24
+ mov r9, r0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 16
+ asrs r7, r3, 16
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E244
+ ldr r5, [r6, 0x70]
+ add r4, sp, 0x1C
+ ldr r1, _0807E20C
+ adds r0, r4, 0
+ bl InitPokemonMove
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80571F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E244
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ bne _0807E210
+ movs r0, 0xE
+ ldrsh r4, [r5, r0]
+ lsrs r0, r4, 31
+ adds r5, r4, r0
+ asrs r4, r5, 1
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl HasType
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E202
+ lsrs r0, r5, 31
+ adds r0, r4, r0
+ asrs r4, r0, 1
+_0807E202:
+ cmp r4, 0
+ bgt _0807E226
+ movs r4, 0x1
+ b _0807E226
+ .align 2, 0
+_0807E20C: .4byte 0x00000163
+_0807E210:
+ ldr r4, [sp, 0x40]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl HasType
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E226
+ lsrs r0, r4, 31
+ adds r0, r4, r0
+ asrs r4, r0, 1
+_0807E226:
+ add r0, sp, 0x18
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ str r0, [sp, 0x14]
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_806F370
+_0807E244:
+ add sp, 0x24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E1A0
+
+ thumb_func_start sub_807E254
+sub_807E254:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r7, r1, 0
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E274
+ ldr r0, _0807E270
+ adds r1, r6, 0
+ b _0807E286
+ .align 2, 0
+_0807E270: .4byte gAvailablePokemonNames
+_0807E274:
+ adds r0, r7, 0
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E2A4
+ ldr r0, _0807E29C
+ adds r1, r7, 0
+_0807E286:
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807E2A0
+ ldr r2, [r0]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _0807E366
+ .align 2, 0
+_0807E29C: .4byte gAvailablePokemonNames
+_0807E2A0: .4byte gUnknown_80FCAC0
+_0807E2A4:
+ ldrh r1, [r6, 0x6]
+ lsls r1, 16
+ ldrh r0, [r6, 0x4]
+ orrs r0, r1
+ str r0, [sp]
+ ldrh r1, [r7, 0x6]
+ lsls r1, 16
+ ldrh r0, [r7, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r5, sp
+ mov r0, sp
+ bl nullsub_93
+ add r4, sp, 0x4
+ adds r0, r4, 0
+ bl nullsub_93
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r0, 0x2
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ movs r3, 0x1
+ bl sub_80694C0
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x2
+ ldrsh r2, [r5, r0]
+ adds r0, r7, 0
+ movs r3, 0x1
+ bl sub_80694C0
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_804535C
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_804535C
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E330
+ ldr r0, [r6, 0x70]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _0807E31A
+ adds r0, r6, 0x4
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+_0807E31A:
+ adds r0, r6, 0
+ bl sub_806A5B8
+ ldr r0, _0807E370
+ ldr r0, [r0]
+ ldr r1, _0807E374
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8075900
+_0807E330:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E366
+ ldr r0, [r7, 0x70]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _0807E350
+ adds r0, r7, 0x4
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+_0807E350:
+ adds r0, r7, 0
+ bl sub_806A5B8
+ ldr r0, _0807E370
+ ldr r0, [r0]
+ ldr r2, _0807E374
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_8075900
+_0807E366:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E370: .4byte gDungeonGlobalData
+_0807E374: .4byte 0x00003a08
+ thumb_func_end sub_807E254
+
+ thumb_func_start sub_807E378
+sub_807E378:
+ push {r4-r7,lr}
+ bl GetLeaderEntity
+ adds r4, r0, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E38C
+ b _0807E564
+_0807E38C:
+ ldr r0, _0807E41C
+ ldr r1, [r0]
+ ldr r3, _0807E420
+ adds r2, r1, r3
+ ldrh r3, [r2]
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ adds r6, r0, 0
+ cmp r1, 0
+ ble _0807E3AA
+ subs r0, r3, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0807E3B4
+_0807E3AA:
+ ldr r0, [r6]
+ ldr r1, _0807E424
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+_0807E3B4:
+ adds r5, r6, 0
+ ldr r1, [r5]
+ ldr r7, _0807E424
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807E434
+ ldr r2, _0807E420
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0xF9
+ ble _0807E3D0
+ b _0807E564
+_0807E3D0:
+ bl sub_805E804
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806A2BC
+ adds r0, r4, 0
+ bl UseAttack
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E3EE
+ b _0807E564
+_0807E3EE:
+ ldr r0, _0807E428
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+ ldr r1, _0807E42C
+ ldr r0, [r5]
+ ldr r2, _0807E430
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_80426C8
+ ldr r0, [r5]
+ adds r0, r7
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0807E564
+ .align 2, 0
+_0807E41C: .4byte gDungeonGlobalData
+_0807E420: .4byte 0x00000666
+_0807E424: .4byte 0x0000067a
+_0807E428: .4byte gUnknown_80F9C4C
+_0807E42C: .4byte gUnknown_80F5FAC
+_0807E430: .4byte 0x00003a0e
+_0807E434:
+ cmp r0, 0x1
+ bne _0807E4A0
+ ldr r2, _0807E490
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x95
+ ble _0807E446
+ b _0807E564
+_0807E446:
+ bl sub_805E804
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806A2BC
+ adds r0, r4, 0
+ bl UseAttack
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E464
+ b _0807E564
+_0807E464:
+ ldr r0, _0807E494
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+ ldr r1, _0807E498
+ ldr r0, [r5]
+ ldr r2, _0807E49C
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80426C8
+ ldr r0, [r5]
+ adds r0, r7
+ movs r1, 0x2
+ strb r1, [r0]
+ b _0807E564
+ .align 2, 0
+_0807E490: .4byte 0x00000666
+_0807E494: .4byte gUnknown_80F9C70
+_0807E498: .4byte gUnknown_80F5FAC
+_0807E49C: .4byte 0x00003a0e
+_0807E4A0:
+ cmp r0, 0x2
+ bne _0807E508
+ ldr r2, _0807E4F8
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x31
+ bgt _0807E564
+ bl sub_805E804
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806A2BC
+ adds r0, r4, 0
+ bl UseAttack
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E564
+ ldr r0, _0807E4FC
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+ ldr r1, _0807E500
+ ldr r0, [r5]
+ ldr r2, _0807E504
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl sub_80426C8
+ ldr r0, [r5]
+ adds r0, r7
+ movs r1, 0x3
+ strb r1, [r0]
+ b _0807E564
+ .align 2, 0
+_0807E4F8: .4byte 0x00000666
+_0807E4FC: .4byte gUnknown_80F9C8C
+_0807E500: .4byte gUnknown_80F5FAC
+_0807E504: .4byte 0x00003a0e
+_0807E508:
+ ldr r5, _0807E56C
+ adds r0, r1, r5
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bgt _0807E564
+ bl sub_805E804
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806A2BC
+ adds r0, r4, 0
+ bl UseAttack
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E564
+ ldr r0, _0807E570
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+ ldr r1, _0807E574
+ ldr r0, [r6]
+ ldr r2, _0807E578
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_80426C8
+ ldr r0, [r6]
+ adds r0, r7
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, _0807E57C
+ adds r0, r4, 0
+ adds r2, r4, 0
+ bl sub_8068FE0
+_0807E564:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E56C: .4byte 0x00000666
+_0807E570: .4byte gUnknown_80F9CBC
+_0807E574: .4byte gUnknown_80F5FAC
+_0807E578: .4byte 0x00003a0e
+_0807E57C: .4byte 0x0000021e
+ thumb_func_end sub_807E378
+
+ thumb_func_start GetWeather
+GetWeather:
+ push {lr}
+ cmp r0, 0
+ beq _0807E596
+ movs r1, 0x2D
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E596
+ movs r0, 0
+ b _0807E5A0
+_0807E596:
+ ldr r0, _0807E5A4
+ ldr r0, [r0]
+ ldr r1, _0807E5A8
+ adds r0, r1
+ ldrb r0, [r0]
+_0807E5A0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807E5A4: .4byte gDungeonGlobalData
+_0807E5A8: .4byte 0x0000e264
+ thumb_func_end GetWeather
+
+ thumb_func_start sub_807E5AC
+sub_807E5AC:
+ push {lr}
+ ldr r0, _0807E5DC
+ ldr r0, [r0]
+ ldr r1, _0807E5E0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _0807E5C6
+ movs r0, 0x8
+ bl DungeonRandomCapped
+ lsls r0, 24
+ lsrs r0, 24
+_0807E5C6:
+ bl sub_807E5E4
+ bl TriggerWeatherAbilities
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_807EAA0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E5DC: .4byte gDungeonGlobalData
+_0807E5E0: .4byte 0x0001c578
+ thumb_func_end sub_807E5AC
+
+ thumb_func_start sub_807E5E4
+sub_807E5E4:
+ push {r4-r6,lr}
+ ldr r3, _0807E674
+ ldr r1, [r3]
+ ldr r2, _0807E678
+ adds r1, r2
+ movs r4, 0
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0807E67C
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r1, _0807E680
+ adds r0, r1
+ strb r4, [r0]
+ movs r2, 0
+ adds r4, r3, 0
+ ldr r6, _0807E684
+ movs r1, 0
+ ldr r5, _0807E688
+_0807E610:
+ ldr r0, [r4]
+ adds r0, r6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r5
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0807E610
+ ldr r0, [r3]
+ ldr r2, _0807E68C
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0x9
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r1, _0807E690
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r1, 0x1
+ adds r0, r1
+ strb r2, [r0]
+ movs r6, 0xBE
+ lsls r6, 1
+ ldr r5, _0807E694
+ movs r4, 0xBF
+ lsls r4, 1
+_0807E64C:
+ ldr r0, [r3]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, r1
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, r1
+ adds r0, r4
+ strb r2, [r0]
+ adds r2, 0x1
+ cmp r2, 0xFF
+ ble _0807E64C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E674: .4byte gDungeonGlobalData
+_0807E678: .4byte 0x0000e265
+_0807E67C: .4byte 0x0000e264
+_0807E680: .4byte 0x0000e279
+_0807E684: .4byte 0x0000e267
+_0807E688: .4byte 0x0000e26f
+_0807E68C: .4byte 0x0000e266
+_0807E690: .4byte 0x0000e277
+_0807E694: .4byte 0x0000017d
+ thumb_func_end sub_807E5E4
+
+ thumb_func_start sub_807E698
+sub_807E698:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ ldr r0, _0807E724
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ mov r10, r0
+ movs r0, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ bl sub_8042818
+ movs r0, 0x25
+ bl sub_803E46C
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r1, _0807E728
+ ldrb r0, [r1]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0
+ mov r9, r1
+ ldr r2, _0807E72C
+ mov r8, r2
+_0807E6EC:
+ movs r7, 0
+ movs r0, 0x25
+ bl sub_803E46C
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 2
+ mov r2, r10
+ adds r5, r0, r2
+ movs r0, 0xFF
+ mov r12, r0
+_0807E702:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ ldrb r3, [r5]
+ subs r1, r0, r3
+ cmp r1, 0
+ bge _0807E71A
+ negs r1, r1
+_0807E71A:
+ cmp r1, 0x9
+ bgt _0807E730
+ strb r3, [r4]
+ b _0807E746
+ .align 2, 0
+_0807E724: .4byte gUnknown_202ECA0
+_0807E728: .4byte gUnknown_203B40D
+_0807E72C: .4byte gDungeonGlobalData
+_0807E730:
+ movs r7, 0x1
+ adds r2, r0, 0
+ adds r1, r3, 0
+ cmp r2, r1
+ bcs _0807E73E
+ adds r0, 0xA
+ b _0807E744
+_0807E73E:
+ cmp r2, r1
+ bls _0807E746
+ subs r0, 0xA
+_0807E744:
+ strb r0, [r4]
+_0807E746:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ ldr r2, _0807E764
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ ldrb r3, [r5, 0x1]
+ subs r1, r0, r3
+ cmp r1, 0
+ bge _0807E75C
+ negs r1, r1
+_0807E75C:
+ cmp r1, 0x9
+ bgt _0807E768
+ strb r3, [r4]
+ b _0807E77E
+ .align 2, 0
+_0807E764: .4byte 0x0000017d
+_0807E768:
+ movs r7, 0x1
+ adds r2, r0, 0
+ adds r1, r3, 0
+ cmp r2, r1
+ bcs _0807E776
+ adds r0, 0xA
+ b _0807E77C
+_0807E776:
+ cmp r2, r1
+ bls _0807E77E
+ subs r0, 0xA
+_0807E77C:
+ strb r0, [r4]
+_0807E77E:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ ldrb r3, [r5, 0x2]
+ subs r1, r0, r3
+ cmp r1, 0
+ bge _0807E796
+ negs r1, r1
+_0807E796:
+ cmp r1, 0x9
+ bgt _0807E79E
+ strb r3, [r4]
+ b _0807E7B4
+_0807E79E:
+ movs r7, 0x1
+ adds r2, r0, 0
+ adds r1, r3, 0
+ cmp r2, r1
+ bcs _0807E7AC
+ adds r0, 0xA
+ b _0807E7B2
+_0807E7AC:
+ cmp r2, r1
+ bls _0807E7B4
+ subs r0, 0xA
+_0807E7B2:
+ strb r0, [r4]
+_0807E7B4:
+ adds r6, 0x4
+ adds r5, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ add r12, r0
+ mov r1, r12
+ cmp r1, 0
+ bge _0807E702
+ movs r0, 0
+ movs r1, 0
+ bl sub_803E874
+ cmp r7, 0
+ beq _0807E7DA
+ movs r2, 0x1
+ add r9, r2
+ mov r0, r9
+ cmp r0, 0x3F
+ ble _0807E6EC
+_0807E7DA:
+ ldr r0, _0807E7F8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ strb r1, [r0]
+ ldr r0, [sp]
+ bl sub_807E7FC
+ 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
+_0807E7F8: .4byte gUnknown_203B40D
+ thumb_func_end sub_807E698
+
+ thumb_func_start sub_807E7FC
+sub_807E7FC:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _0807E874
+ ldr r0, [r6]
+ ldr r1, _0807E878
+ adds r0, r1
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _0807E816
+ bl GetLeaderEntity
+ adds r5, r0, 0
+_0807E816:
+ cmp r4, 0
+ beq _0807E844
+ ldr r0, [r6]
+ ldr r2, _0807E87C
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807E844
+ ldr r4, _0807E880
+ movs r0, 0
+ bl GetWeather
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetWeatherName
+ ldr r0, _0807E884
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+_0807E844:
+ movs r5, 0
+_0807E846:
+ ldr r0, _0807E874
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0807E888
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E866
+ adds r0, r4, 0
+ bl sub_807E8F0
+_0807E866:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0807E846
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E874: .4byte gDungeonGlobalData
+_0807E878: .4byte 0x000181f8
+_0807E87C: .4byte 0x0001356c
+_0807E880: .4byte gAvailablePokemonNames
+_0807E884: .4byte gUnknown_80FC5E0
+_0807E888: .4byte 0x000135cc
+ thumb_func_end sub_807E7FC
+
+ thumb_func_start sub_807E88C
+sub_807E88C:
+ push {r4-r7,lr}
+ movs r0, 0
+ bl GetWeather
+ lsls r0, 24
+ ldr r1, _0807E8E4
+ ldr r1, [r1]
+ ldr r1, [r1, 0x4]
+ movs r4, 0
+ ldr r5, _0807E8E8
+ lsrs r0, 14
+ adds r3, r0, r1
+ movs r6, 0xBE
+ lsls r6, 1
+_0807E8A8:
+ ldr r0, [r5]
+ lsls r2, r4, 2
+ adds r0, r2
+ ldrb r1, [r3]
+ adds r0, r6
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r1, [r3, 0x1]
+ ldr r7, _0807E8EC
+ adds r0, r7
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r1, [r3, 0x2]
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r0, r2
+ strb r1, [r0]
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, 0xFF
+ ble _0807E8A8
+ movs r0, 0
+ movs r1, 0
+ bl sub_803E874
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E8E4: .4byte gUnknown_202ECA0
+_0807E8E8: .4byte gDungeonGlobalData
+_0807E8EC: .4byte 0x0000017d
+ thumb_func_end sub_807E88C
+
+ thumb_func_start sub_807E8F0
+sub_807E8F0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E90E
+ b _0807EA0A
+_0807E90E:
+ ldr r4, [r5, 0x70]
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ mov r9, r1
+ mov r1, sp
+ adds r6, r4, 0
+ adds r6, 0x5C
+ ldrb r0, [r6]
+ strb r0, [r1]
+ adds r7, r4, 0
+ adds r7, 0x5D
+ ldrb r0, [r7]
+ strb r0, [r1, 0x1]
+ adds r0, r5, 0
+ bl GetMovementSpeed
+ adds r0, r5, 0
+ movs r1, 0x25
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E958
+ adds r0, r5, 0
+ bl GetWeather
+ ldr r1, _0807E954
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r6]
+ mov r1, r8
+ strb r1, [r7]
+ b _0807E984
+ .align 2, 0
+_0807E954: .4byte gUnknown_80F520C
+_0807E958:
+ adds r0, r4, 0
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _0807E984
+ adds r0, r4, 0
+ adds r0, 0xF6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807E984
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl GetPokemonType
+ strb r0, [r6]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl GetPokemonType
+ strb r0, [r7]
+_0807E984:
+ mov r0, sp
+ adds r1, r4, 0
+ adds r1, 0x5C
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0807E9A0
+ mov r0, sp
+ adds r1, r4, 0
+ adds r1, 0x5D
+ ldrb r0, [r0, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0807E9A4
+_0807E9A0:
+ movs r0, 0x1
+ mov r8, r0
+_0807E9A4:
+ ldr r1, _0807E9D0
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bhi _0807E9FE
+ adds r0, r5, 0
+ movs r1, 0x25
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807E9D4
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8069F54
+ b _0807E9D8
+ .align 2, 0
+_0807E9D0: .4byte 0xfffffe88
+_0807E9D4:
+ movs r0, 0xBC
+ lsls r0, 1
+_0807E9D8:
+ strh r0, [r4, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, r9
+ beq _0807E9FE
+ bl sub_80687D0
+ str r0, [r5, 0x64]
+ adds r0, r5, 0
+ bl sub_806CEBC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806CCB4
+ movs r0, 0x1
+ mov r8, r0
+_0807E9FE:
+ mov r1, r8
+ cmp r1, 0
+ beq _0807EA0A
+ adds r0, r5, 0
+ bl sub_80429D8
+_0807EA0A:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E8F0
+
+ thumb_func_start GetWeatherName
+GetWeatherName:
+ push {lr}
+ lsls r1, 24
+ ldr r2, _0807EA2C
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl strcpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EA2C: .4byte gWeatherNames
+ thumb_func_end GetWeatherName
+
+ thumb_func_start sub_807EA30
+sub_807EA30:
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807EA6C
+ ldr r1, _0807EA5C
+ movs r0, 0
+ movs r2, 0
+ bl sub_808417C
+ ldr r1, _0807EA60
+ ldr r1, [r1]
+ ldr r2, _0807EA64
+ adds r1, r2
+ strb r0, [r1]
+ bl GetLeaderEntity
+ ldr r1, _0807EA68
+ ldr r1, [r1]
+ bl SendMessage
+ b _0807EA8C
+ .align 2, 0
+_0807EA5C: .4byte gUnknown_80F4EAC
+_0807EA60: .4byte gDungeonGlobalData
+_0807EA64: .4byte 0x0000e277
+_0807EA68: .4byte gUnknown_80FAD8C
+_0807EA6C:
+ ldr r1, _0807EA90
+ movs r0, 0
+ movs r2, 0
+ bl sub_808417C
+ ldr r1, _0807EA94
+ ldr r1, [r1]
+ ldr r2, _0807EA98
+ adds r1, r2
+ strb r0, [r1]
+ bl GetLeaderEntity
+ ldr r1, _0807EA9C
+ ldr r1, [r1]
+ bl SendMessage
+_0807EA8C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EA90: .4byte gUnknown_80F4EAC
+_0807EA94: .4byte gDungeonGlobalData
+_0807EA98: .4byte 0x0000e278
+_0807EA9C: .4byte gUnknown_80FADB0
+ thumb_func_end sub_807EA30
+
+ thumb_func_start sub_807EAA0
+sub_807EAA0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0x1
+ negs r1, r1
+ mov r9, r1
+ movs r2, 0
+ str r2, [sp, 0x8]
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r5, 0
+ ldr r7, _0807EAF0
+ ldr r6, _0807EAF4
+_0807EAD6:
+ ldr r3, [r7]
+ adds r0, r3, r6
+ adds r4, r0, r5
+ ldr r1, _0807EAF8
+ adds r0, r3, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ adds r1, r0, 0
+ cmp r2, r1
+ bcs _0807EAFC
+ strb r0, [r4]
+ b _0807EB08
+ .align 2, 0
+_0807EAF0: .4byte gDungeonGlobalData
+_0807EAF4: .4byte 0x0000e267
+_0807EAF8: .4byte 0x0000e26f
+_0807EAFC:
+ cmp r2, r1
+ bls _0807EB08
+ adds r0, r5, r6
+ adds r0, r3, r0
+ bl sub_80838EC
+_0807EB08:
+ ldr r0, [r7]
+ ldr r2, _0807EB38
+ adds r0, r2
+ adds r0, r5
+ ldrb r1, [r0]
+ ldr r0, _0807EB3C
+ cmp r8, r1
+ bge _0807EB1C
+ mov r8, r1
+ mov r9, r5
+_0807EB1C:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0807EAD6
+ mov r1, r9
+ cmp r1, 0
+ bge _0807EB44
+ ldr r0, [r0]
+ ldr r2, _0807EB40
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ b _0807EB4E
+ .align 2, 0
+_0807EB38: .4byte 0x0000e267
+_0807EB3C: .4byte gDungeonGlobalData
+_0807EB40: .4byte 0x0000e265
+_0807EB44:
+ ldr r0, [r0]
+ ldr r1, _0807EB94
+ adds r0, r1
+ mov r2, r9
+ strb r2, [r0]
+_0807EB4E:
+ ldr r0, _0807EB98
+ ldr r1, [r0]
+ ldr r2, _0807EB9C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807EB64
+ ldr r0, _0807EB94
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+_0807EB64:
+ movs r0, 0
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r10, r0
+ bne _0807EB78
+ ldr r1, [sp, 0x4]
+ cmp r1, 0
+ beq _0807EB82
+_0807EB78:
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ ldr r0, [sp]
+ bl sub_807E698
+_0807EB82:
+ ldr r0, _0807EB98
+ ldr r0, [r0]
+ ldr r2, _0807EBA0
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807EBA4
+ subs r0, 0x1
+ b _0807EBA6
+ .align 2, 0
+_0807EB94: .4byte 0x0000e264
+_0807EB98: .4byte gDungeonGlobalData
+_0807EB9C: .4byte 0x0000e279
+_0807EBA0: .4byte 0x0000e266
+_0807EBA4:
+ movs r0, 0x9
+_0807EBA6:
+ strb r0, [r1]
+ ldr r4, _0807EC14
+ ldr r0, [r4]
+ ldr r2, _0807EC18
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807EBD4
+ adds r0, r1, 0
+ bl sub_80838EC
+ ldr r0, [r4]
+ ldr r1, _0807EC18
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807EBD4
+ bl GetLeaderEntity
+ ldr r1, _0807EC1C
+ ldr r1, [r1]
+ bl SendMessage
+_0807EBD4:
+ ldr r4, _0807EC14
+ ldr r0, [r4]
+ ldr r2, _0807EC20
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807EC00
+ adds r0, r1, 0
+ bl sub_80838EC
+ ldr r0, [r4]
+ ldr r1, _0807EC20
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807EC00
+ bl GetLeaderEntity
+ ldr r1, _0807EC24
+ ldr r1, [r1]
+ bl SendMessage
+_0807EC00:
+ ldr r0, [sp, 0x8]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807EC14: .4byte gDungeonGlobalData
+_0807EC18: .4byte 0x0000e277
+_0807EC1C: .4byte gUnknown_80FA778
+_0807EC20: .4byte 0x0000e278
+_0807EC24: .4byte gUnknown_80FA758
+ thumb_func_end sub_807EAA0
+
+ thumb_func_start sub_807EC28
+sub_807EC28:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807EC46
+ b _0807EF32
+_0807EC46:
+ bl GetLeaderEntity
+ adds r7, r0, 0
+ ldr r0, [r7, 0x70]
+ mov r9, r0
+ ldr r4, _0807ECB4
+ ldr r0, [r4]
+ movs r5, 0xD3
+ lsls r5, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ bl GetMapEntityForDungeonEntity
+ ldrh r0, [r0]
+ lsrs r0, 5
+ mov r10, r0
+ movs r0, 0x1
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ ldr r0, [r4]
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r3, _0807ECB8
+ adds r0, r3
+ mov r2, r10
+ strb r2, [r0]
+ ldr r2, [r4]
+ ldr r6, _0807ECBC
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0807EC90
+ b _0807EF32
+_0807EC90:
+ adds r6, 0x26
+ adds r0, r2, r6
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0807EC9C
+ b _0807EF32
+_0807EC9C:
+ mov r0, r9
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807ECC0
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r3
+ strb r1, [r0]
+ b _0807EF32
+ .align 2, 0
+_0807ECB4: .4byte gDungeonGlobalData
+_0807ECB8: .4byte 0x00000699
+_0807ECBC: .4byte 0x0000066e
+_0807ECC0:
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r6, 0
+_0807ECC6:
+ ldr r0, _0807ED48
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0807ED4C
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807ED0E
+ ldr r0, [r5, 0x70]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _0807ED0E
+ adds r0, r5, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807ED0E
+ adds r0, r7, 0
+ bl GetEntityRoomIndex
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl GetEntityRoomIndex
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0807ED0E
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+_0807ED0E:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0807ECC6
+ ldr r1, _0807ED50
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xBE
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0807ED54
+ ands r0, r1
+ str r0, [sp]
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bne _0807ED5C
+ mov r2, r10
+ cmp r2, 0x1
+ bne _0807ED64
+ ldr r6, [sp, 0xC]
+ cmp r6, 0
+ bne _0807ED3A
+ b _0807EF32
+_0807ED3A:
+ ldr r0, _0807ED58
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _0807EF32
+ .align 2, 0
+_0807ED48: .4byte gDungeonGlobalData
+_0807ED4C: .4byte 0x0001358c
+_0807ED50: .4byte 0xffff0000
+_0807ED54: .4byte 0xff00ffff
+_0807ED58: .4byte gUnknown_80FE674
+_0807ED5C:
+ mov r0, r10
+ cmp r0, 0x1
+ bne _0807ED64
+ b _0807EF32
+_0807ED64:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0x1
+ bne _0807ED70
+ mov r2, r10
+ cmp r2, 0
+ beq _0807ED78
+_0807ED70:
+ mov r6, r8
+ cmp r6, 0
+ bne _0807ED78
+ b _0807EF32
+_0807ED78:
+ movs r0, 0
+ str r0, [sp, 0x10]
+ movs r1, 0
+ str r1, [sp, 0x14]
+ bl sub_807EF48
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807ED8C
+ b _0807EECC
+_0807ED8C:
+ movs r2, 0x1
+ str r2, [sp, 0x14]
+ movs r6, 0
+_0807ED92:
+ ldr r0, _0807EE90
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0807EE94
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807EDAE
+ b _0807EEC4
+_0807EDAE:
+ ldr r0, [r5, 0x70]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ beq _0807EDB8
+ b _0807EEC4
+_0807EDB8:
+ adds r0, r5, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807EDC6
+ b _0807EEC4
+_0807EDC6:
+ adds r0, r7, 0
+ bl GetEntityRoomIndex
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl GetEntityRoomIndex
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0807EEC4
+ movs r6, 0x1
+ str r6, [sp, 0x10]
+ movs r0, 0x4
+ ldrsh r1, [r7, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807EDF0
+ negs r1, r1
+_0807EDF0:
+ cmp r1, 0x1
+ bgt _0807EE10
+ movs r6, 0x6
+ ldrsh r1, [r7, r6]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ subs r1, r0
+ cmp r1, 0
+ bge _0807EE04
+ negs r1, r1
+_0807EE04:
+ adds r6, r7, 0x4
+ mov r9, r6
+ adds r0, r5, 0x4
+ mov r8, r0
+ cmp r1, 0x1
+ ble _0807EE72
+_0807EE10:
+ movs r3, 0x1
+ negs r3, r3
+ add r6, sp, 0x4
+ adds r1, r7, 0x4
+ mov r9, r1
+ adds r2, r5, 0x4
+ mov r8, r2
+_0807EE1E:
+ movs r4, 0x1
+ negs r4, r4
+_0807EE22:
+ ldrh r0, [r7, 0x4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0807EE98
+ ldr r2, [sp, 0x4]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldrh r0, [r7, 0x6]
+ adds r0, r4
+ lsls r0, 16
+ ldr r1, _0807EE9C
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ movs r2, 0
+ ldrsh r0, [r6, r2]
+ asrs r1, 16
+ str r3, [sp, 0x18]
+ bl GetMapTileAtPosition
+ ldrb r0, [r0, 0x9]
+ ldr r3, [sp, 0x18]
+ cmp r0, 0xFF
+ beq _0807EE66
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80703A0
+ lsls r0, 24
+ ldr r3, [sp, 0x18]
+ cmp r0, 0
+ beq _0807EEA0
+_0807EE66:
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0807EE22
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _0807EE1E
+_0807EE72:
+ adds r0, r7, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807EEAE
+ mov r0, r9
+ mov r1, r8
+ bl CalculateFacingDir
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl sub_806CE34
+ b _0807EEB2
+ .align 2, 0
+_0807EE90: .4byte gDungeonGlobalData
+_0807EE94: .4byte 0x0001358c
+_0807EE98: .4byte 0xffff0000
+_0807EE9C: .4byte 0x0000ffff
+_0807EEA0:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ adds r3, r6, 0
+ bl sub_807D148
+ b _0807EE72
+_0807EEAE:
+ movs r6, 0
+ str r6, [sp, 0x10]
+_0807EEB2:
+ mov r0, r8
+ mov r1, r9
+ bl CalculateFacingDir
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_806CE68
+ b _0807EECC
+_0807EEC4:
+ adds r6, 0x1
+ cmp r6, 0xF
+ bgt _0807EECC
+ b _0807ED92
+_0807EECC:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ beq _0807EF04
+ ldr r1, [sp, 0x10]
+ cmp r1, 0
+ beq _0807EEDE
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _0807EF04
+_0807EEDE:
+ ldr r0, _0807EEF8
+ ldr r0, [r0]
+ ldr r2, _0807EEFC
+ adds r1, r0, r2
+ ldr r6, _0807EF00
+ adds r0, r6
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _0807EF32
+_0807EEF2:
+ bl sub_807F33C
+ b _0807EF32
+ .align 2, 0
+_0807EEF8: .4byte gDungeonGlobalData
+_0807EEFC: .4byte 0x00000694
+_0807EF00: .4byte 0x0000068c
+_0807EF04:
+ ldr r0, [sp, 0x10]
+ bl sub_807EFFC
+ ldr r0, [sp, 0x10]
+ bl sub_807F19C
+ cmp r0, 0
+ bne _0807EEF2
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x1
+ bne _0807EF32
+ mov r1, r10
+ cmp r1, 0
+ bne _0807EF32
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0807EF32
+ ldr r0, _0807EF44
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+_0807EF32:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EF44: .4byte gUnknown_80FE65C
+ thumb_func_end sub_807EC28
+
+ thumb_func_start sub_807EF48
+sub_807EF48:
+ push {lr}
+ ldr r0, _0807EF70
+ ldr r2, [r0]
+ ldr r1, _0807EF74
+ adds r0, r2, r1
+ ldr r3, _0807EF78
+ adds r1, r2, r3
+ ldr r0, [r0]
+ ldr r1, [r1]
+ subs r0, r1
+ cmp r0, 0
+ bgt _0807EF7C
+ movs r1, 0xD2
+ lsls r1, 3
+ adds r0, r2, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0807EF7C
+ movs r0, 0
+ b _0807EF7E
+ .align 2, 0
+_0807EF70: .4byte gDungeonGlobalData
+_0807EF74: .4byte 0x00000694
+_0807EF78: .4byte 0x0000068c
+_0807EF7C:
+ movs r0, 0x1
+_0807EF7E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807EF48
+
+ thumb_func_start sub_807EF84
+sub_807EF84:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0807EFD0
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xBE
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0807EFD4
+ ands r0, r1
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_807EFFC
+ movs r0, 0x1
+ bl sub_807F19C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0807EFE2
+ bl GetLeaderEntity
+ bl GetMapEntityForDungeonEntity
+ ldrh r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0807EFDC
+ cmp r4, 0x2
+ beq _0807EFEE
+ ldr r0, _0807EFD8
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _0807EFEE
+ .align 2, 0
+_0807EFD0: .4byte 0xffff0000
+_0807EFD4: .4byte 0xff00ffff
+_0807EFD8: .4byte gUnknown_80FE63C
+_0807EFDC:
+ bl sub_807F33C
+ b _0807EFEE
+_0807EFE2:
+ ldr r0, _0807EFF8
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+_0807EFEE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EFF8: .4byte gUnknown_80FE5F0
+ thumb_func_end sub_807EF84
+
+ thumb_func_start sub_807EFFC
+sub_807EFFC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r4, _0807F168
+ ldr r0, [r4]
+ movs r5, 0xD2
+ lsls r5, 3
+ adds r2, r0, r5
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _0807F01E
+ b _0807F158
+_0807F01E:
+ ldr r1, _0807F16C
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xBE
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0807F170
+ ands r0, r1
+ str r0, [sp]
+ cmp r3, 0
+ bne _0807F036
+ b _0807F158
+_0807F036:
+ ldr r1, _0807F174
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, _0807F178
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ beq _0807F04E
+ b _0807F158
+_0807F04E:
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySoundEffect
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r0, [r0]
+ bl AddToTeamMoney
+ ldr r0, [r4]
+ ldr r2, _0807F17C
+ adds r1, r0, r2
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ ldr r2, _0807F180
+ adds r1, r0, r2
+ ldr r6, [r1]
+ ldr r1, _0807F184
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r6, r0
+ bgt _0807F134
+ mov r8, r4
+_0807F07C:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r2, _0807F188
+ adds r1, r0, r2
+ ldr r5, [r1]
+ ldr r1, _0807F18C
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, r6, 0x1
+ mov r10, r2
+ cmp r5, r0
+ bgt _0807F124
+ lsls r0, r6, 16
+ lsrs r0, 16
+ mov r9, r0
+_0807F09A:
+ lsls r0, r5, 16
+ mov r1, r9
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0807F114
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807F114
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _0807F114
+ ldr r0, [r4, 0x14]
+ bl GetItemData
+ adds r2, r0, 0
+ ldrb r1, [r2]
+ movs r7, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0807F114
+ ldr r0, [r2]
+ str r0, [sp, 0x8]
+ add r4, sp, 0x4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, [sp, 0x8]
+ lsrs r0, 16
+ lsls r0, 24
+ lsrs r0, 24
+ bl CanSellItem
+ lsls r0, 24
+ add r3, sp, 0x8
+ cmp r0, 0
+ beq _0807F10A
+ ldrb r0, [r3]
+ adds r2, r7, 0
+ orrs r2, r0
+ ldr r1, _0807F190
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x8]
+_0807F10A:
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0x1
+ bl sub_80460F8
+_0807F114:
+ adds r5, 0x1
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r1, _0807F18C
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r5, r0
+ ble _0807F09A
+_0807F124:
+ mov r6, r10
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r1, _0807F184
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r6, r0
+ ble _0807F07C
+_0807F134:
+ ldr r0, _0807F168
+ ldr r0, [r0]
+ ldr r1, _0807F194
+ adds r2, r0, r1
+ subs r1, 0x8
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [sp, 0xC]
+ subs r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, _0807F198
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+_0807F158:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F168: .4byte gDungeonGlobalData
+_0807F16C: .4byte 0xffff0000
+_0807F170: .4byte 0xff00ffff
+_0807F174: .4byte gUnknown_202DE30
+_0807F178: .4byte gUnknown_80FE5C0
+_0807F17C: .4byte 0x0000068c
+_0807F180: .4byte 0x0000e240
+_0807F184: .4byte 0x0000e248
+_0807F188: .4byte 0x0000e244
+_0807F18C: .4byte 0x0000e24c
+_0807F190: .4byte 0xffffff00
+_0807F194: .4byte 0x00000694
+_0807F198: .4byte gUnknown_80FE4F4
+ thumb_func_end sub_807EFFC
+
+ thumb_func_start sub_807F19C
+sub_807F19C:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0807F1EC
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xBE
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0807F1F0
+ ands r0, r1
+ str r0, [sp]
+ ldr r0, _0807F1F4
+ ldr r0, [r0]
+ ldr r3, _0807F1F8
+ adds r1, r0, r3
+ subs r3, 0x8
+ adds r0, r3
+ ldr r1, [r1]
+ ldr r0, [r0]
+ subs r4, r1, r0
+ cmp r4, 0
+ bgt _0807F1CE
+ b _0807F31A
+_0807F1CE:
+ cmp r2, 0
+ beq _0807F1E6
+ ldr r0, _0807F1FC
+ str r4, [r0]
+ ldr r0, _0807F200
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ beq _0807F204
+_0807F1E6:
+ movs r0, 0x1
+ b _0807F31C
+ .align 2, 0
+_0807F1EC: .4byte 0xffff0000
+_0807F1F0: .4byte 0xff00ffff
+_0807F1F4: .4byte gDungeonGlobalData
+_0807F1F8: .4byte 0x00000694
+_0807F1FC: .4byte gUnknown_202DE30
+_0807F200: .4byte gUnknown_80FE568
+_0807F204:
+ ldr r0, _0807F224
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, r4
+ bge _0807F22C
+ ldr r0, _0807F228
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0x2
+ b _0807F31C
+ .align 2, 0
+_0807F224: .4byte gTeamInventory_203B460
+_0807F228: .4byte gUnknown_80FE520
+_0807F22C:
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySoundEffect
+ negs r0, r4
+ bl AddToTeamMoney
+ movs r6, 0
+_0807F23C:
+ movs r5, 0
+ adds r7, r6, 0x1
+_0807F240:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0807F27E
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807F27E
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _0807F27E
+ ldr r0, [r4, 0x14]
+ bl GetItemData
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl CanSellItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F27E
+ ldrb r1, [r4]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r4]
+_0807F27E:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0807F240
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _0807F23C
+ movs r5, 0
+_0807F28C:
+ ldr r0, _0807F324
+ lsls r1, r5, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807F2B2
+ ldrb r0, [r4, 0x2]
+ bl CanSellItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F2B2
+ ldrb r1, [r4]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r4]
+_0807F2B2:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0807F28C
+ movs r5, 0
+_0807F2BA:
+ ldr r0, _0807F328
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0807F32C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F2F8
+ ldr r0, [r4, 0x70]
+ adds r4, r0, 0
+ adds r4, 0x60
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807F2F8
+ ldrb r0, [r4, 0x2]
+ bl CanSellItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F2F8
+ ldrb r1, [r4]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r4]
+_0807F2F8:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0807F2BA
+ ldr r0, _0807F328
+ ldr r0, [r0]
+ ldr r3, _0807F330
+ adds r1, r0, r3
+ ldr r2, _0807F334
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _0807F338
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+_0807F31A:
+ movs r0, 0
+_0807F31C:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807F324: .4byte gTeamInventory_203B460
+_0807F328: .4byte gDungeonGlobalData
+_0807F32C: .4byte 0x000135cc
+_0807F330: .4byte 0x00000694
+_0807F334: .4byte 0x0000068c
+_0807F338: .4byte gUnknown_80FE4D4
+ thumb_func_end sub_807F19C
+
+ thumb_func_start sub_807F33C
+sub_807F33C:
+ push {r4-r7,lr}
+ ldr r2, _0807F41C
+ ldr r0, [r2]
+ ldr r1, _0807F420
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, _0807F424
+ adds r0, r2
+ strb r1, [r0]
+ bl GetLeaderEntity
+ ldr r1, _0807F428
+ ldr r1, [r1]
+ bl SendMessage
+ movs r6, 0
+_0807F360:
+ movs r5, 0
+ adds r7, r6, 0x1
+_0807F364:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807F38A
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _0807F38A
+ ldr r0, [r4, 0x14]
+ bl GetItemData
+ ldrb r2, [r0]
+ movs r1, 0xFD
+ ands r1, r2
+ strb r1, [r0]
+_0807F38A:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0807F364
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _0807F360
+ movs r6, 0
+ ldr r4, _0807F42C
+ movs r5, 0x1
+ movs r3, 0xFD
+_0807F39E:
+ lsls r1, r6, 2
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0807F3B4
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+_0807F3B4:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _0807F39E
+ movs r6, 0
+_0807F3BC:
+ ldr r0, _0807F41C
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r3, _0807F430
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F3F4
+ ldr r4, [r5, 0x70]
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl GetMovementSpeed
+ adds r4, 0x60
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807F3F4
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r4]
+_0807F3F4:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _0807F3BC
+ ldr r0, _0807F41C
+ ldr r1, [r0]
+ ldr r2, _0807F434
+ adds r0, r1, r2
+ movs r2, 0
+ str r2, [r0]
+ ldr r3, _0807F438
+ adds r0, r1, r3
+ str r2, [r0]
+ movs r0, 0xD2
+ lsls r0, 3
+ adds r1, r0
+ str r2, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F41C: .4byte gDungeonGlobalData
+_0807F420: .4byte 0x0000066e
+_0807F424: .4byte 0x0000066f
+_0807F428: .4byte gUnknown_80FE4B8
+_0807F42C: .4byte gTeamInventory_203B460
+_0807F430: .4byte 0x000135cc
+_0807F434: .4byte 0x00000694
+_0807F438: .4byte 0x0000068c
+ thumb_func_end sub_807F33C
+
+ thumb_func_start sub_807F43C
+sub_807F43C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10C
+ str r0, [sp, 0xEC]
+ mov r8, r1
+ mov r0, r8
+ movs r1, 0xE
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F470
+ ldr r0, _0807F468
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807F46C
+ b _0807F694
+ .align 2, 0
+_0807F468: .4byte gAvailablePokemonNames
+_0807F46C: .4byte gUnknown_80FCB40
+_0807F470:
+ ldr r0, [sp, 0xEC]
+ cmp r0, r8
+ bne _0807F490
+ ldr r0, _0807F488
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807F48C
+ ldr r2, [r0]
+ mov r0, r8
+ b _0807F698
+ .align 2, 0
+_0807F488: .4byte gAvailablePokemonNames
+_0807F48C: .4byte gUnknown_80FCB70
+_0807F490:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ add r1, sp, 0xD4
+ str r0, [r1]
+ movs r2, 0
+ str r2, [sp, 0xF0]
+_0807F49C:
+ movs r3, 0
+ mov r9, r3
+ movs r7, 0
+ mov r4, sp
+ adds r4, 0x18
+ str r4, [sp, 0x108]
+_0807F4A8:
+ ldr r0, _0807F504
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _0807F508
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ adds r3, r7, 0x1
+ str r3, [sp, 0x104]
+ cmp r0, 0
+ bne _0807F4C8
+ b _0807F602
+_0807F4C8:
+ ldr r0, [sp, 0xEC]
+ cmp r0, r4
+ bne _0807F4D0
+ b _0807F602
+_0807F4D0:
+ cmp r8, r4
+ bne _0807F4D6
+ b _0807F602
+_0807F4D6:
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807F4E4
+ b _0807F602
+_0807F4E4:
+ ldr r1, [sp, 0xF0]
+ cmp r1, 0
+ bne _0807F50C
+ ldr r0, [sp, 0xEC]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CanTarget
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0807F500
+ b _0807F602
+_0807F500:
+ b _0807F51E
+ .align 2, 0
+_0807F504: .4byte gDungeonGlobalData
+_0807F508: .4byte 0x000135cc
+_0807F50C:
+ ldr r0, [sp, 0xEC]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CanTarget
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807F602
+_0807F51E:
+ ldr r2, [sp, 0xF0]
+ cmp r2, 0
+ bne _0807F594
+ movs r5, 0
+ add r6, sp, 0xC8
+ adds r3, r7, 0x1
+ str r3, [sp, 0x104]
+ adds r7, r6, 0
+ ldr r0, _0807F588
+ mov r10, r0
+_0807F532:
+ ldr r0, _0807F58C
+ lsls r3, r5, 2
+ adds r3, r0
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r3]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [r6]
+ mov r2, r10
+ ands r1, r2
+ orrs r1, r0
+ str r1, [r7]
+ ldrh r2, [r4, 0x6]
+ ldrh r3, [r3, 0x2]
+ adds r2, r3
+ lsls r2, 16
+ ldr r0, _0807F590
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r7]
+ mov r0, r8
+ add r1, sp, 0xC8
+ bl sub_80703A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F570
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0807F532
+_0807F570:
+ cmp r5, 0x8
+ beq _0807F602
+ mov r3, r9
+ cmp r3, 0x27
+ bgt _0807F602
+ ldr r0, [r4, 0x4]
+ ldr r4, [sp, 0x108]
+ stm r4!, {r0}
+ str r4, [sp, 0x108]
+ movs r0, 0x1
+ add r9, r0
+ b _0807F602
+ .align 2, 0
+_0807F588: .4byte 0xffff0000
+_0807F58C: .4byte gAdjacentTileOffsets
+_0807F590: .4byte 0x0000ffff
+_0807F594:
+ movs r5, 0
+ add r6, sp, 0xCC
+ adds r1, r7, 0x1
+ str r1, [sp, 0x104]
+ adds r7, r6, 0
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, sp
+ adds r0, 0x18
+ mov r10, r0
+_0807F5A8:
+ ldr r0, _0807F630
+ lsls r3, r5, 2
+ adds r3, r0
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r3]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0807F634
+ ldr r1, [r6]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [r7]
+ ldrh r2, [r4, 0x6]
+ ldrh r3, [r3, 0x2]
+ adds r2, r3
+ lsls r2, 16
+ ldr r0, _0807F638
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r7]
+ mov r0, r8
+ add r1, sp, 0xCC
+ bl sub_80703A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807F5FC
+ mov r2, r9
+ cmp r2, 0x27
+ bgt _0807F5FC
+ ldr r0, [r6]
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r0}
+ ldr r0, [sp, 0x108]
+ adds r0, 0x4
+ str r0, [sp, 0x108]
+ movs r1, 0x1
+ add r9, r1
+_0807F5FC:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0807F5A8
+_0807F602:
+ ldr r7, [sp, 0x104]
+ cmp r7, 0x13
+ bgt _0807F60A
+ b _0807F4A8
+_0807F60A:
+ mov r2, r9
+ cmp r2, 0
+ bne _0807F63C
+ ldr r3, [sp, 0xF0]
+ adds r3, 0x1
+ str r3, [sp, 0xF0]
+ cmp r3, 0x1
+ bgt _0807F61C
+ b _0807F49C
+_0807F61C:
+ ldr r0, [sp, 0xEC]
+ adds r0, 0x4
+ add r4, sp, 0xB8
+ adds r1, r4, 0
+ bl sub_80833E8
+ movs r7, 0
+ add r5, sp, 0xD0
+ adds r6, r5, 0
+ b _0807F654
+ .align 2, 0
+_0807F630: .4byte gAdjacentTileOffsets
+_0807F634: .4byte 0xffff0000
+_0807F638: .4byte 0x0000ffff
+_0807F63C:
+ mov r0, r9
+ bl DungeonRandomCapped
+ lsls r0, 2
+ add r0, sp
+ adds r0, 0x18
+ ldr r0, [r0]
+ str r0, [sp, 0xD4]
+ b _0807F6A8
+_0807F64E:
+ ldr r0, [r5]
+ str r0, [sp, 0xD4]
+ b _0807F68E
+_0807F654:
+ ldr r0, [r4]
+ ldr r1, [r4, 0x8]
+ bl sub_808411C
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0807F6A0
+ ldr r1, [r5]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [r6]
+ ldr r0, [r4, 0x4]
+ ldr r1, [r4, 0xC]
+ bl sub_808411C
+ lsls r0, 16
+ ldrh r1, [r6]
+ orrs r1, r0
+ str r1, [r6]
+ mov r0, r8
+ add r1, sp, 0xD0
+ bl sub_80703A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F64E
+ adds r7, 0x1
+ cmp r7, 0x63
+ ble _0807F654
+_0807F68E:
+ cmp r7, 0x64
+ bne _0807F6A8
+ ldr r0, _0807F6A4
+_0807F694:
+ ldr r2, [r0]
+ ldr r0, [sp, 0xEC]
+_0807F698:
+ mov r1, r8
+ bl sub_80522F4
+ b _0807F99C
+ .align 2, 0
+_0807F6A0: .4byte 0xffff0000
+_0807F6A4: .4byte gUnknown_80FE6B4
+_0807F6A8:
+ ldr r0, _0807F860
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807F864
+ ldr r2, [r0]
+ ldr r0, [sp, 0xEC]
+ mov r1, r8
+ bl sub_80522F4
+ mov r0, r8
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F6D0
+ ldr r0, _0807F868
+ bl PlaySoundEffect
+_0807F6D0:
+ movs r4, 0
+ str r4, [sp, 0x100]
+ mov r1, r8
+ ldr r0, [r1, 0x70]
+ adds r0, 0x46
+ ldrb r0, [r0]
+ mov r9, r0
+ add r2, sp, 0xD4
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ mov r4, r8
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ subs r3, r1, r0
+ movs r4, 0x2
+ ldrsh r1, [r2, r4]
+ mov r2, r8
+ movs r4, 0x6
+ ldrsh r0, [r2, r4]
+ subs r1, r0
+ cmp r1, r3
+ bge _0807F6FE
+ adds r1, r3, 0
+_0807F6FE:
+ lsls r6, r1, 4
+ cmp r6, 0x50
+ ble _0807F706
+ movs r6, 0x50
+_0807F706:
+ cmp r6, 0x9
+ bgt _0807F70C
+ movs r6, 0xA
+_0807F70C:
+ mov r1, r8
+ adds r1, 0x4
+ add r0, sp, 0xD4
+ bl CalculateFacingDir
+ adds r5, r0, 0
+ add r2, sp, 0xD4
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 11
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r4, r3
+ ldr r0, _0807F86C
+ lsls r5, 2
+ adds r5, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r1, 0x3
+ bl __divsi3
+ adds r4, r0
+ str r4, [sp, 0xF4]
+ movs r3, 0xD6
+ add r3, sp
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 11
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r1, 0x3
+ bl __divsi3
+ adds r4, r0
+ str r4, [sp, 0xF8]
+ mov r2, r8
+ ldr r5, [r2, 0xC]
+ ldr r3, [sp, 0xF4]
+ subs r0, r3, r5
+ adds r1, r6, 0
+ bl __divsi3
+ str r0, [sp, 0xFC]
+ mov r0, r8
+ ldr r4, [r0, 0x10]
+ ldr r1, [sp, 0xF8]
+ subs r0, r1, r4
+ adds r1, r6, 0
+ bl __divsi3
+ mov r10, r0
+ add r0, sp, 0xD8
+ str r5, [r0]
+ str r4, [r0, 0x4]
+ movs r7, 0
+ adds r5, r0, 0
+ cmp r7, r6
+ bge _0807F7FC
+ adds r4, r5, 0
+_0807F794:
+ ldr r0, [r5]
+ ldr r2, [sp, 0xFC]
+ adds r0, r2, r0
+ str r0, [r4]
+ ldr r0, [r4, 0x4]
+ add r0, r10
+ str r0, [r4, 0x4]
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_804535C
+ mov r0, r8
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F7E6
+ ldr r0, [sp, 0x100]
+ bl sub_8009C7C
+ lsls r0, 5
+ mov r3, r8
+ str r0, [r3, 0x1C]
+ movs r0, 0x3B
+ bl sub_803E46C
+ movs r0, 0x3
+ ands r0, r7
+ cmp r0, 0
+ bne _0807F7E6
+ movs r0, 0x7
+ mov r1, r9
+ ands r1, r0
+ mov r9, r1
+ mov r0, r8
+ movs r1, 0x6
+ mov r2, r9
+ bl sub_806CDD4
+ movs r2, 0x1
+ add r9, r2
+_0807F7E6:
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ ldr r3, [sp, 0x100]
+ adds r3, r0
+ str r3, [sp, 0x100]
+ adds r7, 0x1
+ cmp r7, r6
+ blt _0807F794
+_0807F7FC:
+ ldr r4, [sp, 0xF4]
+ str r4, [r5]
+ add r1, sp, 0xD8
+ ldr r0, [sp, 0xF8]
+ str r0, [r1, 0x4]
+ movs r0, 0
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ mov r0, r8
+ bl sub_804535C
+ movs r0, 0x3B
+ bl sub_803E46C
+ mov r3, r8
+ ldr r0, [r3, 0x70]
+ movs r1, 0x7
+ mov r4, r9
+ ands r4, r1
+ adds r0, 0x46
+ strb r4, [r0]
+ add r2, sp, 0xD4
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ adds r4, r2, 0
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ bl GetMapTileAtPosition
+ ldr r6, [r0, 0x10]
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807F876
+ add r2, sp, 0xD4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ movs r3, 0x2
+ ldrsh r2, [r4, r3]
+ mov r0, r8
+ movs r3, 0x1
+ bl sub_80694C0
+ mov r0, r8
+ bl sub_807F9BC
+ b _0807F99C
+ .align 2, 0
+_0807F860: .4byte gAvailablePokemonNames
+_0807F864: .4byte gUnknown_80FE690
+_0807F868: .4byte 0x000001a3
+_0807F86C: .4byte gAdjacentTileOffsets
+_0807F870:
+ ldr r0, [r7]
+ str r0, [sp, 0xD4]
+ b _0807F8BE
+_0807F876:
+ movs r5, 0
+ add r4, sp, 0xE0
+ adds r7, r4, 0
+_0807F87C:
+ ldr r0, _0807F8D0
+ lsls r3, r5, 2
+ adds r3, r0
+ add r1, sp, 0xD4
+ ldrh r0, [r1]
+ ldrh r2, [r3]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0807F8D4
+ ldr r1, [r7]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [r4]
+ add r0, sp, 0xD4
+ ldrh r2, [r0, 0x2]
+ ldrh r3, [r3, 0x2]
+ adds r2, r3
+ lsls r2, 16
+ ldr r0, _0807F8D8
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r4]
+ mov r0, r8
+ add r1, sp, 0xE0
+ bl sub_80703A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F870
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0807F87C
+_0807F8BE:
+ cmp r5, 0x8
+ bne _0807F8DC
+ ldr r0, [sp, 0xEC]
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+ b _0807F8FA
+ .align 2, 0
+_0807F8D0: .4byte gAdjacentTileOffsets
+_0807F8D4: .4byte 0xffff0000
+_0807F8D8: .4byte 0x0000ffff
+_0807F8DC:
+ mov r0, r8
+ add r1, sp, 0xD4
+ bl sub_807D068
+ add r0, sp, 0xD4
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r0, 0xD6
+ add r0, sp
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ mov r0, r8
+ movs r3, 0x1
+ bl sub_80694C0
+_0807F8FA:
+ adds r0, r6, 0
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _0807F954
+ add r4, sp, 0xE4
+ ldr r1, _0807F9AC
+ adds r0, r4, 0
+ bl InitPokemonMove
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80571F0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0807F93C
+ ldr r0, _0807F9B0
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _0807F9B4
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0xEC]
+ adds r1, r6, 0
+ movs r3, 0
+ bl sub_806F370
+_0807F93C:
+ adds r0, r6, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F954
+ ldr r0, [r6, 0x70]
+ adds r0, 0x46
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_806CE68
+_0807F954:
+ ldr r0, _0807F9B0
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _0807F9B8
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0xEC]
+ mov r1, r8
+ movs r3, 0
+ bl sub_806F370
+ mov r0, r8
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F98E
+ mov r1, r8
+ ldr r0, [r1, 0x70]
+ adds r0, 0x46
+ ldrb r1, [r0]
+ mov r0, r8
+ bl sub_806CE68
+_0807F98E:
+ movs r0, 0x1E
+ movs r1, 0x3B
+ bl sub_803E708
+ mov r0, r8
+ bl sub_807F9BC
+_0807F99C:
+ add sp, 0x10C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F9AC: .4byte 0x00000163
+_0807F9B0: .4byte gUnknown_80F4F92
+_0807F9B4: .4byte 0x0000021a
+_0807F9B8: .4byte 0x00000219
+ thumb_func_end sub_807F43C
+
+ thumb_func_start sub_807F9BC
+sub_807F9BC:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FA0A
+ ldr r0, [r4, 0x70]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _0807F9F4
+ ldr r2, _0807FA10
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ ldr r0, [r2]
+ movs r1, 0xB8
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ adds r0, r4, 0x4
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+_0807F9F4:
+ adds r0, r4, 0
+ bl sub_806A5B8
+ ldr r0, _0807FA10
+ ldr r0, [r0]
+ ldr r1, _0807FA14
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8075900
+_0807FA0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FA10: .4byte gDungeonGlobalData
+_0807FA14: .4byte 0x00003a08
+ thumb_func_end sub_807F9BC
+
+ thumb_func_start sub_807FA18
+sub_807FA18:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r6, 0
+_0807FA1E:
+ movs r5, 0
+ adds r7, r6, 0x1
+_0807FA22:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMapEntity
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0807FA88
+ lsls r0, r5, 16
+ lsls r1, r6, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp]
+ ldrh r1, [r4, 0x4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807FA4E
+ movs r0, 0x6
+ b _0807FA56
+_0807FA4E:
+ bl sub_803D6FC
+ lsls r0, 24
+ lsrs r0, 24
+_0807FA56:
+ cmp r0, 0x11
+ bne _0807FA72
+ movs r0, 0x11
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8045684
+ cmp r0, 0
+ beq _0807FA88
+ str r0, [r4, 0x14]
+ adds r1, r0, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ b _0807FA86
+_0807FA72:
+ mov r1, sp
+ movs r2, 0
+ bl sub_8045684
+ cmp r0, 0
+ beq _0807FA88
+ str r0, [r4, 0x14]
+ adds r1, r0, 0
+ adds r1, 0x20
+ movs r0, 0
+_0807FA86:
+ strb r0, [r1]
+_0807FA88:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _0807FA22
+ adds r6, r7, 0
+ cmp r6, 0x1F
+ ble _0807FA1E
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807FA18
+
+ thumb_func_start sub_807FA9C
+sub_807FA9C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r2, _0807FAC4
+ ldr r0, [r2]
+ ldr r3, _0807FAC8
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ str r1, [sp]
+ ldr r1, _0807FACC
+ adds r0, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ subs r1, r0, 0x5
+ mov r8, r1
+ b _0807FBFE
+ .align 2, 0
+_0807FAC4: .4byte gDungeonGlobalData
+_0807FAC8: .4byte 0x0001820f
+_0807FACC: .4byte 0x000181ea
+_0807FAD0:
+ ldr r0, [r2]
+ ldr r2, _0807FC18
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ subs r5, r0, 0x6
+ adds r0, 0x6
+ mov r1, r8
+ adds r1, 0x1
+ str r1, [sp, 0x4]
+ cmp r5, r0
+ blt _0807FAEA
+ b _0807FBEE
+_0807FAEA:
+ ldr r7, _0807FC1C
+ ldr r2, _0807FC20
+ mov r10, r2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ mov r9, r0
+_0807FAF8:
+ movs r6, 0
+ adds r0, r5, 0
+ mov r1, r8
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807FB24
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _0807FB24
+ ldr r0, [r4, 0x14]
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807FB22
+ ldr r3, [sp]
+ cmp r3, 0
+ beq _0807FB24
+_0807FB22:
+ movs r6, 0x1
+_0807FB24:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 2
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0807FB34
+ movs r6, 0x1
+_0807FB34:
+ cmp r6, 0
+ beq _0807FBD6
+ ldr r0, _0807FC24
+ ldr r1, [r0]
+ ldr r3, _0807FC28
+ adds r0, r1, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ mov r2, r9
+ subs r3, r2, r0
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 3
+ ldr r2, _0807FC2C
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ subs r2, r0, r1
+ movs r0, 0x20
+ negs r0, r0
+ cmp r3, r0
+ blt _0807FBD6
+ cmp r2, r0
+ blt _0807FBD6
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r3, r0
+ bgt _0807FBD6
+ cmp r2, 0xC0
+ bgt _0807FBD6
+ ldrh r1, [r7]
+ mov r0, r10
+ ands r0, r1
+ strh r0, [r7]
+ ldr r1, _0807FC30
+ ands r1, r2
+ lsls r1, 4
+ ldrh r2, [r7, 0x6]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r7, 0x6]
+ ldr r0, _0807FC34
+ ands r3, r0
+ ldrh r0, [r7, 0x2]
+ movs r2, 0xFE
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ orrs r0, r3
+ strh r0, [r7, 0x2]
+ ldrh r1, [r7, 0x4]
+ mov r0, r10
+ ands r0, r1
+ movs r3, 0xC0
+ lsls r3, 4
+ orrs r0, r3
+ movs r1, 0
+ orrs r0, r1
+ movs r1, 0xA0
+ lsls r1, 8
+ ldr r2, _0807FC30
+ ands r0, r2
+ orrs r0, r1
+ movs r3, 0
+ orrs r0, r3
+ movs r2, 0xFE
+ lsls r2, 1
+ movs r3, 0xFC
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r7, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_0807FBD6:
+ movs r0, 0x18
+ add r9, r0
+ adds r5, 0x1
+ ldr r0, _0807FC24
+ ldr r0, [r0]
+ ldr r1, _0807FC18
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r0, 0x6
+ cmp r5, r0
+ blt _0807FAF8
+_0807FBEE:
+ ldr r3, [sp, 0x4]
+ mov r8, r3
+ ldr r2, _0807FC24
+ ldr r0, [r2]
+ ldr r1, _0807FC38
+ adds r0, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+_0807FBFE:
+ adds r0, 0x5
+ cmp r8, r0
+ bge _0807FC06
+ b _0807FAD0
+_0807FC06:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FC18: .4byte 0x000181e8
+_0807FC1C: .4byte gUnknown_202EDC0
+_0807FC20: .4byte 0x0000f3ff
+_0807FC24: .4byte gDungeonGlobalData
+_0807FC28: .4byte 0x000181f0
+_0807FC2C: .4byte 0x000181f2
+_0807FC30: .4byte 0x00000fff
+_0807FC34: .4byte 0x000001ff
+_0807FC38: .4byte 0x000181ea
+ thumb_func_end sub_807FA9C
+
+ thumb_func_start sub_807FC3C
+sub_807FC3C:
+ push {r4-r7,lr}
+ ldr r6, _0807FC70
+ ldr r4, [r6]
+ ldrh r5, [r0]
+ ldr r7, _0807FC74
+ adds r3, r4, r7
+ strh r5, [r3]
+ ldrh r3, [r0, 0x2]
+ ldr r5, _0807FC78
+ adds r0, r4, r5
+ strh r3, [r0]
+ adds r7, 0x4
+ adds r4, r7
+ strb r1, [r4]
+ ldr r0, [r6]
+ ldr r1, _0807FC7C
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r6]
+ subs r5, 0x6
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FC70: .4byte gDungeonGlobalData
+_0807FC74: .4byte 0x00013574
+_0807FC78: .4byte 0x00013576
+_0807FC7C: .4byte 0x00013579
+ thumb_func_end sub_807FC3C
+
+ thumb_func_start CanLayTrap
+CanLayTrap:
+ push {lr}
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl GetMapEntity
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FCCA
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _0807FCCA
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FCCA
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FCCA
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0807FCCA
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ beq _0807FCCE
+ bl GetEntityType
+ cmp r0, 0x2
+ beq _0807FCCE
+_0807FCCA:
+ movs r0, 0
+ b _0807FCD0
+_0807FCCE:
+ movs r0, 0x1
+_0807FCD0:
+ pop {r1}
+ bx r1
+ thumb_func_end CanLayTrap
+
+ thumb_func_start sub_807FCD4
+sub_807FCD4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ bl GetMapEntity
+ adds r6, r0, 0
+ cmp r5, 0x13
+ bls _0807FD12
+ movs r4, 0
+ b _0807FCFE
+_0807FCFC:
+ adds r4, 0x1
+_0807FCFE:
+ cmp r4, 0x1D
+ bgt _0807FD0C
+ bl sub_803D6FC
+ adds r5, r0, 0
+ cmp r5, 0x11
+ beq _0807FCFC
+_0807FD0C:
+ cmp r4, 0x1E
+ bne _0807FD12
+ movs r5, 0x10
+_0807FD12:
+ ldrh r1, [r6]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FD6E
+ ldrb r0, [r6, 0x9]
+ cmp r0, 0xFF
+ beq _0807FD6E
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FD6E
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0807FD6E
+ movs r4, 0x3
+ ands r4, r1
+ cmp r4, 0x1
+ bne _0807FD6E
+ ldr r0, [r6, 0x14]
+ cmp r0, 0
+ beq _0807FD60
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _0807FD6E
+ ldr r0, [r6, 0x14]
+ bl GetTrapData
+ strb r5, [r0]
+ ldr r0, [r6, 0x14]
+ bl GetTrapData
+ mov r1, r8
+ strb r1, [r0, 0x1]
+ ldr r0, [r6, 0x14]
+ b _0807FD74
+_0807FD60:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ mov r2, r8
+ bl sub_8045684
+ cmp r0, 0
+ bne _0807FD72
+_0807FD6E:
+ movs r0, 0
+ b _0807FD7A
+_0807FD72:
+ str r0, [r6, 0x14]
+_0807FD74:
+ adds r0, 0x20
+ strb r4, [r0]
+ movs r0, 0x1
+_0807FD7A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807FCD4
+
+ thumb_func_start sub_807FD84
+sub_807FD84:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r4, _0807FD9C
+ ldr r0, [r4]
+ ldr r2, _0807FDA0
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0807FDA4
+ movs r0, 0
+ b _0807FDF6
+ .align 2, 0
+_0807FD9C: .4byte gDungeonGlobalData
+_0807FDA0: .4byte 0x00013570
+_0807FDA4:
+ strb r5, [r1]
+ ldr r2, [r4]
+ ldr r3, _0807FDD8
+ adds r0, r2, r3
+ adds r3, 0x4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r3, 0x1
+ adds r2, r3
+ ldrb r2, [r2]
+ bl sub_807FCD4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0807FDE0
+ ldr r1, [r4]
+ ldr r0, _0807FDD8
+ adds r1, r0
+ ldr r0, _0807FDDC
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl sub_8052364
+ b _0807FDF0
+ .align 2, 0
+_0807FDD8: .4byte 0x00013574
+_0807FDDC: .4byte gUnknown_80FC5F8
+_0807FDE0:
+ ldr r1, [r4]
+ ldr r2, _0807FDFC
+ adds r1, r2
+ ldr r0, _0807FE00
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl sub_8052364
+_0807FDF0:
+ bl sub_8049ED4
+ adds r0, r5, 0
+_0807FDF6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807FDFC: .4byte 0x00013574
+_0807FE00: .4byte gUnknown_80FC5FC
+ thumb_func_end sub_807FD84
+
+ thumb_func_start sub_807FE04
+sub_807FE04:
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl GetMapEntity
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807FE3C
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _0807FE3C
+ ldr r1, [r4, 0x14]
+ movs r0, 0
+ str r0, [r1]
+ str r0, [r4, 0x14]
+ cmp r5, 0
+ beq _0807FE38
+ bl sub_8049ED4
+_0807FE38:
+ movs r0, 0x1
+ b _0807FE3E
+_0807FE3C:
+ movs r0, 0
+_0807FE3E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807FE04
+
+ thumb_func_start sub_807FE44
+sub_807FE44:
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ beq _0807FE7C
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _0807FE7C
+ ldr r0, [r4, 0x14]
+ adds r0, 0x20
+ movs r1, 0x1
+ strb r1, [r0]
+ cmp r5, 0
+ beq _0807FE78
+ bl sub_8049ED4
+_0807FE78:
+ movs r0, 0x1
+ b _0807FE7E
+_0807FE7C:
+ movs r0, 0
+_0807FE7E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807FE44
+
+ thumb_func_start GetTrapName
+GetTrapName:
+ push {lr}
+ lsls r1, 24
+ ldr r2, _0807FE98
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl strcpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FE98: .4byte gTrapNames
+ thumb_func_end GetTrapName
+
+ thumb_func_start sub_807FE9C
+sub_807FE9C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ mov r9, r1
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r6, r3, 24
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl GetMapEntity
+ str r0, [sp, 0x4]
+ ldr r0, [r0, 0x14]
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x8]
+ cmp r0, 0
+ bne _0807FECE
+ b _080801B4
+_0807FECE:
+ bl GetEntityType
+ cmp r0, 0x2
+ beq _0807FED8
+ b _080801B4
+_0807FED8:
+ mov r0, r10
+ bl GetTrapData
+ mov r8, r0
+ ldr r0, _0807FF58
+ mov r2, r8
+ ldrb r1, [r2]
+ bl GetTrapName
+ ldr r3, [sp, 0x4]
+ ldr r4, [r3, 0x10]
+ cmp r4, 0
+ beq _0807FEFE
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x1
+ beq _0807FEFE
+ movs r4, 0
+_0807FEFE:
+ mov r1, r10
+ adds r1, 0x20
+ ldrb r0, [r1]
+ str r0, [sp, 0xC]
+ movs r0, 0x1
+ strb r0, [r1]
+ cmp r4, 0
+ beq _0807FF96
+ adds r0, r4, 0
+ bl sub_806A1E8
+ cmp r6, 0
+ beq _0807FF96
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x11
+ beq _0807FF96
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ adds r7, r0, 0
+ movs r6, 0
+ adds r0, r4, 0
+ movs r1, 0x1C
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FF3C
+ ldr r0, _0807FF5C
+ ldr r6, [r0]
+_0807FF3C:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0x1
+ beq _0807FF50
+ ldr r0, _0807FF60
+ ldr r0, [r0]
+ ldr r3, _0807FF64
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807FF68
+_0807FF50:
+ cmp r7, 0
+ bge _0807FF70
+ b _0807FF6C
+ .align 2, 0
+_0807FF58: .4byte gAvailablePokemonNames
+_0807FF5C: .4byte gUnknown_80FDB5C
+_0807FF60: .4byte gDungeonGlobalData
+_0807FF64: .4byte 0x0001820f
+_0807FF68:
+ cmp r7, 0xE
+ bgt _0807FF70
+_0807FF6C:
+ ldr r0, _0807FFD8
+ ldr r6, [r0]
+_0807FF70:
+ cmp r6, 0
+ beq _0807FF96
+ mov r0, r9
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FF84
+ bl sub_8049ED4
+_0807FF84:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80522F4
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _0807FF96
+ b _080801B4
+_0807FF96:
+ mov r0, r9
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FFFA
+ movs r1, 0xAE
+ lsls r1, 1
+ movs r0, 0
+ bl sub_80421C0
+ bl sub_8049ED4
+ mov r1, r8
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_804225C
+ ldr r0, _0807FFDC
+ ldr r0, [r0]
+ ldr r2, _0807FFE0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807FFE8
+ ldr r0, _0807FFE4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+ b _0807FFFA
+ .align 2, 0
+_0807FFD8: .4byte gUnknown_80FDB7C
+_0807FFDC: .4byte gDungeonGlobalData
+_0807FFE0: .4byte 0x0001820a
+_0807FFE4: .4byte gUnknown_80FD7F4
+_0807FFE8:
+ ldr r0, _08080010
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl SendMessage
+_0807FFFA:
+ cmp r4, 0
+ beq _08080020
+ mov r1, r8
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x2
+ bne _08080014
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806F480
+ b _08080020
+ .align 2, 0
+_08080010: .4byte gUnknown_80FD7F8
+_08080014:
+ cmp r0, 0x1
+ bne _08080020
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806F480
+_08080020:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x1B
+ bls _0808002A
+ b _08080194
+_0808002A:
+ lsls r0, 2
+ ldr r1, _08080034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08080034: .4byte _08080038
+ .align 2, 0
+_08080038:
+ .4byte _080800A8
+ .4byte _080800B2
+ .4byte _080800BC
+ .4byte _080800C6
+ .4byte _080800D0
+ .4byte _080800DA
+ .4byte _080800E6
+ .4byte _080800F0
+ .4byte _080800FA
+ .4byte _08080104
+ .4byte _0808010E
+ .4byte _08080118
+ .4byte _08080122
+ .4byte _0808012C
+ .4byte _08080136
+ .4byte _08080140
+ .4byte _0808014A
+ .4byte _08080168
+ .4byte _08080172
+ .4byte _08080180
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _08080194
+ .4byte _080800DA
+_080800A8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080A5C
+ b _08080194
+_080800B2:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80801CC
+ b _08080194
+_080800BC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_808024C
+ b _08080194
+_080800C6:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080418
+ b _08080194
+_080800D0:
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_8080620
+ b _0808017A
+_080800DA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, [sp, 0x4]
+ bl sub_8080504
+ b _08080194
+_080800E6:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080374
+ b _08080194
+_080800F0:
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_8080884
+ b _08080194
+_080800FA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080364
+ b _08080194
+_08080104:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080388
+ b _08080194
+_0808010E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80803B4
+ b _08080194
+_08080118:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80807C0
+ b _08080194
+_08080122:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80803C8
+ b _08080194
+_0808012C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80803D8
+ b _08080194
+_08080136:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80803F8
+ b _08080194
+_08080140:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8080700
+ b _08080194
+_0808014A:
+ cmp r4, 0
+ beq _08080194
+ ldr r0, _08080160
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, _08080164
+ adds r0, r4, 0
+ movs r2, 0xF
+ bl sub_806F324
+ b _08080194
+ .align 2, 0
+_08080160: .4byte gUnknown_80F4F86
+_08080164: .4byte 0x00000213
+_08080168:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80807B4
+ b _08080194
+_08080172:
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_80808A4
+_0808017A:
+ movs r3, 0x1
+ str r3, [sp, 0x8]
+ b _08080194
+_08080180:
+ cmp r4, 0
+ beq _08080194
+ ldr r0, _080801C4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, _080801C8
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_806F324
+_08080194:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080801A6
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080801A6:
+ ldr r3, [sp, 0x8]
+ cmp r3, 0
+ beq _080801B4
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_807FE04
+_080801B4:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080801C4: .4byte gUnknown_80F4F84
+_080801C8: .4byte 0x00000206
+ thumb_func_end sub_807FE9C
+
+ thumb_func_start sub_80801CC
+sub_80801CC:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _08080240
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ adds r1, r0, 0
+ cmp r0, 0x18
+ bgt _080801EC
+ ldr r0, _080801E8
+ b _080801F2
+ .align 2, 0
+_080801E8: .4byte gUnknown_8106A4C
+_080801EC:
+ cmp r0, 0x31
+ bgt _0808020C
+ ldr r0, _08080208
+_080801F2:
+ ldr r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8076E20
+ b _08080240
+ .align 2, 0
+_08080208: .4byte gUnknown_8106A50
+_0808020C:
+ cmp r1, 0x4A
+ bgt _0808022C
+ ldr r0, _08080228
+ ldr r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8076F80
+ b _08080240
+ .align 2, 0
+_08080228: .4byte gUnknown_8106A4C
+_0808022C:
+ ldr r0, _08080248
+ ldr r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8076F80
+_08080240:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080248: .4byte gUnknown_8106A50
+ thumb_func_end sub_80801CC
+
+ thumb_func_start sub_808024C
+sub_808024C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x5C
+ str r0, [sp, 0x54]
+ mov r10, r1
+ ldr r0, [r1, 0x70]
+ mov r8, r0
+ mov r0, r10
+ movs r1, 0xE
+ bl HasItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080278
+ ldr r0, _08080274
+ b _08080300
+ .align 2, 0
+_08080274: .4byte gUnknown_80FDC7C
+_08080278:
+ movs r6, 0
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ movs r1, 0x60
+ add r1, r8
+ mov r9, r1
+ cmp r0, 0
+ beq _080802C8
+ movs r5, 0
+ ldr r7, _0808030C
+ mov r0, sp
+ str r0, [sp, 0x58]
+_08080290:
+ lsls r4, r5, 2
+ ldr r0, [r7]
+ adds r2, r4, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080802C2
+ ldrb r0, [r2, 0x2]
+ bl IsNotSpecialItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _080802C2
+ ldr r0, [r7]
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080802C2
+ ldr r1, [sp, 0x58]
+ stm r1!, {r2}
+ str r1, [sp, 0x58]
+ adds r6, 0x1
+_080802C2:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08080290
+_080802C8:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080802FA
+ mov r0, r8
+ adds r0, 0x62
+ ldrb r0, [r0]
+ bl IsNotSpecialItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _080802FA
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080802FA
+ lsls r0, r6, 2
+ add r0, sp
+ mov r1, r9
+ str r1, [r0]
+ adds r6, 0x1
+_080802FA:
+ cmp r6, 0
+ bne _08080314
+ ldr r0, _08080310
+_08080300:
+ ldr r2, [r0]
+ ldr r0, [sp, 0x54]
+ mov r1, r10
+ bl sub_80522F4
+ b _0808034A
+ .align 2, 0
+_0808030C: .4byte gTeamInventory_203B460
+_08080310: .4byte gUnknown_80FDC40
+_08080314:
+ adds r0, r6, 0
+ bl DungeonRandomCapped
+ ldr r2, _0808035C
+ lsls r0, 2
+ mov r1, sp
+ adds r4, r1, r0
+ ldr r1, [r4]
+ adds r0, r2, 0
+ bl sub_8045BF8
+ ldr r2, [r4]
+ ldrb r1, [r2]
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0xC9
+ lsls r1, 1
+ mov r0, r10
+ bl sub_80421C0
+ ldr r0, _08080360
+ ldr r2, [r0]
+ ldr r0, [sp, 0x54]
+ mov r1, r10
+ bl sub_80522F4
+_0808034A:
+ add sp, 0x5C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808035C: .4byte gUnknown_202DE58
+_08080360: .4byte gUnknown_80FDC18
+ thumb_func_end sub_808024C
+
+ thumb_func_start sub_8080364
+sub_8080364:
+ push {lr}
+ cmp r1, 0
+ beq _08080370
+ movs r2, 0x1
+ bl sub_8077AE4
+_08080370:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080364
+
+ thumb_func_start sub_8080374
+sub_8080374:
+ push {lr}
+ cmp r1, 0
+ beq _08080382
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_08080382:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080374
+
+ thumb_func_start sub_8080388
+sub_8080388:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _080803A8
+ ldr r1, _080803B0
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8075C58
+_080803A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080803B0: .4byte gUnknown_80F4E74
+ thumb_func_end sub_8080388
+
+ thumb_func_start sub_80803B4
+sub_80803B4:
+ push {lr}
+ cmp r1, 0
+ beq _080803C2
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80779F0
+_080803C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80803B4
+
+ thumb_func_start sub_80803C8
+sub_80803C8:
+ push {lr}
+ cmp r1, 0
+ beq _080803D4
+ movs r2, 0x1
+ bl sub_80763F8
+_080803D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80803C8
+
+ thumb_func_start sub_80803D8
+sub_80803D8:
+ push {lr}
+ sub sp, 0x8
+ adds r2, r1, 0x4
+ movs r3, 0
+ str r3, [sp]
+ ldr r3, _080803F4
+ str r3, [sp, 0x4]
+ movs r3, 0x1
+ bl sub_807DF38
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080803F4: .4byte 0x00000212
+ thumb_func_end sub_80803D8
+
+ thumb_func_start sub_80803F8
+sub_80803F8:
+ push {lr}
+ sub sp, 0x8
+ adds r2, r1, 0x4
+ movs r3, 0
+ str r3, [sp]
+ ldr r3, _08080414
+ str r3, [sp, 0x4]
+ movs r3, 0x2
+ bl sub_807DF38
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080414: .4byte 0x00000212
+ thumb_func_end sub_80803F8
+
+ thumb_func_start sub_8080418
+sub_8080418:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ mov r8, r0
+ adds r6, r1, 0
+ movs r0, 0
+ mov r9, r0
+ cmp r6, 0
+ beq _080804F0
+ ldr r7, [r6, 0x70]
+ movs r3, 0
+ ldrb r0, [r7, 0x7]
+ cmp r0, 0
+ beq _0808045A
+ ldr r0, _080804C0
+ movs r1, 0x1
+ mov r12, r1
+ ldr r2, [r0]
+ mov r4, sp
+ movs r5, 0x13
+_08080444:
+ ldrb r1, [r2]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0
+ beq _08080452
+ stm r4!, {r2}
+ adds r3, 0x1
+_08080452:
+ adds r2, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08080444
+_0808045A:
+ adds r2, r7, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08080470
+ lsls r0, r3, 2
+ add r0, sp
+ str r2, [r0]
+ adds r3, 0x1
+_08080470:
+ cmp r3, 0
+ ble _080804B6
+ mov r4, sp
+ adds r5, r3, 0
+_08080478:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080804AE
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x54
+ beq _080804AE
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ ldr r1, _080804C4
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ bge _080804AE
+ movs r0, 0x1
+ add r9, r0
+ ldr r0, [r4]
+ movs r1, 0x54
+ movs r2, 0x2
+ bl sub_8045C28
+_080804AE:
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08080478
+_080804B6:
+ mov r1, r9
+ cmp r1, 0x1
+ bne _080804CC
+ ldr r0, _080804C8
+ b _080804D4
+ .align 2, 0
+_080804C0: .4byte gTeamInventory_203B460
+_080804C4: .4byte gUnknown_80F4E0E
+_080804C8: .4byte gUnknown_80FD788
+_080804CC:
+ mov r2, r9
+ cmp r2, 0
+ bne _080804E4
+ ldr r0, _080804E0
+_080804D4:
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_80522F4
+ b _080804F0
+ .align 2, 0
+_080804E0: .4byte gUnknown_80FD7D4
+_080804E4:
+ ldr r0, _08080500
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_80522F4
+_080804F0:
+ add sp, 0x58
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080500: .4byte gUnknown_80FD7AC
+ thumb_func_end sub_8080418
+
+ thumb_func_start sub_8080504
+sub_8080504:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r7, r2, 0
+ movs r0, 0
+ mov r8, r0
+ cmp r4, 0
+ bne _0808051A
+ b _0808060E
+_0808051A:
+ bl IsBossBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080534
+ ldr r0, _08080530
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl SendMessage
+ b _0808060E
+ .align 2, 0
+_08080530: .4byte gUnknown_80FED0C
+_08080534:
+ ldr r5, [r4, 0x70]
+ adds r0, r4, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808055E
+ adds r0, r7, 0
+ movs r1, 0x1B
+ bl sub_8080B00
+ movs r1, 0x1
+ mov r8, r1
+ ldr r1, _080805A4
+ adds r0, r4, 0
+ bl sub_80421C0
+ movs r0, 0x1E
+ movs r1, 0x48
+ bl sub_803E708
+_0808055E:
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _080805C4
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080805B4
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r0, r5, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r2, 0x2
+ adds r0, r5, r2
+ strb r1, [r0]
+ movs r0, 0x28
+ movs r1, 0x4B
+ bl sub_803E708
+ ldr r0, _080805A8
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, _080805AC
+ adds r0, r4, 0
+ movs r2, 0x11
+ bl sub_806F324
+ ldr r0, _080805B0
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ b _0808060E
+ .align 2, 0
+_080805A4: .4byte 0x00000193
+_080805A8: .4byte gUnknown_80F4F8A
+_080805AC: .4byte 0x00000215
+_080805B0: .4byte gDungeonGlobalData
+_080805B4:
+ ldr r0, _080805C0
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl SendMessage
+ b _08080600
+ .align 2, 0
+_080805C0: .4byte gUnknown_80F9728
+_080805C4:
+ ldr r0, _080805E4
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ beq _080805EC
+ ldr r0, _080805E8
+ ldr r2, [r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80522F4
+ b _080805F6
+ .align 2, 0
+_080805E4: .4byte gAvailablePokemonNames
+_080805E8: .4byte gUnknown_80F970C
+_080805EC:
+ ldr r0, _08080618
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_805239C
+_080805F6:
+ ldr r1, _0808061C
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl sub_8068FE0
+_08080600:
+ mov r0, r8
+ cmp r0, 0
+ beq _0808060E
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl sub_8080B00
+_0808060E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080618: .4byte gUnknown_80F970C
+_0808061C: .4byte 0x00000215
+ thumb_func_end sub_8080504
+
+ thumb_func_start sub_8080620
+sub_8080620:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp, 0x14]
+ adds r7, r1, 0
+ movs r0, 0x3
+ bl DungeonRandomCapped
+ adds r6, r0, 0
+ adds r4, r6, 0x2
+ movs r0, 0x8
+ bl DungeonRandomCapped
+ adds r5, r0, 0
+ bl IsBossBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080806CA
+ movs r0, 0
+ mov r8, r0
+ cmp r8, r4
+ bge _080806BA
+ mov r4, sp
+ movs r1, 0
+ mov r10, r1
+ movs r2, 0
+ mov r9, r2
+ adds r6, 0x2
+_08080660:
+ movs r0, 0
+ bl sub_803D970
+ movs r1, 0x7
+ ands r5, r1
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl sub_806AA0C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080806B2
+ mov r2, r9
+ strh r2, [r4, 0x8]
+ mov r0, r10
+ strb r0, [r4, 0x2]
+ ldr r0, _080806D8
+ lsls r1, r5, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r2, [r7]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ mov r0, r10
+ strb r0, [r4, 0x10]
+ mov r0, sp
+ movs r1, 0x1
+ bl sub_806B7F8
+ cmp r0, 0
+ beq _080806B2
+ movs r1, 0x1
+ add r8, r1
+_080806B2:
+ adds r5, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08080660
+_080806BA:
+ movs r1, 0xCA
+ lsls r1, 1
+ adds r0, r7, 0
+ bl sub_80421EC
+ mov r2, r8
+ cmp r2, 0
+ bne _080806E0
+_080806CA:
+ ldr r0, _080806DC
+ ldr r1, [r0]
+ ldr r0, [sp, 0x14]
+ bl SendMessage
+ b _080806EA
+ .align 2, 0
+_080806D8: .4byte gAdjacentTileOffsets
+_080806DC: .4byte gUnknown_80FED04
+_080806E0:
+ ldr r0, _080806FC
+ ldr r1, [r0]
+ ldr r0, [sp, 0x14]
+ bl SendMessage
+_080806EA:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080806FC: .4byte gUnknown_80FED00
+ thumb_func_end sub_8080620
+
+ thumb_func_start sub_8080700
+sub_8080700:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r5, r1, 0
+ movs r0, 0
+ mov r12, r0
+ cmp r5, 0
+ beq _080807A4
+ ldr r7, [r5, 0x70]
+ movs r4, 0
+ movs r3, 0
+ mov r6, sp
+_0808071C:
+ lsls r0, r3, 3
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08080742
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _08080742
+ lsls r1, r4, 2
+ stm r6!, {r2}
+ add r0, sp, 0x10
+ adds r0, r1
+ str r3, [r0]
+ adds r4, 0x1
+_08080742:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0808071C
+ cmp r4, 0
+ beq _0808077A
+ adds r0, r4, 0
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ lsls r4, 2
+ mov r0, sp
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ ldr r0, _08080790
+ ldr r1, [r2]
+ movs r2, 0
+ bl sub_80928C0
+ add r0, sp, 0x10
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_806A9B4
+ movs r1, 0x1
+ mov r12, r1
+_0808077A:
+ mov r0, r12
+ cmp r0, 0
+ beq _08080798
+ ldr r0, _08080794
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _080807A4
+ .align 2, 0
+_08080790: .4byte gUnknown_202DE58
+_08080794: .4byte gUnknown_80FDA80
+_08080798:
+ ldr r0, _080807B0
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+_080807A4:
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080807B0: .4byte gUnknown_80FDAA0
+ thumb_func_end sub_8080700
+
+ thumb_func_start sub_80807B4
+sub_80807B4:
+ push {lr}
+ movs r2, 0
+ bl sub_8079E34
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80807B4
+
+ thumb_func_start sub_80807C0
+sub_80807C0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r8, r0
+ adds r7, r1, 0
+ movs r0, 0
+ mov r9, r0
+ cmp r7, 0
+ beq _08080870
+ mov r0, r8
+ movs r2, 0x1
+ bl sub_80716E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08080870
+ ldr r0, [r7, 0x70]
+ movs r5, 0
+ movs r6, 0x1
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r2, r0, r1
+ adds r3, r2, 0
+ mov r12, sp
+ movs r4, 0x3
+_080807F6:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08080816
+ ldrb r1, [r2, 0x1]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08080816
+ mov r0, r12
+ adds r0, 0x4
+ mov r12, r0
+ subs r0, 0x4
+ stm r0!, {r3}
+ adds r5, 0x1
+_08080816:
+ adds r2, 0x8
+ adds r3, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080807F6
+ cmp r5, 0
+ beq _08080848
+ adds r0, r5, 0
+ bl DungeonRandomCapped
+ lsls r0, 2
+ mov r1, sp
+ adds r3, r1, r0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _0808085C
+ ldr r1, [r3]
+ movs r2, 0
+ bl sub_80928C0
+ movs r0, 0x1
+ mov r9, r0
+_08080848:
+ mov r1, r9
+ cmp r1, 0
+ beq _08080864
+ ldr r0, _08080860
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _08080870
+ .align 2, 0
+_0808085C: .4byte gUnknown_202DE58
+_08080860: .4byte gUnknown_80FDB04
+_08080864:
+ ldr r0, _08080880
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80522F4
+_08080870:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080880: .4byte gUnknown_80FDB2C
+ thumb_func_end sub_80807C0
+
+ thumb_func_start sub_8080884
+sub_8080884:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _0808089E
+ movs r0, 0x8
+ bl DungeonRandomCapped
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_807CD9C
+_0808089E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080884
+
+ thumb_func_start sub_80808A4
+sub_80808A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ str r0, [sp, 0x14]
+ adds r5, r1, 0
+ movs r0, 0
+ str r0, [sp, 0x20]
+ ldr r6, _080808D0
+ ldr r0, [r6]
+ ldr r1, _080808D4
+ adds r0, r1
+ ldrb r4, [r0]
+ bl IsBossBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080808DC
+ ldr r0, _080808D8
+ b _08080A2E
+ .align 2, 0
+_080808D0: .4byte gDungeonGlobalData
+_080808D4: .4byte 0x00018209
+_080808D8: .4byte gUnknown_80FED08
+_080808DC:
+ cmp r4, 0
+ bne _080808E2
+ movs r4, 0x2
+_080808E2:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ movs r3, 0x2
+ ldrsh r1, [r5, r3]
+ bl GetMapTileAtPosition
+ ldrb r1, [r0, 0x9]
+ cmp r1, 0xFF
+ bne _0808090A
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ subs r2, r1, r4
+ str r2, [sp, 0x18]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ subs r2, r0, r4
+ adds r1, r4
+ mov r10, r1
+ adds r0, r4
+ b _08080934
+_0808090A:
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _08080994
+ adds r0, r1
+ ldr r1, [r6]
+ adds r1, r0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ subs r0, 0x1
+ str r0, [sp, 0x18]
+ movs r3, 0x4
+ ldrsh r0, [r1, r3]
+ subs r2, r0, 0x1
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ adds r0, 0x1
+ mov r10, r0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ adds r0, 0x1
+_08080934:
+ str r0, [sp, 0x1C]
+ adds r7, r2, 0
+ ldr r0, [sp, 0x1C]
+ cmp r7, r0
+ bgt _08080A26
+_0808093E:
+ ldr r6, [sp, 0x18]
+ adds r1, r7, 0x1
+ str r1, [sp, 0x24]
+ cmp r6, r10
+ bgt _08080A1E
+ mov r5, sp
+_0808094A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl GetMapTileAtPosition
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ adds r2, r6, 0x1
+ mov r9, r2
+ cmp r0, 0
+ beq _08080A18
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _08080A18
+ ldr r0, [r4, 0x14]
+ bl GetItemData
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08080A18
+ movs r0, 0xBE
+ lsls r0, 1
+ strh r0, [r5]
+ movs r2, 0
+ mov r4, sp
+_08080980:
+ ldr r0, _08080998
+ ldr r0, [r0]
+ ldr r3, _0808099C
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080809A0
+ movs r0, 0xBE
+ lsls r0, 1
+ b _080809AE
+ .align 2, 0
+_08080994: .4byte 0x000104c4
+_08080998: .4byte gDungeonGlobalData
+_0808099C: .4byte 0x0000066e
+_080809A0:
+ movs r0, 0
+ str r2, [sp, 0x28]
+ bl sub_803D970
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, [sp, 0x28]
+_080809AE:
+ movs r1, 0
+ mov r8, r1
+ movs r3, 0
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ str r2, [sp, 0x28]
+ str r3, [sp, 0x2C]
+ bl sub_806AA0C
+ lsls r0, 24
+ ldr r2, [sp, 0x28]
+ ldr r3, [sp, 0x2C]
+ cmp r0, 0
+ bne _080809D4
+ adds r2, 0x1
+ cmp r2, 0x63
+ ble _08080980
+_080809D4:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ movs r1, 0
+ str r3, [sp, 0x2C]
+ bl sub_806AA0C
+ lsls r0, 24
+ ldr r3, [sp, 0x2C]
+ cmp r0, 0
+ beq _08080A10
+ strh r3, [r5, 0x8]
+ mov r0, r8
+ strb r0, [r5, 0x2]
+ strh r6, [r5, 0xC]
+ strh r7, [r5, 0xE]
+ str r3, [sp, 0x4]
+ strb r0, [r5, 0x10]
+ mov r0, sp
+ movs r1, 0x1
+ bl sub_806B7F8
+ cmp r0, 0
+ beq _08080A10
+ add r0, sp, 0xC
+ movs r1, 0
+ bl sub_80461C8
+ ldr r1, [sp, 0x20]
+ adds r1, 0x1
+ str r1, [sp, 0x20]
+_08080A10:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80402AC
+_08080A18:
+ mov r6, r9
+ cmp r6, r10
+ ble _0808094A
+_08080A1E:
+ ldr r7, [sp, 0x24]
+ ldr r2, [sp, 0x1C]
+ cmp r7, r2
+ ble _0808093E
+_08080A26:
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _08080A3C
+ ldr r0, _08080A38
+_08080A2E:
+ ldr r1, [r0]
+ ldr r0, [sp, 0x14]
+ bl SendMessage
+ b _08080A46
+ .align 2, 0
+_08080A38: .4byte gUnknown_80FDACC
+_08080A3C:
+ ldr r0, _08080A58
+ ldr r1, [r0]
+ ldr r0, [sp, 0x14]
+ bl SendMessage
+_08080A46:
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080A58: .4byte gUnknown_80FDAE4
+ thumb_func_end sub_80808A4
+
+ thumb_func_start sub_8080A5C
+sub_8080A5C:
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _08080AEC
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x8
+ bl sub_806CDD4
+ movs r0, 0x10
+ movs r1, 0x55
+ bl sub_803E708
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_806CE68
+ ldr r5, [r4, 0x70]
+ adds r2, r5, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08080AEC
+ ldr r0, [r5, 0x60]
+ str r0, [sp, 0x8]
+ movs r0, 0
+ strb r0, [r2]
+ bl FillInventoryGaps
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, 0
+ bl sub_80421C0
+ adds r0, r5, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ movs r2, 0x7
+ ands r2, r0
+ ldr r0, _08080AF4
+ lsls r2, 2
+ adds r2, r0
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _08080AF8
+ ldr r1, [sp, 0x4]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ ldr r2, _08080AFC
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ adds r1, r4, 0x4
+ add r3, sp, 0x8
+ str r6, [sp]
+ adds r0, r7, 0
+ add r2, sp, 0x4
+ bl sub_804687C
+_08080AEC:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080AF4: .4byte gAdjacentTileOffsets
+_08080AF8: .4byte 0xffff0000
+_08080AFC: .4byte 0x0000ffff
+ thumb_func_end sub_8080A5C
+
+ thumb_func_start sub_8080B00
+sub_8080B00:
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, [r0, 0x14]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080B2A
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _08080B26
+ adds r0, r4, 0
+ bl GetTrapData
+ strb r5, [r0]
+_08080B26:
+ bl sub_8049ED4
+_08080B2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080B00
+
+ thumb_func_start sub_8080B30
+sub_8080B30:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_8082F9C
+ movs r0, 0
+ str r0, [sp, 0xC]
+ add r1, sp, 0xC
+ mov r0, sp
+ movs r2, 0x4
+ bl sub_8082FA8
+ mov r0, sp
+ bl sub_8080B90
+ mov r0, sp
+ bl sub_8081454
+ mov r0, sp
+ bl sub_808165C
+ mov r0, sp
+ bl sub_808173C
+ mov r0, sp
+ bl sub_8080BBC
+ mov r0, sp
+ bl sub_8080C44
+ mov r0, sp
+ bl sub_8080CF0
+ ldr r1, _08080B8C
+ mov r0, sp
+ bl sub_808300C
+ mov r0, sp
+ bl nullsub_98
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080B8C: .4byte gUnknown_81071D4
+ thumb_func_end sub_8080B30
+
+ thumb_func_start sub_8080B90
+sub_8080B90:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08080BB0
+ bl sub_808300C
+ ldr r0, _08080BB4
+ ldr r1, [r0]
+ ldr r0, _08080BB8
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0x58
+ bl sub_8082FA8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080BB0: .4byte gUnknown_81071E0
+_08080BB4: .4byte gDungeonGlobalData
+_08080BB8: .4byte 0x00000644
+ thumb_func_end sub_8080B90
+
+ thumb_func_start sub_8080BBC
+sub_8080BBC:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ ldr r1, _08080C38
+ movs r2, 0
+ add r0, sp, 0x4
+_08080BC8:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _08080BC8
+ adds r0, r6, 0
+ bl sub_808300C
+ movs r7, 0
+_08080BD8:
+ ldr r0, _08080C3C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08080C40
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r5, 0
+ cmp r4, 0
+ beq _08080C1A
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x3
+ bne _08080C1A
+ adds r0, r4, 0
+ bl GetItemData
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl sub_8081788
+ adds r1, r4, 0x4
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0x6
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ movs r5, 0x1
+_08080C1A:
+ cmp r5, 0
+ bne _08080C28
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x5
+ bl sub_8082FA8
+_08080C28:
+ adds r7, 0x1
+ cmp r7, 0x3F
+ ble _08080BD8
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080C38: .4byte gUnknown_81071E0
+_08080C3C: .4byte gDungeonGlobalData
+_08080C40: .4byte 0x0001361c
+ thumb_func_end sub_8080BBC
+
+ thumb_func_start sub_8080C44
+sub_8080C44:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ movs r7, 0
+ ldr r3, _08080CE4
+ movs r2, 0xFF
+_08080C50:
+ mov r0, sp
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ adds r7, 0x1
+ cmp r7, 0x4
+ ble _08080C50
+ adds r0, r6, 0
+ adds r1, r3, 0
+ bl sub_808300C
+ movs r7, 0
+_08080C6A:
+ ldr r0, _08080CE8
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08080CEC
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ movs r4, 0
+ cmp r5, 0
+ beq _08080CC8
+ adds r0, r5, 0
+ bl GetEntityType
+ cmp r0, 0x2
+ bne _08080CC8
+ adds r0, r5, 0
+ bl GetTrapData
+ adds r4, r0, 0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0x1
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r5, 0
+ adds r1, 0x20
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r5, 0x4
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r5, 0x6
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ movs r4, 0x1
+_08080CC8:
+ cmp r4, 0
+ bne _08080CD6
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x5
+ bl sub_8082FA8
+_08080CD6:
+ adds r7, 0x1
+ cmp r7, 0x3F
+ ble _08080C6A
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080CE4: .4byte gUnknown_81071E0
+_08080CE8: .4byte gDungeonGlobalData
+_08080CEC: .4byte 0x0001371c
+ thumb_func_end sub_8080C44
+
+ thumb_func_start sub_8080CF0
+sub_8080CF0:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r1, _08080DD4
+ bl sub_808300C
+ ldr r4, _08080DD8
+ ldr r0, [r4]
+ ldr r1, _08080DDC
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083078
+ ldr r0, [r4]
+ ldr r2, _08080DE0
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083078
+ ldr r0, [r4]
+ ldr r1, _08080DE4
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _08080DE8
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08080DEC
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _08080DF0
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08080DF4
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _08080DF8
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08080DFC
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _08080E00
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ movs r1, 0xE0
+ lsls r1, 6
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083030
+ movs r5, 0
+_08080D9A:
+ ldr r0, [r4]
+ lsls r1, r5, 2
+ ldr r2, _08080E04
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_8080E0C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08080D9A
+ movs r5, 0
+ ldr r4, _08080DD8
+_08080DB6:
+ ldr r0, [r4]
+ lsls r1, r5, 2
+ ldr r2, _08080E08
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_8080E0C
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08080DB6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080DD4: .4byte gUnknown_81071E0
+_08080DD8: .4byte gDungeonGlobalData
+_08080DDC: .4byte 0x000037f0
+_08080DE0: .4byte 0x000037f4
+_08080DE4: .4byte 0x000037f8
+_08080DE8: .4byte 0x000037f9
+_08080DEC: .4byte 0x000037fa
+_08080DF0: .4byte 0x000037fb
+_08080DF4: .4byte 0x000037fc
+_08080DF8: .4byte 0x000037fd
+_08080DFC: .4byte 0x000037fe
+_08080E00: .4byte 0x000037ff
+_08080E04: .4byte 0x0001357c
+_08080E08: .4byte 0x0001358c
+ thumb_func_end sub_8080CF0
+
+ thumb_func_start sub_8080E0C
+sub_8080E0C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08080E88
+ add sp, r4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ add r0, sp, 0x20C
+ str r1, [r0]
+ movs r1, 0x1
+ movs r6, 0x82
+ lsls r6, 2
+ mov r2, sp
+ adds r0, r2, r6
+ str r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0xAA
+ bl sub_8083060
+ adds r0, r5, 0
+ movs r1, 0x55
+ bl sub_8083060
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080E8C
+ ldr r6, [r4, 0x70]
+ add r1, sp, 0x208
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0x6
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0
+ adds r1, 0x20
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0
+ adds r1, 0x26
+ adds r0, r5, 0
+ movs r2, 0x2
+ bl sub_8082FA8
+ b _08080ECC
+ .align 2, 0
+_08080E88: .4byte 0xfffffd6c
+_08080E8C:
+ mov r0, sp
+ movs r1, 0
+ adds r2, r6, 0
+ bl memset
+ mov r6, sp
+ add r4, sp, 0x20C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl sub_8082FA8
+_08080ECC:
+ ldrh r1, [r6]
+ adds r0, r5, 0
+ bl sub_8083030
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_80817F4
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_80817F4
+ ldrb r1, [r6, 0x6]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r6, 0x7]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r6, 0x8]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r6, 0x9]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r6, 0xA]
+ adds r0, r5, 0
+ bl sub_8083060
+ adds r1, r6, 0
+ adds r1, 0x40
+ adds r0, r5, 0
+ bl sub_80818C8
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r0, 0x10
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ ldrb r1, [r6, 0x14]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r6, 0x15]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r6, 0x16]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r6, 0x17]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r1, [r6, 0x18]
+ adds r0, r5, 0
+ bl sub_8083078
+ movs r0, 0x1C
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r2, 0x1E
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r0, 0x24
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r2, 0x26
+ ldrsh r1, [r6, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r0, 0x28
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ ldr r1, [r6, 0x2C]
+ adds r0, r5, 0
+ bl sub_80830A0
+ ldr r1, [r6, 0x30]
+ adds r0, r5, 0
+ bl sub_80830A0
+ ldr r1, [r6, 0x34]
+ adds r0, r5, 0
+ bl sub_80830A0
+ ldr r1, [r6, 0x38]
+ adds r0, r5, 0
+ bl sub_80830A0
+ adds r1, r6, 0
+ adds r1, 0x44
+ adds r0, r5, 0
+ bl sub_80817C8
+ adds r0, r6, 0
+ adds r0, 0x5C
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_808180C
+ adds r0, r6, 0
+ adds r0, 0x5D
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_808180C
+ adds r0, r6, 0
+ adds r0, 0x5E
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8081824
+ adds r0, r6, 0
+ adds r0, 0x5F
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8081824
+ adds r1, r6, 0
+ adds r1, 0x60
+ adds r0, r5, 0
+ bl sub_8081788
+ adds r0, r6, 0
+ adds r0, 0x64
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80817B0
+ movs r1, 0x78
+ adds r1, r6
+ mov r8, r1
+ movs r2, 0x8C
+ adds r2, r6
+ mov r9, r2
+ movs r0, 0x90
+ adds r0, r6
+ mov r10, r0
+ adds r1, r6, 0
+ adds r1, 0x94
+ str r1, [sp, 0x214]
+ adds r2, r6, 0
+ adds r2, 0x3C
+ str r2, [sp, 0x210]
+ adds r0, r6, 0
+ adds r0, 0x98
+ str r0, [sp, 0x218]
+ adds r1, 0x8
+ str r1, [sp, 0x21C]
+ adds r2, 0x64
+ str r2, [sp, 0x220]
+ adds r0, 0x10
+ str r0, [sp, 0x228]
+ adds r1, 0x10
+ str r1, [sp, 0x22C]
+ adds r2, 0x10
+ str r2, [sp, 0x230]
+ adds r0, 0x14
+ str r0, [sp, 0x234]
+ adds r1, 0x14
+ str r1, [sp, 0x238]
+ adds r2, 0x14
+ str r2, [sp, 0x23C]
+ adds r0, 0xC
+ str r0, [sp, 0x240]
+ adds r1, 0x10
+ str r1, [sp, 0x244]
+ adds r2, 0x18
+ str r2, [sp, 0x248]
+ adds r0, 0x18
+ str r0, [sp, 0x24C]
+ adds r1, 0x14
+ str r1, [sp, 0x250]
+ adds r2, 0xC
+ str r2, [sp, 0x254]
+ adds r0, 0xC
+ str r0, [sp, 0x258]
+ adds r1, 0xC
+ str r1, [sp, 0x25C]
+ adds r2, 0x9
+ str r2, [sp, 0x260]
+ adds r0, 0x6
+ str r0, [sp, 0x264]
+ adds r1, 0x3
+ str r1, [sp, 0x268]
+ adds r2, 0x3
+ str r2, [sp, 0x26C]
+ adds r0, 0x9
+ str r0, [sp, 0x280]
+ adds r1, 0x2
+ str r1, [sp, 0x270]
+ adds r2, 0x2
+ str r2, [sp, 0x274]
+ subs r0, 0x4
+ str r0, [sp, 0x278]
+ adds r1, 0x5
+ str r1, [sp, 0x27C]
+ adds r2, 0x6
+ str r2, [sp, 0x284]
+ adds r0, 0x6
+ str r0, [sp, 0x288]
+ adds r1, 0x4
+ str r1, [sp, 0x28C]
+ adds r2, 0x3
+ str r2, [sp, 0x290]
+ subs r0, 0x59
+ str r0, [sp, 0x224]
+ adds r4, r6, 0
+ adds r4, 0x68
+ movs r7, 0x3
+_080810C2:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80830D8
+ adds r4, 0x4
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080810C2
+ adds r0, r5, 0
+ mov r1, r8
+ bl sub_80818E4
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_8081B54
+ adds r0, r5, 0
+ mov r1, r10
+ bl sub_8081B54
+ ldr r2, [sp, 0x214]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_8081880
+ adds r0, r5, 0
+ ldr r1, [sp, 0x210]
+ bl sub_8081898
+ ldr r0, [sp, 0x218]
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083078
+ ldr r2, [sp, 0x21C]
+ ldr r1, [r2]
+ adds r0, r5, 0
+ bl sub_8083078
+ ldr r0, [sp, 0x220]
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083078
+ adds r0, r5, 0
+ ldr r1, [sp, 0x228]
+ bl sub_8081920
+ adds r0, r5, 0
+ ldr r1, [sp, 0x22C]
+ bl sub_808193C
+ adds r0, r5, 0
+ ldr r1, [sp, 0x230]
+ bl sub_8081968
+ adds r0, r5, 0
+ ldr r1, [sp, 0x234]
+ bl sub_8081994
+ adds r0, r5, 0
+ ldr r1, [sp, 0x238]
+ bl sub_80819B0
+ adds r0, r5, 0
+ ldr r1, [sp, 0x23C]
+ bl sub_80819D4
+ adds r0, r5, 0
+ ldr r1, [sp, 0x240]
+ bl sub_80819F0
+ adds r0, r5, 0
+ ldr r1, [sp, 0x244]
+ bl sub_8081A24
+ adds r0, r5, 0
+ ldr r1, [sp, 0x248]
+ bl sub_8081A58
+ adds r0, r5, 0
+ ldr r1, [sp, 0x24C]
+ bl sub_8081A74
+ adds r0, r5, 0
+ ldr r1, [sp, 0x250]
+ bl sub_8081A80
+ adds r0, r5, 0
+ ldr r1, [sp, 0x254]
+ bl sub_8081A9C
+ adds r0, r5, 0
+ ldr r1, [sp, 0x258]
+ bl sub_8081AB8
+ ldr r2, [sp, 0x25C]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x260]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, [sp, 0x264]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x268]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, [sp, 0x26C]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x280]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, [sp, 0x270]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x274]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, [sp, 0x278]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x27C]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, [sp, 0x284]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [sp, 0x288]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, [sp, 0x28C]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r0, [sp, 0x290]
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_808183C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8081854
+ movs r2, 0x82
+ lsls r2, 1
+ adds r0, r6, r2
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_808186C
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r6, r0
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl sub_808314C
+ ldr r2, _08081428
+ adds r1, r6, r2
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl sub_808314C
+ movs r1, 0x89
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, _0808142C
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r1, r6, r2
+ adds r0, r5, 0
+ bl sub_8081B08
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r6, r0
+ adds r0, r5, 0
+ bl sub_8081B34
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r6, r2
+ adds r0, r5, 0
+ bl sub_8081B34
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, _08081430
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r1, _08081434
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r2, 0xA3
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, _08081438
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r1, 0xA5
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r2, _0808143C
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r2, 0xA7
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083030
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083030
+ movs r2, 0xA9
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r1, _08081440
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r2, 0xAA
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r1, _08081444
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r2, 0xAB
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ movs r1, 0xB2
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, _08081448
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r1, 0xB3
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, _0808144C
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r2, _08081450
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ movs r0, 0xB6
+ lsls r0, 1
+ adds r1, r6, r0
+ adds r0, r5, 0
+ bl sub_80830D8
+ movs r1, 0xBA
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830A0
+ movs r2, 0xBC
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083030
+ movs r1, 0xFC
+ lsls r1, 1
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r1, 0xFD
+ lsls r1, 1
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083078
+ ldr r2, [sp, 0x224]
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ bl sub_80818B8
+ movs r3, 0xA5
+ 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
+_08081428: .4byte 0x0000010d
+_0808142C: .4byte 0x00000113
+_08081430: .4byte 0x00000145
+_08081434: .4byte 0x00000147
+_08081438: .4byte 0x00000149
+_0808143C: .4byte 0x0000014b
+_08081440: .4byte 0x00000153
+_08081444: .4byte 0x00000155
+_08081448: .4byte 0x00000165
+_0808144C: .4byte 0x00000167
+_08081450: .4byte 0x00000169
+ thumb_func_end sub_8080E0C
+
+ thumb_func_start sub_8081454
+sub_8081454:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r1, _08081600
+ bl sub_808300C
+ ldr r4, _08081604
+ ldr r0, [r4]
+ ldr r1, _08081608
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _0808160C
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081610
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r2, _08081614
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081618
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_8083060
+ ldr r0, [r4]
+ ldr r2, _0808161C
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_8083060
+ ldr r0, [r4]
+ ldr r1, _08081620
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _08081624
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _08081628
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _0808162C
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _08081630
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_8083048
+ movs r1, 0
+ mov r9, r4
+_08081510:
+ lsls r0, r1, 2
+ adds r2, r1, 0x1
+ mov r8, r2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _08081634
+ adds r6, r0, r1
+ movs r5, 0
+ movs r4, 0x37
+_08081526:
+ mov r2, r9
+ ldr r1, [r2]
+ adds r1, r6
+ adds r1, r5
+ adds r0, r7, 0
+ bl sub_8081B60
+ adds r5, 0x18
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08081526
+ mov r1, r8
+ cmp r1, 0x1F
+ ble _08081510
+ ldr r4, _08081604
+ ldr r1, [r4]
+ ldr r0, _08081638
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_80830D8
+ ldr r1, [r4]
+ ldr r2, _0808163C
+ adds r1, r2
+ adds r0, r7, 0
+ bl sub_80830D8
+ ldr r6, _08081640
+ movs r5, 0x7
+_08081560:
+ ldr r1, [r4]
+ adds r1, r6
+ adds r0, r7, 0
+ bl sub_80830D8
+ adds r6, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08081560
+ ldr r4, _08081604
+ ldr r1, [r4]
+ ldr r0, _08081644
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_80830F8
+ ldr r1, [r4]
+ ldr r2, _08081648
+ adds r1, r2
+ adds r0, r7, 0
+ bl sub_80830F8
+ ldr r1, [r4]
+ ldr r0, _0808164C
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_808312C
+ movs r1, 0
+ mov r10, r4
+_0808159C:
+ movs r4, 0
+ adds r2, r1, 0x1
+ mov r8, r2
+ lsls r0, r1, 1
+ lsls r2, r1, 3
+ mov r9, r2
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _08081650
+ adds r6, r0, r1
+ movs r5, 0
+_080815B2:
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, r6
+ adds r1, r5
+ adds r0, r7, 0
+ bl sub_8081B60
+ mov r1, r10
+ ldr r0, [r1]
+ mov r2, r9
+ adds r1, r4, r2
+ ldr r2, _08081654
+ adds r0, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl sub_8083060
+ adds r5, 0x18
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080815B2
+ mov r1, r8
+ cmp r1, 0x7
+ ble _0808159C
+ ldr r0, _08081604
+ ldr r1, [r0]
+ ldr r0, _08081658
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_8081B94
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081600: .4byte gUnknown_81071E0
+_08081604: .4byte gDungeonGlobalData
+_08081608: .4byte 0x00003a08
+_0808160C: .4byte 0x00003a09
+_08081610: .4byte 0x00003a0a
+_08081614: .4byte 0x00003a0b
+_08081618: .4byte 0x00003a0c
+_0808161C: .4byte 0x00003a0d
+_08081620: .4byte 0x00003a0e
+_08081624: .4byte 0x00003a10
+_08081628: .4byte 0x00003a12
+_0808162C: .4byte 0x00003a14
+_08081630: .4byte 0x00003a16
+_08081634: .4byte 0x00003a18
+_08081638: .4byte 0x0000e218
+_0808163C: .4byte 0x0000e21c
+_08081640: .4byte 0x0000e220
+_08081644: .4byte 0x0000e240
+_08081648: .4byte 0x0000e250
+_0808164C: .4byte 0x0000e260
+_08081650: .4byte 0x0000e27c
+_08081654: .4byte 0x0000e87c
+_08081658: .4byte 0x0000e264
+ thumb_func_end sub_8081454
+
+ thumb_func_start sub_808165C
+sub_808165C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _08081708
+ bl sub_808300C
+ ldr r4, _0808170C
+ ldr r0, [r4]
+ ldr r1, _08081710
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r0, [r4]
+ ldr r1, _08081714
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r0, [r4]
+ ldr r1, _08081718
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _0808171C
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081720
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081724
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081728
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _0808172C
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081730
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081734
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldr r0, [r4]
+ ldr r1, _08081738
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80830B4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081708: .4byte gUnknown_81071E0
+_0808170C: .4byte gDungeonGlobalData
+_08081710: .4byte 0x00018208
+_08081714: .4byte 0x00018209
+_08081718: .4byte 0x0001820a
+_0808171C: .4byte 0x0001820b
+_08081720: .4byte 0x0001820c
+_08081724: .4byte 0x0001820d
+_08081728: .4byte 0x0001820e
+_0808172C: .4byte 0x0001820f
+_08081730: .4byte 0x00018210
+_08081734: .4byte 0x00018211
+_08081738: .4byte 0x00018213
+ thumb_func_end sub_808165C
+
+ thumb_func_start sub_808173C
+sub_808173C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08081778
+ ldr r0, [r4]
+ ldr r1, _0808177C
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _08081780
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ ldr r0, [r4]
+ ldr r1, _08081784
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8083048
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081778: .4byte gDungeonGlobalData
+_0808177C: .4byte 0x0001ced6
+_08081780: .4byte 0x0001ced8
+_08081784: .4byte 0x0001ceda
+ thumb_func_end sub_808173C
+
+ thumb_func_start sub_8081788
+sub_8081788:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r5, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081788
+
+ thumb_func_start sub_80817B0
+sub_80817B0:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80817B0
+
+ thumb_func_start sub_80817C8
+sub_80817C8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r1, r4, 0x2
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0x16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80817C8
+
+ thumb_func_start sub_80817F4
+sub_80817F4:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strh r1, [r2]
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80817F4
+
+ thumb_func_start sub_808180C
+sub_808180C:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808180C
+
+ thumb_func_start sub_8081824
+sub_8081824:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081824
+
+ thumb_func_start sub_808183C
+sub_808183C:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808183C
+
+ thumb_func_start sub_8081854
+sub_8081854:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081854
+
+ thumb_func_start sub_808186C
+sub_808186C:
+ push {lr}
+ sub sp, 0x4
+ str r1, [sp]
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808186C
+
+ thumb_func_start sub_8081880
+sub_8081880:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081880
+
+ thumb_func_start sub_8081898
+sub_8081898:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_808180C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081898
+
+ thumb_func_start sub_80818B8
+sub_80818B8:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8083060
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80818B8
+
+ thumb_func_start sub_80818C8
+sub_80818C8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r4]
+ bl sub_8083060
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80818C8
+
+ thumb_func_start sub_80818E4
+sub_80818E4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r4, 0x3]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083030
+ adds r4, 0x10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80830D8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80818E4
+
+ thumb_func_start sub_8081920
+sub_8081920:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081920
+
+ thumb_func_start sub_808193C
+sub_808193C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x3]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808193C
+
+ thumb_func_start sub_8081968
+sub_8081968:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x9]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldr r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083078
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081968
+
+ thumb_func_start sub_8081994
+sub_8081994:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081994
+
+ thumb_func_start sub_80819B0
+sub_80819B0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80819B0
+
+ thumb_func_start sub_80819D4
+sub_80819D4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80819D4
+
+ thumb_func_start sub_80819F0
+sub_80819F0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_80830B4
+ ldrb r1, [r4, 0x3]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80819F0
+
+ thumb_func_start sub_8081A24
+sub_8081A24:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldr r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083078
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x9]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A24
+
+ thumb_func_start sub_8081A58
+sub_8081A58:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A58
+
+ thumb_func_start sub_8081A74
+sub_8081A74:
+ push {lr}
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A74
+
+ thumb_func_start sub_8081A80
+sub_8081A80:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A80
+
+ thumb_func_start sub_8081A9C
+sub_8081A9C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A9C
+
+ thumb_func_start sub_8081AB8
+sub_8081AB8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081AB8
+
+ thumb_func_start sub_8081AD4
+sub_8081AD4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r4]
+ bl sub_8083060
+ ldrb r1, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_8083060
+ adds r1, r4, 0x2
+ adds r0, r5, 0
+ movs r2, 0x2
+ bl sub_8082FA8
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083060
+ ldrb r1, [r4, 0x5]
+ adds r0, r5, 0
+ bl sub_8083060
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081AD4
+
+ thumb_func_start sub_8081B08
+sub_8081B08:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ adds r4, r7, 0
+ movs r5, 0x3
+_08081B12:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8081AD4
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08081B12
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083060
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081B08
+
+ thumb_func_start sub_8081B34
+sub_8081B34:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8083048
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081B34
+
+ thumb_func_start sub_8081B54
+sub_8081B54:
+ push {lr}
+ movs r2, 0x3
+ bl sub_8082FA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081B54
+
+ thumb_func_start sub_8081B60
+sub_8081B60:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrh r1, [r4]
+ bl sub_8083030
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_8083030
+ adds r1, r4, 0
+ adds r1, 0x9
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0xE
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081B60
+
+ thumb_func_start sub_8081B94
+sub_8081B94:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r5, 0x1
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ movs r4, 0
+_08081BAC:
+ adds r0, r5, 0x3
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083060
+ adds r0, r5, 0
+ adds r0, 0xB
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8083060
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08081BAC
+ ldrb r1, [r5, 0x2]
+ adds r0, r6, 0
+ bl sub_8083060
+ ldrb r1, [r5, 0x13]
+ adds r0, r6, 0
+ bl sub_8083060
+ ldrb r1, [r5, 0x14]
+ adds r0, r6, 0
+ bl sub_8083060
+ ldrb r1, [r5, 0x15]
+ adds r0, r6, 0
+ bl sub_80830B4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081B94
+
+ thumb_func_start sub_8081BF4
+sub_8081BF4:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_8082FD4
+ add r1, sp, 0xC
+ mov r0, sp
+ movs r2, 0x4
+ bl sub_8082FE0
+ mov r0, sp
+ bl sub_8081C50
+ mov r0, sp
+ bl sub_8081C7C
+ mov r0, sp
+ bl sub_8081F2C
+ mov r0, sp
+ bl sub_808201C
+ mov r0, sp
+ bl sub_8082060
+ mov r0, sp
+ bl sub_80820D8
+ mov r0, sp
+ bl sub_808217C
+ ldr r1, _08081C4C
+ mov r0, sp
+ bl sub_8083018
+ mov r0, sp
+ bl nullsub_98
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081C4C: .4byte gUnknown_81071D4
+ thumb_func_end sub_8081BF4
+
+ thumb_func_start sub_8081C50
+sub_8081C50:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08081C70
+ bl sub_8083018
+ ldr r0, _08081C74
+ ldr r1, [r0]
+ ldr r0, _08081C78
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0x58
+ bl sub_8082FE0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081C70: .4byte gUnknown_81071E0
+_08081C74: .4byte gDungeonGlobalData
+_08081C78: .4byte 0x00000644
+ thumb_func_end sub_8081C50
+
+ thumb_func_start sub_8081C7C
+sub_8081C7C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r1, _08081E20
+ bl sub_8083018
+ adds r0, r7, 0
+ bl sub_80831DC
+ ldr r4, _08081E24
+ ldr r1, [r4]
+ ldr r2, _08081E28
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r3, _08081E2C
+ adds r1, r3
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08081E30
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r3, _08081E34
+ adds r1, r3
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083188
+ ldr r1, [r4]
+ ldr r2, _08081E38
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083188
+ ldr r1, [r4]
+ ldr r3, _08081E3C
+ adds r1, r3
+ strb r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r2, _08081E40
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r3, _08081E44
+ adds r1, r3
+ strh r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r2, _08081E48
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r3, _08081E4C
+ adds r1, r3
+ strh r0, [r1]
+ adds r0, r7, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r2, _08081E50
+ adds r1, r2
+ strh r0, [r1]
+ movs r1, 0
+ mov r9, r4
+_08081D2E:
+ lsls r0, r1, 2
+ adds r3, r1, 0x1
+ mov r8, r3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _08081E54
+ adds r6, r0, r1
+ movs r5, 0
+ movs r4, 0x37
+_08081D44:
+ mov r2, r9
+ ldr r1, [r2]
+ adds r1, r6
+ adds r1, r5
+ adds r0, r7, 0
+ bl sub_8081E7C
+ adds r5, 0x18
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08081D44
+ mov r1, r8
+ cmp r1, 0x1F
+ ble _08081D2E
+ ldr r4, _08081E24
+ ldr r1, [r4]
+ ldr r3, _08081E58
+ adds r1, r3
+ adds r0, r7, 0
+ bl sub_80831F8
+ ldr r1, [r4]
+ ldr r0, _08081E5C
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_80831F8
+ ldr r6, _08081E60
+ movs r5, 0x7
+_08081D7E:
+ ldr r1, [r4]
+ adds r1, r6
+ adds r0, r7, 0
+ bl sub_80831F8
+ adds r6, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08081D7E
+ ldr r4, _08081E24
+ ldr r1, [r4]
+ ldr r2, _08081E64
+ adds r1, r2
+ adds r0, r7, 0
+ bl sub_8083220
+ ldr r1, [r4]
+ ldr r3, _08081E68
+ adds r1, r3
+ adds r0, r7, 0
+ bl sub_8083220
+ ldr r1, [r4]
+ ldr r0, _08081E6C
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_8083260
+ movs r1, 0
+ mov r10, r4
+_08081DBA:
+ movs r4, 0
+ adds r2, r1, 0x1
+ mov r8, r2
+ lsls r0, r1, 1
+ lsls r3, r1, 3
+ mov r9, r3
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _08081E70
+ adds r6, r0, r1
+ movs r5, 0
+_08081DD0:
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, r6
+ adds r1, r5
+ adds r0, r7, 0
+ bl sub_8081E7C
+ adds r0, r7, 0
+ bl sub_8083188
+ mov r3, r10
+ ldr r1, [r3]
+ mov r3, r9
+ adds r2, r4, r3
+ ldr r3, _08081E74
+ adds r1, r3
+ adds r1, r2
+ strb r0, [r1]
+ adds r5, 0x18
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08081DD0
+ mov r1, r8
+ cmp r1, 0x7
+ ble _08081DBA
+ ldr r0, _08081E24
+ ldr r1, [r0]
+ ldr r0, _08081E78
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_8081EC0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081E20: .4byte gUnknown_81071E0
+_08081E24: .4byte gDungeonGlobalData
+_08081E28: .4byte 0x00003a08
+_08081E2C: .4byte 0x00003a09
+_08081E30: .4byte 0x00003a0a
+_08081E34: .4byte 0x00003a0b
+_08081E38: .4byte 0x00003a0c
+_08081E3C: .4byte 0x00003a0d
+_08081E40: .4byte 0x00003a0e
+_08081E44: .4byte 0x00003a10
+_08081E48: .4byte 0x00003a12
+_08081E4C: .4byte 0x00003a14
+_08081E50: .4byte 0x00003a16
+_08081E54: .4byte 0x00003a18
+_08081E58: .4byte 0x0000e218
+_08081E5C: .4byte 0x0000e21c
+_08081E60: .4byte 0x0000e220
+_08081E64: .4byte 0x0000e240
+_08081E68: .4byte 0x0000e250
+_08081E6C: .4byte 0x0000e260
+_08081E70: .4byte 0x0000e27c
+_08081E74: .4byte 0x0000e87c
+_08081E78: .4byte 0x0000e264
+ thumb_func_end sub_8081C7C
+
+ thumb_func_start sub_8081E7C
+sub_8081E7C:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r5, 0
+ bl sub_8083158
+ movs r6, 0
+ strh r0, [r4]
+ adds r0, r5, 0
+ bl sub_8083158
+ strh r0, [r4, 0x4]
+ adds r1, r4, 0
+ adds r1, 0x9
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r1, r4, 0
+ adds r1, 0xE
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ str r6, [r4, 0x10]
+ str r6, [r4, 0x14]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081E7C
+
+ thumb_func_start sub_8081EC0
+sub_8081EC0:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r1, r5, 0x1
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ movs r4, 0
+_08081EE6:
+ adds r0, r6, 0
+ bl sub_8083188
+ adds r1, r5, 0x3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl sub_8083188
+ adds r1, r5, 0
+ adds r1, 0xB
+ adds r1, r4
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08081EE6
+ adds r0, r6, 0
+ bl sub_8083188
+ strb r0, [r5, 0x2]
+ adds r0, r6, 0
+ bl sub_8083188
+ strb r0, [r5, 0x13]
+ adds r0, r6, 0
+ bl sub_8083188
+ strb r0, [r5, 0x14]
+ adds r0, r6, 0
+ bl sub_80831DC
+ strb r0, [r5, 0x15]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081EC0
+
+ thumb_func_start sub_8081F2C
+sub_8081F2C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _08081FE4
+ bl sub_8083018
+ ldr r4, _08081FE8
+ ldr r0, [r4]
+ ldr r1, _08081FEC
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, [r4]
+ ldr r2, _08081FF0
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, [r4]
+ ldr r2, _08081FF4
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08081FF8
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08081FFC
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082000
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082004
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082008
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _0808200C
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082010
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082014
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082018
+ adds r1, r2
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081FE4: .4byte gUnknown_81071E0
+_08081FE8: .4byte gDungeonGlobalData
+_08081FEC: .4byte 0x000181f8
+_08081FF0: .4byte 0x00018208
+_08081FF4: .4byte 0x00018209
+_08081FF8: .4byte 0x0001820a
+_08081FFC: .4byte 0x0001820b
+_08082000: .4byte 0x0001820c
+_08082004: .4byte 0x0001820d
+_08082008: .4byte 0x0001820e
+_0808200C: .4byte 0x0001820f
+_08082010: .4byte 0x00018210
+_08082014: .4byte 0x00018211
+_08082018: .4byte 0x00018213
+ thumb_func_end sub_8081F2C
+
+ thumb_func_start sub_808201C
+sub_808201C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8083170
+ ldr r4, _08082050
+ ldr r1, [r4]
+ ldr r2, _08082054
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r2, _08082058
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083170
+ ldr r1, [r4]
+ ldr r2, _0808205C
+ adds r1, r2
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082050: .4byte gDungeonGlobalData
+_08082054: .4byte 0x0001ced6
+_08082058: .4byte 0x0001ced8
+_0808205C: .4byte 0x0001ceda
+ thumb_func_end sub_808201C
+
+ thumb_func_start sub_8082060
+sub_8082060:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _080820A4
+ bl sub_8083018
+ add r4, sp, 0x4
+ mov r7, sp
+ movs r6, 0x3F
+_08082072:
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_80820A8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80831F8
+ ldrb r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08082096
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0
+ bl sub_80460F8
+_08082096:
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08082072
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080820A4: .4byte gUnknown_81071E0
+ thumb_func_end sub_8082060
+
+ thumb_func_start sub_80820A8
+sub_80820A8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r1, r4, 0x1
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80820A8
+
+ thumb_func_start sub_80820D8
+sub_80820D8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _08082178
+ bl sub_8083018
+ movs r0, 0x1
+ add r0, sp
+ mov r9, r0
+ add r1, sp, 0x4
+ mov r8, r1
+ mov r7, sp
+ movs r2, 0x3F
+ mov r10, r2
+_080820FC:
+ movs r0, 0x6
+ strb r0, [r7]
+ movs r0, 0
+ mov r3, sp
+ strb r0, [r3, 0x1]
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r5, 0
+ mov r1, sp
+ adds r1, 0x1
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r5, 0
+ bl sub_80831DC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ add r1, sp, 0x4
+ bl sub_80831F8
+ ldrb r0, [r7]
+ cmp r0, 0xFF
+ beq _0808215C
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ mov r3, sp
+ movs r2, 0x6
+ ldrsh r1, [r3, r2]
+ bl GetMapEntity
+ adds r4, r0, 0
+ ldrb r0, [r7]
+ mov r3, r9
+ ldrb r2, [r3]
+ mov r1, r8
+ bl sub_8045684
+ cmp r0, 0
+ beq _0808215C
+ str r0, [r4, 0x14]
+ adds r0, 0x20
+ strb r6, [r0]
+_0808215C:
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0
+ bge _080820FC
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082178: .4byte gUnknown_81071E0
+ thumb_func_end sub_80820D8
+
+ thumb_func_start sub_808217C
+sub_808217C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _08082250
+ bl sub_8083018
+ adds r0, r5, 0
+ bl sub_80831A0
+ ldr r4, _08082254
+ ldr r1, [r4]
+ ldr r2, _08082258
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831A0
+ ldr r1, [r4]
+ ldr r2, _0808225C
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082260
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082264
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082268
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _0808226C
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082270
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082274
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _08082278
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [r4]
+ ldr r2, _0808227C
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083158
+ ldr r1, [r4]
+ movs r2, 0xE0
+ lsls r2, 6
+ adds r1, r2
+ strh r0, [r1]
+ movs r4, 0
+_08082226:
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_8082280
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08082226
+ movs r4, 0
+_08082238:
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_8082280
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08082238
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082250: .4byte gUnknown_81071E0
+_08082254: .4byte gDungeonGlobalData
+_08082258: .4byte 0x000037f0
+_0808225C: .4byte 0x000037f4
+_08082260: .4byte 0x000037f8
+_08082264: .4byte 0x000037f9
+_08082268: .4byte 0x000037fa
+_0808226C: .4byte 0x000037fb
+_08082270: .4byte 0x000037fc
+_08082274: .4byte 0x000037fd
+_08082278: .4byte 0x000037fe
+_0808227C: .4byte 0x000037ff
+ thumb_func_end sub_808217C
+
+ thumb_func_start sub_8082280
+sub_8082280:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0808266C
+ add sp, r4
+ adds r5, r0, 0
+ str r2, [sp, 0x210]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x20C]
+ movs r2, 0x82
+ lsls r2, 2
+ mov r0, sp
+ movs r1, 0
+ bl memset
+ adds r0, r5, 0
+ bl sub_8083188
+ adds r0, r5, 0
+ bl sub_8083188
+ adds r0, r5, 0
+ bl sub_8083188
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x214]
+ add r4, sp, 0x208
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80831F8
+ adds r0, r5, 0
+ bl sub_80831DC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x218]
+ adds r0, r5, 0
+ bl sub_8083158
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x21C]
+ ldr r1, _08082670
+ movs r0, 0
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083158
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082BC0
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r5, 0
+ bl sub_8082BC0
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r5, 0
+ bl sub_80831DC
+ mov r1, sp
+ strb r0, [r1, 0x6]
+ adds r0, r5, 0
+ bl sub_80831DC
+ mov r1, sp
+ strb r0, [r1, 0x7]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x8]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x9]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0xA]
+ add r1, sp, 0x40
+ adds r0, r5, 0
+ bl sub_8082F64
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0xC]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x10]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x12]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x14]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x15]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x16]
+ adds r0, r5, 0
+ bl sub_8083188
+ mov r1, sp
+ strb r0, [r1, 0x17]
+ adds r0, r5, 0
+ bl sub_80831A0
+ str r0, [sp, 0x18]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x1C]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x1E]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x20]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x22]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x24]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x26]
+ adds r0, r5, 0
+ bl sub_8083170
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r5, 0
+ bl sub_80831C8
+ str r0, [sp, 0x2C]
+ adds r0, r5, 0
+ bl sub_80831C8
+ str r0, [sp, 0x30]
+ adds r0, r5, 0
+ bl sub_80831C8
+ str r0, [sp, 0x34]
+ adds r0, r5, 0
+ bl sub_80831C8
+ str r0, [sp, 0x38]
+ add r1, sp, 0x44
+ adds r0, r5, 0
+ bl sub_8082CBC
+ adds r0, r5, 0
+ bl sub_8082BFC
+ add r1, sp, 0x5C
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082BFC
+ mov r1, sp
+ adds r1, 0x5D
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082C18
+ mov r1, sp
+ adds r1, 0x5E
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082C18
+ mov r1, sp
+ adds r1, 0x5F
+ strb r0, [r1]
+ add r1, sp, 0x60
+ adds r0, r5, 0
+ bl sub_80820A8
+ adds r0, r5, 0
+ bl sub_8082BE0
+ add r1, sp, 0x64
+ strb r0, [r1]
+ add r7, sp, 0x78
+ add r0, sp, 0x8C
+ mov r8, r0
+ add r1, sp, 0x90
+ mov r9, r1
+ add r2, sp, 0x94
+ mov r10, r2
+ mov r3, sp
+ adds r3, 0x3C
+ str r3, [sp, 0x270]
+ mov r0, sp
+ adds r0, 0x98
+ str r0, [sp, 0x274]
+ mov r1, sp
+ adds r1, 0x9C
+ str r1, [sp, 0x278]
+ mov r2, sp
+ adds r2, 0xA0
+ str r2, [sp, 0x27C]
+ adds r3, 0x6C
+ str r3, [sp, 0x284]
+ adds r0, 0x14
+ str r0, [sp, 0x288]
+ adds r1, 0x14
+ str r1, [sp, 0x28C]
+ adds r2, 0x1C
+ str r2, [sp, 0x290]
+ adds r3, 0x18
+ str r3, [sp, 0x294]
+ adds r0, 0x18
+ str r0, [sp, 0x298]
+ adds r1, 0x18
+ str r1, [sp, 0x29C]
+ adds r2, 0x14
+ str r2, [sp, 0x220]
+ adds r3, 0x1C
+ str r3, [sp, 0x224]
+ adds r0, 0x1C
+ str r0, [sp, 0x228]
+ adds r1, 0x1C
+ str r1, [sp, 0x22C]
+ adds r2, 0x18
+ str r2, [sp, 0x230]
+ adds r3, 0x10
+ str r3, [sp, 0x234]
+ adds r0, 0x10
+ str r0, [sp, 0x238]
+ adds r1, 0xD
+ str r1, [sp, 0x23C]
+ adds r2, 0xA
+ str r2, [sp, 0x240]
+ adds r3, 0x7
+ str r3, [sp, 0x244]
+ adds r0, 0x4
+ str r0, [sp, 0x248]
+ adds r1, 0xA
+ str r1, [sp, 0x25C]
+ adds r2, 0x3
+ str r2, [sp, 0x24C]
+ adds r3, 0x3
+ str r3, [sp, 0x250]
+ adds r0, 0x3
+ str r0, [sp, 0x254]
+ subs r1, 0x1
+ str r1, [sp, 0x258]
+ adds r2, 0x7
+ str r2, [sp, 0x260]
+ adds r3, 0x7
+ str r3, [sp, 0x264]
+ adds r0, 0x7
+ str r0, [sp, 0x268]
+ adds r1, 0x5
+ str r1, [sp, 0x26C]
+ subs r2, 0x58
+ str r2, [sp, 0x280]
+ add r4, sp, 0x68
+ movs r6, 0x3
+_080824DC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80831F8
+ adds r4, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080824DC
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8082CE4
+ adds r0, r5, 0
+ mov r1, r8
+ bl sub_8082D28
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_8082D28
+ adds r0, r5, 0
+ bl sub_8082C84
+ movs r4, 0
+ mov r3, r10
+ strb r0, [r3]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x270]
+ bl sub_8082F80
+ adds r0, r5, 0
+ bl sub_80831A0
+ ldr r1, [sp, 0x274]
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831A0
+ ldr r2, [sp, 0x278]
+ str r0, [r2]
+ adds r0, r5, 0
+ bl sub_80831A0
+ ldr r3, [sp, 0x27C]
+ str r0, [r3]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x284]
+ bl sub_8082D34
+ adds r0, r5, 0
+ ldr r1, [sp, 0x288]
+ bl sub_8082D50
+ adds r0, r5, 0
+ ldr r1, [sp, 0x28C]
+ bl sub_8082D7C
+ adds r0, r5, 0
+ ldr r1, [sp, 0x290]
+ bl sub_8082DA8
+ adds r0, r5, 0
+ ldr r1, [sp, 0x294]
+ bl sub_8082DC4
+ adds r0, r5, 0
+ ldr r1, [sp, 0x298]
+ bl sub_8082DE8
+ adds r0, r5, 0
+ ldr r1, [sp, 0x29C]
+ bl sub_8082E04
+ adds r0, r5, 0
+ ldr r1, [sp, 0x220]
+ bl sub_8082E38
+ adds r0, r5, 0
+ ldr r1, [sp, 0x224]
+ bl sub_8082E6C
+ adds r0, r5, 0
+ ldr r1, [sp, 0x228]
+ bl sub_8082E88
+ adds r0, r5, 0
+ ldr r1, [sp, 0x22C]
+ bl sub_8082E94
+ adds r0, r5, 0
+ ldr r1, [sp, 0x230]
+ bl sub_8082EB0
+ adds r0, r5, 0
+ ldr r1, [sp, 0x234]
+ bl sub_8082ECC
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [sp, 0x238]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r2, [sp, 0x23C]
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r3, [sp, 0x240]
+ strb r0, [r3]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [sp, 0x244]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r2, [sp, 0x248]
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r3, [sp, 0x25C]
+ strb r0, [r3]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, [sp, 0x24C]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r2, [sp, 0x250]
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r3, [sp, 0x254]
+ strb r0, [r3]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, [sp, 0x258]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r2, [sp, 0x260]
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r3, [sp, 0x264]
+ strb r0, [r3]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, [sp, 0x268]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082C34
+ ldr r2, [sp, 0x26C]
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_8082C50
+ add r1, sp, 0x100
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082C6C
+ add r1, sp, 0x104
+ str r0, [r1]
+ add r1, sp, 0x108
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl sub_8083288
+ ldr r1, _08082674
+ add r1, sp
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl sub_8083288
+ adds r0, r5, 0
+ bl sub_8083188
+ movs r1, 0x89
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ b _08082678
+ .align 2, 0
+_0808266C: .4byte 0xfffffd60
+_08082670: .4byte gLeaderPokemon
+_08082674: .4byte 0x0000010d
+_08082678:
+ ldr r1, _08082818
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ add r1, sp, 0x114
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ add r1, sp, 0x118
+ adds r0, r5, 0
+ bl sub_8082F1C
+ add r1, sp, 0x13C
+ adds r0, r5, 0
+ bl sub_8082F48
+ add r1, sp, 0x140
+ adds r0, r5, 0
+ bl sub_8082F48
+ adds r0, r5, 0
+ bl sub_80831DC
+ add r1, sp, 0x144
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, _0808281C
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, _08082820
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ movs r1, 0xA3
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ add r1, sp, 0x148
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, _08082824
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ movs r1, 0xA5
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, _08082828
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ add r1, sp, 0x14C
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083158
+ movs r1, 0xA7
+ lsls r1, 1
+ add r1, sp
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083158
+ add r1, sp, 0x150
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ movs r1, 0xA9
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, _0808282C
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ add r1, sp, 0x154
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ ldr r1, _08082830
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ movs r1, 0xAB
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ add r1, sp, 0x164
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, _08082834
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ movs r1, 0xB3
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, _08082838
+ add r1, sp
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ add r1, sp, 0x168
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083188
+ ldr r1, _0808283C
+ add r1, sp
+ strb r0, [r1]
+ add r1, sp, 0x16C
+ adds r0, r5, 0
+ bl sub_80831F8
+ adds r0, r5, 0
+ bl sub_80831C8
+ add r1, sp, 0x174
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083158
+ add r1, sp, 0x178
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083170
+ add r1, sp, 0x1F8
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_8083170
+ movs r1, 0xFD
+ lsls r1, 1
+ add r1, sp
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_80831A0
+ add r1, sp, 0x1FC
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_8082CA0
+ ldr r3, [sp, 0x280]
+ strb r0, [r3]
+ ldr r0, _08082840
+ str r4, [r0]
+ ldr r0, [sp, 0x214]
+ cmp r0, 0
+ beq _080828BE
+ ldr r1, [sp, 0x20C]
+ cmp r1, 0
+ beq _08082844
+ mov r0, sp
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ mov r1, sp
+ movs r3, 0x4
+ ldrsh r1, [r1, r3]
+ ldr r2, [sp, 0x210]
+ bl sub_80828E0
+ b _08082856
+ .align 2, 0
+_08082818: .4byte 0x00000113
+_0808281C: .4byte 0x00000145
+_08082820: .4byte 0x00000147
+_08082824: .4byte 0x00000149
+_08082828: .4byte 0x0000014b
+_0808282C: .4byte 0x00000153
+_08082830: .4byte 0x00000155
+_08082834: .4byte 0x00000165
+_08082838: .4byte 0x00000167
+_0808283C: .4byte 0x00000169
+_08082840: .4byte gLeaderPokemon
+_08082844:
+ mov r0, sp
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ mov r1, sp
+ movs r2, 0x4
+ ldrsh r1, [r1, r2]
+ ldr r2, [sp, 0x210]
+ bl sub_8082A08
+_08082856:
+ adds r7, r0, 0
+ cmp r7, 0
+ beq _080828BE
+ ldr r6, [r7, 0x70]
+ movs r5, 0x82
+ lsls r5, 2
+ mov r3, sp
+ adds r4, r3, r5
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ ldr r3, _080828D4
+ add r3, sp
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ bl GetMapEntity
+ ldr r1, [r4]
+ str r1, [r7, 0x8]
+ ldr r1, [r4]
+ str r1, [r7, 0x4]
+ str r7, [r0, 0x10]
+ adds r0, r7, 0
+ adds r0, 0x20
+ movs r4, 0
+ add r1, sp, 0x218
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r2, sp, 0x21C
+ ldrh r2, [r2]
+ strh r2, [r7, 0x26]
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ bl memcpy
+ ldr r0, _080828D8
+ str r4, [r0]
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ beq _080828B0
+ ldr r0, _080828DC
+ ldrh r1, [r7, 0x4]
+ strh r1, [r0]
+ ldrh r1, [r7, 0x6]
+ strh r1, [r0, 0x2]
+_080828B0:
+ adds r0, r7, 0
+ bl LoadIQSkills
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_804535C
+_080828BE:
+ movs r3, 0xA8
+ 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
+_080828D4: .4byte 0x0000020a
+_080828D8: .4byte gLeaderPokemon
+_080828DC: .4byte gUnknown_203B410
+ thumb_func_end sub_8082280
+
+ thumb_func_start sub_80828E0
+sub_80828E0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r2, 0
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ asrs r1, 16
+ mov r8, r1
+ movs r4, 0x1
+ negs r4, r4
+ mov r0, r8
+ bl GetPokemonSize
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ movs r0, 0x6
+ subs r7, r0, r6
+ ldr r0, _08082914
+ mov r9, r0
+ b _0808291A
+ .align 2, 0
+_08082914: .4byte gUnknown_202EE70
+_08082918:
+ adds r3, 0x1
+_0808291A:
+ cmp r3, r7
+ bgt _0808293E
+ movs r2, 0
+ cmp r2, r6
+ bge _08082938
+ mov r0, r9
+ adds r1, r3, r0
+ b _08082932
+_0808292A:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r6
+ bge _08082938
+_08082932:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0808292A
+_08082938:
+ cmp r2, r6
+ bne _08082918
+ adds r4, r3, 0
+_0808293E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0808294A
+ movs r0, 0
+ b _080829E6
+_0808294A:
+ ldr r2, _080829F4
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ ldr r3, _080829F8
+ adds r0, r3
+ adds r0, r1
+ ldr r7, [r0]
+ movs r0, 0x1
+ mov r9, r0
+ str r0, [r7]
+ adds r0, r7, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ lsls r0, r5, 6
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080829FC
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r7, 0x70]
+ movs r5, 0
+ mov r3, r10
+ strh r3, [r1, 0x2]
+ ldr r0, [r7, 0x70]
+ mov r1, r8
+ strh r1, [r0, 0x4]
+ ldr r0, [r7, 0x70]
+ strb r5, [r0, 0x6]
+ mov r0, r8
+ bl sub_80687D0
+ str r0, [r7, 0x64]
+ lsls r0, r4, 4
+ adds r0, 0x40
+ adds r1, r7, 0
+ adds r1, 0x68
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r0, 0x6C
+ strb r5, [r0]
+ adds r1, 0x1
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r0, 0x6D
+ mov r3, r9
+ strb r3, [r0]
+ adds r0, 0x2
+ strb r3, [r0]
+ movs r0, 0
+ str r0, [r7, 0x1C]
+ bl sub_8045ACC
+ ldr r0, [r7, 0x70]
+ ldr r1, _08082A00
+ adds r0, r1
+ strb r4, [r0]
+ ldr r0, [r7, 0x70]
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r3
+ strb r6, [r0]
+ cmp r6, 0
+ beq _080829E4
+ ldr r3, _08082A04
+ movs r2, 0x1
+ adds r1, r6, 0
+_080829D8:
+ adds r0, r4, r3
+ strb r2, [r0]
+ adds r4, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080829D8
+_080829E4:
+ adds r0, r7, 0
+_080829E6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080829F4: .4byte gDungeonGlobalData
+_080829F8: .4byte 0x0001357c
+_080829FC: .4byte 0x0000069c
+_08082A00: .4byte 0x00000167
+_08082A04: .4byte gUnknown_202EE70
+ thumb_func_end sub_80828E0
+
+ thumb_func_start sub_8082A08
+sub_8082A08:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r2, 0
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ mov r0, r9
+ bl GetPokemonSize
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ movs r0, 0x10
+ subs r4, r0, r6
+ ldr r7, _08082A3C
+ b _08082A42
+ .align 2, 0
+_08082A3C: .4byte gUnknown_202EE76
+_08082A40:
+ adds r3, 0x1
+_08082A42:
+ cmp r3, r4
+ bgt _08082A64
+ movs r2, 0
+ cmp r2, r6
+ bge _08082A5E
+ adds r1, r3, r7
+ b _08082A58
+_08082A50:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r6
+ bge _08082A5E
+_08082A58:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08082A50
+_08082A5E:
+ cmp r2, r6
+ bne _08082A40
+ mov r8, r3
+_08082A64:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bne _08082A70
+ movs r0, 0
+ b _08082B1C
+_08082A70:
+ ldr r2, _08082B2C
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ ldr r3, _08082B30
+ adds r0, r3
+ adds r0, r1
+ ldr r7, [r0]
+ movs r4, 0x1
+ str r4, [r7]
+ adds r0, r7, 0
+ adds r0, 0x24
+ movs r1, 0
+ mov r10, r1
+ strb r5, [r0]
+ subs r0, 0x2
+ mov r3, r10
+ strb r3, [r0]
+ lsls r0, r5, 6
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08082B34
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r7, 0x70]
+ movs r5, 0
+ mov r2, sp
+ ldrh r2, [r2]
+ strh r2, [r1, 0x2]
+ ldr r0, [r7, 0x70]
+ mov r3, r9
+ strh r3, [r0, 0x4]
+ ldr r0, [r7, 0x70]
+ strb r4, [r0, 0x6]
+ mov r0, r9
+ bl sub_80687D0
+ str r0, [r7, 0x64]
+ mov r1, r8
+ lsls r0, r1, 4
+ adds r0, 0xA0
+ adds r1, r7, 0
+ adds r1, 0x68
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r0, 0x6C
+ strb r5, [r0]
+ adds r1, 0x1
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r0, 0x6D
+ strb r4, [r0]
+ adds r0, 0x2
+ strb r4, [r0]
+ mov r2, r10
+ str r2, [r7, 0x1C]
+ ldr r0, [r7, 0x70]
+ ldr r3, _08082B38
+ adds r0, r3
+ mov r4, r8
+ strb r4, [r0]
+ ldr r0, [r7, 0x70]
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r1
+ strb r6, [r0]
+ cmp r6, 0
+ beq _08082B16
+ ldr r3, _08082B3C
+ movs r2, 0x1
+ adds r1, r6, 0
+_08082B06:
+ mov r4, r8
+ adds r0, r4, r3
+ strb r2, [r0]
+ movs r0, 0x1
+ add r8, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08082B06
+_08082B16:
+ bl sub_8045ACC
+ adds r0, r7, 0
+_08082B1C:
+ 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
+_08082B2C: .4byte gDungeonGlobalData
+_08082B30: .4byte 0x0001358c
+_08082B34: .4byte 0x00000ebc
+_08082B38: .4byte 0x00000167
+_08082B3C: .4byte gUnknown_202EE76
+ thumb_func_end sub_8082A08
+
+ thumb_func_start sub_8082B40
+sub_8082B40:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r6, 0
+_08082B46:
+ ldr r0, _08082BB8
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08082BBC
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08082BA8
+ ldr r4, [r5, 0x70]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_80687D0
+ str r0, [r5, 0x64]
+ adds r0, r5, 0
+ bl sub_806CEBC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806CCB4
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ mov r2, sp
+ movs r3, 0x3
+ bl AddPokemonDungeonSprite
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl GetMapEntity
+ ldrb r1, [r0, 0x9]
+ adds r0, r5, 0
+ adds r0, 0x25
+ strb r1, [r0]
+_08082BA8:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08082B46
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082BB8: .4byte gDungeonGlobalData
+_08082BBC: .4byte 0x000135cc
+ thumb_func_end sub_8082B40
+
+ thumb_func_start sub_8082BC0
+sub_8082BC0:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strh r1, [r2]
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FE0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082BC0
+
+ thumb_func_start sub_8082BE0
+sub_8082BE0:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082BE0
+
+ thumb_func_start sub_8082BFC
+sub_8082BFC:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082BFC
+
+ thumb_func_start sub_8082C18
+sub_8082C18:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C18
+
+ thumb_func_start sub_8082C34
+sub_8082C34:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C34
+
+ thumb_func_start sub_8082C50
+sub_8082C50:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C50
+
+ thumb_func_start sub_8082C6C
+sub_8082C6C:
+ push {lr}
+ sub sp, 0x4
+ movs r1, 0
+ str r1, [sp]
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FE0
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C6C
+
+ thumb_func_start sub_8082C84
+sub_8082C84:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C84
+
+ thumb_func_start sub_8082CA0
+sub_8082CA0:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ movs r1, 0
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082CA0
+
+ thumb_func_start sub_8082CBC
+sub_8082CBC:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ strh r0, [r4]
+ adds r1, r4, 0x2
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ movs r0, 0x7
+ strb r0, [r4, 0x3]
+ adds r4, 0x14
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80831F8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082CBC
+
+ thumb_func_start sub_8082CE4
+sub_8082CE4:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r5, 0
+ bl sub_80831DC
+ movs r6, 0
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80831DC
+ strb r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_80831DC
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ bl sub_8083158
+ strh r0, [r4, 0x4]
+ str r6, [r4, 0x8]
+ str r6, [r4, 0xC]
+ adds r4, 0x10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80831F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082CE4
+
+ thumb_func_start sub_8082D28
+sub_8082D28:
+ push {lr}
+ movs r2, 0x3
+ bl sub_8082FE0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D28
+
+ thumb_func_start sub_8082D34
+sub_8082D34:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D34
+
+ thumb_func_start sub_8082D50
+sub_8082D50:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x2]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D50
+
+ thumb_func_start sub_8082D7C
+sub_8082D7C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x8]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x9]
+ adds r0, r4, 0
+ bl sub_80831A0
+ str r0, [r5, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D7C
+
+ thumb_func_start sub_8082DA8
+sub_8082DA8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082DA8
+
+ thumb_func_start sub_8082DC4
+sub_8082DC4:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082DC4
+
+ thumb_func_start sub_8082DE8
+sub_8082DE8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082DE8
+
+ thumb_func_start sub_8082E04
+sub_8082E04:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_80831DC
+ strb r0, [r5, 0x1]
+ adds r0, r4, 0
+ bl sub_80831DC
+ strb r0, [r5, 0x2]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x3]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082E04
+
+ thumb_func_start sub_8082E38
+sub_8082E38:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_80831A0
+ str r0, [r5, 0x4]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x8]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x9]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0xA]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082E38
+
+ thumb_func_start sub_8082E6C
+sub_8082E6C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082E6C
+
+ thumb_func_start sub_8082E88
+sub_8082E88:
+ push {lr}
+ movs r2, 0x1
+ bl sub_8082FE0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082E88
+
+ thumb_func_start sub_8082E94
+sub_8082E94:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082E94
+
+ thumb_func_start sub_8082EB0
+sub_8082EB0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082EB0
+
+ thumb_func_start sub_8082ECC
+sub_8082ECC:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082ECC
+
+ thumb_func_start sub_8082EE8
+sub_8082EE8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_8083188
+ strb r0, [r5]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x2
+ bl sub_8082FE0
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x4]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082EE8
+
+ thumb_func_start sub_8082F1C
+sub_8082F1C:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ adds r4, r7, 0
+ movs r5, 0x3
+_08082F26:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8082EE8
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08082F26
+ adds r0, r6, 0
+ bl sub_8083188
+ adds r1, r7, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082F1C
+
+ thumb_func_start sub_8082F48
+sub_8082F48:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_8083170
+ strh r0, [r5]
+ adds r0, r4, 0
+ bl sub_8083170
+ strh r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082F48
+
+ thumb_func_start sub_8082F64
+sub_8082F64:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_8083188
+ strb r0, [r5]
+ adds r0, r4, 0
+ bl sub_8083188
+ strb r0, [r5, 0x1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082F64
+
+ thumb_func_start sub_8082F80
+sub_8082F80:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_8083170
+ strh r0, [r5]
+ adds r0, r4, 0
+ bl sub_8082BFC
+ strb r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082F80
+
+ thumb_func_start sub_8082F9C
+sub_8082F9C:
+ str r1, [r0]
+ movs r3, 0
+ str r3, [r0, 0x8]
+ adds r1, r2
+ str r1, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_8082F9C
+
+ thumb_func_start sub_8082FA8
+sub_8082FA8:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0
+ beq _08082FCC
+_08082FB2:
+ ldr r1, [r3]
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x1
+ str r0, [r3]
+ adds r4, 0x1
+ subs r2, 0x1
+ ldr r0, [r3, 0x8]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ cmp r2, 0
+ bne _08082FB2
+_08082FCC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082FA8
+
+ thumb_func_start sub_8082FD4
+sub_8082FD4:
+ str r1, [r0]
+ movs r3, 0
+ str r3, [r0, 0x8]
+ adds r1, r2
+ str r1, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_8082FD4
+
+ thumb_func_start sub_8082FE0
+sub_8082FE0:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0
+ beq _08083002
+_08082FEA:
+ ldr r1, [r3]
+ ldrb r0, [r1]
+ strb r0, [r4]
+ adds r1, 0x1
+ str r1, [r3]
+ adds r4, 0x1
+ subs r2, 0x1
+ ldr r0, [r3, 0x8]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ cmp r2, 0
+ bne _08082FEA
+_08083002:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082FE0
+
+ thumb_func_start nullsub_98
+nullsub_98:
+ bx lr
+ thumb_func_end nullsub_98
+
+ thumb_func_start sub_808300C
+sub_808300C:
+ push {lr}
+ movs r2, 0x8
+ bl sub_8082FA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808300C
+
+ thumb_func_start sub_8083018
+sub_8083018:
+ push {lr}
+ sub sp, 0xC
+ mov r1, sp
+ movs r2, 0x8
+ bl sub_8082FE0
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x8]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083018
+
+ thumb_func_start sub_8083030
+sub_8083030:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strh r1, [r2]
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083030
+
+ thumb_func_start sub_8083048
+sub_8083048:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strh r1, [r2]
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083048
+
+ thumb_func_start sub_8083060
+sub_8083060:
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ strb r1, [r2]
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083060
+
+ thumb_func_start sub_8083078
+sub_8083078:
+ push {lr}
+ sub sp, 0x4
+ str r1, [sp]
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083078
+
+ thumb_func_start sub_808308C
+sub_808308C:
+ push {lr}
+ sub sp, 0x4
+ str r1, [sp]
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808308C
+
+ thumb_func_start sub_80830A0
+sub_80830A0:
+ push {lr}
+ sub sp, 0x4
+ str r1, [sp]
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80830A0
+
+ thumb_func_start sub_80830B4
+sub_80830B4:
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ lsls r1, 24
+ movs r2, 0
+ cmp r1, 0
+ beq _080830C4
+ movs r2, 0xFF
+_080830C4:
+ mov r0, sp
+ strb r2, [r0]
+ adds r0, r3, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FA8
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80830B4
+
+ thumb_func_start sub_80830D8
+sub_80830D8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80830D8
+
+ thumb_func_start sub_80830F8
+sub_80830F8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0xC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80830F8
+
+ thumb_func_start sub_808312C
+sub_808312C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808312C
+
+ thumb_func_start sub_808314C
+sub_808314C:
+ push {lr}
+ bl sub_8082FA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808314C
+
+ thumb_func_start sub_8083158
+sub_8083158:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FE0
+ mov r0, sp
+ ldrh r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083158
+
+ thumb_func_start sub_8083170
+sub_8083170:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8082FE0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083170
+
+ thumb_func_start sub_8083188
+sub_8083188:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083188
+
+ thumb_func_start sub_80831A0
+sub_80831A0:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FE0
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80831A0
+
+ thumb_func_start sub_80831B4
+sub_80831B4:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FE0
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80831B4
+
+ thumb_func_start sub_80831C8
+sub_80831C8:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_8082FE0
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80831C8
+
+ thumb_func_start sub_80831DC
+sub_80831DC:
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8082FE0
+ mov r0, sp
+ ldrb r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80831DC
+
+ thumb_func_start sub_80831F8
+sub_80831F8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80831F8
+
+ thumb_func_start sub_8083220
+sub_8083220:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ str r0, [r4]
+ str r0, [r4, 0x4]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r4, 0xC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083220
+
+ thumb_func_start sub_8083260
+sub_8083260:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8082FE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083260
+
+ thumb_func_start sub_8083288
+sub_8083288:
+ push {lr}
+ bl sub_8082FE0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083288
+
+ .align 2, 0 \ No newline at end of file
diff --git a/data/data_80F4468.s b/data/data_80F4468.s
index 073680b..a4ddfba 100644
--- a/data/data_80F4468.s
+++ b/data/data_80F4468.s
@@ -145,1168 +145,3 @@ gUnknown_80F4DAE: @ 80F4DAE
gUnknown_80F4DB0: @ 80F4DB0
@ replacing .incbin "baserom.gba", 0x000f4db0, 0x2
.byte 0x28, 0x00
-
- .global gConfusedAttackChance
-gConfusedAttackChance: @ 80F4DB2
-@ replacing .incbin "baserom.gba", 0x000f4db2, 0x2
- .byte 0x46, 0x00
-
- .global gUnknown_80F4DB4
-gUnknown_80F4DB4: @ 80F4DB4
-@ replacing .incbin "baserom.gba", 0x000f4db4, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4DB6
-gUnknown_80F4DB6: @ 80F4DB6
-@ replacing .incbin "baserom.gba", 0x000f4db6, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DB8
-gUnknown_80F4DB8: @ 80F4DB8
-@ replacing .incbin "baserom.gba", 0x000f4db8, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DBA
-gUnknown_80F4DBA: @ 80F4DBA
-@ replacing .incbin "baserom.gba", 0x000f4dba, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DBC
-gUnknown_80F4DBC: @ 80F4DBC
-@ replacing .incbin "baserom.gba", 0x000f4dbc, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DBE
-gUnknown_80F4DBE: @ 80F4DBE
-@ replacing .incbin "baserom.gba", 0x000f4dbe, 0x2
- .byte 0x12, 0x00
-
- .global gUnknown_80F4DC0
-gUnknown_80F4DC0: @ 80F4DC0
-@ replacing .incbin "baserom.gba", 0x000f4dc0, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DC2
-gUnknown_80F4DC2: @ 80F4DC2
-@ replacing .incbin "baserom.gba", 0x000f4dc2, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DC4
-gUnknown_80F4DC4: @ 80F4DC4
-@ replacing .incbin "baserom.gba", 0x000f4dc4, 0x2
- .byte 0x28, 0x00
-
- .global gUnknown_80F4DC6
-gUnknown_80F4DC6: @ 80F4DC6
-@ replacing .incbin "baserom.gba", 0x000f4dc6, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DC8
-gUnknown_80F4DC8: @ 80F4DC8
-@ replacing .incbin "baserom.gba", 0x000f4dc8, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DCA
-gUnknown_80F4DCA: @ 80F4DCA
-@ replacing .incbin "baserom.gba", 0x000f4dca, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4DCC
-gUnknown_80F4DCC: @ 80F4DCC
-@ replacing .incbin "baserom.gba", 0x000f4dcc, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4DCE
-gUnknown_80F4DCE: @ 80F4DCE
-@ replacing .incbin "baserom.gba", 0x000f4dce, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DD0
-gUnknown_80F4DD0: @ 80F4DD0
-@ replacing .incbin "baserom.gba", 0x000f4dd0, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DD2
-gUnknown_80F4DD2: @ 80F4DD2
-@ replacing .incbin "baserom.gba", 0x000f4dd2, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DD4
-gUnknown_80F4DD4: @ 80F4DD4
-@ replacing .incbin "baserom.gba", 0x000f4dd4, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DD6
-gUnknown_80F4DD6: @ 80F4DD6
-@ replacing .incbin "baserom.gba", 0x000f4dd6, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DD8
-gUnknown_80F4DD8: @ 80F4DD8
-@ replacing .incbin "baserom.gba", 0x000f4dd8, 0x2
- .byte 0x32, 0x00
-
- .global gUnknown_80F4DDA
-gUnknown_80F4DDA: @ 80F4DDA
-@ replacing .incbin "baserom.gba", 0x000f4dda, 0x2
- .byte 0x32, 0x00
-
- .global gUnknown_80F4DDC
-gUnknown_80F4DDC: @ 80F4DDC
-@ replacing .incbin "baserom.gba", 0x000f4ddc, 0x4
- .byte 0x32, 0x00
- .byte 0x32, 0x00
-
- .global gUnknown_80F4DE0
-gUnknown_80F4DE0: @ 80F4DE0
-@ replacing .incbin "baserom.gba", 0x000f4de0, 0x2
- .byte 0x32, 0x00
-
- .global gUnknown_80F4DE2
-gUnknown_80F4DE2: @ 80F4DE2
-@ replacing .incbin "baserom.gba", 0x000f4de2, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DE4
-gUnknown_80F4DE4: @ 80F4DE4
-@ replacing .incbin "baserom.gba", 0x000f4de4, 0x2
- .byte 0x0f, 0x00
-
- .global gUnknown_80F4DE6
-gUnknown_80F4DE6: @ 80F4DE6
-@ replacing .incbin "baserom.gba", 0x000f4de6, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DE8
-gUnknown_80F4DE8: @ 80F4DE8
-@ replacing .incbin "baserom.gba", 0x000f4de8, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DEA
-gUnknown_80F4DEA: @ 80F4DEA
-@ replacing .incbin "baserom.gba", 0x000f4dea, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DEC
-gUnknown_80F4DEC: @ 80F4DEC
-@ replacing .incbin "baserom.gba", 0x000f4dec, 0x2
- .byte 0x0f, 0x00
-
- .global gUnknown_80F4DEE
-gUnknown_80F4DEE: @ 80F4DEE
-@ replacing .incbin "baserom.gba", 0x000f4dee, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DF0
-gUnknown_80F4DF0: @ 80F4DF0
-@ replacing .incbin "baserom.gba", 0x000f4df0, 0x2
- .byte 0x19, 0x00
-
- .global gUnknown_80F4DF2
-gUnknown_80F4DF2: @ 80F4DF2
-@ replacing .incbin "baserom.gba", 0x000f4df2, 0x2
- .byte 0x23, 0x00
-
- .global gUnknown_80F4DF4
-gUnknown_80F4DF4: @ 80F4DF4
-@ replacing .incbin "baserom.gba", 0x000f4df4, 0x2
- .byte 0x19, 0x00
-
- .global gUnknown_80F4DF6
-gUnknown_80F4DF6: @ 80F4DF6
-@ replacing .incbin "baserom.gba", 0x000f4df6, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4DF8
-gUnknown_80F4DF8: @ 80F4DF8
-@ replacing .incbin "baserom.gba", 0x000f4df8, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4DFA
-gUnknown_80F4DFA: @ 80F4DFA
-@ replacing .incbin "baserom.gba", 0x000f4dfa, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4DFC
-gUnknown_80F4DFC: @ 80F4DFC
-@ replacing .incbin "baserom.gba", 0x000f4dfc, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4DFE
-gUnknown_80F4DFE: @ 80F4DFE
-@ replacing .incbin "baserom.gba", 0x000f4dfe, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4E00
-gUnknown_80F4E00: @ 80F4E00
-@ replacing .incbin "baserom.gba", 0x000f4e00, 0x2
- .byte 0x28, 0x00
-
- .global gUnknown_80F4E02
-gUnknown_80F4E02: @ 80F4E02
-@ replacing .incbin "baserom.gba", 0x000f4e02, 0x2
- .byte 0x3c, 0x00
-
- .global gUnknown_80F4E04
-gUnknown_80F4E04: @ 80F4E04
-@ replacing .incbin "baserom.gba", 0x000f4e04, 0x2
- .byte 0x3c, 0x00
-
- .global gUnknown_80F4E06
-gUnknown_80F4E06: @ 80F4E06
-@ replacing .incbin "baserom.gba", 0x000f4e06, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4E08
-gUnknown_80F4E08: @ 80F4E08
-@ replacing .incbin "baserom.gba", 0x000f4e08, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4E0A
-gUnknown_80F4E0A: @ 80F4E0A
-@ replacing .incbin "baserom.gba", 0x000f4e0a, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4E0C
-gUnknown_80F4E0C: @ 80F4E0C
-@ replacing .incbin "baserom.gba", 0x000f4e0c, 0x2
- .byte 0x32, 0x00
-
- .global gUnknown_80F4E0E
-gUnknown_80F4E0E: @ 80F4E0E
-@ replacing .incbin "baserom.gba", 0x000f4e0e, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4E10
-gUnknown_80F4E10: @ 80F4E10
-@ replacing .incbin "baserom.gba", 0x000f4e10, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E12
-gUnknown_80F4E12: @ 80F4E12
-@ replacing .incbin "baserom.gba", 0x000f4e12, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E14
-gUnknown_80F4E14: @ 80F4E14
-@ replacing .incbin "baserom.gba", 0x000f4e14, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E16
-gUnknown_80F4E16: @ 80F4E16
-@ replacing .incbin "baserom.gba", 0x000f4e16, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E18
-gUnknown_80F4E18: @ 80F4E18
-@ replacing .incbin "baserom.gba", 0x000f4e18, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E1A
-gUnknown_80F4E1A: @ 80F4E1A
-@ replacing .incbin "baserom.gba", 0x000f4e1a, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E1C
-gUnknown_80F4E1C: @ 80F4E1C
-@ replacing .incbin "baserom.gba", 0x000f4e1c, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E1E
-gUnknown_80F4E1E: @ 80F4E1E
-@ replacing .incbin "baserom.gba", 0x000f4e1e, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E20
-gUnknown_80F4E20: @ 80F4E20
-@ replacing .incbin "baserom.gba", 0x000f4e20, 0x2
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E22
-gUnknown_80F4E22: @ 80F4E22
-@ replacing .incbin "baserom.gba", 0x000f4e22, 0xa
- .byte 0x64, 0x00
- .byte 0x14, 0x00
- .byte 0x1e, 0x00
- .byte 0x28, 0x00
- .byte 0x32, 0x00
-
- .global gUnknown_80F4E2C
-gUnknown_80F4E2C: @ 80F4E2C
-@ replacing .incbin "baserom.gba", 0x000f4e2c, 0x4
- .byte 0x03, 0x00
- .byte 0x05, 0x00
-
- .global gUnknown_80F4E30
-gUnknown_80F4E30: @ 80F4E30
-@ replacing .incbin "baserom.gba", 0x000f4e30, 0x4
- .byte 0x7f, 0x00
- .byte 0x7f, 0x00
-
- .global gUnknown_80F4E34
-gUnknown_80F4E34: @ 80F4E34
-@ replacing .incbin "baserom.gba", 0x000f4e34, 0x4
- .byte 0x7f, 0x00
- .byte 0x7f, 0x00
-
- .global gUnknown_80F4E38
-gUnknown_80F4E38: @ 80F4E38
-@ replacing .incbin "baserom.gba", 0x000f4e38, 0x4
- .byte 0x7f, 0x00
- .byte 0x7f, 0x00
-
- .global gUnknown_80F4E3C
-gUnknown_80F4E3C: @ 80F4E3C
-@ replacing .incbin "baserom.gba", 0x000f4e3c, 0x4
- .byte 0x01, 0x00
- .byte 0x01, 0x00
-
- .global gUnknown_80F4E40
-gUnknown_80F4E40: @ 80F4E40
-@ replacing .incbin "baserom.gba", 0x000f4e40, 0x8
- .byte 0x08, 0x00
- .byte 0x0a, 0x00
- .byte 0x03, 0x00
- .byte 0x04, 0x00
-
- .global gUnknown_80F4E48
-gUnknown_80F4E48: @ 80F4E48
-@ replacing .incbin "baserom.gba", 0x000f4e48, 0x4
- .byte 0x06, 0x00
- .byte 0x08, 0x00
-
- .global gUnknown_80F4E4C
-gUnknown_80F4E4C: @ 80F4E4C
-@ replacing .incbin "baserom.gba", 0x000f4e4c, 0x4
- .byte 0x06, 0x00
- .byte 0x0c, 0x00
-
- .global gUnknown_80F4E50
-gUnknown_80F4E50: @ 80F4E50
-@ replacing .incbin "baserom.gba", 0x000f4e50, 0x4
- .byte 0x01, 0x00
- .byte 0x02, 0x00
-
- .global gUnknown_80F4E54
-gUnknown_80F4E54: @ 80F4E54
-@ replacing .incbin "baserom.gba", 0x000f4e54, 0x4
- .byte 0x02, 0x00
- .byte 0x05, 0x00
-
- .global gUnknown_80F4E58
-gUnknown_80F4E58: @ 80F4E58
-@ replacing .incbin "baserom.gba", 0x000f4e58, 0x4
- .byte 0x03, 0x00
- .byte 0x06, 0x00
-
- .global gUnknown_80F4E5C
-gUnknown_80F4E5C: @ 80F4E5C
-@ replacing .incbin "baserom.gba", 0x000f4e5c, 0x4
- .byte 0x02, 0x00
- .byte 0x05, 0x00
-
- .global gUnknown_80F4E60
-gUnknown_80F4E60: @ 80F4E60
-@ replacing .incbin "baserom.gba", 0x000f4e60, 0x10
- .byte 0x0f, 0x00
- .byte 0x1e, 0x00
- .byte 0x02, 0x00
- .byte 0x03, 0x00
- .byte 0x02, 0x00
- .byte 0x06, 0x00
- .byte 0x0a, 0x00
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4E70
-gUnknown_80F4E70: @ 80F4E70
-@ replacing .incbin "baserom.gba", 0x000f4e70, 0x4
- .byte 0x01, 0x00
- .byte 0x01, 0x00
-
- .global gUnknown_80F4E74
-gUnknown_80F4E74: @ 80F4E74
-@ replacing .incbin "baserom.gba", 0x000f4e74, 0x4
- .byte 0x03, 0x00
- .byte 0x07, 0x00
-
- .global gUnknown_80F4E78
-gUnknown_80F4E78: @ 80F4E78
-@ replacing .incbin "baserom.gba", 0x000f4e78, 0x4
-.byte 0x04, 0x00
-.byte 0x08, 0x00
-
- .global gUnknown_80F4E7C
-gUnknown_80F4E7C: @ 80F4E7C
-@ replacing .incbin "baserom.gba", 0x000f4e7c, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4E80
-gUnknown_80F4E80: @ 80F4E80
-@ replacing .incbin "baserom.gba", 0x000f4e80, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4E84
-gUnknown_80F4E84: @ 80F4E84
-@ replacing .incbin "baserom.gba", 0x000f4e84, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4E88
-gUnknown_80F4E88: @ 80F4E88
-@ replacing .incbin "baserom.gba", 0x000f4e88, 0x4
-.byte 0x0f, 0x00
-.byte 0x14, 0x00
-
- .global gUnknown_80F4E8C
-gUnknown_80F4E8C: @ 80F4E8C
-@ replacing .incbin "baserom.gba", 0x000f4e8c, 0x4
-.byte 0x0a, 0x00
-.byte 0x0e, 0x00
-
- .global gUnknown_80F4E90
-gUnknown_80F4E90: @ 80F4E90
-@ replacing .incbin "baserom.gba", 0x000f4e90, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4E94
-gUnknown_80F4E94: @ 80F4E94
-@ replacing .incbin "baserom.gba", 0x000f4e94, 0x4
-.byte 0x02, 0x00
-.byte 0x04, 0x00
-
- .global gUnknown_80F4E98
-gUnknown_80F4E98: @ 80F4E98
-@ replacing .incbin "baserom.gba", 0x000f4e98, 0x4
-.byte 0x06, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4E9C
-gUnknown_80F4E9C: @ 80F4E9C
-@ replacing .incbin "baserom.gba", 0x000f4e9c, 0x4
-.byte 0x03, 0x00
-.byte 0x05, 0x00
-
- .global gUnknown_80F4EA0
-gUnknown_80F4EA0: @ 80F4EA0
-@ replacing .incbin "baserom.gba", 0x000f4ea0, 0x4
-.byte 0x04, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4EA4
-gUnknown_80F4EA4: @ 80F4EA4
-@ replacing .incbin "baserom.gba", 0x000f4ea4, 0x4
-.byte 0x03, 0x00
-.byte 0x05, 0x00
-
- .global gUnknown_80F4EA8
-gUnknown_80F4EA8: @ 80F4EA8
-@ replacing .incbin "baserom.gba", 0x000f4ea8, 0x4
-.byte 0x03, 0x00
-.byte 0x05, 0x00
-
- .global gUnknown_80F4EAC
-gUnknown_80F4EAC: @ 80F4EAC
-@ replacing .incbin "baserom.gba", 0x000f4eac, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EB0
-gUnknown_80F4EB0: @ 80F4EB0
-@ replacing .incbin "baserom.gba", 0x000f4eb0, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EB4
-gUnknown_80F4EB4: @ 80F4EB4
-@ replacing .incbin "baserom.gba", 0x000f4eb4, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EB8
-gUnknown_80F4EB8: @ 80F4EB8
-@ replacing .incbin "baserom.gba", 0x000f4eb8, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EBC
-gUnknown_80F4EBC: @ 80F4EBC
-@ replacing .incbin "baserom.gba", 0x000f4ebc, 0x4
-.byte 0x14, 0x00
-.byte 0x1e, 0x00
-
- .global gUnknown_80F4EC0
-gUnknown_80F4EC0: @ 80F4EC0
-@ replacing .incbin "baserom.gba", 0x000f4ec0, 0x4
-.byte 0x7f, 0x00
-.byte 0x7f, 0x00
-
- .global gUnknown_80F4EC4
-gUnknown_80F4EC4: @ 80F4EC4
-@ replacing .incbin "baserom.gba", 0x000f4ec4, 0x4
-.byte 0x02, 0x00
-.byte 0x04, 0x00
-
- .global gUnknown_80F4EC8
-gUnknown_80F4EC8: @ 80F4EC8
-@ replacing .incbin "baserom.gba", 0x000f4ec8, 0x4
-.byte 0x02, 0x00
-.byte 0x04, 0x00
-
- .global gUnknown_80F4ECC
-gUnknown_80F4ECC: @ 80F4ECC
-@ replacing .incbin "baserom.gba", 0x000f4ecc, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4ED0
-gUnknown_80F4ED0: @ 80F4ED0
-@ replacing .incbin "baserom.gba", 0x000f4ed0, 0x4
-.byte 0x14, 0x00
-.byte 0x32, 0x00
-
- .global gUnknown_80F4ED4
-gUnknown_80F4ED4: @ 80F4ED4
-@ replacing .incbin "baserom.gba", 0x000f4ed4, 0x4
-.byte 0x02, 0x00
-.byte 0x06, 0x00
-
- .global gUnknown_80F4ED8
-gUnknown_80F4ED8: @ 80F4ED8
-@ replacing .incbin "baserom.gba", 0x000f4ed8, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EDC
-gUnknown_80F4EDC: @ 80F4EDC
-@ replacing .incbin "baserom.gba", 0x000f4edc, 0x4
-.byte 0x01, 0x00
-.byte 0x06, 0x00
-
- .global gUnknown_80F4EE0
-gUnknown_80F4EE0: @ 80F4EE0
-@ replacing .incbin "baserom.gba", 0x000f4ee0, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EE4
-gUnknown_80F4EE4: @ 80F4EE4
-@ replacing .incbin "baserom.gba", 0x000f4ee4, 0x4
-.byte 0x0a, 0x00
-.byte 0x14, 0x00
-
- .global gUnknown_80F4EE8
-gUnknown_80F4EE8: @ 80F4EE8
-@ replacing .incbin "baserom.gba", 0x000f4ee8, 0x4
-.byte 0x0a, 0x00
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4EEC
-gUnknown_80F4EEC: @ 80F4EEC
-@ replacing .incbin "baserom.gba", 0x000f4eec, 0x4
-.byte 0x03, 0x00
-.byte 0x03, 0x00
-
- .global gUnknown_80F4EF0
-gUnknown_80F4EF0: @ 80F4EF0
-@ replacing .incbin "baserom.gba", 0x000f4ef0, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4EF4
-gUnknown_80F4EF4: @ 80F4EF4
-@ replacing .incbin "baserom.gba", 0x000f4ef4, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4EF8
-gUnknown_80F4EF8: @ 80F4EF8
-@ replacing .incbin "baserom.gba", 0x000f4ef8, 0x4
-.byte 0x03, 0x00
-.byte 0x05, 0x00
-
- .global gUnknown_80F4EFC
-gUnknown_80F4EFC: @ 80F4EFC
-@ replacing .incbin "baserom.gba", 0x000f4efc, 0x4
-.byte 0x7f, 0x00
-.byte 0x7f, 0x00
-
- .global gUnknown_80F4F00
-gUnknown_80F4F00: @ 80F4F00
-@ replacing .incbin "baserom.gba", 0x000f4f00, 0x4
-.byte 0x04, 0x00
-.byte 0x06, 0x00
-
- .global gUnknown_80F4F04
-gUnknown_80F4F04: @ 80F4F04
-@ replacing .incbin "baserom.gba", 0x000f4f04, 0x4
-.byte 0x7f, 0x00
-.byte 0x7f, 0x00
-
- .global gUnknown_80F4F08
-gUnknown_80F4F08: @ 80F4F08
-@ replacing .incbin "baserom.gba", 0x000f4f08, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F0C
-gUnknown_80F4F0C: @ 80F4F0C
-@ replacing .incbin "baserom.gba", 0x000f4f0c, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F10
-gUnknown_80F4F10: @ 80F4F10
-@ replacing .incbin "baserom.gba", 0x000f4f10, 0x8
-.byte 0x7f, 0x00
-.byte 0x7f, 0x00
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F18
-gUnknown_80F4F18: @ 80F4F18
-@ replacing .incbin "baserom.gba", 0x000f4f18, 0x4
-.byte 0x02, 0x00
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F1C
-gUnknown_80F4F1C: @ 80F4F1C
-@ replacing .incbin "baserom.gba", 0x000f4f1c, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F20
-gUnknown_80F4F20: @ 80F4F20
-@ replacing .incbin "baserom.gba", 0x000f4f20, 0x4
-.byte 0x0a, 0x00
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F24
-gUnknown_80F4F24: @ 80F4F24
-@ replacing .incbin "baserom.gba", 0x000f4f24, 0x4
-.byte 0x0f, 0x00
-.byte 0x14, 0x00
-
- .global gUnknown_80F4F28
-gUnknown_80F4F28: @ 80F4F28
-@ replacing .incbin "baserom.gba", 0x000f4f28, 0x4
-.byte 0x02, 0x00
-.byte 0x02, 0x00
-
- .global gUnknown_80F4F2C
-gUnknown_80F4F2C: @ 80F4F2C
-@ replacing .incbin "baserom.gba", 0x000f4f2c, 0x4
-.byte 0x04, 0x00
-.byte 0x08, 0x00
-
- .global gUnknown_80F4F30
-gUnknown_80F4F30: @ 80F4F30
-@ replacing .incbin "baserom.gba", 0x000f4f30, 0x2
-.byte 0xfa, 0x00
-
- .global gUnknown_80F4F32
-gUnknown_80F4F32: @ 80F4F32
-@ replacing .incbin "baserom.gba", 0x000f4f32, 0x2
-.byte 0x14, 0x00
-
- .global gUnknown_80F4F34
-gUnknown_80F4F34: @ 80F4F34
-@ replacing .incbin "baserom.gba", 0x000f4f34, 0x2
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F36
-gUnknown_80F4F36: @ 80F4F36
-@ replacing .incbin "baserom.gba", 0x000f4f36, 0x2
-.byte 0x02, 0x00
-
- .global gUnknown_80F4F38
-gUnknown_80F4F38: @ 80F4F38
-@ replacing .incbin "baserom.gba", 0x000f4f38, 0x2
-.byte 0x02, 0x00
-
- .global gUnknown_80F4F3A
-gUnknown_80F4F3A: @ 80F4F3A
-@ replacing .incbin "baserom.gba", 0x000f4f3a, 0x2
-.byte 0x02, 0x00
-
- .global gUnknown_80F4F3C
-gUnknown_80F4F3C: @ 80F4F3C
-@ replacing .incbin "baserom.gba", 0x000f4f3c, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F3E
-gUnknown_80F4F3E: @ 80F4F3E
-@ replacing .incbin "baserom.gba", 0x000f4f3e, 0x2
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F40
-gUnknown_80F4F40: @ 80F4F40
-@ replacing .incbin "baserom.gba", 0x000f4f40, 0x2
-.byte 0x02, 0x00
-
- .global gUnknown_80F4F42
-gUnknown_80F4F42: @ 80F4F42
-@ replacing .incbin "baserom.gba", 0x000f4f42, 0x4
-.byte 0x14, 0x00
-.byte 0x5f, 0x00
-
- .global gUnknown_80F4F46
-gUnknown_80F4F46: @ 80F4F46
-@ replacing .incbin "baserom.gba", 0x000f4f46, 0x2
-.byte 0x0c, 0x00
-
- .global gUnknown_80F4F48
-gUnknown_80F4F48: @ 80F4F48
-@ replacing .incbin "baserom.gba", 0x000f4f48, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F4C
-gUnknown_80F4F4C: @ 80F4F4C
-@ replacing .incbin "baserom.gba", 0x000f4f4c, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F50
-gUnknown_80F4F50: @ 80F4F50
-@ replacing .incbin "baserom.gba", 0x000f4f50, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F54
-gUnknown_80F4F54: @ 80F4F54
-@ replacing .incbin "baserom.gba", 0x000f4f54, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F58
-gUnknown_80F4F58: @ 80F4F58
-@ replacing .incbin "baserom.gba", 0x000f4f58, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F5C
-gUnknown_80F4F5C: @ 80F4F5C
-@ replacing .incbin "baserom.gba", 0x000f4f5c, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F60
-gUnknown_80F4F60: @ 80F4F60
-@ replacing .incbin "baserom.gba", 0x000f4f60, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F64
-gUnknown_80F4F64: @ 80F4F64
-@ replacing .incbin "baserom.gba", 0x000f4f64, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F68
-gUnknown_80F4F68: @ 80F4F68
-@ replacing .incbin "baserom.gba", 0x000f4f68, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F6C
-gUnknown_80F4F6C: @ 80F4F6C
-@ replacing .incbin "baserom.gba", 0x000f4f6c, 0x4
-.byte 0x00, 0x02
-.byte 0x00, 0x00
-
- .global gUnknown_80F4F70
-gUnknown_80F4F70: @ 80F4F70
-@ replacing .incbin "baserom.gba", 0x000f4f70, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F72
-gUnknown_80F4F72: @ 80F4F72
-@ replacing .incbin "baserom.gba", 0x000f4f72, 0x2
-.byte 0x04, 0x00
-
- .global gUnknown_80F4F74
-gUnknown_80F4F74: @ 80F4F74
-@ replacing .incbin "baserom.gba", 0x000f4f74, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F76
-gUnknown_80F4F76: @ 80F4F76
-@ replacing .incbin "baserom.gba", 0x000f4f76, 0x2
-.byte 0x06, 0x00
-
- .global gUnknown_80F4F78
-gUnknown_80F4F78: @ 80F4F78
-@ replacing .incbin "baserom.gba", 0x000f4f78, 0x2
-.byte 0x08, 0x00
-
- .global gUnknown_80F4F7A
-gUnknown_80F4F7A: @ 80F4F7A
-@ replacing .incbin "baserom.gba", 0x000f4f7a, 0x2
-.byte 0xe7, 0x03
-
- .global gUnknown_80F4F7C
-gUnknown_80F4F7C: @ 80F4F7C
-@ replacing .incbin "baserom.gba", 0x000f4f7c, 0x2
-.byte 0x37, 0x00
-
- .global gUnknown_80F4F7E
-gUnknown_80F4F7E: @ 80F4F7E
-@ replacing .incbin "baserom.gba", 0x000f4f7e, 0x2
-.byte 0x41, 0x00
-
- .global gUnknown_80F4F80
-gUnknown_80F4F80: @ 80F4F80
-@ replacing .incbin "baserom.gba", 0x000f4f80, 0x2
-.byte 0x23, 0x00
-
- .global gUnknown_80F4F82
-gUnknown_80F4F82: @ 80F4F82
-@ replacing .incbin "baserom.gba", 0x000f4f82, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F84
-gUnknown_80F4F84: @ 80F4F84
-@ replacing .incbin "baserom.gba", 0x000f4f84, 0x2
-.byte 0x14, 0x00
-
- .global gUnknown_80F4F86
-gUnknown_80F4F86: @ 80F4F86
-@ replacing .incbin "baserom.gba", 0x000f4f86, 0x4
-.byte 0x0a, 0x00
-.byte 0x0f, 0x00
-
- .global gUnknown_80F4F8A
-gUnknown_80F4F8A: @ 80F4F8A
-@ replacing .incbin "baserom.gba", 0x000f4f8a, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F8C
-gUnknown_80F4F8C: @ 80F4F8C
-@ replacing .incbin "baserom.gba", 0x000f4f8c, 0x2
-.byte 0x23, 0x00
-
- .global gUnknown_80F4F8E
-gUnknown_80F4F8E: @ 80F4F8E
-@ replacing .incbin "baserom.gba", 0x000f4f8e, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F90
-gUnknown_80F4F90: @ 80F4F90
-@ replacing .incbin "baserom.gba", 0x000f4f90, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F4F92
-gUnknown_80F4F92: @ 80F4F92
-@ replacing .incbin "baserom.gba", 0x000f4f92, 0x2
-.byte 0x0a, 0x00
-
- .global gUnknown_80F4F94
-gUnknown_80F4F94: @ 80F4F94
-@ replacing .incbin "baserom.gba", 0x000f4f94, 0xe
- .byte 0x05, 0x00
- .byte 0x0a, 0x00
- .byte 0x0f, 0x00
- .byte 0x19, 0x00
- .byte 0x1e, 0x00
- .byte 0x23, 0x00
- .byte 0x28, 0x00
-
- .global gUnknown_80F4FA2
-gUnknown_80F4FA2: @ 80F4FA2
-@ replacing .incbin "baserom.gba", 0x000f4fa2, 0x2
-.byte 0x5a, 0x00
-
- .global gUnknown_80F4FA4
-gUnknown_80F4FA4: @ 80F4FA4
-@ replacing .incbin "baserom.gba", 0x000f4fa4, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F4FA6
-gUnknown_80F4FA6: @ 80F4FA6
-@ replacing .incbin "baserom.gba", 0x000f4fa6, 0x2
- .byte 0x2d, 0x00
-
- .global gUnknown_80F4FA8
-gUnknown_80F4FA8: @ 80F4FA8
-@ replacing .incbin "baserom.gba", 0x000f4fa8, 0x2
- .byte 0x0f, 0x00
-
- .global gUnknown_80F4FAA
-gUnknown_80F4FAA: @ 80F4FAA
-@ replacing .incbin "baserom.gba", 0x000f4faa, 0x2
- .byte 0x1e, 0x00
-
- .global gUnknown_80F4FAC
-gUnknown_80F4FAC: @ 80F4FAC
-@ replacing .incbin "baserom.gba", 0x000f4fac, 0x2
- .byte 0x01, 0x00
-
- .global gUnknown_80F4FAE
-gUnknown_80F4FAE: @ 80F4FAE
-@ replacing .incbin "baserom.gba", 0x000f4fae, 0x4
- .byte 0x02, 0x00
- .byte 0x19, 0x00
-
- .global gUnknown_80F4FB2
-gUnknown_80F4FB2: @ 80F4FB2
-@ replacing .incbin "baserom.gba", 0x000f4fb2, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4FB4
-gUnknown_80F4FB4: @ 80F4FB4
-@ replacing .incbin "baserom.gba", 0x000f4fb4, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4FB6
-gUnknown_80F4FB6: @ 80F4FB6
-@ replacing .incbin "baserom.gba", 0x000f4fb6, 0x2
- .byte 0x64, 0x00
-
- .global gUnknown_80F4FB8
-gUnknown_80F4FB8: @ 80F4FB8
-@ replacing .incbin "baserom.gba", 0x000f4fb8, 0x2
- .byte 0x00, 0x00
-
- .global gUnknown_80F4FBA
-gUnknown_80F4FBA: @ 80F4FBA
-@ replacing .incbin "baserom.gba", 0x000f4fba, 0x2
- .byte 0x64, 0x00
-
- .global gUnknown_80F4FBC
-gUnknown_80F4FBC: @ 80F4FBC
-@ replacing .incbin "baserom.gba", 0x000f4fbc, 0x2
- .byte 0x02, 0x00
-
- .global gUnknown_80F4FBE
-gUnknown_80F4FBE: @ 80F4FBE
-@ replacing .incbin "baserom.gba", 0x000f4fbe, 0x2
- .byte 0x03, 0x00
-
- .global gUnknown_80F4FC0
-gUnknown_80F4FC0: @ 80F4FC0
-@ replacing .incbin "baserom.gba", 0x000f4fc0, 0x2
- .byte 0x24, 0xff
-
- .global gUnknown_80F4FC2
-gUnknown_80F4FC2: @ 80F4FC2
-@ replacing .incbin "baserom.gba", 0x000f4fc2, 0x2
- .byte 0x6a, 0xff
-
- .global gUnknown_80F4FC4
-gUnknown_80F4FC4: @ 80F4FC4
-@ replacing .incbin "baserom.gba", 0x000f4fc4, 0x2
- .byte 0x9c, 0xff
-
- .global gUnknown_80F4FC6
-gUnknown_80F4FC6: @ 80F4FC6
-@ replacing .incbin "baserom.gba", 0x000f4fc6, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F4FC8
-gUnknown_80F4FC8: @ 80F4FC8
- .incbin "baserom.gba", 0xF4FC8, 0x3C
-
- .global gUnknown_80F5004
-gUnknown_80F5004: @ 80F5004
-@ replacing .incbin "baserom.gba", 0x000f5004, 0x2
-.byte 0x03, 0x00
-
- .global gUnknown_80F5006
-gUnknown_80F5006: @ 80F5006
-@ replacing .incbin "baserom.gba", 0x000f5006, 0x2
-.byte 0x02, 0x00
-
- .global gUnknown_80F5008
-gUnknown_80F5008: @ 80F5008
-@ replacing .incbin "baserom.gba", 0x000f5008, 0x2
-.byte 0x64, 0x00
-
- .global gUnknown_80F500A
-gUnknown_80F500A: @ 80F500A
-@ replacing .incbin "baserom.gba", 0x000f500a, 0x10
-.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
-
- .global gUnknown_80F501A
-gUnknown_80F501A: @ 80F501A
-@ replacing .incbin "baserom.gba", 0x000f501a, 0x10
-.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
-
- .global gUnknown_80F502A
-gUnknown_80F502A: @ 80F502A
-@ replacing .incbin "baserom.gba", 0x000f502a, 0x10
-.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
-
- .global gUnknown_80F503A
-gUnknown_80F503A: @ 80F503A
-@ replacing .incbin "baserom.gba", 0x000f503a, 0x2
-.byte 0x01, 0x00
-
- .global gUnknown_80F503C
-gUnknown_80F503C: @ 80F503C
-@ replacing .incbin "baserom.gba", 0x000f503c, 0x2
-.byte 0x05, 0x00
-
- .global gUnknown_80F503E
-gUnknown_80F503E: @ 80F503E
-@ replacing .incbin "baserom.gba", 0x000f503e, 0x2
-.byte 0x06, 0x00
-
- .global gUnknown_80F5040
-gUnknown_80F5040: @ 80F5040
-@ replacing .incbin "baserom.gba", 0x000f5040, 0x2
-.byte 0x07, 0x00
-
- .global gUnknown_80F5042
-gUnknown_80F5042: @ 80F5042
-@ replacing .incbin "baserom.gba", 0x000f5042, 0x2
-.byte 0x08, 0x00
-
- .global gUnknown_80F5044
-gUnknown_80F5044: @ 80F5044
-@ replacing .incbin "baserom.gba", 0x000f5044, 0x2
-.byte 0x09, 0x00
-
- .global gUnknown_80F5046
-gUnknown_80F5046: @ 80F5046
-@ replacing .incbin "baserom.gba", 0x000f5046, 0x2
-.byte 0x14, 0x00
-
- .global gUnknown_80F5048
-gUnknown_80F5048: @ 80F5048
-@ replacing .incbin "baserom.gba", 0x000f5048, 0x4
-.byte 0x0f, 0x00, 0x00, 0x00
-
- .global gUnknown_80F504C
-gUnknown_80F504C: @ 80F504C
- .incbin "baserom.gba", 0xF504C, 0x54
-
- .global gUnknown_80F50A0
-gUnknown_80F50A0: @ 80F50A0
- .incbin "baserom.gba", 0xF50A0, 0x54
-
- .global gUnknown_80F50F4
-gUnknown_80F50F4: @ 80F50F4
- .incbin "baserom.gba", 0xF50F4, 0xA8
-
- .global gUnknown_80F519C
-gUnknown_80F519C: @ 80F519C
-@ replacing .incbin "baserom.gba", 0x000f519c, 0x4
-.byte 0x1e, 0x00, 0x00, 0x00
-
- .global gUnknown_80F51A0
-gUnknown_80F51A0: @ 80F51A0
-@ replacing .incbin "baserom.gba", 0x000f51a0, 0x4
-.byte 0x1e, 0x00, 0x00, 0x00
-
- .global gUnknown_80F51A4
-gUnknown_80F51A4: @ 80F51A4
-@ replacing .incbin "baserom.gba", 0x000f51a4, 0x10
-.byte 0x00, 0x08, 0x00, 0x00
-.byte 0x00, 0x04, 0x00, 0x00
-.byte 0x00, 0x02, 0x00, 0x00
-.byte 0x00, 0x01, 0x00, 0x00
-
- .global gUnknown_80F51B4
-gUnknown_80F51B4: @ 80F51B4
-@ replacing .incbin "baserom.gba", 0x000f51b4, 0x10
-.byte 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
-
- .global gUnknown_80F51C4
-gUnknown_80F51C4: @ 80F51C4
-@ replacing .incbin "baserom.gba", 0x000f51c4, 0x10
-.byte 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
-
- .global gUnknown_80F51D4
-gUnknown_80F51D4: @ 80F51D4
-@ replacing .incbin "baserom.gba", 0x000f51d4, 0x10
-.byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00
-
- .global gUnknown_80F51E4
-gUnknown_80F51E4: @ 80F51E4
-@ replacing .incbin "baserom.gba", 0x000f51e4, 0x8
-.byte 0x01, 0x02, 0x0d, 0x01, 0x03, 0x06, 0x03, 0x06
-
- .global gUnknown_80F51EC
-gUnknown_80F51EC: @ 80F51EC
- .incbin "baserom.gba", 0xF51EC, 0x20
-
- .global gUnknown_80F520C
-gUnknown_80F520C: @ 80F520C
- .incbin "baserom.gba", 0xF520C, 0x20
-
- .global gTypeEffectivenessChart
-gTypeEffectivenessChart: @ 80F522C
- .incbin "baserom.gba", 0xF522C, 0x288
-
- .global gUnknown_80F54B4
-gUnknown_80F54B4: @ 80F54B4
- .incbin "baserom.gba", 0xF54B4, 0x40
-
- .global gUnknown_80F54F4
-gUnknown_80F54F4: @ 80F54F4
- .incbin "baserom.gba", 0xF54F4, 0xA0
-
- .global gWarpScarfActivationChances
-gWarpScarfActivationChances: @ 80F5594
-@ replacing .incbin "baserom.gba", 0xF5594, 0x28
- .2byte 0, 6, 12, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 999, 0
-
- .global gUnknown_80F55BC
-gUnknown_80F55BC: @ 80F55BC
- .incbin "baserom.gba", 0xF55BC, 0x30
-
- .global gUnknown_80F55EC
-gUnknown_80F55EC: @ 80F55EC
- .incbin "baserom.gba", 0xF55EC, 0x30
-
- .global gDungeonCamouflageTypes
-gDungeonCamouflageTypes: @ 80F561C
- .incbin "baserom.gba", 0xF561C, 0x4C
-
- .global gDungeonMusic
-gDungeonMusic: @ 80F5668
- .incbin "baserom.gba", 0xF5668, 0x98
-
- .global gUnknown_80F5700
-gUnknown_80F5700: @ 80F5700
- .incbin "baserom.gba", 0xF5700, 0xCA
-
- .global gUnknown_80F57CA
-gUnknown_80F57CA: @ 80F57CA
-@ replacing .incbin "baserom.gba", 0x000f57ca, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F57CC
-gUnknown_80F57CC: @ 80F57CC
-@ replacing .incbin "baserom.gba", 0x000f57cc, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F57CE
-gUnknown_80F57CE: @ 80F57CE
-@ replacing .incbin "baserom.gba", 0x000f57ce, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F57D0
-gUnknown_80F57D0: @ 80F57D0
-@ replacing .incbin "baserom.gba", 0x000f57d0, 0x2
- .byte 0x14, 0x00
-
- .global gUnknown_80F57D2
-gUnknown_80F57D2: @ 80F57D2
-@ replacing .incbin "baserom.gba", 0x000f57d2, 0x2
- .byte 0x0a, 0x00
-
- .global gUnknown_80F57D4
-gUnknown_80F57D4: @ 80F57D4
- .incbin "baserom.gba", 0xF57D4, 0x120
-
- .global gUnknown_80F58F4
-gUnknown_80F58F4: @ 80F58F4
- .incbin "baserom.gba", 0xF58F4, 0x84
-
- .global gUnknown_80F5978
-gUnknown_80F5978: @ 80F5978
- .incbin "baserom.gba", 0xF5978, 0x4C
diff --git a/data/data_80F4DB4.s b/data/data_80F4DB4.s
new file mode 100644
index 0000000..4a9b5cb
--- /dev/null
+++ b/data/data_80F4DB4.s
@@ -0,0 +1,272 @@
+ .section .rodata
+
+ .global gUnknown_80F4DB4
+gUnknown_80F4DB4: @ 80F4DB4
+@ replacing .incbin "baserom.gba", 0x000f4db4, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4DB6
+gUnknown_80F4DB6: @ 80F4DB6
+@ replacing .incbin "baserom.gba", 0x000f4db6, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DB8
+gUnknown_80F4DB8: @ 80F4DB8
+@ replacing .incbin "baserom.gba", 0x000f4db8, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DBA
+gUnknown_80F4DBA: @ 80F4DBA
+@ replacing .incbin "baserom.gba", 0x000f4dba, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DBC
+gUnknown_80F4DBC: @ 80F4DBC
+@ replacing .incbin "baserom.gba", 0x000f4dbc, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DBE
+gUnknown_80F4DBE: @ 80F4DBE
+@ replacing .incbin "baserom.gba", 0x000f4dbe, 0x2
+ .byte 0x12, 0x00
+
+ .global gUnknown_80F4DC0
+gUnknown_80F4DC0: @ 80F4DC0
+@ replacing .incbin "baserom.gba", 0x000f4dc0, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DC2
+gUnknown_80F4DC2: @ 80F4DC2
+@ replacing .incbin "baserom.gba", 0x000f4dc2, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DC4
+gUnknown_80F4DC4: @ 80F4DC4
+@ replacing .incbin "baserom.gba", 0x000f4dc4, 0x2
+ .byte 0x28, 0x00
+
+ .global gUnknown_80F4DC6
+gUnknown_80F4DC6: @ 80F4DC6
+@ replacing .incbin "baserom.gba", 0x000f4dc6, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DC8
+gUnknown_80F4DC8: @ 80F4DC8
+@ replacing .incbin "baserom.gba", 0x000f4dc8, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DCA
+gUnknown_80F4DCA: @ 80F4DCA
+@ replacing .incbin "baserom.gba", 0x000f4dca, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4DCC
+gUnknown_80F4DCC: @ 80F4DCC
+@ replacing .incbin "baserom.gba", 0x000f4dcc, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4DCE
+gUnknown_80F4DCE: @ 80F4DCE
+@ replacing .incbin "baserom.gba", 0x000f4dce, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DD0
+gUnknown_80F4DD0: @ 80F4DD0
+@ replacing .incbin "baserom.gba", 0x000f4dd0, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DD2
+gUnknown_80F4DD2: @ 80F4DD2
+@ replacing .incbin "baserom.gba", 0x000f4dd2, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DD4
+gUnknown_80F4DD4: @ 80F4DD4
+@ replacing .incbin "baserom.gba", 0x000f4dd4, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DD6
+gUnknown_80F4DD6: @ 80F4DD6
+@ replacing .incbin "baserom.gba", 0x000f4dd6, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DD8
+gUnknown_80F4DD8: @ 80F4DD8
+@ replacing .incbin "baserom.gba", 0x000f4dd8, 0x2
+ .byte 0x32, 0x00
+
+ .global gUnknown_80F4DDA
+gUnknown_80F4DDA: @ 80F4DDA
+@ replacing .incbin "baserom.gba", 0x000f4dda, 0x2
+ .byte 0x32, 0x00
+
+ .global gUnknown_80F4DDC
+gUnknown_80F4DDC: @ 80F4DDC
+@ replacing .incbin "baserom.gba", 0x000f4ddc, 0x4
+ .byte 0x32, 0x00
+ .byte 0x32, 0x00
+
+ .global gUnknown_80F4DE0
+gUnknown_80F4DE0: @ 80F4DE0
+@ replacing .incbin "baserom.gba", 0x000f4de0, 0x2
+ .byte 0x32, 0x00
+
+ .global gUnknown_80F4DE2
+gUnknown_80F4DE2: @ 80F4DE2
+@ replacing .incbin "baserom.gba", 0x000f4de2, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DE4
+gUnknown_80F4DE4: @ 80F4DE4
+@ replacing .incbin "baserom.gba", 0x000f4de4, 0x2
+ .byte 0x0f, 0x00
+
+ .global gUnknown_80F4DE6
+gUnknown_80F4DE6: @ 80F4DE6
+@ replacing .incbin "baserom.gba", 0x000f4de6, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DE8
+gUnknown_80F4DE8: @ 80F4DE8
+@ replacing .incbin "baserom.gba", 0x000f4de8, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DEA
+gUnknown_80F4DEA: @ 80F4DEA
+@ replacing .incbin "baserom.gba", 0x000f4dea, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DEC
+gUnknown_80F4DEC: @ 80F4DEC
+@ replacing .incbin "baserom.gba", 0x000f4dec, 0x2
+ .byte 0x0f, 0x00
+
+ .global gUnknown_80F4DEE
+gUnknown_80F4DEE: @ 80F4DEE
+@ replacing .incbin "baserom.gba", 0x000f4dee, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DF0
+gUnknown_80F4DF0: @ 80F4DF0
+@ replacing .incbin "baserom.gba", 0x000f4df0, 0x2
+ .byte 0x19, 0x00
+
+ .global gUnknown_80F4DF2
+gUnknown_80F4DF2: @ 80F4DF2
+@ replacing .incbin "baserom.gba", 0x000f4df2, 0x2
+ .byte 0x23, 0x00
+
+ .global gUnknown_80F4DF4
+gUnknown_80F4DF4: @ 80F4DF4
+@ replacing .incbin "baserom.gba", 0x000f4df4, 0x2
+ .byte 0x19, 0x00
+
+ .global gUnknown_80F4DF6
+gUnknown_80F4DF6: @ 80F4DF6
+@ replacing .incbin "baserom.gba", 0x000f4df6, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4DF8
+gUnknown_80F4DF8: @ 80F4DF8
+@ replacing .incbin "baserom.gba", 0x000f4df8, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4DFA
+gUnknown_80F4DFA: @ 80F4DFA
+@ replacing .incbin "baserom.gba", 0x000f4dfa, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4DFC
+gUnknown_80F4DFC: @ 80F4DFC
+@ replacing .incbin "baserom.gba", 0x000f4dfc, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4DFE
+gUnknown_80F4DFE: @ 80F4DFE
+@ replacing .incbin "baserom.gba", 0x000f4dfe, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4E00
+gUnknown_80F4E00: @ 80F4E00
+@ replacing .incbin "baserom.gba", 0x000f4e00, 0x2
+ .byte 0x28, 0x00
+
+ .global gUnknown_80F4E02
+gUnknown_80F4E02: @ 80F4E02
+@ replacing .incbin "baserom.gba", 0x000f4e02, 0x2
+ .byte 0x3c, 0x00
+
+ .global gUnknown_80F4E04
+gUnknown_80F4E04: @ 80F4E04
+@ replacing .incbin "baserom.gba", 0x000f4e04, 0x2
+ .byte 0x3c, 0x00
+
+ .global gUnknown_80F4E06
+gUnknown_80F4E06: @ 80F4E06
+@ replacing .incbin "baserom.gba", 0x000f4e06, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4E08
+gUnknown_80F4E08: @ 80F4E08
+@ replacing .incbin "baserom.gba", 0x000f4e08, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4E0A
+gUnknown_80F4E0A: @ 80F4E0A
+@ replacing .incbin "baserom.gba", 0x000f4e0a, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4E0C
+gUnknown_80F4E0C: @ 80F4E0C
+@ replacing .incbin "baserom.gba", 0x000f4e0c, 0x2
+ .byte 0x32, 0x00
+
+ .global gUnknown_80F4E0E
+gUnknown_80F4E0E: @ 80F4E0E
+@ replacing .incbin "baserom.gba", 0x000f4e0e, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4E10
+gUnknown_80F4E10: @ 80F4E10
+@ replacing .incbin "baserom.gba", 0x000f4e10, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E12
+gUnknown_80F4E12: @ 80F4E12
+@ replacing .incbin "baserom.gba", 0x000f4e12, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E14
+gUnknown_80F4E14: @ 80F4E14
+@ replacing .incbin "baserom.gba", 0x000f4e14, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E16
+gUnknown_80F4E16: @ 80F4E16
+@ replacing .incbin "baserom.gba", 0x000f4e16, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E18
+gUnknown_80F4E18: @ 80F4E18
+@ replacing .incbin "baserom.gba", 0x000f4e18, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E1A
+gUnknown_80F4E1A: @ 80F4E1A
+@ replacing .incbin "baserom.gba", 0x000f4e1a, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E1C
+gUnknown_80F4E1C: @ 80F4E1C
+@ replacing .incbin "baserom.gba", 0x000f4e1c, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E1E
+gUnknown_80F4E1E: @ 80F4E1E
+@ replacing .incbin "baserom.gba", 0x000f4e1e, 0x2
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E20
+gUnknown_80F4E20: @ 80F4E20
+@ replacing .incbin "baserom.gba", 0x000f4e20, 0x2
+ .byte 0x0c, 0x00
diff --git a/data/data_80F4E2C.s b/data/data_80F4E2C.s
new file mode 100644
index 0000000..9bf1e1a
--- /dev/null
+++ b/data/data_80F4E2C.s
@@ -0,0 +1,881 @@
+ .section .rodata
+
+ .global gUnknown_80F4E2C
+gUnknown_80F4E2C: @ 80F4E2C
+@ replacing .incbin "baserom.gba", 0x000f4e2c, 0x4
+ .byte 0x03, 0x00
+ .byte 0x05, 0x00
+
+ .global gUnknown_80F4E30
+gUnknown_80F4E30: @ 80F4E30
+@ replacing .incbin "baserom.gba", 0x000f4e30, 0x4
+ .byte 0x7f, 0x00
+ .byte 0x7f, 0x00
+
+ .global gUnknown_80F4E34
+gUnknown_80F4E34: @ 80F4E34
+@ replacing .incbin "baserom.gba", 0x000f4e34, 0x4
+ .byte 0x7f, 0x00
+ .byte 0x7f, 0x00
+
+ .global gUnknown_80F4E38
+gUnknown_80F4E38: @ 80F4E38
+@ replacing .incbin "baserom.gba", 0x000f4e38, 0x4
+ .byte 0x7f, 0x00
+ .byte 0x7f, 0x00
+
+ .global gUnknown_80F4E3C
+gUnknown_80F4E3C: @ 80F4E3C
+@ replacing .incbin "baserom.gba", 0x000f4e3c, 0x4
+ .byte 0x01, 0x00
+ .byte 0x01, 0x00
+
+ .global gUnknown_80F4E40
+gUnknown_80F4E40: @ 80F4E40
+@ replacing .incbin "baserom.gba", 0x000f4e40, 0x8
+ .byte 0x08, 0x00
+ .byte 0x0a, 0x00
+ .byte 0x03, 0x00
+ .byte 0x04, 0x00
+
+ .global gUnknown_80F4E48
+gUnknown_80F4E48: @ 80F4E48
+@ replacing .incbin "baserom.gba", 0x000f4e48, 0x4
+ .byte 0x06, 0x00
+ .byte 0x08, 0x00
+
+ .global gUnknown_80F4E4C
+gUnknown_80F4E4C: @ 80F4E4C
+@ replacing .incbin "baserom.gba", 0x000f4e4c, 0x4
+ .byte 0x06, 0x00
+ .byte 0x0c, 0x00
+
+ .global gUnknown_80F4E50
+gUnknown_80F4E50: @ 80F4E50
+@ replacing .incbin "baserom.gba", 0x000f4e50, 0x4
+ .byte 0x01, 0x00
+ .byte 0x02, 0x00
+
+ .global gUnknown_80F4E54
+gUnknown_80F4E54: @ 80F4E54
+@ replacing .incbin "baserom.gba", 0x000f4e54, 0x4
+ .byte 0x02, 0x00
+ .byte 0x05, 0x00
+
+ .global gUnknown_80F4E58
+gUnknown_80F4E58: @ 80F4E58
+@ replacing .incbin "baserom.gba", 0x000f4e58, 0x4
+ .byte 0x03, 0x00
+ .byte 0x06, 0x00
+
+ .global gUnknown_80F4E5C
+gUnknown_80F4E5C: @ 80F4E5C
+@ replacing .incbin "baserom.gba", 0x000f4e5c, 0x4
+ .byte 0x02, 0x00
+ .byte 0x05, 0x00
+
+ .global gUnknown_80F4E60
+gUnknown_80F4E60: @ 80F4E60
+@ replacing .incbin "baserom.gba", 0x000f4e60, 0x10
+ .byte 0x0f, 0x00
+ .byte 0x1e, 0x00
+ .byte 0x02, 0x00
+ .byte 0x03, 0x00
+ .byte 0x02, 0x00
+ .byte 0x06, 0x00
+ .byte 0x0a, 0x00
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4E70
+gUnknown_80F4E70: @ 80F4E70
+@ replacing .incbin "baserom.gba", 0x000f4e70, 0x4
+ .byte 0x01, 0x00
+ .byte 0x01, 0x00
+
+ .global gUnknown_80F4E74
+gUnknown_80F4E74: @ 80F4E74
+@ replacing .incbin "baserom.gba", 0x000f4e74, 0x4
+ .byte 0x03, 0x00
+ .byte 0x07, 0x00
+
+ .global gUnknown_80F4E78
+gUnknown_80F4E78: @ 80F4E78
+@ replacing .incbin "baserom.gba", 0x000f4e78, 0x4
+.byte 0x04, 0x00
+.byte 0x08, 0x00
+
+ .global gUnknown_80F4E7C
+gUnknown_80F4E7C: @ 80F4E7C
+@ replacing .incbin "baserom.gba", 0x000f4e7c, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4E80
+gUnknown_80F4E80: @ 80F4E80
+@ replacing .incbin "baserom.gba", 0x000f4e80, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4E84
+gUnknown_80F4E84: @ 80F4E84
+@ replacing .incbin "baserom.gba", 0x000f4e84, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4E88
+gUnknown_80F4E88: @ 80F4E88
+@ replacing .incbin "baserom.gba", 0x000f4e88, 0x4
+.byte 0x0f, 0x00
+.byte 0x14, 0x00
+
+ .global gUnknown_80F4E8C
+gUnknown_80F4E8C: @ 80F4E8C
+@ replacing .incbin "baserom.gba", 0x000f4e8c, 0x4
+.byte 0x0a, 0x00
+.byte 0x0e, 0x00
+
+ .global gUnknown_80F4E90
+gUnknown_80F4E90: @ 80F4E90
+@ replacing .incbin "baserom.gba", 0x000f4e90, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4E94
+gUnknown_80F4E94: @ 80F4E94
+@ replacing .incbin "baserom.gba", 0x000f4e94, 0x4
+.byte 0x02, 0x00
+.byte 0x04, 0x00
+
+ .global gUnknown_80F4E98
+gUnknown_80F4E98: @ 80F4E98
+@ replacing .incbin "baserom.gba", 0x000f4e98, 0x4
+.byte 0x06, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4E9C
+gUnknown_80F4E9C: @ 80F4E9C
+@ replacing .incbin "baserom.gba", 0x000f4e9c, 0x4
+.byte 0x03, 0x00
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4EA0
+gUnknown_80F4EA0: @ 80F4EA0
+@ replacing .incbin "baserom.gba", 0x000f4ea0, 0x4
+.byte 0x04, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4EA4
+gUnknown_80F4EA4: @ 80F4EA4
+@ replacing .incbin "baserom.gba", 0x000f4ea4, 0x4
+.byte 0x03, 0x00
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4EA8
+gUnknown_80F4EA8: @ 80F4EA8
+@ replacing .incbin "baserom.gba", 0x000f4ea8, 0x4
+.byte 0x03, 0x00
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4EAC
+gUnknown_80F4EAC: @ 80F4EAC
+@ replacing .incbin "baserom.gba", 0x000f4eac, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EB0
+gUnknown_80F4EB0: @ 80F4EB0
+@ replacing .incbin "baserom.gba", 0x000f4eb0, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EB4
+gUnknown_80F4EB4: @ 80F4EB4
+@ replacing .incbin "baserom.gba", 0x000f4eb4, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EB8
+gUnknown_80F4EB8: @ 80F4EB8
+@ replacing .incbin "baserom.gba", 0x000f4eb8, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EBC
+gUnknown_80F4EBC: @ 80F4EBC
+@ replacing .incbin "baserom.gba", 0x000f4ebc, 0x4
+.byte 0x14, 0x00
+.byte 0x1e, 0x00
+
+ .global gUnknown_80F4EC0
+gUnknown_80F4EC0: @ 80F4EC0
+@ replacing .incbin "baserom.gba", 0x000f4ec0, 0x4
+.byte 0x7f, 0x00
+.byte 0x7f, 0x00
+
+ .global gUnknown_80F4EC4
+gUnknown_80F4EC4: @ 80F4EC4
+@ replacing .incbin "baserom.gba", 0x000f4ec4, 0x4
+.byte 0x02, 0x00
+.byte 0x04, 0x00
+
+ .global gUnknown_80F4EC8
+gUnknown_80F4EC8: @ 80F4EC8
+@ replacing .incbin "baserom.gba", 0x000f4ec8, 0x4
+.byte 0x02, 0x00
+.byte 0x04, 0x00
+
+ .global gUnknown_80F4ECC
+gUnknown_80F4ECC: @ 80F4ECC
+@ replacing .incbin "baserom.gba", 0x000f4ecc, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4ED0
+gUnknown_80F4ED0: @ 80F4ED0
+@ replacing .incbin "baserom.gba", 0x000f4ed0, 0x4
+.byte 0x14, 0x00
+.byte 0x32, 0x00
+
+ .global gUnknown_80F4ED4
+gUnknown_80F4ED4: @ 80F4ED4
+@ replacing .incbin "baserom.gba", 0x000f4ed4, 0x4
+.byte 0x02, 0x00
+.byte 0x06, 0x00
+
+ .global gUnknown_80F4ED8
+gUnknown_80F4ED8: @ 80F4ED8
+@ replacing .incbin "baserom.gba", 0x000f4ed8, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EDC
+gUnknown_80F4EDC: @ 80F4EDC
+@ replacing .incbin "baserom.gba", 0x000f4edc, 0x4
+.byte 0x01, 0x00
+.byte 0x06, 0x00
+
+ .global gUnknown_80F4EE0
+gUnknown_80F4EE0: @ 80F4EE0
+@ replacing .incbin "baserom.gba", 0x000f4ee0, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EE4
+gUnknown_80F4EE4: @ 80F4EE4
+@ replacing .incbin "baserom.gba", 0x000f4ee4, 0x4
+.byte 0x0a, 0x00
+.byte 0x14, 0x00
+
+ .global gUnknown_80F4EE8
+gUnknown_80F4EE8: @ 80F4EE8
+@ replacing .incbin "baserom.gba", 0x000f4ee8, 0x4
+.byte 0x0a, 0x00
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4EEC
+gUnknown_80F4EEC: @ 80F4EEC
+@ replacing .incbin "baserom.gba", 0x000f4eec, 0x4
+.byte 0x03, 0x00
+.byte 0x03, 0x00
+
+ .global gUnknown_80F4EF0
+gUnknown_80F4EF0: @ 80F4EF0
+@ replacing .incbin "baserom.gba", 0x000f4ef0, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4EF4
+gUnknown_80F4EF4: @ 80F4EF4
+@ replacing .incbin "baserom.gba", 0x000f4ef4, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4EF8
+gUnknown_80F4EF8: @ 80F4EF8
+@ replacing .incbin "baserom.gba", 0x000f4ef8, 0x4
+.byte 0x03, 0x00
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4EFC
+gUnknown_80F4EFC: @ 80F4EFC
+@ replacing .incbin "baserom.gba", 0x000f4efc, 0x4
+.byte 0x7f, 0x00
+.byte 0x7f, 0x00
+
+ .global gUnknown_80F4F00
+gUnknown_80F4F00: @ 80F4F00
+@ replacing .incbin "baserom.gba", 0x000f4f00, 0x4
+.byte 0x04, 0x00
+.byte 0x06, 0x00
+
+ .global gUnknown_80F4F04
+gUnknown_80F4F04: @ 80F4F04
+@ replacing .incbin "baserom.gba", 0x000f4f04, 0x4
+.byte 0x7f, 0x00
+.byte 0x7f, 0x00
+
+ .global gUnknown_80F4F08
+gUnknown_80F4F08: @ 80F4F08
+@ replacing .incbin "baserom.gba", 0x000f4f08, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F0C
+gUnknown_80F4F0C: @ 80F4F0C
+@ replacing .incbin "baserom.gba", 0x000f4f0c, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F10
+gUnknown_80F4F10: @ 80F4F10
+@ replacing .incbin "baserom.gba", 0x000f4f10, 0x8
+.byte 0x7f, 0x00
+.byte 0x7f, 0x00
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F18
+gUnknown_80F4F18: @ 80F4F18
+@ replacing .incbin "baserom.gba", 0x000f4f18, 0x4
+.byte 0x02, 0x00
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F1C
+gUnknown_80F4F1C: @ 80F4F1C
+@ replacing .incbin "baserom.gba", 0x000f4f1c, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F20
+gUnknown_80F4F20: @ 80F4F20
+@ replacing .incbin "baserom.gba", 0x000f4f20, 0x4
+.byte 0x0a, 0x00
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F24
+gUnknown_80F4F24: @ 80F4F24
+@ replacing .incbin "baserom.gba", 0x000f4f24, 0x4
+.byte 0x0f, 0x00
+.byte 0x14, 0x00
+
+ .global gUnknown_80F4F28
+gUnknown_80F4F28: @ 80F4F28
+@ replacing .incbin "baserom.gba", 0x000f4f28, 0x4
+.byte 0x02, 0x00
+.byte 0x02, 0x00
+
+ .global gUnknown_80F4F2C
+gUnknown_80F4F2C: @ 80F4F2C
+@ replacing .incbin "baserom.gba", 0x000f4f2c, 0x4
+.byte 0x04, 0x00
+.byte 0x08, 0x00
+
+ .global gUnknown_80F4F30
+gUnknown_80F4F30: @ 80F4F30
+@ replacing .incbin "baserom.gba", 0x000f4f30, 0x2
+.byte 0xfa, 0x00
+
+ .global gUnknown_80F4F32
+gUnknown_80F4F32: @ 80F4F32
+@ replacing .incbin "baserom.gba", 0x000f4f32, 0x2
+.byte 0x14, 0x00
+
+ .global gUnknown_80F4F34
+gUnknown_80F4F34: @ 80F4F34
+@ replacing .incbin "baserom.gba", 0x000f4f34, 0x2
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F36
+gUnknown_80F4F36: @ 80F4F36
+@ replacing .incbin "baserom.gba", 0x000f4f36, 0x2
+.byte 0x02, 0x00
+
+ .global gUnknown_80F4F38
+gUnknown_80F4F38: @ 80F4F38
+@ replacing .incbin "baserom.gba", 0x000f4f38, 0x2
+.byte 0x02, 0x00
+
+ .global gUnknown_80F4F3A
+gUnknown_80F4F3A: @ 80F4F3A
+@ replacing .incbin "baserom.gba", 0x000f4f3a, 0x2
+.byte 0x02, 0x00
+
+ .global gUnknown_80F4F3C
+gUnknown_80F4F3C: @ 80F4F3C
+@ replacing .incbin "baserom.gba", 0x000f4f3c, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F3E
+gUnknown_80F4F3E: @ 80F4F3E
+@ replacing .incbin "baserom.gba", 0x000f4f3e, 0x2
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F40
+gUnknown_80F4F40: @ 80F4F40
+@ replacing .incbin "baserom.gba", 0x000f4f40, 0x2
+.byte 0x02, 0x00
+
+ .global gUnknown_80F4F42
+gUnknown_80F4F42: @ 80F4F42
+@ replacing .incbin "baserom.gba", 0x000f4f42, 0x4
+.byte 0x14, 0x00
+.byte 0x5f, 0x00
+
+ .global gUnknown_80F4F46
+gUnknown_80F4F46: @ 80F4F46
+@ replacing .incbin "baserom.gba", 0x000f4f46, 0x2
+.byte 0x0c, 0x00
+
+ .global gUnknown_80F4F48
+gUnknown_80F4F48: @ 80F4F48
+@ replacing .incbin "baserom.gba", 0x000f4f48, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F4C
+gUnknown_80F4F4C: @ 80F4F4C
+@ replacing .incbin "baserom.gba", 0x000f4f4c, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F50
+gUnknown_80F4F50: @ 80F4F50
+@ replacing .incbin "baserom.gba", 0x000f4f50, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F54
+gUnknown_80F4F54: @ 80F4F54
+@ replacing .incbin "baserom.gba", 0x000f4f54, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F58
+gUnknown_80F4F58: @ 80F4F58
+@ replacing .incbin "baserom.gba", 0x000f4f58, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F5C
+gUnknown_80F4F5C: @ 80F4F5C
+@ replacing .incbin "baserom.gba", 0x000f4f5c, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F60
+gUnknown_80F4F60: @ 80F4F60
+@ replacing .incbin "baserom.gba", 0x000f4f60, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F64
+gUnknown_80F4F64: @ 80F4F64
+@ replacing .incbin "baserom.gba", 0x000f4f64, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F68
+gUnknown_80F4F68: @ 80F4F68
+@ replacing .incbin "baserom.gba", 0x000f4f68, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F6C
+gUnknown_80F4F6C: @ 80F4F6C
+@ replacing .incbin "baserom.gba", 0x000f4f6c, 0x4
+.byte 0x00, 0x02
+.byte 0x00, 0x00
+
+ .global gUnknown_80F4F70
+gUnknown_80F4F70: @ 80F4F70
+@ replacing .incbin "baserom.gba", 0x000f4f70, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F72
+gUnknown_80F4F72: @ 80F4F72
+@ replacing .incbin "baserom.gba", 0x000f4f72, 0x2
+.byte 0x04, 0x00
+
+ .global gUnknown_80F4F74
+gUnknown_80F4F74: @ 80F4F74
+@ replacing .incbin "baserom.gba", 0x000f4f74, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F76
+gUnknown_80F4F76: @ 80F4F76
+@ replacing .incbin "baserom.gba", 0x000f4f76, 0x2
+.byte 0x06, 0x00
+
+ .global gUnknown_80F4F78
+gUnknown_80F4F78: @ 80F4F78
+@ replacing .incbin "baserom.gba", 0x000f4f78, 0x2
+.byte 0x08, 0x00
+
+ .global gUnknown_80F4F7A
+gUnknown_80F4F7A: @ 80F4F7A
+@ replacing .incbin "baserom.gba", 0x000f4f7a, 0x2
+.byte 0xe7, 0x03
+
+ .global gUnknown_80F4F7C
+gUnknown_80F4F7C: @ 80F4F7C
+@ replacing .incbin "baserom.gba", 0x000f4f7c, 0x2
+.byte 0x37, 0x00
+
+ .global gUnknown_80F4F7E
+gUnknown_80F4F7E: @ 80F4F7E
+@ replacing .incbin "baserom.gba", 0x000f4f7e, 0x2
+.byte 0x41, 0x00
+
+ .global gUnknown_80F4F80
+gUnknown_80F4F80: @ 80F4F80
+@ replacing .incbin "baserom.gba", 0x000f4f80, 0x2
+.byte 0x23, 0x00
+
+ .global gUnknown_80F4F82
+gUnknown_80F4F82: @ 80F4F82
+@ replacing .incbin "baserom.gba", 0x000f4f82, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F84
+gUnknown_80F4F84: @ 80F4F84
+@ replacing .incbin "baserom.gba", 0x000f4f84, 0x2
+.byte 0x14, 0x00
+
+ .global gUnknown_80F4F86
+gUnknown_80F4F86: @ 80F4F86
+@ replacing .incbin "baserom.gba", 0x000f4f86, 0x4
+.byte 0x0a, 0x00
+.byte 0x0f, 0x00
+
+ .global gUnknown_80F4F8A
+gUnknown_80F4F8A: @ 80F4F8A
+@ replacing .incbin "baserom.gba", 0x000f4f8a, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F8C
+gUnknown_80F4F8C: @ 80F4F8C
+@ replacing .incbin "baserom.gba", 0x000f4f8c, 0x2
+.byte 0x23, 0x00
+
+ .global gUnknown_80F4F8E
+gUnknown_80F4F8E: @ 80F4F8E
+@ replacing .incbin "baserom.gba", 0x000f4f8e, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F90
+gUnknown_80F4F90: @ 80F4F90
+@ replacing .incbin "baserom.gba", 0x000f4f90, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F4F92
+gUnknown_80F4F92: @ 80F4F92
+@ replacing .incbin "baserom.gba", 0x000f4f92, 0x2
+.byte 0x0a, 0x00
+
+ .global gUnknown_80F4F94
+gUnknown_80F4F94: @ 80F4F94
+@ replacing .incbin "baserom.gba", 0x000f4f94, 0xe
+ .byte 0x05, 0x00
+ .byte 0x0a, 0x00
+ .byte 0x0f, 0x00
+ .byte 0x19, 0x00
+ .byte 0x1e, 0x00
+ .byte 0x23, 0x00
+ .byte 0x28, 0x00
+
+ .global gUnknown_80F4FA2
+gUnknown_80F4FA2: @ 80F4FA2
+@ replacing .incbin "baserom.gba", 0x000f4fa2, 0x2
+.byte 0x5a, 0x00
+
+ .global gUnknown_80F4FA4
+gUnknown_80F4FA4: @ 80F4FA4
+@ replacing .incbin "baserom.gba", 0x000f4fa4, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F4FA6
+gUnknown_80F4FA6: @ 80F4FA6
+@ replacing .incbin "baserom.gba", 0x000f4fa6, 0x2
+ .byte 0x2d, 0x00
+
+ .global gUnknown_80F4FA8
+gUnknown_80F4FA8: @ 80F4FA8
+@ replacing .incbin "baserom.gba", 0x000f4fa8, 0x2
+ .byte 0x0f, 0x00
+
+ .global gUnknown_80F4FAA
+gUnknown_80F4FAA: @ 80F4FAA
+@ replacing .incbin "baserom.gba", 0x000f4faa, 0x2
+ .byte 0x1e, 0x00
+
+ .global gUnknown_80F4FAC
+gUnknown_80F4FAC: @ 80F4FAC
+@ replacing .incbin "baserom.gba", 0x000f4fac, 0x2
+ .byte 0x01, 0x00
+
+ .global gUnknown_80F4FAE
+gUnknown_80F4FAE: @ 80F4FAE
+@ replacing .incbin "baserom.gba", 0x000f4fae, 0x4
+ .byte 0x02, 0x00
+ .byte 0x19, 0x00
+
+ .global gUnknown_80F4FB2
+gUnknown_80F4FB2: @ 80F4FB2
+@ replacing .incbin "baserom.gba", 0x000f4fb2, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4FB4
+gUnknown_80F4FB4: @ 80F4FB4
+@ replacing .incbin "baserom.gba", 0x000f4fb4, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4FB6
+gUnknown_80F4FB6: @ 80F4FB6
+@ replacing .incbin "baserom.gba", 0x000f4fb6, 0x2
+ .byte 0x64, 0x00
+
+ .global gUnknown_80F4FB8
+gUnknown_80F4FB8: @ 80F4FB8
+@ replacing .incbin "baserom.gba", 0x000f4fb8, 0x2
+ .byte 0x00, 0x00
+
+ .global gUnknown_80F4FBA
+gUnknown_80F4FBA: @ 80F4FBA
+@ replacing .incbin "baserom.gba", 0x000f4fba, 0x2
+ .byte 0x64, 0x00
+
+ .global gUnknown_80F4FBC
+gUnknown_80F4FBC: @ 80F4FBC
+@ replacing .incbin "baserom.gba", 0x000f4fbc, 0x2
+ .byte 0x02, 0x00
+
+ .global gUnknown_80F4FBE
+gUnknown_80F4FBE: @ 80F4FBE
+@ replacing .incbin "baserom.gba", 0x000f4fbe, 0x2
+ .byte 0x03, 0x00
+
+ .global gUnknown_80F4FC0
+gUnknown_80F4FC0: @ 80F4FC0
+@ replacing .incbin "baserom.gba", 0x000f4fc0, 0x2
+ .byte 0x24, 0xff
+
+ .global gUnknown_80F4FC2
+gUnknown_80F4FC2: @ 80F4FC2
+@ replacing .incbin "baserom.gba", 0x000f4fc2, 0x2
+ .byte 0x6a, 0xff
+
+ .global gUnknown_80F4FC4
+gUnknown_80F4FC4: @ 80F4FC4
+@ replacing .incbin "baserom.gba", 0x000f4fc4, 0x2
+ .byte 0x9c, 0xff
+
+ .global gUnknown_80F4FC6
+gUnknown_80F4FC6: @ 80F4FC6
+@ replacing .incbin "baserom.gba", 0x000f4fc6, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F4FC8
+gUnknown_80F4FC8: @ 80F4FC8
+ .incbin "baserom.gba", 0xF4FC8, 0x3C
+
+ .global gUnknown_80F5004
+gUnknown_80F5004: @ 80F5004
+@ replacing .incbin "baserom.gba", 0x000f5004, 0x2
+.byte 0x03, 0x00
+
+ .global gUnknown_80F5006
+gUnknown_80F5006: @ 80F5006
+@ replacing .incbin "baserom.gba", 0x000f5006, 0x2
+.byte 0x02, 0x00
+
+ .global gUnknown_80F5008
+gUnknown_80F5008: @ 80F5008
+@ replacing .incbin "baserom.gba", 0x000f5008, 0x2
+.byte 0x64, 0x00
+
+ .global gUnknown_80F500A
+gUnknown_80F500A: @ 80F500A
+@ replacing .incbin "baserom.gba", 0x000f500a, 0x10
+.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
+
+ .global gUnknown_80F501A
+gUnknown_80F501A: @ 80F501A
+@ replacing .incbin "baserom.gba", 0x000f501a, 0x10
+.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
+
+ .global gUnknown_80F502A
+gUnknown_80F502A: @ 80F502A
+@ replacing .incbin "baserom.gba", 0x000f502a, 0x10
+.byte 0x32, 0x00, 0x50, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x01, 0x00
+
+ .global gUnknown_80F503A
+gUnknown_80F503A: @ 80F503A
+@ replacing .incbin "baserom.gba", 0x000f503a, 0x2
+.byte 0x01, 0x00
+
+ .global gUnknown_80F503C
+gUnknown_80F503C: @ 80F503C
+@ replacing .incbin "baserom.gba", 0x000f503c, 0x2
+.byte 0x05, 0x00
+
+ .global gUnknown_80F503E
+gUnknown_80F503E: @ 80F503E
+@ replacing .incbin "baserom.gba", 0x000f503e, 0x2
+.byte 0x06, 0x00
+
+ .global gUnknown_80F5040
+gUnknown_80F5040: @ 80F5040
+@ replacing .incbin "baserom.gba", 0x000f5040, 0x2
+.byte 0x07, 0x00
+
+ .global gUnknown_80F5042
+gUnknown_80F5042: @ 80F5042
+@ replacing .incbin "baserom.gba", 0x000f5042, 0x2
+.byte 0x08, 0x00
+
+ .global gUnknown_80F5044
+gUnknown_80F5044: @ 80F5044
+@ replacing .incbin "baserom.gba", 0x000f5044, 0x2
+.byte 0x09, 0x00
+
+ .global gUnknown_80F5046
+gUnknown_80F5046: @ 80F5046
+@ replacing .incbin "baserom.gba", 0x000f5046, 0x2
+.byte 0x14, 0x00
+
+ .global gUnknown_80F5048
+gUnknown_80F5048: @ 80F5048
+@ replacing .incbin "baserom.gba", 0x000f5048, 0x4
+.byte 0x0f, 0x00, 0x00, 0x00
+
+ .global gUnknown_80F504C
+gUnknown_80F504C: @ 80F504C
+ .incbin "baserom.gba", 0xF504C, 0x54
+
+ .global gUnknown_80F50A0
+gUnknown_80F50A0: @ 80F50A0
+ .incbin "baserom.gba", 0xF50A0, 0x54
+
+ .global gUnknown_80F50F4
+gUnknown_80F50F4: @ 80F50F4
+ .incbin "baserom.gba", 0xF50F4, 0xA8
+
+ .global gUnknown_80F519C
+gUnknown_80F519C: @ 80F519C
+@ replacing .incbin "baserom.gba", 0x000f519c, 0x4
+.byte 0x1e, 0x00, 0x00, 0x00
+
+ .global gUnknown_80F51A0
+gUnknown_80F51A0: @ 80F51A0
+@ replacing .incbin "baserom.gba", 0x000f51a0, 0x4
+.byte 0x1e, 0x00, 0x00, 0x00
+
+ .global gUnknown_80F51A4
+gUnknown_80F51A4: @ 80F51A4
+@ replacing .incbin "baserom.gba", 0x000f51a4, 0x10
+.byte 0x00, 0x08, 0x00, 0x00
+.byte 0x00, 0x04, 0x00, 0x00
+.byte 0x00, 0x02, 0x00, 0x00
+.byte 0x00, 0x01, 0x00, 0x00
+
+ .global gUnknown_80F51B4
+gUnknown_80F51B4: @ 80F51B4
+@ replacing .incbin "baserom.gba", 0x000f51b4, 0x10
+.byte 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
+
+ .global gUnknown_80F51C4
+gUnknown_80F51C4: @ 80F51C4
+@ replacing .incbin "baserom.gba", 0x000f51c4, 0x10
+.byte 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
+
+ .global gUnknown_80F51D4
+gUnknown_80F51D4: @ 80F51D4
+@ replacing .incbin "baserom.gba", 0x000f51d4, 0x10
+.byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00
+
+ .global gUnknown_80F51E4
+gUnknown_80F51E4: @ 80F51E4
+@ replacing .incbin "baserom.gba", 0x000f51e4, 0x8
+.byte 0x01, 0x02, 0x0d, 0x01, 0x03, 0x06, 0x03, 0x06
+
+ .global gUnknown_80F51EC
+gUnknown_80F51EC: @ 80F51EC
+ .incbin "baserom.gba", 0xF51EC, 0x20
+
+ .global gUnknown_80F520C
+gUnknown_80F520C: @ 80F520C
+ .incbin "baserom.gba", 0xF520C, 0x20
+
+ .global gTypeEffectivenessChart
+gTypeEffectivenessChart: @ 80F522C
+ .incbin "baserom.gba", 0xF522C, 0x288
+
+ .global gUnknown_80F54B4
+gUnknown_80F54B4: @ 80F54B4
+ .incbin "baserom.gba", 0xF54B4, 0x40
+
+ .global gUnknown_80F54F4
+gUnknown_80F54F4: @ 80F54F4
+ .incbin "baserom.gba", 0xF54F4, 0xA0
+
+ .global gWarpScarfActivationChances
+gWarpScarfActivationChances: @ 80F5594
+@ replacing .incbin "baserom.gba", 0xF5594, 0x28
+ .2byte 0, 6, 12, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 999, 0
+
+ .global gUnknown_80F55BC
+gUnknown_80F55BC: @ 80F55BC
+ .incbin "baserom.gba", 0xF55BC, 0x30
+
+ .global gUnknown_80F55EC
+gUnknown_80F55EC: @ 80F55EC
+ .incbin "baserom.gba", 0xF55EC, 0x30
+
+ .global gDungeonCamouflageTypes
+gDungeonCamouflageTypes: @ 80F561C
+ .incbin "baserom.gba", 0xF561C, 0x4C
+
+ .global gDungeonMusic
+gDungeonMusic: @ 80F5668
+ .incbin "baserom.gba", 0xF5668, 0x98
+
+ .global gUnknown_80F5700
+gUnknown_80F5700: @ 80F5700
+ .incbin "baserom.gba", 0xF5700, 0xCA
+
+ .global gUnknown_80F57CA
+gUnknown_80F57CA: @ 80F57CA
+@ replacing .incbin "baserom.gba", 0x000f57ca, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F57CC
+gUnknown_80F57CC: @ 80F57CC
+@ replacing .incbin "baserom.gba", 0x000f57cc, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F57CE
+gUnknown_80F57CE: @ 80F57CE
+@ replacing .incbin "baserom.gba", 0x000f57ce, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F57D0
+gUnknown_80F57D0: @ 80F57D0
+@ replacing .incbin "baserom.gba", 0x000f57d0, 0x2
+ .byte 0x14, 0x00
+
+ .global gUnknown_80F57D2
+gUnknown_80F57D2: @ 80F57D2
+@ replacing .incbin "baserom.gba", 0x000f57d2, 0x2
+ .byte 0x0a, 0x00
+
+ .global gUnknown_80F57D4
+gUnknown_80F57D4: @ 80F57D4
+ .incbin "baserom.gba", 0xF57D4, 0x120
+
+ .global gUnknown_80F58F4
+gUnknown_80F58F4: @ 80F58F4
+ .incbin "baserom.gba", 0xF58F4, 0x84
+
+ .global gUnknown_80F5978
+gUnknown_80F5978: @ 80F5978
+ .incbin "baserom.gba", 0xF5978, 0x4C
diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s
index 7440857..93158f6 100644
--- a/data/data_80F59C8.s
+++ b/data/data_80F59C8.s
@@ -6109,7 +6109,3 @@ gUnknown_81069BC: @ 81069BC
.global gUnknown_81069D4
gUnknown_81069D4: @ 81069D4
.incbin "baserom.gba", 0x1069D4, 0x20
-
- .global gChargeMovesToStatuses
-gChargeMovesToStatuses: @ 81069F4
- .incbin "baserom.gba", 0x1069F4, 0x28
diff --git a/include/charge_move.h b/include/charge_move.h
index 9d10ac2..fd88a62 100644
--- a/include/charge_move.h
+++ b/include/charge_move.h
@@ -3,7 +3,10 @@
#include "dungeon_entity.h"
+// 0x570AC
+bool8 MoveMatchesChargingStatus(struct DungeonEntity *pokemon, struct PokemonMove *move);
// 0x570F4
+// checkCharge = Check for the move named Charge.
bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge);
#endif
diff --git a/include/constants/move.h b/include/constants/move.h
index 4e3396b..15ae1b9 100644
--- a/include/constants/move.h
+++ b/include/constants/move.h
@@ -44,7 +44,7 @@ struct PokemonMove
u8 moveFlags;
bool8 sealed;
u16 moveID;
- u8 pp;
+ u8 PP;
u8 powerBoost; // How much the move is boosted by Ginsengs.
};
@@ -52,17 +52,19 @@ enum TargetingFlag
{
TARGETING_FLAG_TARGET_OTHER = 0x0,
TARGETING_FLAG_HEAL_TEAM = 0x1,
- TARGETING_FLAG_SWAP_POSITIONS = 0x2,
+ TARGETING_FLAG_LONG_RANGE = 0x2,
+ TARGETING_FLAG_BOOST_SELF = 0x3,
+ TARGETING_FLAG_MULTI_TURN = 0x4,
TARGETING_FLAG_ATTACK_ALL = 0x5,
TARGETING_FLAG_BOOST_TEAM = 0x6,
- TARGETING_FLAG_DONT_USE = 0xF,
+ TARGETING_FLAG_ITEM = 0xF,
TARGETING_FLAG_TARGET_FRONTAL_CONE = 0x10,
TARGETING_FLAG_TARGET_AROUND = 0x20,
TARGETING_FLAG_TARGET_ROOM = 0x30,
TARGETING_FLAG_TARGET_2_TILES_AHEAD = 0x40,
TARGETING_FLAG_TARGET_LINE = 0x50,
TARGETING_FLAG_TARGET_FLOOR = 0x60,
- TARGETING_FLAG_SELF_HEAL = 0x70,
+ TARGETING_FLAG_TARGET_SELF = 0x70,
TARGETING_FLAG_CUT_CORNERS = 0x80,
TARGETING_FLAG_SET_TRAP = 0x100,
TARGETING_FLAG_HEAL_HP = 0x200,
diff --git a/include/dungeon_ai.h b/include/dungeon_ai.h
index e02da08..e3f7a37 100644
--- a/include/dungeon_ai.h
+++ b/include/dungeon_ai.h
@@ -5,5 +5,7 @@
// 0x71494
bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon);
+// 0x71518
+bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect);
#endif
diff --git a/include/dungeon_ai_attack.h b/include/dungeon_ai_attack.h
index 75abcab..1878889 100644
--- a/include/dungeon_ai_attack.h
+++ b/include/dungeon_ai_attack.h
@@ -3,7 +3,16 @@
#include "dungeon_entity.h"
-// 0x7C9F8
-bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, s32 facingDir, s32 maxRange);
+struct MoveTargetResults
+{
+ bool8 moveUsable;
+ u8 targetDir;
+ s32 moveWeight;
+};
+
+// 0x7BB94
+void DecideAttack(struct DungeonEntity *pokemon);
+// 0x7C04C
+s32 FindMoveTarget(struct MoveTargetResults *moveTargetResults, struct DungeonEntity *pokemon, struct PokemonMove *move);
#endif
diff --git a/include/dungeon_ai_attack_1.h b/include/dungeon_ai_attack_1.h
new file mode 100644
index 0000000..89a1f0d
--- /dev/null
+++ b/include/dungeon_ai_attack_1.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_DUNGEON_AI_ATTACK_1_H
+#define GUARD_DUNGEON_AI_ATTACK_1_H
+
+#include "dungeon_entity.h"
+
+// 0x7C9F8
+bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, s32 facingDir, s32 maxRange);
+
+#endif
diff --git a/include/dungeon_capabilities_1.h b/include/dungeon_capabilities_1.h
index c19391b..1319230 100644
--- a/include/dungeon_capabilities_1.h
+++ b/include/dungeon_capabilities_1.h
@@ -7,6 +7,8 @@
bool8 CannotUseItems(struct DungeonEntity *pokemon);
// 0x70CD0
bool8 CannotAct(struct DungeonEntity *pokemon);
+// 0x70d04
+bool8 CannotAttack(struct DungeonEntity *pokemon, bool8 skipSleep);
// 0x70D6C
bool8 CanMoveInDirection(struct DungeonEntity *pokemon, u32 facingDir);
diff --git a/include/dungeon_pokemon_attributes.h b/include/dungeon_pokemon_attributes.h
index 941c966..40b13ee 100644
--- a/include/dungeon_pokemon_attributes.h
+++ b/include/dungeon_pokemon_attributes.h
@@ -5,5 +5,21 @@
// 0x71824
bool8 HasAbility(struct DungeonEntity *pokemon, u8 ability);
+// 0x71858
+bool8 HasType(struct DungeonEntity *pokemon, u8 type);
+// 0x71884
+bool8 CanSeeInvisible(struct DungeonEntity *pokemon);
+// 0x718AC
+bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic);
+// 0x718D8
+bool8 HasIQSkill(struct DungeonEntity *pokemon, u8 IQSkill);
+
+void LoadIQSkills(struct DungeonEntity *pokemon);
+bool8 CanSeeTeammate(struct DungeonEntity * pokemon);
+u8 GetMoveTypeForPokemon(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove);
+
+// 0x71A44
+s32 CalculateMovePower(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove);
+bool8 ToolboxEnabled(struct DungeonEntityData *pokemon);
#endif
diff --git a/include/dungeon_pokemon_attributes_1.h b/include/dungeon_pokemon_attributes_1.h
deleted file mode 100644
index cdfa989..0000000
--- a/include/dungeon_pokemon_attributes_1.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef GUARD_DUNGEON_POKEMON_ATTRIBUTES_1_H
-#define GUARD_DUNGEON_POKEMON_ATTRIBUTES_1_H
-
-#include "dungeon_entity.h"
-
-// 0x71884
-bool8 CanSeeInvisible(struct DungeonEntity *pokemon);
-// 0x718AC
-bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic);
-// 0x718D8
-bool8 HasIQSkill(struct DungeonEntity *pokemon, u8 IQSkill);
-
-void LoadIQSkills(struct DungeonEntity *pokemon);
-bool8 CanSeeTeammate(struct DungeonEntity * pokemon);
-u8 GetMoveType_2(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove);
-
-// 0x71A44
-s32 CalculateMovePower(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove);
-bool8 ToolboxEnabled(struct DungeonEntityData *pokemon);
-
-#endif
diff --git a/include/map.h b/include/map.h
index 9122f00..3601a14 100644
--- a/include/map.h
+++ b/include/map.h
@@ -38,7 +38,7 @@ struct MapTile
u8 unk8;
/* 0x9 */ u8 roomIndex;
// Bitwise flags for whether Pokémon can move to an adjacent tile. Bits correspond to directions in direction.h.
- // Different sets of flags are used for Pokémon that can cross special terrain, corresponding to Cthe rossableTerrain enum.
+ // Different sets of flags are used for Pokémon that can cross special terrain, corresponding to the CrossableTerrain enum.
/* 0xA */ u8 canMoveAdjacent[NUM_CROSSABLE_TERRAIN];
u8 fillE[0x10 - 0xE];
/* 0x10 */ struct DungeonEntity *pokemon; // Pokémon on the tile.
diff --git a/include/moves.h b/include/moves.h
index bba50b3..22f7ba6 100644
--- a/include/moves.h
+++ b/include/moves.h
@@ -3,6 +3,17 @@
#include "constants/move.h"
+// 0x92A88
+void InitPokemonMove(struct PokemonMove *move, u16 moveID);
+// 0x92AE0
+s16 GetMoveTargetingFlags(struct PokemonMove *move, u32 isAI);
+u8 GetMoveType(struct PokemonMove *move);
+// 0x92B90
+u8 GetMoveWeight(struct PokemonMove *move);
+s32 GetMovePower(struct PokemonMove *move);
+// 0x92BF4
u32 GetMoveMaxPP(struct PokemonMove *move);
+// 0x92C54
+bool8 MoveDealsDirectDamage(struct PokemonMove *move);
#endif
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index 968e2ef..c68da39 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_3_H
#define GUARD_POKEMON_3_H
+bool8 HasIQForSkill(s32 pokeIQ, u8 IQSkillIndex);
+void SetIQSkill(u8 *param_1, u32 skillIndex);
bool8 IsIQSkillSet(u8 *IQSkillsEnabled, u32 IQSkill);
#endif
diff --git a/include/status_checks.h b/include/status_checks.h
index 086711d..5bc80eb 100644
--- a/include/status_checks.h
+++ b/include/status_checks.h
@@ -3,6 +3,8 @@
#include "dungeon_entity.h"
+extern const s16 gConfusedAttackChance;
+
// 0x7001C
bool8 HasStatusAffectingActions(struct DungeonEntity *pokemon);
diff --git a/include/targeting.h b/include/targeting.h
new file mode 100644
index 0000000..7330398
--- /dev/null
+++ b/include/targeting.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_TARGETING_H
+#define GUARD_TARGETING_H
+
+#include "dungeon_entity.h"
+
+// 0x69DCC
+void TargetTileInFront(struct DungeonEntity *pokemon);
+
+#endif
diff --git a/include/targeting_flags.h b/include/targeting_flags.h
new file mode 100644
index 0000000..54e7063
--- /dev/null
+++ b/include/targeting_flags.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_TARGETING_FLAGS_H
+#define GUARD_TARGETING_FLAGS_H
+
+#include "constants/move.h"
+#include "dungeon_entity.h"
+
+// 0x7CD64
+s16 GetMoveTargetingFlagsForPokemon(struct DungeonEntity *pokemon, struct PokemonMove *move, u32 isAI);
+
+#endif
diff --git a/ld_script.txt b/ld_script.txt
index 4390af2..1f95d54 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -207,6 +207,8 @@ SECTIONS {
asm/code_8057144.o(.text);
src/code_8057824.o(.text);
asm/code_8057824.o(.text);
+ src/targeting.o(.text);
+ asm/code_8069E0C.o(.text);
src/code_806CD90.o(.text);
asm/code_806CD90.o(.text);
src/status_checks.o(.text);
@@ -224,15 +226,17 @@ SECTIONS {
src/dungeon_ai_1.o(.text);
asm/code_807167C.o(.text);
src/dungeon_pokemon_attributes.o(.text);
- asm/code_8071858.o(.text);
- src/dungeon_pokemon_attributes_1.o(.text);
asm/code_80718D8.o(.text);
src/dungeon_ai_items.o(.text);
asm/code_8073CF0.o(.text);
src/dungeon_ai_movement.o(.text);
asm/code_8075BA4.o(.text);
src/dungeon_ai_attack.o(.text);
+ asm/code_807C4A0.o(.text);
+ src/dungeon_ai_attack_1.o(.text);
asm/code_807CABC.o(.text);
+ src/targeting_flags.o(.text);
+ asm/code_807CD9C.o(.text);
src/dungeon_range.o(.text);
asm/code_808333C.o(.text);
src/dungeon_random.o(.text);
@@ -400,7 +404,11 @@ SECTIONS {
data/data_80F4278.o(.rodata);
src/dungeon_util.o(.rodata);
data/data_80F4468.o(.rodata);
- src/dungeon_pokemon_attributes_1.o(.rodata);
+ src/status_checks.o(.rodata);
+ data/data_80F4DB4.o(.rodata);
+ src/dungeon_ai_attack.o(.rodata);
+ data/data_80F4E2C.o(.rodata);
+ src/dungeon_pokemon_attributes.o(.rodata);
data/data_80F59C8.o(.rodata);
src/charge_move.o(.rodata);
data/data_8106A4C.o(.rodata);
diff --git a/src/charge_move.c b/src/charge_move.c
index 7fe358c..c0d09fc 100644
--- a/src/charge_move.c
+++ b/src/charge_move.c
@@ -1,9 +1,29 @@
#include "global.h"
#include "charge_move.h"
+#include "constants/move_id.h"
#include "constants/status.h"
#include "dungeon_util.h"
+struct MultiTurnChargeMove
+{
+ u16 moveID;
+ u8 chargingStatus;
+};
+
+const struct MultiTurnChargeMove gMultiTurnChargeMoves[10] = {
+ {MOVE_SOLARBEAM, CHARGING_STATUS_SOLARBEAM},
+ {MOVE_SKY_ATTACK, CHARGING_STATUS_SKY_ATTACK},
+ {MOVE_RAZOR_WIND, CHARGING_STATUS_RAZOR_WIND},
+ {MOVE_FOCUS_PUNCH, CHARGING_STATUS_FOCUS_PUNCH},
+ {MOVE_SKULL_BASH, CHARGING_STATUS_SKULL_BASH},
+ {MOVE_FLY, CHARGING_STATUS_FLY},
+ {MOVE_BOUNCE, CHARGING_STATUS_BOUNCE},
+ {MOVE_DIVE, CHARGING_STATUS_DIVE},
+ {MOVE_DIG, CHARGING_STATUS_DIG},
+ {MOVE_NONE, CHARGING_STATUS_NONE}
+};
+
const u32 gMultiTurnChargingStatuses[10] = {
CHARGING_STATUS_SOLARBEAM,
CHARGING_STATUS_SKY_ATTACK,
@@ -19,6 +39,32 @@ const u32 gMultiTurnChargingStatuses[10] = {
ALIGNED(4) const char chargingStatusFill[] = "pksdir0";
+bool8 MoveMatchesChargingStatus(struct DungeonEntity *pokemon, struct PokemonMove *move)
+{
+ if (!EntityExists(pokemon))
+ {
+ return FALSE;
+ }
+ else
+ {
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ s32 i;
+ for (i = 0; i < 100; i++)
+ {
+ if (gMultiTurnChargeMoves[i].moveID == MOVE_NONE)
+ {
+ return FALSE;
+ }
+ if (move->moveID == gMultiTurnChargeMoves[i].moveID &&
+ pokemonData->chargingStatus == gMultiTurnChargeMoves[i].chargingStatus)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+ }
+}
+
bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge)
{
if (!EntityExists(pokemon))
@@ -53,4 +99,4 @@ bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge)
}
return FALSE;
}
-}
+} \ No newline at end of file
diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c
index 0091e9a..e1d3a1a 100644
--- a/src/code_8041AD0.c
+++ b/src/code_8041AD0.c
@@ -1,7 +1,9 @@
#include "global.h"
+#include "constants/direction.h"
+#include "constants/type.h"
#include "dungeon_entity.h"
#include "dungeon_global_data.h"
-#include "constants/direction.h"
+#include "dungeon_pokemon_attributes.h"
struct unkStruct_80420E8
{
@@ -16,7 +18,6 @@ extern void sub_804151C(struct DungeonEntity *r0, u32 r1, u8 r2);
extern void sub_80416E0(struct DungeonEntity *r0, u32, u32);
extern u8 sub_8042768(struct DungeonEntity *r0);
extern void sub_806CDD4(struct DungeonEntity *r0, u8, u32);
-extern u8 HasType(struct DungeonEntity *r0, u8);
extern u32 sub_806F62C(u32);
extern void PlaySoundEffect(u32);
extern u8 sub_803F428(struct DungeonEntity *r0);
@@ -343,10 +344,10 @@ void sub_8041DD8(struct DungeonEntity *r0, s16 r1)
u32 temp;
temp = r1;
- if(HasType(r0, 0xE) != 0)
+ if(HasType(r0, TYPE_GHOST) != 0)
sub_804151C(r0, temp, 1);
else
- sub_804151C(r0, 0xE, 1);
+ sub_804151C(r0, TYPE_GHOST, 1);
}
void nullsub_89(void)
diff --git a/src/code_8057824.c b/src/code_8057824.c
index 172f949..d763925 100644
--- a/src/code_8057824.c
+++ b/src/code_8057824.c
@@ -2,6 +2,7 @@
#include "dungeon_global_data.h"
#include "dungeon_entity.h"
#include "constants/move.h"
+#include "moves.h"
extern u32 gUnknown_80FCF74;
extern u32 gUnknown_80FCF80;
@@ -30,7 +31,6 @@ extern void sub_806F370(struct DungeonEntity *r0, struct DungeonEntity *r1, u32,
extern u32 gUnknown_80FD018;
extern s16 sub_8057600(void*, u32);
-extern u32 GetMoveType(void*);
bool32 sub_8057824(struct DungeonEntity *param_1, struct DungeonEntity *param_2)
{
diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c
index 5776bfa..b2e3b2e 100644
--- a/src/dungeon_ai.c
+++ b/src/dungeon_ai.c
@@ -4,16 +4,15 @@
#include "constants/ability.h"
#include "constants/tactic.h"
#include "dungeon_pokemon_attributes.h"
-#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util.h"
-extern void CheckRunAwayVisualFlag(struct DungeonEntity *, u8 r1);
+extern void CheckRunAwayVisualFlag(struct DungeonEntity *, bool8 showRunAwayEffect);
bool8 ShouldAvoidFirstHit(struct DungeonEntity *pokemon, bool8 forceAvoid)
{
- if(!HasTactic(pokemon, TACTIC_AVOID_THE_FIRST_HIT))
+ if (!HasTactic(pokemon, TACTIC_AVOID_THE_FIRST_HIT))
return FALSE;
- if(!forceAvoid)
+ if (!forceAvoid)
return FALSE;
return TRUE;
}
@@ -43,8 +42,8 @@ bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
return TRUE;
}
}
- if (HasTactic(pokemon, TACTIC_GET_AWAY)
- || (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2))
+ if (HasTactic(pokemon, TACTIC_GET_AWAY) ||
+ (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2))
{
return TRUE;
}
@@ -52,11 +51,11 @@ bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
}
}
-bool8 ShouldAvoidEnemies_2(struct DungeonEntity *pokemon, u8 r1)
+bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect)
{
- if(ShouldAvoidEnemies(pokemon))
+ if (ShouldAvoidEnemies(pokemon))
{
- CheckRunAwayVisualFlag(pokemon, r1);
+ CheckRunAwayVisualFlag(pokemon, showRunAwayEffect);
return TRUE;
}
return FALSE;
diff --git a/src/dungeon_ai_1.c b/src/dungeon_ai_1.c
index 4550c83..78c899f 100644
--- a/src/dungeon_ai_1.c
+++ b/src/dungeon_ai_1.c
@@ -3,7 +3,7 @@
#include "constants/status.h"
#include "constants/targeting.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
const u8 gTargetingData[3][2][2][2] = {
{
diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c
index 5794038..30e5d3a 100644
--- a/src/dungeon_ai_attack.c
+++ b/src/dungeon_ai_attack.c
@@ -1,76 +1,526 @@
#include "global.h"
#include "dungeon_ai_attack.h"
+#include "constants/direction.h"
+#include "constants/dungeon_action.h"
#include "constants/iq_skill.h"
+#include "constants/move_id.h"
+#include "constants/status.h"
+#include "constants/tactic.h"
+#include "constants/type.h"
+#include "charge_move.h"
+#include "dungeon_action.h"
+#include "dungeon_ai.h"
+#include "dungeon_ai_attack_1.h"
+#include "dungeon_capabilities_1.h"
#include "dungeon_global_data.h"
#include "dungeon_map_access.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
+#include "dungeon_random.h"
+#include "dungeon_random_1.h"
#include "dungeon_util.h"
+#include "dungeon_visibility.h"
+#include "moves.h"
+#include "position_util.h"
+#include "status_checks.h"
+#include "targeting.h"
+#include "targeting_flags.h"
-bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, s32 facingDir, s32 maxRange)
+#define REGULAR_ATTACK_INDEX 4
+
+const s16 gRegularAttackWeights[] = {100, 20, 30, 40, 50};
+
+extern bool8 gCanAttackInDirection[NUM_DIRECTIONS];
+extern s32 gNumPotentialTargets;
+extern s32 gPotentialTargetWeights_2[NUM_DIRECTIONS];
+extern u8 gPotentialAttackTargetDirections[NUM_DIRECTIONS];
+extern struct DungeonEntity *gPotentialTargets[NUM_DIRECTIONS];
+
+extern bool8 IsMoveUsable(struct DungeonEntity*, s32, bool8);
+extern bool8 TargetRegularAttack(struct DungeonEntity*, u32*, bool8);
+extern bool8 CanUseWithStatusChecker(struct DungeonEntity*, struct PokemonMove*);
+extern bool8 CanAttackInFront(struct DungeonEntity*, s32);
+extern s32 WeightMoveIfUsable(s32, s32, struct DungeonEntity*, struct DungeonEntity*, struct PokemonMove*, bool8);
+extern bool8 IsTargetInLineRange(struct DungeonEntity*, struct DungeonEntity*, s32);
+extern bool8 CanUseStatusMove(s32, struct DungeonEntity*, struct DungeonEntity*, struct PokemonMove*, bool8);
+extern s32 WeightMove(struct DungeonEntity*, s32, struct DungeonEntity*, u8);
+
+void DecideAttack(struct DungeonEntity *pokemon)
{
- s32 posDiffX = pokemon->posWorld.x - targetPokemon->posWorld.x;
- s32 effectiveMaxRange;
- if (posDiffX < 0)
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ s32 i;
+ s32 chargeStatus = CHARGING_STATUS_CHARGE;
+ struct MoveTargetResults moveTargetResults[MAX_MON_MOVES + 1];
+ bool8 willNotUnlinkMove[MAX_MON_MOVES];
+ s32 randomWeight;
+ bool8 hasPPChecker;
+ s32 numUsableMoves;
+ s32 total;
+ s32 weightCounter;
+ bool8 hasWeakTypePicker;
+ s32 regularAttackTargetDir;
+ bool8 canTargetRegularAttack;
+ s32 maxWeight;
+ if (CannotAttack(pokemon, FALSE) ||
+ ShouldAvoidEnemiesAndShowEffect(pokemon, TRUE) ||
+ HasTactic(pokemon, TACTIC_KEEP_YOUR_DISTANCE) ||
+ (pokemonData->volatileStatus == VOLATILE_STATUS_CONFUSED && RollPercentChance(gConfusedAttackChance)))
{
- posDiffX = -posDiffX;
+ return;
}
- effectiveMaxRange = pokemon->posWorld.y - targetPokemon->posWorld.y;
- if (effectiveMaxRange < 0)
+ if (pokemonData->chargingStatus != CHARGING_STATUS_NONE)
{
- effectiveMaxRange = -effectiveMaxRange;
+ for (i = 0; i < MAX_MON_MOVES; i++)
+ {
+ if (pokemonData->moves[i].moveFlags & MOVE_FLAG_EXISTS &&
+ MoveMatchesChargingStatus(pokemon, &pokemonData->moves[i]) &&
+ pokemonData->chargingStatusMoveIndex == i)
+ {
+ s32 chosenMoveIndex;
+ SetAction(&pokemonData->action, DUNGEON_ACTION_USE_MOVE_AI);
+ chosenMoveIndex = i;
+ if (i > 0 && pokemonData->moves[i].moveFlags & MOVE_FLAG_LINKED)
+ {
+ while (--chosenMoveIndex > 0)
+ {
+ if (!(pokemonData->moves[chosenMoveIndex].moveFlags & MOVE_FLAG_LINKED))
+ {
+ break;
+ }
+ }
+ }
+ pokemonData->action.actionUseIndex = chosenMoveIndex;
+ TargetTileInFront(pokemon);
+ return;
+ }
+ }
}
- if (effectiveMaxRange < posDiffX)
+ total = 0;
+ numUsableMoves = 0;
+ for (i = 0; i < MAX_MON_MOVES; i++)
{
- effectiveMaxRange = posDiffX;
+ struct PokemonMove *move = &pokemonData->moves[i];
+ if (pokemonData->moves[i].moveFlags & MOVE_FLAG_EXISTS)
+ {
+ if (pokemonData->moves[i].moveFlags & MOVE_FLAG_ENABLED)
+ {
+ numUsableMoves++;
+ }
+ total += move->PP;
+ }
+ }
+ if (total == 0)
+ {
+ struct PokemonMove struggle;
+ InitPokemonMove(&struggle, MOVE_STRUGGLE);
+ FindMoveTarget(&moveTargetResults[0], pokemon, &struggle);
+ if (moveTargetResults[0].moveUsable)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_STRUGGLE);
+ pokemonData->action.facingDir = moveTargetResults[0].targetDir & DIRECTION_MASK;
+ TargetTileInFront(pokemon);
+ }
+ return;
}
- if (effectiveMaxRange > maxRange)
+ hasWeakTypePicker = HasIQSkill(pokemon, IQ_SKILL_WEAK_TYPE_PICKER);
+ hasPPChecker = HasIQSkill(pokemon, IQ_SKILL_PP_CHECKER) != FALSE;
+ total = 0;
+ for (i = 0; i < MAX_MON_MOVES; i++)
{
- effectiveMaxRange = maxRange;
+ willNotUnlinkMove[i] = TRUE;
}
- if (!HasIQSkill(pokemon, IQ_SKILL_COURSE_CHECKER))
+ if (hasPPChecker)
{
- // BUG: effectiveMaxRange is already capped at maxRange, so this condition always evaluates to TRUE.
- // The AI also has range checks elsewhere, so this doesn't become an issue in most cases.
- // If the AI has the Long Toss or Pierce statuses and Course Checker is disabled,
- // this incorrect check causes the AI to throw items at targets further than 10 tiles away.
- if (effectiveMaxRange <= maxRange)
+ s32 minPP = 99;
+ s32 linkedMoveStartIndex = 0;
+ // Linked moves unlink if any move in the chain runs out of PP.
+ // With PP Checker, the AI avoids this by not using linked moves if any move in the chain has 1 PP left.
+ // This requires a separate check from the 0-PP check used for unlinked moves.
+ for (i = 0; i < MAX_MON_MOVES; i++)
{
- return TRUE;
+ struct PokemonMove *move = &pokemonData->moves[i];
+ if (!(move->moveFlags & MOVE_FLAG_EXISTS))
+ {
+ break;
+ }
+ if (i != 0 && !(move->moveFlags & MOVE_FLAG_LINKED))
+ {
+ if (linkedMoveStartIndex + 1 < i && minPP <= 1 && linkedMoveStartIndex + 1 <= i)
+ {
+ s32 j;
+ for (j = linkedMoveStartIndex; j < i; j++)
+ {
+ willNotUnlinkMove[j] = FALSE;
+ }
+ }
+ minPP = move->PP;
+ linkedMoveStartIndex = i;
+ }
+ else
+ {
+ s32 newMinPP = move->PP;
+ if (newMinPP > minPP)
+ {
+ newMinPP = minPP;
+ }
+ minPP = newMinPP;
+ }
+ }
+ if (linkedMoveStartIndex + 1 < i && minPP <= 1 && linkedMoveStartIndex + 1 <= i)
+ {
+ s32 j;
+ for (j = linkedMoveStartIndex; j < i; j++)
+ {
+ willNotUnlinkMove[j] = FALSE;
+ }
}
}
+ for (i = 0; i < MAX_MON_MOVES; i++)
+ {
+ struct PokemonMove *move;
+ moveTargetResults[i].moveUsable = FALSE;
+ move = &pokemonData->moves[i];
+ if (move->moveFlags & MOVE_FLAG_EXISTS &&
+ willNotUnlinkMove[i] &&
+ IsMoveUsable(pokemon, i, hasPPChecker) &&
+ move->moveFlags & MOVE_FLAG_ENABLED)
+ {
+ moveTargetResults[i].moveUsable = TRUE;
+ if (pokemonData->chargingStatus == chargeStatus)
+ {
+ if (move->moveID == MOVE_CHARGE)
+ {
+ moveTargetResults[i].moveWeight = 0;
+ continue;
+ }
+ else if (GetMoveTypeForPokemon(pokemon, move) == TYPE_ELECTRIC)
+ {
+ moveTargetResults[i].moveWeight = GetMoveWeight(move);
+ }
+ else
+ {
+ moveTargetResults[i].moveWeight = 1;
+ }
+ }
+ else if (hasWeakTypePicker)
+ {
+ struct MoveTargetResults *results = &moveTargetResults[i];
+ results->moveWeight = FindMoveTarget(results, pokemon, move);
+ }
+ else
+ {
+ moveTargetResults[i].moveWeight = GetMoveWeight(move);
+ }
+ total += moveTargetResults[i].moveWeight;
+ }
+ }
+ moveTargetResults[REGULAR_ATTACK_INDEX].moveWeight = 0;
+ if (!HasIQSkill(pokemon, IQ_SKILL_EXCLUSIVE_MOVE_USER) && pokemonData->chargingStatus != chargeStatus)
+ {
+ moveTargetResults[REGULAR_ATTACK_INDEX].moveUsable = TRUE;
+ if (pokemonData->chargingStatus == chargeStatus)
+ {
+ // Never reached? Charge already skips the regular attack in the outer block.
+ moveTargetResults[REGULAR_ATTACK_INDEX].moveWeight = 1;
+ }
+ else if (hasWeakTypePicker)
+ {
+ moveTargetResults[REGULAR_ATTACK_INDEX].moveWeight = 2;
+ }
+ else
+ {
+ moveTargetResults[REGULAR_ATTACK_INDEX].moveWeight = gRegularAttackWeights[numUsableMoves];
+ }
+ total += moveTargetResults[REGULAR_ATTACK_INDEX].moveWeight;
+ }
+ if (hasWeakTypePicker)
+ {
+ s32 i;
+ maxWeight = 0;
+ total = 0;
+ for (i = 0; i < MAX_MON_MOVES + 1; i++)
+ {
+ if (!moveTargetResults[i].moveUsable)
+ {
+ moveTargetResults[i].moveWeight = 0;
+ }
+ else if (maxWeight < moveTargetResults[i].moveWeight)
+ {
+ maxWeight = moveTargetResults[i].moveWeight;
+ }
+ }
+ for (i = 0; i < MAX_MON_MOVES + 1; i++)
+ {
+ if (moveTargetResults[i].moveUsable)
+ {
+ if (maxWeight != moveTargetResults[i].moveWeight)
+ {
+ moveTargetResults[i].moveWeight = 0;
+ }
+ total += moveTargetResults[i].moveWeight;
+ }
+ }
+ }
+ if (total == 0)
+ {
+ return;
+ }
+ randomWeight = DungeonRandomCapped(total);
+ weightCounter = 0;
+ if (!HasIQSkill(pokemon, IQ_SKILL_EXCLUSIVE_MOVE_USER))
+ {
+ canTargetRegularAttack = TargetRegularAttack(pokemon, &regularAttackTargetDir, TRUE);
+ }
else
{
- s32 currentPosX = pokemon->posWorld.x;
- s32 currentPosY = pokemon->posWorld.y;
- s32 adjacentTileOffsetX = gAdjacentTileOffsets[facingDir].x;
- s32 adjacentTileOffsetY = gAdjacentTileOffsets[facingDir].y;
+ canTargetRegularAttack = FALSE;
+ regularAttackTargetDir = DIRECTION_SOUTH;
+ }
+ for (i = 0; i <= REGULAR_ATTACK_INDEX; i++)
+ {
+ if (moveTargetResults[i].moveUsable && moveTargetResults[i].moveWeight != 0)
+ {
+ weightCounter += moveTargetResults[i].moveWeight;
+ if (weightCounter >= randomWeight)
+ {
+ if (i == REGULAR_ATTACK_INDEX)
+ {
+ if (canTargetRegularAttack)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_REGULAR_ATTACK);
+ pokemonData->action.facingDir = regularAttackTargetDir & DIRECTION_MASK;
+ TargetTileInFront(pokemon);
+ }
+ }
+ else
+ {
+ FindMoveTarget(&moveTargetResults[i], pokemon, &pokemonData->moves[i]);
+ if (moveTargetResults[i].moveUsable)
+ {
+ s32 chosenMoveIndex;
+ SetAction(&pokemonData->action, DUNGEON_ACTION_USE_MOVE_AI);
+ chosenMoveIndex = i;
+ if (i > 0 && pokemonData->moves[i].moveFlags & MOVE_FLAG_LINKED)
+ {
+ while (--chosenMoveIndex > 0)
+ {
+ if (!(pokemonData->moves[chosenMoveIndex].moveFlags & MOVE_FLAG_LINKED))
+ {
+ break;
+ }
+ }
+ }
+ pokemonData->action.facingDir = moveTargetResults[i].targetDir & DIRECTION_MASK;
+ pokemonData->action.actionUseIndex = chosenMoveIndex;
+ TargetTileInFront(pokemon);
+ }
+ else
+ {
+ break;
+ }
+ }
+ return;
+ }
+ }
+ }
+ if (canTargetRegularAttack)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_REGULAR_ATTACK);
+ pokemonData->action.facingDir = regularAttackTargetDir & DIRECTION_MASK;
+ TargetTileInFront(pokemon);
+ }
+}
+
+s32 FindMoveTarget(struct MoveTargetResults *moveTargetResults, struct DungeonEntity *pokemon, struct PokemonMove *move)
+{
+ s32 targetingFlags;
+ s32 moveWeight = 1;
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ s32 numPotentialTargets = 0;
+ s32 i;
+ bool8 hasStatusChecker;
+ s32 rangeTargetingFlags;
+ s32 rangeTargetingFlags2;
+ for (i = 0; i < NUM_DIRECTIONS; i++)
+ {
+ gCanAttackInDirection[i] = FALSE;
+ }
+ targetingFlags = GetMoveTargetingFlagsForPokemon(pokemon, move, TRUE);
+ hasStatusChecker = HasIQSkill(pokemon, IQ_SKILL_STATUS_CHECKER);
+ moveTargetResults->moveUsable = FALSE;
+ if ((pokemonData->volatileStatus == VOLATILE_STATUS_TAUNTED && !MoveDealsDirectDamage(move)) ||
+ (hasStatusChecker && !CanUseWithStatusChecker(pokemon, move)))
+ {
+ return 1;
+ }
+ rangeTargetingFlags = targetingFlags & 0xF0;
+ if (rangeTargetingFlags == TARGETING_FLAG_TARGET_OTHER ||
+ rangeTargetingFlags == TARGETING_FLAG_TARGET_FRONTAL_CONE ||
+ rangeTargetingFlags == TARGETING_FLAG_TARGET_AROUND)
+ {
+ if (pokemonData->eyesightStatus == EYESIGHT_STATUS_BLINKER)
+ {
+ u8 facingDir = pokemonData->action.facingDir;
+ i = facingDir; // Fixes a regswap.
+ if (!gCanAttackInDirection[i])
+ {
+ gCanAttackInDirection[i] = TRUE;
+ gPotentialAttackTargetDirections[numPotentialTargets] = i;
+ gPotentialTargetWeights_2[numPotentialTargets] = 99;
+ gPotentialTargets[numPotentialTargets] = NULL;
+ numPotentialTargets++;
+ }
+ }
+ else
+ {
+ for (i = 0; i < NUM_DIRECTIONS; i++)
+ {
+ // Double assignment to fix a regswap.
+ s16 rangeTargetingFlags = rangeTargetingFlags2 = targetingFlags & 0xF0;
+ struct MapTile *adjacentTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x,
+ pokemon->posWorld.y + gAdjacentTileOffsets[i].y);
+ struct DungeonEntity *adjacentPokemon = adjacentTile->pokemon;
+ if (adjacentPokemon != NULL && GetEntityType(adjacentPokemon) == ENTITY_POKEMON)
+ {
+ if (rangeTargetingFlags != TARGETING_FLAG_TARGET_FRONTAL_CONE &&
+ rangeTargetingFlags != TARGETING_FLAG_TARGET_AROUND)
+ {
+ if (!CanAttackInFront(pokemon, i))
+ {
+ continue;
+ }
+ }
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, adjacentPokemon, move, hasStatusChecker);
+ }
+ }
+ }
+ }
+ else if (rangeTargetingFlags == TARGETING_FLAG_TARGET_ROOM)
+ {
s32 i;
- for (i = 0; i <= effectiveMaxRange; i++)
+ for (i = 0; i < DUNGEON_MAX_POKEMON; i++)
{
- struct MapTile *mapTile;
- currentPosX += adjacentTileOffsetX;
- currentPosY += adjacentTileOffsetY;
- if (currentPosX <= 0 || currentPosY <= 0 ||
- currentPosX >= DUNGEON_MAX_SIZE_X - 1 || currentPosY >= DUNGEON_MAX_SIZE_Y - 1)
+ struct DungeonEntity *target = gDungeonGlobalData->allPokemon[i];
+ if (EntityExists(target) && CanSee(pokemon, target))
{
- break;
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, target, move, hasStatusChecker);
}
- while (0); // Extra label needed to swap branch locations in ASM.
- mapTile = GetMapTileAtPosition(currentPosX, currentPosY);
- if (!(mapTile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)))
+ }
+ }
+ else if (rangeTargetingFlags == TARGETING_FLAG_TARGET_2_TILES_AHEAD)
+ {
+ for (i = 0; i < NUM_DIRECTIONS; i++)
+ {
+ struct MapTile *targetTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x,
+ pokemon->posWorld.y + gAdjacentTileOffsets[i].y);
+ if (CanAttackInFront(pokemon, i))
{
- break;
+ struct DungeonEntity *targetPokemon = targetTile->pokemon;
+ if (targetPokemon != NULL && GetEntityType(targetPokemon) == ENTITY_POKEMON)
+ {
+ s32 prevNumPotentialTargets = numPotentialTargets;
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, targetPokemon, move, hasStatusChecker);
+ if (prevNumPotentialTargets != numPotentialTargets)
+ {
+ continue;
+ }
+ }
+ targetTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x * 2,
+ pokemon->posWorld.y + gAdjacentTileOffsets[i].y * 2);
+ targetPokemon = targetTile->pokemon;
+ if (targetPokemon != NULL && GetEntityType(targetPokemon) == ENTITY_POKEMON)
+ {
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, targetPokemon, move, hasStatusChecker);
+ }
}
- if (mapTile->pokemon == targetPokemon)
+ }
+ }
+ else if (rangeTargetingFlags == TARGETING_FLAG_TARGET_LINE || rangeTargetingFlags == TARGETING_FLAG_CUT_CORNERS)
+ {
+ s32 maxRange = 1;
+ s32 i;
+ if (rangeTargetingFlags == TARGETING_FLAG_TARGET_LINE)
+ {
+ maxRange = 10;
+ }
+ for (i = 0; i < DUNGEON_MAX_POKEMON; i++)
+ {
+ struct DungeonEntity *target = gDungeonGlobalData->allPokemon[i];
+ if (EntityExists(target) && pokemon != target)
+ {
+ s32 facingDir = CalculateFacingDir(&pokemon->posWorld, &target->posWorld);
+ if (!gCanAttackInDirection[facingDir] &&
+ CanSee(pokemon, target) &&
+ IsTargetInLineRange(pokemon, target, maxRange) &&
+ CanUseStatusMove(targetingFlags, pokemon, target, move, hasStatusChecker) &&
+ IsTargetStraightAhead(pokemon, target, facingDir, maxRange))
+ {
+ gCanAttackInDirection[facingDir] = TRUE;
+ gPotentialAttackTargetDirections[numPotentialTargets] = facingDir;
+ gPotentialTargetWeights_2[numPotentialTargets] = WeightMove(pokemon, targetingFlags, target, GetMoveTypeForPokemon(pokemon, move));
+ gPotentialTargets[numPotentialTargets] = target;
+ numPotentialTargets++;
+ }
+ }
+ }
+ }
+ else if (rangeTargetingFlags == TARGETING_FLAG_TARGET_FLOOR)
+ {
+ s32 i;
+ for (i = 0; i < DUNGEON_MAX_POKEMON; i++)
+ {
+ struct DungeonEntity *target = gDungeonGlobalData->allPokemon[i];
+ if (EntityExists(target))
+ {
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, target, move, hasStatusChecker);
+ }
+ }
+ }
+ else if (rangeTargetingFlags == TARGETING_FLAG_TARGET_SELF)
+ {
+ numPotentialTargets = WeightMoveIfUsable(numPotentialTargets, targetingFlags, pokemon, pokemon, move, hasStatusChecker);
+ }
+ if (numPotentialTargets == 0)
+ {
+ moveTargetResults->moveUsable = FALSE;
+ }
+ else
+ {
+ s32 totalWeight = 0;
+ s32 maxWeight = 0;
+ s32 weightCounter;
+ s32 i;
+ for (i = 0; i < numPotentialTargets; i++)
+ {
+ if (maxWeight < gPotentialTargetWeights_2[i])
+ {
+ maxWeight = gPotentialTargetWeights_2[i];
+ }
+ }
+ for (i = 0; i < numPotentialTargets; i++)
+ {
+ if (maxWeight != gPotentialTargetWeights_2[i])
{
- return TRUE;
+ gPotentialTargetWeights_2[i] = 0;
}
- if (mapTile->pokemon != NULL)
+ }
+ moveWeight = maxWeight;
+ for (i = 0; i < numPotentialTargets; i++)
+ {
+ totalWeight += gPotentialTargetWeights_2[i];
+ }
+ weightCounter = DungeonRandomCapped(totalWeight);
+ for (i = 0; i < numPotentialTargets; i++)
+ {
+ weightCounter -= gPotentialTargetWeights_2[i];
+ if (weightCounter < 0)
{
break;
}
}
+ moveTargetResults->moveUsable = TRUE;
+ moveTargetResults->targetDir = gPotentialAttackTargetDirections[i];
+ moveTargetResults->moveWeight = 8;
}
- return FALSE;
-}
+ return moveWeight;
+} \ No newline at end of file
diff --git a/src/dungeon_ai_attack_1.c b/src/dungeon_ai_attack_1.c
new file mode 100644
index 0000000..8a186ea
--- /dev/null
+++ b/src/dungeon_ai_attack_1.c
@@ -0,0 +1,76 @@
+#include "global.h"
+#include "dungeon_ai_attack_1.h"
+
+#include "constants/iq_skill.h"
+#include "dungeon_global_data.h"
+#include "dungeon_map_access.h"
+#include "dungeon_pokemon_attributes.h"
+#include "dungeon_util.h"
+
+bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, s32 facingDir, s32 maxRange)
+{
+ s32 posDiffX = pokemon->posWorld.x - targetPokemon->posWorld.x;
+ s32 effectiveMaxRange;
+ if (posDiffX < 0)
+ {
+ posDiffX = -posDiffX;
+ }
+ effectiveMaxRange = pokemon->posWorld.y - targetPokemon->posWorld.y;
+ if (effectiveMaxRange < 0)
+ {
+ effectiveMaxRange = -effectiveMaxRange;
+ }
+ if (effectiveMaxRange < posDiffX)
+ {
+ effectiveMaxRange = posDiffX;
+ }
+ if (effectiveMaxRange > maxRange)
+ {
+ effectiveMaxRange = maxRange;
+ }
+ if (!HasIQSkill(pokemon, IQ_SKILL_COURSE_CHECKER))
+ {
+ // BUG: effectiveMaxRange is already capped at maxRange, so this condition always evaluates to TRUE.
+ // The AI also has range checks elsewhere, so this doesn't become an issue in most cases.
+ // If the AI has the Long Toss or Pierce statuses and Course Checker is disabled,
+ // this incorrect check causes the AI to throw items at targets further than 10 tiles away.
+ if (effectiveMaxRange <= maxRange)
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ s32 currentPosX = pokemon->posWorld.x;
+ s32 currentPosY = pokemon->posWorld.y;
+ s32 adjacentTileOffsetX = gAdjacentTileOffsets[facingDir].x;
+ s32 adjacentTileOffsetY = gAdjacentTileOffsets[facingDir].y;
+ s32 i;
+ for (i = 0; i <= effectiveMaxRange; i++)
+ {
+ struct MapTile *mapTile;
+ currentPosX += adjacentTileOffsetX;
+ currentPosY += adjacentTileOffsetY;
+ if (currentPosX <= 0 || currentPosY <= 0 ||
+ currentPosX >= DUNGEON_MAX_SIZE_X - 1 || currentPosY >= DUNGEON_MAX_SIZE_Y - 1)
+ {
+ break;
+ }
+ while (0); // Extra label needed to swap branch locations in ASM.
+ mapTile = GetMapTileAtPosition(currentPosX, currentPosY);
+ if (!(mapTile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)))
+ {
+ break;
+ }
+ if (mapTile->pokemon == targetPokemon)
+ {
+ return TRUE;
+ }
+ if (mapTile->pokemon != NULL)
+ {
+ break;
+ }
+ }
+ }
+ return FALSE;
+}
diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c
index 6c9669b..0fe019f 100644
--- a/src/dungeon_ai_item_weight.c
+++ b/src/dungeon_ai_item_weight.c
@@ -5,7 +5,7 @@
#include "constants/targeting.h"
#include "dungeon_ai_1.h"
#include "dungeon_map_access.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
#include "dungeon_util.h"
#include "moves.h"
#include "number_util.h"
@@ -85,11 +85,11 @@ u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32
{
if (move->moveFlags & MOVE_FLAG_EXISTS)
{
- if (move->pp == 0)
+ if (move->PP == 0)
{
itemWeight += 30;
}
- if (move->pp != GetMoveMaxPP(move2))
+ if (move->PP != GetMoveMaxPP(move2))
{
itemWeight += 6;
}
diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c
index d515ebb..183d143 100644
--- a/src/dungeon_ai_items.c
+++ b/src/dungeon_ai_items.c
@@ -7,7 +7,7 @@
#include "constants/targeting.h"
#include "dungeon_action.h"
#include "dungeon_ai_1.h"
-#include "dungeon_ai_attack.h"
+#include "dungeon_ai_attack_1.h"
#include "dungeon_ai_item_weight.h"
#include "dungeon_ai_items.h"
#include "dungeon_capabilities.h"
@@ -15,7 +15,7 @@
#include "dungeon_entity.h"
#include "dungeon_global_data.h"
#include "dungeon_map_access.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
#include "dungeon_random.h"
#include "dungeon_random_1.h"
#include "dungeon_util.h"
@@ -40,7 +40,7 @@ extern void sub_8077274(struct DungeonEntity *, struct DungeonEntity *);
extern s32 gNumPotentialTargets;
extern u32 gPotentialTargetWeights[NUM_DIRECTIONS];
-extern u32 gPotentialTargetDirections[NUM_DIRECTIONS];
+extern u32 gPotentialItemTargetDirections[NUM_DIRECTIONS];
extern bool8 gTargetAhead[NUM_DIRECTIONS];
extern struct TeamInventory *gTeamInventory_203B460;
@@ -101,7 +101,7 @@ void DecideUseItem(struct DungeonEntity *pokemon)
pokemonData->action.actionUseIndex = selectedToolboxIndex;
pokemonData->action.lastItemThrowPosition.x = pokemon->posWorld.x;
pokemonData->action.lastItemThrowPosition.y = pokemon->posWorld.y;
- pokemonData->action.facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK;
+ pokemonData->action.facingDir = gPotentialItemTargetDirections[targetIndex] & DIRECTION_MASK;
break;
}
}
@@ -261,7 +261,7 @@ void DecideUseItem(struct DungeonEntity *pokemon)
pokemonData->action.actionUseIndex = selectedToolboxIndex;
pokemonData->action.lastItemThrowPosition.x = pokemon->posWorld.x;
pokemonData->action.lastItemThrowPosition.y = pokemon->posWorld.y;
- pokemonData->action.facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK;
+ pokemonData->action.facingDir = gPotentialItemTargetDirections[targetIndex] & DIRECTION_MASK;
return;
}
}
@@ -421,7 +421,7 @@ void TargetThrownItem(struct DungeonEntity *pokemon, struct DungeonEntity *targe
u32 itemWeight;
u32 *targetWeight;
gTargetAhead[targetDirection] = TRUE;
- gPotentialTargetDirections[gNumPotentialTargets] = targetDirection;
+ gPotentialItemTargetDirections[gNumPotentialTargets] = targetDirection;
targetWeight = &gPotentialTargetWeights[gNumPotentialTargets];
itemWeight = !ignoreRollChance ? EvaluateItem(targetPokemon, item, targetingFlags) : 100;
*targetWeight = itemWeight;
diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c
index bc109eb..5fa6d87 100644
--- a/src/dungeon_ai_movement.c
+++ b/src/dungeon_ai_movement.c
@@ -8,10 +8,11 @@
#include "constants/targeting.h"
#include "code_80521D0.h"
#include "dungeon_action.h"
+#include "dungeon_ai_attack.h"
#include "dungeon_ai_items.h"
#include "dungeon_capabilities_1.h"
#include "dungeon_global_data.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
#include "dungeon_random.h"
#include "dungeon_util.h"
#include "dungeon_util_1.h"
@@ -19,6 +20,7 @@
#include "map.h"
#include "pokemon.h"
#include "status_checks.h"
+#include "targeting.h"
extern char gAvailablePokemonNames[];
extern char *gPtrCouldntBeUsedMessage;
@@ -27,7 +29,6 @@ extern char *gPtrItsaMonsterHouseMessage;
extern void SendImmobilizeEndMessage(struct DungeonEntity*, struct DungeonEntity*);
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
extern void ResetAction(u16*);
-extern void DecideAttack(struct DungeonEntity*);
extern void MoveIfPossible(struct DungeonEntity*, bool8);
extern u8 sub_8044B28(void);
extern void sub_807AB38(struct DungeonEntity *, u32);
@@ -35,7 +36,6 @@ extern void sub_8041888(u32);
extern u8 sub_803F428(s16 *);
extern void sub_803E708(u32, u32);
extern struct DungeonEntity *GetLeaderEntity();
-extern void TargetTileInFront(struct DungeonEntity *);
u32 sub_8075818(struct DungeonEntity *entity)
{
diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c
index bbe48bc..e6ec6fa 100644
--- a/src/dungeon_capabilities_1.c
+++ b/src/dungeon_capabilities_1.c
@@ -11,7 +11,7 @@
#include "dungeon_items.h"
#include "dungeon_map_access.h"
#include "dungeon_movement.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
#include "dungeon_util.h"
#include "map.h"
diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c
index c70d4ff..bd3a1f6 100644
--- a/src/dungeon_pokemon_attributes.c
+++ b/src/dungeon_pokemon_attributes.c
@@ -1,15 +1,27 @@
#include "global.h"
#include "dungeon_pokemon_attributes.h"
-#include "dungeon_util.h"
#include "constants/ability.h"
+#include "constants/dungeon.h"
+#include "constants/iq_skill.h"
+#include "constants/move_id.h"
#include "constants/status.h"
+#include "constants/tactic.h"
+#include "constants/type.h"
+#include "dungeon_global_data.h"
+#include "dungeon_items.h"
+#include "dungeon_util.h"
+#include "dungeon_visibility.h"
+#include "moves.h"
+#include "pokemon.h"
+#include "pokemon_3.h"
+
+const s16 gItemMasterMinWildLevel[] = {16};
extern u8 gAvailablePokemonNames[];
extern u32 gUnknown_80FC31C;
extern u32 gUnknown_80FCEFC;
extern u32 gUnknown_80FC2FC;
-
extern bool8 sub_805744C(struct DungeonEntity *, struct PokemonMove *, u32);
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
extern void sub_80522F4(struct DungeonEntity *r1, struct DungeonEntity *r2, u32);
@@ -51,7 +63,7 @@ bool8 sub_80717A4(struct DungeonEntity *param_1, u16 moveID)
{
struct DungeonEntityData * entityData;
s32 iVar3;
-
+
entityData = param_1->entityData;
if ((entityData->sleepStatus != SLEEP_STATUS_SLEEP) && (entityData->sleepStatus != SLEEP_STATUS_NAPPING) && (entityData->sleepStatus != SLEEP_STATUS_NIGHTMARE)) {
return FALSE;
@@ -66,10 +78,10 @@ bool8 sub_80717A4(struct DungeonEntity *param_1, u16 moveID)
for(iVar3 = 0, pokeMove = entityData->moves, pokeMove2 = pokeMove; iVar3 < MAX_MON_MOVES; pokeMove++, pokeMove2++, iVar3++)
{
if (((pokeMove->moveFlags & MOVE_FLAG_EXISTS) != 0) && (entityData->isLeader || ((pokeMove->moveFlags & MOVE_FLAG_ENABLED) != 0)))
- if((sub_805744C(param_1, pokeMove2, 1) != '\0') && (pokeMove->pp != 0))
+ if((sub_805744C(param_1, pokeMove2, 1) != '\0') && (pokeMove->PP != 0))
if(pokeMove->moveID == moveID)
return TRUE;
- }
+ }
return FALSE;
}
}
@@ -90,3 +102,158 @@ bool8 HasAbility(struct DungeonEntity *pokemon, u8 ability)
return FALSE;
}
}
+
+bool8 HasType(struct DungeonEntity *pokemon, u8 type)
+{
+ struct DungeonEntityData *pokemonData = pokemonData = pokemon->entityData;
+ if (type == TYPE_NONE)
+ {
+ return FALSE;
+ }
+ if (pokemonData->type1 == type)
+ {
+ return TRUE;
+ }
+ if (pokemonData->type2 == type)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 CanSeeInvisible(struct DungeonEntity *pokemon)
+{
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ if (pokemonData->eyesightStatus != EYESIGHT_STATUS_EYEDROPS)
+ {
+ if (!HasItem(pokemon, ITEM_ID_GOGGLE_SPECS))
+ return FALSE;
+ else
+ return TRUE;
+ }
+ else
+ return TRUE;
+}
+
+bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic)
+{
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ if (pokemonData->isLeader)
+ {
+ bool8 isGoTheOtherWay = tactic == TACTIC_GO_THE_OTHER_WAY;
+ return isGoTheOtherWay;
+ }
+ return pokemonData->tactic == tactic;
+}
+
+bool8 HasIQSkill(struct DungeonEntity *pokemon, u8 IQSkill)
+{
+ return IsIQSkillSet(pokemon->entityData->IQSkillsEnabled, 1 << IQSkill);
+}
+
+bool8 HasIQSkillPair(struct DungeonEntity *pokemon, u8 IQSkill1, u8 IQSkill2)
+{
+ return IsIQSkillSet(pokemon->entityData->IQSkillsEnabled, 1 << IQSkill1 | 1 << IQSkill2);
+}
+
+void LoadIQSkills(struct DungeonEntity *pokemon)
+{
+ u8 *iVar2;
+ s32 IQSkill;
+ struct DungeonEntityData *pokemonData;
+
+ pokemonData = pokemon->entityData;
+ if (pokemonData->isEnemy) {
+ iVar2 = pokemonData->IQSkillsEnabled;
+ SetIQSkill(iVar2, IQ_SKILL_STATUS_CHECKER);
+ SetIQSkill(iVar2, IQ_SKILL_PP_CHECKER);
+ SetIQSkill(iVar2, IQ_SKILL_ITEM_CATCHER);
+ if (pokemonData->isBoss)
+ SetIQSkill(iVar2, IQ_SKILL_SELF_CURER);
+ if (pokemonData->level >= *gItemMasterMinWildLevel)
+ SetIQSkill(iVar2, IQ_SKILL_ITEM_MASTER);
+ pokemonData->tactic = TACTIC_GO_AFTER_FOES;
+ }
+ else {
+ pokemonData->IQSkillsEnabled[0] = 0;
+ pokemonData->IQSkillsEnabled[1] = 0;
+ pokemonData->IQSkillsEnabled[2] = 0;
+ for(IQSkill = IQ_SKILL_TYPE_ADVANTAGE_MASTER; IQSkill < NUM_IQ_SKILLS; IQSkill++)
+ {
+ if (HasIQForSkill(pokemonData->IQ,IQSkill) &&
+ IsIQSkillSet(pokemonData->IQSkillsSelected, 1 << IQSkill))
+ {
+ SetIQSkill(pokemonData->IQSkillsEnabled,IQSkill);
+ }
+ }
+ }
+}
+
+bool8 CanSeeTeammate(struct DungeonEntity * pokemon)
+{
+ struct DungeonEntity *teamMember;
+ s32 memberIdx;
+
+ if (pokemon->entityData->isEnemy) {
+ return FALSE;
+ }
+ else
+ {
+ for(memberIdx = 0; memberIdx < MAX_TEAM_MEMBERS; memberIdx++)
+ {
+ teamMember = gDungeonGlobalData->teamPokemon[memberIdx];
+ if (EntityExists(pokemon) && (pokemon != teamMember) && (CanSee(pokemon,teamMember)))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+ }
+}
+
+u8 GetMoveTypeForPokemon(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove)
+{
+ if (pokeMove->moveID == MOVE_HIDDEN_POWER)
+ return pokemon->entityData->hiddenPowerType;
+ else
+ return GetMoveType(pokeMove);
+}
+
+s32 CalculateMovePower(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove)
+{
+ if(pokeMove->moveID == MOVE_HIDDEN_POWER)
+ return (pokemon->entityData->hiddenPowerPower + pokeMove->powerBoost);
+ else
+ return (GetMovePower(pokeMove) + pokeMove->powerBoost);
+}
+
+bool8 ToolboxEnabled(struct DungeonEntityData *pokemon)
+{
+ if(!IsToolboxEnabled(pokemon->entityID))
+ return FALSE;
+ return TRUE;
+}
+
+static inline bool8 sub_8071A8C_sub(struct DungeonEntityData *pokemonData)
+{
+ if(pokemonData->joinLocation == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON ||
+ pokemonData->joinLocation == DUNGEON_RESCUE_TEAM_BASE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8071A8C(struct DungeonEntity *pokemon)
+{
+ struct DungeonEntityData *pokemonData;
+ if(EntityExists(pokemon))
+ {
+ pokemonData = pokemon->entityData;
+ if(pokemonData->clientType != CLIENT_TYPE_CLIENT)
+ {
+ if(!sub_8071A8C_sub(pokemonData))
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
diff --git a/src/dungeon_pokemon_attributes_1.c b/src/dungeon_pokemon_attributes_1.c
deleted file mode 100644
index 93d8d4a..0000000
--- a/src/dungeon_pokemon_attributes_1.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include "global.h"
-#include "dungeon_pokemon_attributes_1.h"
-
-#include "constants/dungeon.h"
-#include "constants/iq_skill.h"
-#include "constants/move_id.h"
-#include "constants/status.h"
-#include "constants/tactic.h"
-#include "dungeon_global_data.h"
-#include "dungeon_items.h"
-#include "dungeon_util.h"
-#include "pokemon.h"
-#include "pokemon_3.h"
-
-const s16 gItemMasterMinWildLevel[] = {16};
-
-extern bool8 IsIQSkillSet(u8 *, u32);
-extern void SetIQSkill(u8 *param_1, u32 skillIndex);
-extern bool8 HasIQForSkill(s32 pokeIQ, u8 IQSkillIndex);
-
-extern bool8 CanSee(struct DungeonEntity *, struct DungeonEntity *);
-
-extern u8 GetMoveType(struct PokemonMove *move);
-extern s32 GetMovePower(struct PokemonMove *move);
-
-bool8 CanSeeInvisible(struct DungeonEntity *pokemon)
-{
- struct DungeonEntityData *pokemonData = pokemon->entityData;
- if (pokemonData->eyesightStatus != EYESIGHT_STATUS_EYEDROPS)
- {
- if (!HasItem(pokemon, ITEM_ID_GOGGLE_SPECS))
- return FALSE;
- else
- return TRUE;
- }
- else
- return TRUE;
-}
-
-bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic)
-{
- struct DungeonEntityData *pokemonData = pokemon->entityData;
- if (pokemonData->isLeader)
- {
- bool8 isGoTheOtherWay = tactic == TACTIC_GO_THE_OTHER_WAY;
- return isGoTheOtherWay;
- }
- return pokemonData->tactic == tactic;
-}
-
-bool8 HasIQSkill(struct DungeonEntity *pokemon, u8 IQSkill)
-{
- return IsIQSkillSet(pokemon->entityData->IQSkillsEnabled, 1 << IQSkill);
-}
-
-bool8 HasIQSkillPair(struct DungeonEntity *pokemon, u8 IQSkill1, u8 IQSkill2)
-{
- return IsIQSkillSet(pokemon->entityData->IQSkillsEnabled, 1 << IQSkill1 | 1 << IQSkill2);
-}
-
-void LoadIQSkills(struct DungeonEntity *pokemon)
-{
- u8 *iVar2;
- s32 IQSkill;
- struct DungeonEntityData *pokemonData;
-
- pokemonData = pokemon->entityData;
- if (pokemonData->isEnemy) {
- iVar2 = pokemonData->IQSkillsEnabled;
- SetIQSkill(iVar2, IQ_SKILL_STATUS_CHECKER);
- SetIQSkill(iVar2, IQ_SKILL_PP_CHECKER);
- SetIQSkill(iVar2, IQ_SKILL_ITEM_CATCHER);
- if (pokemonData->isBoss)
- SetIQSkill(iVar2, IQ_SKILL_SELF_CURER);
- if (pokemonData->level >= *gItemMasterMinWildLevel)
- SetIQSkill(iVar2, IQ_SKILL_ITEM_MASTER);
- pokemonData->tactic = TACTIC_GO_AFTER_FOES;
- }
- else {
- pokemonData->IQSkillsEnabled[0] = 0;
- pokemonData->IQSkillsEnabled[1] = 0;
- pokemonData->IQSkillsEnabled[2] = 0;
- for(IQSkill = IQ_SKILL_TYPE_ADVANTAGE_MASTER; IQSkill < NUM_IQ_SKILLS; IQSkill++)
- {
- if (HasIQForSkill(pokemonData->IQ,IQSkill) &&
- IsIQSkillSet(pokemonData->IQSkillsSelected, 1 << IQSkill))
- {
- SetIQSkill(pokemonData->IQSkillsEnabled,IQSkill);
- }
- }
- }
-}
-
-bool8 CanSeeTeammate(struct DungeonEntity * pokemon)
-{
- struct DungeonEntity *teamMember;
- s32 memberIdx;
-
- if (pokemon->entityData->isEnemy) {
- return FALSE;
- }
- else
- {
- for(memberIdx = 0; memberIdx < MAX_TEAM_MEMBERS; memberIdx++)
- {
- teamMember = gDungeonGlobalData->teamPokemon[memberIdx];
- if (EntityExists(pokemon) && (pokemon != teamMember) && (CanSee(pokemon,teamMember)))
- {
- return TRUE;
- }
- }
- return FALSE;
- }
-}
-
-u8 GetMoveType_2(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove)
-{
- if(pokeMove->moveID == MOVE_HIDDEN_POWER)
- return pokemon->entityData->hiddenPowerType;
- else
- return GetMoveType(pokeMove);
-}
-
-s32 CalculateMovePower(struct DungeonEntity *pokemon, struct PokemonMove *pokeMove)
-{
- if(pokeMove->moveID == MOVE_HIDDEN_POWER)
- return (pokemon->entityData->hiddenPowerPower + pokeMove->powerBoost);
- else
- return (GetMovePower(pokeMove) + pokeMove->powerBoost);
-}
-
-bool8 ToolboxEnabled(struct DungeonEntityData *pokemon)
-{
- if(!IsToolboxEnabled(pokemon->entityID))
- return FALSE;
- return TRUE;
-}
-
-static inline bool8 sub_8071A8C_sub(struct DungeonEntityData *pokemonData)
-{
- if(pokemonData->joinLocation == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON ||
- pokemonData->joinLocation == DUNGEON_RESCUE_TEAM_BASE)
- return TRUE;
- else
- return FALSE;
-}
-
-bool8 sub_8071A8C(struct DungeonEntity *pokemon)
-{
- struct DungeonEntityData *pokemonData;
- if(EntityExists(pokemon))
- {
- pokemonData = pokemon->entityData;
- if(pokemonData->clientType != CLIENT_TYPE_CLIENT)
- {
- if(!sub_8071A8C_sub(pokemonData))
- return TRUE;
- }
- }
- return FALSE;
-}
diff --git a/src/dungeon_visibility.c b/src/dungeon_visibility.c
index 862e1a0..4a76b69 100644
--- a/src/dungeon_visibility.c
+++ b/src/dungeon_visibility.c
@@ -2,7 +2,7 @@
#include "dungeon_visibility.h"
#include "constants/status.h"
-#include "dungeon_pokemon_attributes_1.h"
+#include "dungeon_pokemon_attributes.h"
#include "dungeon_range.h"
#include "dungeon_util.h"
diff --git a/src/items.c b/src/items.c
index a19b71b..4b5a710 100644
--- a/src/items.c
+++ b/src/items.c
@@ -39,9 +39,7 @@ extern void ExpandPlaceholdersBuffer(u8 *, const u8 *, ...);
extern s32 sub_8090FEC(s32 a1, u8* a2, u8 a3);
extern void sub_80073B8(u32);
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
-extern void InitPokemonMove(void*, u16); // first arg is some struct
extern void sub_80078A4(u32, u32, u32, u32, u32);
-extern u32 GetMoveType(void*);
extern u8* GetUnformattedTypeString(s16);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
diff --git a/src/moves.c b/src/moves.c
index f2e334c..0874f00 100644
--- a/src/moves.c
+++ b/src/moves.c
@@ -99,7 +99,7 @@ void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0
ExpandPlaceholdersBuffer
(buffer,gUnknown_81098EC,uVar2,move->moveFlags & MOVE_FLAG_SET ? gUnknown_8109908 : gUnknown_810990C,
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
- move->pp,maxPP);
+ move->PP,maxPP);
break;
case 2:
@@ -107,7 +107,7 @@ void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0
ExpandPlaceholdersBuffer
(buffer,gUnknown_8109910,uVar2,move->moveFlags & MOVE_FLAG_SET ? gUnknown_8109908 : gUnknown_810990C,
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
- move->pp,maxPP);
+ move->PP,maxPP);
break;
case 3:
@@ -115,7 +115,7 @@ void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0
ExpandPlaceholdersBuffer
(buffer,gUnknown_81098EC,uVar2,move->moveFlags & MOVE_FLAG_ENABLED ? gUnknown_8109928 : gUnknown_810990C,
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
- move->pp,maxPP);
+ move->PP,maxPP);
break;
case 4:
@@ -123,7 +123,7 @@ void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0
ExpandPlaceholdersBuffer
(buffer,gUnknown_8109910,uVar2, move->moveFlags & MOVE_FLAG_ENABLED ? gUnknown_8109928 : gUnknown_810990C,
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
- move->pp,maxPP);
+ move->PP,maxPP);
break;
}
}
@@ -133,7 +133,7 @@ void InitPokemonMove(struct PokemonMove *move, u16 moveID)
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
move->sealed = FALSE;
move->moveID = moveID;
- move->pp = GetMoveMaxPP(move);
+ move->PP = GetMoveMaxPP(move);
move->powerBoost = 0;
}
@@ -146,7 +146,7 @@ void sub_8092AA8(struct PokemonMove *move, u16 moveID)
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
move->sealed = FALSE;
move->moveID = moveID;
- move->pp = GetMoveMaxPP(move);
+ move->PP = GetMoveMaxPP(move);
move->powerBoost = 0;
}
}
@@ -155,12 +155,12 @@ void InitZeroedPPPokemonMove(struct PokemonMove *move, u16 moveID)
{
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
move->moveID = moveID;
- move->pp = 0;
+ move->PP = 0;
}
-s16 GetMoveTargetingFlags(struct PokemonMove *move, u32 r1)
+s16 GetMoveTargetingFlags(struct PokemonMove *move, u32 isAI)
{
- return gMovesData[move->moveID].targetingFlags[r1];
+ return gMovesData[move->moveID].targetingFlags[isAI];
}
u8 GetMoveType(struct PokemonMove *move)
@@ -271,12 +271,12 @@ u8 GetMoveCriticalHitChance(struct PokemonMove *move)
return gMovesData[move->moveID].criticalHitChance;
}
-u8 GetMoveCannotHitFrozen(struct PokemonMove *move)
+bool8 MoveCannotHitFrozen(struct PokemonMove *move)
{
return gMovesData[move->moveID].cannotHitFrozen;
}
-u8 GetMoveDealsDirectDamage(struct PokemonMove *move)
+bool8 MoveDealsDirectDamage(struct PokemonMove *move)
{
return gMovesData[move->moveID].dealsDirectDamage;
}
diff --git a/src/moves_1.c b/src/moves_1.c
index db84d41..5a7bf6b 100644
--- a/src/moves_1.c
+++ b/src/moves_1.c
@@ -7,14 +7,14 @@ void SavePokemonMove(struct unkStruct_8094924 *r0, struct PokemonMove *move)
{
SaveIntegerBits(r0, &move->moveFlags, 4);
SaveIntegerBits(r0, &move->moveID, 9);
- SaveIntegerBits(r0, &move->pp, 7);
+ SaveIntegerBits(r0, &move->PP, 7);
}
void RestorePokemonMove(struct unkStruct_8094924 *r0, struct PokemonMove *move)
{
RestoreIntegerBits(r0, &move->moveFlags, 4);
RestoreIntegerBits(r0, &move->moveID, 9);
- RestoreIntegerBits(r0, &move->pp, 7);
+ RestoreIntegerBits(r0, &move->PP, 7);
}
void SavePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet)
@@ -40,7 +40,7 @@ void sub_8094148(struct unkStruct_8094924 *r0, struct PokemonMove *move)
SaveIntegerBits(r0, &move->moveFlags, 4);
SaveIntegerBits(r0, &move->sealed, 1);
SaveIntegerBits(r0, &move->moveID, 9);
- SaveIntegerBits(r0, &move->pp, 7);
+ SaveIntegerBits(r0, &move->PP, 7);
SaveIntegerBits(r0, &move->powerBoost, 7);
}
@@ -61,7 +61,7 @@ void sub_80941B0(struct unkStruct_8094924 *r0, struct PokemonMove *move)
RestoreIntegerBits(r0, &move->moveFlags, 4);
RestoreIntegerBits(r0, &move->sealed, 1);
RestoreIntegerBits(r0, &move->moveID, 9);
- RestoreIntegerBits(r0, &move->pp, 7);
+ RestoreIntegerBits(r0, &move->PP, 7);
RestoreIntegerBits(r0, &move->powerBoost, 7);
}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 9d28f98..68c894b 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -47,7 +47,6 @@ extern s16 gUnknown_810AC66; // 0x8
// 2, 4, 6, 7, 8, 9, 0xA, 0xD, 0xF, 0x11
extern s32 gUnknown_810AC90[10];
-extern void SetIQSkill(u8 *, u32);
extern void AddSprite(u16 *, u32, u32, u32);
extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*);
diff --git a/src/status_checks.c b/src/status_checks.c
index b371934..12889b5 100644
--- a/src/status_checks.c
+++ b/src/status_checks.c
@@ -6,9 +6,12 @@
#include "constants/status.h"
#include "code_80521D0.h"
#include "dungeon_action.h"
+#include "dungeon_ai_attack.h"
#include "dungeon_capabilities_1.h"
#include "dungeon_random.h"
+const s16 gConfusedAttackChance = 70;
+
extern char *gPtrFrozenMessage;
extern char *gPtrWrappedAroundMessage;
extern char *gPtrWrappedByMessage;
@@ -18,7 +21,6 @@ extern char *gPtrInfatuatedMessage;
extern char gAvailablePokemonNames[];
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
-extern void DecideAttack(struct DungeonEntity*);
bool8 HasStatusAffectingActions(struct DungeonEntity *pokemon)
{
diff --git a/src/targeting.c b/src/targeting.c
new file mode 100644
index 0000000..b77fb35
--- /dev/null
+++ b/src/targeting.c
@@ -0,0 +1,11 @@
+#include "global.h"
+#include "targeting.h"
+
+#include "dungeon_util.h"
+
+void TargetTileInFront(struct DungeonEntity *pokemon)
+{
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ pokemonData->targetPosition.x = pokemon->posWorld.x + gAdjacentTileOffsets[pokemonData->action.facingDir].x;
+ pokemonData->targetPosition.y = pokemon->posWorld.y + gAdjacentTileOffsets[pokemonData->action.facingDir].y;
+}
diff --git a/src/targeting_flags.c b/src/targeting_flags.c
new file mode 100644
index 0000000..f315cdf
--- /dev/null
+++ b/src/targeting_flags.c
@@ -0,0 +1,16 @@
+#include "global.h"
+#include "targeting_flags.h"
+
+#include "constants/move_id.h"
+#include "constants/type.h"
+#include "dungeon_pokemon_attributes.h"
+#include "moves.h"
+
+s16 GetMoveTargetingFlagsForPokemon(struct DungeonEntity *pokemon, struct PokemonMove *move, u32 isAI)
+{
+ if (move->moveID == MOVE_CURSE && !isAI && !HasType(pokemon, TYPE_GHOST))
+ {
+ return TARGETING_FLAG_BOOST_SELF | TARGETING_FLAG_TARGET_SELF;
+ }
+ return GetMoveTargetingFlags(move, isAI);
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index d9b257e..bacec19 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -846,7 +846,7 @@ gUnknown_202F32C = .; /* 202F32C */
gUnknown_202F32D = .; /* 202F32D */
. += 0x3;
-gPotentialTargetDirections = .; /* 202F330 */
+gPotentialItemTargetDirections = .; /* 202F330 */
. += 0x20;
gTargetAhead = .; /* 202F350 */
@@ -861,13 +861,13 @@ gUnknown_202F378 = .; /* 202F378 */
gCanAttackInDirection = .; /* 202F380 */
. += 0x8;
-gUnknown_202F388 = .; /* 202F388 */
+gPotentialAttackTargetDirections = .; /* 202F388 */
. += 0x8;
gPotentialTargetWeights_2 = .; /* 202F390 */
. += 0x20;
-gUnknown_202F3B0 = .; /* 202F3B0 */
+gPotentialTargets = .; /* 202F3B0 */
. += 0x20;
gUnknown_202F3D0 = .; /* 202F3D0 */