diff options
Diffstat (limited to 'asm/battle_interface.s')
-rw-r--r-- | asm/battle_interface.s | 5500 |
1 files changed, 0 insertions, 5500 deletions
diff --git a/asm/battle_interface.s b/asm/battle_interface.s deleted file mode 100644 index b84342e18..000000000 --- a/asm/battle_interface.s +++ /dev/null @@ -1,5500 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_804373C -sub_804373C: @ 804373C - movs r0, 0x9 - bx lr - thumb_func_end sub_804373C - - thumb_func_start sub_8043740 -sub_8043740: @ 8043740 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r3, 0 - movs r2, 0 -_0804375C: - lsls r0, r3, 24 - asrs r0, 24 - mov r3, sp - adds r1, r3, r0 - strb r2, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _0804375C - movs r3, 0x3 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - mov r8, sp -_0804377C: - lsls r0, r5, 16 - asrs r6, r0, 16 - cmp r6, 0 - ble _080437AA - lsls r4, r3, 24 - asrs r4, 24 - mov r1, sp - adds r5, r1, r4 - adds r0, r6, 0 - movs r1, 0xA - bl __modsi3 - strb r0, [r5] - adds r0, r6, 0 - movs r1, 0xA - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - subs r4, 0x1 - lsls r4, 24 - lsrs r3, r4, 24 - b _0804377C -_080437AA: - lsls r1, r3, 24 - asrs r0, r1, 24 - cmp r0, r9 - ble _080437CE - movs r4, 0xFF - movs r3, 0x1 - negs r3, r3 -_080437B8: - asrs r2, r1, 24 - mov r5, sp - adds r1, r5, r2 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - subs r2, 0x1 - lsls r1, r2, 24 - asrs r0, r1, 24 - cmp r0, r3 - bgt _080437B8 -_080437CE: - mov r1, r8 - ldrb r0, [r1, 0x3] - cmp r0, 0xFF - bne _080437DA - movs r0, 0 - strb r0, [r1, 0x3] -_080437DA: - mov r2, r10 - cmp r2, 0 - bne _0804386A - movs r3, 0 - movs r1, 0 - movs r6, 0xFC - lsls r6, 8 - movs r5, 0x1E - mov r12, r5 -_080437EC: - lsls r1, 24 - asrs r2, r1, 24 - mov r0, sp - adds r5, r0, r2 - ldrb r0, [r5] - mov r8, r1 - cmp r0, 0xFF - bne _08043822 - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r2, r12 - orrs r0, r2 - strh r0, [r1] - lsls r3, 24 - asrs r1, r3, 23 - adds r1, r7 - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r5, r12 - orrs r0, r5 - strh r0, [r1] - b _08043852 -_08043822: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - lsls r4, r3, 24 - asrs r3, r4, 24 - lsls r2, r3, 1 - adds r2, r7 - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - mov r5, sp - adds r0, r5, r3 - ldrb r0, [r0] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] - adds r3, r4, 0 -_08043852: - movs r0, 0x80 - lsls r0, 17 - add r0, r8 - lsrs r1, r0, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r3, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080437EC - b _080438CE -_0804386A: - movs r3, 0 - movs r4, 0xFC - lsls r4, 8 - movs r6, 0x1E -_08043872: - lsls r1, r3, 24 - asrs r2, r1, 24 - mov r3, sp - adds r5, r3, r2 - ldrb r0, [r5] - adds r3, r1, 0 - cmp r0, 0xFF - bne _0804389E - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - b _080438C0 -_0804389E: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] -_080438C0: - movs r5, 0x80 - lsls r5, 17 - adds r0, r3, r5 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _08043872 -_080438CE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8043740 - - thumb_func_start unref_sub_80438E0 -unref_sub_80438E0: @ 80438E0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0x1E - strh r1, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - adds r1, r5, 0 - movs r2, 0 - bl sub_8043740 - lsls r4, 16 - asrs r4, 16 - adds r5, 0xA - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8043740 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end unref_sub_80438E0 - - thumb_func_start battle_make_oam_normal_battle -battle_make_oam_normal_battle: @ 8043914 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08043A28 - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080439AC - ldr r4, _0804399C @ =gSpriteTemplate_820A4EC - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080439A0 @ =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, _080439A4 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080439A8 @ =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - b _080439F2 - .align 2, 0 -_0804399C: .4byte gSpriteTemplate_820A4EC -_080439A0: .4byte gSprites -_080439A4: .4byte 0x000003ff -_080439A8: .4byte 0xfffffc00 -_080439AC: - ldr r4, _08043A14 @ =gSpriteTemplate_820A51C - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08043A18 @ =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, _08043A1C @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043A20 @ =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - movs r0, 0x2 - str r0, [sp] -_080439F2: - ldr r2, _08043A18 @ =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, _08043A24 @ =sub_8043D5C - str r1, [r0] - b _08043B50 - .align 2, 0 -_08043A14: .4byte gSpriteTemplate_820A51C -_08043A18: .4byte gSprites -_08043A1C: .4byte 0x000003ff -_08043A20: .4byte 0xfffffc00 -_08043A24: .4byte sub_8043D5C -_08043A28: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08043ACC - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, _08043AB8 @ =gSpriteTemplate_820A4EC - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08043ABC @ =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, _08043AC0 @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043AC4 @ =0xfffffc00 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, _08043AC8 @ =sub_8043D5C - str r0, [r2] - movs r0, 0x1 - b _08043B4E - .align 2, 0 -_08043AB8: .4byte gSpriteTemplate_820A4EC -_08043ABC: .4byte gSprites -_08043AC0: .4byte 0x000003ff -_08043AC4: .4byte 0xfffffc00 -_08043AC8: .4byte sub_8043D5C -_08043ACC: - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, _08043C14 @ =gSpriteTemplate_820A51C - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08043C18 @ =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, _08043C1C @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043C20 @ =0xfffffc00 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, _08043C24 @ =sub_8043D5C - str r0, [r2] - movs r0, 0x2 -_08043B4E: - str r0, [sp] -_08043B50: - ldr r0, _08043C28 @ =gUnknown_02024A72 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _08043C2C @ =gSpriteTemplate_820A56C - adds r0, r1 - movs r1, 0x8C - movs r2, 0x3C - movs r3, 0 - bl CreateSpriteAtEnd - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r1, _08043C18 @ =gSprites - mov r8, r1 - add r4, r8 - mov r0, r10 - bl battle_side_get_owner - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 21 - ldr r0, _08043C30 @ =gSubspriteTables_820A684 - adds r1, r0 - adds r0, r4, 0 - bl SetSubspriteTables - adds r2, r4, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r2, 0x4 - mov r9, r2 - mov r1, r9 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0x1 - bl sub_8043CDC - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _08043C34 @ =0x06010000 - adds r1, r2 - ldr r2, _08043C38 @ =REG_BG0HOFS - bl CpuSet - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - add r0, r8 - strh r5, [r0, 0x38] - mov r2, r10 - strh r2, [r0, 0x3A] - adds r0, 0x3E - ldrb r1, [r0] - mov r5, r9 - orrs r1, r5 - strb r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - adds r4, 0x3E - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - adds r0, r6, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08043C14: .4byte gSpriteTemplate_820A51C -_08043C18: .4byte gSprites -_08043C1C: .4byte 0x000003ff -_08043C20: .4byte 0xfffffc00 -_08043C24: .4byte sub_8043D5C -_08043C28: .4byte gUnknown_02024A72 -_08043C2C: .4byte gSpriteTemplate_820A56C -_08043C30: .4byte gSubspriteTables_820A684 -_08043C34: .4byte 0x06010000 -_08043C38: .4byte REG_BG0HOFS - thumb_func_end battle_make_oam_normal_battle - - thumb_func_start battle_make_oam_safari_battle -battle_make_oam_safari_battle: @ 8043C3C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, _08043CC8 @ =gSpriteTemplate_820A54C - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08043CCC @ =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, _08043CD0 @ =0x000003ff - adds r1, r7, 0 - ands r2, r1 - ldr r1, _08043CD4 @ =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, _08043CD8 @ =sub_8043D5C - str r0, [r3] - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08043CC8: .4byte gSpriteTemplate_820A54C -_08043CCC: .4byte gSprites -_08043CD0: .4byte 0x000003ff -_08043CD4: .4byte 0xfffffc00 -_08043CD8: .4byte sub_8043D5C - thumb_func_end battle_make_oam_safari_battle - - thumb_func_start sub_8043CDC -sub_8043CDC: @ 8043CDC - lsls r0, 24 - lsrs r0, 19 - ldr r1, _08043CE8 @ =gUnknown_08D1216C - adds r0, r1 - bx lr - .align 2, 0 -_08043CE8: .4byte gUnknown_08D1216C - thumb_func_end sub_8043CDC - - thumb_func_start sub_8043CEC -sub_8043CEC: @ 8043CEC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08043D1C - cmp r0, 0x1 - bgt _08043D30 - cmp r0, 0 - bne _08043D30 - ldr r2, _08043D18 @ =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08043D3E - .align 2, 0 -_08043D18: .4byte gSprites -_08043D1C: - ldr r2, _08043D2C @ =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08043D3E - .align 2, 0 -_08043D2C: .4byte gSprites -_08043D30: - ldr r2, _08043D58 @ =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x8 -_08043D3E: - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x22] - strh r0, [r4, 0x22] - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - strh r1, [r4, 0x24] - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043D58: .4byte gSprites - thumb_func_end sub_8043CEC - - thumb_func_start sub_8043D5C -sub_8043D5C: @ 8043D5C - ldrh r1, [r0, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08043D80 @ =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 -_08043D80: .4byte gSprites - thumb_func_end sub_8043D5C - - thumb_func_start sub_8043D84 -sub_8043D84: @ 8043D84 - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 2 - ldr r0, _08043DA8 @ =0x02017850 - adds r4, r0 - strb r1, [r4] - str r2, [r4, 0x4] - str r3, [r4, 0x8] - str r5, [r4, 0xC] - ldr r0, _08043DAC @ =0xffff8000 - str r0, [r4, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043DA8: .4byte 0x02017850 -_08043DAC: .4byte 0xffff8000 - thumb_func_end sub_8043D84 - - thumb_func_start sub_8043DB0 -sub_8043DB0: @ 8043DB0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08043DF8 @ =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 -_08043DF8: .4byte gSprites - thumb_func_end sub_8043DB0 - - thumb_func_start sub_8043DFC -sub_8043DFC: @ 8043DFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08043E4C @ =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 -_08043E4C: .4byte gSprites - thumb_func_end sub_8043DFC - - thumb_func_start sub_8043E50 -sub_8043E50: @ 8043E50 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08043E6C @ =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 -_08043E6C: .4byte gSprites - thumb_func_end sub_8043E50 - - thumb_func_start unref_sub_8043E70 -unref_sub_8043E70: @ 8043E70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08043EAC @ =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 -_08043EAC: .4byte gSprites - thumb_func_end unref_sub_8043E70 - - thumb_func_start nullsub_11 -nullsub_11: @ 8043EB0 - bx lr - thumb_func_end nullsub_11 - - thumb_func_start sub_8043EB4 -sub_8043EB4: @ 8043EB4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - ldr r1, _08043F38 @ =gUnknown_02024A68 - mov r8, r1 - ldrb r2, [r1] - cmp r6, r2 - bge _08043F2C - ldr r1, _08043F3C @ =gSprites - mov r12, r1 - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r7, 0xD - negs r7, r7 - ldr r2, _08043F40 @ =gUnknown_03004340 - mov r9, r2 -_08043EDE: - mov r1, r9 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r4, [r1, 0x6] - ldrh r3, [r1, 0x38] - lsls r3, 24 - lsrs r3, 24 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - adds r6, 0x1 - mov r2, r8 - ldrb r2, [r2] - cmp r6, r2 - blt _08043EDE -_08043F2C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08043F38: .4byte gUnknown_02024A68 -_08043F3C: .4byte gSprites -_08043F40: .4byte gUnknown_03004340 - thumb_func_end sub_8043EB4 - - thumb_func_start sub_8043F44 -sub_8043F44: @ 8043F44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r4, 0 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08043F70 - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08043F6A - movs r5, 0x2C - movs r4, 0x1E - b _08043FA8 -_08043F6A: - movs r5, 0x9E - movs r4, 0x58 - b _08043FA8 -_08043F70: - adds r0, r6, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08043F9E - cmp r0, 0x1 - bgt _08043F88 - cmp r0, 0 - beq _08043F92 - b _08043FA8 -_08043F88: - cmp r0, 0x2 - beq _08043F98 - cmp r0, 0x3 - beq _08043FA4 - b _08043FA8 -_08043F92: - movs r5, 0x9F - movs r4, 0x4D - b _08043FA8 -_08043F98: - movs r5, 0xAB - movs r4, 0x66 - b _08043FA8 -_08043F9E: - movs r5, 0x2C - movs r4, 0x13 - b _08043FA8 -_08043FA4: - movs r5, 0x20 - movs r4, 0x2C -_08043FA8: - ldr r0, _08043FBC @ =gUnknown_03004340 - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8043E50 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08043FBC: .4byte gUnknown_03004340 - thumb_func_end sub_8043F44 - - thumb_func_start sub_8043FC0 -sub_8043FC0: @ 8043FC0 - push {r4-r7,lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _08044000 @ =gUnknown_0820A81C - mov r0, sp - movs r2, 0x1E - bl memcpy - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08044010 - ldr r1, _08044004 @ =gSprites - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r7, _08044008 @ =gUnknown_0820A80C - cmp r0, 0 - bne _0804402E - ldr r7, _0804400C @ =gUnknown_0820A804 - b _0804402E - .align 2, 0 -_08044000: .4byte gUnknown_0820A81C -_08044004: .4byte gSprites -_08044008: .4byte gUnknown_0820A80C -_0804400C: .4byte gUnknown_0820A804 -_08044010: - ldr r1, _08044040 @ =gSprites - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r7, _08044044 @ =gUnknown_0820A80C - cmp r0, 0 - bne _0804402E - ldr r7, _08044048 @ =gUnknown_0820A814 -_0804402E: - mov r3, sp - adds r3, 0x6 - cmp r6, 0x64 - bne _0804404C - adds r0, r3, 0 - movs r1, 0x64 - movs r2, 0 - movs r3, 0x3 - b _0804408C - .align 2, 0 -_08044040: .4byte gSprites -_08044044: .4byte gUnknown_0820A80C -_08044048: .4byte gUnknown_0820A814 -_0804404C: - movs r1, 0xFC - strb r1, [r3] - mov r3, sp - adds r3, 0x7 - movs r0, 0x11 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r2, 0x14 - strb r2, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF0 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - strb r2, [r3] - adds r3, 0x1 - movs r0, 0 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 -_0804408C: - bl ConvertIntToDecimalStringN - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x13 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF - strb r0, [r3] - movs r0, 0xFF - strb r0, [r3, 0x1] - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - ldr r1, _080440E0 @ =gSprites - adds r0, r4, r5 - lsls r0, 2 - adds r6, r0, r1 - ldr r5, _080440E4 @ =0x02000020 - movs r4, 0x2 -_080440BC: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _080440E8 @ =REG_BG0CNT - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080440BC - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080440E0: .4byte gSprites -_080440E4: .4byte 0x02000020 -_080440E8: .4byte REG_BG0CNT - thumb_func_end sub_8043FC0 - - thumb_func_start sub_80440EC -sub_80440EC: @ 80440EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r1, _08044144 @ =gUnknown_0820A864 - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _08044148 @ =gSprites - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x3A - ldrsh r5, [r4, r0] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08044136 - lsls r0, r5, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804414C -_08044136: - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r7, 0 - mov r2, r8 - bl sub_8044210 - b _080441F0 - .align 2, 0 -_08044144: .4byte gUnknown_0820A864 -_08044148: .4byte gSprites -_0804414C: - mov r5, sp - adds r5, 0x6 - mov r0, r8 - cmp r0, 0 - bne _08044190 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _08044188 @ =gUnknown_0820A848 - cmp r0, 0 - bne _0804416A - ldr r4, _0804418C @ =gUnknown_0820A83C -_0804416A: - movs r0, 0x3 - mov r8, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0x13 - movs r3, 0x1 - bl sub_8003504 - adds r5, r0, 0 - movs r0, 0xBA - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - b _080441B6 - .align 2, 0 -_08044188: .4byte gUnknown_0820A848 -_0804418C: .4byte gUnknown_0820A83C -_08044190: - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _080441FC @ =gUnknown_0820A85C - cmp r0, 0 - bne _080441A4 - ldr r4, _08044200 @ =gUnknown_0820A854 -_080441A4: - movs r0, 0x2 - mov r8, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0xF - movs r3, 0x1 - bl sub_8003504 -_080441B6: - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - mov r0, r8 - cmp r0, 0 - beq _080441F0 - ldr r1, _08044204 @ =gSprites - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r1 - adds r7, r4, 0 - ldr r5, _08044208 @ =0x02000020 - mov r4, r8 -_080441D6: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _0804420C @ =REG_BG0CNT - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080441D6 -_080441F0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080441FC: .4byte gUnknown_0820A85C -_08044200: .4byte gUnknown_0820A854 -_08044204: .4byte gSprites -_08044208: .4byte 0x02000020 -_0804420C: .4byte REG_BG0CNT - thumb_func_end sub_80440EC - - thumb_func_start sub_8044210 -sub_8044210: @ 8044210 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - mov r9, r6 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r1, _0804427C @ =gUnknown_0820A89C - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _08044280 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - mov r8, r0 - movs r1, 0x3A - ldrsh r4, [r0, r1] - lsls r0, r4, 2 - ldr r1, _08044284 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08044312 - mov r2, sp - adds r2, 0x6 - cmp r7, 0 - bne _0804428C - ldr r7, _08044288 @ =gUnknown_0820A87C - movs r0, 0x6 - mov r10, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r2, 0 - movs r2, 0x2B - movs r3, 0x1 - bl sub_8003504 - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xFF - strb r0, [r2, 0x1] - b _080442CE - .align 2, 0 -_0804427C: .4byte gUnknown_0820A89C -_08044280: .4byte gSprites -_08044284: .4byte 0x02017800 -_08044288: .4byte gUnknown_0820A87C -_0804428C: - ldr r7, _08044324 @ =gUnknown_0820A894 - movs r1, 0x2 - mov r10, r1 - mov r0, r9 - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r2, 0 - movs r2, 0xF - movs r3, 0x1 - bl sub_8003504 - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080442CE - movs r0, 0x74 - bl sub_8043CDC - mov r2, r8 - ldrh r1, [r2, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0xD0 - lsls r2, 3 - adds r1, r2 - ldr r2, _08044328 @ =0x06010000 - adds r1, r2 - ldr r2, _0804432C @ =REG_BG0CNT - bl CpuSet -_080442CE: - ldr r6, _08044330 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r6 - movs r1, 0x38 - ldrsh r4, [r0, r1] - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - mov r2, r10 - cmp r2, 0 - beq _08044312 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r6, r0, r6 - ldr r5, _08044334 @ =0x02000020 - mov r4, r10 -_080442F8: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _0804432C @ =REG_BG0CNT - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080442F8 -_08044312: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044324: .4byte gUnknown_0820A894 -_08044328: .4byte 0x06010000 -_0804432C: .4byte REG_BG0CNT -_08044330: .4byte gSprites -_08044334: .4byte 0x02000020 - thumb_func_end sub_8044210 - - thumb_func_start sub_8044338 -sub_8044338: @ 8044338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r1, _080443CC @ =gUnknown_0820A864 - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _080443D0 @ =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 battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r3, _080443D4 @ =0x02000520 - adds r6, r1, r3 - movs r0, 0x5 - mov r8, r0 - adds r0, r4, 0 - bl GetNature - lsls r0, 24 - mov r4, sp - adds r4, 0x6 - ldr r1, _080443D8 @ =gNatureNames - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r0, r6, 0 - mov r1, sp - bl sub_80034D4 - movs r7, 0x6 - movs r5, 0 - mov r1, sp - adds r1, 0x9 - str r1, [sp, 0x1C] -_080443AA: - mov r2, sp - adds r0, r2, r7 - ldrb r1, [r0] - adds r0, r1, 0 - subs r0, 0x37 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080443C8 - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080443DC -_080443C8: - movs r0, 0x2C - b _080443FA - .align 2, 0 -_080443CC: .4byte gUnknown_0820A864 -_080443D0: .4byte gSprites -_080443D4: .4byte 0x02000520 -_080443D8: .4byte gNatureNames -_080443DC: - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080443F4 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080443F8 -_080443F4: - movs r0, 0x2D - b _080443FA -_080443F8: - movs r0, 0x2B -_080443FA: - bl sub_8043CDC - lsls r1, r5, 6 - adds r1, r6, r1 - ldr r2, _080444F8 @ =REG_BG0CNT - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, 0x1 - cmp r5, r8 - bcc _080443AA - movs r7, 0x1 - ldr r3, [sp, 0x14] - lsls r3, 4 - str r3, [sp, 0x18] - movs r0, 0x1 - add r0, r8 - mov r9, r0 - cmp r7, r9 - bge _08044486 - ldr r1, _080444FC @ =gSprites - ldr r2, _080444F8 @ =REG_BG0CNT - mov r10, r2 - ldr r2, [sp, 0x14] - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - mov r8, r0 -_08044436: - mov r3, r8 - ldrh r0, [r3, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r5, r7, 0 - cmp r7, 0 - bge _08044446 - adds r5, r7, 0x7 -_08044446: - asrs r5, 3 - lsls r4, r5, 3 - subs r4, r7, r4 - adds r0, r4 - lsls r5, 6 - adds r0, r5 - lsls r0, 5 - ldr r2, _08044500 @ =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, _08044500 @ =0x06010000 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - adds r7, 0x1 - cmp r7, r9 - blt _08044436 -_08044486: - ldr r6, _080444FC @ =gSprites - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x14] - adds r0, r3, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x38] - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08044504 @ =0x02000000 - ldr r2, _08044508 @ =0x00016089 - adds r0, r4, r2 - ldrb r1, [r0] - mov r0, sp - adds r0, 0x6 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r3, _0804450C @ =0x00016088 - adds r4, r3 - ldrb r1, [r4] - ldr r0, [sp, 0x1C] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0xBA - strb r0, [r1, 0x8] - movs r0, 0x80 - lsls r0, 18 - bl sub_80034D4 - movs r7, 0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r5, r0, r6 - ldr r4, _08044510 @ =0x02000020 -_080444DA: - cmp r7, 0x1 - bgt _08044514 - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r0, r7, 0x2 - adds r1, r0 - lsls r1, 5 - ldr r0, _08044500 @ =0x06010000 - adds r1, r0 - adds r0, r4, 0 - ldr r2, _080444F8 @ =REG_BG0CNT - bl CpuSet - b _0804452A - .align 2, 0 -_080444F8: .4byte REG_BG0CNT -_080444FC: .4byte gSprites -_08044500: .4byte 0x06010000 -_08044504: .4byte 0x02000000 -_08044508: .4byte 0x00016089 -_0804450C: .4byte 0x00016088 -_08044510: .4byte 0x02000020 -_08044514: - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r7, r1 - lsls r1, 5 - ldr r2, _08044544 @ =0x060100c0 - adds r1, r2 - adds r0, r4, 0 - ldr r2, _08044548 @ =REG_BG0CNT - bl CpuSet -_0804452A: - adds r4, 0x40 - adds r7, 0x1 - cmp r7, 0x4 - ble _080444DA - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044544: .4byte 0x060100c0 -_08044548: .4byte REG_BG0CNT - thumb_func_end sub_8044338 - - thumb_func_start sub_804454C -sub_804454C: @ 804454C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - ldr r0, _0804466C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r8, r0 - blt _08044566 - b _080447E4 -_08044566: - ldr r1, _08044670 @ =gSprites - mov r9, r1 - movs r2, 0x64 - mov r10, r2 - ldr r7, _08044674 @ =gUnknown_02024A6A -_08044570: - ldr r0, _08044678 @ =gUnknown_03004340 - mov r6, r8 - adds r5, r6, r0 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r9 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _0804467C @ =SpriteCallbackDummy - cmp r1, r0 - beq _0804458E - b _080447D4 -_0804458E: - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080445A2 - b _080447D4 -_080445A2: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080445BA - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080445BA - b _080447D4 -_080445BA: - mov r0, r8 - lsls r3, r0, 2 - ldr r0, _08044680 @ =0x02017800 - adds r3, r0 - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - lsls r2, 4 - ldrb r0, [r3] - movs r6, 0x11 - negs r6, r6 - adds r1, r6, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r0, [r3] - lsls r0, 27 - lsrs r6, r0, 31 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080446DC - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080445FA - b _080447D4 -_080445FA: - ldr r0, _08044684 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0804460C - b _080447D4 -_0804460C: - cmp r6, 0x1 - bne _08044694 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r0, _08044688 @ =0x06010000 - adds r1, r0 - mov r0, sp - ldr r2, _0804468C @ =0x05000040 - bl CpuSet - ldrb r4, [r5] - ldrh r0, [r7] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _08044690 @ =gPlayerParty - adds r0, r2 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8044210 - ldrb r4, [r5] - ldrh r0, [r7] - mov r6, r10 - muls r6, r0 - adds r0, r6, 0 - ldr r1, _08044690 @ =gPlayerParty - b _08044766 - .align 2, 0 -_0804466C: .4byte gUnknown_02024A68 -_08044670: .4byte gSprites -_08044674: .4byte gUnknown_02024A6A -_08044678: .4byte gUnknown_03004340 -_0804467C: .4byte SpriteCallbackDummy -_08044680: .4byte 0x02017800 -_08044684: .4byte gBattleTypeFlags -_08044688: .4byte 0x06010000 -_0804468C: .4byte 0x05000040 -_08044690: .4byte gPlayerParty -_08044694: - ldrb r0, [r5] - bl draw_status_ailment_maybe - ldrb r0, [r5] - ldrh r1, [r7] - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _080446D0 @ =gPlayerParty - adds r1, r6 - movs r2, 0x5 - bl sub_8045A5C - movs r0, 0x75 - bl sub_8043CDC - ldrb r2, [r5] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r9 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _080446D4 @ =0x06010680 - adds r1, r2 - ldr r2, _080446D8 @ =REG_BG0CNT - bl CpuSet - b _080447BE - .align 2, 0 -_080446D0: .4byte gPlayerParty -_080446D4: .4byte 0x06010680 -_080446D8: .4byte REG_BG0CNT -_080446DC: - cmp r6, 0x1 - bne _0804478C - ldr r0, _08044704 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0804470C - ldrb r0, [r5] - ldrh r1, [r7] - mov r6, r10 - muls r6, r1 - adds r1, r6, 0 - ldr r2, _08044708 @ =gEnemyParty - adds r1, r2 - bl sub_8044338 - b _080447BE - .align 2, 0 -_08044704: .4byte gBattleTypeFlags -_08044708: .4byte gEnemyParty -_0804470C: - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r6, _08044780 @ =0x06010000 - adds r1, r6 - mov r0, sp - ldr r2, _08044784 @ =0x05000040 - bl CpuSet - ldrb r4, [r5] - ldrh r0, [r7] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _08044788 @ =gEnemyParty - adds r0, r2 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8044210 - ldrb r4, [r5] - ldrh r0, [r7] - mov r6, r10 - muls r6, r0 - adds r0, r6, 0 - ldr r1, _08044788 @ =gEnemyParty -_08044766: - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8044210 - b _080447BE - .align 2, 0 -_08044780: .4byte 0x06010000 -_08044784: .4byte 0x05000040 -_08044788: .4byte gEnemyParty -_0804478C: - ldrb r0, [r5] - bl draw_status_ailment_maybe - ldrb r0, [r5] - ldrh r1, [r7] - movs r6, 0x64 - muls r1, r6 - ldr r4, _080447F4 @ =gEnemyParty - adds r1, r4 - movs r2, 0x5 - bl sub_8045A5C - ldr r0, _080447F8 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080447BE - ldrb r0, [r5] - ldrh r1, [r7] - muls r1, r6 - adds r1, r4 - movs r2, 0x4 - bl sub_8045A5C -_080447BE: - ldr r0, _080447FC @ =gUnknown_03004340 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x3C] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x3C] -_080447D4: - adds r7, 0x2 - movs r2, 0x1 - add r8, r2 - ldr r0, _08044800 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r8, r0 - bge _080447E4 - b _08044570 -_080447E4: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080447F4: .4byte gEnemyParty -_080447F8: .4byte gBattleTypeFlags -_080447FC: .4byte gUnknown_03004340 -_08044800: .4byte gUnknown_02024A68 - thumb_func_end sub_804454C - - thumb_func_start sub_8044804 -sub_8044804: @ 8044804 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r1, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - adds r4, r2, 0 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - cmp r4, 0 - beq _08044834 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08044878 -_08044834: - ldr r0, [sp, 0x8] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08044854 - movs r7, 0 - movs r1, 0x88 - movs r2, 0x60 - movs r0, 0x64 - mov r8, r0 - ldr r5, _08044850 @ =0x0000fffb - b _08044884 - .align 2, 0 -_08044850: .4byte 0x0000fffb -_08044854: - movs r7, 0x1 - cmp r4, 0 - beq _08044864 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _0804486A -_08044864: - movs r1, 0x68 - movs r2, 0x28 - b _0804486E -_0804486A: - movs r1, 0x68 - movs r2, 0x10 -_0804486E: - ldr r3, _08044874 @ =0x0000ff9c - mov r8, r3 - b _08044882 - .align 2, 0 -_08044874: .4byte 0x0000ff9c -_08044878: - movs r7, 0x1 - movs r1, 0x68 - movs r2, 0x28 - ldr r5, _08044930 @ =0x0000ff9c - mov r8, r5 -_08044882: - movs r5, 0x5 -_08044884: - movs r6, 0 - str r6, [sp, 0x14] - lsls r4, r7, 3 - ldr r0, _08044934 @ =gUnknown_0820A754 - mov r10, r0 - lsls r3, r7, 1 - mov r9, r3 - lsls r1, 16 - str r1, [sp, 0x20] - lsls r2, 16 - str r2, [sp, 0x24] - ldr r2, _08044938 @ =0x0000ffff - ldr r1, [sp, 0xC] - movs r6, 0x5 -_080448A0: - ldrh r0, [r1] - cmp r0, r2 - beq _080448B4 - ldr r3, [sp, 0x14] - lsls r0, r3, 24 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r0, 24 - str r0, [sp, 0x14] -_080448B4: - adds r1, 0x8 - subs r6, 0x1 - cmp r6, 0 - bge _080448A0 - mov r6, r10 - adds r0, r4, r6 - bl LoadCompressedObjectPic - ldr r0, _0804493C @ =gUnknown_0820A784 - adds r0, r4, r0 - bl LoadSpriteSheet - ldr r0, _08044940 @ =gUnknown_0820A764 - adds r0, r4, r0 - bl LoadSpritePalette - ldr r0, _08044944 @ =gUnknown_0820A774 - adds r0, r4, r0 - bl LoadSpritePalette - mov r1, r9 - adds r0, r1, r7 - lsls r0, 3 - ldr r1, _08044948 @ =gSpriteTemplate_820A7A4 - adds r0, r1 - ldr r2, [sp, 0x20] - asrs r1, r2, 16 - ldr r3, [sp, 0x24] - asrs r2, r3, 16 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - lsls r0, 4 - ldr r6, [sp, 0x18] - adds r0, r6 - lsls r0, 2 - ldr r1, _0804494C @ =gSprites - adds r4, r0, r1 - ldr r1, _08044950 @ =gSubspriteTables_820A6E4 - adds r0, r4, 0 - bl SetSubspriteTables - mov r0, r8 - strh r0, [r4, 0x24] - strh r5, [r4, 0x2E] - cmp r7, 0 - beq _08044954 - ldrh r0, [r4, 0x20] - subs r0, 0x60 - strh r0, [r4, 0x20] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x3] - b _0804495A - .align 2, 0 -_08044930: .4byte 0x0000ff9c -_08044934: .4byte gUnknown_0820A754 -_08044938: .4byte 0x0000ffff -_0804493C: .4byte gUnknown_0820A784 -_08044940: .4byte gUnknown_0820A764 -_08044944: .4byte gUnknown_0820A774 -_08044948: .4byte gSpriteTemplate_820A7A4 -_0804494C: .4byte gSprites -_08044950: .4byte gSubspriteTables_820A6E4 -_08044954: - ldrh r0, [r4, 0x20] - adds r0, 0x60 - strh r0, [r4, 0x20] -_0804495A: - movs r6, 0 - ldr r1, _08044A04 @ =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 -_08044970: - ldr r0, _08044A08 @ =gSpriteTemplate_820A7D4 - ldr r5, [sp, 0x24] - ldr r1, _08044A0C @ =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 _080449A0 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08044A10 @ =gSprites + 0x1C - adds r1, r2 - ldr r0, _08044A14 @ =sub_8045180 - str r0, [r1] -_080449A0: - ldr r5, _08044A04 @ =gSprites - cmp r7, 0 - bne _080449BE - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - strh r7, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - strh r7, [r0, 0x26] -_080449BE: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - mov r3, sp - ldrh r3, [r3, 0x18] - strh r3, [r0, 0x2E] - cmp r7, 0 - bne _08044A18 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r1, 0x20] - adds r0, 0x18 - add r0, r8 - strh r0, [r1, 0x20] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x78 - b _08044A56 - .align 2, 0 -_08044A04: .4byte gSprites -_08044A08: .4byte gSpriteTemplate_820A7D4 -_08044A0C: .4byte 0xfffc0000 -_08044A10: .4byte gSprites + 0x1C -_08044A14: .4byte sub_8045180 -_08044A18: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrh r3, [r2, 0x20] - subs r3, 0x18 - movs r1, 0x5 - subs r1, r6 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - subs r3, r0 - strh r3, [r2, 0x20] - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - movs r1, 0x6 - subs r1, r6 - lsls r0, r1, 3 - subs r0, r1 - adds r0, 0xA - strh r0, [r2, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08044AC4 @ =0x0000ff88 -_08044A56: - strh r1, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x32] - adds r4, 0x1 - movs r2, 0x7 - add r9, r2 - movs r3, 0xA - add r8, r3 - adds r6, 0x1 - cmp r6, 0x5 - bgt _08044A76 - b _08044970 -_08044A76: - ldr r0, [sp, 0x8] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08044B5E - movs r6, 0 - ldr r5, _08044AC8 @ =gBattleTypeFlags - mov r10, r5 - ldr r0, _08044ACC @ =0x0000ffff - mov r9, r0 - ldr r7, _08044AD0 @ =gSprites - ldr r1, _08044AD4 @ =0x000003ff - mov r12, r1 - ldr r2, _08044AD8 @ =0xfffffc00 - mov r8, r2 - mov r4, sp - ldr r5, [sp, 0xC] -_08044A9A: - mov r3, r10 - ldrh r1, [r3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08044ADC - ldrh r0, [r5] - cmp r0, r9 - beq _08044AE6 - cmp r0, 0 - bne _08044B2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044B46 - .align 2, 0 -_08044AC4: .4byte 0x0000ff88 -_08044AC8: .4byte gBattleTypeFlags -_08044ACC: .4byte 0x0000ffff -_08044AD0: .4byte gSprites -_08044AD4: .4byte 0x000003ff -_08044AD8: .4byte 0xfffffc00 -_08044ADC: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - asrs r0, 24 - cmp r6, r0 - blt _08044B14 -_08044AE6: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _08044B52 -_08044B14: - ldrh r0, [r5] - cmp r0, 0 - bne _08044B2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044B46 -_08044B2E: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _08044B52 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08044B46: - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08044B52: - adds r4, 0x1 - adds r5, 0x8 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044A9A - b _08044C38 -_08044B5E: - movs r6, 0 - ldr r1, _08044BA4 @ =gBattleTypeFlags - mov r10, r1 - ldr r2, _08044BA8 @ =0x0000ffff - mov r9, r2 - ldr r7, _08044BAC @ =gSprites - ldr r3, _08044BB0 @ =0x000003ff - mov r12, r3 - ldr r5, _08044BB4 @ =0xfffffc00 - mov r8, r5 - ldr r5, [sp, 0xC] - mov r4, sp - adds r4, 0x5 -_08044B78: - mov r0, r10 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08044BB8 - ldrh r0, [r5] - cmp r0, r9 - beq _08044BC2 - cmp r0, 0 - bne _08044C0A - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044C22 - .align 2, 0 -_08044BA4: .4byte gBattleTypeFlags -_08044BA8: .4byte 0x0000ffff -_08044BAC: .4byte gSprites -_08044BB0: .4byte 0x000003ff -_08044BB4: .4byte 0xfffffc00 -_08044BB8: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - asrs r0, 24 - cmp r6, r0 - blt _08044BF0 -_08044BC2: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _08044C2E -_08044BF0: - ldrh r0, [r5] - cmp r0, 0 - bne _08044C0A - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044C22 -_08044C0A: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _08044C2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08044C22: - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08044C2E: - subs r4, 0x1 - adds r5, 0x8 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044B78 -_08044C38: - ldr r0, _08044C98 @ =TaskDummy - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _08044C9C @ =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, 0x18] - strh r6, [r0, 0xA] - movs r6, 0 - adds r0, r2, 0 - adds r0, 0xE - adds r1, r0 -_08044C62: - mov r5, sp - adds r0, r5, r6 - ldrb r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044C62 - adds r0, r3, r4 - lsls r0, 3 - adds r0, r2 - ldrh r6, [r5, 0x10] - strh r6, [r0, 0x1C] - movs r0, 0x72 - movs r1, 0 - bl 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 -_08044C98: .4byte TaskDummy -_08044C9C: .4byte gTasks - thumb_func_end sub_8044804 - - thumb_func_start sub_8044CA0 -sub_8044CA0: @ 8044CA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _08044DB4 @ =gTasks - lsls r3, r0, 2 - adds r1, r3, r0 - lsls r1, 3 - adds r0, r1, r2 - ldrb r4, [r0, 0x1C] - mov r9, r4 - ldrb r4, [r0, 0xA] - mov r10, r4 - ldrb r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r5, 0 - adds r7, r2, 0 - ldr r0, _08044DB8 @ =gSprites - mov r12, r0 - str r3, [sp, 0xC] - adds r0, r7, 0 - adds r0, 0xE - adds r2, r1, r0 -_08044CD8: - mov r4, sp - adds r1, r4, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044CD8 - ldr r1, _08044DBC @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r7 - movs r1, 0x10 - strh r1, [r0, 0x26] - movs r5, 0 - mov r4, r10 - lsls r4, 4 - str r4, [sp, 0x10] - ldr r4, _08044DB8 @ =gSprites - movs r6, 0xD - negs r6, r6 - movs r3, 0x4 -_08044D14: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x1] - adds r5, 0x1 - cmp r5, 0x5 - ble _08044D14 - ldr r2, [sp, 0x10] - add r2, r10 - lsls r2, 2 - add r2, r12 - ldrb r1, [r2, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x1] - mov r2, r9 - cmp r2, 0 - bne _08044D50 - b _08044E54 -_08044D50: - movs r5, 0 - mov r6, r12 - mov r9, r5 - adds r3, r6, 0 - adds r3, 0x1C - mov r4, sp - movs r7, 0 -_08044D5E: - ldr r0, [sp, 0x8] - str r3, [sp, 0x14] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, [sp, 0x14] - cmp r2, 0 - beq _08044DC4 - movs r0, 0x5 - subs r0, r5 - mov r1, sp - adds r2, r1, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x34] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x36] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _08044DC0 @ =sub_8045110 - str r1, [r0] - ldr r2, _08044DB8 @ =gSprites - mov r12, r2 - b _08044DFA - .align 2, 0 -_08044DB4: .4byte gTasks -_08044DB8: .4byte gSprites -_08044DBC: .4byte REG_BLDCNT -_08044DC0: .4byte sub_8045110 -_08044DC4: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x34] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x36] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _08044E3C @ =sub_8045110 - str r1, [r0] - ldr r0, _08044E40 @ =gSprites - mov r12, r0 -_08044DFA: - adds r4, 0x1 - adds r7, 0x7 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044D5E - ldr r3, [sp, 0x10] - add r3, r10 - lsls r3, 2 - mov r1, r12 - adds r0, r3, r1 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - mov r1, r12 - adds r1, 0x1C - adds r3, r1 - ldr r1, _08044E44 @ =sub_8045048 - str r1, [r3] - ldr r1, _08044E48 @ =gSubspriteTables_820A6EC - bl SetSubspriteTables - ldr r1, _08044E4C @ =gTasks - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _08044E50 @ =sub_8044E74 - b _08044E5E - .align 2, 0 -_08044E3C: .4byte sub_8045110 -_08044E40: .4byte gSprites -_08044E44: .4byte sub_8045048 -_08044E48: .4byte gSubspriteTables_820A6EC -_08044E4C: .4byte gTasks -_08044E50: .4byte sub_8044E74 -_08044E54: - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r7 - ldr r1, _08044E70 @ =sub_8044F70 -_08044E5E: - str r1, [r0] - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044E70: .4byte sub_8044F70 - thumb_func_end sub_8044CA0 - - thumb_func_start sub_8044E74 -sub_8044E74: @ 8044E74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08044EC0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x1E] - adds r1, r0, 0x1 - strh r1, [r3, 0x1E] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08044EAE - ldrh r0, [r3, 0x26] - subs r2, r0, 0x1 - strh r2, [r3, 0x26] - lsls r0, r2, 16 - cmp r0, 0 - blt _08044EBA - ldr r1, _08044EC4 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1] -_08044EAE: - movs r1, 0x26 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08044EBA - ldr r0, _08044EC8 @ =sub_8044ECC - str r0, [r3] -_08044EBA: - pop {r0} - bx r0 - .align 2, 0 -_08044EC0: .4byte gTasks -_08044EC4: .4byte REG_BLDALPHA -_08044EC8: .4byte sub_8044ECC - thumb_func_end sub_8044E74 - - thumb_func_start sub_8044ECC -sub_8044ECC: @ 8044ECC - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r6, _08044F44 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r4, r0, 3 - adds r1, r4, r6 - ldrh r0, [r1, 0x26] - subs r0, 0x1 - movs r5, 0 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r2, r0, 16 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - bne _08044F4C - ldrb r3, [r1, 0xA] - adds r0, r6, 0 - adds r0, 0xE - adds r2, r4, r0 -_08044EFA: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044EFA - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r4, _08044F48 @ =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 -_08044F2A: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r5, 0x1 - cmp r5, 0x5 - ble _08044F2A - b _08044F62 - .align 2, 0 -_08044F44: .4byte gTasks -_08044F48: .4byte gSprites -_08044F4C: - movs r0, 0x3 - negs r0, r0 - cmp r2, r0 - bne _08044F62 - ldr r0, _08044F6C @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, r3, 0 - bl DestroyTask -_08044F62: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08044F6C: .4byte REG_BLDCNT - thumb_func_end sub_8044ECC - - thumb_func_start sub_8044F70 -sub_8044F70: @ 8044F70 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r7, _08044FA4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r6, r0, 3 - adds r3, r6, r7 - ldrh r0, [r3, 0x26] - subs r2, r0, 0x1 - movs r5, 0 - strh r2, [r3, 0x26] - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r1, 0 - blt _08044FAC - ldr r1, _08044FA8 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1] - b _08045022 - .align 2, 0 -_08044FA4: .4byte gTasks -_08044FA8: .4byte REG_BLDALPHA -_08044FAC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0804500C - ldrb r3, [r3, 0xA] - movs r5, 0 - adds r0, r7, 0 - adds r0, 0xE - adds r2, r6, r0 -_08044FBE: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044FBE - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r4, _08045008 @ =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 -_08044FEE: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r5, 0x1 - cmp r5, 0x5 - ble _08044FEE - b _08045022 - .align 2, 0 -_08045008: .4byte gSprites -_0804500C: - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _08045022 - ldr r0, _0804502C @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, r4, 0 - bl DestroyTask -_08045022: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804502C: .4byte REG_BLDCNT - thumb_func_end sub_8044F70 - - thumb_func_start sub_8045030 -sub_8045030: @ 8045030 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x24] - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08045044 - ldrh r0, [r1, 0x2E] - adds r0, r2, r0 - strh r0, [r1, 0x24] -_08045044: - pop {r0} - bx r0 - thumb_func_end sub_8045030 - - thumb_func_start sub_8045048 -sub_8045048: @ 8045048 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - adds r1, 0x20 - strh r1, [r2, 0x30] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _08045066 - lsls r0, r1, 16 - asrs r0, 20 - ldrh r1, [r2, 0x24] - adds r0, r1 - b _0804506E -_08045066: - lsls r1, 16 - asrs r1, 20 - ldrh r0, [r2, 0x24] - subs r0, r1 -_0804506E: - strh r0, [r2, 0x24] - ldrh r1, [r2, 0x30] - movs r0, 0xF - ands r0, r1 - strh r0, [r2, 0x30] - pop {r0} - bx r0 - thumb_func_end sub_8045048 - - thumb_func_start sub_804507C -sub_804507C: @ 804507C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08045090 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _08045106 -_08045090: - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r3, r0, 24 - ldrh r2, [r4, 0x34] - adds r0, r2, 0 - adds r0, 0x38 - lsls r1, r0, 16 - lsrs r2, r1, 16 - ldr r0, _080450C0 @ =0x0000fff0 - ands r2, r0 - strh r2, [r4, 0x34] - cmp r3, 0 - beq _080450C4 - lsrs r0, r1, 20 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080450D4 - movs r0, 0 - strh r0, [r4, 0x24] - b _080450D4 - .align 2, 0 -_080450C0: .4byte 0x0000fff0 -_080450C4: - lsrs r1, 20 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bge _080450D4 - strh r3, [r4, 0x24] -_080450D4: - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08045106 - movs r1, 0x3F - cmp r3, 0 - beq _080450E4 - movs r1, 0xC0 -_080450E4: - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080450F8 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x74 - bl PlaySE2WithPanning - b _08045102 -_080450F8: - lsls r1, 24 - asrs r1, 24 - movs r0, 0x73 - bl PlaySE1WithPanning -_08045102: - ldr r0, _0804510C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_08045106: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804510C: .4byte SpriteCallbackDummy - thumb_func_end sub_804507C - - thumb_func_start sub_8045110 -sub_8045110: @ 8045110 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _08045124 - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _08045174 -_08045124: - ldrh r0, [r3, 0x32] - lsls r0, 24 - ldrh r2, [r3, 0x34] - adds r1, r2, 0 - adds r1, 0x38 - lsls r4, r1, 16 - lsrs r2, r4, 16 - ldr r1, _08045144 @ =0x0000fff0 - ands r2, r1 - strh r2, [r3, 0x34] - cmp r0, 0 - beq _08045148 - lsrs r0, r4, 20 - ldrh r1, [r3, 0x24] - adds r0, r1 - b _0804514E - .align 2, 0 -_08045144: .4byte 0x0000fff0 -_08045148: - lsrs r1, r4, 20 - ldrh r0, [r3, 0x24] - subs r0, r1 -_0804514E: - strh r0, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - movs r2, 0x20 - ldrsh r1, [r3, r2] - adds r0, r1 - adds r0, 0x8 - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bls _08045174 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0804517C @ =SpriteCallbackDummy - str r0, [r3, 0x1C] -_08045174: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804517C: .4byte SpriteCallbackDummy - thumb_func_end sub_8045110 - - thumb_func_start sub_8045180 -sub_8045180: @ 8045180 - ldrh r2, [r0, 0x2E] - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0804519C @ =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 -_0804519C: .4byte gSprites - thumb_func_end sub_8045180 - - thumb_func_start sub_80451A0 -sub_80451A0: @ 80451A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _08045238 @ =gUnknown_020238CC - ldr r1, _0804523C @ =gUnknown_0820A8B0 - adds r0, r4, 0 - bl StringCopy - adds r0, r7, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - adds r4, 0x3 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - adds r5, r0, 0 - movs r1, 0xFC - strb r1, [r5] - movs r0, 0x3 - strb r0, [r5, 0x1] - movs r0, 0x2 - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x1 - strb r0, [r5, 0x4] - adds r5, 0x5 - adds r0, r7, 0 - bl GetMonGender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0x3 - bl GetMonData - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - mov r1, sp - bl sub_8040D3C - cmp r0, 0 - beq _08045222 - movs r6, 0x64 -_08045222: - cmp r6, 0 - beq _08045240 - cmp r6, 0xFE - beq _08045248 - movs r0, 0xB - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - adds r5, 0x1 - b _08045256 - .align 2, 0 -_08045238: .4byte gUnknown_020238CC -_0804523C: .4byte gUnknown_0820A8B0 -_08045240: - movs r0, 0xB - strb r0, [r5] - movs r0, 0xB5 - b _0804524E -_08045248: - movs r0, 0xA - strb r0, [r5] - movs r0, 0xB6 -_0804524E: - strb r0, [r5, 0x1] - movs r0, 0xFF - strb r0, [r5, 0x2] - adds r5, 0x2 -_08045256: - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x37 - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r1, _080452D8 @ =gSprites - mov r0, r9 - lsls r4, r0, 4 - adds r0, r4, r0 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r2, _080452DC @ =0x02000520 - adds r5, r1, r2 - ldr r0, _080452E0 @ =gUnknown_020238CC - mov r8, r0 - adds r0, r5, 0 - mov r1, r8 - bl sub_80034D4 - movs r6, 0 - movs r1, 0x7 - mov r10, r1 - adds r0, r7, 0 - movs r1, 0x3 - bl GetMonData - str r4, [sp, 0xC] - cmp r0, 0x1 - bne _08045338 - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08045338 - mov r4, r8 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08045338 - adds r7, r5, 0 -_080452C2: - cmp r1, 0xFC - bne _080452E4 - ldrb r0, [r4, 0x1] - bl GetExtCtrlCodeLength - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - adds r4, r0 - b _08045330 - .align 2, 0 -_080452D8: .4byte gSprites -_080452DC: .4byte 0x02000520 -_080452E0: .4byte gUnknown_020238CC -_080452E4: - adds r0, r1, 0 - subs r0, 0x37 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080452FC - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08045300 -_080452FC: - movs r0, 0x2C - b _0804531E -_08045300: - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _08045318 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _0804531C -_08045318: - movs r0, 0x2D - b _0804531E -_0804531C: - movs r0, 0x2B -_0804531E: - bl sub_8043CDC - adds r1, r7, 0 - ldr r2, _080453C8 @ =REG_BG0CNT - bl CpuSet - adds r7, 0x40 - adds r6, 0x1 - adds r4, 0x1 -_08045330: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080452C2 -_08045338: - cmp r6, r10 - bge _0804535A - lsls r0, r6, 6 - adds r4, r0, r5 - mov r2, r10 - subs r6, r2, r6 -_08045344: - movs r0, 0x2B - bl sub_8043CDC - adds r1, r4, 0 - ldr r2, _080453C8 @ =REG_BG0CNT - bl CpuSet - adds r4, 0x40 - subs r6, 0x1 - cmp r6, 0 - bne _08045344 -_0804535A: - ldr r1, _080453CC @ =gSprites - ldr r0, [sp, 0xC] - add r0, r9 - lsls r0, 2 - adds r6, r0, r1 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080453D4 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080453D4 - ldr r1, _080453D0 @ =gUnknown_0820A8B4 - mov r0, r10 - cmp r0, 0 - beq _08045438 - mov r8, r6 - mov r9, r1 - ldr r7, _080453C8 @ =REG_BG0CNT - mov r6, r10 -_0804538E: - mov r1, r9 - adds r1, 0x4 - mov r9, r1 - subs r1, 0x4 - ldm r1!, {r4} - mov r2, r8 - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 17 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - movs r0, 0x80 - lsls r0, 1 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - subs r6, 0x1 - cmp r6, 0 - bne _0804538E - b _08045438 - .align 2, 0 -_080453C8: .4byte REG_BG0CNT -_080453CC: .4byte gSprites -_080453D0: .4byte gUnknown_0820A8B4 -_080453D4: - ldr r1, _08045448 @ =gSprites - ldr r0, [sp, 0xC] - add r0, r9 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _0804544C @ =gUnknown_0820A8DC - cmp r0, 0 - bne _080453F2 - ldr r1, _08045450 @ =gUnknown_0820A904 -_080453F2: - mov r2, r10 - cmp r2, 0 - beq _08045438 - mov r8, r4 - mov r9, r1 - ldr r7, _08045454 @ =REG_BG0CNT - mov r6, r10 -_08045400: - mov r0, r9 - adds r0, 0x4 - mov r9, r0 - subs r0, 0x4 - ldm r0!, {r4} - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 17 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - subs r6, 0x1 - cmp r6, 0 - bne _08045400 -_08045438: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045448: .4byte gSprites -_0804544C: .4byte gUnknown_0820A8DC -_08045450: .4byte gUnknown_0820A904 -_08045454: .4byte REG_BG0CNT - thumb_func_end sub_80451A0 - - thumb_func_start sub_8045458 -sub_8045458: @ 8045458 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080454F4 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0804552E - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0804552E - ldr r6, _080454F8 @ =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 battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0804552E - ldr r1, _080454FC @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08045500 @ =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 sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0804552E - ldrh r0, [r5, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, 0 - beq _0804550C - movs r0, 0x46 - bl sub_8043CDC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 - ldr r2, _08045504 @ =0x06010000 - adds r1, r2 - ldr r2, _08045508 @ =REG_BG0CNT - bl CpuSet - b _0804552E - .align 2, 0 -_080454F4: .4byte gBattleTypeFlags -_080454F8: .4byte gSprites -_080454FC: .4byte gUnknown_02024A6A -_08045500: .4byte gEnemyParty -_08045504: .4byte 0x06010000 -_08045508: .4byte REG_BG0CNT -_0804550C: - str r7, [sp] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - ldr r0, _08045538 @ =0x06010000 - adds r1, r0 - ldr r2, _0804553C @ =0x05000008 - mov r0, sp - bl CpuSet -_0804552E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045538: .4byte 0x06010000 -_0804553C: .4byte 0x05000008 - thumb_func_end sub_8045458 - - thumb_func_start draw_status_ailment_maybe -draw_status_ailment_maybe: @ 8045540 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080455A4 @ =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 battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080455B0 - ldr r1, _080455A8 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080455AC @ =gPlayerParty - adds r0, r1 - movs r1, 0x37 - bl GetMonData - adds r4, r0, 0 - bl IsDoubleBattle - lsls r0, 24 - movs r3, 0x12 - mov r8, r3 - cmp r0, 0 - bne _080455CC - movs r0, 0x1A - mov r8, r0 - b _080455CC - .align 2, 0 -_080455A4: .4byte gSprites -_080455A8: .4byte gUnknown_02024A6A -_080455AC: .4byte gPlayerParty -_080455B0: - ldr r1, _080455EC @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080455F0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x37 - bl GetMonData - adds r4, r0, 0 - movs r1, 0x11 - mov r8, r1 -_080455CC: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _080455F4 - movs r0, 0x1B - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x2 - b _080456FC - .align 2, 0 -_080455EC: .4byte gUnknown_02024A6A -_080455F0: .4byte gEnemyParty -_080455F4: - movs r0, 0x88 - ands r0, r4 - cmp r0, 0 - beq _08045612 - movs r0, 0x15 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0 - b _080456FC -_08045612: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _08045630 - movs r0, 0x21 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x4 - b _080456FC -_08045630: - movs r0, 0x20 - ands r0, r4 - cmp r0, 0 - beq _0804564E - movs r0, 0x1E - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x3 - b _080456FC -_0804564E: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _0804566C - movs r0, 0x18 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x1 - b _080456FC -_0804566C: - movs r0, 0x27 - bl sub_8043CDC - adds r6, r0, 0 - movs r4, 0 - mov r2, r9 - lsls r0, r2, 4 - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsls r7, 2 - ldr r1, _080456E8 @ =gSprites - add r0, r9 - lsls r0, 2 - adds r5, r0, r1 -_0804568A: - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - mov r2, r8 - asrs r0, r2, 16 - adds r1, r0 - adds r1, r4 - lsls r1, 5 - ldr r3, _080456EC @ =0x06010000 - adds r1, r3 - adds r0, r6, 0 - ldr r2, _080456F0 @ =REG_BG0CNT - bl CpuSet - adds r4, 0x1 - cmp r4, 0x2 - ble _0804568A - ldr r0, _080456F4 @ =0x02017800 - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080456DC - movs r0, 0x1 - bl sub_8043CDC - ldr r2, _080456E8 @ =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, _080456EC @ =0x06010000 - adds r1, r2 - ldr r2, _080456F8 @ =REG_BG0HOFS - bl CpuSet -_080456DC: - mov r0, r9 - movs r1, 0x1 - bl sub_8045458 - b _080457BA - .align 2, 0 -_080456E8: .4byte gSprites -_080456EC: .4byte 0x06010000 -_080456F0: .4byte REG_BG0CNT -_080456F4: .4byte 0x02017800 -_080456F8: .4byte REG_BG0HOFS -_080456FC: - mov r1, r9 - lsls r5, r1, 4 - add r5, r9 - lsls r5, 2 - ldr r2, _080457C8 @ =gSprites - adds r5, r2 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - lsls r4, 4 - adds r4, 0xC - adds r4, r7 - lsls r0, 1 - ldr r1, _080457CC @ =gBattleInterfaceStatusIcons_DynPal - adds r0, r1 - ldrh r0, [r0] - movs r3, 0x80 - lsls r3, 1 - adds r1, r4, r3 - movs r2, 0x2 - bl FillPalette - lsls r4, 1 - ldr r0, _080457D0 @ =gPlttBufferUnfaded + 0x200 - adds r0, r4, r0 - ldr r1, _080457D4 @ =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, _080457D8 @ =0x06010000 - mov r8, r2 - add r1, r8 - ldr r2, _080457DC @ =REG_BG2HOFS - adds r0, r6, 0 - bl CpuSet - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804576A - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080457B2 -_0804576A: - lsls r0, r7, 2 - ldr r1, _080457E0 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080457B2 - movs r0, 0 - bl sub_8043CDC - mov r3, r10 - lsls r4, r3, 4 - add r4, r10 - lsls r4, 2 - ldr r1, _080457C8 @ =gSprites - adds r4, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - add r1, r8 - ldr r5, _080457E4 @ =REG_BG0CNT - adds r2, r5, 0 - bl CpuSet - movs r0, 0x41 - bl sub_8043CDC - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - adds r1, 0x20 - add r1, r8 - adds r2, r5, 0 - bl CpuSet -_080457B2: - mov r0, r9 - movs r1, 0 - bl sub_8045458 -_080457BA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080457C8: .4byte gSprites -_080457CC: .4byte gBattleInterfaceStatusIcons_DynPal -_080457D0: .4byte gPlttBufferUnfaded + 0x200 -_080457D4: .4byte 0x05000200 -_080457D8: .4byte 0x06010000 -_080457DC: .4byte REG_BG2HOFS -_080457E0: .4byte 0x02017800 -_080457E4: .4byte REG_BG0CNT - thumb_func_end draw_status_ailment_maybe - - thumb_func_start sub_80457E8 -sub_80457E8: @ 80457E8 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsrs r2, r0, 24 - adds r0, r2, 0 - subs r0, 0x15 - cmp r0, 0xC - bhi _080458A8 - lsls r0, 2 - ldr r1, _08045804 @ =_08045808 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045804: .4byte _08045808 - .align 2, 0 -_08045808: - .4byte _0804583C - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045852 - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045868 - .4byte _080458A8 - .4byte _080458A8 - .4byte _0804587E - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045894 -_0804583C: - movs r2, 0x15 - cmp r3, 0 - beq _080458A8 - movs r2, 0x47 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x65 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x56 - b _080458A8 -_08045852: - movs r2, 0x18 - cmp r3, 0 - beq _080458A8 - movs r2, 0x4A - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x68 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x59 - b _080458A8 -_08045868: - movs r2, 0x1B - cmp r3, 0 - beq _080458A8 - movs r2, 0x4D - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x6B - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x5C - b _080458A8 -_0804587E: - movs r2, 0x1E - cmp r3, 0 - beq _080458A8 - movs r2, 0x50 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x6E - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x5F - b _080458A8 -_08045894: - movs r2, 0x21 - cmp r3, 0 - beq _080458A8 - movs r2, 0x53 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x71 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x62 -_080458A8: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80457E8 - - thumb_func_start sub_80458B0 -sub_80458B0: @ 80458B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08045984 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r0, _08045988 @ =0x02000520 - adds r6, r1, r0 - movs r1, 0x7 - mov r8, r1 - ldr r1, _0804598C @ =gUnknown_08400DD6 - adds r0, r6, 0 - bl sub_80034D4 - movs r4, 0 -_080458EE: - movs r0, 0x2B - bl sub_8043CDC - lsls r1, r4, 6 - adds r1, r6, r1 - ldr r2, _08045990 @ =REG_BG0CNT - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bcc _080458EE - movs r7, 0x3 - movs r2, 0x3 - add r2, r8 - mov r9, r2 - cmp r7, r9 - bge _08045974 - ldr r1, _08045984 @ =gSprites - ldr r0, _08045990 @ =REG_BG0CNT - mov r10, r0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - mov r8, r0 -_08045924: - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r5, r7, 0 - cmp r7, 0 - bge _08045934 - adds r5, r7, 0x7 -_08045934: - asrs r5, 3 - lsls r4, r5, 3 - subs r4, r7, r4 - adds r0, r4 - lsls r5, 6 - adds r0, r5 - lsls r0, 5 - ldr r2, _08045994 @ =0x06010000 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r4, 0x8 - adds r0, r4 - adds r0, r5 - lsls r0, 5 - ldr r2, _08045994 @ =0x06010000 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - adds r7, 0x1 - cmp r7, r9 - blt _08045924 -_08045974: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045984: .4byte gSprites -_08045988: .4byte 0x02000520 -_0804598C: .4byte gUnknown_08400DD6 -_08045990: .4byte REG_BG0CNT -_08045994: .4byte 0x06010000 - thumb_func_end sub_80458B0 - - thumb_func_start sub_8045998 -sub_8045998: @ 8045998 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08045A38 @ =gUnknown_020238CC - mov r8, r0 - ldr r1, _08045A3C @ =gUnknown_08400DE6 - bl StringCopy - adds r7, r0, 0 - ldr r0, _08045A40 @ =gNumSafariBalls - ldrb r1, [r0] - adds r0, r7, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_8003504 - adds r7, r0, 0 - ldr r1, _08045A44 @ =gUnknown_08400DF0 - bl StringAppend - ldr r0, _08045A48 @ =gSprites - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 7 - ldr r0, _08045A4C @ =0x02000520 - adds r7, r4, r0 - movs r6, 0x5 - adds r0, r7, 0 - mov r1, r8 - bl sub_80034D4 - ldr r0, _08045A50 @ =0x02000540 - adds r7, r4, r0 - movs r4, 0x6 -_080459F8: - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r2, r0, 22 - adds r0, r4, 0 - cmp r4, 0 - bge _08045A06 - adds r0, r4, 0x7 -_08045A06: - asrs r0, 3 - lsls r1, r0, 3 - subs r1, r4, r1 - adds r1, 0x18 - adds r1, r2, r1 - lsls r0, 6 - adds r1, r0 - lsls r1, 5 - ldr r0, _08045A54 @ =0x06010000 - adds r1, r0 - adds r0, r7, 0 - ldr r2, _08045A58 @ =REG_BG0CNT - bl CpuSet - adds r7, 0x40 - adds r4, 0x1 - adds r0, r6, 0x6 - cmp r4, r0 - blt _080459F8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045A38: .4byte gUnknown_020238CC -_08045A3C: .4byte gUnknown_08400DE6 -_08045A40: .4byte gNumSafariBalls -_08045A44: .4byte gUnknown_08400DF0 -_08045A48: .4byte gSprites -_08045A4C: .4byte 0x02000520 -_08045A50: .4byte 0x02000540 -_08045A54: .4byte 0x06010000 -_08045A58: .4byte REG_BG0CNT - thumb_func_end sub_8045998 - - thumb_func_start sub_8045A5C -sub_8045A5C: @ 8045A5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r1, _08045BE4 @ =gSprites - lsls r0, 4 - add r0, r8 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08045A92 - b _08045BF0 -_08045A92: - cmp r7, 0x3 - beq _08045A9A - cmp r7, 0 - bne _08045AAE -_08045A9A: - mov r0, r9 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8043FC0 -_08045AAE: - cmp r7, 0x1 - bhi _08045AC8 - mov r0, r9 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - movs r2, 0 - bl sub_80440EC -_08045AC8: - cmp r7, 0x2 - beq _08045AD0 - cmp r7, 0 - bne _08045AE6 -_08045AD0: - mov r0, r9 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - movs r2, 0x1 - bl sub_80440EC -_08045AE6: - cmp r7, 0x5 - beq _08045AEE - cmp r7, 0 - bne _08045B22 -_08045AEE: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - mov r0, r9 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r10 - mov r1, r8 - adds r2, r4, 0 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0 - movs r3, 0 - bl sub_8045C78 -_08045B22: - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - cmp r0, 0 - bne _08045BA6 - cmp r7, 0x6 - beq _08045B38 - cmp r7, 0 - bne _08045BA6 -_08045B38: - movs r0, 0x3 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, r9 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, _08045BE8 @ =gExperienceTables - lsls r1, r4, 2 - ldr r2, _08045BEC @ =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 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, [sp, 0x4] - str r0, [sp] - mov r0, r10 - mov r1, r8 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0x1 - movs r3, 0 - bl sub_8045C78 -_08045BA6: - cmp r7, 0x4 - beq _08045BAE - cmp r7, 0 - bne _08045BB6 -_08045BAE: - mov r0, r8 - mov r1, r9 - bl sub_80451A0 -_08045BB6: - cmp r7, 0x9 - beq _08045BBE - cmp r7, 0 - bne _08045BC4 -_08045BBE: - mov r0, r8 - bl draw_status_ailment_maybe -_08045BC4: - cmp r7, 0xA - bne _08045BCE - mov r0, r8 - bl sub_80458B0 -_08045BCE: - adds r0, r7, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08045C66 - mov r0, r8 - bl sub_8045998 - b _08045C66 - .align 2, 0 -_08045BE4: .4byte gSprites -_08045BE8: .4byte gExperienceTables -_08045BEC: .4byte gBaseStats -_08045BF0: - cmp r7, 0x3 - beq _08045BF8 - cmp r7, 0 - bne _08045C0C -_08045BF8: - mov r0, r9 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8043FC0 -_08045C0C: - cmp r7, 0x5 - beq _08045C14 - cmp r7, 0 - bne _08045C48 -_08045C14: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - mov r0, r9 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r10 - mov r1, r8 - adds r2, r4, 0 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0 - movs r3, 0 - bl sub_8045C78 -_08045C48: - cmp r7, 0x4 - beq _08045C50 - cmp r7, 0 - bne _08045C58 -_08045C50: - mov r0, r8 - mov r1, r9 - bl sub_80451A0 -_08045C58: - cmp r7, 0x9 - beq _08045C60 - cmp r7, 0 - bne _08045C66 -_08045C60: - mov r0, r8 - bl draw_status_ailment_maybe -_08045C66: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045A5C - - thumb_func_start sub_8045C78 -sub_8045C78: @ 8045C78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - cmp r2, 0 - bne _08045CBC - lsls r5, r7, 2 - adds r3, r5, r7 - lsls r3, 2 - ldr r4, _08045CB8 @ =0x02017850 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - movs r4, 0x6 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_8045F58 - adds r6, r0, 0 - adds r4, r5, 0 - b _08045D0A - .align 2, 0 -_08045CB8: .4byte 0x02017850 -_08045CBC: - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 2 - mov r10, r0 - ldr r6, _08045D50 @ =0x02017850 - add r6, r10 - ldr r0, [r6, 0x8] - ldr r1, [r6, 0xC] - ldr r2, [r6, 0x4] - movs r3, 0x8 - bl GetScaledExpFraction - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08045CDE - movs r5, 0x1 -_08045CDE: - ldr r0, [r6, 0xC] - mov r8, r0 - adds r1, r5, 0 - bl __divsi3 - cmp r0, 0 - bge _08045CEE - negs r0, r0 -_08045CEE: - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r6, 0x4] - ldr r1, [r6, 0x8] - ldr r3, _08045D50 @ =0x02017850 - adds r3, 0x10 - add r3, r10 - movs r2, 0x8 - str r2, [sp] - str r5, [sp, 0x4] - mov r2, r8 - bl sub_8045F58 - adds r6, r0, 0 -_08045D0A: - mov r0, r9 - cmp r0, 0x1 - beq _08045D22 - cmp r0, 0 - bne _08045D2A - ldr r0, _08045D54 @ =0x02017800 - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08045D2A -_08045D22: - adds r0, r7, 0 - mov r1, r9 - bl sub_8045D58 -_08045D2A: - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - bne _08045D3E - adds r0, r4, r7 - lsls r0, 2 - ldr r1, _08045D50 @ =0x02017850 - adds r0, r1 - movs r1, 0 - str r1, [r0, 0x10] -_08045D3E: - adds r0, r6, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08045D50: .4byte 0x02017850 -_08045D54: .4byte 0x02017800 - thumb_func_end sub_8045C78 - - thumb_func_start sub_8045D58 -sub_8045D58: @ 8045D58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08045D72 - cmp r1, 0x1 - beq _08045E54 - b _08045F42 -_08045D72: - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - ldr r4, _08045E00 @ =0x02017850 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_804602C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - mov r8, r1 - adds r1, r5, 0 - cmp r0, 0x18 - bhi _08045DAC - movs r2, 0x38 - mov r8, r2 - cmp r0, 0x9 - bls _08045DAC - movs r4, 0x2F - mov r8, r4 -_08045DAC: - movs r5, 0 - ldr r7, _08045E04 @ =gSprites - adds r0, r1, r6 - lsls r6, r0, 2 -_08045DB4: - ldr r0, _08045E00 @ =0x02017850 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0x1 - bhi _08045E10 - mov r0, r8 - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0x2 - adds r1, r2 - lsls r1, 5 - ldr r2, _08045E08 @ =0x06010000 - adds r1, r2 - ldr r2, _08045E0C @ =REG_BG0CNT - bl CpuSet - b _08045E3E - .align 2, 0 -_08045E00: .4byte 0x02017850 -_08045E04: .4byte gSprites -_08045E08: .4byte 0x06010000 -_08045E0C: .4byte REG_BG0CNT -_08045E10: - mov r0, r8 - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r4, _08045E4C @ =0x06010040 - adds r1, r4 - ldr r2, _08045E50 @ =REG_BG0CNT - bl CpuSet -_08045E3E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08045DB4 - b _08045F42 - .align 2, 0 -_08045E4C: .4byte 0x06010040 -_08045E50: .4byte REG_BG0CNT -_08045E54: - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - ldr r4, _08045EF0 @ =0x02017850 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x8 - str r4, [sp, 0x4] - bl sub_804602C - ldr r1, _08045EF4 @ =gUnknown_02024A6A - lsls r0, r6, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08045EF8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - cmp r0, 0x64 - bne _08045EAA - movs r5, 0 - movs r2, 0 -_08045E98: - mov r0, sp - adds r0, r5 - adds r0, 0x8 - strb r2, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08045E98 -_08045EAA: - movs r5, 0 - ldr r7, _08045EFC @ =gSprites - adds r0, r1, r6 - lsls r0, 2 - ldr r1, _08045EF0 @ =0x02017850 - adds r4, r0, r1 -_08045EB6: - cmp r5, 0x3 - bhi _08045F08 - movs r0, 0xC - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0 - adds r2, 0x24 - adds r1, r2 - lsls r1, 5 - ldr r2, _08045F00 @ =0x06010000 - adds r1, r2 - ldr r2, _08045F04 @ =REG_BG0CNT - bl CpuSet - b _08045F38 - .align 2, 0 -_08045EF0: .4byte 0x02017850 -_08045EF4: .4byte gUnknown_02024A6A -_08045EF8: .4byte gPlayerParty -_08045EFC: .4byte gSprites -_08045F00: .4byte 0x06010000 -_08045F04: .4byte REG_BG0CNT -_08045F08: - movs r0, 0xC - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r2, _08045F50 @ =0x06010b80 - adds r1, r2 - ldr r2, _08045F54 @ =REG_BG0CNT - bl CpuSet -_08045F38: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08045EB6 -_08045F42: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045F50: .4byte 0x06010b80 -_08045F54: .4byte REG_BG0CNT - thumb_func_end sub_8045D58 - - thumb_func_start sub_8045F58 -sub_8045F58: @ 8045F58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r4, r1, 0 - mov r8, r2 - adds r5, r3, 0 - ldr r1, [sp, 0x18] - ldr r0, [sp, 0x1C] - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 27 - lsrs r2, r1, 24 - ldr r1, [r5] - ldr r0, _08045F84 @ =0xffff8000 - cmp r1, r0 - bne _08045F8A - cmp r7, r2 - bge _08045F88 - lsls r0, r4, 8 - str r0, [r5] - b _08045F8A - .align 2, 0 -_08045F84: .4byte 0xffff8000 -_08045F88: - str r4, [r5] -_08045F8A: - mov r0, r8 - subs r4, r0 - cmp r4, 0 - bge _08045F96 - movs r4, 0 - b _08045F9C -_08045F96: - cmp r4, r7 - ble _08045F9C - adds r4, r7, 0 -_08045F9C: - cmp r7, r2 - bge _08045FB8 - ldr r0, [r5] - asrs r1, r0, 8 - adds r6, r0, 0 - cmp r4, r1 - bne _08045FC4 - movs r0, 0xFF - ands r0, r6 - cmp r0, 0 - bne _08045FC4 - movs r0, 0x1 - negs r0, r0 - b _08046020 -_08045FB8: - ldr r6, [r5] - cmp r4, r6 - bne _08045FC4 - movs r0, 0x1 - negs r0, r0 - b _08046020 -_08045FC4: - cmp r7, r2 - bge _08045FFE - lsls r0, r7, 8 - adds r1, r2, 0 - bl __divsi3 - mov r1, r8 - cmp r1, 0 - bge _08045FE2 - adds r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - cmp r2, r4 - blt _0804601E - b _08045FF6 -_08045FE2: - subs r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - movs r1, 0xFF - ands r0, r1 - cmp r0, 0 - ble _08045FF2 - adds r2, 0x1 -_08045FF2: - cmp r2, r4 - bgt _0804601E -_08045FF6: - lsls r0, r4, 8 - str r0, [r5] - adds r2, r4, 0 - b _0804601E -_08045FFE: - mov r0, r8 - cmp r0, 0 - bge _08046010 - ldr r0, [r5] - adds r0, r3 - str r0, [r5] - cmp r0, r4 - ble _0804601C - b _0804601A -_08046010: - ldr r0, [r5] - subs r0, r3 - str r0, [r5] - cmp r0, r4 - bge _0804601C -_0804601A: - str r4, [r5] -_0804601C: - ldr r2, [r5] -_0804601E: - adds r0, r2, 0 -_08046020: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8045F58 - - thumb_func_start sub_804602C -sub_804602C: @ 804602C - push {r4-r7,lr} - adds r4, r0, 0 - mov r12, r3 - ldr r7, [sp, 0x14] - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r6, r0, 24 - subs r5, r1, r2 - cmp r5, 0 - bge _08046044 - movs r5, 0 - b _0804604A -_08046044: - cmp r5, r4 - ble _0804604A - adds r5, r4, 0 -_0804604A: - lsls r0, r6, 27 - lsrs r3, r0, 24 - movs r1, 0 - cmp r1, r6 - bcs _08046064 - movs r2, 0 -_08046056: - adds r0, r7, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _08046056 -_08046064: - cmp r4, r3 - bge _08046078 - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 - asrs r0, 8 - b _08046084 -_08046078: - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 -_08046084: - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - cmp r3, 0 - bne _0804609A - cmp r5, 0 - ble _0804609A - movs r0, 0x1 - strb r0, [r7] - movs r3, 0x1 - b _080460BE -_0804609A: - movs r1, 0 - movs r4, 0x8 -_0804609E: - cmp r1, r6 - bcs _080460BE - cmp r2, 0x7 - bls _080460BA - adds r0, r7, r1 - strb r4, [r0] - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - b _0804609E -_080460BA: - adds r0, r7, r1 - strb r2, [r0] -_080460BE: - adds r0, r3, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804602C - - thumb_func_start sub_80460C8 -sub_80460C8: @ 80460C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - mov r8, r3 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - movs r3, 0x6 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - adds r3, r6, 0 - bl sub_8045F58 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_8046128 - ldr r0, [r5] - cmp r0, 0x2F - bgt _08046108 - ldr r0, [r6] - lsls r0, 8 - lsrs r1, r0, 16 - b _0804610A -_08046108: - ldrh r1, [r6] -_0804610A: - movs r2, 0 - ldrsh r0, [r5, r2] - lsls r1, 16 - asrs r1, 16 - mov r2, r8 - bl sub_804373C - lsls r0, r7, 16 - asrs r0, 16 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80460C8 - - thumb_func_start sub_8046128 -sub_8046128: @ 8046128 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x1C - adds r5, r0, 0 - adds r3, r1, 0 - mov r8, r2 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_804602C - movs r3, 0 - add r7, sp, 0x10 - mov r12, r7 - ldrb r0, [r5, 0xC] - lsls r6, r0, 27 - ldr r4, [r5, 0x10] -_08046154: - lsls r2, r3, 1 - add r2, r12 - lsrs r1, r6, 15 - mov r0, sp - adds r0, r3 - adds r0, 0x8 - ldrb r0, [r0] - adds r0, r4, r0 - orrs r1, r0 - strh r1, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _08046154 - adds r0, r7, 0 - mov r1, r8 - movs r2, 0x6 - bl CpuSet - add sp, 0x1C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8046128 - - thumb_func_start GetScaledExpFraction -GetScaledExpFraction: @ 8046188 - push {r4-r7,lr} - adds r6, r2, 0 - lsls r3, 27 - lsrs r7, r3, 24 - subs r5, r0, r1 - cmp r5, 0 - bge _0804619A - movs r5, 0 - b _080461A0 -_0804619A: - cmp r5, r6 - ble _080461A0 - adds r5, r6, 0 -_080461A0: - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - subs r0, r4, r0 - cmp r0, 0 - bge _080461C8 - negs r0, r0 -_080461C8: - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetScaledExpFraction - - thumb_func_start GetScaledHPFraction -GetScaledHPFraction: @ 80461D4 - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - muls r0, r2 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080461F8 - cmp r4, 0 - ble _080461F8 - movs r0, 0x1 -_080461F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetScaledHPFraction - - thumb_func_start GetHPBarLevel -GetHPBarLevel: @ 8046200 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08046212 - movs r0, 0x4 - b _0804622E -_08046212: - movs r2, 0x30 - bl GetScaledHPFraction - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x3 - cmp r1, 0x18 - bhi _0804622E - movs r0, 0x2 - cmp r1, 0x9 - bhi _0804622E - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804622E: - pop {r1} - bx r1 - thumb_func_end GetHPBarLevel - - .align 2, 0 @ Don't pad with nop. |