mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-09 10:57:40 -05:00
35455 lines
554 KiB
ArmAsm
35455 lines
554 KiB
ArmAsm
.include "constants/gba_constants.s"
|
|
.include "asm/macros.s"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start object_new_hidden_with_callback
|
|
object_new_hidden_with_callback: @ 8040EB4
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _08040EE8
|
|
movs r1, 0xF8
|
|
movs r2, 0xA8
|
|
movs r3, 0xE
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _08040EEC
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r3, r2, r5
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r4, 0x4
|
|
orrs r1, r4
|
|
strb r1, [r3]
|
|
adds r5, 0x1C
|
|
adds r2, r5
|
|
str r6, [r2]
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08040EE8: .4byte gSpriteTemplate_82087AC
|
|
_08040EEC: .4byte 0x02020004
|
|
thumb_func_end object_new_hidden_with_callback
|
|
|
|
thumb_func_start StoreWordInTwoHalfwords
|
|
StoreWordInTwoHalfwords: @ 8040EF0
|
|
strh r1, [r0]
|
|
lsrs r1, 16
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
thumb_func_end StoreWordInTwoHalfwords
|
|
|
|
thumb_func_start LoadWordFromTwoHalfwords
|
|
LoadWordFromTwoHalfwords: @ 8040EF8
|
|
ldrh r2, [r0]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
str r2, [r1]
|
|
bx lr
|
|
thumb_func_end LoadWordFromTwoHalfwords
|
|
|
|
thumb_func_start sub_8040F08
|
|
sub_8040F08: @ 8040F08
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, [sp, 0x18]
|
|
ldr r5, [sp, 0x1C]
|
|
ldr r6, [sp, 0x20]
|
|
ldr r7, [sp, 0x24]
|
|
mov r8, r7
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
strh r3, [r0, 0x8]
|
|
strh r4, [r0, 0xA]
|
|
strh r5, [r0, 0xC]
|
|
strh r6, [r0, 0xE]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x10]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8040F08
|
|
|
|
thumb_func_start sub_8040F34
|
|
sub_8040F34: @ 8040F34
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x24
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x38]
|
|
ldr r4, [sp, 0x3C]
|
|
ldr r5, [sp, 0x40]
|
|
ldr r6, [sp, 0x44]
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp, 0x4]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
str r5, [sp, 0x8]
|
|
str r6, [sp, 0xC]
|
|
add r0, sp, 0x10
|
|
bl sub_8040F08
|
|
add r0, sp, 0x10
|
|
mov r1, r8
|
|
movs r2, 0x1
|
|
bl BgAffineSet
|
|
add sp, 0x24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8040F34
|
|
|
|
thumb_func_start sub_8040F80
|
|
sub_8040F80: @ 8040F80
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x3C
|
|
str r2, [sp, 0x20]
|
|
adds r4, r3, 0
|
|
ldr r7, [sp, 0x5C]
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
ldr r2, _08041008
|
|
lsrs r1, 23
|
|
lsrs r0, 21
|
|
adds r1, r0
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x24]
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
str r1, [sp, 0x28]
|
|
movs r1, 0
|
|
cmp r1, r0
|
|
bcc _08040FB4
|
|
b _08041136
|
|
_08040FB4:
|
|
movs r0, 0x20
|
|
ldr r2, [sp, 0x28]
|
|
subs r0, r2
|
|
lsls r0, 1
|
|
str r0, [sp, 0x2C]
|
|
_08040FBE:
|
|
movs r2, 0
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x34]
|
|
ldr r3, [sp, 0x28]
|
|
cmp r2, r3
|
|
bcc _08040FCC
|
|
b _08041124
|
|
_08040FCC:
|
|
ldr r0, _0804100C
|
|
mov r8, r0
|
|
_08040FD0:
|
|
ldrh r1, [r4]
|
|
ldr r0, _08041010
|
|
ands r0, r1
|
|
lsls r0, 5
|
|
mov r12, r0
|
|
movs r0, 0xC0
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
mov r3, sp
|
|
strh r1, [r3, 0x38]
|
|
cmp r0, 0
|
|
bne _08041018
|
|
ldr r0, [sp, 0x20]
|
|
add r0, r12
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
str r7, [r1, 0x4]
|
|
ldr r3, _08041014
|
|
str r3, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r4, 0x2
|
|
str r4, [sp, 0x30]
|
|
adds r7, 0x20
|
|
mov r10, r7
|
|
adds r2, 0x1
|
|
mov r9, r2
|
|
b _08041112
|
|
.align 2, 0
|
|
_08041008: .4byte gUnknown_082087C4
|
|
_0804100C: .4byte 0x040000d4
|
|
_08041010: .4byte 0x000003ff
|
|
_08041014: .4byte 0x84000008
|
|
_08041018:
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
cmp r0, r1
|
|
bne _08041068
|
|
movs r3, 0
|
|
adds r4, 0x2
|
|
str r4, [sp, 0x30]
|
|
movs r0, 0x20
|
|
adds r0, r7
|
|
mov r10, r0
|
|
adds r2, 0x1
|
|
mov r9, r2
|
|
ldr r4, _08041060
|
|
ldr r6, _08041064
|
|
movs r5, 0x7
|
|
_08041036:
|
|
lsls r2, r3, 24
|
|
asrs r2, 24
|
|
subs r0, r5, r2
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldr r1, [sp, 0x20]
|
|
adds r0, r1, r0
|
|
lsls r1, r2, 2
|
|
adds r1, r7, r1
|
|
str r0, [r4]
|
|
str r1, [r4, 0x4]
|
|
str r6, [r4, 0x8]
|
|
ldr r0, [r4, 0x8]
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r3, r2, 24
|
|
asrs r2, 24
|
|
cmp r2, 0x7
|
|
ble _08041036
|
|
b _08041112
|
|
.align 2, 0
|
|
_08041060: .4byte 0x040000d4
|
|
_08041064: .4byte 0x84000001
|
|
_08041068:
|
|
movs r3, 0
|
|
adds r4, 0x2
|
|
str r4, [sp, 0x30]
|
|
movs r0, 0x20
|
|
adds r0, r7
|
|
mov r10, r0
|
|
adds r2, 0x1
|
|
mov r9, r2
|
|
_08041078:
|
|
movs r2, 0
|
|
lsls r4, r3, 24
|
|
lsls r0, r4, 2
|
|
lsrs r0, 24
|
|
adds r6, r0, 0x3
|
|
mov r1, r12
|
|
adds r5, r1, r0
|
|
_08041086:
|
|
lsls r1, r2, 24
|
|
asrs r1, 24
|
|
subs r0, r6, r1
|
|
mov r2, sp
|
|
adds r3, r2, r0
|
|
adds r0, r5, r1
|
|
ldr r2, [sp, 0x20]
|
|
adds r0, r2, r0
|
|
ldrb r2, [r0]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
lsls r0, 4
|
|
lsrs r2, 4
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
asrs r1, 24
|
|
cmp r1, 0x3
|
|
ble _08041086
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
adds r0, r4, r3
|
|
lsrs r3, r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x7
|
|
ble _08041078
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x38]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041104
|
|
movs r3, 0
|
|
ldr r4, _080410FC
|
|
ldr r6, _08041100
|
|
movs r5, 0x7
|
|
_080410D4:
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
subs r0, r5, r1
|
|
lsls r0, 2
|
|
mov r3, sp
|
|
adds r2, r3, r0
|
|
lsls r0, r1, 2
|
|
adds r0, r7, r0
|
|
str r2, [r4]
|
|
str r0, [r4, 0x4]
|
|
str r6, [r4, 0x8]
|
|
ldr r0, [r4, 0x8]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
asrs r1, 24
|
|
cmp r1, 0x7
|
|
ble _080410D4
|
|
b _08041112
|
|
.align 2, 0
|
|
_080410FC: .4byte 0x040000d4
|
|
_08041100: .4byte 0x84000001
|
|
_08041104:
|
|
mov r0, sp
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
str r7, [r1, 0x4]
|
|
ldr r2, _08041148
|
|
str r2, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
_08041112:
|
|
ldr r4, [sp, 0x30]
|
|
mov r7, r10
|
|
mov r3, r9
|
|
lsls r0, r3, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, [sp, 0x28]
|
|
cmp r2, r0
|
|
bcs _08041124
|
|
b _08040FD0
|
|
_08041124:
|
|
ldr r1, [sp, 0x2C]
|
|
adds r4, r1
|
|
ldr r2, [sp, 0x34]
|
|
lsls r0, r2, 24
|
|
lsrs r1, r0, 24
|
|
ldr r3, [sp, 0x24]
|
|
cmp r1, r3
|
|
bcs _08041136
|
|
b _08040FBE
|
|
_08041136:
|
|
add sp, 0x3C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041148: .4byte 0x84000008
|
|
thumb_func_end sub_8040F80
|
|
|
|
thumb_func_start sub_804114C
|
|
sub_804114C: @ 804114C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0
|
|
movs r3, 0x1
|
|
_08041154:
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08041160
|
|
adds r0, r1, 0
|
|
b _0804116E
|
|
_08041160:
|
|
lsrs r2, 1
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x1F
|
|
bls _08041154
|
|
movs r0, 0
|
|
_0804116E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804114C
|
|
|
|
thumb_func_start sub_8041174
|
|
sub_8041174: @ 8041174
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r2, _080411A4
|
|
movs r3, 0
|
|
cmp r3, r4
|
|
bge _080411C0
|
|
movs r6, 0x1
|
|
ldr r0, _080411A8
|
|
adds r5, r0, 0
|
|
_08041188:
|
|
adds r0, r7, r3
|
|
ldrb r0, [r0]
|
|
eors r2, r0
|
|
movs r1, 0
|
|
adds r3, 0x1
|
|
_08041192:
|
|
adds r0, r2, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080411AC
|
|
lsrs r0, r2, 1
|
|
eors r0, r5
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
b _080411AE
|
|
.align 2, 0
|
|
_080411A4: .4byte 0x00001121
|
|
_080411A8: .4byte 0x00008408
|
|
_080411AC:
|
|
lsrs r2, 1
|
|
_080411AE:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0x7
|
|
bls _08041192
|
|
lsls r0, r3, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, r4
|
|
blt _08041188
|
|
_080411C0:
|
|
mvns r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8041174
|
|
|
|
thumb_func_start unref_sub_80411CC
|
|
unref_sub_80411CC: @ 80411CC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r2, _08041208
|
|
movs r3, 0
|
|
cmp r3, r4
|
|
bge _080411FA
|
|
ldr r6, _0804120C
|
|
_080411DC:
|
|
lsrs r1, r2, 8
|
|
adds r0, r5, r3
|
|
ldrb r0, [r0]
|
|
eors r2, r0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 23
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
adds r2, r0, 0
|
|
eors r2, r1
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, r4
|
|
blt _080411DC
|
|
_080411FA:
|
|
mvns r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041208: .4byte 0x00001121
|
|
_0804120C: .4byte gCrc16Table
|
|
thumb_func_end unref_sub_80411CC
|
|
|
|
thumb_func_start BlendPalette
|
|
BlendPalette: @ 8041210
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r12, r1
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
mov r0, sp
|
|
strh r3, [r0]
|
|
movs r6, 0
|
|
cmp r6, r12
|
|
bcs _08041296
|
|
ldr r0, _080412A8
|
|
mov r10, r0
|
|
ldr r1, _080412AC
|
|
mov r9, r1
|
|
_0804123E:
|
|
mov r0, r8
|
|
adds r5, r6, r0
|
|
lsls r5, 16
|
|
lsrs r5, 15
|
|
mov r1, r10
|
|
adds r0, r5, r1
|
|
ldr r3, [r0]
|
|
lsls r4, r3, 27
|
|
lsls r2, r3, 22
|
|
lsls r3, 17
|
|
add r5, r9
|
|
lsrs r4, 27
|
|
ldr r1, [sp]
|
|
lsls r0, r1, 27
|
|
lsrs r0, 27
|
|
subs r0, r4
|
|
muls r0, r7
|
|
asrs r0, 4
|
|
adds r4, r0
|
|
lsrs r2, 27
|
|
lsls r0, r1, 22
|
|
lsrs r0, 27
|
|
subs r0, r2
|
|
muls r0, r7
|
|
asrs r0, 4
|
|
adds r2, r0
|
|
lsls r2, 5
|
|
orrs r4, r2
|
|
lsrs r3, 27
|
|
lsls r1, 17
|
|
lsrs r1, 27
|
|
subs r1, r3
|
|
adds r0, r1, 0
|
|
muls r0, r7
|
|
asrs r0, 4
|
|
adds r3, r0
|
|
lsls r3, 10
|
|
orrs r4, r3
|
|
strh r4, [r5]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, r12
|
|
bcc _0804123E
|
|
_08041296:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080412A8: .4byte 0x0202eac8
|
|
_080412AC: .4byte 0x0202eec8
|
|
thumb_func_end BlendPalette
|
|
|
|
thumb_func_start pokemon_get_nick
|
|
pokemon_get_nick: @ 80412B0
|
|
push {r4,lr}
|
|
sub sp, 0x14
|
|
adds r4, r1, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
add sp, 0x14
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end pokemon_get_nick
|
|
|
|
thumb_func_start pokemon_get_nick_
|
|
pokemon_get_nick_: @ 80412D0
|
|
push {r4,lr}
|
|
sub sp, 0x14
|
|
adds r4, r1, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetEncryptedField
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
add sp, 0x14
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end pokemon_get_nick_
|
|
|
|
thumb_func_start daycare_count_pokemon
|
|
daycare_count_pokemon: @ 80412F0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_080412F8:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
adds r0, r6, r0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
beq _08041310
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08041310:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bls _080412F8
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end daycare_count_pokemon
|
|
|
|
thumb_func_start sub_8041324
|
|
sub_8041324: @ 8041324
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
mov r10, r1
|
|
movs r7, 0
|
|
movs r5, 0
|
|
mov r6, r10
|
|
adds r6, 0x74
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0804133E:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 4
|
|
mov r1, r9
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
beq _0804136E
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl PokemonGetEncryptedField
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0804136E
|
|
lsls r0, r5, 1
|
|
adds r0, r6, r0
|
|
b _08041374
|
|
_0804136E:
|
|
lsls r0, r5, 1
|
|
adds r0, r6, r0
|
|
mov r1, r8
|
|
_08041374:
|
|
strh r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _0804133E
|
|
mov r0, r10
|
|
str r7, [r0, 0x70]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8041324
|
|
|
|
thumb_func_start daycare_empty_slot
|
|
daycare_empty_slot: @ 8041394
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
_0804139A:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
adds r0, r5, r0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
bne _080413B2
|
|
lsls r0, r4, 24
|
|
asrs r0, 24
|
|
b _080413C0
|
|
_080413B2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bls _0804139A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080413C0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end daycare_empty_slot
|
|
|
|
thumb_func_start sub_80413C8
|
|
sub_80413C8: @ 80413C8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
mov r0, r8
|
|
bl daycare_empty_slot
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r9, r4
|
|
adds r0, r7, 0
|
|
bl sub_80A2B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804144A
|
|
lsls r0, r4, 24
|
|
asrs r0, 24
|
|
lsls r4, r0, 3
|
|
subs r4, r0
|
|
lsls r4, 3
|
|
adds r5, r4, 0
|
|
adds r5, 0xA0
|
|
add r5, r8
|
|
adds r6, r5, 0
|
|
adds r6, 0x24
|
|
ldr r1, _08041490
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
adds r0, r6, 0
|
|
movs r1, 0xFC
|
|
bl sub_814A518
|
|
adds r6, 0x8
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl pokemon_get_nick
|
|
adds r0, r7, 0
|
|
movs r1, 0x40
|
|
bl PokemonGetField
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r4, r8
|
|
ldr r2, _08041494
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r4, 0xA0
|
|
ldr r0, _08041498
|
|
adds r1, r0
|
|
ldm r1!, {r0,r2,r3}
|
|
stm r4!, {r0,r2,r3}
|
|
ldm r1!, {r0,r2,r3}
|
|
stm r4!, {r0,r2,r3}
|
|
ldm r1!, {r0,r2,r3}
|
|
stm r4!, {r0,r2,r3}
|
|
adds r0, r7, 0
|
|
bl sub_80A2DF8
|
|
_0804144A:
|
|
mov r2, r9
|
|
lsls r4, r2, 24
|
|
asrs r4, 24
|
|
lsls r5, r4, 2
|
|
adds r4, r5, r4
|
|
lsls r4, 4
|
|
add r4, r8
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x50
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
bl pokemon_restore_pp
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
add r0, r8
|
|
adds r0, r5
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r7, 0
|
|
bl zero_pokemon_struct
|
|
bl party_compaction
|
|
bl calc_player_party_count
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041490: .4byte gSaveBlock2
|
|
_08041494: .4byte 0x02025734
|
|
_08041498: .4byte 0x00002b4c
|
|
thumb_func_end sub_80413C8
|
|
|
|
thumb_func_start daycare_send
|
|
daycare_send: @ 804149C
|
|
push {lr}
|
|
ldr r0, _080414B4
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080414B8
|
|
adds r0, r1
|
|
ldr r1, _080414BC
|
|
bl sub_80413C8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080414B4: .4byte 0x03005ce0
|
|
_080414B8: .4byte 0x03004360
|
|
_080414BC: .4byte 0x020286d0
|
|
thumb_func_end daycare_send
|
|
|
|
thumb_func_start sub_80414C0
|
|
sub_80414C0: @ 80414C0
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r5, 0
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
beq _08041516
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
bne _08041516
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x50
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
bl zero_pokemon_boxed_data
|
|
adds r0, r5, 0
|
|
adds r0, 0xA0
|
|
adds r4, 0x88
|
|
adds r1, r4, 0
|
|
movs r2, 0x38
|
|
bl memcpy
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
adds r0, 0x4
|
|
adds r1, r5, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
str r6, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_80417F4
|
|
_08041516:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80414C0
|
|
|
|
thumb_func_start sub_804151C
|
|
sub_804151C: @ 804151C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
ldr r7, _08041538
|
|
_08041524:
|
|
adds r0, r4, 0
|
|
bl sub_8040300
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08041560
|
|
movs r6, 0x1
|
|
adds r5, 0x1
|
|
b _0804154C
|
|
.align 2, 0
|
|
_08041538: .4byte 0x0000ffff
|
|
_0804153C:
|
|
movs r6, 0
|
|
cmp r0, r7
|
|
bne _0804154C
|
|
ldr r0, _0804156C
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_803B8D4
|
|
_0804154C:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_803B7C8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
bne _0804153C
|
|
cmp r5, 0x63
|
|
ble _08041524
|
|
_08041560:
|
|
adds r0, r4, 0
|
|
bl pokemon_calc_effective_stats
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804156C: .4byte 0x02024e82
|
|
thumb_func_end sub_804151C
|
|
|
|
thumb_func_start sub_8041570
|
|
sub_8041570: @ 8041570
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x68
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r7, r4, 2
|
|
adds r0, r7, r4
|
|
lsls r0, 4
|
|
adds r6, r5, r0
|
|
ldr r1, _08041640
|
|
adds r0, r6, 0
|
|
bl pokemon_get_nick_
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_803B4B4
|
|
mov r0, sp
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
cmp r0, 0x64
|
|
beq _080415D8
|
|
mov r0, sp
|
|
movs r1, 0x19
|
|
bl PokemonGetField
|
|
movs r2, 0x88
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
adds r1, r7
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [sp, 0x64]
|
|
add r2, sp, 0x64
|
|
mov r0, sp
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
mov r0, sp
|
|
bl sub_804151C
|
|
_080415D8:
|
|
ldr r0, _08041644
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
mov r8, r1
|
|
mov r0, r8
|
|
mov r1, sp
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r1, r0, 3
|
|
adds r0, r5, r1
|
|
adds r0, 0xC0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08041610
|
|
adds r4, r1, 0
|
|
adds r4, 0xA0
|
|
adds r4, r5, r4
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80A2D88
|
|
adds r0, r4, 0
|
|
bl sub_80417F4
|
|
_08041610:
|
|
bl party_compaction
|
|
adds r0, r6, 0
|
|
bl zero_pokemon_boxed_data
|
|
movs r2, 0x88
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80414C0
|
|
bl calc_player_party_count
|
|
mov r0, r9
|
|
add sp, 0x68
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041640: .4byte 0x020231cc
|
|
_08041644: .4byte 0x03004360
|
|
thumb_func_end sub_8041570
|
|
|
|
thumb_func_start sub_8041648
|
|
sub_8041648: @ 8041648
|
|
push {lr}
|
|
ldr r0, _0804165C
|
|
ldr r1, _08041660
|
|
ldrb r1, [r1]
|
|
bl sub_8041570
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804165C: .4byte 0x020286d0
|
|
_08041660: .4byte 0x0202e8cc
|
|
thumb_func_end sub_8041648
|
|
|
|
thumb_func_start sub_8041664
|
|
sub_8041664: @ 8041664
|
|
push {r4,r5,lr}
|
|
sub sp, 0x54
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x50
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
bl PokemonGetEncryptedField
|
|
adds r0, r5
|
|
str r0, [sp, 0x50]
|
|
add r2, sp, 0x50
|
|
mov r0, sp
|
|
movs r1, 0x19
|
|
bl PokemonSetEncryptedField
|
|
mov r0, sp
|
|
bl sub_803B570
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x54
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8041664
|
|
|
|
thumb_func_start sub_80416A0
|
|
sub_80416A0: @ 80416A0
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r5, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
lsls r0, r4, 2
|
|
mov r8, r0
|
|
add r4, r8
|
|
lsls r4, 4
|
|
adds r4, r5, r4
|
|
adds r0, r4, 0
|
|
bl sub_803B570
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
add r5, r8
|
|
ldr r1, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8041664
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80416A0
|
|
|
|
thumb_func_start sub_80416E8
|
|
sub_80416E8: @ 80416E8
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
adds r1, r4, 0
|
|
bl sub_80416A0
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
adds r6, r0
|
|
ldr r1, _08041720
|
|
adds r0, r6, 0
|
|
bl pokemon_get_nick_
|
|
ldr r0, _08041724
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041720: .4byte 0x020231cc
|
|
_08041724: .4byte 0x020232cc
|
|
thumb_func_end sub_80416E8
|
|
|
|
thumb_func_start sub_8041728
|
|
sub_8041728: @ 8041728
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
adds r1, r4, 0
|
|
bl sub_80416A0
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
adds r6, r0
|
|
ldr r1, _08041768
|
|
adds r0, r6, 0
|
|
bl pokemon_get_nick_
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
adds r4, 0x64
|
|
ldr r0, _0804176C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x5
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041768: .4byte 0x020231cc
|
|
_0804176C: .4byte 0x020232cc
|
|
thumb_func_end sub_8041728
|
|
|
|
thumb_func_start sub_8041770
|
|
sub_8041770: @ 8041770
|
|
push {lr}
|
|
ldr r0, _08041784
|
|
ldr r1, _08041788
|
|
ldrb r1, [r1]
|
|
bl sub_8041728
|
|
ldr r1, _0804178C
|
|
strh r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041784: .4byte 0x020286d0
|
|
_08041788: .4byte 0x0202e8cc
|
|
_0804178C: .4byte 0x0202e8ce
|
|
thumb_func_end sub_8041770
|
|
|
|
thumb_func_start sub_8041790
|
|
sub_8041790: @ 8041790
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _080417AC
|
|
ldr r1, _080417B0
|
|
adds r3, r2, r1
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
ldr r1, _080417B4
|
|
adds r2, r1
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080417AC: .4byte 0x02025734
|
|
_080417B0: .4byte 0x000030ac
|
|
_080417B4: .4byte 0x000030b0
|
|
thumb_func_end sub_8041790
|
|
|
|
thumb_func_start sub_80417B8
|
|
sub_80417B8: @ 80417B8
|
|
push {r4,r5,lr}
|
|
ldr r5, _080417D8
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
ldr r4, _080417DC
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
bne _080417E0
|
|
movs r0, 0
|
|
b _080417EC
|
|
.align 2, 0
|
|
_080417D8: .4byte 0x0202e8cc
|
|
_080417DC: .4byte 0x020286d0
|
|
_080417E0:
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_80416E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080417EC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80417B8
|
|
|
|
thumb_func_start sub_80417F4
|
|
sub_80417F4: @ 80417F4
|
|
push {lr}
|
|
movs r3, 0
|
|
movs r2, 0x7
|
|
adds r1, r0, 0
|
|
adds r1, 0x2B
|
|
_080417FE:
|
|
strb r3, [r1]
|
|
subs r1, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080417FE
|
|
adds r2, r0, 0
|
|
adds r2, 0x2C
|
|
movs r3, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0x36
|
|
_08041812:
|
|
strb r3, [r1]
|
|
subs r1, 0x1
|
|
cmp r1, r2
|
|
bge _08041812
|
|
bl sub_80A2B40
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80417F4
|
|
|
|
thumb_func_start unref_sub_8041824
|
|
unref_sub_8041824: @ 8041824
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
_0804182A:
|
|
lsls r4, r5, 2
|
|
adds r0, r4, r5
|
|
lsls r0, 4
|
|
adds r0, r6, r0
|
|
bl zero_pokemon_boxed_data
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
adds r0, r4
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 3
|
|
adds r0, 0xA0
|
|
adds r0, r6, r0
|
|
bl sub_80417F4
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _0804182A
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
movs r1, 0
|
|
strh r4, [r0]
|
|
adds r2, 0x2
|
|
adds r0, r6, r2
|
|
strb r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end unref_sub_8041824
|
|
|
|
thumb_func_start sub_8041870
|
|
sub_8041870: @ 8041870
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, _0804189C
|
|
mov r12, r0
|
|
_08041882:
|
|
movs r7, 0
|
|
movs r6, 0x1
|
|
movs r4, 0x80
|
|
lsls r4, 9
|
|
movs r5, 0x28
|
|
mov r3, r12
|
|
adds r3, 0x28
|
|
_08041890:
|
|
movs r1, 0
|
|
ldrh r0, [r3, 0x4]
|
|
cmp r0, r2
|
|
bne _080418A0
|
|
lsrs r2, r4, 16
|
|
b _080418CC
|
|
.align 2, 0
|
|
_0804189C: .4byte gEvolutionTable
|
|
_080418A0:
|
|
adds r1, 0x1
|
|
cmp r1, 0x4
|
|
bgt _080418B6
|
|
lsls r0, r1, 3
|
|
adds r0, r5
|
|
add r0, r12
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r2
|
|
bne _080418A0
|
|
lsrs r2, r4, 16
|
|
movs r7, 0x1
|
|
_080418B6:
|
|
cmp r7, 0
|
|
bne _080418CC
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r4, r0
|
|
adds r5, 0x28
|
|
adds r3, 0x28
|
|
adds r6, 0x1
|
|
ldr r0, _080418EC
|
|
cmp r6, r0
|
|
ble _08041890
|
|
_080418CC:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r6, r0
|
|
beq _080418DE
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x4
|
|
ble _08041882
|
|
_080418DE:
|
|
adds r0, r2, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080418EC: .4byte 0x0000019b
|
|
thumb_func_end sub_8041870
|
|
|
|
thumb_func_start sub_80418F0
|
|
sub_80418F0: @ 80418F0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08041918
|
|
bl __umodsi3
|
|
adds r0, 0x1
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
strh r0, [r4]
|
|
movs r0, 0x86
|
|
bl FlagSet
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041918: .4byte 0x0000fffe
|
|
thumb_func_end sub_80418F0
|
|
|
|
thumb_func_start sub_804191C
|
|
sub_804191C: @ 804191C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl Random
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
orrs r1, r0
|
|
strh r1, [r4]
|
|
movs r0, 0x86
|
|
bl FlagSet
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804191C
|
|
|
|
thumb_func_start sub_8041940
|
|
sub_8041940: @ 8041940
|
|
push {lr}
|
|
ldr r0, _0804194C
|
|
bl sub_80418F0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804194C: .4byte 0x020286d0
|
|
thumb_func_end sub_8041940
|
|
|
|
thumb_func_start sub_8041950
|
|
sub_8041950: @ 8041950
|
|
push {lr}
|
|
ldr r0, _0804195C
|
|
bl sub_804191C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804195C: .4byte 0x020286d0
|
|
thumb_func_end sub_8041950
|
|
|
|
thumb_func_start sub_8041960
|
|
sub_8041960: @ 8041960
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r1, r4, r1
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r2, 0
|
|
_08041972:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
adds r1, r4, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _08041972
|
|
movs r3, 0
|
|
movs r2, 0
|
|
_08041986:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
cmp r0, 0xFF
|
|
beq _08041998
|
|
adds r0, r4, r3
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
_08041998:
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _08041986
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8041960
|
|
|
|
thumb_func_start sub_80419A8
|
|
sub_80419A8: @ 80419A8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
mov r9, r0
|
|
mov r8, r1
|
|
movs r5, 0
|
|
add r1, sp, 0x4
|
|
add r7, sp, 0xC
|
|
adds r2, r1, 0
|
|
_080419BE:
|
|
adds r0, r2, r5
|
|
strb r5, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _080419BE
|
|
movs r5, 0
|
|
adds r6, r1, 0
|
|
_080419D0:
|
|
bl Random
|
|
mov r1, sp
|
|
adds r4, r1, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x6
|
|
subs r1, r5
|
|
bl __modsi3
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r1, [r4]
|
|
adds r0, r6, 0
|
|
bl sub_8041960
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _080419D0
|
|
movs r5, 0
|
|
movs r4, 0x1
|
|
_08041A00:
|
|
bl Random
|
|
adds r1, r7, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ands r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _08041A00
|
|
movs r5, 0
|
|
_08041A1A:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _08041B02
|
|
lsls r0, 2
|
|
ldr r1, _08041A30
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08041A30: .4byte _08041A34
|
|
.align 2, 0
|
|
_08041A34:
|
|
.4byte _08041A4C
|
|
.4byte _08041A6C
|
|
.4byte _08041A88
|
|
.4byte _08041AA4
|
|
.4byte _08041AC0
|
|
.4byte _08041AE2
|
|
_08041A4C:
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x27
|
|
bl PokemonGetEncryptedField
|
|
add r2, sp, 0x10
|
|
strb r0, [r2]
|
|
mov r0, r9
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
b _08041B02
|
|
_08041A6C:
|
|
add r4, sp, 0x10
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x28
|
|
bl PokemonGetEncryptedField
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0x28
|
|
b _08041ADA
|
|
_08041A88:
|
|
add r4, sp, 0x10
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x29
|
|
bl PokemonGetEncryptedField
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0x29
|
|
b _08041ADA
|
|
_08041AA4:
|
|
add r4, sp, 0x10
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x2A
|
|
bl PokemonGetEncryptedField
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0x2A
|
|
b _08041ADA
|
|
_08041AC0:
|
|
add r4, sp, 0x10
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x2B
|
|
bl PokemonGetEncryptedField
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0x2B
|
|
_08041ADA:
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
b _08041B02
|
|
_08041AE2:
|
|
add r4, sp, 0x10
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
movs r1, 0x2C
|
|
bl PokemonGetEncryptedField
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0x2C
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
_08041B02:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _08041A1A
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80419A8
|
|
|
|
thumb_func_start pokemon_get_eggmoves
|
|
pokemon_get_eggmoves: @ 8041B1C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r1
|
|
movs r6, 0
|
|
movs r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r2, 0
|
|
ldr r5, _08041B44
|
|
ldrh r1, [r5]
|
|
ldr r7, _08041B48
|
|
adds r0, r3, r7
|
|
cmp r1, r0
|
|
bne _08041B4C
|
|
movs r4, 0x1
|
|
b _08041B6E
|
|
.align 2, 0
|
|
_08041B44: .4byte gEggMoves
|
|
_08041B48: .4byte 0x00004e20
|
|
_08041B4C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, _08041BB8
|
|
ldr r5, _08041BBC
|
|
cmp r2, r0
|
|
bhi _08041B6E
|
|
lsls r0, r2, 1
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
ldr r7, _08041BC0
|
|
adds r0, r3, r7
|
|
cmp r1, r0
|
|
bne _08041B4C
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_08041B6E:
|
|
movs r2, 0
|
|
lsls r0, r4, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldr r1, _08041BC0
|
|
cmp r0, r1
|
|
bhi _08041BAA
|
|
adds r7, r5, 0
|
|
adds r3, r1, 0
|
|
_08041B80:
|
|
lsls r1, r2, 1
|
|
add r1, r8
|
|
adds r0, r4, r2
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x9
|
|
bhi _08041BAA
|
|
adds r0, r4, r2
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bls _08041B80
|
|
_08041BAA:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041BB8: .4byte 0x00000471
|
|
_08041BBC: .4byte gEggMoves
|
|
_08041BC0: .4byte 0x00004e20
|
|
thumb_func_end pokemon_get_eggmoves
|
|
|
|
thumb_func_start daycare_build_child_moveset
|
|
daycare_build_child_moveset: @ 8041BC4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
adds r7, r0, 0
|
|
mov r10, r1
|
|
mov r9, r2
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r6, 0
|
|
ldr r5, _08041CC8
|
|
movs r2, 0
|
|
ldr r4, _08041CCC
|
|
ldr r3, _08041CD0
|
|
_08041BE4:
|
|
lsls r1, r6, 1
|
|
adds r0, r1, r5
|
|
strh r2, [r0]
|
|
adds r0, r1, r4
|
|
strh r2, [r0]
|
|
adds r1, r3
|
|
strh r2, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bls _08041BE4
|
|
movs r6, 0
|
|
ldr r2, _08041CD4
|
|
movs r1, 0
|
|
_08041C02:
|
|
lsls r0, r6, 1
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x9
|
|
bls _08041C02
|
|
movs r6, 0
|
|
ldr r2, _08041CD8
|
|
movs r1, 0
|
|
_08041C18:
|
|
lsls r0, r6, 1
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x31
|
|
bls _08041C18
|
|
adds r0, r7, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08041CD8
|
|
bl sub_804051C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r6, 0
|
|
ldr r1, _08041CCC
|
|
mov r8, r1
|
|
_08041C46:
|
|
adds r5, r6, 0
|
|
adds r5, 0xD
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl PokemonGetEncryptedField
|
|
lsls r4, r6, 1
|
|
mov r2, r8
|
|
adds r1, r4, r2
|
|
strh r0, [r1]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl PokemonGetEncryptedField
|
|
ldr r1, _08041CC8
|
|
adds r4, r1
|
|
strh r0, [r4]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bls _08041C46
|
|
ldr r1, _08041CD4
|
|
adds r0, r7, 0
|
|
bl pokemon_get_eggmoves
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r6, 0
|
|
_08041C82:
|
|
ldr r0, _08041CCC
|
|
lsls r1, r6, 1
|
|
adds r2, r1, r0
|
|
ldrh r1, [r2]
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _08041CF8
|
|
movs r5, 0
|
|
cmp r5, r8
|
|
bcs _08041CEA
|
|
adds r4, r2, 0
|
|
ldr r2, _08041CDC
|
|
_08041C9A:
|
|
ldr r0, _08041CD4
|
|
lsls r1, r5, 1
|
|
adds r1, r0
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _08041CE0
|
|
adds r1, r0, 0
|
|
adds r0, r7, 0
|
|
str r2, [sp, 0x8]
|
|
bl pokemon_moveset_pad_
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r0, r2
|
|
bne _08041CEA
|
|
ldrh r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_803B8D4
|
|
b _08041CEA
|
|
.align 2, 0
|
|
_08041CC8: .4byte 0x03000500
|
|
_08041CCC: .4byte 0x030004d8
|
|
_08041CD0: .4byte 0x030004e0
|
|
_08041CD4: .4byte 0x030004e8
|
|
_08041CD8: .4byte 0x03000470
|
|
_08041CDC: .4byte 0x0000ffff
|
|
_08041CE0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, r8
|
|
bcc _08041C9A
|
|
_08041CEA:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, _08041E14
|
|
mov r9, r3
|
|
cmp r6, 0x3
|
|
bls _08041C82
|
|
_08041CF8:
|
|
movs r6, 0
|
|
_08041CFA:
|
|
lsls r0, r6, 1
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r1, [r1]
|
|
adds r2, r0, 0
|
|
adds r6, 0x1
|
|
mov r8, r6
|
|
cmp r1, 0
|
|
beq _08041D5C
|
|
movs r5, 0
|
|
ldr r0, _08041E14
|
|
adds r4, r2, r0
|
|
ldr r6, _08041E18
|
|
mov r9, r0
|
|
_08041D16:
|
|
ldr r3, _08041E1C
|
|
adds r0, r5, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ItemIdToBattleMoveId
|
|
ldrh r1, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r1, r0
|
|
bne _08041D52
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
adds r0, r7, 0
|
|
bl sub_8040374
|
|
cmp r0, 0
|
|
beq _08041D52
|
|
ldrh r1, [r4]
|
|
adds r0, r7, 0
|
|
bl pokemon_moveset_pad_
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bne _08041D52
|
|
ldrh r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_803B8D4
|
|
_08041D52:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x39
|
|
bls _08041D16
|
|
_08041D5C:
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bls _08041CFA
|
|
movs r6, 0
|
|
mov r2, r9
|
|
ldrh r0, [r2]
|
|
ldr r3, _08041E20
|
|
mov r10, r3
|
|
cmp r0, 0
|
|
beq _08041DC6
|
|
mov r4, r9
|
|
ldr r0, _08041E24
|
|
mov r9, r0
|
|
mov r12, r10
|
|
_08041D7C:
|
|
movs r5, 0
|
|
lsls r2, r6, 1
|
|
adds r6, 0x1
|
|
mov r8, r6
|
|
adds r3, r2, r4
|
|
_08041D86:
|
|
lsls r0, r5, 1
|
|
add r0, r9
|
|
ldrh r2, [r3]
|
|
adds r1, r2, 0
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08041DA8
|
|
cmp r1, 0
|
|
beq _08041DA8
|
|
ldr r1, [sp]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp]
|
|
lsls r1, 1
|
|
add r1, r12
|
|
strh r2, [r1]
|
|
_08041DA8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x3
|
|
bls _08041D86
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bhi _08041DC6
|
|
lsls r0, r6, 1
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08041D7C
|
|
_08041DC6:
|
|
movs r6, 0
|
|
mov r2, r10
|
|
ldrh r0, [r2]
|
|
cmp r0, 0
|
|
beq _08041E50
|
|
_08041DD0:
|
|
movs r5, 0
|
|
adds r3, r6, 0x1
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x4]
|
|
cmp r5, r0
|
|
bcs _08041E38
|
|
ldr r2, _08041E18
|
|
_08041DDE:
|
|
ldr r1, _08041E28
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
cmp r1, 0
|
|
beq _08041E2C
|
|
lsls r0, r6, 1
|
|
mov r3, r10
|
|
adds r4, r0, r3
|
|
ldrh r0, [r4]
|
|
cmp r0, r1
|
|
bne _08041E2C
|
|
adds r1, r0, 0
|
|
adds r0, r7, 0
|
|
str r2, [sp, 0x8]
|
|
bl pokemon_moveset_pad_
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r0, r2
|
|
bne _08041E38
|
|
ldrh r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_803B8D4
|
|
b _08041E38
|
|
.align 2, 0
|
|
_08041E14: .4byte 0x030004d8
|
|
_08041E18: .4byte 0x0000ffff
|
|
_08041E1C: .4byte 0x00000121
|
|
_08041E20: .4byte 0x030004e0
|
|
_08041E24: .4byte 0x03000500
|
|
_08041E28: .4byte 0x03000470
|
|
_08041E2C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, [sp, 0x4]
|
|
cmp r5, r0
|
|
bcc _08041DDE
|
|
_08041E38:
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bhi _08041E50
|
|
ldr r0, _08041E60
|
|
lsls r1, r6, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
mov r10, r0
|
|
cmp r1, 0
|
|
bne _08041DD0
|
|
_08041E50:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041E60: .4byte 0x030004e0
|
|
thumb_func_end daycare_build_child_moveset
|
|
|
|
thumb_func_start sub_8041E64
|
|
sub_8041E64: @ 8041E64
|
|
adds r3, r0, 0
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
movs r2, 0
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r1, 0x8D
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
strb r2, [r0]
|
|
bx lr
|
|
thumb_func_end sub_8041E64
|
|
|
|
thumb_func_start sub_8041E7C
|
|
sub_8041E7C: @ 8041E7C
|
|
push {lr}
|
|
ldr r0, _08041E88
|
|
bl sub_8041E64
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08041E88: .4byte 0x020286d0
|
|
thumb_func_end sub_8041E7C
|
|
|
|
thumb_func_start incense_effects
|
|
incense_effects: @ 8041E8C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrh r1, [r4]
|
|
movs r7, 0xB4
|
|
lsls r7, 1
|
|
cmp r1, r7
|
|
beq _08041EA4
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _08041EE6
|
|
_08041EA4:
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl PokemonGetEncryptedField
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
movs r1, 0xC
|
|
bl PokemonGetEncryptedField
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrh r0, [r4]
|
|
cmp r0, r7
|
|
bne _08041ED0
|
|
cmp r6, 0xDD
|
|
beq _08041ED0
|
|
cmp r2, 0xDD
|
|
beq _08041ED0
|
|
movs r0, 0xCA
|
|
strh r0, [r4]
|
|
_08041ED0:
|
|
ldrh r1, [r4]
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _08041EE6
|
|
cmp r6, 0xDC
|
|
beq _08041EE6
|
|
cmp r2, 0xDC
|
|
beq _08041EE6
|
|
movs r0, 0xB7
|
|
strh r0, [r4]
|
|
_08041EE6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end incense_effects
|
|
|
|
thumb_func_start sub_8041EEC
|
|
sub_8041EEC: @ 8041EEC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
movs r4, 0
|
|
movs r7, 0x1
|
|
_08041EFC:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
lsls r1, r4, 1
|
|
add r1, sp
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x84
|
|
bne _08041F26
|
|
adds r0, r4, 0
|
|
eors r0, r7
|
|
strb r0, [r6]
|
|
strb r4, [r6, 0x1]
|
|
b _08041F3C
|
|
_08041F26:
|
|
adds r0, r5, 0
|
|
bl pokemon_roll_gender
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFE
|
|
bne _08041F3C
|
|
strb r4, [r6]
|
|
adds r0, r4, 0
|
|
eors r0, r7
|
|
strb r0, [r6, 0x1]
|
|
_08041F3C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x1
|
|
bls _08041EFC
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
bl sub_8041870
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x1D
|
|
bne _08041F6E
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041F6E
|
|
movs r4, 0x20
|
|
_08041F6E:
|
|
ldr r0, _08041FC0
|
|
cmp r4, r0
|
|
bne _08041F88
|
|
subs r0, 0x6B
|
|
add r0, r8
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041F88
|
|
movs r4, 0xC1
|
|
lsls r4, 1
|
|
_08041F88:
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x84
|
|
bne _08041FB2
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
add r0, r8
|
|
bl pokemon_roll_gender
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFE
|
|
beq _08041FB2
|
|
ldrb r1, [r6, 0x1]
|
|
ldrb r0, [r6]
|
|
strb r0, [r6, 0x1]
|
|
strb r1, [r6]
|
|
_08041FB2:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08041FC0: .4byte 0x00000183
|
|
thumb_func_end sub_8041EEC
|
|
|
|
thumb_func_start sub_8041FC4
|
|
sub_8041FC4: @ 8041FC4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x6C
|
|
adds r5, r0, 0
|
|
add r6, sp, 0x64
|
|
adds r1, r6, 0
|
|
bl sub_8041EEC
|
|
add r4, sp, 0x68
|
|
strh r0, [r4]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl incense_effects
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
adds r2, r5, 0
|
|
bl sub_80420FC
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl sub_80419A8
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 4
|
|
adds r1, r5, r1
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 4
|
|
adds r2, r5, r2
|
|
mov r0, sp
|
|
bl daycare_build_child_moveset
|
|
mov r2, sp
|
|
adds r2, 0x6A
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
mov r0, sp
|
|
movs r1, 0x2D
|
|
bl pokemon_setattr
|
|
ldr r0, _08042040
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
mov r1, sp
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
bl party_compaction
|
|
bl calc_player_party_count
|
|
adds r0, r5, 0
|
|
bl sub_8041E64
|
|
add sp, 0x6C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042040: .4byte 0x03004360
|
|
thumb_func_end sub_8041FC4
|
|
|
|
thumb_func_start sub_8042044
|
|
sub_8042044: @ 8042044
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
adds r1, r5, 0
|
|
movs r2, 0x5
|
|
movs r3, 0x20
|
|
bl create_pokemon_set_level
|
|
movs r0, 0x12
|
|
add r0, sp
|
|
mov r8, r0
|
|
strb r4, [r0]
|
|
movs r1, 0x4
|
|
add r0, sp, 0x10
|
|
strh r1, [r0]
|
|
mov r4, sp
|
|
adds r4, 0x13
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
mov r0, r9
|
|
strb r0, [r4]
|
|
adds r0, r7, 0
|
|
movs r1, 0x26
|
|
add r2, sp, 0x10
|
|
bl pokemon_setattr
|
|
ldr r2, _080420F4
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
bl pokemon_setattr
|
|
lsls r2, r5, 3
|
|
subs r2, r5
|
|
lsls r2, 2
|
|
ldr r0, _080420F8
|
|
adds r2, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0x20
|
|
bl pokemon_setattr
|
|
adds r0, r7, 0
|
|
movs r1, 0x24
|
|
mov r2, r8
|
|
bl pokemon_setattr
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
cmp r6, 0
|
|
beq _080420D6
|
|
add r2, sp, 0x14
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
adds r0, r7, 0
|
|
movs r1, 0x23
|
|
bl pokemon_setattr
|
|
_080420D6:
|
|
mov r2, sp
|
|
adds r2, 0x15
|
|
mov r0, r9
|
|
strb r0, [r2]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2D
|
|
bl pokemon_setattr
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080420F4: .4byte gUnknown_08209AD4
|
|
_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
|
|
thumb_func_end sub_8042044
|
|
|
|
thumb_func_start sub_80420FC
|
|
sub_80420FC: @ 80420FC
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x14
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
bl Random
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
ldrh r1, [r4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r4, 0
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x5
|
|
movs r3, 0x20
|
|
bl create_pokemon_set_level
|
|
movs r1, 0x12
|
|
add r1, sp
|
|
mov r9, r1
|
|
strb r4, [r1]
|
|
movs r1, 0x4
|
|
add r0, sp, 0x10
|
|
strh r1, [r0]
|
|
mov r4, sp
|
|
adds r4, 0x13
|
|
mov r0, r8
|
|
strb r0, [r4]
|
|
adds r0, r6, 0
|
|
movs r1, 0x26
|
|
add r2, sp, 0x10
|
|
bl pokemon_setattr
|
|
ldr r2, _08042198
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl pokemon_setattr
|
|
lsls r2, r5, 3
|
|
subs r2, r5
|
|
lsls r2, 2
|
|
ldr r0, _0804219C
|
|
adds r2, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x20
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
movs r1, 0x24
|
|
mov r2, r9
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042198: .4byte gUnknown_08209AD4
|
|
_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
|
|
thumb_func_end sub_80420FC
|
|
|
|
thumb_func_start sp0B8_daycare
|
|
sp0B8_daycare: @ 80421A0
|
|
push {lr}
|
|
ldr r0, _080421AC
|
|
bl sub_8041FC4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080421AC: .4byte 0x020286d0
|
|
thumb_func_end sp0B8_daycare
|
|
|
|
thumb_func_start sub_80421B0
|
|
sub_80421B0: @ 80421B0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r7, r0, 0
|
|
movs r2, 0
|
|
movs r6, 0
|
|
adds r5, r7, 0
|
|
_080421BC:
|
|
lsls r4, r6, 2
|
|
adds r0, r5, 0
|
|
movs r1, 0x5
|
|
str r2, [sp, 0x4]
|
|
bl PokemonGetEncryptedField
|
|
ldr r2, [sp, 0x4]
|
|
cmp r0, 0
|
|
beq _080421DE
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r1, r7, r0
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
adds r2, 0x1
|
|
_080421DE:
|
|
adds r5, 0x50
|
|
adds r6, 0x1
|
|
cmp r6, 0x1
|
|
bls _080421BC
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08042226
|
|
cmp r2, 0x2
|
|
bne _08042226
|
|
subs r1, 0x4
|
|
adds r0, r7, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08042226
|
|
adds r0, r7, 0
|
|
bl daycare_relationship_score
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08042240
|
|
bl __udivsi3
|
|
cmp r4, r0
|
|
bls _08042226
|
|
bl sub_8041940
|
|
_08042226:
|
|
movs r0, 0x8D
|
|
lsls r0, 1
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _08042290
|
|
movs r6, 0
|
|
b _08042288
|
|
.align 2, 0
|
|
_08042240: .4byte 0x0000ffff
|
|
_08042244:
|
|
movs r0, 0x64
|
|
adds r1, r6, 0
|
|
muls r1, r0
|
|
ldr r0, _08042270
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
cmp r0, 0
|
|
beq _08042286
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl PokemonGetField
|
|
str r0, [sp]
|
|
cmp r0, 0
|
|
bne _08042278
|
|
ldr r0, _08042274
|
|
strh r6, [r0]
|
|
movs r0, 0x1
|
|
b _08042292
|
|
.align 2, 0
|
|
_08042270: .4byte 0x03004360
|
|
_08042274: .4byte 0x0202e8cc
|
|
_08042278:
|
|
subs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
_08042286:
|
|
adds r6, 0x1
|
|
_08042288:
|
|
ldr r0, _0804229C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _08042244
|
|
_08042290:
|
|
movs r0, 0
|
|
_08042292:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804229C: .4byte 0x03004350
|
|
thumb_func_end sub_80421B0
|
|
|
|
thumb_func_start sub_80422A0
|
|
sub_80422A0: @ 80422A0
|
|
push {lr}
|
|
ldr r0, _080422B0
|
|
bl sub_80421B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080422B0: .4byte 0x020286d0
|
|
thumb_func_end sub_80422A0
|
|
|
|
thumb_func_start sub_80422B4
|
|
sub_80422B4: @ 80422B4
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
bx lr
|
|
thumb_func_end sub_80422B4
|
|
|
|
thumb_func_start sub_80422C4
|
|
sub_80422C4: @ 80422C4
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
beq _080422FC
|
|
ldr r1, _0804231C
|
|
adds r0, r6, 0
|
|
bl pokemon_get_nick_
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl PokemonGetEncryptedField
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, _08042320
|
|
adds r0, r6, 0
|
|
movs r1, 0x7
|
|
adds r2, r5, 0
|
|
bl PokemonGetEncryptedField
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl ConvertInternationalString
|
|
_080422FC:
|
|
adds r4, r6, 0
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
cmp r0, 0
|
|
beq _08042314
|
|
ldr r1, _08042324
|
|
adds r0, r4, 0
|
|
bl pokemon_get_nick_
|
|
_08042314:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804231C: .4byte 0x020231cc
|
|
_08042320: .4byte 0x020233cc
|
|
_08042324: .4byte 0x020232cc
|
|
thumb_func_end sub_80422C4
|
|
|
|
thumb_func_start sub_8042328
|
|
sub_8042328: @ 8042328
|
|
push {r4-r6,lr}
|
|
ldr r6, _08042354
|
|
ldrb r0, [r6]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, _08042358
|
|
adds r0, r4
|
|
ldr r1, _0804235C
|
|
bl pokemon_get_nick_
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042354: .4byte 0x03005ce0
|
|
_08042358: .4byte 0x03004360
|
|
_0804235C: .4byte 0x020231cc
|
|
thumb_func_end sub_8042328
|
|
|
|
thumb_func_start sp0B5_daycare
|
|
sp0B5_daycare: @ 8042360
|
|
push {lr}
|
|
ldr r0, _0804236C
|
|
bl sub_80422C4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804236C: .4byte 0x020286d0
|
|
thumb_func_end sp0B5_daycare
|
|
|
|
thumb_func_start sp0B6_daycare
|
|
sp0B6_daycare: @ 8042370
|
|
push {r4,lr}
|
|
ldr r4, _08042384
|
|
adds r0, r4, 0
|
|
bl sub_80422B4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042388
|
|
movs r0, 0x1
|
|
b _080423A0
|
|
.align 2, 0
|
|
_08042384: .4byte 0x020286d0
|
|
_08042388:
|
|
adds r0, r4, 0
|
|
bl daycare_count_pokemon
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0804239A
|
|
movs r0, 0
|
|
b _080423A0
|
|
_0804239A:
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080423A0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sp0B6_daycare
|
|
|
|
thumb_func_start sub_80423A8
|
|
sub_80423A8: @ 80423A8
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
movs r4, 0
|
|
adds r1, r0, 0
|
|
_080423B0:
|
|
movs r3, 0
|
|
ldrh r0, [r1]
|
|
adds r2, r5, 0
|
|
_080423B6:
|
|
ldrh r6, [r2]
|
|
cmp r0, r6
|
|
bne _080423C0
|
|
movs r0, 0x1
|
|
b _080423D2
|
|
_080423C0:
|
|
adds r2, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x1
|
|
ble _080423B6
|
|
adds r1, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _080423B0
|
|
movs r0, 0
|
|
_080423D2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80423A8
|
|
|
|
thumb_func_start daycare_relationship_score
|
|
daycare_relationship_score: @ 80423D8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
movs r1, 0
|
|
mov r8, r1
|
|
mov r2, sp
|
|
adds r2, 0x8
|
|
str r2, [sp, 0x1C]
|
|
add r1, sp, 0xC
|
|
mov r10, r1
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x20]
|
|
mov r1, sp
|
|
adds r1, 0x2
|
|
ldr r2, _08042488
|
|
mov r9, r2
|
|
ldr r5, [sp, 0x1C]
|
|
adds r7, r1, 0
|
|
mov r6, sp
|
|
ldr r1, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
mov r2, r10
|
|
str r2, [sp, 0x28]
|
|
adds r4, r0, 0
|
|
_0804240E:
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetEncryptedField
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl PokemonGetEncryptedField
|
|
ldr r1, [sp, 0x28]
|
|
stm r1!, {r0}
|
|
str r1, [sp, 0x28]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PokemonGetEncryptedField
|
|
adds r1, r0, 0
|
|
ldrh r0, [r5]
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [sp, 0x24]
|
|
stm r2!, {r0}
|
|
str r2, [sp, 0x24]
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x14]
|
|
strh r0, [r6]
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x15]
|
|
strh r0, [r7]
|
|
adds r5, 0x2
|
|
adds r7, 0x4
|
|
adds r6, 0x4
|
|
adds r4, 0x50
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x1
|
|
bls _0804240E
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
cmp r1, 0xF
|
|
beq _08042484
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0xF
|
|
beq _08042484
|
|
cmp r1, 0xD
|
|
bne _0804248C
|
|
cmp r0, 0xD
|
|
bne _08042490
|
|
_08042484:
|
|
movs r0, 0
|
|
b _080424E4
|
|
.align 2, 0
|
|
_08042488: .4byte gBaseStats
|
|
_0804248C:
|
|
cmp r0, 0xD
|
|
bne _0804249C
|
|
_08042490:
|
|
ldr r1, [sp, 0xC]
|
|
mov r2, r10
|
|
ldr r0, [r2, 0x4]
|
|
cmp r1, r0
|
|
beq _080424DE
|
|
b _080424E2
|
|
_0804249C:
|
|
ldr r0, [sp, 0x14]
|
|
ldr r2, [sp, 0x20]
|
|
ldr r1, [r2, 0x4]
|
|
cmp r0, r1
|
|
beq _08042484
|
|
cmp r0, 0xFF
|
|
beq _08042484
|
|
cmp r1, 0xFF
|
|
beq _08042484
|
|
add r1, sp, 0x4
|
|
mov r0, sp
|
|
bl sub_80423A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042484
|
|
ldr r0, [sp, 0x1C]
|
|
ldrh r1, [r0, 0x2]
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
bne _080424D4
|
|
ldr r1, [sp, 0xC]
|
|
mov r2, r10
|
|
ldr r0, [r2, 0x4]
|
|
cmp r1, r0
|
|
beq _080424E2
|
|
movs r0, 0x46
|
|
b _080424E4
|
|
_080424D4:
|
|
ldr r1, [sp, 0xC]
|
|
mov r2, r10
|
|
ldr r0, [r2, 0x4]
|
|
cmp r1, r0
|
|
bne _080424E2
|
|
_080424DE:
|
|
movs r0, 0x14
|
|
b _080424E4
|
|
_080424E2:
|
|
movs r0, 0x32
|
|
_080424E4:
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end daycare_relationship_score
|
|
|
|
thumb_func_start daycare_relationship_score_from_savegame
|
|
daycare_relationship_score_from_savegame: @ 80424F4
|
|
push {lr}
|
|
ldr r0, _08042504
|
|
bl daycare_relationship_score
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042504: .4byte 0x020286d0
|
|
thumb_func_end daycare_relationship_score_from_savegame
|
|
|
|
thumb_func_start sp0B9_daycare_relationship_comment
|
|
sp0B9_daycare_relationship_comment: @ 8042508
|
|
push {lr}
|
|
bl daycare_relationship_score_from_savegame
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r2, r0, 0
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
bne _0804251C
|
|
movs r1, 0x3
|
|
_0804251C:
|
|
cmp r0, 0x14
|
|
bne _08042522
|
|
movs r1, 0x2
|
|
_08042522:
|
|
cmp r0, 0x32
|
|
bne _08042528
|
|
movs r1, 0x1
|
|
_08042528:
|
|
cmp r2, 0x46
|
|
bne _0804252E
|
|
movs r1, 0
|
|
_0804252E:
|
|
ldr r0, _08042540
|
|
ldr r2, _08042544
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042540: .4byte 0x020234cc
|
|
_08042544: .4byte gUnknown_08209AC4
|
|
thumb_func_end sp0B9_daycare_relationship_comment
|
|
|
|
thumb_func_start sub_8042548
|
|
sub_8042548: @ 8042548
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
mov r2, sp
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r2]
|
|
movs r3, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _0804258C
|
|
_08042564:
|
|
adds r1, r4, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB5
|
|
bne _08042572
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
_08042572:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB6
|
|
bne _0804257E
|
|
ldrb r0, [r2, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x1]
|
|
_0804257E:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r0, r4, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08042564
|
|
_0804258C:
|
|
cmp r5, 0
|
|
bne _080425A0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080425A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _080425B4
|
|
_080425A0:
|
|
cmp r5, 0xFE
|
|
bne _080425B8
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _080425B8
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080425B8
|
|
_080425B4:
|
|
movs r0, 0x1
|
|
b _080425BA
|
|
_080425B8:
|
|
movs r0, 0
|
|
_080425BA:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042548
|
|
|
|
thumb_func_start sub_80425C4
|
|
sub_80425C4: @ 80425C4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0
|
|
bne _080425E4
|
|
movs r1, 0
|
|
bl sub_8042548
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08042600
|
|
ldr r1, _080425E0
|
|
b _08042602
|
|
.align 2, 0
|
|
_080425E0: .4byte gUnknown_0820C33D
|
|
_080425E4:
|
|
cmp r1, 0xFE
|
|
bne _08042600
|
|
adds r0, r4, 0
|
|
movs r1, 0xFE
|
|
bl sub_8042548
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08042600
|
|
ldr r1, _080425FC
|
|
b _08042602
|
|
.align 2, 0
|
|
_080425FC: .4byte gUnknown_0820C33F
|
|
_08042600:
|
|
ldr r1, _08042610
|
|
_08042602:
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042610: .4byte gUnknown_0820C341
|
|
thumb_func_end sub_80425C4
|
|
|
|
thumb_func_start sub_8042614
|
|
sub_8042614: @ 8042614
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
bl pokemon_roll_gender
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_80425C4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042614
|
|
|
|
thumb_func_start sub_8042630
|
|
sub_8042630: @ 8042630
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x28
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
movs r0, 0xFF
|
|
strb r0, [r7]
|
|
movs r6, 0
|
|
add r0, sp, 0x14
|
|
mov r9, r0
|
|
_08042648:
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r4, r0, 4
|
|
add r4, r8
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r5, r1, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl pokemon_get_nick_
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8042614
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x1
|
|
bls _08042648
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl StringCopy
|
|
ldr r4, _080426A8
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
adds r0, r7, 0
|
|
mov r1, r9
|
|
bl StringAppend
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
ldr r1, _080426AC
|
|
adds r0, r7, 0
|
|
bl StringAppend
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080426A8: .4byte gUnknown_0842CC28
|
|
_080426AC: .4byte gUnknown_0842CC2A
|
|
thumb_func_end sub_8042630
|
|
|
|
thumb_func_start sub_80426B0
|
|
sub_80426B0: @ 80426B0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0xFF
|
|
strb r0, [r4]
|
|
movs r5, 0
|
|
movs r0, 0xFC
|
|
mov r8, r0
|
|
movs r7, 0x14
|
|
_080426C6:
|
|
lsls r2, r5, 2
|
|
adds r0, r2, r5
|
|
lsls r0, 4
|
|
adds r0, r6, r0
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r1, r6, r3
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl sub_8041664
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x34
|
|
strb r0, [r4]
|
|
mov r0, r8
|
|
strb r0, [r4, 0x1]
|
|
strb r7, [r4, 0x2]
|
|
movs r0, 0x6
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0x4
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r4, r0, 0
|
|
mov r3, r8
|
|
strb r3, [r4]
|
|
strb r7, [r4, 0x1]
|
|
movs r0, 0
|
|
strb r0, [r4, 0x2]
|
|
adds r0, r4, 0x3
|
|
ldr r1, _08042728
|
|
bl StringCopy
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _080426C6
|
|
movs r0, 0xFF
|
|
strb r0, [r4]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042728: .4byte gUnknown_0842CC28
|
|
thumb_func_end sub_80426B0
|
|
|
|
thumb_func_start sub_804272C
|
|
sub_804272C: @ 804272C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
ldr r0, _08042760
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042768
|
|
ldr r0, _08042764
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x8]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08042816
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0804278A
|
|
.align 2, 0
|
|
_08042760: .4byte 0x03001770
|
|
_08042764: .4byte 0x03004b20
|
|
_08042768:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804279C
|
|
ldr r0, _08042798
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x8]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x2
|
|
beq _08042816
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
_0804278A:
|
|
bl MoveMenuCursor
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
b _08042816
|
|
.align 2, 0
|
|
_08042798: .4byte 0x03004b20
|
|
_0804279C:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427E8
|
|
bl sub_8072DEC
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r3, _080427DC
|
|
ldr r2, _080427E0
|
|
ldr r1, _080427E4
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r2]
|
|
strb r0, [r3]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
movs r0, 0xF
|
|
movs r1, 0x6
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl Reset
|
|
bl script_env_2_enable_and_set_ctx_running
|
|
b _08042816
|
|
.align 2, 0
|
|
_080427DC: .4byte 0x03005ce0
|
|
_080427E0: .4byte 0x0202e8dc
|
|
_080427E4: .4byte 0x03004b20
|
|
_080427E8:
|
|
movs r4, 0x2
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042816
|
|
bl sub_8072DEC
|
|
ldr r0, _0804281C
|
|
ldr r1, _08042820
|
|
strh r4, [r1]
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
movs r0, 0xF
|
|
movs r1, 0x6
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl Reset
|
|
bl script_env_2_enable_and_set_ctx_running
|
|
_08042816:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804281C: .4byte 0x03005ce0
|
|
_08042820: .4byte 0x0202e8dc
|
|
thumb_func_end sub_804272C
|
|
|
|
thumb_func_start sub_8042824
|
|
sub_8042824: @ 8042824
|
|
push {r4,lr}
|
|
sub sp, 0x6C
|
|
movs r0, 0xF
|
|
movs r1, 0x6
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl DrawDefaultWindow
|
|
ldr r4, _08042880
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x8
|
|
bl sub_8042630
|
|
add r0, sp, 0x8
|
|
movs r1, 0x10
|
|
movs r2, 0x7
|
|
bl Print
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x8
|
|
bl sub_80426B0
|
|
add r0, sp, 0x8
|
|
movs r1, 0xCE
|
|
movs r2, 0x38
|
|
movs r3, 0x1
|
|
bl sub_80729D8
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xD
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x7
|
|
movs r3, 0x3
|
|
bl InitMenu
|
|
ldr r0, _08042884
|
|
movs r1, 0x3
|
|
bl CreateTask
|
|
add sp, 0x6C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042880: .4byte 0x020286d0
|
|
_08042884: .4byte sub_804272C
|
|
thumb_func_end sub_8042824
|
|
|
|
thumb_func_start sub_8042888
|
|
sub_8042888: @ 8042888
|
|
push {lr}
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl sub_806AFAC
|
|
ldr r1, _0804289C
|
|
ldr r0, _080428A0
|
|
str r0, [r1, 0x8]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804289C: .4byte 0x03001770
|
|
_080428A0: .4byte c2_exit_to_overworld_2_switch
|
|
thumb_func_end sub_8042888
|
|
|
|
thumb_func_start sub_80428A4
|
|
sub_80428A4: @ 80428A4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x48
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
movs r4, 0
|
|
add r7, sp, 0x18
|
|
mov r0, sp
|
|
adds r0, 0x31
|
|
str r0, [sp, 0x38]
|
|
mov r1, sp
|
|
adds r1, 0x32
|
|
str r1, [sp, 0x3C]
|
|
add r0, sp, 0x30
|
|
mov r9, r0
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x40]
|
|
mov r0, sp
|
|
adds r0, 0x34
|
|
str r0, [sp, 0x44]
|
|
_080428DE:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
adds r0, r6, 0
|
|
bl PokemonGetField
|
|
lsls r1, r4, 1
|
|
add r1, sp
|
|
adds r1, 0x10
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080428DE
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
mov r8, r0
|
|
movs r4, 0
|
|
_08042906:
|
|
adds r1, r4, 0
|
|
adds r1, 0x27
|
|
adds r0, r6, 0
|
|
bl PokemonGetField
|
|
lsls r1, r4, 2
|
|
adds r1, r7, r1
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _08042906
|
|
adds r0, r6, 0
|
|
movs r1, 0x25
|
|
bl PokemonGetField
|
|
ldr r1, [sp, 0x38]
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0x8
|
|
bl PokemonGetField
|
|
ldr r1, [sp, 0x3C]
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0x22
|
|
bl PokemonGetField
|
|
str r0, [sp, 0x34]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
mov r1, r10
|
|
movs r2, 0x5
|
|
movs r3, 0x20
|
|
bl create_pokemon_set_level
|
|
movs r4, 0
|
|
_0804295E:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
lsls r0, r4, 1
|
|
mov r2, sp
|
|
adds r2, r0
|
|
adds r2, 0x10
|
|
adds r0, r5, 0
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0804295E
|
|
movs r4, 0
|
|
_0804297C:
|
|
adds r1, r4, 0
|
|
adds r1, 0x27
|
|
lsls r2, r4, 2
|
|
adds r2, r7, r2
|
|
adds r0, r5, 0
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _0804297C
|
|
movs r0, 0x2
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
mov r2, r9
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
movs r1, 0x25
|
|
ldr r2, [sp, 0x38]
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
ldr r2, [sp, 0x3C]
|
|
bl pokemon_setattr
|
|
movs r0, 0x78
|
|
ldr r1, [sp, 0x40]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x20
|
|
ldr r2, [sp, 0x40]
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
movs r1, 0x22
|
|
ldr r2, [sp, 0x44]
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
add sp, 0x48
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80428A4
|
|
|
|
thumb_func_start sub_80429EC
|
|
sub_80429EC: @ 80429EC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
adds r5, r0, 0
|
|
muls r5, r1
|
|
ldr r0, _08042A9C
|
|
adds r5, r0
|
|
ldr r1, _08042AA0
|
|
adds r0, r5, 0
|
|
bl sub_80428A4
|
|
add r2, sp, 0xC
|
|
movs r6, 0
|
|
strb r6, [r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl GetSpeciesName
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8090D90
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_8090D90
|
|
ldr r1, _08042AA4
|
|
adds r0, r5, 0
|
|
bl pokemon_get_nick
|
|
mov r2, sp
|
|
adds r2, 0xE
|
|
movs r0, 0x4
|
|
strh r0, [r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x26
|
|
bl pokemon_setattr
|
|
add r2, sp, 0x10
|
|
strh r6, [r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x24
|
|
bl pokemon_setattr
|
|
bl sav1_map_get_name
|
|
mov r2, sp
|
|
adds r2, 0x12
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x23
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
bl sub_8040B1C
|
|
adds r0, r5, 0
|
|
bl pokemon_calc_effective_stats
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042A9C: .4byte 0x03004360
|
|
_08042AA0: .4byte 0x030045c0
|
|
_08042AA4: .4byte 0x020231cc
|
|
thumb_func_end sub_80429EC
|
|
|
|
thumb_func_start sub_8042AA8
|
|
sub_8042AA8: @ 8042AA8
|
|
push {lr}
|
|
ldr r0, _08042AB8
|
|
ldrb r0, [r0]
|
|
bl sub_80429EC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042AB8: .4byte 0x0202e8cc
|
|
thumb_func_end sub_8042AA8
|
|
|
|
thumb_func_start sub_8042ABC
|
|
sub_8042ABC: @ 8042ABC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x20
|
|
adds r5, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
adds r0, r5, r0
|
|
mov r1, sp
|
|
bl pokemon_get_nick_
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r1, r0, 3
|
|
adds r0, r5, r1
|
|
adds r0, 0xC0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08042B40
|
|
adds r0, r1, 0
|
|
adds r0, 0xA0
|
|
adds r5, r0
|
|
adds r6, r5, 0
|
|
adds r6, 0x2C
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
bne _08042B08
|
|
ldr r0, _08042B30
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
beq _08042B40
|
|
_08042B08:
|
|
ldr r0, _08042B34
|
|
mov r1, sp
|
|
bl StringCopy
|
|
ldr r4, _08042B38
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r0, _08042B3C
|
|
adds r1, r6, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
bl sub_814A568
|
|
movs r0, 0x1
|
|
b _08042B42
|
|
.align 2, 0
|
|
_08042B30: .4byte gSaveBlock2
|
|
_08042B34: .4byte 0x020231cc
|
|
_08042B38: .4byte 0x020232cc
|
|
_08042B3C: .4byte 0x020233cc
|
|
_08042B40:
|
|
movs r0, 0
|
|
_08042B42:
|
|
add sp, 0x20
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042ABC
|
|
|
|
thumb_func_start sub_8042B4C
|
|
sub_8042B4C: @ 8042B4C
|
|
push {lr}
|
|
ldr r0, _08042B60
|
|
ldr r1, _08042B64
|
|
ldrb r1, [r1]
|
|
bl sub_8042ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042B60: .4byte 0x020286d0
|
|
_08042B64: .4byte 0x0202e8cc
|
|
thumb_func_end sub_8042B4C
|
|
|
|
thumb_func_start sub_8042B68
|
|
sub_8042B68: @ 8042B68
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, r3, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
lsls r2, 24
|
|
lsrs r1, r2, 24
|
|
adds r2, r1, 0
|
|
movs r5, 0
|
|
mov r9, r5
|
|
movs r7, 0
|
|
cmp r3, 0
|
|
bne _08042B96
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _08042BB0
|
|
adds r7, r1, r0
|
|
movs r5, 0x1
|
|
_08042B96:
|
|
cmp r3, 0x1
|
|
bne _08042BA6
|
|
movs r0, 0x64
|
|
adds r1, r2, 0
|
|
muls r1, r0
|
|
ldr r0, _08042BB0
|
|
adds r7, r1, r0
|
|
movs r5, 0x3
|
|
_08042BA6:
|
|
cmp r6, 0
|
|
beq _08042BB4
|
|
cmp r6, 0x1
|
|
beq _08042C14
|
|
b _08042C50
|
|
.align 2, 0
|
|
_08042BB0: .4byte 0x03004360
|
|
_08042BB4:
|
|
adds r0, r7, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
mov r8, r0
|
|
lsls r0, r5, 3
|
|
ldr r1, _08042C04
|
|
adds r0, r1
|
|
ldr r1, _08042C08
|
|
lsls r2, r5, 2
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
ldr r3, _08042C0C
|
|
ldr r6, _08042C10
|
|
lsls r4, 1
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
adds r4, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r4, r8
|
|
str r4, [sp, 0x8]
|
|
bl sub_800D334
|
|
adds r0, r7, 0
|
|
bl sub_8040990
|
|
bl LoadCompressedObjectPalette
|
|
b _08042C50
|
|
.align 2, 0
|
|
_08042C04: .4byte gMonFrontPicTable
|
|
_08042C08: .4byte gMonFrontPicCoords
|
|
_08042C0C: .4byte 0x02000000
|
|
_08042C10: .4byte gUnknown_081FAF4C
|
|
_08042C14:
|
|
adds r0, r7, 0
|
|
bl sub_8040990
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r5, 0
|
|
bl gpu_pal_obj_decompress_and_apply
|
|
ldr r0, _08042C60
|
|
movs r1, 0x78
|
|
movs r2, 0x46
|
|
movs r3, 0x6
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r4, _08042C64
|
|
lsls r1, r0, 4
|
|
add r1, r9
|
|
lsls r1, 2
|
|
adds r2, r1, r4
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r3, 0x4
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
adds r4, 0x1C
|
|
adds r1, r4
|
|
ldr r0, _08042C68
|
|
str r0, [r1]
|
|
_08042C50:
|
|
mov r0, r9
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042C60: .4byte 0x02024e8c
|
|
_08042C64: .4byte 0x02020004
|
|
_08042C68: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8042B68
|
|
|
|
thumb_func_start sub_8042C6C
|
|
sub_8042C6C: @ 8042C6C
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8042C6C
|
|
|
|
thumb_func_start sub_8042C80
|
|
sub_8042C80: @ 8042C80
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl script_env_2_enable
|
|
ldr r0, _08042CA8
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042CA8: .4byte sub_8042CAC
|
|
thumb_func_end sub_8042C80
|
|
|
|
thumb_func_start sub_8042CAC
|
|
sub_8042CAC: @ 8042CAC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08042CD8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042CD0
|
|
ldr r0, _08042CDC
|
|
bl SetMainCallback2
|
|
ldr r1, _08042CE0
|
|
ldr r0, _08042CE4
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08042CD0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042CD8: .4byte 0x0202f388
|
|
_08042CDC: .4byte sub_8042CE8
|
|
_08042CE0: .4byte 0x0300485c
|
|
_08042CE4: .4byte sub_8080990
|
|
thumb_func_end sub_8042CAC
|
|
|
|
thumb_func_start sub_8042CE8
|
|
sub_8042CE8: @ 8042CE8
|
|
push {r4-r7,lr}
|
|
ldr r0, _08042D04
|
|
ldr r1, _08042D08
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bls _08042CF8
|
|
b _08042F6E
|
|
_08042CF8:
|
|
lsls r0, 2
|
|
ldr r1, _08042D0C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08042D04: .4byte 0x03001770
|
|
_08042D08: .4byte 0x0000043c
|
|
_08042D0C: .4byte _08042D10
|
|
.align 2, 0
|
|
_08042D10:
|
|
.4byte _08042D34
|
|
.4byte _08042D90
|
|
.4byte _08042DC4
|
|
.4byte _08042E20
|
|
.4byte _08042E40
|
|
.4byte _08042E74
|
|
.4byte _08042E88
|
|
.4byte _08042EB0
|
|
.4byte _08042F40
|
|
_08042D34:
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r1, _08042D74
|
|
ldr r0, _08042D78
|
|
str r0, [r1]
|
|
ldr r1, _08042D7C
|
|
ldrh r1, [r1]
|
|
strb r1, [r0, 0x4]
|
|
adds r0, 0x3A
|
|
strb r2, [r0]
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, _08042D80
|
|
bl SetVBlankCallback
|
|
ldr r1, _08042D84
|
|
ldr r2, _08042D88
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl current_map_music_get
|
|
ldr r1, _08042D8C
|
|
strh r0, [r1]
|
|
b _08042F6E
|
|
.align 2, 0
|
|
_08042D74: .4byte 0x0300481c
|
|
_08042D78: .4byte 0x02018000
|
|
_08042D7C: .4byte 0x0202e8cc
|
|
_08042D80: .4byte sub_8042C6C
|
|
_08042D84: .4byte 0x03001770
|
|
_08042D88: .4byte 0x0000043c
|
|
_08042D8C: .4byte 0x0202e8ce
|
|
_08042D90:
|
|
ldr r5, _08042DBC
|
|
adds r0, r5, 0
|
|
bl SetUpWindowConfig
|
|
ldr r4, _08042DC0
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
adds r1, r5, 0
|
|
bl InitWindowFromConfig
|
|
movs r0, 0x14
|
|
bl sub_8064EF4
|
|
ldr r1, [r4]
|
|
adds r1, 0x38
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
bl sub_8064F08
|
|
b _08042F04
|
|
.align 2, 0
|
|
_08042DBC: .4byte gWindowConfig_81E6F84
|
|
_08042DC0: .4byte 0x0300481c
|
|
_08042DC4:
|
|
ldr r0, _08042DFC
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r0, _08042E00
|
|
ldr r4, _08042E04
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
ldr r1, _08042E08
|
|
str r4, [r1]
|
|
ldr r0, _08042E0C
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _08042E10
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r0, _08042E14
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r1, _08042E18
|
|
ldr r2, _08042E1C
|
|
adds r1, r2
|
|
b _08042F0A
|
|
.align 2, 0
|
|
_08042DFC: .4byte gUnknown_08D00000
|
|
_08042E00: .4byte gUnknown_08D00524
|
|
_08042E04: .4byte 0x02000000
|
|
_08042E08: .4byte 0x040000d4
|
|
_08042E0C: .4byte 0x06002800
|
|
_08042E10: .4byte 0x80000280
|
|
_08042E14: .4byte gUnknown_08D004E0
|
|
_08042E18: .4byte 0x03001770
|
|
_08042E1C: .4byte 0x0000043c
|
|
_08042E20:
|
|
ldr r0, _08042E34
|
|
bl LoadSpriteSheet
|
|
ldr r0, _08042E38
|
|
bl LoadSpriteSheet
|
|
ldr r0, _08042E3C
|
|
bl LoadSpritePalette
|
|
b _08042F04
|
|
.align 2, 0
|
|
_08042E34: .4byte gUnknown_0820A3B0
|
|
_08042E38: .4byte gUnknown_0820A3B8
|
|
_08042E3C: .4byte gUnknown_0820A3C0
|
|
_08042E40:
|
|
ldr r0, _08042E64
|
|
movs r1, 0x78
|
|
movs r2, 0x4B
|
|
movs r3, 0x5
|
|
bl CreateSprite
|
|
ldr r2, _08042E68
|
|
ldr r1, [r2]
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x4]
|
|
bl sub_80429EC
|
|
ldr r1, _08042E6C
|
|
ldr r2, _08042E70
|
|
adds r1, r2
|
|
b _08042F0A
|
|
.align 2, 0
|
|
_08042E64: .4byte gSpriteTemplate_820A3C8
|
|
_08042E68: .4byte 0x0300481c
|
|
_08042E6C: .4byte 0x03001770
|
|
_08042E70: .4byte 0x0000043c
|
|
_08042E74:
|
|
ldr r0, _08042E84
|
|
ldr r0, [r0]
|
|
ldrb r2, [r0, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8042B68
|
|
b _08042F04
|
|
.align 2, 0
|
|
_08042E84: .4byte 0x0300481c
|
|
_08042E88:
|
|
ldr r4, _08042EA4
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8042B68
|
|
ldr r1, [r4]
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, _08042EA8
|
|
ldr r2, _08042EAC
|
|
adds r1, r2
|
|
b _08042F0A
|
|
.align 2, 0
|
|
_08042EA4: .4byte 0x0300481c
|
|
_08042EA8: .4byte 0x03001770
|
|
_08042EAC: .4byte 0x0000043c
|
|
_08042EB0:
|
|
ldr r0, _08042F14
|
|
ldr r2, _08042F18
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08042F1C
|
|
movs r1, 0x10
|
|
movs r2, 0xA0
|
|
bl LoadPalette
|
|
ldr r3, _08042F20
|
|
ldr r4, _08042F24
|
|
movs r5, 0x98
|
|
lsls r5, 5
|
|
ldr r1, _08042F28
|
|
ldr r6, _08042F2C
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_08042ED6:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _08042ED6
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _08042F30
|
|
ldr r2, _08042F34
|
|
ldr r0, _08042F28
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _08042F2C
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
_08042F04:
|
|
ldr r1, _08042F38
|
|
ldr r0, _08042F3C
|
|
adds r1, r0
|
|
_08042F0A:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08042F6E
|
|
.align 2, 0
|
|
_08042F14: .4byte REG_BG2CNT
|
|
_08042F18: .4byte 0x00004c06
|
|
_08042F1C: .4byte gUnknown_0820C9F8
|
|
_08042F20: .4byte gUnknown_0820CA98
|
|
_08042F24: .4byte 0x06004000
|
|
_08042F28: .4byte 0x040000d4
|
|
_08042F2C: .4byte 0x80000800
|
|
_08042F30: .4byte gUnknown_0820F798
|
|
_08042F34: .4byte 0x06006000
|
|
_08042F38: .4byte 0x03001770
|
|
_08042F3C: .4byte 0x0000043c
|
|
_08042F40:
|
|
ldr r1, _08042F74
|
|
ldr r2, _08042F78
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08042F7C
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
ldr r0, _08042F80
|
|
bl SetMainCallback2
|
|
ldr r0, _08042F84
|
|
ldr r0, [r0]
|
|
strb r4, [r0, 0x2]
|
|
_08042F6E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042F74: .4byte REG_BG1CNT
|
|
_08042F78: .4byte 0x00000501
|
|
_08042F7C: .4byte REG_BG0HOFS
|
|
_08042F80: .4byte sub_804300C
|
|
_08042F84: .4byte 0x0300481c
|
|
thumb_func_end sub_8042CE8
|
|
|
|
thumb_func_start sub_8042F88
|
|
sub_8042F88: @ 8042F88
|
|
push {lr}
|
|
ldr r0, _08042FA8
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08042FAC
|
|
adds r0, r1
|
|
ldr r2, _08042FB0
|
|
movs r1, 0x2
|
|
bl pokemon_setattr
|
|
ldr r0, _08042FB4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042FA8: .4byte 0x0202e8cc
|
|
_08042FAC: .4byte 0x03004360
|
|
_08042FB0: .4byte 0x020233cc
|
|
_08042FB4: .4byte c2_exit_to_overworld_2_switch
|
|
thumb_func_end sub_8042F88
|
|
|
|
thumb_func_start c3_080472E4
|
|
c3_080472E4: @ 8042FB8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _08043004
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08042FD4
|
|
bl sub_8074D08
|
|
_08042FD4:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _08042FE4
|
|
movs r0, 0xBC
|
|
lsls r0, 1
|
|
bl sub_8075474
|
|
_08042FE4:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3C
|
|
ble _08042FF8
|
|
ldr r0, _08043008
|
|
bl sub_8075474
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08042FF8:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043004: .4byte 0x03004b20
|
|
_08043008: .4byte 0x00000179
|
|
thumb_func_end c3_080472E4
|
|
|
|
thumb_func_start sub_804300C
|
|
sub_804300C: @ 804300C
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x8
|
|
ldr r1, _08043030
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x2]
|
|
adds r5, r1, 0
|
|
cmp r0, 0xB
|
|
bls _08043026
|
|
b _080432BA
|
|
_08043026:
|
|
lsls r0, 2
|
|
ldr r1, _08043034
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08043030: .4byte 0x0300481c
|
|
_08043034: .4byte _08043038
|
|
.align 2, 0
|
|
_08043038:
|
|
.4byte _08043068
|
|
.4byte _080430A0
|
|
.4byte _080430C0
|
|
.4byte _080430F8
|
|
.4byte _08043124
|
|
.4byte _08043164
|
|
.4byte _08043172
|
|
.4byte _08043180
|
|
.4byte _080431B8
|
|
.4byte _080431DA
|
|
.4byte _08043288
|
|
.4byte _080432A8
|
|
_08043068:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xBA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08043098
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, _0804309C
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
b _080432BA
|
|
.align 2, 0
|
|
_08043098: .4byte 0x0300481c
|
|
_0804309C: .4byte c3_080472E4
|
|
_080430A0:
|
|
ldr r0, _080430BC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080430B2
|
|
b _080432BA
|
|
_080430B2:
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x3]
|
|
ldr r1, [r5]
|
|
b _0804329C
|
|
.align 2, 0
|
|
_080430BC: .4byte 0x0202f388
|
|
_080430C0:
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x3]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1E
|
|
bhi _080430D2
|
|
b _080432BA
|
|
_080430D2:
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
ldr r2, _080430F0
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _080430F4
|
|
str r1, [r0]
|
|
b _080432BA
|
|
.align 2, 0
|
|
_080430F0: .4byte 0x02020004
|
|
_080430F4: .4byte sub_80432E4
|
|
_080430F8:
|
|
ldr r2, _0804311C
|
|
ldr r3, [r5]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _08043120
|
|
cmp r1, r0
|
|
beq _08043112
|
|
b _080432BA
|
|
_08043112:
|
|
ldrb r0, [r3, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r3, 0x2]
|
|
b _080432BA
|
|
.align 2, 0
|
|
_0804311C: .4byte 0x02020004
|
|
_08043120: .4byte SpriteCallbackDummy
|
|
_08043124:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x4]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08043150
|
|
adds r0, r1
|
|
ldr r1, _08043154
|
|
bl pokemon_get_nick
|
|
ldr r4, _08043158
|
|
ldr r1, _0804315C
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
bl sub_80436FC
|
|
ldr r0, _08043160
|
|
bl fanfare_play
|
|
ldr r1, [r5]
|
|
b _0804329C
|
|
.align 2, 0
|
|
_08043150: .4byte 0x03004360
|
|
_08043154: .4byte 0x020231cc
|
|
_08043158: .4byte 0x020234cc
|
|
_0804315C: .4byte gUnknown_0842CC38
|
|
_08043160: .4byte 0x00000173
|
|
_08043164:
|
|
bl task_is_not_running_overworld_fanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08043170
|
|
b _080432BA
|
|
_08043170:
|
|
b _08043298
|
|
_08043172:
|
|
bl task_is_not_running_overworld_fanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804317E
|
|
b _080432BA
|
|
_0804317E:
|
|
b _08043298
|
|
_08043180:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x4]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080431A8
|
|
adds r0, r1
|
|
ldr r1, _080431AC
|
|
bl pokemon_get_nick
|
|
ldr r4, _080431B0
|
|
ldr r1, _080431B4
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
bl sub_80436D4
|
|
ldr r1, [r5]
|
|
b _0804329C
|
|
.align 2, 0
|
|
_080431A8: .4byte 0x03004360
|
|
_080431AC: .4byte 0x020231cc
|
|
_080431B0: .4byte 0x020234cc
|
|
_080431B4: .4byte gUnknown_0842CC5A
|
|
_080431B8:
|
|
bl sub_8043724
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080432BA
|
|
movs r0, 0x16
|
|
movs r1, 0x8
|
|
movs r2, 0x1B
|
|
movs r3, 0xD
|
|
bl DrawDefaultWindow
|
|
movs r0, 0x16
|
|
movs r1, 0x8
|
|
movs r2, 0x4
|
|
bl sub_807292C
|
|
b _08043298
|
|
_080431DA:
|
|
bl FillWindowPixelBuffer
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _080432BA
|
|
lsls r0, r2, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08043298
|
|
cmp r1, 0x1
|
|
beq _08043298
|
|
ldr r0, _08043278
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
ldr r6, _0804327C
|
|
adds r0, r6
|
|
ldr r1, _08043280
|
|
mov r10, r1
|
|
bl pokemon_get_nick
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x4]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x4]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r6
|
|
bl pokemon_get_gender
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x4]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r6
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
str r0, [sp]
|
|
ldr r0, _08043284
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x3
|
|
mov r1, r10
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl DoNamingScreen
|
|
b _080432BA
|
|
.align 2, 0
|
|
_08043278: .4byte 0x0300481c
|
|
_0804327C: .4byte 0x03004360
|
|
_08043280: .4byte 0x020233cc
|
|
_08043284: .4byte sub_8042F88
|
|
_08043288:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_08043298:
|
|
ldr r0, _080432A4
|
|
ldr r1, [r0]
|
|
_0804329C:
|
|
ldrb r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
b _080432BA
|
|
.align 2, 0
|
|
_080432A4: .4byte 0x0300481c
|
|
_080432A8:
|
|
ldr r0, _080432DC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080432BA
|
|
ldr r0, _080432E0
|
|
bl SetMainCallback2
|
|
_080432BA:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080432DC: .4byte 0x0202f388
|
|
_080432E0: .4byte c2_exit_to_overworld_2_switch
|
|
thumb_func_end sub_804300C
|
|
|
|
thumb_func_start sub_80432E4
|
|
sub_80432E4: @ 80432E4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _08043304
|
|
ldr r0, _08043300
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
b _08043334
|
|
.align 2, 0
|
|
_08043300: .4byte sub_804333C
|
|
_08043304:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x14
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xF
|
|
bne _08043334
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
bl sub_80435FC
|
|
_08043334:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80432E4
|
|
|
|
thumb_func_start sub_804333C
|
|
sub_804333C: @ 804333C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _08043398
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0804336C
|
|
ldr r0, _08043368
|
|
str r0, [r4, 0x1C]
|
|
strh r1, [r4, 0x2E]
|
|
strh r1, [r4, 0x32]
|
|
b _08043398
|
|
.align 2, 0
|
|
_08043368: .4byte sub_80433A0
|
|
_0804336C:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x14
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x2
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xF
|
|
bne _08043398
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
_08043398:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804333C
|
|
|
|
thumb_func_start sub_80433A0
|
|
sub_80433A0: @ 80433A0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
movs r6, 0
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _0804345A
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x26
|
|
ble _08043418
|
|
ldr r0, _08043404
|
|
str r0, [r4, 0x1C]
|
|
strh r6, [r4, 0x2E]
|
|
ldr r5, _08043408
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x4]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0804340C
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
ldr r4, _08043410
|
|
ldr r3, [r5]
|
|
ldrb r2, [r3, 0x1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
strh r6, [r1, 0x24]
|
|
ldrb r2, [r3, 0x1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r2, _08043414
|
|
lsrs r0, 14
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r1, 0x26]
|
|
b _0804345A
|
|
.align 2, 0
|
|
_08043404: .4byte sub_8043460
|
|
_08043408: .4byte 0x0300481c
|
|
_0804340C: .4byte 0x03004360
|
|
_08043410: .4byte 0x02020004
|
|
_08043414: .4byte gMonFrontPicCoords
|
|
_08043418:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x14
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x2
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xF
|
|
bne _0804344C
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
bl sub_80435FC
|
|
bl sub_80435FC
|
|
_0804344C:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1E
|
|
bne _0804345A
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
_0804345A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80433A0
|
|
|
|
thumb_func_start sub_8043460
|
|
sub_8043460: @ 8043460
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x32
|
|
ble _0804347A
|
|
ldr r0, _08043480
|
|
str r0, [r1, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
_0804347A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043480: .4byte sub_8043484
|
|
thumb_func_end sub_8043460
|
|
|
|
thumb_func_start sub_8043484
|
|
sub_8043484: @ 8043484
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080434A4
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r0, _080434F8
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_080434A4:
|
|
ldrh r0, [r5, 0x2E]
|
|
cmp r0, 0x3
|
|
bhi _080434C0
|
|
movs r4, 0
|
|
_080434AC:
|
|
bl sub_80435FC
|
|
lsls r0, r4, 16
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080434AC
|
|
_080434C0:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080434FC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080434EE
|
|
movs r0, 0x71
|
|
bl audio_play
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08043500
|
|
str r0, [r5, 0x1C]
|
|
strh r4, [r5, 0x2E]
|
|
_080434EE:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080434F8: .4byte 0x0000ffff
|
|
_080434FC: .4byte 0x0202f388
|
|
_08043500: .4byte sub_8043504
|
|
thumb_func_end sub_8043484
|
|
|
|
thumb_func_start sub_8043504
|
|
sub_8043504: @ 8043504
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _08043540
|
|
ldr r4, _08043594
|
|
ldr r3, _08043598
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_08043540:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x8
|
|
bne _0804355A
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r0, _0804359C
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_0804355A:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x9
|
|
bgt _08043578
|
|
ldr r2, _08043594
|
|
ldr r0, _08043598
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
_08043578:
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x28
|
|
ble _08043586
|
|
ldr r0, _080435A0
|
|
str r0, [r5, 0x1C]
|
|
_08043586:
|
|
adds r0, r1, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043594: .4byte 0x02020004
|
|
_08043598: .4byte 0x0300481c
|
|
_0804359C: .4byte 0x0000ffff
|
|
_080435A0: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8043504
|
|
|
|
thumb_func_start sub_80435A4
|
|
sub_80435A4: @ 80435A4
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x36]
|
|
ldrh r1, [r2, 0x32]
|
|
ldrh r3, [r2, 0x38]
|
|
adds r0, r1, r3
|
|
strh r0, [r2, 0x38]
|
|
movs r4, 0x36
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
bge _080435C2
|
|
adds r0, 0xFF
|
|
_080435C2:
|
|
asrs r0, 8
|
|
strh r0, [r2, 0x24]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
bge _080435D0
|
|
adds r0, 0xFF
|
|
_080435D0:
|
|
asrs r0, 8
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x34]
|
|
adds r3, r1, r0
|
|
strh r3, [r2, 0x32]
|
|
movs r4, 0x22
|
|
ldrsh r1, [r2, r4]
|
|
movs r4, 0x26
|
|
ldrsh r0, [r2, r4]
|
|
adds r0, r1, r0
|
|
adds r1, 0x14
|
|
cmp r0, r1
|
|
ble _080435F6
|
|
lsls r0, r3, 16
|
|
cmp r0, 0
|
|
ble _080435F6
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_080435F6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80435A4
|
|
|
|
thumb_func_start sub_80435FC
|
|
sub_80435FC: @ 80435FC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
ldr r3, _0804364C
|
|
ldr r0, _08043650
|
|
ldr r4, [r0]
|
|
adds r4, 0x3A
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r3
|
|
ldrh r6, [r1]
|
|
adds r3, 0x2
|
|
adds r0, r3
|
|
ldrh r5, [r0]
|
|
adds r2, 0x1
|
|
strb r2, [r4]
|
|
bl Random
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
movs r0, 0x64
|
|
str r0, [sp]
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0x78
|
|
movs r1, 0x3C
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl sub_8043654
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804364C: .4byte gEggShardVelocities
|
|
_08043650: .4byte 0x0300481c
|
|
thumb_func_end sub_80435FC
|
|
|
|
thumb_func_start sub_8043654
|
|
sub_8043654: @ 8043654
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x1C]
|
|
mov r9, r0
|
|
ldr r1, [sp, 0x20]
|
|
mov r10, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
mov r0, r8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r1, r9
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
mov r0, r10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, _080436CC
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080436D0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r6, [r0, 0x30]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x32]
|
|
mov r1, r9
|
|
strh r1, [r0, 0x34]
|
|
mov r1, r10
|
|
bl StartSpriteAnim
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080436CC: .4byte gSpriteTemplate_820A418
|
|
_080436D0: .4byte 0x02020004
|
|
thumb_func_end sub_8043654
|
|
|
|
thumb_func_start sub_80436D4
|
|
sub_80436D4: @ 80436D4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
ldr r0, _080436F8
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r2, 0x38
|
|
ldrb r2, [r2]
|
|
movs r3, 0xF
|
|
str r3, [sp]
|
|
movs r3, 0x3
|
|
bl sub_8002EB0
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080436F8: .4byte 0x0300481c
|
|
thumb_func_end sub_80436D4
|
|
|
|
thumb_func_start sub_80436FC
|
|
sub_80436FC: @ 80436FC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
ldr r0, _08043720
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r2, 0x38
|
|
ldrb r2, [r2]
|
|
movs r3, 0xF
|
|
str r3, [sp]
|
|
movs r3, 0x3
|
|
bl sub_8003460
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043720: .4byte 0x0300481c
|
|
thumb_func_end sub_80436FC
|
|
|
|
thumb_func_start sub_8043724
|
|
sub_8043724: @ 8043724
|
|
push {lr}
|
|
ldr r0, _08043738
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
bl sub_80035AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043738: .4byte 0x0300481c
|
|
thumb_func_end sub_8043724
|
|
|
|
thumb_func_start sub_804373C
|
|
sub_804373C: @ 804373C
|
|
movs r0, 0x9
|
|
bx lr
|
|
thumb_func_end sub_804373C
|
|
|
|
thumb_func_start sub_8043740
|
|
sub_8043740: @ 8043740
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r7, r1, 0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
movs r3, 0
|
|
movs r2, 0
|
|
_0804375C:
|
|
lsls r0, r3, 24
|
|
asrs r0, 24
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
strb r2, [r1]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x3
|
|
ble _0804375C
|
|
movs r3, 0x3
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r9, r0
|
|
mov r8, sp
|
|
_0804377C:
|
|
lsls r0, r5, 16
|
|
asrs r6, r0, 16
|
|
cmp r6, 0
|
|
ble _080437AA
|
|
lsls r4, r3, 24
|
|
asrs r4, 24
|
|
mov r1, sp
|
|
adds r5, r1, r4
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
strb r0, [r5]
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
subs r4, 0x1
|
|
lsls r4, 24
|
|
lsrs r3, r4, 24
|
|
b _0804377C
|
|
_080437AA:
|
|
lsls r1, r3, 24
|
|
asrs r0, r1, 24
|
|
cmp r0, r9
|
|
ble _080437CE
|
|
movs r4, 0xFF
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
_080437B8:
|
|
asrs r2, r1, 24
|
|
mov r5, sp
|
|
adds r1, r5, r2
|
|
ldrb r0, [r1]
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
subs r2, 0x1
|
|
lsls r1, r2, 24
|
|
asrs r0, r1, 24
|
|
cmp r0, r3
|
|
bgt _080437B8
|
|
_080437CE:
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0xFF
|
|
bne _080437DA
|
|
movs r0, 0
|
|
strb r0, [r1, 0x3]
|
|
_080437DA:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _0804386A
|
|
movs r3, 0
|
|
movs r1, 0
|
|
movs r6, 0xFC
|
|
lsls r6, 8
|
|
movs r5, 0x1E
|
|
mov r12, r5
|
|
_080437EC:
|
|
lsls r1, 24
|
|
asrs r2, r1, 24
|
|
mov r0, sp
|
|
adds r5, r0, r2
|
|
ldrb r0, [r5]
|
|
mov r8, r1
|
|
cmp r0, 0xFF
|
|
bne _08043822
|
|
lsls r1, r2, 1
|
|
adds r1, r7
|
|
ldrh r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
lsls r3, 24
|
|
asrs r1, r3, 23
|
|
adds r1, r7
|
|
adds r1, 0x40
|
|
ldrh r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
mov r5, r12
|
|
orrs r0, r5
|
|
strh r0, [r1]
|
|
b _08043852
|
|
_08043822:
|
|
lsls r2, 1
|
|
adds r2, r7
|
|
ldrh r0, [r2]
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
ldrb r0, [r5]
|
|
adds r0, 0x14
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
lsls r4, r3, 24
|
|
asrs r3, r4, 24
|
|
lsls r2, r3, 1
|
|
adds r2, r7
|
|
adds r2, 0x40
|
|
ldrh r0, [r2]
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
mov r5, sp
|
|
adds r0, r5, r3
|
|
ldrb r0, [r0]
|
|
adds r0, 0x34
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
adds r3, r4, 0
|
|
_08043852:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
add r0, r8
|
|
lsrs r1, r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r0, r3, r2
|
|
lsrs r3, r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x3
|
|
ble _080437EC
|
|
b _080438CE
|
|
_0804386A:
|
|
movs r3, 0
|
|
movs r4, 0xFC
|
|
lsls r4, 8
|
|
movs r6, 0x1E
|
|
_08043872:
|
|
lsls r1, r3, 24
|
|
asrs r2, r1, 24
|
|
mov r3, sp
|
|
adds r5, r3, r2
|
|
ldrb r0, [r5]
|
|
adds r3, r1, 0
|
|
cmp r0, 0xFF
|
|
bne _0804389E
|
|
lsls r1, r2, 1
|
|
adds r1, r7
|
|
ldrh r2, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strh r0, [r1]
|
|
adds r1, 0x40
|
|
ldrh r2, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strh r0, [r1]
|
|
b _080438C0
|
|
_0804389E:
|
|
lsls r2, 1
|
|
adds r2, r7
|
|
ldrh r0, [r2]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r0, [r5]
|
|
adds r0, 0x14
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
adds r2, 0x40
|
|
ldrh r0, [r2]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r0, [r5]
|
|
adds r0, 0x34
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
_080438C0:
|
|
movs r5, 0x80
|
|
lsls r5, 17
|
|
adds r0, r3, r5
|
|
lsrs r3, r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x3
|
|
ble _08043872
|
|
_080438CE:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8043740
|
|
|
|
thumb_func_start unref_sub_80438E0
|
|
unref_sub_80438E0: @ 80438E0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r1, 0x1E
|
|
strh r1, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_8043740
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r5, 0xA
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8043740
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end unref_sub_80438E0
|
|
|
|
thumb_func_start battle_make_oam_normal_battle
|
|
battle_make_oam_normal_battle: @ 8043914
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08043A28
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080439AC
|
|
ldr r4, _0804399C
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r4, _080439A0
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x1]
|
|
movs r3, 0x3F
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
lsls r2, r7, 4
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldrb r0, [r2, 0x1]
|
|
ands r3, r0
|
|
strb r3, [r2, 0x1]
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x40
|
|
ldr r4, _080439A4
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
ldr r0, _080439A8
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
b _080439F2
|
|
.align 2, 0
|
|
_0804399C: .4byte gSpriteTemplate_820A4EC
|
|
_080439A0: .4byte 0x02020004
|
|
_080439A4: .4byte 0x000003ff
|
|
_080439A8: .4byte 0xfffffc00
|
|
_080439AC:
|
|
ldr r4, _08043A14
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _08043A18
|
|
lsls r2, r7, 4
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x20
|
|
ldr r5, _08043A1C
|
|
adds r0, r5, 0
|
|
ands r1, r0
|
|
ldr r0, _08043A20
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
_080439F2:
|
|
ldr r2, _08043A18
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r7, [r0, 0x6]
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
strh r6, [r1, 0x38]
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _08043A24
|
|
str r1, [r0]
|
|
b _08043B50
|
|
.align 2, 0
|
|
_08043A14: .4byte gSpriteTemplate_820A51C
|
|
_08043A18: .4byte 0x02020004
|
|
_08043A1C: .4byte 0x000003ff
|
|
_08043A20: .4byte 0xfffffc00
|
|
_08043A24: .4byte sub_8043D5C
|
|
_08043A28:
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08043ACC
|
|
mov r0, r10
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 25
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r4, _08043AB8
|
|
adds r0, r4
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r0, r10
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 25
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r4, _08043ABC
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r7, [r0, 0x6]
|
|
lsls r2, r7, 4
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r3, r2, r4
|
|
strh r6, [r3, 0x38]
|
|
ldrh r1, [r3, 0x4]
|
|
mov r8, r1
|
|
mov r5, r8
|
|
lsls r1, r5, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x20
|
|
ldr r5, _08043AC0
|
|
adds r0, r5, 0
|
|
ands r1, r0
|
|
ldr r0, _08043AC4
|
|
mov r5, r8
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r0, _08043AC8
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
b _08043B4E
|
|
.align 2, 0
|
|
_08043AB8: .4byte gSpriteTemplate_820A4EC
|
|
_08043ABC: .4byte 0x02020004
|
|
_08043AC0: .4byte 0x000003ff
|
|
_08043AC4: .4byte 0xfffffc00
|
|
_08043AC8: .4byte sub_8043D5C
|
|
_08043ACC:
|
|
mov r0, r10
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 25
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r4, _08043C14
|
|
adds r0, r4
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r0, r10
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 25
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r4, _08043C18
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r7, [r0, 0x6]
|
|
lsls r2, r7, 4
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r3, r2, r4
|
|
strh r6, [r3, 0x38]
|
|
ldrh r1, [r3, 0x4]
|
|
mov r8, r1
|
|
mov r5, r8
|
|
lsls r1, r5, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x20
|
|
ldr r5, _08043C1C
|
|
adds r0, r5, 0
|
|
ands r1, r0
|
|
ldr r0, _08043C20
|
|
mov r5, r8
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r0, _08043C24
|
|
str r0, [r2]
|
|
movs r0, 0x2
|
|
_08043B4E:
|
|
str r0, [sp]
|
|
_08043B50:
|
|
ldr r0, _08043C28
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, _08043C2C
|
|
adds r0, r1
|
|
movs r1, 0x8C
|
|
movs r2, 0x3C
|
|
movs r3, 0
|
|
bl CreateSpriteAtEnd
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r1, _08043C18
|
|
mov r8, r1
|
|
add r4, r8
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 21
|
|
ldr r0, _08043C30
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
adds r2, r4, 0
|
|
adds r2, 0x42
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r2, 0x4
|
|
mov r9, r2
|
|
mov r1, r9
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0x1
|
|
bl sub_8043CDC
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r2, _08043C34
|
|
adds r1, r2
|
|
ldr r2, _08043C38
|
|
bl CpuSet
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
add r0, r8
|
|
strh r5, [r0, 0x38]
|
|
mov r2, r10
|
|
strh r2, [r0, 0x3A]
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
mov r5, r9
|
|
orrs r1, r5
|
|
strb r1, [r0]
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r5
|
|
strb r1, [r0]
|
|
strh r6, [r4, 0x38]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x3A]
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
orrs r0, r5
|
|
strb r0, [r4]
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043C14: .4byte gSpriteTemplate_820A51C
|
|
_08043C18: .4byte 0x02020004
|
|
_08043C1C: .4byte 0x000003ff
|
|
_08043C20: .4byte 0xfffffc00
|
|
_08043C24: .4byte sub_8043D5C
|
|
_08043C28: .4byte 0x02024a72
|
|
_08043C2C: .4byte gSpriteTemplate_820A56C
|
|
_08043C30: .4byte gSubspriteTables_820A684
|
|
_08043C34: .4byte 0x06010000
|
|
_08043C38: .4byte REG_BG0HOFS
|
|
thumb_func_end battle_make_oam_normal_battle
|
|
|
|
thumb_func_start battle_make_oam_safari_battle
|
|
battle_make_oam_safari_battle: @ 8043C3C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r4, _08043CC8
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0xA0
|
|
movs r3, 0x1
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08043CCC
|
|
mov r9, r1
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
add r4, r9
|
|
ldrb r3, [r4, 0x1]
|
|
movs r2, 0x3F
|
|
adds r1, r2, 0
|
|
ands r1, r3
|
|
strb r1, [r4, 0x1]
|
|
lsls r3, r0, 4
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
mov r7, r9
|
|
adds r5, r3, r7
|
|
ldrb r1, [r5, 0x1]
|
|
ands r2, r1
|
|
strb r2, [r5, 0x1]
|
|
ldrh r1, [r5, 0x4]
|
|
mov r8, r1
|
|
mov r7, r8
|
|
lsls r2, r7, 22
|
|
lsrs r2, 22
|
|
adds r2, 0x40
|
|
ldr r7, _08043CD0
|
|
adds r1, r7, 0
|
|
ands r2, r1
|
|
ldr r1, _08043CD4
|
|
mov r7, r8
|
|
ands r1, r7
|
|
orrs r1, r2
|
|
strh r1, [r5, 0x4]
|
|
strh r0, [r4, 0x6]
|
|
strh r6, [r5, 0x38]
|
|
movs r0, 0x1C
|
|
add r9, r0
|
|
add r3, r9
|
|
ldr r0, _08043CD8
|
|
str r0, [r3]
|
|
adds r0, r6, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043CC8: .4byte gSpriteTemplate_820A54C
|
|
_08043CCC: .4byte 0x02020004
|
|
_08043CD0: .4byte 0x000003ff
|
|
_08043CD4: .4byte 0xfffffc00
|
|
_08043CD8: .4byte sub_8043D5C
|
|
thumb_func_end battle_make_oam_safari_battle
|
|
|
|
thumb_func_start sub_8043CDC
|
|
sub_8043CDC: @ 8043CDC
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
ldr r1, _08043CE8
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08043CE8: .4byte gUnknown_08D1216C
|
|
thumb_func_end sub_8043CDC
|
|
|
|
thumb_func_start sub_8043CEC
|
|
sub_8043CEC: @ 8043CEC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x38]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08043D1C
|
|
cmp r0, 0x1
|
|
bgt _08043D30
|
|
cmp r0, 0
|
|
bne _08043D30
|
|
ldr r2, _08043D18
|
|
lsls r3, r5, 4
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x10
|
|
b _08043D3E
|
|
.align 2, 0
|
|
_08043D18: .4byte 0x02020004
|
|
_08043D1C:
|
|
ldr r2, _08043D2C
|
|
lsls r3, r5, 4
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x10
|
|
b _08043D3E
|
|
.align 2, 0
|
|
_08043D2C: .4byte 0x02020004
|
|
_08043D30:
|
|
ldr r2, _08043D58
|
|
lsls r3, r5, 4
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
_08043D3E:
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x22]
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r0, 0x26]
|
|
strh r0, [r4, 0x26]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043D58: .4byte 0x02020004
|
|
thumb_func_end sub_8043CEC
|
|
|
|
thumb_func_start sub_8043D5C
|
|
sub_8043D5C: @ 8043D5C
|
|
ldrh r1, [r0, 0x38]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, _08043D80
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldrh r1, [r2, 0x20]
|
|
adds r1, 0x40
|
|
strh r1, [r0, 0x20]
|
|
ldrh r1, [r2, 0x22]
|
|
strh r1, [r0, 0x22]
|
|
ldrh r1, [r2, 0x24]
|
|
strh r1, [r0, 0x24]
|
|
ldrh r1, [r2, 0x26]
|
|
strh r1, [r0, 0x26]
|
|
bx lr
|
|
.align 2, 0
|
|
_08043D80: .4byte 0x02020004
|
|
thumb_func_end sub_8043D5C
|
|
|
|
thumb_func_start sub_8043D84
|
|
sub_8043D84: @ 8043D84
|
|
push {r4,r5,lr}
|
|
ldr r5, [sp, 0xC]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _08043DA8
|
|
adds r4, r0
|
|
strb r1, [r4]
|
|
str r2, [r4, 0x4]
|
|
str r3, [r4, 0x8]
|
|
str r5, [r4, 0xC]
|
|
ldr r0, _08043DAC
|
|
str r0, [r4, 0x10]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043DA8: .4byte 0x02017850
|
|
_08043DAC: .4byte 0xffff8000
|
|
thumb_func_end sub_8043D84
|
|
|
|
thumb_func_start sub_8043DB0
|
|
sub_8043DB0: @ 8043DB0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _08043DF8
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
adds r1, r2, 0
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r3, 0x4
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
ldrh r1, [r2, 0x6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043DF8: .4byte 0x02020004
|
|
thumb_func_end sub_8043DB0
|
|
|
|
thumb_func_start sub_8043DFC
|
|
sub_8043DFC: @ 8043DFC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _08043E4C
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r5
|
|
adds r4, r2, 0
|
|
adds r4, 0x3E
|
|
ldrb r1, [r4]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r4, [r0]
|
|
adds r1, r3, 0
|
|
ands r1, r4
|
|
strb r1, [r0]
|
|
ldrh r1, [r2, 0x6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043E4C: .4byte 0x02020004
|
|
thumb_func_end sub_8043DFC
|
|
|
|
thumb_func_start sub_8043E50
|
|
sub_8043E50: @ 8043E50
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _08043E6C
|
|
lsls r3, r0, 4
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
adds r3, r4
|
|
strh r1, [r3, 0x20]
|
|
strh r2, [r3, 0x22]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043E6C: .4byte 0x02020004
|
|
thumb_func_end sub_8043E50
|
|
|
|
thumb_func_start unref_sub_8043E70
|
|
unref_sub_8043E70: @ 8043E70
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _08043EAC
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r4, r5
|
|
ldrh r1, [r4, 0x6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043EAC: .4byte 0x02020004
|
|
thumb_func_end unref_sub_8043E70
|
|
|
|
thumb_func_start nullsub_11
|
|
nullsub_11: @ 8043EB0
|
|
bx lr
|
|
thumb_func_end nullsub_11
|
|
|
|
thumb_func_start sub_8043EB4
|
|
sub_8043EB4: @ 8043EB4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
ldr r1, _08043F38
|
|
mov r8, r1
|
|
ldrb r2, [r1]
|
|
cmp r6, r2
|
|
bge _08043F2C
|
|
ldr r1, _08043F3C
|
|
mov r12, r1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r5, r0, 2
|
|
movs r7, 0xD
|
|
negs r7, r7
|
|
ldr r2, _08043F40
|
|
mov r9, r2
|
|
_08043EDE:
|
|
mov r1, r9
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldrb r4, [r1, 0x6]
|
|
ldrh r3, [r1, 0x38]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
lsls r1, r3, 4
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
adds r6, 0x1
|
|
mov r2, r8
|
|
ldrb r2, [r2]
|
|
cmp r6, r2
|
|
blt _08043EDE
|
|
_08043F2C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043F38: .4byte 0x02024a68
|
|
_08043F3C: .4byte 0x02020004
|
|
_08043F40: .4byte 0x03004340
|
|
thumb_func_end sub_8043EB4
|
|
|
|
thumb_func_start sub_8043F44
|
|
sub_8043F44: @ 8043F44
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
movs r4, 0
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08043F70
|
|
adds r0, r6, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08043F6A
|
|
movs r5, 0x2C
|
|
movs r4, 0x1E
|
|
b _08043FA8
|
|
_08043F6A:
|
|
movs r5, 0x9E
|
|
movs r4, 0x58
|
|
b _08043FA8
|
|
_08043F70:
|
|
adds r0, r6, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08043F9E
|
|
cmp r0, 0x1
|
|
bgt _08043F88
|
|
cmp r0, 0
|
|
beq _08043F92
|
|
b _08043FA8
|
|
_08043F88:
|
|
cmp r0, 0x2
|
|
beq _08043F98
|
|
cmp r0, 0x3
|
|
beq _08043FA4
|
|
b _08043FA8
|
|
_08043F92:
|
|
movs r5, 0x9F
|
|
movs r4, 0x4D
|
|
b _08043FA8
|
|
_08043F98:
|
|
movs r5, 0xAB
|
|
movs r4, 0x66
|
|
b _08043FA8
|
|
_08043F9E:
|
|
movs r5, 0x2C
|
|
movs r4, 0x13
|
|
b _08043FA8
|
|
_08043FA4:
|
|
movs r5, 0x20
|
|
movs r4, 0x2C
|
|
_08043FA8:
|
|
ldr r0, _08043FBC
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_8043E50
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043FBC: .4byte 0x03004340
|
|
thumb_func_end sub_8043F44
|
|
|
|
thumb_func_start sub_8043FC0
|
|
sub_8043FC0: @ 8043FC0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x20
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r1, _08044000
|
|
mov r0, sp
|
|
movs r2, 0x1E
|
|
bl memcpy
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08044010
|
|
ldr r1, _08044004
|
|
lsls r4, r5, 4
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r7, _08044008
|
|
cmp r0, 0
|
|
bne _0804402E
|
|
ldr r7, _0804400C
|
|
b _0804402E
|
|
.align 2, 0
|
|
_08044000: .4byte gUnknown_0820A81C
|
|
_08044004: .4byte 0x02020004
|
|
_08044008: .4byte gUnknown_0820A80C
|
|
_0804400C: .4byte gUnknown_0820A804
|
|
_08044010:
|
|
ldr r1, _08044040
|
|
lsls r4, r5, 4
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r7, _08044044
|
|
cmp r0, 0
|
|
bne _0804402E
|
|
ldr r7, _08044048
|
|
_0804402E:
|
|
mov r3, sp
|
|
adds r3, 0x6
|
|
cmp r6, 0x64
|
|
bne _0804404C
|
|
adds r0, r3, 0
|
|
movs r1, 0x64
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
b _0804408C
|
|
.align 2, 0
|
|
_08044040: .4byte 0x02020004
|
|
_08044044: .4byte gUnknown_0820A80C
|
|
_08044048: .4byte gUnknown_0820A814
|
|
_0804404C:
|
|
movs r1, 0xFC
|
|
strb r1, [r3]
|
|
mov r3, sp
|
|
adds r3, 0x7
|
|
movs r0, 0x11
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
strb r1, [r3]
|
|
adds r3, 0x1
|
|
movs r2, 0x14
|
|
strb r2, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0x4
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0xF0
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
strb r1, [r3]
|
|
adds r3, 0x1
|
|
strb r2, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
adds r0, r3, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
_0804408C:
|
|
bl ConvertIntToDecimalStringN
|
|
adds r3, r0, 0
|
|
movs r0, 0xFC
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0x13
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
movs r0, 0xF
|
|
strb r0, [r3]
|
|
movs r0, 0xFF
|
|
strb r0, [r3, 0x1]
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
mov r1, sp
|
|
bl sub_80034D4
|
|
ldr r1, _080440E0
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
ldr r5, _080440E4
|
|
movs r4, 0x2
|
|
_080440BC:
|
|
ldrh r0, [r6, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldm r7!, {r1}
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
ldr r2, _080440E8
|
|
bl CpuSet
|
|
adds r5, 0x40
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _080440BC
|
|
add sp, 0x20
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080440E0: .4byte 0x02020004
|
|
_080440E4: .4byte 0x02000020
|
|
_080440E8: .4byte REG_BG0CNT
|
|
thumb_func_end sub_8043FC0
|
|
|
|
thumb_func_start sub_80440EC
|
|
sub_80440EC: @ 80440EC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
ldr r1, _08044144
|
|
mov r0, sp
|
|
movs r2, 0x14
|
|
bl memcpy
|
|
ldr r1, _08044148
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
movs r0, 0x3A
|
|
ldrsh r5, [r4, r0]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08044136
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0804414C
|
|
_08044136:
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
adds r0, r7, 0
|
|
mov r2, r8
|
|
bl sub_8044210
|
|
b _080441F0
|
|
.align 2, 0
|
|
_08044144: .4byte gUnknown_0820A864
|
|
_08044148: .4byte 0x02020004
|
|
_0804414C:
|
|
mov r5, sp
|
|
adds r5, 0x6
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08044190
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r4, _08044188
|
|
cmp r0, 0
|
|
bne _0804416A
|
|
ldr r4, _0804418C
|
|
_0804416A:
|
|
movs r0, 0x3
|
|
mov r8, r0
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
movs r2, 0x13
|
|
movs r3, 0x1
|
|
bl sub_8003504
|
|
adds r5, r0, 0
|
|
movs r0, 0xBA
|
|
strb r0, [r5]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x1]
|
|
b _080441B6
|
|
.align 2, 0
|
|
_08044188: .4byte gUnknown_0820A848
|
|
_0804418C: .4byte gUnknown_0820A83C
|
|
_08044190:
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r4, _080441FC
|
|
cmp r0, 0
|
|
bne _080441A4
|
|
ldr r4, _08044200
|
|
_080441A4:
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
movs r2, 0xF
|
|
movs r3, 0x1
|
|
bl sub_8003504
|
|
_080441B6:
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
mov r1, sp
|
|
bl sub_80034D4
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080441F0
|
|
ldr r1, _08044204
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
adds r7, r4, 0
|
|
ldr r5, _08044208
|
|
mov r4, r8
|
|
_080441D6:
|
|
ldrh r0, [r6, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldm r7!, {r1}
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
ldr r2, _0804420C
|
|
bl CpuSet
|
|
adds r5, 0x40
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _080441D6
|
|
_080441F0:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080441FC: .4byte gUnknown_0820A85C
|
|
_08044200: .4byte gUnknown_0820A854
|
|
_08044204: .4byte 0x02020004
|
|
_08044208: .4byte 0x02000020
|
|
_0804420C: .4byte REG_BG0CNT
|
|
thumb_func_end sub_80440EC
|
|
|
|
thumb_func_start sub_8044210
|
|
sub_8044210: @ 8044210
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
mov r9, r6
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
ldr r1, _0804427C
|
|
mov r0, sp
|
|
movs r2, 0x14
|
|
bl memcpy
|
|
ldr r1, _08044280
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
mov r8, r0
|
|
movs r1, 0x3A
|
|
ldrsh r4, [r0, r1]
|
|
lsls r0, r4, 2
|
|
ldr r1, _08044284
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044312
|
|
mov r2, sp
|
|
adds r2, 0x6
|
|
cmp r7, 0
|
|
bne _0804428C
|
|
ldr r7, _08044288
|
|
movs r0, 0x6
|
|
mov r10, r0
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0x2B
|
|
movs r3, 0x1
|
|
bl sub_8003504
|
|
adds r2, r0, 0
|
|
movs r0, 0xBA
|
|
strb r0, [r2]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x1]
|
|
b _080442CE
|
|
.align 2, 0
|
|
_0804427C: .4byte gUnknown_0820A89C
|
|
_08044280: .4byte 0x02020004
|
|
_08044284: .4byte 0x02017800
|
|
_08044288: .4byte gUnknown_0820A87C
|
|
_0804428C:
|
|
ldr r7, _08044324
|
|
movs r1, 0x2
|
|
mov r10, r1
|
|
mov r0, r9
|
|
lsls r1, r0, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0xF
|
|
movs r3, 0x1
|
|
bl sub_8003504
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080442CE
|
|
movs r0, 0x74
|
|
bl sub_8043CDC
|
|
mov r2, r8
|
|
ldrh r1, [r2, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
movs r2, 0xD0
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldr r2, _08044328
|
|
adds r1, r2
|
|
ldr r2, _0804432C
|
|
bl CpuSet
|
|
_080442CE:
|
|
ldr r6, _08044330
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x38
|
|
ldrsh r4, [r0, r1]
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
mov r1, sp
|
|
bl sub_80034D4
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _08044312
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r6, r0, r6
|
|
ldr r5, _08044334
|
|
mov r4, r10
|
|
_080442F8:
|
|
ldrh r0, [r6, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldm r7!, {r1}
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
ldr r2, _0804432C
|
|
bl CpuSet
|
|
adds r5, 0x40
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _080442F8
|
|
_08044312:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044324: .4byte gUnknown_0820A894
|
|
_08044328: .4byte 0x06010000
|
|
_0804432C: .4byte REG_BG0CNT
|
|
_08044330: .4byte 0x02020004
|
|
_08044334: .4byte 0x02000020
|
|
thumb_func_end sub_8044210
|
|
|
|
thumb_func_start sub_8044338
|
|
sub_8044338: @ 8044338
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x14]
|
|
ldr r1, _080443CC
|
|
mov r0, sp
|
|
movs r2, 0x14
|
|
bl memcpy
|
|
ldr r1, _080443D0
|
|
ldr r2, [sp, 0x14]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 7
|
|
ldr r3, _080443D4
|
|
adds r6, r1, r3
|
|
movs r0, 0x5
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
bl GetNature
|
|
lsls r0, 24
|
|
mov r4, sp
|
|
adds r4, 0x6
|
|
ldr r1, _080443D8
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_80034D4
|
|
movs r7, 0x6
|
|
movs r5, 0
|
|
mov r1, sp
|
|
adds r1, 0x9
|
|
str r1, [sp, 0x1C]
|
|
_080443AA:
|
|
mov r2, sp
|
|
adds r0, r2, r7
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
subs r0, 0x37
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bls _080443C8
|
|
adds r0, r1, 0
|
|
adds r0, 0x79
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bhi _080443DC
|
|
_080443C8:
|
|
movs r0, 0x2C
|
|
b _080443FA
|
|
.align 2, 0
|
|
_080443CC: .4byte gUnknown_0820A864
|
|
_080443D0: .4byte 0x02020004
|
|
_080443D4: .4byte 0x02000520
|
|
_080443D8: .4byte gNatureNames
|
|
_080443DC:
|
|
adds r0, r1, 0
|
|
subs r0, 0x4B
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bls _080443F4
|
|
adds r0, r1, 0
|
|
adds r0, 0x65
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bhi _080443F8
|
|
_080443F4:
|
|
movs r0, 0x2D
|
|
b _080443FA
|
|
_080443F8:
|
|
movs r0, 0x2B
|
|
_080443FA:
|
|
bl sub_8043CDC
|
|
lsls r1, r5, 6
|
|
adds r1, r6, r1
|
|
ldr r2, _080444F8
|
|
bl CpuSet
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r7, 0x1
|
|
cmp r5, r8
|
|
bcc _080443AA
|
|
movs r7, 0x1
|
|
ldr r3, [sp, 0x14]
|
|
lsls r3, 4
|
|
str r3, [sp, 0x18]
|
|
movs r0, 0x1
|
|
add r0, r8
|
|
mov r9, r0
|
|
cmp r7, r9
|
|
bge _08044486
|
|
ldr r1, _080444FC
|
|
ldr r2, _080444F8
|
|
mov r10, r2
|
|
ldr r2, [sp, 0x14]
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
mov r8, r0
|
|
_08044436:
|
|
mov r3, r8
|
|
ldrh r0, [r3, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 22
|
|
adds r5, r7, 0
|
|
cmp r7, 0
|
|
bge _08044446
|
|
adds r5, r7, 0x7
|
|
_08044446:
|
|
asrs r5, 3
|
|
lsls r4, r5, 3
|
|
subs r4, r7, r4
|
|
adds r0, r4
|
|
lsls r5, 6
|
|
adds r0, r5
|
|
lsls r0, 5
|
|
ldr r2, _08044500
|
|
adds r1, r0, r2
|
|
adds r0, r6, 0
|
|
mov r2, r10
|
|
bl CpuSet
|
|
adds r6, 0x20
|
|
mov r3, r8
|
|
ldrh r0, [r3, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 22
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
adds r0, r5
|
|
lsls r0, 5
|
|
ldr r2, _08044500
|
|
adds r1, r0, r2
|
|
adds r0, r6, 0
|
|
mov r2, r10
|
|
bl CpuSet
|
|
adds r6, 0x20
|
|
adds r7, 0x1
|
|
cmp r7, r9
|
|
blt _08044436
|
|
_08044486:
|
|
ldr r6, _080444FC
|
|
ldr r3, [sp, 0x18]
|
|
ldr r1, [sp, 0x14]
|
|
adds r0, r3, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r5, [r0, 0x38]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _08044504
|
|
ldr r2, _08044508
|
|
adds r0, r4, r2
|
|
ldrb r1, [r0]
|
|
mov r0, sp
|
|
adds r0, 0x6
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r3, _0804450C
|
|
adds r4, r3
|
|
ldrb r1, [r4]
|
|
ldr r0, [sp, 0x1C]
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0xBA
|
|
strb r0, [r1, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
bl sub_80034D4
|
|
movs r7, 0
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r5, r0, r6
|
|
ldr r4, _08044510
|
|
_080444DA:
|
|
cmp r7, 0x1
|
|
bgt _08044514
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r0, r7, 0x2
|
|
adds r1, r0
|
|
lsls r1, 5
|
|
ldr r0, _08044500
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
ldr r2, _080444F8
|
|
bl CpuSet
|
|
b _0804452A
|
|
.align 2, 0
|
|
_080444F8: .4byte REG_BG0CNT
|
|
_080444FC: .4byte 0x02020004
|
|
_08044500: .4byte 0x06010000
|
|
_08044504: .4byte 0x02000000
|
|
_08044508: .4byte 0x00016089
|
|
_0804450C: .4byte 0x00016088
|
|
_08044510: .4byte 0x02000020
|
|
_08044514:
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r1, r7, r1
|
|
lsls r1, 5
|
|
ldr r2, _08044544
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
ldr r2, _08044548
|
|
bl CpuSet
|
|
_0804452A:
|
|
adds r4, 0x40
|
|
adds r7, 0x1
|
|
cmp r7, 0x4
|
|
ble _080444DA
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044544: .4byte 0x060100c0
|
|
_08044548: .4byte REG_BG0CNT
|
|
thumb_func_end sub_8044338
|
|
|
|
thumb_func_start sub_804454C
|
|
sub_804454C: @ 804454C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, _0804466C
|
|
ldrb r0, [r0]
|
|
cmp r8, r0
|
|
blt _08044566
|
|
b _080447E4
|
|
_08044566:
|
|
ldr r1, _08044670
|
|
mov r9, r1
|
|
movs r2, 0x64
|
|
mov r10, r2
|
|
ldr r7, _08044674
|
|
_08044570:
|
|
ldr r0, _08044678
|
|
mov r6, r8
|
|
adds r5, r6, r0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r1, r9
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _0804467C
|
|
cmp r1, r0
|
|
beq _0804458E
|
|
b _080447D4
|
|
_0804458E:
|
|
lsls r0, r6, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080445A2
|
|
b _080447D4
|
|
_080445A2:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080445BA
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080445BA
|
|
b _080447D4
|
|
_080445BA:
|
|
mov r0, r8
|
|
lsls r3, r0, 2
|
|
ldr r0, _08044680
|
|
adds r3, r0
|
|
ldr r0, [r3]
|
|
lsls r0, 27
|
|
lsrs r0, 31
|
|
movs r2, 0x1
|
|
eors r2, r0
|
|
lsls r2, 4
|
|
ldrb r0, [r3]
|
|
movs r6, 0x11
|
|
negs r6, r6
|
|
adds r1, r6, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
ldr r0, [r3]
|
|
lsls r0, 27
|
|
lsrs r6, r0, 31
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080446DC
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080445FA
|
|
b _080447D4
|
|
_080445FA:
|
|
ldr r0, _08044684
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _0804460C
|
|
b _080447D4
|
|
_0804460C:
|
|
cmp r6, 0x1
|
|
bne _08044694
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r0, [r0, 0x38]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
str r2, [sp]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r0, _08044688
|
|
adds r1, r0
|
|
mov r0, sp
|
|
ldr r2, _0804468C
|
|
bl CpuSet
|
|
ldrb r4, [r5]
|
|
ldrh r0, [r7]
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r2, _08044690
|
|
adds r0, r2
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_8044210
|
|
ldrb r4, [r5]
|
|
ldrh r0, [r7]
|
|
mov r6, r10
|
|
muls r6, r0
|
|
adds r0, r6, 0
|
|
ldr r1, _08044690
|
|
b _08044766
|
|
.align 2, 0
|
|
_0804466C: .4byte 0x02024a68
|
|
_08044670: .4byte 0x02020004
|
|
_08044674: .4byte 0x02024a6a
|
|
_08044678: .4byte 0x03004340
|
|
_0804467C: .4byte SpriteCallbackDummy
|
|
_08044680: .4byte 0x02017800
|
|
_08044684: .4byte 0x020239f8
|
|
_08044688: .4byte 0x06010000
|
|
_0804468C: .4byte 0x05000040
|
|
_08044690: .4byte 0x03004360
|
|
_08044694:
|
|
ldrb r0, [r5]
|
|
bl draw_status_ailment_maybe
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r7]
|
|
mov r2, r10
|
|
muls r2, r1
|
|
adds r1, r2, 0
|
|
ldr r6, _080446D0
|
|
adds r1, r6
|
|
movs r2, 0x5
|
|
bl sub_8045A5C
|
|
movs r0, 0x75
|
|
bl sub_8043CDC
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r2, _080446D4
|
|
adds r1, r2
|
|
ldr r2, _080446D8
|
|
bl CpuSet
|
|
b _080447BE
|
|
.align 2, 0
|
|
_080446D0: .4byte 0x03004360
|
|
_080446D4: .4byte 0x06010680
|
|
_080446D8: .4byte REG_BG0CNT
|
|
_080446DC:
|
|
cmp r6, 0x1
|
|
bne _0804478C
|
|
ldr r0, _08044704
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _0804470C
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r7]
|
|
mov r6, r10
|
|
muls r6, r1
|
|
adds r1, r6, 0
|
|
ldr r2, _08044708
|
|
adds r1, r2
|
|
bl sub_8044338
|
|
b _080447BE
|
|
.align 2, 0
|
|
_08044704: .4byte 0x020239f8
|
|
_08044708: .4byte 0x030045c0
|
|
_0804470C:
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r0, [r0, 0x38]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
str r2, [sp]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r6, _08044780
|
|
adds r1, r6
|
|
mov r0, sp
|
|
ldr r2, _08044784
|
|
bl CpuSet
|
|
ldrb r4, [r5]
|
|
ldrh r0, [r7]
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r2, _08044788
|
|
adds r0, r2
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_8044210
|
|
ldrb r4, [r5]
|
|
ldrh r0, [r7]
|
|
mov r6, r10
|
|
muls r6, r0
|
|
adds r0, r6, 0
|
|
ldr r1, _08044788
|
|
_08044766:
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8044210
|
|
b _080447BE
|
|
.align 2, 0
|
|
_08044780: .4byte 0x06010000
|
|
_08044784: .4byte 0x05000040
|
|
_08044788: .4byte 0x030045c0
|
|
_0804478C:
|
|
ldrb r0, [r5]
|
|
bl draw_status_ailment_maybe
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r7]
|
|
movs r6, 0x64
|
|
muls r1, r6
|
|
ldr r4, _080447F4
|
|
adds r1, r4
|
|
movs r2, 0x5
|
|
bl sub_8045A5C
|
|
ldr r0, _080447F8
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080447BE
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r7]
|
|
muls r1, r6
|
|
adds r1, r4
|
|
movs r2, 0x4
|
|
bl sub_8045A5C
|
|
_080447BE:
|
|
ldr r0, _080447FC
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r1, [r0, 0x3C]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0, 0x3C]
|
|
_080447D4:
|
|
adds r7, 0x2
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
ldr r0, _08044800
|
|
ldrb r0, [r0]
|
|
cmp r8, r0
|
|
bge _080447E4
|
|
b _08044570
|
|
_080447E4:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080447F4: .4byte 0x030045c0
|
|
_080447F8: .4byte 0x020239f8
|
|
_080447FC: .4byte 0x03004340
|
|
_08044800: .4byte 0x02024a68
|
|
thumb_func_end sub_804454C
|
|
|
|
thumb_func_start sub_8044804
|
|
sub_8044804: @ 8044804
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
str r1, [sp, 0xC]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x8]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r4, r2, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x10]
|
|
cmp r4, 0
|
|
beq _08044834
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08044878
|
|
_08044834:
|
|
ldr r0, [sp, 0x8]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08044854
|
|
movs r7, 0
|
|
movs r1, 0x88
|
|
movs r2, 0x60
|
|
movs r0, 0x64
|
|
mov r8, r0
|
|
ldr r5, _08044850
|
|
b _08044884
|
|
.align 2, 0
|
|
_08044850: .4byte 0x0000fffb
|
|
_08044854:
|
|
movs r7, 0x1
|
|
cmp r4, 0
|
|
beq _08044864
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804486A
|
|
_08044864:
|
|
movs r1, 0x68
|
|
movs r2, 0x28
|
|
b _0804486E
|
|
_0804486A:
|
|
movs r1, 0x68
|
|
movs r2, 0x10
|
|
_0804486E:
|
|
ldr r3, _08044874
|
|
mov r8, r3
|
|
b _08044882
|
|
.align 2, 0
|
|
_08044874: .4byte 0x0000ff9c
|
|
_08044878:
|
|
movs r7, 0x1
|
|
movs r1, 0x68
|
|
movs r2, 0x28
|
|
ldr r5, _08044930
|
|
mov r8, r5
|
|
_08044882:
|
|
movs r5, 0x5
|
|
_08044884:
|
|
movs r6, 0
|
|
str r6, [sp, 0x14]
|
|
lsls r4, r7, 3
|
|
ldr r0, _08044934
|
|
mov r10, r0
|
|
lsls r3, r7, 1
|
|
mov r9, r3
|
|
lsls r1, 16
|
|
str r1, [sp, 0x20]
|
|
lsls r2, 16
|
|
str r2, [sp, 0x24]
|
|
ldr r2, _08044938
|
|
ldr r1, [sp, 0xC]
|
|
movs r6, 0x5
|
|
_080448A0:
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
beq _080448B4
|
|
ldr r3, [sp, 0x14]
|
|
lsls r0, r3, 24
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
adds r0, r3
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x14]
|
|
_080448B4:
|
|
adds r1, 0x8
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080448A0
|
|
mov r6, r10
|
|
adds r0, r4, r6
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, _0804493C
|
|
adds r0, r4, r0
|
|
bl LoadSpriteSheet
|
|
ldr r0, _08044940
|
|
adds r0, r4, r0
|
|
bl LoadSpritePalette
|
|
ldr r0, _08044944
|
|
adds r0, r4, r0
|
|
bl LoadSpritePalette
|
|
mov r1, r9
|
|
adds r0, r1, r7
|
|
lsls r0, 3
|
|
ldr r1, _08044948
|
|
adds r0, r1
|
|
ldr r2, [sp, 0x20]
|
|
asrs r1, r2, 16
|
|
ldr r3, [sp, 0x24]
|
|
asrs r2, r3, 16
|
|
movs r3, 0xA
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x18]
|
|
lsls r0, 4
|
|
ldr r6, [sp, 0x18]
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, _0804494C
|
|
adds r4, r0, r1
|
|
ldr r1, _08044950
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
mov r0, r8
|
|
strh r0, [r4, 0x24]
|
|
strh r5, [r4, 0x2E]
|
|
cmp r7, 0
|
|
beq _08044954
|
|
ldrh r0, [r4, 0x20]
|
|
subs r0, 0x60
|
|
strh r0, [r4, 0x20]
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
b _0804495A
|
|
.align 2, 0
|
|
_08044930: .4byte 0x0000ff9c
|
|
_08044934: .4byte gUnknown_0820A754
|
|
_08044938: .4byte 0x0000ffff
|
|
_0804493C: .4byte gUnknown_0820A784
|
|
_08044940: .4byte gUnknown_0820A764
|
|
_08044944: .4byte gUnknown_0820A774
|
|
_08044948: .4byte gSpriteTemplate_820A7A4
|
|
_0804494C: .4byte 0x02020004
|
|
_08044950: .4byte gSubspriteTables_820A6E4
|
|
_08044954:
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x60
|
|
strh r0, [r4, 0x20]
|
|
_0804495A:
|
|
movs r6, 0
|
|
ldr r1, _08044A04
|
|
mov r10, r1
|
|
mov r4, sp
|
|
mov r2, r9
|
|
adds r0, r2, r7
|
|
lsls r0, 3
|
|
str r0, [sp, 0x1C]
|
|
movs r3, 0xA
|
|
mov r9, r3
|
|
mov r8, r6
|
|
_08044970:
|
|
ldr r0, _08044A08
|
|
ldr r5, [sp, 0x24]
|
|
ldr r1, _08044A0C
|
|
adds r2, r5, r1
|
|
ldr r3, [sp, 0x1C]
|
|
adds r0, r3, r0
|
|
ldr r5, [sp, 0x20]
|
|
asrs r1, r5, 16
|
|
asrs r2, 16
|
|
movs r3, 0x9
|
|
bl CreateSpriteAtEnd
|
|
strb r0, [r4]
|
|
ldr r0, [sp, 0x10]
|
|
cmp r0, 0
|
|
bne _080449A0
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08044A10
|
|
adds r1, r2
|
|
ldr r0, _08044A14
|
|
str r0, [r1]
|
|
_080449A0:
|
|
ldr r5, _08044A04
|
|
cmp r7, 0
|
|
bne _080449BE
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r10
|
|
strh r7, [r0, 0x24]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r10
|
|
strh r7, [r0, 0x26]
|
|
_080449BE:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0x18]
|
|
strh r3, [r0, 0x2E]
|
|
cmp r7, 0
|
|
bne _08044A18
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x18
|
|
add r0, r8
|
|
strh r0, [r1, 0x20]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r9
|
|
strh r1, [r0, 0x30]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x78
|
|
b _08044A56
|
|
.align 2, 0
|
|
_08044A04: .4byte 0x02020004
|
|
_08044A08: .4byte gSpriteTemplate_820A7D4
|
|
_08044A0C: .4byte 0xfffc0000
|
|
_08044A10: .4byte 0x02020020
|
|
_08044A14: .4byte sub_8045180
|
|
_08044A18:
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r5
|
|
ldrh r3, [r2, 0x20]
|
|
subs r3, 0x18
|
|
movs r1, 0x5
|
|
subs r1, r6
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
subs r3, r0
|
|
strh r3, [r2, 0x20]
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r5
|
|
movs r1, 0x6
|
|
subs r1, r6
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
adds r0, 0xA
|
|
strh r0, [r2, 0x30]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, _08044AC4
|
|
_08044A56:
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r7, [r0, 0x32]
|
|
adds r4, 0x1
|
|
movs r2, 0x7
|
|
add r9, r2
|
|
movs r3, 0xA
|
|
add r8, r3
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
bgt _08044A76
|
|
b _08044970
|
|
_08044A76:
|
|
ldr r0, [sp, 0x8]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08044B5E
|
|
movs r6, 0
|
|
ldr r5, _08044AC8
|
|
mov r10, r5
|
|
ldr r0, _08044ACC
|
|
mov r9, r0
|
|
ldr r7, _08044AD0
|
|
ldr r1, _08044AD4
|
|
mov r12, r1
|
|
ldr r2, _08044AD8
|
|
mov r8, r2
|
|
mov r4, sp
|
|
ldr r5, [sp, 0xC]
|
|
_08044A9A:
|
|
mov r3, r10
|
|
ldrh r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044ADC
|
|
ldrh r0, [r5]
|
|
cmp r0, r9
|
|
beq _08044AE6
|
|
cmp r0, 0
|
|
bne _08044B2E
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x3
|
|
b _08044B46
|
|
.align 2, 0
|
|
_08044AC4: .4byte 0x0000ff88
|
|
_08044AC8: .4byte 0x020239f8
|
|
_08044ACC: .4byte 0x0000ffff
|
|
_08044AD0: .4byte 0x02020004
|
|
_08044AD4: .4byte 0x000003ff
|
|
_08044AD8: .4byte 0xfffffc00
|
|
_08044ADC:
|
|
ldr r1, [sp, 0x14]
|
|
lsls r0, r1, 24
|
|
asrs r0, 24
|
|
cmp r6, r0
|
|
blt _08044B14
|
|
_08044AE6:
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x1
|
|
mov r0, r12
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x3C]
|
|
b _08044B52
|
|
_08044B14:
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
bne _08044B2E
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x3
|
|
b _08044B46
|
|
_08044B2E:
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _08044B52
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x2
|
|
_08044B46:
|
|
mov r0, r12
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
_08044B52:
|
|
adds r4, 0x1
|
|
adds r5, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08044A9A
|
|
b _08044C38
|
|
_08044B5E:
|
|
movs r6, 0
|
|
ldr r1, _08044BA4
|
|
mov r10, r1
|
|
ldr r2, _08044BA8
|
|
mov r9, r2
|
|
ldr r7, _08044BAC
|
|
ldr r3, _08044BB0
|
|
mov r12, r3
|
|
ldr r5, _08044BB4
|
|
mov r8, r5
|
|
ldr r5, [sp, 0xC]
|
|
mov r4, sp
|
|
adds r4, 0x5
|
|
_08044B78:
|
|
mov r0, r10
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044BB8
|
|
ldrh r0, [r5]
|
|
cmp r0, r9
|
|
beq _08044BC2
|
|
cmp r0, 0
|
|
bne _08044C0A
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x3
|
|
b _08044C22
|
|
.align 2, 0
|
|
_08044BA4: .4byte 0x020239f8
|
|
_08044BA8: .4byte 0x0000ffff
|
|
_08044BAC: .4byte 0x02020004
|
|
_08044BB0: .4byte 0x000003ff
|
|
_08044BB4: .4byte 0xfffffc00
|
|
_08044BB8:
|
|
ldr r1, [sp, 0x14]
|
|
lsls r0, r1, 24
|
|
asrs r0, 24
|
|
cmp r6, r0
|
|
blt _08044BF0
|
|
_08044BC2:
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x1
|
|
mov r0, r12
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x3C]
|
|
b _08044C2E
|
|
_08044BF0:
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
bne _08044C0A
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x3
|
|
b _08044C22
|
|
_08044C0A:
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _08044C2E
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x2
|
|
_08044C22:
|
|
mov r0, r12
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
_08044C2E:
|
|
subs r4, 0x1
|
|
adds r5, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08044B78
|
|
_08044C38:
|
|
ldr r0, _08044C98
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r2, _08044C9C
|
|
lsls r3, r4, 2
|
|
adds r1, r3, r4
|
|
lsls r1, 3
|
|
adds r0, r1, r2
|
|
mov r5, sp
|
|
ldrh r5, [r5, 0x8]
|
|
strh r5, [r0, 0x8]
|
|
mov r6, sp
|
|
ldrh r6, [r6, 0x18]
|
|
strh r6, [r0, 0xA]
|
|
movs r6, 0
|
|
adds r0, r2, 0
|
|
adds r0, 0xE
|
|
adds r1, r0
|
|
_08044C62:
|
|
mov r5, sp
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08044C62
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r6, [r5, 0x10]
|
|
strh r6, [r0, 0x1C]
|
|
movs r0, 0x72
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
adds r0, r4, 0
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044C98: .4byte TaskDummy
|
|
_08044C9C: .4byte 0x03004b20
|
|
thumb_func_end sub_8044804
|
|
|
|
thumb_func_start sub_8044CA0
|
|
sub_8044CA0: @ 8044CA0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, _08044DB4
|
|
lsls r3, r0, 2
|
|
adds r1, r3, r0
|
|
lsls r1, 3
|
|
adds r0, r1, r2
|
|
ldrb r4, [r0, 0x1C]
|
|
mov r9, r4
|
|
ldrb r4, [r0, 0xA]
|
|
mov r10, r4
|
|
ldrb r0, [r0, 0x8]
|
|
str r0, [sp, 0x8]
|
|
movs r5, 0
|
|
adds r7, r2, 0
|
|
ldr r0, _08044DB8
|
|
mov r12, r0
|
|
str r3, [sp, 0xC]
|
|
adds r0, r7, 0
|
|
adds r0, 0xE
|
|
adds r2, r1, r0
|
|
_08044CD8:
|
|
mov r4, sp
|
|
adds r1, r4, r5
|
|
ldrh r0, [r2]
|
|
strb r0, [r1]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044CD8
|
|
ldr r1, _08044DBC
|
|
movs r2, 0xFD
|
|
lsls r2, 6
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x10
|
|
strh r0, [r1]
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0x26]
|
|
movs r5, 0
|
|
mov r4, r10
|
|
lsls r4, 4
|
|
str r4, [sp, 0x10]
|
|
ldr r4, _08044DB8
|
|
movs r6, 0xD
|
|
negs r6, r6
|
|
movs r3, 0x4
|
|
_08044D14:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044D14
|
|
ldr r2, [sp, 0x10]
|
|
add r2, r10
|
|
lsls r2, 2
|
|
add r2, r12
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _08044D50
|
|
b _08044E54
|
|
_08044D50:
|
|
movs r5, 0
|
|
mov r6, r12
|
|
mov r9, r5
|
|
adds r3, r6, 0
|
|
adds r3, 0x1C
|
|
mov r4, sp
|
|
movs r7, 0
|
|
_08044D5E:
|
|
ldr r0, [sp, 0x8]
|
|
str r3, [sp, 0x14]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r3, [sp, 0x14]
|
|
cmp r2, 0
|
|
beq _08044DC4
|
|
movs r0, 0x5
|
|
subs r0, r5
|
|
mov r1, sp
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r7, [r0, 0x30]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r9
|
|
strh r1, [r0, 0x34]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r9
|
|
strh r1, [r0, 0x36]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, _08044DC0
|
|
str r1, [r0]
|
|
ldr r2, _08044DB8
|
|
mov r12, r2
|
|
b _08044DFA
|
|
.align 2, 0
|
|
_08044DB4: .4byte 0x03004b20
|
|
_08044DB8: .4byte 0x02020004
|
|
_08044DBC: .4byte REG_BLDCNT
|
|
_08044DC0: .4byte sub_8045110
|
|
_08044DC4:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r7, [r0, 0x30]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r2, [r0, 0x34]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r2, [r0, 0x36]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, _08044E3C
|
|
str r1, [r0]
|
|
ldr r0, _08044E40
|
|
mov r12, r0
|
|
_08044DFA:
|
|
adds r4, 0x1
|
|
adds r7, 0x7
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044D5E
|
|
ldr r3, [sp, 0x10]
|
|
add r3, r10
|
|
lsls r3, 2
|
|
mov r1, r12
|
|
adds r0, r3, r1
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r0, r2]
|
|
lsrs r2, r1, 31
|
|
adds r1, r2
|
|
asrs r1, 1
|
|
movs r2, 0
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
mov r1, r12
|
|
adds r1, 0x1C
|
|
adds r3, r1
|
|
ldr r1, _08044E44
|
|
str r1, [r3]
|
|
ldr r1, _08044E48
|
|
bl SetSubspriteTables
|
|
ldr r1, _08044E4C
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08044E50
|
|
b _08044E5E
|
|
.align 2, 0
|
|
_08044E3C: .4byte sub_8045110
|
|
_08044E40: .4byte 0x02020004
|
|
_08044E44: .4byte sub_8045048
|
|
_08044E48: .4byte gSubspriteTables_820A6EC
|
|
_08044E4C: .4byte 0x03004b20
|
|
_08044E50: .4byte sub_8044E74
|
|
_08044E54:
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
ldr r1, _08044E70
|
|
_08044E5E:
|
|
str r1, [r0]
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044E70: .4byte sub_8044F70
|
|
thumb_func_end sub_8044CA0
|
|
|
|
thumb_func_start sub_8044E74
|
|
sub_8044E74: @ 8044E74
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08044EC0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, r1, r2
|
|
ldrh r0, [r3, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x1E]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08044EAE
|
|
ldrh r0, [r3, 0x26]
|
|
subs r2, r0, 0x1
|
|
strh r2, [r3, 0x26]
|
|
lsls r0, r2, 16
|
|
cmp r0, 0
|
|
blt _08044EBA
|
|
ldr r1, _08044EC4
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r1]
|
|
_08044EAE:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _08044EBA
|
|
ldr r0, _08044EC8
|
|
str r0, [r3]
|
|
_08044EBA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044EC0: .4byte 0x03004b20
|
|
_08044EC4: .4byte REG_BLDALPHA
|
|
_08044EC8: .4byte sub_8044ECC
|
|
thumb_func_end sub_8044E74
|
|
|
|
thumb_func_start sub_8044ECC
|
|
sub_8044ECC: @ 8044ECC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r6, _08044F44
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r4, r0, 3
|
|
adds r1, r4, r6
|
|
ldrh r0, [r1, 0x26]
|
|
subs r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r1, 0x26]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _08044F4C
|
|
ldrb r3, [r1, 0xA]
|
|
adds r0, r6, 0
|
|
adds r0, 0xE
|
|
adds r2, r4, r0
|
|
_08044EFA:
|
|
mov r0, sp
|
|
adds r1, r0, r5
|
|
ldrh r0, [r2]
|
|
strb r0, [r1]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044EFA
|
|
lsls r0, r3, 4
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r4, _08044F48
|
|
adds r0, r4
|
|
bl DestroySpriteAndFreeResources
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySpriteAndFreeResources
|
|
movs r5, 0x1
|
|
_08044F2A:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044F2A
|
|
b _08044F62
|
|
.align 2, 0
|
|
_08044F44: .4byte 0x03004b20
|
|
_08044F48: .4byte 0x02020004
|
|
_08044F4C:
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _08044F62
|
|
ldr r0, _08044F6C
|
|
strh r5, [r0]
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_08044F62:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044F6C: .4byte REG_BLDCNT
|
|
thumb_func_end sub_8044ECC
|
|
|
|
thumb_func_start sub_8044F70
|
|
sub_8044F70: @ 8044F70
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
ldr r7, _08044FA4
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r6, r0, 3
|
|
adds r3, r6, r7
|
|
ldrh r0, [r3, 0x26]
|
|
subs r2, r0, 0x1
|
|
movs r5, 0
|
|
strh r2, [r3, 0x26]
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
blt _08044FAC
|
|
ldr r1, _08044FA8
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r1]
|
|
b _08045022
|
|
.align 2, 0
|
|
_08044FA4: .4byte 0x03004b20
|
|
_08044FA8: .4byte REG_BLDALPHA
|
|
_08044FAC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0804500C
|
|
ldrb r3, [r3, 0xA]
|
|
movs r5, 0
|
|
adds r0, r7, 0
|
|
adds r0, 0xE
|
|
adds r2, r6, r0
|
|
_08044FBE:
|
|
mov r0, sp
|
|
adds r1, r0, r5
|
|
ldrh r0, [r2]
|
|
strb r0, [r1]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044FBE
|
|
lsls r0, r3, 4
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r4, _08045008
|
|
adds r0, r4
|
|
bl DestroySpriteAndFreeResources
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySpriteAndFreeResources
|
|
movs r5, 0x1
|
|
_08044FEE:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08044FEE
|
|
b _08045022
|
|
.align 2, 0
|
|
_08045008: .4byte 0x02020004
|
|
_0804500C:
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _08045022
|
|
ldr r0, _0804502C
|
|
strh r5, [r0]
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08045022:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804502C: .4byte REG_BLDCNT
|
|
thumb_func_end sub_8044F70
|
|
|
|
thumb_func_start sub_8045030
|
|
sub_8045030: @ 8045030
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r2, [r1, 0x24]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08045044
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, r2, r0
|
|
strh r0, [r1, 0x24]
|
|
_08045044:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8045030
|
|
|
|
thumb_func_start sub_8045048
|
|
sub_8045048: @ 8045048
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
strh r1, [r2, 0x30]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
ble _08045066
|
|
lsls r0, r1, 16
|
|
asrs r0, 20
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
b _0804506E
|
|
_08045066:
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, r1
|
|
_0804506E:
|
|
strh r0, [r2, 0x24]
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
strh r0, [r2, 0x30]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8045048
|
|
|
|
thumb_func_start sub_804507C
|
|
sub_804507C: @ 804507C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _08045090
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
b _08045106
|
|
_08045090:
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrh r2, [r4, 0x34]
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
lsls r1, r0, 16
|
|
lsrs r2, r1, 16
|
|
ldr r0, _080450C0
|
|
ands r2, r0
|
|
strh r2, [r4, 0x34]
|
|
cmp r3, 0
|
|
beq _080450C4
|
|
lsrs r0, r1, 20
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080450D4
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _080450D4
|
|
.align 2, 0
|
|
_080450C0: .4byte 0x0000fff0
|
|
_080450C4:
|
|
lsrs r1, 20
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080450D4
|
|
strh r3, [r4, 0x24]
|
|
_080450D4:
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _08045106
|
|
movs r1, 0x3F
|
|
cmp r3, 0
|
|
beq _080450E4
|
|
movs r1, 0xC0
|
|
_080450E4:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080450F8
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x74
|
|
bl sub_807552C
|
|
b _08045102
|
|
_080450F8:
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x73
|
|
bl sub_80754F8
|
|
_08045102:
|
|
ldr r0, _0804510C
|
|
str r0, [r4, 0x1C]
|
|
_08045106:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804510C: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_804507C
|
|
|
|
thumb_func_start sub_8045110
|
|
sub_8045110: @ 8045110
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0
|
|
ble _08045124
|
|
subs r0, r1, 0x1
|
|
strh r0, [r3, 0x30]
|
|
b _08045174
|
|
_08045124:
|
|
ldrh r0, [r3, 0x32]
|
|
lsls r0, 24
|
|
ldrh r2, [r3, 0x34]
|
|
adds r1, r2, 0
|
|
adds r1, 0x38
|
|
lsls r4, r1, 16
|
|
lsrs r2, r4, 16
|
|
ldr r1, _08045144
|
|
ands r2, r1
|
|
strh r2, [r3, 0x34]
|
|
cmp r0, 0
|
|
beq _08045148
|
|
lsrs r0, r4, 20
|
|
ldrh r1, [r3, 0x24]
|
|
adds r0, r1
|
|
b _0804514E
|
|
.align 2, 0
|
|
_08045144: .4byte 0x0000fff0
|
|
_08045148:
|
|
lsrs r1, r4, 20
|
|
ldrh r0, [r3, 0x24]
|
|
subs r0, r1
|
|
_0804514E:
|
|
strh r0, [r3, 0x24]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r3, r2]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r3, r2]
|
|
adds r0, r1
|
|
adds r0, 0x8
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bls _08045174
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _0804517C
|
|
str r0, [r3, 0x1C]
|
|
_08045174:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804517C: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8045110
|
|
|
|
thumb_func_start sub_8045180
|
|
sub_8045180: @ 8045180
|
|
ldrh r2, [r0, 0x2E]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _0804519C
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r2, [r1, 0x24]
|
|
strh r2, [r0, 0x24]
|
|
ldrh r1, [r1, 0x26]
|
|
strh r1, [r0, 0x26]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804519C: .4byte 0x02020004
|
|
thumb_func_end sub_8045180
|
|
|
|
thumb_func_start sub_80451A0
|
|
sub_80451A0: @ 80451A0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r4, _08045238
|
|
ldr r1, _0804523C
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
mov r0, sp
|
|
bl StringGetEnd10
|
|
adds r4, 0x3
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl StringCopy
|
|
adds r5, r0, 0
|
|
movs r1, 0xFC
|
|
strb r1, [r5]
|
|
movs r0, 0x3
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x2]
|
|
strb r1, [r5, 0x3]
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x4]
|
|
adds r5, 0x5
|
|
adds r0, r7, 0
|
|
bl pokemon_get_gender
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r7, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
bl PokemonGetField
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8040D3C
|
|
cmp r0, 0
|
|
beq _08045222
|
|
movs r6, 0x64
|
|
_08045222:
|
|
cmp r6, 0
|
|
beq _08045240
|
|
cmp r6, 0xFE
|
|
beq _08045248
|
|
movs r0, 0xB
|
|
strb r0, [r5]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x1]
|
|
adds r5, 0x1
|
|
b _08045256
|
|
.align 2, 0
|
|
_08045238: .4byte 0x020238cc
|
|
_0804523C: .4byte gUnknown_0820A8B0
|
|
_08045240:
|
|
movs r0, 0xB
|
|
strb r0, [r5]
|
|
movs r0, 0xB5
|
|
b _0804524E
|
|
_08045248:
|
|
movs r0, 0xA
|
|
strb r0, [r5]
|
|
movs r0, 0xB6
|
|
_0804524E:
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x2]
|
|
adds r5, 0x2
|
|
_08045256:
|
|
movs r0, 0xFC
|
|
strb r0, [r5]
|
|
movs r0, 0x13
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x37
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x3]
|
|
ldr r1, _080452D8
|
|
mov r0, r9
|
|
lsls r4, r0, 4
|
|
adds r0, r4, r0
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 7
|
|
ldr r2, _080452DC
|
|
adds r5, r1, r2
|
|
ldr r0, _080452E0
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_80034D4
|
|
movs r6, 0
|
|
movs r1, 0x7
|
|
mov r10, r1
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
bl PokemonGetField
|
|
str r4, [sp, 0xC]
|
|
cmp r0, 0x1
|
|
bne _08045338
|
|
adds r0, r7, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
cmp r0, 0
|
|
bne _08045338
|
|
mov r4, r8
|
|
ldrb r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r0, 0xFF
|
|
beq _08045338
|
|
adds r7, r5, 0
|
|
_080452C2:
|
|
cmp r1, 0xFC
|
|
bne _080452E4
|
|
ldrb r0, [r4, 0x1]
|
|
bl GetExtCtrlCodeLength
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
adds r4, r0
|
|
b _08045330
|
|
.align 2, 0
|
|
_080452D8: .4byte 0x02020004
|
|
_080452DC: .4byte 0x02000520
|
|
_080452E0: .4byte 0x020238cc
|
|
_080452E4:
|
|
adds r0, r1, 0
|
|
subs r0, 0x37
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bls _080452FC
|
|
adds r0, r1, 0
|
|
adds r0, 0x79
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bhi _08045300
|
|
_080452FC:
|
|
movs r0, 0x2C
|
|
b _0804531E
|
|
_08045300:
|
|
adds r0, r1, 0
|
|
subs r0, 0x4B
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bls _08045318
|
|
adds r0, r1, 0
|
|
adds r0, 0x65
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bhi _0804531C
|
|
_08045318:
|
|
movs r0, 0x2D
|
|
b _0804531E
|
|
_0804531C:
|
|
movs r0, 0x2B
|
|
_0804531E:
|
|
bl sub_8043CDC
|
|
adds r1, r7, 0
|
|
ldr r2, _080453C8
|
|
bl CpuSet
|
|
adds r7, 0x40
|
|
adds r6, 0x1
|
|
adds r4, 0x1
|
|
_08045330:
|
|
ldrb r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r0, 0xFF
|
|
bne _080452C2
|
|
_08045338:
|
|
cmp r6, r10
|
|
bge _0804535A
|
|
lsls r0, r6, 6
|
|
adds r4, r0, r5
|
|
mov r2, r10
|
|
subs r6, r2, r6
|
|
_08045344:
|
|
movs r0, 0x2B
|
|
bl sub_8043CDC
|
|
adds r1, r4, 0
|
|
ldr r2, _080453C8
|
|
bl CpuSet
|
|
adds r4, 0x40
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08045344
|
|
_0804535A:
|
|
ldr r1, _080453CC
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r9
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080453D4
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080453D4
|
|
ldr r1, _080453D0
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _08045438
|
|
mov r8, r6
|
|
mov r9, r1
|
|
ldr r7, _080453C8
|
|
mov r6, r10
|
|
_0804538E:
|
|
mov r1, r9
|
|
adds r1, 0x4
|
|
mov r9, r1
|
|
subs r1, 0x4
|
|
ldm r1!, {r4}
|
|
mov r2, r8
|
|
ldrh r0, [r2, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r5, 0x20
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r5, 0x20
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _0804538E
|
|
b _08045438
|
|
.align 2, 0
|
|
_080453C8: .4byte REG_BG0CNT
|
|
_080453CC: .4byte 0x02020004
|
|
_080453D0: .4byte gUnknown_0820A8B4
|
|
_080453D4:
|
|
ldr r1, _08045448
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r9
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, _0804544C
|
|
cmp r0, 0
|
|
bne _080453F2
|
|
ldr r1, _08045450
|
|
_080453F2:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _08045438
|
|
mov r8, r4
|
|
mov r9, r1
|
|
ldr r7, _08045454
|
|
mov r6, r10
|
|
_08045400:
|
|
mov r0, r9
|
|
adds r0, 0x4
|
|
mov r9, r0
|
|
subs r0, 0x4
|
|
ldm r0!, {r4}
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r5, 0x20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r5, 0x20
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08045400
|
|
_08045438:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045448: .4byte 0x02020004
|
|
_0804544C: .4byte gUnknown_0820A8DC
|
|
_08045450: .4byte gUnknown_0820A904
|
|
_08045454: .4byte REG_BG0CNT
|
|
thumb_func_end sub_80451A0
|
|
|
|
thumb_func_start sub_8045458
|
|
sub_8045458: @ 8045458
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r0, _080454F4
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804552E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804552E
|
|
ldr r6, _080454F8
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r6
|
|
ldrh r0, [r5, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804552E
|
|
ldr r1, _080454FC
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08045500
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8090D90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804552E
|
|
ldrh r0, [r5, 0x38]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r7, 0
|
|
beq _0804550C
|
|
movs r0, 0x46
|
|
bl sub_8043CDC
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r2, _08045504
|
|
adds r1, r2
|
|
ldr r2, _08045508
|
|
bl CpuSet
|
|
b _0804552E
|
|
.align 2, 0
|
|
_080454F4: .4byte 0x020239f8
|
|
_080454F8: .4byte 0x02020004
|
|
_080454FC: .4byte 0x02024a6a
|
|
_08045500: .4byte 0x030045c0
|
|
_08045504: .4byte 0x06010000
|
|
_08045508: .4byte REG_BG0CNT
|
|
_0804550C:
|
|
str r7, [sp]
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
ldr r0, _08045538
|
|
adds r1, r0
|
|
ldr r2, _0804553C
|
|
mov r0, sp
|
|
bl CpuSet
|
|
_0804552E:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045538: .4byte 0x06010000
|
|
_0804553C: .4byte 0x05000008
|
|
thumb_func_end sub_8045458
|
|
|
|
thumb_func_start draw_status_ailment_maybe
|
|
draw_status_ailment_maybe: @ 8045540
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, _080455A4
|
|
mov r2, r9
|
|
lsls r1, r2, 4
|
|
add r1, r9
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrh r0, [r1, 0x38]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
adds r0, r7, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080455B0
|
|
ldr r1, _080455A8
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080455AC
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
movs r3, 0x12
|
|
mov r8, r3
|
|
cmp r0, 0
|
|
bne _080455CC
|
|
movs r0, 0x1A
|
|
mov r8, r0
|
|
b _080455CC
|
|
.align 2, 0
|
|
_080455A4: .4byte 0x02020004
|
|
_080455A8: .4byte 0x02024a6a
|
|
_080455AC: .4byte 0x03004360
|
|
_080455B0:
|
|
ldr r1, _080455EC
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080455F0
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
movs r1, 0x11
|
|
mov r8, r1
|
|
_080455CC:
|
|
movs r0, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080455F4
|
|
movs r0, 0x1B
|
|
adds r1, r7, 0
|
|
bl sub_80457E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r0, 0x2
|
|
b _080456FC
|
|
.align 2, 0
|
|
_080455EC: .4byte 0x02024a6a
|
|
_080455F0: .4byte 0x030045c0
|
|
_080455F4:
|
|
movs r0, 0x88
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08045612
|
|
movs r0, 0x15
|
|
adds r1, r7, 0
|
|
bl sub_80457E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
b _080456FC
|
|
_08045612:
|
|
movs r0, 0x10
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08045630
|
|
movs r0, 0x21
|
|
adds r1, r7, 0
|
|
bl sub_80457E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r0, 0x4
|
|
b _080456FC
|
|
_08045630:
|
|
movs r0, 0x20
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804564E
|
|
movs r0, 0x1E
|
|
adds r1, r7, 0
|
|
bl sub_80457E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r0, 0x3
|
|
b _080456FC
|
|
_0804564E:
|
|
movs r0, 0x40
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804566C
|
|
movs r0, 0x18
|
|
adds r1, r7, 0
|
|
bl sub_80457E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r0, 0x1
|
|
b _080456FC
|
|
_0804566C:
|
|
movs r0, 0x27
|
|
bl sub_8043CDC
|
|
adds r6, r0, 0
|
|
movs r4, 0
|
|
mov r2, r9
|
|
lsls r0, r2, 4
|
|
mov r3, r8
|
|
lsls r3, 16
|
|
mov r8, r3
|
|
lsls r7, 2
|
|
ldr r1, _080456E8
|
|
add r0, r9
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
_0804568A:
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
mov r2, r8
|
|
asrs r0, r2, 16
|
|
adds r1, r0
|
|
adds r1, r4
|
|
lsls r1, 5
|
|
ldr r3, _080456EC
|
|
adds r1, r3
|
|
adds r0, r6, 0
|
|
ldr r2, _080456F0
|
|
bl CpuSet
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _0804568A
|
|
ldr r0, _080456F4
|
|
adds r0, r7, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080456DC
|
|
movs r0, 0x1
|
|
bl sub_8043CDC
|
|
ldr r2, _080456E8
|
|
mov r3, r10
|
|
lsls r1, r3, 4
|
|
add r1, r10
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r2, _080456EC
|
|
adds r1, r2
|
|
ldr r2, _080456F8
|
|
bl CpuSet
|
|
_080456DC:
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_8045458
|
|
b _080457BA
|
|
.align 2, 0
|
|
_080456E8: .4byte 0x02020004
|
|
_080456EC: .4byte 0x06010000
|
|
_080456F0: .4byte REG_BG0CNT
|
|
_080456F4: .4byte 0x02017800
|
|
_080456F8: .4byte REG_BG0HOFS
|
|
_080456FC:
|
|
mov r1, r9
|
|
lsls r5, r1, 4
|
|
add r5, r9
|
|
lsls r5, 2
|
|
ldr r2, _080457C8
|
|
adds r5, r2
|
|
ldrb r4, [r5, 0x5]
|
|
lsrs r4, 4
|
|
lsls r4, 4
|
|
adds r4, 0xC
|
|
adds r4, r7
|
|
lsls r0, 1
|
|
ldr r1, _080457CC
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r4, r3
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
lsls r4, 1
|
|
ldr r0, _080457D0
|
|
adds r0, r4, r0
|
|
ldr r1, _080457D4
|
|
adds r4, r1
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
add r1, r8
|
|
lsls r1, 5
|
|
ldr r2, _080457D8
|
|
mov r8, r2
|
|
add r1, r8
|
|
ldr r2, _080457DC
|
|
adds r0, r6, 0
|
|
bl CpuSet
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0804576A
|
|
adds r0, r7, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080457B2
|
|
_0804576A:
|
|
lsls r0, r7, 2
|
|
ldr r1, _080457E0
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080457B2
|
|
movs r0, 0
|
|
bl sub_8043CDC
|
|
mov r3, r10
|
|
lsls r4, r3, 4
|
|
add r4, r10
|
|
lsls r4, 2
|
|
ldr r1, _080457C8
|
|
adds r4, r1
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
add r1, r8
|
|
ldr r5, _080457E4
|
|
adds r2, r5, 0
|
|
bl CpuSet
|
|
movs r0, 0x41
|
|
bl sub_8043CDC
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
adds r1, 0x20
|
|
add r1, r8
|
|
adds r2, r5, 0
|
|
bl CpuSet
|
|
_080457B2:
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_8045458
|
|
_080457BA:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080457C8: .4byte 0x02020004
|
|
_080457CC: .4byte gUnknown_08E903F8
|
|
_080457D0: .4byte 0x0202ecc8
|
|
_080457D4: .4byte 0x05000200
|
|
_080457D8: .4byte 0x06010000
|
|
_080457DC: .4byte REG_BG2HOFS
|
|
_080457E0: .4byte 0x02017800
|
|
_080457E4: .4byte REG_BG0CNT
|
|
thumb_func_end draw_status_ailment_maybe
|
|
|
|
thumb_func_start sub_80457E8
|
|
sub_80457E8: @ 80457E8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsrs r2, r0, 24
|
|
adds r0, r2, 0
|
|
subs r0, 0x15
|
|
cmp r0, 0xC
|
|
bhi _080458A8
|
|
lsls r0, 2
|
|
ldr r1, _08045804
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08045804: .4byte _08045808
|
|
.align 2, 0
|
|
_08045808:
|
|
.4byte _0804583C
|
|
.4byte _080458A8
|
|
.4byte _080458A8
|
|
.4byte _08045852
|
|
.4byte _080458A8
|
|
.4byte _080458A8
|
|
.4byte _08045868
|
|
.4byte _080458A8
|
|
.4byte _080458A8
|
|
.4byte _0804587E
|
|
.4byte _080458A8
|
|
.4byte _080458A8
|
|
.4byte _08045894
|
|
_0804583C:
|
|
movs r2, 0x15
|
|
cmp r3, 0
|
|
beq _080458A8
|
|
movs r2, 0x47
|
|
cmp r3, 0x1
|
|
beq _080458A8
|
|
movs r2, 0x65
|
|
cmp r3, 0x2
|
|
bne _080458A8
|
|
movs r2, 0x56
|
|
b _080458A8
|
|
_08045852:
|
|
movs r2, 0x18
|
|
cmp r3, 0
|
|
beq _080458A8
|
|
movs r2, 0x4A
|
|
cmp r3, 0x1
|
|
beq _080458A8
|
|
movs r2, 0x68
|
|
cmp r3, 0x2
|
|
bne _080458A8
|
|
movs r2, 0x59
|
|
b _080458A8
|
|
_08045868:
|
|
movs r2, 0x1B
|
|
cmp r3, 0
|
|
beq _080458A8
|
|
movs r2, 0x4D
|
|
cmp r3, 0x1
|
|
beq _080458A8
|
|
movs r2, 0x6B
|
|
cmp r3, 0x2
|
|
bne _080458A8
|
|
movs r2, 0x5C
|
|
b _080458A8
|
|
_0804587E:
|
|
movs r2, 0x1E
|
|
cmp r3, 0
|
|
beq _080458A8
|
|
movs r2, 0x50
|
|
cmp r3, 0x1
|
|
beq _080458A8
|
|
movs r2, 0x6E
|
|
cmp r3, 0x2
|
|
bne _080458A8
|
|
movs r2, 0x5F
|
|
b _080458A8
|
|
_08045894:
|
|
movs r2, 0x21
|
|
cmp r3, 0
|
|
beq _080458A8
|
|
movs r2, 0x53
|
|
cmp r3, 0x1
|
|
beq _080458A8
|
|
movs r2, 0x71
|
|
cmp r3, 0x2
|
|
bne _080458A8
|
|
movs r2, 0x62
|
|
_080458A8:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80457E8
|
|
|
|
thumb_func_start sub_80458B0
|
|
sub_80458B0: @ 80458B0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _08045984
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 7
|
|
ldr r0, _08045988
|
|
adds r6, r1, r0
|
|
movs r1, 0x7
|
|
mov r8, r1
|
|
ldr r1, _0804598C
|
|
adds r0, r6, 0
|
|
bl sub_80034D4
|
|
movs r4, 0
|
|
_080458EE:
|
|
movs r0, 0x2B
|
|
bl sub_8043CDC
|
|
lsls r1, r4, 6
|
|
adds r1, r6, r1
|
|
ldr r2, _08045990
|
|
bl CpuSet
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r8
|
|
bcc _080458EE
|
|
movs r7, 0x3
|
|
movs r2, 0x3
|
|
add r2, r8
|
|
mov r9, r2
|
|
cmp r7, r9
|
|
bge _08045974
|
|
ldr r1, _08045984
|
|
ldr r0, _08045990
|
|
mov r10, r0
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
mov r8, r0
|
|
_08045924:
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 22
|
|
adds r5, r7, 0
|
|
cmp r7, 0
|
|
bge _08045934
|
|
adds r5, r7, 0x7
|
|
_08045934:
|
|
asrs r5, 3
|
|
lsls r4, r5, 3
|
|
subs r4, r7, r4
|
|
adds r0, r4
|
|
lsls r5, 6
|
|
adds r0, r5
|
|
lsls r0, 5
|
|
ldr r2, _08045994
|
|
adds r1, r0, r2
|
|
adds r0, r6, 0
|
|
mov r2, r10
|
|
bl CpuSet
|
|
adds r6, 0x20
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 22
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
adds r0, r5
|
|
lsls r0, 5
|
|
ldr r2, _08045994
|
|
adds r1, r0, r2
|
|
adds r0, r6, 0
|
|
mov r2, r10
|
|
bl CpuSet
|
|
adds r6, 0x20
|
|
adds r7, 0x1
|
|
cmp r7, r9
|
|
blt _08045924
|
|
_08045974:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045984: .4byte 0x02020004
|
|
_08045988: .4byte 0x02000520
|
|
_0804598C: .4byte gUnknown_08400DD6
|
|
_08045990: .4byte REG_BG0CNT
|
|
_08045994: .4byte 0x06010000
|
|
thumb_func_end sub_80458B0
|
|
|
|
thumb_func_start sub_8045998
|
|
sub_8045998: @ 8045998
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _08045A38
|
|
mov r8, r0
|
|
ldr r1, _08045A3C
|
|
bl StringCopy
|
|
adds r7, r0, 0
|
|
ldr r0, _08045A40
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl sub_8003504
|
|
adds r7, r0, 0
|
|
ldr r1, _08045A44
|
|
bl StringAppend
|
|
ldr r0, _08045A48
|
|
lsls r5, r4, 4
|
|
adds r5, r4
|
|
lsls r5, 2
|
|
adds r5, r0
|
|
ldrh r0, [r5, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 7
|
|
ldr r0, _08045A4C
|
|
adds r7, r4, r0
|
|
movs r6, 0x5
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
bl sub_80034D4
|
|
ldr r0, _08045A50
|
|
adds r7, r4, r0
|
|
movs r4, 0x6
|
|
_080459F8:
|
|
ldrh r0, [r5, 0x4]
|
|
lsls r0, 22
|
|
lsrs r2, r0, 22
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08045A06
|
|
adds r0, r4, 0x7
|
|
_08045A06:
|
|
asrs r0, 3
|
|
lsls r1, r0, 3
|
|
subs r1, r4, r1
|
|
adds r1, 0x18
|
|
adds r1, r2, r1
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
lsls r1, 5
|
|
ldr r0, _08045A54
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
ldr r2, _08045A58
|
|
bl CpuSet
|
|
adds r7, 0x40
|
|
adds r4, 0x1
|
|
adds r0, r6, 0x6
|
|
cmp r4, r0
|
|
blt _080459F8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045A38: .4byte 0x020238cc
|
|
_08045A3C: .4byte gUnknown_08400DE6
|
|
_08045A40: .4byte 0x02038808
|
|
_08045A44: .4byte gUnknown_08400DF0
|
|
_08045A48: .4byte 0x02020004
|
|
_08045A4C: .4byte 0x02000520
|
|
_08045A50: .4byte 0x02000540
|
|
_08045A54: .4byte 0x06010000
|
|
_08045A58: .4byte REG_BG0CNT
|
|
thumb_func_end sub_8045998
|
|
|
|
thumb_func_start sub_8045A5C
|
|
sub_8045A5C: @ 8045A5C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r9, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
ldr r1, _08045BE4
|
|
lsls r0, 4
|
|
add r0, r8
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08045A92
|
|
b _08045BF0
|
|
_08045A92:
|
|
cmp r7, 0x3
|
|
beq _08045A9A
|
|
cmp r7, 0
|
|
bne _08045AAE
|
|
_08045A9A:
|
|
mov r0, r9
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_8043FC0
|
|
_08045AAE:
|
|
cmp r7, 0x1
|
|
bhi _08045AC8
|
|
mov r0, r9
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl sub_80440EC
|
|
_08045AC8:
|
|
cmp r7, 0x2
|
|
beq _08045AD0
|
|
cmp r7, 0
|
|
bne _08045AE6
|
|
_08045AD0:
|
|
mov r0, r9
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, r8
|
|
movs r2, 0x1
|
|
bl sub_80440EC
|
|
_08045AE6:
|
|
cmp r7, 0x5
|
|
beq _08045AEE
|
|
cmp r7, 0
|
|
bne _08045B22
|
|
_08045AEE:
|
|
movs r0, 0
|
|
bl load_gfxc_health_bar
|
|
mov r0, r9
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
mov r0, r9
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r3, r0, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl sub_8043D84
|
|
mov r0, r10
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8045C78
|
|
_08045B22:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bne _08045BA6
|
|
cmp r7, 0x6
|
|
beq _08045B38
|
|
cmp r7, 0
|
|
bne _08045BA6
|
|
_08045B38:
|
|
movs r0, 0x3
|
|
bl load_gfxc_health_bar
|
|
mov r0, r9
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r0, r9
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, r9
|
|
movs r1, 0x19
|
|
bl PokemonGetField
|
|
adds r3, r0, 0
|
|
ldr r6, _08045BE8
|
|
lsls r1, r4, 2
|
|
ldr r2, _08045BEC
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r0, r2
|
|
adds r1, r0
|
|
adds r1, r6
|
|
ldr r1, [r1]
|
|
subs r3, r1
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
adds r4, r6
|
|
ldr r2, [r4]
|
|
subs r2, r1
|
|
ldr r0, [sp, 0x4]
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
mov r1, r8
|
|
bl sub_8043D84
|
|
mov r0, r10
|
|
mov r1, r8
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_8045C78
|
|
_08045BA6:
|
|
cmp r7, 0x4
|
|
beq _08045BAE
|
|
cmp r7, 0
|
|
bne _08045BB6
|
|
_08045BAE:
|
|
mov r0, r8
|
|
mov r1, r9
|
|
bl sub_80451A0
|
|
_08045BB6:
|
|
cmp r7, 0x9
|
|
beq _08045BBE
|
|
cmp r7, 0
|
|
bne _08045BC4
|
|
_08045BBE:
|
|
mov r0, r8
|
|
bl draw_status_ailment_maybe
|
|
_08045BC4:
|
|
cmp r7, 0xA
|
|
bne _08045BCE
|
|
mov r0, r8
|
|
bl sub_80458B0
|
|
_08045BCE:
|
|
adds r0, r7, 0
|
|
subs r0, 0xA
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08045C66
|
|
mov r0, r8
|
|
bl sub_8045998
|
|
b _08045C66
|
|
.align 2, 0
|
|
_08045BE4: .4byte 0x02020004
|
|
_08045BE8: .4byte gExperienceTables
|
|
_08045BEC: .4byte gBaseStats
|
|
_08045BF0:
|
|
cmp r7, 0x3
|
|
beq _08045BF8
|
|
cmp r7, 0
|
|
bne _08045C0C
|
|
_08045BF8:
|
|
mov r0, r9
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_8043FC0
|
|
_08045C0C:
|
|
cmp r7, 0x5
|
|
beq _08045C14
|
|
cmp r7, 0
|
|
bne _08045C48
|
|
_08045C14:
|
|
movs r0, 0
|
|
bl load_gfxc_health_bar
|
|
mov r0, r9
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r4, r0, 0
|
|
mov r0, r9
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r3, r0, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl sub_8043D84
|
|
mov r0, r10
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8045C78
|
|
_08045C48:
|
|
cmp r7, 0x4
|
|
beq _08045C50
|
|
cmp r7, 0
|
|
bne _08045C58
|
|
_08045C50:
|
|
mov r0, r8
|
|
mov r1, r9
|
|
bl sub_80451A0
|
|
_08045C58:
|
|
cmp r7, 0x9
|
|
beq _08045C60
|
|
cmp r7, 0
|
|
bne _08045C66
|
|
_08045C60:
|
|
mov r0, r8
|
|
bl draw_status_ailment_maybe
|
|
_08045C66:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8045A5C
|
|
|
|
thumb_func_start sub_8045C78
|
|
sub_8045C78: @ 8045C78
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
cmp r2, 0
|
|
bne _08045CBC
|
|
lsls r5, r7, 2
|
|
adds r3, r5, r7
|
|
lsls r3, 2
|
|
ldr r4, _08045CB8
|
|
adds r2, r3, r4
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r2, 0x8]
|
|
ldr r2, [r2, 0xC]
|
|
adds r4, 0x10
|
|
adds r3, r4
|
|
movs r4, 0x6
|
|
str r4, [sp]
|
|
movs r4, 0x1
|
|
str r4, [sp, 0x4]
|
|
bl sub_8045F58
|
|
adds r6, r0, 0
|
|
adds r4, r5, 0
|
|
b _08045D0A
|
|
.align 2, 0
|
|
_08045CB8: .4byte 0x02017850
|
|
_08045CBC:
|
|
lsls r4, r7, 2
|
|
adds r0, r4, r7
|
|
lsls r0, 2
|
|
mov r10, r0
|
|
ldr r6, _08045D50
|
|
add r6, r10
|
|
ldr r0, [r6, 0x8]
|
|
ldr r1, [r6, 0xC]
|
|
ldr r2, [r6, 0x4]
|
|
movs r3, 0x8
|
|
bl sub_8046188
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _08045CDE
|
|
movs r5, 0x1
|
|
_08045CDE:
|
|
ldr r0, [r6, 0xC]
|
|
mov r8, r0
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
cmp r0, 0
|
|
bge _08045CEE
|
|
negs r0, r0
|
|
_08045CEE:
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, [r6, 0x4]
|
|
ldr r1, [r6, 0x8]
|
|
ldr r3, _08045D50
|
|
adds r3, 0x10
|
|
add r3, r10
|
|
movs r2, 0x8
|
|
str r2, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r2, r8
|
|
bl sub_8045F58
|
|
adds r6, r0, 0
|
|
_08045D0A:
|
|
mov r0, r9
|
|
cmp r0, 0x1
|
|
beq _08045D22
|
|
cmp r0, 0
|
|
bne _08045D2A
|
|
ldr r0, _08045D54
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045D2A
|
|
_08045D22:
|
|
adds r0, r7, 0
|
|
mov r1, r9
|
|
bl sub_8045D58
|
|
_08045D2A:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
bne _08045D3E
|
|
adds r0, r4, r7
|
|
lsls r0, 2
|
|
ldr r1, _08045D50
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0, 0x10]
|
|
_08045D3E:
|
|
adds r0, r6, 0
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08045D50: .4byte 0x02017850
|
|
_08045D54: .4byte 0x02017800
|
|
thumb_func_end sub_8045C78
|
|
|
|
thumb_func_start sub_8045D58
|
|
sub_8045D58: @ 8045D58
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0
|
|
beq _08045D72
|
|
cmp r1, 0x1
|
|
beq _08045E54
|
|
b _08045F42
|
|
_08045D72:
|
|
lsls r5, r6, 2
|
|
adds r3, r5, r6
|
|
lsls r3, 2
|
|
ldr r4, _08045E00
|
|
adds r2, r3, r4
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r2, 0x8]
|
|
ldr r2, [r2, 0xC]
|
|
adds r4, 0x10
|
|
adds r3, r4
|
|
add r4, sp, 0x8
|
|
str r4, [sp]
|
|
movs r4, 0x6
|
|
str r4, [sp, 0x4]
|
|
bl sub_804602C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
mov r8, r1
|
|
adds r1, r5, 0
|
|
cmp r0, 0x18
|
|
bhi _08045DAC
|
|
movs r2, 0x38
|
|
mov r8, r2
|
|
cmp r0, 0x9
|
|
bls _08045DAC
|
|
movs r4, 0x2F
|
|
mov r8, r4
|
|
_08045DAC:
|
|
movs r5, 0
|
|
ldr r7, _08045E04
|
|
adds r0, r1, r6
|
|
lsls r6, r0, 2
|
|
_08045DB4:
|
|
ldr r0, _08045E00
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x38]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r5, 0x1
|
|
bhi _08045E10
|
|
mov r0, r8
|
|
bl sub_8043CDC
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
ldrb r1, [r1]
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r2, r5, 0x2
|
|
adds r1, r2
|
|
lsls r1, 5
|
|
ldr r2, _08045E08
|
|
adds r1, r2
|
|
ldr r2, _08045E0C
|
|
bl CpuSet
|
|
b _08045E3E
|
|
.align 2, 0
|
|
_08045E00: .4byte 0x02017850
|
|
_08045E04: .4byte 0x02020004
|
|
_08045E08: .4byte 0x06010000
|
|
_08045E0C: .4byte REG_BG0CNT
|
|
_08045E10:
|
|
mov r0, r8
|
|
bl sub_8043CDC
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
ldrb r1, [r1]
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r1, r5, r1
|
|
lsls r1, 5
|
|
ldr r4, _08045E4C
|
|
adds r1, r4
|
|
ldr r2, _08045E50
|
|
bl CpuSet
|
|
_08045E3E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _08045DB4
|
|
b _08045F42
|
|
.align 2, 0
|
|
_08045E4C: .4byte 0x06010040
|
|
_08045E50: .4byte REG_BG0CNT
|
|
_08045E54:
|
|
lsls r5, r6, 2
|
|
adds r3, r5, r6
|
|
lsls r3, 2
|
|
ldr r4, _08045EF0
|
|
adds r2, r3, r4
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r2, 0x8]
|
|
ldr r2, [r2, 0xC]
|
|
adds r4, 0x10
|
|
adds r3, r4
|
|
add r4, sp, 0x8
|
|
str r4, [sp]
|
|
movs r4, 0x8
|
|
str r4, [sp, 0x4]
|
|
bl sub_804602C
|
|
ldr r1, _08045EF4
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08045EF8
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r5, 0
|
|
cmp r0, 0x64
|
|
bne _08045EAA
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_08045E98:
|
|
mov r0, sp
|
|
adds r0, r5
|
|
adds r0, 0x8
|
|
strb r2, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _08045E98
|
|
_08045EAA:
|
|
movs r5, 0
|
|
ldr r7, _08045EFC
|
|
adds r0, r1, r6
|
|
lsls r0, 2
|
|
ldr r1, _08045EF0
|
|
adds r4, r0, r1
|
|
_08045EB6:
|
|
cmp r5, 0x3
|
|
bhi _08045F08
|
|
movs r0, 0xC
|
|
bl sub_8043CDC
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
ldrb r1, [r1]
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r2, r5, 0
|
|
adds r2, 0x24
|
|
adds r1, r2
|
|
lsls r1, 5
|
|
ldr r2, _08045F00
|
|
adds r1, r2
|
|
ldr r2, _08045F04
|
|
bl CpuSet
|
|
b _08045F38
|
|
.align 2, 0
|
|
_08045EF0: .4byte 0x02017850
|
|
_08045EF4: .4byte 0x02024a6a
|
|
_08045EF8: .4byte 0x03004360
|
|
_08045EFC: .4byte 0x02020004
|
|
_08045F00: .4byte 0x06010000
|
|
_08045F04: .4byte REG_BG0CNT
|
|
_08045F08:
|
|
movs r0, 0xC
|
|
bl sub_8043CDC
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
ldrb r1, [r1]
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r1, r5, r1
|
|
lsls r1, 5
|
|
ldr r2, _08045F50
|
|
adds r1, r2
|
|
ldr r2, _08045F54
|
|
bl CpuSet
|
|
_08045F38:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _08045EB6
|
|
_08045F42:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045F50: .4byte 0x06010b80
|
|
_08045F54: .4byte REG_BG0CNT
|
|
thumb_func_end sub_8045D58
|
|
|
|
thumb_func_start sub_8045F58
|
|
sub_8045F58: @ 8045F58
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
adds r5, r3, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, [sp, 0x1C]
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsls r1, 27
|
|
lsrs r2, r1, 24
|
|
ldr r1, [r5]
|
|
ldr r0, _08045F84
|
|
cmp r1, r0
|
|
bne _08045F8A
|
|
cmp r7, r2
|
|
bge _08045F88
|
|
lsls r0, r4, 8
|
|
str r0, [r5]
|
|
b _08045F8A
|
|
.align 2, 0
|
|
_08045F84: .4byte 0xffff8000
|
|
_08045F88:
|
|
str r4, [r5]
|
|
_08045F8A:
|
|
mov r0, r8
|
|
subs r4, r0
|
|
cmp r4, 0
|
|
bge _08045F96
|
|
movs r4, 0
|
|
b _08045F9C
|
|
_08045F96:
|
|
cmp r4, r7
|
|
ble _08045F9C
|
|
adds r4, r7, 0
|
|
_08045F9C:
|
|
cmp r7, r2
|
|
bge _08045FB8
|
|
ldr r0, [r5]
|
|
asrs r1, r0, 8
|
|
adds r6, r0, 0
|
|
cmp r4, r1
|
|
bne _08045FC4
|
|
movs r0, 0xFF
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _08045FC4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08046020
|
|
_08045FB8:
|
|
ldr r6, [r5]
|
|
cmp r4, r6
|
|
bne _08045FC4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08046020
|
|
_08045FC4:
|
|
cmp r7, r2
|
|
bge _08045FFE
|
|
lsls r0, r7, 8
|
|
adds r1, r2, 0
|
|
bl __divsi3
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
bge _08045FE2
|
|
adds r0, r6, r0
|
|
str r0, [r5]
|
|
asrs r2, r0, 8
|
|
cmp r2, r4
|
|
blt _0804601E
|
|
b _08045FF6
|
|
_08045FE2:
|
|
subs r0, r6, r0
|
|
str r0, [r5]
|
|
asrs r2, r0, 8
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
ble _08045FF2
|
|
adds r2, 0x1
|
|
_08045FF2:
|
|
cmp r2, r4
|
|
bgt _0804601E
|
|
_08045FF6:
|
|
lsls r0, r4, 8
|
|
str r0, [r5]
|
|
adds r2, r4, 0
|
|
b _0804601E
|
|
_08045FFE:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bge _08046010
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
str r0, [r5]
|
|
cmp r0, r4
|
|
ble _0804601C
|
|
b _0804601A
|
|
_08046010:
|
|
ldr r0, [r5]
|
|
subs r0, r3
|
|
str r0, [r5]
|
|
cmp r0, r4
|
|
bge _0804601C
|
|
_0804601A:
|
|
str r4, [r5]
|
|
_0804601C:
|
|
ldr r2, [r5]
|
|
_0804601E:
|
|
adds r0, r2, 0
|
|
_08046020:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8045F58
|
|
|
|
thumb_func_start sub_804602C
|
|
sub_804602C: @ 804602C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
mov r12, r3
|
|
ldr r7, [sp, 0x14]
|
|
ldr r0, [sp, 0x18]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
subs r5, r1, r2
|
|
cmp r5, 0
|
|
bge _08046044
|
|
movs r5, 0
|
|
b _0804604A
|
|
_08046044:
|
|
cmp r5, r4
|
|
ble _0804604A
|
|
adds r5, r4, 0
|
|
_0804604A:
|
|
lsls r0, r6, 27
|
|
lsrs r3, r0, 24
|
|
movs r1, 0
|
|
cmp r1, r6
|
|
bcs _08046064
|
|
movs r2, 0
|
|
_08046056:
|
|
adds r0, r7, r1
|
|
strb r2, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r6
|
|
bcc _08046056
|
|
_08046064:
|
|
cmp r4, r3
|
|
bge _08046078
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
muls r0, r3
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
asrs r0, 8
|
|
b _08046084
|
|
_08046078:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
muls r0, r3
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
_08046084:
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, r2, 0
|
|
cmp r3, 0
|
|
bne _0804609A
|
|
cmp r5, 0
|
|
ble _0804609A
|
|
movs r0, 0x1
|
|
strb r0, [r7]
|
|
movs r3, 0x1
|
|
b _080460BE
|
|
_0804609A:
|
|
movs r1, 0
|
|
movs r4, 0x8
|
|
_0804609E:
|
|
cmp r1, r6
|
|
bcs _080460BE
|
|
cmp r2, 0x7
|
|
bls _080460BA
|
|
adds r0, r7, r1
|
|
strb r4, [r0]
|
|
adds r0, r2, 0
|
|
subs r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
b _0804609E
|
|
_080460BA:
|
|
adds r0, r7, r1
|
|
strb r2, [r0]
|
|
_080460BE:
|
|
adds r0, r3, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804602C
|
|
|
|
thumb_func_start sub_80460C8
|
|
sub_80460C8: @ 80460C8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r2, [r5, 0x8]
|
|
movs r3, 0x6
|
|
str r3, [sp]
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x4]
|
|
adds r3, r6, 0
|
|
bl sub_8045F58
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_8046128
|
|
ldr r0, [r5]
|
|
cmp r0, 0x2F
|
|
bgt _08046108
|
|
ldr r0, [r6]
|
|
lsls r0, 8
|
|
lsrs r1, r0, 16
|
|
b _0804610A
|
|
_08046108:
|
|
ldrh r1, [r6]
|
|
_0804610A:
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r2, r8
|
|
bl sub_804373C
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80460C8
|
|
|
|
thumb_func_start sub_8046128
|
|
sub_8046128: @ 8046128
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x1C
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
mov r8, r2
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r2, [r5, 0x8]
|
|
add r4, sp, 0x8
|
|
str r4, [sp]
|
|
movs r4, 0x6
|
|
str r4, [sp, 0x4]
|
|
bl sub_804602C
|
|
movs r3, 0
|
|
add r7, sp, 0x10
|
|
mov r12, r7
|
|
ldrb r0, [r5, 0xC]
|
|
lsls r6, r0, 27
|
|
ldr r4, [r5, 0x10]
|
|
_08046154:
|
|
lsls r2, r3, 1
|
|
add r2, r12
|
|
lsrs r1, r6, 15
|
|
mov r0, sp
|
|
adds r0, r3
|
|
adds r0, 0x8
|
|
ldrb r0, [r0]
|
|
adds r0, r4, r0
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x5
|
|
bls _08046154
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
movs r2, 0x6
|
|
bl CpuSet
|
|
add sp, 0x1C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8046128
|
|
|
|
thumb_func_start sub_8046188
|
|
sub_8046188: @ 8046188
|
|
push {r4-r7,lr}
|
|
adds r6, r2, 0
|
|
lsls r3, 27
|
|
lsrs r7, r3, 24
|
|
subs r5, r0, r1
|
|
cmp r5, 0
|
|
bge _0804619A
|
|
movs r5, 0
|
|
b _080461A0
|
|
_0804619A:
|
|
cmp r5, r6
|
|
ble _080461A0
|
|
adds r5, r6, 0
|
|
_080461A0:
|
|
muls r0, r7
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
muls r0, r7
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
subs r0, r4, r0
|
|
cmp r0, 0
|
|
bge _080461C8
|
|
negs r0, r0
|
|
_080461C8:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8046188
|
|
|
|
thumb_func_start sub_80461D4
|
|
sub_80461D4: @ 80461D4
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
muls r0, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080461F8
|
|
cmp r4, 0
|
|
ble _080461F8
|
|
movs r0, 0x1
|
|
_080461F8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80461D4
|
|
|
|
thumb_func_start sub_8046200
|
|
sub_8046200: @ 8046200
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r0, r1
|
|
bne _08046212
|
|
movs r0, 0x4
|
|
b _0804622E
|
|
_08046212:
|
|
movs r2, 0x30
|
|
bl sub_80461D4
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x3
|
|
cmp r1, 0x18
|
|
bhi _0804622E
|
|
movs r0, 0x2
|
|
cmp r1, 0x9
|
|
bhi _0804622E
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_0804622E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8046200
|
|
|
|
thumb_func_start sub_8046234
|
|
sub_8046234: @ 8046234
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
ldr r5, _0804636C
|
|
ldrh r0, [r5, 0x6]
|
|
bl GetSpriteTileStartByTag
|
|
lsls r0, 16
|
|
ldr r1, _08046370
|
|
cmp r0, r1
|
|
bne _08046266
|
|
adds r0, r5, 0
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, _08046374
|
|
bl LoadCompressedObjectPalette
|
|
_08046266:
|
|
ldr r0, _08046378
|
|
bl object_new_hidden_with_callback
|
|
mov r8, r0
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r5, r0, 4
|
|
add r5, r8
|
|
lsls r5, 2
|
|
ldr r0, _0804637C
|
|
adds r5, r0
|
|
strh r4, [r5, 0x30]
|
|
ldr r0, _08046380
|
|
mov r9, r0
|
|
lsls r6, 16
|
|
asrs r0, r6, 16
|
|
mov r10, r0
|
|
ldr r0, _08046384
|
|
adds r6, r0
|
|
asrs r6, 16
|
|
lsls r4, r7, 16
|
|
asrs r7, r4, 16
|
|
adds r4, r0
|
|
asrs r4, 16
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0804637C
|
|
adds r1, r0
|
|
mov r0, r8
|
|
strh r0, [r1, 0x2E]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r1, 0
|
|
bl AnimateSprite
|
|
mov r0, r9
|
|
mov r1, r10
|
|
adds r2, r4, 0
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804637C
|
|
adds r4, r0
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804637C
|
|
adds r4, r0
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
mov r0, r9
|
|
mov r1, r10
|
|
adds r2, r7, 0
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804637C
|
|
adds r4, r0
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
mov r0, r8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804636C: .4byte gUnknown_081FAEA4
|
|
_08046370: .4byte 0xffff0000
|
|
_08046374: .4byte gUnknown_081FAEAC
|
|
_08046378: .4byte sub_8046388
|
|
_0804637C: .4byte 0x02020004
|
|
_08046380: .4byte gSpriteTemplate_81FAF0C
|
|
_08046384: .4byte 0xfff00000
|
|
thumb_func_end sub_8046234
|
|
|
|
thumb_func_start sub_8046388
|
|
sub_8046388: @ 8046388
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080463C0
|
|
ldr r0, _080463B4
|
|
ldrh r0, [r0, 0x6]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, _080463B8
|
|
ldrh r0, [r0, 0x4]
|
|
bl FreeSpritePaletteByTag
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080463BC
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _080463C0
|
|
.align 2, 0
|
|
_080463B4: .4byte gUnknown_081FAEA4
|
|
_080463B8: .4byte gUnknown_081FAEAC
|
|
_080463BC:
|
|
ldr r0, _080463C8
|
|
str r0, [r4, 0x1C]
|
|
_080463C0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080463C8: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8046388
|
|
|
|
thumb_func_start sub_80463CC
|
|
sub_80463CC: @ 80463CC
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080463F6
|
|
ldr r2, _080463FC
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x2E]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
adds r0, r3, 0
|
|
bl DestroySprite
|
|
_080463F6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080463FC: .4byte 0x02020004
|
|
thumb_func_end sub_80463CC
|
|
|
|
thumb_func_start sub_8046400
|
|
sub_8046400: @ 8046400
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r1, _08046450
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r6, _08046454
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08046458
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r2, 0x8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _0804645C
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08046460
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08046450: .4byte 0x02024e6d
|
|
_08046454: .4byte 0x02024a60
|
|
_08046458: .4byte 0x02017810
|
|
_0804645C: .4byte sub_8046464
|
|
_08046460: .4byte 0x03004b20
|
|
thumb_func_end sub_8046400
|
|
|
|
thumb_func_start sub_8046464
|
|
sub_8046464: @ 8046464
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, _08046498
|
|
mov r2, r10
|
|
lsls r0, r2, 2
|
|
add r0, r10
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, 0x8]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _0804649C
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _08046616
|
|
.align 2, 0
|
|
_08046498: .4byte 0x03004b20
|
|
_0804649C:
|
|
ldrh r0, [r1, 0xC]
|
|
mov r8, r0
|
|
ldrb r5, [r1, 0xE]
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080464C8
|
|
ldr r1, _080464C0
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080464C4
|
|
b _080464D6
|
|
.align 2, 0
|
|
_080464C0: .4byte 0x02024a6a
|
|
_080464C4: .4byte 0x030045c0
|
|
_080464C8:
|
|
ldr r1, _08046544
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08046548
|
|
_080464D6:
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ball_number_to_ball_processing_index
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80478DC
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _0804654C
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
movs r2, 0x50
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, _08046550
|
|
mov r9, r2
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r6, r0, 2
|
|
adds r4, r6, r2
|
|
movs r0, 0x80
|
|
strh r0, [r4, 0x2E]
|
|
movs r3, 0
|
|
strh r3, [r4, 0x30]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x3C]
|
|
mov r2, r8
|
|
cmp r2, 0xFE
|
|
beq _0804655C
|
|
cmp r2, 0xFF
|
|
bne _08046598
|
|
ldr r0, _08046554
|
|
strb r5, [r0]
|
|
movs r0, 0x18
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x44
|
|
strh r0, [r4, 0x22]
|
|
mov r0, r9
|
|
adds r0, 0x1C
|
|
adds r0, r6, r0
|
|
ldr r1, _08046558
|
|
str r1, [r0]
|
|
b _080465A6
|
|
.align 2, 0
|
|
_08046544: .4byte 0x02024a6a
|
|
_08046548: .4byte 0x03004360
|
|
_0804654C: .4byte gSpriteTemplate_820AAB4
|
|
_08046550: .4byte 0x02020004
|
|
_08046554: .4byte 0x02024c08
|
|
_08046558: .4byte sub_8047074
|
|
_0804655C:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x18
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _08046590
|
|
strb r5, [r0]
|
|
movs r3, 0
|
|
strh r3, [r4, 0x2E]
|
|
mov r0, r9
|
|
adds r0, 0x1C
|
|
adds r0, r6, r0
|
|
ldr r1, _08046594
|
|
str r1, [r0]
|
|
b _080465A6
|
|
.align 2, 0
|
|
_08046590: .4byte 0x02024c08
|
|
_08046594: .4byte sub_8047254
|
|
_08046598:
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, _080465C4
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
_080465A6:
|
|
ldr r0, _080465C8
|
|
lsls r1, r7, 4
|
|
adds r1, r7
|
|
lsls r1, 2
|
|
adds r4, r1, r0
|
|
ldr r5, _080465C4
|
|
ldrb r0, [r5]
|
|
strh r0, [r4, 0x3A]
|
|
ldr r2, [sp]
|
|
cmp r2, 0
|
|
bne _080465CC
|
|
mov r0, r10
|
|
bl DestroyTask
|
|
b _08046616
|
|
.align 2, 0
|
|
_080465C4: .4byte 0x02024c08
|
|
_080465C8: .4byte 0x02020004
|
|
_080465CC:
|
|
movs r0, 0x22
|
|
strh r0, [r4, 0x2E]
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x10
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _08046628
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_80786EC
|
|
mov r3, r10
|
|
strh r3, [r4, 0x6]
|
|
ldr r1, _0804662C
|
|
mov r2, r10
|
|
lsls r0, r2, 2
|
|
add r0, r10
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r5]
|
|
strh r1, [r0, 0x10]
|
|
ldr r1, _08046630
|
|
str r1, [r0]
|
|
movs r0, 0x3D
|
|
bl audio_play
|
|
_08046616:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046628: .4byte 0x0000ffd8
|
|
_0804662C: .4byte 0x03004b20
|
|
_08046630: .4byte TaskDummy
|
|
thumb_func_end sub_8046464
|
|
|
|
thumb_func_start objc_0804ABD4
|
|
objc_0804ABD4: @ 8046634
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
bl sub_8078718
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080466D4
|
|
ldrb r6, [r7, 0x6]
|
|
ldr r1, _080466E0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x10]
|
|
ldrb r0, [r0, 0xC]
|
|
mov r8, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r2, r7, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r7, 0x24]
|
|
ldrh r1, [r7, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r7, 0x20]
|
|
ldrh r0, [r7, 0x26]
|
|
ldrh r2, [r7, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r7, 0x22]
|
|
strh r1, [r7, 0x24]
|
|
strh r1, [r7, 0x26]
|
|
strh r1, [r7, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8047978
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ball_number_to_ball_processing_index
|
|
adds r4, r0, 0
|
|
ldrh r0, [r7, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r7, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp]
|
|
movs r2, 0x1
|
|
movs r3, 0x1C
|
|
bl sub_814086C
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0xE
|
|
adds r3, r4, 0
|
|
bl sub_8141314
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r7, 0x2E]
|
|
strh r5, [r7, 0x3A]
|
|
mov r0, r8
|
|
strh r0, [r7, 0x3C]
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
ldr r0, _080466E4
|
|
str r0, [r7, 0x1C]
|
|
_080466D4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080466E0: .4byte 0x03004b20
|
|
_080466E4: .4byte sub_80466E8
|
|
thumb_func_end objc_0804ABD4
|
|
|
|
thumb_func_start sub_80466E8
|
|
sub_80466E8: @ 80466E8
|
|
ldr r1, _080466F0
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080466F0: .4byte sub_80466F4
|
|
thumb_func_end sub_80466E8
|
|
|
|
thumb_func_start sub_80466F4
|
|
sub_80466F4: @ 80466F4
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0x38]
|
|
adds r0, 0x1
|
|
movs r7, 0
|
|
strh r0, [r6, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _0804674E
|
|
strh r7, [r6, 0x38]
|
|
ldr r0, _08046754
|
|
str r0, [r6, 0x1C]
|
|
ldr r5, _08046758
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0804675C
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl AnimateSprite
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r7, [r0, 0x30]
|
|
_0804674E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046754: .4byte sub_8046760
|
|
_08046758: .4byte 0x02024be0
|
|
_0804675C: .4byte 0x02020004
|
|
thumb_func_end sub_80466F4
|
|
|
|
thumb_func_start sub_8046760
|
|
sub_8046760: @ 8046760
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _08046778
|
|
movs r0, 0x3C
|
|
bl audio_play
|
|
_08046778:
|
|
ldr r6, _080467C4
|
|
ldr r5, _080467C8
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080467D0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, _080467CC
|
|
str r0, [r4, 0x1C]
|
|
b _080467F0
|
|
.align 2, 0
|
|
_080467C4: .4byte 0x02020004
|
|
_080467C8: .4byte 0x02024be0
|
|
_080467CC: .4byte sub_80467F8
|
|
_080467D0:
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x60
|
|
strh r0, [r1, 0x30]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
movs r2, 0x30
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
asrs r0, 8
|
|
strh r0, [r1, 0x26]
|
|
_080467F0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8046760
|
|
|
|
thumb_func_start sub_80467F8
|
|
sub_80467F8: @ 80467F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046840
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08046840
|
|
strh r1, [r4, 0x34]
|
|
movs r0, 0x20
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
movs r0, 0
|
|
movs r1, 0x20
|
|
bl cosine
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x36
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _08046848
|
|
str r0, [r4, 0x1C]
|
|
_08046840:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046848: .4byte sub_804684C
|
|
thumb_func_end sub_80467F8
|
|
|
|
thumb_func_start sub_804684C
|
|
sub_804684C: @ 804684C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08046862
|
|
cmp r1, 0x1
|
|
beq _080468D6
|
|
b _08046902
|
|
_08046862:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r1, 0x4
|
|
ldrh r2, [r4, 0x34]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
adds r1, r0
|
|
strh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x3F
|
|
ble _08046902
|
|
ldrh r0, [r4, 0x36]
|
|
subs r0, 0xA
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080468AC
|
|
adds r0, r2, r1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0804689E
|
|
movs r5, 0x1
|
|
_0804689E:
|
|
cmp r0, 0x2
|
|
beq _080468BE
|
|
cmp r0, 0x2
|
|
bgt _080468B0
|
|
cmp r0, 0x1
|
|
beq _080468B6
|
|
b _080468CE
|
|
.align 2, 0
|
|
_080468AC: .4byte 0x00000101
|
|
_080468B0:
|
|
cmp r0, 0x3
|
|
beq _080468C6
|
|
b _080468CE
|
|
_080468B6:
|
|
movs r0, 0x38
|
|
bl audio_play
|
|
b _08046902
|
|
_080468BE:
|
|
movs r0, 0x39
|
|
bl audio_play
|
|
b _08046902
|
|
_080468C6:
|
|
movs r0, 0x3A
|
|
bl audio_play
|
|
b _08046902
|
|
_080468CE:
|
|
movs r0, 0x3B
|
|
bl audio_play
|
|
b _08046902
|
|
_080468D6:
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x38]
|
|
subs r1, 0x4
|
|
ldrh r2, [r4, 0x34]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
subs r1, r0
|
|
strh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _08046902
|
|
strh r5, [r4, 0x38]
|
|
ldr r0, _08046928
|
|
ands r0, r2
|
|
strh r0, [r4, 0x34]
|
|
_08046902:
|
|
cmp r5, 0
|
|
beq _0804693A
|
|
movs r5, 0
|
|
strh r5, [r4, 0x34]
|
|
movs r0, 0x40
|
|
movs r1, 0x20
|
|
bl cosine
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x26]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _08046930
|
|
ldr r0, _0804692C
|
|
str r0, [r4, 0x1C]
|
|
b _0804693A
|
|
.align 2, 0
|
|
_08046928: .4byte 0xffffff00
|
|
_0804692C: .4byte sub_8046C78
|
|
_08046930:
|
|
ldr r0, _08046940
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r5, [r4, 0x38]
|
|
_0804693A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046940: .4byte sub_8046944
|
|
thumb_func_end sub_804684C
|
|
|
|
thumb_func_start sub_8046944
|
|
sub_8046944: @ 8046944
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _08046978
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _08046980
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
_08046978:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046980: .4byte sub_8046984
|
|
thumb_func_end sub_8046944
|
|
|
|
thumb_func_start sub_8046984
|
|
sub_8046984: @ 8046984
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r1, 0x4
|
|
bhi _08046A84
|
|
lsls r0, r1, 2
|
|
ldr r1, _0804699C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804699C: .4byte _080469A0
|
|
.align 2, 0
|
|
_080469A0:
|
|
.4byte _080469B4
|
|
.4byte _080469E6
|
|
.4byte _080469B4
|
|
.4byte _08046A3A
|
|
.4byte _08046A84
|
|
_080469B4:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r2, [r4, 0x24]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x24]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x38]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x6
|
|
bls _08046ACA
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
b _08046ACA
|
|
_080469E6:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08046A2C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x36]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bge _08046A22
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl ChangeSpriteAffineAnim
|
|
b _08046ACA
|
|
_08046A22:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl ChangeSpriteAffineAnim
|
|
b _08046ACA
|
|
_08046A2C:
|
|
adds r0, r4, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08046ACA
|
|
_08046A3A:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r2, [r4, 0x34]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _08046A5C
|
|
ldr r0, _08046A58
|
|
str r0, [r4, 0x1C]
|
|
b _08046ACA
|
|
.align 2, 0
|
|
_08046A58: .4byte sub_8046C78
|
|
_08046A5C:
|
|
cmp r1, 0x4
|
|
bne _08046A70
|
|
cmp r0, 0x3
|
|
bne _08046A70
|
|
ldr r0, _08046A6C
|
|
str r0, [r4, 0x1C]
|
|
b _08046A76
|
|
.align 2, 0
|
|
_08046A6C: .4byte sub_8046E7C
|
|
_08046A70:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_08046A76:
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _08046ACA
|
|
_08046A84:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _08046ACA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r1, [r4, 0x34]
|
|
ldr r0, _08046AB8
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bge _08046ABC
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
b _08046AC4
|
|
.align 2, 0
|
|
_08046AB8: .4byte 0xffffff00
|
|
_08046ABC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_08046AC4:
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
_08046ACA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8046984
|
|
|
|
thumb_func_start sub_8046AD0
|
|
sub_8046AD0: @ 8046AD0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08046AFC
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0xC]
|
|
ldrb r3, [r0, 0xA]
|
|
ldrh r5, [r0, 0x8]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x20
|
|
bhi _08046B88
|
|
lsls r0, 2
|
|
ldr r1, _08046B00
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08046AFC: .4byte 0x03004b20
|
|
_08046B00: .4byte _08046B04
|
|
.align 2, 0
|
|
_08046B04:
|
|
.4byte _08046B88
|
|
.4byte _08046BA6
|
|
.4byte _08046BB2
|
|
.4byte _08046BF6
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046BD0
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046B88
|
|
.4byte _08046C08
|
|
.4byte _08046C20
|
|
.4byte _08046C48
|
|
_08046B88:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x18]
|
|
movs r3, 0x18
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x2
|
|
bgt _08046BA0
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x18]
|
|
b _08046C72
|
|
_08046BA0:
|
|
adds r0, r6, 0x1
|
|
strh r0, [r1, 0x26]
|
|
b _08046C72
|
|
_08046BA6:
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
bl cry_related
|
|
b _08046BEE
|
|
_08046BB2:
|
|
bl sub_8075398
|
|
ldr r1, _08046BCC
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x14
|
|
strh r1, [r0, 0x26]
|
|
b _08046C72
|
|
.align 2, 0
|
|
_08046BCC: .4byte 0x03004b20
|
|
_08046BD0:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x1C]
|
|
movs r6, 0x1C
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, 0
|
|
bne _08046C5A
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8075114
|
|
_08046BEE:
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
b _08046C72
|
|
_08046BF6:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x1E
|
|
strh r1, [r0, 0x26]
|
|
b _08046C72
|
|
_08046C08:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x1C]
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _08046C5A
|
|
ldrh r0, [r1, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x26]
|
|
_08046C20:
|
|
bl sub_80753C4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08046C72
|
|
bl sub_8075398
|
|
ldr r0, _08046C44
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0x1C]
|
|
ldrh r0, [r1, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x26]
|
|
b _08046C72
|
|
.align 2, 0
|
|
_08046C44: .4byte 0x03004b20
|
|
_08046C48:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x1C]
|
|
movs r6, 0x1C
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, 0
|
|
beq _08046C60
|
|
_08046C5A:
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
b _08046C72
|
|
_08046C60:
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl sub_8075114
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08046C72:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8046AD0
|
|
|
|
thumb_func_start sub_8046C78
|
|
sub_8046C78: @ 8046C78
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r5, 0
|
|
bl sub_8047978
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ball_number_to_ball_processing_index
|
|
adds r4, r0, 0
|
|
ldrh r0, [r6, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp]
|
|
movs r2, 0x1
|
|
movs r3, 0x1C
|
|
bl sub_814086C
|
|
ldrh r1, [r6, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
movs r2, 0xE
|
|
adds r3, r4, 0
|
|
bl sub_8141314
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x2E]
|
|
ldr r0, _08046D0C
|
|
str r0, [r6, 0x1C]
|
|
ldr r0, _08046D10
|
|
ldr r1, _08046D14
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046CE8
|
|
b _08046E1C
|
|
_08046CE8:
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08046D20
|
|
ldr r1, _08046D18
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _08046D1C
|
|
adds r0, r1, r0
|
|
movs r3, 0x19
|
|
mov r8, r3
|
|
b _08046D34
|
|
.align 2, 0
|
|
_08046D0C: .4byte sub_8046E9C
|
|
_08046D10: .4byte 0x03001770
|
|
_08046D14: .4byte 0x0000043d
|
|
_08046D18: .4byte 0x02024a6a
|
|
_08046D1C: .4byte 0x030045c0
|
|
_08046D20:
|
|
ldr r1, _08046D90
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _08046D94
|
|
adds r0, r1, r0
|
|
movs r1, 0xE7
|
|
mov r8, r1
|
|
_08046D34:
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
beq _08046D5A
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
bne _08046DAE
|
|
_08046D5A:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08046DAE
|
|
ldr r0, _08046D98
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046DAE
|
|
ldr r0, _08046D9C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046DA4
|
|
bl sub_80755D4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08046DAE
|
|
ldr r0, _08046DA0
|
|
bl m4aMPlayStop
|
|
b _08046DAE
|
|
.align 2, 0
|
|
_08046D90: .4byte 0x02024a6a
|
|
_08046D94: .4byte 0x03004360
|
|
_08046D98: .4byte 0x02017840
|
|
_08046D9C: .4byte 0x020239f8
|
|
_08046DA0: .4byte 0x03007380
|
|
_08046DA4:
|
|
ldr r0, _08046DC8
|
|
ldr r1, _08046DCC
|
|
movs r2, 0x80
|
|
bl m4aMPlayVolumeControl
|
|
_08046DAE:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08046DC4
|
|
ldr r0, _08046DD0
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046DD4
|
|
_08046DC4:
|
|
movs r4, 0
|
|
b _08046DF6
|
|
.align 2, 0
|
|
_08046DC8: .4byte 0x03007380
|
|
_08046DCC: .4byte 0x0000ffff
|
|
_08046DD0: .4byte 0x02017840
|
|
_08046DD4:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
beq _08046DF0
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
bne _08046DF4
|
|
_08046DF0:
|
|
movs r4, 0x1
|
|
b _08046DF6
|
|
_08046DF4:
|
|
movs r4, 0x2
|
|
_08046DF6:
|
|
ldr r0, _08046E6C
|
|
movs r1, 0x3
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08046E70
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r7, [r1, 0x8]
|
|
mov r3, r8
|
|
lsls r0, r3, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0xA]
|
|
strh r4, [r1, 0xC]
|
|
strh r2, [r1, 0x26]
|
|
_08046E1C:
|
|
ldr r5, _08046E74
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _08046E78
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
movs r3, 0x3A
|
|
ldrsh r0, [r6, r3]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl AnimateSprite
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
strh r1, [r0, 0x30]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046E6C: .4byte sub_8046AD0
|
|
_08046E70: .4byte 0x03004b20
|
|
_08046E74: .4byte 0x02024be0
|
|
_08046E78: .4byte 0x02020004
|
|
thumb_func_end sub_8046C78
|
|
|
|
thumb_func_start sub_8046E7C
|
|
sub_8046E7C: @ 8046E7C
|
|
adds r3, r0, 0
|
|
adds r3, 0x2C
|
|
ldrb r1, [r3]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
ldr r1, _08046E98
|
|
str r1, [r0, 0x1C]
|
|
movs r1, 0
|
|
strh r1, [r0, 0x34]
|
|
strh r1, [r0, 0x36]
|
|
strh r1, [r0, 0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_08046E98: .4byte sub_8046FBC
|
|
thumb_func_end sub_8046E7C
|
|
|
|
thumb_func_start sub_8046E9C
|
|
sub_8046E9C: @ 8046E9C
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
movs r7, 0
|
|
ldrh r0, [r5, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r6, _08046F00
|
|
ldr r0, _08046F04
|
|
adds r3, r4, r0
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046EDE
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08046EDE:
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _08046F08
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
movs r7, 0x1
|
|
b _08046F24
|
|
.align 2, 0
|
|
_08046F00: .4byte 0x02020004
|
|
_08046F04: .4byte 0x02024be0
|
|
_08046F08:
|
|
ldr r2, _08046FA8
|
|
adds r0, r2, 0
|
|
ldrh r2, [r1, 0x30]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x30]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x26]
|
|
_08046F24:
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046FA0
|
|
cmp r7, 0
|
|
beq _08046FA0
|
|
ldr r2, _08046FAC
|
|
ldr r0, _08046FB0
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r2, 0
|
|
movs r1, 0
|
|
strh r1, [r0, 0x26]
|
|
ldr r0, _08046FB4
|
|
strb r2, [r0]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
ldr r4, _08046FB8
|
|
adds r1, r4
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
movs r3, 0
|
|
movs r5, 0x8
|
|
adds r2, r4, 0
|
|
movs r4, 0x3
|
|
_08046F78:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046F84
|
|
adds r3, 0x1
|
|
_08046F84:
|
|
adds r2, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08046F78
|
|
cmp r3, 0x4
|
|
bne _08046FA0
|
|
movs r4, 0
|
|
_08046F92:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_804794C
|
|
adds r4, 0x1
|
|
cmp r4, 0xB
|
|
ble _08046F92
|
|
_08046FA0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046FA8: .4byte 0xfffffee0
|
|
_08046FAC: .4byte 0x02020004
|
|
_08046FB0: .4byte 0x02024be0
|
|
_08046FB4: .4byte 0x02024e6d
|
|
_08046FB8: .4byte 0x02017810
|
|
thumb_func_end sub_8046E9C
|
|
|
|
thumb_func_start sub_8046FBC
|
|
sub_8046FBC: @ 8046FBC
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrh r0, [r6, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x36]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0x28
|
|
beq _08047056
|
|
cmp r1, 0x5F
|
|
bne _08046FF4
|
|
ldr r0, _08046FEC
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
bl m4aMPlayAllStop
|
|
ldr r0, _08046FF0
|
|
bl audio_play
|
|
b _08047056
|
|
.align 2, 0
|
|
_08046FEC: .4byte 0x02024e6d
|
|
_08046FF0: .4byte 0x00000173
|
|
_08046FF4:
|
|
ldr r0, _0804705C
|
|
cmp r1, r0
|
|
bne _08047056
|
|
ldr r5, _08047060
|
|
ldr r4, _08047064
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
adds r0, r6, 0
|
|
bl DestroySpriteAndFreeResources
|
|
ldr r0, _08047068
|
|
ldr r1, _0804706C
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047056
|
|
lsls r1, r7, 1
|
|
adds r1, r7
|
|
lsls r1, 2
|
|
ldr r0, _08047070
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08047056:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804705C: .4byte 0x0000013b
|
|
_08047060: .4byte 0x02020004
|
|
_08047064: .4byte 0x02024be0
|
|
_08047068: .4byte 0x03001770
|
|
_0804706C: .4byte 0x0000043d
|
|
_08047070: .4byte 0x02017810
|
|
thumb_func_end sub_8046FBC
|
|
|
|
thumb_func_start sub_8047074
|
|
sub_8047074: @ 8047074
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x19
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl sub_8077ABC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x18
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080470BC
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_80786EC
|
|
ldr r0, _080470C0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080470BC: .4byte 0x0000ffe2
|
|
_080470C0: .4byte sub_80470C4
|
|
thumb_func_end sub_8047074
|
|
|
|
thumb_func_start sub_80470C4
|
|
sub_80470C4: @ 80470C4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x3C]
|
|
movs r1, 0xFF
|
|
mov r8, r1
|
|
lsrs r0, 8
|
|
subs r0, 0x23
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2C
|
|
bhi _080471B8
|
|
ldrh r1, [r5, 0x6]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047126
|
|
ldrh r0, [r5, 0x30]
|
|
movs r1, 0x1
|
|
adds r6, r1, 0
|
|
ands r6, r0
|
|
ldrh r0, [r5, 0x32]
|
|
adds r7, r1, 0
|
|
ands r7, r0
|
|
movs r2, 0x30
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
adds r4, r1, 0
|
|
ands r0, r4
|
|
orrs r6, r0
|
|
strh r6, [r5, 0x30]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
ands r0, r4
|
|
orrs r7, r0
|
|
strh r7, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
bl StartSpriteAffineAnim
|
|
_08047126:
|
|
ldrh r4, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
bl sub_8078B5C
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
mov r2, r8
|
|
ands r0, r2
|
|
movs r2, 0x38
|
|
ldrsh r1, [r5, r2]
|
|
bl sine
|
|
ldrh r1, [r5, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
ldrh r1, [r5, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x6]
|
|
lsls r0, 16
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08047176
|
|
strh r4, [r5, 0x2E]
|
|
b _0804717E
|
|
_08047176:
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
_0804717E:
|
|
ldrh r0, [r5, 0x3C]
|
|
lsrs r0, 8
|
|
cmp r0, 0x4F
|
|
ble _08047220
|
|
ldrh r0, [r5, 0x30]
|
|
movs r1, 0x1
|
|
adds r6, r1, 0
|
|
ands r6, r0
|
|
ldrh r0, [r5, 0x32]
|
|
adds r7, r1, 0
|
|
ands r7, r0
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
adds r2, r1, 0
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x32
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
ands r0, r2
|
|
orrs r0, r7
|
|
strh r0, [r5, 0x32]
|
|
b _08047220
|
|
_080471B8:
|
|
adds r0, r5, 0
|
|
bl sub_8078718
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08047220
|
|
ldrh r0, [r5, 0x24]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x24]
|
|
ldrb r0, [r5, 0x6]
|
|
strh r0, [r5, 0x3A]
|
|
strh r1, [r5, 0x2E]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08047214
|
|
ldr r0, _0804720C
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047214
|
|
movs r0, 0x3A
|
|
ldrsh r4, [r5, r0]
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _08047214
|
|
ldr r0, _08047210
|
|
b _08047216
|
|
.align 2, 0
|
|
_0804720C: .4byte 0x02017840
|
|
_08047210: .4byte sub_8047230
|
|
_08047214:
|
|
ldr r0, _0804722C
|
|
_08047216:
|
|
str r0, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
_08047220:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804722C: .4byte sub_8046C78
|
|
thumb_func_end sub_80470C4
|
|
|
|
thumb_func_start sub_8047230
|
|
sub_8047230: @ 8047230
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x18
|
|
ble _0804724A
|
|
movs r0, 0
|
|
strh r0, [r2, 0x2E]
|
|
ldr r0, _08047250
|
|
str r0, [r2, 0x1C]
|
|
_0804724A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047250: .4byte sub_8046C78
|
|
thumb_func_end sub_8047230
|
|
|
|
thumb_func_start sub_8047254
|
|
sub_8047254: @ 8047254
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080472A4
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080472A0
|
|
ldr r0, _08047298
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080472A0
|
|
movs r0, 0x3A
|
|
ldrsh r4, [r5, r0]
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _080472A0
|
|
ldr r0, _0804729C
|
|
b _080472A2
|
|
.align 2, 0
|
|
_08047298: .4byte 0x02017840
|
|
_0804729C: .4byte sub_8047230
|
|
_080472A0:
|
|
ldr r0, _080472AC
|
|
_080472A2:
|
|
str r0, [r5, 0x1C]
|
|
_080472A4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080472AC: .4byte sub_8046C78
|
|
thumb_func_end sub_8047254
|
|
|
|
thumb_func_start sub_80472B0
|
|
sub_80472B0: @ 80472B0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
bl sub_814086C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80472B0
|
|
|
|
thumb_func_start sub_80472D8
|
|
sub_80472D8: @ 80472D8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0
|
|
bl sub_8141314
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80472D8
|
|
|
|
thumb_func_start AddTextPrinterForMessage
|
|
AddTextPrinterForMessage: @ 80472F0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
mov r9, r2
|
|
mov r10, r3
|
|
ldr r6, [sp, 0x24]
|
|
ldr r4, [sp, 0x28]
|
|
ldr r0, [sp, 0x2C]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
mov r2, r10
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _080473BC
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, _080473C0
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, _080473C4
|
|
mov r1, r9
|
|
mov r2, r10
|
|
adds r3, r4, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080473C8
|
|
mov r8, r3
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r1, r4, r3
|
|
strh r5, [r1, 0x2E]
|
|
lsls r2, r5, 4
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
add r2, r8
|
|
ldrh r0, [r2, 0x20]
|
|
strh r0, [r1, 0x38]
|
|
ldrh r0, [r2, 0x22]
|
|
strh r0, [r1, 0x3A]
|
|
mov r0, r9
|
|
strh r0, [r2, 0x20]
|
|
mov r3, r10
|
|
strh r3, [r2, 0x22]
|
|
strh r7, [r1, 0x30]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x32]
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0x30]
|
|
strh r3, [r1, 0x34]
|
|
ldr r3, [sp, 0x30]
|
|
lsrs r0, r3, 16
|
|
strh r0, [r1, 0x36]
|
|
movs r0, 0x3
|
|
ands r6, r0
|
|
lsls r6, 2
|
|
ldrb r3, [r1, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x1C
|
|
add r8, r0
|
|
add r4, r8
|
|
ldr r0, _080473CC
|
|
str r0, [r4]
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080473BC: .4byte gUnknown_0820A92C
|
|
_080473C0: .4byte gUnknown_0820A98C
|
|
_080473C4: .4byte gSpriteTemplate_820AAB4
|
|
_080473C8: .4byte 0x02020004
|
|
_080473CC: .4byte sub_80473D0
|
|
thumb_func_end AddTextPrinterForMessage
|
|
|
|
thumb_func_start sub_80473D0
|
|
sub_80473D0: @ 80473D0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
ldrh r1, [r6, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0
|
|
bne _0804747C
|
|
ldrh r0, [r6, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrh r0, [r6, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r4, [r6, 0x34]
|
|
ldrh r0, [r6, 0x36]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804740A
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
b _0804740C
|
|
_0804740A:
|
|
movs r5, 0
|
|
_0804740C:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r6, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r6, 0x5]
|
|
lsls r2, 28
|
|
lsrs r2, 30
|
|
adds r3, r5, 0
|
|
bl sub_80472B0
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl sub_80472D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r6, 0x30]
|
|
ldr r0, _08047474
|
|
str r0, [r6, 0x1C]
|
|
ldr r0, _08047478
|
|
lsls r4, r7, 4
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
strh r0, [r4, 0x30]
|
|
strh r5, [r6, 0x3C]
|
|
b _08047480
|
|
.align 2, 0
|
|
_08047474: .4byte sub_804748C
|
|
_08047478: .4byte 0x02020004
|
|
_0804747C:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r6, 0x30]
|
|
_08047480:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80473D0
|
|
|
|
thumb_func_start sub_804748C
|
|
sub_804748C: @ 804748C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
mov r12, r0
|
|
movs r6, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080474B6
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080474B6:
|
|
ldr r0, _08047544
|
|
lsls r1, r3, 4
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080474D8
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x1
|
|
mov r12, r1
|
|
_080474D8:
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r7, 0x20
|
|
ldrsh r1, [r4, r7]
|
|
subs r0, r1
|
|
movs r1, 0x3C
|
|
ldrsh r2, [r4, r1]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080474EE
|
|
adds r0, 0x7F
|
|
_080474EE:
|
|
asrs r0, 7
|
|
ldrh r7, [r4, 0x20]
|
|
adds r0, r7
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r7, 0x22
|
|
ldrsh r1, [r4, r7]
|
|
subs r0, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _0804750A
|
|
adds r0, 0x7F
|
|
_0804750A:
|
|
asrs r0, 7
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r3, [r5, 0x20]
|
|
strh r0, [r5, 0x22]
|
|
ldrh r2, [r4, 0x3C]
|
|
movs r7, 0x3C
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0x7F
|
|
bgt _0804754C
|
|
ldr r1, _08047548
|
|
lsls r0, r2, 24
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _08047530
|
|
adds r0, 0x7
|
|
_08047530:
|
|
asrs r0, 3
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r2, 0x4
|
|
strh r1, [r4, 0x3C]
|
|
strh r0, [r5, 0x24]
|
|
strh r0, [r5, 0x26]
|
|
b _0804755A
|
|
.align 2, 0
|
|
_08047544: .4byte 0x02020004
|
|
_08047548: .4byte gSineTable
|
|
_0804754C:
|
|
ldrh r0, [r4, 0x38]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r4, 0x3A]
|
|
strh r0, [r5, 0x22]
|
|
strh r6, [r5, 0x24]
|
|
strh r6, [r5, 0x26]
|
|
movs r6, 0x1
|
|
_0804755A:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047578
|
|
mov r2, r12
|
|
cmp r2, 0
|
|
beq _08047578
|
|
cmp r6, 0
|
|
beq _08047578
|
|
adds r0, r4, 0
|
|
bl DestroySpriteAndFreeResources
|
|
_08047578:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804748C
|
|
|
|
thumb_func_start sub_8047580
|
|
sub_8047580: @ 8047580
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r10, r0
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
ldr r5, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
ldr r0, [sp, 0x28]
|
|
mov r9, r0
|
|
mov r0, r10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, _08047624
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, _08047628
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, _0804762C
|
|
adds r1, r6, 0
|
|
mov r2, r8
|
|
adds r3, r4, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r6, _08047630
|
|
lsls r3, r0, 4
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
adds r2, r3, r6
|
|
mov r1, r10
|
|
strh r1, [r2, 0x2E]
|
|
mov r4, r9
|
|
strh r4, [r2, 0x30]
|
|
strh r7, [r2, 0x32]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x2C]
|
|
strh r1, [r2, 0x34]
|
|
ldr r4, [sp, 0x2C]
|
|
lsrs r1, r4, 16
|
|
strh r1, [r2, 0x36]
|
|
movs r1, 0x3
|
|
ands r5, r1
|
|
lsls r5, 2
|
|
ldrb r4, [r2, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r4
|
|
orrs r1, r5
|
|
strb r1, [r2, 0x5]
|
|
adds r6, 0x1C
|
|
adds r3, r6
|
|
ldr r1, _08047634
|
|
str r1, [r3]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08047624: .4byte gUnknown_0820A92C
|
|
_08047628: .4byte gUnknown_0820A98C
|
|
_0804762C: .4byte gSpriteTemplate_820AAB4
|
|
_08047630: .4byte 0x02020004
|
|
_08047634: .4byte sub_8047638
|
|
thumb_func_end sub_8047580
|
|
|
|
thumb_func_start sub_8047638
|
|
sub_8047638: @ 8047638
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080476D0
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r5, [r4, 0x34]
|
|
ldrh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08047672
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _08047674
|
|
_08047672:
|
|
movs r6, 0
|
|
_08047674:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r4, 0x5]
|
|
lsls r2, 28
|
|
lsrs r2, 30
|
|
adds r3, r6, 0
|
|
bl sub_80472B0
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
adds r2, r5, 0
|
|
bl sub_80472D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080476C8
|
|
str r0, [r4, 0x1C]
|
|
lsls r4, r7, 4
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
ldr r0, _080476CC
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
strh r5, [r4, 0x30]
|
|
b _080476D4
|
|
.align 2, 0
|
|
_080476C8: .4byte sub_80476E0
|
|
_080476CC: .4byte 0x02020004
|
|
_080476D0:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_080476D4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8047638
|
|
|
|
thumb_func_start sub_80476E0
|
|
sub_80476E0: @ 80476E0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _080476F8
|
|
movs r0, 0x3C
|
|
bl audio_play
|
|
_080476F8:
|
|
ldrh r1, [r5, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08047734
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _0804773C
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x38]
|
|
ldr r0, _08047738
|
|
str r0, [r5, 0x1C]
|
|
b _0804774C
|
|
.align 2, 0
|
|
_08047734: .4byte 0x02020004
|
|
_08047738: .4byte sub_8047754
|
|
_0804773C:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x60
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
asrs r0, 8
|
|
strh r0, [r4, 0x26]
|
|
_0804774C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80476E0
|
|
|
|
thumb_func_start sub_8047754
|
|
sub_8047754: @ 8047754
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047768
|
|
ldr r0, _0804776C
|
|
str r0, [r2, 0x1C]
|
|
_08047768:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804776C: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8047754
|
|
|
|
thumb_func_start obj_delete_and_free_associated_resources_
|
|
obj_delete_and_free_associated_resources_: @ 8047770
|
|
push {lr}
|
|
bl DestroySpriteAndFreeResources
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end obj_delete_and_free_associated_resources_
|
|
|
|
thumb_func_start sub_804777C
|
|
sub_804777C: @ 804777C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r0, _080477FC
|
|
adds r0, r5, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r6, _08047800
|
|
adds r4, r0, r6
|
|
movs r1, 0
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
movs r0, 0x73
|
|
strh r0, [r4, 0x24]
|
|
strh r1, [r4, 0x26]
|
|
ldr r0, _08047804
|
|
str r0, [r4, 0x1C]
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080477CA
|
|
ldrh r0, [r4, 0x2E]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x30]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_080477CA:
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r1, r0, r1
|
|
adds r0, r6
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
adds r0, r5, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080477F4
|
|
ldr r0, _08047808
|
|
str r0, [r4, 0x1C]
|
|
_080477F4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080477FC: .4byte 0x03004340
|
|
_08047800: .4byte 0x02020004
|
|
_08047804: .4byte sub_8047830
|
|
_08047808: .4byte sub_804780C
|
|
thumb_func_end sub_804777C
|
|
|
|
thumb_func_start sub_804780C
|
|
sub_804780C: @ 804780C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _08047826
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
ldr r0, _0804782C
|
|
str r0, [r1, 0x1C]
|
|
_08047826:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804782C: .4byte sub_8047830
|
|
thumb_func_end sub_804780C
|
|
|
|
thumb_func_start sub_8047830
|
|
sub_8047830: @ 8047830
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x24]
|
|
ldrh r1, [r2, 0x2E]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x26]
|
|
ldrh r1, [r2, 0x30]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x26]
|
|
ldr r0, [r2, 0x24]
|
|
cmp r0, 0
|
|
bne _0804784E
|
|
ldr r0, _08047854
|
|
str r0, [r2, 0x1C]
|
|
_0804784E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047854: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8047830
|
|
|
|
thumb_func_start sub_8047858
|
|
sub_8047858: @ 8047858
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, _08047890
|
|
adds r0, r5, 0
|
|
bl object_new_hidden_with_callback
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08047894
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r3, r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
ldr r0, _08047898
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
strh r0, [r3, 0x30]
|
|
adds r2, 0x1C
|
|
adds r1, r2
|
|
str r5, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047890: .4byte oamc_804BEB4
|
|
_08047894: .4byte 0x02020004
|
|
_08047898: .4byte 0x03004340
|
|
thumb_func_end sub_8047858
|
|
|
|
thumb_func_start oamc_804BEB4
|
|
oamc_804BEB4: @ 804789C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080478D8
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
ldrh r0, [r3, 0x2E]
|
|
movs r2, 0
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r3, 0x2E]
|
|
negs r0, r0
|
|
strh r0, [r3, 0x2E]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080478D4
|
|
strh r2, [r1, 0x24]
|
|
strh r2, [r1, 0x26]
|
|
adds r0, r3, 0
|
|
bl DestroySprite
|
|
_080478D4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080478D8: .4byte 0x02020004
|
|
thumb_func_end oamc_804BEB4
|
|
|
|
thumb_func_start sub_80478DC
|
|
sub_80478DC: @ 80478DC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08047938
|
|
lsls r6, r4, 3
|
|
adds r5, r6, r0
|
|
ldrh r0, [r5, 0x6]
|
|
bl GetSpriteTileStartByTag
|
|
lsls r0, 16
|
|
ldr r1, _0804793C
|
|
cmp r0, r1
|
|
bne _08047904
|
|
adds r0, r5, 0
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, _08047940
|
|
adds r0, r6, r0
|
|
bl LoadCompressedObjectPalette
|
|
_08047904:
|
|
cmp r4, 0x6
|
|
beq _08047930
|
|
cmp r4, 0x6
|
|
blt _08047914
|
|
cmp r4, 0xB
|
|
bgt _08047914
|
|
cmp r4, 0xA
|
|
bge _08047930
|
|
_08047914:
|
|
ldr r1, _08047938
|
|
lsls r0, r4, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
bl GetSpriteTileStartByTag
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
ldr r0, _08047944
|
|
lsrs r1, 11
|
|
ldr r2, _08047948
|
|
adds r1, r2
|
|
bl LZDecompressVram
|
|
_08047930:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047938: .4byte gUnknown_0820A92C
|
|
_0804793C: .4byte 0xffff0000
|
|
_08047940: .4byte gUnknown_0820A98C
|
|
_08047944: .4byte gUnknown_08D030D0
|
|
_08047948: .4byte 0x06010100
|
|
thumb_func_end sub_80478DC
|
|
|
|
thumb_func_start sub_804794C
|
|
sub_804794C: @ 804794C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
ldr r0, _08047970
|
|
lsrs r4, 21
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, _08047974
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x4]
|
|
bl FreeSpritePaletteByTag
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047970: .4byte gUnknown_0820A92C
|
|
_08047974: .4byte gUnknown_0820A98C
|
|
thumb_func_end sub_804794C
|
|
|
|
thumb_func_start sub_8047978
|
|
sub_8047978: @ 8047978
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080479A4
|
|
ldr r1, _0804799C
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080479A0
|
|
b _080479B2
|
|
.align 2, 0
|
|
_0804799C: .4byte 0x02024a6a
|
|
_080479A0: .4byte 0x030045c0
|
|
_080479A4:
|
|
ldr r1, _080479C4
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080479C8
|
|
_080479B2:
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080479C4: .4byte 0x02024a6a
|
|
_080479C8: .4byte 0x03004360
|
|
thumb_func_end sub_8047978
|
|
|
|
thumb_func_start CheckForFlashMemory
|
|
CheckForFlashMemory: @ 80479CC
|
|
push {lr}
|
|
bl IdentifyFlash
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080479E8
|
|
ldr r1, _080479E4
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
bl InitFlashTimer
|
|
b _080479EE
|
|
.align 2, 0
|
|
_080479E4: .4byte 0x03004820
|
|
_080479E8:
|
|
ldr r1, _080479F4
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_080479EE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080479F4: .4byte 0x03004820
|
|
thumb_func_end CheckForFlashMemory
|
|
|
|
thumb_func_start sub_80479F8
|
|
sub_80479F8: @ 80479F8
|
|
ldr r0, _08047A00
|
|
ldrb r0, [r0, 0x9]
|
|
bx lr
|
|
.align 2, 0
|
|
_08047A00: .4byte gSaveBlock2
|
|
thumb_func_end sub_80479F8
|
|
|
|
thumb_func_start sub_8047A04
|
|
sub_8047A04: @ 8047A04
|
|
ldr r1, _08047A0C
|
|
movs r0, 0
|
|
strb r0, [r1, 0x9]
|
|
bx lr
|
|
.align 2, 0
|
|
_08047A0C: .4byte gSaveBlock2
|
|
thumb_func_end sub_8047A04
|
|
|
|
thumb_func_start sub_8047A10
|
|
sub_8047A10: @ 8047A10
|
|
ldr r1, _08047A18
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
bx lr
|
|
.align 2, 0
|
|
_08047A18: .4byte gSaveBlock2
|
|
thumb_func_end sub_8047A10
|
|
|
|
thumb_func_start sub_8047A1C
|
|
sub_8047A1C: @ 8047A1C
|
|
push {lr}
|
|
movs r0, 0
|
|
bl gpu_sync_bg_hide
|
|
ldr r1, _08047A30
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047A30: .4byte gSaveBlock2
|
|
thumb_func_end sub_8047A1C
|
|
|
|
thumb_func_start sub_8047A34
|
|
sub_8047A34: @ 8047A34
|
|
ldr r1, _08047A3C
|
|
movs r0, 0
|
|
strb r0, [r1, 0x9]
|
|
bx lr
|
|
.align 2, 0
|
|
_08047A3C: .4byte gSaveBlock2
|
|
thumb_func_end sub_8047A34
|
|
|
|
thumb_func_start sub_8047A40
|
|
sub_8047A40: @ 8047A40
|
|
push {r4-r6,lr}
|
|
ldr r2, _08047A78
|
|
ldr r0, _08047A7C
|
|
ldrb r1, [r0]
|
|
movs r3, 0x8D
|
|
lsls r3, 2
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
movs r6, 0
|
|
movs r0, 0x8E
|
|
lsls r0, 2
|
|
adds r5, r2, r0
|
|
movs r4, 0
|
|
_08047A5A:
|
|
ldr r1, _08047A80
|
|
adds r1, r4, r1
|
|
adds r0, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r5, 0x64
|
|
adds r4, 0x64
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08047A5A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047A78: .4byte 0x02025734
|
|
_08047A7C: .4byte 0x03004350
|
|
_08047A80: .4byte 0x03004360
|
|
thumb_func_end sub_8047A40
|
|
|
|
thumb_func_start copy_player_party_from_sav1
|
|
copy_player_party_from_sav1: @ 8047A84
|
|
push {r4-r6,lr}
|
|
ldr r0, _08047AC0
|
|
ldr r1, _08047AC4
|
|
movs r2, 0x8D
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r4, _08047AC8
|
|
movs r5, 0
|
|
movs r0, 0xFA
|
|
lsls r0, 1
|
|
adds r6, r4, r0
|
|
_08047A9E:
|
|
ldr r1, _08047AC4
|
|
adds r1, r5, r1
|
|
movs r2, 0x8E
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r4, 0x64
|
|
adds r5, 0x64
|
|
cmp r4, r6
|
|
ble _08047A9E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047AC0: .4byte 0x03004350
|
|
_08047AC4: .4byte 0x02025734
|
|
_08047AC8: .4byte 0x03004360
|
|
thumb_func_end copy_player_party_from_sav1
|
|
|
|
thumb_func_start sub_8047ACC
|
|
sub_8047ACC: @ 8047ACC
|
|
push {r4-r7,lr}
|
|
ldr r0, _08047AFC
|
|
ldr r4, _08047B00
|
|
movs r1, 0x9E
|
|
lsls r1, 4
|
|
adds r3, r0, r1
|
|
movs r2, 0xF
|
|
_08047ADA:
|
|
adds r1, r3, 0
|
|
adds r0, r4, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r4, 0x24
|
|
adds r3, 0x24
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047ADA
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047AFC: .4byte 0x02025734
|
|
_08047B00: .4byte 0x030048a0
|
|
thumb_func_end sub_8047ACC
|
|
|
|
thumb_func_start save_deserialize_npcs
|
|
save_deserialize_npcs: @ 8047B04
|
|
push {r4-r7,lr}
|
|
ldr r0, _08047B34
|
|
movs r1, 0x9E
|
|
lsls r1, 4
|
|
adds r4, r0, r1
|
|
ldr r3, _08047B38
|
|
movs r2, 0xF
|
|
_08047B12:
|
|
adds r1, r3, 0
|
|
adds r0, r4, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r4, 0x24
|
|
adds r3, 0x24
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047B12
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047B34: .4byte 0x02025734
|
|
_08047B38: .4byte 0x030048a0
|
|
thumb_func_end save_deserialize_npcs
|
|
|
|
thumb_func_start save_serialize_game
|
|
save_serialize_game: @ 8047B3C
|
|
push {lr}
|
|
bl sub_8047A40
|
|
bl sub_8047ACC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end save_serialize_game
|
|
|
|
thumb_func_start save_deserialize_game
|
|
save_deserialize_game: @ 8047B4C
|
|
push {lr}
|
|
bl copy_player_party_from_sav1
|
|
bl save_deserialize_npcs
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end save_deserialize_game
|
|
|
|
thumb_func_start copy_bags_and_unk_data_from_save_blocks
|
|
copy_bags_and_unk_data_from_save_blocks: @ 8047B5C
|
|
push {r4-r7,lr}
|
|
ldr r0, _08047C0C
|
|
movs r1, 0xAC
|
|
lsls r1, 3
|
|
adds r3, r0, r1
|
|
ldr r1, _08047C10
|
|
movs r2, 0x13
|
|
_08047B6A:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047B6A
|
|
ldr r1, _08047C10
|
|
ldr r0, _08047C0C
|
|
movs r2, 0xB6
|
|
lsls r2, 3
|
|
adds r3, r0, r2
|
|
adds r1, 0x50
|
|
movs r2, 0x13
|
|
_08047B82:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047B82
|
|
ldr r1, _08047C10
|
|
ldr r0, _08047C0C
|
|
movs r5, 0xC0
|
|
lsls r5, 3
|
|
adds r3, r0, r5
|
|
adds r1, 0xA0
|
|
movs r2, 0xF
|
|
_08047B9A:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047B9A
|
|
ldr r1, _08047C10
|
|
ldr r0, _08047C0C
|
|
movs r6, 0xC8
|
|
lsls r6, 3
|
|
adds r3, r0, r6
|
|
adds r1, 0xE0
|
|
movs r2, 0x3F
|
|
_08047BB2:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047BB2
|
|
ldr r1, _08047C10
|
|
ldr r0, _08047C0C
|
|
movs r7, 0xE8
|
|
lsls r7, 3
|
|
adds r3, r0, r7
|
|
movs r0, 0xF0
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r2, 0x2D
|
|
_08047BCE:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047BCE
|
|
ldr r0, _08047C10
|
|
ldr r4, _08047C0C
|
|
movs r1, 0xA6
|
|
lsls r1, 2
|
|
adds r3, r0, r1
|
|
ldr r2, _08047C14
|
|
mov r12, r2
|
|
movs r2, 0xF
|
|
_08047BE8:
|
|
adds r1, r3, 0
|
|
mov r5, r12
|
|
adds r0, r4, r5
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r4, 0x24
|
|
adds r3, 0x24
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047BE8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047C0C: .4byte 0x02025734
|
|
_08047C10: .4byte 0x020291f4
|
|
_08047C14: .4byte 0x00002b4c
|
|
thumb_func_end copy_bags_and_unk_data_from_save_blocks
|
|
|
|
thumb_func_start copy_bags_and_unk_data_to_save_blocks
|
|
copy_bags_and_unk_data_to_save_blocks: @ 8047C18
|
|
push {r4-r7,lr}
|
|
ldr r0, _08047CCC
|
|
ldr r3, _08047CD0
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
movs r2, 0x13
|
|
_08047C26:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047C26
|
|
ldr r1, _08047CCC
|
|
ldr r0, _08047CD0
|
|
adds r3, r0, 0
|
|
adds r3, 0x50
|
|
movs r5, 0xB6
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
movs r2, 0x13
|
|
_08047C40:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047C40
|
|
ldr r1, _08047CCC
|
|
ldr r0, _08047CD0
|
|
adds r3, r0, 0
|
|
adds r3, 0xA0
|
|
movs r6, 0xC0
|
|
lsls r6, 3
|
|
adds r1, r6
|
|
movs r2, 0xF
|
|
_08047C5A:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047C5A
|
|
ldr r1, _08047CCC
|
|
ldr r0, _08047CD0
|
|
adds r3, r0, 0
|
|
adds r3, 0xE0
|
|
movs r7, 0xC8
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
movs r2, 0x3F
|
|
_08047C74:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047C74
|
|
ldr r1, _08047CCC
|
|
ldr r0, _08047CD0
|
|
movs r2, 0xF0
|
|
lsls r2, 1
|
|
adds r3, r0, r2
|
|
movs r5, 0xE8
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
movs r2, 0x2D
|
|
_08047C90:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047C90
|
|
ldr r0, _08047CCC
|
|
ldr r4, _08047CD0
|
|
ldr r6, _08047CD4
|
|
adds r3, r0, r6
|
|
movs r7, 0xA6
|
|
lsls r7, 2
|
|
mov r12, r7
|
|
movs r2, 0xF
|
|
_08047CAA:
|
|
adds r1, r3, 0
|
|
mov r5, r12
|
|
adds r0, r4, r5
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r4, 0x24
|
|
adds r3, 0x24
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08047CAA
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047CCC: .4byte 0x02025734
|
|
_08047CD0: .4byte 0x020291f4
|
|
_08047CD4: .4byte 0x00002b4c
|
|
thumb_func_end copy_bags_and_unk_data_to_save_blocks
|
|
|
|
thumb_func_start sub_8047CD8
|
|
sub_8047CD8: @ 8047CD8
|
|
push {lr}
|
|
ldr r0, _08047CE4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047CE4: .4byte sub_8047EC0
|
|
thumb_func_end sub_8047CD8
|
|
|
|
thumb_func_start sub_8047CE8
|
|
sub_8047CE8: @ 8047CE8
|
|
push {r4-r6,lr}
|
|
ldr r6, _08047D44
|
|
ldr r5, _08047D48
|
|
ldr r1, [r5]
|
|
ldr r2, _08047D4C
|
|
adds r0, r6, 0
|
|
movs r3, 0xC
|
|
bl sub_804AFB8
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
ldr r1, [r5, 0xC]
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
eors r3, r0
|
|
lsrs r3, 24
|
|
lsls r2, r3, 3
|
|
subs r2, r3
|
|
lsls r2, 2
|
|
ldr r0, _08047D50
|
|
adds r2, r0
|
|
adds r0, r6, 0
|
|
movs r3, 0xC
|
|
bl sub_804AFB8
|
|
ldr r1, [r5, 0x18]
|
|
ldr r4, _08047D54
|
|
ldr r2, [r4]
|
|
adds r0, r6, 0
|
|
movs r3, 0x8
|
|
bl sub_804AFB8
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x20]
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047D44: .4byte gWindowConfig_81E725C
|
|
_08047D48: .4byte 0x020296cc
|
|
_08047D4C: .4byte gSaveBlock2
|
|
_08047D50: .4byte 0x03002978
|
|
_08047D54: .4byte gUnknown_0820C14C
|
|
thumb_func_end sub_8047CE8
|
|
|
|
thumb_func_start sub_8047D58
|
|
sub_8047D58: @ 8047D58
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
ldr r0, _08047E30
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
cmp r0, 0x5
|
|
bls _08047D72
|
|
movs r1, 0x1
|
|
_08047D72:
|
|
movs r5, 0
|
|
lsls r2, r1, 2
|
|
mov r6, sp
|
|
ldr r0, _08047E34
|
|
adds r1, r0, 0x1
|
|
adds r1, r2
|
|
mov r8, r1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r0, 16
|
|
_08047D86:
|
|
mov r1, sp
|
|
ldr r0, _08047E38
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldrh r0, [r6]
|
|
adds r0, r5
|
|
strh r0, [r6]
|
|
asrs r1, r4, 16
|
|
mov r0, sp
|
|
mov r3, r8
|
|
ldrb r2, [r3]
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r7, 0x80
|
|
lsls r7, 14
|
|
adds r4, r7
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _08047D86
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
eors r1, r0
|
|
lsrs r1, 24
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08047E3C
|
|
adds r0, r1
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
cmp r0, 0x5
|
|
bls _08047DDA
|
|
movs r1, 0x1
|
|
_08047DDA:
|
|
movs r5, 0
|
|
lsls r2, r1, 2
|
|
mov r6, sp
|
|
ldr r0, _08047E40
|
|
adds r1, r2, r0
|
|
mov r8, r1
|
|
subs r0, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r0, 16
|
|
_08047DEE:
|
|
mov r1, sp
|
|
ldr r0, _08047E38
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r5, 0x3
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r6]
|
|
asrs r1, r4, 16
|
|
mov r0, sp
|
|
mov r3, r8
|
|
ldrb r2, [r3]
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r7, 0x80
|
|
lsls r7, 14
|
|
adds r4, r7
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _08047DEE
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047E30: .4byte gSaveBlock2
|
|
_08047E34: .4byte gTradeUnknownSpriteCoords
|
|
_08047E38: .4byte gSpriteTemplate_820C0EC
|
|
_08047E3C: .4byte 0x03002978
|
|
_08047E40: .4byte gTradeUnknownSpriteCoords + 0x3
|
|
thumb_func_end sub_8047D58
|
|
|
|
thumb_func_start sub_8047E44
|
|
sub_8047E44: @ 8047E44
|
|
push {r4-r7,lr}
|
|
sub sp, 0x18
|
|
movs r4, 0
|
|
mov r5, sp
|
|
movs r6, 0xD6
|
|
lsls r6, 16
|
|
_08047E50:
|
|
mov r1, sp
|
|
ldr r0, _08047EBC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r4, 0x6
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
strh r0, [r5]
|
|
asrs r1, r6, 16
|
|
mov r0, sp
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r2, 0x80
|
|
lsls r2, 14
|
|
adds r6, r2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _08047E50
|
|
movs r4, 0
|
|
mov r5, sp
|
|
movs r6, 0xC0
|
|
lsls r6, 13
|
|
_08047E84:
|
|
mov r1, sp
|
|
ldr r0, _08047EBC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
ldrh r3, [r5]
|
|
adds r0, r3
|
|
strh r0, [r5]
|
|
asrs r1, r6, 16
|
|
mov r0, sp
|
|
movs r2, 0x96
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r7, 0x80
|
|
lsls r7, 14
|
|
adds r6, r7
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _08047E84
|
|
add sp, 0x18
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047EBC: .4byte gSpriteTemplate_820C0EC
|
|
thumb_func_end sub_8047E44
|
|
|
|
thumb_func_start sub_8047EC0
|
|
sub_8047EC0: @ 8047EC0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
ldr r1, _08047EE4
|
|
ldr r2, _08047EE8
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x15
|
|
bls _08047ED8
|
|
b _080484C6
|
|
_08047ED8:
|
|
lsls r0, 2
|
|
ldr r1, _08047EEC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08047EE4: .4byte 0x03001770
|
|
_08047EE8: .4byte 0x0000043c
|
|
_08047EEC: .4byte _08047EF0
|
|
.align 2, 0
|
|
_08047EF0:
|
|
.4byte _08047F48
|
|
.4byte _08048048
|
|
.4byte _080480B4
|
|
.4byte _080480E0
|
|
.4byte _08048130
|
|
.4byte _08048160
|
|
.4byte _08048172
|
|
.4byte _080482B4
|
|
.4byte _080482DC
|
|
.4byte _08048300
|
|
.4byte _08048328
|
|
.4byte _0804834C
|
|
.4byte _08048360
|
|
.4byte _080483B8
|
|
.4byte _08048400
|
|
.4byte _08048418
|
|
.4byte _08048430
|
|
.4byte _08048448
|
|
.4byte _0804845A
|
|
.4byte _08048470
|
|
.4byte _08048488
|
|
.4byte _080484A8
|
|
_08047F48:
|
|
ldr r5, _08048018
|
|
ldr r6, _0804801C
|
|
str r6, [r5]
|
|
bl sub_804AA88
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
ldr r0, [r5]
|
|
adds r0, 0xC8
|
|
ldr r1, _08048020
|
|
bl sub_804A964
|
|
ldr r0, _08048024
|
|
bl SetVBlankCallback
|
|
ldr r0, _08048028
|
|
bl sub_8071C4C
|
|
ldr r4, _0804802C
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
adds r1, r4, 0
|
|
bl InitWindowFromConfig
|
|
movs r0, 0x14
|
|
bl sub_8064EF4
|
|
ldr r1, [r5]
|
|
adds r1, 0x7A
|
|
movs r4, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
bl sub_8064F08
|
|
bl sub_8071EF4
|
|
bl sub_809D51C
|
|
ldr r0, [r5]
|
|
adds r0, 0x75
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7C
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x80
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x81
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x87
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0xB4
|
|
strb r4, [r0]
|
|
ldr r0, _08048030
|
|
strb r4, [r0]
|
|
ldr r1, _08048034
|
|
ldr r3, _08048038
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl sub_804AA0C
|
|
add r0, sp, 0x10
|
|
strh r4, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 7
|
|
adds r1, r6, r0
|
|
ldr r2, _0804803C
|
|
add r0, sp, 0x10
|
|
bl CpuSet
|
|
ldr r1, _08048040
|
|
movs r2, 0xD8
|
|
lsls r2, 7
|
|
adds r6, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x30
|
|
ldr r2, _08048044
|
|
_0804800A:
|
|
str r6, [r0]
|
|
adds r6, r2
|
|
subs r0, 0x4
|
|
cmp r0, r1
|
|
bge _0804800A
|
|
b _080484C6
|
|
.align 2, 0
|
|
_08048018: .4byte 0x03004824
|
|
_0804801C: .4byte 0x02017000
|
|
_08048020: .4byte 0x06002800
|
|
_08048024: .4byte sub_80489F4
|
|
_08048028: .4byte gWindowConfig_81E6CE4
|
|
_0804802C: .4byte gWindowConfig_81E6F84
|
|
_08048030: .4byte 0x03000508
|
|
_08048034: .4byte 0x03001770
|
|
_08048038: .4byte 0x0000043c
|
|
_0804803C: .4byte 0x01000680
|
|
_08048040: .4byte 0x020296cc
|
|
_08048044: .4byte 0xffffff00
|
|
_08048048:
|
|
ldr r1, _08048098
|
|
ldr r3, _0804809C
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
bl OpenLink
|
|
movs r6, 0
|
|
movs r4, 0
|
|
_08048058:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _080480A0
|
|
adds r0, r1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x20
|
|
bl create_pokemon_set_level
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08048058
|
|
ldr r1, _080480A4
|
|
ldr r0, _080480A8
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, _080480AC
|
|
ldr r0, [r0]
|
|
adds r0, 0xB4
|
|
strb r2, [r0]
|
|
ldr r0, _080480B0
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
b _080484C6
|
|
.align 2, 0
|
|
_08048098: .4byte 0x03002b74
|
|
_0804809C: .4byte 0x00001122
|
|
_080480A0: .4byte 0x030045c0
|
|
_080480A4: .4byte 0x03001770
|
|
_080480A8: .4byte 0x0000043c
|
|
_080480AC: .4byte 0x03004824
|
|
_080480B0: .4byte sub_8083C50
|
|
_080480B4:
|
|
ldr r2, _080480D8
|
|
ldr r1, [r2]
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB
|
|
bhi _080480CE
|
|
b _080484C6
|
|
_080480CE:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r2, _080480DC
|
|
adds r1, r3, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_080480D8: .4byte 0x03004824
|
|
_080480DC: .4byte 0x0000043c
|
|
_080480E0:
|
|
bl GetLinkPlayerCount_2
|
|
adds r4, r0, 0
|
|
bl sub_800820C
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bcs _080480F4
|
|
b _080484C6
|
|
_080480F4:
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08048120
|
|
ldr r0, _0804811C
|
|
ldr r1, [r0]
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1E
|
|
bhi _08048114
|
|
b _080484C6
|
|
_08048114:
|
|
bl sub_8007F4C
|
|
b _08048492
|
|
.align 2, 0
|
|
_0804811C: .4byte 0x03004824
|
|
_08048120:
|
|
ldr r1, _08048128
|
|
ldr r0, _0804812C
|
|
adds r1, r0
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048128: .4byte 0x03001770
|
|
_0804812C: .4byte 0x0000043c
|
|
_08048130:
|
|
ldr r0, _08048154
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0804813A
|
|
b _080484C6
|
|
_0804813A:
|
|
bl IsLinkPlayerDataExchangeComplete
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08048148
|
|
b _080484C6
|
|
_08048148:
|
|
bl calc_player_party_count
|
|
ldr r1, _08048158
|
|
ldr r2, _0804815C
|
|
adds r1, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048154: .4byte 0x03002fa4
|
|
_08048158: .4byte 0x03001770
|
|
_0804815C: .4byte 0x0000043c
|
|
_08048160:
|
|
bl sub_8048D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804816C
|
|
b _080484C6
|
|
_0804816C:
|
|
bl sub_804AF84
|
|
b _08048492
|
|
_08048172:
|
|
bl calc_enemy_party_count
|
|
ldr r4, _08048294
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
movs r1, 0x1D
|
|
str r1, [sp]
|
|
movs r1, 0x13
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillWindowRect_DefaultPalette
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r4]
|
|
ldr r1, _08048298
|
|
ldrb r1, [r1]
|
|
adds r0, 0x42
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, _0804829C
|
|
ldrb r1, [r1]
|
|
adds r0, 0x43
|
|
strb r1, [r0]
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _08048216
|
|
mov r8, r4
|
|
ldr r7, _080482A0
|
|
_080481BA:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _080482A4
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r1, 0xE0
|
|
lsls r1, 12
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, _080482A8
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
ldr r1, _080482AC
|
|
bl sub_809D2FC
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x34
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _080481BA
|
|
_08048216:
|
|
movs r6, 0
|
|
ldr r1, _08048294
|
|
ldr r0, [r1]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _0804828A
|
|
ldr r0, _080482A0
|
|
mov r8, r1
|
|
adds r7, r0, 0
|
|
adds r7, 0xC
|
|
_0804822C:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _080482B0
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r3, 0xE0
|
|
lsls r3, 12
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, _080482A8
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
ldr r1, _080482AC
|
|
bl sub_809D2FC
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x3A
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804822C
|
|
_0804828A:
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
b _08048492
|
|
.align 2, 0
|
|
_08048294: .4byte 0x03004824
|
|
_08048298: .4byte 0x03004350
|
|
_0804829C: .4byte 0x030045b8
|
|
_080482A0: .4byte gTradeMonSpriteCoords
|
|
_080482A4: .4byte 0x03004360
|
|
_080482A8: .4byte 0xfff40000
|
|
_080482AC: .4byte sub_809D62C
|
|
_080482B0: .4byte 0x030045c0
|
|
_080482B4:
|
|
bl sub_806DA98
|
|
ldr r0, _080482D0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
adds r1, 0x34
|
|
movs r2, 0
|
|
bl sub_806DB90
|
|
ldr r1, _080482D4
|
|
ldr r0, _080482D8
|
|
adds r1, r0
|
|
b _08048498
|
|
.align 2, 0
|
|
_080482D0: .4byte 0x03004824
|
|
_080482D4: .4byte 0x03001770
|
|
_080482D8: .4byte 0x0000043c
|
|
_080482DC:
|
|
ldr r0, _080482F4
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
adds r1, 0x34
|
|
movs r2, 0x1
|
|
bl sub_806DB90
|
|
ldr r1, _080482F8
|
|
ldr r2, _080482FC
|
|
adds r1, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_080482F4: .4byte 0x03004824
|
|
_080482F8: .4byte 0x03001770
|
|
_080482FC: .4byte 0x0000043c
|
|
_08048300:
|
|
bl sub_8047CE8
|
|
ldr r1, _0804831C
|
|
ldr r3, _08048320
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, _08048324
|
|
ldr r0, [r0]
|
|
adds r0, 0xB4
|
|
strb r2, [r0]
|
|
b _080484C6
|
|
.align 2, 0
|
|
_0804831C: .4byte 0x03001770
|
|
_08048320: .4byte 0x0000043c
|
|
_08048324: .4byte 0x03004824
|
|
_08048328:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
bl sub_804ABF8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804833C
|
|
b _080484C6
|
|
_0804833C:
|
|
ldr r1, _08048344
|
|
ldr r0, _08048348
|
|
adds r1, r0
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048344: .4byte 0x03001770
|
|
_08048348: .4byte 0x0000043c
|
|
_0804834C:
|
|
bl sub_8047D58
|
|
ldr r1, _08048358
|
|
ldr r2, _0804835C
|
|
adds r1, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048358: .4byte 0x03001770
|
|
_0804835C: .4byte 0x0000043c
|
|
_08048360:
|
|
bl sub_8047E44
|
|
ldr r0, _080483A4
|
|
ldr r2, _080483A8
|
|
ldrb r1, [r2]
|
|
lsls r1, 19
|
|
movs r3, 0x80
|
|
lsls r3, 14
|
|
adds r1, r3
|
|
asrs r1, 16
|
|
ldrb r2, [r2, 0x1]
|
|
lsls r2, 3
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
ldr r2, _080483AC
|
|
ldr r1, [r2]
|
|
adds r1, 0x40
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x41
|
|
strb r3, [r0]
|
|
ldr r1, _080483B0
|
|
ldr r0, _080483B4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
b _080484C6
|
|
.align 2, 0
|
|
_080483A4: .4byte gSpriteTemplate_820C134
|
|
_080483A8: .4byte gTradeMonSpriteCoords
|
|
_080483AC: .4byte 0x03004824
|
|
_080483B0: .4byte 0x03001770
|
|
_080483B4: .4byte 0x0000043c
|
|
_080483B8:
|
|
movs r0, 0
|
|
bl sub_804ACF4
|
|
movs r0, 0
|
|
bl sub_804A41C
|
|
ldr r2, _080483F0
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
bl sub_8048C70
|
|
ldr r1, _080483F4
|
|
ldr r2, _080483F8
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
ldr r0, _080483FC
|
|
bl sub_8075474
|
|
b _080484C6
|
|
.align 2, 0
|
|
_080483F0: .4byte 0x03004824
|
|
_080483F4: .4byte 0x03001770
|
|
_080483F8: .4byte 0x0000043c
|
|
_080483FC: .4byte 0x000001b3
|
|
_08048400:
|
|
movs r0, 0x1
|
|
bl sub_804ACF4
|
|
movs r0, 0x1
|
|
bl sub_804A41C
|
|
ldr r1, _08048428
|
|
ldr r3, _0804842C
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08048418:
|
|
movs r0, 0
|
|
bl sub_8048B0C
|
|
ldr r1, _08048428
|
|
ldr r0, _0804842C
|
|
adds r1, r0
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048428: .4byte 0x03001770
|
|
_0804842C: .4byte 0x0000043c
|
|
_08048430:
|
|
movs r0, 0x1
|
|
bl sub_8048B0C
|
|
ldr r1, _08048440
|
|
ldr r2, _08048444
|
|
adds r1, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048440: .4byte 0x03001770
|
|
_08048444: .4byte 0x0000043c
|
|
_08048448:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _08048492
|
|
_0804845A:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xFA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804846C
|
|
adds r1, r3, r0
|
|
b _08048498
|
|
.align 2, 0
|
|
_0804846C: .4byte 0x0000043c
|
|
_08048470:
|
|
movs r0, 0
|
|
bl sub_804AE3C
|
|
ldr r1, _08048480
|
|
ldr r2, _08048484
|
|
adds r1, r2
|
|
b _08048498
|
|
.align 2, 0
|
|
_08048480: .4byte 0x03001770
|
|
_08048484: .4byte 0x0000043c
|
|
_08048488:
|
|
movs r0, 0x1
|
|
bl sub_804AE3C
|
|
bl sub_804AF10
|
|
_08048492:
|
|
ldr r1, _080484A0
|
|
ldr r3, _080484A4
|
|
adds r1, r3
|
|
_08048498:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080484C6
|
|
.align 2, 0
|
|
_080484A0: .4byte 0x03001770
|
|
_080484A4: .4byte 0x0000043c
|
|
_080484A8:
|
|
ldr r0, _080484E4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080484C6
|
|
ldr r0, _080484E8
|
|
str r0, [r3]
|
|
ldr r0, _080484EC
|
|
bl SetMainCallback2
|
|
ldr r0, _080484F0
|
|
strb r4, [r0]
|
|
_080484C6:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080484E4: .4byte 0x0202f388
|
|
_080484E8: .4byte sub_80494D8
|
|
_080484EC: .4byte sub_8048AB4
|
|
_080484F0: .4byte 0x03000508
|
|
thumb_func_end sub_8047EC0
|
|
|
|
thumb_func_start sub_80484F4
|
|
sub_80484F4: @ 80484F4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
ldr r1, _08048518
|
|
ldr r2, _0804851C
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x15
|
|
bls _0804850C
|
|
b _080489CA
|
|
_0804850C:
|
|
lsls r0, 2
|
|
ldr r1, _08048520
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08048518: .4byte 0x03001770
|
|
_0804851C: .4byte 0x0000043c
|
|
_08048520: .4byte _08048524
|
|
.align 2, 0
|
|
_08048524:
|
|
.4byte _0804857C
|
|
.4byte _0804865C
|
|
.4byte _08048668
|
|
.4byte _08048674
|
|
.4byte _08048680
|
|
.4byte _08048694
|
|
.4byte _080486A0
|
|
.4byte _080487E8
|
|
.4byte _08048810
|
|
.4byte _08048834
|
|
.4byte _0804885C
|
|
.4byte _08048880
|
|
.4byte _08048894
|
|
.4byte _080489CA
|
|
.4byte _080489CA
|
|
.4byte _08048914
|
|
.4byte _0804891C
|
|
.4byte _08048950
|
|
.4byte _08048970
|
|
.4byte _08048988
|
|
.4byte _08048994
|
|
.4byte _080489B0
|
|
_0804857C:
|
|
ldr r5, _08048630
|
|
ldr r6, _08048634
|
|
str r6, [r5]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
ldr r0, [r5]
|
|
adds r0, 0xC8
|
|
ldr r1, _08048638
|
|
bl sub_804A964
|
|
ldr r0, _0804863C
|
|
bl SetVBlankCallback
|
|
ldr r0, _08048640
|
|
bl sub_8071C4C
|
|
ldr r4, _08048644
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
adds r1, r4, 0
|
|
bl InitWindowFromConfig
|
|
movs r0, 0x14
|
|
bl sub_8064EF4
|
|
ldr r1, [r5]
|
|
adds r1, 0x7A
|
|
movs r4, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
bl sub_8064F08
|
|
bl sub_8071EF4
|
|
bl sub_809D51C
|
|
ldr r0, [r5]
|
|
adds r0, 0x75
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7C
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x80
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x81
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x87
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0xB4
|
|
strb r4, [r0]
|
|
ldr r0, _08048648
|
|
strb r4, [r0]
|
|
ldr r1, _0804864C
|
|
ldr r3, _08048650
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08048654
|
|
movs r5, 0xD8
|
|
lsls r5, 7
|
|
adds r6, r5
|
|
adds r0, r1, 0
|
|
adds r0, 0x30
|
|
ldr r2, _08048658
|
|
_08048622:
|
|
str r6, [r0]
|
|
adds r6, r2
|
|
subs r0, 0x4
|
|
cmp r0, r1
|
|
bge _08048622
|
|
b _080489CA
|
|
.align 2, 0
|
|
_08048630: .4byte 0x03004824
|
|
_08048634: .4byte 0x02017000
|
|
_08048638: .4byte 0x06002800
|
|
_0804863C: .4byte sub_80489F4
|
|
_08048640: .4byte gWindowConfig_81E6CE4
|
|
_08048644: .4byte gWindowConfig_81E6F84
|
|
_08048648: .4byte 0x03000508
|
|
_0804864C: .4byte 0x03001770
|
|
_08048650: .4byte 0x0000043c
|
|
_08048654: .4byte 0x020296cc
|
|
_08048658: .4byte 0xffffff00
|
|
_0804865C:
|
|
ldr r0, _08048664
|
|
adds r1, r2, r0
|
|
b _0804883E
|
|
.align 2, 0
|
|
_08048664: .4byte 0x0000043c
|
|
_08048668:
|
|
ldr r3, _08048670
|
|
adds r1, r2, r3
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048670: .4byte 0x0000043c
|
|
_08048674:
|
|
ldr r5, _0804867C
|
|
adds r1, r2, r5
|
|
b _0804899E
|
|
.align 2, 0
|
|
_0804867C: .4byte 0x0000043c
|
|
_08048680:
|
|
bl calc_player_party_count
|
|
ldr r1, _0804868C
|
|
ldr r0, _08048690
|
|
adds r1, r0
|
|
b _0804899E
|
|
.align 2, 0
|
|
_0804868C: .4byte 0x03001770
|
|
_08048690: .4byte 0x0000043c
|
|
_08048694:
|
|
ldr r3, _0804869C
|
|
adds r1, r2, r3
|
|
b _0804899E
|
|
.align 2, 0
|
|
_0804869C: .4byte 0x0000043c
|
|
_080486A0:
|
|
bl calc_enemy_party_count
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, _080487C0
|
|
ldr r0, [r4]
|
|
ldr r1, _080487C4
|
|
ldrb r1, [r1]
|
|
adds r0, 0x42
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, _080487C8
|
|
ldrb r1, [r1]
|
|
adds r0, 0x43
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_804A41C
|
|
movs r0, 0x1
|
|
bl sub_804A41C
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _0804873C
|
|
mov r8, r4
|
|
ldr r7, _080487CC
|
|
_080486DE:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _080487D0
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r1, 0xE0
|
|
lsls r1, 12
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, _080487D4
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
ldr r1, _080487D8
|
|
bl sub_809D2FC
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x34
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _080486DE
|
|
_0804873C:
|
|
movs r6, 0
|
|
ldr r1, _080487C0
|
|
ldr r0, [r1]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _080487B0
|
|
ldr r0, _080487CC
|
|
mov r8, r1
|
|
adds r7, r0, 0
|
|
adds r7, 0xC
|
|
_08048752:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _080487DC
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r3, 0xE0
|
|
lsls r3, 12
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, _080487D4
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
ldr r1, _080487D8
|
|
bl sub_809D2FC
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x3A
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _08048752
|
|
_080487B0:
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
ldr r1, _080487E0
|
|
ldr r3, _080487E4
|
|
adds r1, r3
|
|
b _0804899E
|
|
.align 2, 0
|
|
_080487C0: .4byte 0x03004824
|
|
_080487C4: .4byte 0x03004350
|
|
_080487C8: .4byte 0x030045b8
|
|
_080487CC: .4byte gTradeMonSpriteCoords
|
|
_080487D0: .4byte 0x03004360
|
|
_080487D4: .4byte 0xfff40000
|
|
_080487D8: .4byte sub_809D62C
|
|
_080487DC: .4byte 0x030045c0
|
|
_080487E0: .4byte 0x03001770
|
|
_080487E4: .4byte 0x0000043c
|
|
_080487E8:
|
|
bl sub_806DA98
|
|
ldr r0, _08048804
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
adds r1, 0x34
|
|
movs r2, 0
|
|
bl sub_806DB90
|
|
ldr r1, _08048808
|
|
ldr r5, _0804880C
|
|
adds r1, r5
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048804: .4byte 0x03004824
|
|
_08048808: .4byte 0x03001770
|
|
_0804880C: .4byte 0x0000043c
|
|
_08048810:
|
|
ldr r0, _08048828
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
adds r1, 0x34
|
|
movs r2, 0x1
|
|
bl sub_806DB90
|
|
ldr r1, _0804882C
|
|
ldr r0, _08048830
|
|
adds r1, r0
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048828: .4byte 0x03004824
|
|
_0804882C: .4byte 0x03001770
|
|
_08048830: .4byte 0x0000043c
|
|
_08048834:
|
|
bl sub_8047CE8
|
|
ldr r1, _08048850
|
|
ldr r2, _08048854
|
|
adds r1, r2
|
|
_0804883E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, _08048858
|
|
ldr r0, [r0]
|
|
adds r0, 0xB4
|
|
strb r2, [r0]
|
|
b _080489CA
|
|
.align 2, 0
|
|
_08048850: .4byte 0x03001770
|
|
_08048854: .4byte 0x0000043c
|
|
_08048858: .4byte 0x03004824
|
|
_0804885C:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
bl sub_804ABF8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08048870
|
|
b _080489CA
|
|
_08048870:
|
|
ldr r1, _08048878
|
|
ldr r3, _0804887C
|
|
adds r1, r3
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048878: .4byte 0x03001770
|
|
_0804887C: .4byte 0x0000043c
|
|
_08048880:
|
|
bl sub_8047D58
|
|
ldr r1, _0804888C
|
|
ldr r5, _08048890
|
|
adds r1, r5
|
|
b _0804899E
|
|
.align 2, 0
|
|
_0804888C: .4byte 0x03001770
|
|
_08048890: .4byte 0x0000043c
|
|
_08048894:
|
|
bl sub_8047E44
|
|
ldr r2, _080488AC
|
|
ldr r0, _080488B0
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x41
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
bhi _080488B4
|
|
ldrb r0, [r2, 0x9]
|
|
b _080488B8
|
|
.align 2, 0
|
|
_080488AC: .4byte 0x02018000
|
|
_080488B0: .4byte 0x03004824
|
|
_080488B4:
|
|
ldrb r0, [r2, 0x9]
|
|
adds r0, 0x6
|
|
_080488B8:
|
|
strb r0, [r1]
|
|
ldr r0, _08048900
|
|
ldr r3, _08048904
|
|
ldr r4, _08048908
|
|
ldr r1, [r4]
|
|
adds r1, 0x41
|
|
ldrb r2, [r1]
|
|
lsls r2, 1
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 19
|
|
movs r5, 0x80
|
|
lsls r5, 14
|
|
adds r1, r5
|
|
asrs r1, 16
|
|
adds r3, 0x1
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
lsls r2, 3
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0x40
|
|
strb r0, [r1]
|
|
ldr r0, _0804890C
|
|
ldr r1, _08048910
|
|
adds r0, r1
|
|
movs r1, 0xF
|
|
strb r1, [r0]
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
b _080489CA
|
|
.align 2, 0
|
|
_08048900: .4byte gSpriteTemplate_820C134
|
|
_08048904: .4byte gTradeMonSpriteCoords
|
|
_08048908: .4byte 0x03004824
|
|
_0804890C: .4byte 0x03001770
|
|
_08048910: .4byte 0x0000043c
|
|
_08048914:
|
|
movs r0, 0
|
|
bl sub_8048B0C
|
|
b _08048998
|
|
_0804891C:
|
|
movs r0, 0x1
|
|
bl sub_8048B0C
|
|
ldr r2, _08048944
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
bl sub_8048C70
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
bl nullsub_5
|
|
ldr r1, _08048948
|
|
ldr r3, _0804894C
|
|
adds r1, r3
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048944: .4byte 0x03004824
|
|
_08048948: .4byte 0x03001770
|
|
_0804894C: .4byte 0x0000043c
|
|
_08048950:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _08048968
|
|
ldr r5, _0804896C
|
|
adds r1, r5
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048968: .4byte 0x03001770
|
|
_0804896C: .4byte 0x0000043c
|
|
_08048970:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r3, 0xFA
|
|
lsls r3, 5
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r5, _08048984
|
|
adds r1, r2, r5
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048984: .4byte 0x0000043c
|
|
_08048988:
|
|
ldr r0, _08048990
|
|
adds r1, r2, r0
|
|
b _0804899E
|
|
.align 2, 0
|
|
_08048990: .4byte 0x0000043c
|
|
_08048994:
|
|
bl sub_804AF10
|
|
_08048998:
|
|
ldr r1, _080489A8
|
|
ldr r2, _080489AC
|
|
adds r1, r2
|
|
_0804899E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080489CA
|
|
.align 2, 0
|
|
_080489A8: .4byte 0x03001770
|
|
_080489AC: .4byte 0x0000043c
|
|
_080489B0:
|
|
ldr r0, _080489E8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080489CA
|
|
ldr r0, _080489EC
|
|
bl SetMainCallback2
|
|
ldr r0, _080489F0
|
|
strb r4, [r0]
|
|
_080489CA:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080489E8: .4byte 0x0202f388
|
|
_080489EC: .4byte sub_8048AB4
|
|
_080489F0: .4byte 0x03000508
|
|
thumb_func_end sub_80484F4
|
|
|
|
thumb_func_start sub_80489F4
|
|
sub_80489F4: @ 80489F4
|
|
push {lr}
|
|
ldr r0, _08048A10
|
|
ldr r0, [r0]
|
|
adds r0, 0xC8
|
|
bl sub_804A940
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048A10: .4byte 0x03004824
|
|
thumb_func_end sub_80489F4
|
|
|
|
thumb_func_start sub_8048A14
|
|
sub_8048A14: @ 8048A14
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _08048A4C
|
|
ldr r1, [r4]
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xF
|
|
bls _08048A44
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0xA
|
|
strb r1, [r0]
|
|
_08048A44:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048A4C: .4byte 0x03004824
|
|
thumb_func_end sub_8048A14
|
|
|
|
thumb_func_start sub_8048A50
|
|
sub_8048A50: @ 8048A50
|
|
push {r4,lr}
|
|
ldr r0, _08048A84
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08048A7E
|
|
ldr r2, _08048A88
|
|
ldr r4, _08048A8C
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x41
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
adds r0, 0x8A
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x1]
|
|
bl sub_800832C
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0xD
|
|
strb r1, [r0]
|
|
_08048A7E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048A84: .4byte 0x0202f388
|
|
_08048A88: .4byte 0x020297d8
|
|
_08048A8C: .4byte 0x03004824
|
|
thumb_func_end sub_8048A50
|
|
|
|
thumb_func_start sub_8048A90
|
|
sub_8048A90: @ 8048A90
|
|
push {lr}
|
|
ldr r0, _08048AA8
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _08048AA4
|
|
ldr r0, _08048AAC
|
|
str r1, [r0]
|
|
ldr r0, _08048AB0
|
|
bl SetMainCallback2
|
|
_08048AA4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048AA8: .4byte 0x03002fa4
|
|
_08048AAC: .4byte 0x03001770
|
|
_08048AB0: .4byte sub_804B41C
|
|
thumb_func_end sub_8048A90
|
|
|
|
thumb_func_start sub_8048AB4
|
|
sub_8048AB4: @ 8048AB4
|
|
push {r4,lr}
|
|
bl sub_8049DE0
|
|
bl sub_804AB30
|
|
movs r0, 0
|
|
bl sub_8049ED4
|
|
movs r0, 0x1
|
|
bl sub_8049ED4
|
|
ldr r4, _08048B04
|
|
ldr r3, _08048B08
|
|
ldr r2, [r3]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, 0x1
|
|
strb r1, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
adds r4, 0x4
|
|
ldr r2, [r3]
|
|
ldrb r0, [r2, 0x1]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFF
|
|
strb r1, [r2, 0x1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048B04: .4byte REG_BG2HOFS
|
|
_08048B08: .4byte 0x03004824
|
|
thumb_func_end sub_8048AB4
|
|
|
|
thumb_func_start sub_8048B0C
|
|
sub_8048B0C: @ 8048B0C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08048B1C
|
|
cmp r0, 0x1
|
|
beq _08048BD0
|
|
b _08048C3A
|
|
_08048B1C:
|
|
ldr r5, _08048BA0
|
|
ldr r0, _08048BA4
|
|
mov r12, r0
|
|
ldr r1, _08048BA8
|
|
ldr r4, _08048BAC
|
|
ldr r3, _08048BB0
|
|
movs r2, 0x2F
|
|
_08048B2A:
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
adds r1, 0x2
|
|
adds r4, 0x2
|
|
adds r3, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08048B2A
|
|
adds r3, r5, 0
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
movs r5, 0x94
|
|
lsls r5, 5
|
|
ldr r1, _08048BB4
|
|
ldr r6, _08048BB8
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_08048B54:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _08048B54
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r2, 0
|
|
ldr r5, _08048BBC
|
|
ldr r4, _08048BC0
|
|
ldr r3, _08048BC4
|
|
_08048B7A:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 1
|
|
adds r0, 0xDA
|
|
adds r0, r1
|
|
ldrh r1, [r3]
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
ble _08048B7A
|
|
ldr r1, _08048BC8
|
|
ldr r0, _08048BB4
|
|
mov r2, r12
|
|
str r2, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _08048BCC
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
b _08048C3A
|
|
.align 2, 0
|
|
_08048BA0: .4byte gUnknown_08EA0348
|
|
_08048BA4: .4byte gTradeStripesBG2Tilemap
|
|
_08048BA8: .4byte gUnknown_08EA02C8
|
|
_08048BAC: .4byte 0x0202eec8
|
|
_08048BB0: .4byte 0x0202eac8
|
|
_08048BB4: .4byte 0x040000d4
|
|
_08048BB8: .4byte 0x80000800
|
|
_08048BBC: .4byte 0x000003ff
|
|
_08048BC0: .4byte 0x03004824
|
|
_08048BC4: .4byte gUnknown_08EA15C8
|
|
_08048BC8: .4byte 0x06003000
|
|
_08048BCC: .4byte 0x80000400
|
|
_08048BD0:
|
|
ldr r1, _08048C40
|
|
ldr r2, _08048C44
|
|
ldr r0, _08048C48
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _08048C4C
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
movs r0, 0
|
|
bl sub_804A6DC
|
|
movs r0, 0x1
|
|
bl sub_804A6DC
|
|
ldr r0, _08048C50
|
|
ldr r0, [r0]
|
|
adds r0, 0xC8
|
|
bl sub_804A938
|
|
ldr r2, _08048C54
|
|
ldrh r1, [r2]
|
|
ldr r0, _08048C58
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _08048C5C
|
|
ldr r2, _08048C60
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _08048C64
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _08048C68
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08048C6C
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
subs r0, 0xA
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
_08048C3A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048C40: .4byte gTradeStripesBG3Tilemap
|
|
_08048C44: .4byte 0x06003800
|
|
_08048C48: .4byte 0x040000d4
|
|
_08048C4C: .4byte 0x80000400
|
|
_08048C50: .4byte 0x03004824
|
|
_08048C54: .4byte REG_BG0CNT
|
|
_08048C58: .4byte 0x0000fffc
|
|
_08048C5C: .4byte REG_BG1CNT
|
|
_08048C60: .4byte 0x00000501
|
|
_08048C64: .4byte 0x00000602
|
|
_08048C68: .4byte 0x00000703
|
|
_08048C6C: .4byte REG_BG0HOFS
|
|
thumb_func_end sub_8048B0C
|
|
|
|
thumb_func_start sub_8048C70
|
|
sub_8048C70: @ 8048C70
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r3, 0
|
|
ldr r5, _08048CC0
|
|
mov r8, r5
|
|
ldr r0, _08048CC4
|
|
mov r12, r0
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
mov r9, r1
|
|
movs r4, 0x6
|
|
movs r7, 0x1
|
|
movs r6, 0
|
|
_08048C8E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x42
|
|
ldrb r1, [r1]
|
|
cmp r3, r1
|
|
bge _08048CC8
|
|
adds r0, 0x34
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
adds r0, r3
|
|
strb r7, [r0]
|
|
b _08048CCE
|
|
.align 2, 0
|
|
_08048CC0: .4byte 0x03004824
|
|
_08048CC4: .4byte 0x02020004
|
|
_08048CC8:
|
|
adds r0, 0x44
|
|
adds r0, r3
|
|
strb r6, [r0]
|
|
_08048CCE:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x43
|
|
ldrb r1, [r1]
|
|
cmp r3, r1
|
|
bge _08048CFE
|
|
adds r0, 0x3A
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
adds r0, r4
|
|
strb r7, [r0]
|
|
b _08048D04
|
|
_08048CFE:
|
|
adds r0, 0x44
|
|
adds r0, r4
|
|
strb r6, [r0]
|
|
_08048D04:
|
|
adds r4, 0x1
|
|
adds r3, 0x1
|
|
cmp r3, 0x5
|
|
ble _08048C8E
|
|
ldr r0, [r5]
|
|
adds r0, 0x50
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8048C70
|
|
|
|
thumb_func_start nullsub_5
|
|
nullsub_5: @ 8048D20
|
|
bx lr
|
|
thumb_func_end nullsub_5
|
|
|
|
thumb_func_start sub_8048D24
|
|
sub_8048D24: @ 8048D24
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r3, 0
|
|
cmp r3, r2
|
|
bcs _08048D3E
|
|
_08048D30:
|
|
adds r0, r5, r3
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, r2
|
|
bcc _08048D30
|
|
_08048D3E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8048D24
|
|
|
|
thumb_func_start sub_8048D44
|
|
sub_8048D44: @ 8048D44
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r6, _08048D90
|
|
ldr r0, [r6]
|
|
adds r0, 0x75
|
|
ldrb r5, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl SetLinkDebugValues
|
|
ldr r0, [r6]
|
|
adds r0, 0x75
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bls _08048D86
|
|
b _0804907C
|
|
_08048D86:
|
|
lsls r0, 2
|
|
ldr r1, _08048D94
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08048D90: .4byte 0x03004824
|
|
_08048D94: .4byte _08048D98
|
|
.align 2, 0
|
|
_08048D98:
|
|
.4byte _08048DDC
|
|
.4byte _08048DF8
|
|
.4byte _08048E28
|
|
.4byte _08048E3C
|
|
.4byte _08048E74
|
|
.4byte _08048E90
|
|
.4byte _08048EA4
|
|
.4byte _08048EDC
|
|
.4byte _08048EF8
|
|
.4byte _08048F0C
|
|
.4byte _08048F44
|
|
.4byte _08048F60
|
|
.4byte _08048F74
|
|
.4byte _08048FAC
|
|
.4byte _08048FC8
|
|
.4byte _08048FDC
|
|
.4byte _08049018
|
|
_08048DDC:
|
|
ldr r0, _08048DEC
|
|
ldr r1, _08048DF0
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
ldr r0, _08048DF4
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048DEC: .4byte 0x03002a70
|
|
_08048DF0: .4byte 0x03004360
|
|
_08048DF4: .4byte 0x03004824
|
|
_08048DF8:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08048E04
|
|
b _0804907C
|
|
_08048E04:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08048E18
|
|
ldr r0, _08048E14
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048E14: .4byte 0x03004824
|
|
_08048E18:
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08048E24
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048E24: .4byte 0x03004824
|
|
_08048E28:
|
|
cmp r7, 0
|
|
bne _08048E32
|
|
movs r0, 0x1
|
|
bl sub_8007E9C
|
|
_08048E32:
|
|
ldr r0, _08048E38
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048E38: .4byte 0x03004824
|
|
_08048E3C:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08048E4A
|
|
b _0804907C
|
|
_08048E4A:
|
|
ldr r0, _08048E68
|
|
movs r2, 0x1
|
|
adds r1, r7, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, _08048E6C
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08048E70
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048E68: .4byte 0x030045c0
|
|
_08048E6C: .4byte 0x03002b80
|
|
_08048E70: .4byte 0x03004824
|
|
_08048E74:
|
|
ldr r0, _08048E84
|
|
ldr r1, _08048E88
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
ldr r0, _08048E8C
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048E84: .4byte 0x03002a70
|
|
_08048E88: .4byte 0x03004428
|
|
_08048E8C: .4byte 0x03004824
|
|
_08048E90:
|
|
cmp r7, 0
|
|
bne _08048E9A
|
|
movs r0, 0x1
|
|
bl sub_8007E9C
|
|
_08048E9A:
|
|
ldr r0, _08048EA0
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048EA0: .4byte 0x03004824
|
|
_08048EA4:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08048EB2
|
|
b _0804907C
|
|
_08048EB2:
|
|
ldr r0, _08048ED0
|
|
movs r2, 0x1
|
|
adds r1, r7, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, _08048ED4
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08048ED8
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048ED0: .4byte 0x03004688
|
|
_08048ED4: .4byte 0x03002b80
|
|
_08048ED8: .4byte 0x03004824
|
|
_08048EDC:
|
|
ldr r0, _08048EEC
|
|
ldr r1, _08048EF0
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
ldr r0, _08048EF4
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048EEC: .4byte 0x03002a70
|
|
_08048EF0: .4byte 0x030044f0
|
|
_08048EF4: .4byte 0x03004824
|
|
_08048EF8:
|
|
cmp r7, 0
|
|
bne _08048F02
|
|
movs r0, 0x1
|
|
bl sub_8007E9C
|
|
_08048F02:
|
|
ldr r0, _08048F08
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048F08: .4byte 0x03004824
|
|
_08048F0C:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08048F1A
|
|
b _0804907C
|
|
_08048F1A:
|
|
ldr r0, _08048F38
|
|
movs r2, 0x1
|
|
adds r1, r7, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, _08048F3C
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8048D24
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08048F40
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048F38: .4byte 0x03004750
|
|
_08048F3C: .4byte 0x03002b80
|
|
_08048F40: .4byte 0x03004824
|
|
_08048F44:
|
|
ldr r0, _08048F54
|
|
ldr r1, _08048F58
|
|
movs r2, 0xDC
|
|
bl sub_8048D24
|
|
ldr r0, _08048F5C
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048F54: .4byte 0x03002a70
|
|
_08048F58: .4byte 0x02028280
|
|
_08048F5C: .4byte 0x03004824
|
|
_08048F60:
|
|
cmp r7, 0
|
|
bne _08048F6A
|
|
movs r0, 0x3
|
|
bl sub_8007E9C
|
|
_08048F6A:
|
|
ldr r0, _08048F70
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048F70: .4byte 0x03004824
|
|
_08048F74:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08048F82
|
|
b _0804907C
|
|
_08048F82:
|
|
ldr r0, _08048FA0
|
|
movs r2, 0x1
|
|
adds r1, r7, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, _08048FA4
|
|
adds r1, r2
|
|
movs r2, 0xD8
|
|
bl sub_8048D24
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08048FA8
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048FA0: .4byte 0x02029700
|
|
_08048FA4: .4byte 0x03002b80
|
|
_08048FA8: .4byte 0x03004824
|
|
_08048FAC:
|
|
ldr r0, _08048FBC
|
|
ldr r1, _08048FC0
|
|
movs r2, 0xB
|
|
bl sub_8048D24
|
|
ldr r0, _08048FC4
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048FBC: .4byte 0x03002a70
|
|
_08048FC0: .4byte 0x02028844
|
|
_08048FC4: .4byte 0x03004824
|
|
_08048FC8:
|
|
cmp r7, 0
|
|
bne _08048FD2
|
|
movs r0, 0x4
|
|
bl sub_8007E9C
|
|
_08048FD2:
|
|
ldr r0, _08048FD8
|
|
ldr r1, [r0]
|
|
b _08049006
|
|
.align 2, 0
|
|
_08048FD8: .4byte 0x03004824
|
|
_08048FDC:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0804907C
|
|
ldr r4, _08049010
|
|
ldr r0, [r4]
|
|
adds r0, 0xB5
|
|
movs r2, 0x1
|
|
adds r1, r7, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, _08049014
|
|
adds r1, r2
|
|
movs r2, 0xB
|
|
bl sub_8048D24
|
|
bl ResetBlockReceivedFlags
|
|
ldr r1, [r4]
|
|
_08049006:
|
|
adds r1, 0x75
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804907C
|
|
.align 2, 0
|
|
_08049010: .4byte 0x03004824
|
|
_08049014: .4byte 0x03002b80
|
|
_08049018:
|
|
ldr r4, _0804906C
|
|
ldr r6, _08049070
|
|
movs r5, 0x5
|
|
_0804901E:
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _0804905E
|
|
cmp r0, r6
|
|
bne _0804905E
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl PokemonGetField
|
|
cmp r0, 0x1
|
|
beq _0804905E
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
mov r0, sp
|
|
ldr r1, _08049074
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
bne _0804905E
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
ldr r2, _08049078
|
|
bl pokemon_setattr
|
|
_0804905E:
|
|
adds r4, 0x64
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0804901E
|
|
movs r0, 0x1
|
|
b _0804907E
|
|
.align 2, 0
|
|
_0804906C: .4byte 0x030045c0
|
|
_08049070: .4byte 0x0000012f
|
|
_08049074: .4byte gUnknown_0820C3B0
|
|
_08049078: .4byte gSpeciesNames + 0xD05
|
|
_0804907C:
|
|
movs r0, 0
|
|
_0804907E:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8048D44
|
|
|
|
thumb_func_start sub_8049088
|
|
sub_8049088: @ 8049088
|
|
push {lr}
|
|
sub sp, 0x1C
|
|
ldr r1, _080490B0
|
|
mov r0, sp
|
|
bl StringCopy
|
|
ldr r0, _080490B4
|
|
ldr r0, [r0]
|
|
adds r0, 0x7E
|
|
ldrh r1, [r0]
|
|
lsls r1, 5
|
|
ldr r0, _080490B8
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
add sp, 0x1C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080490B0: .4byte gUnknown_0842C7B6
|
|
_080490B4: .4byte 0x03004824
|
|
_080490B8: .4byte 0x06010000
|
|
thumb_func_end sub_8049088
|
|
|
|
thumb_func_start sub_80490BC
|
|
sub_80490BC: @ 80490BC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08049148
|
|
ldr r1, _080490EC
|
|
lsls r0, r2, 8
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _080490F0
|
|
cmp r1, r0
|
|
beq _08049128
|
|
cmp r1, r0
|
|
bgt _080490F8
|
|
ldr r0, _080490F4
|
|
cmp r1, r0
|
|
beq _08049118
|
|
b _08049142
|
|
.align 2, 0
|
|
_080490EC: .4byte 0x03002b80
|
|
_080490F0: .4byte 0x0000bbbb
|
|
_080490F4: .4byte 0x0000aabb
|
|
_080490F8:
|
|
ldr r0, _0804910C
|
|
cmp r1, r0
|
|
beq _08049138
|
|
ldr r0, _08049110
|
|
cmp r1, r0
|
|
bne _08049142
|
|
ldr r0, _08049114
|
|
ldr r0, [r0]
|
|
adds r0, 0x84
|
|
b _0804913E
|
|
.align 2, 0
|
|
_0804910C: .4byte 0x0000bbcc
|
|
_08049110: .4byte 0x0000eeaa
|
|
_08049114: .4byte 0x03004824
|
|
_08049118:
|
|
ldr r0, _08049124
|
|
ldr r0, [r0]
|
|
adds r0, 0x84
|
|
strb r3, [r0]
|
|
b _08049142
|
|
.align 2, 0
|
|
_08049124: .4byte 0x03004824
|
|
_08049128:
|
|
ldr r0, _08049134
|
|
ldr r0, [r0]
|
|
adds r0, 0x86
|
|
strb r3, [r0]
|
|
b _08049142
|
|
.align 2, 0
|
|
_08049134: .4byte 0x03004824
|
|
_08049138:
|
|
ldr r0, _08049170
|
|
ldr r0, [r0]
|
|
adds r0, 0x86
|
|
_0804913E:
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
_08049142:
|
|
movs r0, 0
|
|
bl ResetBlockReceivedFlag
|
|
_08049148:
|
|
movs r2, 0x2
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080491DA
|
|
ldr r3, _08049174
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _08049178
|
|
cmp r1, r0
|
|
beq _080491BC
|
|
cmp r1, r0
|
|
bgt _08049180
|
|
ldr r0, _0804917C
|
|
cmp r1, r0
|
|
beq _080491A0
|
|
b _080491D4
|
|
.align 2, 0
|
|
_08049170: .4byte 0x03004824
|
|
_08049174: .4byte 0x03002b80
|
|
_08049178: .4byte 0x0000bbbb
|
|
_0804917C: .4byte 0x0000aabb
|
|
_08049180:
|
|
ldr r0, _08049194
|
|
cmp r1, r0
|
|
beq _080491CC
|
|
ldr r0, _08049198
|
|
cmp r1, r0
|
|
bne _080491D4
|
|
ldr r0, _0804919C
|
|
ldr r0, [r0]
|
|
adds r0, 0x85
|
|
b _080491D2
|
|
.align 2, 0
|
|
_08049194: .4byte 0x0000bbcc
|
|
_08049198: .4byte 0x0000eeaa
|
|
_0804919C: .4byte 0x03004824
|
|
_080491A0:
|
|
ldr r2, _080491B8
|
|
ldr r1, [r2]
|
|
movs r4, 0x81
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
adds r0, 0x6
|
|
adds r1, 0x8A
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x85
|
|
b _080491C2
|
|
.align 2, 0
|
|
_080491B8: .4byte 0x03004824
|
|
_080491BC:
|
|
ldr r0, _080491C8
|
|
ldr r0, [r0]
|
|
adds r0, 0x87
|
|
_080491C2:
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080491D4
|
|
.align 2, 0
|
|
_080491C8: .4byte 0x03004824
|
|
_080491CC:
|
|
ldr r0, _080491E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x87
|
|
_080491D2:
|
|
strb r2, [r0]
|
|
_080491D4:
|
|
movs r0, 0x1
|
|
bl ResetBlockReceivedFlag
|
|
_080491DA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080491E0: .4byte 0x03004824
|
|
thumb_func_end sub_80490BC
|
|
|
|
thumb_func_start sub_80491E4
|
|
sub_80491E4: @ 80491E4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080492BE
|
|
ldr r2, _08049210
|
|
ldrh r1, [r2]
|
|
ldr r0, _08049214
|
|
cmp r1, r0
|
|
beq _080492A8
|
|
cmp r1, r0
|
|
bgt _08049220
|
|
ldr r0, _08049218
|
|
cmp r1, r0
|
|
beq _08049288
|
|
ldr r0, _0804921C
|
|
cmp r1, r0
|
|
beq _0804925C
|
|
b _080492B8
|
|
.align 2, 0
|
|
_08049210: .4byte 0x03002b80
|
|
_08049214: .4byte 0x0000ddee
|
|
_08049218: .4byte 0x0000ccdd
|
|
_0804921C: .4byte 0x0000dddd
|
|
_08049220:
|
|
ldr r0, _08049230
|
|
cmp r1, r0
|
|
beq _08049234
|
|
adds r0, 0x11
|
|
cmp r1, r0
|
|
beq _08049258
|
|
b _080492B8
|
|
.align 2, 0
|
|
_08049230: .4byte 0x0000eebb
|
|
_08049234:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0x4
|
|
bl sub_804AA0C
|
|
ldr r0, _08049254
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0xB
|
|
b _080492B6
|
|
.align 2, 0
|
|
_08049254: .4byte 0x03004824
|
|
_08049258:
|
|
movs r0, 0x5
|
|
b _080492AA
|
|
_0804925C:
|
|
ldr r4, _08049284
|
|
ldr r1, [r4]
|
|
ldrb r0, [r2, 0x2]
|
|
adds r0, 0x6
|
|
adds r1, 0x8A
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x41
|
|
ldrb r0, [r0]
|
|
bl sub_8049E9C
|
|
ldr r0, [r4]
|
|
adds r0, 0x8A
|
|
ldrb r0, [r0]
|
|
bl sub_8049E9C
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x7
|
|
b _080492B6
|
|
.align 2, 0
|
|
_08049284: .4byte 0x03004824
|
|
_08049288:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080492A4
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0xA
|
|
b _080492B6
|
|
.align 2, 0
|
|
_080492A4: .4byte 0x03004824
|
|
_080492A8:
|
|
movs r0, 0x1
|
|
_080492AA:
|
|
bl sub_804AA0C
|
|
ldr r0, _080492D4
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0x8
|
|
_080492B6:
|
|
strb r1, [r0]
|
|
_080492B8:
|
|
movs r0, 0
|
|
bl ResetBlockReceivedFlag
|
|
_080492BE:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080492CC
|
|
movs r0, 0x1
|
|
bl ResetBlockReceivedFlag
|
|
_080492CC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080492D4: .4byte 0x03004824
|
|
thumb_func_end sub_80491E4
|
|
|
|
thumb_func_start sub_80492D8
|
|
sub_80492D8: @ 80492D8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r6, _08049334
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0x84
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080492EC
|
|
b _08049420
|
|
_080492EC:
|
|
adds r0, r2, 0
|
|
adds r0, 0x85
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080492F8
|
|
b _08049420
|
|
_080492F8:
|
|
ldrh r1, [r1]
|
|
ldr r0, _08049338
|
|
cmp r1, r0
|
|
bne _08049340
|
|
adds r1, r2, 0
|
|
adds r1, 0x7B
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0x8C
|
|
movs r4, 0
|
|
ldr r0, _0804933C
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x41
|
|
ldrb r1, [r0]
|
|
adds r0, 0x4D
|
|
strh r1, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r0, [r6]
|
|
adds r2, r0, 0
|
|
adds r2, 0x85
|
|
strb r4, [r2]
|
|
adds r0, 0x84
|
|
strb r4, [r0]
|
|
b _08049420
|
|
.align 2, 0
|
|
_08049334: .4byte 0x03004824
|
|
_08049338: .4byte 0x00000101
|
|
_0804933C: .4byte 0x0000dddd
|
|
_08049340:
|
|
ldr r0, _08049388
|
|
cmp r1, r0
|
|
bne _08049390
|
|
movs r0, 0x1
|
|
bl sub_804AA0C
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x8C
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, _0804938C
|
|
strh r0, [r2]
|
|
adds r1, 0x8E
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x87
|
|
strb r4, [r1]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x85
|
|
strb r4, [r1]
|
|
adds r0, 0x84
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x7B
|
|
movs r1, 0x8
|
|
b _0804941E
|
|
.align 2, 0
|
|
_08049388: .4byte 0x00000201
|
|
_0804938C: .4byte 0x0000eecc
|
|
_08049390:
|
|
movs r0, 0x81
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080493DC
|
|
movs r0, 0x5
|
|
bl sub_804AA0C
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x8C
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, _080493D8
|
|
strh r0, [r2]
|
|
adds r1, 0x8E
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x87
|
|
strb r4, [r1]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x85
|
|
strb r4, [r1]
|
|
adds r0, 0x84
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x7B
|
|
movs r1, 0x8
|
|
b _0804941E
|
|
.align 2, 0
|
|
_080493D8: .4byte 0x0000ddee
|
|
_080493DC:
|
|
ldr r0, _080494C0
|
|
cmp r1, r0
|
|
bne _08049420
|
|
adds r1, r2, 0
|
|
adds r1, 0x8C
|
|
movs r5, 0
|
|
movs r4, 0
|
|
ldr r0, _080494C4
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x8E
|
|
strh r4, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x85
|
|
strb r5, [r1]
|
|
adds r0, 0x84
|
|
strb r5, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x7B
|
|
movs r1, 0xB
|
|
_0804941E:
|
|
strb r1, [r0]
|
|
_08049420:
|
|
ldr r5, _080494C8
|
|
ldr r3, [r5]
|
|
adds r1, r3, 0
|
|
adds r1, 0x86
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080494B8
|
|
adds r0, r3, 0
|
|
adds r0, 0x87
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080494B8
|
|
ldrh r1, [r1]
|
|
ldr r0, _080494CC
|
|
cmp r1, r0
|
|
bne _0804946E
|
|
adds r1, r3, 0
|
|
adds r1, 0x8C
|
|
movs r4, 0
|
|
movs r2, 0
|
|
ldr r0, _080494D0
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x8E
|
|
strh r2, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r0, [r5]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x87
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
movs r1, 0x9
|
|
strb r1, [r0]
|
|
_0804946E:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x86
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08049484
|
|
adds r0, r1, 0
|
|
adds r0, 0x87
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080494B8
|
|
_08049484:
|
|
movs r0, 0x1
|
|
bl sub_804AA0C
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x8C
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, _080494D4
|
|
strh r0, [r2]
|
|
adds r1, 0x8E
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r0, [r5]
|
|
adds r0, 0x86
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x87
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
_080494B8:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080494C0: .4byte 0x00000202
|
|
_080494C4: .4byte 0x0000eebb
|
|
_080494C8: .4byte 0x03004824
|
|
_080494CC: .4byte 0x00000101
|
|
_080494D0: .4byte 0x0000ccdd
|
|
_080494D4: .4byte 0x0000ddee
|
|
thumb_func_end sub_80492D8
|
|
|
|
thumb_func_start sub_80494D8
|
|
sub_80494D8: @ 80494D8
|
|
push {r4,lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08049504
|
|
cmp r4, 0
|
|
bne _080494FA
|
|
movs r0, 0
|
|
bl sub_80490BC
|
|
b _08049500
|
|
_080494FA:
|
|
adds r0, r4, 0
|
|
bl sub_80491E4
|
|
_08049500:
|
|
bl ResetBlockReceivedFlags
|
|
_08049504:
|
|
cmp r4, 0
|
|
bne _0804950C
|
|
bl sub_80492D8
|
|
_0804950C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80494D8
|
|
|
|
thumb_func_start sub_8049514
|
|
sub_8049514: @ 8049514
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r2, _08049548
|
|
ldr r3, [r2]
|
|
ldr r4, _0804954C
|
|
lsls r2, r1, 1
|
|
adds r2, r1
|
|
lsls r2, 1
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x44
|
|
adds r2, r1
|
|
adds r2, r4
|
|
_0804953A:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08049550
|
|
adds r6, r1, 0
|
|
b _08049558
|
|
.align 2, 0
|
|
_08049548: .4byte 0x03004824
|
|
_0804954C: .4byte gTradeNextSelectedMonTable
|
|
_08049550:
|
|
adds r2, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0804953A
|
|
_08049558:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8049514
|
|
|
|
thumb_func_start sub_8049560
|
|
sub_8049560: @ 8049560
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r7]
|
|
bl sub_8049514
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xC
|
|
bne _080495B8
|
|
ldr r5, _080495B0
|
|
ldr r0, [r5]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080495B4
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r2, [r5]
|
|
adds r2, 0x40
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xE0
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xA0
|
|
strh r1, [r0, 0x22]
|
|
b _08049600
|
|
.align 2, 0
|
|
_080495B0: .4byte 0x03004824
|
|
_080495B4: .4byte 0x02020004
|
|
_080495B8:
|
|
ldr r4, _08049614
|
|
ldr r0, [r4]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, _08049618
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldr r4, [r4]
|
|
adds r4, 0x40
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r2, _0804961C
|
|
lsls r3, r6, 1
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x20
|
|
strh r0, [r1, 0x20]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r2, 0x1
|
|
adds r3, r2
|
|
ldrb r0, [r3]
|
|
lsls r0, 3
|
|
strh r0, [r1, 0x22]
|
|
_08049600:
|
|
ldrb r0, [r7]
|
|
cmp r0, r6
|
|
beq _0804960C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
_0804960C:
|
|
strb r6, [r7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049614: .4byte 0x03004824
|
|
_08049618: .4byte 0x02020004
|
|
_0804961C: .4byte gTradeMonSpriteCoords
|
|
thumb_func_end sub_8049560
|
|
|
|
thumb_func_start sub_8049620
|
|
sub_8049620: @ 8049620
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl sub_804AA0C
|
|
ldr r4, _08049668
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08049670
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0x8C
|
|
ldr r0, _0804966C
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x41
|
|
ldrb r1, [r0]
|
|
adds r0, 0x4D
|
|
strh r1, [r0]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
b _08049678
|
|
.align 2, 0
|
|
_08049668: .4byte 0x03004824
|
|
_0804966C: .4byte 0x0000aabb
|
|
_08049670:
|
|
ldr r0, [r4]
|
|
adds r0, 0x84
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_08049678:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049620
|
|
|
|
thumb_func_start sub_8049680
|
|
sub_8049680: @ 8049680
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080496A0
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080496A8
|
|
ldr r0, _080496A4
|
|
ldr r0, [r0]
|
|
adds r0, 0x41
|
|
movs r1, 0
|
|
bl sub_8049560
|
|
b _080496F4
|
|
.align 2, 0
|
|
_080496A0: .4byte 0x03001770
|
|
_080496A4: .4byte 0x03004824
|
|
_080496A8:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080496C4
|
|
ldr r0, _080496C0
|
|
ldr r0, [r0]
|
|
adds r0, 0x41
|
|
movs r1, 0x1
|
|
bl sub_8049560
|
|
b _080496F4
|
|
.align 2, 0
|
|
_080496C0: .4byte 0x03004824
|
|
_080496C4:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080496E0
|
|
ldr r0, _080496DC
|
|
ldr r0, [r0]
|
|
adds r0, 0x41
|
|
movs r1, 0x2
|
|
bl sub_8049560
|
|
b _080496F4
|
|
.align 2, 0
|
|
_080496DC: .4byte 0x03004824
|
|
_080496E0:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080496F4
|
|
ldr r0, _08049750
|
|
ldr r0, [r0]
|
|
adds r0, 0x41
|
|
movs r1, 0x3
|
|
bl sub_8049560
|
|
_080496F4:
|
|
ldr r0, _08049754
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080497B6
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r4, _08049750
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x41
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x5
|
|
bhi _0804975C
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0x12
|
|
movs r2, 0xE
|
|
movs r3, 0x1C
|
|
bl AddTextPrinterParametrized
|
|
ldr r3, _08049758
|
|
movs r0, 0x13
|
|
movs r1, 0xF
|
|
movs r2, 0x2
|
|
bl PrintStringArray
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x9
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0xF
|
|
movs r3, 0x2
|
|
bl InitMenu
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080497B6
|
|
.align 2, 0
|
|
_08049750: .4byte 0x03004824
|
|
_08049754: .4byte 0x03001770
|
|
_08049758: .4byte gUnknown_0820C320
|
|
_0804975C:
|
|
cmp r1, 0xB
|
|
bhi _0804977A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _080497B6
|
|
_0804977A:
|
|
cmp r1, 0xC
|
|
bne _080497B6
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0x18
|
|
movs r2, 0xE
|
|
movs r3, 0x1D
|
|
bl AddTextPrinterParametrized
|
|
movs r0, 0x18
|
|
movs r1, 0xE
|
|
movs r2, 0x4
|
|
bl sub_807292C
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
ldr r0, _080497F4
|
|
ldr r0, [r0, 0x10]
|
|
ldr r1, [r4]
|
|
adds r1, 0x7E
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, _080497F8
|
|
adds r1, r2
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
_080497B6:
|
|
ldr r0, _080497FC
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080497EC
|
|
movs r2, 0
|
|
ldr r3, _08049800
|
|
_080497C8:
|
|
ldr r0, [r3]
|
|
lsls r1, r2, 1
|
|
adds r0, 0x8C
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080497C8
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08049800
|
|
ldr r1, [r1]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
_080497EC:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080497F4: .4byte gUnknown_0820C14C
|
|
_080497F8: .4byte 0x06010000
|
|
_080497FC: .4byte 0x03001770
|
|
_08049800: .4byte 0x03004824
|
|
thumb_func_end sub_8049680
|
|
|
|
thumb_func_start sub_8049804
|
|
sub_8049804: @ 8049804
|
|
push {lr}
|
|
bl sub_8072DEC
|
|
bl sub_804A80C
|
|
ldr r3, _08049850
|
|
ldr r0, [r3]
|
|
adds r0, 0x7B
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r2, _08049854
|
|
ldr r0, [r3]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _08049858
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r3]
|
|
adds r1, 0x7E
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, _0804985C
|
|
adds r1, r2
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049850: .4byte 0x03004824
|
|
_08049854: .4byte 0x02020004
|
|
_08049858: .4byte gUnknown_0820C14C
|
|
_0804985C: .4byte 0x06010000
|
|
thumb_func_end sub_8049804
|
|
|
|
thumb_func_start sub_8049860
|
|
sub_8049860: @ 8049860
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0804987C
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049880
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08049890
|
|
.align 2, 0
|
|
_0804987C: .4byte 0x03001770
|
|
_08049880:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804989C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
_08049890:
|
|
bl MoveMenuCursor
|
|
ldr r1, _080498D8
|
|
ldr r1, [r1]
|
|
adds r1, 0x7C
|
|
strb r0, [r1]
|
|
_0804989C:
|
|
ldr r0, _080498DC
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049938
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080498E0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080498D8
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _0804994A
|
|
.align 2, 0
|
|
_080498D8: .4byte 0x03004824
|
|
_080498DC: .4byte 0x03001770
|
|
_080498E0:
|
|
ldr r4, _08049910
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x51
|
|
adds r1, r2, 0
|
|
adds r1, 0x42
|
|
ldrb r1, [r1]
|
|
adds r2, 0x41
|
|
ldrb r2, [r2]
|
|
bl sub_80499F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049914
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl sub_804AADC
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
b _0804994A
|
|
.align 2, 0
|
|
_08049910: .4byte 0x03004824
|
|
_08049914:
|
|
bl sub_8049620
|
|
ldr r2, _08049934
|
|
ldr r0, [r4]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804994A
|
|
.align 2, 0
|
|
_08049934: .4byte 0x02020004
|
|
_08049938:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804994A
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl sub_8049804
|
|
_0804994A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049860
|
|
|
|
thumb_func_start sub_8049954
|
|
sub_8049954: @ 8049954
|
|
push {lr}
|
|
ldr r0, _08049978
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804996A
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049974
|
|
_0804996A:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl sub_8049804
|
|
_08049974:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049978: .4byte 0x03001770
|
|
thumb_func_end sub_8049954
|
|
|
|
thumb_func_start sub_804997C
|
|
sub_804997C: @ 804997C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080499B4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080499E0
|
|
ldr r0, _080499B8
|
|
ldr r2, [r0]
|
|
adds r3, r2, 0
|
|
adds r3, 0x41
|
|
ldrb r1, [r3]
|
|
cmp r1, 0x5
|
|
bhi _080499C4
|
|
ldr r0, _080499BC
|
|
ldrb r1, [r3]
|
|
adds r2, 0x42
|
|
ldrb r2, [r2]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _080499C0
|
|
movs r4, 0x4
|
|
str r4, [sp]
|
|
bl sub_809D8BC
|
|
b _080499E0
|
|
.align 2, 0
|
|
_080499B4: .4byte 0x0202f388
|
|
_080499B8: .4byte 0x03004824
|
|
_080499BC: .4byte 0x03004360
|
|
_080499C0: .4byte sub_80484F4
|
|
_080499C4:
|
|
ldr r0, _080499E8
|
|
subs r1, 0x6
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, 0x43
|
|
ldrb r2, [r2]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _080499EC
|
|
movs r4, 0x4
|
|
str r4, [sp]
|
|
bl sub_809D8BC
|
|
_080499E0:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080499E8: .4byte 0x030045c0
|
|
_080499EC: .4byte sub_80484F4
|
|
thumb_func_end sub_804997C
|
|
|
|
thumb_func_start sub_80499F0
|
|
sub_80499F0: @ 80499F0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
movs r3, 0
|
|
cmp r1, r4
|
|
bge _08049A18
|
|
_08049A04:
|
|
cmp r2, r3
|
|
beq _08049A12
|
|
adds r0, r5, r3
|
|
ldrb r0, [r0]
|
|
adds r0, r1, r0
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_08049A12:
|
|
adds r3, 0x1
|
|
cmp r3, r4
|
|
blt _08049A04
|
|
_08049A18:
|
|
adds r0, r1, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80499F0
|
|
|
|
thumb_func_start sub_8049A20
|
|
sub_8049A20: @ 8049A20
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r2, 0
|
|
ldr r0, _08049A80
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0x42
|
|
adds r5, r0, 0
|
|
ldrb r0, [r3]
|
|
cmp r2, r0
|
|
bge _08049A4C
|
|
adds r4, r1, 0
|
|
adds r4, 0x51
|
|
_08049A3A:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
adds r1, r4, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r2, r0
|
|
blt _08049A3A
|
|
_08049A4C:
|
|
adds r4, r5, 0
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x42
|
|
ldrb r1, [r1]
|
|
adds r0, 0x41
|
|
ldrb r2, [r0]
|
|
mov r0, sp
|
|
bl sub_80499F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049A88
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl sub_804AADC
|
|
ldr r0, [r4]
|
|
adds r0, 0x8C
|
|
ldr r1, _08049A84
|
|
strh r1, [r0]
|
|
movs r0, 0xB4
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
b _08049AB4
|
|
.align 2, 0
|
|
_08049A80: .4byte 0x03004824
|
|
_08049A84: .4byte 0x0000bbcc
|
|
_08049A88:
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_804AADC
|
|
ldr r0, [r5]
|
|
adds r0, 0x8C
|
|
ldr r1, _08049ABC
|
|
strh r1, [r0]
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08049AB4
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r5]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
_08049AB4:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049ABC: .4byte 0x0000bbbb
|
|
thumb_func_end sub_8049A20
|
|
|
|
thumb_func_start sub_8049AC0
|
|
sub_8049AC0: @ 8049AC0
|
|
push {r4,lr}
|
|
ldr r0, _08049ADC
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049AE0
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08049AF0
|
|
.align 2, 0
|
|
_08049ADC: .4byte 0x03001770
|
|
_08049AE0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049AFC
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
_08049AF0:
|
|
bl MoveMenuCursor
|
|
ldr r1, _08049B20
|
|
ldr r1, [r1]
|
|
adds r1, 0x7C
|
|
strb r0, [r1]
|
|
_08049AFC:
|
|
ldr r0, _08049B24
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049B64
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049B28
|
|
bl sub_8049A20
|
|
b _08049B56
|
|
.align 2, 0
|
|
_08049B20: .4byte 0x03004824
|
|
_08049B24: .4byte 0x03001770
|
|
_08049B28:
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_804AADC
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08049B56
|
|
ldr r4, _08049B5C
|
|
ldr r0, [r4]
|
|
adds r0, 0x8C
|
|
ldr r1, _08049B60
|
|
strh r1, [r0]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
_08049B56:
|
|
ldr r0, _08049B5C
|
|
ldr r0, [r0]
|
|
b _08049BAA
|
|
.align 2, 0
|
|
_08049B5C: .4byte 0x03004824
|
|
_08049B60: .4byte 0x0000bbcc
|
|
_08049B64:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049BB0
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_804AADC
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049B8C
|
|
movs r0, 0x1
|
|
bl MoveMenuCursor
|
|
ldr r1, _08049BB8
|
|
ldr r1, [r1]
|
|
adds r1, 0x7C
|
|
strb r0, [r1]
|
|
_08049B8C:
|
|
ldr r4, _08049BB8
|
|
ldr r0, [r4]
|
|
adds r0, 0x8C
|
|
ldr r1, _08049BBC
|
|
strh r1, [r0]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
ldr r0, [r4]
|
|
_08049BAA:
|
|
adds r0, 0x7B
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
_08049BB0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049BB8: .4byte 0x03004824
|
|
_08049BBC: .4byte 0x0000bbcc
|
|
thumb_func_end sub_8049AC0
|
|
|
|
thumb_func_start sub_8049BC0
|
|
sub_8049BC0: @ 8049BC0
|
|
push {r4,r5,lr}
|
|
ldr r0, _08049BDC
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049BE0
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08049BF0
|
|
.align 2, 0
|
|
_08049BDC: .4byte 0x03001770
|
|
_08049BE0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049BFC
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
_08049BF0:
|
|
bl MoveMenuCursor
|
|
ldr r1, _08049C5C
|
|
ldr r1, [r1]
|
|
adds r1, 0x7C
|
|
strb r0, [r1]
|
|
_08049BFC:
|
|
ldr r0, _08049C60
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049C72
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _08049C6C
|
|
movs r0, 0x4
|
|
bl sub_804AA0C
|
|
ldr r4, _08049C5C
|
|
ldr r0, [r4]
|
|
adds r2, r0, 0
|
|
adds r2, 0x8C
|
|
ldr r1, _08049C64
|
|
strh r1, [r2]
|
|
adds r0, 0x8E
|
|
strh r5, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_804AADC
|
|
ldr r2, _08049C68
|
|
ldr r0, [r4]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
b _08049C84
|
|
.align 2, 0
|
|
_08049C5C: .4byte 0x03004824
|
|
_08049C60: .4byte 0x03001770
|
|
_08049C64: .4byte 0x0000eeaa
|
|
_08049C68: .4byte 0x02020004
|
|
_08049C6C:
|
|
bl sub_8049804
|
|
b _08049C84
|
|
_08049C72:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049C84
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl sub_8049804
|
|
_08049C84:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049BC0
|
|
|
|
thumb_func_start sub_8049C8C
|
|
sub_8049C8C: @ 8049C8C
|
|
push {r4,lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049CAE
|
|
ldr r4, _08049CC0
|
|
ldr r0, [r4]
|
|
adds r0, 0x41
|
|
ldrb r0, [r0]
|
|
bl sub_8049E9C
|
|
ldr r0, [r4]
|
|
adds r0, 0x8A
|
|
ldrb r0, [r0]
|
|
bl sub_8049E9C
|
|
_08049CAE:
|
|
ldr r0, _08049CC0
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0x7
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049CC0: .4byte 0x03004824
|
|
thumb_func_end sub_8049C8C
|
|
|
|
thumb_func_start sub_8049CC4
|
|
sub_8049CC4: @ 8049CC4
|
|
push {r4,lr}
|
|
ldr r4, _08049CE8
|
|
ldr r0, [r4]
|
|
adds r0, 0x80
|
|
ldrh r1, [r0]
|
|
ldr r0, _08049CEC
|
|
cmp r1, r0
|
|
bne _08049CE0
|
|
bl sub_8049088
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0xE
|
|
strb r1, [r0]
|
|
_08049CE0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049CE8: .4byte 0x03004824
|
|
_08049CEC: .4byte 0x00000505
|
|
thumb_func_end sub_8049CC4
|
|
|
|
thumb_func_start DisplayMessageAndContinueTask
|
|
DisplayMessageAndContinueTask: @ 8049CF0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _08049D40
|
|
ldr r1, [r4]
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0xB4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x78
|
|
bls _08049D36
|
|
adds r0, r1, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0x18
|
|
movs r2, 0xE
|
|
movs r3, 0x1D
|
|
bl AddTextPrinterParametrized
|
|
movs r0, 0x18
|
|
movs r1, 0xE
|
|
movs r2, 0x4
|
|
bl sub_807292C
|
|
ldr r0, [r4]
|
|
adds r0, 0xB4
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7B
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
_08049D36:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049D40: .4byte 0x03004824
|
|
thumb_func_end DisplayMessageAndContinueTask
|
|
|
|
thumb_func_start sub_8049D44
|
|
sub_8049D44: @ 8049D44
|
|
push {lr}
|
|
ldr r0, _08049D90
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049D8A
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0
|
|
bl sub_804A840
|
|
movs r0, 0x1
|
|
bl sub_804A840
|
|
ldr r2, _08049D94
|
|
ldr r0, [r2]
|
|
adds r0, 0x7B
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r3, _08049D98
|
|
ldr r0, [r2]
|
|
adds r0, 0x40
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_08049D8A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049D90: .4byte 0x03001770
|
|
_08049D94: .4byte 0x03004824
|
|
_08049D98: .4byte 0x02020004
|
|
thumb_func_end sub_8049D44
|
|
|
|
thumb_func_start sub_8049D9C
|
|
sub_8049D9C: @ 8049D9C
|
|
push {lr}
|
|
ldr r0, _08049DBC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08049DB8
|
|
bl sub_800832C
|
|
ldr r0, _08049DC0
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
_08049DB8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049DBC: .4byte 0x0202f388
|
|
_08049DC0: .4byte 0x03004824
|
|
thumb_func_end sub_8049D9C
|
|
|
|
thumb_func_start sub_8049DC4
|
|
sub_8049DC4: @ 8049DC4
|
|
push {lr}
|
|
ldr r0, _08049DD8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08049DD4
|
|
ldr r0, _08049DDC
|
|
bl SetMainCallback2
|
|
_08049DD4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049DD8: .4byte 0x03002fa4
|
|
_08049DDC: .4byte sub_805465C
|
|
thumb_func_end sub_8049DC4
|
|
|
|
thumb_func_start sub_8049DE0
|
|
sub_8049DE0: @ 8049DE0
|
|
push {lr}
|
|
ldr r0, _08049DF8
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
bhi _08049E98
|
|
lsls r0, 2
|
|
ldr r1, _08049DFC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08049DF8: .4byte 0x03004824
|
|
_08049DFC: .4byte _08049E00
|
|
.align 2, 0
|
|
_08049E00:
|
|
.4byte _08049E40
|
|
.4byte _08049E46
|
|
.4byte _08049E4C
|
|
.4byte _08049E52
|
|
.4byte _08049E58
|
|
.4byte _08049E98
|
|
.4byte _08049E5E
|
|
.4byte _08049E64
|
|
.4byte _08049E6A
|
|
.4byte _08049E70
|
|
.4byte _08049E76
|
|
.4byte _08049E7C
|
|
.4byte _08049E82
|
|
.4byte _08049E88
|
|
.4byte _08049E8E
|
|
.4byte _08049E94
|
|
_08049E40:
|
|
bl sub_8049680
|
|
b _08049E98
|
|
_08049E46:
|
|
bl sub_8049860
|
|
b _08049E98
|
|
_08049E4C:
|
|
bl sub_804997C
|
|
b _08049E98
|
|
_08049E52:
|
|
bl sub_8049AC0
|
|
b _08049E98
|
|
_08049E58:
|
|
bl sub_8049BC0
|
|
b _08049E98
|
|
_08049E5E:
|
|
bl sub_8049C8C
|
|
b _08049E98
|
|
_08049E64:
|
|
bl sub_8049CC4
|
|
b _08049E98
|
|
_08049E6A:
|
|
bl sub_8049D44
|
|
b _08049E98
|
|
_08049E70:
|
|
bl sub_8048A14
|
|
b _08049E98
|
|
_08049E76:
|
|
bl sub_8048A50
|
|
b _08049E98
|
|
_08049E7C:
|
|
bl sub_8049D9C
|
|
b _08049E98
|
|
_08049E82:
|
|
bl sub_8049DC4
|
|
b _08049E98
|
|
_08049E88:
|
|
bl sub_8048A90
|
|
b _08049E98
|
|
_08049E8E:
|
|
bl DisplayMessageAndContinueTask
|
|
b _08049E98
|
|
_08049E94:
|
|
bl sub_8049954
|
|
_08049E98:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049DE0
|
|
|
|
thumb_func_start sub_8049E9C
|
|
sub_8049E9C: @ 8049E9C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r3, _08049ED0
|
|
ldr r0, [r3]
|
|
adds r0, 0x80
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08049EC8
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x82
|
|
adds r0, r2
|
|
strb r4, [r0]
|
|
_08049EC8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049ED0: .4byte 0x03004824
|
|
thumb_func_end sub_8049E9C
|
|
|
|
thumb_func_start sub_8049ED4
|
|
sub_8049ED4: @ 8049ED4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x74
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, _08049F24
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x82
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x6C]
|
|
cmp r0, 0x5
|
|
bhi _08049EFE
|
|
movs r2, 0
|
|
str r2, [sp, 0x6C]
|
|
_08049EFE:
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x80
|
|
mov r1, r10
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x2
|
|
bne _08049F1A
|
|
b _0804A0AC
|
|
_08049F1A:
|
|
cmp r0, 0x2
|
|
bgt _08049F28
|
|
cmp r0, 0x1
|
|
beq _08049F36
|
|
b _0804A294
|
|
.align 2, 0
|
|
_08049F24: .4byte 0x03004824
|
|
_08049F28:
|
|
cmp r0, 0x3
|
|
bne _08049F2E
|
|
b _0804A0E4
|
|
_08049F2E:
|
|
cmp r0, 0x4
|
|
bne _08049F34
|
|
b _0804A244
|
|
_08049F34:
|
|
b _0804A294
|
|
_08049F36:
|
|
movs r4, 0
|
|
adds r0, r5, 0
|
|
adds r0, 0x42
|
|
add r0, r10
|
|
ldr r7, _0804A094
|
|
ldr r2, [sp, 0x6C]
|
|
lsls r2, 1
|
|
mov r9, r2
|
|
ldr r3, _0804A098
|
|
mov r12, r3
|
|
mov r5, r10
|
|
lsls r5, 4
|
|
str r5, [sp, 0x70]
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08049F8E
|
|
adds r6, r7, 0
|
|
ldr r2, _0804A09C
|
|
ldr r0, [sp, 0x6C]
|
|
add r0, r9
|
|
lsls r3, r0, 1
|
|
movs r5, 0x4
|
|
_08049F62:
|
|
ldr r0, [r2]
|
|
adds r1, r4, r3
|
|
adds r0, 0x34
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r5
|
|
strb r1, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, [r2]
|
|
adds r0, 0x42
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08049F62
|
|
_08049F8E:
|
|
ldr r1, _0804A09C
|
|
ldr r0, [r1]
|
|
ldr r5, [sp, 0x6C]
|
|
add r5, r9
|
|
lsls r3, r5, 1
|
|
mov r2, r8
|
|
adds r6, r2, r3
|
|
adds r0, 0x34
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _0804A09C
|
|
ldr r4, [r0]
|
|
adds r4, 0x34
|
|
adds r4, r6
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x14
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
lsls r5, 2
|
|
mov r1, r12
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r3, 0x1
|
|
lsls r3, 1
|
|
add r3, r12
|
|
ldrb r1, [r3]
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r2, 0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
mov r0, r12
|
|
adds r0, 0x1
|
|
adds r5, r0
|
|
ldrb r0, [r5]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x36]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r1, _0804A0A0
|
|
bl oamt_set_x3A_32
|
|
ldr r2, _0804A09C
|
|
ldr r1, [r2]
|
|
adds r1, 0x80
|
|
add r1, r10
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x34
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
bl sub_8078A34
|
|
bl sub_8072DEC
|
|
ldr r3, _0804A09C
|
|
ldr r0, [r3]
|
|
adds r0, 0x4
|
|
ldr r1, _0804A0A4
|
|
mov r5, r9
|
|
adds r2, r5, r1
|
|
ldrb r2, [r2]
|
|
adds r1, 0x1
|
|
add r1, r9
|
|
ldrb r1, [r1]
|
|
str r1, [sp]
|
|
movs r1, 0x13
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl FillWindowRect_DefaultPalette
|
|
ldr r1, _0804A09C
|
|
ldr r0, [r1]
|
|
adds r0, 0xC8
|
|
ldr r2, [sp, 0x70]
|
|
mov r3, r10
|
|
subs r1, r2, r3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, _0804A0A8
|
|
movs r2, 0xF
|
|
str r2, [sp]
|
|
movs r2, 0x11
|
|
str r2, [sp, 0x4]
|
|
movs r5, 0
|
|
str r5, [sp, 0x8]
|
|
movs r2, 0
|
|
bl sub_804A96C
|
|
ldr r0, [sp, 0x6C]
|
|
cmp r0, 0
|
|
beq _0804A08C
|
|
b _0804A294
|
|
_0804A08C:
|
|
bl sub_804A80C
|
|
b _0804A294
|
|
.align 2, 0
|
|
_0804A094: .4byte 0x02020004
|
|
_0804A098: .4byte gTradeMonSpriteCoords
|
|
_0804A09C: .4byte 0x03004824
|
|
_0804A0A0: .4byte sub_809D62C
|
|
_0804A0A4: .4byte gUnknown_0820C330
|
|
_0804A0A8: .4byte gTradePartyBoxTilemap
|
|
_0804A0AC:
|
|
ldr r2, _0804A0DC
|
|
ldr r1, [sp, 0x6C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
add r0, r8
|
|
adds r1, r5, 0
|
|
adds r1, 0x34
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0804A0E0
|
|
cmp r1, r0
|
|
beq _0804A0D4
|
|
b _0804A294
|
|
_0804A0D4:
|
|
movs r0, 0x3
|
|
strb r0, [r3]
|
|
b _0804A294
|
|
.align 2, 0
|
|
_0804A0DC: .4byte 0x02020004
|
|
_0804A0E0: .4byte sub_809D62C
|
|
_0804A0E4:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC8
|
|
ldr r2, [sp, 0x6C]
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, _0804A228
|
|
movs r2, 0xF
|
|
str r2, [sp]
|
|
movs r7, 0x11
|
|
str r7, [sp, 0x4]
|
|
movs r5, 0
|
|
str r5, [sp, 0x8]
|
|
movs r2, 0
|
|
bl sub_804A96C
|
|
ldr r0, _0804A22C
|
|
ldr r3, [r0]
|
|
ldr r1, [sp, 0x6C]
|
|
lsls r6, r1, 1
|
|
adds r1, r6
|
|
mov r9, r1
|
|
lsls r1, 1
|
|
mov r2, r8
|
|
adds r0, r2, r1
|
|
adds r3, 0x34
|
|
adds r3, r0
|
|
ldrb r0, [r3]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r5, _0804A230
|
|
adds r2, r5
|
|
ldr r4, _0804A234
|
|
mov r0, r9
|
|
lsls r5, r0, 2
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
adds r1, 0x1
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r2, 0x20]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _0804A230
|
|
adds r1, r2
|
|
adds r4, 0x1
|
|
adds r5, r4
|
|
ldrb r0, [r5]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r5, 0
|
|
strh r5, [r0, 0x24]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r5, [r0, 0x26]
|
|
mov r0, sp
|
|
adds r0, 0x12
|
|
ldr r1, [sp, 0x6C]
|
|
mov r2, r8
|
|
bl sub_804A2B4
|
|
add r1, sp, 0xC
|
|
movs r3, 0xFC
|
|
strb r3, [r1]
|
|
adds r2, r1, 0
|
|
movs r1, 0x6
|
|
strb r1, [r2, 0x1]
|
|
movs r1, 0x4
|
|
strb r1, [r2, 0x2]
|
|
adds r1, r2, 0
|
|
strb r3, [r1, 0x3]
|
|
strb r7, [r1, 0x4]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x40
|
|
subs r1, r0
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
strb r1, [r2, 0x5]
|
|
ldr r0, _0804A22C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x7A
|
|
ldrb r2, [r1]
|
|
mov r1, r9
|
|
lsls r1, 6
|
|
mov r9, r1
|
|
add r2, r9
|
|
ldr r4, _0804A238
|
|
ldr r3, [sp, 0x6C]
|
|
lsls r1, r3, 2
|
|
adds r3, r1, r4
|
|
ldrb r3, [r3]
|
|
ldr r5, _0804A23C
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
str r1, [sp]
|
|
add r1, sp, 0xC
|
|
bl sub_8003460
|
|
add r7, sp, 0x34
|
|
adds r0, r7, 0
|
|
ldr r1, [sp, 0x6C]
|
|
mov r2, r8
|
|
bl sub_804A33C
|
|
ldr r0, _0804A22C
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _0804A240
|
|
adds r2, 0x7A
|
|
ldrb r2, [r2]
|
|
add r2, r9
|
|
adds r2, 0x20
|
|
adds r6, 0x1
|
|
lsls r6, 1
|
|
adds r4, r6, r4
|
|
ldrb r5, [r4]
|
|
ldr r3, _0804A23C
|
|
adds r6, r3
|
|
ldrb r4, [r6]
|
|
adds r4, 0x1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp]
|
|
adds r3, r5, 0
|
|
bl sub_8003460
|
|
ldr r0, _0804A22C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x7A
|
|
ldrb r2, [r1]
|
|
add r2, r9
|
|
adds r2, 0x26
|
|
str r4, [sp]
|
|
adds r1, r7, 0
|
|
adds r3, r5, 0
|
|
bl sub_8003460
|
|
ldr r2, _0804A22C
|
|
ldr r1, [r2]
|
|
b _0804A28A
|
|
.align 2, 0
|
|
_0804A228: .4byte gTradeMovesBoxTilemap
|
|
_0804A22C: .4byte 0x03004824
|
|
_0804A230: .4byte 0x02020004
|
|
_0804A234: .4byte gTradeMonSpriteCoords
|
|
_0804A238: .4byte gUnknown_0820C334
|
|
_0804A23C: .4byte gUnknown_0820C334 + 0x1
|
|
_0804A240: .4byte gUnknown_0842C7CA
|
|
_0804A244:
|
|
ldr r0, _0804A2A4
|
|
ldr r0, [r0, 0x14]
|
|
adds r1, r5, 0
|
|
adds r1, 0x7E
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r3, _0804A2A8
|
|
adds r1, r3
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
ldr r0, _0804A2AC
|
|
mov r5, r10
|
|
lsls r1, r5, 1
|
|
adds r4, r1, r0
|
|
ldrb r2, [r4]
|
|
adds r2, 0x4
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r3, [r1]
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r0, [r1]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r10
|
|
mov r1, r8
|
|
bl sub_804A51C
|
|
ldr r0, _0804A2B0
|
|
ldr r1, [r0]
|
|
_0804A28A:
|
|
adds r1, 0x80
|
|
add r1, r10
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804A294:
|
|
add sp, 0x74
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A2A4: .4byte gUnknown_0820C14C
|
|
_0804A2A8: .4byte 0x06010000
|
|
_0804A2AC: .4byte gUnknown_0820C3D1
|
|
_0804A2B0: .4byte 0x03004824
|
|
thumb_func_end sub_8049ED4
|
|
|
|
thumb_func_start sub_804A2B4
|
|
sub_804A2B4: @ 804A2B4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r1, 0
|
|
bne _0804A2F4
|
|
movs r0, 0x64
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
ldr r0, _0804A2F0
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
b _0804A31E
|
|
.align 2, 0
|
|
_0804A2F0: .4byte 0x03004360
|
|
_0804A2F4:
|
|
movs r0, 0x64
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
ldr r0, _0804A334
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
_0804A31E:
|
|
ldr r0, _0804A338
|
|
adds r1, r5, 0
|
|
bl GetStringWidthGivenWindowConfig
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804A334: .4byte 0x030045c0
|
|
_0804A338: .4byte gWindowConfig_81E7294
|
|
thumb_func_end sub_804A2B4
|
|
|
|
thumb_func_start sub_804A33C
|
|
sub_804A33C: @ 804A33C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _0804A384
|
|
ldr r1, [r0]
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
adds r1, 0x5D
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0804A3F4
|
|
movs r4, 0
|
|
movs r0, 0x64
|
|
adds r5, r2, 0
|
|
muls r5, r0
|
|
ldr r0, _0804A388
|
|
mov r9, r0
|
|
ldr r2, _0804A38C
|
|
mov r8, r2
|
|
_0804A376:
|
|
cmp r7, 0
|
|
bne _0804A390
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
mov r2, r9
|
|
b _0804A396
|
|
.align 2, 0
|
|
_0804A384: .4byte 0x03004824
|
|
_0804A388: .4byte 0x03004360
|
|
_0804A38C: .4byte 0x030045c0
|
|
_0804A390:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
mov r2, r8
|
|
_0804A396:
|
|
adds r0, r5, r2
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
lsls r1, r4, 1
|
|
add r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _0804A376
|
|
ldr r1, _0804A3E8
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
movs r4, 0
|
|
_0804A3B8:
|
|
lsls r0, r4, 1
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0804A3D4
|
|
adds r1, r0, 0
|
|
movs r0, 0xD
|
|
muls r1, r0
|
|
ldr r0, _0804A3EC
|
|
adds r1, r0
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
_0804A3D4:
|
|
adds r0, r6, 0
|
|
ldr r1, _0804A3F0
|
|
bl StringAppend
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _0804A3B8
|
|
b _0804A404
|
|
.align 2, 0
|
|
_0804A3E8: .4byte gUnknown_0820C33C
|
|
_0804A3EC: .4byte gMoveNames
|
|
_0804A3F0: .4byte gUnknown_0842C7CB
|
|
_0804A3F4:
|
|
ldr r1, _0804A414
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
ldr r1, _0804A418
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
_0804A404:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A414: .4byte gUnknown_0820C33C
|
|
_0804A418: .4byte gUnknown_0842C7D6
|
|
thumb_func_end sub_804A33C
|
|
|
|
thumb_func_start sub_804A41C
|
|
sub_804A41C: @ 804A41C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x44
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
add r3, sp, 0x1C
|
|
movs r2, 0
|
|
movs r1, 0xFC
|
|
strb r1, [r3]
|
|
movs r0, 0x6
|
|
strb r0, [r3, 0x1]
|
|
movs r0, 0x4
|
|
strb r0, [r3, 0x2]
|
|
strb r1, [r3, 0x3]
|
|
movs r0, 0x11
|
|
strb r0, [r3, 0x4]
|
|
strb r2, [r3, 0x5]
|
|
movs r6, 0
|
|
ldr r1, _0804A470
|
|
ldr r0, [r1]
|
|
adds r0, 0x42
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _0804A504
|
|
mov r8, r3
|
|
adds r7, r1, 0
|
|
ldr r0, _0804A474
|
|
mov r9, r0
|
|
movs r4, 0x1
|
|
add r4, r9
|
|
mov r10, r4
|
|
_0804A462:
|
|
cmp r5, 0
|
|
bne _0804A47C
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _0804A478
|
|
b _0804A484
|
|
.align 2, 0
|
|
_0804A470: .4byte 0x03004824
|
|
_0804A474: .4byte gTradeMonSpriteCoords
|
|
_0804A478: .4byte 0x03004360
|
|
_0804A47C:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _0804A514
|
|
_0804A484:
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
add r2, sp, 0x4
|
|
bl PokemonGetField
|
|
mov r0, sp
|
|
adds r0, 0x22
|
|
add r1, sp, 0x4
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
mov r1, sp
|
|
adds r1, 0x22
|
|
ldr r0, _0804A518
|
|
bl GetStringWidthGivenWindowConfig
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x32
|
|
subs r1, r0
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
mov r0, r8
|
|
strb r1, [r0, 0x5]
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x7A
|
|
lsls r2, r5, 5
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
ldrb r1, [r1]
|
|
adds r2, r1
|
|
movs r1, 0x16
|
|
muls r1, r6
|
|
adds r2, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 1
|
|
adds r1, r6, r1
|
|
lsls r1, 1
|
|
mov r4, r9
|
|
adds r3, r1, r4
|
|
ldrb r3, [r3]
|
|
add r1, r10
|
|
ldrb r1, [r1]
|
|
str r1, [sp]
|
|
mov r1, r8
|
|
bl sub_8003460
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, [r7]
|
|
adds r0, 0x42
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0804A462
|
|
_0804A504:
|
|
add sp, 0x44
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A514: .4byte 0x030045c0
|
|
_0804A518: .4byte gWindowConfig_81E7294
|
|
thumb_func_end sub_804A41C
|
|
|
|
thumb_func_start sub_804A51C
|
|
sub_804A51C: @ 804A51C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
ldr r4, [sp, 0x48]
|
|
ldr r5, [sp, 0x4C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x24]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _0804A59C
|
|
ldr r0, [r0]
|
|
adds r0, 0xC8
|
|
ldr r3, _0804A5A0
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
movs r1, 0x3
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_804A96C
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _0804A5A8
|
|
movs r0, 0x64
|
|
mov r4, r9
|
|
muls r4, r0
|
|
ldr r0, _0804A5A4
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
add r2, sp, 0xC
|
|
bl PokemonGetField
|
|
b _0804A5D4
|
|
.align 2, 0
|
|
_0804A59C: .4byte 0x03004824
|
|
_0804A5A0: .4byte gTradeMonBoxTilemap
|
|
_0804A5A4: .4byte 0x03004360
|
|
_0804A5A8:
|
|
movs r0, 0x64
|
|
mov r4, r9
|
|
muls r4, r0
|
|
ldr r0, _0804A65C
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
add r2, sp, 0xC
|
|
bl PokemonGetField
|
|
_0804A5D4:
|
|
ldr r1, _0804A660
|
|
ldr r5, [r1]
|
|
mov r3, r8
|
|
lsls r0, r3, 1
|
|
add r0, r8
|
|
lsls r0, 1
|
|
add r0, r9
|
|
adds r1, r5, 0
|
|
adds r1, 0x5D
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0804A690
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, [sp, 0x24]
|
|
lsls r2, r0, 5
|
|
cmp r4, 0
|
|
beq _0804A614
|
|
mov r1, r10
|
|
adds r0, r1, r2
|
|
lsls r0, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0xDA
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x60
|
|
strh r0, [r1]
|
|
_0804A614:
|
|
ldr r3, _0804A660
|
|
ldr r4, [r3]
|
|
mov r0, r10
|
|
adds r5, r0, r2
|
|
adds r0, r5, 0x1
|
|
lsls r0, 1
|
|
adds r4, 0xDA
|
|
adds r4, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x70
|
|
strh r0, [r4]
|
|
cmp r7, 0
|
|
bne _0804A664
|
|
add r0, sp, 0xC
|
|
movs r1, 0
|
|
bl sub_8042548
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804A6CC
|
|
ldr r3, _0804A660
|
|
ldr r1, [r3]
|
|
adds r0, r5, 0
|
|
subs r0, 0x1F
|
|
lsls r0, 1
|
|
adds r1, 0xDA
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
b _0804A6CA
|
|
.align 2, 0
|
|
_0804A65C: .4byte 0x030045c0
|
|
_0804A660: .4byte 0x03004824
|
|
_0804A664:
|
|
cmp r7, 0xFE
|
|
bne _0804A6CC
|
|
add r0, sp, 0xC
|
|
movs r1, 0xFE
|
|
bl sub_8042548
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804A6CC
|
|
ldr r0, _0804A68C
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
subs r0, 0x1F
|
|
lsls r0, 1
|
|
adds r1, 0xDA
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x2
|
|
b _0804A6CA
|
|
.align 2, 0
|
|
_0804A68C: .4byte 0x03004824
|
|
_0804A690:
|
|
ldr r1, [sp, 0x24]
|
|
lsls r0, r1, 5
|
|
mov r1, r10
|
|
adds r3, r1, r0
|
|
adds r1, r3, 0
|
|
subs r1, 0x20
|
|
lsls r1, 1
|
|
adds r2, r5, 0
|
|
adds r2, 0xDA
|
|
adds r1, r2, r1
|
|
adds r0, r3, 0
|
|
subs r0, 0x21
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, r3, 0
|
|
subs r1, 0x1F
|
|
lsls r1, 1
|
|
adds r1, r2, r1
|
|
adds r0, r3, 0
|
|
subs r0, 0x24
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
ldrh r2, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r0, r3, 0
|
|
orrs r0, r2
|
|
_0804A6CA:
|
|
strh r0, [r1]
|
|
_0804A6CC:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A51C
|
|
|
|
thumb_func_start sub_804A6DC
|
|
sub_804A6DC: @ 804A6DC
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r7, 0
|
|
ldr r0, _0804A734
|
|
ldr r0, [r0]
|
|
adds r0, 0x42
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _0804A72C
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
ldr r1, _0804A738
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
ldr r1, _0804A73C
|
|
adds r4, r0, r1
|
|
_0804A702:
|
|
lsls r1, r7, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r5]
|
|
ldrb r3, [r5, 0x1]
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r0, [r4, 0x1]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
bl sub_804A51C
|
|
adds r5, 0x2
|
|
adds r4, 0x2
|
|
adds r7, 0x1
|
|
ldr r0, _0804A734
|
|
ldr r0, [r0]
|
|
adds r0, 0x42
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0804A702
|
|
_0804A72C:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A734: .4byte 0x03004824
|
|
_0804A738: .4byte gTradeLevelDisplayCoords
|
|
_0804A73C: .4byte gTradeMonBoxCoords
|
|
thumb_func_end sub_804A6DC
|
|
|
|
thumb_func_start sub_804A740
|
|
sub_804A740: @ 804A740
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
movs r7, 0
|
|
ldr r3, _0804A800
|
|
ldr r0, [r3]
|
|
adds r0, 0x42
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _0804A7F2
|
|
ldr r6, _0804A804
|
|
mov r9, r3
|
|
mov r1, r12
|
|
lsls r0, r1, 1
|
|
add r0, r12
|
|
lsls r2, r0, 1
|
|
mov r10, r2
|
|
ldr r1, _0804A808
|
|
movs r2, 0
|
|
mov r8, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
_0804A778:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
mov r2, r10
|
|
adds r4, r7, r2
|
|
adds r0, 0x34
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
ldr r3, [r0]
|
|
adds r2, r3, 0
|
|
adds r2, 0x34
|
|
adds r2, r4
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r5]
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r1, 0x20]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r5, 0x1]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r2, r8
|
|
strh r2, [r0, 0x26]
|
|
adds r5, 0x2
|
|
adds r7, 0x1
|
|
adds r3, 0x42
|
|
add r3, r12
|
|
ldrb r3, [r3]
|
|
cmp r7, r3
|
|
blt _0804A778
|
|
_0804A7F2:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A800: .4byte 0x03004824
|
|
_0804A804: .4byte 0x02020004
|
|
_0804A808: .4byte gTradeMonSpriteCoords
|
|
thumb_func_end sub_804A740
|
|
|
|
thumb_func_start sub_804A80C
|
|
sub_804A80C: @ 804A80C
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, _0804A838
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
ldr r1, _0804A83C
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r1, [r1, 0x3]
|
|
str r1, [sp]
|
|
movs r1, 0x13
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl FillWindowRect_DefaultPalette
|
|
movs r0, 0x1
|
|
bl sub_804A41C
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A838: .4byte 0x03004824
|
|
_0804A83C: .4byte gUnknown_0820C330
|
|
thumb_func_end sub_804A80C
|
|
|
|
thumb_func_start sub_804A840
|
|
sub_804A840: @ 804A840
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0804A8A8
|
|
ldr r4, _0804A89C
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
ldr r1, _0804A8A0
|
|
ldrb r2, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
str r1, [sp]
|
|
movs r1, 0x13
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl FillWindowRect_DefaultPalette
|
|
ldr r0, [r4]
|
|
adds r0, 0xC8
|
|
ldr r3, _0804A8A4
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
movs r1, 0x11
|
|
str r1, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_804A96C
|
|
movs r0, 0
|
|
bl sub_804A6DC
|
|
movs r0, 0
|
|
bl sub_804A41C
|
|
movs r0, 0
|
|
bl sub_804A740
|
|
ldr r0, [r4]
|
|
adds r0, 0xC8
|
|
bl sub_804A938
|
|
b _0804A8FA
|
|
.align 2, 0
|
|
_0804A89C: .4byte 0x03004824
|
|
_0804A8A0: .4byte gUnknown_0820C330
|
|
_0804A8A4: .4byte gTradePartyBoxTilemap
|
|
_0804A8A8:
|
|
bl sub_8072DEC
|
|
ldr r4, _0804A924
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
ldr r1, _0804A928
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r1, [r1, 0x3]
|
|
str r1, [sp]
|
|
movs r1, 0x13
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl FillWindowRect_DefaultPalette
|
|
ldr r0, [r4]
|
|
adds r0, 0xC8
|
|
ldr r3, _0804A92C
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
movs r1, 0x11
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0xF
|
|
movs r2, 0
|
|
bl sub_804A96C
|
|
movs r0, 0x1
|
|
bl sub_804A6DC
|
|
movs r0, 0x1
|
|
bl sub_804A41C
|
|
movs r0, 0x1
|
|
bl sub_804A740
|
|
ldr r0, [r4]
|
|
adds r0, 0xC8
|
|
bl sub_804A938
|
|
_0804A8FA:
|
|
ldr r0, _0804A930
|
|
ldr r0, [r0, 0x4]
|
|
ldr r4, _0804A924
|
|
ldr r1, [r4]
|
|
adds r1, 0x7E
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, _0804A934
|
|
adds r1, r2
|
|
movs r2, 0x14
|
|
bl sub_804ACD8
|
|
ldr r0, [r4]
|
|
adds r0, 0x80
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A924: .4byte 0x03004824
|
|
_0804A928: .4byte gUnknown_0820C330
|
|
_0804A92C: .4byte gTradePartyBoxTilemap
|
|
_0804A930: .4byte gUnknown_0820C14C
|
|
_0804A934: .4byte 0x06010000
|
|
thumb_func_end sub_804A840
|
|
|
|
thumb_func_start sub_804A938
|
|
sub_804A938: @ 804A938
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x10]
|
|
bx lr
|
|
thumb_func_end sub_804A938
|
|
|
|
thumb_func_start sub_804A940
|
|
sub_804A940: @ 804A940
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _0804A95C
|
|
adds r0, r4, 0
|
|
adds r0, 0x12
|
|
ldr r1, [r4, 0x8]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
bl CpuSet
|
|
movs r0, 0
|
|
strb r0, [r4, 0x10]
|
|
_0804A95C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A940
|
|
|
|
thumb_func_start sub_804A964
|
|
sub_804A964: @ 804A964
|
|
movs r2, 0
|
|
strb r2, [r0, 0x10]
|
|
str r1, [r0, 0x8]
|
|
bx lr
|
|
thumb_func_end sub_804A964
|
|
|
|
thumb_func_start sub_804A96C
|
|
sub_804A96C: @ 804A96C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r0, [sp]
|
|
mov r10, r3
|
|
ldr r0, [sp, 0x24]
|
|
ldr r3, [sp, 0x28]
|
|
ldr r4, [sp, 0x2C]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r12, r3
|
|
lsls r4, 16
|
|
lsrs r7, r4, 16
|
|
movs r2, 0
|
|
cmp r2, r12
|
|
bge _0804A9DE
|
|
ldr r0, [sp]
|
|
adds r0, 0x12
|
|
mov r9, r0
|
|
lsls r0, r6, 5
|
|
adds r0, r1
|
|
mov r8, r0
|
|
_0804A9AA:
|
|
movs r4, 0
|
|
adds r6, r2, 0x1
|
|
cmp r4, r5
|
|
bge _0804A9D8
|
|
lsls r1, r2, 5
|
|
add r1, r8
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
lsls r0, 1
|
|
mov r2, r10
|
|
adds r3, r0, r2
|
|
lsls r1, 1
|
|
mov r0, r9
|
|
adds r2, r1, r0
|
|
_0804A9C6:
|
|
ldrh r1, [r3]
|
|
adds r0, r7, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _0804A9C6
|
|
_0804A9D8:
|
|
adds r2, r6, 0
|
|
cmp r2, r12
|
|
blt _0804A9AA
|
|
_0804A9DE:
|
|
movs r0, 0x1
|
|
ldr r1, [sp]
|
|
strb r0, [r1, 0x10]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A96C
|
|
|
|
thumb_func_start sub_804A9F4
|
|
sub_804A9F4: @ 804A9F4
|
|
push {lr}
|
|
bl sub_8071EF4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A9F4
|
|
|
|
thumb_func_start sub_804AA00
|
|
sub_804AA00: @ 804AA00
|
|
push {lr}
|
|
bl sub_8071EF4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804AA00
|
|
|
|
thumb_func_start sub_804AA0C
|
|
sub_804AA0C: @ 804AA0C
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
ldr r0, _0804AA7C
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
ldr r2, _0804AA80
|
|
lsrs r4, 22
|
|
adds r1, r4, r2
|
|
ldrb r6, [r1]
|
|
adds r1, r2, 0x1
|
|
adds r1, r4, r1
|
|
ldrb r5, [r1]
|
|
adds r1, r2, 0x2
|
|
adds r1, r4, r1
|
|
ldrb r3, [r1]
|
|
adds r2, 0x3
|
|
adds r2, r4, r2
|
|
ldrb r1, [r2]
|
|
str r1, [sp]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl AddTextPrinterParametrized
|
|
mov r1, r8
|
|
ldr r3, [r1]
|
|
adds r0, r3, 0x4
|
|
ldr r1, _0804AA84
|
|
adds r4, r1
|
|
ldr r1, [r4]
|
|
adds r3, 0x7A
|
|
movs r4, 0xC0
|
|
lsls r4, 1
|
|
adds r2, r4, 0
|
|
ldrb r3, [r3]
|
|
adds r2, r3
|
|
adds r6, 0x1
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
adds r5, 0x1
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r5, [sp]
|
|
adds r3, r6, 0
|
|
bl sub_8003460
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AA7C: .4byte 0x03004824
|
|
_0804AA80: .4byte gTradeMessageWindowRects
|
|
_0804AA84: .4byte gUnknown_0820C2F0
|
|
thumb_func_end sub_804AA0C
|
|
|
|
thumb_func_start sub_804AA88
|
|
sub_804AA88: @ 804AA88
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r3, 0
|
|
ldr r5, _0804AAD0
|
|
ldr r0, _0804AAD4
|
|
mov r8, r0
|
|
movs r4, 0
|
|
ldr r2, _0804AAD8
|
|
mov r12, r2
|
|
movs r7, 0x8E
|
|
lsls r7, 4
|
|
movs r6, 0xFF
|
|
_0804AAA2:
|
|
ldr r0, [r5]
|
|
lsls r2, r3, 3
|
|
adds r0, r2
|
|
add r0, r8
|
|
strb r4, [r0]
|
|
ldr r1, [r5]
|
|
adds r1, r2
|
|
mov r2, r12
|
|
adds r0, r1, r2
|
|
strh r4, [r0]
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0804AAA2
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AAD0: .4byte 0x03004824
|
|
_0804AAD4: .4byte 0x000008dc
|
|
_0804AAD8: .4byte 0x000008de
|
|
thumb_func_end sub_804AA88
|
|
|
|
thumb_func_start sub_804AADC
|
|
sub_804AADC: @ 804AADC
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
movs r3, 0
|
|
ldr r4, _0804AB18
|
|
mov r12, r4
|
|
ldr r7, _0804AB1C
|
|
_0804AAEE:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r3, 3
|
|
adds r2, r0, r1
|
|
adds r0, r2, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804AB24
|
|
ldr r3, _0804AB20
|
|
adds r0, r2, r3
|
|
strh r5, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strb r6, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
ldr r1, _0804AB1C
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0804AB2A
|
|
.align 2, 0
|
|
_0804AB18: .4byte 0x03004824
|
|
_0804AB1C: .4byte 0x000008dc
|
|
_0804AB20: .4byte 0x000008de
|
|
_0804AB24:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0804AAEE
|
|
_0804AB2A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804AADC
|
|
|
|
thumb_func_start sub_804AB30
|
|
sub_804AB30: @ 804AB30
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r3, _0804AB58
|
|
_0804AB36:
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 3
|
|
adds r2, r0, r1
|
|
ldr r5, _0804AB5C
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0804ABE2
|
|
ldr r0, _0804AB60
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0804AB64
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
b _0804ABE2
|
|
.align 2, 0
|
|
_0804AB58: .4byte 0x03004824
|
|
_0804AB5C: .4byte 0x000008dc
|
|
_0804AB60: .4byte 0x000008de
|
|
_0804AB64:
|
|
movs r1, 0x8E
|
|
lsls r1, 4
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _0804ABD2
|
|
lsls r0, 2
|
|
ldr r1, _0804AB7C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804AB7C: .4byte _0804AB80
|
|
.align 2, 0
|
|
_0804AB80:
|
|
.4byte _0804AB98
|
|
.4byte _0804ABB4
|
|
.4byte _0804ABBC
|
|
.4byte _0804ABC4
|
|
.4byte _0804ABC4
|
|
.4byte _0804ABCC
|
|
_0804AB98:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0804ABB0
|
|
ldr r1, [r1]
|
|
adds r1, 0x8C
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
b _0804ABD2
|
|
.align 2, 0
|
|
_0804ABB0: .4byte 0x03004824
|
|
_0804ABB4:
|
|
movs r0, 0
|
|
bl sub_804AA0C
|
|
b _0804ABD2
|
|
_0804ABBC:
|
|
movs r0, 0x2
|
|
bl sub_804AA0C
|
|
b _0804ABD2
|
|
_0804ABC4:
|
|
movs r0, 0x3
|
|
bl sub_804AA0C
|
|
b _0804ABD2
|
|
_0804ABCC:
|
|
movs r0, 0x3
|
|
bl sub_804AA0C
|
|
_0804ABD2:
|
|
ldr r0, _0804ABF0
|
|
ldr r1, [r0]
|
|
adds r1, r5
|
|
ldr r2, _0804ABF4
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
adds r3, r0, 0
|
|
_0804ABE2:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804AB36
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ABF0: .4byte 0x03004824
|
|
_0804ABF4: .4byte 0x000008dc
|
|
thumb_func_end sub_804AB30
|
|
|
|
thumb_func_start sub_804ABF8
|
|
sub_804ABF8: @ 804ABF8
|
|
push {r4,lr}
|
|
ldr r0, _0804AC14
|
|
ldr r1, [r0]
|
|
adds r1, 0xB4
|
|
ldrb r1, [r1]
|
|
subs r1, 0x8
|
|
adds r4, r0, 0
|
|
cmp r1, 0x8
|
|
bhi _0804ACB0
|
|
lsls r0, r1, 2
|
|
ldr r1, _0804AC18
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804AC14: .4byte 0x03004824
|
|
_0804AC18: .4byte _0804AC1C
|
|
.align 2, 0
|
|
_0804AC1C:
|
|
.4byte _0804AC40
|
|
.4byte _0804ACB0
|
|
.4byte _0804ACB0
|
|
.4byte _0804ACB0
|
|
.4byte _0804ACB0
|
|
.4byte _0804AC60
|
|
.4byte _0804AC74
|
|
.4byte _0804AC88
|
|
.4byte _0804AC9A
|
|
_0804AC40:
|
|
ldr r0, [r4]
|
|
adds r0, 0xB4
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
ldr r1, _0804AC5C
|
|
adds r0, r1
|
|
bl LoadSpriteSheet
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0x7E
|
|
strh r0, [r2]
|
|
b _0804ACC2
|
|
.align 2, 0
|
|
_0804AC5C: .4byte gUnknown_0820C07C
|
|
_0804AC60:
|
|
ldr r0, _0804AC6C
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804AC70
|
|
ldr r1, [r0]
|
|
b _0804ACC2
|
|
.align 2, 0
|
|
_0804AC6C: .4byte gUnknown_0820C0E4
|
|
_0804AC70: .4byte 0x03004824
|
|
_0804AC74:
|
|
ldr r0, _0804AC80
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804AC84
|
|
ldr r1, [r0]
|
|
b _0804ACC2
|
|
.align 2, 0
|
|
_0804AC80: .4byte gUnknown_0820C12C
|
|
_0804AC84: .4byte 0x03004824
|
|
_0804AC88:
|
|
ldr r0, _0804ACA8
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804ACAC
|
|
ldr r1, [r0]
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804AC9A:
|
|
ldr r0, _0804ACAC
|
|
ldr r0, [r0]
|
|
adds r0, 0xB4
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _0804ACCC
|
|
.align 2, 0
|
|
_0804ACA8: .4byte gUnknown_0820C124
|
|
_0804ACAC: .4byte 0x03004824
|
|
_0804ACB0:
|
|
ldr r0, [r4]
|
|
adds r0, 0xB4
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
ldr r1, _0804ACD4
|
|
adds r0, r1
|
|
bl LoadSpriteSheet
|
|
ldr r1, [r4]
|
|
_0804ACC2:
|
|
adds r1, 0xB4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_0804ACCC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804ACD4: .4byte gUnknown_0820C07C
|
|
thumb_func_end sub_804ABF8
|
|
|
|
thumb_func_start sub_804ACD8
|
|
sub_804ACD8: @ 804ACD8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r3, r2, 24
|
|
lsrs r3, 24
|
|
ldr r0, _0804ACF0
|
|
adds r2, r4, 0
|
|
bl sub_804AFB8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ACF0: .4byte gWindowConfig_81E725C
|
|
thumb_func_end sub_804ACD8
|
|
|
|
thumb_func_start sub_804ACF4
|
|
sub_804ACF4: @ 804ACF4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
beq _0804AD0C
|
|
cmp r0, 0x1
|
|
beq _0804ADA0
|
|
b _0804AE2C
|
|
_0804AD0C:
|
|
movs r7, 0
|
|
ldr r1, _0804AD4C
|
|
ldr r0, [r1]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0804AD1C
|
|
b _0804AE2C
|
|
_0804AD1C:
|
|
adds r6, r1, 0
|
|
movs r5, 0
|
|
mov r9, r5
|
|
_0804AD22:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _0804AD50
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0804AD54
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
b _0804AD84
|
|
.align 2, 0
|
|
_0804AD4C: .4byte 0x03004824
|
|
_0804AD50: .4byte 0x03004360
|
|
_0804AD54:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0804AD72
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
b _0804AD84
|
|
_0804AD72:
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
mov r1, r9
|
|
_0804AD84:
|
|
strb r1, [r0]
|
|
ldr r0, _0804AD9C
|
|
adds r5, 0x1
|
|
adds r7, 0x1
|
|
ldr r0, [r0]
|
|
adds r0, 0x42
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0804AD22
|
|
b _0804AE2C
|
|
.align 2, 0
|
|
_0804AD9C: .4byte 0x03004824
|
|
_0804ADA0:
|
|
movs r7, 0
|
|
ldr r1, _0804ADE0
|
|
ldr r0, [r1]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _0804AE2C
|
|
adds r6, r1, 0
|
|
movs r5, 0x6
|
|
movs r2, 0
|
|
mov r9, r2
|
|
_0804ADB6:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _0804ADE4
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0804ADE8
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
b _0804AE18
|
|
.align 2, 0
|
|
_0804ADE0: .4byte 0x03004824
|
|
_0804ADE4: .4byte 0x030045c0
|
|
_0804ADE8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0804AE06
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
b _0804AE18
|
|
_0804AE06:
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5D
|
|
adds r0, r5
|
|
mov r1, r9
|
|
_0804AE18:
|
|
strb r1, [r0]
|
|
ldr r0, _0804AE38
|
|
adds r5, 0x1
|
|
adds r7, 0x1
|
|
ldr r0, [r0]
|
|
adds r0, 0x42
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0804ADB6
|
|
_0804AE2C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AE38: .4byte 0x03004824
|
|
thumb_func_end sub_804ACF4
|
|
|
|
thumb_func_start sub_804AE3C
|
|
sub_804AE3C: @ 804AE3C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0804AE4C
|
|
cmp r0, 0x1
|
|
beq _0804AEAC
|
|
b _0804AF00
|
|
_0804AE4C:
|
|
movs r6, 0
|
|
ldr r1, _0804AEA4
|
|
ldr r0, [r1]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _0804AF00
|
|
adds r7, r1, 0
|
|
_0804AE5C:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _0804AEA8
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8046200
|
|
ldr r1, [r7]
|
|
adds r1, 0x69
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r7]
|
|
adds r0, 0x42
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0804AE5C
|
|
b _0804AF00
|
|
.align 2, 0
|
|
_0804AEA4: .4byte 0x03004824
|
|
_0804AEA8: .4byte 0x03004360
|
|
_0804AEAC:
|
|
movs r6, 0
|
|
ldr r1, _0804AF08
|
|
ldr r0, [r1]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _0804AF00
|
|
adds r7, r1, 0
|
|
_0804AEBC:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, _0804AF0C
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl PokemonGetField
|
|
adds r1, r0, 0
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8046200
|
|
ldr r1, [r7]
|
|
adds r1, 0x6F
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r7]
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0804AEBC
|
|
_0804AF00:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AF08: .4byte 0x03004824
|
|
_0804AF0C: .4byte 0x030045c0
|
|
thumb_func_end sub_804AE3C
|
|
|
|
thumb_func_start sub_804AF10
|
|
sub_804AF10: @ 804AF10
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r5, 0
|
|
_0804AF18:
|
|
movs r4, 0
|
|
ldr r2, _0804AF7C
|
|
ldr r0, [r2]
|
|
adds r0, 0x42
|
|
adds r0, r5
|
|
adds r1, r5, 0x1
|
|
mov r8, r1
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _0804AF6A
|
|
adds r6, r2, 0
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r7, r0, 1
|
|
_0804AF34:
|
|
ldr r2, [r6]
|
|
adds r3, r4, r7
|
|
adds r0, r2, 0
|
|
adds r0, 0x34
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804AF80
|
|
adds r0, r1
|
|
adds r2, 0x69
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
movs r1, 0x4
|
|
subs r1, r2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_809D824
|
|
adds r4, 0x1
|
|
ldr r0, [r6]
|
|
adds r0, 0x42
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804AF34
|
|
_0804AF6A:
|
|
mov r5, r8
|
|
cmp r5, 0x1
|
|
ble _0804AF18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AF7C: .4byte 0x03004824
|
|
_0804AF80: .4byte 0x02020004
|
|
thumb_func_end sub_804AF10
|
|
|
|
thumb_func_start sub_804AF84
|
|
sub_804AF84: @ 804AF84
|
|
push {r4,lr}
|
|
movs r2, 0
|
|
ldr r4, _0804AFB0
|
|
ldr r3, _0804AFB4
|
|
_0804AF8C:
|
|
adds r1, r2, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0804AFA2
|
|
ldr r0, [r3]
|
|
adds r0, 0xB5
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804AFA2
|
|
strb r0, [r1]
|
|
_0804AFA2:
|
|
adds r2, 0x1
|
|
cmp r2, 0xA
|
|
ble _0804AF8C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AFB0: .4byte 0x02028844
|
|
_0804AFB4: .4byte 0x03004824
|
|
thumb_func_end sub_804AF84
|
|
|
|
thumb_func_start sub_804AFB8
|
|
sub_804AFB8: @ 804AFB8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r9, r0
|
|
mov r8, r1
|
|
mov r10, r2
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
adds r0, r6, 0x3
|
|
lsrs r6, r0, 2
|
|
ldr r7, _0804B054
|
|
mov r0, sp
|
|
movs r5, 0
|
|
strh r5, [r0]
|
|
lsls r4, r6, 6
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
orrs r4, r0
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
mov r0, sp
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
mov r2, r9
|
|
ldrb r1, [r2, 0xD]
|
|
lsls r1, 5
|
|
adds r1, r7
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
mov r2, r10
|
|
bl sub_8004E3C
|
|
movs r4, 0
|
|
cmp r4, r6
|
|
bcs _0804B042
|
|
_0804B010:
|
|
lsls r0, r4, 7
|
|
adds r0, r7, r0
|
|
lsls r1, r4, 8
|
|
add r1, r8
|
|
movs r2, 0x40
|
|
bl CpuSet
|
|
lsls r0, r4, 2
|
|
mov r1, r9
|
|
ldrb r1, [r1, 0xD]
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
adds r0, r7, r0
|
|
lsls r1, r4, 3
|
|
adds r1, 0x4
|
|
lsls r1, 5
|
|
add r1, r8
|
|
movs r2, 0x40
|
|
bl CpuSet
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r6
|
|
bcc _0804B010
|
|
_0804B042:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B054: .4byte 0x02039360
|
|
thumb_func_end sub_804AFB8
|
|
|
|
thumb_func_start sub_804B058
|
|
sub_804B058: @ 804B058
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _0804B074
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_0804B074:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B058
|
|
|
|
thumb_func_start sub_804B07C
|
|
sub_804B07C: @ 804B07C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x30
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
bne _0804B0B2
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bne _0804B098
|
|
strh r1, [r2, 0x2E]
|
|
_0804B098:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 1
|
|
ldr r1, _0804B0B8
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
lsls r1, 4
|
|
adds r1, 0x4
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
_0804B0B2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B0B8: .4byte gTradeGlow2PaletteAnimTable
|
|
thumb_func_end sub_804B07C
|
|
|
|
thumb_func_start sub_804B0BC
|
|
sub_804B0BC: @ 804B0BC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
adds r1, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0xA
|
|
bne _0804B0DA
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_0804B0DA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B0BC
|
|
|
|
thumb_func_start sub_804B0E0
|
|
sub_804B0E0: @ 804B0E0
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
adds r1, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0xA
|
|
bne _0804B0FE
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_0804B0FE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B0E0
|
|
|
|
thumb_func_start sub_804B104
|
|
sub_804B104: @ 804B104
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
bne _0804B120
|
|
movs r0, 0xCC
|
|
bl audio_play
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_0804B120:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B104
|
|
|
|
thumb_func_start sub_804B128
|
|
sub_804B128: @ 804B128
|
|
push {r4,r5,lr}
|
|
sub sp, 0x20
|
|
ldr r0, _0804B1B4
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r1, [r0]
|
|
lsls r1, 8
|
|
movs r0, 0x83
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r2, [r0]
|
|
lsls r2, 8
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
add r0, r12
|
|
movs r4, 0
|
|
ldrsh r3, [r0, r4]
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
add r0, r12
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
str r0, [sp]
|
|
movs r4, 0x8C
|
|
lsls r4, 1
|
|
add r4, r12
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
str r0, [sp, 0x4]
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
str r0, [sp, 0xC]
|
|
add r0, sp, 0x10
|
|
bl sub_8040F34
|
|
ldr r1, _0804B1B8
|
|
add r0, sp, 0x10
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
add r0, sp, 0x10
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
add r0, sp, 0x10
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
add r0, sp, 0x10
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [r1]
|
|
adds r1, 0x4
|
|
ldr r0, [sp, 0x1C]
|
|
str r0, [r1]
|
|
add sp, 0x20
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B1B4: .4byte 0x03004828
|
|
_0804B1B8: .4byte REG_BG2PA
|
|
thumb_func_end sub_804B128
|
|
|
|
thumb_func_start sub_804B1BC
|
|
sub_804B1BC: @ 804B1BC
|
|
push {lr}
|
|
ldr r1, _0804B1FC
|
|
ldr r0, _0804B200
|
|
ldr r2, [r0]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
subs r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ldrh r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804B208
|
|
ldr r1, _0804B204
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
subs r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
b _0804B20C
|
|
.align 2, 0
|
|
_0804B1FC: .4byte REG_BG1VOFS
|
|
_0804B200: .4byte 0x03004828
|
|
_0804B204: .4byte REG_BG2VOFS
|
|
_0804B208:
|
|
bl sub_804B128
|
|
_0804B20C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B1BC
|
|
|
|
thumb_func_start sub_804B210
|
|
sub_804B210: @ 804B210
|
|
push {lr}
|
|
bl sub_804B1BC
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B210
|
|
|
|
thumb_func_start sub_804B228
|
|
sub_804B228: @ 804B228
|
|
push {r4,lr}
|
|
ldr r4, _0804B248
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0xB4
|
|
movs r3, 0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
adds r1, 0xB2
|
|
strb r3, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0xB3
|
|
strb r3, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B248: .4byte 0x03004828
|
|
thumb_func_end sub_804B228
|
|
|
|
thumb_func_start sub_804B24C
|
|
sub_804B24C: @ 804B24C
|
|
push {r4,r5,lr}
|
|
ldr r1, _0804B270
|
|
ldr r2, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0xB2
|
|
adds r3, r2, 0
|
|
adds r3, 0xB3
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
ldrb r3, [r3]
|
|
cmp r0, r3
|
|
bne _0804B274
|
|
adds r1, r2, 0
|
|
adds r1, 0xB4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
b _0804B27A
|
|
.align 2, 0
|
|
_0804B270: .4byte 0x03004828
|
|
_0804B274:
|
|
adds r1, r2, 0
|
|
adds r1, 0xB4
|
|
movs r0, 0
|
|
_0804B27A:
|
|
strh r0, [r1]
|
|
adds r4, r5, 0
|
|
ldr r3, [r4]
|
|
adds r2, r3, 0
|
|
adds r2, 0xB4
|
|
ldrh r0, [r2]
|
|
cmp r0, 0xB4
|
|
bls _0804B29C
|
|
movs r1, 0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
adds r0, r3, 0
|
|
adds r0, 0xB3
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xB2
|
|
strb r1, [r0]
|
|
_0804B29C:
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0xB2
|
|
ldrb r1, [r1]
|
|
adds r0, 0xB3
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B24C
|
|
|
|
thumb_func_start sub_804B2B0
|
|
sub_804B2B0: @ 804B2B0
|
|
push {lr}
|
|
ldr r0, _0804B2C0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804B2C4
|
|
movs r0, 0
|
|
b _0804B2CC
|
|
.align 2, 0
|
|
_0804B2C0: .4byte 0x03002fa4
|
|
_0804B2C4:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0804B2CC:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804B2B0
|
|
|
|
thumb_func_start sub_804B2D0
|
|
sub_804B2D0: @ 804B2D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r4, 0
|
|
mov r10, r4
|
|
cmp r7, 0
|
|
bne _0804B2FC
|
|
ldr r0, _0804B324
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _0804B328
|
|
adds r1, r0
|
|
mov r10, r1
|
|
movs r4, 0x1
|
|
_0804B2FC:
|
|
cmp r7, 0x1
|
|
bne _0804B31A
|
|
ldr r0, _0804B324
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, _0804B32C
|
|
adds r1, r0
|
|
mov r10, r1
|
|
movs r4, 0x3
|
|
_0804B31A:
|
|
cmp r5, 0
|
|
beq _0804B330
|
|
cmp r5, 0x1
|
|
beq _0804B3A4
|
|
b _0804B3FA
|
|
.align 2, 0
|
|
_0804B324: .4byte 0x020297d8
|
|
_0804B328: .4byte 0x03004360
|
|
_0804B32C: .4byte 0x030045c0
|
|
_0804B330:
|
|
mov r0, r10
|
|
movs r1, 0x41
|
|
bl PokemonGetField
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r0, r10
|
|
movs r1, 0
|
|
bl PokemonGetField
|
|
mov r9, r0
|
|
lsls r0, r5, 3
|
|
ldr r1, _0804B390
|
|
adds r0, r1
|
|
ldr r1, _0804B394
|
|
lsls r2, r5, 2
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
ldr r3, _0804B398
|
|
ldr r6, _0804B39C
|
|
lsls r7, 1
|
|
mov r8, r7
|
|
mov r4, r8
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
adds r4, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r4, r9
|
|
str r4, [sp, 0x8]
|
|
bl sub_800D334
|
|
mov r0, r10
|
|
bl sub_8040990
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, _0804B3A0
|
|
ldr r0, [r0]
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
add r0, r8
|
|
strh r5, [r0]
|
|
b _0804B3FA
|
|
.align 2, 0
|
|
_0804B390: .4byte gMonFrontPicTable
|
|
_0804B394: .4byte gMonFrontPicCoords
|
|
_0804B398: .4byte 0x02000000
|
|
_0804B39C: .4byte gUnknown_081FAF4C
|
|
_0804B3A0: .4byte 0x03004828
|
|
_0804B3A4:
|
|
mov r0, r10
|
|
bl sub_8040990
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r4, 0
|
|
bl gpu_pal_obj_decompress_and_apply
|
|
ldr r0, _0804B40C
|
|
movs r1, 0x78
|
|
movs r2, 0x3C
|
|
movs r3, 0x6
|
|
bl CreateSprite
|
|
ldr r4, _0804B410
|
|
ldr r1, [r4]
|
|
adds r1, 0xB8
|
|
adds r1, r7
|
|
strb r0, [r1]
|
|
ldr r3, _0804B414
|
|
ldr r0, [r4]
|
|
adds r0, 0xB8
|
|
adds r0, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xB8
|
|
adds r0, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, 0x1C
|
|
adds r0, r3
|
|
ldr r1, _0804B418
|
|
str r1, [r0]
|
|
_0804B3FA:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B40C: .4byte 0x02024e8c
|
|
_0804B410: .4byte 0x03004828
|
|
_0804B414: .4byte 0x02020004
|
|
_0804B418: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_804B2D0
|
|
|
|
thumb_func_start sub_804B41C
|
|
sub_804B41C: @ 804B41C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r1, _0804B43C
|
|
ldr r2, _0804B440
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0xC
|
|
bls _0804B430
|
|
b _0804B76E
|
|
_0804B430:
|
|
lsls r0, 2
|
|
ldr r1, _0804B444
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804B43C: .4byte 0x03001770
|
|
_0804B440: .4byte 0x0000043c
|
|
_0804B444: .4byte _0804B448
|
|
.align 2, 0
|
|
_0804B448:
|
|
.4byte _0804B47C
|
|
.4byte _0804B5AC
|
|
.4byte _0804B5D4
|
|
.4byte _0804B5FC
|
|
.4byte _0804B648
|
|
.4byte _0804B678
|
|
.4byte _0804B6A8
|
|
.4byte _0804B6B2
|
|
.4byte _0804B6CC
|
|
.4byte _0804B6E4
|
|
.4byte _0804B71C
|
|
.4byte _0804B726
|
|
.4byte _0804B75C
|
|
_0804B47C:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
bl ResetTasks
|
|
bl CloseLink
|
|
ldr r6, _0804B570
|
|
ldr r5, _0804B574
|
|
str r5, [r6]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, _0804B578
|
|
bl SetVBlankCallback
|
|
bl sub_804B228
|
|
ldr r4, _0804B57C
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
ldr r0, [r6]
|
|
adds r0, 0x4
|
|
adds r1, r4, 0
|
|
bl InitWindowFromConfig
|
|
movs r0, 0x2
|
|
bl sub_8064EF4
|
|
ldr r1, [r6]
|
|
adds r1, 0x34
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x4
|
|
bl sub_8064F08
|
|
bl sub_8071EF4
|
|
ldr r1, _0804B580
|
|
ldr r4, _0804B584
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0804B588
|
|
ldr r0, _0804B58C
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _0804B590
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r0, _0804B594
|
|
ldr r1, _0804B598
|
|
adds r5, r1
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r5, 0
|
|
bl CpuSet
|
|
ldr r1, _0804B59C
|
|
ldr r0, _0804B5A0
|
|
str r5, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804B5A4
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r0, _0804B5A8
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0xB6
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
adds r0, 0xE
|
|
strh r2, [r0]
|
|
movs r4, 0x8F
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, [r6]
|
|
movs r1, 0x82
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
movs r1, 0x40
|
|
strh r1, [r0]
|
|
subs r4, 0x18
|
|
adds r0, r3, r4
|
|
strh r1, [r0]
|
|
adds r1, 0xC8
|
|
adds r0, r3, r1
|
|
strh r2, [r0]
|
|
adds r4, 0x4
|
|
adds r0, r3, r4
|
|
strh r2, [r0]
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r4, 0x4
|
|
adds r1, r3, r4
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
adds r0, 0xC8
|
|
adds r1, r3, r0
|
|
subs r0, 0x18
|
|
strh r0, [r1]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
strh r2, [r0]
|
|
b _0804B76E
|
|
.align 2, 0
|
|
_0804B570: .4byte 0x03004828
|
|
_0804B574: .4byte 0x0201f000
|
|
_0804B578: .4byte sub_804B210
|
|
_0804B57C: .4byte gWindowConfig_81E6F84
|
|
_0804B580: .4byte 0x03002b74
|
|
_0804B584: .4byte 0x00001144
|
|
_0804B588: .4byte 0x03001770
|
|
_0804B58C: .4byte 0x0000043c
|
|
_0804B590: .4byte gUnknown_08D00000
|
|
_0804B594: .4byte gUnknown_08D00524
|
|
_0804B598: .4byte 0xfffe1000
|
|
_0804B59C: .4byte 0x06002800
|
|
_0804B5A0: .4byte 0x040000d4
|
|
_0804B5A4: .4byte 0x80000280
|
|
_0804B5A8: .4byte gUnknown_08D004E0
|
|
_0804B5AC:
|
|
bl OpenLink
|
|
ldr r1, _0804B5C8
|
|
ldr r2, _0804B5CC
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, _0804B5D0
|
|
ldr r0, [r0]
|
|
adds r0, 0xC0
|
|
str r2, [r0]
|
|
b _0804B76E
|
|
.align 2, 0
|
|
_0804B5C8: .4byte 0x03001770
|
|
_0804B5CC: .4byte 0x0000043c
|
|
_0804B5D0: .4byte 0x03004828
|
|
_0804B5D4:
|
|
ldr r0, _0804B5F4
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bhi _0804B5E8
|
|
b _0804B76E
|
|
_0804B5E8:
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r4, _0804B5F8
|
|
adds r1, r2, r4
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B5F4: .4byte 0x03004828
|
|
_0804B5F8: .4byte 0x0000043c
|
|
_0804B5FC:
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804B608
|
|
b _0804B746
|
|
_0804B608:
|
|
bl GetLinkPlayerCount_2
|
|
adds r4, r0, 0
|
|
bl sub_800820C
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bcs _0804B61C
|
|
b _0804B76E
|
|
_0804B61C:
|
|
ldr r0, _0804B63C
|
|
ldr r1, [r0]
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x1E
|
|
bhi _0804B62E
|
|
b _0804B76E
|
|
_0804B62E:
|
|
bl sub_8007F4C
|
|
ldr r1, _0804B640
|
|
ldr r0, _0804B644
|
|
adds r1, r0
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B63C: .4byte 0x03004828
|
|
_0804B640: .4byte 0x03001770
|
|
_0804B644: .4byte 0x0000043c
|
|
_0804B648:
|
|
bl sub_804B24C
|
|
ldr r0, _0804B66C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0804B656
|
|
b _0804B76E
|
|
_0804B656:
|
|
bl IsLinkPlayerDataExchangeComplete
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0804B664
|
|
b _0804B76E
|
|
_0804B664:
|
|
ldr r1, _0804B670
|
|
ldr r4, _0804B674
|
|
adds r1, r4
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B66C: .4byte 0x03002fa4
|
|
_0804B670: .4byte 0x03001770
|
|
_0804B674: .4byte 0x0000043c
|
|
_0804B678:
|
|
ldr r2, _0804B69C
|
|
ldr r0, [r2]
|
|
adds r0, 0x9C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x9D
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xBD
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B6A0
|
|
ldr r0, _0804B6A4
|
|
adds r1, r0
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B69C: .4byte 0x03004828
|
|
_0804B6A0: .4byte 0x03001770
|
|
_0804B6A4: .4byte 0x0000043c
|
|
_0804B6A8:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_804B2D0
|
|
b _0804B746
|
|
_0804B6B2:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B6C4
|
|
ldr r4, _0804B6C8
|
|
adds r1, r4
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B6C4: .4byte 0x03001770
|
|
_0804B6C8: .4byte 0x0000043c
|
|
_0804B6CC:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B6DC
|
|
ldr r0, _0804B6E0
|
|
adds r1, r0
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B6DC: .4byte 0x03001770
|
|
_0804B6E0: .4byte 0x0000043c
|
|
_0804B6E4:
|
|
bl sub_804C164
|
|
ldr r0, _0804B704
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804B708
|
|
bl LoadSpritePalette
|
|
ldr r1, _0804B70C
|
|
ldr r2, _0804B710
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0804B714
|
|
ldr r4, _0804B718
|
|
adds r1, r4
|
|
b _0804B74C
|
|
.align 2, 0
|
|
_0804B704: .4byte gUnknown_0821594C
|
|
_0804B708: .4byte gUnknown_08215954
|
|
_0804B70C: .4byte REG_BG1CNT
|
|
_0804B710: .4byte 0x00000502
|
|
_0804B714: .4byte 0x03001770
|
|
_0804B718: .4byte 0x0000043c
|
|
_0804B71C:
|
|
ldr r0, _0804B754
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804B726:
|
|
movs r0, 0x5
|
|
bl sub_804BBE8
|
|
movs r0, 0
|
|
bl sub_804BBE8
|
|
bl sub_804C1A8
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_0804B746:
|
|
ldr r1, _0804B758
|
|
ldr r2, _0804B754
|
|
adds r1, r2
|
|
_0804B74C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804B76E
|
|
.align 2, 0
|
|
_0804B754: .4byte 0x0000043c
|
|
_0804B758: .4byte 0x03001770
|
|
_0804B75C:
|
|
ldr r0, _0804B788
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804B76E
|
|
ldr r0, _0804B78C
|
|
bl SetMainCallback2
|
|
_0804B76E:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B788: .4byte 0x0202f388
|
|
_0804B78C: .4byte sub_804DB84
|
|
thumb_func_end sub_804B41C
|
|
|
|
thumb_func_start sub_804B790
|
|
sub_804B790: @ 804B790
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x10
|
|
ldr r1, _0804B7B4
|
|
ldr r2, _0804B7B8
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0xC
|
|
bls _0804B7A8
|
|
b _0804B9F2
|
|
_0804B7A8:
|
|
lsls r0, 2
|
|
ldr r1, _0804B7BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804B7B4: .4byte 0x03001770
|
|
_0804B7B8: .4byte 0x0000043c
|
|
_0804B7BC: .4byte _0804B7C0
|
|
.align 2, 0
|
|
_0804B7C0:
|
|
.4byte _0804B7F4
|
|
.4byte _0804B9F2
|
|
.4byte _0804B9F2
|
|
.4byte _0804B9F2
|
|
.4byte _0804B9F2
|
|
.4byte _0804B914
|
|
.4byte _0804B92C
|
|
.4byte _0804B944
|
|
.4byte _0804B94E
|
|
.4byte _0804B968
|
|
.4byte _0804B9A0
|
|
.4byte _0804B9AA
|
|
.4byte _0804B9E0
|
|
_0804B7F4:
|
|
ldr r1, _0804B8E0
|
|
ldr r0, _0804B8E4
|
|
ldrh r0, [r0]
|
|
movs r6, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, _0804B8E8
|
|
ldr r1, _0804B8EC
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r0, _0804B8F0
|
|
movs r1, 0x7
|
|
add r2, sp, 0x4
|
|
bl PokemonGetField
|
|
adds r4, 0x1C
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x4
|
|
bl StringCopy
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r3, 0
|
|
mov r8, r3
|
|
strh r6, [r0]
|
|
bl ResetTasks
|
|
ldr r5, _0804B8F4
|
|
ldr r0, _0804B8F8
|
|
str r0, [r5]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, _0804B8FC
|
|
bl SetVBlankCallback
|
|
bl sub_804B228
|
|
ldr r4, _0804B900
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
adds r1, r4, 0
|
|
bl InitWindowFromConfig
|
|
movs r0, 0x2
|
|
bl sub_8064EF4
|
|
ldr r1, [r5]
|
|
adds r1, 0x34
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
bl sub_8064F08
|
|
bl sub_8071EF4
|
|
ldr r1, _0804B904
|
|
ldr r2, _0804B908
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r5]
|
|
movs r3, 0x8F
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0xB6
|
|
strh r6, [r0]
|
|
adds r0, 0xE
|
|
strh r6, [r0]
|
|
subs r3, 0x1A
|
|
adds r0, r2, r3
|
|
movs r1, 0x40
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
adds r1, 0xC8
|
|
adds r0, r2, r1
|
|
strh r6, [r0]
|
|
adds r3, 0x4
|
|
adds r0, r2, r3
|
|
strh r6, [r0]
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r3, 0x4
|
|
adds r1, r2, r3
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
adds r0, 0xC8
|
|
adds r1, r2, r0
|
|
subs r0, 0x18
|
|
strh r0, [r1]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
strh r6, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC0
|
|
str r6, [r0]
|
|
ldr r0, _0804B90C
|
|
ldr r2, _0804B910
|
|
adds r0, r2
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
b _0804B9F2
|
|
.align 2, 0
|
|
_0804B8E0: .4byte 0x020297d8
|
|
_0804B8E4: .4byte 0x0202e8ce
|
|
_0804B8E8: .4byte 0x03002978
|
|
_0804B8EC: .4byte gSaveBlock2
|
|
_0804B8F0: .4byte 0x030045c0
|
|
_0804B8F4: .4byte 0x03004828
|
|
_0804B8F8: .4byte 0x0201f000
|
|
_0804B8FC: .4byte sub_804B210
|
|
_0804B900: .4byte gWindowConfig_81E717C
|
|
_0804B904: .4byte 0x03002b74
|
|
_0804B908: .4byte 0x00001144
|
|
_0804B90C: .4byte 0x03001770
|
|
_0804B910: .4byte 0x0000043c
|
|
_0804B914:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B924
|
|
ldr r3, _0804B928
|
|
adds r1, r3
|
|
b _0804B9D0
|
|
.align 2, 0
|
|
_0804B924: .4byte 0x03001770
|
|
_0804B928: .4byte 0x0000043c
|
|
_0804B92C:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B93C
|
|
ldr r0, _0804B940
|
|
adds r1, r0
|
|
b _0804B9D0
|
|
.align 2, 0
|
|
_0804B93C: .4byte 0x03001770
|
|
_0804B940: .4byte 0x0000043c
|
|
_0804B944:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_804B2D0
|
|
b _0804B9CA
|
|
_0804B94E:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_804B2D0
|
|
ldr r1, _0804B960
|
|
ldr r3, _0804B964
|
|
adds r1, r3
|
|
b _0804B9D0
|
|
.align 2, 0
|
|
_0804B960: .4byte 0x03001770
|
|
_0804B964: .4byte 0x0000043c
|
|
_0804B968:
|
|
bl sub_804C164
|
|
ldr r0, _0804B988
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804B98C
|
|
bl LoadSpritePalette
|
|
ldr r1, _0804B990
|
|
ldr r2, _0804B994
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0804B998
|
|
ldr r3, _0804B99C
|
|
adds r1, r3
|
|
b _0804B9D0
|
|
.align 2, 0
|
|
_0804B988: .4byte gUnknown_0821594C
|
|
_0804B98C: .4byte gUnknown_08215954
|
|
_0804B990: .4byte REG_BG1CNT
|
|
_0804B994: .4byte 0x00000502
|
|
_0804B998: .4byte 0x03001770
|
|
_0804B99C: .4byte 0x0000043c
|
|
_0804B9A0:
|
|
ldr r0, _0804B9D8
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804B9AA:
|
|
movs r0, 0x5
|
|
bl sub_804BBE8
|
|
movs r0, 0
|
|
bl sub_804BBE8
|
|
bl sub_804C1A8
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_0804B9CA:
|
|
ldr r1, _0804B9DC
|
|
ldr r2, _0804B9D8
|
|
adds r1, r2
|
|
_0804B9D0:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804B9F2
|
|
.align 2, 0
|
|
_0804B9D8: .4byte 0x0000043c
|
|
_0804B9DC: .4byte 0x03001770
|
|
_0804B9E0:
|
|
ldr r0, _0804BA10
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804B9F2
|
|
ldr r0, _0804BA14
|
|
bl SetMainCallback2
|
|
_0804B9F2:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804BA10: .4byte 0x0202f388
|
|
_0804BA14: .4byte sub_804BBCC
|
|
thumb_func_end sub_804B790
|
|
|
|
thumb_func_start sub_804BA18
|
|
sub_804BA18: @ 804BA18
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, _0804BA60
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
cmp r0, 0
|
|
bne _0804BA5A
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl SpeciesToNationalPokedexNum
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8090D90
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_8090D90
|
|
_0804BA5A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804BA60: .4byte 0x03004360
|
|
thumb_func_end sub_804BA18
|
|
|
|
thumb_func_start sub_804BA64
|
|
sub_804BA64: @ 804BA64
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
ldr r2, _0804BA90
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
eors r1, r0
|
|
lsrs r1, 24
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
cmp r1, r0
|
|
bne _0804BA8C
|
|
bl sub_80690F0
|
|
_0804BA8C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804BA90: .4byte 0x03002970
|
|
thumb_func_end sub_804BA64
|
|
|
|
thumb_func_start sub_804BA94
|
|
sub_804BA94: @ 804BA94
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r5, 0x64
|
|
mov r1, r9
|
|
muls r1, r5
|
|
ldr r0, _0804BB60
|
|
adds r7, r1, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0x40
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r1, r4, 0
|
|
muls r1, r5
|
|
ldr r0, _0804BB64
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x40
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
cmp r6, 0xFF
|
|
beq _0804BAE8
|
|
lsls r0, r6, 3
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, _0804BB68
|
|
adds r0, r1
|
|
bl sub_80A2B40
|
|
_0804BAE8:
|
|
ldr r4, _0804BB6C
|
|
ldr r0, [r4]
|
|
adds r0, 0x38
|
|
adds r1, r7, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
ldr r1, [r4]
|
|
adds r1, 0x38
|
|
adds r0, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
movs r1, 0x46
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
cmp r0, 0
|
|
bne _0804BB28
|
|
adds r0, r7, 0
|
|
movs r1, 0x20
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
_0804BB28:
|
|
mov r0, r8
|
|
cmp r0, 0xFF
|
|
beq _0804BB3E
|
|
lsls r1, r0, 3
|
|
add r1, r8
|
|
lsls r1, 2
|
|
ldr r0, _0804BB70
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_80A2D88
|
|
_0804BB3E:
|
|
mov r0, r9
|
|
bl sub_804BA18
|
|
ldr r0, _0804BB74
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804BB50
|
|
bl sub_804BA64
|
|
_0804BB50:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804BB60: .4byte 0x03004360
|
|
_0804BB64: .4byte 0x030045c0
|
|
_0804BB68: .4byte 0x02028280
|
|
_0804BB6C: .4byte 0x03004828
|
|
_0804BB70: .4byte 0x02029700
|
|
_0804BB74: .4byte 0x03002fa4
|
|
thumb_func_end sub_804BA94
|
|
|
|
thumb_func_start sub_804BB78
|
|
sub_804BB78: @ 804BB78
|
|
push {r4,lr}
|
|
ldr r4, _0804BB8C
|
|
ldr r0, [r4]
|
|
adds r0, 0xBD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0804BB90
|
|
cmp r0, 0x2
|
|
beq _0804BBB6
|
|
b _0804BBC0
|
|
.align 2, 0
|
|
_0804BB8C: .4byte 0x03004828
|
|
_0804BB90:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804BBB6
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x9E
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
ldr r1, [r4]
|
|
adds r1, 0xBD
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804BBB6:
|
|
ldr r0, _0804BBC8
|
|
ldr r0, [r0]
|
|
adds r0, 0xBD
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0804BBC0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804BBC8: .4byte 0x03004828
|
|
thumb_func_end sub_804BB78
|
|
|
|
thumb_func_start sub_804BBCC
|
|
sub_804BBCC: @ 804BBCC
|
|
push {lr}
|
|
bl sub_804C29C
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804BBCC
|
|
|
|
thumb_func_start sub_804BBE8
|
|
sub_804BBE8: @ 804BBE8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x7
|
|
bls _0804BBF4
|
|
b _0804C0CA
|
|
_0804BBF4:
|
|
lsls r0, 2
|
|
ldr r1, _0804BC00
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804BC00: .4byte _0804BC04
|
|
.align 2, 0
|
|
_0804BC04:
|
|
.4byte _0804BC24
|
|
.4byte _0804BCC4
|
|
.4byte _0804BD5C
|
|
.4byte _0804BDA4
|
|
.4byte _0804BE48
|
|
.4byte _0804BEF8
|
|
.4byte _0804BFA0
|
|
.4byte _0804C060
|
|
_0804BC24:
|
|
ldr r0, _0804BCA0
|
|
movs r1, 0x10
|
|
movs r2, 0xA0
|
|
bl LoadPalette
|
|
ldr r3, _0804BCA4
|
|
ldr r4, _0804BCA8
|
|
movs r5, 0x98
|
|
lsls r5, 5
|
|
ldr r1, _0804BCAC
|
|
ldr r6, _0804BCB0
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804BC42:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804BC42
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _0804BCB4
|
|
ldr r2, _0804BCB8
|
|
ldr r0, _0804BCAC
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804BCB0
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r0, _0804BCBC
|
|
ldr r2, [r0]
|
|
movs r0, 0x8A
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r3, 0x8B
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
movs r0, 0xB4
|
|
strh r0, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r4, 0xBA
|
|
lsls r4, 5
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
ldr r2, _0804BCC0
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _0804C0CA
|
|
.align 2, 0
|
|
_0804BCA0: .4byte gUnknown_0820C9F8
|
|
_0804BCA4: .4byte gUnknown_0820CA98
|
|
_0804BCA8: .4byte 0x06004000
|
|
_0804BCAC: .4byte 0x040000d4
|
|
_0804BCB0: .4byte 0x80000800
|
|
_0804BCB4: .4byte gUnknown_0820F798
|
|
_0804BCB8: .4byte 0x06009000
|
|
_0804BCBC: .4byte 0x03004828
|
|
_0804BCC0: .4byte 0x00005206
|
|
_0804BCC4:
|
|
ldr r0, _0804BD3C
|
|
ldr r2, [r0]
|
|
movs r3, 0x89
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r4, 0x88
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
strh r1, [r0]
|
|
ldr r0, _0804BD40
|
|
strh r1, [r0]
|
|
ldr r1, _0804BD44
|
|
ldr r2, _0804BD48
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804BD4C
|
|
ldr r2, _0804BD50
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r1, 0xCA
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
lsrs r0, r3, 1
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r4, [r1, 0x8]
|
|
ldr r4, _0804BD54
|
|
movs r5, 0xC0
|
|
lsls r5, 19
|
|
movs r6, 0x98
|
|
lsls r6, 5
|
|
adds r7, r0, 0
|
|
_0804BD10:
|
|
str r4, [r1]
|
|
str r5, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r4, r3
|
|
adds r5, r3
|
|
subs r6, r3
|
|
cmp r6, r3
|
|
bhi _0804BD10
|
|
str r4, [r1]
|
|
str r5, [r1, 0x4]
|
|
lsrs r0, r6, 1
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r3, _0804BD58
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
b _0804C0CA
|
|
.align 2, 0
|
|
_0804BD3C: .4byte 0x03004828
|
|
_0804BD40: .4byte REG_BG1VOFS
|
|
_0804BD44: .4byte REG_BG1CNT
|
|
_0804BD48: .4byte 0x00008502
|
|
_0804BD4C: .4byte gUnknown_08210798
|
|
_0804BD50: .4byte 0x06002800
|
|
_0804BD54: .4byte gUnknown_0820CA98
|
|
_0804BD58: .4byte 0x00001241
|
|
_0804BD5C:
|
|
ldr r0, _0804BD8C
|
|
ldr r2, [r0]
|
|
movs r4, 0x88
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r3, 0x89
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r4, _0804BD90
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0804BD94
|
|
ldr r2, _0804BD98
|
|
ldr r0, _0804BD9C
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804BDA0
|
|
b _0804C0C6
|
|
.align 2, 0
|
|
_0804BD8C: .4byte 0x03004828
|
|
_0804BD90: .4byte 0x00001241
|
|
_0804BD94: .4byte gUnknown_08211798
|
|
_0804BD98: .4byte 0x06002800
|
|
_0804BD9C: .4byte 0x040000d4
|
|
_0804BDA0: .4byte 0x80000400
|
|
_0804BDA4:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0x92
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804BE24
|
|
ldr r3, [r0]
|
|
movs r4, 0x82
|
|
lsls r4, 1
|
|
adds r1, r3, r4
|
|
movs r2, 0
|
|
movs r0, 0x40
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, r3, r4
|
|
strh r0, [r1]
|
|
adds r0, 0xCC
|
|
adds r1, r3, r0
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r4, 0x8
|
|
adds r1, r3, r4
|
|
ldr r0, _0804BE28
|
|
strh r0, [r1]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
strh r2, [r0]
|
|
ldr r3, _0804BE2C
|
|
ldr r4, _0804BE30
|
|
movs r5, 0xD0
|
|
lsls r5, 5
|
|
ldr r2, _0804BE34
|
|
mov r12, r2
|
|
ldr r1, _0804BE38
|
|
ldr r6, _0804BE3C
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804BDF6:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804BDF6
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _0804BE40
|
|
ldr r0, _0804BE38
|
|
mov r3, r12
|
|
str r3, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804BE44
|
|
b _0804C0C6
|
|
.align 2, 0
|
|
_0804BE24: .4byte 0x03004828
|
|
_0804BE28: .4byte 0x0000ffba
|
|
_0804BE2C: .4byte gUnknown_0820DD98
|
|
_0804BE30: .4byte 0x06004000
|
|
_0804BE34: .4byte gUnknown_08211F98
|
|
_0804BE38: .4byte 0x040000d4
|
|
_0804BE3C: .4byte 0x80000800
|
|
_0804BE40: .4byte 0x06009000
|
|
_0804BE44: .4byte 0x80000080
|
|
_0804BE48:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r4, _0804BED0
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
ldr r2, _0804BED4
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804BED8
|
|
ldr r3, [r0]
|
|
movs r4, 0x82
|
|
lsls r4, 1
|
|
adds r1, r3, r4
|
|
movs r2, 0
|
|
movs r0, 0x40
|
|
strh r0, [r1]
|
|
adds r0, 0xC6
|
|
adds r1, r3, r0
|
|
movs r0, 0x5C
|
|
strh r0, [r1]
|
|
adds r4, 0x14
|
|
adds r1, r3, r4
|
|
movs r0, 0x20
|
|
strh r0, [r1]
|
|
adds r0, 0xFA
|
|
adds r1, r3, r0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r1]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
strh r2, [r0]
|
|
ldr r3, _0804BEDC
|
|
ldr r4, _0804BEE0
|
|
movs r5, 0x81
|
|
lsls r5, 6
|
|
ldr r2, _0804BEE4
|
|
mov r12, r2
|
|
ldr r1, _0804BEE8
|
|
ldr r6, _0804BEEC
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804BEA4:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804BEA4
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _0804BEF0
|
|
ldr r0, _0804BEE8
|
|
mov r3, r12
|
|
str r3, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804BEF4
|
|
b _0804C0C6
|
|
.align 2, 0
|
|
_0804BED0: .4byte 0x00001441
|
|
_0804BED4: .4byte 0x00001287
|
|
_0804BED8: .4byte 0x03004828
|
|
_0804BEDC: .4byte gUnknown_08213738
|
|
_0804BEE0: .4byte 0x06004000
|
|
_0804BEE4: .4byte gUnknown_08215778
|
|
_0804BEE8: .4byte 0x040000d4
|
|
_0804BEEC: .4byte 0x80000800
|
|
_0804BEF0: .4byte 0x06009000
|
|
_0804BEF4: .4byte 0x80000080
|
|
_0804BEF8:
|
|
ldr r0, _0804BF78
|
|
ldr r2, [r0]
|
|
movs r4, 0x88
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r3, 0x89
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
ldr r1, _0804BF7C
|
|
ldr r4, _0804BF80
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804BF84
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r0, _0804BF88
|
|
ldr r4, _0804BF8C
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
ldr r0, _0804BF90
|
|
movs r1, 0x70
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
movs r0, 0xE0
|
|
lsls r0, 7
|
|
adds r2, r0, 0
|
|
movs r1, 0xA0
|
|
lsls r1, 2
|
|
_0804BF4C:
|
|
ldrh r0, [r4]
|
|
orrs r0, r2
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _0804BF4C
|
|
ldr r1, _0804BF8C
|
|
ldr r2, _0804BF94
|
|
ldr r0, _0804BF98
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804BF9C
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0xF
|
|
movs r2, 0x1B
|
|
movs r3, 0x12
|
|
bl Reset
|
|
b _0804C0CA
|
|
.align 2, 0
|
|
_0804BF78: .4byte 0x03004828
|
|
_0804BF7C: .4byte REG_BG1CNT
|
|
_0804BF80: .4byte 0x00000502
|
|
_0804BF84: .4byte gUnknown_08D00000
|
|
_0804BF88: .4byte gUnknown_08D00524
|
|
_0804BF8C: .4byte 0x02000000
|
|
_0804BF90: .4byte gUnknown_08D004E0
|
|
_0804BF94: .4byte 0x06002800
|
|
_0804BF98: .4byte 0x040000d4
|
|
_0804BF9C: .4byte 0x80000280
|
|
_0804BFA0:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r2, _0804C038
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
ldr r3, _0804C03C
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804C040
|
|
ldr r3, [r0]
|
|
movs r4, 0x82
|
|
lsls r4, 1
|
|
adds r1, r3, r4
|
|
movs r2, 0
|
|
movs r0, 0x40
|
|
strh r0, [r1]
|
|
adds r0, 0xC6
|
|
adds r1, r3, r0
|
|
movs r0, 0x5C
|
|
strh r0, [r1]
|
|
adds r4, 0x14
|
|
adds r1, r3, r4
|
|
adds r0, 0xA4
|
|
strh r0, [r1]
|
|
adds r0, 0x1A
|
|
adds r1, r3, r0
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
subs r4, 0xC
|
|
adds r1, r3, r4
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r0, 0x96
|
|
adds r1, r3, r0
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
strh r2, [r0]
|
|
ldr r3, _0804C044
|
|
ldr r4, _0804C048
|
|
movs r5, 0x81
|
|
lsls r5, 6
|
|
ldr r2, _0804C04C
|
|
mov r12, r2
|
|
ldr r1, _0804C050
|
|
ldr r6, _0804C054
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804C00A:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804C00A
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _0804C058
|
|
ldr r0, _0804C050
|
|
mov r3, r12
|
|
str r3, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804C05C
|
|
b _0804C0C6
|
|
.align 2, 0
|
|
_0804C038: .4byte 0x00001441
|
|
_0804C03C: .4byte 0x00001287
|
|
_0804C040: .4byte 0x03004828
|
|
_0804C044: .4byte gUnknown_08213738
|
|
_0804C048: .4byte 0x06004000
|
|
_0804C04C: .4byte gUnknown_08215778
|
|
_0804C050: .4byte 0x040000d4
|
|
_0804C054: .4byte 0x80000800
|
|
_0804C058: .4byte 0x06009000
|
|
_0804C05C: .4byte 0x80000080
|
|
_0804C060:
|
|
ldr r0, _0804C0D0
|
|
ldr r2, [r0]
|
|
movs r4, 0x8A
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r3, 0x8B
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
ldr r1, _0804C0D4
|
|
ldr r4, _0804C0D8
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804C0DC
|
|
movs r1, 0x10
|
|
movs r2, 0xA0
|
|
bl LoadPalette
|
|
ldr r3, _0804C0E0
|
|
ldr r4, _0804C0E4
|
|
movs r5, 0x98
|
|
lsls r5, 5
|
|
ldr r1, _0804C0E8
|
|
ldr r6, _0804C0EC
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804C09C:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804C09C
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, _0804C0F0
|
|
ldr r2, _0804C0F4
|
|
ldr r0, _0804C0E8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804C0EC
|
|
_0804C0C6:
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
_0804C0CA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C0D0: .4byte 0x03004828
|
|
_0804C0D4: .4byte REG_BG2CNT
|
|
_0804C0D8: .4byte 0x00005206
|
|
_0804C0DC: .4byte gUnknown_0820C9F8
|
|
_0804C0E0: .4byte gUnknown_0820CA98
|
|
_0804C0E4: .4byte 0x06004000
|
|
_0804C0E8: .4byte 0x040000d4
|
|
_0804C0EC: .4byte 0x80000800
|
|
_0804C0F0: .4byte gUnknown_0820F798
|
|
_0804C0F4: .4byte 0x06009000
|
|
thumb_func_end sub_804BBE8
|
|
|
|
thumb_func_start sub_804C0F8
|
|
sub_804C0F8: @ 804C0F8
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804C130
|
|
ldr r0, _0804C128
|
|
ldr r2, [r0]
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
ldr r0, _0804C12C
|
|
cmp r1, r0
|
|
bgt _0804C15A
|
|
adds r0, 0x5
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
b _0804C154
|
|
.align 2, 0
|
|
_0804C128: .4byte 0x03004828
|
|
_0804C12C: .4byte 0x00000109
|
|
_0804C130:
|
|
ldr r0, _0804C160
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r2, 0x87
|
|
lsls r2, 1
|
|
add r2, r12
|
|
ldrh r3, [r2]
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0804C15A
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
add r1, r12
|
|
_0804C154:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x40
|
|
strh r0, [r1]
|
|
_0804C15A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C160: .4byte 0x03004828
|
|
thumb_func_end sub_804C0F8
|
|
|
|
thumb_func_start sub_804C164
|
|
sub_804C164: @ 804C164
|
|
push {lr}
|
|
ldr r0, _0804C190
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804C194
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804C198
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804C19C
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804C1A0
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804C1A4
|
|
bl LoadSpritePalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C190: .4byte gUnknown_082159A4
|
|
_0804C194: .4byte gUnknown_082159F4
|
|
_0804C198: .4byte gUnknown_08215A28
|
|
_0804C19C: .4byte gUnknown_08215A78
|
|
_0804C1A0: .4byte gUnknown_082159AC
|
|
_0804C1A4: .4byte gUnknown_082159B4
|
|
thumb_func_end sub_804C164
|
|
|
|
thumb_func_start sub_804C1A8
|
|
sub_804C1A8: @ 804C1A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
ldr r0, _0804C21C
|
|
ldr r0, [r0]
|
|
movs r1, 0x8F
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804C23C
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
ldr r3, _0804C220
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
eors r2, r0
|
|
lsrs r2, 24
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
ldr r0, _0804C224
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl StringCopy
|
|
ldr r5, _0804C228
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x64
|
|
muls r0, r4
|
|
ldr r1, _0804C22C
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
ldr r0, _0804C230
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldrb r0, [r5]
|
|
muls r0, r4
|
|
ldr r1, _0804C234
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
ldr r0, _0804C238
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
b _0804C278
|
|
.align 2, 0
|
|
_0804C21C: .4byte 0x03004828
|
|
_0804C220: .4byte 0x020231cc
|
|
_0804C224: .4byte 0x03002978
|
|
_0804C228: .4byte 0x020297d8
|
|
_0804C22C: .4byte 0x030045c0
|
|
_0804C230: .4byte 0x020233cc
|
|
_0804C234: .4byte 0x03004360
|
|
_0804C238: .4byte 0x020232cc
|
|
_0804C23C:
|
|
ldr r0, _0804C280
|
|
ldrh r0, [r0]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804C284
|
|
adds r4, r0
|
|
ldr r0, _0804C288
|
|
adds r1, r4, 0
|
|
adds r1, 0x2B
|
|
bl StringCopy
|
|
ldr r0, _0804C28C
|
|
adds r1, r4, 0
|
|
bl StringCopy10
|
|
ldr r0, _0804C290
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0804C294
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
ldr r0, _0804C298
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
_0804C278:
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C280: .4byte 0x0202e8cc
|
|
_0804C284: .4byte gIngameTrades
|
|
_0804C288: .4byte 0x020231cc
|
|
_0804C28C: .4byte 0x020233cc
|
|
_0804C290: .4byte 0x0202e8ce
|
|
_0804C294: .4byte 0x03004360
|
|
_0804C298: .4byte 0x020232cc
|
|
thumb_func_end sub_804C1A8
|
|
|
|
thumb_func_start sub_804C29C
|
|
sub_804C29C: @ 804C29C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
ldr r1, _0804C2C0
|
|
ldr r0, [r1]
|
|
adds r0, 0xC4
|
|
ldrh r0, [r0]
|
|
adds r6, r1, 0
|
|
cmp r0, 0xC8
|
|
bls _0804C2B6
|
|
bl _0804D570
|
|
_0804C2B6:
|
|
lsls r0, 2
|
|
ldr r1, _0804C2C4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804C2C0: .4byte 0x03004828
|
|
_0804C2C4: .4byte _0804C2C8
|
|
.align 2, 0
|
|
_0804C2C8:
|
|
.4byte _0804C5EC
|
|
.4byte _0804C66C
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804C6C8
|
|
.4byte _0804C704
|
|
.4byte _0804C79C
|
|
.4byte _0804D570
|
|
.4byte _0804C824
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804C848
|
|
.4byte _0804C868
|
|
.4byte _0804C87A
|
|
.4byte _0804C89C
|
|
.4byte _0804C8F4
|
|
.4byte _0804C92C
|
|
.4byte _0804C978
|
|
.4byte _0804C9C8
|
|
.4byte _0804CA1C
|
|
.4byte _0804CAB4
|
|
.4byte _0804CAD8
|
|
.4byte _0804CB24
|
|
.4byte _0804CB70
|
|
.4byte _0804CBCC
|
|
.4byte _0804CC2C
|
|
.4byte _0804CC40
|
|
.4byte _0804CC54
|
|
.4byte _0804CC68
|
|
.4byte _0804CD94
|
|
.4byte _0804CE64
|
|
.4byte _0804CEEC
|
|
.4byte _0804CF68
|
|
.4byte _0804CF78
|
|
.4byte _0804CFA0
|
|
.4byte _0804CFFC
|
|
.4byte _0804D028
|
|
.4byte _0804D054
|
|
.4byte _0804D06A
|
|
.4byte _0804D0D4
|
|
.4byte _0804D570
|
|
.4byte _0804D0FC
|
|
.4byte _0804D13C
|
|
.4byte _0804D182
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D1A4
|
|
.4byte _0804D1C4
|
|
.4byte _0804D1D2
|
|
.4byte _0804D1F4
|
|
.4byte _0804D2A8
|
|
.4byte _0804D2E4
|
|
.4byte _0804D314
|
|
.4byte _0804D3C4
|
|
.4byte _0804D41C
|
|
.4byte _0804D48C
|
|
.4byte _0804D4A0
|
|
.4byte _0804D4A6
|
|
.4byte _0804D4CC
|
|
.4byte _0804D528
|
|
.4byte _0804D54C
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804D570
|
|
.4byte _0804CA54
|
|
_0804C5EC:
|
|
ldr r3, _0804C65C
|
|
ldr r0, [r6]
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r4, [r6]
|
|
adds r2, r4, 0
|
|
adds r2, 0xB8
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, _0804C660
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldr r2, _0804C664
|
|
movs r3, 0x90
|
|
lsls r3, 1
|
|
adds r0, r4, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r1, 0x26]
|
|
adds r1, r4, 0
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
bl current_map_music_get
|
|
ldr r1, [r6]
|
|
movs r7, 0x92
|
|
lsls r7, 1
|
|
adds r1, r7
|
|
strh r0, [r1]
|
|
ldr r0, _0804C668
|
|
bl sub_8075474
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C65C: .4byte 0x02020004
|
|
_0804C660: .4byte 0x0000ff4c
|
|
_0804C664: .4byte gMonFrontPicCoords
|
|
_0804C668: .4byte 0x00000179
|
|
_0804C66C:
|
|
ldr r4, [r6]
|
|
movs r0, 0x8B
|
|
lsls r0, 1
|
|
adds r5, r4, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
ble _0804C6A0
|
|
ldr r2, _0804C69C
|
|
adds r0, r4, 0
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x24]
|
|
ldrh r0, [r5]
|
|
subs r0, 0x3
|
|
strh r0, [r5]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C69C: .4byte 0x02020004
|
|
_0804C6A0:
|
|
ldr r2, _0804C6C4
|
|
adds r0, r4, 0
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
strh r1, [r5]
|
|
adds r1, r4, 0
|
|
adds r1, 0xC4
|
|
movs r0, 0xA
|
|
strh r0, [r1]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C6C4: .4byte 0x02020004
|
|
_0804C6C8:
|
|
ldr r5, _0804C6F8
|
|
ldr r1, _0804C6FC
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r4, _0804C700
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x34
|
|
ldrb r2, [r1]
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
movs r3, 0x2
|
|
bl sub_8003460
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0xC4
|
|
movs r3, 0
|
|
movs r0, 0xB
|
|
bl _0804D40C
|
|
.align 2, 0
|
|
_0804C6F8: .4byte 0x020234cc
|
|
_0804C6FC: .4byte gUnknown_0842C60B
|
|
_0804C700: .4byte 0x03004828
|
|
_0804C704:
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x50
|
|
beq _0804C718
|
|
bl _0804D570
|
|
_0804C718:
|
|
adds r0, r2, 0
|
|
adds r0, 0xB8
|
|
ldrb r0, [r0]
|
|
ldr r2, _0804C78C
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x5]
|
|
lsrs r1, 4
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x14
|
|
str r2, [sp, 0x8]
|
|
ldr r2, _0804C790
|
|
str r2, [sp, 0xC]
|
|
movs r2, 0x78
|
|
movs r3, 0x20
|
|
bl sub_8047580
|
|
ldr r1, [r6]
|
|
movs r2, 0x81
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r2, r0, 0
|
|
adds r2, 0xC4
|
|
ldrh r1, [r2]
|
|
adds r1, 0x1
|
|
strh r1, [r2]
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1D
|
|
bl ZeroFillWindowRect
|
|
ldr r4, _0804C794
|
|
ldr r1, _0804C798
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x34
|
|
ldrb r2, [r1]
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
adds r1, r4, 0
|
|
movs r3, 0x2
|
|
bl sub_8003460
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C78C: .4byte 0x02020004
|
|
_0804C790: .4byte 0x000fffff
|
|
_0804C794: .4byte 0x020234cc
|
|
_0804C798: .4byte gUnknown_0842C622
|
|
_0804C79C:
|
|
ldr r7, _0804C810
|
|
ldr r2, [r6]
|
|
movs r5, 0x81
|
|
lsls r5, 1
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r7, 0
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldr r0, _0804C814
|
|
cmp r1, r0
|
|
beq _0804C7C0
|
|
bl _0804D570
|
|
_0804C7C0:
|
|
adds r0, r2, 0x4
|
|
bl sub_80035AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0804C7D2
|
|
bl _0804D570
|
|
_0804C7D2:
|
|
ldr r0, _0804C818
|
|
movs r1, 0x78
|
|
movs r2, 0x20
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
ldr r2, _0804C81C
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r3, [r6]
|
|
adds r2, r3, r2
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, _0804C820
|
|
str r1, [r0]
|
|
adds r3, r5
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
bl DestroySprite
|
|
ldr r1, [r6]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804C810: .4byte 0x02020004
|
|
_0804C814: .4byte SpriteCallbackDummy
|
|
_0804C818: .4byte gSpriteTemplate_821595C
|
|
_0804C81C: .4byte 0x00000103
|
|
_0804C820: .4byte sub_804D738
|
|
_0804C824:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0804C844
|
|
ldr r0, [r0]
|
|
adds r0, 0xC4
|
|
movs r1, 0x14
|
|
strh r1, [r0]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C844: .4byte 0x03004828
|
|
_0804C848:
|
|
ldr r0, _0804C864
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C858
|
|
bl _0804D570
|
|
_0804C858:
|
|
movs r0, 0x4
|
|
bl sub_804BBE8
|
|
bl _0804D538
|
|
.align 2, 0
|
|
_0804C864: .4byte 0x0202f388
|
|
_0804C868:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl _0804D534
|
|
_0804C87A:
|
|
ldr r0, _0804C898
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C88A
|
|
bl _0804D570
|
|
_0804C88A:
|
|
ldr r0, [r6]
|
|
adds r0, 0xC4
|
|
movs r1, 0x17
|
|
strh r1, [r0]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C898: .4byte 0x0202f388
|
|
_0804C89C:
|
|
ldr r4, _0804C8B8
|
|
ldr r0, [r4]
|
|
movs r3, 0x8D
|
|
lsls r3, 1
|
|
adds r2, r0, r3
|
|
ldrh r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _0804C8BC
|
|
adds r0, r1, 0
|
|
subs r0, 0x34
|
|
strh r0, [r2]
|
|
b _0804C8E0
|
|
.align 2, 0
|
|
_0804C8B8: .4byte 0x03004828
|
|
_0804C8BC:
|
|
movs r0, 0x1
|
|
bl sub_804BBE8
|
|
ldr r3, [r4]
|
|
movs r7, 0x8D
|
|
lsls r7, 1
|
|
adds r1, r3, r7
|
|
movs r2, 0
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
adds r1, r3, 0
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0xC0
|
|
str r2, [r0]
|
|
_0804C8E0:
|
|
ldr r0, _0804C8F0
|
|
ldr r4, [r0]
|
|
movs r1, 0x8D
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl _0804D16E
|
|
.align 2, 0
|
|
_0804C8F0: .4byte 0x03004828
|
|
_0804C8F4:
|
|
ldr r1, [r6]
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x14
|
|
bhi _0804C906
|
|
bl _0804D570
|
|
_0804C906:
|
|
movs r0, 0x3
|
|
bl sub_804BBE8
|
|
bl sub_804B128
|
|
ldr r0, _0804C928
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0xBB
|
|
strb r0, [r1]
|
|
ldr r1, [r6]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804C928: .4byte gSpriteTemplate_8215A80
|
|
_0804C92C:
|
|
ldr r2, _0804C96C
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0804C94C
|
|
bl _0804D570
|
|
_0804C94C:
|
|
adds r0, r1, 0
|
|
bl DestroySprite
|
|
ldr r1, _0804C970
|
|
movs r3, 0xC8
|
|
lsls r3, 3
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r7, _0804C974
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
ldr r1, [r6]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804C96C: .4byte 0x02020004
|
|
_0804C970: .4byte REG_BLDCNT
|
|
_0804C974: .4byte 0x0000040c
|
|
_0804C978:
|
|
ldr r2, [r6]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
ldrh r1, [r0]
|
|
subs r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
movs r0, 0x9E
|
|
lsls r0, 17
|
|
cmp r1, r0
|
|
bne _0804C99A
|
|
adds r1, r2, 0
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0804C99A:
|
|
ldr r0, [r6]
|
|
adds r0, r3
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0804C9AE
|
|
bl _0804D570
|
|
_0804C9AE:
|
|
ldr r0, _0804C9C4
|
|
movs r1, 0x80
|
|
movs r2, 0x41
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0xBC
|
|
strb r0, [r1]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804C9C4: .4byte gSpriteTemplate_8215A30
|
|
_0804C9C8:
|
|
ldr r0, _0804CA0C
|
|
movs r1, 0x80
|
|
movs r2, 0x50
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r4, _0804CA10
|
|
ldr r1, [r4]
|
|
adds r1, 0xBA
|
|
strb r0, [r1]
|
|
ldr r0, _0804CA14
|
|
movs r1, 0x80
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0xBB
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804CA18
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r1, [r4]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804CA0C: .4byte gSpriteTemplate_82159BC
|
|
_0804CA10: .4byte 0x03004828
|
|
_0804CA14: .4byte gSpriteTemplate_82159FC
|
|
_0804CA18: .4byte 0x02020004
|
|
_0804CA1C:
|
|
ldr r2, [r6]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x2
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA6
|
|
bne _0804CA3A
|
|
adds r1, r2, 0
|
|
adds r1, 0xC4
|
|
movs r0, 0xC8
|
|
strh r0, [r1]
|
|
_0804CA3A:
|
|
movs r0, 0
|
|
bl sub_804C0F8
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r7, _0804CA50
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804CA50: .4byte 0x00001641
|
|
_0804CA54:
|
|
ldr r4, _0804CAB0
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x2
|
|
strh r1, [r0, 0x22]
|
|
adds r2, 0xBB
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x2
|
|
strh r1, [r0, 0x22]
|
|
movs r0, 0
|
|
bl sub_804C0F8
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r3, 0x22
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _0804CAA4
|
|
bl _0804D570
|
|
_0804CAA4:
|
|
adds r1, r2, 0
|
|
adds r1, 0xC4
|
|
movs r0, 0x1D
|
|
strh r0, [r1]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804CAB0: .4byte 0x02020004
|
|
_0804CAB4:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0804CAD4
|
|
ldr r0, [r0]
|
|
adds r0, 0xC4
|
|
movs r1, 0x1E
|
|
strh r1, [r0]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804CAD4: .4byte 0x03004828
|
|
_0804CAD8:
|
|
ldr r0, _0804CB1C
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CAE8
|
|
bl _0804D570
|
|
_0804CAE8:
|
|
ldr r0, [r6]
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0804CB20
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r0, 0x2
|
|
bl sub_804BBE8
|
|
ldr r1, [r6]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804CB1C: .4byte 0x0202f388
|
|
_0804CB20: .4byte 0x02020004
|
|
_0804CB24:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r5, _0804CB68
|
|
adds r0, r5, 0
|
|
movs r1, 0x6F
|
|
movs r2, 0xAA
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r4, _0804CB6C
|
|
ldr r1, [r4]
|
|
adds r1, 0xBA
|
|
strb r0, [r1]
|
|
movs r2, 0xA
|
|
negs r2, r2
|
|
adds r0, r5, 0
|
|
movs r1, 0x81
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0xBB
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804CB68: .4byte gSpriteTemplate_82159FC
|
|
_0804CB6C: .4byte 0x03004828
|
|
_0804CB70:
|
|
ldr r0, _0804CBC0
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804CB8E
|
|
movs r0, 0x2E
|
|
bl audio_play
|
|
ldr r0, _0804CBC4
|
|
ldr r1, [r0]
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0804CB8E:
|
|
ldr r3, _0804CBC8
|
|
ldr r0, _0804CBC4
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0xBB
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
bl _0804D570
|
|
.align 2, 0
|
|
_0804CBC0: .4byte 0x0202f388
|
|
_0804CBC4: .4byte 0x03004828
|
|
_0804CBC8: .4byte 0x02020004
|
|
_0804CBCC:
|
|
ldr r5, _0804CC28
|
|
ldr r4, [r6]
|
|
adds r2, r4, 0
|
|
adds r2, 0xBA
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r6, r4, 0
|
|
adds r6, 0xBB
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r5
|
|
movs r7, 0x26
|
|
ldrsh r1, [r3, r7]
|
|
movs r0, 0x5A
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0804CC12
|
|
bl _0804D570
|
|
_0804CC12:
|
|
movs r2, 0x1
|
|
strh r2, [r3, 0x30]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x30]
|
|
adds r1, r4, 0
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804CC28: .4byte 0x02020004
|
|
_0804CC2C:
|
|
ldr r2, _0804CC3C
|
|
movs r0, 0x1
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0804D538
|
|
.align 2, 0
|
|
_0804CC3C: .4byte 0x0000ffff
|
|
_0804CC40:
|
|
ldr r2, _0804CC50
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl BlendPalettes
|
|
bl _0804D538
|
|
.align 2, 0
|
|
_0804CC50: .4byte 0x0000ffff
|
|
_0804CC54:
|
|
ldr r2, _0804CC64
|
|
movs r0, 0x1
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0804D538
|
|
.align 2, 0
|
|
_0804CC64: .4byte 0x0000ffff
|
|
_0804CC68:
|
|
ldr r5, _0804CCD8
|
|
ldr r0, [r5]
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_8040A3C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804CCE4
|
|
ldr r4, _0804CCDC
|
|
ldr r2, [r5]
|
|
adds r2, 0xB8
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x10
|
|
adds r0, r1
|
|
ldr r1, _0804CCE0
|
|
str r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x3
|
|
bl CalcCenterToCornerVec
|
|
ldr r0, [r5]
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
b _0804CCFA
|
|
.align 2, 0
|
|
_0804CCD8: .4byte 0x03004828
|
|
_0804CCDC: .4byte 0x02020004
|
|
_0804CCE0: .4byte gSpriteAffineAnimTable_8215AC0
|
|
_0804CCE4:
|
|
ldr r0, [r5]
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804CD88
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
_0804CCFA:
|
|
ldr r5, _0804CD8C
|
|
ldr r0, [r5]
|
|
adds r0, 0xB9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0804CD88
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r2, [r5]
|
|
adds r3, r2, 0
|
|
adds r3, 0xB8
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x3C
|
|
strh r1, [r0, 0x20]
|
|
adds r2, 0xB9
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xB4
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xC0
|
|
strh r1, [r0, 0x22]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, _0804CD90
|
|
strh r1, [r0, 0x22]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0xB9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
ldr r1, [r5]
|
|
bl _0804D53C
|
|
.align 2, 0
|
|
_0804CD88: .4byte 0x02020004
|
|
_0804CD8C: .4byte 0x03004828
|
|
_0804CD90: .4byte 0x0000ffe0
|
|
_0804CD94:
|
|
ldr r4, _0804CE5C
|
|
ldr r2, [r6]
|
|
adds r3, r2, 0
|
|
adds r3, 0xB8
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
movs r5, 0
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0xB9
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x26]
|
|
adds r0, 0xA3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0804CDDC
|
|
movs r0, 0x2D
|
|
bl audio_play
|
|
_0804CDDC:
|
|
ldr r2, [r6]
|
|
adds r3, r2, 0
|
|
adds r3, 0xB8
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r7, 0x26
|
|
ldrsh r1, [r0, r7]
|
|
movs r0, 0xDE
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _0804CDFA
|
|
b _0804D570
|
|
_0804CDFA:
|
|
adds r0, r2, 0
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x30]
|
|
adds r0, r2, 0
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x30]
|
|
adds r1, r2, 0
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0xB9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r2, _0804CE60
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl BlendPalettes
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804CE5C: .4byte 0x02020004
|
|
_0804CE60: .4byte 0x0000ffff
|
|
_0804CE64:
|
|
ldr r4, _0804CEE8
|
|
ldr r2, [r6]
|
|
adds r3, r2, 0
|
|
adds r3, 0xBA
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0xBB
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r2, 0x26
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xDE
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0804CEA6
|
|
b _0804D570
|
|
_0804CEA6:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0xC4
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0xBA
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804CEE8: .4byte 0x02020004
|
|
_0804CEEC:
|
|
ldr r0, _0804CF58
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CEFA
|
|
b _0804D570
|
|
_0804CEFA:
|
|
ldr r1, [r6]
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_804BBE8
|
|
ldr r0, [r6]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
movs r1, 0xA6
|
|
strh r1, [r0]
|
|
ldr r0, _0804CF5C
|
|
movs r4, 0x14
|
|
negs r4, r4
|
|
movs r1, 0x80
|
|
adds r2, r4, 0
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0xBA
|
|
strb r0, [r1]
|
|
ldr r0, _0804CF60
|
|
movs r1, 0x80
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0xBB
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804CF64
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804CF58: .4byte 0x0202f388
|
|
_0804CF5C: .4byte gSpriteTemplate_82159BC
|
|
_0804CF60: .4byte gSpriteTemplate_82159FC
|
|
_0804CF64: .4byte 0x02020004
|
|
_0804CF68:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _0804D534
|
|
_0804CF78:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r7, _0804CF98
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_804C0F8
|
|
ldr r0, _0804CF9C
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CF96
|
|
b _0804D570
|
|
_0804CF96:
|
|
b _0804D538
|
|
.align 2, 0
|
|
_0804CF98: .4byte 0x00001641
|
|
_0804CF9C: .4byte 0x0202f388
|
|
_0804CFA0:
|
|
movs r0, 0x1
|
|
bl sub_804C0F8
|
|
ldr r2, _0804CFF4
|
|
ldr r0, _0804CFF8
|
|
ldr r3, [r0]
|
|
adds r4, r3, 0
|
|
adds r4, 0xBA
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r3, 0
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r2, 0x26
|
|
ldrsh r1, [r0, r2]
|
|
movs r7, 0x22
|
|
ldrsh r0, [r0, r7]
|
|
adds r1, r0
|
|
cmp r1, 0x40
|
|
beq _0804CFEE
|
|
b _0804D570
|
|
_0804CFEE:
|
|
adds r1, r3, 0
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804CFF4: .4byte 0x02020004
|
|
_0804CFF8: .4byte 0x03004828
|
|
_0804CFFC:
|
|
movs r0, 0x1
|
|
bl sub_804C0F8
|
|
ldr r0, _0804D024
|
|
ldr r1, [r0]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2]
|
|
adds r0, 0x2
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x9E
|
|
lsls r3, 1
|
|
cmp r0, r3
|
|
bgt _0804D020
|
|
b _0804D570
|
|
_0804D020:
|
|
strh r3, [r2]
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D024: .4byte 0x03004828
|
|
_0804D028:
|
|
ldr r0, [r6]
|
|
adds r0, 0xBA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0804D050
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
b _0804D400
|
|
.align 2, 0
|
|
_0804D050: .4byte 0x02020004
|
|
_0804D054:
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0xA
|
|
beq _0804D066
|
|
b _0804D570
|
|
_0804D066:
|
|
adds r1, 0x4
|
|
b _0804D53E
|
|
_0804D06A:
|
|
ldr r1, [r6]
|
|
movs r4, 0x88
|
|
lsls r4, 1
|
|
adds r2, r1, r4
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0xAE
|
|
lsls r3, 1
|
|
cmp r0, r3
|
|
ble _0804D08E
|
|
strh r3, [r2]
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0804D08E:
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0804D0B0
|
|
ldr r0, _0804D0C8
|
|
movs r1, 0x80
|
|
movs r2, 0x41
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0xBC
|
|
strb r0, [r1]
|
|
_0804D0B0:
|
|
ldr r2, _0804D0CC
|
|
ldr r0, [r6]
|
|
adds r0, 0xBC
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _0804D0D0
|
|
str r1, [r0]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D0C8: .4byte gSpriteTemplate_8215A30
|
|
_0804D0CC: .4byte 0x02020004
|
|
_0804D0D0: .4byte sub_804B0E0
|
|
_0804D0D4:
|
|
ldr r0, _0804D0F4
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r2, _0804D0F8
|
|
ldr r1, [r2]
|
|
adds r1, 0xBB
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0xC4
|
|
movs r1, 0x32
|
|
strh r1, [r0]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D0F4: .4byte gSpriteTemplate_8215A80
|
|
_0804D0F8: .4byte 0x03004828
|
|
_0804D0FC:
|
|
ldr r2, _0804D138
|
|
ldr r0, [r6]
|
|
adds r0, 0xBB
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0804D11A
|
|
b _0804D570
|
|
_0804D11A:
|
|
adds r0, r1, 0
|
|
bl DestroySprite
|
|
movs r0, 0x6
|
|
bl sub_804BBE8
|
|
ldr r1, [r6]
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x9F
|
|
bl audio_play
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D138: .4byte 0x02020004
|
|
_0804D13C:
|
|
ldr r1, [r6]
|
|
movs r3, 0x8D
|
|
lsls r3, 1
|
|
adds r2, r1, r3
|
|
ldrh r3, [r2]
|
|
ldr r0, _0804D154
|
|
cmp r3, r0
|
|
bhi _0804D158
|
|
adds r0, r3, 0
|
|
adds r0, 0x34
|
|
strh r0, [r2]
|
|
b _0804D166
|
|
.align 2, 0
|
|
_0804D154: .4byte 0x000003ff
|
|
_0804D158:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r2]
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0804D166:
|
|
ldr r4, [r6]
|
|
movs r7, 0x8D
|
|
lsls r7, 1
|
|
adds r0, r4, r7
|
|
_0804D16E:
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
bl __divsi3
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
strh r0, [r1]
|
|
b _0804D570
|
|
_0804D182:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0804D1A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xC4
|
|
movs r1, 0x3C
|
|
strh r1, [r0]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D1A0: .4byte 0x03004828
|
|
_0804D1A4:
|
|
ldr r0, _0804D1C0
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D1B2
|
|
b _0804D570
|
|
_0804D1B2:
|
|
movs r0, 0x5
|
|
bl sub_804BBE8
|
|
movs r0, 0x7
|
|
bl sub_804BBE8
|
|
b _0804D538
|
|
.align 2, 0
|
|
_0804D1C0: .4byte 0x0202f388
|
|
_0804D1C4:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _0804D534
|
|
_0804D1D2:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r3, 0xA2
|
|
lsls r3, 5
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804D1F0
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D1EC
|
|
b _0804D570
|
|
_0804D1EC:
|
|
ldr r1, [r6]
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D1F0: .4byte 0x0202f388
|
|
_0804D1F4:
|
|
ldr r0, _0804D290
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
movs r1, 0x78
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r6, _0804D294
|
|
ldr r1, [r6]
|
|
ldr r5, _0804D298
|
|
adds r1, r5
|
|
movs r7, 0
|
|
mov r8, r7
|
|
strb r0, [r1]
|
|
ldr r4, _0804D29C
|
|
ldr r2, [r6]
|
|
adds r2, r5
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x4A
|
|
strh r1, [r0, 0x34]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, _0804D2A0
|
|
str r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
ldr r2, _0804D2A4
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0xC4
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0xC0
|
|
mov r0, r8
|
|
str r0, [r1]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D290: .4byte gSpriteTemplate_821595C
|
|
_0804D294: .4byte 0x03004828
|
|
_0804D298: .4byte 0x00000103
|
|
_0804D29C: .4byte 0x02020004
|
|
_0804D2A0: .4byte sub_804D80C
|
|
_0804D2A4: .4byte 0x0000ffff
|
|
_0804D2A8:
|
|
ldr r2, _0804D2D8
|
|
ldr r0, [r6]
|
|
ldr r1, _0804D2DC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
ldr r1, _0804D2E0
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, [r6]
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D2D8: .4byte 0x02020004
|
|
_0804D2DC: .4byte 0x00000103
|
|
_0804D2E0: .4byte 0x0000ffff
|
|
_0804D2E4:
|
|
ldr r2, _0804D308
|
|
ldr r3, [r6]
|
|
ldr r7, _0804D30C
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0804D310
|
|
cmp r1, r0
|
|
beq _0804D302
|
|
b _0804D570
|
|
_0804D302:
|
|
adds r1, r3, 0
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D308: .4byte 0x02020004
|
|
_0804D30C: .4byte 0x00000103
|
|
_0804D310: .4byte SpriteCallbackDummy
|
|
_0804D314:
|
|
ldr r4, _0804D3B4
|
|
ldr r0, [r6]
|
|
mov r8, r0
|
|
mov r5, r8
|
|
adds r5, 0xB9
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r3, 0
|
|
movs r1, 0x78
|
|
strh r1, [r0, 0x20]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r2, _0804D3B8
|
|
movs r0, 0x91
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, 0x3C
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r3, [r0, 0x24]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r3, [r0, 0x26]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r1, [r1, 0x5]
|
|
lsrs r1, 4
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x14
|
|
str r2, [sp, 0x8]
|
|
ldr r2, _0804D3BC
|
|
str r2, [sp, 0xC]
|
|
movs r2, 0x78
|
|
movs r3, 0x54
|
|
bl AddTextPrinterForMessage
|
|
ldr r0, [r6]
|
|
ldr r5, _0804D3C0
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r1, [r6]
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D3B4: .4byte 0x02020004
|
|
_0804D3B8: .4byte gMonFrontPicCoords
|
|
_0804D3BC: .4byte 0x000fffff
|
|
_0804D3C0: .4byte 0x00000103
|
|
_0804D3C4:
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xBA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1D
|
|
bl ZeroFillWindowRect
|
|
ldr r4, _0804D414
|
|
ldr r1, _0804D418
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x34
|
|
ldrb r2, [r1]
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
adds r1, r4, 0
|
|
movs r3, 0x2
|
|
bl sub_8003460
|
|
_0804D400:
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0xC4
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
_0804D40C:
|
|
strh r0, [r2]
|
|
adds r1, 0xC0
|
|
str r3, [r1]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D414: .4byte 0x020234cc
|
|
_0804D418: .4byte gUnknown_0842C62F
|
|
_0804D41C:
|
|
ldr r1, [r6]
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x4
|
|
bne _0804D430
|
|
ldr r0, _0804D480
|
|
bl fanfare_play
|
|
_0804D430:
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC0
|
|
ldr r0, [r0]
|
|
cmp r0, 0xF0
|
|
beq _0804D43E
|
|
b _0804D570
|
|
_0804D43E:
|
|
adds r1, r2, 0
|
|
adds r1, 0xC4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1D
|
|
bl ZeroFillWindowRect
|
|
ldr r4, _0804D484
|
|
ldr r1, _0804D488
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x34
|
|
ldrb r2, [r1]
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
adds r1, r4, 0
|
|
movs r3, 0x2
|
|
bl sub_8003460
|
|
ldr r0, [r6]
|
|
adds r0, 0xC0
|
|
str r5, [r0]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D480: .4byte 0x00000173
|
|
_0804D484: .4byte 0x020234cc
|
|
_0804D488: .4byte gUnknown_0842C640
|
|
_0804D48C:
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bne _0804D570
|
|
adds r1, 0x4
|
|
b _0804D53E
|
|
_0804D4A0:
|
|
bl sub_804E1DC
|
|
b _0804D538
|
|
_0804D4A6:
|
|
ldr r2, [r6]
|
|
movs r3, 0x8F
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804D4B8
|
|
movs r0, 0x1
|
|
b _0804D572
|
|
_0804D4B8:
|
|
ldr r0, _0804D4C8
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D570
|
|
adds r1, r2, 0
|
|
b _0804D53C
|
|
.align 2, 0
|
|
_0804D4C8: .4byte 0x03001770
|
|
_0804D4CC:
|
|
ldr r0, _0804D510
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_804BA94
|
|
ldr r1, _0804D514
|
|
ldr r0, _0804D518
|
|
str r0, [r1]
|
|
ldr r7, _0804D51C
|
|
ldrb r0, [r7]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, _0804D520
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _0804D538
|
|
ldrb r3, [r7]
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
adds r0, r5
|
|
ldr r1, _0804D524
|
|
ldr r1, [r1]
|
|
adds r1, 0xB9
|
|
ldrb r2, [r1]
|
|
adds r1, r4, 0
|
|
bl sub_81120E4
|
|
b _0804D538
|
|
.align 2, 0
|
|
_0804D510: .4byte 0x0202e8ce
|
|
_0804D514: .4byte 0x03005e94
|
|
_0804D518: .4byte sub_804BBCC
|
|
_0804D51C: .4byte 0x020297d8
|
|
_0804D520: .4byte 0x03004360
|
|
_0804D524: .4byte 0x03004828
|
|
_0804D528:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
_0804D534:
|
|
bl BeginNormalPaletteFade
|
|
_0804D538:
|
|
ldr r0, _0804D548
|
|
ldr r1, [r0]
|
|
_0804D53C:
|
|
adds r1, 0xC4
|
|
_0804D53E:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0804D570
|
|
.align 2, 0
|
|
_0804D548: .4byte 0x03004828
|
|
_0804D54C:
|
|
ldr r0, _0804D580
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804D570
|
|
ldr r0, [r6]
|
|
movs r7, 0x92
|
|
lsls r7, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
bl sub_8075474
|
|
ldr r0, _0804D584
|
|
bl SetMainCallback2
|
|
bl sub_804D8E4
|
|
_0804D570:
|
|
movs r0, 0
|
|
_0804D572:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804D580: .4byte 0x0202f388
|
|
_0804D584: .4byte c2_exit_to_overworld_2_switch
|
|
thumb_func_end sub_804C29C
|
|
|
|
thumb_func_start sub_804D588
|
|
sub_804D588: @ 804D588
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _0804D5A0
|
|
ldr r2, _0804D5A4
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0804D5A8
|
|
cmp r0, 0x4
|
|
beq _0804D5B8
|
|
b _0804D614
|
|
.align 2, 0
|
|
_0804D5A0: .4byte 0x03001770
|
|
_0804D5A4: .4byte 0x0000043c
|
|
_0804D5A8:
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r1, _0804D5B4
|
|
movs r0, 0x1
|
|
b _0804D612
|
|
.align 2, 0
|
|
_0804D5B4: .4byte 0x03001bb4
|
|
_0804D5B8:
|
|
ldr r0, _0804D5F4
|
|
ldr r1, _0804D5F8
|
|
mov r8, r1
|
|
str r1, [r0]
|
|
ldr r7, _0804D5FC
|
|
ldrb r0, [r7]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, _0804D600
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _0804D608
|
|
ldrb r3, [r7]
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
adds r0, r5
|
|
ldr r1, _0804D604
|
|
ldr r1, [r1]
|
|
adds r1, 0xB9
|
|
ldrb r2, [r1]
|
|
adds r1, r4, 0
|
|
bl sub_81120E4
|
|
b _0804D60E
|
|
.align 2, 0
|
|
_0804D5F4: .4byte 0x03005e94
|
|
_0804D5F8: .4byte sub_804DC88
|
|
_0804D5FC: .4byte 0x020297d8
|
|
_0804D600: .4byte 0x03004360
|
|
_0804D604: .4byte 0x03004828
|
|
_0804D608:
|
|
mov r0, r8
|
|
bl SetMainCallback2
|
|
_0804D60E:
|
|
ldr r1, _0804D638
|
|
movs r0, 0xFF
|
|
_0804D612:
|
|
strb r0, [r1]
|
|
_0804D614:
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804D622
|
|
bl RunTasks
|
|
_0804D622:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D638: .4byte 0x020297d8
|
|
thumb_func_end sub_804D588
|
|
|
|
thumb_func_start sub_804D63C
|
|
sub_804D63C: @ 804D63C
|
|
push {r4-r6,lr}
|
|
bl sub_804B2B0
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0804D67A
|
|
ldr r4, _0804D6A8
|
|
ldrh r1, [r4]
|
|
ldr r0, _0804D6AC
|
|
cmp r1, r0
|
|
bne _0804D664
|
|
ldr r0, _0804D6B0
|
|
bl SetMainCallback2
|
|
_0804D664:
|
|
ldrh r1, [r4]
|
|
ldr r0, _0804D6B4
|
|
cmp r1, r0
|
|
bne _0804D674
|
|
ldr r0, _0804D6B8
|
|
ldr r0, [r0]
|
|
adds r0, 0x9C
|
|
strb r6, [r0]
|
|
_0804D674:
|
|
movs r0, 0
|
|
bl ResetBlockReceivedFlag
|
|
_0804D67A:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D6A2
|
|
ldr r0, _0804D6A8
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _0804D6B4
|
|
cmp r1, r0
|
|
bne _0804D69C
|
|
ldr r0, _0804D6B8
|
|
ldr r0, [r0]
|
|
adds r0, 0x9D
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_0804D69C:
|
|
movs r0, 0x1
|
|
bl ResetBlockReceivedFlag
|
|
_0804D6A2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D6A8: .4byte 0x03002b80
|
|
_0804D6AC: .4byte 0x0000dcba
|
|
_0804D6B0: .4byte sub_804D588
|
|
_0804D6B4: .4byte 0x0000abcd
|
|
_0804D6B8: .4byte 0x03004828
|
|
thumb_func_end sub_804D63C
|
|
|
|
thumb_func_start sub_804D6BC
|
|
sub_804D6BC: @ 804D6BC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
ldrh r4, [r5, 0x22]
|
|
adds r4, r0
|
|
strh r4, [r5, 0x22]
|
|
ldrh r0, [r5, 0x30]
|
|
ldrh r2, [r5, 0x38]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x38]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r5, 0x20]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
cmp r4, 0x4C
|
|
ble _0804D70A
|
|
movs r0, 0x4C
|
|
strh r0, [r5, 0x22]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
muls r0, r1
|
|
negs r0, r0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
_0804D70A:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x78
|
|
bne _0804D716
|
|
movs r0, 0
|
|
strh r0, [r5, 0x30]
|
|
_0804D716:
|
|
ldrh r0, [r5, 0x36]
|
|
ldrh r2, [r5, 0x2E]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x4
|
|
bne _0804D72E
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, _0804D734
|
|
str r0, [r5, 0x1C]
|
|
_0804D72E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D734: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_804D6BC
|
|
|
|
thumb_func_start sub_804D738
|
|
sub_804D738: @ 804D738
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldr r1, _0804D7A0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x16
|
|
bne _0804D760
|
|
movs r0, 0x38
|
|
bl audio_play
|
|
_0804D760:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2C
|
|
bne _0804D796
|
|
movs r0, 0x8C
|
|
bl audio_play
|
|
ldr r0, _0804D7A4
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldrb r1, [r4, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r2, _0804D7A8
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_0804D796:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D7A0: .4byte gTradeBallVerticalVelocityTable
|
|
_0804D7A4: .4byte sub_804D7AC
|
|
_0804D7A8: .4byte 0x0000ffff
|
|
thumb_func_end sub_804D738
|
|
|
|
thumb_func_start sub_804D7AC
|
|
sub_804D7AC: @ 804D7AC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x14
|
|
bne _0804D7C0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_0804D7C0:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0804D7FE
|
|
ldr r1, _0804D804
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x17
|
|
bne _0804D7FE
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldr r0, _0804D808
|
|
ldr r0, [r0]
|
|
adds r0, 0xC4
|
|
movs r1, 0xE
|
|
strh r1, [r0]
|
|
_0804D7FE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D804: .4byte gTradeBallVerticalVelocityTable
|
|
_0804D808: .4byte 0x03004828
|
|
thumb_func_end sub_804D7AC
|
|
|
|
thumb_func_start sub_804D80C
|
|
sub_804D80C: @ 804D80C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0804D83C
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
ble _0804D88C
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x16
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x38
|
|
bl audio_play
|
|
b _0804D88C
|
|
_0804D83C:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x42
|
|
bne _0804D84A
|
|
movs r0, 0x39
|
|
bl audio_play
|
|
_0804D84A:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x5C
|
|
bne _0804D858
|
|
movs r0, 0x3A
|
|
bl audio_play
|
|
_0804D858:
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x6B
|
|
bne _0804D866
|
|
movs r0, 0x3B
|
|
bl audio_play
|
|
_0804D866:
|
|
ldr r1, _0804D894
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r3, [r4, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6C
|
|
bne _0804D88C
|
|
ldr r0, _0804D898
|
|
str r0, [r4, 0x1C]
|
|
_0804D88C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D894: .4byte gTradeBallVerticalVelocityTable
|
|
_0804D898: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_804D80C
|
|
|
|
thumb_func_start sub_804D89C
|
|
sub_804D89C: @ 804D89C
|
|
push {r4-r6,lr}
|
|
ldr r0, _0804D8D0
|
|
ldrh r0, [r0]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804D8D4
|
|
adds r4, r0
|
|
ldr r0, _0804D8D8
|
|
ldrh r1, [r4, 0x38]
|
|
movs r6, 0xB
|
|
muls r1, r6
|
|
ldr r5, _0804D8DC
|
|
adds r1, r5
|
|
bl StringCopy
|
|
ldr r0, _0804D8E0
|
|
ldrh r1, [r4, 0xC]
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl StringCopy
|
|
ldrh r0, [r4, 0x38]
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804D8D0: .4byte 0x0202e8cc
|
|
_0804D8D4: .4byte gIngameTrades
|
|
_0804D8D8: .4byte 0x020231cc
|
|
_0804D8DC: .4byte gSpeciesNames
|
|
_0804D8E0: .4byte 0x020232cc
|
|
thumb_func_end sub_804D89C
|
|
|
|
thumb_func_start sub_804D8E4
|
|
sub_804D8E4: @ 804D8E4
|
|
push {r4,lr}
|
|
sub sp, 0x20
|
|
ldr r0, _0804D92C
|
|
ldrh r0, [r0]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0804D930
|
|
adds r4, r0
|
|
ldr r0, _0804D934
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0804D938
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl PokemonGetField
|
|
ldr r0, _0804D93C
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldr r0, _0804D940
|
|
ldrh r2, [r4, 0xC]
|
|
movs r1, 0xB
|
|
muls r1, r2
|
|
ldr r2, _0804D944
|
|
adds r1, r2
|
|
bl StringCopy
|
|
add sp, 0x20
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D92C: .4byte 0x0202e8cc
|
|
_0804D930: .4byte gIngameTrades
|
|
_0804D934: .4byte 0x0202e8ce
|
|
_0804D938: .4byte 0x03004360
|
|
_0804D93C: .4byte 0x020231cc
|
|
_0804D940: .4byte 0x020232cc
|
|
_0804D944: .4byte gSpeciesNames
|
|
thumb_func_end sub_804D8E4
|
|
|
|
thumb_func_start sub_804D948
|
|
sub_804D948: @ 804D948
|
|
push {r4-r7,lr}
|
|
sub sp, 0x38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, r1, 4
|
|
subs r2, r1
|
|
lsls r2, 2
|
|
ldr r1, _0804DAA4
|
|
adds r5, r2, r1
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0804DAA8
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
bl PokemonGetField
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
add r4, sp, 0x34
|
|
movs r0, 0xFE
|
|
strb r0, [r4]
|
|
ldr r6, _0804DAAC
|
|
ldrh r1, [r5, 0xC]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
ldr r0, [r5, 0x24]
|
|
str r0, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
ldr r0, [r5, 0x18]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r6, 0
|
|
movs r3, 0x20
|
|
bl create_pokemon_set_level
|
|
adds r2, r5, 0
|
|
adds r2, 0xE
|
|
adds r0, r6, 0
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0xF
|
|
adds r0, r6, 0
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x10
|
|
adds r0, r6, 0
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x11
|
|
adds r0, r6, 0
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x12
|
|
adds r0, r6, 0
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x13
|
|
adds r0, r6, 0
|
|
movs r1, 0x2C
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x2B
|
|
adds r0, r6, 0
|
|
movs r1, 0x7
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x36
|
|
adds r0, r6, 0
|
|
movs r1, 0x31
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x14
|
|
adds r0, r6, 0
|
|
movs r1, 0x2E
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x1D
|
|
adds r0, r6, 0
|
|
movs r1, 0x17
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x1E
|
|
adds r0, r6, 0
|
|
movs r1, 0x18
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x1C
|
|
adds r0, r6, 0
|
|
movs r1, 0x16
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x1F
|
|
adds r0, r6, 0
|
|
movs r1, 0x21
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r0, r6, 0
|
|
movs r1, 0x2F
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x37
|
|
adds r0, r6, 0
|
|
movs r1, 0x30
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
movs r1, 0x23
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r4, sp
|
|
adds r4, 0x35
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldrh r0, [r5, 0x28]
|
|
cmp r0, 0
|
|
beq _0804DAC0
|
|
bl itemid_is_mail
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804DAB4
|
|
add r0, sp, 0x10
|
|
adds r1, r5, 0
|
|
bl sub_804DAD4
|
|
ldr r0, _0804DAB0
|
|
add r1, sp, 0x10
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
adds r0, r6, 0
|
|
movs r1, 0x40
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
adds r2, r5, 0
|
|
adds r2, 0x28
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
b _0804DAC0
|
|
.align 2, 0
|
|
_0804DAA4: .4byte gIngameTrades
|
|
_0804DAA8: .4byte 0x03004360
|
|
_0804DAAC: .4byte 0x030045c0
|
|
_0804DAB0: .4byte 0x02029700
|
|
_0804DAB4:
|
|
adds r2, r5, 0
|
|
adds r2, 0x28
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
_0804DAC0:
|
|
ldr r0, _0804DAD0
|
|
bl pokemon_calc_effective_stats
|
|
add sp, 0x38
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DAD0: .4byte 0x030045c0
|
|
thumb_func_end sub_804D948
|
|
|
|
thumb_func_start sub_804DAD4
|
|
sub_804DAD4: @ 804DAD4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r2, _0804DB28
|
|
adds r0, r5, 0
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
adds r1, r4, 0
|
|
movs r3, 0x8
|
|
_0804DAEE:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0804DAEE
|
|
adds r0, r4, 0
|
|
adds r0, 0x12
|
|
adds r1, r5, 0
|
|
adds r1, 0x2B
|
|
bl StringCopy
|
|
ldr r1, [r5, 0x18]
|
|
lsrs r0, r1, 24
|
|
strb r0, [r4, 0x1A]
|
|
lsrs r0, r1, 16
|
|
strb r0, [r4, 0x1B]
|
|
lsrs r0, r1, 8
|
|
strb r0, [r4, 0x1C]
|
|
strb r1, [r4, 0x1D]
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r4, 0x1E]
|
|
ldrh r0, [r5, 0x28]
|
|
strh r0, [r4, 0x20]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DB28: .4byte gIngameTradeMail
|
|
thumb_func_end sub_804DAD4
|
|
|
|
thumb_func_start sub_804DB2C
|
|
sub_804DB2C: @ 804DB2C
|
|
push {r4-r6,lr}
|
|
ldr r6, _0804DB58
|
|
ldrh r0, [r6]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, _0804DB5C
|
|
adds r0, r4
|
|
movs r1, 0x2D
|
|
bl PokemonGetField
|
|
cmp r0, 0
|
|
bne _0804DB60
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
bl PokemonGetField
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _0804DB62
|
|
.align 2, 0
|
|
_0804DB58: .4byte 0x0202e8ce
|
|
_0804DB5C: .4byte 0x03004360
|
|
_0804DB60:
|
|
movs r0, 0
|
|
_0804DB62:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804DB2C
|
|
|
|
thumb_func_start sub_804DB68
|
|
sub_804DB68: @ 804DB68
|
|
push {lr}
|
|
ldr r0, _0804DB7C
|
|
ldrb r0, [r0]
|
|
ldr r1, _0804DB80
|
|
ldrb r1, [r1]
|
|
bl sub_804D948
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DB7C: .4byte 0x0202e8ce
|
|
_0804DB80: .4byte 0x0202e8cc
|
|
thumb_func_end sub_804DB68
|
|
|
|
thumb_func_start sub_804DB84
|
|
sub_804DB84: @ 804DB84
|
|
push {r4-r6,lr}
|
|
bl sub_804C29C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x1
|
|
bne _0804DBE6
|
|
ldr r5, _0804DC04
|
|
ldr r0, [r5]
|
|
adds r0, 0xB8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0804DC08
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r5]
|
|
adds r0, 0xB9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldr r0, _0804DC0C
|
|
ldrb r4, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_804BA94
|
|
ldr r0, [r5]
|
|
adds r2, r0, 0
|
|
adds r2, 0x9E
|
|
ldr r1, _0804DC10
|
|
strh r1, [r2]
|
|
adds r0, 0xBD
|
|
strb r6, [r0]
|
|
ldr r0, _0804DC14
|
|
bl SetMainCallback2
|
|
_0804DBE6:
|
|
bl sub_804BB78
|
|
bl sub_804D63C
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DC04: .4byte 0x03004828
|
|
_0804DC08: .4byte 0x02020004
|
|
_0804DC0C: .4byte 0x020297d8
|
|
_0804DC10: .4byte 0x0000abcd
|
|
_0804DC14: .4byte sub_804DC18
|
|
thumb_func_end sub_804DB84
|
|
|
|
thumb_func_start sub_804DC18
|
|
sub_804DC18: @ 804DC18
|
|
push {r4,lr}
|
|
bl sub_804B2B0
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_804D63C
|
|
cmp r4, 0
|
|
bne _0804DC64
|
|
ldr r4, _0804DC7C
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x9C
|
|
ldrh r1, [r0]
|
|
ldr r0, _0804DC80
|
|
cmp r1, r0
|
|
bne _0804DC64
|
|
adds r1, r2, 0
|
|
adds r1, 0x9E
|
|
ldr r0, _0804DC84
|
|
strh r0, [r1]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x9E
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
ldr r0, [r4]
|
|
adds r0, 0x9C
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x9D
|
|
strb r1, [r0]
|
|
_0804DC64:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DC7C: .4byte 0x03004828
|
|
_0804DC80: .4byte 0x00000101
|
|
_0804DC84: .4byte 0x0000dcba
|
|
thumb_func_end sub_804DC18
|
|
|
|
thumb_func_start sub_804DC88
|
|
sub_804DC88: @ 804DC88
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r1, _0804DCA8
|
|
ldr r2, _0804DCAC
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x65
|
|
bls _0804DC9C
|
|
b _0804E11A
|
|
_0804DC9C:
|
|
lsls r0, 2
|
|
ldr r1, _0804DCB0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804DCA8: .4byte 0x03001770
|
|
_0804DCAC: .4byte 0x0000043c
|
|
_0804DCB0: .4byte _0804DCB4
|
|
.align 2, 0
|
|
_0804DCB4:
|
|
.4byte _0804DE4C
|
|
.4byte _0804DE9C
|
|
.4byte _0804DF14
|
|
.4byte _0804E11A
|
|
.4byte _0804DFE0
|
|
.4byte _0804E078
|
|
.4byte _0804E0A0
|
|
.4byte _0804E0BC
|
|
.4byte _0804E0E4
|
|
.4byte _0804E10C
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E008
|
|
.4byte _0804E034
|
|
.4byte _0804E04C
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804DF54
|
|
.4byte _0804DF7C
|
|
.4byte _0804DF9C
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804E11A
|
|
.4byte _0804DEB4
|
|
.4byte _0804DEF4
|
|
_0804DE4C:
|
|
ldr r5, _0804DE88
|
|
ldr r0, _0804DE8C
|
|
str r0, [r5]
|
|
ldr r1, _0804DE90
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
adds r1, 0x1
|
|
strb r1, [r2]
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1D
|
|
bl ZeroFillWindowRect
|
|
ldr r4, _0804DE94
|
|
ldr r1, _0804DE98
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0x4
|
|
adds r1, 0x34
|
|
ldrb r2, [r1]
|
|
movs r1, 0xF
|
|
str r1, [sp]
|
|
adds r1, r4, 0
|
|
b _0804DF3E
|
|
.align 2, 0
|
|
_0804DE88: .4byte 0x03004828
|
|
_0804DE8C: .4byte 0x0201f000
|
|
_0804DE90: .4byte 0x0000043c
|
|
_0804DE94: .4byte 0x020234cc
|
|
_0804DE98: .4byte gUnknown_0842D1EE
|
|
_0804DE9C:
|
|
bl sub_80084A4
|
|
ldr r0, _0804DEAC
|
|
ldr r2, _0804DEB0
|
|
adds r0, r2
|
|
movs r2, 0
|
|
movs r1, 0x64
|
|
b _0804DFEE
|
|
.align 2, 0
|
|
_0804DEAC: .4byte 0x03001770
|
|
_0804DEB0: .4byte 0x0000043c
|
|
_0804DEB4:
|
|
ldr r0, _0804DEE8
|
|
ldr r0, [r0]
|
|
adds r3, r0, 0
|
|
adds r3, 0xC0
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
str r0, [r3]
|
|
cmp r0, 0xB4
|
|
bls _0804DED2
|
|
ldr r1, _0804DEEC
|
|
adds r0, r2, r1
|
|
movs r2, 0
|
|
movs r1, 0x65
|
|
strb r1, [r0]
|
|
str r2, [r3]
|
|
_0804DED2:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804DEDE
|
|
b _0804E11A
|
|
_0804DEDE:
|
|
ldr r0, _0804DEF0
|
|
ldr r2, _0804DEEC
|
|
adds r0, r2
|
|
b _0804DF06
|
|
.align 2, 0
|
|
_0804DEE8: .4byte 0x03004828
|
|
_0804DEEC: .4byte 0x0000043c
|
|
_0804DEF0: .4byte 0x03001770
|
|
_0804DEF4:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804DF00
|
|
b _0804E11A
|
|
_0804DF00:
|
|
ldr r0, _0804DF0C
|
|
ldr r1, _0804DF10
|
|
adds r0, r1
|
|
_0804DF06:
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804DF0C: .4byte 0x03001770
|
|
_0804DF10: .4byte 0x0000043c
|
|
_0804DF14:
|
|
ldr r0, _0804DF48
|
|
adds r1, r2, r0
|
|
movs r0, 0x32
|
|
strb r0, [r1]
|
|
ldr r4, _0804DF4C
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
movs r1, 0x13
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1D
|
|
bl ZeroFillWindowRect
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _0804DF50
|
|
adds r2, 0x34
|
|
ldrb r2, [r2]
|
|
movs r3, 0xF
|
|
str r3, [sp]
|
|
_0804DF3E:
|
|
movs r3, 0x2
|
|
bl sub_8003460
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804DF48: .4byte 0x0000043c
|
|
_0804DF4C: .4byte 0x03004828
|
|
_0804DF50: .4byte gUnknown_08411905
|
|
_0804DF54:
|
|
bl sub_8047A1C
|
|
movs r0, 0x15
|
|
bl sav12_xor_increment
|
|
bl sub_8125D80
|
|
ldr r1, _0804DF74
|
|
ldr r2, _0804DF78
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
b _0804DFF0
|
|
.align 2, 0
|
|
_0804DF74: .4byte 0x03001770
|
|
_0804DF78: .4byte 0x0000043c
|
|
_0804DF7C:
|
|
ldr r0, _0804DF94
|
|
ldr r1, [r0]
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x5
|
|
beq _0804DF8E
|
|
b _0804E11A
|
|
_0804DF8E:
|
|
ldr r0, _0804DF98
|
|
adds r1, r2, r0
|
|
b _0804E0FA
|
|
.align 2, 0
|
|
_0804DF94: .4byte 0x03004828
|
|
_0804DF98: .4byte 0x0000043c
|
|
_0804DF9C:
|
|
bl sub_8125DA8
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0804DFC0
|
|
bl sub_8047A34
|
|
ldr r0, _0804DFB8
|
|
ldr r1, _0804DFBC
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804DFB8: .4byte 0x03001770
|
|
_0804DFBC: .4byte 0x0000043c
|
|
_0804DFC0:
|
|
ldr r0, _0804DFD4
|
|
ldr r0, [r0]
|
|
adds r0, 0xC0
|
|
str r1, [r0]
|
|
ldr r0, _0804DFD8
|
|
ldr r2, _0804DFDC
|
|
adds r0, r2
|
|
movs r1, 0x33
|
|
strb r1, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804DFD4: .4byte 0x03004828
|
|
_0804DFD8: .4byte 0x03001770
|
|
_0804DFDC: .4byte 0x0000043c
|
|
_0804DFE0:
|
|
bl sub_8125DDC
|
|
ldr r0, _0804DFFC
|
|
ldr r1, _0804E000
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x28
|
|
_0804DFEE:
|
|
strb r1, [r0]
|
|
_0804DFF0:
|
|
ldr r0, _0804E004
|
|
ldr r0, [r0]
|
|
adds r0, 0xC0
|
|
str r2, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804DFFC: .4byte 0x03001770
|
|
_0804E000: .4byte 0x0000043c
|
|
_0804E004: .4byte 0x03004828
|
|
_0804E008:
|
|
ldr r0, _0804E02C
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x32
|
|
bhi _0804E01C
|
|
b _0804E11A
|
|
_0804E01C:
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _0804E030
|
|
adds r1, r2, r0
|
|
movs r0, 0x29
|
|
strb r0, [r1]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804E02C: .4byte 0x03004828
|
|
_0804E030: .4byte 0x0000043c
|
|
_0804E034:
|
|
bl sub_80084A4
|
|
ldr r0, _0804E044
|
|
ldr r1, _0804E048
|
|
adds r0, r1
|
|
movs r1, 0x2A
|
|
strb r1, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804E044: .4byte 0x03001770
|
|
_0804E048: .4byte 0x0000043c
|
|
_0804E04C:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804E11A
|
|
bl sub_8125E04
|
|
ldr r1, _0804E06C
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _0804E070
|
|
ldr r2, _0804E074
|
|
adds r0, r2
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804E06C: .4byte 0x03001bb4
|
|
_0804E070: .4byte 0x03001770
|
|
_0804E074: .4byte 0x0000043c
|
|
_0804E078:
|
|
ldr r0, _0804E098
|
|
ldr r1, [r0]
|
|
adds r1, 0xC0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bls _0804E11A
|
|
ldr r0, _0804E09C
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_80084A4
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804E098: .4byte 0x03004828
|
|
_0804E09C: .4byte 0x0000043c
|
|
_0804E0A0:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804E11A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0804E0F4
|
|
_0804E0BC:
|
|
ldr r0, _0804E0D8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E11A
|
|
movs r0, 0x3
|
|
bl play_sound_effect
|
|
ldr r1, _0804E0DC
|
|
ldr r0, _0804E0E0
|
|
adds r1, r0
|
|
b _0804E0FA
|
|
.align 2, 0
|
|
_0804E0D8: .4byte 0x0202f388
|
|
_0804E0DC: .4byte 0x03001770
|
|
_0804E0E0: .4byte 0x0000043c
|
|
_0804E0E4:
|
|
bl sub_8075028
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0804E11A
|
|
bl sub_800832C
|
|
_0804E0F4:
|
|
ldr r1, _0804E104
|
|
ldr r2, _0804E108
|
|
adds r1, r2
|
|
_0804E0FA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804E11A
|
|
.align 2, 0
|
|
_0804E104: .4byte 0x03001770
|
|
_0804E108: .4byte 0x0000043c
|
|
_0804E10C:
|
|
ldr r0, _0804E13C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804E11A
|
|
ldr r0, _0804E140
|
|
bl SetMainCallback2
|
|
_0804E11A:
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804E128
|
|
bl RunTasks
|
|
_0804E128:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E13C: .4byte 0x03002fa4
|
|
_0804E140: .4byte sub_804E144
|
|
thumb_func_end sub_804DC88
|
|
|
|
thumb_func_start sub_804E144
|
|
sub_804E144: @ 804E144
|
|
push {lr}
|
|
ldr r0, _0804E16C
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E158
|
|
ldr r0, _0804E170
|
|
bl SetMainCallback2
|
|
_0804E158:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E16C: .4byte 0x0202f388
|
|
_0804E170: .4byte sub_8047CD8
|
|
thumb_func_end sub_804E144
|
|
|
|
thumb_func_start sub_804E174
|
|
sub_804E174: @ 804E174
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl script_env_2_enable
|
|
ldr r0, _0804E19C
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E19C: .4byte sub_804E1A0
|
|
thumb_func_end sub_804E174
|
|
|
|
thumb_func_start sub_804E1A0
|
|
sub_804E1A0: @ 804E1A0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0804E1CC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E1C4
|
|
ldr r0, _0804E1D0
|
|
bl SetMainCallback2
|
|
ldr r1, _0804E1D4
|
|
ldr r0, _0804E1D8
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0804E1C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E1CC: .4byte 0x0202f388
|
|
_0804E1D0: .4byte sub_804B790
|
|
_0804E1D4: .4byte 0x0300485c
|
|
_0804E1D8: .4byte sub_8080990
|
|
thumb_func_end sub_804E1A0
|
|
|
|
thumb_func_start sub_804E1DC
|
|
sub_804E1DC: @ 804E1DC
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0804E1E2:
|
|
ldr r0, _0804E220
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0804E224
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
bl PokemonGetField
|
|
adds r0, r5, r0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xB
|
|
bls _0804E1E2
|
|
cmp r5, 0
|
|
beq _0804E21A
|
|
ldr r0, _0804E228
|
|
bl FlagSet
|
|
_0804E21A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E220: .4byte 0x020297d8
|
|
_0804E224: .4byte 0x030045c0
|
|
_0804E228: .4byte 0x0000083b
|
|
thumb_func_end sub_804E1DC
|
|
|
|
thumb_func_start sub_804E22C
|
|
sub_804E22C: @ 804E22C
|
|
push {r4,lr}
|
|
ldr r0, _0804E26C
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r0, _0804E270
|
|
ldr r4, _0804E274
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
ldr r1, _0804E278
|
|
ldr r0, _0804E27C
|
|
str r4, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804E280
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r0, _0804E284
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r1, _0804E288
|
|
ldr r2, _0804E28C
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E26C: .4byte gUnknown_08D00000
|
|
_0804E270: .4byte gUnknown_08D00524
|
|
_0804E274: .4byte 0x02000000
|
|
_0804E278: .4byte 0x06002800
|
|
_0804E27C: .4byte 0x040000d4
|
|
_0804E280: .4byte 0x80000280
|
|
_0804E284: .4byte gUnknown_08D004E0
|
|
_0804E288: .4byte REG_BG1CNT
|
|
_0804E28C: .4byte 0x00000502
|
|
thumb_func_end sub_804E22C
|
|
|
|
thumb_func_start sub_804E290
|
|
sub_804E290: @ 804E290
|
|
push {lr}
|
|
ldr r0, _0804E2B0
|
|
ldr r1, _0804E2B4
|
|
ldr r2, _0804E2B8
|
|
ldr r2, [r2]
|
|
adds r2, 0x56
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
subs r2, 0x80
|
|
lsls r2, 17
|
|
asrs r2, 16
|
|
bl m4aMPlayPitchControl
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E2B0: .4byte 0x03007400
|
|
_0804E2B4: .4byte 0x0000ffff
|
|
_0804E2B8: .4byte 0x03004854
|
|
thumb_func_end sub_804E290
|
|
|
|
thumb_func_start sub_804E2BC
|
|
sub_804E2BC: @ 804E2BC
|
|
push {lr}
|
|
bl sub_80514A4
|
|
bl sub_80514F0
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804E2BC
|
|
|
|
thumb_func_start sub_804E2D8
|
|
sub_804E2D8: @ 804E2D8
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804E2D8
|
|
|
|
thumb_func_start sub_804E2EC
|
|
sub_804E2EC: @ 804E2EC
|
|
push {r4-r7,lr}
|
|
ldr r1, _0804E308
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x1]
|
|
mov r12, r1
|
|
cmp r0, 0x9
|
|
bls _0804E2FC
|
|
b _0804E4F4
|
|
_0804E2FC:
|
|
lsls r0, 2
|
|
ldr r1, _0804E30C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804E308: .4byte 0x03004854
|
|
_0804E30C: .4byte _0804E310
|
|
.align 2, 0
|
|
_0804E310:
|
|
.4byte _0804E338
|
|
.4byte _0804E34C
|
|
.4byte _0804E380
|
|
.4byte _0804E3C4
|
|
.4byte _0804E3D8
|
|
.4byte _0804E3EC
|
|
.4byte _0804E410
|
|
.4byte _0804E434
|
|
.4byte _0804E48C
|
|
.4byte _0804E4BC
|
|
_0804E338:
|
|
ldr r0, _0804E344
|
|
ldr r1, _0804E348
|
|
bl sub_800D238
|
|
b _0804E49E
|
|
.align 2, 0
|
|
_0804E344: .4byte gUnknown_08E6C100
|
|
_0804E348: .4byte 0x02010000
|
|
_0804E34C:
|
|
ldr r1, _0804E36C
|
|
ldr r2, _0804E370
|
|
ldr r0, _0804E374
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804E378
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r0, _0804E37C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
movs r1, 0
|
|
bl LoadPalette
|
|
b _0804E49E
|
|
.align 2, 0
|
|
_0804E36C: .4byte gUnknown_08215C2C
|
|
_0804E370: .4byte 0x06004000
|
|
_0804E374: .4byte 0x040000d4
|
|
_0804E378: .4byte 0x80000200
|
|
_0804E37C: .4byte gUnknown_08215C0C
|
|
_0804E380:
|
|
ldr r3, _0804E3B8
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
movs r5, 0x80
|
|
lsls r5, 6
|
|
ldr r1, _0804E3BC
|
|
ldr r6, _0804E3C0
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0804E396:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0804E396
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r0, r12
|
|
b _0804E4A0
|
|
.align 2, 0
|
|
_0804E3B8: .4byte 0x02010000
|
|
_0804E3BC: .4byte 0x040000d4
|
|
_0804E3C0: .4byte 0x80000800
|
|
_0804E3C4:
|
|
ldr r0, _0804E3D0
|
|
ldr r1, _0804E3D4
|
|
bl sub_800D238
|
|
b _0804E49E
|
|
.align 2, 0
|
|
_0804E3D0: .4byte gUnknown_08E6C920
|
|
_0804E3D4: .4byte 0x02010000
|
|
_0804E3D8:
|
|
ldr r0, _0804E3E4
|
|
ldr r1, _0804E3E8
|
|
bl sub_800D238
|
|
b _0804E49E
|
|
.align 2, 0
|
|
_0804E3E4: .4byte gUnknown_08E6D354
|
|
_0804E3E8: .4byte 0x02013000
|
|
_0804E3EC:
|
|
ldr r1, _0804E400
|
|
ldr r2, _0804E404
|
|
ldr r0, _0804E408
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804E40C
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
mov r0, r12
|
|
b _0804E4A0
|
|
.align 2, 0
|
|
_0804E400: .4byte 0x02010000
|
|
_0804E404: .4byte 0x0600e000
|
|
_0804E408: .4byte 0x040000d4
|
|
_0804E40C: .4byte 0x80000800
|
|
_0804E410:
|
|
ldr r1, _0804E424
|
|
ldr r2, _0804E428
|
|
ldr r0, _0804E42C
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0804E430
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
mov r0, r12
|
|
b _0804E4A0
|
|
.align 2, 0
|
|
_0804E424: .4byte 0x02011000
|
|
_0804E428: .4byte 0x0600f000
|
|
_0804E42C: .4byte 0x040000d4
|
|
_0804E430: .4byte 0x80000800
|
|
_0804E434:
|
|
ldr r3, _0804E474
|
|
movs r2, 0
|
|
adds r6, r3, 0
|
|
ldr r7, _0804E478
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r5, r0, 0
|
|
ldr r4, _0804E47C
|
|
_0804E444:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
orrs r1, r5
|
|
strh r1, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, r4
|
|
bls _0804E444
|
|
ldr r1, _0804E480
|
|
ldr r0, _0804E484
|
|
str r6, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0804E488
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x80
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _0804E49E
|
|
.align 2, 0
|
|
_0804E474: .4byte 0x02013000
|
|
_0804E478: .4byte gUnknown_0821602C
|
|
_0804E47C: .4byte 0x0000027f
|
|
_0804E480: .4byte 0x06006000
|
|
_0804E484: .4byte 0x040000d4
|
|
_0804E488: .4byte 0x80000280
|
|
_0804E48C:
|
|
ldr r0, _0804E4AC
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804E4B0
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804E4B4
|
|
bl LoadSpriteSheet
|
|
_0804E49E:
|
|
ldr r0, _0804E4B8
|
|
_0804E4A0:
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _0804E4F4
|
|
.align 2, 0
|
|
_0804E4AC: .4byte gUnknown_082163DC
|
|
_0804E4B0: .4byte gUnknown_082164F4
|
|
_0804E4B4: .4byte gUnknown_08216454
|
|
_0804E4B8: .4byte 0x03004854
|
|
_0804E4BC:
|
|
ldr r0, _0804E4E0
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804E4E4
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0804E4E8
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804E4EC
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804E4F0
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x1
|
|
b _0804E4F6
|
|
.align 2, 0
|
|
_0804E4E0: .4byte gUnknown_08216540
|
|
_0804E4E4: .4byte gUnknown_08216574
|
|
_0804E4E8: .4byte gUnknown_082163EC
|
|
_0804E4EC: .4byte gUnknown_082163E4
|
|
_0804E4F0: .4byte 0x03004854
|
|
_0804E4F4:
|
|
movs r0, 0
|
|
_0804E4F6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804E2EC
|
|
|
|
thumb_func_start sub_804E4FC
|
|
sub_804E4FC: @ 804E4FC
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ldr r2, _0804E52C
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
movs r2, 0x91
|
|
lsls r2, 7
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
subs r1, 0x2
|
|
ldr r2, _0804E530
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804E534
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804E52C: .4byte 0x00001341
|
|
_0804E530: .4byte 0x00000c0d
|
|
_0804E534: .4byte REG_BG0HOFS
|
|
thumb_func_end sub_804E4FC
|
|
|
|
thumb_func_start sub_804E538
|
|
sub_804E538: @ 804E538
|
|
push {lr}
|
|
ldr r1, _0804E55C
|
|
ldr r0, _0804E560
|
|
str r0, [r1]
|
|
adds r2, r0, 0
|
|
adds r2, 0x6F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
strb r1, [r2]
|
|
ldr r0, _0804E564
|
|
ldrb r0, [r0]
|
|
bl sub_804E884
|
|
ldr r0, _0804E568
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E55C: .4byte 0x03004854
|
|
_0804E560: .4byte 0x02018000
|
|
_0804E564: .4byte 0x0202e8cc
|
|
_0804E568: .4byte sub_804E56C
|
|
thumb_func_end sub_804E538
|
|
|
|
thumb_func_start sub_804E56C
|
|
sub_804E56C: @ 804E56C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0804E588
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bls _0804E57C
|
|
b _0804E71A
|
|
_0804E57C:
|
|
lsls r0, 2
|
|
ldr r1, _0804E58C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804E588: .4byte 0x03004854
|
|
_0804E58C: .4byte _0804E590
|
|
.align 2, 0
|
|
_0804E590:
|
|
.4byte _0804E5AC
|
|
.4byte _0804E614
|
|
.4byte _0804E67C
|
|
.4byte _0804E692
|
|
.4byte _0804E6A8
|
|
.4byte _0804E6D4
|
|
.4byte _0804E700
|
|
_0804E5AC:
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r5, 0
|
|
strh r5, [r0]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r4, _0804E60C
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
adds r0, r4, 0
|
|
bl sub_8071C4C
|
|
ldr r3, _0804E610
|
|
ldr r2, [r3]
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strb r0, [r2]
|
|
ldr r2, [r3]
|
|
movs r3, 0xA0
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
subs r3, 0x2
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
adds r3, r2, r0
|
|
movs r0, 0x50
|
|
strh r0, [r3]
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
strb r5, [r2, 0x1]
|
|
bl sub_8051474
|
|
b _0804E71A
|
|
.align 2, 0
|
|
_0804E60C: .4byte gWindowConfig_81E6F68
|
|
_0804E610: .4byte 0x03004854
|
|
_0804E614:
|
|
bl sub_804E2EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804E620
|
|
b _0804E71A
|
|
_0804E620:
|
|
movs r4, 0
|
|
ldr r5, _0804E668
|
|
ldr r6, _0804E66C
|
|
_0804E626:
|
|
ldrb r1, [r5]
|
|
ldrb r2, [r5, 0x1]
|
|
ldr r0, _0804E670
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0x5C
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x5C
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804E674
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804E626
|
|
ldr r0, _0804E678
|
|
bl SetVBlankCallback
|
|
b _0804E6BE
|
|
.align 2, 0
|
|
_0804E668: .4byte gUnknown_082162E4
|
|
_0804E66C: .4byte 0x03004854
|
|
_0804E670: .4byte gSpriteTemplate_82163F4
|
|
_0804E674: .4byte 0x02020004
|
|
_0804E678: .4byte sub_804E2BC
|
|
_0804E67C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
bl sub_8051474
|
|
b _0804E6BE
|
|
_0804E692:
|
|
bl sub_804E4FC
|
|
ldr r0, _0804E6A4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E71A
|
|
b _0804E6BE
|
|
.align 2, 0
|
|
_0804E6A4: .4byte 0x0202f388
|
|
_0804E6A8:
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _0804E6CC
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
_0804E6BE:
|
|
ldr r0, _0804E6D0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804E71A
|
|
.align 2, 0
|
|
_0804E6CC: .4byte gUnknown_0842D307
|
|
_0804E6D0: .4byte 0x03004854
|
|
_0804E6D4:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804E71A
|
|
ldr r0, _0804E6FC
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r2, [sp]
|
|
movs r1, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0804E71A
|
|
.align 2, 0
|
|
_0804E6FC: .4byte 0x03004854
|
|
_0804E700:
|
|
ldr r0, _0804E730
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0804E71A
|
|
bl sub_80A6978
|
|
ldr r0, _0804E734
|
|
ldr r0, [r0]
|
|
strb r4, [r0]
|
|
_0804E71A:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E730: .4byte 0x0202f388
|
|
_0804E734: .4byte 0x03004854
|
|
thumb_func_end sub_804E56C
|
|
|
|
thumb_func_start sub_804E738
|
|
sub_804E738: @ 804E738
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x32]
|
|
ldrh r2, [r4, 0x36]
|
|
subs r1, r2
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x32]
|
|
ldrh r3, [r4, 0x2E]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x2E]
|
|
subs r2, 0x1
|
|
strh r2, [r4, 0x36]
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
cmp r0, r1
|
|
bge _0804E786
|
|
ldrh r0, [r4, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _0804E780
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _0804E786
|
|
_0804E780:
|
|
movs r0, 0x74
|
|
bl audio_play
|
|
_0804E786:
|
|
ldrh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x32]
|
|
strh r0, [r4, 0x22]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804E738
|
|
|
|
thumb_func_start sub_804E794
|
|
sub_804E794: @ 804E794
|
|
push {r4-r6,lr}
|
|
ldr r5, [sp, 0x10]
|
|
ldr r6, [sp, 0x14]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r4, 0
|
|
strh r2, [r0, 0x2E]
|
|
strh r1, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
strh r3, [r0, 0x34]
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x36]
|
|
strh r4, [r0, 0x38]
|
|
strh r5, [r0, 0x3A]
|
|
strh r6, [r0, 0x3C]
|
|
ldr r1, _0804E7BC
|
|
str r1, [r0, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E7BC: .4byte sub_804E738
|
|
thumb_func_end sub_804E794
|
|
|
|
thumb_func_start sub_804E7C0
|
|
sub_804E7C0: @ 804E7C0
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x8
|
|
adds r6, r1, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r0, 24
|
|
movs r1, 0xF6
|
|
lsls r1, 23
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
movs r3, 0x1
|
|
ands r3, r6
|
|
movs r1, 0
|
|
movs r2, 0x50
|
|
bl sub_80A7DEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r2, r0, 4
|
|
mov r8, r2
|
|
add r8, r0
|
|
mov r3, r8
|
|
lsls r3, 2
|
|
mov r8, r3
|
|
ldr r0, _0804E83C
|
|
add r8, r0
|
|
ldr r5, _0804E840
|
|
lsls r4, r6, 2
|
|
adds r4, r6
|
|
lsls r4, 1
|
|
adds r0, r4, r5
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
adds r0, r5, 0x2
|
|
adds r0, r4, r0
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
adds r0, r5, 0x4
|
|
adds r0, r4, r0
|
|
movs r6, 0
|
|
ldrsh r3, [r0, r6]
|
|
adds r0, r5, 0x6
|
|
adds r0, r4, r0
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
str r0, [sp]
|
|
adds r5, 0x8
|
|
adds r4, r5
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
bl sub_804E794
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E83C: .4byte 0x02020004
|
|
_0804E840: .4byte gUnknown_08216594
|
|
thumb_func_end sub_804E7C0
|
|
|
|
thumb_func_start sub_804E844
|
|
sub_804E844: @ 804E844
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r5, r1, 16
|
|
lsrs r5, 16
|
|
adds r0, r5, 0
|
|
adds r0, 0x7C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBerryInfo
|
|
adds r4, r0, 0
|
|
strh r5, [r6]
|
|
adds r0, r6, 0x2
|
|
adds r1, r4, 0
|
|
bl StringCopy
|
|
ldrb r0, [r4, 0x15]
|
|
strb r0, [r6, 0x9]
|
|
ldrb r0, [r4, 0x16]
|
|
strb r0, [r6, 0xA]
|
|
ldrb r0, [r4, 0x17]
|
|
strb r0, [r6, 0xB]
|
|
ldrb r0, [r4, 0x18]
|
|
strb r0, [r6, 0xC]
|
|
ldrb r0, [r4, 0x19]
|
|
strb r0, [r6, 0xD]
|
|
ldrb r0, [r4, 0x1A]
|
|
strb r0, [r6, 0xE]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804E844
|
|
|
|
thumb_func_start sub_804E884
|
|
sub_804E884: @ 804E884
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0804E89E
|
|
ldr r2, _0804E8AC
|
|
movs r3, 0x2
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
_0804E896:
|
|
strh r3, [r0, 0x1A]
|
|
subs r0, 0x1C
|
|
cmp r0, r2
|
|
bge _0804E896
|
|
_0804E89E:
|
|
cmp r1, 0x1
|
|
beq _0804E8C4
|
|
cmp r1, 0x1
|
|
bgt _0804E8B0
|
|
cmp r1, 0
|
|
beq _0804E8BA
|
|
b _0804E974
|
|
.align 2, 0
|
|
_0804E8AC: .4byte 0x03002970
|
|
_0804E8B0:
|
|
cmp r1, 0x2
|
|
beq _0804E8F8
|
|
cmp r1, 0x3
|
|
beq _0804E93C
|
|
b _0804E974
|
|
_0804E8BA:
|
|
ldr r0, _0804E8C0
|
|
strb r1, [r0]
|
|
b _0804E974
|
|
.align 2, 0
|
|
_0804E8C0: .4byte 0x03004834
|
|
_0804E8C4:
|
|
ldr r0, _0804E8E4
|
|
strb r1, [r0]
|
|
ldr r0, _0804E8E8
|
|
ldr r0, [r0]
|
|
adds r0, 0x88
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r4, _0804E8EC
|
|
ldr r1, _0804E8F0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r4, 0x1C
|
|
ldr r0, _0804E8F4
|
|
ldr r1, [r0]
|
|
b _0804E920
|
|
.align 2, 0
|
|
_0804E8E4: .4byte 0x03004834
|
|
_0804E8E8: .4byte 0x03004854
|
|
_0804E8EC: .4byte 0x03002978
|
|
_0804E8F0: .4byte gSaveBlock2
|
|
_0804E8F4: .4byte gUnknown_082162B8
|
|
_0804E8F8:
|
|
ldr r0, _0804E928
|
|
strb r1, [r0]
|
|
ldr r0, _0804E92C
|
|
ldr r0, [r0]
|
|
adds r0, 0x88
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r4, _0804E930
|
|
ldr r1, _0804E934
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
ldr r5, _0804E938
|
|
ldr r1, [r5]
|
|
bl StringCopy
|
|
adds r4, 0x38
|
|
ldr r1, [r5, 0x4]
|
|
_0804E920:
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
b _0804E974
|
|
.align 2, 0
|
|
_0804E928: .4byte 0x03004834
|
|
_0804E92C: .4byte 0x03004854
|
|
_0804E930: .4byte 0x03002978
|
|
_0804E934: .4byte gSaveBlock2
|
|
_0804E938: .4byte gUnknown_082162B8
|
|
_0804E93C:
|
|
ldr r0, _0804E97C
|
|
strb r1, [r0]
|
|
ldr r0, _0804E980
|
|
ldr r0, [r0]
|
|
adds r0, 0x88
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
ldr r4, _0804E984
|
|
ldr r1, _0804E988
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
ldr r5, _0804E98C
|
|
ldr r1, [r5]
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
ldr r1, [r5, 0x4]
|
|
bl StringCopy
|
|
adds r4, 0x54
|
|
ldr r1, [r5, 0x8]
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
_0804E974:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E97C: .4byte 0x03004834
|
|
_0804E980: .4byte 0x03004854
|
|
_0804E984: .4byte 0x03002978
|
|
_0804E988: .4byte gSaveBlock2
|
|
_0804E98C: .4byte gUnknown_082162B8
|
|
thumb_func_end sub_804E884
|
|
|
|
thumb_func_start sub_804E990
|
|
sub_804E990: @ 804E990
|
|
push {r4,r5,lr}
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r3, _0804E9D8
|
|
ldr r0, _0804E9DC
|
|
str r0, [r3]
|
|
movs r1, 0
|
|
strb r2, [r0]
|
|
movs r2, 0x9A
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
movs r2, 0
|
|
ldr r5, _0804E9E0
|
|
adds r4, r3, 0
|
|
movs r3, 0
|
|
_0804E9B4:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 1
|
|
adds r0, 0x80
|
|
adds r0, r1
|
|
strh r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _0804E9B4
|
|
ldrb r0, [r5]
|
|
bl sub_804E884
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
bne _0804E9E8
|
|
ldr r0, _0804E9E4
|
|
bl SetMainCallback2
|
|
b _0804E9EE
|
|
.align 2, 0
|
|
_0804E9D8: .4byte 0x03004854
|
|
_0804E9DC: .4byte 0x02018000
|
|
_0804E9E0: .4byte 0x0202e8cc
|
|
_0804E9E4: .4byte sub_804E9F8
|
|
_0804E9E8:
|
|
ldr r0, _0804E9F4
|
|
bl SetMainCallback2
|
|
_0804E9EE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E9F4: .4byte sub_804F378
|
|
thumb_func_end sub_804E990
|
|
|
|
thumb_func_start sub_804E9F8
|
|
sub_804E9F8: @ 804E9F8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r1, _0804EA18
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
mov r8, r1
|
|
cmp r0, 0x66
|
|
bls _0804EA0E
|
|
b _0804F0CE
|
|
_0804EA0E:
|
|
lsls r0, 2
|
|
ldr r1, _0804EA1C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804EA18: .4byte 0x03004854
|
|
_0804EA1C: .4byte _0804EA20
|
|
.align 2, 0
|
|
_0804EA20:
|
|
.4byte _0804EBBC
|
|
.4byte _0804EC74
|
|
.4byte _0804EC94
|
|
.4byte _0804ECE8
|
|
.4byte _0804ECFA
|
|
.4byte _0804ED14
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804ED48
|
|
.4byte _0804ED94
|
|
.4byte _0804EDB8
|
|
.4byte _0804EE46
|
|
.4byte _0804EEA0
|
|
.4byte _0804EF16
|
|
.4byte _0804EF34
|
|
.4byte _0804EFD8
|
|
.4byte _0804F00C
|
|
.4byte _0804F0CE
|
|
.4byte _0804F020
|
|
.4byte _0804F024
|
|
.4byte _0804F02A
|
|
.4byte _0804F03A
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F0CE
|
|
.4byte _0804F084
|
|
.4byte _0804F0A0
|
|
.4byte _0804F0BC
|
|
_0804EBBC:
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
ldr r0, _0804EC60
|
|
bl SetVBlankCallback
|
|
ldr r4, _0804EC64
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
adds r0, r4, 0
|
|
bl sub_8071C4C
|
|
ldr r1, _0804EC68
|
|
ldr r2, _0804EC6C
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r3, _0804EC70
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r4, r0, 0
|
|
adds r4, 0x4E
|
|
movs r1, 0
|
|
strh r2, [r4]
|
|
adds r0, 0x7E
|
|
strb r1, [r0]
|
|
ldr r1, [r3]
|
|
movs r4, 0xA2
|
|
lsls r4, 1
|
|
adds r0, r1, r4
|
|
strh r2, [r0]
|
|
adds r4, 0x2
|
|
adds r0, r1, r4
|
|
strh r2, [r0]
|
|
movs r5, 0
|
|
movs r6, 0
|
|
mov r8, r3
|
|
movs r7, 0xA6
|
|
lsls r7, 1
|
|
_0804EC18:
|
|
ldr r0, [r3]
|
|
lsls r1, r5, 1
|
|
adds r0, 0x70
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r4, r5, 0x1
|
|
adds r1, r5
|
|
lsls r1, 1
|
|
movs r2, 0x2
|
|
_0804EC2A:
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0804EC2A
|
|
adds r5, r4, 0
|
|
cmp r5, 0x3
|
|
ble _0804EC18
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x7C
|
|
movs r2, 0
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
subs r0, 0x26
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x6
|
|
strh r1, [r0]
|
|
strb r2, [r3, 0x1]
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804EC60: .4byte sub_804E2BC
|
|
_0804EC64: .4byte gWindowConfig_81E6F68
|
|
_0804EC68: .4byte 0x03002b74
|
|
_0804EC6C: .4byte 0x00004422
|
|
_0804EC70: .4byte 0x03004854
|
|
_0804EC74:
|
|
bl sub_804E2EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804EC80
|
|
b _0804F0CE
|
|
_0804EC80:
|
|
ldr r0, _0804EC90
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_8051474
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804EC90: .4byte 0x03004854
|
|
_0804EC94:
|
|
movs r5, 0
|
|
ldr r4, _0804ECD8
|
|
ldr r6, _0804ECDC
|
|
_0804EC9A:
|
|
ldrb r1, [r4]
|
|
ldrb r2, [r4, 0x1]
|
|
ldr r0, _0804ECE0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0x60
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x60
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804ECE4
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0804EC9A
|
|
b _0804F0AA
|
|
.align 2, 0
|
|
_0804ECD8: .4byte gUnknown_082162E4
|
|
_0804ECDC: .4byte 0x03004854
|
|
_0804ECE0: .4byte gSpriteTemplate_82163F4
|
|
_0804ECE4: .4byte 0x02020004
|
|
_0804ECE8:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _0804F0AA
|
|
_0804ECFA:
|
|
bl sub_804E4FC
|
|
ldr r0, _0804ED10
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804ED0C
|
|
b _0804F0CE
|
|
_0804ED0C:
|
|
b _0804F0AA
|
|
.align 2, 0
|
|
_0804ED10: .4byte 0x0202f388
|
|
_0804ED14:
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _0804ED40
|
|
movs r1, 0x1
|
|
movs r2, 0xE
|
|
bl Print
|
|
ldr r2, _0804ED44
|
|
ldr r1, [r2]
|
|
movs r3, 0
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804ED40: .4byte gUnknown_0842D3A5
|
|
_0804ED44: .4byte 0x03004854
|
|
_0804ED48:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
movs r3, 0x9E
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r5, [r0]
|
|
ldr r0, [r2]
|
|
movs r4, 0xBE
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
ldr r1, _0804ED8C
|
|
ldrh r1, [r1]
|
|
bl sub_804E844
|
|
ldr r0, _0804ED90
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, r4
|
|
movs r2, 0x10
|
|
bl memcpy
|
|
bl sub_80084A4
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
subs r4, 0x4C
|
|
adds r0, r4
|
|
str r5, [r0]
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804ED8C: .4byte 0x0203855e
|
|
_0804ED90: .4byte 0x03002a70
|
|
_0804ED94:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804EDA0
|
|
b _0804F0CE
|
|
_0804EDA0:
|
|
bl ResetBlockReceivedFlags
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804EDB0
|
|
b _0804F0AA
|
|
_0804EDB0:
|
|
movs r0, 0x4
|
|
bl sub_8007E9C
|
|
b _0804F0AA
|
|
_0804EDB8:
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x14
|
|
bgt _0804EDCE
|
|
b _0804F0CE
|
|
_0804EDCE:
|
|
bl sub_8071EF4
|
|
bl GetBlockRecievedStatus
|
|
adds r4, r0, 0
|
|
bl sub_8008198
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0804EDE6
|
|
b _0804F0CE
|
|
_0804EDE6:
|
|
movs r5, 0
|
|
mov r7, r8
|
|
movs r6, 0xBE
|
|
lsls r6, 1
|
|
b _0804EE18
|
|
_0804EDF0:
|
|
ldr r0, [r7]
|
|
lsls r4, r5, 4
|
|
adds r0, r4, r0
|
|
adds r0, r6
|
|
lsls r1, r5, 8
|
|
ldr r2, _0804EE2C
|
|
adds r1, r2
|
|
movs r2, 0x10
|
|
bl memcpy
|
|
ldr r0, [r7]
|
|
lsls r2, r5, 1
|
|
adds r1, r0, 0
|
|
adds r1, 0x80
|
|
adds r1, r2
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r5, 0x1
|
|
_0804EE18:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
blt _0804EDF0
|
|
bl ResetBlockReceivedFlags
|
|
b _0804F0AA
|
|
.align 2, 0
|
|
_0804EE2C: .4byte 0x03002b80
|
|
_0804EE30:
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x80
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
bl sub_804E7C0
|
|
b _0804EE7A
|
|
_0804EE46:
|
|
bl GetLinkPlayerCount
|
|
ldr r2, _0804EE98
|
|
ldr r1, [r2]
|
|
adds r1, 0x88
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r2, [r2]
|
|
movs r3, 0x9E
|
|
lsls r3, 1
|
|
adds r4, r2, r3
|
|
ldr r1, _0804EE9C
|
|
adds r0, r2, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 2
|
|
ldrb r3, [r4]
|
|
adds r0, r1
|
|
_0804EE6C:
|
|
ldrb r1, [r0]
|
|
cmp r3, r1
|
|
beq _0804EE30
|
|
adds r0, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0804EE6C
|
|
_0804EE7A:
|
|
ldr r3, _0804EE98
|
|
ldr r1, [r3]
|
|
movs r4, 0x98
|
|
lsls r4, 1
|
|
adds r2, r1, r4
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r3]
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
b _0804F0AE
|
|
.align 2, 0
|
|
_0804EE98: .4byte 0x03004854
|
|
_0804EE9C: .4byte gUnknown_082162EC
|
|
_0804EEA0:
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
movs r3, 0x98
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bgt _0804EEB6
|
|
b _0804F0CE
|
|
_0804EEB6:
|
|
movs r4, 0x9E
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
adds r1, r2, 0
|
|
adds r1, 0x88
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0804EF00
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldr r3, _0804EEF4
|
|
ldr r1, _0804EEF8
|
|
adds r0, r2, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldr r3, _0804EEFC
|
|
adds r1, r3, 0
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
adds r2, 0x54
|
|
strh r1, [r2]
|
|
b _0804EF06
|
|
.align 2, 0
|
|
_0804EEF4: .4byte gUnknown_082162F8
|
|
_0804EEF8: .4byte gUnknown_08216300
|
|
_0804EEFC: .4byte 0xffffa800
|
|
_0804EF00:
|
|
ldrb r0, [r2]
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
_0804EF06:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
b _0804F0CE
|
|
_0804EF16:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804EF22
|
|
b _0804F0CE
|
|
_0804EF22:
|
|
ldr r2, _0804EF30
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
b _0804EFBC
|
|
.align 2, 0
|
|
_0804EF30: .4byte 0x03004854
|
|
_0804EF34:
|
|
movs r2, 0x80
|
|
lsls r2, 19
|
|
ldrh r0, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
mov r4, r8
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
adds r0, r3, 0
|
|
ldrh r4, [r1]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x4
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xFF
|
|
bls _0804EFB8
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
mov r1, r8
|
|
ldr r3, [r1]
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
ldr r2, _0804EFC8
|
|
ldr r1, _0804EFCC
|
|
adds r0, r3, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x54
|
|
strh r1, [r0]
|
|
ldr r1, _0804EFD0
|
|
ldr r4, _0804EFD4
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bl sub_804F238
|
|
bl BuyMenuDrawFieldObjects
|
|
_0804EFB8:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
_0804EFBC:
|
|
movs r2, 0xB4
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
bl sub_8051414
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804EFC8: .4byte gUnknown_082162F8
|
|
_0804EFCC: .4byte gUnknown_08216300
|
|
_0804EFD0: .4byte REG_BG2CNT
|
|
_0804EFD4: .4byte 0x00004882
|
|
_0804EFD8:
|
|
bl sub_8051B8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804EFF6
|
|
ldr r0, _0804F008
|
|
ldr r1, [r0]
|
|
movs r3, 0x98
|
|
lsls r3, 1
|
|
adds r2, r1, r3
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804EFF6:
|
|
ldr r0, _0804F008
|
|
ldr r0, [r0]
|
|
movs r4, 0xB4
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
bl sub_8051414
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804F008: .4byte 0x03004854
|
|
_0804F00C:
|
|
ldr r0, _0804F01C
|
|
movs r2, 0x10
|
|
negs r2, r2
|
|
movs r1, 0x78
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
b _0804F0AA
|
|
.align 2, 0
|
|
_0804F01C: .4byte gSpriteTemplate_8216548
|
|
_0804F020:
|
|
mov r0, r8
|
|
b _0804F0AC
|
|
_0804F024:
|
|
bl sub_80084A4
|
|
b _0804F0AA
|
|
_0804F02A:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804F0CE
|
|
bl sub_8007E24
|
|
b _0804F0AA
|
|
_0804F03A:
|
|
mov r1, r8
|
|
ldr r3, [r1]
|
|
adds r2, r3, 0
|
|
adds r2, 0x56
|
|
movs r1, 0
|
|
movs r0, 0x80
|
|
strh r0, [r2]
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r0, r3, r2
|
|
str r1, [r0]
|
|
ldr r0, _0804F07C
|
|
bl SetMainCallback2
|
|
bl current_map_music_get
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r4, _0804F080
|
|
cmp r0, r4
|
|
beq _0804F074
|
|
bl current_map_music_get
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
movs r2, 0xBC
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
_0804F074:
|
|
adds r0, r4, 0
|
|
bl sub_8075474
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804F07C: .4byte sub_80501FC
|
|
_0804F080: .4byte 0x00000193
|
|
_0804F084:
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _0804F09C
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
b _0804F0AA
|
|
.align 2, 0
|
|
_0804F09C: .4byte gUnknown_0842D2D9
|
|
_0804F0A0:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804F0CE
|
|
_0804F0AA:
|
|
ldr r0, _0804F0B8
|
|
_0804F0AC:
|
|
ldr r1, [r0]
|
|
_0804F0AE:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804F0CE
|
|
.align 2, 0
|
|
_0804F0B8: .4byte 0x03004854
|
|
_0804F0BC:
|
|
ldr r0, _0804F0EC
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804F0CE
|
|
ldr r0, _0804F0F0
|
|
bl SetMainCallback2
|
|
_0804F0CE:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F0EC: .4byte 0x0202f388
|
|
_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end sub_804E9F8
|
|
|
|
thumb_func_start sub_804F0F4
|
|
sub_804F0F4: @ 804F0F4
|
|
push {r4,lr}
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
ldr r0, _0804F158
|
|
bl SetVBlankCallback
|
|
ldr r4, _0804F15C
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
adds r0, r4, 0
|
|
bl sub_8071C4C
|
|
ldr r1, _0804F160
|
|
ldr r2, _0804F164
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0804F168
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x8
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x6
|
|
strh r1, [r0]
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F158: .4byte sub_804E2BC
|
|
_0804F15C: .4byte gWindowConfig_81E6F68
|
|
_0804F160: .4byte 0x03002b74
|
|
_0804F164: .4byte 0x00004422
|
|
_0804F168: .4byte 0x03004854
|
|
thumb_func_end sub_804F0F4
|
|
|
|
thumb_func_start task_tutorial_oak_boy_girl
|
|
task_tutorial_oak_boy_girl: @ 804F16C
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
lsrs r0, 24
|
|
adds r2, r0, 0
|
|
adds r2, 0x18
|
|
ldr r0, _0804F1A8
|
|
ldr r0, [r0]
|
|
lsrs r1, 23
|
|
adds r0, 0xA2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r1, _0804F1AC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
cmp r2, r1
|
|
bcc _0804F1B4
|
|
adds r0, r1, 0
|
|
adds r0, 0x30
|
|
cmp r2, r0
|
|
bcs _0804F1B4
|
|
subs r0, 0x1C
|
|
cmp r2, r0
|
|
bcc _0804F1B0
|
|
adds r0, 0x8
|
|
cmp r2, r0
|
|
bcs _0804F1B0
|
|
movs r0, 0x2
|
|
b _0804F1B6
|
|
.align 2, 0
|
|
_0804F1A8: .4byte 0x03004854
|
|
_0804F1AC: .4byte gUnknown_08216303
|
|
_0804F1B0:
|
|
movs r0, 0x1
|
|
b _0804F1B6
|
|
_0804F1B4:
|
|
movs r0, 0
|
|
_0804F1B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end task_tutorial_oak_boy_girl
|
|
|
|
thumb_func_start sub_804F1BC
|
|
sub_804F1BC: @ 804F1BC
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r4, 0
|
|
cmp r0, 0xAF
|
|
bne _0804F1EE
|
|
movs r3, 0
|
|
subs r5, r1, 0x1
|
|
adds r2, 0x9
|
|
_0804F1D2:
|
|
adds r0, r2, r4
|
|
adds r1, r2, r3
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _0804F1E0
|
|
adds r4, r3, 0
|
|
_0804F1E0:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x4
|
|
bls _0804F1D2
|
|
adds r0, r4, 0x5
|
|
b _0804F204
|
|
_0804F1EE:
|
|
subs r0, 0x85
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
subs r5, r1, 0x1
|
|
cmp r4, 0x4
|
|
bls _0804F208
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
adds r0, 0x5
|
|
_0804F204:
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_0804F208:
|
|
movs r3, 0
|
|
cmp r3, r5
|
|
bge _0804F22E
|
|
ldr r7, _0804F234
|
|
lsls r0, r4, 1
|
|
adds r6, r0, r4
|
|
_0804F214:
|
|
adds r4, r3, 0x1
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
adds r1, r3, r6
|
|
adds r1, r7
|
|
ldrb r1, [r1]
|
|
adds r1, 0x85
|
|
bl sub_80516C4
|
|
lsls r4, 16
|
|
lsrs r3, r4, 16
|
|
cmp r3, r5
|
|
blt _0804F214
|
|
_0804F22E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F234: .4byte gUnknown_082165BC
|
|
thumb_func_end sub_804F1BC
|
|
|
|
thumb_func_start sub_804F238
|
|
sub_804F238: @ 804F238
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
ldr r7, _0804F2A0
|
|
movs r6, 0xFF
|
|
ldr r5, _0804F2A4
|
|
_0804F242:
|
|
ldr r3, [r7]
|
|
lsls r2, r4, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0xA2
|
|
adds r0, r2
|
|
strh r6, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x9A
|
|
adds r1, r2
|
|
adds r0, r3, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 2
|
|
adds r0, r4, r0
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804F242
|
|
movs r3, 0
|
|
ldr r7, _0804F2A0
|
|
_0804F270:
|
|
movs r4, 0
|
|
adds r6, r3, 0x1
|
|
lsls r5, r3, 1
|
|
_0804F276:
|
|
ldr r2, [r7]
|
|
lsls r0, r4, 1
|
|
adds r1, r2, 0
|
|
adds r1, 0x9A
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, r3
|
|
bne _0804F28E
|
|
adds r0, r2, 0
|
|
adds r0, 0xA2
|
|
adds r0, r5
|
|
strh r4, [r0]
|
|
_0804F28E:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804F276
|
|
adds r3, r6, 0
|
|
cmp r3, 0x3
|
|
ble _0804F270
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F2A0: .4byte 0x03004854
|
|
_0804F2A4: .4byte gUnknown_082162EC
|
|
thumb_func_end sub_804F238
|
|
|
|
thumb_func_start BuyMenuDrawFieldObjects
|
|
BuyMenuDrawFieldObjects: @ 804F2A8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
ldr r7, _0804F360
|
|
ldr r0, _0804F364
|
|
mov r8, r0
|
|
_0804F2B6:
|
|
ldr r2, [r7]
|
|
lsls r4, r6, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x9A
|
|
adds r3, r0, r4
|
|
ldrh r0, [r3]
|
|
cmp r0, 0xFF
|
|
beq _0804F34A
|
|
ldr r5, _0804F368
|
|
adds r1, r2, 0
|
|
adds r1, 0x5C
|
|
ldrh r3, [r3]
|
|
adds r1, r3
|
|
adds r0, r2, 0
|
|
adds r0, 0x60
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r1, r0, 0
|
|
adds r1, 0x9A
|
|
adds r1, r4
|
|
adds r0, 0x5C
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804F36C
|
|
adds r0, r1
|
|
lsls r1, r6, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
ldr r1, [r7]
|
|
adds r1, 0x9A
|
|
adds r1, r4
|
|
lsrs r0, 24
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _0804F31A
|
|
adds r0, r5, 0
|
|
ldr r1, _0804F370
|
|
bl StringCopy
|
|
adds r5, r0, 0
|
|
_0804F31A:
|
|
ldr r0, [r7]
|
|
adds r0, 0x9A
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0804F374
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
bl StringCopy
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 3
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0x1]
|
|
lsls r2, 3
|
|
ldr r0, _0804F368
|
|
movs r3, 0x1
|
|
bl sub_80729D8
|
|
_0804F34A:
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0804F2B6
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F360: .4byte 0x03004854
|
|
_0804F364: .4byte gUnknown_082162D4
|
|
_0804F368: .4byte 0x020231cc
|
|
_0804F36C: .4byte 0x02020004
|
|
_0804F370: .4byte gUnknown_082162C4
|
|
_0804F374: .4byte 0x03002978
|
|
thumb_func_end BuyMenuDrawFieldObjects
|
|
|
|
thumb_func_start sub_804F378
|
|
sub_804F378: @ 804F378
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r1, _0804F398
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
mov r8, r1
|
|
cmp r0, 0x15
|
|
bls _0804F38E
|
|
b _0804F7E6
|
|
_0804F38E:
|
|
lsls r0, 2
|
|
ldr r1, _0804F39C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804F398: .4byte 0x03004854
|
|
_0804F39C: .4byte _0804F3A0
|
|
.align 2, 0
|
|
_0804F3A0:
|
|
.4byte _0804F3F8
|
|
.4byte _0804F474
|
|
.4byte _0804F494
|
|
.4byte _0804F4EC
|
|
.4byte _0804F518
|
|
.4byte _0804F7E6
|
|
.4byte _0804F7E6
|
|
.4byte _0804F7E6
|
|
.4byte _0804F54C
|
|
.4byte _0804F7E6
|
|
.4byte _0804F7E6
|
|
.4byte _0804F578
|
|
.4byte _0804F5C8
|
|
.4byte _0804F636
|
|
.4byte _0804F650
|
|
.4byte _0804F6F8
|
|
.4byte _0804F720
|
|
.4byte _0804F7E6
|
|
.4byte _0804F73C
|
|
.4byte _0804F742
|
|
.4byte _0804F748
|
|
.4byte _0804F754
|
|
_0804F3F8:
|
|
bl sub_804F0F4
|
|
ldr r4, _0804F46C
|
|
ldrh r1, [r4]
|
|
movs r0, 0
|
|
bl sub_80516C4
|
|
ldr r5, _0804F470
|
|
ldr r0, [r5]
|
|
movs r6, 0xBE
|
|
lsls r6, 1
|
|
adds r0, r6
|
|
ldrh r1, [r4]
|
|
bl sub_804E844
|
|
ldrh r0, [r4]
|
|
ldr r2, [r5]
|
|
adds r1, r2, 0
|
|
adds r1, 0x88
|
|
ldrb r1, [r1]
|
|
adds r2, r6
|
|
bl sub_804F1BC
|
|
movs r4, 0
|
|
movs r6, 0
|
|
mov r8, r5
|
|
movs r7, 0xA6
|
|
lsls r7, 1
|
|
_0804F430:
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x70
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r3, r4, 0x1
|
|
adds r1, r4
|
|
lsls r1, 1
|
|
movs r2, 0x2
|
|
_0804F442:
|
|
ldr r0, [r5]
|
|
adds r0, r7
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0804F442
|
|
adds r4, r3, 0
|
|
cmp r4, 0x3
|
|
ble _0804F430
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x7C
|
|
movs r2, 0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
strb r2, [r3, 0x1]
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F46C: .4byte 0x0203855e
|
|
_0804F470: .4byte 0x03004854
|
|
_0804F474:
|
|
bl sub_804E2EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804F480
|
|
b _0804F7E6
|
|
_0804F480:
|
|
ldr r0, _0804F490
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_8051474
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F490: .4byte 0x03004854
|
|
_0804F494:
|
|
movs r4, 0
|
|
ldr r5, _0804F4DC
|
|
ldr r6, _0804F4E0
|
|
_0804F49A:
|
|
ldrb r1, [r5]
|
|
ldrb r2, [r5, 0x1]
|
|
ldr r0, _0804F4E4
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r1, 0x60
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x60
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804F4E8
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804F49A
|
|
ldr r0, _0804F4E0
|
|
ldr r1, [r0]
|
|
b _0804F74C
|
|
.align 2, 0
|
|
_0804F4DC: .4byte gUnknown_082162E4
|
|
_0804F4E0: .4byte 0x03004854
|
|
_0804F4E4: .4byte gSpriteTemplate_82163F4
|
|
_0804F4E8: .4byte 0x02020004
|
|
_0804F4EC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, _0804F514
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r4, [r0]
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F514: .4byte 0x03004854
|
|
_0804F518:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
movs r3, 0x98
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x2
|
|
bne _0804F530
|
|
bl sub_804E4FC
|
|
_0804F530:
|
|
ldr r0, _0804F548
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804F53E
|
|
b _0804F7E6
|
|
_0804F53E:
|
|
mov r5, r8
|
|
ldr r1, [r5]
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F548: .4byte 0x0202f388
|
|
_0804F54C:
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
movs r0, 0xB
|
|
strb r0, [r1]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r3, 0x9E
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
b _0804F7E6
|
|
_0804F564:
|
|
lsls r1, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0x80
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl sub_804E7C0
|
|
b _0804F5A2
|
|
_0804F578:
|
|
movs r4, 0
|
|
ldr r2, _0804F5C0
|
|
ldr r0, _0804F5C4
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 2
|
|
movs r5, 0x9E
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
ldrb r1, [r1]
|
|
adds r0, r2
|
|
_0804F594:
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
beq _0804F564
|
|
adds r0, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0804F594
|
|
_0804F5A2:
|
|
ldr r3, _0804F5C4
|
|
ldr r1, [r3]
|
|
movs r5, 0x98
|
|
lsls r5, 1
|
|
adds r2, r1, r5
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r3]
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
b _0804F74C
|
|
.align 2, 0
|
|
_0804F5C0: .4byte gUnknown_082162EC
|
|
_0804F5C4: .4byte 0x03004854
|
|
_0804F5C8:
|
|
mov r1, r8
|
|
ldr r3, [r1]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bgt _0804F5DE
|
|
b _0804F7E6
|
|
_0804F5DE:
|
|
movs r5, 0x9E
|
|
lsls r5, 1
|
|
adds r0, r3, r5
|
|
adds r4, r3, 0
|
|
adds r4, 0x88
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4]
|
|
cmp r0, r1
|
|
bcc _0804F620
|
|
ldr r2, _0804F614
|
|
ldr r1, _0804F618
|
|
ldrb r0, [r4]
|
|
subs r0, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldr r2, _0804F61C
|
|
adds r1, r2, 0
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x54
|
|
strh r1, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
b _0804F624
|
|
.align 2, 0
|
|
_0804F614: .4byte gUnknown_082162F8
|
|
_0804F618: .4byte gUnknown_08216300
|
|
_0804F61C: .4byte 0xffffa800
|
|
_0804F620:
|
|
ldrb r0, [r3]
|
|
subs r0, 0x1
|
|
_0804F624:
|
|
strb r0, [r3]
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
movs r5, 0x98
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
b _0804F7E6
|
|
_0804F636:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
bl sub_804F238
|
|
movs r0, 0x2B
|
|
bl audio_play
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
b _0804F710
|
|
_0804F650:
|
|
movs r2, 0x80
|
|
lsls r2, 19
|
|
ldrh r0, [r2]
|
|
movs r5, 0x80
|
|
lsls r5, 3
|
|
adds r1, r5, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
adds r0, r3, 0
|
|
ldrh r5, [r1]
|
|
adds r0, r5
|
|
strh r0, [r1]
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x4
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xFF
|
|
bls _0804F6D6
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
mov r1, r8
|
|
ldr r3, [r1]
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
ldr r2, _0804F6E8
|
|
ldr r1, _0804F6EC
|
|
adds r0, r3, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x54
|
|
strh r1, [r0]
|
|
ldr r1, _0804F6F0
|
|
ldr r5, _0804F6F4
|
|
adds r0, r5, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r0, 0x34
|
|
bl audio_play
|
|
bl BuyMenuDrawFieldObjects
|
|
_0804F6D6:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r2, 0xB4
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
bl sub_8051414
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F6E8: .4byte gUnknown_082162F8
|
|
_0804F6EC: .4byte gUnknown_08216300
|
|
_0804F6F0: .4byte REG_BG2CNT
|
|
_0804F6F4: .4byte 0x00004882
|
|
_0804F6F8:
|
|
bl sub_8051B8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804F70C
|
|
ldr r0, _0804F71C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0804F70C:
|
|
ldr r0, _0804F71C
|
|
ldr r0, [r0]
|
|
_0804F710:
|
|
movs r3, 0xB4
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
bl sub_8051414
|
|
b _0804F7E6
|
|
.align 2, 0
|
|
_0804F71C: .4byte 0x03004854
|
|
_0804F720:
|
|
ldr r0, _0804F734
|
|
movs r2, 0x10
|
|
negs r2, r2
|
|
movs r1, 0x78
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r0, _0804F738
|
|
ldr r1, [r0]
|
|
b _0804F74C
|
|
.align 2, 0
|
|
_0804F734: .4byte gSpriteTemplate_8216548
|
|
_0804F738: .4byte 0x03004854
|
|
_0804F73C:
|
|
mov r5, r8
|
|
ldr r1, [r5]
|
|
b _0804F74C
|
|
_0804F742:
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
b _0804F74C
|
|
_0804F748:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
_0804F74C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804F7E6
|
|
_0804F754:
|
|
bl sub_804F81C
|
|
ldr r3, _0804F804
|
|
ldr r4, [r3]
|
|
adds r5, r4, 0
|
|
adds r5, 0x56
|
|
movs r2, 0
|
|
movs r1, 0
|
|
movs r0, 0x80
|
|
strh r0, [r5]
|
|
movs r5, 0x96
|
|
lsls r5, 1
|
|
adds r0, r4, r5
|
|
str r1, [r0]
|
|
ldr r1, _0804F808
|
|
adds r0, r4, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, 0x7E
|
|
strb r2, [r0]
|
|
ldr r0, _0804F80C
|
|
bl SetMainCallback2
|
|
movs r4, 0
|
|
ldr r0, _0804F810
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bge _0804F7B8
|
|
movs r5, 0xA0
|
|
lsls r5, 20
|
|
ldr r6, _0804F814
|
|
_0804F792:
|
|
ldm r6!, {r0}
|
|
lsrs r1, r5, 24
|
|
bl CreateTask
|
|
ldr r1, _0804F804
|
|
ldr r1, [r1]
|
|
movs r2, 0xA4
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
adds r5, r3
|
|
adds r4, 0x1
|
|
ldr r0, _0804F810
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804F792
|
|
_0804F7B8:
|
|
bl current_map_music_get
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r4, _0804F818
|
|
cmp r0, r4
|
|
beq _0804F7D6
|
|
bl current_map_music_get
|
|
ldr r1, _0804F804
|
|
ldr r1, [r1]
|
|
movs r5, 0xBC
|
|
lsls r5, 1
|
|
adds r1, r5
|
|
strh r0, [r1]
|
|
_0804F7D6:
|
|
adds r0, r4, 0
|
|
bl sub_8075474
|
|
movs r0, 0x35
|
|
bl audio_play
|
|
bl sub_804E290
|
|
_0804F7E6:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F804: .4byte 0x03004854
|
|
_0804F808: .4byte 0x0000014b
|
|
_0804F80C: .4byte sub_80501FC
|
|
_0804F810: .4byte 0x0202e8cc
|
|
_0804F814: .4byte gUnknown_08216308
|
|
_0804F818: .4byte 0x00000193
|
|
thumb_func_end sub_804F378
|
|
|
|
thumb_func_start sub_804F81C
|
|
sub_804F81C: @ 804F81C
|
|
push {lr}
|
|
ldr r3, _0804F83C
|
|
movs r0, 0
|
|
ldr r1, _0804F840
|
|
movs r2, 0x3
|
|
_0804F826:
|
|
strh r0, [r3]
|
|
strh r0, [r3, 0x4]
|
|
strh r0, [r1]
|
|
strh r0, [r1, 0x10]
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0804F826
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F83C: .4byte 0x03002f90
|
|
_0804F840: .4byte 0x03002a20
|
|
thumb_func_end sub_804F81C
|
|
|
|
thumb_func_start sub_804F844
|
|
sub_804F844: @ 804F844
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, _0804F884
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r4, 0xA
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
ble _0804F87C
|
|
ldr r0, _0804F888
|
|
movs r4, 0xC
|
|
ldrsh r1, [r2, r4]
|
|
lsls r1, 1
|
|
adds r0, 0x10
|
|
adds r1, r0
|
|
ldr r0, _0804F88C
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_0804F87C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F884: .4byte 0x03004b20
|
|
_0804F888: .4byte 0x03002a20
|
|
_0804F88C: .4byte 0x00002345
|
|
thumb_func_end sub_804F844
|
|
|
|
thumb_func_start sub_804F890
|
|
sub_804F890: @ 804F890
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0804F8C0
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0804F8C4
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F8C0: .4byte sub_804F844
|
|
_0804F8C4: .4byte 0x03004b20
|
|
thumb_func_end sub_804F890
|
|
|
|
thumb_func_start sub_804F8C8
|
|
sub_804F8C8: @ 804F8C8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _0804F934
|
|
ldr r0, [r4]
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1
|
|
bl task_tutorial_oak_boy_girl
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _0804F8E6
|
|
b _0804F9DC
|
|
_0804F8E6:
|
|
ldr r2, _0804F938
|
|
lsls r1, r5, 2
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
beq _0804F8FC
|
|
b _0804F9EA
|
|
_0804F8FC:
|
|
ldr r0, [r4]
|
|
ldr r1, _0804F93C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804F9BE
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0804F940
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r3, r1, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x56
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
ldr r0, _0804F944
|
|
cmp r2, r0
|
|
bgt _0804F964
|
|
cmp r1, 0x4B
|
|
bls _0804F950
|
|
ldr r1, _0804F948
|
|
ldr r0, _0804F94C
|
|
b _0804F954
|
|
.align 2, 0
|
|
_0804F934: .4byte 0x03004854
|
|
_0804F938: .4byte 0x03004b20
|
|
_0804F93C: .4byte 0x0000014b
|
|
_0804F940: .4byte 0x0000028f
|
|
_0804F944: .4byte 0x000001f3
|
|
_0804F948: .4byte 0x03002a20
|
|
_0804F94C: .4byte 0x00004523
|
|
_0804F950:
|
|
ldr r1, _0804F95C
|
|
ldr r0, _0804F960
|
|
_0804F954:
|
|
strh r0, [r1, 0x12]
|
|
ldr r0, _0804F960
|
|
b _0804F9C2
|
|
.align 2, 0
|
|
_0804F95C: .4byte 0x03002a20
|
|
_0804F960: .4byte 0x00005432
|
|
_0804F964:
|
|
ldr r0, _0804F980
|
|
cmp r2, r0
|
|
bgt _0804F992
|
|
cmp r1, 0x50
|
|
bhi _0804F9BE
|
|
adds r0, r1, 0
|
|
subs r0, 0x15
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bhi _0804F98C
|
|
ldr r1, _0804F984
|
|
ldr r0, _0804F988
|
|
b _0804F9C2
|
|
.align 2, 0
|
|
_0804F980: .4byte 0x000005db
|
|
_0804F984: .4byte 0x03002a20
|
|
_0804F988: .4byte 0x00005432
|
|
_0804F98C:
|
|
cmp r1, 0x9
|
|
bhi _0804F9C4
|
|
b _0804F9B4
|
|
_0804F992:
|
|
cmp r1, 0x5A
|
|
bhi _0804F9BE
|
|
adds r0, r1, 0
|
|
subs r0, 0x47
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bhi _0804F9B0
|
|
ldr r1, _0804F9A8
|
|
ldr r0, _0804F9AC
|
|
b _0804F9C2
|
|
.align 2, 0
|
|
_0804F9A8: .4byte 0x03002a20
|
|
_0804F9AC: .4byte 0x00005432
|
|
_0804F9B0:
|
|
cmp r3, 0x1D
|
|
bhi _0804F9C4
|
|
_0804F9B4:
|
|
movs r0, 0x1
|
|
movs r1, 0x5
|
|
bl sub_804F890
|
|
b _0804F9C4
|
|
_0804F9BE:
|
|
ldr r1, _0804F9D0
|
|
ldr r0, _0804F9D4
|
|
_0804F9C2:
|
|
strh r0, [r1, 0x12]
|
|
_0804F9C4:
|
|
ldr r0, _0804F9D8
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
b _0804F9E8
|
|
.align 2, 0
|
|
_0804F9D0: .4byte 0x03002a20
|
|
_0804F9D4: .4byte 0x00004523
|
|
_0804F9D8: .4byte 0x03004b20
|
|
_0804F9DC:
|
|
ldr r0, _0804F9F0
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0
|
|
_0804F9E8:
|
|
strh r0, [r1, 0x8]
|
|
_0804F9EA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F9F0: .4byte 0x03004b20
|
|
thumb_func_end sub_804F8C8
|
|
|
|
thumb_func_start sub_804F9F4
|
|
sub_804F9F4: @ 804F9F4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r6, _0804FA78
|
|
ldr r3, [r6]
|
|
adds r0, r3, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
ldr r1, _0804FA7C
|
|
ands r0, r1
|
|
adds r1, r3, 0
|
|
adds r1, 0xA6
|
|
ldrb r1, [r1]
|
|
lsrs r2, r0, 8
|
|
ldr r0, _0804FA80
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r1, 0
|
|
adds r0, 0x14
|
|
cmp r2, r0
|
|
bls _0804FB04
|
|
adds r0, 0x14
|
|
cmp r2, r0
|
|
bcs _0804FB04
|
|
ldr r2, _0804FA84
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
adds r2, r0, r2
|
|
movs r5, 0x8
|
|
ldrsh r0, [r2, r5]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
bne _0804FB12
|
|
ldr r1, _0804FA88
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804FAF0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0804FA8C
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, r2, 0
|
|
ldr r0, [r6]
|
|
adds r0, 0x56
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
ldr r0, _0804FA90
|
|
cmp r1, r0
|
|
bgt _0804FAAC
|
|
cmp r2, 0x42
|
|
bls _0804FA9C
|
|
ldr r1, _0804FA94
|
|
ldr r0, _0804FA98
|
|
strh r0, [r1, 0x14]
|
|
b _0804FAD4
|
|
.align 2, 0
|
|
_0804FA78: .4byte 0x03004854
|
|
_0804FA7C: .4byte 0x0000ffff
|
|
_0804FA80: .4byte gUnknown_08216303
|
|
_0804FA84: .4byte 0x03004b20
|
|
_0804FA88: .4byte 0x0000014b
|
|
_0804FA8C: .4byte 0x0000028f
|
|
_0804FA90: .4byte 0x000001f3
|
|
_0804FA94: .4byte 0x03002a20
|
|
_0804FA98: .4byte 0x00004523
|
|
_0804FA9C:
|
|
ldr r1, _0804FAA4
|
|
ldr r0, _0804FAA8
|
|
strh r0, [r1, 0x14]
|
|
b _0804FAD4
|
|
.align 2, 0
|
|
_0804FAA4: .4byte 0x03002a20
|
|
_0804FAA8: .4byte 0x00005432
|
|
_0804FAAC:
|
|
cmp r2, 0x41
|
|
bls _0804FAB6
|
|
ldr r1, _0804FAE0
|
|
ldr r0, _0804FAE4
|
|
strh r0, [r1, 0x14]
|
|
_0804FAB6:
|
|
adds r0, r2, 0
|
|
subs r0, 0x29
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x18
|
|
bhi _0804FAC8
|
|
ldr r1, _0804FAE0
|
|
ldr r0, _0804FAE8
|
|
strh r0, [r1, 0x14]
|
|
_0804FAC8:
|
|
cmp r3, 0x9
|
|
bhi _0804FAD4
|
|
movs r0, 0x2
|
|
movs r1, 0x5
|
|
bl sub_804F890
|
|
_0804FAD4:
|
|
ldr r0, _0804FAEC
|
|
adds r1, r5, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
b _0804FB10
|
|
.align 2, 0
|
|
_0804FAE0: .4byte 0x03002a20
|
|
_0804FAE4: .4byte 0x00004523
|
|
_0804FAE8: .4byte 0x00005432
|
|
_0804FAEC: .4byte 0x03004b20
|
|
_0804FAF0:
|
|
ldr r0, _0804FAFC
|
|
ldr r1, _0804FB00
|
|
strh r1, [r0, 0x14]
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _0804FB12
|
|
.align 2, 0
|
|
_0804FAFC: .4byte 0x03002a20
|
|
_0804FB00: .4byte 0x00004523
|
|
_0804FB04:
|
|
ldr r0, _0804FB18
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0
|
|
_0804FB10:
|
|
strh r0, [r1, 0x8]
|
|
_0804FB12:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FB18: .4byte 0x03004b20
|
|
thumb_func_end sub_804F9F4
|
|
|
|
thumb_func_start sub_804FB1C
|
|
sub_804FB1C: @ 804FB1C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, _0804FB9C
|
|
ldr r3, [r5]
|
|
adds r0, r3, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
ldr r1, _0804FBA0
|
|
ands r0, r1
|
|
adds r1, r3, 0
|
|
adds r1, 0xA8
|
|
ldrb r1, [r1]
|
|
lsrs r2, r0, 8
|
|
ldr r0, _0804FBA4
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r1, 0
|
|
adds r0, 0x14
|
|
cmp r2, r0
|
|
bls _0804FC30
|
|
adds r0, 0x14
|
|
cmp r2, r0
|
|
bcs _0804FC30
|
|
ldr r2, _0804FBA8
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
adds r2, r0, r2
|
|
movs r6, 0x8
|
|
ldrsh r0, [r2, r6]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
bne _0804FC3E
|
|
ldr r1, _0804FBAC
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804FC1C
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0804FBB0
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, [r5]
|
|
adds r0, 0x56
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
ldr r0, _0804FBB4
|
|
cmp r1, r0
|
|
bgt _0804FBD0
|
|
cmp r2, 0x58
|
|
bls _0804FBC0
|
|
ldr r1, _0804FBB8
|
|
ldr r0, _0804FBBC
|
|
strh r0, [r1, 0x16]
|
|
b _0804FC02
|
|
.align 2, 0
|
|
_0804FB9C: .4byte 0x03004854
|
|
_0804FBA0: .4byte 0x0000ffff
|
|
_0804FBA4: .4byte gUnknown_08216303
|
|
_0804FBA8: .4byte 0x03004b20
|
|
_0804FBAC: .4byte 0x0000014b
|
|
_0804FBB0: .4byte 0x0000028f
|
|
_0804FBB4: .4byte 0x000001f3
|
|
_0804FBB8: .4byte 0x03002a20
|
|
_0804FBBC: .4byte 0x00004523
|
|
_0804FBC0:
|
|
ldr r1, _0804FBC8
|
|
ldr r0, _0804FBCC
|
|
strh r0, [r1, 0x16]
|
|
b _0804FC02
|
|
.align 2, 0
|
|
_0804FBC8: .4byte 0x03002a20
|
|
_0804FBCC: .4byte 0x00005432
|
|
_0804FBD0:
|
|
cmp r2, 0x3C
|
|
bls _0804FBE4
|
|
ldr r1, _0804FBDC
|
|
ldr r0, _0804FBE0
|
|
b _0804FBF4
|
|
.align 2, 0
|
|
_0804FBDC: .4byte 0x03002a20
|
|
_0804FBE0: .4byte 0x00004523
|
|
_0804FBE4:
|
|
adds r0, r2, 0
|
|
subs r0, 0x38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bhi _0804FBF6
|
|
ldr r1, _0804FC10
|
|
ldr r0, _0804FC14
|
|
_0804FBF4:
|
|
strh r0, [r1, 0x16]
|
|
_0804FBF6:
|
|
cmp r2, 0x4
|
|
bhi _0804FC02
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
bl sub_804F890
|
|
_0804FC02:
|
|
ldr r0, _0804FC18
|
|
adds r1, r6, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
b _0804FC3C
|
|
.align 2, 0
|
|
_0804FC10: .4byte 0x03002a20
|
|
_0804FC14: .4byte 0x00005432
|
|
_0804FC18: .4byte 0x03004b20
|
|
_0804FC1C:
|
|
ldr r0, _0804FC28
|
|
ldr r1, _0804FC2C
|
|
strh r1, [r0, 0x16]
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _0804FC3E
|
|
.align 2, 0
|
|
_0804FC28: .4byte 0x03002a20
|
|
_0804FC2C: .4byte 0x00004523
|
|
_0804FC30:
|
|
ldr r0, _0804FC44
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0
|
|
_0804FC3C:
|
|
strh r0, [r1, 0x8]
|
|
_0804FC3E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FC44: .4byte 0x03004b20
|
|
thumb_func_end sub_804FB1C
|
|
|
|
thumb_func_start sub_804FC48
|
|
sub_804FC48: @ 804FC48
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r8, r7
|
|
lsls r1, 24
|
|
ldr r0, _0804FCBC
|
|
ldr r4, _0804FCC0
|
|
lsrs r1, 23
|
|
adds r2, r1, r4
|
|
ldrb r6, [r2]
|
|
ldr r5, _0804FCC4
|
|
adds r2, r1, r5
|
|
movs r3, 0
|
|
ldrsb r3, [r2, r3]
|
|
lsls r2, r3, 2
|
|
adds r2, r3
|
|
lsls r2, 1
|
|
subs r6, r2
|
|
adds r4, 0x1
|
|
adds r4, r1, r4
|
|
ldrb r2, [r4]
|
|
adds r5, 0x1
|
|
adds r1, r5
|
|
movs r3, 0
|
|
ldrsb r3, [r1, r3]
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 1
|
|
subs r2, r1
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r2, r1, 0
|
|
ldr r0, _0804FCC8
|
|
cmp r7, r0
|
|
bne _0804FCD4
|
|
lsls r4, r1, 4
|
|
adds r4, r1
|
|
lsls r4, 2
|
|
ldr r5, _0804FCCC
|
|
adds r0, r4, r5
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
adds r5, 0x1C
|
|
adds r4, r5
|
|
ldr r0, _0804FCD0
|
|
str r0, [r4]
|
|
movs r0, 0x28
|
|
bl audio_play
|
|
b _0804FD18
|
|
.align 2, 0
|
|
_0804FCBC: .4byte gSpriteTemplate_821645C
|
|
_0804FCC0: .4byte gUnknown_082162E4
|
|
_0804FCC4: .4byte gUnknown_082162CC
|
|
_0804FCC8: .4byte 0x00004523
|
|
_0804FCCC: .4byte 0x02020004
|
|
_0804FCD0: .4byte sub_8051684
|
|
_0804FCD4:
|
|
ldr r0, _0804FCF4
|
|
cmp r7, r0
|
|
bne _0804FCFC
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804FCF8
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
movs r0, 0x1F
|
|
bl audio_play
|
|
b _0804FD18
|
|
.align 2, 0
|
|
_0804FCF4: .4byte 0x00005432
|
|
_0804FCF8: .4byte 0x02020004
|
|
_0804FCFC:
|
|
ldr r0, _0804FD28
|
|
cmp r8, r0
|
|
bne _0804FD18
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _0804FD2C
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
movs r0, 0x20
|
|
bl audio_play
|
|
_0804FD18:
|
|
bl sub_805156C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FD28: .4byte 0x00002345
|
|
_0804FD2C: .4byte 0x02020004
|
|
thumb_func_end sub_804FC48
|
|
|
|
thumb_func_start sub_804FD30
|
|
sub_804FD30: @ 804FD30
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r5, r4, 0
|
|
bl sub_804E290
|
|
ldr r0, _0804FD50
|
|
cmp r4, r0
|
|
beq _0804FD64
|
|
cmp r4, r0
|
|
bgt _0804FD58
|
|
ldr r0, _0804FD54
|
|
cmp r4, r0
|
|
beq _0804FE34
|
|
b _0804FE60
|
|
.align 2, 0
|
|
_0804FD50: .4byte 0x00004523
|
|
_0804FD54: .4byte 0x00002345
|
|
_0804FD58:
|
|
ldr r0, _0804FD60
|
|
cmp r5, r0
|
|
beq _0804FDFC
|
|
b _0804FE60
|
|
.align 2, 0
|
|
_0804FD60: .4byte 0x00005432
|
|
_0804FD64:
|
|
ldr r7, _0804FD94
|
|
ldr r4, [r7]
|
|
adds r5, r4, 0
|
|
adds r5, 0x56
|
|
ldrh r6, [r5]
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, _0804FD98
|
|
cmp r1, r0
|
|
bgt _0804FDA0
|
|
ldr r1, _0804FD9C
|
|
adds r0, r4, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
bl __divsi3
|
|
adds r0, r6, r0
|
|
strh r0, [r5]
|
|
b _0804FE60
|
|
.align 2, 0
|
|
_0804FD94: .4byte 0x03004854
|
|
_0804FD98: .4byte 0x000005db
|
|
_0804FD9C: .4byte gUnknown_082165DA
|
|
_0804FDA0:
|
|
ldr r1, _0804FDF8
|
|
adds r0, r4, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x80
|
|
bl __divsi3
|
|
adds r0, r6, r0
|
|
strh r0, [r5]
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
subs r1, 0xA
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8051AC8
|
|
ldr r0, [r7]
|
|
movs r1, 0xA3
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
adds r0, 0x56
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
subs r1, 0xA
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8051AC8
|
|
b _0804FE60
|
|
.align 2, 0
|
|
_0804FDF8: .4byte gUnknown_082165DA
|
|
_0804FDFC:
|
|
ldr r0, _0804FE28
|
|
ldr r2, [r0]
|
|
adds r4, r2, 0
|
|
adds r4, 0x56
|
|
ldrh r5, [r4]
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, _0804FE2C
|
|
cmp r1, r0
|
|
bgt _0804FE60
|
|
ldr r1, _0804FE30
|
|
adds r0, r2, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
bl __divsi3
|
|
adds r0, r5, r0
|
|
b _0804FE5E
|
|
.align 2, 0
|
|
_0804FE28: .4byte 0x03004854
|
|
_0804FE2C: .4byte 0x000005db
|
|
_0804FE30: .4byte gUnknown_082165DA
|
|
_0804FE34:
|
|
ldr r0, _0804FE68
|
|
ldr r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x56
|
|
ldr r1, _0804FE6C
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
bl __divsi3
|
|
ldrh r1, [r4]
|
|
subs r1, r0
|
|
strh r1, [r4]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x7F
|
|
bgt _0804FE60
|
|
movs r0, 0x80
|
|
_0804FE5E:
|
|
strh r0, [r4]
|
|
_0804FE60:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FE68: .4byte 0x03004854
|
|
_0804FE6C: .4byte gUnknown_082165DA
|
|
thumb_func_end sub_804FD30
|
|
|
|
thumb_func_start sub_804FE70
|
|
sub_804FE70: @ 804FE70
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, _0804FF40
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804FEB6
|
|
ldr r3, _0804FF44
|
|
ldrh r0, [r3, 0x4]
|
|
ldr r2, _0804FF48
|
|
cmp r0, 0
|
|
beq _0804FE98
|
|
movs r1, 0
|
|
strh r0, [r2, 0x10]
|
|
ldr r0, _0804FF4C
|
|
strh r0, [r2]
|
|
strh r1, [r3, 0x4]
|
|
_0804FE98:
|
|
ldr r0, _0804FF48
|
|
ldr r3, _0804FF4C
|
|
adds r1, r2, 0x2
|
|
adds r2, r0, 0
|
|
adds r2, 0x12
|
|
movs r6, 0x2
|
|
_0804FEA4:
|
|
ldrh r0, [r2]
|
|
cmp r0, 0
|
|
beq _0804FEAC
|
|
strh r3, [r1]
|
|
_0804FEAC:
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _0804FEA4
|
|
_0804FEB6:
|
|
movs r6, 0
|
|
ldr r7, _0804FF50
|
|
adds r1, r7, 0
|
|
ldr r0, [r1]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804FEC8
|
|
b _0805005C
|
|
_0804FEC8:
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
mov r9, r2
|
|
ldr r0, _0804FF48
|
|
adds r0, 0x10
|
|
mov r8, r0
|
|
ldr r1, _0804FF54
|
|
mov r10, r1
|
|
_0804FED8:
|
|
ldr r2, [sp]
|
|
ldr r1, _0804FF48
|
|
adds r0, r2, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _0804FF4C
|
|
cmp r1, r0
|
|
beq _0804FEE8
|
|
b _0805003E
|
|
_0804FEE8:
|
|
ldr r0, [r7]
|
|
adds r0, 0xA2
|
|
adds r0, r2
|
|
ldrh r5, [r0]
|
|
mov r2, r8
|
|
ldrh r4, [r2]
|
|
ldr r0, _0804FF58
|
|
cmp r4, r0
|
|
bne _0804FF60
|
|
bl sub_804FD30
|
|
ldr r0, [r7]
|
|
movs r1, 0x9F
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
adds r0, 0x56
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r1, 0x37
|
|
bl __divsi3
|
|
ldrh r1, [r4]
|
|
adds r1, r0
|
|
strh r1, [r4]
|
|
lsls r1, 16
|
|
ldr r0, _0804FF5C
|
|
cmp r1, r0
|
|
bls _0804FF26
|
|
movs r0, 0xFA
|
|
lsls r0, 2
|
|
strh r0, [r4]
|
|
_0804FF26:
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
ldr r0, _0804FF58
|
|
bl sub_804FC48
|
|
ldr r1, [r7]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
add r1, r9
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
b _0804FFCA
|
|
.align 2, 0
|
|
_0804FF40: .4byte 0x0202e8cc
|
|
_0804FF44: .4byte 0x03002f90
|
|
_0804FF48: .4byte 0x03002a20
|
|
_0804FF4C: .4byte 0x00004444
|
|
_0804FF50: .4byte 0x03004854
|
|
_0804FF54: .4byte 0x00005432
|
|
_0804FF58: .4byte 0x00004523
|
|
_0804FF5C: .4byte 0x03e70000
|
|
_0804FF60:
|
|
cmp r4, r10
|
|
bne _0804FF9E
|
|
mov r0, r10
|
|
bl sub_804FD30
|
|
ldr r0, [r7]
|
|
movs r1, 0x9F
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
adds r0, 0x56
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r1, 0x46
|
|
bl __divsi3
|
|
ldrh r1, [r4]
|
|
adds r1, r0
|
|
strh r1, [r4]
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
mov r0, r10
|
|
bl sub_804FC48
|
|
ldr r1, [r7]
|
|
movs r0, 0xA7
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
add r1, r9
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
b _0804FFCA
|
|
_0804FF9E:
|
|
ldr r0, _08050018
|
|
cmp r4, r0
|
|
bne _0804FFD6
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_804FC48
|
|
adds r0, r4, 0
|
|
bl sub_804FD30
|
|
ldr r0, [r7]
|
|
movs r1, 0xA8
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1]
|
|
ldr r0, _0805001C
|
|
cmp r2, r0
|
|
bhi _0804FFCC
|
|
adds r0, r2, 0x1
|
|
_0804FFCA:
|
|
strh r0, [r1]
|
|
_0804FFCC:
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
ldr r0, _08050018
|
|
cmp r1, r0
|
|
beq _0804FFE4
|
|
_0804FFD6:
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
ldr r2, _08050020
|
|
cmp r0, r2
|
|
beq _0804FFE4
|
|
cmp r0, r10
|
|
bne _0805003E
|
|
_0804FFE4:
|
|
ldr r0, _08050024
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0x56
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
ldr r0, _08050028
|
|
cmp r1, r0
|
|
ble _08050034
|
|
adds r0, r1, 0
|
|
ldr r2, _0805002C
|
|
adds r0, r2
|
|
movs r1, 0x14
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r0, _08050030
|
|
bl m4aMPlayTempoControl
|
|
b _0805003E
|
|
.align 2, 0
|
|
_08050018: .4byte 0x00002345
|
|
_0805001C: .4byte 0x000003e6
|
|
_08050020: .4byte 0x00004523
|
|
_08050024: .4byte 0x03004854
|
|
_08050028: .4byte 0x000005dc
|
|
_0805002C: .4byte 0xfffffd12
|
|
_08050030: .4byte 0x03007380
|
|
_08050034:
|
|
ldr r0, _08050098
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl m4aMPlayTempoControl
|
|
_0805003E:
|
|
ldr r1, [sp]
|
|
adds r1, 0x2
|
|
str r1, [sp]
|
|
movs r2, 0x6
|
|
add r9, r2
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
ldr r7, _0805009C
|
|
ldr r0, [r7]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _0805005C
|
|
b _0804FED8
|
|
_0805005C:
|
|
ldr r0, _080500A0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08050088
|
|
movs r6, 0
|
|
ldr r3, _0805009C
|
|
ldr r0, [r3]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _08050088
|
|
movs r2, 0
|
|
ldr r1, _080500A4
|
|
_08050076:
|
|
strh r2, [r1]
|
|
strh r2, [r1, 0x10]
|
|
adds r1, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r3]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _08050076
|
|
_08050088:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050098: .4byte 0x03007380
|
|
_0805009C: .4byte 0x03004854
|
|
_080500A0: .4byte 0x0202e8cc
|
|
_080500A4: .4byte 0x03002a20
|
|
thumb_func_end sub_804FE70
|
|
|
|
thumb_func_start sub_80500A8
|
|
sub_80500A8: @ 80500A8
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
ldr r5, _080500EC
|
|
ldr r4, [r5]
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r4, 0xA2
|
|
adds r4, r0
|
|
ldrb r3, [r4]
|
|
ldr r0, [r5]
|
|
adds r0, 0x6F
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805018A
|
|
ldr r0, _080500F0
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0x2
|
|
bne _080500FC
|
|
ldr r2, _080500F4
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805010A
|
|
ldrh r0, [r2, 0x28]
|
|
ldr r1, _080500F8
|
|
bics r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r6, r0, 31
|
|
b _0805010A
|
|
.align 2, 0
|
|
_080500EC: .4byte 0x03004854
|
|
_080500F0: .4byte gSaveBlock2
|
|
_080500F4: .4byte 0x03001770
|
|
_080500F8: .4byte 0x00000201
|
|
_080500FC:
|
|
ldr r0, _0805015C
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805010A
|
|
movs r6, 0x1
|
|
_0805010A:
|
|
cmp r6, 0
|
|
beq _0805018A
|
|
ldr r4, _08050160
|
|
ldr r1, [r4]
|
|
lsls r2, r3, 1
|
|
adds r0, r1, 0
|
|
adds r0, 0x9A
|
|
adds r0, r2
|
|
adds r1, 0x5C
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08050164
|
|
adds r0, r1
|
|
adds r1, r3, 0x4
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
ldr r0, [r4]
|
|
adds r0, 0x54
|
|
ldrh r4, [r0]
|
|
bl GetMultiplayerId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl task_tutorial_oak_boy_girl
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08050170
|
|
ldr r1, _08050168
|
|
ldr r0, _0805016C
|
|
b _08050188
|
|
.align 2, 0
|
|
_0805015C: .4byte 0x03001770
|
|
_08050160: .4byte 0x03004854
|
|
_08050164: .4byte 0x02020004
|
|
_08050168: .4byte 0x03002f90
|
|
_0805016C: .4byte 0x00004523
|
|
_08050170:
|
|
cmp r0, 0x1
|
|
bne _08050184
|
|
ldr r1, _0805017C
|
|
ldr r0, _08050180
|
|
b _08050188
|
|
.align 2, 0
|
|
_0805017C: .4byte 0x03002f90
|
|
_08050180: .4byte 0x00005432
|
|
_08050184:
|
|
ldr r1, _080501E4
|
|
ldr r0, _080501E8
|
|
_08050188:
|
|
strh r0, [r1, 0x4]
|
|
_0805018A:
|
|
ldr r2, _080501EC
|
|
ldr r1, [r2]
|
|
adds r1, 0x7E
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bls _080501BA
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0x56
|
|
ldrh r3, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x80
|
|
ble _080501B2
|
|
subs r0, r3, 0x1
|
|
strh r0, [r1]
|
|
_080501B2:
|
|
ldr r0, [r2]
|
|
adds r0, 0x7E
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_080501BA:
|
|
ldr r0, _080501F0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080501DE
|
|
ldr r0, _080501F4
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080501DE
|
|
ldr r0, [r2]
|
|
ldr r1, _080501F8
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strb r0, [r2]
|
|
_080501DE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080501E4: .4byte 0x03002f90
|
|
_080501E8: .4byte 0x00002345
|
|
_080501EC: .4byte 0x03004854
|
|
_080501F0: .4byte 0x020297ed
|
|
_080501F4: .4byte 0x03001770
|
|
_080501F8: .4byte 0x0000014b
|
|
thumb_func_end sub_80500A8
|
|
|
|
thumb_func_start sub_80501FC
|
|
sub_80501FC: @ 80501FC
|
|
push {r4-r6,lr}
|
|
bl sub_8051474
|
|
ldr r4, _08050294
|
|
ldr r0, [r4]
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, _08050298
|
|
cmp r1, r0
|
|
bhi _08050218
|
|
adds r0, r1, 0x1
|
|
str r0, [r2]
|
|
_08050218:
|
|
bl sub_80500A8
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
movs r5, 0x9F
|
|
lsls r5, 1
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
bl SetLinkDebugValues
|
|
bl sub_804FE70
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
movs r6, 0xFA
|
|
lsls r6, 2
|
|
adds r1, r6, 0
|
|
bl sub_805194C
|
|
ldr r0, [r4]
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
bl sub_8051A3C
|
|
bl sub_8051B18
|
|
bl sub_805123C
|
|
ldr r2, [r4]
|
|
adds r3, r2, 0
|
|
adds r3, 0x6F
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _0805027E
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _0805029C
|
|
cmp r1, r0
|
|
bls _0805027E
|
|
adds r0, r2, r5
|
|
strh r6, [r0]
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
ldr r0, _080502A0
|
|
bl SetMainCallback2
|
|
_0805027E:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050294: .4byte 0x03004854
|
|
_08050298: .4byte 0x00057e03
|
|
_0805029C: .4byte 0x000003e7
|
|
_080502A0: .4byte sub_8050954
|
|
thumb_func_end sub_80501FC
|
|
|
|
thumb_func_start help_system_is_not_first_time
|
|
help_system_is_not_first_time: @ 80502A4
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r1, 20
|
|
adds r4, r1, r0
|
|
lsrs r2, 20
|
|
adds r5, r2, r0
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r5]
|
|
cmp r0, r1
|
|
bne _080502E2
|
|
adds r0, r4, 0x2
|
|
adds r1, r5, 0x2
|
|
bl StringCompare
|
|
cmp r0, 0
|
|
bne _080502F0
|
|
ldr r0, [r4, 0x8]
|
|
ldr r2, _080502E8
|
|
ands r0, r2
|
|
ldr r1, [r5, 0x8]
|
|
ands r1, r2
|
|
cmp r0, r1
|
|
bne _080502F0
|
|
ldr r0, [r4, 0xC]
|
|
ldr r2, _080502EC
|
|
ands r0, r2
|
|
ldr r1, [r5, 0xC]
|
|
ands r1, r2
|
|
cmp r0, r1
|
|
bne _080502F0
|
|
_080502E2:
|
|
movs r0, 0x1
|
|
b _080502F2
|
|
.align 2, 0
|
|
_080502E8: .4byte 0xffffff00
|
|
_080502EC: .4byte 0x00ffffff
|
|
_080502F0:
|
|
movs r0, 0
|
|
_080502F2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end help_system_is_not_first_time
|
|
|
|
thumb_func_start sub_80502F8
|
|
sub_80502F8: @ 80502F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
mov r10, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x10]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r2, sp
|
|
movs r4, 0x5
|
|
_08050314:
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08050314
|
|
movs r6, 0
|
|
mov r1, sp
|
|
movs r4, 0x4
|
|
_08050328:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _08050332
|
|
adds r6, 0x1
|
|
_08050332:
|
|
adds r1, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08050328
|
|
cmp r6, 0x5
|
|
beq _08050386
|
|
cmp r3, 0x3
|
|
bhi _08050386
|
|
movs r4, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r4, r3
|
|
bge _0805039E
|
|
mov r3, r10
|
|
_0805034C:
|
|
movs r6, 0
|
|
ldr r7, [sp, 0x10]
|
|
cmp r6, r7
|
|
bge _08050394
|
|
mov r9, r3
|
|
mov r5, r10
|
|
lsls r0, r4, 24
|
|
mov r8, r0
|
|
_0805035C:
|
|
mov r1, r9
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r5]
|
|
cmp r0, r2
|
|
bne _0805038A
|
|
cmp r4, r6
|
|
beq _0805038A
|
|
cmp r0, 0xAF
|
|
bne _08050386
|
|
lsls r2, r6, 24
|
|
lsrs r2, 24
|
|
mov r0, r10
|
|
mov r7, r8
|
|
lsrs r1, r7, 24
|
|
str r3, [sp, 0xC]
|
|
bl help_system_is_not_first_time
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0xC]
|
|
cmp r0, 0
|
|
beq _0805038A
|
|
_08050386:
|
|
movs r0, 0xC
|
|
b _080504DE
|
|
_0805038A:
|
|
adds r5, 0x10
|
|
adds r6, 0x1
|
|
ldr r0, [sp, 0x10]
|
|
cmp r6, r0
|
|
blt _0805035C
|
|
_08050394:
|
|
adds r3, 0x10
|
|
adds r4, 0x1
|
|
ldr r1, [sp, 0x10]
|
|
cmp r4, r1
|
|
blt _0805034C
|
|
_0805039E:
|
|
movs r2, 0
|
|
mov r1, sp
|
|
movs r4, 0x4
|
|
_080503A4:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
ble _080503B2
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_080503B2:
|
|
adds r1, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080503A4
|
|
cmp r2, 0x3
|
|
bls _080503C2
|
|
movs r0, 0xD
|
|
b _080504DE
|
|
_080503C2:
|
|
cmp r2, 0x3
|
|
bne _080503CA
|
|
movs r0, 0xB
|
|
b _080504DE
|
|
_080503CA:
|
|
movs r4, 0
|
|
mov r1, sp
|
|
_080503CE:
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, 0x32
|
|
ble _080503D8
|
|
b _080504D8
|
|
_080503D8:
|
|
adds r1, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _080503CE
|
|
cmp r2, 0x1
|
|
bne _0805042A
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
ble _080503F2
|
|
movs r0, 0x1
|
|
b _080504DE
|
|
_080503F2:
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _08050400
|
|
movs r0, 0x2
|
|
b _080504DE
|
|
_08050400:
|
|
mov r0, sp
|
|
movs r3, 0x4
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
ble _0805040E
|
|
movs r0, 0x3
|
|
b _080504DE
|
|
_0805040E:
|
|
mov r0, sp
|
|
movs r4, 0x6
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0
|
|
ble _0805041C
|
|
movs r0, 0x4
|
|
b _080504DE
|
|
_0805041C:
|
|
mov r0, sp
|
|
movs r7, 0x8
|
|
ldrsh r0, [r0, r7]
|
|
cmp r0, 0
|
|
ble _0805042A
|
|
movs r0, 0x5
|
|
b _080504DE
|
|
_0805042A:
|
|
cmp r2, 0x2
|
|
bne _080504DC
|
|
movs r4, 0
|
|
ldr r5, _08050474
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
_08050436:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
ble _08050442
|
|
strh r4, [r2]
|
|
adds r2, 0x2
|
|
_08050442:
|
|
adds r1, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _08050436
|
|
movs r4, 0
|
|
ldrsh r3, [r5, r4]
|
|
lsls r0, r3, 1
|
|
mov r7, sp
|
|
adds r1, r7, r0
|
|
movs r0, 0x2
|
|
ldrsh r2, [r5, r0]
|
|
lsls r0, r2, 1
|
|
add r0, sp
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
movs r7, 0
|
|
ldrsh r0, [r0, r7]
|
|
cmp r1, r0
|
|
blt _08050498
|
|
adds r0, r3, 0
|
|
cmp r0, 0
|
|
bne _08050478
|
|
lsls r0, r2, 16
|
|
b _080504A2
|
|
.align 2, 0
|
|
_08050474: .4byte 0x03000520
|
|
_08050478:
|
|
cmp r0, 0x1
|
|
bne _08050480
|
|
lsls r0, r2, 16
|
|
b _080504AE
|
|
_08050480:
|
|
cmp r0, 0x2
|
|
bne _08050488
|
|
lsls r0, r2, 16
|
|
b _080504BA
|
|
_08050488:
|
|
cmp r0, 0x3
|
|
bne _08050490
|
|
lsls r0, r2, 16
|
|
b _080504C6
|
|
_08050490:
|
|
cmp r0, 0x4
|
|
bne _080504DC
|
|
lsls r0, r2, 16
|
|
b _080504D2
|
|
_08050498:
|
|
movs r2, 0x2
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
bne _080504A8
|
|
lsls r0, r3, 16
|
|
_080504A2:
|
|
movs r1, 0x6
|
|
orrs r0, r1
|
|
b _080504DE
|
|
_080504A8:
|
|
cmp r0, 0x1
|
|
bne _080504B4
|
|
lsls r0, r3, 16
|
|
_080504AE:
|
|
movs r1, 0x7
|
|
orrs r0, r1
|
|
b _080504DE
|
|
_080504B4:
|
|
cmp r0, 0x2
|
|
bne _080504C0
|
|
lsls r0, r3, 16
|
|
_080504BA:
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
b _080504DE
|
|
_080504C0:
|
|
cmp r0, 0x3
|
|
bne _080504CC
|
|
lsls r0, r3, 16
|
|
_080504C6:
|
|
movs r1, 0x9
|
|
orrs r0, r1
|
|
b _080504DE
|
|
_080504CC:
|
|
cmp r0, 0x4
|
|
bne _080504DC
|
|
lsls r0, r3, 16
|
|
_080504D2:
|
|
movs r1, 0xA
|
|
orrs r0, r1
|
|
b _080504DE
|
|
_080504D8:
|
|
movs r0, 0xE
|
|
b _080504DE
|
|
_080504DC:
|
|
movs r0, 0
|
|
_080504DE:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80502F8
|
|
|
|
thumb_func_start sub_80504F0
|
|
sub_80504F0: @ 80504F0
|
|
ldr r1, _080504F8
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080504F8: .4byte 0x0300052c
|
|
thumb_func_end sub_80504F0
|
|
|
|
thumb_func_start unref_sub_80504FC
|
|
unref_sub_80504FC: @ 80504FC
|
|
ldr r0, _08050504
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08050504: .4byte 0x0300052c
|
|
thumb_func_end unref_sub_80504FC
|
|
|
|
thumb_func_start sub_8050508
|
|
sub_8050508: @ 8050508
|
|
ldr r1, _08050510
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08050510: .4byte 0x0300052e
|
|
thumb_func_end sub_8050508
|
|
|
|
thumb_func_start unref_sub_8050514
|
|
unref_sub_8050514: @ 8050514
|
|
ldr r0, _0805051C
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805051C: .4byte 0x0300052e
|
|
thumb_func_end unref_sub_8050514
|
|
|
|
thumb_func_start sub_8050520
|
|
sub_8050520: @ 8050520
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r0, [sp]
|
|
mov r8, r1
|
|
str r3, [sp, 0x4]
|
|
ldr r0, [sp, 0x30]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
ldr r7, _080505DC
|
|
adds r2, r7, 0
|
|
movs r1, 0
|
|
adds r0, r7, 0
|
|
adds r0, 0xA
|
|
_0805054A:
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, r2
|
|
bge _0805054A
|
|
movs r6, 0
|
|
cmp r6, r9
|
|
bge _08050580
|
|
ldr r0, _080505DC
|
|
mov r12, r0
|
|
ldr r5, [sp]
|
|
adds r5, 0x9
|
|
_08050560:
|
|
movs r3, 0
|
|
adds r4, r5, 0
|
|
mov r2, r12
|
|
_08050566:
|
|
adds r1, r4, r3
|
|
ldrh r0, [r2]
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x5
|
|
ble _08050566
|
|
adds r5, 0x10
|
|
adds r6, 0x1
|
|
cmp r6, r9
|
|
blt _08050560
|
|
_08050580:
|
|
movs r1, 0
|
|
ldrsh r3, [r7, r1]
|
|
ldrh r0, [r7]
|
|
ldrh r1, [r7, 0x2]
|
|
subs r0, r1
|
|
strh r0, [r7]
|
|
ldrh r0, [r7, 0x4]
|
|
subs r1, r0
|
|
strh r1, [r7, 0x2]
|
|
ldrh r1, [r7, 0x6]
|
|
subs r0, r1
|
|
strh r0, [r7, 0x4]
|
|
ldrh r0, [r7, 0x8]
|
|
subs r1, r0
|
|
strh r1, [r7, 0x6]
|
|
subs r0, r3
|
|
strh r0, [r7, 0x8]
|
|
movs r3, 0
|
|
movs r2, 0
|
|
adds r1, r7, 0
|
|
movs r6, 0x4
|
|
_080505AA:
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bge _080505B6
|
|
strh r2, [r1]
|
|
adds r3, 0x1
|
|
_080505B6:
|
|
adds r1, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080505AA
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r4, 0
|
|
ldr r1, _080505DC
|
|
movs r6, 0x4
|
|
_080505CA:
|
|
ldrh r2, [r1]
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
ble _080505E4
|
|
cmp r0, r3
|
|
bge _080505E0
|
|
strh r4, [r1]
|
|
b _080505E4
|
|
.align 2, 0
|
|
_080505DC: .4byte 0x03000510
|
|
_080505E0:
|
|
subs r0, r2, r3
|
|
strh r0, [r1]
|
|
_080505E4:
|
|
adds r1, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080505CA
|
|
ldr r1, _080506C4
|
|
ldr r2, _080506C8
|
|
movs r6, 0x4
|
|
_080505F2:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
stm r2!, {r0}
|
|
adds r1, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080505F2
|
|
ldr r1, _080506CC
|
|
ldr r0, [sp, 0x8]
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r3, r0, 0
|
|
adds r3, 0x64
|
|
ldr r4, _080506D0
|
|
str r3, [r4]
|
|
movs r6, 0x4
|
|
_08050616:
|
|
movs r0, 0
|
|
ldrsh r5, [r7, r0]
|
|
adds r0, r5, 0
|
|
muls r0, r3
|
|
movs r1, 0xA
|
|
str r3, [sp, 0xC]
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
ldr r3, [sp, 0xC]
|
|
cmp r4, 0x4
|
|
ble _08050642
|
|
adds r5, 0x1
|
|
_08050642:
|
|
strh r5, [r7]
|
|
adds r7, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08050616
|
|
ldr r1, _080506C4
|
|
ldr r2, _080506D4
|
|
movs r6, 0x4
|
|
_08050652:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
stm r2!, {r0}
|
|
adds r1, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08050652
|
|
ldr r4, _080506C4
|
|
ldr r0, [sp]
|
|
adds r1, r4, 0
|
|
mov r2, r9
|
|
mov r3, r10
|
|
bl sub_80502F8
|
|
mov r5, r8
|
|
strb r0, [r5]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
mov r3, r9
|
|
subs r0, r3
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0805068C
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
_0805068C:
|
|
mov r5, r8
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xC
|
|
bne _080506E6
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r6, 0
|
|
ldr r0, _080506D8
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
movs r4, 0x1
|
|
movs r3, 0x2
|
|
_080506B4:
|
|
adds r2, r0, 0
|
|
asrs r2, r6
|
|
ands r2, r4
|
|
cmp r2, 0
|
|
beq _080506DC
|
|
strh r3, [r1]
|
|
b _080506DE
|
|
.align 2, 0
|
|
_080506C4: .4byte 0x03000510
|
|
_080506C8: .4byte 0x03000530
|
|
_080506CC: .4byte 0x0000014d
|
|
_080506D0: .4byte 0x0300055c
|
|
_080506D4: .4byte 0x03000548
|
|
_080506D8: .4byte gUnknown_082165DF
|
|
_080506DC:
|
|
strh r2, [r1]
|
|
_080506DE:
|
|
adds r1, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x4
|
|
ble _080506B4
|
|
_080506E6:
|
|
ldr r7, _08050740
|
|
movs r2, 0xFF
|
|
adds r1, r7, 0
|
|
movs r6, 0x5
|
|
_080506EE:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xFF
|
|
ble _080506F8
|
|
strh r2, [r1]
|
|
_080506F8:
|
|
adds r1, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080506EE
|
|
ldrh r0, [r7]
|
|
mov r4, r8
|
|
strb r0, [r4, 0x1]
|
|
ldrh r0, [r7, 0x2]
|
|
strb r0, [r4, 0x2]
|
|
ldrh r0, [r7, 0x4]
|
|
strb r0, [r4, 0x3]
|
|
ldrh r0, [r7, 0x6]
|
|
strb r0, [r4, 0x4]
|
|
ldrh r0, [r7, 0x8]
|
|
strb r0, [r4, 0x5]
|
|
ldrh r0, [r7, 0xA]
|
|
strb r0, [r4, 0x6]
|
|
movs r6, 0
|
|
adds r2, r7, 0
|
|
_0805071E:
|
|
ldr r5, [sp, 0x4]
|
|
adds r1, r5, r6
|
|
ldrh r0, [r2]
|
|
strb r0, [r1]
|
|
adds r2, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _0805071E
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050740: .4byte 0x03000510
|
|
thumb_func_end sub_8050520
|
|
|
|
thumb_func_start sub_8050744
|
|
sub_8050744: @ 8050744
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0xC]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
str r4, [sp]
|
|
bl sub_8050520
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8050744
|
|
|
|
thumb_func_start sub_8050760
|
|
sub_8050760: @ 8050760
|
|
push {r4-r6,lr}
|
|
ldr r0, _08050780
|
|
ldr r0, [r0]
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
ldrh r1, [r1]
|
|
adds r0, 0x5A
|
|
ldrh r4, [r0]
|
|
movs r2, 0
|
|
ldr r5, _08050784
|
|
cmp r1, r5
|
|
bhi _08050788
|
|
movs r2, 0x5
|
|
b _080507DA
|
|
.align 2, 0
|
|
_08050780: .4byte 0x03004854
|
|
_08050784: .4byte 0x00000383
|
|
_08050788:
|
|
ldr r3, _0805079C
|
|
adds r0, r1, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, _080507A0
|
|
cmp r0, r3
|
|
bhi _080507A4
|
|
movs r2, 0x4
|
|
b _080507DA
|
|
.align 2, 0
|
|
_0805079C: .4byte 0xfffffc7c
|
|
_080507A0: .4byte 0x00000257
|
|
_080507A4:
|
|
ldr r6, _080507B4
|
|
adds r0, r1, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r3
|
|
bhi _080507B8
|
|
movs r2, 0x3
|
|
b _080507DA
|
|
.align 2, 0
|
|
_080507B4: .4byte 0xfffffa24
|
|
_080507B8:
|
|
ldr r3, _080507C8
|
|
adds r0, r1, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r5
|
|
bhi _080507CC
|
|
movs r2, 0x2
|
|
b _080507DA
|
|
.align 2, 0
|
|
_080507C8: .4byte 0xfffff7cc
|
|
_080507CC:
|
|
ldr r6, _080507F8
|
|
adds r0, r1, r6
|
|
lsls r0, 16
|
|
ldr r1, _080507FC
|
|
cmp r0, r1
|
|
bhi _080507DA
|
|
movs r2, 0x1
|
|
_080507DA:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
bl sub_8050508
|
|
movs r2, 0
|
|
cmp r4, 0x40
|
|
bhi _080508BC
|
|
adds r0, r4, 0
|
|
subs r0, 0x32
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _08050804
|
|
ldr r2, _08050800
|
|
b _080508BC
|
|
.align 2, 0
|
|
_080507F8: .4byte 0xfffff31c
|
|
_080507FC: .4byte 0x012b0000
|
|
_08050800: .4byte 0x0000ffff
|
|
_08050804:
|
|
adds r0, r4, 0
|
|
subs r0, 0x64
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _08050818
|
|
ldr r2, _08050814
|
|
b _080508BC
|
|
.align 2, 0
|
|
_08050814: .4byte 0x0000fffe
|
|
_08050818:
|
|
adds r0, r4, 0
|
|
subs r0, 0x96
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _0805082C
|
|
ldr r2, _08050828
|
|
b _080508BC
|
|
.align 2, 0
|
|
_08050828: .4byte 0x0000fffd
|
|
_0805082C:
|
|
adds r0, r4, 0
|
|
subs r0, 0xC8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _08050840
|
|
ldr r2, _0805083C
|
|
b _080508BC
|
|
.align 2, 0
|
|
_0805083C: .4byte 0x0000fffc
|
|
_08050840:
|
|
adds r0, r4, 0
|
|
subs r0, 0xFA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _08050854
|
|
ldr r2, _08050850
|
|
b _080508BC
|
|
.align 2, 0
|
|
_08050850: .4byte 0x0000fffb
|
|
_08050854:
|
|
ldr r1, _08050864
|
|
adds r0, r4, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _0805086C
|
|
ldr r2, _08050868
|
|
b _080508BC
|
|
.align 2, 0
|
|
_08050864: .4byte 0xfffffea2
|
|
_08050868: .4byte 0x0000fffa
|
|
_0805086C:
|
|
ldr r3, _0805087C
|
|
adds r0, r4, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _08050884
|
|
ldr r2, _08050880
|
|
b _080508BC
|
|
.align 2, 0
|
|
_0805087C: .4byte 0xfffffe70
|
|
_08050880: .4byte 0x0000fff9
|
|
_08050884:
|
|
ldr r6, _08050894
|
|
adds r0, r4, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _0805089C
|
|
ldr r2, _08050898
|
|
b _080508BC
|
|
.align 2, 0
|
|
_08050894: .4byte 0xfffffe0c
|
|
_08050898: .4byte 0x0000fff8
|
|
_0805089C:
|
|
ldr r1, _080508AC
|
|
adds r0, r4, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bhi _080508B4
|
|
ldr r2, _080508B0
|
|
b _080508BC
|
|
.align 2, 0
|
|
_080508AC: .4byte 0xfffffdda
|
|
_080508B0: .4byte 0x0000fff7
|
|
_080508B4:
|
|
ldr r0, _080508CC
|
|
cmp r4, r0
|
|
bls _080508BC
|
|
ldr r2, _080508D0
|
|
_080508BC:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
bl sub_80504F0
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080508CC: .4byte 0x00000257
|
|
_080508D0: .4byte 0x0000fff6
|
|
thumb_func_end sub_8050760
|
|
|
|
thumb_func_start sub_80508D4
|
|
sub_80508D4: @ 80508D4
|
|
push {lr}
|
|
ldr r2, _080508F8
|
|
ldr r1, [r2]
|
|
adds r1, 0xAA
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0xAA
|
|
ldrb r1, [r0]
|
|
lsls r1, 28
|
|
movs r0, 0x90
|
|
lsls r0, 23
|
|
adds r1, r0
|
|
lsrs r1, 24
|
|
movs r0, 0xC0
|
|
bl sub_814A880
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080508F8: .4byte 0x03004854
|
|
thumb_func_end sub_80508D4
|
|
|
|
thumb_func_start sub_80508FC
|
|
sub_80508FC: @ 80508FC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _08050944
|
|
ldr r0, [r4]
|
|
adds r0, 0xAA
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r0, 0x17
|
|
movs r1, 0x8
|
|
movs r2, 0x1C
|
|
movs r3, 0xD
|
|
bl DrawDefaultWindow
|
|
ldr r1, _08050948
|
|
ldr r3, _0805094C
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0xC
|
|
bl sub_814A5C0
|
|
ldr r0, _08050950
|
|
movs r1, 0x18
|
|
movs r2, 0x9
|
|
bl Print
|
|
ldr r0, [r4]
|
|
adds r0, 0xAA
|
|
ldrb r0, [r0]
|
|
bl sub_80508D4
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050944: .4byte 0x03004854
|
|
_08050948: .4byte 0x0000ffff
|
|
_0805094C: .4byte 0x00002d9f
|
|
_08050950: .4byte gUnknown_0842D2C5
|
|
thumb_func_end sub_80508FC
|
|
|
|
thumb_func_start sub_8050954
|
|
sub_8050954: @ 8050954
|
|
push {r4-r7,lr}
|
|
bl sub_8051474
|
|
bl GetMultiplayerId
|
|
ldr r0, _08050978
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, 0xC
|
|
bls _0805096E
|
|
b _08050CB6
|
|
_0805096E:
|
|
lsls r0, 2
|
|
ldr r1, _0805097C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08050978: .4byte 0x03004854
|
|
_0805097C: .4byte _08050980
|
|
.align 2, 0
|
|
_08050980:
|
|
.4byte _080509B4
|
|
.4byte _080509F8
|
|
.4byte _08050A4C
|
|
.4byte _08050A94
|
|
.4byte _08050AD0
|
|
.4byte _08050ADE
|
|
.4byte _08050B08
|
|
.4byte _08050B34
|
|
.4byte _08050B42
|
|
.4byte _08050B58
|
|
.4byte _08050BE0
|
|
.4byte _08050C64
|
|
.4byte _08050C98
|
|
_080509B4:
|
|
bl ClearLinkCallback
|
|
ldr r0, _080509C8
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl m4aMPlayTempoControl
|
|
movs r4, 0
|
|
b _080509E4
|
|
.align 2, 0
|
|
_080509C8: .4byte 0x03007380
|
|
_080509CC:
|
|
ldr r0, _080509F0
|
|
ldr r0, [r0]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl DestroyTask
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080509E4:
|
|
ldr r0, _080509F4
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bcc _080509CC
|
|
b _08050C82
|
|
.align 2, 0
|
|
_080509F0: .4byte 0x03004854
|
|
_080509F4: .4byte 0x0202e8cc
|
|
_080509F8:
|
|
ldr r1, _08050A24
|
|
ldr r3, [r1]
|
|
adds r2, r3, 0
|
|
adds r2, 0x56
|
|
ldrh r0, [r2]
|
|
subs r0, 0x20
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
adds r4, r1, 0
|
|
cmp r0, 0
|
|
bgt _08050A40
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
ldr r0, _08050A28
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08050A2C
|
|
adds r1, r3, 0
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08050A32
|
|
.align 2, 0
|
|
_08050A24: .4byte 0x03004854
|
|
_08050A28: .4byte 0x03002fa4
|
|
_08050A2C:
|
|
adds r1, r3, 0
|
|
adds r1, 0x6F
|
|
movs r0, 0x5
|
|
_08050A32:
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _08050A48
|
|
bl m4aMPlayStop
|
|
_08050A40:
|
|
bl sub_804E290
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050A48: .4byte 0x03007400
|
|
_08050A4C:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050A58
|
|
b _08050C82
|
|
_08050A58:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050A64
|
|
b _08050CB6
|
|
_08050A64:
|
|
ldr r4, _08050A90
|
|
ldr r3, [r4]
|
|
movs r2, 0xDE
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
movs r5, 0x96
|
|
lsls r5, 1
|
|
adds r0, r3, r5
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5A
|
|
ldrh r2, [r0]
|
|
adds r5, 0x94
|
|
adds r0, r3, r5
|
|
strh r2, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x28
|
|
bl SendBlock
|
|
ldr r1, [r4]
|
|
b _08050C86
|
|
.align 2, 0
|
|
_08050A90: .4byte 0x03004854
|
|
_08050A94:
|
|
bl GetBlockRecievedStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050AA0
|
|
b _08050CB6
|
|
_08050AA0:
|
|
ldr r2, _08050AC8
|
|
ldr r0, _08050ACC
|
|
ldr r3, [r0]
|
|
ldrh r0, [r2, 0x4]
|
|
adds r1, r3, 0
|
|
adds r1, 0x5A
|
|
strh r0, [r1]
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
ldr r0, [r2]
|
|
str r0, [r1]
|
|
adds r1, r3, 0
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl ResetBlockReceivedFlags
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050AC8: .4byte 0x03002b80
|
|
_08050ACC: .4byte 0x03004854
|
|
_08050AD0:
|
|
bl sub_8052228
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050ADC
|
|
b _08050CB6
|
|
_08050ADC:
|
|
b _08050C82
|
|
_08050ADE:
|
|
bl sub_8051C58
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050AEA
|
|
b _08050CB6
|
|
_08050AEA:
|
|
ldr r0, _08050AFC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08050B00
|
|
movs r0, 0x22
|
|
bl sav12_xor_increment
|
|
b _08050C82
|
|
.align 2, 0
|
|
_08050AFC: .4byte 0x03004834
|
|
_08050B00:
|
|
movs r0, 0x21
|
|
bl sav12_xor_increment
|
|
b _08050C82
|
|
_08050B08:
|
|
ldr r0, _08050B2C
|
|
ldr r1, [r0]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _08050B30
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050B2C: .4byte 0x03004854
|
|
_08050B30: .4byte gUnknown_0842D3B5
|
|
_08050B34:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050B40
|
|
b _08050CB6
|
|
_08050B40:
|
|
b _08050C82
|
|
_08050B42:
|
|
ldr r4, _08050B54
|
|
ldr r0, [r4]
|
|
adds r0, 0xAA
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
bl sub_80508FC
|
|
ldr r1, [r4]
|
|
b _08050C86
|
|
.align 2, 0
|
|
_08050B54: .4byte 0x03004854
|
|
_08050B58:
|
|
ldr r0, _08050B80
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08050B88
|
|
ldr r0, _08050B84
|
|
ldr r0, [r0]
|
|
adds r0, 0xAA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08050B76
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
_08050B76:
|
|
movs r0, 0
|
|
bl sub_80508D4
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050B80: .4byte 0x03001770
|
|
_08050B84: .4byte 0x03004854
|
|
_08050B88:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08050BA8
|
|
ldr r0, _08050BA4
|
|
ldr r0, [r0]
|
|
adds r0, 0xAA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08050BD4
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
b _08050BD4
|
|
.align 2, 0
|
|
_08050BA4: .4byte 0x03004854
|
|
_08050BA8:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08050BB8
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
b _08050C82
|
|
_08050BB8:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08050BC2
|
|
b _08050CB6
|
|
_08050BC2:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, _08050BDC
|
|
ldr r1, [r0]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08050BD4:
|
|
movs r0, 0x1
|
|
bl sub_80508D4
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050BDC: .4byte 0x03004854
|
|
_08050BE0:
|
|
ldr r6, _08050C10
|
|
movs r7, 0
|
|
ldr r0, _08050C14
|
|
strh r0, [r6]
|
|
ldr r4, _08050C18
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0xAA
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _08050C50
|
|
movs r0, 0x4
|
|
bl IsBagPocketNonEmpty
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050C20
|
|
ldr r0, [r4]
|
|
adds r0, 0x7C
|
|
movs r1, 0x2
|
|
strh r1, [r0]
|
|
ldr r0, _08050C1C
|
|
b _08050C48
|
|
.align 2, 0
|
|
_08050C10: .4byte 0x03002f90
|
|
_08050C14: .4byte 0x00002fff
|
|
_08050C18: .4byte 0x03004854
|
|
_08050C1C: .4byte 0x00009999
|
|
_08050C20:
|
|
bl sub_810CA00
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _08050C40
|
|
ldr r0, [r4]
|
|
adds r0, 0x7C
|
|
movs r1, 0x3
|
|
strh r1, [r0]
|
|
ldr r0, _08050C3C
|
|
b _08050C48
|
|
.align 2, 0
|
|
_08050C3C: .4byte 0x0000aaaa
|
|
_08050C40:
|
|
ldr r0, [r4]
|
|
adds r0, 0x7C
|
|
strh r5, [r0]
|
|
ldr r0, _08050C4C
|
|
_08050C48:
|
|
strh r0, [r6, 0x2]
|
|
b _08050C82
|
|
.align 2, 0
|
|
_08050C4C: .4byte 0x00007779
|
|
_08050C50:
|
|
adds r1, r2, 0
|
|
adds r1, 0x7C
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r0, _08050C60
|
|
strh r0, [r6, 0x2]
|
|
subs r1, 0xD
|
|
b _08050C88
|
|
.align 2, 0
|
|
_08050C60: .4byte 0x00008888
|
|
_08050C64:
|
|
ldr r0, _08050C70
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08050C78
|
|
ldr r0, _08050C74
|
|
b _08050CA4
|
|
.align 2, 0
|
|
_08050C70: .4byte 0x03004834
|
|
_08050C74: .4byte sub_80510E8
|
|
_08050C78:
|
|
ldr r0, _08050C90
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
_08050C82:
|
|
ldr r0, _08050C94
|
|
ldr r1, [r0]
|
|
_08050C86:
|
|
adds r1, 0x6F
|
|
_08050C88:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08050CB6
|
|
.align 2, 0
|
|
_08050C90: .4byte gUnknown_0842D3A5
|
|
_08050C94: .4byte 0x03004854
|
|
_08050C98:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050CB6
|
|
ldr r0, _08050CE0
|
|
_08050CA4:
|
|
bl SetMainCallback2
|
|
ldr r2, _08050CE4
|
|
ldr r0, [r2]
|
|
adds r0, 0x6F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0]
|
|
_08050CB6:
|
|
bl sub_8051B18
|
|
ldr r0, _08050CE4
|
|
ldr r0, [r0]
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
bl sub_8051A3C
|
|
bl sub_805123C
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050CE0: .4byte sub_8050E30
|
|
_08050CE4: .4byte 0x03004854
|
|
thumb_func_end sub_8050954
|
|
|
|
thumb_func_start sub_8050CE8
|
|
sub_8050CE8: @ 8050CE8
|
|
push {r4,lr}
|
|
ldr r1, _08050D08
|
|
ldr r0, [r1]
|
|
movs r2, 0xE2
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x6
|
|
bls _08050CFE
|
|
b _08050E28
|
|
_08050CFE:
|
|
lsls r0, 2
|
|
ldr r1, _08050D0C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08050D08: .4byte 0x03004854
|
|
_08050D0C: .4byte _08050D10
|
|
.align 2, 0
|
|
_08050D10:
|
|
.4byte _08050D2C
|
|
.4byte _08050D44
|
|
.4byte _08050D70
|
|
.4byte _08050D80
|
|
.4byte _08050DA6
|
|
.4byte _08050DEC
|
|
.4byte _08050E06
|
|
_08050D2C:
|
|
bl sub_80084A4
|
|
ldr r0, _08050D40
|
|
ldr r2, [r0]
|
|
movs r3, 0xE2
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
movs r0, 0x1
|
|
b _08050DF8
|
|
.align 2, 0
|
|
_08050D40: .4byte 0x03004854
|
|
_08050D44:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050E28
|
|
ldr r0, _08050D68
|
|
ldr r1, [r0]
|
|
movs r2, 0xE2
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r1, _08050D6C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _08050E28
|
|
.align 2, 0
|
|
_08050D68: .4byte 0x03004854
|
|
_08050D6C: .4byte 0x03001bb4
|
|
_08050D70:
|
|
bl sub_8125E2C
|
|
ldr r0, _08050D7C
|
|
ldr r2, [r0]
|
|
b _08050DEE
|
|
.align 2, 0
|
|
_08050D7C: .4byte 0x03004854
|
|
_08050D80:
|
|
ldr r1, [r4]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0xA
|
|
bne _08050E28
|
|
bl sub_80084A4
|
|
ldr r1, [r4]
|
|
movs r3, 0xE2
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
b _08050E28
|
|
_08050DA6:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050E28
|
|
bl sub_8125E6C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _08050DD0
|
|
ldr r0, _08050DCC
|
|
ldr r0, [r0]
|
|
movs r1, 0xE2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
str r1, [r0]
|
|
b _08050E28
|
|
.align 2, 0
|
|
_08050DCC: .4byte 0x03004854
|
|
_08050DD0:
|
|
ldr r0, _08050DE8
|
|
ldr r1, [r0]
|
|
movs r3, 0x98
|
|
lsls r3, 1
|
|
adds r0, r1, r3
|
|
str r2, [r0]
|
|
movs r0, 0xE2
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
str r0, [r1]
|
|
b _08050E28
|
|
.align 2, 0
|
|
_08050DE8: .4byte 0x03004854
|
|
_08050DEC:
|
|
ldr r2, [r4]
|
|
_08050DEE:
|
|
movs r3, 0xE2
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
_08050DF8:
|
|
str r0, [r1]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
b _08050E28
|
|
_08050E06:
|
|
ldr r1, [r4]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x5
|
|
ble _08050E28
|
|
ldr r1, _08050E24
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _08050E2A
|
|
.align 2, 0
|
|
_08050E24: .4byte 0x03001bb4
|
|
_08050E28:
|
|
movs r0, 0
|
|
_08050E2A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8050CE8
|
|
|
|
thumb_func_start sub_8050E30
|
|
sub_8050E30: @ 8050E30
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r1, _08050E50
|
|
ldr r0, [r1]
|
|
adds r0, 0x6F
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0xC
|
|
bls _08050E44
|
|
b _080510C4
|
|
_08050E44:
|
|
lsls r0, 2
|
|
ldr r1, _08050E54
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08050E50: .4byte 0x03004854
|
|
_08050E54: .4byte _08050E58
|
|
.align 2, 0
|
|
_08050E58:
|
|
.4byte _08050E8C
|
|
.4byte _08050ED8
|
|
.4byte _08050F18
|
|
.4byte _08050F6C
|
|
.4byte _08050F8C
|
|
.4byte _08050FAA
|
|
.4byte _08050FD4
|
|
.4byte _08051004
|
|
.4byte _08051020
|
|
.4byte _08051030
|
|
.4byte _08051054
|
|
.4byte _08051094
|
|
.4byte _080510B6
|
|
_08050E8C:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x70
|
|
ldrh r2, [r0]
|
|
ldr r0, _08050EB8
|
|
cmp r2, r0
|
|
bne _08050E9C
|
|
b _08050FA2
|
|
_08050E9C:
|
|
ldr r0, _08050EBC
|
|
cmp r2, r0
|
|
beq _08050EA4
|
|
b _080510C4
|
|
_08050EA4:
|
|
adds r0, r1, 0
|
|
adds r0, 0x78
|
|
ldrh r2, [r0]
|
|
ldr r0, _08050EC0
|
|
cmp r2, r0
|
|
bne _08050EC4
|
|
adds r1, 0x6F
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _080510C4
|
|
.align 2, 0
|
|
_08050EB8: .4byte 0x00002222
|
|
_08050EBC: .4byte 0x00001111
|
|
_08050EC0: .4byte 0x00009999
|
|
_08050EC4:
|
|
ldr r0, _08050ED4
|
|
cmp r2, r0
|
|
bne _08050FA2
|
|
adds r1, 0x6F
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _080510C4
|
|
.align 2, 0
|
|
_08050ED4: .4byte 0x0000aaaa
|
|
_08050ED8:
|
|
ldr r0, [r5]
|
|
adds r0, 0x6F
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
bl sub_814A7FC
|
|
movs r0, 0x17
|
|
movs r1, 0x8
|
|
movs r2, 0x1C
|
|
movs r3, 0xD
|
|
bl Reset
|
|
ldr r4, _08050F0C
|
|
ldr r0, [r5]
|
|
adds r0, 0x7A
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08050F10
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r1, _08050F14
|
|
b _08050F4C
|
|
.align 2, 0
|
|
_08050F0C: .4byte 0x020234cc
|
|
_08050F10: .4byte 0x03002978
|
|
_08050F14: .4byte gUnknown_0842D461
|
|
_08050F18:
|
|
ldr r1, [r5]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_814A7FC
|
|
movs r0, 0x17
|
|
movs r1, 0x8
|
|
movs r2, 0x1C
|
|
movs r3, 0xD
|
|
bl Reset
|
|
ldr r4, _08050F60
|
|
ldr r0, [r5]
|
|
adds r0, 0x7A
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08050F64
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r1, _08050F68
|
|
_08050F4C:
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
b _080510C4
|
|
.align 2, 0
|
|
_08050F60: .4byte 0x020234cc
|
|
_08050F64: .4byte 0x03002978
|
|
_08050F68: .4byte gUnknown_0842D434
|
|
_08050F6C:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050F78
|
|
b _080510C4
|
|
_08050F78:
|
|
ldr r0, _08050F88
|
|
ldr r1, [r0]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _080510AC
|
|
.align 2, 0
|
|
_08050F88: .4byte 0x03004854
|
|
_08050F8C:
|
|
ldr r2, [r5]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x3C
|
|
bgt _08050FA0
|
|
b _080510C4
|
|
_08050FA0:
|
|
adds r1, r2, 0
|
|
_08050FA2:
|
|
adds r1, 0x6F
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
b _080510C4
|
|
_08050FAA:
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _08050FCC
|
|
movs r1, 0x2
|
|
movs r2, 0xF
|
|
bl Print
|
|
bl sub_80084A4
|
|
ldr r0, _08050FD0
|
|
ldr r1, [r0]
|
|
b _080510AC
|
|
.align 2, 0
|
|
_08050FCC: .4byte gUnknown_0842C328
|
|
_08050FD0: .4byte 0x03004854
|
|
_08050FD4:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080510C4
|
|
ldr r3, _08051000
|
|
ldr r1, [r3]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
movs r1, 0xE2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
b _080510C4
|
|
.align 2, 0
|
|
_08051000: .4byte 0x03004854
|
|
_08051004:
|
|
bl sub_8050CE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080510C4
|
|
movs r0, 0x37
|
|
bl audio_play
|
|
ldr r0, _0805101C
|
|
ldr r1, [r0]
|
|
b _080510AC
|
|
.align 2, 0
|
|
_0805101C: .4byte 0x03004854
|
|
_08051020:
|
|
ldr r1, [r5]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_80084A4
|
|
b _080510C4
|
|
_08051030:
|
|
bl sub_8007ECC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080510C4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _08051050
|
|
ldr r1, [r0]
|
|
b _080510AC
|
|
.align 2, 0
|
|
_08051050: .4byte 0x03004854
|
|
_08051054:
|
|
ldr r0, _0805107C
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
bne _080510C4
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0x70
|
|
ldrh r1, [r0]
|
|
ldr r0, _08051080
|
|
cmp r1, r0
|
|
bne _08051088
|
|
ldr r0, _08051084
|
|
bl SetMainCallback2
|
|
b _080510C4
|
|
.align 2, 0
|
|
_0805107C: .4byte 0x0202f388
|
|
_08051080: .4byte 0x00002222
|
|
_08051084: .4byte sub_804E538
|
|
_08051088:
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
str r3, [r0]
|
|
adds r1, r2, 0
|
|
b _080510AC
|
|
_08051094:
|
|
ldr r1, [r5]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x1E
|
|
ble _080510C4
|
|
bl sub_800832C
|
|
ldr r1, [r5]
|
|
_080510AC:
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080510C4
|
|
_080510B6:
|
|
ldr r0, _080510E0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080510C4
|
|
ldr r0, _080510E4
|
|
bl SetMainCallback2
|
|
_080510C4:
|
|
bl sub_805123C
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080510E0: .4byte 0x03002fa4
|
|
_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end sub_8050E30
|
|
|
|
thumb_func_start sub_80510E8
|
|
sub_80510E8: @ 80510E8
|
|
push {lr}
|
|
ldr r1, _08051104
|
|
ldr r0, [r1]
|
|
adds r0, 0x6F
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0xA
|
|
bls _080510FA
|
|
b _0805121E
|
|
_080510FA:
|
|
lsls r0, 2
|
|
ldr r1, _08051108
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08051104: .4byte 0x03004854
|
|
_08051108: .4byte _0805110C
|
|
.align 2, 0
|
|
_0805110C:
|
|
.4byte _08051138
|
|
.4byte _0805116E
|
|
.4byte _08051190
|
|
.4byte _080511BC
|
|
.4byte _0805121E
|
|
.4byte _0805121E
|
|
.4byte _0805121E
|
|
.4byte _0805121E
|
|
.4byte _0805121E
|
|
.4byte _080511D8
|
|
.4byte _080511F0
|
|
_08051138:
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0805114A
|
|
adds r1, 0x6F
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
_0805114A:
|
|
ldr r2, [r3]
|
|
adds r0, r2, 0
|
|
adds r0, 0x7C
|
|
ldrh r1, [r0]
|
|
cmp r1, 0x2
|
|
bne _0805115A
|
|
subs r0, 0xD
|
|
strb r1, [r0]
|
|
_0805115A:
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0805121E
|
|
adds r1, 0x6F
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0805121E
|
|
_0805116E:
|
|
ldr r0, [r3]
|
|
adds r0, 0x6F
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
bl sub_814A7FC
|
|
movs r0, 0x17
|
|
movs r1, 0x8
|
|
movs r2, 0x1C
|
|
movs r3, 0xD
|
|
bl Reset
|
|
ldr r0, _0805118C
|
|
b _080511AC
|
|
.align 2, 0
|
|
_0805118C: .4byte gUnknown_0842D41A
|
|
_08051190:
|
|
ldr r0, [r3]
|
|
adds r0, 0x6F
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
bl sub_814A7FC
|
|
movs r0, 0x17
|
|
movs r1, 0x8
|
|
movs r2, 0x1C
|
|
movs r3, 0xD
|
|
bl Reset
|
|
ldr r0, _080511B8
|
|
_080511AC:
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
b _0805121E
|
|
.align 2, 0
|
|
_080511B8: .4byte gUnknown_0842D3DC
|
|
_080511BC:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805121E
|
|
ldr r0, _080511D4
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x9
|
|
strb r1, [r0]
|
|
b _0805121E
|
|
.align 2, 0
|
|
_080511D4: .4byte 0x03004854
|
|
_080511D8:
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
ldr r0, _080511EC
|
|
ldr r1, [r0]
|
|
adds r1, 0x6F
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0805121E
|
|
.align 2, 0
|
|
_080511EC: .4byte 0x03004854
|
|
_080511F0:
|
|
ldr r0, _08051210
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805121E
|
|
ldr r0, [r3]
|
|
adds r0, 0x7C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08051218
|
|
ldr r0, _08051214
|
|
bl SetMainCallback2
|
|
b _0805121E
|
|
.align 2, 0
|
|
_08051210: .4byte 0x0202f388
|
|
_08051214: .4byte sub_804E538
|
|
_08051218:
|
|
ldr r0, _08051238
|
|
bl SetMainCallback2
|
|
_0805121E:
|
|
bl sub_805123C
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end sub_80510E8
|
|
|
|
thumb_func_start sub_805123C
|
|
sub_805123C: @ 805123C
|
|
push {r4-r6,lr}
|
|
ldr r0, _0805126C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08051248
|
|
b _08051404
|
|
_08051248:
|
|
ldr r4, _08051270
|
|
ldrh r1, [r4]
|
|
ldr r0, _08051274
|
|
cmp r1, r0
|
|
bne _080512C6
|
|
ldrh r1, [r4, 0x8]
|
|
ldr r0, _08051278
|
|
cmp r1, r0
|
|
bne _080512B8
|
|
ldrh r3, [r4, 0x10]
|
|
ldr r0, _0805127C
|
|
cmp r3, r0
|
|
beq _08051298
|
|
cmp r3, r0
|
|
bgt _08051284
|
|
ldr r0, _08051280
|
|
b _08051286
|
|
.align 2, 0
|
|
_0805126C: .4byte 0x03002fa4
|
|
_08051270: .4byte 0x03002a20
|
|
_08051274: .4byte 0x00002fff
|
|
_08051278: .4byte 0x00001111
|
|
_0805127C: .4byte 0x00009999
|
|
_08051280: .4byte 0x00008888
|
|
_08051284:
|
|
ldr r0, _08051290
|
|
_08051286:
|
|
cmp r3, r0
|
|
beq _08051298
|
|
ldr r2, _08051294
|
|
b _080512A8
|
|
.align 2, 0
|
|
_08051290: .4byte 0x0000aaaa
|
|
_08051294: .4byte 0x03004854
|
|
_08051298:
|
|
ldr r2, _080512B0
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0x78
|
|
strh r3, [r1]
|
|
ldrh r1, [r4, 0x18]
|
|
adds r0, 0x7A
|
|
strh r1, [r0]
|
|
_080512A8:
|
|
ldr r0, [r2]
|
|
adds r0, 0x70
|
|
ldr r1, _080512B4
|
|
b _080512C4
|
|
.align 2, 0
|
|
_080512B0: .4byte 0x03004854
|
|
_080512B4: .4byte 0x00001111
|
|
_080512B8:
|
|
ldr r0, _080512F4
|
|
cmp r1, r0
|
|
bne _080512C6
|
|
ldr r0, _080512F8
|
|
ldr r0, [r0]
|
|
adds r0, 0x70
|
|
_080512C4:
|
|
strh r1, [r0]
|
|
_080512C6:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080512D2
|
|
b _08051404
|
|
_080512D2:
|
|
ldr r2, _080512F8
|
|
ldr r0, [r2]
|
|
adds r0, 0x70
|
|
ldrh r1, [r0]
|
|
ldr r0, _080512FC
|
|
cmp r1, r0
|
|
bne _080512E2
|
|
b _08051404
|
|
_080512E2:
|
|
ldr r0, _080512F4
|
|
cmp r1, r0
|
|
bne _080512EA
|
|
b _08051404
|
|
_080512EA:
|
|
movs r4, 0
|
|
ldr r6, _08051300
|
|
adds r5, r2, 0
|
|
b _0805134E
|
|
.align 2, 0
|
|
_080512F4: .4byte 0x00002222
|
|
_080512F8: .4byte 0x03004854
|
|
_080512FC: .4byte 0x00001111
|
|
_08051300: .4byte 0x00002fff
|
|
_08051304:
|
|
ldr r1, _08051328
|
|
lsls r2, r4, 1
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _08051348
|
|
adds r0, r1, 0
|
|
adds r0, 0x8
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
ldr r0, _0805132C
|
|
cmp r1, r0
|
|
beq _08051340
|
|
cmp r1, r0
|
|
bgt _08051334
|
|
ldr r0, _08051330
|
|
b _0805133C
|
|
.align 2, 0
|
|
_08051328: .4byte 0x03002a20
|
|
_0805132C: .4byte 0x00008888
|
|
_08051330: .4byte 0x00007779
|
|
_08051334:
|
|
ldr r0, _08051360
|
|
cmp r1, r0
|
|
beq _08051340
|
|
ldr r0, _08051364
|
|
_0805133C:
|
|
cmp r1, r0
|
|
bne _08051348
|
|
_08051340:
|
|
ldr r0, [r5]
|
|
adds r0, 0x70
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
_08051348:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0805134E:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bcc _08051304
|
|
movs r4, 0
|
|
b _0805136E
|
|
.align 2, 0
|
|
_08051360: .4byte 0x00009999
|
|
_08051364: .4byte 0x0000aaaa
|
|
_08051368:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0805136E:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bcs _0805138A
|
|
ldr r0, _0805139C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x70
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08051368
|
|
_0805138A:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _08051404
|
|
movs r4, 0
|
|
ldr r5, _080513A0
|
|
b _080513AA
|
|
.align 2, 0
|
|
_0805139C: .4byte 0x03004854
|
|
_080513A0: .4byte 0x00007779
|
|
_080513A4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080513AA:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bcs _080513C6
|
|
ldr r0, _080513E0
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x70
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
beq _080513A4
|
|
_080513C6:
|
|
ldr r5, _080513E4
|
|
movs r6, 0
|
|
ldr r0, _080513E8
|
|
strh r0, [r5]
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _080513F0
|
|
ldr r0, _080513EC
|
|
strh r0, [r5, 0x2]
|
|
b _08051404
|
|
.align 2, 0
|
|
_080513E0: .4byte 0x03004854
|
|
_080513E4: .4byte 0x03002f90
|
|
_080513E8: .4byte 0x00002fff
|
|
_080513EC: .4byte 0x00002222
|
|
_080513F0:
|
|
ldr r0, _0805140C
|
|
strh r0, [r5, 0x2]
|
|
ldr r0, _08051410
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x70
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x4]
|
|
strh r4, [r5, 0x6]
|
|
_08051404:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805140C: .4byte 0x00001111
|
|
_08051410: .4byte 0x03004854
|
|
thumb_func_end sub_805123C
|
|
|
|
thumb_func_start sub_8051414
|
|
sub_8051414: @ 8051414
|
|
push {lr}
|
|
sub sp, 0x14
|
|
adds r1, r0, 0
|
|
movs r0, 0xF0
|
|
lsls r0, 7
|
|
str r0, [sp]
|
|
movs r0, 0xA0
|
|
lsls r0, 7
|
|
str r0, [sp, 0x4]
|
|
mov r3, sp
|
|
ldr r0, _08051470
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r2, [r0]
|
|
movs r0, 0x78
|
|
subs r0, r2
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0xA3
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r2, [r0]
|
|
movs r0, 0x50
|
|
subs r0, r2
|
|
strh r0, [r3, 0xA]
|
|
mov r2, sp
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
add r3, r12
|
|
ldrh r0, [r3]
|
|
strh r0, [r2, 0xC]
|
|
ldrh r0, [r3]
|
|
strh r0, [r2, 0xE]
|
|
mov r0, r12
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x10]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl BgAffineSet
|
|
add sp, 0x14
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051470: .4byte 0x03004854
|
|
thumb_func_end sub_8051414
|
|
|
|
thumb_func_start sub_8051474
|
|
sub_8051474: @ 8051474
|
|
push {lr}
|
|
ldr r0, _080514A0
|
|
ldr r3, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x54
|
|
ldrh r2, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x58
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
bl sub_8051414
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080514A0: .4byte 0x03004854
|
|
thumb_func_end sub_8051474
|
|
|
|
thumb_func_start sub_80514A4
|
|
sub_80514A4: @ 80514A4
|
|
ldr r1, _080514E8
|
|
ldr r0, _080514EC
|
|
ldr r2, [r0]
|
|
movs r3, 0xB4
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r1, 0x4
|
|
adds r3, 0x4
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080514E8: .4byte REG_BG2PA
|
|
_080514EC: .4byte 0x03004854
|
|
thumb_func_end sub_80514A4
|
|
|
|
thumb_func_start sub_80514F0
|
|
sub_80514F0: @ 80514F0
|
|
ldr r1, _0805151C
|
|
ldr r0, _08051520
|
|
ldr r3, [r0]
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0xA3
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
subs r1, 0x6
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805151C: .4byte REG_BG1HOFS
|
|
_08051520: .4byte 0x03004854
|
|
thumb_func_end sub_80514F0
|
|
|
|
thumb_func_start sub_8051524
|
|
sub_8051524: @ 8051524
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x34]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bge _08051542
|
|
adds r0, 0x7
|
|
_08051542:
|
|
asrs r0, 3
|
|
strh r0, [r2, 0x24]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bge _08051550
|
|
adds r0, 0x7
|
|
_08051550:
|
|
asrs r0, 3
|
|
strh r0, [r2, 0x26]
|
|
adds r0, r2, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051568
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_08051568:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8051524
|
|
|
|
thumb_func_start sub_805156C
|
|
sub_805156C: @ 805156C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
adds r0, r1, 0x1
|
|
cmp r0, 0
|
|
beq _08051628
|
|
ldr r0, _08051638
|
|
mov r9, r0
|
|
ldr r2, _0805163C
|
|
mov r10, r2
|
|
adds r6, r1, 0x1
|
|
movs r3, 0x1F
|
|
mov r8, r3
|
|
movs r7, 0x10
|
|
_08051598:
|
|
bl Random
|
|
ldr r1, _08051640
|
|
ldr r4, [r1]
|
|
adds r4, 0x54
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x14
|
|
bl __umodsi3
|
|
ldrh r1, [r4]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r2, r0, 16
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
lsls r0, 1
|
|
add r0, r9
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
cmp r1, 0
|
|
bge _080515CC
|
|
adds r1, 0x3
|
|
_080515CC:
|
|
asrs r1, 2
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bge _080515DC
|
|
adds r0, 0x3
|
|
_080515DC:
|
|
asrs r2, r0, 2
|
|
adds r1, 0x78
|
|
adds r2, 0x50
|
|
ldr r0, _08051644
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
lsls r5, r4, 4
|
|
adds r5, r4
|
|
lsls r5, 2
|
|
mov r3, r10
|
|
adds r4, r5, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, r8
|
|
ands r0, r1
|
|
subs r0, r7, r0
|
|
strh r0, [r4, 0x2E]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r2, r8
|
|
ands r0, r2
|
|
subs r0, r7, r0
|
|
strh r0, [r4, 0x30]
|
|
ldr r3, _08051648
|
|
adds r5, r3
|
|
ldr r0, _0805164C
|
|
str r0, [r5]
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08051598
|
|
_08051628:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051638: .4byte gSineTable
|
|
_0805163C: .4byte 0x02020004
|
|
_08051640: .4byte 0x03004854
|
|
_08051644: .4byte gSpriteTemplate_82164FC
|
|
_08051648: .4byte 0x02020020
|
|
_0805164C: .4byte sub_8051524
|
|
thumb_func_end sub_805156C
|
|
|
|
thumb_func_start sub_8051650
|
|
sub_8051650: @ 8051650
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805167C
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_0805167C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8051650
|
|
|
|
thumb_func_start sub_8051684
|
|
sub_8051684: @ 8051684
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 1
|
|
negs r0, r0
|
|
strh r0, [r2, 0x26]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xC
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080516A8
|
|
ldr r0, _080516C0
|
|
strh r0, [r2, 0x26]
|
|
_080516A8:
|
|
adds r0, r2, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080516BC
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_080516BC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080516C0: .4byte 0x0000fff4
|
|
thumb_func_end sub_8051684
|
|
|
|
thumb_func_start sub_80516C4
|
|
sub_80516C4: @ 80516C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r2, _080516F4
|
|
ldr r3, [r2]
|
|
lsls r4, r0, 1
|
|
adds r2, r3, 0
|
|
adds r2, 0x80
|
|
adds r2, r4
|
|
strh r1, [r2]
|
|
lsls r0, 4
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
adds r3, r0
|
|
adds r0, r3, 0
|
|
bl sub_804E844
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080516F4: .4byte 0x03004854
|
|
thumb_func_end sub_80516C4
|
|
|
|
thumb_func_start unref_sub_80516F8
|
|
unref_sub_80516F8: @ 80516F8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080517B8
|
|
adds r4, r0, r1
|
|
ldr r6, _080517BC
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805180C
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080517D4
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x78
|
|
ble _08051730
|
|
strh r1, [r4, 0x8]
|
|
_08051730:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x64
|
|
bne _080517A0
|
|
ldr r0, _080517C0
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
movs r1, 0x14
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl ZeroFillWindowRect
|
|
movs r0, 0x4
|
|
movs r1, 0x4
|
|
movs r2, 0xA
|
|
movs r3, 0xC
|
|
bl DrawDefaultWindow
|
|
movs r2, 0
|
|
ldr r6, _080517C4
|
|
_0805175C:
|
|
adds r4, r2, 0x1
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08051784
|
|
ldr r1, _080517C8
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r2, 25
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
adds r2, r1
|
|
lsrs r2, 24
|
|
movs r1, 0x5
|
|
bl Print
|
|
_08051784:
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
ldr r0, _080517CC
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl Print
|
|
adds r2, r4, 0
|
|
cmp r2, 0x2
|
|
ble _0805175C
|
|
_080517A0:
|
|
ldr r0, _080517D0
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805180C
|
|
bl sub_8007E4C
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
b _0805180C
|
|
.align 2, 0
|
|
_080517B8: .4byte 0x03004b20
|
|
_080517BC: .4byte 0x03002fa4
|
|
_080517C0: .4byte 0x03004854
|
|
_080517C4: .4byte 0x03002974
|
|
_080517C8: .4byte gUnknown_08216284
|
|
_080517CC: .4byte gUnknown_0842D373
|
|
_080517D0: .4byte 0x03001770
|
|
_080517D4:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xA
|
|
bne _080517E6
|
|
ldr r0, _08051814
|
|
movs r1, 0x3
|
|
movs r2, 0xA
|
|
bl Print
|
|
_080517E6:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x78
|
|
ble _080517F8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
_080517F8:
|
|
ldr r0, _08051818
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _0805180C
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
bne _0805180C
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0805180C:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051814: .4byte gUnknown_0842D390
|
|
_08051818: .4byte 0x03002a68
|
|
thumb_func_end unref_sub_80516F8
|
|
|
|
thumb_func_start sub_805181C
|
|
sub_805181C: @ 805181C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08051858
|
|
cmp r0, 0x1
|
|
bgt _08051832
|
|
cmp r0, 0
|
|
beq _08051838
|
|
b _080518BE
|
|
_08051832:
|
|
cmp r0, 0x2
|
|
beq _08051872
|
|
b _080518BE
|
|
_08051838:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x58
|
|
ble _080518BE
|
|
movs r0, 0x58
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x38
|
|
bl audio_play
|
|
b _080518BE
|
|
_08051858:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080518BE
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
b _080518BE
|
|
_08051872:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB0
|
|
ble _080518BE
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
adds r1, r0, 0
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080518AC
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldr r0, _080518A8
|
|
movs r2, 0x14
|
|
negs r2, r2
|
|
movs r1, 0x78
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
b _080518BE
|
|
.align 2, 0
|
|
_080518A8: .4byte gSpriteTemplate_821657C
|
|
_080518AC:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080518C8
|
|
strh r0, [r4, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_080518BE:
|
|
ldrh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x26]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080518C8: .4byte 0x0000fff0
|
|
thumb_func_end sub_805181C
|
|
|
|
thumb_func_start sub_80518CC
|
|
sub_80518CC: @ 80518CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08051908
|
|
cmp r0, 0x1
|
|
bgt _080518E2
|
|
cmp r0, 0
|
|
beq _080518E8
|
|
b _0805193C
|
|
_080518E2:
|
|
cmp r0, 0x2
|
|
beq _0805191E
|
|
b _0805193C
|
|
_080518E8:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5C
|
|
ble _0805193C
|
|
movs r0, 0x5C
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x15
|
|
bl audio_play
|
|
b _0805193C
|
|
_08051908:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0805193C
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _0805193C
|
|
_0805191E:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB0
|
|
ble _0805193C
|
|
ldr r0, _08051948
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_0805193C:
|
|
ldrh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x26]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051948: .4byte 0x03004854
|
|
thumb_func_end sub_80518CC
|
|
|
|
thumb_func_start sub_805194C
|
|
sub_805194C: @ 805194C
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
ldr r1, _08051978
|
|
ldr r1, [r1]
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
cmp r2, r0
|
|
bcs _08051972
|
|
adds r0, r2, 0x2
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
adds r1, r3, 0
|
|
bl sub_805197C
|
|
_08051972:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051978: .4byte 0x03004854
|
|
thumb_func_end sub_805194C
|
|
|
|
thumb_func_start sub_805197C
|
|
sub_805197C: @ 805197C
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r7, _08051A0C
|
|
lsrs r0, 10
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _08051994
|
|
adds r0, r1, 0x7
|
|
_08051994:
|
|
asrs r4, r0, 3
|
|
movs r3, 0
|
|
cmp r3, r4
|
|
bge _080519BC
|
|
ldr r0, _08051A10
|
|
adds r6, r0, 0
|
|
adds r0, 0x10
|
|
adds r5, r0, 0
|
|
adds r2, r7, 0
|
|
adds r2, 0x56
|
|
adds r0, r7, 0
|
|
adds r3, r4, 0
|
|
_080519AC:
|
|
strh r6, [r0, 0x16]
|
|
strh r5, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080519AC
|
|
adds r3, r4, 0
|
|
_080519BC:
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080519C4
|
|
adds r0, r1, 0x7
|
|
_080519C4:
|
|
asrs r2, r0, 3
|
|
lsls r0, r2, 3
|
|
subs r2, r1, r0
|
|
cmp r2, 0
|
|
beq _080519E2
|
|
lsls r0, r3, 1
|
|
adds r0, r7
|
|
ldr r4, _08051A14
|
|
adds r1, r2, r4
|
|
strh r1, [r0, 0x16]
|
|
adds r0, 0x56
|
|
adds r4, 0x10
|
|
adds r1, r2, r4
|
|
strh r1, [r0]
|
|
adds r3, 0x1
|
|
_080519E2:
|
|
cmp r3, 0x7
|
|
bgt _08051A06
|
|
ldr r0, _08051A18
|
|
adds r4, r0, 0
|
|
adds r0, 0x10
|
|
adds r2, r0, 0
|
|
lsls r1, r3, 1
|
|
adds r0, r1, 0
|
|
adds r0, 0x56
|
|
adds r0, r7
|
|
adds r1, r7
|
|
_080519F8:
|
|
strh r4, [r1, 0x16]
|
|
strh r2, [r0]
|
|
adds r0, 0x2
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _080519F8
|
|
_08051A06:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051A0C: .4byte 0x06006000
|
|
_08051A10: .4byte 0x000081e9
|
|
_08051A14: .4byte 0xffff81e1
|
|
_08051A18: .4byte 0x000081e1
|
|
thumb_func_end sub_805197C
|
|
|
|
thumb_func_start sub_8051A1C
|
|
sub_8051A1C: @ 8051A1C
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08051A34
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _08051A2E
|
|
ldr r1, _08051A38
|
|
adds r0, r1
|
|
_08051A2E:
|
|
asrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08051A34: .4byte 0x00057e40
|
|
_08051A38: .4byte 0x0000ffff
|
|
thumb_func_end sub_8051A1C
|
|
|
|
thumb_func_start sub_8051A3C
|
|
sub_8051A3C: @ 8051A3C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8051A1C
|
|
adds r5, r0, 0
|
|
ldr r0, _08051ABC
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x5A
|
|
ldrh r0, [r1]
|
|
cmp r0, r5
|
|
bcs _08051A5A
|
|
strh r5, [r1]
|
|
_08051A5A:
|
|
movs r6, 0
|
|
_08051A5C:
|
|
mov r0, sp
|
|
adds r4, r0, r6
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r5, r0, 0
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x4
|
|
bls _08051A5C
|
|
ldr r2, _08051AC0
|
|
mov r0, sp
|
|
ldr r3, _08051AC4
|
|
adds r1, r3, 0
|
|
ldrb r0, [r0, 0x4]
|
|
adds r0, r1, r0
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x3]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r2, 0x4
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
adds r1, r0
|
|
strh r1, [r2]
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051ABC: .4byte 0x03004854
|
|
_08051AC0: .4byte 0x06006458
|
|
_08051AC4: .4byte 0x00008172
|
|
thumb_func_end sub_8051A3C
|
|
|
|
thumb_func_start sub_8051AC8
|
|
sub_8051AC8: @ 8051AC8
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r4, r1, 16
|
|
lsrs r5, r4, 16
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08051AEC
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl __umodsi3
|
|
lsrs r1, r4, 17
|
|
subs r0, r1
|
|
strh r0, [r6]
|
|
_08051AEC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8051AC8
|
|
|
|
thumb_func_start sub_8051AF4
|
|
sub_8051AF4: @ 8051AF4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bge _08051B06
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1]
|
|
_08051B06:
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
ble _08051B14
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1]
|
|
_08051B14:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8051AF4
|
|
|
|
thumb_func_start sub_8051B18
|
|
sub_8051B18: @ 8051B18
|
|
push {r4,lr}
|
|
ldr r4, _08051B3C
|
|
ldr r0, [r4]
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bl sub_8051AF4
|
|
ldr r0, [r4]
|
|
movs r1, 0xA3
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bl sub_8051AF4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051B3C: .4byte 0x03004854
|
|
thumb_func_end sub_8051B18
|
|
|
|
thumb_func_start sub_8051B40
|
|
sub_8051B40: @ 8051B40
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r5, 0x8
|
|
cmp r1, 0x9
|
|
bhi _08051B50
|
|
movs r5, 0x10
|
|
_08051B50:
|
|
ldrh r0, [r4]
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _08051B6E
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl __modsi3
|
|
lsrs r1, r5, 1
|
|
subs r0, r1
|
|
b _08051B82
|
|
_08051B6E:
|
|
cmp r1, 0
|
|
bge _08051B76
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
_08051B76:
|
|
ldrh r1, [r4]
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _08051B84
|
|
subs r0, r1, 0x1
|
|
_08051B82:
|
|
strh r0, [r4]
|
|
_08051B84:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8051B40
|
|
|
|
thumb_func_start sub_8051B8C
|
|
sub_8051B8C: @ 8051B8C
|
|
push {r4,r5,lr}
|
|
ldr r5, _08051BE4
|
|
ldr r2, [r5]
|
|
movs r4, 0x98
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _08051BAC
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
_08051BAC:
|
|
ldr r0, [r5]
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
adds r1, 0x1
|
|
str r1, [r2]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl sub_8051B40
|
|
ldr r1, [r5]
|
|
movs r3, 0xA3
|
|
lsls r3, 1
|
|
adds r0, r1, r3
|
|
adds r1, r4
|
|
ldrh r1, [r1]
|
|
bl sub_8051B40
|
|
ldr r2, [r5]
|
|
adds r0, r2, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0x14
|
|
beq _08051BE8
|
|
movs r0, 0
|
|
b _08051BFC
|
|
.align 2, 0
|
|
_08051BE4: .4byte 0x03004854
|
|
_08051BE8:
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r3, 0xA3
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
_08051BFC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8051B8C
|
|
|
|
thumb_func_start sub_8051C04
|
|
sub_8051C04: @ 8051C04
|
|
ldr r1, _08051C20
|
|
ldr r2, [r1]
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldrh r1, [r1]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x24]
|
|
adds r3, 0x2
|
|
adds r1, r2, r3
|
|
ldrh r1, [r1]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x26]
|
|
bx lr
|
|
.align 2, 0
|
|
_08051C20: .4byte 0x03004854
|
|
thumb_func_end sub_8051C04
|
|
|
|
thumb_func_start sub_8051C24
|
|
sub_8051C24: @ 8051C24
|
|
push {lr}
|
|
ldr r2, _08051C4C
|
|
ldr r0, _08051C50
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 1
|
|
ldr r3, _08051C54
|
|
adds r2, r3
|
|
adds r2, r0, r2
|
|
adds r1, 0x5A
|
|
ldrh r1, [r1]
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bcs _08051C48
|
|
strh r1, [r2]
|
|
_08051C48:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051C4C: .4byte 0x02025734
|
|
_08051C50: .4byte 0x03004854
|
|
_08051C54: .4byte 0x0000096c
|
|
thumb_func_end sub_8051C24
|
|
|
|
thumb_func_start sub_8051C58
|
|
sub_8051C58: @ 8051C58
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
ldr r1, _08051C7C
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x6
|
|
bls _08051C72
|
|
b _0805200A
|
|
_08051C72:
|
|
lsls r0, 2
|
|
ldr r1, _08051C80
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08051C7C: .4byte 0x03004854
|
|
_08051C80: .4byte _08051C84
|
|
.align 2, 0
|
|
_08051C84:
|
|
.4byte _08051CA0
|
|
.4byte _08051CB6
|
|
.4byte _08051CD0
|
|
.4byte _08051D20
|
|
.4byte _08051F44
|
|
.4byte _08051F58
|
|
.4byte _08051FF8
|
|
_08051CA0:
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x11
|
|
str r1, [r0]
|
|
b _0805200A
|
|
_08051CB6:
|
|
ldr r1, [r2]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldr r0, [r2]
|
|
subs r0, 0xA
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
blt _08051CCA
|
|
b _0805200A
|
|
_08051CCA:
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08051FE2
|
|
_08051CD0:
|
|
ldr r1, [r2]
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x14
|
|
bgt _08051CE4
|
|
b _0805200A
|
|
_08051CE4:
|
|
movs r6, 0
|
|
_08051CE6:
|
|
ldr r4, _08051D18
|
|
ldr r0, [r4]
|
|
adds r0, 0x50
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08051D1C
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x2
|
|
bls _08051CE6
|
|
ldr r1, [r4]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08051FE2
|
|
.align 2, 0
|
|
_08051D18: .4byte 0x03004854
|
|
_08051D1C: .4byte 0x02020004
|
|
_08051D20:
|
|
movs r0, 0x4
|
|
movs r1, 0x2
|
|
movs r2, 0x19
|
|
movs r3, 0x11
|
|
bl DrawDefaultWindow
|
|
ldr r0, _08051F14
|
|
movs r1, 0x5
|
|
movs r2, 0x3
|
|
movs r3, 0xA0
|
|
bl Free
|
|
movs r6, 0
|
|
ldr r1, _08051F18
|
|
ldr r0, [r1]
|
|
adds r0, 0x88
|
|
add r2, sp, 0xC
|
|
mov r9, r2
|
|
mov r2, sp
|
|
adds r2, 0x16
|
|
str r2, [sp, 0x30]
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _08051E04
|
|
mov r8, r1
|
|
ldr r0, _08051F1C
|
|
mov r10, r0
|
|
_08051D56:
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
adds r0, r6
|
|
ldrb r5, [r0]
|
|
mov r7, r9
|
|
lsls r1, r5, 4
|
|
adds r1, r2
|
|
movs r2, 0xBF
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
adds r0, r7, 0
|
|
bl StringCopy
|
|
lsls r4, r5, 3
|
|
subs r4, r5
|
|
lsls r4, 2
|
|
mov r1, r10
|
|
adds r0, r4, r1
|
|
ldrb r1, [r0, 0x1A]
|
|
adds r0, r7, 0
|
|
bl ConvertInternationalString
|
|
adds r0, r7, 0
|
|
ldr r1, _08051F20
|
|
bl StringAppend
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r7, r0, 0
|
|
adds r7, 0xAB
|
|
adds r5, r6, 0x1
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl ConvertIntToDecimalString
|
|
adds r7, r0, 0
|
|
movs r1, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xAD
|
|
strb r0, [r7, 0x1]
|
|
strb r1, [r7, 0x2]
|
|
adds r7, 0x3
|
|
ldr r0, _08051F24
|
|
adds r4, r0
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x58
|
|
movs r3, 0
|
|
bl sub_8072C74
|
|
adds r7, r0, 0
|
|
add r1, sp, 0xC
|
|
movs r2, 0x9D
|
|
movs r3, 0
|
|
bl sub_8072C74
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0xAB
|
|
ldr r3, _08051F28
|
|
adds r1, 0x88
|
|
ldrb r2, [r1]
|
|
adds r3, r2, r3
|
|
ldr r1, _08051F2C
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
adds r2, r6, 0
|
|
muls r2, r1
|
|
ldrb r3, [r3]
|
|
adds r2, r3
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x5
|
|
bl Print
|
|
lsls r5, 16
|
|
lsrs r6, r5, 16
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _08051D56
|
|
_08051E04:
|
|
ldr r6, _08051F18
|
|
ldr r0, [r6]
|
|
adds r0, 0x5A
|
|
ldrh r0, [r0]
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, r9
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, [r6]
|
|
adds r7, r0, 0
|
|
adds r7, 0xAB
|
|
ldr r1, _08051F30
|
|
adds r0, r7, 0
|
|
bl StringCopy
|
|
adds r7, r0, 0
|
|
ldr r0, [r6]
|
|
adds r0, 0x5A
|
|
ldrh r0, [r0]
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r7, 0
|
|
movs r2, 0x79
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r7, r0, 0
|
|
movs r1, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xAD
|
|
strb r0, [r7, 0x1]
|
|
strb r1, [r7, 0x2]
|
|
adds r7, 0x3
|
|
adds r0, r7, 0
|
|
mov r1, r9
|
|
movs r2, 0x8E
|
|
movs r3, 0x1
|
|
bl sub_8072C74
|
|
adds r7, r0, 0
|
|
ldr r1, _08051F34
|
|
bl StringCopy
|
|
ldr r0, [r6]
|
|
adds r0, 0xAB
|
|
movs r1, 0x5
|
|
movs r2, 0xD
|
|
bl Print
|
|
ldr r0, [r6]
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
bl __umodsi3
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, r9
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, [sp, 0x30]
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, [r6]
|
|
adds r7, r0, 0
|
|
adds r7, 0xAB
|
|
ldr r1, _08051F38
|
|
adds r0, r7, 0
|
|
bl StringCopy
|
|
adds r7, r0, 0
|
|
mov r1, r9
|
|
movs r2, 0x66
|
|
movs r3, 0x1
|
|
bl sub_8072C74
|
|
adds r7, r0, 0
|
|
ldr r1, _08051F3C
|
|
bl StringAppend
|
|
adds r7, r0, 0
|
|
ldr r1, [sp, 0x30]
|
|
movs r2, 0x88
|
|
movs r3, 0x1
|
|
bl sub_8072C74
|
|
adds r7, r0, 0
|
|
ldr r1, _08051F40
|
|
bl StringCopy
|
|
ldr r0, [r6]
|
|
adds r0, 0xAB
|
|
movs r1, 0x5
|
|
movs r2, 0xF
|
|
bl Print
|
|
ldr r1, [r6]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08051FE2
|
|
.align 2, 0
|
|
_08051F14: .4byte gUnknown_0842D479
|
|
_08051F18: .4byte 0x03004854
|
|
_08051F1C: .4byte 0x03002970
|
|
_08051F20: .4byte gUnknown_0842D498
|
|
_08051F24: .4byte 0x03002978
|
|
_08051F28: .4byte gUnknown_082165E9
|
|
_08051F2C: .4byte gUnknown_082165EE
|
|
_08051F30: .4byte gUnknown_0842D4B7
|
|
_08051F34: .4byte gUnknown_0842D4C5
|
|
_08051F38: .4byte gUnknown_0842D49F
|
|
_08051F3C: .4byte gUnknown_0842D4AD
|
|
_08051F40: .4byte gUnknown_0842D4B2
|
|
_08051F44:
|
|
ldr r0, _08051F54
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805200A
|
|
ldr r1, [r2]
|
|
b _08051FE2
|
|
.align 2, 0
|
|
_08051F54: .4byte 0x03001770
|
|
_08051F58:
|
|
bl sub_8071EF4
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl DrawDefaultWindow
|
|
movs r6, 0
|
|
add r5, sp, 0x28
|
|
ldr r0, _08051FEC
|
|
ldr r0, [r0]
|
|
adds r3, r0, 0
|
|
adds r3, 0x80
|
|
add r2, sp, 0x20
|
|
_08051F76:
|
|
lsls r1, r6, 1
|
|
adds r0, r3, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08051F86
|
|
adds r1, r2, r1
|
|
subs r0, 0x85
|
|
strh r0, [r1]
|
|
_08051F86:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x3
|
|
bls _08051F76
|
|
bl sub_8050760
|
|
ldr r4, _08051FEC
|
|
ldr r3, [r4]
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
adds r1, r3, 0
|
|
adds r1, 0x88
|
|
ldrb r2, [r1]
|
|
subs r1, 0x2E
|
|
ldrh r1, [r1]
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
add r3, sp, 0x4
|
|
bl sub_8050520
|
|
ldr r1, [r4]
|
|
adds r1, 0xAB
|
|
adds r0, r5, 0
|
|
bl sub_805201C
|
|
ldr r0, _08051FF0
|
|
movs r1, 0x6
|
|
bl CreateTask
|
|
ldr r0, [r4]
|
|
adds r0, 0xAB
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl AddTextPrinterWithCallbackForMessage
|
|
ldr r0, _08051FF4
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80A9538
|
|
adds r0, r5, 0
|
|
bl sub_810CA34
|
|
ldr r1, [r4]
|
|
_08051FE2:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0805200A
|
|
.align 2, 0
|
|
_08051FEC: .4byte 0x03004854
|
|
_08051FF0: .4byte sub_8052BD0
|
|
_08051FF4: .4byte 0x0203855e
|
|
_08051FF8:
|
|
bl sub_8072080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805200A
|
|
bl sub_8051C24
|
|
movs r0, 0x1
|
|
b _0805200C
|
|
_0805200A:
|
|
movs r0, 0
|
|
_0805200C:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8051C58
|
|
|
|
thumb_func_start sub_805201C
|
|
sub_805201C: @ 805201C
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r0, 0xFF
|
|
strb r0, [r6]
|
|
ldr r1, _080520B0
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
ldr r1, _080520B4
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
ldr r1, _080520B8
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
adds r0, r5, 0
|
|
bl sub_810C9B0
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
bl sub_810C9E8
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r1, _080520BC
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl StringAppend
|
|
ldr r1, _080520C0
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl StringAppend
|
|
ldr r1, _080520C4
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
ldr r1, _080520C8
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080520B0: .4byte gUnknown_083F7EB8
|
|
_080520B4: .4byte gUnknown_0842D368
|
|
_080520B8: .4byte gUnknown_082162C8
|
|
_080520BC: .4byte gUnknown_0842D4D3
|
|
_080520C0: .4byte gUnknown_0842D4E1
|
|
_080520C4: .4byte gUnknown_0842D4F4
|
|
_080520C8: .4byte gUnknown_08216249
|
|
thumb_func_end sub_805201C
|
|
|
|
thumb_func_start sub_80520CC
|
|
sub_80520CC: @ 80520CC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
mov r12, r2
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
movs r0, 0
|
|
cmp r0, r7
|
|
bge _08052118
|
|
_080520E2:
|
|
movs r5, 0
|
|
adds r1, r0, 0x1
|
|
mov r8, r1
|
|
cmp r5, r7
|
|
bge _08052112
|
|
mov r1, r9
|
|
adds r6, r1, r0
|
|
_080520F0:
|
|
ldrb r4, [r6]
|
|
lsls r1, r4, 2
|
|
add r1, r12
|
|
mov r0, r9
|
|
adds r2, r0, r5
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 2
|
|
add r0, r12
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bls _0805210C
|
|
strb r3, [r6]
|
|
strb r4, [r2]
|
|
_0805210C:
|
|
adds r5, 0x1
|
|
cmp r5, r7
|
|
blt _080520F0
|
|
_08052112:
|
|
mov r0, r8
|
|
cmp r0, r7
|
|
blt _080520E2
|
|
_08052118:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80520CC
|
|
|
|
thumb_func_start sub_8052124
|
|
sub_8052124: @ 8052124
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
movs r5, 0
|
|
ldr r1, _08052144
|
|
ldr r0, [r1]
|
|
adds r0, 0x88
|
|
mov r10, r1
|
|
mov r2, sp
|
|
adds r2, 0x4
|
|
str r2, [sp, 0x14]
|
|
b _08052158
|
|
.align 2, 0
|
|
_08052144: .4byte 0x03004854
|
|
_08052148:
|
|
mov r4, sp
|
|
adds r0, r4, r5
|
|
strb r5, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, [r1]
|
|
adds r0, 0x88
|
|
_08052158:
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _08052148
|
|
movs r5, 0
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x88
|
|
ldrb r2, [r1]
|
|
cmp r5, r2
|
|
bcs _080521D6
|
|
ldr r4, [sp, 0x14]
|
|
mov r9, r4
|
|
movs r2, 0xA6
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
mov r8, r2
|
|
mov r12, r1
|
|
movs r4, 0xA7
|
|
lsls r4, 1
|
|
adds r7, r0, r4
|
|
movs r1, 0xA8
|
|
lsls r1, 1
|
|
adds r6, r0, r1
|
|
_08052188:
|
|
lsls r4, r5, 2
|
|
add r4, r9
|
|
lsls r3, r5, 1
|
|
adds r3, r5
|
|
lsls r3, 1
|
|
mov r2, r8
|
|
adds r0, r2, r3
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r1, r0, 6
|
|
subs r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
lsls r1, 6
|
|
str r1, [r4]
|
|
adds r0, r7, r3
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
str r1, [r4]
|
|
movs r0, 0xFA
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
adds r3, r6, r3
|
|
ldrh r0, [r3]
|
|
subs r1, r0
|
|
str r1, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r1, r12
|
|
ldrb r1, [r1]
|
|
cmp r5, r1
|
|
bcc _08052188
|
|
_080521D6:
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, 0x88
|
|
ldrb r1, [r0]
|
|
mov r0, sp
|
|
ldr r2, [sp, 0x14]
|
|
bl sub_80520CC
|
|
movs r5, 0
|
|
mov r4, r10
|
|
ldr r0, [r4]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _08052218
|
|
mov r2, r10
|
|
movs r3, 0xB2
|
|
lsls r3, 1
|
|
_080521FA:
|
|
ldr r1, [r2]
|
|
adds r1, r3
|
|
adds r1, r5
|
|
mov r4, sp
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, [r2]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080521FA
|
|
_08052218:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8052124
|
|
|
|
thumb_func_start sub_8052228
|
|
sub_8052228: @ 8052228
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, _08052248
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x6
|
|
bls _0805223C
|
|
b _080524AE
|
|
_0805223C:
|
|
lsls r0, 2
|
|
ldr r1, _0805224C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08052248: .4byte 0x03004854
|
|
_0805224C: .4byte _08052250
|
|
.align 2, 0
|
|
_08052250:
|
|
.4byte _0805226C
|
|
.4byte _08052282
|
|
.4byte _0805229C
|
|
.4byte _080522B6
|
|
.4byte _08052464
|
|
.4byte _0805247E
|
|
.4byte _080524A4
|
|
_0805226C:
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
str r1, [r0]
|
|
b _080524AE
|
|
_08052282:
|
|
ldr r1, [r2]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldr r0, [r2]
|
|
subs r0, 0xA
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
blt _08052296
|
|
b _080524AE
|
|
_08052296:
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08052494
|
|
_0805229C:
|
|
ldr r1, [r2]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldr r0, [r2]
|
|
adds r0, 0x1
|
|
str r0, [r2]
|
|
cmp r0, 0x14
|
|
bgt _080522B0
|
|
b _080524AE
|
|
_080522B0:
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08052494
|
|
_080522B6:
|
|
movs r0, 0x4
|
|
movs r1, 0x2
|
|
movs r2, 0x19
|
|
movs r3, 0x11
|
|
bl DrawDefaultWindow
|
|
ldr r0, _0805236C
|
|
movs r1, 0x5
|
|
movs r2, 0x3
|
|
movs r3, 0xA0
|
|
bl Free
|
|
ldr r6, _08052370
|
|
adds r0, r6, 0
|
|
movs r1, 0x8C
|
|
movs r2, 0x34
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r7, _08052374
|
|
ldr r1, [r7]
|
|
adds r1, 0x50
|
|
strb r0, [r1]
|
|
ldr r1, _08052378
|
|
mov r8, r1
|
|
ldr r2, [r7]
|
|
adds r2, 0x50
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r5, r8
|
|
adds r5, 0x1C
|
|
adds r0, r5
|
|
ldr r4, _0805237C
|
|
str r4, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
movs r1, 0x3
|
|
bl StartSpriteAnim
|
|
adds r0, r6, 0
|
|
movs r1, 0xA4
|
|
movs r2, 0x34
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x51
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, 0x51
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
str r4, [r0]
|
|
adds r0, r6, 0
|
|
movs r1, 0xBC
|
|
movs r2, 0x34
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x52
|
|
strb r0, [r1]
|
|
ldr r2, [r7]
|
|
adds r2, 0x52
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
str r4, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
bl sub_8052124
|
|
movs r2, 0
|
|
mov r8, r2
|
|
b _0805243C
|
|
.align 2, 0
|
|
_0805236C: .4byte gUnknown_0842D4CB
|
|
_08052370: .4byte gSpriteTemplate_821645C
|
|
_08052374: .4byte 0x03004854
|
|
_08052378: .4byte 0x02020004
|
|
_0805237C: .4byte SpriteCallbackDummy
|
|
_08052380:
|
|
ldr r1, [r7]
|
|
movs r2, 0xB2
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
add r0, r8
|
|
ldrb r5, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0xAB
|
|
movs r0, 0xFC
|
|
strb r0, [r2]
|
|
movs r0, 0x13
|
|
strb r0, [r2, 0x1]
|
|
movs r0, 0x4
|
|
strb r0, [r2, 0x2]
|
|
adds r2, 0x3
|
|
mov r6, r8
|
|
adds r6, 0x1
|
|
adds r0, r2, 0
|
|
adds r1, r6, 0
|
|
bl ConvertIntToDecimalString
|
|
adds r2, r0, 0
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
movs r0, 0xAD
|
|
strb r0, [r2, 0x1]
|
|
strb r1, [r2, 0x2]
|
|
adds r2, 0x3
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
ldr r0, _08052458
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
ldr r0, [r7]
|
|
lsls r4, r5, 1
|
|
adds r4, r5
|
|
lsls r4, 1
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrh r1, [r0]
|
|
adds r0, r2, 0
|
|
movs r2, 0x6C
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r2, r0, 0
|
|
ldr r0, [r7]
|
|
movs r1, 0xA7
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrh r1, [r0]
|
|
adds r0, r2, 0
|
|
movs r2, 0x84
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r2, r0, 0
|
|
ldr r0, [r7]
|
|
movs r1, 0xA8
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrh r1, [r0]
|
|
adds r0, r2, 0
|
|
movs r2, 0x9C
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0xAB
|
|
ldr r2, _0805245C
|
|
adds r1, 0x88
|
|
ldrb r1, [r1]
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
mov r2, r8
|
|
muls r2, r1
|
|
adds r2, 0x8
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x5
|
|
bl Print
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
mov r8, r6
|
|
_0805243C:
|
|
ldr r0, [r7]
|
|
adds r0, 0x88
|
|
ldrb r0, [r0]
|
|
cmp r8, r0
|
|
bcc _08052380
|
|
ldr r0, _08052460
|
|
ldr r1, [r0]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
b _08052494
|
|
.align 2, 0
|
|
_08052458: .4byte 0x03002978
|
|
_0805245C: .4byte gUnknown_082165F3
|
|
_08052460: .4byte 0x03004854
|
|
_08052464:
|
|
ldr r2, [r2]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0x14
|
|
ble _080524AE
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
b _080524AE
|
|
_0805247E:
|
|
ldr r0, _0805249C
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080524AE
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, _080524A0
|
|
ldr r1, [r0]
|
|
_08052494:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080524AE
|
|
.align 2, 0
|
|
_0805249C: .4byte 0x03001770
|
|
_080524A0: .4byte 0x03004854
|
|
_080524A4:
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _080524B0
|
|
_080524AE:
|
|
movs r0, 0
|
|
_080524B0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8052228
|
|
|
|
thumb_func_start unref_sub_80524BC
|
|
unref_sub_80524BC: @ 80524BC
|
|
push {r4,lr}
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
ldr r0, _0805251C
|
|
bl SetVBlankCallback
|
|
ldr r4, _08052520
|
|
adds r0, r4, 0
|
|
bl SetUpWindowConfig
|
|
adds r0, r4, 0
|
|
bl sub_8071C4C
|
|
ldr r0, _08052524
|
|
ldrh r0, [r0, 0x20]
|
|
bl SeedRng
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xAA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
ldr r1, _08052528
|
|
movs r0, 0xFA
|
|
lsls r0, 5
|
|
strh r0, [r1, 0x1A]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, _0805252C
|
|
bl SetMainCallback2
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805251C: .4byte sub_804E2D8
|
|
_08052520: .4byte gWindowConfig_81E6CE4
|
|
_08052524: .4byte 0x03001770
|
|
_08052528: .4byte 0x03000560
|
|
_0805252C: .4byte sub_8052AF8
|
|
thumb_func_end unref_sub_80524BC
|
|
|
|
thumb_func_start sub_8052530
|
|
sub_8052530: @ 8052530
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x98
|
|
ldr r1, _080525C8
|
|
mov r0, sp
|
|
bl StringCopy
|
|
mov r0, sp
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl Print
|
|
ldr r4, _080525CC
|
|
movs r1, 0x1A
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
movs r1, 0x6
|
|
movs r2, 0
|
|
bl Print
|
|
movs r6, 0
|
|
mov r2, sp
|
|
adds r2, 0x3
|
|
str r2, [sp, 0x84]
|
|
mov r3, sp
|
|
adds r3, 0x6
|
|
str r3, [sp, 0x88]
|
|
mov r0, sp
|
|
adds r0, 0x9
|
|
str r0, [sp, 0x8C]
|
|
mov r1, sp
|
|
adds r1, 0xC
|
|
str r1, [sp, 0x90]
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x94]
|
|
mov r8, r4
|
|
mov r7, sp
|
|
ldr r3, _080525D0
|
|
mov r9, r3
|
|
ldr r0, _080525D4
|
|
mov r10, r0
|
|
_0805259E:
|
|
mov r1, r8
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r6
|
|
bne _080525D8
|
|
movs r0, 0xEF
|
|
strb r0, [r7]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, 0x85
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
adds r1, 0x1
|
|
bl itemid_copy_name
|
|
b _080525F8
|
|
.align 2, 0
|
|
_080525C8: .4byte gUnknown_082165FA
|
|
_080525CC: .4byte 0x03000560
|
|
_080525D0: .4byte gBerries
|
|
_080525D4: .4byte gUnknown_082165F8
|
|
_080525D8:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, 0x85
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
bl itemid_copy_name
|
|
movs r0, 0
|
|
strb r0, [r7, 0x6]
|
|
movs r0, 0xFF
|
|
strb r0, [r7, 0x7]
|
|
_080525F8:
|
|
lsls r5, r6, 1
|
|
adds r5, r6
|
|
adds r5, 0x3
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, sp
|
|
movs r1, 0x2
|
|
adds r2, r5, 0
|
|
bl Print
|
|
mov r4, r8
|
|
adds r4, 0x1
|
|
adds r4, r6, r4
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x15]
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
mov r1, r10
|
|
bl StringAppend
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x16]
|
|
ldr r0, [sp, 0x84]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
mov r1, r10
|
|
bl StringAppend
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x17]
|
|
ldr r0, [sp, 0x88]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
mov r1, r10
|
|
bl StringAppend
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x18]
|
|
ldr r0, [sp, 0x8C]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
mov r1, r10
|
|
bl StringAppend
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x19]
|
|
ldr r0, [sp, 0x90]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
mov r0, sp
|
|
mov r1, r10
|
|
bl StringAppend
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r0, 0x1A]
|
|
ldr r0, [sp, 0x94]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r3, sp, 0x80
|
|
strb r2, [r3]
|
|
movs r0, 0xFF
|
|
strb r0, [r7, 0x11]
|
|
mov r0, sp
|
|
movs r1, 0x7
|
|
adds r2, r5, 0
|
|
bl Print
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bhi _080526EC
|
|
b _0805259E
|
|
_080526EC:
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _080527A4
|
|
ldr r1, _080527B4
|
|
mov r2, r8
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
bl StringCopy
|
|
mov r0, sp
|
|
movs r1, 0x2
|
|
movs r2, 0xF
|
|
bl Print
|
|
mov r3, r8
|
|
ldrb r1, [r3, 0x11]
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
ldr r4, _080527B8
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
mov r0, r8
|
|
ldrb r1, [r0, 0x12]
|
|
ldr r0, [sp, 0x84]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
mov r2, r8
|
|
ldrb r1, [r2, 0x13]
|
|
ldr r0, [sp, 0x88]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
mov r3, r8
|
|
ldrb r1, [r3, 0x14]
|
|
ldr r0, [sp, 0x8C]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
mov r0, r8
|
|
ldrb r1, [r0, 0x15]
|
|
ldr r0, [sp, 0x90]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl StringAppend
|
|
mov r2, r8
|
|
ldrb r1, [r2, 0x16]
|
|
ldr r0, [sp, 0x94]
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToHexStringN
|
|
mov r1, sp
|
|
ldrb r0, [r1, 0x11]
|
|
add r3, sp, 0x80
|
|
ldrb r3, [r3]
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x11]
|
|
mov r0, sp
|
|
movs r1, 0x7
|
|
movs r2, 0x11
|
|
bl Print
|
|
_080527A4:
|
|
add sp, 0x98
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080527B4: .4byte gUnknown_083F7EB8
|
|
_080527B8: .4byte gUnknown_082165F8
|
|
thumb_func_end sub_8052530
|
|
|
|
thumb_func_start sub_80527BC
|
|
sub_80527BC: @ 80527BC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x58
|
|
ldr r0, _08052844
|
|
ldrb r0, [r0]
|
|
add r6, sp, 0x48
|
|
cmp r0, 0x1
|
|
bne _08052814
|
|
movs r1, 0
|
|
ldr r3, _08052848
|
|
movs r2, 0
|
|
_080527D6:
|
|
lsls r0, r1, 1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0x9
|
|
bls _080527D6
|
|
bl Random
|
|
ldr r1, _0805284C
|
|
strh r0, [r1]
|
|
ldr r1, _08052850
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r1, _08052844
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
movs r4, 0
|
|
ldr r2, _08052854
|
|
movs r1, 0
|
|
_08052800:
|
|
adds r0, r4, r2
|
|
strb r1, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0xC7
|
|
bls _08052800
|
|
ldr r1, _08052858
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08052814:
|
|
movs r4, 0
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r7, _08052858
|
|
ldr r5, _08052850
|
|
ldr r1, _08052854
|
|
mov r9, r1
|
|
ldr r3, _0805285C
|
|
_08052824:
|
|
str r3, [sp, 0x54]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 31
|
|
mov r1, r8
|
|
ands r0, r1
|
|
ldr r3, [sp, 0x54]
|
|
ldrb r1, [r7]
|
|
cmp r0, r1
|
|
bne _08052860
|
|
ldr r0, [r5]
|
|
adds r0, 0x1
|
|
str r0, [r5]
|
|
b _0805287A
|
|
.align 2, 0
|
|
_08052844: .4byte 0x020297dc
|
|
_08052848: .4byte 0x03004840
|
|
_0805284C: .4byte 0x03004830
|
|
_08052850: .4byte 0x020297e0
|
|
_08052854: .4byte 0x02000000
|
|
_08052858: .4byte 0x020297e8
|
|
_0805285C: .4byte 0x020297e4
|
|
_08052860:
|
|
ldr r2, [r3]
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
ldr r1, [r5]
|
|
strh r1, [r0]
|
|
adds r2, 0x1
|
|
str r2, [r3]
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
ldrb r0, [r7]
|
|
mov r1, r8
|
|
eors r0, r1
|
|
strb r0, [r7]
|
|
_0805287A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x63
|
|
bls _08052824
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
ldr r0, _08052900
|
|
ldrh r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x8
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
bl StringAppend
|
|
ldr r1, _08052904
|
|
mov r0, sp
|
|
bl StringAppend
|
|
ldr r0, _08052908
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x8
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
bl StringAppend
|
|
ldr r1, _0805290C
|
|
mov r0, sp
|
|
bl StringAppend
|
|
ldr r4, _08052910
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x3
|
|
bne _080528E8
|
|
ldr r0, _08052914
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x10
|
|
bl ConvertIntToHexStringN
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
bl StringAppend
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_080528E8:
|
|
mov r0, sp
|
|
movs r1, 0x2
|
|
movs r2, 0xF
|
|
bl Print
|
|
add sp, 0x58
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052900: .4byte 0x03004830
|
|
_08052904: .4byte gUnknown_082165F8
|
|
_08052908: .4byte 0x020297e0
|
|
_0805290C: .4byte gUnknown_08216600
|
|
_08052910: .4byte 0x020297dc
|
|
_08052914: .4byte 0x020297e4
|
|
thumb_func_end sub_80527BC
|
|
|
|
thumb_func_start sub_8052918
|
|
sub_8052918: @ 8052918
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4C
|
|
ldr r2, _08052A88
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
ldr r4, _08052A8C
|
|
cmp r0, 0
|
|
beq _0805294C
|
|
movs r1, 0xFA
|
|
lsls r1, 2
|
|
adds r0, r1, 0
|
|
ldrh r1, [r4, 0x1A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
ldr r1, _08052A90
|
|
cmp r0, r1
|
|
ble _08052946
|
|
movs r0, 0xFA
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x1A]
|
|
_08052946:
|
|
ldrb r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
_0805294C:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052972
|
|
ldr r1, _08052A94
|
|
adds r0, r1, 0
|
|
ldrh r1, [r4, 0x1A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0805296C
|
|
ldr r0, _08052A98
|
|
strh r0, [r4, 0x1A]
|
|
_0805296C:
|
|
ldrb r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
_08052972:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052992
|
|
ldrb r0, [r4]
|
|
subs r0, 0x1
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _0805298C
|
|
movs r0, 0x3
|
|
strb r0, [r4]
|
|
_0805298C:
|
|
ldrb r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
_08052992:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080529B4
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x3
|
|
ble _080529AE
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_080529AE:
|
|
ldrb r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
_080529B4:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080529E4
|
|
adds r3, r4, 0
|
|
movs r1, 0
|
|
ldrsb r1, [r3, r1]
|
|
adds r5, r3, 0x1
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _080529DE
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
adds r0, r5
|
|
movs r1, 0x2A
|
|
strb r1, [r0]
|
|
_080529DE:
|
|
ldrb r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
_080529E4:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052A16
|
|
ldr r3, _08052A8C
|
|
movs r1, 0
|
|
ldrsb r1, [r3, r1]
|
|
adds r4, r3, 0x1
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x2A
|
|
ble _08052A10
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_08052A10:
|
|
ldrb r0, [r3, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r3, 0x10]
|
|
_08052A16:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052AA0
|
|
movs r6, 0
|
|
movs r4, 0
|
|
ldr r5, _08052A8C
|
|
_08052A26:
|
|
adds r0, r5, 0x1
|
|
adds r2, r4, r0
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x2A
|
|
beq _08052A64
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r0, r4, 1
|
|
mov r1, sp
|
|
adds r1, r0
|
|
adds r1, 0x4
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
strh r0, [r1]
|
|
add r0, sp, 0xC
|
|
lsls r1, r4, 4
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsb r1, [r2, r1]
|
|
adds r1, 0x85
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl sub_804E844
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _08052A26
|
|
_08052A64:
|
|
cmp r6, 0x1
|
|
bls _08052A9C
|
|
add r0, sp, 0xC
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
lsls r2, r6, 24
|
|
lsrs r2, 24
|
|
adds r3, r5, 0
|
|
adds r3, 0x11
|
|
ldrh r4, [r5, 0x1A]
|
|
str r4, [sp]
|
|
bl sub_8050744
|
|
ldrb r0, [r5, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x10]
|
|
b _08052AA0
|
|
.align 2, 0
|
|
_08052A88: .4byte 0x03001770
|
|
_08052A8C: .4byte 0x03000560
|
|
_08052A90: .4byte 0x75300000
|
|
_08052A94: .4byte 0xfffffc18
|
|
_08052A98: .4byte 0x00007530
|
|
_08052A9C:
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x8]
|
|
_08052AA0:
|
|
ldr r4, _08052AE8
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _08052AB0
|
|
bl sub_8052530
|
|
movs r0, 0
|
|
strb r0, [r4, 0x10]
|
|
_08052AB0:
|
|
ldr r3, _08052AEC
|
|
ldrh r1, [r3, 0x2E]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052AD4
|
|
ldr r2, _08052AF0
|
|
ldrb r0, [r2]
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _08052ADC
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
ldr r0, _08052AF4
|
|
str r1, [r0]
|
|
ldrh r0, [r3, 0x20]
|
|
bl SeedRng
|
|
_08052AD4:
|
|
ldr r0, _08052AF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08052AE0
|
|
_08052ADC:
|
|
bl sub_80527BC
|
|
_08052AE0:
|
|
add sp, 0x4C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052AE8: .4byte 0x03000560
|
|
_08052AEC: .4byte 0x03001770
|
|
_08052AF0: .4byte 0x020297dc
|
|
_08052AF4: .4byte 0x020297e0
|
|
thumb_func_end sub_8052918
|
|
|
|
thumb_func_start sub_8052AF8
|
|
sub_8052AF8: @ 8052AF8
|
|
push {lr}
|
|
bl sub_8052918
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8052AF8
|
|
|
|
thumb_func_start ShowBerryBlenderRecordWindow
|
|
ShowBerryBlenderRecordWindow: @ 8052B14
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x20
|
|
movs r0, 0x6
|
|
movs r1, 0x3
|
|
movs r2, 0x17
|
|
movs r3, 0x10
|
|
bl DrawDefaultWindow
|
|
ldr r0, _08052BBC
|
|
movs r1, 0x8
|
|
movs r2, 0x4
|
|
bl Print
|
|
ldr r0, _08052BC0
|
|
movs r1, 0x8
|
|
movs r2, 0x9
|
|
bl Print
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, _08052BC4
|
|
movs r7, 0x90
|
|
lsls r7, 20
|
|
ldr r1, _08052BC8
|
|
adds r6, r0, r1
|
|
movs r0, 0
|
|
mov r9, r0
|
|
_08052B50:
|
|
ldrh r4, [r6]
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x12
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r5, r0, 0
|
|
mov r1, r9
|
|
strb r1, [r5]
|
|
movs r0, 0xAD
|
|
strb r0, [r5, 0x1]
|
|
strb r1, [r5, 0x2]
|
|
adds r5, 0x3
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
ldr r1, _08052BCC
|
|
bl StringAppend
|
|
lsrs r2, r7, 24
|
|
mov r0, sp
|
|
movs r1, 0xF
|
|
bl Print
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
adds r7, r0
|
|
adds r6, 0x2
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
ble _08052B50
|
|
add sp, 0x20
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052BBC: .4byte gUnknown_0842C2E6
|
|
_08052BC0: .4byte gUnknown_0842C30A
|
|
_08052BC4: .4byte 0x02025734
|
|
_08052BC8: .4byte 0x0000096c
|
|
_08052BCC: .4byte gUnknown_0842D4C5
|
|
thumb_func_end ShowBerryBlenderRecordWindow
|
|
|
|
thumb_func_start sub_8052BD0
|
|
sub_8052BD0: @ 8052BD0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _08052C1C
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08052BF6
|
|
ldr r0, _08052C20
|
|
bl fanfare_play
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_08052BF6:
|
|
bl task_is_not_running_overworld_fanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08052C16
|
|
ldr r0, _08052C24
|
|
ldr r0, [r0]
|
|
movs r1, 0xBC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_8075474
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08052C16:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052C1C: .4byte 0x03004b20
|
|
_08052C20: .4byte 0x0000016f
|
|
_08052C24: .4byte 0x03004854
|
|
thumb_func_end sub_8052BD0
|