summaryrefslogtreecommitdiff
path: root/asm/wild_encounter.s
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
committerDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
commitb4a39100c0e052bdab3cfa2da707072c2ee18115 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/wild_encounter.s
parentf09f9cef752c37e3cc0686573c1fdb29da842772 (diff)
parent6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff)
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/wild_encounter.s')
-rw-r--r--asm/wild_encounter.s2353
1 files changed, 2353 insertions, 0 deletions
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
new file mode 100644
index 000000000..71b15f56c
--- /dev/null
+++ b/asm/wild_encounter.s
@@ -0,0 +1,2353 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B48B8
+sub_80B48B8: @ 80B48B8
+ ldr r1, =0x02038c00
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80B48B8
+
+ thumb_func_start sub_80B48C4
+sub_80B48C4: @ 80B48C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, =gUnknown_08553A7C
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r2, r1, 1
+ adds r2, r3
+ adds r0, r1, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x2
+ lsls r1, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldrh r5, [r2]
+ cmp r5, r9
+ bhi _080B496E
+ ldr r0, =0x02037318
+ mov r10, r0
+_080B4906:
+ movs r4, 0
+ mov r1, r10
+ ldr r0, [r1]
+ ldr r0, [r0]
+ cmp r4, r0
+ bge _080B4964
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ asrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r7, r0, 16
+_080B4920:
+ adds r0, r4, 0x7
+ adds r1, r5, 0x7
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8089660
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B4954
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r8, r4
+ bne _080B4954
+ cmp r7, r5
+ bne _080B4954
+ adds r0, r6, 0
+ b _080B4974
+ .pool
+_080B4954:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ mov r1, r10
+ ldr r0, [r1]
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _080B4920
+_080B4964:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r9
+ bls _080B4906
+_080B496E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+_080B4974:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B48C4
+
+ thumb_func_start sub_80B4984
+sub_80B4984: @ 80B4984
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ movs r7, 0
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x88
+ lsls r0, 6
+ cmp r1, r0
+ bne _080B4A7A
+ add r5, sp, 0xC
+ mov r4, sp
+ adds r4, 0xE
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldrh r0, [r5]
+ subs r0, 0x7
+ strh r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x7
+ strh r0, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, =gUnknown_08553A7C
+ mov r9, r5
+ mov r8, r4
+ ldrh r2, [r0, 0x6]
+ cmp r1, r2
+ blt _080B49D0
+ ldrh r3, [r0, 0x8]
+ cmp r1, r3
+ bgt _080B49D0
+ movs r7, 0x1
+_080B49D0:
+ mov r2, r8
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ ldrh r2, [r0, 0xC]
+ cmp r1, r2
+ blt _080B49E4
+ ldrh r0, [r0, 0xE]
+ cmp r1, r0
+ bgt _080B49E4
+ movs r7, 0x2
+_080B49E4:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bls _080B4A08
+ b _080B4A7A
+ .pool
+_080B4A04:
+ movs r0, 0x1
+ b _080B4A7C
+_080B4A08:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r3, =0x00002e6a
+ adds r0, r3
+ ldrh r0, [r0]
+ bl sub_80B4AB8
+ movs r5, 0
+ ldr r6, =0x000001bf
+_080B4A1A:
+ bl sub_80B4A98
+ lsls r1, r5, 1
+ mov r2, sp
+ adds r4, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __umodsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B4A38
+ strh r6, [r4]
+_080B4A38:
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080B4A4A
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080B4A4A:
+ cmp r5, 0x6
+ bne _080B4A1A
+ mov r3, r9
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ mov r2, r8
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r2, r7, 0
+ bl sub_80B48C4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r5, 0
+_080B4A66:
+ lsls r0, r5, 1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _080B4A04
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080B4A66
+_080B4A7A:
+ movs r0, 0
+_080B4A7C:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B4984
+
+ thumb_func_start sub_80B4A98
+sub_80B4A98: @ 80B4A98
+ ldr r2, =0x02038c04
+ ldr r1, [r2]
+ ldr r0, =0x41c64e6d
+ muls r0, r1
+ ldr r1, =0x00003039
+ adds r0, r1
+ str r0, [r2]
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_80B4A98
+
+ thumb_func_start sub_80B4AB8
+sub_80B4AB8: @ 80B4AB8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x02038c04
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80B4AB8
+
+ thumb_func_start wild_pokemon_rand_grass
+wild_pokemon_rand_grass: @ 80B4AC8
+ push {lr}
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bhi _080B4AE4
+ movs r0, 0
+ b _080B4B7E
+_080B4AE4:
+ adds r0, r1, 0
+ subs r0, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080B4AF4
+ movs r0, 0x1
+ b _080B4B7E
+_080B4AF4:
+ adds r0, r1, 0
+ subs r0, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _080B4B04
+ movs r0, 0x2
+ b _080B4B7E
+_080B4B04:
+ adds r0, r1, 0
+ subs r0, 0x32
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _080B4B14
+ movs r0, 0x3
+ b _080B4B7E
+_080B4B14:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _080B4B24
+ movs r0, 0x4
+ b _080B4B7E
+_080B4B24:
+ adds r0, r1, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _080B4B34
+ movs r0, 0x5
+ b _080B4B7E
+_080B4B34:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B4B44
+ movs r0, 0x6
+ b _080B4B7E
+_080B4B44:
+ adds r0, r1, 0
+ subs r0, 0x55
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B4B54
+ movs r0, 0x7
+ b _080B4B7E
+_080B4B54:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _080B4B64
+ movs r0, 0x8
+ b _080B4B7E
+_080B4B64:
+ adds r0, r1, 0
+ subs r0, 0x5E
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _080B4B74
+ movs r0, 0x9
+ b _080B4B7E
+_080B4B74:
+ cmp r1, 0x62
+ beq _080B4B7C
+ movs r0, 0xB
+ b _080B4B7E
+_080B4B7C:
+ movs r0, 0xA
+_080B4B7E:
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_grass
+
+ thumb_func_start wild_pokemon_rand_water
+wild_pokemon_rand_water: @ 80B4B84
+ push {lr}
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ cmp r1, 0x3B
+ bhi _080B4BA2
+ movs r0, 0
+ b _080B4BD4
+_080B4BA2:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bhi _080B4BB2
+ movs r0, 0x1
+ b _080B4BD4
+_080B4BB2:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B4BC2
+ movs r0, 0x2
+ b _080B4BD4
+_080B4BC2:
+ adds r0, r2, 0
+ subs r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080B4BD2
+ movs r0, 0x4
+ b _080B4BD4
+_080B4BD2:
+ movs r0, 0x3
+_080B4BD4:
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_water
+
+ thumb_func_start sub_80B4BD8
+sub_80B4BD8: @ 80B4BD8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ movs r5, 0
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0x1
+ beq _080B4C12
+ cmp r4, 0x1
+ bgt _080B4C02
+ cmp r4, 0
+ beq _080B4C08
+ b _080B4C6C
+_080B4C02:
+ cmp r6, 0x2
+ beq _080B4C36
+ b _080B4C6C
+_080B4C08:
+ movs r5, 0x1
+ cmp r1, 0x45
+ bhi _080B4C6C
+ movs r5, 0
+ b _080B4C6C
+_080B4C12:
+ cmp r1, 0x3B
+ bhi _080B4C18
+ movs r5, 0x2
+_080B4C18:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080B4C26
+ movs r5, 0x3
+_080B4C26:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080B4C6C
+ movs r5, 0x4
+ b _080B4C6C
+_080B4C36:
+ cmp r1, 0x27
+ bhi _080B4C3C
+ movs r5, 0x5
+_080B4C3C:
+ adds r0, r1, 0
+ subs r0, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x27
+ bhi _080B4C4A
+ movs r5, 0x6
+_080B4C4A:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bhi _080B4C58
+ movs r5, 0x7
+_080B4C58:
+ adds r0, r1, 0
+ subs r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _080B4C66
+ movs r5, 0x8
+_080B4C66:
+ cmp r1, 0x63
+ bne _080B4C6C
+ movs r5, 0x9
+_080B4C6C:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4BD8
+
+ thumb_func_start sub_80B4C74
+sub_80B4C74: @ 80B4C74
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _080B4C86
+ ldrb r7, [r4]
+ adds r6, r0, 0
+ b _080B4C8A
+_080B4C86:
+ ldrb r7, [r4, 0x1]
+ ldrb r6, [r4]
+_080B4C8A:
+ subs r4, r6, r7
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =0x020244ec
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B4CEA
+ adds r0, r5, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x37
+ beq _080B4CC8
+ cmp r0, 0x48
+ beq _080B4CC8
+ cmp r0, 0x2E
+ bne _080B4CEA
+_080B4CC8:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B4CE0
+ adds r0, r6, 0
+ b _080B4CF0
+ .pool
+_080B4CE0:
+ cmp r4, 0
+ beq _080B4CEA
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080B4CEA:
+ adds r0, r7, r4
+ lsls r0, 24
+ lsrs r0, 24
+_080B4CF0:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4C74
+
+ thumb_func_start get_wild_data_index_for_map
+get_wild_data_index_for_map: @ 80B4CF8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r0, =gWildMonHeaders
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080B4D6C
+ ldr r6, =0x00006a18
+_080B4D08:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r5
+ ldrb r1, [r3]
+ ldr r0, =0x03005d8c
+ ldr r2, [r0]
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080B4D58
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080B4D58
+ ldrh r0, [r2, 0x4]
+ cmp r0, r6
+ bne _080B4D44
+ ldr r0, =0x0000403e
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _080B4D3E
+ movs r0, 0
+_080B4D3E:
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080B4D44:
+ adds r0, r4, 0
+ b _080B4D6E
+ .pool
+_080B4D58:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B4D08
+_080B4D6C:
+ ldr r0, =0x0000ffff
+_080B4D6E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end get_wild_data_index_for_map
+
+ thumb_func_start sub_80B4D78
+sub_80B4D78: @ 80B4D78
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ bl GetSafariZoneFlag
+ cmp r0, 0x1
+ bne _080B4E0E
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4F
+ bhi _080B4E0E
+ bl sub_80FC3B8
+ adds r7, r0, 0
+ cmp r7, 0
+ beq _080B4E0E
+ movs r5, 0
+_080B4DA6:
+ mov r1, sp
+ adds r0, r1, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x18
+ bls _080B4DA6
+ movs r5, 0
+_080B4DB8:
+ adds r1, r5, 0x1
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ adds r6, r1, 0
+ cmp r4, 0x18
+ bhi _080B4DE8
+ add r5, sp
+_080B4DC6:
+ bl GenerateRandomNumber
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080B4DDE
+ ldrb r2, [r5]
+ mov r0, sp
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ strb r0, [r5]
+ strb r2, [r1]
+_080B4DDE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x18
+ bls _080B4DC6
+_080B4DE8:
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x17
+ bls _080B4DB8
+ movs r5, 0
+_080B4DF2:
+ mov r1, sp
+ adds r4, r1, r5
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_8136FE4
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B4E48
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x18
+ bls _080B4DF2
+_080B4E0E:
+ ldr r4, =0x020244ec
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B4E4C
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1C
+ bne _080B4E4C
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B4E4C
+ adds r0, r4, 0
+ movs r1, 0
+ bl pokemon_getattr
+ b _080B4E54
+ .pool
+_080B4E48:
+ ldrb r0, [r4]
+ b _080B4E5E
+_080B4E4C:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+_080B4E54:
+ movs r1, 0x19
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+_080B4E5E:
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4D78
+
+ thumb_func_start sub_80B4E68
+sub_80B4E68: @ 80B4E68
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ bl zero_enemy_party_data
+ movs r2, 0x1
+ ldr r1, =gBaseStats
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _080B4E96
+ cmp r0, 0
+ blt _080B4E98
+ cmp r0, 0xFF
+ bgt _080B4E98
+ cmp r0, 0xFE
+ blt _080B4E98
+_080B4E96:
+ movs r2, 0
+_080B4E98:
+ cmp r2, 0
+ beq _080B4F28
+ ldr r5, =0x020244ec
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B4F28
+ adds r0, r5, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x38
+ bne _080B4F28
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080B4F28
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl pokemon_getattr
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl pokemon_getattr
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl pokemon_species_get_gender_info
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFE
+ bne _080B4F00
+ movs r4, 0
+ b _080B4F02
+ .pool
+_080B4F00:
+ movs r4, 0xFE
+_080B4F02:
+ bl sub_80B4D78
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x02024744
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x20
+ bl sub_8067EF8
+ b _080B4F40
+ .pool
+_080B4F28:
+ bl sub_80B4D78
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x02024744
+ str r0, [sp]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x20
+ bl pokemon_make_with_nature
+_080B4F40:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B4E68
+
+ thumb_func_start sub_80B4F4C
+sub_80B4F4C: @ 80B4F4C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ adds r4, r3, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r1, 0
+ mov r0, sp
+ strb r1, [r0]
+ cmp r3, 0x1
+ beq _080B4FA0
+ cmp r3, 0x1
+ bgt _080B4F70
+ cmp r3, 0
+ beq _080B4F76
+ b _080B4FBA
+_080B4F70:
+ cmp r4, 0x2
+ beq _080B4FB2
+ b _080B4FBA
+_080B4F76:
+ ldr r0, [r5, 0x4]
+ movs r1, 0x8
+ movs r2, 0x2A
+ mov r3, sp
+ bl TryGetAbilityInfluencedWildMonIndex
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4FBA
+ ldr r0, [r5, 0x4]
+ movs r1, 0xD
+ movs r2, 0x9
+ mov r3, sp
+ bl TryGetAbilityInfluencedWildMonIndex
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4FBA
+ bl wild_pokemon_rand_grass
+ b _080B4FB6
+_080B4FA0:
+ ldr r0, [r5, 0x4]
+ movs r1, 0xD
+ movs r2, 0x9
+ mov r3, sp
+ bl TryGetAbilityInfluencedWildMonIndex
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4FBA
+_080B4FB2:
+ bl wild_pokemon_rand_water
+_080B4FB6:
+ mov r1, sp
+ strb r0, [r1]
+_080B4FBA:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r1, 2
+ ldr r0, [r5, 0x4]
+ adds r0, r1
+ bl sub_80B4C74
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _080B4FE0
+ adds r0, r4, 0
+ bl sub_80B58CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5000
+_080B4FE0:
+ ldr r0, =0x02037318
+ ldrh r1, [r0, 0x12]
+ movs r0, 0xB3
+ lsls r0, 1
+ cmp r1, r0
+ beq _080B5008
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080B5008
+ adds r0, r4, 0
+ bl DoKeenEyeIntimidateWildEncounterTest
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5008
+_080B5000:
+ movs r0, 0
+ b _080B501C
+ .pool
+_080B5008:
+ mov r0, sp
+ ldrb r0, [r0]
+ ldr r1, [r5, 0x4]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ adds r1, r4, 0
+ bl sub_80B4E68
+ movs r0, 0x1
+_080B501C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4F4C
+
+ thumb_func_start sub_80B5024
+sub_80B5024: @ 80B5024
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B4BD8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 22
+ ldr r0, [r5, 0x4]
+ adds r0, r4
+ bl sub_80B4C74
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [r5, 0x4]
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x2]
+ bl sub_80B4E68
+ ldr r0, [r5, 0x4]
+ adds r4, r0
+ ldrh r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5024
+
+ thumb_func_start SetUpMassOutbreakEncounter
+SetUpMassOutbreakEncounter: @ 80B505C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B508C
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002b94
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80B58CC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B508C
+ movs r0, 0
+ b _080B50C6
+ .pool
+_080B508C:
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r2, =0x00002b90
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0x4
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_80B4E68
+ movs r4, 0
+_080B50A2:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00002b98
+ adds r0, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r0, =0x02024744
+ bl sub_80691F4
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080B50A2
+ movs r0, 0x1
+_080B50C6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end SetUpMassOutbreakEncounter
+
+ thumb_func_start DoMassOutbreakEncounterTest
+DoMassOutbreakEncounterTest: @ 80B50DC
+ push {r4,lr}
+ ldr r4, =0x03005d8c
+ ldr r2, [r4]
+ ldr r1, =0x00002b90
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080B513C
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ ldr r3, =0x00002b92
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080B513C
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ adds r3, 0x1
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080B513C
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ ldr r1, [r4]
+ ldr r2, =0x00002ba1
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080B513C
+ movs r0, 0x1
+ b _080B513E
+ .pool
+_080B513C:
+ movs r0, 0
+_080B513E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end DoMassOutbreakEncounterTest
+
+ thumb_func_start DoWildEncounterRateDiceRoll
+DoWildEncounterRateDiceRoll: @ 80B5144
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ lsls r1, 4
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bcc _080B5168
+ movs r0, 0
+ b _080B516A
+_080B5168:
+ movs r0, 0x1
+_080B516A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end DoWildEncounterRateDiceRoll
+
+ thumb_func_start DoWildEncounterRateTest
+DoWildEncounterRateTest: @ 80B5170
+ push {r4,lr}
+ sub sp, 0x4
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r0, 4
+ str r0, [sp]
+ movs r0, 0x6
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B519A
+ ldr r1, [sp]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ movs r1, 0x64
+ bl __udivsi3
+ str r0, [sp]
+_080B519A:
+ mov r0, sp
+ bl affects_encounter_rate_based_on_flags
+ mov r0, sp
+ bl ApplyCleanseTagWildEncounterRateReduction
+ cmp r4, 0
+ bne _080B5216
+ ldr r4, =0x020244ec
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B5216
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B51E8
+ ldr r0, =0x02037318
+ ldrh r1, [r0, 0x12]
+ ldr r0, =0x00000169
+ cmp r1, r0
+ bne _080B5210
+ ldr r1, [sp]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsrs r0, 2
+ b _080B5214
+ .pool
+_080B51E8:
+ cmp r0, 0x23
+ bne _080B51F2
+ ldr r0, [sp]
+ lsls r0, 1
+ b _080B5214
+_080B51F2:
+ cmp r0, 0x49
+ beq _080B5210
+ cmp r0, 0x47
+ bne _080B5200
+ ldr r0, [sp]
+ lsls r0, 1
+ b _080B5214
+_080B5200:
+ cmp r0, 0x8
+ bne _080B5216
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ adds r0, 0x2E
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080B5216
+_080B5210:
+ ldr r0, [sp]
+ lsrs r0, 1
+_080B5214:
+ str r0, [sp]
+_080B5216:
+ ldr r0, [sp]
+ movs r1, 0xB4
+ lsls r1, 4
+ cmp r0, r1
+ bls _080B5222
+ str r1, [sp]
+_080B5222:
+ ldr r0, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ bl DoWildEncounterRateDiceRoll
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end DoWildEncounterRateTest
+
+ thumb_func_start DoGlobalWildEncounterDiceRoll
+DoGlobalWildEncounterDiceRoll: @ 80B523C
+ push {lr}
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3B
+ bhi _080B5258
+ movs r0, 0x1
+ b _080B525A
+_080B5258:
+ movs r0, 0
+_080B525A:
+ pop {r1}
+ bx r1
+ thumb_func_end DoGlobalWildEncounterDiceRoll
+
+ thumb_func_start sub_80B5260
+sub_80B5260: @ 80B5260
+ push {lr}
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xE0
+ lsls r0, 3
+ cmp r1, r0
+ bne _080B5280
+ movs r0, 0x53
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B5282
+ .pool
+_080B5280:
+ movs r0, 0
+_080B5282:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5260
+
+ thumb_func_start is_it_battle_time_2
+is_it_battle_time_2: @ 80B5288
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r9, r6
+ lsls r1, 16
+ lsrs r7, r1, 16
+ mov r8, r7
+ ldr r0, =0x02038c00
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B52A6
+ b _080B54FE
+_080B52A6:
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ bne _080B539C
+ ldr r0, =0x02037318
+ ldrh r1, [r0, 0x12]
+ movs r0, 0xB3
+ lsls r0, 1
+ cmp r1, r0
+ bne _080B5330
+ bl sub_81A7D00
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r7, r6
+ beq _080B52D8
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B52D8
+ b _080B54FE
+_080B52D8:
+ ldr r1, =gUnknown_08553A14
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl DoWildEncounterRateTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B52F8
+ b _080B54FE
+_080B52F8:
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x2
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B530C
+ b _080B54FE
+_080B530C:
+ movs r0, 0x1
+ bl sub_81A7B90
+ cmp r0, 0
+ bne _080B5318
+ b _080B54FE
+_080B5318:
+ bl sub_80B06B0
+ movs r0, 0x1
+ b _080B5500
+ .pool
+_080B5330:
+ ldr r0, =0x00000169
+ cmp r1, r0
+ beq _080B5338
+ b _080B54FE
+_080B5338:
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r7, r6
+ beq _080B5352
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5352
+ b _080B54FE
+_080B5352:
+ ldr r1, =gUnknown_08553894
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl DoWildEncounterRateTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B5372
+ b _080B54FE
+_080B5372:
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x2
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B5386
+ b _080B54FE
+_080B5386:
+ bl sub_81A9C04
+ b _080B54F6
+ .pool
+_080B539C:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_808952C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B543C
+ ldr r1, =gWildMonHeaders
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _080B53C4
+ b _080B54FE
+_080B53C4:
+ cmp r7, r6
+ beq _080B53D4
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B53D4
+ b _080B54FE
+_080B53D4:
+ ldr r1, =gWildMonHeaders
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl DoWildEncounterRateTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B53F2
+ b _080B54FE
+_080B53F2:
+ bl sub_8161EDC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54BA
+ bl DoMassOutbreakEncounterTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5418
+ movs r0, 0x3
+ bl SetUpMassOutbreakEncounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54F6
+_080B5418:
+ ldr r1, =gWildMonHeaders
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x3
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54F6
+ b _080B54FE
+ .pool
+_080B543C:
+ adds r0, r4, 0
+ bl sub_8089558
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B5464
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B54FE
+ adds r0, r4, 0
+ bl sub_80894AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B54FE
+_080B5464:
+ bl sub_80B5260
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54FE
+ ldr r1, =gWildMonHeaders
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _080B54FE
+ cmp r8, r9
+ beq _080B5492
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B54FE
+_080B5492:
+ ldr r1, =gWildMonHeaders
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl DoWildEncounterRateTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B54FE
+ bl sub_8161EDC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B54E4
+_080B54BA:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x000031dc
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ bl sub_80B58CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B54FE
+ bl sub_80B072C
+ movs r0, 0x1
+ b _080B5500
+ .pool
+_080B54E4:
+ ldr r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x3
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B54FE
+_080B54F6:
+ bl sub_80B0698
+ movs r0, 0x1
+ b _080B5500
+_080B54FE:
+ movs r0, 0
+_080B5500:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end is_it_battle_time_2
+
+ thumb_func_start rock_smash_wild_pokemon_encounter
+rock_smash_wild_pokemon_encounter: @ 80B550C
+ push {r4,lr}
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ beq _080B5568
+ ldr r1, =gWildMonHeaders
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0xC
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080B5554
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl DoWildEncounterRateTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5568
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x3
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _080B5568
+ bl sub_80B0698
+_080B5554:
+ ldr r0, =0x020375f0
+ strh r4, [r0]
+ b _080B556E
+ .pool
+_080B5568:
+ ldr r1, =0x020375f0
+ movs r0, 0
+ strh r0, [r1]
+_080B556E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end rock_smash_wild_pokemon_encounter
+
+ thumb_func_start sub_80B5578
+sub_80B5578: @ 80B5578
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ bne _080B562C
+ ldr r0, =0x02037318
+ ldrh r1, [r0, 0x12]
+ movs r0, 0xB3
+ lsls r0, 1
+ cmp r1, r0
+ bne _080B55E4
+ bl sub_81A7D00
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_08553A14
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B55CA
+ b _080B56F2
+_080B55CA:
+ movs r0, 0
+ bl sub_81A7B90
+ bl sub_80B06B0
+ movs r0, 0x1
+ b _080B56F4
+ .pool
+_080B55E4:
+ ldr r0, =0x00000169
+ cmp r1, r0
+ beq _080B55EC
+ b _080B56F2
+_080B55EC:
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r4, [r0]
+ ldr r1, =gUnknown_08553894
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B4F4C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B56F2
+ bl sub_81A9C04
+ b _080B56EA
+ .pool
+_080B562C:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808952C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B568C
+ ldr r1, =gWildMonHeaders
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080B56F2
+ bl sub_8161EDC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B56D4
+ bl DoMassOutbreakEncounterTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5680
+ movs r0, 0
+ bl SetUpMassOutbreakEncounter
+ b _080B56EA
+ .pool
+_080B5680:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B4F4C
+ b _080B56EA
+_080B568C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8089558
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B56F2
+ bl sub_80B5260
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B56F2
+ ldr r1, =gWildMonHeaders
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080B56F2
+ bl sub_8161EDC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B56E0
+_080B56D4:
+ bl sub_80B072C
+ movs r0, 0x1
+ b _080B56F4
+ .pool
+_080B56E0:
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B4F4C
+_080B56EA:
+ bl sub_80B0698
+ movs r0, 0x1
+ b _080B56F4
+_080B56F2:
+ movs r0, 0
+_080B56F4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5578
+
+ thumb_func_start GetFishingWildMonListHeader
+GetFishingWildMonListHeader: @ 80B56FC
+ push {lr}
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ beq _080B572C
+ ldr r0, =gWildMonHeaders
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080B572C
+ movs r0, 0x1
+ b _080B572E
+ .pool
+_080B572C:
+ movs r0, 0
+_080B572E:
+ pop {r1}
+ bx r1
+ thumb_func_end GetFishingWildMonListHeader
+
+ thumb_func_start sub_80B5734
+sub_80B5734: @ 80B5734
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80B4984
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5764
+ ldr r4, =gUnknown_08553A78
+ adds r0, r4, 0
+ bl sub_80B4C74
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80B4E68
+ b _080B5784
+ .pool
+_080B5764:
+ ldr r4, =gWildMonHeaders
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r4, 0x10
+ adds r1, r4
+ ldr r0, [r1]
+ adds r1, r5, 0
+ bl sub_80B5024
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080B5784:
+ movs r0, 0xC
+ bl sav12_xor_increment
+ adds r0, r4, 0
+ bl sub_80EDA3C
+ bl sub_80B0698
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B5734
+
+ thumb_func_start wild_pokemon_rand_for_map
+wild_pokemon_rand_for_map: @ 80B57A0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r0, 0
+ strb r0, [r6]
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r3, r0
+ beq _080B57D2
+ ldr r2, =gWildMonHeaders
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r5, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ ldr r4, [r1]
+ cmp r5, 0
+ bne _080B57E0
+ cmp r4, 0
+ bne _080B57E6
+_080B57D2:
+ movs r0, 0
+ b _080B5826
+ .pool
+_080B57E0:
+ cmp r4, 0
+ bne _080B57F4
+ b _080B5818
+_080B57E6:
+ movs r0, 0x1
+ strb r0, [r6]
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ b _080B5820
+_080B57F4:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4F
+ bls _080B5818
+ movs r0, 0x1
+ strb r0, [r6]
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ b _080B5820
+_080B5818:
+ bl wild_pokemon_rand_grass
+ lsls r0, 24
+ ldr r1, [r5, 0x4]
+_080B5820:
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+_080B5826:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_for_map
+
+ thumb_func_start sub_80B582C
+sub_80B582C: @ 80B582C
+ push {r4,lr}
+ bl get_wild_data_index_for_map
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ beq _080B5868
+ ldr r1, =gWildMonHeaders
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080B5868
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080B586A
+ .pool
+_080B5868:
+ movs r0, 0
+_080B586A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B582C
+
+ thumb_func_start sub_80B5870
+sub_80B5870: @ 80B5870
+ push {r4,r5,lr}
+ bl InBattlePike
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B58C4
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B58C4
+ bl InUnionRoom
+ cmp r0, 0x1
+ beq _080B58C4
+ ldr r5, =0x00004021
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080B58C4
+ subs r4, r0, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl VarSet
+ cmp r4, 0
+ bne _080B58C4
+ ldr r0, =gUnknown_082A4B2A
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _080B58C6
+ .pool
+_080B58C4:
+ movs r0, 0
+_080B58C6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5870
+
+ thumb_func_start sub_80B58CC
+sub_80B58CC: @ 80B58CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =0x00004021
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ beq _080B5912
+ movs r5, 0
+_080B58E0:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =0x020244ec
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl pokemon_getattr
+ cmp r0, 0
+ beq _080B5920
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B5920
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl pokemon_getattr
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bcc _080B592A
+_080B5912:
+ movs r0, 0x1
+ b _080B592C
+ .pool
+_080B5920:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080B58E0
+_080B592A:
+ movs r0, 0
+_080B592C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B58CC
+
+ thumb_func_start DoKeenEyeIntimidateWildEncounterTest
+@ _BOOL1 DoKeenEyeIntimidateWildEncounterTest(u8 wildMonLevel)
+DoKeenEyeIntimidateWildEncounterTest: @ 80B5934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =0x020244ec
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B5988
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ beq _080B595A
+ cmp r0, 0x16
+ bne _080B5988
+_080B595A:
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl pokemon_getattr
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080B5988
+ subs r0, 0x5
+ cmp r5, r0
+ bgt _080B5988
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B5988
+ movs r0, 0
+ b _080B598A
+ .pool
+_080B5988:
+ movs r0, 0x1
+_080B598A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end DoKeenEyeIntimidateWildEncounterTest
+
+ thumb_func_start TryGetRandomWildMonIndexByType
+@ _BOOL1 TryGetRandomWildMonIndexByType(WildMonEntry *mons, u8 type, u8 numMons, u8 *monIndex)
+TryGetRandomWildMonIndexByType: @ 80B5990
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r7, sp
+ mov r12, r0
+ mov r8, r3
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [r7]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, sp
+ adds r0, r2, 0x3
+ lsrs r0, 2
+ lsls r0, 2
+ mov r1, sp
+ subs r1, r0
+ mov sp, r1
+ mov r5, sp
+ movs r3, 0
+ cmp r3, r2
+ bcs _080B59D2
+ movs r1, 0
+_080B59C4:
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _080B59C4
+_080B59D2:
+ movs r4, 0
+ movs r3, 0
+ cmp r4, r2
+ bcs _080B5A12
+ ldr r6, =gBaseStats
+ mov r10, r6
+_080B59DE:
+ lsls r0, r3, 2
+ add r0, r12
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r6, r10
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x6]
+ ldr r6, [r7]
+ cmp r0, r6
+ beq _080B59FC
+ ldrb r0, [r1, 0x7]
+ cmp r0, r6
+ bne _080B5A08
+_080B59FC:
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r1, r5, r1
+ strb r3, [r1]
+_080B5A08:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _080B59DE
+_080B5A12:
+ cmp r4, 0
+ beq _080B5A1A
+ cmp r4, r2
+ bne _080B5A24
+_080B5A1A:
+ movs r0, 0
+ b _080B5A3C
+ .pool
+_080B5A24:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x1
+_080B5A3C:
+ mov sp, r9
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetRandomWildMonIndexByType
+
+ thumb_func_start TryGetAbilityInfluencedWildMonIndex
+@ _BOOL1 TryGetAbilityInfluencedWildMonIndex(WildMonEntry *mons, u8 type, u8 abilityId, u8 *monIndex)
+TryGetAbilityInfluencedWildMonIndex: @ 80B5A50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ mov r8, r3
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, =0x020244ec
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl pokemon_getattr
+ cmp r0, 0
+ bne _080B5AA4
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bne _080B5AA4
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B5AA4
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0xC
+ mov r3, r8
+ bl TryGetRandomWildMonIndexByType
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B5AA6
+ .pool
+_080B5AA4:
+ movs r0, 0
+_080B5AA6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetAbilityInfluencedWildMonIndex
+
+ thumb_func_start affects_encounter_rate_based_on_flags
+@ void affects_encounter_rate_based_on_flags(u32 *val)
+affects_encounter_rate_based_on_flags: @ 80B5AB0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =0x000008ad
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5AD0
+ ldr r0, [r4]
+ lsrs r1, r0, 1
+ adds r0, r1
+ b _080B5AE2
+ .pool
+_080B5AD0:
+ ldr r0, =0x000008ae
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5AE4
+ ldr r0, [r4]
+ lsrs r0, 1
+_080B5AE2:
+ str r0, [r4]
+_080B5AE4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end affects_encounter_rate_based_on_flags
+
+ thumb_func_start ApplyCleanseTagWildEncounterRateReduction
+ApplyCleanseTagWildEncounterRateReduction: @ 80B5AF0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =0x020244ec
+ movs r1, 0xC
+ bl pokemon_getattr
+ cmp r0, 0xBE
+ bne _080B5B0C
+ ldr r0, [r4]
+ lsls r0, 1
+ movs r1, 0x3
+ bl __udivsi3
+ str r0, [r4]
+_080B5B0C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ApplyCleanseTagWildEncounterRateReduction
+
+ .align 2, 0 @ Don't pad with nop.