summaryrefslogtreecommitdiff
path: root/asm/pokemon_3.s
diff options
context:
space:
mode:
authorDennis <dhilhorst2000@gmail.com>2021-08-01 21:09:13 +0200
committerGitHub <noreply@github.com>2021-08-01 12:09:13 -0700
commit26e5708818765e2abaab29b6ffdfa8f01a5600b7 (patch)
tree28fe7891cad7a46da5e88f0293e2a9f855e14203 /asm/pokemon_3.s
parent645c45431b0e091234699c3706ff90d1654cfb57 (diff)
More pokemon related decomp (#48)
* add struct names * decompile SaveRecruitedPokemon * decompile ReadRecruitedPokemon * decomp anotha one * some renaming * another save function * more backup functions * sub_808E400 * only one function left in pokemon_2.s * decomp one more function * merge 2 structs
Diffstat (limited to 'asm/pokemon_3.s')
-rw-r--r--asm/pokemon_3.s833
1 files changed, 1 insertions, 832 deletions
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index f0308d7..ccf5979 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -3,838 +3,7 @@
.syntax unified
- .text
-
- thumb_func_start SaveRecruitedPokemon
-SaveRecruitedPokemon:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- adds r3, r0, 0
- adds r2, r1, 0
- add r4, sp, 0xC
- adds r0, r4, 0
- adds r1, r3, 0
- bl sub_809486C
- mov r10, r4
- mov r0, sp
- adds r0, 0x1E
- str r0, [sp, 0x20]
- add r1, sp, 0x1C
- mov r8, r1
- ldr r0, _0808EDF0
- adds r2, r0, 0
- mov r1, sp
- movs r5, 0x5
-_0808EDA6:
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _0808EDA6
- movs r0, 0x1
- negs r0, r0
- ldr r1, [sp, 0x20]
- strh r0, [r1]
- movs r5, 0
- mov r4, sp
-_0808EDC0:
- ldr r2, _0808EDF4
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r1, r0, r1
- ldrh r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0808EDF8
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0808EDE2
- strh r5, [r4]
- adds r4, 0x2
-_0808EDE2:
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _0808EDFA
- ldr r0, [sp, 0x20]
- strh r5, [r0]
- b _0808EDFA
- .align 2, 0
-_0808EDF0: .4byte 0x0000ffff
-_0808EDF4: .4byte gRecruitedPokemonRef
-_0808EDF8:
- strb r0, [r1, 0x3]
-_0808EDFA:
- mov r0, r10
- bl sub_808EFA0
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0808EDC0
- ldr r1, _0808EE34
- mov r9, r1
- mov r4, r10
- ldr r7, _0808EE38
- movs r6, 0
- movs r5, 0x3
-_0808EE16:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r6, r0
- ldr r1, _0808EE38
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0808EE3C
- movs r0, 0xFF
- mov r1, r8
- strb r0, [r1]
- b _0808EE40
- .align 2, 0
-_0808EE34: .4byte gRecruitedPokemonRef
-_0808EE38: .4byte 0x00008f88
-_0808EE3C:
- mov r0, r8
- strb r1, [r0]
-_0808EE40:
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0x1
- bl sub_809488C
- mov r0, r9
- ldr r1, [r0]
- adds r1, r7
- adds r0, r4, 0
- bl sub_808EFA0
- adds r7, 0x58
- adds r6, 0x58
- subs r5, 0x1
- cmp r5, 0
- bge _0808EE16
- mov r4, sp
- movs r5, 0x5
-_0808EE64:
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_809488C
- adds r4, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _0808EE64
- mov r0, r10
- ldr r1, [sp, 0x20]
- movs r2, 0x10
- bl sub_809488C
- mov r0, r10
- bl nullsub_102
- mov r1, r10
- ldr r0, [r1, 0x8]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SaveRecruitedPokemon
-
- thumb_func_start ReadRecruitedPokemon
-ReadRecruitedPokemon:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- movs r5, 0
- add r7, sp, 0x10
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- ldr r6, _0808EF10
- movs r4, 0
-_0808EEBE:
- ldr r1, [r6]
- adds r1, r4
- mov r0, sp
- bl sub_808F068
- adds r4, 0x58
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0808EEBE
- movs r5, 0
- adds r6, r7, 0
- ldr r7, _0808EF10
-_0808EEDA:
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_8094924
- movs r0, 0x58
- adds r4, r5, 0
- muls r4, r0
- ldr r1, _0808EF14
- adds r0, r4, r1
- ldr r1, [r7]
- adds r1, r0
- mov r0, sp
- bl sub_808F068
- ldrb r0, [r6]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0808EF18
- ldr r0, [r7]
- adds r0, r4
- ldr r2, _0808EF14
- adds r0, r2
- movs r1, 0x3
- b _0808EF20
- .align 2, 0
-_0808EF10: .4byte gRecruitedPokemonRef
-_0808EF14: .4byte 0x00008f88
-_0808EF18:
- ldr r0, [r7]
- adds r0, r4
- ldr r3, _0808EF98
- adds r0, r3
-_0808EF20:
- strh r1, [r0]
- adds r5, 0x1
- cmp r5, 0x3
- ble _0808EEDA
- mov r4, r8
- movs r6, 0xCE
- lsls r6, 1
- movs r5, 0x5
-_0808EF30:
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_8094924
- ldrh r0, [r4]
- cmp r0, r6
- bhi _0808EF56
- ldr r0, _0808EF9C
- ldr r2, [r0]
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- ldrh r1, [r2]
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r2]
-_0808EF56:
- subs r5, 0x1
- cmp r5, 0
- bge _0808EF30
- mov r0, sp
- mov r1, r8
- movs r2, 0x10
- bl sub_8094924
- mov r2, r8
- ldrh r1, [r2]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bhi _0808EF84
- ldr r0, _0808EF9C
- ldr r1, [r0]
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_0808EF84:
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808EF98: .4byte 0x00008f88
-_0808EF9C: .4byte gRecruitedPokemonRef
- thumb_func_end ReadRecruitedPokemon
-
- thumb_func_start sub_808EFA0
-sub_808EFA0:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r5, 0x3
- movs r2, 0x7
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_80902F4
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- bl sub_808F41C
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- bl sub_808F41C
- adds r1, r5, 0
- adds r1, 0x14
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x16
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x19
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1B
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x20
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x28
- adds r0, r4, 0
- bl sub_8091DE0
- adds r1, r5, 0
- adds r1, 0x2C
- adds r0, r4, 0
- bl sub_8094108
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r4, 0
- movs r2, 0x50
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808EFA0
-
- thumb_func_start sub_808F068
-sub_808F068:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x58
- bl memset
- movs r6, 0
- movs r0, 0
- strh r0, [r4]
- strb r6, [r4, 0x2]
- adds r1, r4, 0x3
- adds r0, r5, 0
- movs r2, 0x7
- bl sub_8094924
- ldrb r0, [r4, 0x3]
- cmp r0, 0
- beq _0808F098
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
-_0808F098:
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r4, 0x4
- adds r0, r5, 0
- bl sub_8090314
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r5, 0
- bl sub_808F410
- adds r1, r4, 0
- adds r1, 0x10
- adds r0, r5, 0
- bl sub_808F410
- adds r1, r4, 0
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0xA
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x16
- adds r0, r5, 0
- movs r2, 0xA
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x18
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x19
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x1B
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r5, 0
- movs r2, 0x18
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x20
- adds r0, r5, 0
- movs r2, 0x18
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r5, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x28
- adds r0, r5, 0
- bl sub_8091DC0
- adds r1, r4, 0
- adds r1, 0x2C
- adds r0, r5, 0
- bl sub_8094128
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r5, 0
- movs r2, 0x50
- bl sub_8094924
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808F068
-
- thumb_func_start sub_808F154
-sub_808F154:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- add r2, sp, 0x10
- movs r0, 0xFF
- strb r0, [r2]
- mov r1, sp
- adds r1, 0x11
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r6, r2, 0
- adds r7, r1, 0
-_0808F178:
- ldr r1, _0808F2A8
- movs r0, 0x64
- muls r0, r5
- ldr r2, _0808F2AC
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_809488C
- ldrb r0, [r4, 0x2]
- adds r1, r7, 0
- cmp r0, 0
- beq _0808F19A
- adds r1, r6, 0
-_0808F19A:
- mov r0, sp
- movs r2, 0x1
- bl sub_809488C
- adds r1, r4, 0x3
- mov r0, sp
- movs r2, 0x7
- bl sub_809488C
- adds r1, r4, 0x4
- mov r0, sp
- bl sub_80902F4
- adds r1, r4, 0
- adds r1, 0x8
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0xA
- mov r0, sp
- movs r2, 0x10
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x10
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0xE
- mov r0, sp
- movs r2, 0x9
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x10
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x12
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x14
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x15
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x16
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x17
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x18
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x1C
- mov r0, sp
- bl sub_8094184
- adds r1, r4, 0
- adds r1, 0x40
- mov r0, sp
- bl sub_8091E28
- adds r1, r4, 0
- adds r1, 0x44
- mov r0, sp
- bl sub_809449C
- adds r1, r4, 0
- adds r1, 0x48
- mov r0, sp
- bl sub_809449C
- adds r1, r4, 0
- adds r1, 0x4C
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x50
- mov r0, sp
- movs r2, 0x4
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x54
- mov r0, sp
- bl sub_808F448
- adds r1, r4, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0x50
- bl sub_809488C
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0808F296
- b _0808F178
-_0808F296:
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808F2A8: .4byte gRecruitedPokemonRef
-_0808F2AC: .4byte 0x00008df8
- thumb_func_end sub_808F154
-
- thumb_func_start sub_808F2B0
-sub_808F2B0:
- push {r4-r6,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- movs r5, 0
- add r6, sp, 0x10
-_0808F2C4:
- ldr r1, _0808F300
- movs r0, 0x64
- muls r0, r5
- ldr r2, _0808F304
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x64
- bl memset
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_8094924
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_8094924
- ldrb r0, [r6]
- movs r2, 0x1
- adds r1, r2, 0
- ands r1, r0
- cmp r1, 0
- beq _0808F308
- strb r2, [r4, 0x2]
- b _0808F30A
- .align 2, 0
-_0808F300: .4byte gRecruitedPokemonRef
-_0808F304: .4byte 0x00008df8
-_0808F308:
- strb r1, [r4, 0x2]
-_0808F30A:
- adds r1, r4, 0x3
- mov r0, sp
- movs r2, 0x7
- bl sub_8094924
- adds r1, r4, 0x4
- mov r0, sp
- bl sub_8090314
- adds r1, r4, 0
- adds r1, 0x8
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0xA
- mov r0, sp
- movs r2, 0x10
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x10
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0xE
- mov r0, sp
- movs r2, 0x9
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x10
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x12
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x14
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x15
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x16
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x17
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x18
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x1C
- mov r0, sp
- bl sub_80941FC
- adds r1, r4, 0
- adds r1, 0x40
- mov r0, sp
- bl sub_8091E00
- adds r1, r4, 0
- adds r1, 0x44
- mov r0, sp
- bl sub_809447C
- adds r1, r4, 0
- adds r1, 0x48
- mov r0, sp
- bl sub_809447C
- adds r1, r4, 0
- adds r1, 0x4C
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x50
- mov r0, sp
- movs r2, 0x4
- bl sub_8094924
- adds r1, r4, 0
- adds r1, 0x54
- mov r0, sp
- bl sub_808F428
- adds r1, r4, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0x50
- bl sub_8094924
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0808F3FE
- b _0808F2C4
-_0808F3FE:
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808F2B0
-
- thumb_func_start sub_808F410
-sub_808F410:
- push {lr}
- movs r2, 0x7
- bl sub_8094924
- pop {r0}
- bx r0
- thumb_func_end sub_808F410
-
- thumb_func_start sub_808F41C
-sub_808F41C:
- push {lr}
- movs r2, 0x7
- bl sub_809488C
- pop {r0}
- bx r0
- thumb_func_end sub_808F41C
-
- thumb_func_start sub_808F428
-sub_808F428:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0xA
- bl sub_8094924
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x5
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808F428
-
- thumb_func_start sub_808F448
-sub_808F448:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0xA
- bl sub_809488C
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x5
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808F448
+ .text
thumb_func_start sub_808F468
sub_808F468: