summaryrefslogtreecommitdiff
path: root/asm/battle_interface.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_interface.s')
-rwxr-xr-xasm/battle_interface.s5734
1 files changed, 5734 insertions, 0 deletions
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
new file mode 100755
index 000000000..fb6a48194
--- /dev/null
+++ b/asm/battle_interface.s
@@ -0,0 +1,5734 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8072304
+sub_8072304: @ 8072304
+ movs r0, 0x9
+ bx lr
+ thumb_func_end sub_8072304
+
+ thumb_func_start sub_8072308
+sub_8072308: @ 8072308
+ 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
+_08072324:
+ 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 _08072324
+ movs r3, 0x3
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r8, sp
+_08072344:
+ lsls r0, r5, 16
+ asrs r6, r0, 16
+ cmp r6, 0
+ ble _08072372
+ 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 _08072344
+_08072372:
+ lsls r1, r3, 24
+ asrs r0, r1, 24
+ cmp r0, r9
+ ble _08072396
+ movs r4, 0xFF
+ movs r3, 0x1
+ negs r3, r3
+_08072380:
+ 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 _08072380
+_08072396:
+ mov r1, r8
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0xFF
+ bne _080723A2
+ movs r0, 0
+ strb r0, [r1, 0x3]
+_080723A2:
+ mov r2, r10
+ cmp r2, 0
+ bne _08072432
+ movs r3, 0
+ movs r1, 0
+ movs r6, 0xFC
+ lsls r6, 8
+ movs r5, 0x1E
+ mov r12, r5
+_080723B4:
+ lsls r1, 24
+ asrs r2, r1, 24
+ mov r0, sp
+ adds r5, r0, r2
+ ldrb r0, [r5]
+ mov r8, r1
+ cmp r0, 0xFF
+ bne _080723EA
+ 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 _0807241A
+_080723EA:
+ 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
+_0807241A:
+ 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 _080723B4
+ b _08072496
+_08072432:
+ movs r3, 0
+ movs r4, 0xFC
+ lsls r4, 8
+ movs r6, 0x1E
+_0807243A:
+ 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 _08072466
+ 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 _08072488
+_08072466:
+ 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]
+_08072488:
+ movs r5, 0x80
+ lsls r5, 17
+ adds r0, r3, r5
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0807243A
+_08072496:
+ 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_8072308
+
+ thumb_func_start sub_80724A8
+sub_80724A8: @ 80724A8
+ 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_8072308
+ lsls r4, 16
+ asrs r4, 16
+ adds r5, 0xA
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8072308
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80724A8
+
+ thumb_func_start battle_make_oam_normal_battle
+battle_make_oam_normal_battle: @ 80724DC
+ 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 _080725F0
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072574
+ ldr r4, =gUnknown_0832C140
+ 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, =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, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ b _080725BA
+ .pool
+_08072574:
+ ldr r4, =gUnknown_0832C170
+ 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, =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, =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ movs r0, 0x2
+ str r0, [sp]
+_080725BA:
+ ldr r2, =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, =sub_8072924
+ str r1, [r0]
+ b _08072718
+ .pool
+_080725F0:
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072694
+ 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, =gUnknown_0832C140
+ 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, =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, =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ mov r5, r8
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, =sub_8072924
+ str r0, [r2]
+ movs r0, 0x1
+ b _08072716
+ .pool
+_08072694:
+ 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, =gUnknown_0832C170
+ 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, =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, =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ mov r5, r8
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, =sub_8072924
+ str r0, [r2]
+ movs r0, 0x2
+_08072716:
+ str r0, [sp]
+_08072718:
+ ldr r0, =gBanksBySide
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gUnknown_0832C1C0
+ 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, =gSprites
+ mov r8, r1
+ add r4, r8
+ mov r0, r10
+ bl GetBankSide
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 21
+ ldr r0, =gUnknown_0832C28C
+ 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_80728A4
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, =0x06010000
+ adds r1, r2
+ ldr r2, =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
+ .pool
+ thumb_func_end battle_make_oam_normal_battle
+
+ thumb_func_start battle_make_oam_safari_battle
+battle_make_oam_safari_battle: @ 8072804
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, =gUnknown_0832C1A0
+ 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, =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, =0x000003ff
+ adds r1, r7, 0
+ ands r2, r1
+ ldr r1, =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, =sub_8072924
+ str r0, [r3]
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end battle_make_oam_safari_battle
+
+ thumb_func_start sub_80728A4
+sub_80728A4: @ 80728A4
+ lsls r0, 24
+ lsrs r0, 19
+ ldr r1, =gUnknown_08C11BDC
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_80728A4
+
+ thumb_func_start sub_80728B4
+sub_80728B4: @ 80728B4
+ 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 _080728E4
+ cmp r0, 0x1
+ bgt _080728F8
+ cmp r0, 0
+ bne _080728F8
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x10
+ b _08072906
+ .pool
+_080728E4:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x10
+ b _08072906
+ .pool
+_080728F8:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x8
+_08072906:
+ 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
+ .pool
+ thumb_func_end sub_80728B4
+
+ thumb_func_start sub_8072924
+sub_8072924: @ 8072924
+ ldrh r1, [r0, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, =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
+ .pool
+ thumb_func_end sub_8072924
+
+ thumb_func_start sub_807294C
+sub_807294C: @ 807294C
+ push {r4-r7,lr}
+ ldr r7, [sp, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, =gUnknown_020244D0
+ 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, =0xffff8000
+ str r0, [r4, 0x10]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_807294C
+
+ thumb_func_start sub_8072984
+sub_8072984: @ 8072984
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =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
+ .pool
+ thumb_func_end sub_8072984
+
+ thumb_func_start sub_80729D0
+sub_80729D0: @ 80729D0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =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
+ .pool
+ thumb_func_end sub_80729D0
+
+ thumb_func_start sub_8072A24
+sub_8072A24: @ 8072A24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =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
+ .pool
+ thumb_func_end sub_8072A24
+
+ thumb_func_start sub_8072A44
+sub_8072A44: @ 8072A44
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =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
+ .pool
+ thumb_func_end sub_8072A44
+
+ thumb_func_start nullsub_30
+nullsub_30: @ 8072A84
+ bx lr
+ thumb_func_end nullsub_30
+
+ thumb_func_start sub_8072A88
+sub_8072A88: @ 8072A88
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ ldr r1, =gNoOfAllBanks
+ mov r8, r1
+ ldrb r2, [r1]
+ cmp r6, r2
+ bge _08072B00
+ ldr r1, =gSprites
+ mov r12, r1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r7, 0xD
+ negs r7, r7
+ ldr r2, =gHealthBoxesIds
+ mov r9, r2
+_08072AB2:
+ 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 _08072AB2
+_08072B00:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8072A88
+
+ thumb_func_start sub_8072B18
+sub_8072B18: @ 8072B18
+ 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 _08072B44
+ adds r0, r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072B3E
+ movs r5, 0x2C
+ movs r4, 0x1E
+ b _08072B7C
+_08072B3E:
+ movs r5, 0x9E
+ movs r4, 0x58
+ b _08072B7C
+_08072B44:
+ adds r0, r6, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08072B72
+ cmp r0, 0x1
+ bgt _08072B5C
+ cmp r0, 0
+ beq _08072B66
+ b _08072B7C
+_08072B5C:
+ cmp r0, 0x2
+ beq _08072B6C
+ cmp r0, 0x3
+ beq _08072B78
+ b _08072B7C
+_08072B66:
+ movs r5, 0x9F
+ movs r4, 0x4C
+ b _08072B7C
+_08072B6C:
+ movs r5, 0xAB
+ movs r4, 0x65
+ b _08072B7C
+_08072B72:
+ movs r5, 0x2C
+ movs r4, 0x13
+ b _08072B7C
+_08072B78:
+ movs r5, 0x20
+ movs r4, 0x2C
+_08072B7C:
+ ldr r0, =gHealthBoxesIds
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8072A24
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8072B18
+
+ thumb_func_start healthbar_draw_level
+healthbar_draw_level: @ 8072B94
+ push {r4,r5,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ add r2, sp, 0x4
+ movs r0, 0xF9
+ strb r0, [r2]
+ movs r0, 0x5
+ strb r0, [r2, 0x1]
+ mov r0, sp
+ adds r0, 0x6
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r1, r0, 0
+ subs r1, 0x2
+ add r0, sp, 0x4
+ subs r1, r0
+ movs r0, 0x3
+ subs r0, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ add r0, sp, 0x14
+ str r0, [sp]
+ add r0, sp, 0x4
+ movs r2, 0x3
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r5, r0, 0
+ ldr r0, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ 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 _08072C18
+ bl battle_type_is_double
+ lsls r0, 24
+ ldr r2, =0x06010420
+ adds r1, r4, r2
+ cmp r0, 0
+ bne _08072C1C
+ ldr r0, =0x06010820
+ adds r1, r4, r0
+ b _08072C1C
+ .pool
+_08072C18:
+ ldr r2, =0x06010400
+ adds r1, r4, r2
+_08072C1C:
+ adds r0, r1, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl sub_8075198
+ ldr r0, [sp, 0x14]
+ bl sub_807512C
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end healthbar_draw_level
+
+ thumb_func_start heathbar_draw_hp
+heathbar_draw_hp: @ 8072C38
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, =gSprites
+ lsls r0, r7, 4
+ adds r0, r7
+ 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 _08072D10
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072D10
+ ldrh r0, [r4, 0x4]
+ lsls r0, 22
+ lsrs r5, r0, 17
+ mov r0, r8
+ cmp r0, 0
+ beq _08072CB8
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ add r0, sp, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r0, sp, 0x24
+ str r0, [sp]
+ add r0, sp, 0x4
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r4, r0, 0
+ ldr r1, =0x06010b40
+ adds r0, r5, r1
+ adds r1, r4, 0
+ b _08072CF8
+ .pool
+_08072CB8:
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ add r0, sp, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r1, sp, 0x4
+ movs r0, 0xBA
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ add r0, sp, 0x24
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0x4
+ movs r2, 0x5
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r4, r0, 0
+ ldr r1, =0x060103e0
+ adds r0, r5, r1
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8075170
+ ldr r2, =0x06010b00
+ adds r0, r5, r2
+ adds r1, r4, 0
+ adds r1, 0x20
+_08072CF8:
+ movs r2, 0x2
+ bl sub_8075170
+ ldr r0, [sp, 0x24]
+ bl sub_807512C
+ b _08072DEA
+ .pool
+_08072D10:
+ ldr r1, =gUnknown_0832C3C4
+ add r0, sp, 0x4
+ movs r2, 0x14
+ bl memcpy
+ ldr r1, =gSprites
+ lsls r4, r7, 4
+ adds r0, r4, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r4
+ cmp r0, 0x1
+ beq _08072D46
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08072D60
+_08072D46:
+ mov r0, r9
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r7, 0
+ mov r2, r8
+ bl sub_8072E0C
+ b _08072DEA
+ .pool
+_08072D60:
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072D7C
+ movs r6, 0x59
+ mov r1, r8
+ cmp r1, 0
+ bne _08072D86
+ movs r6, 0x1D
+ b _08072D86
+_08072D7C:
+ movs r6, 0x30
+ mov r2, r8
+ cmp r2, 0
+ bne _08072D86
+ movs r6, 0x14
+_08072D86:
+ mov r0, sp
+ adds r0, 0xA
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gBattleSpritesGfx
+ ldr r0, [r0]
+ movs r1, 0xBA
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x9
+ add r2, sp, 0x4
+ bl RenderTextFont9
+ movs r4, 0
+ ldr r1, =gSprites
+ mov r2, r10
+ adds r0, r2, r7
+ lsls r0, 2
+ adds r5, r0, r1
+_08072DB8:
+ ldr r0, =gBattleSpritesGfx
+ ldr r0, [r0]
+ movs r1, 0xBA
+ lsls r1, 1
+ adds r0, r1
+ lsls r1, r4, 6
+ adds r1, 0x20
+ ldr r0, [r0]
+ adds r0, r1
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r1, r6
+ adds r1, r4
+ lsls r1, 5
+ ldr r2, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08072DB8
+_08072DEA:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end heathbar_draw_hp
+
+ thumb_func_start sub_8072E0C
+sub_8072E0C: @ 8072E0C
+ 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 r4, r1, 16
+ mov r10, r4
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r5, =gSprites
+ lsls r0, 4
+ add r0, r9
+ lsls r0, 2
+ adds r7, r0, r5
+ ldrh r0, [r7, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072F28
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ movs r2, 0x3A
+ ldrsh r0, [r7, r2]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08072E5E
+ b _080730B8
+_08072E5E:
+ movs r3, 0x38
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r5, r0, 17
+ ldr r0, =0x06010000
+ adds r6, r5, r0
+ mov r0, r8
+ cmp r0, 0
+ beq _08072EDC
+ lsls r1, r4, 16
+ asrs r1, 16
+ add r0, sp, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r0, sp, 0x28
+ str r0, [sp]
+ add r0, sp, 0x4
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl write_to_rbox
+ adds r4, r0, 0
+ ldr r1, =0x060100c0
+ adds r0, r5, r1
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl sub_8075170
+ ldr r0, [sp, 0x28]
+ bl sub_807512C
+ movs r0, 0x74
+ bl sub_80728A4
+ ldrh r1, [r7, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, =0x06010680
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _080730B8
+ .pool
+_08072EDC:
+ lsls r1, r4, 16
+ asrs r1, 16
+ add r0, sp, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r1, sp, 0x4
+ movs r0, 0xBA
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ add r0, sp, 0x28
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0x4
+ movs r2, 0x5
+ movs r3, 0
+ bl write_to_rbox
+ adds r4, r0, 0
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x3
+ bl sub_807513C
+ ldr r3, =0x06010060
+ adds r0, r5, r3
+ adds r1, r4, 0
+ movs r2, 0x3
+ bl sub_8075170
+ ldr r0, [sp, 0x28]
+ bl sub_807512C
+ b _080730B8
+ .pool
+_08072F28:
+ ldr r1, =gUnknown_0832C3D8
+ add r0, sp, 0x4
+ movs r2, 0x14
+ bl memcpy
+ ldrh r0, [r7, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x2C]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldr r2, [sp, 0x2C]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08072F52
+ b _080730B8
+_08072F52:
+ movs r6, 0x4
+ mov r3, r8
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ ands r6, r0
+ ldrh r0, [r7, 0x38]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, sp
+ adds r0, 0xA
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r3, r8
+ cmp r3, 0
+ bne _08072F82
+ ldr r1, =gText_Slash
+ bl StringCopy
+_08072F82:
+ ldr r0, =gBattleSpritesGfx
+ ldr r0, [r0]
+ movs r1, 0xBA
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x9
+ add r2, sp, 0x4
+ bl RenderTextFont9
+ adds r4, r6, 0
+ adds r0, r4, 0x3
+ cmp r4, r0
+ bge _08073024
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r5, r0, r5
+_08072FA6:
+ cmp r4, 0x2
+ bhi _08072FF0
+ ldr r0, =gBattleSpritesGfx
+ ldr r0, [r0]
+ movs r2, 0xBA
+ lsls r2, 1
+ adds r0, r2
+ 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 r3, =0x06010000
+ adds r1, r3
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _0807301A
+ .pool
+_08072FF0:
+ ldr r0, =gBattleSpritesGfx
+ 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 r1, r4, r1
+ lsls r1, 5
+ ldr r2, =0x06010020
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ adds r4, 0x1
+_0807301A:
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0x3
+ cmp r4, r0
+ blt _08072FA6
+_08073024:
+ mov r3, r8
+ cmp r3, 0
+ bne _08073084
+ ldr r0, =gBattleSpritesGfx
+ ldr r0, [r0]
+ movs r1, 0xBA
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ adds r0, 0xE0
+ ldr r1, =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, =0x06010000
+ adds r1, r5
+ ldr r2, =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, =0x05000008
+ bl CpuSet
+ b _080730B8
+ .pool
+_08073084:
+ ldr r0, [sp, 0x2C]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080730B8
+ movs r0, 0x74
+ bl sub_80728A4
+ ldr r2, =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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_080730B8:
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8072E0C
+
+ thumb_func_start sub_80730D4
+sub_80730D4: @ 80730D4
+ 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, =gUnknown_0832C3C4
+ mov r0, sp
+ movs r2, 0x14
+ bl memcpy
+ ldr r1, =gSprites
+ 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 GetBankIdentity
+ ldr r1, =gBattleSpritesGfx
+ 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, 0x6
+ ldr r1, =gNatureNamePointers
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r6, 0
+ movs r1, 0x9
+ mov r2, sp
+ bl RenderTextFont9
+ movs r7, 0x6
+ movs r5, 0
+ mov r2, sp
+ adds r2, 0x9
+ str r2, [sp, 0x1C]
+_08073158:
+ mov r3, sp
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ subs r0, 0x37
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _08073176
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _0807318C
+_08073176:
+ movs r0, 0x2C
+ b _080731AA
+ .pool
+_0807318C:
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080731A4
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080731A8
+_080731A4:
+ movs r0, 0x2D
+ b _080731AA
+_080731A8:
+ movs r0, 0x2B
+_080731AA:
+ bl sub_80728A4
+ lsls r1, r5, 6
+ adds r1, r6, r1
+ ldr r2, =0x04000008
+ bl CpuSet
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, 0x1
+ cmp r5, r8
+ bcc _08073158
+ movs r7, 0x1
+ ldr r0, [sp, 0x14]
+ lsls r0, 4
+ str r0, [sp, 0x18]
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+ cmp r7, r9
+ bge _08073236
+ ldr r1, =gSprites
+ ldr r2, =0x04000008
+ mov r10, r2
+ ldr r3, [sp, 0x14]
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ mov r8, r0
+_080731E6:
+ mov r1, r8
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r5, r7, 0
+ cmp r7, 0
+ bge _080731F6
+ adds r5, r7, 0x7
+_080731F6:
+ 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, =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, =0x06010000
+ adds r1, r0, r2
+ adds r0, r6, 0
+ mov r2, r10
+ bl CpuSet
+ adds r6, 0x20
+ adds r7, 0x1
+ cmp r7, r9
+ blt _080731E6
+_08073236:
+ ldr r6, =gSprites
+ ldr r3, [sp, 0x18]
+ ldr r1, [sp, 0x14]
+ adds r0, r3, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r4, [r0, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gBattleStruct
+ ldr r0, [r5]
+ adds r0, 0x7C
+ ldrb r1, [r0]
+ mov r0, sp
+ adds r0, 0x6
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r5]
+ adds r0, 0x7B
+ ldrb r1, [r0]
+ 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]
+ ldr r5, =gBattleSpritesGfx
+ ldr r0, [r5]
+ movs r2, 0xBA
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x9
+ mov r2, sp
+ bl RenderTextFont9
+ movs r7, 0
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r6, r0, r6
+ movs r4, 0x20
+_08073296:
+ cmp r7, 0x1
+ bgt _080732D4
+ 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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _080732F4
+ .pool
+_080732D4:
+ 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, =0x060100c0
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_080732F4:
+ adds r4, 0x40
+ adds r7, 0x1
+ cmp r7, 0x4
+ ble _08073296
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80730D4
+
+ thumb_func_start sub_8073314
+sub_8073314: @ 8073314
+ 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, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r9, r0
+ blt _0807332E
+ b _080735BA
+_0807332E:
+ ldr r1, =gSprites
+ mov r10, r1
+ ldr r2, =gBattlePartyID
+ mov r8, r2
+_08073336:
+ ldr r0, =gHealthBoxesIds
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ beq _08073354
+ b _080735A8
+_08073354:
+ 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 _0807336A
+ b _080735A8
+_0807336A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073382
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073382
+ b _080735A8
+_08073382:
+ ldr r5, =gUnknown_020244D0
+ 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 _080734B0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080733D0
+ b _080735A8
+_080733D0:
+ ldr r0, =gBattleTypeFlags
+ ldr r2, [r0]
+ movs r0, 0x80
+ ands r2, r0
+ cmp r2, 0
+ beq _080733DE
+ b _080735A8
+_080733DE:
+ cmp r4, 0x1
+ bne _08073468
+ 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, =0x06010000
+ adds r1, r2
+ mov r0, sp
+ ldr r2, =0x05000040
+ bl CpuSet
+ ldrb r4, [r6]
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r2, 0x64
+ muls r0, r2
+ ldr r1, =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_8072E0C
+ ldrb r4, [r6]
+ mov r2, r8
+ ldrh r0, [r2]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, =gPlayerParty
+ b _08073536
+ .pool
+_08073468:
+ ldrb r0, [r6]
+ bl draw_status_ailment_maybe
+ ldrb r0, [r6]
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r2, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0x5
+ bl healthbar_draw_field_maybe
+ movs r0, 0x75
+ bl sub_80728A4
+ 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, =0x06010680
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _08073592
+ .pool
+_080734B0:
+ cmp r4, 0x1
+ bne _0807355C
+ ldr r0, =gBattleTypeFlags
+ ldr r2, [r0]
+ movs r0, 0x80
+ ands r2, r0
+ cmp r2, 0
+ beq _080734DC
+ ldrb r0, [r6]
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r2, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ bl sub_80730D4
+ b _08073592
+ .pool
+_080734DC:
+ 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, =0x06010000
+ adds r1, r0
+ mov r0, sp
+ ldr r2, =0x05000040
+ bl CpuSet
+ ldrb r4, [r6]
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r2, 0x64
+ muls r0, r2
+ ldr r1, =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_8072E0C
+ ldrb r4, [r6]
+ mov r2, r8
+ ldrh r0, [r2]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, =gEnemyParty
+_08073536:
+ 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_8072E0C
+ b _08073592
+ .pool
+_0807355C:
+ ldrb r0, [r6]
+ bl draw_status_ailment_maybe
+ ldrb r0, [r6]
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r5, 0x64
+ muls r1, r5
+ ldr r4, =gEnemyParty
+ adds r1, r4
+ movs r2, 0x5
+ bl healthbar_draw_field_maybe
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08073592
+ ldrb r0, [r6]
+ mov r2, r8
+ ldrh r1, [r2]
+ muls r1, r5
+ adds r1, r4
+ movs r2, 0x4
+ bl healthbar_draw_field_maybe
+_08073592:
+ ldr r0, =gHealthBoxesIds
+ 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]
+_080735A8:
+ movs r0, 0x2
+ add r8, r0
+ movs r1, 0x1
+ add r9, r1
+ ldr r0, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r9, r0
+ bge _080735BA
+ b _08073336
+_080735BA:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8073314
+
+ thumb_func_start sub_80735DC
+sub_80735DC: @ 80735DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ 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 _0807360C
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0807365C
+_0807360C:
+ ldr r0, [sp, 0x8]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073630
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0x88
+ movs r4, 0x60
+ movs r1, 0x64
+ mov r10, r1
+ ldr r2, =0x0000fffb
+ mov r8, r2
+ b _0807366C
+ .pool
+_08073630:
+ movs r3, 0x1
+ mov r9, r3
+ cmp r4, 0
+ beq _08073642
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073648
+_08073642:
+ movs r5, 0x68
+ movs r4, 0x28
+ b _0807364C
+_08073648:
+ movs r5, 0x68
+ movs r4, 0x10
+_0807364C:
+ ldr r6, =0x0000ff9c
+ mov r10, r6
+ movs r0, 0x5
+ mov r8, r0
+ b _0807366C
+ .pool
+_0807365C:
+ movs r1, 0x1
+ mov r9, r1
+ movs r5, 0x68
+ movs r4, 0x28
+ ldr r2, =0x0000ff9c
+ mov r10, r2
+ movs r3, 0x5
+ mov r8, r3
+_0807366C:
+ ldr r0, =gUnknown_0832C334
+ bl LoadCompressedObjectPicUsingHeap
+ ldr r0, =gUnknown_0832C34C
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_0832C33C
+ bl LoadSpritePalette
+ ldr r0, =gUnknown_0832C344
+ bl LoadSpritePalette
+ mov r0, r9
+ lsls r6, r0, 1
+ adds r0, r6, r0
+ lsls r0, 3
+ ldr r1, =gUnknown_0832C364
+ adds r0, r1
+ lsls r5, 16
+ asrs r1, r5, 16
+ lsls r4, 16
+ asrs r2, r4, 16
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ lsls r0, 4
+ ldr r1, [sp, 0x14]
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r7, r0, r1
+ ldr r1, =gUnknown_0832C2C4
+ adds r0, r7, 0
+ bl SetSubspriteTables
+ mov r2, r10
+ strh r2, [r7, 0x24]
+ mov r3, r8
+ strh r3, [r7, 0x2E]
+ str r5, [sp, 0x1C]
+ str r4, [sp, 0x20]
+ mov r5, r9
+ cmp r5, 0
+ beq _08073700
+ ldrh r0, [r7, 0x20]
+ subs r0, 0x60
+ strh r0, [r7, 0x20]
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r7, 0x3]
+ b _08073706
+ .pool
+_08073700:
+ ldrh r0, [r7, 0x20]
+ adds r0, 0x60
+ strh r0, [r7, 0x20]
+_08073706:
+ movs r0, 0
+ mov r8, r0
+ ldr r1, =gSprites
+ mov r10, r1
+ mov r7, sp
+ mov r2, r9
+ adds r0, r6, r2
+ lsls r0, 3
+ str r0, [sp, 0x18]
+ movs r6, 0xA
+ movs r5, 0
+_0807371C:
+ ldr r0, =gUnknown_0832C394
+ ldr r3, [sp, 0x20]
+ ldr r1, =0xfffc0000
+ adds r2, r3, r1
+ ldr r3, [sp, 0x18]
+ adds r0, r3, r0
+ ldr r3, [sp, 0x1C]
+ asrs r1, r3, 16
+ asrs r2, 16
+ movs r3, 0x9
+ bl CreateSpriteAtEnd
+ strb r0, [r7]
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _0807374C
+ ldrb r0, [r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, =gSprites + 0x1C
+ adds r1, r2
+ ldr r0, =sub_80741C8
+ str r0, [r1]
+_0807374C:
+ ldr r4, =gSprites
+ mov r3, r9
+ cmp r3, 0
+ bne _0807376E
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ strh r3, [r0, 0x24]
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, r9
+ strh r1, [r0, 0x26]
+_0807376E:
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0
+ mov r2, sp
+ ldrh r2, [r2, 0x14]
+ strh r2, [r0, 0x2E]
+ mov r3, r9
+ cmp r3, 0
+ bne _080737C8
+ ldrb r0, [r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x18
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r6, [r0, 0x30]
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x78
+ b _0807380A
+ .pool
+_080737C8:
+ ldrb r0, [r7]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x20]
+ subs r3, 0x18
+ movs r1, 0x5
+ mov r0, r8
+ subs r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ subs r3, r0
+ strh r3, [r2, 0x20]
+ ldrb r0, [r7]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x6
+ mov r3, r8
+ subs r1, r3
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, 0xA
+ strh r0, [r2, 0x30]
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ff88
+_0807380A:
+ strh r1, [r0, 0x24]
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ adds r7, 0x1
+ adds r6, 0x7
+ adds r5, 0xA
+ movs r2, 0x1
+ add r8, r2
+ mov r3, r8
+ cmp r3, 0x5
+ bgt _0807382C
+ b _0807371C
+_0807382C:
+ ldr r0, [sp, 0x8]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807383A
+ b _080739E8
+_0807383A:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r2, 0x40
+ ands r1, r2
+ cmp r1, 0
+ beq _080738F4
+ ldr r5, =0x0000ffff
+ mov r10, r5
+ ldr r6, =gSprites
+ ldr r0, =0x000003ff
+ adds r7, r0, 0
+ ldr r1, =0xfffffc00
+ mov r9, r1
+ mov r4, sp
+ ldr r5, [sp, 0xC]
+ movs r2, 0x5
+ mov r8, r2
+_0807385C:
+ ldrh r0, [r5]
+ cmp r0, r10
+ bne _080738A8
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ands r1, r7
+ mov r0, r9
+ 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, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ b _080738E2
+ .pool
+_080738A8:
+ cmp r0, 0
+ bne _080738C0
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _080738D8
+_080738C0:
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080738E2
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_080738D8:
+ ands r1, r7
+ mov r0, r9
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_080738E2:
+ adds r4, 0x1
+ adds r5, 0x8
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0
+ bge _0807385C
+ b _08073B9A
+_080738F4:
+ movs r1, 0x5
+ mov r10, r1
+ movs r7, 0
+ ldr r2, =gSprites
+ mov r8, r2
+ ldr r3, =0x000003ff
+ mov r9, r3
+ ldr r5, =0xfffffc00
+ mov r12, r5
+ ldr r6, [sp, 0xC]
+ mov r5, sp
+_0807390A:
+ ldrh r0, [r6]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ bne _08073958
+ mov r4, sp
+ add r4, r10
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ mov r0, r9
+ ands r1, r0
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ subs r1, 0x2
+ add r10, r1
+ b _080739DE
+ .pool
+_08073958:
+ cmp r0, 0
+ bne _08073970
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _080739D0
+_08073970:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _080739B8
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ movs r2, 0xA8
+ lsls r2, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ lsls r0, r7, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080739B8
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _080739D0
+ .pool
+_080739B8:
+ ldr r0, [r6, 0x4]
+ cmp r0, 0
+ beq _080739DC
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_080739D0:
+ mov r0, r9
+ ands r1, r0
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_080739DC:
+ adds r5, 0x1
+_080739DE:
+ adds r6, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _0807390A
+ b _08073B9A
+_080739E8:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ ldr r2, =0x00008040
+ ands r1, r2
+ cmp r1, 0
+ beq _08073AA4
+ ldr r1, =0x0000ffff
+ mov r10, r1
+ ldr r6, =gSprites
+ ldr r2, =0x000003ff
+ adds r7, r2, 0
+ ldr r3, =0xfffffc00
+ mov r9, r3
+ ldr r5, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x5
+ movs r0, 0x5
+ mov r8, r0
+_08073A0C:
+ ldrh r0, [r5]
+ cmp r0, r10
+ bne _08073A58
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ands r1, r7
+ mov r0, r9
+ 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, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ b _08073A92
+ .pool
+_08073A58:
+ cmp r0, 0
+ bne _08073A70
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08073A88
+_08073A70:
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ beq _08073A92
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_08073A88:
+ ands r1, r7
+ mov r0, r9
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08073A92:
+ subs r4, 0x1
+ adds r5, 0x8
+ movs r1, 0x1
+ negs r1, r1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0
+ bge _08073A0C
+ b _08073B9A
+_08073AA4:
+ movs r3, 0
+ mov r8, r3
+ movs r7, 0
+ ldr r5, =gSprites
+ mov r9, r5
+ ldr r6, =0x000003ff
+ mov r12, r6
+ ldr r0, =0xfffffc00
+ mov r10, r0
+ ldr r6, [sp, 0xC]
+ mov r5, sp
+ adds r5, 0x5
+_08073ABC:
+ ldrh r0, [r6]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ bne _08073B08
+ mov r4, sp
+ add r4, r8
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ mov r0, r12
+ ands r1, r0
+ mov r0, r10
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ add r8, r1
+ b _08073B92
+ .pool
+_08073B08:
+ cmp r0, 0
+ bne _08073B20
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08073B84
+_08073B20:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _08073B6C
+ ldr r2, =gBattleStruct
+ ldr r0, [r2]
+ ldr r3, =0x000002a1
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r7, 2
+ ldr r2, =gBitTable
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08073B6C
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08073B84
+ .pool
+_08073B6C:
+ ldr r0, [r6, 0x4]
+ cmp r0, 0
+ beq _08073B90
+ ldrb r0, [r5]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_08073B84:
+ mov r0, r12
+ ands r1, r0
+ mov r0, r10
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08073B90:
+ subs r5, 0x1
+_08073B92:
+ adds r6, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08073ABC
+_08073B9A:
+ ldr r0, =TaskDummy
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, =gTasks
+ 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, 0x14]
+ strh r6, [r0, 0xA]
+ movs r0, 0
+ mov r8, r0
+ adds r0, r2, 0
+ adds r0, 0xE
+ adds r1, r0
+_08073BC6:
+ mov r0, sp
+ add r0, r8
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r5, 0x1
+ add r8, r5
+ mov r6, r8
+ cmp r6, 0x5
+ ble _08073BC6
+ adds r0, r3, r4
+ lsls r0, 3
+ adds r0, r2
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x1C]
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ beq _08073C0A
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r3, [r0, 0x8]
+ ldrb r2, [r3, 0x9]
+ lsls r1, r2, 27
+ lsrs r1, 29
+ adds r1, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x1D
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+_08073C0A:
+ movs r0, 0x72
+ movs r1, 0
+ bl PlaySE12WithPanning
+ adds r0, r4, 0
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80735DC
+
+ thumb_func_start sub_8073C30
+sub_8073C30: @ 8073C30
+ 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, =gTasks
+ 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
+_08073C5E:
+ mov r0, sp
+ adds r1, r0, r5
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08073C5E
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r1, =gTasks
+ 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, =gSprites
+ movs r6, 0xD
+ negs r6, r6
+ mov r12, r3
+ movs r4, 0x4
+_08073CA0:
+ 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 _08073CA0
+ 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 _08073CDA
+ b _08073DE0
+_08073CDA:
+ movs r5, 0
+ mov r6, r12
+ mov r9, r5
+ adds r3, r6, 0
+ adds r3, 0x1C
+ mov r4, sp
+ movs r7, 0
+_08073CE8:
+ 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 _08073D4C
+ 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, =sub_8074158
+ str r1, [r0]
+ ldr r2, =gSprites
+ mov r12, r2
+ b _08073D82
+ .pool
+_08073D4C:
+ 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, =sub_8074158
+ str r1, [r0]
+ ldr r0, =gSprites
+ mov r12, r0
+_08073D82:
+ adds r4, 0x1
+ adds r7, 0x7
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08073CE8
+ 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, =sub_8074090
+ str r1, [r3]
+ ldr r1, =gUnknown_0832C2CC
+ bl SetSubspriteTables
+ ldr r1, =gTasks
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =task_battle_throw_own_ball
+ str r1, [r0]
+ b _08073DEE
+ .pool
+_08073DE0:
+ ldr r0, =gTasks
+ ldr r1, [sp, 0xC]
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_8073F98
+ str r0, [r1]
+_08073DEE:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8073C30
+
+ thumb_func_start task_battle_throw_own_ball
+task_battle_throw_own_ball: @ 8073E08
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ 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 _08073E48
+ ldrh r0, [r4, 0x26]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x26]
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _08073E54
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+_08073E48:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08073E54
+ ldr r0, =sub_8073E64
+ str r0, [r4]
+_08073E54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_battle_throw_own_ball
+
+ thumb_func_start sub_8073E64
+sub_8073E64: @ 8073E64
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r7, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r3, r0, 3
+ adds r4, r3, r7
+ ldrb r2, [r4, 0x8]
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08073F54
+ ldrb r5, [r4, 0xA]
+ movs r4, 0
+ ldr r6, =gUnknown_020244D0
+ adds r0, r7, 0
+ adds r0, 0xE
+ adds r2, r3, r0
+_08073E96:
+ mov r0, sp
+ adds r1, r0, r4
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08073E96
+ ldr r0, [r6]
+ ldr r3, [r0, 0x8]
+ ldrb r2, [r3, 0x9]
+ lsls r1, r2, 27
+ lsrs r1, 29
+ subs r1, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x1D
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1C
+ ands r0, r1
+ cmp r0, 0
+ bne _08073EFC
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r4, =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
+ b _08073F32
+ .pool
+_08073EFC:
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r5, =gSprites
+ adds r4, r5
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl FreeSpriteOamMatrix
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_08073F32:
+ movs r4, 0x1
+ ldr r5, =gSprites
+_08073F36:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08073F36
+ b _08073F8A
+ .pool
+_08073F54:
+ movs r0, 0x3
+ negs r0, r0
+ cmp r1, r0
+ bne _08073F8A
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyTask
+_08073F8A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8073E64
+
+ thumb_func_start sub_8073F98
+sub_8073F98: @ 8073F98
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r7, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r6, r0, 3
+ adds r3, r6, r7
+ ldrb r5, [r3, 0x8]
+ ldrh r0, [r3, 0x26]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x26]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08073FD4
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ b _0807406A
+ .pool
+_08073FD4:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ bne _08074034
+ ldrb r3, [r3, 0xA]
+ movs r5, 0
+ adds r0, r7, 0
+ adds r0, 0xE
+ adds r2, r6, r0
+_08073FE6:
+ mov r0, sp
+ adds r1, r0, r5
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08073FE6
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r4, =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
+_08074016:
+ 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 _08074016
+ b _0807406A
+ .pool
+_08074034:
+ movs r0, 0x3
+ negs r0, r0
+ cmp r2, r0
+ bne _0807406A
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyTask
+_0807406A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8073F98
+
+ thumb_func_start sub_8074078
+sub_8074078: @ 8074078
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0807408C
+ ldrh r0, [r1, 0x2E]
+ adds r0, r2, r0
+ strh r0, [r1, 0x24]
+_0807408C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074078
+
+ thumb_func_start sub_8074090
+sub_8074090: @ 8074090
+ 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 _080740AE
+ lsls r0, r1, 16
+ asrs r0, 20
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ b _080740B6
+_080740AE:
+ lsls r1, 16
+ asrs r1, 20
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+_080740B6:
+ 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_8074090
+
+ thumb_func_start sub_80740C4
+sub_80740C4: @ 80740C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080740D8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _0807414E
+_080740D8:
+ 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, =0x0000fff0
+ ands r2, r0
+ strh r2, [r4, 0x34]
+ cmp r3, 0
+ beq _0807410C
+ lsrs r0, r1, 20
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0807411C
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ b _0807411C
+ .pool
+_0807410C:
+ lsrs r1, 20
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0807411C
+ strh r3, [r4, 0x24]
+_0807411C:
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0807414E
+ movs r1, 0x3F
+ cmp r3, 0
+ beq _0807412C
+ movs r1, 0xC0
+_0807412C:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08074140
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x74
+ bl PlaySE2WithPanning
+ b _0807414A
+_08074140:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x73
+ bl PlaySE1WithPanning
+_0807414A:
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0807414E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80740C4
+
+ thumb_func_start sub_8074158
+sub_8074158: @ 8074158
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _0807416C
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080741BC
+_0807416C:
+ 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, =0x0000fff0
+ ands r2, r1
+ strh r2, [r3, 0x34]
+ cmp r0, 0
+ beq _08074190
+ lsrs r0, r4, 20
+ ldrh r1, [r3, 0x24]
+ adds r0, r1
+ b _08074196
+ .pool
+_08074190:
+ lsrs r1, r4, 20
+ ldrh r0, [r3, 0x24]
+ subs r0, r1
+_08074196:
+ 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 _080741BC
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_080741BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8074158
+
+ thumb_func_start sub_80741C8
+sub_80741C8: @ 80741C8
+ ldrh r2, [r0, 0x2E]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, =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
+ .pool
+ thumb_func_end sub_80741C8
+
+ thumb_func_start sub_80741E8
+sub_80741E8: @ 80741E8
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, =gDisplayedStringBattle
+ ldr r1, =gUnknown_085ED228
+ adds r0, r5, 0
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ add r0, sp, 0x4
+ bl StringGetEnd10
+ adds r0, r5, 0
+ add r1, sp, 0x4
+ bl StringAppend
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x1D
+ beq _08074236
+ cmp r0, 0x20
+ bne _0807424A
+_08074236:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ add r0, sp, 0x4
+ bl StringCompare
+ cmp r0, 0
+ bne _0807424A
+ movs r6, 0x64
+_0807424A:
+ cmp r6, 0
+ beq _08074268
+ cmp r6, 0xFE
+ beq _08074270
+ ldr r1, =gUnknown_085ED238
+ b _08074272
+ .pool
+_08074268:
+ ldr r1, =gUnknown_085ED22E
+ b _08074272
+ .pool
+_08074270:
+ ldr r1, =gUnknown_085ED233
+_08074272:
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, =gDisplayedStringBattle
+ add r1, sp, 0x10
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r6, r0, 0
+ ldr r0, =gSprites
+ lsls r1, r7, 4
+ adds r1, r7
+ 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 _080742F0
+ ldr r1, =0x06010040
+ adds r0, r4, r1
+ adds r1, r6, 0
+ movs r2, 0x6
+ bl sub_8075198
+ bl battle_type_is_double
+ lsls r0, 24
+ ldr r1, =0x06010400
+ adds r5, r4, r1
+ cmp r0, 0
+ bne _080742C8
+ ldr r0, =0x06010800
+ adds r5, r4, r0
+_080742C8:
+ adds r1, r6, 0
+ adds r1, 0xC0
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8075198
+ b _080742FC
+ .pool
+_080742F0:
+ ldr r1, =0x06010020
+ adds r0, r4, r1
+ adds r1, r6, 0
+ movs r2, 0x7
+ bl sub_8075198
+_080742FC:
+ ldr r0, [sp, 0x10]
+ bl sub_807512C
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80741E8
+
+ thumb_func_start sub_8074310
+sub_8074310: @ 8074310
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _080743E6
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ bne _080743E6
+ ldr r6, =gSprites
+ 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 GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080743E6
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _080743E6
+ ldrh r0, [r5, 0x38]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, 0
+ beq _080743C4
+ movs r0, 0x46
+ bl sub_80728A4
+ 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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _080743E6
+ .pool
+_080743C4:
+ 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, =0x06010000
+ adds r1, r0
+ ldr r2, =0x05000008
+ mov r0, sp
+ bl CpuSet
+_080743E6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8074310
+
+ thumb_func_start draw_status_ailment_maybe
+draw_status_ailment_maybe: @ 80743F8
+ 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, =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 _08074468
+ ldr r1, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x37
+ bl GetMonData
+ adds r4, r0, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ movs r3, 0x12
+ mov r8, r3
+ cmp r0, 0
+ bne _08074484
+ movs r0, 0x1A
+ mov r8, r0
+ b _08074484
+ .pool
+_08074468:
+ ldr r1, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+ bl GetMonData
+ adds r4, r0, 0
+ movs r1, 0x11
+ mov r8, r1
+_08074484:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _080744AC
+ movs r0, 0x1B
+ adds r1, r7, 0
+ bl sub_80746A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80728A4
+ adds r6, r0, 0
+ movs r0, 0x2
+ b _080745B8
+ .pool
+_080744AC:
+ movs r0, 0x88
+ ands r0, r4
+ cmp r0, 0
+ beq _080744CA
+ movs r0, 0x15
+ adds r1, r7, 0
+ bl sub_80746A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80728A4
+ adds r6, r0, 0
+ movs r0, 0
+ b _080745B8
+_080744CA:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _080744E8
+ movs r0, 0x21
+ adds r1, r7, 0
+ bl sub_80746A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80728A4
+ adds r6, r0, 0
+ movs r0, 0x4
+ b _080745B8
+_080744E8:
+ movs r0, 0x20
+ ands r0, r4
+ cmp r0, 0
+ beq _08074506
+ movs r0, 0x1E
+ adds r1, r7, 0
+ bl sub_80746A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80728A4
+ adds r6, r0, 0
+ movs r0, 0x3
+ b _080745B8
+_08074506:
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ beq _08074524
+ movs r0, 0x18
+ adds r1, r7, 0
+ bl sub_80746A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80728A4
+ adds r6, r0, 0
+ movs r0, 0x1
+ b _080745B8
+_08074524:
+ movs r0, 0x27
+ bl sub_80728A4
+ 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, =gSprites
+ add r0, r9
+ lsls r0, 2
+ adds r5, r0, r1
+_08074542:
+ 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, =0x06010000
+ adds r1, r3
+ adds r0, r6, 0
+ ldr r2, =0x04000008
+ bl CpuSet
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08074542
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08074598
+ movs r0, 0x1
+ bl sub_80728A4
+ ldr r2, =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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000010
+ bl CpuSet
+_08074598:
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_8074310
+ b _0807467A
+ .pool
+_080745B8:
+ mov r1, r9
+ lsls r5, r1, 4
+ add r5, r9
+ lsls r5, 2
+ ldr r2, =gSprites
+ adds r5, r2
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ adds r4, 0xC
+ adds r4, r7
+ ldr r1, =gUnknown_0832C3EC
+ 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, =gPlttBufferUnfaded + 0x200
+ adds r0, r4, r0
+ ldr r1, =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, =0x06010000
+ mov r8, r2
+ add r1, r8
+ ldr r2, =0x04000018
+ adds r0, r6, 0
+ bl CpuSet
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08074626
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08074672
+_08074626:
+ ldr r0, =gUnknown_020244D0
+ 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 _08074672
+ movs r0, 0
+ bl sub_80728A4
+ mov r3, r10
+ lsls r4, r3, 4
+ add r4, r10
+ lsls r4, 2
+ ldr r1, =gSprites
+ adds r4, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ add r1, r8
+ ldr r5, =0x04000008
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x41
+ bl sub_80728A4
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ adds r1, 0x20
+ add r1, r8
+ adds r2, r5, 0
+ bl CpuSet
+_08074672:
+ mov r0, r9
+ movs r1, 0
+ bl sub_8074310
+_0807467A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end draw_status_ailment_maybe
+
+ thumb_func_start sub_80746A8
+sub_80746A8: @ 80746A8
+ 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 _08074768
+ lsls r0, 2
+ ldr r1, =_080746C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080746C8:
+ .4byte _080746FC
+ .4byte _08074768
+ .4byte _08074768
+ .4byte _08074712
+ .4byte _08074768
+ .4byte _08074768
+ .4byte _08074728
+ .4byte _08074768
+ .4byte _08074768
+ .4byte _0807473E
+ .4byte _08074768
+ .4byte _08074768
+ .4byte _08074754
+_080746FC:
+ movs r2, 0x15
+ cmp r3, 0
+ beq _08074768
+ movs r2, 0x47
+ cmp r3, 0x1
+ beq _08074768
+ movs r2, 0x65
+ cmp r3, 0x2
+ bne _08074768
+ movs r2, 0x56
+ b _08074768
+_08074712:
+ movs r2, 0x18
+ cmp r3, 0
+ beq _08074768
+ movs r2, 0x4A
+ cmp r3, 0x1
+ beq _08074768
+ movs r2, 0x68
+ cmp r3, 0x2
+ bne _08074768
+ movs r2, 0x59
+ b _08074768
+_08074728:
+ movs r2, 0x1B
+ cmp r3, 0
+ beq _08074768
+ movs r2, 0x4D
+ cmp r3, 0x1
+ beq _08074768
+ movs r2, 0x6B
+ cmp r3, 0x2
+ bne _08074768
+ movs r2, 0x5C
+ b _08074768
+_0807473E:
+ movs r2, 0x1E
+ cmp r3, 0
+ beq _08074768
+ movs r2, 0x50
+ cmp r3, 0x1
+ beq _08074768
+ movs r2, 0x6E
+ cmp r3, 0x2
+ bne _08074768
+ movs r2, 0x5F
+ b _08074768
+_08074754:
+ movs r2, 0x21
+ cmp r3, 0
+ beq _08074768
+ movs r2, 0x53
+ cmp r3, 0x1
+ beq _08074768
+ movs r2, 0x71
+ cmp r3, 0x2
+ bne _08074768
+ movs r2, 0x62
+_08074768:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80746A8
+
+ thumb_func_start sub_8074770
+sub_8074770: @ 8074770
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_085CCB2C
+ add r1, sp, 0x4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r5, r0, 0
+ ldr r1, =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, =0x06010040
+ adds r0, r4, r1
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_8075198
+ ldr r0, =0x06010800
+ adds r4, r0
+ adds r5, 0xC0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_8075198
+ ldr r0, [sp, 0x4]
+ bl sub_807512C
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8074770
+
+ thumb_func_start sub_80747D8
+sub_80747D8: @ 80747D8
+ push {r4,r5,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gUnknown_085CCB3C
+ add r0, sp, 0x4
+ bl StringCopy
+ ldr r1, =gNumSafariBalls
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0
+ add r1, sp, 0x4
+ movs r2, 0x2F
+ bl GetStringRightAlignXOffset
+ adds r1, r0, 0
+ add r0, sp, 0x14
+ str r0, [sp]
+ add r0, sp, 0x4
+ movs r2, 0x3
+ movs r3, 0x2
+ bl write_to_rbox
+ adds r5, r0, 0
+ ldr r1, =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, =0x060102c0
+ adds r0, r4, r1
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_80751E4
+ ldr r0, =0x06010a00
+ adds r4, r0
+ adds r5, 0x40
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x4
+ bl sub_80751E4
+ ldr r0, [sp, 0x14]
+ bl sub_807512C
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80747D8
+
+ thumb_func_start healthbar_draw_field_maybe
+healthbar_draw_field_maybe: @ 8074860
+ 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, =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 _0807489C
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807489C
+ mov r0, r9
+ bl GetBankSide
+_0807489C:
+ ldr r1, =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 _080748B8
+ b _08074A18
+_080748B8:
+ cmp r7, 0x3
+ beq _080748C0
+ cmp r7, 0
+ bne _080748D4
+_080748C0:
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl healthbar_draw_level
+_080748D4:
+ cmp r7, 0x1
+ bhi _080748EE
+ 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 heathbar_draw_hp
+_080748EE:
+ cmp r7, 0x2
+ beq _080748F6
+ cmp r7, 0
+ bne _0807490C
+_080748F6:
+ 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 heathbar_draw_hp
+_0807490C:
+ cmp r7, 0x5
+ beq _08074914
+ cmp r7, 0
+ bne _08074948
+_08074914:
+ movs r0, 0
+ bl load_gfxc_health_bar
+ 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 sub_807294C
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8074AA0
+_08074948:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0
+ bne _080749CE
+ cmp r7, 0x6
+ beq _0807495E
+ cmp r7, 0
+ bne _080749CE
+_0807495E:
+ movs r0, 0x3
+ bl load_gfxc_health_bar
+ 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, =gExperienceTables
+ mov r12, r0
+ lsls r1, r4, 2
+ ldr r2, =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 sub_807294C
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8074AA0
+_080749CE:
+ cmp r7, 0x4
+ beq _080749D6
+ cmp r7, 0
+ bne _080749DE
+_080749D6:
+ adds r0, r6, 0
+ mov r1, r8
+ bl sub_80741E8
+_080749DE:
+ cmp r7, 0x9
+ beq _080749E6
+ cmp r7, 0
+ bne _080749EC
+_080749E6:
+ adds r0, r6, 0
+ bl draw_status_ailment_maybe
+_080749EC:
+ cmp r7, 0xA
+ bne _080749F6
+ adds r0, r6, 0
+ bl sub_8074770
+_080749F6:
+ adds r0, r7, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08074A8E
+ adds r0, r6, 0
+ bl sub_80747D8
+ b _08074A8E
+ .pool
+_08074A18:
+ cmp r7, 0x3
+ beq _08074A20
+ cmp r7, 0
+ bne _08074A34
+_08074A20:
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl healthbar_draw_level
+_08074A34:
+ cmp r7, 0x5
+ beq _08074A3C
+ cmp r7, 0
+ bne _08074A70
+_08074A3C:
+ movs r0, 0
+ bl load_gfxc_health_bar
+ 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 sub_807294C
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8074AA0
+_08074A70:
+ cmp r7, 0x4
+ beq _08074A78
+ cmp r7, 0
+ bne _08074A80
+_08074A78:
+ adds r0, r6, 0
+ mov r1, r8
+ bl sub_80741E8
+_08074A80:
+ cmp r7, 0x9
+ beq _08074A88
+ cmp r7, 0
+ bne _08074A8E
+_08074A88:
+ adds r0, r6, 0
+ bl draw_status_ailment_maybe
+_08074A8E:
+ 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 healthbar_draw_field_maybe
+
+ thumb_func_start sub_8074AA0
+sub_8074AA0: @ 8074AA0
+ 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 _08074AEC
+ ldr r0, =gUnknown_020244D0
+ 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_8074DB8
+ adds r4, r0, 0
+ adds r7, r5, 0
+ b _08074B48
+ .pool
+_08074AEC:
+ ldr r2, =gUnknown_020244D0
+ 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 sub_8074FE8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r4, 0
+ cmp r5, 0
+ bne _08074B16
+ movs r5, 0x1
+_08074B16:
+ 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 _08074B2E
+ negs r0, r0
+_08074B2E:
+ 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_8074DB8
+ adds r4, r0, 0
+_08074B48:
+ mov r2, r9
+ cmp r2, 0x1
+ beq _08074B64
+ cmp r2, 0
+ bne _08074B6C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08074B6C
+_08074B64:
+ mov r0, r8
+ mov r1, r9
+ bl sub_8074B9C
+_08074B6C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _08074B86
+ ldr r0, =gUnknown_020244D0
+ 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]
+_08074B86:
+ 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
+ .pool
+ thumb_func_end sub_8074AA0
+
+ thumb_func_start sub_8074B9C
+sub_8074B9C: @ 8074B9C
+ 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 _08074BB8
+ cmp r1, 0x1
+ beq _08074CA0
+ b _08074D9E
+_08074BB8:
+ ldr r0, =gUnknown_020244D0
+ 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_8074E8C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ mov r9, r1
+ adds r7, r5, 0
+ cmp r0, 0x18
+ bhi _08074BF4
+ movs r2, 0x38
+ mov r9, r2
+ cmp r0, 0x9
+ bls _08074BF4
+ movs r4, 0x2F
+ mov r9, r4
+_08074BF4:
+ movs r5, 0
+ ldr r0, =gSprites
+ mov r8, r0
+_08074BFA:
+ ldr r0, =gUnknown_020244D0
+ 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 _08074C5C
+ mov r0, r9
+ bl sub_80728A4
+ 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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _08074C8A
+ .pool
+_08074C5C:
+ mov r0, r9
+ bl sub_80728A4
+ 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, =0x06010040
+ adds r1, r4
+ ldr r2, =0x04000008
+ bl CpuSet
+_08074C8A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08074BFA
+ b _08074D9E
+ .pool
+_08074CA0:
+ ldr r0, =gUnknown_020244D0
+ 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_8074E8C
+ ldr r1, =gBattlePartyID
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r5, 0
+ cmp r0, 0x64
+ bne _08074CF8
+ movs r5, 0
+ movs r1, 0
+_08074CE6:
+ 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 _08074CE6
+_08074CF8:
+ movs r5, 0
+ ldr r0, =gSprites
+ mov r8, r0
+ adds r0, r7, r6
+ lsls r4, r0, 2
+_08074D02:
+ cmp r5, 0x3
+ bhi _08074D5C
+ movs r0, 0xC
+ bl sub_80728A4
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, =gUnknown_020244D0
+ 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, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ b _08074D94
+ .pool
+_08074D5C:
+ movs r0, 0xC
+ bl sub_80728A4
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, =gUnknown_020244D0
+ 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, =0x06010b80
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_08074D94:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _08074D02
+_08074D9E:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8074B9C
+
+ thumb_func_start sub_8074DB8
+sub_8074DB8: @ 8074DB8
+ 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, =0xffff8000
+ cmp r1, r0
+ bne _08074DEA
+ cmp r7, r2
+ bge _08074DE8
+ lsls r0, r4, 8
+ str r0, [r5]
+ b _08074DEA
+ .pool
+_08074DE8:
+ str r4, [r5]
+_08074DEA:
+ mov r0, r8
+ subs r4, r0
+ cmp r4, 0
+ bge _08074DF6
+ movs r4, 0
+ b _08074DFC
+_08074DF6:
+ cmp r4, r7
+ ble _08074DFC
+ adds r4, r7, 0
+_08074DFC:
+ cmp r7, r2
+ bge _08074E18
+ ldr r0, [r5]
+ asrs r1, r0, 8
+ adds r6, r0, 0
+ cmp r4, r1
+ bne _08074E24
+ movs r0, 0xFF
+ ands r0, r6
+ cmp r0, 0
+ bne _08074E24
+ movs r0, 0x1
+ negs r0, r0
+ b _08074E80
+_08074E18:
+ ldr r6, [r5]
+ cmp r4, r6
+ bne _08074E24
+ movs r0, 0x1
+ negs r0, r0
+ b _08074E80
+_08074E24:
+ cmp r7, r2
+ bge _08074E5E
+ lsls r0, r7, 8
+ adds r1, r2, 0
+ bl __divsi3
+ mov r1, r8
+ cmp r1, 0
+ bge _08074E42
+ adds r0, r6, r0
+ str r0, [r5]
+ asrs r2, r0, 8
+ cmp r2, r4
+ blt _08074E7E
+ b _08074E56
+_08074E42:
+ subs r0, r6, r0
+ str r0, [r5]
+ asrs r2, r0, 8
+ movs r1, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ ble _08074E52
+ adds r2, 0x1
+_08074E52:
+ cmp r2, r4
+ bgt _08074E7E
+_08074E56:
+ lsls r0, r4, 8
+ str r0, [r5]
+ adds r2, r4, 0
+ b _08074E7E
+_08074E5E:
+ mov r0, r8
+ cmp r0, 0
+ bge _08074E70
+ ldr r0, [r5]
+ adds r0, r3
+ str r0, [r5]
+ cmp r0, r4
+ ble _08074E7C
+ b _08074E7A
+_08074E70:
+ ldr r0, [r5]
+ subs r0, r3
+ str r0, [r5]
+ cmp r0, r4
+ bge _08074E7C
+_08074E7A:
+ str r4, [r5]
+_08074E7C:
+ ldr r2, [r5]
+_08074E7E:
+ adds r0, r2, 0
+_08074E80:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074DB8
+
+ thumb_func_start sub_8074E8C
+sub_8074E8C: @ 8074E8C
+ 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 _08074EA4
+ movs r5, 0
+ b _08074EAA
+_08074EA4:
+ cmp r5, r4
+ ble _08074EAA
+ adds r5, r4, 0
+_08074EAA:
+ lsls r0, r6, 27
+ lsrs r3, r0, 24
+ movs r1, 0
+ cmp r1, r6
+ bcs _08074EC4
+ movs r2, 0
+_08074EB6:
+ adds r0, r7, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcc _08074EB6
+_08074EC4:
+ cmp r4, r3
+ bge _08074ED8
+ mov r1, r12
+ ldr r0, [r1]
+ muls r0, r3
+ adds r1, r4, 0
+ bl __divsi3
+ asrs r0, 8
+ b _08074EE4
+_08074ED8:
+ mov r1, r12
+ ldr r0, [r1]
+ muls r0, r3
+ adds r1, r4, 0
+ bl __divsi3
+_08074EE4:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r3, 0
+ bne _08074EFA
+ cmp r5, 0
+ ble _08074EFA
+ movs r0, 0x1
+ strb r0, [r7]
+ movs r3, 0x1
+ b _08074F1E
+_08074EFA:
+ movs r1, 0
+ movs r4, 0x8
+_08074EFE:
+ cmp r1, r6
+ bcs _08074F1E
+ cmp r2, 0x7
+ bls _08074F1A
+ 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 _08074EFE
+_08074F1A:
+ adds r0, r7, r1
+ strb r2, [r0]
+_08074F1E:
+ adds r0, r3, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074E8C
+
+ thumb_func_start sub_8074F28
+sub_8074F28: @ 8074F28
+ 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_8074DB8
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8074F88
+ ldr r0, [r5]
+ cmp r0, 0x2F
+ bgt _08074F68
+ ldr r0, [r6]
+ lsls r0, 8
+ lsrs r1, r0, 16
+ b _08074F6A
+_08074F68:
+ ldrh r1, [r6]
+_08074F6A:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ lsls r1, 16
+ asrs r1, 16
+ mov r2, r8
+ bl sub_8072304
+ 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_8074F28
+
+ thumb_func_start sub_8074F88
+sub_8074F88: @ 8074F88
+ 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_8074E8C
+ movs r3, 0
+ add r7, sp, 0x10
+ mov r12, r7
+ ldrb r0, [r5, 0xC]
+ lsls r6, r0, 27
+ ldr r4, [r5, 0x10]
+_08074FB4:
+ 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 _08074FB4
+ 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_8074F88
+
+ thumb_func_start sub_8074FE8
+sub_8074FE8: @ 8074FE8
+ push {r4-r7,lr}
+ adds r6, r2, 0
+ lsls r3, 27
+ lsrs r7, r3, 24
+ subs r5, r0, r1
+ cmp r5, 0
+ bge _08074FFA
+ movs r5, 0
+ b _08075000
+_08074FFA:
+ cmp r5, r6
+ ble _08075000
+ adds r5, r6, 0
+_08075000:
+ 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 _08075028
+ negs r0, r0
+_08075028:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074FE8
+
+ thumb_func_start sub_8075034
+sub_8075034: @ 8075034
+ 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 _08075058
+ cmp r4, 0
+ ble _08075058
+ movs r0, 0x1
+_08075058:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075034
+
+ thumb_func_start sub_8075060
+sub_8075060: @ 8075060
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _08075072
+ movs r0, 0x4
+ b _0807508E
+_08075072:
+ movs r2, 0x30
+ bl sub_8075034
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x3
+ cmp r1, 0x18
+ bhi _0807508E
+ movs r0, 0x2
+ cmp r1, 0x9
+ bhi _0807508E
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_0807508E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075060
+
+ thumb_func_start write_to_rbox
+write_to_rbox: @ 8075094
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r10, r0
+ mov r8, r1
+ mov r9, r2
+ adds r5, r3, 0
+ ldr r7, [sp, 0x40]
+ ldr r0, =gUnknown_0832C3F8
+ 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 r6, r4, 24
+ lsrs r6, 24
+ lsls r1, r5, 4
+ orrs r1, r5
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl FillWindowPixelBuffer
+ add r0, sp, 0x14
+ movs r2, 0
+ strb r5, [r0]
+ adds r1, r0, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0xC]
+ mov r0, r10
+ str r0, [sp, 0x10]
+ adds r0, r6, 0
+ movs r1, 0
+ mov r2, r8
+ mov r3, r9
+ bl AddTextPrinterParametrized2
+ str r4, [r7]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl GetWindowAttribute
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end write_to_rbox
+
+ thumb_func_start sub_807512C
+sub_807512C: @ 807512C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807512C
+
+ thumb_func_start sub_807513C
+sub_807513C: @ 807513C
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r1, r0, 8
+ adds r0, r1
+ lsls r1, r0, 16
+ adds r0, r1
+ str r0, [sp]
+ lsls r2, 3
+ ldr r0, =0x001fffff
+ ands r2, r0
+ movs r0, 0xA0
+ lsls r0, 19
+ orrs r2, r0
+ mov r0, sp
+ adds r1, r3, 0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_807513C
+
+ thumb_func_start sub_8075170
+sub_8075170: @ 8075170
+ push {lr}
+ adds r3, r0, 0
+ adds r0, r1, 0
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ lsls r2, 3
+ ldr r1, =0x001fffff
+ ands r2, r1
+ movs r1, 0x80
+ lsls r1, 19
+ orrs r2, r1
+ adds r1, r3, 0
+ bl CpuSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8075170
+
+ thumb_func_start sub_8075198
+sub_8075198: @ 8075198
+ 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, =0x001fffff
+ ands r2, r3
+ movs r3, 0x80
+ lsls r3, 19
+ orrs r2, r3
+ bl CpuSet
+ cmp r4, 0
+ ble _080751D4
+_080751BC:
+ adds r0, r5, 0
+ adds r0, 0x14
+ adds r1, r6, 0
+ adds r1, 0x14
+ ldr r2, =0x04000003
+ bl CpuSet
+ adds r6, 0x20
+ adds r5, 0x20
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080751BC
+_080751D4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8075198
+
+ thumb_func_start sub_80751E4
+sub_80751E4: @ 80751E4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r4, r2, 3
+ ldr r0, =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
+ .pool
+ thumb_func_end sub_80751E4
+
+ .align 2, 0 @ Don't pad with nop.