From f0ef6ae481ec2cc655f1606f074de38ef26276c4 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Fri, 24 Dec 2021 17:45:49 -0600 Subject: decomp some more --- asm/code_80428A0.s | 4 +- asm/code_80521D0.s | 4 +- asm/code_8057144.s | 4 +- asm/code_8057824.s | 4 +- asm/code_80718D8.s | 243 -------------- asm/code_808333C.s | 11 - asm/code_8084160.s | 958 ----------------------------------------------------- asm/code_808417C.s | 940 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 948 insertions(+), 1220 deletions(-) delete mode 100644 asm/code_8084160.s create mode 100644 asm/code_808417C.s (limited to 'asm') diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 49ef590..bb4e09e 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -1099,7 +1099,7 @@ _08043318: movs r0, 0xA strh r0, [r1] ldr r0, [r2] - bl sub_80840D8 + bl SetDungeonRNG _08043346: ldr r0, [r4] ldr r1, _080434C4 @@ -4197,4 +4197,4 @@ ResetAction: bx lr thumb_func_end ResetAction - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 8e97c19..417d5da 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -5863,7 +5863,7 @@ sub_8055640: lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 - bl sub_8071A44 + bl CalculateMovePower mov r8, r0 adds r0, r5, 0 bl GetMoveCriticalHitChance @@ -5917,7 +5917,7 @@ sub_80556BC: lsls r4, 24 lsrs r4, 24 adds r1, r5, 0 - bl sub_8071A44 + bl CalculateMovePower mov r8, r0 adds r0, r5, 0 bl GetMoveCriticalHitChance diff --git a/asm/code_8057144.s b/asm/code_8057144.s index 8aecb64..795e7cf 100644 --- a/asm/code_8057144.s +++ b/asm/code_8057144.s @@ -218,7 +218,7 @@ sub_805727C: _080572D2: adds r0, r4, 0 _080572D4: - bl sub_8084160 + bl RollPercentChance_2 lsls r0, 24 lsrs r4, r0, 24 b _080572E0 @@ -276,7 +276,7 @@ _08057324: _08057336: lsls r0, r4, 1 _08057338: - bl sub_8084160 + bl RollPercentChance_2 lsls r0, 24 lsrs r0, 24 _08057340: diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 7ea4a18..3943de2 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -4918,7 +4918,7 @@ _08059E8A: lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 - bl sub_8071A44 + bl CalculateMovePower adds r5, r0, 0 adds r0, r7, 0 bl GetMoveCriticalHitChance @@ -5100,7 +5100,7 @@ _08059FFE: lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 - bl sub_8071A44 + bl CalculateMovePower adds r5, r0, 0 adds r0, r7, 0 bl GetMoveCriticalHitChance diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s index 699dad9..caa62de 100644 --- a/asm/code_80718D8.s +++ b/asm/code_80718D8.s @@ -5,249 +5,6 @@ .text - thumb_func_start LoadIQSkills -LoadIQSkills: - push {r4-r6,lr} - ldr r5, [r0, 0x70] - ldrb r1, [r5, 0x6] - cmp r1, 0 - beq _08071978 - adds r4, r5, 0 - adds r4, 0x90 - adds r0, r4, 0 - movs r1, 0x8 - bl SetIQSkill - adds r0, r4, 0 - movs r1, 0x6 - bl SetIQSkill - adds r0, r4, 0 - movs r1, 0x2 - bl SetIQSkill - adds r0, r5, 0 - adds r0, 0xF7 - ldrb r0, [r0] - cmp r0, 0 - beq _08071954 - adds r0, r4, 0 - movs r1, 0x12 - bl SetIQSkill -_08071954: - ldrb r0, [r5, 0x9] - ldr r1, _08071974 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - blt _08071968 - adds r0, r4, 0 - movs r1, 0x16 - bl SetIQSkill -_08071968: - adds r1, r5, 0 - adds r1, 0x94 - movs r0, 0x2 - strb r0, [r1] - b _080719BE - .align 2, 0 -_08071974: .4byte gItemMasterMinWildLevel -_08071978: - adds r0, r5, 0 - adds r0, 0x90 - strb r1, [r0] - adds r2, r5, 0 - adds r2, 0x91 - strb r1, [r2] - adds r2, 0x1 - strb r1, [r2] - movs r4, 0x1 - adds r6, r0, 0 -_0807198C: - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r4, 24 - lsrs r1, 24 - bl HasIQForSkill - lsls r0, 24 - cmp r0, 0 - beq _080719B8 - movs r1, 0x1 - lsls r1, r4 - adds r0, r5, 0 - adds r0, 0x8C - bl IsIQSkillSet - lsls r0, 24 - cmp r0, 0 - beq _080719B8 - adds r0, r6, 0 - adds r1, r4, 0 - bl SetIQSkill -_080719B8: - adds r4, 0x1 - cmp r4, 0x17 - ble _0807198C -_080719BE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end LoadIQSkills - - thumb_func_start CanSeeTeammate -CanSeeTeammate: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x70] - ldrb r0, [r0, 0x6] - cmp r0, 0 - beq _080719D6 - b _08071A0A -_080719D2: - movs r0, 0x1 - b _08071A0C -_080719D6: - movs r6, 0 -_080719D8: - ldr r0, _08071A14 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _08071A18 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08071A04 - cmp r5, r4 - beq _08071A04 - adds r0, r5, 0 - adds r1, r4, 0 - bl CanSee - lsls r0, 24 - cmp r0, 0 - bne _080719D2 -_08071A04: - adds r6, 0x1 - cmp r6, 0x3 - ble _080719D8 -_08071A0A: - movs r0, 0 -_08071A0C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08071A14: .4byte gDungeonGlobalData -_08071A18: .4byte 0x0001357c - thumb_func_end CanSeeTeammate - - thumb_func_start GetMoveType_2 -GetMoveType_2: - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldrh r1, [r2, 0x2] - movs r0, 0xA2 - lsls r0, 1 - cmp r1, r0 - beq _08071A38 - adds r0, r2, 0 - bl GetMoveType - lsls r0, 24 - lsrs r0, 24 - b _08071A3E -_08071A38: - ldr r0, [r3, 0x70] - adds r0, 0x3E - ldrb r0, [r0] -_08071A3E: - pop {r1} - bx r1 - thumb_func_end GetMoveType_2 - - thumb_func_start sub_8071A44 -sub_8071A44: - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldrh r1, [r4, 0x2] - movs r0, 0xA2 - lsls r0, 1 - cmp r1, r0 - beq _08071A60 - adds r0, r4, 0 - bl GetMovePower - ldrb r1, [r4, 0x5] - adds r0, r1 - b _08071A6A -_08071A60: - ldr r0, [r2, 0x70] - movs r1, 0x3C - ldrsh r0, [r0, r1] - ldrb r4, [r4, 0x5] - adds r0, r4 -_08071A6A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8071A44 - - thumb_func_start ToolboxEnabled -ToolboxEnabled: - push {lr} - movs r1, 0x2 - ldrsh r0, [r0, r1] - bl IsToolboxEnabled - lsls r0, 24 - cmp r0, 0 - beq _08071A84 - movs r0, 0x1 - b _08071A86 -_08071A84: - movs r0, 0 -_08071A86: - pop {r1} - bx r1 - thumb_func_end ToolboxEnabled - - thumb_func_start sub_8071A8C -sub_8071A8C: - push {r4,lr} - adds r4, r0, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08071AC2 - ldr r1, [r4, 0x70] - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08071AC2 - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08071AB4 - cmp r0, 0x47 - bne _08071AB8 -_08071AB4: - movs r0, 0x1 - b _08071ABA -_08071AB8: - movs r0, 0 -_08071ABA: - cmp r0, 0 - bne _08071AC2 - movs r0, 0x1 - b _08071AC4 -_08071AC2: - movs r0, 0 -_08071AC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8071A8C - thumb_func_start SetVisualFlags SetVisualFlags: push {r4,r5,lr} diff --git a/asm/code_808333C.s b/asm/code_808333C.s index 5677a42..bd38800 100644 --- a/asm/code_808333C.s +++ b/asm/code_808333C.s @@ -1865,15 +1865,4 @@ _080840D0: .4byte 0xffff0000 _080840D4: .4byte 0x00ffffff thumb_func_end sub_80840A4 - thumb_func_start sub_80840D8 -sub_80840D8: - ldr r2, _080840E4 - movs r1, 0x1 - orrs r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_080840E4: .4byte gDungeonRngState - thumb_func_end sub_80840D8 - .align 2, 0 diff --git a/asm/code_8084160.s b/asm/code_8084160.s deleted file mode 100644 index fce2f1b..0000000 --- a/asm/code_8084160.s +++ /dev/null @@ -1,958 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8084160 -sub_8084160: - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x64 - bl DungeonRandomCapped - cmp r0, r4 - blt _08084172 - movs r0, 0 - b _08084174 -_08084172: - movs r0, 0x1 -_08084174: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8084160 - - thumb_func_start sub_808417C -sub_808417C: - push {r4-r6,lr} - adds r5, r0, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl sub_808411C - adds r4, r0, 0 - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080841DC - adds r0, r5, 0 - bl GetEntityType - cmp r0, 0x1 - bne _080841DC - cmp r6, 0 - beq _080841DC - adds r0, r5, 0 - movs r1, 0x12 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _080841C4 - cmp r4, 0x7F - beq _080841C4 - lsrs r0, r4, 31 - adds r0, r4, r0 - asrs r4, r0, 1 -_080841C4: - adds r0, r5, 0 - movs r1, 0x14 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _080841DC - cmp r4, 0x7F - beq _080841DC - cmp r4, 0x4 - ble _080841DC - movs r4, 0x5 -_080841DC: - cmp r4, 0 - bgt _080841E2 - movs r4, 0x1 -_080841E2: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808417C - - thumb_func_start sub_80841EC -sub_80841EC: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC4 - add r0, sp, 0x60 - mov r8, r0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [sp, 0x64] - add r1, sp, 0x68 - movs r6, 0 - movs r0, 0x4 - strh r0, [r1] - movs r2, 0x3 - strh r2, [r1, 0x2] - add r1, sp, 0x6C - movs r0, 0x16 - strh r0, [r1] - mov r0, sp - adds r0, 0x6E - movs r5, 0xE - movs r1, 0xE - strh r1, [r0] - add r0, sp, 0x70 - strh r1, [r0] - add r4, sp, 0xC0 - str r4, [sp, 0x74] - str r2, [sp, 0x7C] - add r0, sp, 0x90 - str r2, [r0, 0x4] - add r0, sp, 0xA8 - str r2, [r0, 0x4] - mov r0, sp - mov r1, r8 - movs r2, 0x60 - bl memcpy - movs r0, 0x1 - strb r0, [r4] - strb r6, [r4, 0x1] - strb r5, [r4, 0x2] - strb r6, [r4, 0x3] - mov r1, sp - movs r0, 0x14 - strh r0, [r1, 0xA] - mov r0, sp - movs r1, 0x1 - bl sub_803ECB4 - ldr r0, _0808426C - ldr r0, [r0] - ldr r1, _08084270 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _08084274 - cmp r1, r0 - ble _08084278 - bl sub_8083DE0 - b _0808427C - .align 2, 0 -_0808426C: .4byte gDungeonGlobalData -_08084270: .4byte 0x0001ceac -_08084274: .4byte 0x00000225 -_08084278: - bl sub_8083D98 -_0808427C: - ldr r0, _080842B8 - ldr r1, [r0] - ldr r0, _080842BC - ldr r2, [r0] - ldr r0, _080842C0 - adds r2, r0 - movs r0, 0 - bl sub_8094558 - mov r4, sp -_08084290: - movs r0, 0x36 - bl sub_803E668 - bl sub_8083F58 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080842C4 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - movs r0, 0xA0 - strb r0, [r4] - mov r0, sp - movs r1, 0x1 - bl sub_803ECB4 - b _08084290 - .align 2, 0 -_080842B8: .4byte gUnknown_80FE6E8 -_080842BC: .4byte gDungeonGlobalData -_080842C0: .4byte 0x0001ce98 -_080842C4: - bl sub_8094D14 - lsls r0, 24 - cmp r0, 0 - bne _080842DA - ldr r0, _080842EC - ldrh r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08084290 -_080842DA: - bl sub_8083D08 - add sp, 0xC4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080842EC: .4byte gRealInputs - thumb_func_end sub_80841EC - - thumb_func_start sub_80842F0 -sub_80842F0: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0808436C - ldr r0, [r1] - ldr r2, _08084370 - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r0, [r1] - ldr r3, _08084374 - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - movs r5, 0xCF - lsls r5, 3 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080843AE - movs r6, 0 - ldr r0, _08084378 - mov r8, r0 - movs r7, 0x1 -_08084320: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x6 - bne _080843A8 - ldr r3, _0808436C - ldr r5, [r3] - ldr r1, _0808437C - adds r0, r5, r1 - ldrh r0, [r0] - ldrh r2, [r4, 0x4] - mov r1, r8 - ands r1, r0 - mov r0, r8 - ands r0, r2 - cmp r1, r0 - bne _080843A8 - ldrb r0, [r4, 0x1] - cmp r0, 0x3 - beq _080843A8 - cmp r0, 0x4 - bne _08084380 - ldrb r1, [r4, 0x10] - ldr r2, _08084374 - adds r0, r5, r2 - strb r1, [r0] - ldr r2, [r3] - ldrh r1, [r4, 0xE] - movs r3, 0xD1 - lsls r3, 3 - adds r0, r2, r3 - strh r1, [r0] - strb r7, [r2, 0x9] - b _080843A8 - .align 2, 0 -_0808436C: .4byte gDungeonGlobalData -_08084370: .4byte 0x00000677 -_08084374: .4byte 0x0000068a -_08084378: .4byte 0x0000ffff -_0808437C: .4byte 0x00000644 -_08084380: - cmp r0, 0 - beq _0808438C - cmp r0, 0x2 - beq _0808438C - cmp r0, 0x1 - bne _080843A8 -_0808438C: - ldr r2, [r3] - ldrh r0, [r4, 0xE] - movs r5, 0xD1 - lsls r5, 3 - adds r1, r2, r5 - strh r0, [r1] - ldrb r0, [r4, 0x1] - cmp r0, 0x2 - bne _080843A4 - ldr r1, _080843B8 - adds r0, r2, r1 - strb r7, [r0] -_080843A4: - ldr r0, [r3] - strb r7, [r0, 0x9] -_080843A8: - adds r6, 0x1 - cmp r6, 0x7 - ble _08084320 -_080843AE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080843B8: .4byte 0x00000677 - thumb_func_end sub_80842F0 - - thumb_func_start sub_80843BC -sub_80843BC: - push {r4-r6,lr} - lsls r0, 16 - asrs r6, r0, 16 - movs r4, 0 - ldr r5, _08084418 -_080843C6: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r3, r0, 0 - ldrb r0, [r3] - cmp r0, 0x6 - bne _0808440C - ldr r0, _0808441C - ldr r0, [r0] - ldr r1, _08084420 - adds r0, r1 - ldrh r0, [r0] - ldrh r2, [r3, 0x4] - adds r1, r5, 0 - ands r1, r0 - adds r0, r5, 0 - ands r0, r2 - cmp r1, r0 - bne _0808440C - ldrb r0, [r3, 0x1] - cmp r0, 0 - beq _08084400 - cmp r0, 0x4 - beq _08084400 - cmp r0, 0x2 - beq _08084400 - cmp r0, 0x1 - bne _0808440C -_08084400: - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r6, r0 - bne _0808440C - movs r0, 0x8 - strb r0, [r3] -_0808440C: - adds r4, 0x1 - cmp r4, 0x7 - ble _080843C6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08084418: .4byte 0x0000ffff -_0808441C: .4byte gDungeonGlobalData -_08084420: .4byte 0x00000644 - thumb_func_end sub_80843BC - - thumb_func_start sub_8084424 -sub_8084424: - push {r4,lr} - movs r4, 0 -_08084428: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0x8 - bne _0808443C - movs r0, 0x9 - strb r0, [r1] -_0808443C: - adds r4, 0x1 - cmp r4, 0x7 - ble _08084428 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8084424 - - thumb_func_start sub_8084448 -sub_8084448: - push {r4-r7,lr} - adds r5, r0, 0 - ldr r7, [r5, 0x70] - ldr r4, _0808447C - bl GetLeaderEntity - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - adds r0, r5, 0 - bl sub_8070BC0 - lsls r0, 24 - cmp r0, 0 - bne _08084484 - ldr r0, _08084480 - b _080844F0 - .align 2, 0 -_0808447C: .4byte gAvailablePokemonNames -_08084480: .4byte gUnknown_80FA464 -_08084484: - ldr r4, _080844FC - ldr r0, [r4] - ldr r6, _08084500 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _08084540 - ldr r0, _08084504 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - beq _080844A4 - b _080845D4 -_080844A4: - ldr r0, _08084508 - ldr r1, [r4] - adds r1, r6 - ldrb r1, [r1] - movs r2, 0 - bl sub_8090DC4 - movs r3, 0 - ldr r0, _0808450C - adds r6, r0, 0 - ldr r2, [r6] -_080844BA: - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080844E2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080844E2 - movs r0, 0x18 - ands r0, r1 - cmp r0, 0x18 - beq _080844E2 - ldr r0, [r4] - ldr r1, _08084500 - adds r0, r1 - ldrb r1, [r2, 0x2] - ldrb r0, [r0] - cmp r1, r0 - beq _080844EA -_080844E2: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x13 - ble _080844BA -_080844EA: - cmp r3, 0x14 - bne _08084514 - ldr r0, _08084510 -_080844F0: - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _080845D4 - .align 2, 0 -_080844FC: .4byte gDungeonGlobalData -_08084500: .4byte 0x0000068a -_08084504: .4byte gUnknown_80FA32C -_08084508: .4byte gUnknown_202DE58 -_0808450C: .4byte gTeamInventory_203B460 -_08084510: .4byte gUnknown_80FA448 -_08084514: - lsls r1, r3, 2 - ldr r0, [r6] - adds r1, r0 - movs r0, 0 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - strb r0, [r1] - bl FillInventoryGaps - ldr r0, _08084538 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - ldr r0, _0808453C - b _0808455E - .align 2, 0 -_08084538: .4byte gUnknown_80FA2B0 -_0808453C: .4byte gUnknown_80FA370 -_08084540: - ldr r0, _080845B0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _080845D4 - ldr r0, _080845B4 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - ldr r0, _080845B8 -_0808455E: - ldr r4, [r0] - movs r1, 0x2 - ldrsh r0, [r7, r1] - bl sub_80843BC - adds r0, r5, 0x4 - bl sub_8042A34 - movs r1, 0x87 - lsls r1, 2 - adds r0, r5, 0 - movs r2, 0 - bl sub_8068FE0 - movs r0, 0x1 - bl sub_804178C - ldr r5, _080845BC -_08084582: - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _080845C4 - ldr r0, _080845C0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_8052B8C - adds r1, r0, 0 - cmp r1, 0x1 - bne _08084582 - ldr r0, [r5] - strb r1, [r0, 0x4] - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x11] - b _080845D4 - .align 2, 0 -_080845B0: .4byte gUnknown_80FA2F0 -_080845B4: .4byte gUnknown_80FA260 -_080845B8: .4byte gUnknown_80FA36C -_080845BC: .4byte gDungeonGlobalData -_080845C0: .4byte gUnknown_80FA394 -_080845C4: - ldr r0, _080845DC - ldr r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_8052B8C - cmp r0, 0x1 - bne _08084582 -_080845D4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080845DC: .4byte gUnknown_80FA3B8 - thumb_func_end sub_8084448 - - thumb_func_start sub_80845E0 -sub_80845E0: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - ldr r0, [r6, 0x70] - mov r8, r0 - movs r7, 0 - movs r1, 0 - mov r9, r1 - ldr r4, _08084620 - bl GetLeaderEntity - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - adds r0, r6, 0 - bl sub_8070BC0 - lsls r0, 24 - cmp r0, 0 - bne _08084630 - ldr r0, _08084624 - b _080846B4 - .align 2, 0 -_08084620: .4byte gAvailablePokemonNames -_08084624: .4byte gUnknown_80FA530 -_08084628: - adds r7, r4, 0 - ldr r2, [r7, 0x70] - mov r9, r2 - b _08084674 -_08084630: - movs r5, 0 -_08084632: - ldr r0, _08084660 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08084664 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0808466E - ldr r0, [r4, 0x70] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _0808465A - cmp r0, 0x47 - bne _08084668 -_0808465A: - movs r0, 0x1 - b _0808466A - .align 2, 0 -_08084660: .4byte gDungeonGlobalData -_08084664: .4byte 0x0001357c -_08084668: - movs r0, 0 -_0808466A: - cmp r0, 0 - bne _08084628 -_0808466E: - adds r5, 0x1 - cmp r5, 0x3 - ble _08084632 -_08084674: - cmp r7, 0 - bne _08084680 - ldr r0, _0808467C - b _080846B4 - .align 2, 0 -_0808467C: .4byte gUnknown_80FA52C -_08084680: - ldr r0, _0808469C - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - adds r0, r7, 0 - bl sub_8070BC0 - lsls r0, 24 - cmp r0, 0 - bne _080846A4 - ldr r0, _080846A0 - b _080846B4 - .align 2, 0 -_0808469C: .4byte gUnknown_202E038 -_080846A0: .4byte gUnknown_80FA54C -_080846A4: - adds r0, r6, 0 - adds r1, r7, 0 - bl CanSee - lsls r0, 24 - cmp r0, 0 - bne _080846C4 - ldr r0, _080846C0 -_080846B4: - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _08084768 - .align 2, 0 -_080846C0: .4byte gUnknown_80FA500 -_080846C4: - ldr r0, _08084744 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - mov r1, r8 - movs r2, 0x2 - ldrsh r0, [r1, r2] - bl sub_80843BC - ldr r5, _08084748 - ldr r0, [r5] - ldr r1, _0808474C - adds r0, r1 - ldrb r1, [r0] - mov r0, r9 - adds r0, 0x40 - strb r1, [r0] - adds r0, r6, 0x4 - bl sub_8042A34 - adds r0, r7, 0x4 - bl sub_8042A34 - movs r4, 0x87 - lsls r4, 2 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8068FE0 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8068FE0 - movs r0, 0x1 - bl sub_804178C - ldr r4, _08084750 -_08084716: - movs r0, 0 - ldr r1, [r4] - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _08084758 - ldr r0, _08084754 - ldr r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_8052B8C - adds r1, r0, 0 - cmp r1, 0x1 - bne _08084716 - ldr r0, [r5] - strb r1, [r0, 0x4] - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x11] - b _08084768 - .align 2, 0 -_08084744: .4byte gUnknown_80FA4D4 -_08084748: .4byte gDungeonGlobalData -_0808474C: .4byte 0x00000644 -_08084750: .4byte gUnknown_80FA4D8 -_08084754: .4byte gUnknown_80FA394 -_08084758: - ldr r0, _08084774 - ldr r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_8052B8C - cmp r0, 0x1 - bne _08084716 -_08084768: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08084774: .4byte gUnknown_80FA3B8 - thumb_func_end sub_80845E0 - - thumb_func_start sub_8084778 -sub_8084778: - push {r4,lr} - ldr r0, _080847B8 - ldr r1, _080847BC - bl strcpy - movs r4, 0 -_08084784: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0x6 - bne _080847C8 - ldr r0, _080847C0 - ldr r0, [r0] - ldr r2, _080847C4 - adds r0, r2 - ldrb r0, [r0] - ldrb r2, [r1, 0x4] - cmp r0, r2 - bne _080847C8 - ldrb r0, [r1, 0x1] - cmp r0, 0x2 - bne _080847C8 - movs r0, 0xE - ldrsh r1, [r1, r0] - ldr r0, _080847B8 - bl CopyCyanSpeciesNametoBuffer - b _080847CE - .align 2, 0 -_080847B8: .4byte gUnknown_202E088 -_080847BC: .4byte gUnknown_8107224 -_080847C0: .4byte gDungeonGlobalData -_080847C4: .4byte 0x00000644 -_080847C8: - adds r4, 0x1 - cmp r4, 0x7 - ble _08084784 -_080847CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8084778 - - thumb_func_start sub_80847D4 -sub_80847D4: - push {r4,r5,lr} - ldr r2, _08084820 - ldr r0, [r2] - ldr r1, _08084824 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _08084828 - adds r0, r2 - strb r1, [r0] - bl sub_8040A84 - movs r4, 0 - ldr r0, _0808482C - ldrb r0, [r0] - cmp r0, 0 - beq _08084846 - movs r3, 0 -_080847FA: - ldr r0, _08084820 - ldr r0, [r0] - ldr r5, _08084830 - adds r0, r5 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r1, 0 - subs r0, 0x1C - cmp r0, 0x15 - bhi _08084810 - movs r1, 0x1B -_08084810: - ldr r2, _0808482C - adds r0, r3, r2 - ldrb r5, [r0] - cmp r1, r5 - bne _08084834 - bl sub_8084854 - b _08084846 - .align 2, 0 -_08084820: .4byte gDungeonGlobalData -_08084824: .4byte 0x00003a0d -_08084828: .4byte 0x0001356c -_0808482C: .4byte gUnknown_8107234 -_08084830: .4byte 0x00003a14 -_08084834: - adds r3, 0x8 - adds r4, 0x1 - ldr r0, _08084850 - cmp r4, r0 - bgt _08084846 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080847FA -_08084846: - bl sub_8097FF8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08084850: .4byte 0x000003e6 - thumb_func_end sub_80847D4 - - thumb_func_start sub_8084854 -sub_8084854: - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _08084874 - ldr r2, [r5] - movs r1, 0xCF - lsls r1, 3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808487C - ldrb r1, [r4, 0x5] - ldr r3, _08084878 - adds r0, r2, r3 - strb r1, [r0] - b _080848C8 - .align 2, 0 -_08084874: .4byte gDungeonGlobalData -_08084878: .4byte 0x00003a0d -_0808487C: - ldrb r0, [r4, 0x4] - bl sub_8098100 - lsls r0, 24 - cmp r0, 0 - beq _08084898 - ldr r0, [r5] - ldrb r1, [r4, 0x5] - ldr r2, _08084894 - adds r0, r2 - strb r1, [r0] - b _080848C8 - .align 2, 0 -_08084894: .4byte 0x00003a0d -_08084898: - ldrb r0, [r4, 0x2] - bl sub_8098100 - lsls r0, 24 - cmp r0, 0 - beq _080848B4 - ldr r0, [r5] - ldrb r1, [r4, 0x3] - ldr r3, _080848B0 - adds r0, r3 - strb r1, [r0] - b _080848C8 - .align 2, 0 -_080848B0: .4byte 0x00003a0d -_080848B4: - ldr r0, [r5] - ldrb r1, [r4, 0x1] - ldr r2, _080848E0 - adds r0, r2 - strb r1, [r0] - ldrb r0, [r4, 0x2] - cmp r0, 0x40 - beq _080848C8 - bl sub_8097FA8 -_080848C8: - ldr r0, _080848E4 - ldr r0, [r0] - ldr r3, _080848E8 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0 - bl sub_807E5E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080848E0: .4byte 0x00003a0d -_080848E4: .4byte gDungeonGlobalData -_080848E8: .4byte 0x00000675 - thumb_func_end sub_8084854 - - .align 2,0 diff --git a/asm/code_808417C.s b/asm/code_808417C.s new file mode 100644 index 0000000..03b4f3b --- /dev/null +++ b/asm/code_808417C.s @@ -0,0 +1,940 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_808417C +sub_808417C: + push {r4-r6,lr} + adds r5, r0, 0 + lsls r2, 24 + lsrs r6, r2, 24 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl sub_808411C + adds r4, r0, 0 + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080841DC + adds r0, r5, 0 + bl GetEntityType + cmp r0, 0x1 + bne _080841DC + cmp r6, 0 + beq _080841DC + adds r0, r5, 0 + movs r1, 0x12 + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _080841C4 + cmp r4, 0x7F + beq _080841C4 + lsrs r0, r4, 31 + adds r0, r4, r0 + asrs r4, r0, 1 +_080841C4: + adds r0, r5, 0 + movs r1, 0x14 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _080841DC + cmp r4, 0x7F + beq _080841DC + cmp r4, 0x4 + ble _080841DC + movs r4, 0x5 +_080841DC: + cmp r4, 0 + bgt _080841E2 + movs r4, 0x1 +_080841E2: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_808417C + + thumb_func_start sub_80841EC +sub_80841EC: + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC4 + add r0, sp, 0x60 + mov r8, r0 + movs r1, 0 + movs r2, 0x60 + bl memset + movs r0, 0x6 + str r0, [sp, 0x64] + add r1, sp, 0x68 + movs r6, 0 + movs r0, 0x4 + strh r0, [r1] + movs r2, 0x3 + strh r2, [r1, 0x2] + add r1, sp, 0x6C + movs r0, 0x16 + strh r0, [r1] + mov r0, sp + adds r0, 0x6E + movs r5, 0xE + movs r1, 0xE + strh r1, [r0] + add r0, sp, 0x70 + strh r1, [r0] + add r4, sp, 0xC0 + str r4, [sp, 0x74] + str r2, [sp, 0x7C] + add r0, sp, 0x90 + str r2, [r0, 0x4] + add r0, sp, 0xA8 + str r2, [r0, 0x4] + mov r0, sp + mov r1, r8 + movs r2, 0x60 + bl memcpy + movs r0, 0x1 + strb r0, [r4] + strb r6, [r4, 0x1] + strb r5, [r4, 0x2] + strb r6, [r4, 0x3] + mov r1, sp + movs r0, 0x14 + strh r0, [r1, 0xA] + mov r0, sp + movs r1, 0x1 + bl sub_803ECB4 + ldr r0, _0808426C + ldr r0, [r0] + ldr r1, _08084270 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _08084274 + cmp r1, r0 + ble _08084278 + bl sub_8083DE0 + b _0808427C + .align 2, 0 +_0808426C: .4byte gDungeonGlobalData +_08084270: .4byte 0x0001ceac +_08084274: .4byte 0x00000225 +_08084278: + bl sub_8083D98 +_0808427C: + ldr r0, _080842B8 + ldr r1, [r0] + ldr r0, _080842BC + ldr r2, [r0] + ldr r0, _080842C0 + adds r2, r0 + movs r0, 0 + bl sub_8094558 + mov r4, sp +_08084290: + movs r0, 0x36 + bl sub_803E668 + bl sub_8083F58 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080842C4 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + movs r0, 0xA0 + strb r0, [r4] + mov r0, sp + movs r1, 0x1 + bl sub_803ECB4 + b _08084290 + .align 2, 0 +_080842B8: .4byte gUnknown_80FE6E8 +_080842BC: .4byte gDungeonGlobalData +_080842C0: .4byte 0x0001ce98 +_080842C4: + bl sub_8094D14 + lsls r0, 24 + cmp r0, 0 + bne _080842DA + ldr r0, _080842EC + ldrh r1, [r0, 0x2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08084290 +_080842DA: + bl sub_8083D08 + add sp, 0xC4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080842EC: .4byte gRealInputs + thumb_func_end sub_80841EC + + thumb_func_start sub_80842F0 +sub_80842F0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _0808436C + ldr r0, [r1] + ldr r2, _08084370 + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r0, [r1] + ldr r3, _08084374 + adds r0, r3 + strb r2, [r0] + ldr r0, [r1] + movs r5, 0xCF + lsls r5, 3 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080843AE + movs r6, 0 + ldr r0, _08084378 + mov r8, r0 + movs r7, 0x1 +_08084320: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8096AB4 + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0x6 + bne _080843A8 + ldr r3, _0808436C + ldr r5, [r3] + ldr r1, _0808437C + adds r0, r5, r1 + ldrh r0, [r0] + ldrh r2, [r4, 0x4] + mov r1, r8 + ands r1, r0 + mov r0, r8 + ands r0, r2 + cmp r1, r0 + bne _080843A8 + ldrb r0, [r4, 0x1] + cmp r0, 0x3 + beq _080843A8 + cmp r0, 0x4 + bne _08084380 + ldrb r1, [r4, 0x10] + ldr r2, _08084374 + adds r0, r5, r2 + strb r1, [r0] + ldr r2, [r3] + ldrh r1, [r4, 0xE] + movs r3, 0xD1 + lsls r3, 3 + adds r0, r2, r3 + strh r1, [r0] + strb r7, [r2, 0x9] + b _080843A8 + .align 2, 0 +_0808436C: .4byte gDungeonGlobalData +_08084370: .4byte 0x00000677 +_08084374: .4byte 0x0000068a +_08084378: .4byte 0x0000ffff +_0808437C: .4byte 0x00000644 +_08084380: + cmp r0, 0 + beq _0808438C + cmp r0, 0x2 + beq _0808438C + cmp r0, 0x1 + bne _080843A8 +_0808438C: + ldr r2, [r3] + ldrh r0, [r4, 0xE] + movs r5, 0xD1 + lsls r5, 3 + adds r1, r2, r5 + strh r0, [r1] + ldrb r0, [r4, 0x1] + cmp r0, 0x2 + bne _080843A4 + ldr r1, _080843B8 + adds r0, r2, r1 + strb r7, [r0] +_080843A4: + ldr r0, [r3] + strb r7, [r0, 0x9] +_080843A8: + adds r6, 0x1 + cmp r6, 0x7 + ble _08084320 +_080843AE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080843B8: .4byte 0x00000677 + thumb_func_end sub_80842F0 + + thumb_func_start sub_80843BC +sub_80843BC: + push {r4-r6,lr} + lsls r0, 16 + asrs r6, r0, 16 + movs r4, 0 + ldr r5, _08084418 +_080843C6: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096AB4 + adds r3, r0, 0 + ldrb r0, [r3] + cmp r0, 0x6 + bne _0808440C + ldr r0, _0808441C + ldr r0, [r0] + ldr r1, _08084420 + adds r0, r1 + ldrh r0, [r0] + ldrh r2, [r3, 0x4] + adds r1, r5, 0 + ands r1, r0 + adds r0, r5, 0 + ands r0, r2 + cmp r1, r0 + bne _0808440C + ldrb r0, [r3, 0x1] + cmp r0, 0 + beq _08084400 + cmp r0, 0x4 + beq _08084400 + cmp r0, 0x2 + beq _08084400 + cmp r0, 0x1 + bne _0808440C +_08084400: + movs r1, 0xE + ldrsh r0, [r3, r1] + cmp r6, r0 + bne _0808440C + movs r0, 0x8 + strb r0, [r3] +_0808440C: + adds r4, 0x1 + cmp r4, 0x7 + ble _080843C6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08084418: .4byte 0x0000ffff +_0808441C: .4byte gDungeonGlobalData +_08084420: .4byte 0x00000644 + thumb_func_end sub_80843BC + + thumb_func_start sub_8084424 +sub_8084424: + push {r4,lr} + movs r4, 0 +_08084428: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096AB4 + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0x8 + bne _0808443C + movs r0, 0x9 + strb r0, [r1] +_0808443C: + adds r4, 0x1 + cmp r4, 0x7 + ble _08084428 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8084424 + + thumb_func_start sub_8084448 +sub_8084448: + push {r4-r7,lr} + adds r5, r0, 0 + ldr r7, [r5, 0x70] + ldr r4, _0808447C + bl GetLeaderEntity + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + bl SetMessageArgument + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl SetMessageArgument + adds r0, r5, 0 + bl sub_8070BC0 + lsls r0, 24 + cmp r0, 0 + bne _08084484 + ldr r0, _08084480 + b _080844F0 + .align 2, 0 +_0808447C: .4byte gAvailablePokemonNames +_08084480: .4byte gUnknown_80FA464 +_08084484: + ldr r4, _080844FC + ldr r0, [r4] + ldr r6, _08084500 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _08084540 + ldr r0, _08084504 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + beq _080844A4 + b _080845D4 +_080844A4: + ldr r0, _08084508 + ldr r1, [r4] + adds r1, r6 + ldrb r1, [r1] + movs r2, 0 + bl sub_8090DC4 + movs r3, 0 + ldr r0, _0808450C + adds r6, r0, 0 + ldr r2, [r6] +_080844BA: + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080844E2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080844E2 + movs r0, 0x18 + ands r0, r1 + cmp r0, 0x18 + beq _080844E2 + ldr r0, [r4] + ldr r1, _08084500 + adds r0, r1 + ldrb r1, [r2, 0x2] + ldrb r0, [r0] + cmp r1, r0 + beq _080844EA +_080844E2: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x13 + ble _080844BA +_080844EA: + cmp r3, 0x14 + bne _08084514 + ldr r0, _08084510 +_080844F0: + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _080845D4 + .align 2, 0 +_080844FC: .4byte gDungeonGlobalData +_08084500: .4byte 0x0000068a +_08084504: .4byte gUnknown_80FA32C +_08084508: .4byte gUnknown_202DE58 +_0808450C: .4byte gTeamInventory_203B460 +_08084510: .4byte gUnknown_80FA448 +_08084514: + lsls r1, r3, 2 + ldr r0, [r6] + adds r1, r0 + movs r0, 0 + strb r0, [r1, 0x2] + strb r0, [r1, 0x1] + strb r0, [r1] + bl FillInventoryGaps + ldr r0, _08084538 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + ldr r0, _0808453C + b _0808455E + .align 2, 0 +_08084538: .4byte gUnknown_80FA2B0 +_0808453C: .4byte gUnknown_80FA370 +_08084540: + ldr r0, _080845B0 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _080845D4 + ldr r0, _080845B4 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + ldr r0, _080845B8 +_0808455E: + ldr r4, [r0] + movs r1, 0x2 + ldrsh r0, [r7, r1] + bl sub_80843BC + adds r0, r5, 0x4 + bl sub_8042A34 + movs r1, 0x87 + lsls r1, 2 + adds r0, r5, 0 + movs r2, 0 + bl sub_8068FE0 + movs r0, 0x1 + bl sub_804178C + ldr r5, _080845BC +_08084582: + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _080845C4 + ldr r0, _080845C0 + ldr r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_8052B8C + adds r1, r0, 0 + cmp r1, 0x1 + bne _08084582 + ldr r0, [r5] + strb r1, [r0, 0x4] + ldr r1, [r5] + movs r0, 0x2 + strb r0, [r1, 0x11] + b _080845D4 + .align 2, 0 +_080845B0: .4byte gUnknown_80FA2F0 +_080845B4: .4byte gUnknown_80FA260 +_080845B8: .4byte gUnknown_80FA36C +_080845BC: .4byte gDungeonGlobalData +_080845C0: .4byte gUnknown_80FA394 +_080845C4: + ldr r0, _080845DC + ldr r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_8052B8C + cmp r0, 0x1 + bne _08084582 +_080845D4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080845DC: .4byte gUnknown_80FA3B8 + thumb_func_end sub_8084448 + + thumb_func_start sub_80845E0 +sub_80845E0: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + ldr r0, [r6, 0x70] + mov r8, r0 + movs r7, 0 + movs r1, 0 + mov r9, r1 + ldr r4, _08084620 + bl GetLeaderEntity + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + bl SetMessageArgument + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + bl SetMessageArgument + adds r0, r6, 0 + bl sub_8070BC0 + lsls r0, 24 + cmp r0, 0 + bne _08084630 + ldr r0, _08084624 + b _080846B4 + .align 2, 0 +_08084620: .4byte gAvailablePokemonNames +_08084624: .4byte gUnknown_80FA530 +_08084628: + adds r7, r4, 0 + ldr r2, [r7, 0x70] + mov r9, r2 + b _08084674 +_08084630: + movs r5, 0 +_08084632: + ldr r0, _08084660 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08084664 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0808466E + ldr r0, [r4, 0x70] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _0808465A + cmp r0, 0x47 + bne _08084668 +_0808465A: + movs r0, 0x1 + b _0808466A + .align 2, 0 +_08084660: .4byte gDungeonGlobalData +_08084664: .4byte 0x0001357c +_08084668: + movs r0, 0 +_0808466A: + cmp r0, 0 + bne _08084628 +_0808466E: + adds r5, 0x1 + cmp r5, 0x3 + ble _08084632 +_08084674: + cmp r7, 0 + bne _08084680 + ldr r0, _0808467C + b _080846B4 + .align 2, 0 +_0808467C: .4byte gUnknown_80FA52C +_08084680: + ldr r0, _0808469C + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + adds r0, r7, 0 + bl sub_8070BC0 + lsls r0, 24 + cmp r0, 0 + bne _080846A4 + ldr r0, _080846A0 + b _080846B4 + .align 2, 0 +_0808469C: .4byte gUnknown_202E038 +_080846A0: .4byte gUnknown_80FA54C +_080846A4: + adds r0, r6, 0 + adds r1, r7, 0 + bl CanSee + lsls r0, 24 + cmp r0, 0 + bne _080846C4 + ldr r0, _080846C0 +_080846B4: + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _08084768 + .align 2, 0 +_080846C0: .4byte gUnknown_80FA500 +_080846C4: + ldr r0, _08084744 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + mov r1, r8 + movs r2, 0x2 + ldrsh r0, [r1, r2] + bl sub_80843BC + ldr r5, _08084748 + ldr r0, [r5] + ldr r1, _0808474C + adds r0, r1 + ldrb r1, [r0] + mov r0, r9 + adds r0, 0x40 + strb r1, [r0] + adds r0, r6, 0x4 + bl sub_8042A34 + adds r0, r7, 0x4 + bl sub_8042A34 + movs r4, 0x87 + lsls r4, 2 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8068FE0 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8068FE0 + movs r0, 0x1 + bl sub_804178C + ldr r4, _08084750 +_08084716: + movs r0, 0 + ldr r1, [r4] + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _08084758 + ldr r0, _08084754 + ldr r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_8052B8C + adds r1, r0, 0 + cmp r1, 0x1 + bne _08084716 + ldr r0, [r5] + strb r1, [r0, 0x4] + ldr r1, [r5] + movs r0, 0x2 + strb r0, [r1, 0x11] + b _08084768 + .align 2, 0 +_08084744: .4byte gUnknown_80FA4D4 +_08084748: .4byte gDungeonGlobalData +_0808474C: .4byte 0x00000644 +_08084750: .4byte gUnknown_80FA4D8 +_08084754: .4byte gUnknown_80FA394 +_08084758: + ldr r0, _08084774 + ldr r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_8052B8C + cmp r0, 0x1 + bne _08084716 +_08084768: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08084774: .4byte gUnknown_80FA3B8 + thumb_func_end sub_80845E0 + + thumb_func_start sub_8084778 +sub_8084778: + push {r4,lr} + ldr r0, _080847B8 + ldr r1, _080847BC + bl strcpy + movs r4, 0 +_08084784: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096AB4 + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0x6 + bne _080847C8 + ldr r0, _080847C0 + ldr r0, [r0] + ldr r2, _080847C4 + adds r0, r2 + ldrb r0, [r0] + ldrb r2, [r1, 0x4] + cmp r0, r2 + bne _080847C8 + ldrb r0, [r1, 0x1] + cmp r0, 0x2 + bne _080847C8 + movs r0, 0xE + ldrsh r1, [r1, r0] + ldr r0, _080847B8 + bl CopyCyanSpeciesNametoBuffer + b _080847CE + .align 2, 0 +_080847B8: .4byte gUnknown_202E088 +_080847BC: .4byte gUnknown_8107224 +_080847C0: .4byte gDungeonGlobalData +_080847C4: .4byte 0x00000644 +_080847C8: + adds r4, 0x1 + cmp r4, 0x7 + ble _08084784 +_080847CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8084778 + + thumb_func_start sub_80847D4 +sub_80847D4: + push {r4,r5,lr} + ldr r2, _08084820 + ldr r0, [r2] + ldr r1, _08084824 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _08084828 + adds r0, r2 + strb r1, [r0] + bl sub_8040A84 + movs r4, 0 + ldr r0, _0808482C + ldrb r0, [r0] + cmp r0, 0 + beq _08084846 + movs r3, 0 +_080847FA: + ldr r0, _08084820 + ldr r0, [r0] + ldr r5, _08084830 + adds r0, r5 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r1, 0 + subs r0, 0x1C + cmp r0, 0x15 + bhi _08084810 + movs r1, 0x1B +_08084810: + ldr r2, _0808482C + adds r0, r3, r2 + ldrb r5, [r0] + cmp r1, r5 + bne _08084834 + bl sub_8084854 + b _08084846 + .align 2, 0 +_08084820: .4byte gDungeonGlobalData +_08084824: .4byte 0x00003a0d +_08084828: .4byte 0x0001356c +_0808482C: .4byte gUnknown_8107234 +_08084830: .4byte 0x00003a14 +_08084834: + adds r3, 0x8 + adds r4, 0x1 + ldr r0, _08084850 + cmp r4, r0 + bgt _08084846 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080847FA +_08084846: + bl sub_8097FF8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08084850: .4byte 0x000003e6 + thumb_func_end sub_80847D4 + + thumb_func_start sub_8084854 +sub_8084854: + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _08084874 + ldr r2, [r5] + movs r1, 0xCF + lsls r1, 3 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808487C + ldrb r1, [r4, 0x5] + ldr r3, _08084878 + adds r0, r2, r3 + strb r1, [r0] + b _080848C8 + .align 2, 0 +_08084874: .4byte gDungeonGlobalData +_08084878: .4byte 0x00003a0d +_0808487C: + ldrb r0, [r4, 0x4] + bl sub_8098100 + lsls r0, 24 + cmp r0, 0 + beq _08084898 + ldr r0, [r5] + ldrb r1, [r4, 0x5] + ldr r2, _08084894 + adds r0, r2 + strb r1, [r0] + b _080848C8 + .align 2, 0 +_08084894: .4byte 0x00003a0d +_08084898: + ldrb r0, [r4, 0x2] + bl sub_8098100 + lsls r0, 24 + cmp r0, 0 + beq _080848B4 + ldr r0, [r5] + ldrb r1, [r4, 0x3] + ldr r3, _080848B0 + adds r0, r3 + strb r1, [r0] + b _080848C8 + .align 2, 0 +_080848B0: .4byte 0x00003a0d +_080848B4: + ldr r0, [r5] + ldrb r1, [r4, 0x1] + ldr r2, _080848E0 + adds r0, r2 + strb r1, [r0] + ldrb r0, [r4, 0x2] + cmp r0, 0x40 + beq _080848C8 + bl sub_8097FA8 +_080848C8: + ldr r0, _080848E4 + ldr r0, [r0] + ldr r3, _080848E8 + adds r0, r3 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0 + bl sub_807E5E4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080848E0: .4byte 0x00003a0d +_080848E4: .4byte gDungeonGlobalData +_080848E8: .4byte 0x00000675 + thumb_func_end sub_8084854 + + .align 2,0 -- cgit v1.2.3