Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ Generated by gcc 2.9-arm-000512 for Thumb/elf
- .code 16
- .gcc2_compiled.:
- .text
- .align 2, 0
- .globl HealStatusConditions
- .type HealStatusConditions,function
- .thumb_func
- HealStatusConditions:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- add r5, r0, #0
- add r4, r2, #0
- lsl r3, r3, #0x18
- lsr r6, r3, #0x18
- mov r1, #0x37
- mov r2, #0x0
- bl GetMonData
- add r1, r0, #0
- str r1, [sp]
- and r0, r0, r4
- cmp r0, #0
- beq .L3 @cond_branch
- mvn r4, r4
- and r1, r1, r4
- str r1, [sp]
- add r0, r5, #0
- mov r1, #0x37
- mov r2, sp
- bl SetMonData
- ldr r0, .L7
- ldr r1, .L7+0x4
- add r0, r0, r1
- ldrb r1, [r0]
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq .L4 @cond_branch
- cmp r6, #0x4
- beq .L4 @cond_branch
- ldr r0, .L7+0x8
- mov r1, #0x58
- mul r1, r1, r6
- add r0, r0, #0x4c
- add r1, r1, r0
- ldr r0, [r1]
- and r0, r0, r4
- str r0, [r1]
- .L4:
- mov r0, #0x0
- b .L6
- .L8:
- .align 2, 0
- .L7:
- .word gMain
- .word 0x43d
- .word gBattleMons
- .L3:
- mov r0, #0x1
- .L6:
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe1:
- .size HealStatusConditions,.Lfe1-HealStatusConditions
- .align 2, 0
- .globl GetItemEffectParamOffset
- .type GetItemEffectParamOffset,function
- .thumb_func
- GetItemEffectParamOffset:
- push {r4, r5, r6, r7, lr}
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- mov r7, #0x6
- ldr r1, .L79
- add r0, r3, #0
- sub r0, r0, #0xd
- lsl r0, r0, #0x2
- add r0, r0, r1
- ldr r0, [r0]
- cmp r0, #0
- bne .L10 @cond_branch
- cmp r3, #0xaf
- beq .L68 @cond_branch
- .L77:
- mov r0, #0x0
- b .L67
- .L80:
- .align 2, 0
- .L79:
- .word gItemEffectTable
- .L10:
- cmp r3, #0xaf
- bne .L11 @cond_branch
- .L68:
- ldr r0, .L81
- ldrb r1, [r0]
- lsl r0, r1, #0x3
- sub r0, r0, r1
- lsl r0, r0, #0x2
- ldr r1, .L81+0x4
- add r0, r0, r1
- .L11:
- mov ip, r0
- mov r2, #0x0
- .L15:
- cmp r2, #0x4
- beq .L22 @cond_branch
- cmp r2, #0x4
- ble .L65 @cond_branch
- cmp r2, #0x5
- beq .L43 @cond_branch
- b .L14
- .L82:
- .align 2, 0
- .L81:
- .word gUnknown_02024A60
- .word gEnigmaBerries+0x8
- .L65:
- cmp r2, #0
- blt .L14 @cond_branch
- cmp r2, r4
- bne .L14 @cond_branch
- b .L77
- .L22:
- mov r0, ip
- ldrb r3, [r0, #0x4]
- mov r0, #0x20
- and r0, r0, r3
- cmp r0, #0
- beq .L23 @cond_branch
- mov r0, #0xdf
- and r3, r3, r0
- .L23:
- mov r6, #0x0
- cmp r3, #0
- beq .L14 @cond_branch
- .L26:
- mov r0, #0x1
- and r0, r0, r3
- cmp r0, #0
- beq .L27 @cond_branch
- cmp r6, #0x7
- bhi .L27 @cond_branch
- lsl r0, r6, #0x2
- ldr r1, .L83
- add r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .L84:
- .align 2, 0
- .L83:
- .word .L39
- .align 2, 0
- .align 2, 0
- .L39:
- .word .L35
- .word .L33
- .word .L29
- .word .L35
- .word .L27
- .word .L27
- .word .L27
- .word .L37
- .L29:
- mov r0, #0x10
- and r0, r0, r3
- cmp r0, #0
- beq .L35 @cond_branch
- mov r0, #0xef
- and r3, r3, r0
- .L33:
- .L35:
- cmp r2, r4
- bne .L36 @cond_branch
- add r0, r3, #0
- and r0, r0, r5
- cmp r0, #0
- bne .L75 @cond_branch
- .L36:
- add r0, r7, #0x1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- b .L27
- .L37:
- cmp r2, r4
- beq .L77 @cond_branch
- .L27:
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- lsr r3, r3, #0x1
- cmp r2, r4
- bne .L24 @cond_branch
- lsr r5, r5, #0x1
- .L24:
- cmp r3, #0
- bne .L26 @cond_branch
- b .L14
- .L43:
- mov r0, ip
- ldrb r3, [r0, #0x5]
- mov r6, #0x0
- .L78:
- cmp r3, #0
- beq .L14 @cond_branch
- mov r0, #0x1
- and r0, r0, r3
- cmp r0, #0
- beq .L47 @cond_branch
- cmp r6, #0
- blt .L47 @cond_branch
- cmp r6, #0x6
- ble .L55 @cond_branch
- cmp r6, #0x7
- beq .L57 @cond_branch
- b .L47
- .L55:
- cmp r2, r4
- bne .L56 @cond_branch
- add r0, r3, #0
- and r0, r0, r5
- cmp r0, #0
- bne .L75 @cond_branch
- .L56:
- add r0, r7, #0x1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- b .L47
- .L57:
- cmp r2, r4
- bne .LCB298
- b .L77 @long jump
- .LCB298:
- .L47:
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- lsr r3, r3, #0x1
- cmp r2, r4
- bne .L78 @cond_branch
- lsr r5, r5, #0x1
- b .L78
- .L14:
- add r2, r2, #0x1
- cmp r2, #0x5
- bgt .LCB323
- b .L15 @long jump
- .LCB323:
- .L75:
- add r0, r7, #0
- .L67:
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .Lfe2:
- .size GetItemEffectParamOffset,.Lfe2-GetItemEffectParamOffset
- .align 2, 0
- .globl sub_803F324
- .type sub_803F324,function
- .thumb_func
- sub_803F324:
- push {lr}
- ldr r2, .L86
- ldr r1, .L86+0x4
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, .L86+0x8
- ldr r2, .L86+0xc
- ldr r1, .L86+0x10
- add r0, r0, r1
- ldrb r0, [r0]
- lsl r0, r0, #0x2
- add r0, r0, r2
- ldr r1, [r0]
- add r0, r3, #0
- bl StringCopy
- ldr r0, .L86+0x14
- ldr r1, .L86+0x18
- bl StringCopy
- ldr r0, .L86+0x1c
- bl get_battle_strings_
- pop {r0}
- bx r0
- .L87:
- .align 2, 0
- .L86:
- .word gEnemyMonIndex
- .word gUnknown_02024E6C
- .word gUnknown_030041C0
- .word gUnknown_08400F58
- .word gUnknown_082082F8
- .word gUnknown_03004290
- .word gUnknown_083FFDB3
- .word gUnknown_083FFDD3
- .Lfe3:
- .size sub_803F324,.Lfe3-sub_803F324
- .align 2, 0
- .globl sub_803F378
- .type sub_803F378,function
- .thumb_func
- sub_803F378:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0xaf
- bne .L89 @cond_branch
- ldr r0, .L104
- ldr r1, .L104+0x4
- add r0, r0, r1
- ldrb r1, [r0]
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq .L90 @cond_branch
- ldr r2, .L104+0x8
- ldrb r1, [r2]
- lsl r0, r1, #0x3
- sub r0, r0, r1
- lsl r0, r0, #0x2
- ldr r1, .L104+0xc
- add r7, r0, r1
- b .L92
- .L105:
- .align 2, 0
- .L104:
- .word gMain
- .word 0x43d
- .word gUnknown_02024E6C
- .word gEnigmaBerries+0x8
- .L90:
- ldr r7, .L106
- b .L103
- .L107:
- .align 2, 0
- .L106:
- .word gSaveBlock1+0x3676
- .L89:
- ldr r1, .L108
- sub r0, r0, #0xd
- lsl r0, r0, #0x2
- add r0, r0, r1
- ldr r7, [r0]
- .L103:
- ldr r2, .L108+0x4
- .L92:
- ldr r1, .L108+0x8
- ldrb r0, [r2]
- strb r0, [r1]
- mov r5, #0x0
- ldr r0, .L108+0xc
- mov r8, r0
- mov r6, #0x0
- .L96:
- add r4, r7, r5
- ldrb r1, [r4]
- mov r0, #0xf
- and r0, r0, r1
- cmp r0, #0
- beq .L97 @cond_branch
- add r0, r6, #0
- bl sub_803F324
- .L97:
- ldrb r1, [r4]
- mov r0, #0xf0
- and r0, r0, r1
- cmp r0, #0
- beq .L95 @cond_branch
- cmp r5, #0
- beq .L99 @cond_branch
- add r0, r6, #0x1
- bl sub_803F324
- b .L95
- .L109:
- .align 2, 0
- .L108:
- .word gItemEffectTable
- .word gUnknown_02024E6C
- .word gUnknown_02024C0B
- .word gPlayerMonIndex
- .L99:
- ldr r0, .L110
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, .L110+0x4
- bl get_battle_strings_
- .L95:
- add r6, r6, #0x2
- add r5, r5, #0x1
- cmp r5, #0x2
- ble .L96 @cond_branch
- ldrb r1, [r7, #0x3]
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- beq .L102 @cond_branch
- ldr r1, .L110+0x8
- ldr r0, .L110
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, .L110+0xc
- bl get_battle_strings_
- .L102:
- ldr r0, .L110+0x10
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .L111:
- .align 2, 0
- .L110:
- .word gUnknown_02024E6C
- .word gUnknown_083FEE92
- .word gPlayerMonIndex
- .word gUnknown_083FEE5D
- .word gUnknown_020238CC
- .Lfe4:
- .size sub_803F378,.Lfe4-sub_803F378
- .align 2, 0
- .globl GetNature
- .type GetNature,function
- .thumb_func
- GetNature:
- push {lr}
- mov r1, #0x0
- mov r2, #0x0
- bl GetMonData
- mov r1, #0x19
- bl __umodsi3
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r1}
- bx r1
- .Lfe5:
- .size GetNature,.Lfe5-GetNature
- .align 2, 0
- .globl GetNatureFromPersonality
- .type GetNatureFromPersonality,function
- .thumb_func
- GetNatureFromPersonality:
- push {lr}
- mov r1, #0x19
- bl __umodsi3
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r1}
- bx r1
- .Lfe6:
- .size GetNatureFromPersonality,.Lfe6-GetNatureFromPersonality
- .align 2, 0
- .globl GetEvolutionTargetSpecies
- .type GetEvolutionTargetSpecies,function
- .thumb_func
- GetEvolutionTargetSpecies:
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, r9
- mov r5, r8
- push {r5, r6, r7}
- add sp, sp, #0xffffffec
- mov r8, r0
- lsl r1, r1, #0x18
- lsr r5, r1, #0x18
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- mov r9, r2
- mov r0, #0x0
- mov sl, r0
- mov r0, r8
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- mov r0, r8
- mov r1, #0xc
- mov r2, #0x0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- mov r1, #0x0
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- mov r0, r8
- mov r1, #0x17
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- lsr r4, r4, #0x10
- str r4, [sp, #0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, #0xaf
- bne .L115 @cond_branch
- ldr r0, .L184
- ldr r1, .L184+0x4
- add r0, r0, r1
- ldrb r0, [r0]
- b .L116
- .L185:
- .align 2, 0
- .L184:
- .word gSaveBlock1
- .word 0x3688
- .L115:
- bl ItemId_GetHoldEffect
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- .L116:
- cmp r0, #0x26
- bne .L117 @cond_branch
- cmp r5, #0x3
- beq .L117 @cond_branch
- mov r0, #0x0
- b .L176
- .L117:
- cmp r5, #0x1
- bne .LCB676
- b .L153 @long jump
- .LCB676:
- cmp r5, #0x1
- bgt .L175 @cond_branch
- cmp r5, #0
- beq .L119 @cond_branch
- b .L118
- .L175:
- cmp r5, #0x3
- ble .LCB685
- b .L118 @long jump
- .LCB685:
- mov r2, #0x0
- str r2, [sp, #0x4]
- ldr r3, .L186
- lsl r6, r7, #0x2
- b .L170
- .L187:
- .align 2, 0
- .L186:
- .word gEvolutionTable
- .L119:
- mov r0, r8
- mov r1, #0x38
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r9, r0
- mov r0, r8
- mov r1, #0x20
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x8]
- mov r0, #0x0
- str r0, [sp, #0x4]
- lsl r6, r7, #0x2
- .L123:
- ldr r1, .L188
- ldr r0, [sp, #0x4]
- lsl r2, r0, #0x3
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r2, r0
- add r0, r0, r1
- ldrh r0, [r0]
- sub r0, r0, #0x1
- add r3, r1, #0
- add r4, r2, #0
- cmp r0, #0xe
- bls .LCB740
- b .L122 @long jump
- .LCB740:
- lsl r0, r0, #0x2
- ldr r1, .L188+0x4
- add r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .L189:
- .align 2, 0
- .L188:
- .word gEvolutionTable
- .word .L150
- .align 2, 0
- .align 2, 0
- .L150:
- .word .L125
- .word .L127
- .word .L129
- .word .L131
- .word .L122
- .word .L122
- .word .L122
- .word .L133
- .word .L136
- .word .L139
- .word .L142
- .word .L144
- .word .L146
- .word .L122
- .word .L148
- .L125:
- ldr r1, [sp, #0x8]
- cmp r1, #0xdb
- bhi .LCB762
- b .L122 @long jump
- .LCB762:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r0, r0, r3
- b .L178
- .L127:
- bl RtcCalcLocalTime
- ldr r0, .L190
- ldrb r0, [r0, #0x2]
- sub r0, r0, #0xc
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0xb
- bls .LCB780
- b .L122 @long jump
- .LCB780:
- ldr r2, [sp, #0x8]
- cmp r2, #0xdb
- bhi .LCB783
- b .L122 @long jump
- .LCB783:
- b .L179
- .L191:
- .align 2, 0
- .L190:
- .word gLocalTime
- .L129:
- bl RtcCalcLocalTime
- ldr r0, .L192
- ldrb r0, [r0, #0x2]
- cmp r0, #0xb
- bls .LCB801
- b .L122 @long jump
- .LCB801:
- ldr r0, [sp, #0x8]
- cmp r0, #0xdb
- bhi .LCB804
- b .L122 @long jump
- .LCB804:
- .L179:
- ldr r1, .L192+0x4
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r0, r0, r1
- .L178:
- ldrh r0, [r0, #0x4]
- mov sl, r0
- b .L122
- .L193:
- .align 2, 0
- .L192:
- .word gLocalTime
- .word gEvolutionTable
- .L131:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r1, r0, r3
- ldrh r0, [r1, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- b .L180
- .L133:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r5, r0, r3
- ldrh r0, [r5, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- mov r0, r8
- mov r1, #0x3b
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- mov r0, r8
- mov r1, #0x3c
- mov r2, #0x0
- bl GetMonData
- cmp r4, r0
- bls .L122 @cond_branch
- b .L181
- .L136:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r5, r0, r3
- ldrh r0, [r5, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- mov r0, r8
- mov r1, #0x3b
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- mov r0, r8
- mov r1, #0x3c
- mov r2, #0x0
- bl GetMonData
- cmp r4, r0
- bne .L122 @cond_branch
- b .L181
- .L139:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r5, r0, r3
- ldrh r0, [r5, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- mov r0, r8
- mov r1, #0x3b
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- mov r0, r8
- mov r1, #0x3c
- mov r2, #0x0
- bl GetMonData
- cmp r4, r0
- bcs .L122 @cond_branch
- .L181:
- ldrh r5, [r5, #0x4]
- mov sl, r5
- b .L122
- .L142:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r4, r0, r3
- ldrh r0, [r4, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- ldr r0, [sp, #0x10]
- mov r1, #0xa
- bl __umodsi3
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0x4
- bhi .L122 @cond_branch
- b .L182
- .L144:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r4, r0, r3
- ldrh r0, [r4, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- ldr r0, [sp, #0x10]
- mov r1, #0xa
- bl __umodsi3
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0x4
- bls .L122 @cond_branch
- .L182:
- ldrh r4, [r4, #0x4]
- mov sl, r4
- b .L122
- .L146:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r1, r0, r3
- ldrh r0, [r1, #0x2]
- cmp r0, r9
- bhi .L122 @cond_branch
- b .L180
- .L148:
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r0, r4, r0
- add r1, r0, r3
- ldrh r0, [r1, #0x2]
- ldr r2, [sp, #0xc]
- cmp r0, r2
- bhi .L122 @cond_branch
- .L180:
- ldrh r1, [r1, #0x4]
- mov sl, r1
- .L122:
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- str r0, [sp, #0x4]
- cmp r0, #0x4
- bgt .LCB1028
- b .L123 @long jump
- .LCB1028:
- b .L118
- .L153:
- lsl r6, r7, #0x2
- ldr r1, .L194
- add r0, r6, r7
- lsl r0, r0, #0x3
- add r4, r0, r1
- mov r5, sp
- mov r1, #0x4
- str r1, [sp, #0x4]
- .L157:
- ldrh r0, [r4]
- cmp r0, #0x5
- beq .L183 @cond_branch
- cmp r0, #0x6
- bne .L156 @cond_branch
- ldrh r0, [r4, #0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne .L156 @cond_branch
- mov r0, #0x0
- strh r0, [r5]
- mov r0, r8
- mov r1, #0xc
- mov r2, sp
- bl SetMonData
- .L183:
- ldrh r2, [r4, #0x4]
- mov sl, r2
- .L156:
- add r4, r4, #0x8
- ldr r0, [sp, #0x4]
- sub r0, r0, #0x1
- str r0, [sp, #0x4]
- cmp r0, #0
- bge .L157 @cond_branch
- b .L118
- .L195:
- .align 2, 0
- .L194:
- .word gEvolutionTable
- .L177:
- ldrh r1, [r1, #0x4]
- mov sl, r1
- b .L118
- .L170:
- add r0, r6, r7
- ldr r1, [sp, #0x4]
- add r0, r0, r1
- lsl r0, r0, #0x3
- add r1, r0, r3
- ldrh r0, [r1]
- cmp r0, #0x7
- bne .L169 @cond_branch
- ldrh r0, [r1, #0x2]
- cmp r0, r9
- beq .L177 @cond_branch
- .L169:
- ldr r2, [sp, #0x4]
- add r2, r2, #0x1
- str r2, [sp, #0x4]
- cmp r2, #0x4
- ble .L170 @cond_branch
- .L118:
- mov r0, sl
- .L176:
- add sp, sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov r9, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .Lfe7:
- .size GetEvolutionTargetSpecies,.Lfe7-GetEvolutionTargetSpecies
- .align 2, 0
- .globl HoennPokedexNumToSpecies
- .type HoennPokedexNumToSpecies,function
- .thumb_func
- HoennPokedexNumToSpecies:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- cmp r2, #0
- beq .L203 @cond_branch
- mov r1, #0x0
- ldr r3, .L205
- ldrh r0, [r3]
- cmp r0, r2
- beq .L199 @cond_branch
- mov r4, #0xcd
- lsl r4, r4, #0x1
- .L200:
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, r4
- bhi .L199 @cond_branch
- lsl r0, r1, #0x1
- add r0, r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne .L200 @cond_branch
- .L199:
- ldr r0, .L205+0x4
- cmp r1, r0
- beq .L203 @cond_branch
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- b .L204
- .L206:
- .align 2, 0
- .L205:
- .word gSpeciesToHoennPokedexNum
- .word 0x19b
- .L203:
- mov r0, #0x0
- .L204:
- pop {r4}
- pop {r1}
- bx r1
- .Lfe8:
- .size HoennPokedexNumToSpecies,.Lfe8-HoennPokedexNumToSpecies
- .align 2, 0
- .globl NationalPokedexNumToSpecies
- .type NationalPokedexNumToSpecies,function
- .thumb_func
- NationalPokedexNumToSpecies:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- cmp r2, #0
- beq .L214 @cond_branch
- mov r1, #0x0
- ldr r3, .L216
- ldrh r0, [r3]
- cmp r0, r2
- beq .L210 @cond_branch
- mov r4, #0xcd
- lsl r4, r4, #0x1
- .L211:
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, r4
- bhi .L210 @cond_branch
- lsl r0, r1, #0x1
- add r0, r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne .L211 @cond_branch
- .L210:
- ldr r0, .L216+0x4
- cmp r1, r0
- beq .L214 @cond_branch
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- b .L215
- .L217:
- .align 2, 0
- .L216:
- .word gSpeciesToNationalPokedexNum
- .word 0x19b
- .L214:
- mov r0, #0x0
- .L215:
- pop {r4}
- pop {r1}
- bx r1
- .Lfe9:
- .size NationalPokedexNumToSpecies,.Lfe9-NationalPokedexNumToSpecies
- .align 2, 0
- .globl NationalToHoennOrder
- .type NationalToHoennOrder,function
- .thumb_func
- NationalToHoennOrder:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- cmp r2, #0
- beq .L225 @cond_branch
- mov r1, #0x0
- ldr r3, .L227
- ldrh r0, [r3]
- cmp r0, r2
- beq .L221 @cond_branch
- mov r4, #0xcd
- lsl r4, r4, #0x1
- .L222:
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, r4
- bhi .L221 @cond_branch
- lsl r0, r1, #0x1
- add r0, r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne .L222 @cond_branch
- .L221:
- ldr r0, .L227+0x4
- cmp r1, r0
- beq .L225 @cond_branch
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- b .L226
- .L228:
- .align 2, 0
- .L227:
- .word gHoennToNationalOrder
- .word 0x19b
- .L225:
- mov r0, #0x0
- .L226:
- pop {r4}
- pop {r1}
- bx r1
- .Lfe10:
- .size NationalToHoennOrder,.Lfe10-NationalToHoennOrder
- .align 2, 0
- .globl SpeciesToNationalPokedexNum
- .type SpeciesToNationalPokedexNum,function
- .thumb_func
- SpeciesToNationalPokedexNum:
- push {lr}
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, #0
- beq .L230 @cond_branch
- ldr r0, .L232
- sub r1, r1, #0x1
- lsl r1, r1, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- b .L231
- .L233:
- .align 2, 0
- .L232:
- .word gSpeciesToNationalPokedexNum
- .L230:
- mov r0, #0x0
- .L231:
- pop {r1}
- bx r1
- .Lfe11:
- .size SpeciesToNationalPokedexNum,.Lfe11-SpeciesToNationalPokedexNum
- .align 2, 0
- .globl SpeciesToHoennPokedexNum
- .type SpeciesToHoennPokedexNum,function
- .thumb_func
- SpeciesToHoennPokedexNum:
- push {lr}
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, #0
- beq .L235 @cond_branch
- ldr r0, .L237
- sub r1, r1, #0x1
- lsl r1, r1, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- b .L236
- .L238:
- .align 2, 0
- .L237:
- .word gSpeciesToHoennPokedexNum
- .L235:
- mov r0, #0x0
- .L236:
- pop {r1}
- bx r1
- .Lfe12:
- .size SpeciesToHoennPokedexNum,.Lfe12-SpeciesToHoennPokedexNum
- .align 2, 0
- .globl HoennToNationalOrder
- .type HoennToNationalOrder,function
- .thumb_func
- HoennToNationalOrder:
- push {lr}
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- cmp r1, #0
- beq .L240 @cond_branch
- ldr r0, .L242
- sub r1, r1, #0x1
- lsl r1, r1, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- b .L241
- .L243:
- .align 2, 0
- .L242:
- .word gHoennToNationalOrder
- .L240:
- mov r0, #0x0
- .L241:
- pop {r1}
- bx r1
- .Lfe13:
- .size HoennToNationalOrder,.Lfe13-HoennToNationalOrder
- .align 2, 0
- .globl SpeciesToCryId
- .type SpeciesToCryId,function
- .thumb_func
- SpeciesToCryId:
- push {lr}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- add r1, r0, #0
- cmp r0, #0xfa
- bls .L247 @cond_branch
- ldr r0, .L248
- cmp r1, r0
- bls .L246 @cond_branch
- ldr r0, .L248+0x4
- ldr r2, .L248+0x8
- add r1, r1, r2
- lsl r1, r1, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- b .L247
- .L249:
- .align 2, 0
- .L248:
- .word 0x113
- .word gSpeciesIdToCryId
- .word 0xfffffeec
- .L246:
- mov r0, #0xc8
- .L247:
- pop {r1}
- bx r1
- .Lfe14:
- .size SpeciesToCryId,.Lfe14-SpeciesToCryId
- .align 2, 0
- .globl unref_sub_803F938
- .type unref_sub_803F938,function
- .thumb_func
- unref_sub_803F938:
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, r9
- mov r5, r8
- push {r5, r6, r7}
- add sp, sp, #0xfffffff8
- add r5, r1, #0
- mov sl, r2
- lsl r0, r0, #0x10
- mov r1, #0x9a
- lsl r1, r1, #0x11
- cmp r0, r1
- bne .L251 @cond_branch
- ldr r1, .L275
- ldr r0, [r1]
- cmp sl, r0
- beq .L251 @cond_branch
- ldr r0, [r1, #0x8]
- cmp sl, r0
- beq .L251 @cond_branch
- mov r6, #0x0
- .L255:
- lsl r3, r6, #0x3
- add r3, r3, r6
- lsl r3, r3, #0x2
- ldr r0, .L275+0x4
- add r4, r3, r0
- ldrb r1, [r4]
- add r1, r1, #0xf8
- mov r2, #0xf
- add r0, r5, #0
- and r0, r0, r2
- add r1, r1, r0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov ip, r1
- ldrb r1, [r4, #0x1]
- add r1, r1, #0xf8
- mov r0, #0xf0
- and r0, r0, r5
- lsr r0, r0, #0x4
- add r1, r1, r0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov r2, #0x0
- lsr r5, r5, #0x8
- str r5, [sp, #0x4]
- add r6, r6, #0x1
- str r6, [sp]
- mov r9, r3
- .L259:
- lsl r0, r2, #0x1
- add r0, r0, r9
- ldr r3, .L275+0x8
- add r0, r0, r3
- ldrh r3, [r0]
- mov r4, ip
- add r0, r4, #0
- add r0, r0, #0x10
- add r7, r1, #0x1
- add r2, r2, #0x1
- mov r8, r2
- cmp r4, r0
- bge .L261 @cond_branch
- lsr r0, r1, #0x3
- lsl r6, r0, #0x8
- mov r0, #0x7
- and r1, r1, r0
- lsl r5, r1, #0x2
- .L263:
- add r0, r4, #0
- cmp r4, #0
- bge .L264 @cond_branch
- add r0, r4, #0x7
- .L264:
- asr r0, r0, #0x3
- lsl r2, r0, #0x5
- add r2, r2, sl
- lsl r0, r0, #0x3
- sub r0, r4, r0
- lsr r1, r0, #0x1f
- add r0, r0, r1
- asr r0, r0, #0x1
- add r2, r2, r0
- add r2, r2, r6
- add r2, r2, r5
- mov r1, #0x1
- add r0, r3, #0
- and r0, r0, r1
- cmp r0, #0
- beq .L266 @cond_branch
- add r0, r4, #0
- and r0, r0, r1
- cmp r0, #0
- beq .L267 @cond_branch
- ldrb r1, [r2]
- mov r0, #0xf0
- and r0, r0, r1
- sub r0, r0, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x20
- bhi .L266 @cond_branch
- add r0, r1, #0
- add r0, r0, #0x40
- b .L274
- .L276:
- .align 2, 0
- .L275:
- .word gUnknown_081FAF4C
- .word gSpindaSpotGraphics
- .word gSpindaSpotGraphics+0x2
- .L267:
- ldrb r1, [r2]
- mov r0, #0xf
- and r0, r0, r1
- sub r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x2
- bhi .L266 @cond_branch
- add r0, r1, #0x4
- .L274:
- strb r0, [r2]
- .L266:
- asr r3, r3, #0x1
- add r4, r4, #0x1
- mov r0, ip
- add r0, r0, #0x10
- cmp r4, r0
- blt .L263 @cond_branch
- .L261:
- lsl r0, r7, #0x18
- lsr r1, r0, #0x18
- mov r2, r8
- cmp r2, #0xf
- ble .L259 @cond_branch
- ldr r5, [sp, #0x4]
- ldr r6, [sp]
- cmp r6, #0x3
- ble .L255 @cond_branch
- .L251:
- add sp, sp, #0x8
- pop {r3, r4, r5}
- mov r8, r3
- mov r9, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .Lfe15:
- .size unref_sub_803F938,.Lfe15-unref_sub_803F938
- .align 2, 0
- .globl DrawSpindaSpots
- .type DrawSpindaSpots,function
- .thumb_func
- DrawSpindaSpots:
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, r9
- mov r5, r8
- push {r5, r6, r7}
- add sp, sp, #0xfffffff8
- add r5, r1, #0
- str r2, [sp]
- lsl r0, r0, #0x10
- lsl r3, r3, #0x18
- lsr r3, r3, #0x18
- mov r1, #0x9a
- lsl r1, r1, #0x11
- cmp r0, r1
- bne .L278 @cond_branch
- cmp r3, #0
- beq .L278 @cond_branch
- mov r6, #0x0
- .L282:
- lsl r3, r6, #0x3
- add r3, r3, r6
- lsl r3, r3, #0x2
- ldr r0, .L302
- add r4, r3, r0
- ldrb r1, [r4]
- add r1, r1, #0xf8
- mov r2, #0xf
- add r0, r5, #0
- and r0, r0, r2
- add r1, r1, r0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov ip, r1
- ldrb r1, [r4, #0x1]
- add r1, r1, #0xf8
- mov r0, #0xf0
- and r0, r0, r5
- lsr r0, r0, #0x4
- add r1, r1, r0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov r2, #0x0
- lsr r5, r5, #0x8
- str r5, [sp, #0x4]
- add r6, r6, #0x1
- mov sl, r6
- mov r9, r3
- .L286:
- lsl r0, r2, #0x1
- add r0, r0, r9
- ldr r3, .L302+0x4
- add r0, r0, r3
- ldrh r3, [r0]
- mov r4, ip
- add r0, r4, #0
- add r0, r0, #0x10
- add r7, r1, #0x1
- add r2, r2, #0x1
- mov r8, r2
- cmp r4, r0
- bge .L288 @cond_branch
- lsr r0, r1, #0x3
- lsl r6, r0, #0x8
- mov r0, #0x7
- and r1, r1, r0
- lsl r5, r1, #0x2
- .L290:
- add r0, r4, #0
- cmp r4, #0
- bge .L291 @cond_branch
- add r0, r4, #0x7
- .L291:
- asr r0, r0, #0x3
- lsl r2, r0, #0x5
- ldr r1, [sp]
- add r2, r1, r2
- lsl r0, r0, #0x3
- sub r0, r4, r0
- lsr r1, r0, #0x1f
- add r0, r0, r1
- asr r0, r0, #0x1
- add r2, r2, r0
- add r2, r2, r6
- add r2, r2, r5
- mov r1, #0x1
- add r0, r3, #0
- and r0, r0, r1
- cmp r0, #0
- beq .L293 @cond_branch
- add r0, r4, #0
- and r0, r0, r1
- cmp r0, #0
- beq .L294 @cond_branch
- ldrb r1, [r2]
- mov r0, #0xf0
- and r0, r0, r1
- sub r0, r0, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x20
- bhi .L293 @cond_branch
- add r0, r1, #0
- add r0, r0, #0x40
- b .L301
- .L303:
- .align 2, 0
- .L302:
- .word gSpindaSpotGraphics
- .word gSpindaSpotGraphics+0x2
- .L294:
- ldrb r1, [r2]
- mov r0, #0xf
- and r0, r0, r1
- sub r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x2
- bhi .L293 @cond_branch
- add r0, r1, #0x4
- .L301:
- strb r0, [r2]
- .L293:
- asr r3, r3, #0x1
- add r4, r4, #0x1
- mov r0, ip
- add r0, r0, #0x10
- cmp r4, r0
- blt .L290 @cond_branch
- .L288:
- lsl r0, r7, #0x18
- lsr r1, r0, #0x18
- mov r2, r8
- cmp r2, #0xf
- ble .L286 @cond_branch
- ldr r5, [sp, #0x4]
- mov r6, sl
- cmp r6, #0x3
- ble .L282 @cond_branch
- .L278:
- add sp, sp, #0x8
- pop {r3, r4, r5}
- mov r8, r3
- mov r9, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .Lfe16:
- .size DrawSpindaSpots,.Lfe16-DrawSpindaSpots
- .align 2, 0
- .globl EvolutionRenameMon
- .type EvolutionRenameMon,function
- .thumb_func
- EvolutionRenameMon:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- add r7, r0, #0
- add r4, r1, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- mov r8, r2
- ldr r5, .L306
- mov r1, #0x2
- add r2, r5, #0
- bl GetMonData
- mov r6, #0xb
- mov r0, r4
- mul r0, r0, r6
- ldr r4, .L306+0x4
- add r0, r0, r4
- add r1, r5, #0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, #0
- bne .L305 @cond_branch
- mov r2, r8
- mul r2, r2, r6
- add r2, r2, r4
- add r0, r7, #0
- mov r1, #0x2
- bl SetMonData
- .L305:
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .L307:
- .align 2, 0
- .L306:
- .word gStringVar1
- .word gSpeciesNames
- .Lfe17:
- .size EvolutionRenameMon,.Lfe17-EvolutionRenameMon
- .align 2, 0
- .globl sub_803FBBC
- .type sub_803FBBC,function
- .thumb_func
- sub_803FBBC:
- push {r4, r5, lr}
- mov r5, #0x0
- ldr r4, .L317
- bl GetMultiplayerId
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r1, r0, #0x3
- sub r1, r1, r0
- lsl r1, r1, #0x2
- add r1, r1, r4
- ldrh r0, [r1, #0x18]
- cmp r0, #0x2
- bgt .L316 @cond_branch
- cmp r0, #0x1
- bge .L313 @cond_branch
- cmp r0, #0
- beq .L311 @cond_branch
- b .L309
- .L318:
- .align 2, 0
- .L317:
- .word gLinkPlayers
- .L316:
- cmp r0, #0x3
- bne .L309 @cond_branch
- .L311:
- mov r5, #0x0
- b .L309
- .L313:
- mov r5, #0x1
- .L309:
- add r0, r5, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .Lfe18:
- .size sub_803FBBC,.Lfe18-sub_803FBBC
- .align 2, 0
- .globl sub_803FBFC
- .type sub_803FBFC,function
- .thumb_func
- sub_803FBFC:
- push {lr}
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r3, #0x0
- ldr r2, .L328
- lsl r1, r0, #0x3
- sub r1, r1, r0
- lsl r1, r1, #0x2
- add r1, r1, r2
- ldrh r0, [r1, #0x18]
- cmp r0, #0x2
- bgt .L327 @cond_branch
- cmp r0, #0x1
- bge .L324 @cond_branch
- cmp r0, #0
- beq .L322 @cond_branch
- b .L320
- .L329:
- .align 2, 0
- .L328:
- .word gLinkPlayers
- .L327:
- cmp r0, #0x3
- bne .L320 @cond_branch
- .L322:
- mov r3, #0x0
- b .L320
- .L324:
- mov r3, #0x1
- .L320:
- add r0, r3, #0
- pop {r1}
- bx r1
- .Lfe19:
- .size sub_803FBFC,.Lfe19-sub_803FBFC
- .align 2, 0
- .globl sub_803FC34
- .type sub_803FC34,function
- .thumb_func
- sub_803FC34:
- push {lr}
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- mov r2, #0x0
- ldr r1, .L338
- b .L337
- .L339:
- .align 2, 0
- .L338:
- .word gLinkPlayers
- .L333:
- add r1, r1, #0x1c
- add r2, r2, #0x1
- cmp r2, #0x3
- bgt .L332 @cond_branch
- .L337:
- ldrh r0, [r1, #0x18]
- cmp r0, r3
- bne .L333 @cond_branch
- .L332:
- add r0, r2, #0
- pop {r1}
- bx r1
- .Lfe20:
- .size sub_803FC34,.Lfe20-sub_803FC34
- .align 2, 0
- .globl sub_803FC58
- .type sub_803FC58,function
- .thumb_func
- sub_803FC58:
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- ldr r2, .L341
- lsl r1, r0, #0x2
- add r1, r1, r0
- lsl r1, r1, #0x3
- add r1, r1, r2
- ldrb r1, [r1, #0x2]
- mov r0, #0x7f
- and r0, r0, r1
- bx lr
- .L342:
- .align 2, 0
- .L341:
- .word gTrainers
- .Lfe21:
- .size sub_803FC58,.Lfe21-sub_803FC58
- .align 2, 0
- .globl nature_stat_mod
- .type nature_stat_mod,function
- .thumb_func
- nature_stat_mod:
- push {r4, r5, lr}
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- lsl r1, r1, #0x10
- lsr r3, r1, #0x10
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- mov r0, #0xff
- lsl r0, r0, #0x18
- add r2, r2, r0
- lsr r2, r2, #0x18
- cmp r2, #0x4
- bls .L344 @cond_branch
- add r0, r3, #0
- b .L350
- .L344:
- ldr r0, .L352
- lsl r1, r4, #0x2
- add r1, r1, r4
- sub r1, r1, #0x1
- add r1, r5, r1
- add r1, r1, r0
- ldrb r1, [r1, #0]
- lsl r1, r1, #24
- asr r1, r1, #24
- mov r0, #0x1
- neg r0, r0
- cmp r1, r0
- beq .L347 @cond_branch
- cmp r1, #0x1
- bne .L345 @cond_branch
- mov r0, #0x6e
- b .L351
- .L353:
- .align 2, 0
- .L352:
- .word gNatureStatTable
- .L347:
- mov r0, #0x5a
- .L351:
- mul r0, r0, r3
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x64
- bl __udivsi3
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- b .L350
- .L345:
- add r0, r3, #0
- .L350:
- pop {r4, r5}
- pop {r1}
- bx r1
- .Lfe22:
- .size nature_stat_mod,.Lfe22-nature_stat_mod
- .align 2, 0
- .globl AdjustFriendship
- .type AdjustFriendship,function
- .thumb_func
- AdjustFriendship:
- push {r4, r5, r6, r7, lr}
- add sp, sp, #0xfffffffc
- add r7, r0, #0
- lsl r1, r1, #0x18
- lsr r5, r1, #0x18
- mov r1, #0x41
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r7, #0
- mov r1, #0xc
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0xaf
- bne .L355 @cond_branch
- ldr r0, .L371
- ldr r1, .L371+0x4
- add r0, r0, r1
- ldrb r1, [r0]
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq .L356 @cond_branch
- ldr r0, .L371+0x8
- ldrb r4, [r0, #0x7]
- b .L358
- .L372:
- .align 2, 0
- .L371:
- .word gMain
- .word 0x43d
- .word gEnigmaBerries
- .L356:
- ldr r0, .L373
- ldr r1, .L373+0x4
- add r0, r0, r1
- ldrb r4, [r0]
- b .L358
- .L374:
- .align 2, 0
- .L373:
- .word gSaveBlock1
- .word 0x3688
- .L355:
- bl ItemId_GetHoldEffect
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- .L358:
- cmp r6, #0
- bne .LCB2262
- b .L359 @long jump
- .LCB2262:
- mov r0, #0xce
- lsl r0, r0, #0x1
- cmp r6, r0
- bne .LCB2268
- b .L359 @long jump
- .LCB2268:
- mov r6, #0x0
- add r0, r7, #0
- mov r1, #0x20
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, sp
- strh r0, [r1]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- cmp r0, #0x63
- ble .L360 @cond_branch
- mov r6, #0x1
- .L360:
- cmp r0, #0xc7
- ble .L361 @cond_branch
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- .L361:
- cmp r5, #0x5
- bne .L363 @cond_branch
- bl Random
- mov r1, #0x1
- and r1, r1, r0
- cmp r1, #0
- bne .L359 @cond_branch
- .L363:
- cmp r5, #0x3
- bne .L364 @cond_branch
- ldr r0, .L375
- ldrh r1, [r0]
- mov r0, #0x8
- and r0, r0, r1
- cmp r0, #0
- beq .L359 @cond_branch
- ldr r2, .L375+0x4
- ldr r0, .L375+0x8
- ldrh r1, [r0]
- lsl r0, r1, #0x2
- add r0, r0, r1
- lsl r0, r0, #0x3
- add r0, r0, r2
- ldrb r1, [r0, #0x1]
- add r0, r1, #0
- sub r0, r0, #0x18
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x1
- bls .L364 @cond_branch
- cmp r1, #0x20
- bne .L359 @cond_branch
- .L364:
- ldr r1, .L375+0xc
- lsl r0, r5, #0x1
- add r0, r0, r5
- add r0, r6, r0
- add r0, r0, r1
- ldrb r2, [r0]
- mov r1, #0x0
- ldrsb r1, [r0, r1]
- cmp r1, #0
- ble .L365 @cond_branch
- cmp r4, #0x1b
- bne .L365 @cond_branch
- mov r0, #0x96
- mul r0, r0, r1
- mov r1, #0x64
- bl __divsi3
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- .L365:
- lsl r2, r2, #0x18
- asr r2, r2, #0x18
- mov r0, sp
- mov r1, #0x0
- ldrsh r0, [r0, r1]
- add r0, r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, #0
- ble .L366 @cond_branch
- add r0, r7, #0
- mov r1, #0x26
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0xb
- bne .L367 @cond_branch
- mov r0, sp
- mov r1, #0x0
- ldrsh r0, [r0, r1]
- add r0, r0, #0x1
- mov r1, sp
- strh r0, [r1]
- .L367:
- add r0, r7, #0
- mov r1, #0x23
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- bl sav1_map_get_name
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r4, r0
- bne .L366 @cond_branch
- mov r0, sp
- mov r1, #0x0
- ldrsh r0, [r0, r1]
- add r0, r0, #0x1
- mov r1, sp
- strh r0, [r1]
- .L366:
- mov r0, sp
- mov r1, #0x0
- ldrsh r0, [r0, r1]
- cmp r0, #0
- bge .L369 @cond_branch
- mov r1, #0x0
- mov r0, sp
- strh r1, [r0]
- .L369:
- mov r0, sp
- mov r1, #0x0
- ldrsh r0, [r0, r1]
- cmp r0, #0xff
- ble .L370 @cond_branch
- mov r1, #0xff
- mov r0, sp
- strh r1, [r0]
- .L370:
- add r0, r7, #0
- mov r1, #0x20
- mov r2, sp
- bl SetMonData
- .L359:
- add sp, sp, #0x4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .L376:
- .align 2, 0
- .L375:
- .word gBattleTypeFlags
- .word gTrainers
- .word gTrainerBattleOpponent
- .word gUnknown_082082FE
- .Lfe23:
- .size AdjustFriendship,.Lfe23-AdjustFriendship
- .align 2, 0
- .globl MonGainEVs
- .type MonGainEVs,function
- .thumb_func
- MonGainEVs:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- add sp, sp, #0xfffffff8
- mov r8, r0
- lsl r1, r1, #0x10
- lsr r5, r1, #0x10
- mov r4, #0x0
- mov r7, #0x0
- mov r6, #0x0
- .L381:
- add r1, r6, #0
- add r1, r1, #0x1a
- mov r0, r8
- mov r2, #0x0
- bl GetMonData
- mov r2, sp
- add r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- add r0, r7, r0
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- add r6, r6, #0x1
- cmp r6, #0x5
- ble .L381 @cond_branch
- mov r6, #0x0
- b .L407
- .L387:
- mov r0, r8
- mov r1, #0x0
- bl CheckPartyHasHadPokerus
- lsl r0, r0, #0x18
- mov r2, #0x1
- cmp r0, #0
- beq .L388 @cond_branch
- mov r2, #0x2
- .L388:
- cmp r6, #0x5
- bhi .L390 @cond_branch
- lsl r0, r6, #0x2
- ldr r1, .L411
- add r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .L412:
- .align 2, 0
- .L411:
- .word .L397
- .align 2, 0
- .align 2, 0
- .L397:
- .word .L391
- .word .L392
- .word .L393
- .word .L394
- .word .L395
- .word .L396
- .L391:
- ldr r0, .L413
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xa]
- lsl r0, r0, #0x1e
- b .L408
- .L414:
- .align 2, 0
- .L413:
- .word gBaseStats
- .L392:
- ldr r0, .L415
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xa]
- b .L409
- .L416:
- .align 2, 0
- .L415:
- .word gBaseStats
- .L393:
- ldr r0, .L417
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xa]
- lsl r0, r0, #0x1a
- b .L408
- .L418:
- .align 2, 0
- .L417:
- .word gBaseStats
- .L394:
- ldr r0, .L419
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xa]
- lsr r0, r0, #0x6
- b .L410
- .L420:
- .align 2, 0
- .L419:
- .word gBaseStats
- .L395:
- ldr r0, .L421
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xb]
- lsl r0, r0, #0x1e
- b .L408
- .L422:
- .align 2, 0
- .L421:
- .word gBaseStats
- .L396:
- ldr r0, .L423
- lsl r1, r5, #0x3
- sub r1, r1, r5
- lsl r1, r1, #0x2
- add r1, r1, r0
- ldrb r0, [r1, #0xb]
- .L409:
- lsl r0, r0, #0x1c
- .L408:
- lsr r0, r0, #0x1e
- .L410:
- mov r4, r0
- mul r4, r4, r2
- .L390:
- mov r0, r8
- mov r1, #0xc
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0xaf
- bne .L399 @cond_branch
- ldr r0, .L423+0x4
- ldr r1, .L423+0x8
- add r0, r0, r1
- ldrb r1, [r0]
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq .L400 @cond_branch
- ldr r0, .L423+0xc
- ldrb r0, [r0, #0x7]
- b .L402
- .L424:
- .align 2, 0
- .L423:
- .word gBaseStats
- .word gMain
- .word 0x43d
- .word gEnigmaBerries
- .L400:
- ldr r0, .L425
- ldr r2, .L425+0x4
- add r0, r0, r2
- ldrb r0, [r0]
- b .L402
- .L426:
- .align 2, 0
- .L425:
- .word gSaveBlock1
- .word 0x3688
- .L399:
- bl ItemId_GetHoldEffect
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- .L402:
- cmp r0, #0x18
- bne .L403 @cond_branch
- lsl r0, r4, #0x11
- lsr r4, r0, #0x10
- .L403:
- lsl r0, r4, #0x10
- asr r2, r0, #0x10
- add r1, r7, r2
- mov r0, #0xff
- lsl r0, r0, #0x1
- cmp r1, r0
- ble .L404 @cond_branch
- add r0, r2, r0
- add r1, r7, r4
- sub r0, r0, r1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- .L404:
- mov r0, sp
- add r2, r0, r6
- ldrb r3, [r2]
- lsl r0, r4, #0x10
- asr r1, r0, #0x10
- add r0, r3, r1
- cmp r0, #0xff
- ble .L405 @cond_branch
- add r0, r1, #0
- add r0, r0, #0xff
- add r1, r3, r4
- sub r0, r0, r1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- .L405:
- add r0, r3, r4
- strb r0, [r2]
- add r0, r7, r4
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- add r1, r6, #0
- add r1, r1, #0x1a
- mov r0, r8
- bl SetMonData
- add r6, r6, #0x1
- cmp r6, #0x5
- bgt .L384 @cond_branch
- .L407:
- ldr r0, .L427
- cmp r7, r0
- bhi .LCB2764
- b .L387 @long jump
- .LCB2764:
- .L384:
- add sp, sp, #0x8
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .L428:
- .align 2, 0
- .L427:
- .word 0x1fd
- .Lfe24:
- .size MonGainEVs,.Lfe24-MonGainEVs
- .align 2, 0
- .globl GetMonEVCount
- .type GetMonEVCount,function
- .thumb_func
- GetMonEVCount:
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r5, #0x0
- mov r4, #0x0
- .L433:
- add r1, r4, #0
- add r1, r1, #0x1a
- add r0, r6, #0
- mov r2, #0x0
- bl GetMonData
- add r0, r5, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r4, r4, #0x1
- cmp r4, #0x5
- ble .L433 @cond_branch
- add r0, r5, #0
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe25:
- .size GetMonEVCount,.Lfe25-GetMonEVCount
- .align 2, 0
- .globl RandomlyGivePartyPokerus
- .type RandomlyGivePartyPokerus,function
- .thumb_func
- RandomlyGivePartyPokerus:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- add r6, r0, #0
- bl Random
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r0, #0x80
- lsl r0, r0, #0x7
- cmp r5, r0
- beq .L441 @cond_branch
- mov r0, #0x80
- lsl r0, r0, #0x8
- cmp r5, r0
- beq .L441 @cond_branch
- mov r0, #0xc0
- lsl r0, r0, #0x8
- cmp r5, r0
- bne .L436 @cond_branch
- .L441:
- bl Random
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x6
- bl __umodsi3
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r0, #0x64
- mul r0, r0, r5
- add r4, r6, r0
- add r0, r4, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- beq .L441 @cond_branch
- add r0, r4, #0
- mov r1, #0x2d
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- bne .L441 @cond_branch
- ldr r1, .L455
- lsl r0, r5, #0x2
- add r0, r0, r1
- ldrb r1, [r0]
- add r0, r6, #0
- bl CheckPartyHasHadPokerus
- lsl r0, r0, #0x18
- cmp r0, #0
- bne .L436 @cond_branch
- mov r4, sp
- .L449:
- bl Random
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- strb r0, [r4]
- cmp r0, #0
- beq .L449 @cond_branch
- mov r0, #0xf0
- mov r1, sp
- ldrb r1, [r1]
- and r0, r0, r1
- cmp r0, #0
- beq .L454 @cond_branch
- mov r0, #0x7
- and r1, r1, r0
- mov r0, sp
- strb r1, [r0]
- .L454:
- mov r0, sp
- ldrb r0, [r0]
- lsl r1, r0, #0x4
- orr r0, r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, sp
- strb r0, [r1]
- mov r1, #0xf3
- and r1, r1, r0
- mov r0, sp
- strb r1, [r0]
- add r1, r1, #0x1
- strb r1, [r0]
- mov r0, #0x64
- mul r0, r0, r5
- add r0, r6, r0
- mov r1, #0x22
- mov r2, sp
- bl SetMonData
- .L436:
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .L456:
- .align 2, 0
- .L455:
- .word gBitTable
- .Lfe26:
- .size RandomlyGivePartyPokerus,.Lfe26-RandomlyGivePartyPokerus
- .align 2, 0
- .globl CheckPartyPokerus
- .type CheckPartyPokerus,function
- .thumb_func
- CheckPartyPokerus:
- push {r4, r5, r6, r7, lr}
- add sp, sp, #0xfffffffc
- add r7, r0, #0
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- mov r3, #0x0
- mov r6, #0x1
- mov r5, #0x0
- cmp r4, #0
- beq .L458 @cond_branch
- .L459:
- mov r0, #0x1
- and r0, r0, r4
- cmp r0, #0
- beq .L462 @cond_branch
- mov r0, #0x64
- mul r0, r0, r3
- add r0, r7, r0
- mov r1, #0x22
- mov r2, #0x0
- str r3, [sp]
- bl GetMonData
- mov r1, #0xf
- and r1, r1, r0
- ldr r3, [sp]
- cmp r1, #0
- beq .L462 @cond_branch
- orr r5, r5, r6
- lsl r0, r5, #0x18
- lsr r5, r0, #0x18
- .L462:
- add r3, r3, #0x1
- lsl r6, r6, #0x1
- lsr r4, r4, #0x1
- cmp r4, #0
- bne .L459 @cond_branch
- b .L465
- .L458:
- add r0, r7, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- mov r1, #0xf
- and r1, r1, r0
- cmp r1, #0
- beq .L465 @cond_branch
- mov r5, #0x1
- .L465:
- add r0, r5, #0
- add sp, sp, #0x4
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .Lfe27:
- .size CheckPartyPokerus,.Lfe27-CheckPartyPokerus
- .align 2, 0
- .globl CheckPartyHasHadPokerus
- .type CheckPartyHasHadPokerus,function
- .thumb_func
- CheckPartyHasHadPokerus:
- push {r4, r5, r6, r7, lr}
- add sp, sp, #0xfffffffc
- add r7, r0, #0
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- mov r3, #0x0
- mov r6, #0x1
- mov r5, #0x0
- cmp r4, #0
- beq .L468 @cond_branch
- .L469:
- mov r0, #0x1
- and r0, r0, r4
- cmp r0, #0
- beq .L472 @cond_branch
- mov r0, #0x64
- mul r0, r0, r3
- add r0, r7, r0
- mov r1, #0x22
- mov r2, #0x0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, #0
- beq .L472 @cond_branch
- orr r5, r5, r6
- lsl r0, r5, #0x18
- lsr r5, r0, #0x18
- .L472:
- add r3, r3, #0x1
- lsl r6, r6, #0x1
- lsr r4, r4, #0x1
- cmp r4, #0
- bne .L469 @cond_branch
- b .L475
- .L468:
- add r0, r7, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- beq .L475 @cond_branch
- mov r5, #0x1
- .L475:
- add r0, r5, #0
- add sp, sp, #0x4
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .Lfe28:
- .size CheckPartyHasHadPokerus,.Lfe28-CheckPartyHasHadPokerus
- .align 2, 0
- .globl UpdatePartyPokerusTime
- .type UpdatePartyPokerusTime,function
- .thumb_func
- UpdatePartyPokerusTime:
- push {r4, r5, r6, r7, lr}
- add sp, sp, #0xfffffffc
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- mov r5, #0x0
- mov r6, sp
- .L481:
- mov r0, #0x64
- mov r1, r5
- mul r1, r1, r0
- ldr r0, .L489
- add r4, r1, r0
- add r0, r4, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- beq .L480 @cond_branch
- add r0, r4, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- strb r0, [r6]
- mov r1, #0xf
- add r2, r0, #0
- and r1, r1, r2
- cmp r1, #0
- beq .L480 @cond_branch
- cmp r1, r7
- bcc .L485 @cond_branch
- cmp r7, #0x4
- bls .L484 @cond_branch
- .L485:
- mov r0, #0xf0
- and r0, r0, r2
- b .L488
- .L490:
- .align 2, 0
- .L489:
- .word gPlayerParty
- .L484:
- sub r0, r2, r7
- .L488:
- strb r0, [r6]
- mov r0, #0x64
- mul r0, r0, r5
- ldr r1, .L491
- add r0, r0, r1
- mov r1, #0x22
- mov r2, sp
- bl SetMonData
- .L480:
- add r5, r5, #0x1
- cmp r5, #0x5
- ble .L481 @cond_branch
- add sp, sp, #0x4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .L492:
- .align 2, 0
- .L491:
- .word gPlayerParty
- .Lfe29:
- .size UpdatePartyPokerusTime,.Lfe29-UpdatePartyPokerusTime
- .align 2, 0
- .globl PartySpreadPokerus
- .type PartySpreadPokerus,function
- .thumb_func
- PartySpreadPokerus:
- push {r4, r5, r6, r7, lr}
- add sp, sp, #0xfffffffc
- add r7, r0, #0
- bl Random
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x3
- bl __umodsi3
- lsl r0, r0, #0x10
- cmp r0, #0
- bne .L494 @cond_branch
- mov r5, #0x0
- .L498:
- mov r0, #0x64
- mov r6, r5
- mul r6, r6, r0
- add r4, r7, r6
- add r0, r4, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- beq .L497 @cond_branch
- add r0, r4, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, sp
- strb r1, [r0]
- cmp r1, #0
- beq .L497 @cond_branch
- mov r0, #0xf
- and r0, r0, r1
- cmp r0, #0
- beq .L497 @cond_branch
- cmp r5, #0
- beq .L502 @cond_branch
- add r0, r6, #0
- sub r0, r0, #0x64
- add r4, r7, r0
- add r0, r4, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- mov r1, #0xf0
- and r1, r1, r0
- cmp r1, #0
- bne .L502 @cond_branch
- add r0, r4, #0
- mov r1, #0x22
- mov r2, sp
- bl SetMonData
- .L502:
- cmp r5, #0x5
- beq .L497 @cond_branch
- mov r0, #0x64
- mul r0, r0, r5
- add r0, r0, #0x64
- add r4, r7, r0
- add r0, r4, #0
- mov r1, #0x22
- mov r2, #0x0
- bl GetMonData
- mov r1, #0xf0
- and r1, r1, r0
- cmp r1, #0
- bne .L497 @cond_branch
- add r0, r4, #0
- mov r1, #0x22
- mov r2, sp
- bl SetMonData
- add r5, r5, #0x1
- .L497:
- add r5, r5, #0x1
- cmp r5, #0x5
- ble .L498 @cond_branch
- .L494:
- add sp, sp, #0x4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .Lfe30:
- .size PartySpreadPokerus,.Lfe30-PartySpreadPokerus
- .align 2, 0
- .globl TryIncrementMonLevel
- .type TryIncrementMonLevel,function
- .thumb_func
- TryIncrementMonLevel:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- add r6, r0, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r6, #0
- mov r1, #0x38
- mov r2, #0x0
- bl GetMonData
- add r0, r0, #0x1
- mov r1, sp
- strb r0, [r1]
- add r0, r6, #0
- mov r1, #0x19
- mov r2, #0x0
- bl GetMonData
- ldr r5, .L509
- mov r1, sp
- ldrb r2, [r1]
- lsl r2, r2, #0x2
- ldr r3, .L509+0x4
- lsl r1, r4, #0x3
- sub r1, r1, r4
- lsl r1, r1, #0x2
- add r1, r1, r3
- ldrb r3, [r1, #0x13]
- mov r1, #0xca
- lsl r1, r1, #0x1
- mul r1, r1, r3
- add r2, r2, r1
- add r2, r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi .L506 @cond_branch
- mov r0, #0x0
- b .L508
- .L510:
- .align 2, 0
- .L509:
- .word gExperienceTables
- .word gBaseStats
- .L506:
- add r0, r6, #0
- mov r1, #0x38
- mov r2, sp
- bl SetMonData
- mov r0, #0x1
- .L508:
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe31:
- .size TryIncrementMonLevel,.Lfe31-TryIncrementMonLevel
- .align 2, 0
- .globl CanMonLearnTMHM
- .type CanMonLearnTMHM,function
- .thumb_func
- CanMonLearnTMHM:
- push {r4, r5, lr}
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- add r5, r4, #0
- mov r1, #0x41
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r3, r1, #0
- mov r0, #0xce
- lsl r0, r0, #0x1
- cmp r1, r0
- bne .L512 @cond_branch
- mov r0, #0x0
- b .L516
- .L512:
- cmp r4, #0x1f
- bls .L514 @cond_branch
- add r0, r4, #0
- sub r0, r0, #0x20
- mov r2, #0x1
- lsl r2, r2, r0
- ldr r0, .L518
- lsl r1, r1, #0x3
- add r0, r0, #0x4
- add r1, r1, r0
- ldr r0, [r1]
- and r0, r0, r2
- b .L517
- .L519:
- .align 2, 0
- .L518:
- .word gTMHMLearnsets
- .L514:
- mov r1, #0x1
- lsl r1, r1, r5
- ldr r2, .L520
- lsl r0, r3, #0x3
- add r0, r0, r2
- ldr r0, [r0]
- and r0, r0, r1
- .L517:
- .L516:
- pop {r4, r5}
- pop {r1}
- bx r1
- .L521:
- .align 2, 0
- .L520:
- .word gTMHMLearnsets
- .Lfe32:
- .size CanMonLearnTMHM,.Lfe32-CanMonLearnTMHM
- .align 2, 0
- .globl GetMoveRelearnerMoves
- .type GetMoveRelearnerMoves,function
- .thumb_func
- GetMoveRelearnerMoves:
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, r9
- mov r5, r8
- push {r5, r6, r7}
- add sp, sp, #0xffffffe8
- add r6, r0, #0
- str r1, [sp, #0x8]
- mov r0, #0x0
- mov sl, r0
- add r0, r6, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- add r0, r6, #0
- mov r1, #0x38
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- mov r5, #0x0
- mov r4, sp
- .L526:
- add r1, r5, #0
- add r1, r1, #0xd
- add r0, r6, #0
- mov r2, #0x0
- bl GetMonData
- strh r0, [r4]
- add r4, r4, #0x2
- add r5, r5, #0x1
- cmp r5, #0x3
- ble .L526 @cond_branch
- mov r5, #0x0
- ldr r6, .L549
- lsl r1, r7, #0x2
- add r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, .L549+0x4
- str r1, [sp, #0x14]
- cmp r0, r4
- beq .L529 @cond_branch
- mov r9, r2
- str r3, [sp, #0x10]
- .L532:
- lsl r2, r5, #0x1
- ldr r1, [sp, #0x10]
- add r0, r2, r1
- ldrh r3, [r0]
- mov r0, #0xfe
- lsl r0, r0, #0x8
- and r0, r0, r3
- ldr r4, [sp, #0xc]
- lsl r1, r4, #0x9
- add r7, r2, #0
- add r5, r5, #0x1
- mov ip, r5
- cmp r0, r1
- bgt .L530 @cond_branch
- mov r4, #0x0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, .L549+0x8
- and r0, r0, r3
- cmp r1, r0
- beq .L535 @cond_branch
- ldr r0, [sp, #0x14]
- ldr r1, .L549
- add r6, r0, r1
- ldr r2, .L549+0x8
- mov r8, r2
- mov r3, sp
- add r5, r7, #0
- .L536:
- add r3, r3, #0x2
- add r4, r4, #0x1
- cmp r4, #0x3
- bgt .L535 @cond_branch
- ldr r0, [r6]
- add r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- and r0, r0, r1
- cmp r2, r0
- bne .L536 @cond_branch
- .L535:
- cmp r4, #0x4
- bne .L530 @cond_branch
- mov r4, #0x0
- cmp r4, sl
- bge .L542 @cond_branch
- mov r1, r9
- ldr r0, [r1]
- add r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, #0x8]
- ldrh r2, [r0]
- ldr r0, .L549+0x8
- and r0, r0, r1
- cmp r2, r0
- beq .L542 @cond_branch
- ldr r1, [sp, #0x14]
- ldr r2, .L549
- add r6, r1, r2
- ldr r0, .L549+0x8
- mov r8, r0
- ldr r3, [sp, #0x8]
- add r5, r7, #0
- .L543:
- add r3, r3, #0x2
- add r4, r4, #0x1
- cmp r4, sl
- bge .L542 @cond_branch
- ldr r0, [r6]
- add r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- and r0, r0, r1
- cmp r2, r0
- bne .L543 @cond_branch
- .L542:
- cmp r4, sl
- bne .L530 @cond_branch
- mov r0, sl
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov sl, r0
- lsl r2, r4, #0x1
- ldr r1, [sp, #0x8]
- add r2, r2, r1
- mov r4, r9
- ldr r0, [r4]
- add r0, r7, r0
- ldrh r1, [r0]
- ldr r0, .L549+0x8
- and r0, r0, r1
- strh r0, [r2]
- .L530:
- mov r5, ip
- cmp r5, #0x13
- bgt .L529 @cond_branch
- mov r1, r9
- ldr r0, [r1]
- lsl r1, r5, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- ldr r2, .L549+0x4
- cmp r0, r2
- bne .L532 @cond_branch
- .L529:
- mov r0, sl
- add sp, sp, #0x18
- pop {r3, r4, r5}
- mov r8, r3
- mov r9, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .L550:
- .align 2, 0
- .L549:
- .word gLevelUpLearnsets
- .word 0xffff
- .word 0x1ff
- .Lfe33:
- .size GetMoveRelearnerMoves,.Lfe33-GetMoveRelearnerMoves
- .align 2, 0
- .globl GetLevelUpMovesBySpecies
- .type GetLevelUpMovesBySpecies,function
- .thumb_func
- GetLevelUpMovesBySpecies:
- push {r4, r5, r6, r7, lr}
- add r6, r1, #0
- lsl r0, r0, #0x10
- mov r5, #0x0
- mov r4, #0x0
- ldr r1, .L558
- lsr r0, r0, #0xe
- add r0, r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, .L558+0x4
- cmp r0, r1
- beq .L553 @cond_branch
- ldr r0, .L558+0x8
- mov ip, r0
- add r7, r1, #0
- add r3, r2, #0
- .L555:
- add r1, r5, #0
- add r0, r1, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- lsl r1, r1, #0x1
- add r1, r1, r6
- ldrh r2, [r3]
- mov r0, ip
- and r0, r0, r2
- strh r0, [r1]
- add r3, r3, #0x2
- add r4, r4, #0x1
- cmp r4, #0x13
- bgt .L553 @cond_branch
- ldrh r0, [r3]
- cmp r0, r7
- bne .L555 @cond_branch
- .L553:
- add r0, r5, #0
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .L559:
- .align 2, 0
- .L558:
- .word gLevelUpLearnsets
- .word 0xffff
- .word 0x1ff
- .Lfe34:
- .size GetLevelUpMovesBySpecies,.Lfe34-GetLevelUpMovesBySpecies
- .align 2, 0
- .globl sub_8040574
- .type sub_8040574,function
- .thumb_func
- sub_8040574:
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, r9
- mov r5, r8
- push {r5, r6, r7}
- add sp, sp, #0xffffffc4
- add r6, r0, #0
- mov r0, #0x0
- mov sl, r0
- add r0, r6, #0
- mov r1, #0x41
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r6, #0
- mov r1, #0x38
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x30]
- mov r0, #0xce
- lsl r0, r0, #0x1
- cmp r4, r0
- bne .L561 @cond_branch
- mov r0, #0x0
- b .L588
- .L561:
- mov r5, #0x0
- lsl r4, r4, #0x2
- str r4, [sp, #0x38]
- mov r4, sp
- .L565:
- add r1, r5, #0
- add r1, r1, #0xd
- add r0, r6, #0
- mov r2, #0x0
- bl GetMonData
- strh r0, [r4]
- add r4, r4, #0x2
- add r5, r5, #0x1
- cmp r5, #0x3
- ble .L565 @cond_branch
- mov r5, #0x0
- ldr r3, .L589
- ldr r2, [sp, #0x38]
- add r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, .L589+0x4
- cmp r0, r2
- beq .L568 @cond_branch
- mov r9, r1
- mov r4, sp
- add r4, r4, #0x8
- str r4, [sp, #0x34]
- .L571:
- mov r1, r9
- ldr r0, [r1]
- lsl r2, r5, #0x1
- add r0, r2, r0
- ldrh r3, [r0]
- mov r0, #0xfe
- lsl r0, r0, #0x8
- and r0, r0, r3
- ldr r4, [sp, #0x30]
- lsl r1, r4, #0x9
- add r7, r2, #0
- add r5, r5, #0x1
- mov ip, r5
- cmp r0, r1
- bgt .L569 @cond_branch
- mov r4, #0x0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, .L589+0x8
- and r0, r0, r3
- cmp r1, r0
- beq .L574 @cond_branch
- ldr r0, [sp, #0x38]
- ldr r1, .L589
- add r6, r0, r1
- ldr r2, .L589+0x8
- mov r8, r2
- mov r3, sp
- add r5, r7, #0
- .L575:
- add r3, r3, #0x2
- add r4, r4, #0x1
- cmp r4, #0x3
- bgt .L574 @cond_branch
- ldr r0, [r6]
- add r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- and r0, r0, r1
- cmp r2, r0
- bne .L575 @cond_branch
- .L574:
- cmp r4, #0x4
- bne .L569 @cond_branch
- mov r4, #0x0
- cmp r4, sl
- bge .L581 @cond_branch
- mov r1, r9
- ldr r0, [r1]
- add r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, #0x34]
- ldrh r2, [r0]
- ldr r0, .L589+0x8
- and r0, r0, r1
- add r1, sp, #0x8
- cmp r2, r0
- beq .L581 @cond_branch
- ldr r2, [sp, #0x38]
- ldr r0, .L589
- add r6, r2, r0
- ldr r2, .L589+0x8
- mov r8, r2
- add r3, r1, #0
- add r5, r7, #0
- .L582:
- add r3, r3, #0x2
- add r4, r4, #0x1
- cmp r4, sl
- bge .L581 @cond_branch
- ldr r0, [r6]
- add r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- and r0, r0, r1
- cmp r2, r0
- bne .L582 @cond_branch
- .L581:
- cmp r4, sl
- bne .L569 @cond_branch
- mov r0, sl
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov sl, r0
- lsl r2, r4, #0x1
- ldr r4, [sp, #0x34]
- add r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- add r0, r7, r0
- ldrh r1, [r0]
- ldr r0, .L589+0x8
- and r0, r0, r1
- strh r0, [r2]
- .L569:
- mov r5, ip
- cmp r5, #0x13
- bgt .L568 @cond_branch
- mov r2, r9
- ldr r0, [r2]
- lsl r1, r5, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- ldr r4, .L589+0x4
- cmp r0, r4
- bne .L571 @cond_branch
- .L568:
- mov r0, sl
- .L588:
- add sp, sp, #0x3c
- pop {r3, r4, r5}
- mov r8, r3
- mov r9, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .L590:
- .align 2, 0
- .L589:
- .word gLevelUpLearnsets
- .word 0xffff
- .word 0x1ff
- .Lfe35:
- .size sub_8040574,.Lfe35-sub_8040574
- .align 2, 0
- .globl SpeciesToPokedexNum
- .type SpeciesToPokedexNum,function
- .thumb_func
- SpeciesToPokedexNum:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- bl IsNationalPokedexEnabled
- cmp r0, #0
- beq .L592 @cond_branch
- add r0, r4, #0
- bl SpeciesToNationalPokedexNum
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- b .L595
- .L592:
- add r0, r4, #0
- bl SpeciesToHoennPokedexNum
- add r4, r0, #0
- cmp r4, #0xca
- bls .L594 @cond_branch
- ldr r0, .L596
- b .L595
- .L597:
- .align 2, 0
- .L596:
- .word 0xffff
- .L594:
- add r0, r4, #0
- .L595:
- pop {r4}
- pop {r1}
- bx r1
- .Lfe36:
- .size SpeciesToPokedexNum,.Lfe36-SpeciesToPokedexNum
- .align 2, 0
- .globl ClearBattleMonForms
- .type ClearBattleMonForms,function
- .thumb_func
- ClearBattleMonForms:
- push {lr}
- ldr r1, .L604
- mov r2, #0x0
- add r0, r1, #0x3
- .L602:
- strb r2, [r0]
- sub r0, r0, #0x1
- cmp r0, r1
- bge .L602 @cond_branch
- pop {r0}
- bx r0
- .L605:
- .align 2, 0
- .L604:
- .word gBattleMonForms
- .Lfe37:
- .size ClearBattleMonForms,.Lfe37-ClearBattleMonForms
- .align 2, 0
- .globl sub_8040728
- .type sub_8040728,function
- .thumb_func
- sub_8040728:
- push {lr}
- ldr r0, .L627
- ldrh r1, [r0]
- mov r0, #0x80
- lsl r0, r0, #0x5
- and r0, r0, r1
- cmp r0, #0
- beq .L607 @cond_branch
- ldr r0, .L627+0x4
- b .L625
- .L628:
- .align 2, 0
- .L627:
- .word gBattleTypeFlags
- .word 0x1cf
- .L607:
- mov r0, #0x80
- lsl r0, r0, #0x7
- and r0, r0, r1
- cmp r0, #0
- beq .L608 @cond_branch
- mov r0, #0xe7
- lsl r0, r0, #0x1
- b .L625
- .L608:
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq .LCB4205
- b .L623 @long jump
- .LCB4205:
- mov r0, #0x8
- and r0, r0, r1
- cmp r0, #0
- bne .LCB4211
- b .L610 @long jump
- .LCB4211:
- ldr r3, .L629
- ldr r2, .L629+0x4
- ldrh r1, [r2]
- lsl r0, r1, #0x2
- add r0, r0, r1
- lsl r0, r0, #0x3
- add r0, r0, r3
- ldrb r0, [r0, #0x1]
- sub r0, r0, #0x2
- cmp r0, #0x31
- bls .LCB4224
- b .L623 @long jump
- .LCB4224:
- lsl r0, r0, #0x2
- ldr r1, .L629+0x8
- add r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .L630:
- .align 2, 0
- .L629:
- .word gTrainers
- .word gTrainerBattleOpponent
- .word .L624
- .align 2, 0
- .align 2, 0
- .L624:
- .word .L613
- .word .L617
- .word .L617
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L622
- .word .L618
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L619
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L623
- .word .L620
- .word .L623
- .word .L623
- .word .L613
- .word .L617
- .word .L617
- .L613:
- mov r0, #0xe9
- lsl r0, r0, #0x1
- b .L625
- .L617:
- mov r0, #0xe5
- lsl r0, r0, #0x1
- b .L625
- .L618:
- mov r0, #0xe6
- lsl r0, r0, #0x1
- b .L625
- .L619:
- ldr r0, .L631
- b .L625
- .L632:
- .align 2, 0
- .L631:
- .word 0x1cd
- .L620:
- ldrh r1, [r2]
- lsl r0, r1, #0x2
- add r0, r0, r1
- lsl r0, r0, #0x3
- ldr r1, .L633
- add r0, r0, r1
- ldr r1, .L633+0x4
- bl StringCompare
- cmp r0, #0
- beq .L623 @cond_branch
- mov r0, #0xe8
- lsl r0, r0, #0x1
- b .L625
- .L634:
- .align 2, 0
- .L633:
- .word gTrainers+0x4
- .word BattleText_Wally
- .L622:
- ldr r0, .L635
- b .L625
- .L636:
- .align 2, 0
- .L635:
- .word 0x1d1
- .L623:
- ldr r0, .L637
- b .L625
- .L638:
- .align 2, 0
- .L637:
- .word 0x1cb
- .L610:
- ldr r0, .L639
- .L625:
- pop {r1}
- bx r1
- .L640:
- .align 2, 0
- .L639:
- .word 0x1c9
- .Lfe38:
- .size sub_8040728,.Lfe38-sub_8040728
- .align 2, 0
- .globl sub_80408BC
- .type sub_80408BC,function
- .thumb_func
- sub_80408BC:
- push {lr}
- bl ResetMapMusic
- bl m4aMPlayAllStop
- bl sub_8040728
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl PlayBGM
- pop {r0}
- bx r0
- .Lfe39:
- .size sub_80408BC,.Lfe39-sub_80408BC
- .align 2, 0
- .globl current_map_music_set__default_for_battle
- .type current_map_music_set__default_for_battle,function
- .thumb_func
- current_map_music_set__default_for_battle:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- bl ResetMapMusic
- bl m4aMPlayAllStop
- cmp r4, #0
- beq .L643 @cond_branch
- add r0, r4, #0
- bl PlayNewMapMusic
- b .L644
- .L643:
- bl sub_8040728
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl PlayNewMapMusic
- .L644:
- pop {r4}
- pop {r0}
- bx r0
- .Lfe40:
- .size current_map_music_set__default_for_battle,.Lfe40-current_map_music_set__default_for_battle
- .align 2, 0
- .globl pokemon_get_pal
- .type pokemon_get_pal,function
- .thumb_func
- pokemon_get_pal:
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x41
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r5, #0
- mov r1, #0x1
- mov r2, #0x0
- bl GetMonData
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0x0
- mov r2, #0x0
- bl GetMonData
- add r2, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl species_and_otid_get_pal
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe41:
- .size pokemon_get_pal,.Lfe41-pokemon_get_pal
- .align 2, 0
- .globl species_and_otid_get_pal
- .type species_and_otid_get_pal,function
- .thumb_func
- species_and_otid_get_pal:
- push {r4, r5, lr}
- add r3, r2, #0
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r5, r4, #0
- mov r0, #0xce
- lsl r0, r0, #0x1
- cmp r4, r0
- bls .L647 @cond_branch
- ldr r0, .L653
- ldr r0, [r0]
- b .L651
- .L654:
- .align 2, 0
- .L653:
- .word gMonPaletteTable
- .L647:
- lsr r0, r1, #0x10
- ldr r2, .L655
- and r1, r1, r2
- eor r0, r0, r1
- lsr r1, r3, #0x10
- eor r0, r0, r1
- and r3, r3, r2
- eor r0, r0, r3
- cmp r0, #0x7
- bls .L648 @cond_branch
- ldr r0, .L655+0x4
- lsl r1, r4, #0x3
- b .L652
- .L656:
- .align 2, 0
- .L655:
- .word 0xffff
- .word gMonPaletteTable
- .L648:
- ldr r0, .L657
- lsl r1, r5, #0x3
- .L652:
- add r1, r1, r0
- ldr r0, [r1]
- .L651:
- pop {r4, r5}
- pop {r1}
- bx r1
- .L658:
- .align 2, 0
- .L657:
- .word gMonShinyPaletteTable
- .Lfe42:
- .size species_and_otid_get_pal,.Lfe42-species_and_otid_get_pal
- .align 2, 0
- .globl sub_8040990
- .type sub_8040990,function
- .thumb_func
- sub_8040990:
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x41
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r5, #0
- mov r1, #0x1
- mov r2, #0x0
- bl GetMonData
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0x0
- mov r2, #0x0
- bl GetMonData
- add r2, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl sub_80409C8
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe43:
- .size sub_8040990,.Lfe43-sub_8040990
- .align 2, 0
- .globl sub_80409C8
- .type sub_80409C8,function
- .thumb_func
- sub_80409C8:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- lsr r0, r1, #0x10
- ldr r3, .L666
- and r1, r1, r3
- eor r0, r0, r1
- lsr r1, r2, #0x10
- eor r0, r0, r1
- and r2, r2, r3
- eor r0, r0, r2
- cmp r0, #0x7
- bls .L661 @cond_branch
- lsl r0, r4, #0x3
- ldr r1, .L666+0x4
- b .L665
- .L667:
- .align 2, 0
- .L666:
- .word 0xffff
- .word gMonPaletteTable
- .L661:
- lsl r0, r4, #0x3
- ldr r1, .L668
- .L665:
- add r0, r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .L669:
- .align 2, 0
- .L668:
- .word gMonShinyPaletteTable
- .Lfe44:
- .size sub_80409C8,.Lfe44-sub_80409C8
- .align 2, 0
- .globl IsHMMove2
- .type IsHMMove2,function
- .thumb_func
- IsHMMove2:
- push {r4, lr}
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- ldr r2, .L677
- ldrh r0, [r2]
- ldr r1, .L677+0x4
- cmp r0, r1
- beq .L672 @cond_branch
- add r4, r1, #0
- add r1, r2, #0
- .L673:
- ldrh r0, [r2]
- add r1, r1, #0x2
- add r2, r2, #0x2
- cmp r0, r3
- bne .L671 @cond_branch
- mov r0, #0x1
- b .L676
- .L678:
- .align 2, 0
- .L677:
- .word gHMMoves
- .word 0xffff
- .L671:
- ldrh r0, [r1]
- cmp r0, r4
- bne .L673 @cond_branch
- .L672:
- mov r0, #0x0
- .L676:
- pop {r4}
- pop {r1}
- bx r1
- .Lfe45:
- .size IsHMMove2,.Lfe45-IsHMMove2
- .align 2, 0
- .globl sub_8040A3C
- .type sub_8040A3C,function
- .thumb_func
- sub_8040A3C:
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- ldr r2, .L680
- lsl r1, r0, #0x3
- sub r1, r1, r0
- lsl r1, r1, #0x2
- add r1, r1, r2
- ldrb r0, [r1, #0x19]
- lsr r0, r0, #0x7
- bx lr
- .L681:
- .align 2, 0
- .L680:
- .word gBaseStats
- .Lfe46:
- .size sub_8040A3C,.Lfe46-sub_8040A3C
- .align 2, 0
- .globl sub_8040A54
- .type sub_8040A54,function
- .thumb_func
- sub_8040A54:
- push {r4, lr}
- lsl r4, r1, #0x18
- lsr r4, r4, #0x18
- bl GetNature
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- ldr r2, .L683
- lsl r1, r0, #0x2
- add r1, r1, r0
- add r1, r1, r4
- add r1, r1, r2
- mov r0, #0x0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .L684:
- .align 2, 0
- .L683:
- .word gUnknown_083F7E28
- .Lfe47:
- .size sub_8040A54,.Lfe47-sub_8040A54
- .align 2, 0
- .globl sub_8040A7C
- .type sub_8040A7C,function
- .thumb_func
- sub_8040A7C:
- push {r4, lr}
- lsl r4, r1, #0x18
- lsr r4, r4, #0x18
- bl GetNatureFromPersonality
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- ldr r2, .L686
- lsl r1, r0, #0x2
- add r1, r1, r0
- add r1, r1, r4
- add r1, r1, r2
- mov r0, #0x0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .L687:
- .align 2, 0
- .L686:
- .word gUnknown_083F7E28
- .Lfe48:
- .size sub_8040A7C,.Lfe48-sub_8040A7C
- .align 2, 0
- .globl IsTradedMon
- .type IsTradedMon,function
- .thumb_func
- IsTradedMon:
- push {r4, lr}
- add sp, sp, #0xfffffff8
- add r4, r0, #0
- mov r1, #0x7
- mov r2, sp
- bl GetMonData
- add r0, r4, #0
- mov r1, #0x1
- mov r2, #0x0
- bl GetMonData
- mov r1, sp
- bl IsOtherTrainer
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add sp, sp, #0x8
- pop {r4}
- pop {r1}
- bx r1
- .Lfe49:
- .size IsTradedMon,.Lfe49-IsTradedMon
- .align 2, 0
- .globl IsOtherTrainer
- .type IsOtherTrainer,function
- .thumb_func
- IsOtherTrainer:
- push {r4, r5, lr}
- add r5, r1, #0
- ldr r3, .L699
- ldrb r2, [r3, #0xa]
- ldrb r1, [r3, #0xb]
- lsl r1, r1, #0x8
- orr r2, r2, r1
- ldrb r1, [r3, #0xc]
- lsl r1, r1, #0x10
- orr r2, r2, r1
- ldrb r1, [r3, #0xd]
- lsl r1, r1, #0x18
- orr r2, r2, r1
- cmp r0, r2
- bne .L690 @cond_branch
- mov r4, #0x0
- ldrb r0, [r5]
- cmp r0, #0xff
- beq .L692 @cond_branch
- add r2, r5, #0
- .L694:
- add r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne .L698 @cond_branch
- add r2, r2, #0x1
- add r4, r4, #0x1
- ldrb r0, [r2]
- cmp r0, #0xff
- bne .L694 @cond_branch
- .L692:
- mov r0, #0x0
- b .L697
- .L700:
- .align 2, 0
- .L699:
- .word gSaveBlock2
- .L698:
- .L690:
- mov r0, #0x1
- .L697:
- pop {r4, r5}
- pop {r1}
- bx r1
- .Lfe50:
- .size IsOtherTrainer,.Lfe50-IsOtherTrainer
- .align 2, 0
- .globl MonRestorePP
- .type MonRestorePP,function
- .thumb_func
- MonRestorePP:
- push {lr}
- bl BoxMonRestorePP
- pop {r0}
- bx r0
- .Lfe51:
- .size MonRestorePP,.Lfe51-MonRestorePP
- .align 2, 0
- .globl BoxMonRestorePP
- .type BoxMonRestorePP,function
- .thumb_func
- BoxMonRestorePP:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- add r5, r0, #0
- mov r6, #0x0
- .L706:
- add r4, r6, #0
- add r4, r4, #0xd
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0
- beq .L705 @cond_branch
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x0
- bl GetBoxMonData
- add r4, r0, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r5, #0
- mov r1, #0x15
- mov r2, #0x0
- bl GetBoxMonData
- add r1, r0, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r2, r6, #0x18
- lsr r2, r2, #0x18
- add r0, r4, #0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- add r1, r6, #0
- add r1, r1, #0x11
- add r0, r5, #0
- mov r2, sp
- bl SetBoxMonData
- .L705:
- add r6, r6, #0x1
- cmp r6, #0x3
- ble .L706 @cond_branch
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .Lfe52:
- .size BoxMonRestorePP,.Lfe52-BoxMonRestorePP
- .align 2, 0
- .globl sub_8040B8C
- .type sub_8040B8C,function
- .thumb_func
- sub_8040B8C:
- push {r4, r5, lr}
- ldr r1, .L713
- ldr r2, .L713+0x4
- ldr r3, .L713+0x8
- add r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, .L713+0xc
- mov r0, #0xfd
- strb r0, [r5]
- mov r0, #0x4
- strb r0, [r5, #0x1]
- ldr r0, .L713+0x10
- add r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, #0x2]
- mov r0, #0xff
- strb r0, [r5, #0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsl r0, r0, #0x18
- cmp r0, #0
- bne .L710 @cond_branch
- ldr r1, .L713+0x14
- ldrb r0, [r4]
- lsl r0, r0, #0x1
- add r0, r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b .L712
- .L714:
- .align 2, 0
- .L713:
- .word byte_2024C06
- .word unk_2000000
- .word 0x160c0
- .word gUnknown_030041C0
- .word 0x16054
- .word gUnknown_02024A6A
- .L710:
- ldr r0, .L715
- ldrb r1, [r4]
- lsl r1, r1, #0x1
- add r1, r1, r0
- ldrh r0, [r1]
- .L712:
- strb r0, [r5, #0x3]
- ldr r4, .L715+0x4
- mov r0, #0xfd
- strb r0, [r4]
- mov r0, #0x4
- strb r0, [r4, #0x1]
- ldr r1, .L715+0x8
- ldrb r0, [r1]
- strb r0, [r4, #0x2]
- ldr r2, .L715
- ldrb r0, [r1]
- lsl r0, r0, #0x1
- add r0, r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, #0x3]
- mov r0, #0xff
- strb r0, [r4, #0x4]
- ldr r0, .L715+0xc
- ldr r1, .L715+0x10
- bl sub_8120FFC
- pop {r4, r5}
- pop {r0}
- bx r0
- .L716:
- .align 2, 0
- .L715:
- .word gUnknown_02024A6A
- .word gUnknown_03004290
- .word gUnknown_02024E6C
- .word BattleText_PreventedSwitch
- .word gStringVar4
- .Lfe53:
- .size sub_8040B8C,.Lfe53-sub_8040B8C
- .align 2, 0
- .globl SetWildMonHeldItem
- .type SetWildMonHeldItem,function
- .thumb_func
- SetWildMonHeldItem:
- push {r4, r5, lr}
- ldr r0, .L724
- ldrh r1, [r0]
- ldr r0, .L724+0x4
- and r0, r0, r1
- cmp r0, #0
- bne .L717 @cond_branch
- bl Random
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x64
- bl __umodsi3
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r4, .L724+0x8
- add r0, r4, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- ldr r2, .L724+0xc
- lsl r1, r0, #0x3
- sub r1, r1, r0
- lsl r3, r1, #0x2
- add r1, r3, r2
- ldrh r0, [r1, #0xc]
- ldrh r1, [r1, #0xe]
- cmp r0, r1
- beq .L723 @cond_branch
- cmp r5, #0x2c
- bls .L717 @cond_branch
- cmp r5, #0x5e
- bhi .L721 @cond_branch
- .L723:
- add r2, r2, #0xc
- add r2, r3, r2
- add r0, r4, #0
- mov r1, #0xc
- bl SetMonData
- b .L717
- .L725:
- .align 2, 0
- .L724:
- .word gBattleTypeFlags
- .word 0x2008
- .word gEnemyParty
- .word gBaseStats
- .L721:
- add r2, r2, #0xe
- add r2, r3, r2
- add r0, r4, #0
- mov r1, #0xc
- bl SetMonData
- .L717:
- pop {r4, r5}
- pop {r0}
- bx r0
- .Lfe54:
- .size SetWildMonHeldItem,.Lfe54-SetWildMonHeldItem
- .align 2, 0
- .globl IsShiny
- .type IsShiny,function
- .thumb_func
- IsShiny:
- push {r4, r5, lr}
- add r4, r0, #0
- mov r1, #0x1
- mov r2, #0x0
- bl GetMonData
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #0x0
- mov r2, #0x0
- bl GetMonData
- add r1, r0, #0
- add r0, r5, #0
- bl IsShinyOtIdPersonality
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, r5}
- pop {r1}
- bx r1
- .Lfe55:
- .size IsShiny,.Lfe55-IsShiny
- .align 2, 0
- .globl IsShinyOtIdPersonality
- .type IsShinyOtIdPersonality,function
- .thumb_func
- IsShinyOtIdPersonality:
- push {r4, lr}
- mov r4, #0x0
- lsr r2, r0, #0x10
- ldr r3, .L729
- and r0, r0, r3
- eor r2, r2, r0
- lsr r0, r1, #0x10
- eor r2, r2, r0
- and r1, r1, r3
- eor r2, r2, r1
- cmp r2, #0x7
- bhi .L728 @cond_branch
- mov r4, #0x1
- .L728:
- add r0, r4, #0
- pop {r4}
- pop {r1}
- bx r1
- .L730:
- .align 2, 0
- .L729:
- .word 0xffff
- .Lfe56:
- .size IsShinyOtIdPersonality,.Lfe56-IsShinyOtIdPersonality
- .align 2, 0
- .globl sub_8040D08
- .type sub_8040D08,function
- .thumb_func
- sub_8040D08:
- push {r4, lr}
- bl GetMultiplayerId
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- ldr r4, .L732
- lsl r1, r0, #0x3
- sub r1, r1, r0
- lsl r1, r1, #0x2
- add r1, r1, r4
- ldrh r1, [r1, #0x18]
- mov r0, #0x2
- eor r0, r0, r1
- bl sub_803FC34
- add r1, r0, #0
- lsl r0, r1, #0x3
- sub r0, r0, r1
- lsl r0, r0, #0x2
- add r4, r4, #0x8
- add r0, r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .L733:
- .align 2, 0
- .L732:
- .word gLinkPlayers
- .Lfe57:
- .size sub_8040D08,.Lfe57-sub_8040D08
- .align 2, 0
- .globl sub_8040D3C
- .type sub_8040D3C,function
- .thumb_func
- sub_8040D3C:
- push {r4, lr}
- add r4, r1, #0
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, r1, #0
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- mov r3, #0x0
- cmp r1, #0x20
- beq .L736 @cond_branch
- cmp r1, #0x1d
- bne .L735 @cond_branch
- .L736:
- cmp r2, #0x2
- bne .L737 @cond_branch
- mov r0, #0xb
- mul r1, r1, r0
- ldr r0, .L743
- add r1, r1, r0
- b .L738
- .L744:
- .align 2, 0
- .L743:
- .word gSpeciesNames
- .L737:
- ldr r1, .L745
- cmp r0, #0x20
- bne .L738 @cond_branch
- sub r1, r1, #0xb
- .L738:
- add r0, r4, #0
- bl StringCompareWithoutExtCtrlCodes
- mov r3, #0x0
- cmp r0, #0
- bne .L735 @cond_branch
- mov r3, #0x1
- .L735:
- add r0, r3, #0
- pop {r4}
- pop {r1}
- bx r1
- .L746:
- .align 2, 0
- .L745:
- .word gJapaneseNidoranNames+0xb
- .Lfe58:
- .size sub_8040D3C,.Lfe58-sub_8040D3C
- .align 2, 0
- .globl sub_8040D8C
- .type sub_8040D8C,function
- .thumb_func
- sub_8040D8C:
- push {lr}
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- mov r2, #0x2
- ldrb r0, [r1]
- cmp r0, #0xfc
- bne .L748 @cond_branch
- ldrb r0, [r1, #0x1]
- cmp r0, #0x15
- bne .L748 @cond_branch
- mov r2, #0x1
- .L748:
- add r0, r3, #0
- bl sub_8040D3C
- pop {r1}
- bx r1
- .Lfe59:
- .size sub_8040D8C,.Lfe59-sub_8040D8C
- .align 2, 0
- .globl unref_sub_8040DAC
- .type unref_sub_8040DAC,function
- .thumb_func
- unref_sub_8040DAC:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffff4
- add r6, r0, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- add r5, r0, #0
- lsl r5, r5, #0x10
- lsr r5, r5, #0x10
- add r0, r6, #0
- mov r1, #0x3
- mov r2, #0x0
- bl GetMonData
- add r4, r0, #0
- lsl r4, r4, #0x18
- lsr r4, r4, #0x18
- add r0, r6, #0
- mov r1, #0x2
- mov r2, sp
- bl GetMonData
- add r0, r5, #0
- mov r1, sp
- add r2, r4, #0
- bl sub_8040D3C
- add sp, sp, #0xc
- pop {r4, r5, r6}
- pop {r1}
- bx r1
- .Lfe60:
- .size unref_sub_8040DAC,.Lfe60-unref_sub_8040DAC
- .text
- .align 2, 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement