pokefirered/asm/battle_interface.s
2018-10-03 21:30:13 -04:00

5661 lines
91 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8047B0C
sub_8047B0C: @ 8047B0C
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
_08047B28:
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 _08047B28
movs r3, 0x3
movs r0, 0x1
negs r0, r0
mov r9, r0
mov r8, sp
_08047B48:
lsls r0, r5, 16
asrs r6, r0, 16
cmp r6, 0
ble _08047B76
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 _08047B48
_08047B76:
lsls r1, r3, 24
asrs r0, r1, 24
cmp r0, r9
ble _08047B9A
movs r4, 0xFF
movs r3, 0x1
negs r3, r3
_08047B84:
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 _08047B84
_08047B9A:
mov r1, r8
ldrb r0, [r1, 0x3]
cmp r0, 0xFF
bne _08047BA6
movs r0, 0
strb r0, [r1, 0x3]
_08047BA6:
mov r2, r10
cmp r2, 0
bne _08047C36
movs r3, 0
movs r1, 0
movs r6, 0xFC
lsls r6, 8
movs r5, 0x1E
mov r12, r5
_08047BB8:
lsls r1, 24
asrs r2, r1, 24
mov r0, sp
adds r5, r0, r2
ldrb r0, [r5]
mov r8, r1
cmp r0, 0xFF
bne _08047BEE
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 _08047C1E
_08047BEE:
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
_08047C1E:
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 _08047BB8
b _08047C9A
_08047C36:
movs r3, 0
movs r4, 0xFC
lsls r4, 8
movs r6, 0x1E
_08047C3E:
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 _08047C6A
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 _08047C8C
_08047C6A:
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]
_08047C8C:
movs r5, 0x80
lsls r5, 17
adds r0, r3, r5
lsrs r3, r0, 24
asrs r0, 24
cmp r0, 0x3
ble _08047C3E
_08047C9A:
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_8047B0C
thumb_func_start sub_8047CAC
sub_8047CAC: @ 8047CAC
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_8047B0C
lsls r4, 16
asrs r4, 16
adds r5, 0xA
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_8047B0C
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8047CAC
thumb_func_start CreateBankHealthboxSprites
CreateBankHealthboxSprites: @ 8047CE0
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 sub_8075290
lsls r0, 24
cmp r0, 0
bne _08047DF4
mov r0, r10
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08047D78
ldr r4, _08047D68 @ =gUnknown_8260278
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, _08047D6C @ =gSprites
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, _08047D70 @ =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r0, _08047D74 @ =0xfffffc00
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
b _08047DBE
.align 2, 0
_08047D68: .4byte gUnknown_8260278
_08047D6C: .4byte gSprites
_08047D70: .4byte 0x000003ff
_08047D74: .4byte 0xfffffc00
_08047D78:
ldr r4, _08047DE0 @ =gUnknown_82602A8
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, _08047DE4 @ =gSprites
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, _08047DE8 @ =0x000003ff
adds r0, r5, 0
ands r1, r0
ldr r0, _08047DEC @ =0xfffffc00
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
movs r0, 0x2
str r0, [sp]
_08047DBE:
ldr r2, _08047DE4 @ =gSprites
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, _08047DF0 @ =sub_8048128
str r1, [r0]
b _08047F1C
.align 2, 0
_08047DE0: .4byte gUnknown_82602A8
_08047DE4: .4byte gSprites
_08047DE8: .4byte 0x000003ff
_08047DEC: .4byte 0xfffffc00
_08047DF0: .4byte sub_8048128
_08047DF4:
mov r0, r10
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08047E98
mov r0, r10
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
ldr r4, _08047E84 @ =gUnknown_8260278
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 GetBankIdentity
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, _08047E88 @ =gSprites
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, _08047E8C @ =0x000003ff
adds r0, r5, 0
ands r1, r0
ldr r0, _08047E90 @ =0xfffffc00
mov r5, r8
ands r0, r5
orrs r0, r1
strh r0, [r3, 0x4]
adds r4, 0x1C
adds r2, r4
ldr r0, _08047E94 @ =sub_8048128
str r0, [r2]
movs r0, 0x1
b _08047F1A
.align 2, 0
_08047E84: .4byte gUnknown_8260278
_08047E88: .4byte gSprites
_08047E8C: .4byte 0x000003ff
_08047E90: .4byte 0xfffffc00
_08047E94: .4byte sub_8048128
_08047E98:
mov r0, r10
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
ldr r4, _08047FE0 @ =gUnknown_82602A8
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 GetBankIdentity
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, _08047FE4 @ =gSprites
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, _08047FE8 @ =0x000003ff
adds r0, r5, 0
ands r1, r0
ldr r0, _08047FEC @ =0xfffffc00
mov r5, r8
ands r0, r5
orrs r0, r1
strh r0, [r3, 0x4]
adds r4, 0x1C
adds r2, r4
ldr r0, _08047FF0 @ =sub_8048128
str r0, [r2]
movs r0, 0x2
_08047F1A:
str r0, [sp]
_08047F1C:
ldr r0, _08047FF4 @ =gUnknown_2023BD6
add r0, r10
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
ldr r1, _08047FF8 @ =gUnknown_82602F8
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, _08047FE4 @ =gSprites
mov r8, r1
add r4, r8
mov r0, r10
bl GetBankSide
adds r1, r0, 0
lsls r1, 24
lsrs r1, 21
ldr r0, _08047FFC @ =gUnknown_82603C4
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 GetHealthboxElementGfxPtr
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 17
ldr r2, _08048000 @ =0x06010000
adds r1, r2
ldr r2, _08048004 @ =0x04000010
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
_08047FE0: .4byte gUnknown_82602A8
_08047FE4: .4byte gSprites
_08047FE8: .4byte 0x000003ff
_08047FEC: .4byte 0xfffffc00
_08047FF0: .4byte sub_8048128
_08047FF4: .4byte gUnknown_2023BD6
_08047FF8: .4byte gUnknown_82602F8
_08047FFC: .4byte gUnknown_82603C4
_08048000: .4byte 0x06010000
_08048004: .4byte 0x04000010
thumb_func_end CreateBankHealthboxSprites
thumb_func_start CreateSafariPlayerHealthboxSprites
CreateSafariPlayerHealthboxSprites: @ 8048008
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _08048094 @ =gUnknown_82602D8
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, _08048098 @ =gSprites
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, _0804809C @ =0x000003ff
adds r1, r7, 0
ands r2, r1
ldr r1, _080480A0 @ =0xfffffc00
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, _080480A4 @ =sub_8048128
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
_08048094: .4byte gUnknown_82602D8
_08048098: .4byte gSprites
_0804809C: .4byte 0x000003ff
_080480A0: .4byte 0xfffffc00
_080480A4: .4byte sub_8048128
thumb_func_end CreateSafariPlayerHealthboxSprites
thumb_func_start GetHealthboxElementGfxPtr
GetHealthboxElementGfxPtr: @ 80480A8
lsls r0, 24
lsrs r0, 19
ldr r1, _080480B4 @ =gUnknown_8D11BC4
adds r0, r1
bx lr
.align 2, 0
_080480B4: .4byte gUnknown_8D11BC4
thumb_func_end GetHealthboxElementGfxPtr
thumb_func_start sub_80480B8
sub_80480B8: @ 80480B8
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 _080480E8
cmp r0, 0x1
bgt _080480FC
cmp r0, 0
bne _080480FC
ldr r2, _080480E4 @ =gSprites
lsls r3, r5, 4
adds r1, r3, r5
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x20]
adds r0, 0x10
b _0804810A
.align 2, 0
_080480E4: .4byte gSprites
_080480E8:
ldr r2, _080480F8 @ =gSprites
lsls r3, r5, 4
adds r1, r3, r5
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x20]
adds r0, 0x10
b _0804810A
.align 2, 0
_080480F8: .4byte gSprites
_080480FC:
ldr r2, _08048124 @ =gSprites
lsls r3, r5, 4
adds r1, r3, r5
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x20]
adds r0, 0x8
_0804810A:
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
_08048124: .4byte gSprites
thumb_func_end sub_80480B8
thumb_func_start sub_8048128
sub_8048128: @ 8048128
ldrh r1, [r0, 0x38]
lsls r1, 24
lsrs r1, 24
ldr r3, _0804814C @ =gSprites
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
_0804814C: .4byte gSprites
thumb_func_end sub_8048128
thumb_func_start SetBattleBarStruct
SetBattleBarStruct: @ 8048150
push {r4-r7,lr}
ldr r7, [sp, 0x14]
lsls r0, 24
lsrs r0, 24
ldr r6, _08048180 @ =gUnknown_2024018
ldr r4, [r6]
ldr r5, [r4, 0xC]
lsls r4, r0, 2
adds r4, r0
lsls r4, 2
adds r5, r4, r5
strb r1, [r5]
ldr r0, [r6]
ldr r0, [r0, 0xC]
adds r4, r0
str r2, [r4, 0x4]
str r3, [r4, 0x8]
str r7, [r4, 0xC]
ldr r0, _08048184 @ =0xffff8000
str r0, [r4, 0x10]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08048180: .4byte gUnknown_2024018
_08048184: .4byte 0xffff8000
thumb_func_end SetBattleBarStruct
thumb_func_start SetHealthboxSpriteInvisible
SetHealthboxSpriteInvisible: @ 8048188
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, _080481D0 @ =gSprites
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
_080481D0: .4byte gSprites
thumb_func_end SetHealthboxSpriteInvisible
thumb_func_start SetHealthboxSpriteVisible
SetHealthboxSpriteVisible: @ 80481D4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _08048224 @ =gSprites
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
_08048224: .4byte gSprites
thumb_func_end SetHealthboxSpriteVisible
thumb_func_start UpdateSpritePos
UpdateSpritePos: @ 8048228
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, _08048244 @ =gSprites
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
_08048244: .4byte gSprites
thumb_func_end UpdateSpritePos
thumb_func_start DestoryHealthboxSprite
DestoryHealthboxSprite: @ 8048248
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _08048284 @ =gSprites
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
_08048284: .4byte gSprites
thumb_func_end DestoryHealthboxSprite
thumb_func_start nullsub_21
nullsub_21: @ 8048288
bx lr
thumb_func_end nullsub_21
thumb_func_start UpdateOamPriorityInAllHealthboxes
UpdateOamPriorityInAllHealthboxes: @ 804828C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
movs r6, 0
ldr r1, _08048310 @ =gUnknown_2023BCC
mov r8, r1
ldrb r2, [r1]
cmp r6, r2
bge _08048304
ldr r1, _08048314 @ =gSprites
mov r12, r1
movs r1, 0x3
ands r0, r1
lsls r5, r0, 2
movs r7, 0xD
negs r7, r7
ldr r2, _08048318 @ =gUnknown_3004FF0
mov r9, r2
_080482B6:
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 _080482B6
_08048304:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08048310: .4byte gUnknown_2023BCC
_08048314: .4byte gSprites
_08048318: .4byte gUnknown_3004FF0
thumb_func_end UpdateOamPriorityInAllHealthboxes
thumb_func_start SetBankHealthboxSpritePos
SetBankHealthboxSpritePos: @ 804831C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
movs r4, 0
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08048348
adds r0, r6, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _08048342
movs r5, 0x2C
movs r4, 0x1E
b _08048380
_08048342:
movs r5, 0x9E
movs r4, 0x58
b _08048380
_08048348:
adds r0, r6, 0
bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08048376
cmp r0, 0x1
bgt _08048360
cmp r0, 0
beq _0804836A
b _08048380
_08048360:
cmp r0, 0x2
beq _08048370
cmp r0, 0x3
beq _0804837C
b _08048380
_0804836A:
movs r5, 0x9F
movs r4, 0x4B
b _08048380
_08048370:
movs r5, 0xAB
movs r4, 0x64
b _08048380
_08048376:
movs r5, 0x2C
movs r4, 0x13
b _08048380
_0804837C:
movs r5, 0x20
movs r4, 0x2C
_08048380:
ldr r0, _08048394 @ =gUnknown_3004FF0
adds r0, r6, r0
ldrb r0, [r0]
adds r1, r5, 0
adds r2, r4, 0
bl UpdateSpritePos
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08048394: .4byte gUnknown_3004FF0
thumb_func_end SetBankHealthboxSpritePos
thumb_func_start UpdateLvlInHealthbox
UpdateLvlInHealthbox: @ 8048398
push {r4-r6,lr}
sub sp, 0x14
adds r5, r0, 0
adds r4, r1, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
ldr r1, _08048410 @ =gUnknown_826051C
mov r0, sp
movs r2, 0x10
bl memcpy
mov r0, sp
adds r0, 0x2
adds r1, r4, 0
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r1, r0, 0
subs r1, 0x2
mov r0, sp
subs r1, r0
movs r0, 0x3
subs r0, r1
lsls r1, r0, 2
adds r1, r0
add r3, sp, 0x10
mov r0, sp
movs r2, 0x3
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r6, r0, 0
ldr r0, _08048414 @ =gSprites
lsls r1, r5, 4
adds r1, r5
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r4, r0, 17
ldrh r0, [r1, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048420
bl sub_8075290
lsls r0, 24
ldr r2, _08048418 @ =0x06010420
adds r1, r4, r2
cmp r0, 0
bne _08048424
ldr r0, _0804841C @ =0x06010820
adds r1, r4, r0
b _08048424
.align 2, 0
_08048410: .4byte gUnknown_826051C
_08048414: .4byte gSprites
_08048418: .4byte 0x06010420
_0804841C: .4byte 0x06010820
_08048420:
ldr r2, _0804843C @ =0x06010400
adds r1, r4, r2
_08048424:
adds r0, r1, 0
adds r1, r6, 0
movs r2, 0x3
bl sub_804A6E8
ldr r0, [sp, 0x10]
bl sub_804A6D8
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804843C: .4byte 0x06010400
thumb_func_end UpdateLvlInHealthbox
thumb_func_start sub_8048440
sub_8048440: @ 8048440
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x30
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 16
lsrs r1, 16
mov r10, r1
lsls r2, 24
lsrs r2, 24
mov r8, r2
ldr r1, _080484B4 @ =gSprites
lsls r0, 4
add r0, r9
lsls r0, 2
adds r4, r0, r1
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048514
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08048514
mov r0, r8
cmp r0, 0
beq _080484BC
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
add r0, sp, 0x10
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
add r3, sp, 0x2C
add r0, sp, 0x10
movs r1, 0
movs r2, 0x5
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r5, r0, 0
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
ldr r1, _080484B8 @ =0x06010a40
adds r0, r1
adds r1, r5, 0
b _080484FE
.align 2, 0
_080484B4: .4byte gSprites
_080484B8: .4byte 0x06010a40
_080484BC:
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
add r0, sp, 0x10
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r1, 0xBA
strb r1, [r0]
movs r1, 0xFF
strb r1, [r0, 0x1]
add r3, sp, 0x2C
add r0, sp, 0x10
movs r1, 0x4
movs r2, 0x5
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r5, r0, 0
ldrh r4, [r4, 0x4]
lsls r4, 22
lsrs r4, 17
ldr r1, _0804850C @ =0x060102e0
adds r0, r4, r1
adds r1, r5, 0
movs r2, 0x1
bl sub_804A6E8
ldr r2, _08048510 @ =0x06010a00
adds r4, r2
adds r1, r5, 0
adds r1, 0x20
adds r0, r4, 0
_080484FE:
movs r2, 0x2
bl sub_804A6E8
ldr r0, [sp, 0x2C]
bl sub_804A6D8
b _080485F8
.align 2, 0
_0804850C: .4byte 0x060102e0
_08048510: .4byte 0x06010a00
_08048514:
add r5, sp, 0x18
ldr r1, _0804855C @ =gUnknown_826052C
adds r0, r5, 0
movs r2, 0x14
bl memcpy
ldr r1, _08048560 @ =gSprites
mov r0, r9
lsls r4, r0, 4
adds r0, r4, r0
lsls r0, 2
adds r7, r0, r1
ldrh r0, [r7, 0x3A]
lsls r0, 24
lsrs r6, r0, 24
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0804854C
adds r0, r6, 0
bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08048564
_0804854C:
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
mov r0, r9
mov r2, r8
bl sub_8048618
b _080485F8
.align 2, 0
_0804855C: .4byte gUnknown_826052C
_08048560: .4byte gSprites
_08048564:
ldrh r0, [r7, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048580
movs r6, 0x59
mov r0, r8
cmp r0, 0
bne _0804858A
movs r6, 0x1D
b _0804858A
_08048580:
movs r6, 0x30
mov r1, r8
cmp r1, 0
bne _0804858A
movs r6, 0x14
_0804858A:
mov r0, sp
adds r0, 0x1E
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r0, _08048608 @ =gUnknown_202401C
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
adds r0, r1
ldr r0, [r0]
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r2, r5, 0
movs r3, 0
bl RenderTextFont9
movs r5, 0
ldr r1, _0804860C @ =gSprites
mov r2, r9
adds r0, r4, r2
lsls r0, 2
adds r4, r0, r1
_080485C6:
ldr r0, _08048608 @ =gUnknown_202401C
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
adds r0, r1
lsls r1, r5, 6
adds r1, 0x20
ldr r0, [r0]
adds r0, r1
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 22
adds r1, r6
adds r1, r5
lsls r1, 5
ldr r2, _08048610 @ =0x06010000
adds r1, r2
ldr r2, _08048614 @ =0x04000008
bl CpuSet
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x2
bls _080485C6
_080485F8:
add sp, 0x30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08048608: .4byte gUnknown_202401C
_0804860C: .4byte gSprites
_08048610: .4byte 0x06010000
_08048614: .4byte 0x04000008
thumb_func_end sub_8048440
thumb_func_start sub_8048618
sub_8048618: @ 8048618
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 24
lsrs r2, 24
mov r8, r2
ldr r1, _080486F8 @ =gUnknown_8260542
add r0, sp, 0x10
movs r2, 0x14
bl memcpy
ldr r5, _080486FC @ =gSprites
mov r1, r9
lsls r0, r1, 4
add r0, r9
lsls r0, 2
adds r2, r0, r5
ldrh r0, [r2, 0x3A]
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, _08048700 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0]
mov r3, r10
lsls r0, r3, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _0804866A
b _080487DC
_0804866A:
movs r6, 0x4
mov r1, r8
negs r0, r1
orrs r0, r1
asrs r0, 31
ands r6, r0
ldrh r0, [r2, 0x38]
lsls r0, 24
lsrs r7, r0, 24
mov r0, sp
adds r0, 0x16
lsls r1, r4, 16
asrs r1, 16
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
mov r2, r8
cmp r2, 0
bne _08048698
ldr r1, _08048704 @ =gUnknown_8260540
bl StringCopy
_08048698:
ldr r0, _08048708 @ =gUnknown_202401C
ldr r0, [r0]
movs r3, 0xBA
lsls r3, 1
adds r0, r3
ldr r0, [r0]
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
add r2, sp, 0x10
movs r3, 0
bl RenderTextFont9
adds r4, r6, 0
adds r0, r4, 0x3
cmp r4, r0
bge _08048748
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
adds r5, r0, r5
_080486C6:
cmp r4, 0x2
bhi _08048714
ldr r0, _08048708 @ =gUnknown_202401C
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
adds r0, r1
subs r1, r4, r6
lsls r1, 6
adds r1, 0x20
ldr r0, [r0]
adds r0, r1
ldrh r1, [r5, 0x4]
lsls r1, 22
lsrs r1, 22
adds r4, 0x1
adds r1, r4
lsls r1, 5
ldr r2, _0804870C @ =0x06010000
adds r1, r2
ldr r2, _08048710 @ =0x04000008
bl CpuSet
b _0804873E
.align 2, 0
_080486F8: .4byte gUnknown_8260542
_080486FC: .4byte gSprites
_08048700: .4byte gUnknown_2024018
_08048704: .4byte gUnknown_8260540
_08048708: .4byte gUnknown_202401C
_0804870C: .4byte 0x06010000
_08048710: .4byte 0x04000008
_08048714:
ldr r0, _08048790 @ =gUnknown_202401C
ldr r0, [r0]
movs r3, 0xBA
lsls r3, 1
adds r0, r3
subs r1, r4, r6
lsls r1, 6
adds r1, 0x20
ldr r0, [r0]
adds r0, r1
ldrh r1, [r5, 0x4]
lsls r1, 22
lsrs r1, 22
adds r1, r4, r1
lsls r1, 5
ldr r2, _08048794 @ =0x06010020
adds r1, r2
ldr r2, _08048798 @ =0x04000008
bl CpuSet
adds r4, 0x1
_0804873E:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r6, 0x3
cmp r4, r0
blt _080486C6
_08048748:
mov r3, r8
cmp r3, 0
bne _080487A8
ldr r0, _08048790 @ =gUnknown_202401C
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
adds r0, r1
ldr r0, [r0]
adds r0, 0xE0
ldr r1, _0804879C @ =gSprites
lsls r4, r7, 4
adds r4, r7
lsls r4, 2
adds r4, r1
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 17
adds r1, 0x80
ldr r5, _080487A0 @ =0x06010000
adds r1, r5
ldr r2, _08048798 @ =0x04000008
bl CpuSet
mov r2, r8
str r2, [sp, 0x24]
add r0, sp, 0x24
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 17
adds r1, r5
ldr r2, _080487A4 @ =0x05000008
bl CpuSet
b _080487DC
.align 2, 0
_08048790: .4byte gUnknown_202401C
_08048794: .4byte 0x06010020
_08048798: .4byte 0x04000008
_0804879C: .4byte gSprites
_080487A0: .4byte 0x06010000
_080487A4: .4byte 0x05000008
_080487A8:
mov r0, r10
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080487DC
movs r0, 0x74
bl GetHealthboxElementGfxPtr
ldr r2, _080487EC @ =gSprites
mov r3, r9
lsls r1, r3, 4
add r1, r9
lsls r1, 2
adds r1, r2
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 17
movs r2, 0xD0
lsls r2, 3
adds r1, r2
ldr r2, _080487F0 @ =0x06010000
adds r1, r2
ldr r2, _080487F4 @ =0x04000008
bl CpuSet
_080487DC:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080487EC: .4byte gSprites
_080487F0: .4byte 0x06010000
_080487F4: .4byte 0x04000008
thumb_func_end sub_8048618
thumb_func_start sub_80487F8
sub_80487F8: @ 80487F8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x30
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x24]
ldr r1, _080488AC @ =gUnknown_826052C
add r0, sp, 0x10
movs r2, 0x14
bl memcpy
ldr r1, _080488B0 @ =gSprites
ldr r2, [sp, 0x24]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankIdentity
ldr r1, _080488B4 @ =gUnknown_202401C
ldr r2, [r1]
movs r3, 0xBA
lsls r3, 1
adds r2, r3
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
adds r1, r0
lsls r1, 7
movs r0, 0xA4
lsls r0, 3
adds r1, r0
ldr r0, [r2]
adds r6, r0, r1
movs r1, 0x5
mov r8, r1
adds r0, r4, 0
bl GetNature
lsls r0, 24
mov r4, sp
adds r4, 0x16
ldr r1, _080488B8 @ =gUnknown_8463E60
lsrs r0, 22
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
bl StringCopy
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
str r0, [sp, 0xC]
adds r0, r6, 0
movs r1, 0
add r2, sp, 0x10
movs r3, 0
bl RenderTextFont9
movs r7, 0x6
movs r5, 0
mov r2, sp
adds r2, 0x19
str r2, [sp, 0x28]
_08048888:
mov r0, sp
adds r0, r7
adds r0, 0x10
ldrb r1, [r0]
adds r0, r1, 0
subs r0, 0x37
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bls _080488A8
adds r0, r1, 0
adds r0, 0x79
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bhi _080488BC
_080488A8:
movs r0, 0x2C
b _080488DA
.align 2, 0
_080488AC: .4byte gUnknown_826052C
_080488B0: .4byte gSprites
_080488B4: .4byte gUnknown_202401C
_080488B8: .4byte gUnknown_8463E60
_080488BC:
adds r0, r1, 0
subs r0, 0x4B
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _080488D4
adds r0, r1, 0
adds r0, 0x65
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bhi _080488D8
_080488D4:
movs r0, 0x2D
b _080488DA
_080488D8:
movs r0, 0x2B
_080488DA:
bl GetHealthboxElementGfxPtr
lsls r1, r5, 6
adds r1, r6, r1
ldr r2, _080489F8 @ =0x04000008
bl CpuSet
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r7, 0x1
cmp r5, r8
bcc _08048888
movs r7, 0x1
ldr r3, [sp, 0x24]
lsls r3, 4
str r3, [sp, 0x2C]
movs r0, 0x1
add r0, r8
mov r9, r0
cmp r7, r9
bge _08048966
ldr r1, _080489FC @ =gSprites
ldr r2, _080489F8 @ =0x04000008
mov r10, r2
ldr r2, [sp, 0x24]
adds r0, r3, r2
lsls r0, 2
adds r0, r1
mov r8, r0
_08048916:
mov r3, r8
ldrh r0, [r3, 0x4]
lsls r0, 22
lsrs r0, 22
adds r5, r7, 0
cmp r7, 0
bge _08048926
adds r5, r7, 0x7
_08048926:
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, _08048A00 @ =0x06010000
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, _08048A00 @ =0x06010000
adds r1, r0, r2
adds r0, r6, 0
mov r2, r10
bl CpuSet
adds r6, 0x20
adds r7, 0x1
cmp r7, r9
blt _08048916
_08048966:
ldr r6, _080489FC @ =gSprites
ldr r3, [sp, 0x2C]
ldr r1, [sp, 0x24]
adds r0, r3, r1
lsls r0, 2
adds r0, r6
ldrh r4, [r0, 0x38]
lsls r4, 24
lsrs r4, 24
ldr r5, _08048A04 @ =gBattleStruct
ldr r0, [r5]
adds r0, 0x7C
ldrb r1, [r0]
mov r0, sp
adds r0, 0x16
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, [r5]
adds r0, 0x7B
ldrb r1, [r0]
ldr r0, [sp, 0x28]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
add r0, sp, 0x10
movs r1, 0
strb r1, [r0, 0x5]
adds r2, r0, 0
movs r0, 0xBA
strb r0, [r2, 0x8]
ldr r5, _08048A08 @ =gUnknown_202401C
ldr r0, [r5]
movs r2, 0xBA
lsls r2, 1
adds r0, r2
ldr r0, [r0]
str r1, [sp]
str r1, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
add r2, sp, 0x10
movs r3, 0
bl RenderTextFont9
movs r7, 0
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r6, r0, r6
movs r4, 0x20
_080489D0:
cmp r7, 0x1
bgt _08048A0C
ldr r0, [r5]
movs r3, 0xBA
lsls r3, 1
adds r0, r3
ldr r0, [r0]
adds r0, r4
ldrh r1, [r6, 0x4]
lsls r1, 22
lsrs r1, 22
adds r2, r7, 0x2
adds r1, r2
lsls r1, 5
ldr r2, _08048A00 @ =0x06010000
adds r1, r2
ldr r2, _080489F8 @ =0x04000008
bl CpuSet
b _08048A2C
.align 2, 0
_080489F8: .4byte 0x04000008
_080489FC: .4byte gSprites
_08048A00: .4byte 0x06010000
_08048A04: .4byte gBattleStruct
_08048A08: .4byte gUnknown_202401C
_08048A0C:
ldr r0, [r5]
movs r3, 0xBA
lsls r3, 1
adds r0, r3
ldr r0, [r0]
adds r0, r4
ldrh r1, [r6, 0x4]
lsls r1, 22
lsrs r1, 22
adds r1, r7, r1
lsls r1, 5
ldr r2, _08048A44 @ =0x060100c0
adds r1, r2
ldr r2, _08048A48 @ =0x04000008
bl CpuSet
_08048A2C:
adds r4, 0x40
adds r7, 0x1
cmp r7, 0x4
ble _080489D0
add sp, 0x30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08048A44: .4byte 0x060100c0
_08048A48: .4byte 0x04000008
thumb_func_end sub_80487F8
thumb_func_start sub_8048A4C
sub_8048A4C: @ 8048A4C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
movs r0, 0
mov r9, r0
ldr r0, _08048B78 @ =gUnknown_2023BCC
ldrb r0, [r0]
cmp r9, r0
blt _08048A66
b _08048CF2
_08048A66:
ldr r1, _08048B7C @ =gSprites
mov r10, r1
ldr r2, _08048B80 @ =gBattlerPartyIndexes
mov r8, r2
_08048A6E:
ldr r0, _08048B84 @ =gUnknown_3004FF0
mov r1, r9
adds r6, r1, r0
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
mov r1, r10
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
ldr r0, _08048B88 @ =SpriteCallbackDummy
cmp r1, r0
beq _08048A8C
b _08048CE0
_08048A8C:
mov r2, r9
lsls r0, r2, 24
lsrs r7, r0, 24
adds r0, r7, 0
bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08048AA2
b _08048CE0
_08048AA2:
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08048ABA
adds r0, r7, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048ABA
b _08048CE0
_08048ABA:
ldr r5, _08048B8C @ =gUnknown_2024018
ldr r0, [r5]
ldr r3, [r0]
mov r0, r9
lsls r4, r0, 2
adds r3, r4, r3
ldr r0, [r3]
lsls r0, 27
lsrs r0, 31
movs r2, 0x1
eors r2, r0
lsls r2, 4
mov r12, r2
ldrb r0, [r3]
movs r2, 0x11
negs r2, r2
adds r1, r2, 0
ands r0, r1
mov r1, r12
orrs r0, r1
strb r0, [r3]
ldr r0, [r5]
ldr r0, [r0]
adds r4, r0
ldr r0, [r4]
lsls r0, 27
lsrs r4, r0, 31
adds r0, r7, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048BE8
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08048B08
b _08048CE0
_08048B08:
ldr r0, _08048B90 @ =gBattleTypeFlags
ldr r2, [r0]
movs r0, 0x80
ands r2, r0
cmp r2, 0
beq _08048B16
b _08048CE0
_08048B16:
cmp r4, 0x1
bne _08048BA0
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
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, r10
ldrh r1, [r0, 0x4]
lsls r1, 22
lsrs r1, 17
ldr r2, _08048B94 @ =0x06010000
adds r1, r2
mov r0, sp
ldr r2, _08048B98 @ =0x05000040
bl CpuSet
ldrb r4, [r6]
mov r1, r8
ldrh r0, [r1]
movs r2, 0x64
muls r0, r2
ldr r1, _08048B9C @ =gPlayerParty
adds r0, r1
movs r1, 0x39
bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
movs r2, 0
bl sub_8048618
ldrb r4, [r6]
mov r2, r8
ldrh r0, [r2]
movs r1, 0x64
muls r0, r1
ldr r2, _08048B9C @ =gPlayerParty
b _08048C6E
.align 2, 0
_08048B78: .4byte gUnknown_2023BCC
_08048B7C: .4byte gSprites
_08048B80: .4byte gBattlerPartyIndexes
_08048B84: .4byte gUnknown_3004FF0
_08048B88: .4byte SpriteCallbackDummy
_08048B8C: .4byte gUnknown_2024018
_08048B90: .4byte gBattleTypeFlags
_08048B94: .4byte 0x06010000
_08048B98: .4byte 0x05000040
_08048B9C: .4byte gPlayerParty
_08048BA0:
ldrb r0, [r6]
bl UpdateStatusIconInHealthbox
ldrb r0, [r6]
mov r2, r8
ldrh r1, [r2]
movs r2, 0x64
muls r1, r2
ldr r2, _08048BDC @ =gPlayerParty
adds r1, r2
movs r2, 0x5
bl UpdateHealthboxAttribute
movs r0, 0x75
bl GetHealthboxElementGfxPtr
ldrb r2, [r6]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r10
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 17
ldr r2, _08048BE0 @ =0x06010680
adds r1, r2
ldr r2, _08048BE4 @ =0x04000008
bl CpuSet
b _08048CCA
.align 2, 0
_08048BDC: .4byte gPlayerParty
_08048BE0: .4byte 0x06010680
_08048BE4: .4byte 0x04000008
_08048BE8:
cmp r4, 0x1
bne _08048C94
ldr r0, _08048C0C @ =gBattleTypeFlags
ldr r2, [r0]
movs r0, 0x80
ands r2, r0
cmp r2, 0
beq _08048C14
ldrb r0, [r6]
mov r2, r8
ldrh r1, [r2]
movs r2, 0x64
muls r1, r2
ldr r2, _08048C10 @ =gEnemyParty
adds r1, r2
bl sub_80487F8
b _08048CCA
.align 2, 0
_08048C0C: .4byte gBattleTypeFlags
_08048C10: .4byte gEnemyParty
_08048C14:
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
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, r10
ldrh r1, [r0, 0x4]
lsls r1, 22
lsrs r1, 17
ldr r0, _08048C88 @ =0x06010000
adds r1, r0
mov r0, sp
ldr r2, _08048C8C @ =0x05000040
bl CpuSet
ldrb r4, [r6]
mov r1, r8
ldrh r0, [r1]
movs r2, 0x64
muls r0, r2
ldr r1, _08048C90 @ =gEnemyParty
adds r0, r1
movs r1, 0x39
bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
movs r2, 0
bl sub_8048618
ldrb r4, [r6]
mov r2, r8
ldrh r0, [r2]
movs r1, 0x64
muls r0, r1
ldr r2, _08048C90 @ =gEnemyParty
_08048C6E:
adds r0, r2
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
movs r2, 0x1
bl sub_8048618
b _08048CCA
.align 2, 0
_08048C88: .4byte 0x06010000
_08048C8C: .4byte 0x05000040
_08048C90: .4byte gEnemyParty
_08048C94:
ldrb r0, [r6]
bl UpdateStatusIconInHealthbox
ldrb r0, [r6]
mov r2, r8
ldrh r1, [r2]
movs r5, 0x64
muls r1, r5
ldr r4, _08048D04 @ =gEnemyParty
adds r1, r4
movs r2, 0x5
bl UpdateHealthboxAttribute
ldr r0, _08048D08 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
ands r0, r1
cmp r0, 0
beq _08048CCA
ldrb r0, [r6]
mov r2, r8
ldrh r1, [r2]
muls r1, r5
adds r1, r4
movs r2, 0x4
bl UpdateHealthboxAttribute
_08048CCA:
ldr r0, _08048D0C @ =gUnknown_3004FF0
add r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrh r1, [r0, 0x3C]
movs r2, 0x1
eors r1, r2
strh r1, [r0, 0x3C]
_08048CE0:
movs r0, 0x2
add r8, r0
movs r1, 0x1
add r9, r1
ldr r0, _08048D10 @ =gUnknown_2023BCC
ldrb r0, [r0]
cmp r9, r0
bge _08048CF2
b _08048A6E
_08048CF2:
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
_08048D04: .4byte gEnemyParty
_08048D08: .4byte gBattleTypeFlags
_08048D0C: .4byte gUnknown_3004FF0
_08048D10: .4byte gUnknown_2023BCC
thumb_func_end sub_8048A4C
thumb_func_start sub_8048D14
sub_8048D14: @ 8048D14
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 _08048D44
bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08048D88
_08048D44:
ldr r0, [sp, 0x8]
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08048D64
movs r7, 0
movs r1, 0x88
movs r2, 0x60
movs r0, 0x64
mov r8, r0
ldr r5, _08048D60 @ =0x0000fffb
b _08048D94
.align 2, 0
_08048D60: .4byte 0x0000fffb
_08048D64:
movs r7, 0x1
cmp r4, 0
beq _08048D74
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08048D7A
_08048D74:
movs r1, 0x68
movs r2, 0x28
b _08048D7E
_08048D7A:
movs r1, 0x68
movs r2, 0x10
_08048D7E:
ldr r3, _08048D84 @ =0x0000ff9c
mov r8, r3
b _08048D92
.align 2, 0
_08048D84: .4byte 0x0000ff9c
_08048D88:
movs r7, 0x1
movs r1, 0x68
movs r2, 0x28
ldr r5, _08048E40 @ =0x0000ff9c
mov r8, r5
_08048D92:
movs r5, 0x5
_08048D94:
movs r6, 0
str r6, [sp, 0x14]
lsls r4, r7, 3
ldr r0, _08048E44 @ =gUnknown_826046C
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, _08048E48 @ =0x0000ffff
ldr r1, [sp, 0xC]
movs r6, 0x5
_08048DB0:
ldrh r0, [r1]
cmp r0, r2
beq _08048DC4
ldr r3, [sp, 0x14]
lsls r0, r3, 24
movs r3, 0x80
lsls r3, 17
adds r0, r3
lsrs r0, 24
str r0, [sp, 0x14]
_08048DC4:
adds r1, 0x8
subs r6, 0x1
cmp r6, 0
bge _08048DB0
mov r6, r10
adds r0, r4, r6
bl sub_800F034
ldr r0, _08048E4C @ =gUnknown_826049C
adds r0, r4, r0
bl LoadSpriteSheet
ldr r0, _08048E50 @ =gUnknown_826047C
adds r0, r4, r0
bl LoadSpritePalette
ldr r0, _08048E54 @ =gUnknown_826048C
adds r0, r4, r0
bl LoadSpritePalette
mov r1, r9
adds r0, r1, r7
lsls r0, 3
ldr r1, _08048E58 @ =gUnknown_82604BC
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, _08048E5C @ =gSprites
adds r4, r0, r1
ldr r1, _08048E60 @ =gUnknown_82603FC
adds r0, r4, 0
bl SetSubspriteTables
mov r0, r8
strh r0, [r4, 0x24]
strh r5, [r4, 0x2E]
cmp r7, 0
beq _08048E64
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 _08048E6A
.align 2, 0
_08048E40: .4byte 0x0000ff9c
_08048E44: .4byte gUnknown_826046C
_08048E48: .4byte 0x0000ffff
_08048E4C: .4byte gUnknown_826049C
_08048E50: .4byte gUnknown_826047C
_08048E54: .4byte gUnknown_826048C
_08048E58: .4byte gUnknown_82604BC
_08048E5C: .4byte gSprites
_08048E60: .4byte gUnknown_82603FC
_08048E64:
ldrh r0, [r4, 0x20]
adds r0, 0x60
strh r0, [r4, 0x20]
_08048E6A:
movs r6, 0
ldr r1, _08048F14 @ =gSprites
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
_08048E80:
ldr r0, _08048F18 @ =gUnknown_82604EC
ldr r5, [sp, 0x24]
ldr r1, _08048F1C @ =0xfffc0000
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 _08048EB0
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r2, _08048F20 @ =gSprites + 0x1C
adds r1, r2
ldr r0, _08048F24 @ =SpriteCB_StatusSummaryBallsOnSwitchout
str r0, [r1]
_08048EB0:
ldr r5, _08048F14 @ =gSprites
cmp r7, 0
bne _08048ECE
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]
_08048ECE:
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 _08048F28
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 _08048F66
.align 2, 0
_08048F14: .4byte gSprites
_08048F18: .4byte gUnknown_82604EC
_08048F1C: .4byte 0xfffc0000
_08048F20: .4byte gSprites + 0x1C
_08048F24: .4byte SpriteCB_StatusSummaryBallsOnSwitchout
_08048F28:
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, _08048FD4 @ =0x0000ff88
_08048F66:
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 _08048F86
b _08048E80
_08048F86:
ldr r0, [sp, 0x8]
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0804906E
movs r6, 0
ldr r5, _08048FD8 @ =gBattleTypeFlags
mov r10, r5
ldr r0, _08048FDC @ =0x0000ffff
mov r9, r0
ldr r7, _08048FE0 @ =gSprites
ldr r1, _08048FE4 @ =0x000003ff
mov r12, r1
ldr r2, _08048FE8 @ =0xfffffc00
mov r8, r2
mov r4, sp
ldr r5, [sp, 0xC]
_08048FAA:
mov r3, r10
ldr r0, [r3]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08048FEC
ldrh r0, [r5]
cmp r0, r9
beq _08048FF6
cmp r0, 0
bne _0804903E
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 _08049056
.align 2, 0
_08048FD4: .4byte 0x0000ff88
_08048FD8: .4byte gBattleTypeFlags
_08048FDC: .4byte 0x0000ffff
_08048FE0: .4byte gSprites
_08048FE4: .4byte 0x000003ff
_08048FE8: .4byte 0xfffffc00
_08048FEC:
ldr r1, [sp, 0x14]
lsls r0, r1, 24
asrs r0, 24
cmp r6, r0
blt _08049024
_08048FF6:
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 _08049062
_08049024:
ldrh r0, [r5]
cmp r0, 0
bne _0804903E
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 _08049056
_0804903E:
ldr r0, [r5, 0x4]
cmp r0, 0
beq _08049062
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
_08049056:
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
_08049062:
adds r4, 0x1
adds r5, 0x8
adds r6, 0x1
cmp r6, 0x5
ble _08048FAA
b _08049148
_0804906E:
movs r6, 0
ldr r1, _080490B4 @ =gBattleTypeFlags
mov r10, r1
ldr r2, _080490B8 @ =0x0000ffff
mov r9, r2
ldr r7, _080490BC @ =gSprites
ldr r3, _080490C0 @ =0x000003ff
mov r12, r3
ldr r5, _080490C4 @ =0xfffffc00
mov r8, r5
ldr r5, [sp, 0xC]
mov r4, sp
adds r4, 0x5
_08049088:
mov r1, r10
ldr r0, [r1]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _080490C8
ldrh r0, [r5]
cmp r0, r9
beq _080490D2
cmp r0, 0
bne _0804911A
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 _08049132
.align 2, 0
_080490B4: .4byte gBattleTypeFlags
_080490B8: .4byte 0x0000ffff
_080490BC: .4byte gSprites
_080490C0: .4byte 0x000003ff
_080490C4: .4byte 0xfffffc00
_080490C8:
ldr r1, [sp, 0x14]
lsls r0, r1, 24
asrs r0, 24
cmp r6, r0
blt _08049100
_080490D2:
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 _0804913E
_08049100:
ldrh r0, [r5]
cmp r0, 0
bne _0804911A
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 _08049132
_0804911A:
ldr r0, [r5, 0x4]
cmp r0, 0
beq _0804913E
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
_08049132:
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
_0804913E:
subs r4, 0x1
adds r5, 0x8
adds r6, 0x1
cmp r6, 0x5
ble _08049088
_08049148:
ldr r0, _080491A8 @ =nullsub_43
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
ldr r2, _080491AC @ =gUnknown_3005090
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
_08049172:
mov r5, sp
adds r0, r5, r6
ldrb r0, [r0]
strh r0, [r1]
adds r1, 0x2
adds r6, 0x1
cmp r6, 0x5
ble _08049172
adds r0, r3, r4
lsls r0, 3
adds r0, r2
ldrh r6, [r5, 0x10]
strh r6, [r0, 0x1C]
movs r0, 0x6B
movs r1, 0
bl PlaySE12WithPanning
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
_080491A8: .4byte nullsub_43
_080491AC: .4byte gUnknown_3005090
thumb_func_end sub_8048D14
thumb_func_start sub_80491B0
sub_80491B0: @ 80491B0
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, _080492C0 @ =gUnknown_3005090
lsls r3, r0, 2
adds r1, r3, r0
lsls r1, 3
adds r0, r1, r2
ldrb r7, [r0, 0x1C]
ldrb r4, [r0, 0xA]
mov r10, r4
ldrb r0, [r0, 0x8]
str r0, [sp, 0x8]
movs r5, 0
str r3, [sp, 0xC]
adds r2, 0xE
adds r2, r1, r2
_080491DE:
mov r0, sp
adds r1, r0, r5
ldrh r0, [r2]
strb r0, [r1]
adds r2, 0x2
adds r5, 0x1
cmp r5, 0x5
ble _080491DE
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldr r1, _080492C0 @ =gUnknown_3005090
ldr r0, [sp, 0xC]
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x10
strh r1, [r0, 0x26]
movs r5, 0
mov r1, r10
lsls r1, 4
str r1, [sp, 0x10]
ldr r3, _080492C4 @ =gSprites
movs r6, 0xD
negs r6, r6
mov r12, r3
movs r4, 0x4
_08049220:
mov r2, sp
adds r0, r2, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrb r2, [r1, 0x1]
adds r0, r6, 0
ands r0, r2
orrs r0, r4
strb r0, [r1, 0x1]
adds r5, 0x1
cmp r5, 0x5
ble _08049220
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]
cmp r7, 0
bne _0804925A
b _08049360
_0804925A:
movs r5, 0
mov r6, r12
mov r9, r5
adds r3, r6, 0
adds r3, 0x1C
mov r4, sp
movs r7, 0
_08049268:
ldr r0, [sp, 0x8]
str r3, [sp, 0x14]
bl GetBankSide
lsls r0, 24
lsrs r2, r0, 24
ldr r3, [sp, 0x14]
cmp r2, 0
beq _080492CC
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, _080492C8 @ =sub_8049630
str r1, [r0]
ldr r2, _080492C4 @ =gSprites
mov r12, r2
b _08049302
.align 2, 0
_080492C0: .4byte gUnknown_3005090
_080492C4: .4byte gSprites
_080492C8: .4byte sub_8049630
_080492CC:
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, _08049348 @ =sub_8049630
str r1, [r0]
ldr r0, _0804934C @ =gSprites
mov r12, r0
_08049302:
adds r4, 0x1
adds r7, 0x7
adds r5, 0x1
cmp r5, 0x5
ble _08049268
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, _08049350 @ =sub_8049568
str r1, [r3]
ldr r1, _08049354 @ =gUnknown_8260404
bl SetSubspriteTables
ldr r1, _08049358 @ =gUnknown_3005090
ldr r0, [sp, 0xC]
add r0, r8
lsls r0, 3
adds r0, r1
ldr r1, _0804935C @ =sub_8049388
str r1, [r0]
b _0804936E
.align 2, 0
_08049348: .4byte sub_8049630
_0804934C: .4byte gSprites
_08049350: .4byte sub_8049568
_08049354: .4byte gUnknown_8260404
_08049358: .4byte gUnknown_3005090
_0804935C: .4byte sub_8049388
_08049360:
ldr r0, _08049380 @ =gUnknown_3005090
ldr r1, [sp, 0xC]
add r1, r8
lsls r1, 3
adds r1, r0
ldr r0, _08049384 @ =sub_804948C
str r0, [r1]
_0804936E:
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
_08049380: .4byte gUnknown_3005090
_08049384: .4byte sub_804948C
thumb_func_end sub_80491B0
thumb_func_start sub_8049388
sub_8049388: @ 8049388
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080493DC @ =gUnknown_3005090
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x1E]
adds r1, r0, 0x1
strh r1, [r4, 0x1E]
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _080493C8
ldrh r0, [r4, 0x26]
subs r1, r0, 0x1
strh r1, [r4, 0x26]
lsls r0, r1, 16
cmp r0, 0
blt _080493D4
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
_080493C8:
movs r1, 0x26
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080493D4
ldr r0, _080493E0 @ =sub_80493E4
str r0, [r4]
_080493D4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080493DC: .4byte gUnknown_3005090
_080493E0: .4byte sub_80493E4
thumb_func_end sub_8049388
thumb_func_start sub_80493E4
sub_80493E4: @ 80493E4
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r7, _0804945C @ =gUnknown_3005090
lsls r0, r4, 2
adds r0, r4
lsls r6, r0, 3
adds r1, r6, r7
ldrh r0, [r1, 0x26]
subs r0, 0x1
strh r0, [r1, 0x26]
lsls r0, 16
asrs r2, r0, 16
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _08049464
ldrb r3, [r1, 0xA]
movs r5, 0
adds r0, r7, 0
adds r0, 0xE
adds r2, r6, r0
_08049412:
mov r0, sp
adds r1, r0, r5
ldrh r0, [r2]
strb r0, [r1]
adds r2, 0x2
adds r5, 0x1
cmp r5, 0x5
ble _08049412
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
ldr r4, _08049460 @ =gSprites
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
_08049442:
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 _08049442
b _08049482
.align 2, 0
_0804945C: .4byte gUnknown_3005090
_08049460: .4byte gSprites
_08049464:
movs r0, 0x3
negs r0, r0
cmp r2, r0
bne _08049482
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyTask
_08049482:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80493E4
thumb_func_start sub_804948C
sub_804948C: @ 804948C
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r7, _080494C4 @ =gUnknown_3005090
lsls r0, r4, 2
adds r0, r4
lsls r6, r0, 3
adds r3, r6, r7
ldrh r0, [r3, 0x26]
subs r1, r0, 0x1
strh r1, [r3, 0x26]
lsls r0, r1, 16
asrs r2, r0, 16
cmp r2, 0
blt _080494C8
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
b _08049546
.align 2, 0
_080494C4: .4byte gUnknown_3005090
_080494C8:
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _08049528
ldrb r3, [r3, 0xA]
movs r5, 0
adds r0, r7, 0
adds r0, 0xE
adds r2, r6, r0
_080494DA:
mov r0, sp
adds r1, r0, r5
ldrh r0, [r2]
strb r0, [r1]
adds r2, 0x2
adds r5, 0x1
cmp r5, 0x5
ble _080494DA
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
ldr r4, _08049524 @ =gSprites
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
_0804950A:
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 _0804950A
b _08049546
.align 2, 0
_08049524: .4byte gSprites
_08049528:
movs r0, 0x3
negs r0, r0
cmp r2, r0
bne _08049546
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyTask
_08049546:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804948C
thumb_func_start SpriteCB_StatusSummaryBar
SpriteCB_StatusSummaryBar: @ 8049550
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x24]
movs r3, 0x24
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08049564
ldrh r0, [r1, 0x2E]
adds r0, r2, r0
strh r0, [r1, 0x24]
_08049564:
pop {r0}
bx r0
thumb_func_end SpriteCB_StatusSummaryBar
thumb_func_start sub_8049568
sub_8049568: @ 8049568
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 _08049586
lsls r0, r1, 16
asrs r0, 20
ldrh r1, [r2, 0x24]
adds r0, r1
b _0804958E
_08049586:
lsls r1, 16
asrs r1, 20
ldrh r0, [r2, 0x24]
subs r0, r1
_0804958E:
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_8049568
thumb_func_start SpriteCB_StatusSummaryBallsOnBattleStart
SpriteCB_StatusSummaryBallsOnBattleStart: @ 804959C
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0
ble _080495B0
subs r0, r1, 0x1
strh r0, [r4, 0x30]
b _08049626
_080495B0:
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, _080495E0 @ =0x0000fff0
ands r2, r0
strh r2, [r4, 0x34]
cmp r3, 0
beq _080495E4
lsrs r0, r1, 20
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
lsls r0, 16
cmp r0, 0
ble _080495F4
movs r0, 0
strh r0, [r4, 0x24]
b _080495F4
.align 2, 0
_080495E0: .4byte 0x0000fff0
_080495E4:
lsrs r1, 20
ldrh r0, [r4, 0x24]
subs r0, r1
strh r0, [r4, 0x24]
lsls r0, 16
cmp r0, 0
bge _080495F4
strh r3, [r4, 0x24]
_080495F4:
movs r2, 0x24
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08049626
movs r1, 0x3F
cmp r3, 0
beq _08049604
movs r1, 0xC0
_08049604:
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08049618
lsls r1, 24
asrs r1, 24
movs r0, 0x6D
bl PlaySE2WithPanning
b _08049622
_08049618:
lsls r1, 24
asrs r1, 24
movs r0, 0x6C
bl PlaySE1WithPanning
_08049622:
ldr r0, _0804962C @ =SpriteCallbackDummy
str r0, [r4, 0x1C]
_08049626:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804962C: .4byte SpriteCallbackDummy
thumb_func_end SpriteCB_StatusSummaryBallsOnBattleStart
thumb_func_start sub_8049630
sub_8049630: @ 8049630
push {r4,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x30]
movs r2, 0x30
ldrsh r0, [r3, r2]
cmp r0, 0
ble _08049644
subs r0, r1, 0x1
strh r0, [r3, 0x30]
b _08049694
_08049644:
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, _08049664 @ =0x0000fff0
ands r2, r1
strh r2, [r3, 0x34]
cmp r0, 0
beq _08049668
lsrs r0, r4, 20
ldrh r1, [r3, 0x24]
adds r0, r1
b _0804966E
.align 2, 0
_08049664: .4byte 0x0000fff0
_08049668:
lsrs r1, r4, 20
ldrh r0, [r3, 0x24]
subs r0, r1
_0804966E:
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 _08049694
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, _0804969C @ =SpriteCallbackDummy
str r0, [r3, 0x1C]
_08049694:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804969C: .4byte SpriteCallbackDummy
thumb_func_end sub_8049630
thumb_func_start SpriteCB_StatusSummaryBallsOnSwitchout
SpriteCB_StatusSummaryBallsOnSwitchout: @ 80496A0
ldrh r2, [r0, 0x2E]
lsls r2, 24
lsrs r2, 24
ldr r3, _080496BC @ =gSprites
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
_080496BC: .4byte gSprites
thumb_func_end SpriteCB_StatusSummaryBallsOnSwitchout
thumb_func_start sub_80496C0
sub_80496C0: @ 80496C0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r7, r1, 0
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _08049760 @ =gUnknown_202298C
ldr r1, _08049764 @ =gUnknown_8260556
bl StringCopy
adds r5, r0, 0
adds r0, r7, 0
movs r1, 0x2
mov r2, sp
bl GetMonData
mov r0, sp
bl StringGetEnd10
adds r0, r5, 0
mov r1, sp
bl StringCopy
adds r5, r0, 0
movs r0, 0xFC
strb r0, [r5]
adds r5, 0x1
movs r0, 0x1
strb r0, [r5]
adds r5, 0x1
adds r0, r7, 0
bl GetMonGender
lsls r0, 24
lsrs r6, r0, 24
adds r0, r7, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
adds r1, r0, 0
cmp r0, 0x1D
beq _08049720
cmp r0, 0x20
bne _08049734
_08049720:
movs r0, 0xB
muls r1, r0
ldr r0, _08049768 @ =gUnknown_8245EE0
adds r1, r0
mov r0, sp
bl StringCompare
cmp r0, 0
bne _08049734
movs r6, 0x64
_08049734:
ldr r1, _0804976C @ =gSprites
mov r0, r8
lsls r4, r0, 4
adds r0, r4, r0
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x3A]
lsls r1, 24
lsrs r1, 24
adds r0, r7, 0
bl sub_80448F8
lsls r0, 24
cmp r0, 0
beq _08049754
movs r6, 0x64
_08049754:
cmp r6, 0
beq _08049770
cmp r6, 0xFE
beq _0804977A
movs r0, 0xB
b _08049782
.align 2, 0
_08049760: .4byte gUnknown_202298C
_08049764: .4byte gUnknown_8260556
_08049768: .4byte gUnknown_8245EE0
_0804976C: .4byte gSprites
_08049770:
movs r0, 0xB
strb r0, [r5]
adds r5, 0x1
movs r0, 0xB5
b _08049782
_0804977A:
movs r0, 0xA
strb r0, [r5]
adds r5, 0x1
movs r0, 0xB6
_08049782:
strb r0, [r5]
movs r0, 0xFF
strb r0, [r5, 0x1]
ldr r0, _080497E4 @ =gUnknown_202298C
add r3, sp, 0xC
movs r1, 0
movs r2, 0x3
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r6, r0, 0
ldr r0, _080497E8 @ =gSprites
mov r2, r8
adds r1, r4, r2
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r4, r0, 17
ldrh r0, [r1, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080497F8
ldr r1, _080497EC @ =0x06010040
adds r0, r4, r1
adds r1, r6, 0
movs r2, 0x6
bl sub_804A6E8
bl sub_8075290
lsls r0, 24
ldr r2, _080497F0 @ =0x06010400
adds r5, r4, r2
cmp r0, 0
bne _080497D4
ldr r0, _080497F4 @ =0x06010800
adds r5, r4, r0
_080497D4:
adds r1, r6, 0
adds r1, 0xC0
adds r0, r5, 0
movs r2, 0x1
bl sub_804A6E8
b _08049804
.align 2, 0
_080497E4: .4byte gUnknown_202298C
_080497E8: .4byte gSprites
_080497EC: .4byte 0x06010040
_080497F0: .4byte 0x06010400
_080497F4: .4byte 0x06010800
_080497F8:
ldr r1, _08049818 @ =0x06010020
adds r0, r4, r1
adds r1, r6, 0
movs r2, 0x7
bl sub_804A6E8
_08049804:
ldr r0, [sp, 0xC]
bl sub_804A6D8
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08049818: .4byte 0x06010020
thumb_func_end sub_80496C0
thumb_func_start sub_804981C
sub_804981C: @ 804981C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
ldr r0, _080498DC @ =gBattleTypeFlags
ldr r1, [r0]
ldr r0, _080498E0 @ =0x00010210
ands r0, r1
cmp r0, 0
bne _0804991C
movs r0, 0x8
ands r1, r0
cmp r1, 0
bne _0804991C
ldr r0, _080498E4 @ =gSprites
mov r9, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
add r0, r9
mov r8, r0
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _0804991C
ldr r1, _080498E8 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r5, r0, r1
ldrh r0, [r5]
movs r7, 0x64
muls r0, r7
ldr r6, _080498EC @ =gEnemyParty
adds r0, r6
adds r1, r4, 0
bl sub_80448F8
lsls r0, 24
cmp r0, 0
bne _0804991C
ldrh r0, [r5]
muls r0, r7
adds r0, r6
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8088E74
lsls r0, 24
cmp r0, 0
beq _0804991C
mov r1, r8
ldrh r0, [r1, 0x38]
lsls r0, 24
lsrs r4, r0, 24
mov r2, r10
cmp r2, 0
beq _080498F8
movs r0, 0x46
bl GetHealthboxElementGfxPtr
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
add r1, r9
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 17
movs r2, 0x80
lsls r2, 1
adds r1, r2
ldr r2, _080498F0 @ =0x06010000
adds r1, r2
ldr r2, _080498F4 @ =0x04000008
bl CpuSet
b _0804991C
.align 2, 0
_080498DC: .4byte gBattleTypeFlags
_080498E0: .4byte 0x00010210
_080498E4: .4byte gSprites
_080498E8: .4byte gBattlerPartyIndexes
_080498EC: .4byte gEnemyParty
_080498F0: .4byte 0x06010000
_080498F4: .4byte 0x04000008
_080498F8:
mov r0, r10
str r0, [sp]
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
add r0, r9
ldrh r1, [r0, 0x4]
lsls r1, 22
lsrs r1, 17
movs r2, 0x80
lsls r2, 1
adds r1, r2
ldr r0, _0804992C @ =0x06010000
adds r1, r0
ldr r2, _08049930 @ =0x05000008
mov r0, sp
bl CpuSet
_0804991C:
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
_0804992C: .4byte 0x06010000
_08049930: .4byte 0x05000008
thumb_func_end sub_804981C
thumb_func_start UpdateStatusIconInHealthbox
UpdateStatusIconInHealthbox: @ 8049934
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, _08049998 @ =gSprites
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 GetBankSide
lsls r0, 24
cmp r0, 0
bne _080499A4
ldr r1, _0804999C @ =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080499A0 @ =gPlayerParty
adds r0, r1
movs r1, 0x37
bl GetMonData
adds r4, r0, 0
bl sub_8075290
lsls r0, 24
movs r3, 0x12
mov r8, r3
cmp r0, 0
bne _080499C0
movs r0, 0x1A
mov r8, r0
b _080499C0
.align 2, 0
_08049998: .4byte gSprites
_0804999C: .4byte gBattlerPartyIndexes
_080499A0: .4byte gPlayerParty
_080499A4:
ldr r1, _080499E0 @ =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080499E4 @ =gEnemyParty
adds r0, r1
movs r1, 0x37
bl GetMonData
adds r4, r0, 0
movs r1, 0x11
mov r8, r1
_080499C0:
movs r0, 0x7
ands r0, r4
cmp r0, 0
beq _080499E8
movs r0, 0x1B
adds r1, r7, 0
bl GetStatusIconForBankId
lsls r0, 24
lsrs r0, 24
bl GetHealthboxElementGfxPtr
adds r6, r0, 0
movs r0, 0x2
b _08049AF4
.align 2, 0
_080499E0: .4byte gBattlerPartyIndexes
_080499E4: .4byte gEnemyParty
_080499E8:
movs r0, 0x88
ands r0, r4
cmp r0, 0
beq _08049A06
movs r0, 0x15
adds r1, r7, 0
bl GetStatusIconForBankId
lsls r0, 24
lsrs r0, 24
bl GetHealthboxElementGfxPtr
adds r6, r0, 0
movs r0, 0
b _08049AF4
_08049A06:
movs r0, 0x10
ands r0, r4
cmp r0, 0
beq _08049A24
movs r0, 0x21
adds r1, r7, 0
bl GetStatusIconForBankId
lsls r0, 24
lsrs r0, 24
bl GetHealthboxElementGfxPtr
adds r6, r0, 0
movs r0, 0x4
b _08049AF4
_08049A24:
movs r0, 0x20
ands r0, r4
cmp r0, 0
beq _08049A42
movs r0, 0x1E
adds r1, r7, 0
bl GetStatusIconForBankId
lsls r0, 24
lsrs r0, 24
bl GetHealthboxElementGfxPtr
adds r6, r0, 0
movs r0, 0x3
b _08049AF4
_08049A42:
movs r0, 0x40
ands r0, r4
cmp r0, 0
beq _08049A60
movs r0, 0x18
adds r1, r7, 0
bl GetStatusIconForBankId
lsls r0, 24
lsrs r0, 24
bl GetHealthboxElementGfxPtr
adds r6, r0, 0
movs r0, 0x1
b _08049AF4
_08049A60:
movs r0, 0x27
bl GetHealthboxElementGfxPtr
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, _08049AE0 @ =gSprites
add r0, r9
lsls r0, 2
adds r5, r0, r1
_08049A7E:
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, _08049AE4 @ =0x06010000
adds r1, r3
adds r0, r6, 0
ldr r2, _08049AE8 @ =0x04000008
bl CpuSet
adds r4, 0x1
cmp r4, 0x2
ble _08049A7E
ldr r0, _08049AEC @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0]
adds r0, r7, r0
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _08049AD4
movs r0, 0x1
bl GetHealthboxElementGfxPtr
ldr r2, _08049AE0 @ =gSprites
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, _08049AE4 @ =0x06010000
adds r1, r2
ldr r2, _08049AF0 @ =0x04000010
bl CpuSet
_08049AD4:
mov r0, r9
movs r1, 0x1
bl sub_804981C
b _08049BB6
.align 2, 0
_08049AE0: .4byte gSprites
_08049AE4: .4byte 0x06010000
_08049AE8: .4byte 0x04000008
_08049AEC: .4byte gUnknown_2024018
_08049AF0: .4byte 0x04000010
_08049AF4:
mov r1, r9
lsls r5, r1, 4
add r5, r9
lsls r5, 2
ldr r2, _08049BC4 @ =gSprites
adds r5, r2
ldrb r4, [r5, 0x5]
lsrs r4, 4
lsls r4, 4
adds r4, 0xC
adds r4, r7
ldr r1, _08049BC8 @ =gUnknown_826055A
lsls r0, 1
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, _08049BCC @ =gUnknown_20373F8
adds r0, r4, r0
ldr r1, _08049BD0 @ =0x05000200
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, _08049BD4 @ =0x06010000
mov r8, r2
add r1, r8
ldr r2, _08049BD8 @ =0x04000018
adds r0, r6, 0
bl CpuSet
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08049B62
adds r0, r7, 0
bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08049BAE
_08049B62:
ldr r0, _08049BDC @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r7, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _08049BAE
movs r0, 0
bl GetHealthboxElementGfxPtr
mov r3, r10
lsls r4, r3, 4
add r4, r10
lsls r4, 2
ldr r1, _08049BC4 @ =gSprites
adds r4, r1
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 17
add r1, r8
ldr r5, _08049BE0 @ =0x04000008
adds r2, r5, 0
bl CpuSet
movs r0, 0x41
bl GetHealthboxElementGfxPtr
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 17
adds r1, 0x20
add r1, r8
adds r2, r5, 0
bl CpuSet
_08049BAE:
mov r0, r9
movs r1, 0
bl sub_804981C
_08049BB6:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08049BC4: .4byte gSprites
_08049BC8: .4byte gUnknown_826055A
_08049BCC: .4byte gUnknown_20373F8
_08049BD0: .4byte 0x05000200
_08049BD4: .4byte 0x06010000
_08049BD8: .4byte 0x04000018
_08049BDC: .4byte gUnknown_2024018
_08049BE0: .4byte 0x04000008
thumb_func_end UpdateStatusIconInHealthbox
thumb_func_start GetStatusIconForBankId
GetStatusIconForBankId: @ 8049BE4
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 _08049CA4
lsls r0, 2
ldr r1, _08049C00 @ =_08049C04
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08049C00: .4byte _08049C04
.align 2, 0
_08049C04:
.4byte _08049C38
.4byte _08049CA4
.4byte _08049CA4
.4byte _08049C4E
.4byte _08049CA4
.4byte _08049CA4
.4byte _08049C64
.4byte _08049CA4
.4byte _08049CA4
.4byte _08049C7A
.4byte _08049CA4
.4byte _08049CA4
.4byte _08049C90
_08049C38:
movs r2, 0x15
cmp r3, 0
beq _08049CA4
movs r2, 0x47
cmp r3, 0x1
beq _08049CA4
movs r2, 0x65
cmp r3, 0x2
bne _08049CA4
movs r2, 0x56
b _08049CA4
_08049C4E:
movs r2, 0x18
cmp r3, 0
beq _08049CA4
movs r2, 0x4A
cmp r3, 0x1
beq _08049CA4
movs r2, 0x68
cmp r3, 0x2
bne _08049CA4
movs r2, 0x59
b _08049CA4
_08049C64:
movs r2, 0x1B
cmp r3, 0
beq _08049CA4
movs r2, 0x4D
cmp r3, 0x1
beq _08049CA4
movs r2, 0x6B
cmp r3, 0x2
bne _08049CA4
movs r2, 0x5C
b _08049CA4
_08049C7A:
movs r2, 0x1E
cmp r3, 0
beq _08049CA4
movs r2, 0x50
cmp r3, 0x1
beq _08049CA4
movs r2, 0x6E
cmp r3, 0x2
bne _08049CA4
movs r2, 0x5F
b _08049CA4
_08049C90:
movs r2, 0x21
cmp r3, 0
beq _08049CA4
movs r2, 0x53
cmp r3, 0x1
beq _08049CA4
movs r2, 0x71
cmp r3, 0x2
bne _08049CA4
movs r2, 0x62
_08049CA4:
adds r0, r2, 0
pop {r1}
bx r1
thumb_func_end GetStatusIconForBankId
thumb_func_start UpdateSafariBallsTextOnHealthbox
UpdateSafariBallsTextOnHealthbox: @ 8049CAC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08049D00 @ =gUnknown_83FE80C
movs r1, 0
movs r2, 0x3
mov r3, sp
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r5, r0, 0
ldr r1, _08049D04 @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x4]
lsls r4, 22
lsrs r4, 17
ldr r1, _08049D08 @ =0x06010040
adds r0, r4, r1
adds r1, r5, 0
movs r2, 0x6
bl sub_804A6E8
ldr r0, _08049D0C @ =0x06010800
adds r4, r0
adds r5, 0xC0
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_804A6E8
ldr r0, [sp]
bl sub_804A6D8
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08049D00: .4byte gUnknown_83FE80C
_08049D04: .4byte gSprites
_08049D08: .4byte 0x06010040
_08049D0C: .4byte 0x06010800
thumb_func_end UpdateSafariBallsTextOnHealthbox
thumb_func_start UpdateLeftNoOfBallsTextOnHealthbox
UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
push {r4,r5,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _08049D84 @ =gUnknown_83FE81C
mov r0, sp
bl StringCopy
ldr r1, _08049D88 @ =gUnknown_2039994
ldrb r1, [r1]
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
movs r0, 0
mov r1, sp
movs r2, 0
bl GetStringWidth
movs r1, 0x2F
subs r1, r0
add r3, sp, 0x10
mov r0, sp
movs r2, 0x3
bl AddTextPrinterAndCreateWindowOnHealthbox
adds r5, r0, 0
ldr r1, _08049D8C @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x4]
lsls r4, 22
lsrs r4, 17
ldr r1, _08049D90 @ =0x060102c0
adds r0, r4, r1
adds r1, r5, 0
movs r2, 0x2
bl sub_804A734
ldr r0, _08049D94 @ =0x06010a00
adds r4, r0
adds r5, 0x40
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_804A734
ldr r0, [sp, 0x10]
bl sub_804A6D8
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08049D84: .4byte gUnknown_83FE81C
_08049D88: .4byte gUnknown_2039994
_08049D8C: .4byte gSprites
_08049D90: .4byte 0x060102c0
_08049D94: .4byte 0x06010a00
thumb_func_end UpdateLeftNoOfBallsTextOnHealthbox
thumb_func_start UpdateHealthboxAttribute
UpdateHealthboxAttribute: @ 8049D98
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r8, r1
lsls r0, 24
lsrs r6, r0, 24
lsls r2, 24
lsrs r7, r2, 24
ldr r1, _08049F44 @ =gSprites
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r1
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r0, 24
mov r9, r0
cmp r7, 0
bne _08049DD4
bl sub_8075290
lsls r0, 24
cmp r0, 0
bne _08049DD4
mov r0, r9
bl GetBankSide
_08049DD4:
ldr r1, _08049F44 @ =gSprites
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r1
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r0, 24
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _08049DF0
b _08049F50
_08049DF0:
cmp r7, 0x3
beq _08049DF8
cmp r7, 0
bne _08049E0C
_08049DF8:
mov r0, r8
movs r1, 0x38
bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl UpdateLvlInHealthbox
_08049E0C:
cmp r7, 0x1
bhi _08049E26
mov r0, r8
movs r1, 0x39
bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r6, 0
movs r2, 0
bl sub_8048440
_08049E26:
cmp r7, 0x2
beq _08049E2E
cmp r7, 0
bne _08049E44
_08049E2E:
mov r0, r8
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r6, 0
movs r2, 0x1
bl sub_8048440
_08049E44:
cmp r7, 0x5
beq _08049E4C
cmp r7, 0
bne _08049E80
_08049E4C:
movs r0, 0
bl LoadBattleBarGfx
mov r0, r8
movs r1, 0x3A
bl GetMonData
adds r4, r0, 0
mov r0, r8
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
movs r0, 0
str r0, [sp]
mov r0, r9
adds r1, r6, 0
adds r2, r4, 0
bl SetBattleBarStruct
mov r0, r9
adds r1, r6, 0
movs r2, 0
movs r3, 0
bl sub_8049FD8
_08049E80:
bl sub_8075290
lsls r0, 24
lsrs r0, 24
mov r10, r0
cmp r0, 0
bne _08049F06
cmp r7, 0x6
beq _08049E96
cmp r7, 0
bne _08049F06
_08049E96:
movs r0, 0x3
bl LoadBattleBarGfx
mov r0, r8
movs r1, 0xB
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
mov r0, r8
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r0, r8
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
ldr r0, _08049F48 @ =gUnknown_8253AE4
mov r12, r0
lsls r1, r4, 2
ldr r2, _08049F4C @ =gBaseStats
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
add r1, r12
ldr r1, [r1]
subs r3, r1
adds r4, 0x1
lsls r4, 2
adds r4, r0
add r4, r12
ldr r2, [r4]
subs r2, r1
mov r0, r10
str r0, [sp]
mov r0, r9
adds r1, r6, 0
bl SetBattleBarStruct
mov r0, r9
adds r1, r6, 0
movs r2, 0x1
movs r3, 0
bl sub_8049FD8
_08049F06:
cmp r7, 0x4
beq _08049F0E
cmp r7, 0
bne _08049F16
_08049F0E:
adds r0, r6, 0
mov r1, r8
bl sub_80496C0
_08049F16:
cmp r7, 0x9
beq _08049F1E
cmp r7, 0
bne _08049F24
_08049F1E:
adds r0, r6, 0
bl UpdateStatusIconInHealthbox
_08049F24:
cmp r7, 0xA
bne _08049F2E
adds r0, r6, 0
bl UpdateSafariBallsTextOnHealthbox
_08049F2E:
adds r0, r7, 0
subs r0, 0xA
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08049FC6
adds r0, r6, 0
bl UpdateLeftNoOfBallsTextOnHealthbox
b _08049FC6
.align 2, 0
_08049F44: .4byte gSprites
_08049F48: .4byte gUnknown_8253AE4
_08049F4C: .4byte gBaseStats
_08049F50:
cmp r7, 0x3
beq _08049F58
cmp r7, 0
bne _08049F6C
_08049F58:
mov r0, r8
movs r1, 0x38
bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl UpdateLvlInHealthbox
_08049F6C:
cmp r7, 0x5
beq _08049F74
cmp r7, 0
bne _08049FA8
_08049F74:
movs r0, 0
bl LoadBattleBarGfx
mov r0, r8
movs r1, 0x3A
bl GetMonData
adds r4, r0, 0
mov r0, r8
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
movs r0, 0
str r0, [sp]
mov r0, r9
adds r1, r6, 0
adds r2, r4, 0
bl SetBattleBarStruct
mov r0, r9
adds r1, r6, 0
movs r2, 0
movs r3, 0
bl sub_8049FD8
_08049FA8:
cmp r7, 0x4
beq _08049FB0
cmp r7, 0
bne _08049FB8
_08049FB0:
adds r0, r6, 0
mov r1, r8
bl sub_80496C0
_08049FB8:
cmp r7, 0x9
beq _08049FC0
cmp r7, 0
bne _08049FC6
_08049FC0:
adds r0, r6, 0
bl UpdateStatusIconInHealthbox
_08049FC6:
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 UpdateHealthboxAttribute
thumb_func_start sub_8049FD8
sub_8049FD8: @ 8049FD8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r2, 24
lsrs r2, 24
mov r9, r2
cmp r2, 0
bne _0804A024
ldr r0, _0804A020 @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0, 0xC]
mov r1, r8
lsls r5, r1, 2
adds r3, r5, r1
lsls r3, 2
adds r3, r0
ldr r0, [r3, 0x4]
ldr r1, [r3, 0x8]
ldr r2, [r3, 0xC]
adds r3, 0x10
movs r4, 0x6
str r4, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
bl sub_804A2F0
adds r4, r0, 0
adds r7, r5, 0
b _0804A080
.align 2, 0
_0804A020: .4byte gUnknown_2024018
_0804A024:
ldr r2, _0804A0D0 @ =gUnknown_2024018
mov r10, r2
ldr r0, [r2]
ldr r2, [r0, 0xC]
mov r0, r8
lsls r4, r0, 2
adds r0, r4, r0
lsls r6, r0, 2
adds r2, r6, r2
ldr r0, [r2, 0x8]
ldr r1, [r2, 0xC]
ldr r2, [r2, 0x4]
movs r3, 0x8
bl GetScaledExpFraction
lsls r0, 24
lsrs r5, r0, 24
adds r7, r4, 0
cmp r5, 0
bne _0804A04E
movs r5, 0x1
_0804A04E:
mov r1, r10
ldr r0, [r1]
ldr r0, [r0, 0xC]
adds r4, r6, r0
ldr r6, [r4, 0xC]
adds r0, r6, 0
adds r1, r5, 0
bl __divsi3
cmp r0, 0
bge _0804A066
negs r0, r0
_0804A066:
lsls r0, 16
lsrs r5, r0, 16
ldr r0, [r4, 0x4]
ldr r1, [r4, 0x8]
adds r3, r4, 0
adds r3, 0x10
movs r2, 0x8
str r2, [sp]
str r5, [sp, 0x4]
adds r2, r6, 0
bl sub_804A2F0
adds r4, r0, 0
_0804A080:
mov r2, r9
cmp r2, 0x1
beq _0804A09C
cmp r2, 0
bne _0804A0A4
ldr r0, _0804A0D0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0]
adds r0, r7, r0
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _0804A0A4
_0804A09C:
mov r0, r8
mov r1, r9
bl sub_804A0D4
_0804A0A4:
movs r0, 0x1
negs r0, r0
cmp r4, r0
bne _0804A0BE
ldr r0, _0804A0D0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0, 0xC]
mov r2, r8
adds r0, r7, r2
lsls r0, 2
adds r0, r1
movs r1, 0
str r1, [r0, 0x10]
_0804A0BE:
adds r0, r4, 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
_0804A0D0: .4byte gUnknown_2024018
thumb_func_end sub_8049FD8
thumb_func_start sub_804A0D4
sub_804A0D4: @ 804A0D4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
cmp r1, 0
beq _0804A0F0
cmp r1, 0x1
beq _0804A1D8
b _0804A2D6
_0804A0F0:
ldr r0, _0804A184 @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0, 0xC]
lsls r5, r6, 2
adds r3, r5, r6
lsls r3, 2
adds r3, r0
ldr r0, [r3, 0x4]
ldr r1, [r3, 0x8]
ldr r2, [r3, 0xC]
adds r3, 0x10
add r4, sp, 0x8
str r4, [sp]
movs r4, 0x6
str r4, [sp, 0x4]
bl sub_804A3C4
lsls r0, 24
lsrs r0, 24
movs r1, 0x3
mov r9, r1
adds r7, r5, 0
cmp r0, 0x18
bhi _0804A12C
movs r2, 0x38
mov r9, r2
cmp r0, 0x9
bls _0804A12C
movs r4, 0x2F
mov r9, r4
_0804A12C:
movs r5, 0
ldr r0, _0804A188 @ =gSprites
mov r8, r0
_0804A132:
ldr r0, _0804A184 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0, 0xC]
adds r0, r7, r6
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
ldrh r0, [r0, 0x38]
lsls r0, 24
lsrs r4, r0, 24
cmp r5, 0x1
bhi _0804A194
mov r0, r9
bl GetHealthboxElementGfxPtr
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
add r1, r8
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 22
adds r2, r5, 0x2
adds r1, r2
lsls r1, 5
ldr r2, _0804A18C @ =0x06010000
adds r1, r2
ldr r2, _0804A190 @ =0x04000008
bl CpuSet
b _0804A1C2
.align 2, 0
_0804A184: .4byte gUnknown_2024018
_0804A188: .4byte gSprites
_0804A18C: .4byte 0x06010000
_0804A190: .4byte 0x04000008
_0804A194:
mov r0, r9
bl GetHealthboxElementGfxPtr
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
add r1, r8
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 22
adds r1, r5, r1
lsls r1, 5
ldr r4, _0804A1D0 @ =0x06010040
adds r1, r4
ldr r2, _0804A1D4 @ =0x04000008
bl CpuSet
_0804A1C2:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _0804A132
b _0804A2D6
.align 2, 0
_0804A1D0: .4byte 0x06010040
_0804A1D4: .4byte 0x04000008
_0804A1D8:
ldr r0, _0804A27C @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0, 0xC]
lsls r5, r6, 2
adds r3, r5, r6
lsls r3, 2
adds r3, r0
ldr r0, [r3, 0x4]
ldr r1, [r3, 0x8]
ldr r2, [r3, 0xC]
adds r3, 0x10
add r4, sp, 0x8
str r4, [sp]
movs r4, 0x8
str r4, [sp, 0x4]
bl sub_804A3C4
ldr r1, _0804A280 @ =gBattlerPartyIndexes
lsls r0, r6, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0804A284 @ =gPlayerParty
adds r0, r1
movs r1, 0x38
bl GetMonData
lsls r0, 24
lsrs r0, 24
adds r7, r5, 0
cmp r0, 0x64
bne _0804A230
movs r5, 0
movs r1, 0
_0804A21E:
mov r0, sp
adds r0, r5
adds r0, 0x8
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0804A21E
_0804A230:
movs r5, 0
ldr r0, _0804A288 @ =gSprites
mov r8, r0
adds r0, r7, r6
lsls r4, r0, 2
_0804A23A:
cmp r5, 0x3
bhi _0804A294
movs r0, 0xC
bl GetHealthboxElementGfxPtr
mov r1, sp
adds r1, r5
adds r1, 0x8
ldrb r1, [r1]
lsls r1, 5
adds r0, r1
ldr r1, _0804A27C @ =gUnknown_2024018
ldr r1, [r1]
ldr r1, [r1, 0xC]
adds r1, r4, r1
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
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, _0804A28C @ =0x06010000
adds r1, r2
ldr r2, _0804A290 @ =0x04000008
bl CpuSet
b _0804A2CC
.align 2, 0
_0804A27C: .4byte gUnknown_2024018
_0804A280: .4byte gBattlerPartyIndexes
_0804A284: .4byte gPlayerParty
_0804A288: .4byte gSprites
_0804A28C: .4byte 0x06010000
_0804A290: .4byte 0x04000008
_0804A294:
movs r0, 0xC
bl GetHealthboxElementGfxPtr
mov r1, sp
adds r1, r5
adds r1, 0x8
ldrb r1, [r1]
lsls r1, 5
adds r0, r1
ldr r1, _0804A2E4 @ =gUnknown_2024018
ldr r1, [r1]
ldr r1, [r1, 0xC]
adds r1, r4, r1
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 22
adds r1, r5, r1
lsls r1, 5
ldr r2, _0804A2E8 @ =0x06010b80
adds r1, r2
ldr r2, _0804A2EC @ =0x04000008
bl CpuSet
_0804A2CC:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0804A23A
_0804A2D6:
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804A2E4: .4byte gUnknown_2024018
_0804A2E8: .4byte 0x06010b80
_0804A2EC: .4byte 0x04000008
thumb_func_end sub_804A0D4
thumb_func_start sub_804A2F0
sub_804A2F0: @ 804A2F0
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, _0804A31C @ =0xffff8000
cmp r1, r0
bne _0804A322
cmp r7, r2
bge _0804A320
lsls r0, r4, 8
str r0, [r5]
b _0804A322
.align 2, 0
_0804A31C: .4byte 0xffff8000
_0804A320:
str r4, [r5]
_0804A322:
mov r0, r8
subs r4, r0
cmp r4, 0
bge _0804A32E
movs r4, 0
b _0804A334
_0804A32E:
cmp r4, r7
ble _0804A334
adds r4, r7, 0
_0804A334:
cmp r7, r2
bge _0804A350
ldr r0, [r5]
asrs r1, r0, 8
adds r6, r0, 0
cmp r4, r1
bne _0804A35C
movs r0, 0xFF
ands r0, r6
cmp r0, 0
bne _0804A35C
movs r0, 0x1
negs r0, r0
b _0804A3B8
_0804A350:
ldr r6, [r5]
cmp r4, r6
bne _0804A35C
movs r0, 0x1
negs r0, r0
b _0804A3B8
_0804A35C:
cmp r7, r2
bge _0804A396
lsls r0, r7, 8
adds r1, r2, 0
bl __divsi3
mov r1, r8
cmp r1, 0
bge _0804A37A
adds r0, r6, r0
str r0, [r5]
asrs r2, r0, 8
cmp r2, r4
blt _0804A3B6
b _0804A38E
_0804A37A:
subs r0, r6, r0
str r0, [r5]
asrs r2, r0, 8
movs r1, 0xFF
ands r0, r1
cmp r0, 0
ble _0804A38A
adds r2, 0x1
_0804A38A:
cmp r2, r4
bgt _0804A3B6
_0804A38E:
lsls r0, r4, 8
str r0, [r5]
adds r2, r4, 0
b _0804A3B6
_0804A396:
mov r0, r8
cmp r0, 0
bge _0804A3A8
ldr r0, [r5]
adds r0, r3
str r0, [r5]
cmp r0, r4
ble _0804A3B4
b _0804A3B2
_0804A3A8:
ldr r0, [r5]
subs r0, r3
str r0, [r5]
cmp r0, r4
bge _0804A3B4
_0804A3B2:
str r4, [r5]
_0804A3B4:
ldr r2, [r5]
_0804A3B6:
adds r0, r2, 0
_0804A3B8:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_804A2F0
thumb_func_start sub_804A3C4
sub_804A3C4: @ 804A3C4
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 _0804A3DC
movs r5, 0
b _0804A3E2
_0804A3DC:
cmp r5, r4
ble _0804A3E2
adds r5, r4, 0
_0804A3E2:
lsls r0, r6, 27
lsrs r3, r0, 24
movs r1, 0
cmp r1, r6
bcs _0804A3FC
movs r2, 0
_0804A3EE:
adds r0, r7, r1
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r6
bcc _0804A3EE
_0804A3FC:
cmp r4, r3
bge _0804A410
mov r1, r12
ldr r0, [r1]
muls r0, r3
adds r1, r4, 0
bl __divsi3
asrs r0, 8
b _0804A41C
_0804A410:
mov r1, r12
ldr r0, [r1]
muls r0, r3
adds r1, r4, 0
bl __divsi3
_0804A41C:
lsls r0, 24
lsrs r2, r0, 24
adds r3, r2, 0
cmp r3, 0
bne _0804A432
cmp r5, 0
ble _0804A432
movs r0, 0x1
strb r0, [r7]
movs r3, 0x1
b _0804A456
_0804A432:
movs r1, 0
movs r4, 0x8
_0804A436:
cmp r1, r6
bcs _0804A456
cmp r2, 0x7
bls _0804A452
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 _0804A436
_0804A452:
adds r0, r7, r1
strb r2, [r0]
_0804A456:
adds r0, r3, 0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_804A3C4
thumb_func_start sub_804A460
sub_804A460: @ 804A460
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x8
mov r9, r0
mov r10, r1
adds r6, r2, 0
mov r8, r3
ldr r5, [sp, 0x24]
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r5, 24
lsrs r5, 24
mov r1, r9
ldr r0, [r1]
ldr r1, [r1, 0x4]
mov r3, r9
ldr r2, [r3, 0x8]
movs r3, 0x6
str r3, [sp]
movs r3, 0x1
str r3, [sp, 0x4]
mov r3, r10
bl sub_804A2F0
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
str r5, [sp]
mov r0, r9
mov r1, r10
adds r2, r6, 0
mov r3, r8
bl sub_804A510
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_804A460
thumb_func_start sub_804A4C8
sub_804A4C8: @ 804A4C8
push {r4,lr}
sub sp, 0x8
adds r3, r1, 0
ldr r4, [r0]
ldr r1, [r0, 0x4]
ldr r2, [r0, 0x8]
movs r0, 0x6
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_804A2F0
lsls r0, 16
asrs r0, 16
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_804A4C8
thumb_func_start sub_804A4F0
sub_804A4F0: @ 804A4F0
push {r4,lr}
sub sp, 0x4
ldr r4, [sp, 0xC]
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
str r4, [sp]
bl sub_804A510
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_804A4F0
thumb_func_start sub_804A510
sub_804A510: @ 804A510
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [sp, 0x40]
lsls r2, 24
lsrs r2, 24
mov r9, r2
lsls r3, 24
lsrs r3, 24
mov r10, r3
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, [r4]
ldr r1, [r4, 0x4]
ldr r2, [r4, 0x8]
add r3, sp, 0xC
str r3, [sp]
movs r3, 0x6
str r3, [sp, 0x4]
adds r3, r5, 0
bl sub_804A3C4
movs r3, 0
add r6, sp, 0x14
adds r7, r6, 0
ldrb r0, [r4, 0xC]
lsls r5, r0, 27
ldr r4, [r4, 0x10]
_0804A554:
lsls r2, r3, 1
adds r2, r7, r2
lsrs r1, r5, 15
mov r0, sp
adds r0, r3
adds r0, 0xC
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 _0804A554
movs r0, 0x6
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
mov r0, r9
adds r1, r6, 0
mov r2, r10
mov r3, r8
bl CopyToBgTilemapBufferRect_ChangePalette
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804A510
thumb_func_start GetScaledExpFraction
GetScaledExpFraction: @ 804A59C
push {r4-r7,lr}
adds r6, r2, 0
lsls r3, 27
lsrs r7, r3, 24
subs r5, r0, r1
cmp r5, 0
bge _0804A5AE
movs r5, 0
b _0804A5B4
_0804A5AE:
cmp r5, r6
ble _0804A5B4
adds r5, r6, 0
_0804A5B4:
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 _0804A5DC
negs r0, r0
_0804A5DC:
lsls r0, 24
lsrs r0, 24
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetScaledExpFraction
thumb_func_start GetScaledHPFraction
GetScaledHPFraction: @ 804A5E8
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 _0804A60C
cmp r4, 0
ble _0804A60C
movs r0, 0x1
_0804A60C:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetScaledHPFraction
thumb_func_start GetHPBarLevel
GetHPBarLevel: @ 804A614
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
cmp r0, r1
bne _0804A626
movs r0, 0x4
b _0804A642
_0804A626:
movs r2, 0x30
bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x3
cmp r1, 0x18
bhi _0804A642
movs r0, 0x2
cmp r1, 0x9
bhi _0804A642
negs r0, r1
orrs r0, r1
lsrs r0, 31
_0804A642:
pop {r1}
bx r1
thumb_func_end GetHPBarLevel
thumb_func_start AddTextPrinterAndCreateWindowOnHealthbox
AddTextPrinterAndCreateWindowOnHealthbox: @ 804A648
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x20
mov r9, r0
adds r6, r1, 0
mov r8, r2
mov r10, r3
ldr r0, _0804A6D4 @ =gUnknown_8260564
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
add r0, sp, 0x18
bl AddWindow
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
lsls r5, r4, 24
lsrs r5, 24
adds r0, r5, 0
movs r1, 0x22
bl FillWindowPixelBuffer
add r1, sp, 0x14
movs r2, 0
movs r0, 0x2
strb r0, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r0, 0x3
strb r0, [r1, 0x2]
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
str r2, [sp]
str r2, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0xC]
mov r0, r9
str r0, [sp, 0x10]
adds r0, r5, 0
movs r1, 0
adds r2, r6, 0
mov r3, r8
bl AddTextPrinterParametrized2
mov r0, r10
str r4, [r0]
adds r0, r5, 0
movs r1, 0x7
bl GetWindowAttribute
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0804A6D4: .4byte gUnknown_8260564
thumb_func_end AddTextPrinterAndCreateWindowOnHealthbox
thumb_func_start sub_804A6D8
sub_804A6D8: @ 804A6D8
push {lr}
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
pop {r0}
bx r0
thumb_func_end sub_804A6D8
thumb_func_start sub_804A6E8
sub_804A6E8: @ 804A6E8
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
movs r1, 0x80
lsls r1, 1
adds r0, r5, r1
adds r1, r6, r1
lsls r2, r4, 3
ldr r3, _0804A72C @ =0x001fffff
ands r2, r3
movs r3, 0x80
lsls r3, 19
orrs r2, r3
bl CpuSet
cmp r4, 0
ble _0804A724
_0804A70C:
adds r0, r5, 0
adds r0, 0x14
adds r1, r6, 0
adds r1, 0x14
ldr r2, _0804A730 @ =0x04000003
bl CpuSet
adds r6, 0x20
adds r5, 0x20
subs r4, 0x1
cmp r4, 0
bne _0804A70C
_0804A724:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804A72C: .4byte 0x001fffff
_0804A730: .4byte 0x04000003
thumb_func_end sub_804A6E8
thumb_func_start sub_804A734
sub_804A734: @ 804A734
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
lsls r4, r2, 3
ldr r0, _0804A768 @ =0x001fffff
ands r4, r0
movs r0, 0x80
lsls r0, 19
orrs r4, r0
adds r0, r5, 0
adds r1, r6, 0
adds r2, r4, 0
bl CpuSet
movs r0, 0x80
lsls r0, 1
adds r5, r0
adds r6, r0
adds r0, r5, 0
adds r1, r6, 0
adds r2, r4, 0
bl CpuSet
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804A768: .4byte 0x001fffff
thumb_func_end sub_804A734
.align 2, 0 @ Don't pad with nop.