diff options
Diffstat (limited to 'asm/evolution_graphics.s')
-rw-r--r-- | asm/evolution_graphics.s | 1829 |
1 files changed, 1829 insertions, 0 deletions
diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s new file mode 100644 index 000000000..1130e085e --- /dev/null +++ b/asm/evolution_graphics.s @@ -0,0 +1,1829 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_84 +nullsub_84: @ 814951C + bx lr + thumb_func_end nullsub_84 + + thumb_func_start sub_8149520 +sub_8149520: @ 8149520 + push {r4,r5,lr} + sub sp, 0x4 + movs r4, 0 + ldr r5, _08149554 @ =gUnknown_08416ED0 +_08149528: + adds r0, r4, 0 + adds r0, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 1 + adds r1, r5 + ldrh r1, [r1] + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xB + bls _08149528 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149554: .4byte gUnknown_08416ED0 + thumb_func_end sub_8149520 + + thumb_func_start sub_8149558 +sub_8149558: @ 8149558 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + ble _08149606 + movs r2, 0x3C + ldrsh r0, [r4, r2] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0x50 + bl __divsi3 + movs r1, 0x58 + subs r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08149592 + adds r0, 0x3 +_08149592: + asrs r0, 2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0x4 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081495BC + ldrh r0, [r4, 0x38] + subs r0, 0x1 + strh r0, [r4, 0x38] +_081495BC: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _081495D2 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + b _081495D8 +_081495D2: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x14 +_081495D8: + strb r0, [r1] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _081495E4 + adds r0, 0x3 +_081495E4: + asrs r0, 2 + adds r0, 0x14 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1F + bls _081495F2 + movs r2, 0x1F +_081495F2: + movs r0, 0x1F + ands r2, r0 + lsls r2, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + b _0814960C +_08149606: + adds r0, r4, 0 + bl DestroySprite +_0814960C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149558 + + thumb_func_start sub_8149614 +sub_8149614: @ 8149614 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08149664 @ =gSpriteTemplate_8416EB8 + movs r1, 0x78 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814965E + ldr r4, _08149668 @ =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + movs r0, 0x30 + strh r0, [r2, 0x38] + strh r5, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0x34 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r2, 0x3] + adds r4, 0x1C + adds r3, r4 + ldr r0, _0814966C @ =sub_8149558 + str r0, [r3] +_0814965E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149664: .4byte gSpriteTemplate_8416EB8 +_08149668: .4byte gSprites +_0814966C: .4byte sub_8149558 + thumb_func_end sub_8149614 + + thumb_func_start sub_8149670 +sub_8149670: @ 8149670 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0x57 + bgt _081496D6 + movs r2, 0x3C + ldrsh r0, [r4, r2] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0x5 + bl __divsi3 + adds r0, 0x8 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _081496A8 + adds r0, 0x3 +_081496A8: + asrs r0, 2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + lsls r0, 26 + lsrs r0, 24 + movs r1, 0x28 + bl Sin + adds r0, 0x8 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + b _081496DC +_081496D6: + adds r0, r4, 0 + bl DestroySprite +_081496DC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149670 + + thumb_func_start sub_81496E4 +sub_81496E4: @ 81496E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08149740 @ =gSpriteTemplate_8416EB8 + movs r1, 0x78 + movs r2, 0x8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814973A + ldr r4, _08149744 @ =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + movs r0, 0x8 + strh r0, [r2, 0x38] + strh r5, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0xC + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x32 + orrs r0, r1 + strb r0, [r2, 0x3] + adds r2, 0x43 + movs r0, 0x1 + strb r0, [r2] + adds r4, 0x1C + adds r3, r4 + ldr r0, _08149748 @ =sub_8149670 + str r0, [r3] +_0814973A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149740: .4byte gSpriteTemplate_8416EB8 +_08149744: .4byte gSprites +_08149748: .4byte sub_8149670 + thumb_func_end sub_81496E4 + + thumb_func_start sub_814974C +sub_814974C: @ 814974C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + ble _08149788 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x4 + strh r0, [r4, 0x3A] + b _0814978E +_08149788: + adds r0, r4, 0 + bl DestroySprite +_0814978E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814974C + + thumb_func_start sub_8149794 +sub_8149794: @ 8149794 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _081497F0 @ =gSpriteTemplate_8416EB8 + movs r1, 0x78 + movs r2, 0x38 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _081497EA + ldr r4, _081497F4 @ =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + strh r5, [r2, 0x34] + movs r0, 0x78 + strh r0, [r2, 0x38] + strh r6, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0x7C + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r2, 0x3] + adds r2, 0x43 + movs r0, 0x1 + strb r0, [r2] + adds r4, 0x1C + adds r3, r4 + ldr r0, _081497F8 @ =sub_814974C + str r0, [r3] +_081497EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081497F0: .4byte gSpriteTemplate_8416EB8 +_081497F4: .4byte gSprites +_081497F8: .4byte sub_814974C + thumb_func_end sub_8149794 + + thumb_func_start sub_81497FC +sub_81497FC: @ 81497FC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08149810 + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_08149810: + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0x7F + bgt _081498C0 + lsls r0, r1, 24 + lsrs r0, 24 + movs r5, 0x38 + ldrsh r1, [r4, r5] + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + muls r0, r1 + movs r1, 0x3 + bl __divsi3 + adds r0, 0x78 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x3A] + adds r3, r0, 0x1 + strh r3, [r4, 0x3A] + movs r5, 0x3A + ldrsh r1, [r4, r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + cmp r0, 0 + bge _08149854 + adds r0, 0x7F +_08149854: + asrs r0, 7 + movs r1, 0x1F + subs r1, r0 + lsls r1, 24 + lsrs r2, r1, 24 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x40 + ble _08149870 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] + b _081498A0 +_08149870: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x14 + strb r0, [r1] + ldrh r1, [r4, 0x3A] + movs r5, 0x3A + ldrsh r0, [r4, r5] + cmp r0, 0x70 + ble _081498A0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081498A0 + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_081498A0: + cmp r2, 0x13 + bhi _081498A6 + movs r2, 0x14 +_081498A6: + movs r0, 0x1F + ands r2, r0 + lsls r2, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + b _081498C6 +_081498C0: + adds r0, r4, 0 + bl DestroySprite +_081498C6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81497FC + + thumb_func_start sub_81498CC +sub_81498CC: @ 81498CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _08149948 @ =gSpriteTemplate_8416EB8 + movs r1, 0x78 + movs r2, 0x38 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x40 + beq _0814993C + bl Random + ldr r6, _0814994C @ =gSprites + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + bl __umodsi3 + movs r1, 0x3 + subs r1, r0 + movs r0, 0 + mov r8, r0 + strh r1, [r4, 0x34] + bl Random + movs r1, 0x3F + ands r1, r0 + adds r1, 0x30 + strh r1, [r4, 0x38] + mov r0, r8 + strh r0, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r4, 0x3] + adds r4, 0x43 + movs r0, 0x14 + strb r0, [r4] + adds r6, 0x1C + adds r5, r6 + ldr r0, _08149950 @ =sub_81497FC + str r0, [r5] +_0814993C: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149948: .4byte gSpriteTemplate_8416EB8 +_0814994C: .4byte gSprites +_08149950: .4byte sub_81497FC + thumb_func_end sub_81498CC + + thumb_func_start sub_8149954 +sub_8149954: @ 8149954 + push {lr} + ldr r0, _08149968 @ =gUnknown_08416E84 + bl LoadCompressedObjectPic + ldr r0, _0814996C @ =gUnknown_08416E94 + bl LoadSpritePalettes + pop {r0} + bx r0 + .align 2, 0 +_08149968: .4byte gUnknown_08416E84 +_0814996C: .4byte gUnknown_08416E94 + thumb_func_end sub_8149954 + + thumb_func_start sub_8149970 +sub_8149970: @ 8149970 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149998 @ =sub_81499A0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814999C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149998: .4byte sub_81499A0 +_0814999C: .4byte gTasks + thumb_func_end sub_8149970 + + thumb_func_start sub_81499A0 +sub_81499A0: @ 81499A0 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _081499E4 @ =gTasks + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x3 + lsls r0, r1 + ldr r1, _081499E8 @ =0x00007fff + str r1, [sp] + movs r1, 0xA + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _081499EC @ =sub_81499F0 + str r0, [r5] + movs r0, 0x8C + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081499E4: .4byte gTasks +_081499E8: .4byte 0x00007fff +_081499EC: .4byte sub_81499F0 + thumb_func_end sub_81499A0 + + thumb_func_start sub_81499F0 +sub_81499F0: @ 81499F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149A48 @ =gTasks + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x26] + movs r4, 0x26 + ldrsh r0, [r1, r4] + cmp r0, 0x3F + bgt _08149A4C + movs r0, 0x7 + ands r0, r2 + adds r7, r3, 0 + cmp r0, 0 + bne _08149A36 + movs r4, 0 + adds r6, r1, 0 +_08149A18: + ldrh r1, [r6, 0x26] + movs r0, 0x78 + ands r0, r1 + lsls r0, 1 + lsls r1, r4, 6 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_8149614 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08149A18 +_08149A36: + ldr r0, _08149A48 @ =gTasks + adds r1, r7, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149A54 + .align 2, 0 +_08149A48: .4byte gTasks +_08149A4C: + movs r0, 0x60 + strh r0, [r1, 0x26] + ldr r0, _08149A5C @ =sub_8149A60 + str r0, [r1] +_08149A54: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08149A5C: .4byte sub_8149A60 + thumb_func_end sub_81499F0 + + thumb_func_start sub_8149A60 +sub_8149A60: @ 8149A60 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08149A80 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r3, [r1, 0x26] + movs r4, 0x26 + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08149A84 + subs r0, r3, 0x1 + strh r0, [r1, 0x26] + b _08149A8A + .align 2, 0 +_08149A80: .4byte gTasks +_08149A84: + adds r0, r2, 0 + bl DestroyTask +_08149A8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149A60 + + thumb_func_start sub_8149A90 +sub_8149A90: @ 8149A90 + push {lr} + ldr r0, _08149AA4 @ =sub_8149AA8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08149AA4: .4byte sub_8149AA8 + thumb_func_end sub_8149A90 + + thumb_func_start sub_8149AA8 +sub_8149AA8: @ 8149AA8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r1, _08149AD4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r1, _08149AD8 @ =sub_8149ADC + str r1, [r0] + movs r0, 0xB7 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149AD4: .4byte gTasks +_08149AD8: .4byte sub_8149ADC + thumb_func_end sub_8149AA8 + + thumb_func_start sub_8149ADC +sub_8149ADC: @ 8149ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149B20 @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0x26 + ldrsh r0, [r1, r3] + cmp r0, 0x5F + bgt _08149B24 + adds r6, r2, 0 + cmp r0, 0x5 + bgt _08149B0E + movs r4, 0 +_08149AFC: + lsls r0, r4, 28 + lsrs r0, 24 + bl sub_81496E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x8 + bls _08149AFC +_08149B0E: + ldr r0, _08149B20 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149B28 + .align 2, 0 +_08149B20: .4byte gTasks +_08149B24: + ldr r0, _08149B30 @ =sub_8149B34 + str r0, [r1] +_08149B28: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149B30: .4byte sub_8149B34 + thumb_func_end sub_8149ADC + + thumb_func_start sub_8149B34 +sub_8149B34: @ 8149B34 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_8149B34 + + thumb_func_start sub_8149B44 +sub_8149B44: @ 8149B44 + push {lr} + ldr r0, _08149B58 @ =sub_8149B5C + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08149B58: .4byte sub_8149B5C + thumb_func_end sub_8149B44 + + thumb_func_start sub_8149B5C +sub_8149B5C: @ 8149B5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r1, _08149B88 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r1, _08149B8C @ =sub_8149B90 + str r1, [r0] + movs r0, 0x66 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149B88: .4byte gTasks +_08149B8C: .4byte sub_8149B90 + thumb_func_end sub_8149B5C + + thumb_func_start sub_8149B90 +sub_8149B90: @ 8149B90 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149BFC @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0x26 + ldrsh r0, [r1, r3] + cmp r0, 0x2F + bgt _08149C00 + adds r6, r2, 0 + cmp r0, 0 + bne _08149BC4 + movs r4, 0 +_08149BB0: + lsls r0, r4, 28 + lsrs r0, 24 + movs r1, 0x4 + bl sub_8149794 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08149BB0 +_08149BC4: + ldr r0, _08149BFC @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0x20 + bne _08149BEA + movs r4, 0 +_08149BD6: + lsls r0, r4, 28 + lsrs r0, 24 + movs r1, 0x8 + bl sub_8149794 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08149BD6 +_08149BEA: + ldr r0, _08149BFC @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149C04 + .align 2, 0 +_08149BFC: .4byte gTasks +_08149C00: + ldr r0, _08149C0C @ =sub_8149C10 + str r0, [r1] +_08149C04: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149C0C: .4byte sub_8149C10 + thumb_func_end sub_8149B90 + + thumb_func_start sub_8149C10 +sub_8149C10: @ 8149C10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_8149C10 + + thumb_func_start sub_8149C20 +sub_8149C20: @ 8149C20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149C48 @ =sub_8149C50 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149C4C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xC] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149C48: .4byte sub_8149C50 +_08149C4C: .4byte gTasks + thumb_func_end sub_8149C20 + + thumb_func_start sub_8149C50 +sub_8149C50: @ 8149C50 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _08149C98 @ =gTasks + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + ldr r0, _08149C9C @ =gPlttBufferFaded + 0x40 + ldr r1, _08149CA0 @ =gPlttBufferUnfaded + 0x40 + movs r2, 0x30 + bl CpuSet + ldr r0, _08149CA4 @ =0xfff9001c + ldr r1, _08149CA8 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08149CAC @ =sub_8149CB0 + str r0, [r5] + movs r0, 0xCA + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149C98: .4byte gTasks +_08149C9C: .4byte gPlttBufferFaded + 0x40 +_08149CA0: .4byte gPlttBufferUnfaded + 0x40 +_08149CA4: .4byte 0xfff9001c +_08149CA8: .4byte 0x00007fff +_08149CAC: .4byte sub_8149CB0 + thumb_func_end sub_8149C50 + + thumb_func_start sub_8149CB0 +sub_8149CB0: @ 8149CB0 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08149CE8 @ =gTasks + lsls r5, r6, 2 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x26 + ldrsh r2, [r1, r0] + cmp r2, 0x7F + bgt _08149D2C + adds r0, r2, 0 + cmp r0, 0 + beq _08149CEC + cmp r0, 0x20 + beq _08149D00 + cmp r2, 0x31 + bgt _08149D10 + bl Random + movs r1, 0x7 + ands r0, r1 + bl sub_81498CC + b _08149D10 + .align 2, 0 +_08149CE8: .4byte gTasks +_08149CEC: + movs r4, 0 +_08149CEE: + adds r0, r4, 0 + bl sub_81498CC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08149CEE + b _08149D10 +_08149D00: + ldr r0, _08149D20 @ =0xffff001c + ldr r1, _08149D24 @ =0x00007fff + str r1, [sp] + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_08149D10: + ldr r0, _08149D28 @ =gTasks + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149D30 + .align 2, 0 +_08149D20: .4byte 0xffff001c +_08149D24: .4byte 0x00007fff +_08149D28: .4byte gTasks +_08149D2C: + ldr r0, _08149D38 @ =sub_8149D3C + str r0, [r1] +_08149D30: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149D38: .4byte sub_8149D3C + thumb_func_end sub_8149CB0 + + thumb_func_start sub_8149D3C +sub_8149D3C: @ 8149D3C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08149D58 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149D54 + adds r0, r2, 0 + bl DestroyTask +_08149D54: + pop {r0} + bx r0 + .align 2, 0 +_08149D58: .4byte gPaletteFade + thumb_func_end sub_8149D3C + + thumb_func_start sub_8149D5C +sub_8149D5C: @ 8149D5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149D84 @ =sub_8149D8C + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149D88 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xC] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149D84: .4byte sub_8149D8C +_08149D88: .4byte gTasks + thumb_func_end sub_8149D5C + + thumb_func_start sub_8149D8C +sub_8149D8C: @ 8149D8C + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _08149DD4 @ =gTasks + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + ldr r0, _08149DD8 @ =gPlttBufferFaded + 0x40 + ldr r1, _08149DDC @ =gPlttBufferUnfaded + 0x40 + movs r2, 0x30 + bl CpuSet + ldr r0, _08149DE0 @ =0xfff90001 + ldr r1, _08149DE4 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08149DE8 @ =sub_8149DEC + str r0, [r5] + movs r0, 0xCA + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149DD4: .4byte gTasks +_08149DD8: .4byte gPlttBufferFaded + 0x40 +_08149DDC: .4byte gPlttBufferUnfaded + 0x40 +_08149DE0: .4byte 0xfff90001 +_08149DE4: .4byte 0x00007fff +_08149DE8: .4byte sub_8149DEC + thumb_func_end sub_8149D8C + + thumb_func_start sub_8149DEC +sub_8149DEC: @ 8149DEC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08149E24 @ =gTasks + lsls r5, r6, 2 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x26 + ldrsh r2, [r1, r0] + cmp r2, 0x7F + bgt _08149E68 + adds r0, r2, 0 + cmp r0, 0 + beq _08149E28 + cmp r0, 0x20 + beq _08149E3C + cmp r2, 0x31 + bgt _08149E4C + bl Random + movs r1, 0x7 + ands r0, r1 + bl sub_81498CC + b _08149E4C + .align 2, 0 +_08149E24: .4byte gTasks +_08149E28: + movs r4, 0 +_08149E2A: + adds r0, r4, 0 + bl sub_81498CC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08149E2A + b _08149E4C +_08149E3C: + ldr r0, _08149E5C @ =0xffff0001 + ldr r1, _08149E60 @ =0x00007fff + str r1, [sp] + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_08149E4C: + ldr r0, _08149E64 @ =gTasks + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149E6C + .align 2, 0 +_08149E5C: .4byte 0xffff0001 +_08149E60: .4byte 0x00007fff +_08149E64: .4byte gTasks +_08149E68: + ldr r0, _08149E74 @ =sub_8149D3C + str r0, [r1] +_08149E6C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149E74: .4byte sub_8149D3C + thumb_func_end sub_8149DEC + + thumb_func_start nullsub_85 +nullsub_85: @ 8149E78 + bx lr + thumb_func_end nullsub_85 + + thumb_func_start sub_8149E7C +sub_8149E7C: @ 8149E7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + ldr r3, _08149FB0 @ =sub_8149FC8 + ldr r2, _08149FB4 @ =0x00007fff +_08149E96: + lsls r0, r1, 1 + add r0, sp + adds r0, 0x4 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _08149E96 + adds r0, r3, 0 + movs r1, 0 + bl CreateTask + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08149FB8 @ =gTasks + mov r1, r8 + lsls r6, r1, 2 + add r6, r8 + lsls r6, 3 + adds r6, r0 + strh r5, [r6, 0xA] + strh r7, [r6, 0xC] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r6, 0xE] + movs r0, 0x10 + strh r0, [r6, 0x10] + movs r4, 0x80 + lsls r4, 9 + str r1, [sp] + movs r0, 0x1E + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + movs r0, 0x10 + ldrsh r1, [r6, r0] + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1F + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldr r1, _08149FBC @ =gSprites + mov r9, r1 + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + mov r3, r9 + adds r3, 0x1C + adds r0, r2, r3 + ldr r1, _08149FC0 @ =nullsub_85 + str r1, [r0] + add r2, r9 + ldrb r1, [r2, 0x1] + movs r4, 0x4 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x3C + orrs r0, r1 + strb r0, [r2, 0x3] + movs r0, 0x3E + adds r0, r2 + mov r10, r0 + ldrb r1, [r0] + movs r5, 0x5 + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + mov r1, r10 + strb r0, [r1] + ldrb r1, [r2, 0x5] + lsrs r1, 4 + lsls r1, 5 + ldr r0, _08149FC4 @ =gPlttBufferFaded + 0x200 + mov r10, r0 + add r1, r10 + add r0, sp, 0x4 + movs r2, 0x10 + str r3, [sp, 0x24] + bl CpuSet + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + ldr r3, [sp, 0x24] + adds r3, r1, r3 + ldr r0, _08149FC0 @ =nullsub_85 + str r0, [r3] + add r1, r9 + ldrb r0, [r1, 0x1] + ands r4, r0 + movs r0, 0x1 + orrs r4, r0 + strb r4, [r1, 0x1] + ldrb r0, [r1, 0x3] + movs r2, 0x3E + orrs r0, r2 + strb r0, [r1, 0x3] + adds r2, r1, 0 + adds r2, 0x3E + ldrb r0, [r2] + ands r5, r0 + strb r5, [r2] + ldrb r1, [r1, 0x5] + lsrs r1, 4 + lsls r1, 5 + add r1, r10 + add r0, sp, 0x4 + movs r2, 0x10 + bl CpuSet + movs r1, 0 + strh r1, [r6, 0x18] + mov r0, r8 + 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 +_08149FB0: .4byte sub_8149FC8 +_08149FB4: .4byte 0x00007fff +_08149FB8: .4byte gTasks +_08149FBC: .4byte gSprites +_08149FC0: .4byte nullsub_85 +_08149FC4: .4byte gPlttBufferFaded + 0x200 + thumb_func_end sub_8149E7C + + thumb_func_start sub_8149FC8 +sub_8149FC8: @ 8149FC8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149FE4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x12] + movs r0, 0x8 + strh r0, [r1, 0x14] + ldr r0, _08149FE8 @ =sub_8149FEC + str r0, [r1] + bx lr + .align 2, 0 +_08149FE4: .4byte gTasks +_08149FE8: .4byte sub_8149FEC + thumb_func_end sub_8149FC8 + + thumb_func_start sub_8149FEC +sub_8149FEC: @ 8149FEC + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0814A00C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x18 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _0814A010 + adds r0, r3, 0 + bl sub_814A208 + b _0814A032 + .align 2, 0 +_0814A00C: .4byte gTasks +_0814A010: + ldrh r1, [r2, 0x14] + movs r4, 0x14 + ldrsh r0, [r2, r4] + cmp r0, 0x80 + bne _0814A022 + adds r0, r3, 0 + bl sub_814A158 + b _0814A032 +_0814A022: + adds r0, r1, 0x2 + strh r0, [r2, 0x14] + ldrh r0, [r2, 0x12] + movs r1, 0x1 + eors r0, r1 + strh r0, [r2, 0x12] + ldr r0, _0814A038 @ =sub_814A03C + str r0, [r2] +_0814A032: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A038: .4byte sub_814A03C + thumb_func_end sub_8149FEC + + thumb_func_start sub_814A03C +sub_814A03C: @ 814A03C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0814A060 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x18 + ldrsh r0, [r2, r3] + adds r5, r1, 0 + cmp r0, 0 + beq _0814A068 + ldr r0, _0814A064 @ =sub_814A208 + str r0, [r2] + b _0814A14C + .align 2, 0 +_0814A060: .4byte gTasks +_0814A064: .4byte sub_814A208 +_0814A068: + movs r6, 0 + movs r7, 0x12 + ldrsh r0, [r2, r7] + cmp r0, 0 + bne _0814A0B8 + movs r0, 0xE + ldrsh r1, [r2, r0] + movs r3, 0x14 + ldrsh r0, [r2, r3] + movs r3, 0x80 + lsls r3, 1 + subs r0, r3, r0 + cmp r1, r0 + bge _0814A08E + ldrh r0, [r2, 0x14] + ldrh r7, [r2, 0xE] + adds r0, r7 + strh r0, [r2, 0xE] + b _0814A092 +_0814A08E: + strh r3, [r2, 0xE] + movs r6, 0x1 +_0814A092: + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r5 + movs r0, 0x10 + ldrsh r1, [r3, r0] + movs r7, 0x14 + ldrsh r0, [r3, r7] + adds r0, 0x10 + cmp r1, r0 + ble _0814A0B2 + ldrh r0, [r3, 0x10] + ldrh r1, [r3, 0x14] + subs r0, r1 + strh r0, [r3, 0x10] + b _0814A102 +_0814A0B2: + movs r0, 0x10 + strh r0, [r3, 0x10] + b _0814A0FC +_0814A0B8: + movs r0, 0x10 + ldrsh r1, [r2, r0] + movs r3, 0x14 + ldrsh r0, [r2, r3] + movs r3, 0x80 + lsls r3, 1 + subs r0, r3, r0 + cmp r1, r0 + bge _0814A0D4 + ldrh r0, [r2, 0x14] + ldrh r7, [r2, 0x10] + adds r0, r7 + strh r0, [r2, 0x10] + b _0814A0D8 +_0814A0D4: + strh r3, [r2, 0x10] + movs r6, 0x1 +_0814A0D8: + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r5 + movs r0, 0xE + ldrsh r1, [r3, r0] + movs r7, 0x14 + ldrsh r0, [r3, r7] + adds r0, 0x10 + cmp r1, r0 + ble _0814A0F8 + ldrh r0, [r3, 0xE] + ldrh r1, [r3, 0x14] + subs r0, r1 + strh r0, [r3, 0xE] + b _0814A102 +_0814A0F8: + movs r0, 0x10 + strh r0, [r3, 0xE] +_0814A0FC: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0814A102: + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r5 + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r4, 0x80 + lsls r4, 9 + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1E + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + movs r3, 0x10 + ldrsh r1, [r5, r3] + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1F + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + cmp r6, 0x2 + bne _0814A14C + ldr r0, _0814A154 @ =sub_8149FEC + str r0, [r5] +_0814A14C: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A154: .4byte sub_8149FEC + thumb_func_end sub_814A03C + + thumb_func_start sub_814A158 +sub_814A158: @ 814A158 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0814A200 @ =gSprites + mov r8, r1 + ldr r1, _0814A204 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x1] + movs r6, 0x4 + negs r6, r6 + adds r1, r6, 0 + ands r1, r3 + strb r1, [r2, 0x1] + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x3] + movs r5, 0x3F + negs r5, r5 + adds r1, r5, 0 + ands r1, r3 + strb r1, [r2, 0x3] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x1] + ands r6, r2 + strb r6, [r1, 0x1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x3] + ands r5, r2 + strb r5, [r1, 0x3] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + ands r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A200: .4byte gSprites +_0814A204: .4byte gTasks + thumb_func_end sub_814A158 + + thumb_func_start sub_814A208 +sub_814A208: @ 814A208 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0814A2B0 @ =gSprites + mov r8, r1 + ldr r1, _0814A2B4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x1] + movs r6, 0x4 + negs r6, r6 + adds r1, r6, 0 + ands r1, r3 + strb r1, [r2, 0x1] + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x3] + movs r5, 0x3F + negs r5, r5 + adds r1, r5, 0 + ands r1, r3 + strb r1, [r2, 0x3] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + ands r2, r3 + strb r2, [r1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x1] + ands r6, r2 + strb r6, [r1, 0x1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x3] + ands r5, r2 + strb r5, [r1, 0x3] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A2B0: .4byte gSprites +_0814A2B4: .4byte gTasks + thumb_func_end sub_814A208 + + .align 2, 0 @ Don't pad with nop. |