diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-09 15:23:14 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-09 15:23:14 -0400 |
commit | 9b01d4fee588b0733cf4242173d43a9fc5889e57 (patch) | |
tree | 34ebe652060b01c09664c2d6bc575c564eb3a965 | |
parent | d850ef92c66080733746a4a8253d384603e064f5 (diff) |
Rename some files
-rw-r--r-- | asm/dodrio_berry_picking.s | 17478 | ||||
-rw-r--r-- | asm/pokemon_jump_2.s | 8055 | ||||
-rw-r--r-- | asm/unk_81507FC.s | 11411 | ||||
-rw-r--r-- | ld_script.txt | 4 |
4 files changed, 18474 insertions, 18474 deletions
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s index f47e312ff..19b2b2c43 100644 --- a/asm/dodrio_berry_picking.s +++ b/asm/dodrio_berry_picking.s @@ -5,475 +5,449 @@ .text - thumb_func_start sub_8147AA8 -sub_8147AA8: @ 8147AA8 - push {r4-r7,lr} - adds r6, r1, 0 + thumb_func_start sub_81507FC +sub_81507FC: @ 81507FC + push {r4-r6,lr} + adds r5, r1, 0 lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _08147B20 @ =gReceivedRemoteLinkPlayers + lsrs r6, r0, 16 + ldr r1, _081508A4 @ =gUnknown_3002044 + movs r0, 0 + str r0, [r1] + ldr r0, _081508A8 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 - beq _08147B3C - ldr r5, _08147B24 @ =gUnknown_203F3D4 - ldr r0, _08147B28 @ =0x000083b0 - bl Alloc - str r0, [r5] + beq _081508CC + ldr r4, _081508AC @ =gUnknown_203F3E0 + ldr r0, _081508B0 @ =0x00003330 + bl AllocZeroed + str r0, [r4] cmp r0, 0 - beq _08147B3C - bl ResetTasks - ldr r0, _08147B2C @ =sub_8147DA0 - movs r1, 0x1 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x8] - str r6, [r0] - strb r4, [r0, 0x4] + beq _081508CC + bl sub_81508D8 + ldr r0, [r4] + bl sub_81508EC + ldr r0, [r4] + str r5, [r0] bl GetMultiplayerId - ldr r1, [r5] - strb r0, [r1, 0x6] - ldr r0, [r5] - ldrb r2, [r0, 0x6] - lsls r1, r2, 1 + ldr r1, [r4] + adds r1, 0x28 + strb r0, [r1] + ldr r1, [r4] + ldr r2, _081508B4 @ =0x000032cc + adds r0, r1, r2 + adds r2, r1, 0 + adds r2, 0x28 + ldrb r3, [r2] + lsls r2, r3, 4 + subs r2, r3 + lsls r2, 2 + adds r1, r2 + ldr r2, _081508B8 @ =0x000031a0 adds r1, r2 + movs r2, 0x3C + bl memcpy + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x28 + ldrb r1, [r1] lsls r1, 2 - ldr r2, _08147B30 @ =0x000082a8 + ldr r2, _081508BC @ =0x0000318c adds r1, r2 adds r0, r1 movs r1, 0x64 - muls r1, r7 - ldr r2, _08147B34 @ =gPlayerParty + muls r1, r6 + ldr r2, _081508C0 @ =gPlayerParty adds r1, r2 - bl sub_8147D2C - ldr r0, [r5] - bl sub_8147B60 - ldr r2, [r5] - adds r0, r4, 0 - movs r1, 0x2 - bl SetWordTaskArg - ldr r0, _08147B38 @ =sub_8147D6C + bl sub_8152048 + ldr r0, _081508C4 @ =sub_8150A84 + movs r1, 0x1 + bl CreateTask + ldr r0, _081508C8 @ =sub_815201C bl SetMainCallback2 - b _08147B42 - .align 2, 0 -_08147B20: .4byte gReceivedRemoteLinkPlayers -_08147B24: .4byte gUnknown_203F3D4 -_08147B28: .4byte 0x000083b0 -_08147B2C: .4byte sub_8147DA0 -_08147B30: .4byte 0x000082a8 -_08147B34: .4byte gPlayerParty -_08147B38: .4byte sub_8147D6C -_08147B3C: - adds r0, r6, 0 + bl sub_8153150 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x24 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x44 + adds r2, 0x48 + bl sub_81529A4 + bl StopMapMusic + movs r0, 0xA5 + lsls r0, 1 + bl PlayNewMapMusic + b _081508D2 + .align 2, 0 +_081508A4: .4byte gUnknown_3002044 +_081508A8: .4byte gReceivedRemoteLinkPlayers +_081508AC: .4byte gUnknown_203F3E0 +_081508B0: .4byte 0x00003330 +_081508B4: .4byte 0x000032cc +_081508B8: .4byte 0x000031a0 +_081508BC: .4byte 0x0000318c +_081508C0: .4byte gPlayerParty +_081508C4: .4byte sub_8150A84 +_081508C8: .4byte sub_815201C +_081508CC: + adds r0, r5, 0 bl SetMainCallback2 -_08147B42: - pop {r4-r7} +_081508D2: + pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8147AA8 + thumb_func_end sub_81507FC - thumb_func_start sub_8147B48 -sub_8147B48: @ 8147B48 + thumb_func_start sub_81508D8 +sub_81508D8: @ 81508D8 push {lr} - bl sub_8149D24 - ldr r0, _08147B5C @ =gUnknown_203F3D4 - ldr r0, [r0] - bl Free + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes pop {r0} bx r0 - .align 2, 0 -_08147B5C: .4byte gUnknown_203F3D4 - thumb_func_end sub_8147B48 + thumb_func_end sub_81508D8 - thumb_func_start sub_8147B60 -sub_8147B60: @ 8147B60 - push {r4,lr} - adds r4, r0, 0 - bl GetLinkPlayerCount - movs r2, 0 - strb r0, [r4, 0x5] - adds r1, r4, 0 - adds r1, 0x70 - movs r0, 0x5 + thumb_func_start sub_81508EC +sub_81508EC: @ 81508EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2, 0xC] + strb r0, [r2, 0x10] + strb r0, [r2, 0x14] + strb r0, [r2, 0x18] + strb r0, [r2, 0x1C] + movs r3, 0x8E + lsls r3, 1 + adds r1, r2, r3 + str r0, [r1] + movs r7, 0x90 + lsls r7, 1 + adds r1, r2, r7 + str r0, [r1] + adds r1, r2, 0 + adds r1, 0x30 strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x72 - strh r2, [r0] - bl sub_8147C20 - adds r0, r4, 0 - bl sub_8147B94 - ldrb r0, [r4, 0x5] - cmp r0, 0x5 - bne _08147B8E - bl sub_814B4E8 -_08147B8E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8147B60 - - thumb_func_start sub_8147B94 -sub_8147B94: @ 8147B94 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x6 - str r0, [r4, 0x14] - str r0, [r4, 0x18] - adds r0, r4, 0 - adds r0, 0x4A - movs r6, 0 + adds r1, 0x10 + strb r0, [r1] + subs r1, 0x4 + strb r0, [r1] + adds r3, 0x10 + adds r1, r2, r3 + str r0, [r1] movs r5, 0 - strh r5, [r0] - str r5, [r4, 0x1C] - str r5, [r4, 0x5C] + adds r1, r2, 0 + adds r1, 0x98 + movs r3, 0 +_08150932: + adds r0, r1, r5 + strb r3, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08150932 + movs r5, 0 + adds r7, r2, 0 + adds r7, 0xA8 + str r7, [sp] + adds r0, r2, 0 + adds r0, 0xB0 + str r0, [sp, 0xC] + movs r1, 0x4A + adds r1, r2 + mov r10, r1 + movs r3, 0x4C + adds r3, r2 + mov r9, r3 + movs r7, 0x4E + adds r7, r2 + mov r12, r7 + subs r0, 0x60 + str r0, [sp, 0x24] + adds r6, r2, 0 + adds r6, 0x54 + adds r1, r2, 0 + adds r1, 0xD0 + str r1, [sp, 0x1C] + adds r3, r2, 0 + adds r3, 0xDC + str r3, [sp, 0x20] + adds r7, r2, 0 + adds r7, 0xC4 + str r7, [sp, 0x14] + adds r0, 0xA4 + str r0, [sp, 0x4] + adds r1, 0x25 + str r1, [sp, 0x8] + subs r3, 0xBC + str r3, [sp, 0x10] + movs r7, 0x24 + adds r7, r2 + mov r8, r7 + subs r0, 0xC0 + str r0, [sp, 0x18] + movs r3, 0 + movs r1, 0x86 + lsls r1, 1 + adds r4, r2, r1 + movs r7, 0x98 + lsls r7, 1 + adds r2, r7 +_0815099E: + ldr r1, [sp] + adds r0, r1, r5 + strb r3, [r0] + ldr r7, [sp, 0xC] + adds r0, r7, r5 + strb r3, [r0] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + mov r7, r10 + adds r1, r7, r0 + strh r3, [r1] + mov r7, r9 + adds r1, r7, r0 + strh r3, [r1] + mov r7, r12 + adds r1, r7, r0 + strh r3, [r1] + ldr r7, [sp, 0x24] + adds r1, r7, r0 + strh r3, [r1] + adds r0, r6, r0 + strh r3, [r0] + adds r0, r4, r5 + strb r3, [r0] + lsls r0, r5, 2 + adds r0, r2, r0 + str r3, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0815099E + movs r5, 0 + movs r3, 0 + movs r4, 0xFF + ldr r6, [sp, 0x1C] +_081509E8: + adds r0, r6, r5 + strb r3, [r0] + ldr r1, [sp, 0x20] + adds r0, r1, r5 + strb r3, [r0] + ldr r7, [sp, 0x14] + adds r0, r7, r5 + strb r3, [r0] + lsls r1, r5, 1 + ldr r0, [sp, 0x4] + adds r2, r0, r1 + ldrb r0, [r2] + orrs r0, r4 + strb r0, [r2] + ldr r7, [sp, 0x8] + adds r1, r7, r1 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xA + bls _081509E8 bl GetMultiplayerId movs r1, 0 lsls r0, 24 cmp r0, 0 - bne _08147BBA - movs r1, 0x1 -_08147BBA: - adds r0, r4, 0 - adds r0, 0x47 - strb r1, [r0] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - str r5, [r4, 0x58] - strh r5, [r4, 0x3A] - subs r0, 0x3 - strb r6, [r0] - str r5, [r4, 0x54] - adds r0, 0x2 - strb r6, [r0] - adds r0, 0x3 - strb r6, [r0] - subs r0, 0x1 + bne _08150A26 movs r1, 0x1 +_08150A26: + ldr r0, [sp, 0x10] strb r1, [r0] - str r5, [r4, 0x78] - adds r0, 0x29 - strb r6, [r0] - adds r0, 0x3 - strh r5, [r0] - str r1, [r4, 0x60] - subs r0, 0x27 - strb r6, [r0] - str r5, [r4, 0x68] - str r5, [r4, 0x64] - str r5, [r4, 0x2C] - str r5, [r4, 0x30] - bl sub_8147C98 - bl sub_81491E4 - movs r2, 0 - adds r5, r4, 0 - adds r5, 0x7C - movs r3, 0 - adds r1, r4, 0 - adds r1, 0x9A -_08147C0C: - adds r0, r5, r2 - strb r3, [r0] - strh r3, [r1] - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x4 - ble _08147C0C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8147B94 - - thumb_func_start sub_8147C20 -sub_8147C20: @ 8147C20 - push {r4-r7,lr} + bl GetLinkPlayerCount + mov r1, r8 + strb r0, [r1] + bl GetMultiplayerId + ldr r3, [sp, 0x18] + strb r0, [r3] + movs r5, 0x1 mov r7, r8 - push {r7} - ldr r7, _08147C80 @ =gUnknown_203F3D4 - movs r6, 0 - movs r5, 0 - ldr r0, _08147C84 @ =gUnknown_846B4BC - mov r8, r0 - movs r4, 0x4 -_08147C32: - ldr r0, [r7] - adds r0, r5 - ldr r1, _08147C88 @ =0x000082a8 - adds r0, r1 - ldrh r0, [r0] - bl sub_8147D00 - lsls r0, 16 - ldr r1, [r7] - adds r1, r6 - asrs r0, 14 - add r0, r8 - ldrh r0, [r0, 0x2] - ldr r2, _08147C8C @ =0x000082f0 - adds r1, r2 - strh r0, [r1] - adds r6, 0x28 - adds r5, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _08147C32 - ldr r0, _08147C80 @ =gUnknown_203F3D4 - ldr r1, [r0] - ldr r0, _08147C90 @ =0x000083ac - adds r3, r1, r0 - ldrb r2, [r1, 0x6] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r2, _08147C94 @ =0x000082e4 - adds r0, r2 - adds r1, r0 - str r1, [r3] - pop {r3} + ldrb r7, [r7] + cmp r5, r7 + bcs _08150A72 + ldr r7, [sp, 0x18] + mov r6, r8 +_08150A48: + adds r4, r7, r5 + subs r0, r5, 0x1 + adds r0, r7, r0 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r4] + ldrb r2, [r4] + ldrb r1, [r6] + subs r0, r1, 0x1 + cmp r2, r0 + ble _08150A66 + adds r0, r2, 0 + bl __umodsi3 + strb r0, [r4] +_08150A66: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6] + cmp r5, r0 + bcc _08150A48 +_08150A72: + add sp, 0x28 + pop {r3-r5} mov r8, r3 + mov r9, r4 + mov r10, r5 pop {r4-r7} pop {r0} bx r0 - .align 2, 0 -_08147C80: .4byte gUnknown_203F3D4 -_08147C84: .4byte gUnknown_846B4BC -_08147C88: .4byte 0x000082a8 -_08147C8C: .4byte 0x000082f0 -_08147C90: .4byte 0x000083ac -_08147C94: .4byte 0x000082e4 - thumb_func_end sub_8147C20 - - thumb_func_start sub_8147C98 -sub_8147C98: @ 8147C98 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _08147CE8 @ =gUnknown_203F3D4 - movs r4, 0 - movs r3, 0 -_08147CA2: - ldr r2, [r6] - adds r1, r2, r3 - ldr r7, _08147CEC @ =0x000082f2 - adds r0, r1, r7 - strh r4, [r0] - adds r7, 0x2 - adds r0, r1, r7 - strh r4, [r0] - ldr r0, _08147CF0 @ =0x000082f6 - adds r1, r0 - strh r4, [r1] - ldr r1, _08147CF4 @ =0x000082e4 - adds r0, r2, r1 - adds r0, r3 - str r4, [r0] - subs r7, 0xC - adds r0, r2, r7 - adds r0, r3 - ldr r1, _08147CF8 @ =0x7fffffff - str r1, [r0] - ldr r1, _08147CFC @ =0x000082f8 - adds r0, r2, r1 - adds r0, r3 - str r4, [r0] - adds r2, 0x8B - adds r2, r5 - movs r0, 0x9 - strb r0, [r2] - adds r3, 0x28 - adds r5, 0x1 - cmp r5, 0x4 - ble _08147CA2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08147CE8: .4byte gUnknown_203F3D4 -_08147CEC: .4byte 0x000082f2 -_08147CF0: .4byte 0x000082f6 -_08147CF4: .4byte 0x000082e4 -_08147CF8: .4byte 0x7fffffff -_08147CFC: .4byte 0x000082f8 - thumb_func_end sub_8147C98 + thumb_func_end sub_81508EC - thumb_func_start sub_8147D00 -sub_8147D00: @ 8147D00 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0 - ldr r2, _08147D18 @ =gUnknown_846B4BC -_08147D0A: - ldrh r0, [r2] - cmp r0, r3 - bne _08147D1C - lsls r0, r1, 16 - asrs r0, 16 - b _08147D28 - .align 2, 0 -_08147D18: .4byte gUnknown_846B4BC -_08147D1C: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0x63 - bls _08147D0A - movs r0, 0x1 - negs r0, r0 -_08147D28: - pop {r1} - bx r1 - thumb_func_end sub_8147D00 - - thumb_func_start sub_8147D2C -sub_8147D2C: @ 8147D2C + thumb_func_start sub_8150A84 +sub_8150A84: @ 8150A84 push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r5, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8147D2C - - thumb_func_start sub_8147D58 -sub_8147D58: @ 8147D58 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_8147D58 - - thumb_func_start sub_8147D6C -sub_8147D6C: @ 8147D6C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8147D6C - - thumb_func_start sub_8147D84 -sub_8147D84: @ 8147D84 - push {lr} - movs r1, 0x1 - bl CreateTask - ldr r2, _08147D9C @ =gUnknown_203F3D4 - ldr r1, [r2] - movs r3, 0 - strb r0, [r1, 0x4] - ldr r0, [r2] - strh r3, [r0, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_08147D9C: .4byte gUnknown_203F3D4 - thumb_func_end sub_8147D84 - - thumb_func_start sub_8147DA0 -sub_8147DA0: @ 8147DA0 - push {r4,lr} sub sp, 0x4 lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08147DC0 @ =gUnknown_203F3D4 - ldr r0, [r1] - ldrh r0, [r0, 0x8] - adds r2, r1, 0 - cmp r0, 0x5 - bls _08147DB6 - b _08147F04 -_08147DB6: + lsrs r1, r0, 24 + ldr r0, _08150AA4 @ =gUnknown_203F3E0 + ldr r0, [r0] + ldrb r0, [r0, 0xC] + cmp r0, 0x7 + bls _08150A98 + b _08150BF0 +_08150A98: lsls r0, 2 - ldr r1, _08147DC4 @ =_08147DC8 + ldr r1, _08150AA8 @ =_08150AAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08147DC0: .4byte gUnknown_203F3D4 -_08147DC4: .4byte _08147DC8 - .align 2, 0 -_08147DC8: - .4byte _08147DE0 - .4byte _08147E0C - .4byte _08147E3C - .4byte _08147E64 - .4byte _08147EA0 - .4byte _08147ECC -_08147DE0: +_08150AA4: .4byte gUnknown_203F3E0 +_08150AA8: .4byte _08150AAC + .align 2, 0 +_08150AAC: + .4byte _08150ACC + .4byte _08150AE0 + .4byte _08150B08 + .4byte _08150B16 + .4byte _08150B3C + .4byte _08150B90 + .4byte _08150BA2 + .4byte _08150BCC +_08150ACC: movs r0, 0 bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _08147E04 @ =sub_8148E80 - movs r1, 0x5 - bl sub_8148F5C - movs r0, 0x4 - bl FadeOutMapMusic - ldr r0, _08147E08 @ =gUnknown_203F3D4 - ldr r1, [r0] - b _08147EBC + ldr r0, _08150ADC @ =sub_8151750 + movs r1, 0x4 + bl sub_815205C + b _08150BDC .align 2, 0 -_08147E04: .4byte sub_8148E80 -_08147E08: .4byte gUnknown_203F3D4 -_08147E0C: - ldr r0, _08147E34 @ =sub_8148E80 +_08150ADC: .4byte sub_8151750 +_08150AE0: + ldr r0, _08150B00 @ =sub_8151750 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 - bne _08147F04 - ldr r4, _08147E38 @ =gUnknown_203F3D4 + beq _08150AEE + b _08150BFC +_08150AEE: + ldr r4, _08150B04 @ =gUnknown_203F3E0 ldr r0, [r4] - adds r0, 0xA4 - bl sub_8149CEC + movs r1, 0xB0 + lsls r1, 1 + adds r0, r1 + bl sub_8154968 + ldr r1, [r4] + b _08150BE0 + .align 2, 0 +_08150B00: .4byte sub_8151750 +_08150B04: .4byte gUnknown_203F3E0 +_08150B08: + bl sub_8155E68 + cmp r0, 0 + bne _08150BFC + bl sub_80FA42C + b _08150BDC +_08150B16: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _08150BFC + ldr r0, _08150B38 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _08150BDC bl sub_80FCEA8 movs r0, 0 movs r1, 0 bl sub_80FCD74 - ldr r1, [r4] - b _08147EBC + b _08150BDC .align 2, 0 -_08147E34: .4byte sub_8148E80 -_08147E38: .4byte gUnknown_203F3D4 -_08147E3C: - bl sub_8149D68 - cmp r0, 0 - bne _08147F04 - bl IsNotWaitingForBGMStop - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147F04 - movs r0, 0xA3 - lsls r0, 1 - movs r1, 0x8 - bl FadeOutAndPlayNewMapMusic - ldr r0, _08147E60 @ =gUnknown_203F3D4 +_08150B38: .4byte gReceivedRemoteLinkPlayers +_08150B3C: + ldr r0, _08150B88 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r5, [r0] + bl sub_8153A9C + movs r4, 0 + cmp r4, r5 + bcs _08150B76 +_08150B4E: + ldr r0, _08150B88 @ =gUnknown_203F3E0 ldr r1, [r0] - b _08147EBC - .align 2, 0 -_08147E60: .4byte gUnknown_203F3D4 -_08147E64: - bl sub_800A4BC + adds r0, r1, 0 + adds r0, 0x34 + adds r0, r4 + ldrb r2, [r0] + lsls r0, r2, 2 + ldr r3, _08150B8C @ =0x0000318c + adds r0, r3 + adds r0, r1, r0 + adds r1, 0x24 + ldrb r3, [r1] + adds r1, r4, 0 + bl sub_8153AFC + adds r0, r4, 0x1 lsls r0, 24 - cmp r0, 0 - beq _08147F04 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08150B4E +_08150B76: + ldr r4, _08150B88 @ =gUnknown_203F3E0 + ldr r0, [r4] + adds r0, 0x24 + ldrb r1, [r0] + movs r0, 0 + bl sub_8153D80 + ldr r1, [r4] + b _08150BE0 + .align 2, 0 +_08150B88: .4byte gUnknown_203F3E0 +_08150B8C: .4byte 0x0000318c +_08150B90: + bl sub_8154128 + bl sub_815417C + bl sub_8154438 + bl sub_8153E28 + b _08150BDC +_08150BA2: movs r4, 0x1 negs r4, r4 adds r0, r4, 0 @@ -483,2237 +457,3623 @@ _08147E64: movs r0, 0 str r0, [sp] adds r0, r4, 0 - adds r1, r4, 0 + movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r0, _08147E98 @ =sub_8147D58 + ldr r0, _08150BC8 @ =sub_8152034 bl SetVBlankCallback - ldr r0, _08147E9C @ =gUnknown_203F3D4 - ldr r1, [r0] - b _08147EBC + b _08150BDC .align 2, 0 -_08147E98: .4byte sub_8147D58 -_08147E9C: .4byte gUnknown_203F3D4 -_08147EA0: +_08150BC8: .4byte sub_8152034 +_08150BCC: bl UpdatePaletteFade - ldr r0, _08147EC4 @ =gPaletteFade + ldr r0, _08150BE8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08147F04 - ldr r1, _08147EC8 @ =gUnknown_203F3D4 - ldr r0, [r1] - strb r2, [r0, 0x7] - ldr r1, [r1] -_08147EBC: - ldrh r0, [r1, 0x8] + cmp r0, 0 + bne _08150BFC +_08150BDC: + ldr r0, _08150BEC @ =gUnknown_203F3E0 + ldr r1, [r0] +_08150BE0: + ldrb r0, [r1, 0xC] adds r0, 0x1 - strh r0, [r1, 0x8] - b _08147F04 + strb r0, [r1, 0xC] + b _08150BFC .align 2, 0 -_08147EC4: .4byte gPaletteFade -_08147EC8: .4byte gUnknown_203F3D4 -_08147ECC: - ldr r0, [r2] - ldrb r1, [r0, 0x7] - adds r1, 0x1 - strb r1, [r0, 0x7] - ldr r1, [r2] - ldrb r0, [r1, 0x7] - cmp r0, 0x13 - bls _08147F04 +_08150BE8: .4byte gPaletteFade +_08150BEC: .4byte gUnknown_203F3E0 +_08150BF0: adds r0, r1, 0 - adds r0, 0x47 - ldrb r0, [r0] - cmp r0, 0 - beq _08147EF4 - ldr r0, _08147EF0 @ =sub_814807C - bl sub_8147D84 - b _08147EFA - .align 2, 0 -_08147EF0: .4byte sub_814807C -_08147EF4: - ldr r0, _08147F0C @ =sub_8148290 - bl sub_8147D84 -_08147EFA: - bl sub_8148F7C - adds r0, r4, 0 bl DestroyTask -_08147F04: + ldr r0, _08150C04 @ =sub_81516DC + bl sub_815206C +_08150BFC: add sp, 0x4 - pop {r4} + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08147F0C: .4byte sub_8148290 - thumb_func_end sub_8147DA0 +_08150C04: .4byte sub_81516DC + thumb_func_end sub_8150A84 - thumb_func_start sub_8147F10 -sub_8147F10: @ 8147F10 + thumb_func_start sub_8150C08 +sub_8150C08: @ 8150C08 push {lr} - adds r1, r0, 0 - cmp r1, 0 - bne _08147F30 - ldr r0, _08147F28 @ =gUnknown_203F3D4 - ldr r1, [r0] - ldr r0, _08147F2C @ =0x00001111 - str r0, [r1, 0x30] - movs r0, 0x1 - str r0, [r1, 0x2C] - b _08147F42 - .align 2, 0 -_08147F28: .4byte gUnknown_203F3D4 -_08147F2C: .4byte 0x00001111 -_08147F30: - ldr r0, _08147F48 @ =gUnknown_203F3D4 - ldr r2, [r0] - subs r1, 0x1 - movs r0, 0x1 - lsls r0, r1 - subs r0, 0x1 - str r0, [r2, 0x30] - movs r0, 0 - str r0, [r2, 0x2C] -_08147F42: - pop {r0} - bx r0 - .align 2, 0 -_08147F48: .4byte gUnknown_203F3D4 - thumb_func_end sub_8147F10 - - thumb_func_start sub_8147F4C -sub_8147F4C: @ 8147F4C - push {r4-r6,lr} - ldr r4, _08147F98 @ =gUnknown_203F3D4 - ldr r1, [r4] - adds r1, 0x70 - movs r2, 0 - strb r0, [r1] - ldr r0, [r4] - movs r3, 0 - strh r2, [r0, 0x8] - strh r2, [r0, 0xA] - adds r0, 0x48 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x49 - strb r3, [r0] - movs r3, 0x1 - ldr r0, [r4] - ldrb r0, [r0, 0x5] - cmp r3, r0 - bge _08147F90 - adds r6, r4, 0 - ldr r5, _08147F9C @ =0x000082fc - movs r4, 0 - movs r2, 0x28 -_08147F7E: - ldr r1, [r6] - adds r0, r1, r5 - adds r0, r2 - str r4, [r0] - adds r2, 0x28 - adds r3, 0x1 - ldrb r1, [r1, 0x5] - cmp r3, r1 - blt _08147F7E -_08147F90: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08147F98: .4byte gUnknown_203F3D4 -_08147F9C: .4byte 0x000082fc - thumb_func_end sub_8147F4C - - thumb_func_start sub_8147FA0 -sub_8147FA0: @ 8147FA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r4, 0x1 - movs r0, 0 - str r0, [sp, 0x4] - ldr r7, _08148068 @ =gUnknown_203F3D4 - ldr r0, [r7] - ldrb r0, [r0, 0x5] - cmp r4, r0 - bge _08148044 - adds r1, r7, 0 - mov r10, r1 - movs r2, 0x2 - add r2, sp - mov r8, r2 - ldr r3, _0814806C @ =0x0000830c - mov r9, r3 - movs r6, 0x28 -_08147FCC: - mov r1, r10 - ldr r0, [r1] - adds r1, r0, r6 - ldr r2, _08148070 @ =0x000082f4 - adds r1, r2 - ldrh r5, [r1] - add r0, r9 - adds r1, r4, 0 - mov r2, sp - mov r3, r8 - bl sub_8149C24 - cmp r0, 0 - beq _0814800C - ldr r2, [r7] - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x90 - adds r0, r1 - mov r3, r8 - ldrh r1, [r3] - strh r1, [r0] - adds r2, 0x8B - adds r2, r4 - mov r0, sp - ldrb r0, [r0] - strb r0, [r2] - ldr r0, [r7] - adds r0, r6 - ldr r1, _08148074 @ =0x000082f6 + bl sub_8151B54 + ldr r1, _08150C34 @ =gUnknown_8475578 + ldr r0, _08150C38 @ =gUnknown_203F3E0 + ldr r0, [r0] + ldrb r0, [r0, 0x18] + lsls r0, 2 adds r0, r1 - strh r5, [r0] -_0814800C: - mov r2, r10 - ldr r1, [r2] - ldr r3, _08148078 @ =0x000082fc - adds r0, r1, r3 - adds r0, r6 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08150C3C @ =gUnknown_3002044 ldr r0, [r0] cmp r0, 0 - beq _08148032 - adds r0, r1, 0 - adds r0, 0x8B - adds r0, r4 - adds r1, 0x70 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08148032 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_08148032: - movs r1, 0x28 - add r9, r1 - adds r6, 0x28 - adds r4, 0x1 - ldr r7, _08148068 @ =gUnknown_203F3D4 - ldr r0, [r7] - ldrb r0, [r0, 0x5] - cmp r4, r0 - blt _08147FCC -_08148044: - ldr r2, _08148068 @ =gUnknown_203F3D4 - ldr r1, [r2] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - ldr r3, [sp, 0x4] - cmp r3, r0 - bne _08148058 - adds r1, 0x49 - movs r0, 0x1 - strb r0, [r1] -_08148058: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} + bne _08150C2C + bl sub_815293C +_08150C2C: + bl sub_8151BA0 pop {r0} bx r0 .align 2, 0 -_08148068: .4byte gUnknown_203F3D4 -_0814806C: .4byte 0x0000830c -_08148070: .4byte 0x000082f4 -_08148074: .4byte 0x000082f6 -_08148078: .4byte 0x000082fc - thumb_func_end sub_8147FA0 +_08150C34: .4byte gUnknown_8475578 +_08150C38: .4byte gUnknown_203F3E0 +_08150C3C: .4byte gUnknown_3002044 + thumb_func_end sub_8150C08 - thumb_func_start sub_814807C -sub_814807C: @ 814807C - push {r4,r5,lr} - bl sub_8147FA0 - bl sub_8149534 - ldr r0, _081480F8 @ =gUnknown_203F3D4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0 - bne _081480AE - adds r0, r1, 0 - adds r0, 0x49 - ldrb r0, [r0] - cmp r0, 0 - beq _081480AE - adds r0, r1, 0 - adds r0, 0x4C - ldrb r0, [r0] - bl sub_8147F4C - movs r0, 0x3 - bl sub_8147F10 -_081480AE: - ldr r4, _081480F8 @ =gUnknown_203F3D4 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x48 - ldrb r5, [r0] - cmp r5, 0x1 - bne _081480EA - ldr r1, _081480FC @ =gUnknown_846B64C - adds r0, 0x28 - ldrb r0, [r0] + thumb_func_start sub_8150C40 +sub_8150C40: @ 8150C40 + push {lr} + bl sub_8151C5C + ldr r1, _08150C6C @ =gUnknown_84755A8 + ldr r0, _08150C70 @ =gUnknown_203F3E0 + ldr r0, [r0] + ldrb r0, [r0, 0x18] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 - adds r1, r0, 0 - cmp r1, 0 - bne _081480EA + ldr r0, _08150C74 @ =gUnknown_3002044 + ldr r0, [r0] + cmp r0, 0 + bne _08150C64 + bl sub_8152970 +_08150C64: + bl sub_8151D28 + pop {r0} + bx r0 + .align 2, 0 +_08150C6C: .4byte gUnknown_84755A8 +_08150C70: .4byte gUnknown_203F3E0 +_08150C74: .4byte gUnknown_3002044 + thumb_func_end sub_8150C40 + + thumb_func_start sub_8150C78 +sub_8150C78: @ 8150C78 + push {r4,lr} + ldr r4, _08150C8C @ =gUnknown_203F3E0 ldr r0, [r4] - adds r0, 0x48 - strb r1, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + beq _08150C90 + cmp r0, 0x1 + beq _08150CA6 + b _08150CB4 + .align 2, 0 +_08150C8C: .4byte gUnknown_203F3E0 +_08150C90: + movs r0, 0x1 + bl sub_8153BF8 + movs r0, 0x1 + bl sub_81549D4 ldr r1, [r4] - ldrb r2, [r1, 0x6] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r2, _08148100 @ =0x000082fc - adds r1, r2 - adds r1, r0 - str r5, [r1] -_081480EA: - bl sub_81492D8 - bl sub_8148104 - pop {r4,r5} + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + b _08150CB4 +_08150CA6: + bl sub_8155E68 + cmp r0, 0 + bne _08150CB4 + movs r0, 0x1 + bl sub_8152090 +_08150CB4: + pop {r4} pop {r0} bx r0 - .align 2, 0 -_081480F8: .4byte gUnknown_203F3D4 -_081480FC: .4byte gUnknown_846B64C -_08148100: .4byte 0x000082fc - thumb_func_end sub_814807C + thumb_func_end sub_8150C78 - thumb_func_start sub_8148104 -sub_8148104: @ 8148104 + thumb_func_start sub_8150CBC +sub_8150CBC: @ 8150CBC push {r4,lr} - ldr r4, _08148134 @ =gUnknown_203F3D4 + ldr r4, _08150CD8 @ =gUnknown_203F3E0 ldr r1, [r4] - ldr r0, [r1, 0x2C] + ldrb r0, [r1, 0x10] cmp r0, 0 - bne _0814811A - ldr r2, _08148138 @ =0x000082e4 - adds r0, r1, r2 - adds r1, 0x70 - bl sub_8149AF8 -_0814811A: + bne _08150CDC + bl sub_8152110 ldr r1, [r4] - ldr r2, [r1, 0x30] - ldr r0, _0814813C @ =0x00001111 - cmp r2, r0 - beq _0814812C - ldr r0, [r1, 0x2C] + ldrb r0, [r1, 0x10] adds r0, 0x1 - ands r0, r2 - str r0, [r1, 0x2C] -_0814812C: + strb r0, [r1, 0x10] + b _08150CEC + .align 2, 0 +_08150CD8: .4byte gUnknown_203F3E0 +_08150CDC: + movs r0, 0x8C + lsls r0, 1 + adds r1, r0 + movs r0, 0x1 + str r0, [r1] + movs r0, 0x2 + bl sub_8152090 +_08150CEC: pop {r4} pop {r0} bx r0 - .align 2, 0 -_08148134: .4byte gUnknown_203F3D4 -_08148138: .4byte 0x000082e4 -_0814813C: .4byte 0x00001111 - thumb_func_end sub_8148104 + thumb_func_end sub_8150CBC - thumb_func_start sub_8148140 -sub_8148140: @ 8148140 - ldr r2, _0814816C @ =gUnknown_203F3D4 - ldr r1, [r2] - adds r1, 0x70 - movs r3, 0 - strb r0, [r1] - ldr r0, [r2] - strh r3, [r0, 0x8] - strh r3, [r0, 0xA] - adds r0, 0x48 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r2] - ldrb r2, [r1, 0x6] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r2, _08148170 @ =0x000082fc - adds r1, r2 - adds r1, r0 - str r3, [r1] - bx lr + thumb_func_start sub_8150CF4 +sub_8150CF4: @ 8150CF4 + push {lr} + sub sp, 0x4 + ldr r0, _08150D0C @ =gUnknown_203F3E0 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x4 + bhi _08150D74 + lsls r0, 2 + ldr r1, _08150D10 @ =_08150D14 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08150D0C: .4byte gUnknown_203F3E0 +_08150D10: .4byte _08150D14 + .align 2, 0 +_08150D14: + .4byte _08150D28 + .4byte _08150D4E + .4byte _08150D3A + .4byte _08150D46 + .4byte _08150D64 +_08150D28: + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0x78 + movs r3, 0x50 + bl sub_815F138 + b _08150D52 +_08150D3A: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _08150D74 + b _08150D52 +_08150D46: + bl sub_815F198 + cmp r0, 0 + bne _08150D74 +_08150D4E: + bl sub_80FA42C +_08150D52: + ldr r0, _08150D60 @ =gUnknown_203F3E0 + ldr r1, [r0] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + b _08150D74 .align 2, 0 -_0814816C: .4byte gUnknown_203F3D4 -_08148170: .4byte 0x000082fc - thumb_func_end sub_8148140 +_08150D60: .4byte gUnknown_203F3E0 +_08150D64: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _08150D74 + movs r0, 0x3 + bl sub_8152090 +_08150D74: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8150CF4 - thumb_func_start sub_8148174 -sub_8148174: @ 8148174 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r4, _081481F0 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldr r2, _081481F4 @ =0x000082f4 - adds r1, r0, r2 - ldrh r1, [r1] - mov r8, r1 - ldr r3, _081481F8 @ =0x000082e4 - adds r0, r3 - mov r1, sp - bl sub_8149B7C + thumb_func_start sub_8150D7C +sub_8150D7C: @ 8150D7C + push {lr} + ldr r0, _08150DA0 @ =gUnknown_203F3E0 + ldr r1, [r0] + ldrb r0, [r1, 0x10] cmp r0, 0 - beq _08148224 - ldr r2, [r4] - ldrb r0, [r2, 0x6] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r3, _081481FC @ =0x000082fc - adds r0, r2, r3 - adds r0, r1 + bne _08150D9A + movs r2, 0x8E + lsls r2, 1 + adds r0, r1, r2 ldr r0, [r0] - cmp r0, 0x1 - bne _081481C2 - mov r0, sp - adds r1, r2, 0 - adds r1, 0x70 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081481C2 - mov r0, sp - ldrb r0, [r0] - bl sub_8148140 -_081481C2: - ldr r3, _081481F0 @ =gUnknown_203F3D4 - ldr r2, [r3] - ldr r0, [r2, 0x78] - ldr r1, [sp, 0x8] - cmp r0, r1 - beq _08148204 - str r1, [r2, 0x78] - movs r4, 0x1 - str r4, [r2, 0x5C] - mov r0, sp - ldrb r1, [r0, 0x1] - adds r0, r2, 0 - adds r0, 0x71 - strb r1, [r0] - ldr r0, [r3] - adds r1, r0, 0 - adds r1, 0x71 - ldrb r1, [r1] - cmp r1, 0 - beq _08148200 - adds r0, 0x4D - strb r4, [r0] - b _08148204 - .align 2, 0 -_081481F0: .4byte gUnknown_203F3D4 -_081481F4: .4byte 0x000082f4 -_081481F8: .4byte 0x000082e4 -_081481FC: .4byte 0x000082fc -_08148200: - adds r0, 0x4D - strb r1, [r0] -_08148204: - ldr r0, _08148280 @ =gUnknown_203F3D4 - ldr r1, [r0] - mov r0, sp - ldrh r0, [r0, 0x2] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - mov r0, sp - ldrh r2, [r0, 0x4] - adds r0, r1, 0 - adds r0, 0x74 - strh r2, [r0] - ldr r0, _08148284 @ =0x000082f6 - adds r1, r0 - mov r2, r8 - strh r2, [r1] -_08148224: - movs r4, 0x1 - ldr r2, _08148280 @ =gUnknown_203F3D4 - ldr r0, [r2] - ldrb r0, [r0, 0x5] - cmp r4, r0 - bge _08148272 - adds r7, r2, 0 - ldr r6, _08148288 @ =0x0000830c - movs r5, 0x28 -_08148236: - ldr r1, [r7] - ldrb r3, [r1, 0x6] - cmp r4, r3 - beq _08148264 - adds r0, r1, r5 - ldr r3, _0814828C @ =0x000082f4 - adds r0, r3 - ldrh r0, [r0] - mov r8, r0 - adds r0, r1, r6 - adds r1, r4, 0 - str r2, [sp, 0xC] - bl sub_8149C90 - ldr r2, [sp, 0xC] cmp r0, 0 - beq _08148264 - ldr r0, [r7] - adds r0, r5 - ldr r1, _08148284 @ =0x000082f6 - adds r0, r1 - mov r3, r8 - strh r3, [r0] -_08148264: - adds r6, 0x28 - adds r5, 0x28 - adds r4, 0x1 - ldr r0, [r2] - ldrb r0, [r0, 0x5] - cmp r4, r0 - blt _08148236 -_08148272: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} + beq _08150D9A + movs r0, 0x4 + bl sub_8152090 +_08150D9A: pop {r0} bx r0 .align 2, 0 -_08148280: .4byte gUnknown_203F3D4 -_08148284: .4byte 0x000082f6 -_08148288: .4byte 0x0000830c -_0814828C: .4byte 0x000082f4 - thumb_func_end sub_8148174 +_08150DA0: .4byte gUnknown_203F3E0 + thumb_func_end sub_8150D7C - thumb_func_start sub_8148290 -sub_8148290: @ 8148290 + thumb_func_start sub_8150DA4 +sub_8150DA4: @ 8150DA4 push {r4,lr} - bl sub_8148174 - ldr r4, _081482EC @ =gUnknown_203F3D4 + ldr r4, _08150DE4 @ =gUnknown_203F3E0 ldr r2, [r4] + ldrb r0, [r2, 0x10] + cmp r0, 0 + bne _08150E62 adds r0, r2, 0 - adds r0, 0x48 + adds r0, 0x40 ldrb r0, [r0] - cmp r0, 0 - beq _081482DC - ldr r1, _081482F0 @ =gUnknown_846B670 + cmp r0, 0x9 + bhi _08150E54 adds r0, r2, 0 - adds r0, 0x70 + adds r0, 0xA8 ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - adds r1, r0, 0 + cmp r0, 0 + bne _08150E5A + ldr r0, _08150DE8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08150DF4 + ldr r1, _08150DEC @ =0x000031cc + adds r0, r2, r1 + ldrb r1, [r0] cmp r1, 0 - bne _081482DC - ldr r0, [r4] - adds r0, 0x48 + bne _08150E5A + ldr r3, _08150DF0 @ =0x000031d0 + adds r0, r2, r3 strb r1, [r0] - ldr r1, [r4] - ldrb r2, [r1, 0x6] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r2, _081482F4 @ =0x000082fc - adds r1, r2 - adds r1, r0 - movs r0, 0x1 - str r0, [r1] - movs r0, 0x3 - bl sub_8147F10 -_081482DC: - bl sub_81492D8 - bl sub_81482F8 - pop {r4} - pop {r0} - bx r0 + movs r0, 0x2 + b _08150E2E .align 2, 0 -_081482EC: .4byte gUnknown_203F3D4 -_081482F0: .4byte gUnknown_846B670 -_081482F4: .4byte 0x000082fc - thumb_func_end sub_8148290 - - thumb_func_start sub_81482F8 -sub_81482F8: @ 81482F8 - push {r4,lr} - ldr r4, _08148338 @ =gUnknown_203F3D4 - ldr r2, [r4] - ldr r0, [r2, 0x2C] +_08150DE4: .4byte gUnknown_203F3E0 +_08150DE8: .4byte gMain +_08150DEC: .4byte 0x000031cc +_08150DF0: .4byte 0x000031d0 +_08150DF4: + movs r0, 0x10 + ands r0, r1 cmp r0, 0 - bne _08148320 - ldrb r1, [r2, 0x6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0814833C @ =0x000082e4 - adds r0, r1 - adds r0, r2, r0 - adds r1, r2, 0 - adds r1, 0x70 - ldrb r1, [r1] - adds r2, 0x42 - ldrh r2, [r2] - bl sub_8149BF4 -_08148320: - ldr r1, [r4] - ldr r2, [r1, 0x30] - ldr r0, _08148340 @ =0x00001111 - cmp r2, r0 - beq _08148332 - ldr r0, [r1, 0x2C] - adds r0, 0x1 - ands r0, r2 - str r0, [r1, 0x2C] -_08148332: - pop {r4} - pop {r0} - bx r0 + beq _08150E14 + ldr r3, _08150E10 @ =0x000031cc + adds r0, r2, r3 + ldrb r1, [r0] + cmp r1, 0 + bne _08150E5A + adds r3, 0x4 + adds r0, r2, r3 + strb r1, [r0] + movs r0, 0x1 + b _08150E2E .align 2, 0 -_08148338: .4byte gUnknown_203F3D4 -_0814833C: .4byte 0x000082e4 -_08148340: .4byte 0x00001111 - thumb_func_end sub_81482F8 - - thumb_func_start sub_8148344 -sub_8148344: @ 8148344 - push {r4,lr} - ldr r4, _08148358 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] +_08150E10: .4byte 0x000031cc +_08150E14: + movs r0, 0x20 + ands r0, r1 cmp r0, 0 - beq _0814835C - cmp r0, 0x1 - beq _0814836A - b _08148390 - .align 2, 0 -_08148358: .4byte gUnknown_203F3D4 -_0814835C: + beq _08150E40 + ldr r3, _08150E3C @ =0x000031cc + adds r0, r2, r3 + ldrb r1, [r0] + cmp r1, 0 + bne _08150E5A + adds r3, 0x4 + adds r0, r2, r3 + strb r1, [r0] movs r0, 0x3 - bl sub_8147F10 +_08150E2E: + bl sub_815327C ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0814836A: - bl sub_81488DC - cmp r0, 0 - bne _08148390 - ldr r0, _0814838C @ =gUnknown_203F3D4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x4A - ldrh r0, [r0] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - adds r1, 0x4C - movs r0, 0x1 + ldr r2, _08150E3C @ =0x000031cc + adds r1, r2 strb r0, [r1] - movs r0, 0 - b _08148392 + b _08150E5A .align 2, 0 -_0814838C: .4byte gUnknown_203F3D4 -_08148390: - movs r0, 0x1 -_08148392: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148344 - - thumb_func_start sub_8148398 -sub_8148398: @ 8148398 - push {r4,lr} - ldr r4, _081483AC @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] - cmp r0, 0 - beq _081483B0 - cmp r0, 0x1 - beq _081483C6 - movs r0, 0x1 - b _081483CA - .align 2, 0 -_081483AC: .4byte gUnknown_203F3D4 -_081483B0: +_08150E3C: .4byte 0x000031cc +_08150E40: movs r0, 0 - bl sub_8147F10 + bl sub_815327C ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x72 - ldrh r0, [r0] - str r0, [r1, 0x24] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081483C6: - bl sub_81488DC -_081483CA: + ldr r3, _08150E50 @ =0x000031cc + adds r1, r3 + strb r0, [r1] + b _08150E5A + .align 2, 0 +_08150E50: .4byte 0x000031cc +_08150E54: + movs r0, 0xB + bl sub_8152090 +_08150E5A: + bl sub_815256C + bl sub_8151D98 +_08150E62: pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148398 + pop {r0} + bx r0 + thumb_func_end sub_8150DA4 - thumb_func_start sub_81483D0 -sub_81483D0: @ 81483D0 - push {r4,lr} - ldr r4, _081483E4 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldrh r0, [r1, 0x8] + thumb_func_start sub_8150E68 +sub_8150E68: @ 8150E68 + push {lr} + ldr r0, _08150EA8 @ =gUnknown_203F3E0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bhi _08150F30 + ldr r0, _08150EAC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 cmp r0, 0 - beq _081483E8 - cmp r0, 0x1 - beq _081483FC - b _08148410 - .align 2, 0 -_081483E4: .4byte gUnknown_203F3D4 -_081483E8: - bl sub_81491E4 - movs r0, 0x5 - bl sub_8147F10 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08148410 -_081483FC: - adds r0, r1, 0 - adds r0, 0x49 + beq _08150EB8 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r2, r0 + ldr r1, _08150EB0 @ =0x000031cc + adds r0, r1 ldrb r0, [r0] cmp r0, 0 - beq _08148410 - adds r1, 0x4C + bne _08150F36 + ldr r3, _08150EB4 @ =0x000032f8 + adds r1, r2, r3 movs r0, 0x2 strb r0, [r1] - movs r0, 0 - b _08148412 -_08148410: - movs r0, 0x1 -_08148412: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81483D0 - - thumb_func_start sub_8148418 -sub_8148418: @ 8148418 - push {r4,lr} - ldr r4, _0814842C @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] - cmp r0, 0 - beq _08148430 - cmp r0, 0x1 - beq _0814844E - b _0814845A + b _08150F36 .align 2, 0 -_0814842C: .4byte gUnknown_203F3D4 -_08148430: - bl sub_81491E4 - movs r0, 0 - bl sub_8147F10 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x72 - ldrh r0, [r0] - adds r2, r1, 0 - adds r2, 0x4A - strh r0, [r2] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0814844E: - bl sub_8149804 +_08150EA8: .4byte gUnknown_203F3E0 +_08150EAC: .4byte gMain +_08150EB0: .4byte 0x000031cc +_08150EB4: .4byte 0x000032f8 +_08150EB8: + movs r0, 0x10 + ands r0, r1 cmp r0, 0 - beq _0814845A - movs r0, 0 - b _0814845C -_0814845A: - movs r0, 0x1 -_0814845C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148418 - - thumb_func_start sub_8148464 -sub_8148464: @ 8148464 - push {lr} - bl sub_81489C8 + beq _08150EEC + adds r0, r2, 0 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r2, r0 + ldr r1, _08150EE4 @ =0x000031cc + adds r0, r1 + ldrb r0, [r0] cmp r0, 0 - bne _0814848C - ldr r0, _08148488 @ =gUnknown_203F3D4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x4A - ldrh r0, [r0] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - adds r1, 0x4C + bne _08150F36 + ldr r3, _08150EE8 @ =0x000032f8 + adds r1, r2, r3 movs r0, 0x1 strb r0, [r1] - b _081484A6 + b _08150F36 .align 2, 0 -_08148488: .4byte gUnknown_203F3D4 -_0814848C: - bl sub_8149630 +_08150EE4: .4byte 0x000031cc +_08150EE8: .4byte 0x000032f8 +_08150EEC: + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _08150F24 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r2, r0 + ldr r1, _08150F1C @ =0x000031cc + adds r0, r1 + ldrb r0, [r0] cmp r0, 0 - beq _08148498 - movs r0, 0x1 - b _081484A8 -_08148498: - bl sub_81491B4 - ldr r0, _081484AC @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x4C - movs r1, 0x3 + bne _08150F36 + ldr r3, _08150F20 @ =0x000032f8 + adds r1, r2, r3 + movs r0, 0x3 + strb r0, [r1] + b _08150F36 + .align 2, 0 +_08150F1C: .4byte 0x000031cc +_08150F20: .4byte 0x000032f8 +_08150F24: + ldr r3, _08150F2C @ =0x000032f8 + adds r0, r2, r3 strb r1, [r0] -_081484A6: + b _08150F36 + .align 2, 0 +_08150F2C: .4byte 0x000032f8 +_08150F30: + movs r0, 0xB + bl sub_8152090 +_08150F36: + bl sub_8151E94 + pop {r0} + bx r0 + thumb_func_end sub_8150E68 + + thumb_func_start sub_8150F40 +sub_8150F40: @ 8150F40 + push {r4,r5,lr} + bl sub_815256C + bl sub_8151D98 + bl sub_8152A98 + cmp r0, 0x1 + bne _08150F5E + bl sub_8153004 + movs r0, 0x5 + bl sub_8152090 + b _08150FBC +_08150F5E: + ldr r0, _08150F8C @ =gUnknown_203F3E0 + ldr r2, [r0] + movs r1, 0x96 + lsls r1, 1 + adds r4, r2, r1 + movs r1, 0x1 + str r1, [r4] + movs r3, 0x1 + adds r1, r2, 0 + adds r1, 0x24 + adds r5, r0, 0 + ldrb r1, [r1] + cmp r3, r1 + bcs _08150FBC + movs r1, 0x9A + lsls r1, 1 + adds r0, r2, r1 + ldr r0, [r0] + cmp r0, 0x1 + beq _08150F90 movs r0, 0 -_081484A8: - pop {r1} - bx r1 + str r0, [r4] + b _08150FBC .align 2, 0 -_081484AC: .4byte gUnknown_203F3D4 - thumb_func_end sub_8148464 - - thumb_func_start sub_81484B0 -sub_81484B0: @ 81484B0 - push {lr} - bl sub_81489C8 - cmp r0, 0 - beq _081484CA - bl sub_8149630 - cmp r0, 0 - beq _081484C6 - movs r0, 0x1 - b _081484CC -_081484C6: - bl sub_81491B4 -_081484CA: +_08150F8C: .4byte gUnknown_203F3E0 +_08150F90: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x24 + ldrb r0, [r0] + cmp r3, r0 + bcs _08150FBC + lsls r0, r3, 2 + movs r4, 0x98 + lsls r4, 1 + adds r1, r2, r4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0x1 + beq _08150F90 + movs r0, 0x96 + lsls r0, 1 + adds r1, r2, r0 movs r0, 0 -_081484CC: - pop {r1} - bx r1 - thumb_func_end sub_81484B0 + str r0, [r1] +_08150FBC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8150F40 - thumb_func_start sub_81484D0 -sub_81484D0: @ 81484D0 - push {r4,lr} - ldr r4, _081484E8 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] - cmp r0, 0x1 - beq _08148508 + thumb_func_start sub_8150FC4 +sub_8150FC4: @ 8150FC4 + push {lr} + bl sub_8151E94 + bl sub_8152AD8 cmp r0, 0x1 - bgt _081484EC - cmp r0, 0 - beq _081484F2 - b _08148564 + bne _08150FD8 + movs r0, 0x5 + bl sub_8152090 +_08150FD8: + pop {r0} + bx r0 + thumb_func_end sub_8150FC4 + + thumb_func_start sub_8150FDC +sub_8150FDC: @ 8150FDC + push {r4-r6,lr} + ldr r6, _08150FF4 @ =gUnknown_203F3E0 + ldr r1, [r6] + ldrb r4, [r1, 0x10] + cmp r4, 0x1 + beq _08151010 + cmp r4, 0x1 + bgt _08150FF8 + cmp r4, 0 + beq _08150FFE + b _08151078 .align 2, 0 -_081484E8: .4byte gUnknown_203F3D4 -_081484EC: - cmp r0, 0x2 - beq _0814855C - b _08148564 -_081484F2: - bl sub_8149630 - bl sub_81496D4 - cmp r0, 0 - beq _08148564 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08148564 -_08148508: - bl sub_8148A60 +_08150FF4: .4byte gUnknown_203F3E0 +_08150FF8: + cmp r4, 0x2 + beq _0815101E + b _08151078 +_08150FFE: + adds r1, 0x4A + movs r0, 0 + movs r2, 0x3C + bl SendBlock + ldr r0, [r6] + strb r4, [r0, 0x8] + ldr r1, [r6] + b _0815106A +_08151010: + bl sub_800A4BC + lsls r0, 24 cmp r0, 0 - bne _08148564 - bl sub_81498B4 + beq _08151092 + ldr r1, [r6] + b _0815106A +_0815101E: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _08151048 +_0815102A: + movs r0, 0x1 + ands r0, r5 cmp r0, 0 - beq _0814852A - bl sub_81498D8 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - adds r1, 0x4C - movs r0, 0x7 - b _08148550 -_0814852A: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x74 - ldrh r0, [r0] - cmp r0, 0xC7 - bls _08148544 - ldrh r0, [r1, 0xE] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - adds r1, 0x4C - movs r0, 0x8 - b _08148550 -_08148544: - ldrh r0, [r1, 0xE] - adds r2, r1, 0 - adds r2, 0x72 - strh r0, [r2] - adds r1, 0x4C - movs r0, 0x4 -_08148550: - strb r0, [r1] - ldr r0, _08148560 @ =gUnknown_203F3D4 - ldr r1, [r0] - ldrh r0, [r1, 0x8] + beq _08151040 + adds r0, r4, 0 + bl ResetBlockReceivedFlag + ldr r1, [r6] + ldrb r0, [r1, 0x8] adds r0, 0x1 - strh r0, [r1, 0x8] -_0814855C: - movs r0, 0 - b _08148566 + strb r0, [r1, 0x8] +_08151040: + lsrs r5, 1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_08151048: + ldr r0, [r6] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcc _0815102A + ldr r3, _08151074 @ =gUnknown_203F3E0 + ldr r2, [r3] + adds r1, r2, 0 + adds r1, 0x24 + ldrb r0, [r2, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcc _08151092 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + ldr r1, [r3] +_0815106A: + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + b _08151092 .align 2, 0 -_08148560: .4byte gUnknown_203F3D4 -_08148564: +_08151074: .4byte gUnknown_203F3E0 +_08151078: movs r0, 0x1 -_08148566: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81484D0 - - thumb_func_start sub_814856C -sub_814856C: @ 814856C - push {r4,lr} - ldr r4, _08148584 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] - cmp r0, 0x1 - beq _081485AC - cmp r0, 0x1 - bgt _08148588 + bl WaitFanfare + lsls r0, 24 cmp r0, 0 - beq _0814858E - b _081485C0 + beq _08151092 + movs r0, 0x6 + bl sub_8152090 + ldr r0, _08151098 @ =0x00000137 + movs r1, 0x4 + bl FadeOutAndPlayNewMapMusic +_08151092: + pop {r4-r6} + pop {r0} + bx r0 .align 2, 0 -_08148584: .4byte gUnknown_203F3D4 -_08148588: - cmp r0, 0x2 - beq _081485BC - b _081485C0 -_0814858E: - bl sub_8149630 +_08151098: .4byte 0x00000137 + thumb_func_end sub_8150FDC + + thumb_func_start sub_815109C +sub_815109C: @ 815109C + push {r4-r6,lr} + ldr r6, _081510B4 @ =gUnknown_203F3E0 + ldr r2, [r6] + ldrb r4, [r2, 0x10] + cmp r4, 0x1 + beq _081510DA + cmp r4, 0x1 + bgt _081510B8 + cmp r4, 0 + beq _081510BE + b _08151150 + .align 2, 0 +_081510B4: .4byte gUnknown_203F3E0 +_081510B8: + cmp r4, 0x2 + beq _081510E8 + b _08151150 +_081510BE: + ldrb r0, [r2, 0x14] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, 0x4A + adds r1, r2, r1 + movs r0, 0 + movs r2, 0x3C + bl SendBlock + ldr r0, [r6] + strb r4, [r0, 0x8] + ldr r1, [r6] + b _08151140 +_081510DA: + bl sub_800A4BC + lsls r0, 24 cmp r0, 0 - bne _0814859A - bl sub_81491B4 -_0814859A: - bl sub_81496D4 + beq _0815118A + ldr r1, [r6] + b _08151140 +_081510E8: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _0815111E +_081510F4: + movs r0, 0x1 + ands r0, r5 cmp r0, 0 - beq _081485C0 - ldr r1, [r4] - ldrh r0, [r1, 0x8] + beq _08151116 + ldr r0, [r6] + adds r0, 0x4A + ldr r1, _08151148 @ =gBlockRecvBuffer + movs r2, 0x3C + bl memcpy + adds r0, r4, 0 + bl ResetBlockReceivedFlag + ldr r1, [r6] + ldrb r0, [r1, 0x8] adds r0, 0x1 - strh r0, [r1, 0x8] - b _081485C0 -_081485AC: - bl sub_8148A60 - cmp r0, 0 - bne _081485C0 - ldr r1, [r4] - ldrh r0, [r1, 0x8] + strb r0, [r1, 0x8] +_08151116: + lsrs r5, 1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0815111E: + ldr r0, [r6] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcc _081510F4 + ldr r3, _0815114C @ =gUnknown_203F3E0 + ldr r2, [r3] + adds r1, r2, 0 + adds r1, 0x24 + ldrb r0, [r2, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcc _0815118A + ldrb r0, [r2, 0x14] adds r0, 0x1 - strh r0, [r1, 0x8] -_081485BC: - movs r0, 0 - b _081485C2 -_081485C0: + strb r0, [r2, 0x14] + ldr r1, [r3] +_08151140: + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + b _0815118A + .align 2, 0 +_08151148: .4byte gBlockRecvBuffer +_0815114C: .4byte gUnknown_203F3E0 +_08151150: movs r0, 0x1 -_081485C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814856C + bl WaitFanfare + lsls r0, 24 + cmp r0, 0 + beq _0815118A + ldr r0, _08151190 @ =gUnknown_203F3E0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x54 + adds r0, r1 + ldrh r1, [r0] + movs r3, 0x8A + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r0, 0x6 + bl sub_8152090 + ldr r0, _08151194 @ =0x00000137 + movs r1, 0x4 + bl FadeOutAndPlayNewMapMusic +_0815118A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08151190: .4byte gUnknown_203F3E0 +_08151194: .4byte 0x00000137 + thumb_func_end sub_815109C - thumb_func_start sub_81485C8 -sub_81485C8: @ 81485C8 - push {r4,lr} - ldr r4, _081485E0 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r1, [r0, 0x8] - cmp r1, 0x1 - beq _081485FC - cmp r1, 0x1 - bgt _081485E4 - cmp r1, 0 - beq _081485EE - b _0814865C + thumb_func_start sub_8151198 +sub_8151198: @ 8151198 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _081511B0 @ =gUnknown_203F3E0 + ldr r0, [r6] + ldrb r4, [r0, 0x10] + cmp r4, 0x1 + beq _081511DC + cmp r4, 0x1 + bgt _081511B4 + cmp r4, 0 + beq _081511BE + b _0815129C .align 2, 0 -_081485E0: .4byte gUnknown_203F3D4 -_081485E4: - cmp r1, 0x2 - beq _08148628 - cmp r1, 0x3 - beq _08148652 - b _0814865C -_081485EE: - movs r0, 0x4 - bl sub_8147F10 - ldr r1, [r4] - ldrh r0, [r1, 0x8] +_081511B0: .4byte gUnknown_203F3E0 +_081511B4: + cmp r4, 0x2 + beq _08151202 + cmp r4, 0x3 + beq _0815121C + b _0815129C +_081511BE: + bl sub_81531FC + movs r0, 0x1 + bl sub_81540DC + bl sub_81544F0 + movs r0, 0x1 + bl sub_81545BC + movs r0, 0x2 + bl sub_81549D4 + ldr r1, [r6] + b _0815128A +_081511DC: + bl sub_8155E68 + cmp r0, 0 + bne _081512AA + mov r0, sp + strb r4, [r0] + movs r0, 0x5 + bl sub_81549D4 + bl sub_8155E8C + mov r1, sp + strb r0, [r1] + movs r0, 0 + movs r2, 0x1 + bl SendBlock + ldr r1, [r6] + b _0815128A +_08151202: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _081512AA + ldr r1, [r6] + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0x8] -_081485FC: - bl sub_8148C80 + movs r2, 0 + strb r0, [r1, 0x10] + ldr r0, [r6] + strb r2, [r0, 0x8] + b _081512AA +_0815121C: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _0815125A +_08151228: + movs r0, 0x1 + ands r0, r5 cmp r0, 0 - bne _0814865C - ldr r4, _08148624 @ =gUnknown_203F3D4 + beq _08151252 + ldr r2, [r6] + adds r2, r4, r2 + movs r0, 0x86 + lsls r0, 1 + adds r2, r0 + lsls r0, r4, 8 + ldr r1, _08151294 @ =gBlockRecvBuffer + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, 0 + bl ResetBlockReceivedFlag + ldr r1, [r6] + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] +_08151252: + lsrs r5, 1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0815125A: + ldr r0, [r6] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcc _08151228 + ldr r4, _08151298 @ =gUnknown_203F3E0 ldr r2, [r4] - ldr r0, [r2, 0x78] adds r1, r2, 0 - adds r1, 0x74 - ldrh r1, [r1] - adds r2, 0x72 - ldrh r2, [r2] - bl sub_814B494 + adds r1, 0x24 + ldrb r0, [r2, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcc _081512AA + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x77 + bls _081512AA + movs r0, 0x6 + bl sub_81549D4 ldr r1, [r4] - ldrh r0, [r1, 0x8] +_0815128A: + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0x8] - b _0814865C + strb r0, [r1, 0x10] + b _081512AA .align 2, 0 -_08148624: .4byte gUnknown_203F3D4 -_08148628: - adds r0, 0x49 - ldrb r0, [r0] +_08151294: .4byte gBlockRecvBuffer +_08151298: .4byte gUnknown_203F3E0 +_0815129C: + bl sub_8155E68 cmp r0, 0 - beq _0814865C - bl sub_8149748 + bne _081512AA + movs r0, 0x7 + bl sub_8152090 +_081512AA: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8151198 + + thumb_func_start sub_81512B4 +sub_81512B4: @ 81512B4 + push {r4-r7,lr} + sub sp, 0x4 + ldr r5, _081512D0 @ =gUnknown_203F3E0 + ldr r0, [r5] + ldrb r0, [r0, 0x10] + cmp r0, 0x6 + bls _081512C4 + b _0815144A +_081512C4: + lsls r0, 2 + ldr r1, _081512D4 @ =_081512D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081512D0: .4byte gUnknown_203F3E0 +_081512D4: .4byte _081512D8 + .align 2, 0 +_081512D8: + .4byte _081512F4 + .4byte _08151314 + .4byte _08151330 + .4byte _08151344 + .4byte _08151360 + .4byte _0815138C + .4byte _081513AC +_081512F4: + bl sub_81534AC + ldr r1, _0815130C @ =0x00000bb7 + cmp r0, r1 + bls _08151304 + movs r0, 0x4 + bl sub_81549D4 +_08151304: + ldr r0, _08151310 @ =gUnknown_203F3E0 + ldr r1, [r0] + b _0815142A + .align 2, 0 +_0815130C: .4byte 0x00000bb7 +_08151310: .4byte gUnknown_203F3E0 +_08151314: + bl sub_8155E68 cmp r0, 0 - beq _08148640 - ldr r0, [r4] - adds r0, 0x4C - movs r1, 0x5 - b _08148646 -_08148640: - ldr r0, [r4] - adds r0, 0x4C - movs r1, 0x6 -_08148646: - strb r1, [r0] - ldr r0, _08148658 @ =gUnknown_203F3D4 + beq _0815131E + b _08151480 +_0815131E: + movs r0, 0x3 + bl sub_81549D4 + ldr r0, _0815132C @ =gUnknown_203F3E0 ldr r1, [r0] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08148652: - movs r0, 0 - b _0814865E + b _0815142A .align 2, 0 -_08148658: .4byte gUnknown_203F3D4 -_0814865C: - movs r0, 0x1 -_0814865E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81485C8 - - thumb_func_start sub_8148664 -sub_8148664: @ 8148664 - push {r4,lr} - ldr r4, _08148678 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0x8] +_0815132C: .4byte gUnknown_203F3E0 +_08151330: + bl sub_81546C0 + bl sub_8153048 + ldr r0, _08151340 @ =gUnknown_203F3E0 + ldr r1, [r0] + b _0815142A + .align 2, 0 +_08151340: .4byte gUnknown_203F3E0 +_08151344: + bl sub_8155E8C + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] cmp r0, 0 - beq _0814867C - cmp r0, 0x1 - beq _0814868A - b _081486BC + bne _08151356 + b _08151480 +_08151356: + ldr r0, _0815135C @ =gUnknown_203F3E0 + ldr r1, [r0] + b _0815142A .align 2, 0 -_08148678: .4byte gUnknown_203F3D4 -_0814867C: - movs r0, 0 - bl sub_8147F10 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0814868A: - bl sub_8148C80 +_0815135C: .4byte gUnknown_203F3E0 +_08151360: + bl sub_8155E68 cmp r0, 0 - bne _081486BC - ldr r4, _081486B8 @ =gUnknown_203F3D4 - ldr r2, [r4] - ldr r0, [r2, 0x78] - adds r1, r2, 0 - adds r1, 0x74 - ldrh r1, [r1] - adds r2, 0x72 - ldrh r2, [r2] - bl sub_814B494 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x45 - ldrb r1, [r1] - adds r0, 0x42 - strh r1, [r0] + beq _0815136A + b _08151480 +_0815136A: + movs r0, 0x5 + bl sub_81549D4 + bl sub_8155E8C + mov r1, sp + strb r0, [r1] movs r0, 0 - b _081486BE + movs r2, 0x1 + bl SendBlock + ldr r0, _08151388 @ =gUnknown_203F3E0 + ldr r1, [r0] + b _0815142A .align 2, 0 -_081486B8: .4byte gUnknown_203F3D4 -_081486BC: - movs r0, 0x1 -_081486BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148664 - - thumb_func_start sub_81486C4 -sub_81486C4: @ 81486C4 - push {r4,lr} - ldr r4, _081486D8 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldrh r0, [r1, 0x8] +_08151388: .4byte gUnknown_203F3E0 +_0815138C: + bl sub_800A4BC + lsls r0, 24 cmp r0, 0 - beq _081486DC - cmp r0, 0x1 - beq _081486EE - b _0814871A + beq _08151480 + ldr r3, _081513A8 @ =gUnknown_203F3E0 + ldr r1, [r3] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1, 0x10] + ldr r0, [r3] + strb r2, [r0, 0x8] + b _08151480 .align 2, 0 -_081486D8: .4byte gUnknown_203F3D4 -_081486DC: - bl sub_8148E2C +_081513A8: .4byte gUnknown_203F3E0 +_081513AC: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r7, _08151434 @ =gUnknown_203F3E0 + ldr r0, [r7] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcs _08151400 + adds r6, r7, 0 +_081513C4: + movs r0, 0x1 + ands r0, r5 cmp r0, 0 - bne _0814871A - ldr r1, [r4] - ldrh r0, [r1, 0x8] + beq _081513EE + ldr r2, [r6] + adds r2, r4, r2 + movs r0, 0x86 + lsls r0, 1 + adds r2, r0 + lsls r0, r4, 8 + ldr r1, _08151438 @ =gBlockRecvBuffer + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, 0 + bl ResetBlockReceivedFlag + ldr r1, [r6] + ldrb r0, [r1, 0x8] adds r0, 0x1 - strh r0, [r1, 0x8] - b _0814871A -_081486EE: - adds r0, r1, 0 - adds r0, 0x49 + strb r0, [r1, 0x8] +_081513EE: + lsrs r5, 1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r7] + adds r0, 0x24 ldrb r0, [r0] + cmp r4, r0 + bcc _081513C4 +_08151400: + ldr r4, _08151434 @ =gUnknown_203F3E0 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x24 + ldrb r0, [r2, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcc _0815143C + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x77 + bls _08151480 + bl sub_815336C + movs r0, 0x6 + bl sub_81549D4 + ldr r1, [r4] +_0815142A: + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + b _08151480 + .align 2, 0 +_08151434: .4byte gUnknown_203F3E0 +_08151438: .4byte gBlockRecvBuffer +_0815143C: + bl sub_81532B8 + b _08151480 +_08151442: + movs r0, 0x8 + bl sub_8152090 + b _08151480 +_0815144A: + bl sub_8155E68 cmp r0, 0 - beq _0814871A + bne _08151480 + movs r4, 0 + ldr r1, [r5] adds r0, r1, 0 - bl sub_8147B94 - bl Random - ldr r1, [r4] - lsls r0, 16 - lsrs r0, 16 - str r0, [r1, 0x24] - adds r3, r1, 0 - adds r3, 0x72 - movs r2, 0 - strh r0, [r3] - adds r1, 0x4C - strb r2, [r1] - movs r0, 0 - b _0814871C -_0814871A: - movs r0, 0x1 -_0814871C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81486C4 + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcs _0815147A + movs r3, 0x86 + lsls r3, 1 + adds r2, r1, r3 + adds r1, r0, 0 +_08151468: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08151442 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r1 + bcc _08151468 +_0815147A: + movs r0, 0xA + bl sub_8152090 +_08151480: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81512B4 - thumb_func_start sub_8148724 -sub_8148724: @ 8148724 + thumb_func_start sub_8151488 +sub_8151488: @ 8151488 push {r4,lr} - ldr r4, _08148738 @ =gUnknown_203F3D4 + ldr r4, _081514A0 @ =gUnknown_203F3E0 ldr r0, [r4] - ldrh r0, [r0, 0x8] - cmp r0, 0 - beq _0814873C + ldrb r0, [r0, 0x10] cmp r0, 0x1 - beq _08148752 - b _08148756 - .align 2, 0 -_08148738: .4byte gUnknown_203F3D4 -_0814873C: - bl sub_8148E2C - cmp r0, 0 - bne _08148756 - ldr r0, [r4] - bl sub_8147B94 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08148752: - movs r0, 0 - b _08148758 -_08148756: - movs r0, 0x1 -_08148758: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148724 - - thumb_func_start sub_8148760 -sub_8148760: @ 8148760 - push {r4,lr} - ldr r4, _08148778 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - cmp r0, 0x1 - beq _08148788 + beq _081514B6 cmp r0, 0x1 - bgt _0814877C + bgt _081514A4 cmp r0, 0 - beq _08148782 - b _081487AC + beq _081514AA + b _081514D6 .align 2, 0 -_08148778: .4byte gUnknown_203F3D4 -_0814877C: +_081514A0: .4byte gUnknown_203F3E0 +_081514A4: cmp r0, 0x2 - beq _08148798 - b _081487AC -_08148782: - movs r0, 0x1 - strh r0, [r1, 0x8] - b _081487AC -_08148788: - movs r0, 0 - bl sub_8147F10 + beq _081514C0 + b _081514D6 +_081514AA: + bl sub_800AAC0 + movs r0, 0x7 + bl sub_81549D4 + b _081514CC +_081514B6: + bl sub_8155E68 + cmp r0, 0 + bne _081514E4 + b _081514CC +_081514C0: + bl sub_8155E8C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _081514E4 +_081514CC: ldr r1, [r4] - ldrh r0, [r1, 0x8] + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0x8] - b _081487AC -_08148798: - bl sub_8148D5C + strb r0, [r1, 0x10] + b _081514E4 +_081514D6: + ldr r0, _081514EC @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] cmp r0, 0 - bne _081487AC - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - bl sub_8147B48 -_081487AC: - movs r0, 0x1 + bne _081514E4 + movs r0, 0x9 + bl sub_8152090 +_081514E4: pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148760 + pop {r0} + bx r0 + .align 2, 0 +_081514EC: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_8151488 - thumb_func_start sub_81487B4 -sub_81487B4: @ 81487B4 + thumb_func_start sub_81514F0 +sub_81514F0: @ 81514F0 push {r4,lr} - ldr r4, _081487C8 @ =gUnknown_203F3D4 + sub sp, 0x4 + ldr r4, _08151508 @ =gUnknown_203F3E0 ldr r0, [r4] - ldrh r0, [r0, 0x8] + ldrb r1, [r0, 0x10] + cmp r1, 0x1 + beq _08151524 + cmp r1, 0x1 + bgt _0815150C + cmp r1, 0 + beq _08151512 + b _0815156C + .align 2, 0 +_08151508: .4byte gUnknown_203F3E0 +_0815150C: + cmp r1, 0x2 + beq _0815153C + b _0815156C +_08151512: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0815155E +_08151524: + bl UpdatePaletteFade + ldr r0, _08151538 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 cmp r0, 0 - beq _081487CC - cmp r0, 0x1 - beq _081487DC - b _081487F8 + bne _08151590 + b _0815155E .align 2, 0 -_081487C8: .4byte gUnknown_203F3D4 -_081487CC: - movs r0, 0x4 - bl sub_8147F10 +_08151538: .4byte gPaletteFade +_0815153C: + bl sub_8154274 + bl sub_8153ED8 + ldr r0, [r4] + adds r0, 0x24 + ldrb r0, [r0] + bl sub_8153D08 + bl sub_8154578 + ldr r1, _08151568 @ =gUnknown_3002044 + movs r0, 0x1 + str r0, [r1] + movs r0, 0x8 + bl sub_81549D4 +_0815155E: ldr r1, [r4] - ldrh r0, [r1, 0x8] + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0x8] - b _081487F8 -_081487DC: - bl sub_8148B54 + strb r0, [r1, 0x10] + b _08151590 + .align 2, 0 +_08151568: .4byte gUnknown_3002044 +_0815156C: + bl sub_8155E68 cmp r0, 0 - bne _081487F8 + bne _08151590 + ldr r4, _08151598 @ =gUnknown_203F3E0 ldr r0, [r4] - ldrh r1, [r0, 0xE] - adds r2, r0, 0 - adds r2, 0x72 - strh r1, [r2] - adds r0, 0x4C - movs r1, 0x8 - strb r1, [r0] - movs r0, 0 - b _081487FA -_081487F8: - movs r0, 0x1 -_081487FA: + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + ldrb r0, [r0, 0x4] + bl DestroyTask + ldr r0, [r4] + bl Free + bl FreeAllWindowBuffers +_08151590: + add sp, 0x4 pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81487B4 - - thumb_func_start sub_8148800 -sub_8148800: @ 8148800 - push {lr} - movs r0, 0 - bl sub_8147F10 - bl sub_8148B54 - cmp r0, 0 - beq _08148814 - movs r0, 0x1 - b _08148816 -_08148814: - movs r0, 0 -_08148816: - pop {r1} - bx r1 - thumb_func_end sub_8148800 + pop {r0} + bx r0 + .align 2, 0 +_08151598: .4byte gUnknown_203F3E0 + thumb_func_end sub_81514F0 - thumb_func_start sub_814881C -sub_814881C: @ 814881C + thumb_func_start sub_815159C +sub_815159C: @ 815159C push {r4,lr} - ldr r1, _08148834 @ =gUnknown_203F3D4 - ldr r0, [r1] - ldrh r0, [r0, 0x8] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _081488D4 + sub sp, 0x4 + ldr r4, _081515B4 @ =gUnknown_203F3E0 + ldr r1, [r4] + ldrb r0, [r1, 0x10] + cmp r0, 0x6 + bhi _0815169C lsls r0, 2 - ldr r1, _08148838 @ =_0814883C + ldr r1, _081515B8 @ =_081515BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08148834: .4byte gUnknown_203F3D4 -_08148838: .4byte _0814883C - .align 2, 0 -_0814883C: - .4byte _08148850 - .4byte _0814886C - .4byte _0814887C - .4byte _08148894 - .4byte _081488B8 -_08148850: - ldr r2, [r4] - ldr r0, [r2, 0x78] - adds r1, r2, 0 - adds r1, 0x74 - ldrh r1, [r1] - adds r2, 0x72 - ldrh r2, [r2] - bl sub_814B494 - movs r0, 0x5 - bl sub_8149D40 - ldr r1, [r4] - b _081488A8 -_0814886C: - bl sub_8149D68 - cmp r0, 0 - bne _081488D4 +_081515B4: .4byte gUnknown_203F3E0 +_081515B8: .4byte _081515BC + .align 2, 0 +_081515BC: + .4byte _081515D8 + .4byte _08151676 + .4byte _081515F0 + .4byte _08151642 + .4byte _08151648 + .4byte _08151656 + .4byte _08151676 +_081515D8: + movs r0, 0x9 + bl sub_81549D4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08151686 +_081515F0: movs r0, 0 - bl sub_8147F10 - b _081488A4 -_0814887C: - bl sub_8149804 - cmp r0, 0 - beq _081488D4 - ldr r0, _08148890 @ =sub_80DA634 - movs r1, 0x6 - bl CreateTask - b _081488A4 - .align 2, 0 -_08148890: .4byte sub_80DA634 -_08148894: - ldr r0, _081488B0 @ =sub_80DA634 - bl FuncIsActiveTask - lsls r0, 24 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + b _08151686 +_08151642: + bl StopMapMusic + b _08151686 +_08151648: + movs r0, 0xA5 + lsls r0, 1 + bl PlayNewMapMusic + bl sub_8154540 + b _08151686 +_08151656: + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08151686 +_08151676: + bl UpdatePaletteFade + ldr r0, _08151694 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 cmp r0, 0 - bne _081488D4 - bl sub_814A6CC -_081488A4: - ldr r0, _081488B4 @ =gUnknown_203F3D4 + bne _081516CC +_08151686: + ldr r0, _08151698 @ =gUnknown_203F3E0 ldr r1, [r0] -_081488A8: - ldrh r0, [r1, 0x8] + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0x8] - b _081488D4 + strb r0, [r1, 0x10] + b _081516CC .align 2, 0 -_081488B0: .4byte sub_80DA634 -_081488B4: .4byte gUnknown_203F3D4 -_081488B8: - bl sub_814A6FC +_08151694: .4byte gPaletteFade +_08151698: .4byte gUnknown_203F3E0 +_0815169C: + ldrb r0, [r1, 0x4] + bl DestroyTask + ldr r0, _081516D4 @ =sub_81516DC + bl sub_815206C + bl sub_8154730 + ldr r0, [r4] + bl sub_81508EC + ldr r0, _081516D8 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] cmp r0, 0 - bne _081488D4 - ldr r0, _081488D0 @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x4C - movs r1, 0x4 + bne _081516C2 + ldr r0, [r4] + adds r0, 0x24 + movs r1, 0x1 strb r1, [r0] +_081516C2: + bl sub_8153150 movs r0, 0 - b _081488D6 - .align 2, 0 -_081488D0: .4byte gUnknown_203F3D4 -_081488D4: - movs r0, 0x1 -_081488D6: + bl sub_81545BC +_081516CC: + add sp, 0x4 pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814881C + pop {r0} + bx r0 + .align 2, 0 +_081516D4: .4byte sub_81516DC +_081516D8: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_815159C - thumb_func_start sub_81488DC -sub_81488DC: @ 81488DC + thumb_func_start sub_81516DC +sub_81516DC: @ 81516DC push {r4,r5,lr} - ldr r1, _081488F4 @ =gUnknown_203F3D4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081516F8 @ =gUnknown_203F3E0 ldr r0, [r1] - ldrh r0, [r0, 0xA] + ldrb r0, [r0, 0x10] adds r4, r1, 0 - cmp r0, 0x7 - bhi _081489C0 - lsls r0, 2 - ldr r1, _081488F8 @ =_081488FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081488F4: .4byte gUnknown_203F3D4 -_081488F8: .4byte _081488FC - .align 2, 0 -_081488FC: - .4byte _0814891C - .4byte _08148928 - .4byte _08148948 - .4byte _08148962 - .4byte _08148974 - .4byte _0814897C - .4byte _0814899C - .4byte _081489B6 -_0814891C: - movs r0, 0x2 - bl sub_8149D40 - bl sub_814AAA0 - b _0814898C -_08148928: - bl sub_8149D68 - adds r5, r0, 0 - cmp r5, 0 - bne _081489C0 - ldr r4, _08148944 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrb r0, [r0, 0x6] - bl sub_814AAB4 - ldr r1, [r4] - strh r5, [r1, 0x3C] - b _08148990 - .align 2, 0 -_08148944: .4byte gUnknown_203F3D4 -_08148948: - ldr r1, [r4] - ldrh r0, [r1, 0x3C] - adds r0, 0x1 - strh r0, [r1, 0x3C] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x78 - bls _081489C0 - movs r0, 0x3 - bl sub_8149D40 - ldr r1, [r4] - b _08148990 -_08148962: - bl sub_8149D68 cmp r0, 0x1 - beq _081489C0 - bl sub_814AAC8 + beq _08151708 cmp r0, 0x1 - beq _081489C0 - b _0814898C -_08148974: - movs r0, 0x9 - bl sub_8149D40 - b _0814898C -_0814897C: - bl sub_8149D68 + bgt _081516FC cmp r0, 0 - bne _081489C0 - bl sub_814935C - bl sub_814A3E4 -_0814898C: - ldr r0, _08148998 @ =gUnknown_203F3D4 - ldr r1, [r0] -_08148990: - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _081489C0 + beq _08151702 + b _08151720 .align 2, 0 -_08148998: .4byte gUnknown_203F3D4 -_0814899C: - bl sub_814A408 - cmp r0, 0 - bne _081489C0 - bl sub_814936C - bl sub_8148F9C - ldr r0, _081489BC @ =gUnknown_203F3D4 - ldr r1, [r0] - ldrh r0, [r1, 0xA] +_081516F8: .4byte gUnknown_203F3E0 +_081516FC: + cmp r0, 0x2 + beq _0815170E + b _08151720 +_08151702: + bl sub_81520B4 + b _08151712 +_08151708: + bl sub_8153DD8 + b _08151716 +_0815170E: + bl sub_8153F1C +_08151712: + cmp r0, 0x1 + bne _08151744 +_08151716: + ldr r1, [r4] + ldrb r0, [r1, 0x10] adds r0, 0x1 - strh r0, [r1, 0xA] -_081489B6: - movs r0, 0 - b _081489C2 + strb r0, [r1, 0x10] + b _08151744 +_08151720: + ldr r0, [r4] + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08151738 + ldr r0, _08151734 @ =sub_8150C08 + bl sub_815206C + b _0815173E .align 2, 0 -_081489BC: .4byte gUnknown_203F3D4 -_081489C0: - movs r0, 0x1 -_081489C2: +_08151734: .4byte sub_8150C08 +_08151738: + ldr r0, _0815174C @ =sub_8150C40 + bl sub_815206C +_0815173E: + adds r0, r5, 0 + bl DestroyTask +_08151744: pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81488DC + pop {r0} + bx r0 + .align 2, 0 +_0815174C: .4byte sub_8150C40 + thumb_func_end sub_81516DC - thumb_func_start sub_81489C8 -sub_81489C8: @ 81489C8 - push {r4,r5,lr} - bl sub_8148FE0 - ldr r5, _081489E0 @ =gUnknown_203F3D4 - ldr r1, [r5] - ldrh r4, [r1, 0x36] - cmp r4, 0 - beq _081489E4 + thumb_func_start sub_8151750 +sub_8151750: @ 8151750 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08151774 @ =gTasks+0x8 + adds r6, r0, r1 movs r0, 0 - strh r0, [r1, 0x36] - b _08148A58 + ldrsh r5, [r6, r0] + cmp r5, 0x1 + beq _081517A8 + cmp r5, 0x1 + bgt _08151778 + cmp r5, 0 + beq _0815177E + b _08151836 .align 2, 0 -_081489E0: .4byte gUnknown_203F3D4 -_081489E4: - ldrh r0, [r1, 0xA] - cmp r0, 0x1 - beq _08148A10 - cmp r0, 0x1 - bgt _081489F4 - cmp r0, 0 - beq _081489FE - b _08148A56 -_081489F4: - cmp r0, 0x2 - beq _08148A34 - cmp r0, 0x3 - beq _08148A48 - b _08148A56 -_081489FE: +_08151774: .4byte gTasks+0x8 +_08151778: + cmp r5, 0x2 + beq _081517BA + b _08151836 +_0815177E: + ldr r4, _081517A0 @ =gUnknown_203F3E0 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 2 + ldr r2, _081517A4 @ =0x0000318c + adds r0, r2 + adds r1, r0 movs r0, 0 - bl sub_814922C + movs r2, 0x1 + bl SendBlock + ldr r0, [r4] + strb r5, [r0, 0x8] + b _081517B2 + .align 2, 0 +_081517A0: .4byte gUnknown_203F3E0 +_081517A4: .4byte 0x0000318c +_081517A8: + bl sub_800A4BC + lsls r0, 24 cmp r0, 0 - beq _08148A56 - ldr r1, [r5] - ldrh r0, [r1, 0xA] + beq _08151836 +_081517B2: + ldrh r0, [r6] adds r0, 0x1 - strh r0, [r1, 0xA] -_08148A10: - ldr r0, _08148A2C @ =gMain - ldrh r1, [r0, 0x2E] + strh r0, [r6] + b _08151836 +_081517BA: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r3, _08151840 @ =gUnknown_203F3E0 + ldr r0, [r3] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcs _08151812 + adds r6, r3, 0 +_081517D2: movs r0, 0x1 - ands r0, r1 + ands r0, r5 cmp r0, 0 - beq _08148A56 - bl sub_8149260 - movs r0, 0x3 - bl sub_8147F10 - ldr r0, _08148A30 @ =gUnknown_203F3D4 - ldr r1, [r0] - b _08148A40 + beq _08151800 + ldr r0, [r6] + lsls r2, r4, 2 + adds r2, r0 + ldr r0, _08151844 @ =0x0000318c + adds r2, r0 + lsls r0, r4, 8 + ldr r1, _08151848 @ =gBlockRecvBuffer + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, 0 + str r3, [sp] + bl ResetBlockReceivedFlag + ldr r1, [r6] + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] + ldr r3, [sp] +_08151800: + lsrs r5, 1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r3] + adds r0, 0x24 + ldrb r0, [r0] + cmp r4, r0 + bcc _081517D2 +_08151812: + ldr r4, _08151840 @ =gUnknown_203F3E0 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x24 + ldrb r0, [r0, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcc _08151836 + adds r0, r7, 0 + bl DestroyTask + movs r0, 0x6 + bl sub_81549D4 + ldr r1, [r4] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] +_08151836: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 .align 2, 0 -_08148A2C: .4byte gMain -_08148A30: .4byte gUnknown_203F3D4 -_08148A34: +_08151840: .4byte gUnknown_203F3E0 +_08151844: .4byte 0x0000318c +_08151848: .4byte gBlockRecvBuffer + thumb_func_end sub_8151750 + + thumb_func_start sub_815184C +sub_815184C: @ 815184C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + ldr r6, _08151928 @ =gUnknown_203F3E0 + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x24 + ldrb r7, [r1] + ldr r2, _0815192C @ =0x000031a0 + adds r1, r0, r2 + ldr r3, _08151930 @ =0x000031cc + adds r2, r0, r3 + ldr r4, _08151934 @ =0x00003208 + adds r3, r0, r4 + ldr r5, _08151938 @ =0x00003244 + adds r4, r0, r5 + str r4, [sp] + adds r5, 0x3C + adds r4, r0, r5 + str r4, [sp, 0x4] + adds r5, 0x3C + adds r4, r0, r5 + str r4, [sp, 0x8] + adds r4, r0, 0 + adds r4, 0x40 + str r4, [sp, 0xC] + movs r5, 0x90 + lsls r5, 1 + adds r4, r0, r5 + str r4, [sp, 0x10] + movs r4, 0x96 + lsls r4, 1 + adds r0, r4 + str r0, [sp, 0x14] + movs r0, 0 + bl sub_815A950 + ldr r1, [r6] + ldr r5, _0815193C @ =0x000031b0 + adds r2, r1, r5 + str r0, [r2] + movs r0, 0x94 + lsls r0, 1 + adds r1, r0 movs r0, 0x1 - bl sub_814922C - cmp r0, 0x1 - bne _08148A56 + strb r0, [r1] + movs r5, 0x1 + cmp r5, r7 + bcs _081518F4 +_081518B0: + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xA8 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _081518EA + lsls r0, r5, 4 + subs r0, r5 + lsls r4, r0, 2 + adds r1, r4, r1 + ldr r2, _08151930 @ =0x000031cc + adds r1, r2 + adds r0, r5, 0 + bl sub_815AB04 + adds r1, r0, 0 + cmp r1, 0 + bne _081518EA + ldr r0, [r6] + adds r0, r4 + ldr r3, _08151930 @ =0x000031cc + adds r0, r3 + strb r1, [r0] + ldr r0, [r6] + movs r4, 0x94 + lsls r4, 1 + adds r0, r4 + strb r1, [r0] +_081518EA: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _081518B0 +_081518F4: + ldr r5, _08151928 @ =gUnknown_203F3E0 ldr r1, [r5] -_08148A40: - ldrh r0, [r1, 0xA] + movs r6, 0x92 + lsls r6, 1 + adds r1, r6 + ldrb r0, [r1] adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148A56 -_08148A48: - movs r0, 0 - bl sub_814922C - cmp r0, 0x1 - bne _08148A56 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _08151952 + ldr r1, [r5] + movs r2, 0x94 + lsls r2, 1 + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, 0 + beq _08151940 + bl sub_80FBA44 + ldr r0, [r5] + adds r0, r6 + movs r1, 0 + strb r1, [r0] + b _08151952 + .align 2, 0 +_08151928: .4byte gUnknown_203F3E0 +_0815192C: .4byte 0x000031a0 +_08151930: .4byte 0x000031cc +_08151934: .4byte 0x00003208 +_08151938: .4byte 0x00003244 +_0815193C: .4byte 0x000031b0 +_08151940: + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, 0x46 + bls _08151952 + bl sub_80FBA44 ldr r0, [r5] - strh r4, [r0, 0xA] -_08148A56: + adds r0, r6 + strb r4, [r0] +_08151952: + movs r5, 0 + cmp r5, r7 + bcs _08151A46 + ldr r3, _0815199C @ =0x000031cc + mov r12, r3 + ldr r4, _081519A0 @ =gUnknown_203F3E0 + mov r8, r4 +_08151960: + mov r6, r8 + ldr r2, [r6] + lsls r0, r5, 4 + subs r1, r0, r5 + lsls r1, 2 + adds r1, r2, r1 + add r1, r12 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0 + beq _08151986 + adds r0, r2, 0 + adds r0, 0xA8 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, 0 + bne _08151986 movs r0, 0x1 -_08148A58: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81489C8 - - thumb_func_start sub_8148A60 -sub_8148A60: @ 8148A60 - push {r4-r6,lr} - ldr r1, _08148A78 @ =gUnknown_203F3D4 - ldr r0, [r1] - ldrh r0, [r0, 0xA] - adds r5, r1, 0 + strb r0, [r1] +_08151986: + adds r3, r4, 0 + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0xA8 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x3 + bgt _081519A4 + cmp r0, 0x1 + bge _081519AA + b _08151A3C + .align 2, 0 +_0815199C: .4byte 0x000031cc +_081519A0: .4byte gUnknown_203F3E0 +_081519A4: cmp r0, 0x4 - bhi _08148B4C - lsls r0, 2 - ldr r1, _08148A7C @ =_08148A80 + beq _081519F8 + b _08151A3C +_081519AA: + adds r1, 0xB0 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _08151A3C + ldr r0, [r3] + adds r0, 0xB0 + adds r0, r5 + strb r2, [r0] + ldr r0, [r3] + adds r0, 0xA8 + adds r0, r5 + strb r2, [r0] + ldr r0, [r3] + subs r1, r6, r5 + lsls r1, 2 adds r0, r1 - ldr r0, [r0] - mov pc, r0 + add r0, r12 + strb r2, [r0] + ldr r0, [r3] + adds r0, r1 + ldr r6, _081519F0 @ =0x000031d0 + adds r0, r6 + strb r2, [r0] + ldr r0, [r3] + adds r0, r1 + ldr r1, _081519F4 @ =0x000031d4 + adds r0, r1 + b _08151A3A .align 2, 0 -_08148A78: .4byte gUnknown_203F3D4 -_08148A7C: .4byte _08148A80 +_081519F0: .4byte 0x000031d0 +_081519F4: .4byte 0x000031d4 +_081519F8: + adds r1, 0xB0 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x27 + bls _08151A3C + ldr r0, [r4] + adds r0, 0xB0 + adds r0, r5 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0xA8 + adds r0, r5 + strb r2, [r0] + ldr r0, [r4] + subs r1, r6, r5 + lsls r1, 2 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldr r0, [r4] + adds r0, r1 + ldr r3, _08151A54 @ =0x000031d0 + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r0, r1 + ldr r6, _08151A58 @ =0x000031d4 + adds r0, r6 +_08151A3A: + strb r2, [r0] +_08151A3C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _08151960 +_08151A46: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 .align 2, 0 -_08148A80: - .4byte _08148A94 - .4byte _08148AB8 - .4byte _08148AFC - .4byte _08148B20 - .4byte _08148B42 -_08148A94: - movs r4, 0 +_08151A54: .4byte 0x000031d0 +_08151A58: .4byte 0x000031d4 + thumb_func_end sub_815184C + + thumb_func_start sub_8151A5C +sub_8151A5C: @ 8151A5C + push {r4-r7,lr} + sub sp, 0x18 + ldr r5, _08151B20 @ =gUnknown_203F3E0 ldr r0, [r5] - ldrb r0, [r0, 0x5] - cmp r4, r0 - bge _08148AB4 - adds r6, r5, 0 -_08148AA0: - adds r0, r4, 0 - bl sub_814AA78 - cmp r0, 0x1 - beq _08148B4C - adds r4, 0x1 - ldr r0, [r6] - ldrb r0, [r0, 0x5] - cmp r4, r0 - blt _08148AA0 -_08148AB4: + adds r1, r0, 0 + adds r1, 0x24 + ldrb r6, [r1] + ldr r2, _08151B24 @ =0x000031a0 + adds r1, r0, r2 + ldr r3, _08151B28 @ =0x000031cc + adds r2, r0, r3 + ldr r4, _08151B2C @ =0x00003208 + adds r3, r0, r4 + ldr r7, _08151B30 @ =0x00003244 + adds r4, r0, r7 + str r4, [sp] + adds r7, 0x3C + adds r4, r0, r7 + str r4, [sp, 0x4] + adds r7, 0x3C + adds r4, r0, r7 + str r4, [sp, 0x8] + adds r4, r0, 0 + adds r4, 0x40 + str r4, [sp, 0xC] + movs r7, 0x90 + lsls r7, 1 + adds r4, r0, r7 + str r4, [sp, 0x10] + movs r4, 0x96 + lsls r4, 1 + adds r0, r4 + str r0, [sp, 0x14] + movs r0, 0 + bl sub_815A950 ldr r1, [r5] - b _08148B18 -_08148AB8: - movs r4, 0 - ldr r0, [r5] - ldrb r0, [r0, 0x5] - cmp r4, r0 - bge _08148AE8 - adds r6, r5, 0 - movs r5, 0 -_08148AC6: - ldr r0, [r6] - adds r0, r5 - ldr r1, _08148AF4 @ =0x000082f4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x2 - bne _08148ADC - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_814AA60 -_08148ADC: - adds r5, 0x28 - adds r4, 0x1 - ldr r0, [r6] - ldrb r0, [r0, 0x5] - cmp r4, r0 - blt _08148AC6 -_08148AE8: + ldr r7, _08151B34 @ =0x000031b0 + adds r2, r1, r7 + str r0, [r2] + movs r0, 0x94 + lsls r0, 1 + adds r1, r0 movs r0, 0x1 - bl sub_8149D40 - ldr r0, _08148AF8 @ =gUnknown_203F3D4 - ldr r1, [r0] - b _08148B14 - .align 2, 0 -_08148AF4: .4byte 0x000082f4 -_08148AF8: .4byte gUnknown_203F3D4 -_08148AFC: + strb r0, [r1] + movs r4, 0x1 + cmp r4, r6 + bcs _08151AEC +_08151ABC: + adds r0, r4, 0 + bl sub_815AB60 + cmp r0, 0 + beq _08151AE2 + ldr r0, _08151B20 @ =gUnknown_203F3E0 + ldr r2, [r0] + lsls r1, r4, 2 + movs r3, 0x98 + lsls r3, 1 + adds r0, r2, r3 + adds r0, r1 + movs r1, 0x1 + str r1, [r0] + movs r7, 0x94 + lsls r7, 1 + adds r1, r2, r7 + movs r0, 0 + strb r0, [r1] +_08151AE2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08151ABC +_08151AEC: + ldr r5, _08151B20 @ =gUnknown_203F3E0 ldr r1, [r5] - ldrh r0, [r1, 0x3C] + movs r6, 0x92 + lsls r6, 1 + adds r1, r6 + ldrb r0, [r1] adds r0, 0x1 - strh r0, [r1, 0x3C] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x64 - bls _08148B4C - movs r0, 0x3 - bl sub_8149D40 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _08151B4A ldr r1, [r5] -_08148B14: - movs r0, 0 - strh r0, [r1, 0x3C] -_08148B18: - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148B4C -_08148B20: - bl sub_8149D68 - adds r5, r0, 0 - cmp r5, 0 - bne _08148B4C - bl sub_814AA8C - ldr r4, _08148B48 @ =gUnknown_203F3D4 - ldr r0, [r4] - adds r0, 0x71 - strb r5, [r0] - bl sub_8149210 - ldr r1, [r4] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08148B42: - movs r0, 0 - b _08148B4E + movs r2, 0x94 + lsls r2, 1 + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, 0 + beq _08151B38 + bl sub_80FBA44 + ldr r0, [r5] + adds r0, r6 + movs r1, 0 + strb r1, [r0] + b _08151B4A + .align 2, 0 +_08151B20: .4byte gUnknown_203F3E0 +_08151B24: .4byte 0x000031a0 +_08151B28: .4byte 0x000031cc +_08151B2C: .4byte 0x00003208 +_08151B30: .4byte 0x00003244 +_08151B34: .4byte 0x000031b0 +_08151B38: + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, 0x46 + bls _08151B4A + bl sub_80FBA44 + ldr r0, [r5] + adds r0, r6 + strb r4, [r0] +_08151B4A: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151A5C + + thumb_func_start sub_8151B54 +sub_8151B54: @ 8151B54 + push {r4,r5,lr} + ldr r5, _08151B6C @ =gUnknown_203F3E0 + ldr r0, [r5] + ldrb r0, [r0, 0x18] + cmp r0, 0x4 + beq _08151B90 + cmp r0, 0x4 + bgt _08151B70 + cmp r0, 0x3 + beq _08151B76 + b _08151B9A + .align 2, 0 +_08151B6C: .4byte gUnknown_203F3E0 +_08151B70: + cmp r0, 0xB + beq _08151B96 + b _08151B9A +_08151B76: + bl sub_8152A00 + adds r4, r0, 0 + cmp r4, 0x1 + bne _08151B9A + bl sub_8152A70 + ldr r0, [r5] + movs r1, 0x8E + lsls r1, 1 + adds r0, r1 + str r4, [r0] + b _08151B9A +_08151B90: + bl sub_815184C + b _08151B9A +_08151B96: + bl sub_8151A5C +_08151B9A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8151B54 + + thumb_func_start sub_8151BA0 +sub_8151BA0: @ 8151BA0 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _08151BB4 @ =gUnknown_203F3E0 + ldr r5, [r0] + ldrb r0, [r5, 0x18] + cmp r0, 0x4 + beq _08151BB8 + cmp r0, 0xB + beq _08151C08 + b _08151C44 + .align 2, 0 +_08151BB4: .4byte gUnknown_203F3E0 +_08151BB8: + ldr r1, _08151BF8 @ =0x000032cc + adds r0, r5, r1 + ldr r2, _08151BFC @ =0x000031cc + adds r1, r5, r2 + ldr r3, _08151C00 @ =0x00003208 + adds r2, r5, r3 + ldr r4, _08151C04 @ =0x00003244 + adds r3, r5, r4 + movs r6, 0xCA + lsls r6, 6 + adds r4, r5, r6 + str r4, [sp] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x4] + adds r4, r5, 0 + adds r4, 0x40 + ldrb r4, [r4] + str r4, [sp, 0x8] + movs r6, 0x90 + lsls r6, 1 + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, 0xC] + adds r6, 0xC + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, 0x10] + bl sub_815A61C + b _08151C44 + .align 2, 0 +_08151BF8: .4byte 0x000032cc +_08151BFC: .4byte 0x000031cc +_08151C00: .4byte 0x00003208 +_08151C04: .4byte 0x00003244 +_08151C08: + ldr r1, _08151C4C @ =0x000032cc + adds r0, r5, r1 + ldr r2, _08151C50 @ =0x000031cc + adds r1, r5, r2 + ldr r3, _08151C54 @ =0x00003208 + adds r2, r5, r3 + ldr r4, _08151C58 @ =0x00003244 + adds r3, r5, r4 + movs r6, 0xCA + lsls r6, 6 + adds r4, r5, r6 + str r4, [sp] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x4] + adds r4, r5, 0 + adds r4, 0x40 + ldrb r4, [r4] + str r4, [sp, 0x8] + movs r6, 0x90 + lsls r6, 1 + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, 0xC] + adds r6, 0xC + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, 0x10] + bl sub_815A61C +_08151C44: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 .align 2, 0 -_08148B48: .4byte gUnknown_203F3D4 -_08148B4C: - movs r0, 0x1 -_08148B4E: +_08151C4C: .4byte 0x000032cc +_08151C50: .4byte 0x000031cc +_08151C54: .4byte 0x00003208 +_08151C58: .4byte 0x00003244 + thumb_func_end sub_8151BA0 + + thumb_func_start sub_8151C5C +sub_8151C5C: @ 8151C5C + push {r4-r6,lr} + sub sp, 0x18 + ldr r0, _08151C70 @ =gUnknown_203F3E0 + ldr r5, [r0] + ldrb r0, [r5, 0x18] + cmp r0, 0x4 + beq _08151C74 + cmp r0, 0xB + beq _08151CCC + b _08151D10 + .align 2, 0 +_08151C70: .4byte gUnknown_203F3E0 +_08151C74: + adds r0, r5, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 2 + ldr r2, _08151CBC @ =0x000031a0 + adds r1, r2 + adds r1, r5, r1 + ldr r3, _08151CC0 @ =0x000031cc + adds r2, r5, r3 + ldr r4, _08151CC4 @ =0x00003208 + adds r3, r5, r4 + ldr r6, _08151CC8 @ =0x00003244 + adds r4, r5, r6 + str r4, [sp] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x4] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x8] + adds r4, r5, 0 + adds r4, 0x40 + str r4, [sp, 0xC] + movs r6, 0x90 + lsls r6, 1 + adds r4, r5, r6 + str r4, [sp, 0x10] + adds r6, 0xC + adds r4, r5, r6 + str r4, [sp, 0x14] + bl sub_815A950 + b _08151D10 + .align 2, 0 +_08151CBC: .4byte 0x000031a0 +_08151CC0: .4byte 0x000031cc +_08151CC4: .4byte 0x00003208 +_08151CC8: .4byte 0x00003244 +_08151CCC: + adds r0, r5, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 2 + ldr r2, _08151D18 @ =0x000031a0 + adds r1, r2 + adds r1, r5, r1 + ldr r3, _08151D1C @ =0x000031cc + adds r2, r5, r3 + ldr r4, _08151D20 @ =0x00003208 + adds r3, r5, r4 + ldr r6, _08151D24 @ =0x00003244 + adds r4, r5, r6 + str r4, [sp] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x4] + adds r6, 0x3C + adds r4, r5, r6 + str r4, [sp, 0x8] + adds r4, r5, 0 + adds r4, 0x40 + str r4, [sp, 0xC] + movs r6, 0x90 + lsls r6, 1 + adds r4, r5, r6 + str r4, [sp, 0x10] + adds r6, 0xC + adds r4, r5, r6 + str r4, [sp, 0x14] + bl sub_815A950 +_08151D10: + add sp, 0x18 pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8148A60 + pop {r0} + bx r0 + .align 2, 0 +_08151D18: .4byte 0x000031a0 +_08151D1C: .4byte 0x000031cc +_08151D20: .4byte 0x00003208 +_08151D24: .4byte 0x00003244 + thumb_func_end sub_8151C5C - thumb_func_start sub_8148B54 -sub_8148B54: @ 8148B54 + thumb_func_start sub_8151D28 +sub_8151D28: @ 8151D28 push {r4,lr} - ldr r1, _08148B70 @ =gUnknown_203F3D4 - ldr r0, [r1] - ldrh r0, [r0, 0xA] - adds r4, r1, 0 - cmp r0, 0x6 - bls _08148B64 - b _08148C78 -_08148B64: - lsls r0, 2 - ldr r1, _08148B74 @ =_08148B78 + ldr r4, _08151D40 @ =gUnknown_203F3E0 + ldr r1, [r4] + ldrb r0, [r1, 0x18] + cmp r0, 0x4 + beq _08151D5E + cmp r0, 0x4 + bgt _08151D44 + cmp r0, 0x3 + beq _08151D4A + b _08151D90 + .align 2, 0 +_08151D40: .4byte gUnknown_203F3E0 +_08151D44: + cmp r0, 0xB + beq _08151D74 + b _08151D90 +_08151D4A: + movs r0, 0x1 + bl sub_815A5BC + ldr r0, [r4] + movs r1, 0x8E + lsls r1, 1 adds r0, r1 - ldr r0, [r0] - mov pc, r0 + movs r1, 0x1 + str r1, [r0] + b _08151D90 +_08151D5E: + ldr r2, _08151D70 @ =0x000032f8 + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08151D90 + bl sub_815AAD8 + b _08151D90 .align 2, 0 -_08148B70: .4byte gUnknown_203F3D4 -_08148B74: .4byte _08148B78 - .align 2, 0 -_08148B78: - .4byte _08148B94 - .4byte _08148BB4 - .4byte _08148BCC - .4byte _08148BFC - .4byte _08148BB4 - .4byte _08148BCC - .4byte _08148C6C -_08148B94: - ldr r2, [r4] +_08151D70: .4byte 0x000032f8 +_08151D74: + movs r2, 0x90 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, 0 + bne _08151D90 + adds r2, 0xC + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, 0 + bne _08151D90 + movs r0, 0x1 + bl sub_815AB3C +_08151D90: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8151D28 + + thumb_func_start sub_8151D98 +sub_8151D98: @ 8151D98 + push {r4-r6,lr} + ldr r6, _08151DD0 @ =gUnknown_203F3E0 + ldr r2, [r6] adds r0, r2, 0 - adds r0, 0x72 - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x3E - adds r2, 0x40 - bl sub_8149900 - ldr r1, [r4] - ldrh r0, [r1, 0x3E] - adds r1, 0x40 - ldrh r1, [r1] - bl sub_814A468 - b _08148BEC -_08148BB4: - bl sub_814A62C - adds r2, r0, 0 - cmp r2, 0 - bne _08148C78 - ldr r0, _08148BC8 @ =gUnknown_203F3D4 - ldr r1, [r0] - strh r2, [r1, 0x3C] - b _08148BEE - .align 2, 0 -_08148BC8: .4byte gUnknown_203F3D4 -_08148BCC: - ldr r1, [r4] - ldrh r0, [r1, 0x3C] - adds r2, r0, 0x1 - strh r2, [r1, 0x3C] - ldr r0, _08148BF8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r1, r2, r0 + ldr r3, _08151DD4 @ =0x000031cc + adds r0, r1, r3 + ldrb r0, [r0] cmp r0, 0 - bne _08148BE8 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0xB4 - bls _08148C78 -_08148BE8: - bl sub_814A6CC -_08148BEC: - ldr r1, [r4] -_08148BEE: - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148C78 + bne _08151DD8 + bl IsSEPlaying + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08151E3A + ldr r0, [r6] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r2 + strb r1, [r0] + b _08151E3A .align 2, 0 -_08148BF8: .4byte gMain -_08148BFC: - bl sub_814A6FC +_08151DD0: .4byte gUnknown_203F3E0 +_08151DD4: .4byte 0x000031cc +_08151DD8: + ldr r3, _08151E04 @ =0x000031d0 + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, 0x1 + bne _08151E08 + movs r1, 0xA2 + lsls r1, 1 + adds r0, r2, r1 + ldrb r0, [r0] cmp r0, 0 - bne _08148C78 - ldr r4, _08148C48 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldrh r0, [r1, 0x3E] - adds r1, 0x40 - ldrh r1, [r1] - bl sub_8149978 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x40 - strh r0, [r2] - lsls r0, 16 + bne _08151E3A + movs r0, 0x19 + bl m4aSongNumStop + movs r0, 0x19 + bl PlaySE + ldr r0, [r6] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r2 + b _08151E38 + .align 2, 0 +_08151E04: .4byte 0x000031d0 +_08151E08: + ldr r3, _08151E64 @ =0x000031d4 + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, 0x1 + bne _08151E3A + movs r5, 0xA2 + lsls r5, 1 + adds r0, r2, r5 + ldrb r0, [r0] cmp r0, 0 - beq _08148C54 - ldrh r0, [r1, 0x3E] - ldrh r1, [r2] - bl AddBagItem + bne _08151E3A + bl IsSEPlaying lsls r0, 24 cmp r0, 0 - beq _08148C54 + bne _08151E3A + movs r0, 0x16 + bl PlaySE + movs r0, 0x1 + bl sub_8153BC0 + ldr r0, [r6] + adds r0, r5 +_08151E38: + strb r4, [r0] +_08151E3A: + ldr r0, _08151E68 @ =gUnknown_203F3E0 + ldr r2, [r0] + movs r5, 0xAA + lsls r5, 1 + adds r1, r2, r5 + ldrb r1, [r1] + adds r4, r0, 0 + cmp r1, 0 + bne _08151E6C + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08151E6C + bl StopMapMusic ldr r0, [r4] - ldrh r0, [r0, 0x3E] + adds r0, r5 movs r1, 0x1 - bl CheckBagHasSpace - lsls r0, 24 - cmp r0, 0 - bne _08148C4C - ldr r0, [r4] - ldrh r0, [r0, 0x3E] - bl sub_814A53C - b _08148C5E + b _08151E8A .align 2, 0 -_08148C48: .4byte gUnknown_203F3D4 -_08148C4C: - ldr r1, [r4] - movs r0, 0x6 - strh r0, [r1, 0xA] - b _08148C78 -_08148C54: - ldr r4, _08148C68 @ =gUnknown_203F3D4 +_08151E64: .4byte 0x000031d4 +_08151E68: .4byte gUnknown_203F3E0 +_08151E6C: ldr r0, [r4] - ldrh r0, [r0, 0x3E] - bl sub_814A5B4 -_08148C5E: - ldr r1, [r4] - movs r0, 0x4 - strh r0, [r1, 0xA] - b _08148C78 + movs r1, 0xAA + lsls r1, 1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08151E8C + movs r0, 0xA + bl PlayFanfareByFanfareNum + ldr r0, [r4] + movs r2, 0xAA + lsls r2, 1 + adds r0, r2 + movs r1, 0x2 +_08151E8A: + strb r1, [r0] +_08151E8C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8151D98 + + thumb_func_start sub_8151E94 +sub_8151E94: @ 8151E94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r6, _08151EE0 @ =gUnknown_203F3E0 + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0x44 + ldrb r0, [r0] + mov r8, r0 + adds r0, r2, 0 + adds r0, 0x48 + ldrb r7, [r0] + subs r0, 0x20 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r1, r2, r0 + ldr r3, _08151EE4 @ =0x000031cc + adds r0, r1, r3 + ldrb r3, [r0] + cmp r3, 0 + bne _08151EEC + ldr r4, _08151EE8 @ =0x000031d0 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08151F4E + adds r4, 0x4 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08151F4E + movs r1, 0xA2 + lsls r1, 1 + adds r0, r2, r1 + strb r3, [r0] + b _08151F4E .align 2, 0 -_08148C68: .4byte gUnknown_203F3D4 -_08148C6C: - bl sub_814A6FC +_08151EE0: .4byte gUnknown_203F3E0 +_08151EE4: .4byte 0x000031cc +_08151EE8: .4byte 0x000031d0 +_08151EEC: + ldr r3, _08151F18 @ =0x000031d0 + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, 0x1 + bne _08151F1C + movs r1, 0xA2 + lsls r1, 1 + adds r0, r2, r1 + ldrb r0, [r0] cmp r0, 0 - bne _08148C78 - movs r0, 0 - b _08148C7A -_08148C78: + bne _08151F4E + movs r0, 0x19 + bl m4aSongNumStop + movs r0, 0x19 + bl PlaySE + ldr r0, [r6] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r3 + b _08151F4C + .align 2, 0 +_08151F18: .4byte 0x000031d0 +_08151F1C: + ldr r4, _08151FA0 @ =0x000031d4 + adds r0, r1, r4 + ldrb r4, [r0] + cmp r4, 0x1 + bne _08151F4E + movs r5, 0xA2 + lsls r5, 1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _08151F4E + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08151F4E + movs r0, 0x16 + bl PlaySE movs r0, 0x1 -_08148C7A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148B54 - - thumb_func_start sub_8148C80 -sub_8148C80: @ 8148C80 - push {r4,lr} - ldr r0, _08148C98 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrh r0, [r0, 0xA] - cmp r0, 0x6 - bhi _08148D54 + bl sub_8153BC0 + ldr r0, [r6] + adds r0, r5 +_08151F4C: + strb r4, [r0] +_08151F4E: + mov r4, r8 + cmp r4, r7 + bcs _08151FC2 + ldr r5, _08151FA4 @ =gUnknown_203F3E0 +_08151F56: + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 lsls r0, 2 - ldr r1, _08148C9C @ =_08148CA0 + ldr r1, _08151FA8 @ =0x000031a0 adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08148C98: .4byte gUnknown_203F3D4 -_08148C9C: .4byte _08148CA0 - .align 2, 0 -_08148CA0: - .4byte _08148CBC - .4byte _08148CC0 - .4byte _08148CCA - .4byte _08148D18 - .4byte _08148D22 - .4byte _08148D38 - .4byte _08148D4A -_08148CBC: - movs r0, 0x4 - b _08148D24 -_08148CC0: - bl sub_8149D68 + adds r0, r2, r0 + adds r1, r0, 0 + adds r1, 0x14 + adds r0, 0x1F + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08151FAC + movs r3, 0xA4 + lsls r3, 1 + adds r0, r2, r3 + adds r0, r4 + ldrb r0, [r0] cmp r0, 0 - bne _08148D54 - b _08148D28 -_08148CCA: - bl sub_814A744 + bne _08151FB8 + adds r0, r1, r4 + ldrb r0, [r0] + adds r0, 0x43 + bl PlaySE + ldr r0, [r5] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + movs r1, 0x1 + b _08151FB6 + .align 2, 0 +_08151FA0: .4byte 0x000031d4 +_08151FA4: .4byte gUnknown_203F3E0 +_08151FA8: .4byte 0x000031a0 +_08151FAC: + movs r3, 0xA4 + lsls r3, 1 + adds r0, r2, r3 + adds r0, r4 + movs r1, 0 +_08151FB6: + strb r1, [r0] +_08151FB8: + adds r0, r4, 0x1 lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08148D00 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _08151F56 +_08151FC2: + ldr r0, _08151FEC @ =gUnknown_203F3E0 + ldr r2, [r0] + movs r5, 0xAA + lsls r5, 1 + adds r1, r2, r5 + ldrb r1, [r1] + adds r4, r0, 0 cmp r1, 0 - bgt _08148CE4 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08148CE8 - b _08148D54 -_08148CE4: - cmp r1, 0x1 - bne _08148D54 -_08148CE8: - ldr r4, _08148CFC @ =gUnknown_203F3D4 + bne _08151FF0 + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08151FF0 + bl StopMapMusic ldr r0, [r4] - adds r0, 0x45 + adds r0, r5 movs r1, 0x1 - strb r1, [r0] - movs r0, 0x6 - bl sub_8149D40 - ldr r1, [r4] - b _08148D2C + b _0815200E .align 2, 0 -_08148CFC: .4byte gUnknown_203F3D4 -_08148D00: - ldr r4, _08148D14 @ =gUnknown_203F3D4 +_08151FEC: .4byte gUnknown_203F3E0 +_08151FF0: + ldr r0, [r4] + movs r1, 0xAA + lsls r1, 1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08152010 + movs r0, 0xA + bl PlayFanfareByFanfareNum ldr r0, [r4] - adds r0, 0x45 + movs r3, 0xAA + lsls r3, 1 + adds r0, r3 movs r1, 0x2 +_0815200E: strb r1, [r0] - movs r0, 0x6 - bl sub_8149D40 - ldr r1, [r4] - b _08148D2C - .align 2, 0 -_08148D14: .4byte gUnknown_203F3D4 -_08148D18: - bl sub_8149D68 - cmp r0, 0 - bne _08148D54 - b _08148D28 -_08148D22: - movs r0, 0x8 -_08148D24: - bl sub_8149D40 -_08148D28: - ldr r0, _08148D34 @ =gUnknown_203F3D4 - ldr r1, [r0] -_08148D2C: - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148D54 - .align 2, 0 -_08148D34: .4byte gUnknown_203F3D4 -_08148D38: - bl sub_8149D68 - cmp r0, 0 - bne _08148D54 - ldr r0, _08148D50 @ =gUnknown_203F3D4 - ldr r1, [r0] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08148D4A: - movs r0, 0 - b _08148D56 - .align 2, 0 -_08148D50: .4byte gUnknown_203F3D4 -_08148D54: - movs r0, 0x1 -_08148D56: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148C80 +_08152010: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151E94 - thumb_func_start sub_8148D5C -sub_8148D5C: @ 8148D5C + thumb_func_start sub_815201C +sub_815201C: @ 815201C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_815201C + + thumb_func_start sub_8152034 +sub_8152034: @ 8152034 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_8152034 + + thumb_func_start sub_8152048 +sub_8152048: @ 8152048 push {r4,lr} - sub sp, 0x4 - ldr r1, _08148D78 @ =gUnknown_203F3D4 + adds r4, r0, 0 + adds r0, r1, 0 + bl IsMonShiny + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8152048 + + thumb_func_start sub_815205C +sub_815205C: @ 815205C + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + pop {r0} + bx r0 + thumb_func_end sub_815205C + + thumb_func_start sub_815206C +sub_815206C: @ 815206C + push {lr} + movs r1, 0x1 + bl CreateTask + ldr r1, _0815208C @ =gUnknown_203F3E0 + ldr r3, [r1] + movs r2, 0 + strb r0, [r3, 0x4] ldr r0, [r1] - ldrh r0, [r0, 0xA] - adds r4, r1, 0 - cmp r0, 0x5 - bhi _08148E20 - lsls r0, 2 - ldr r1, _08148D7C @ =_08148D80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 + strb r2, [r0, 0x10] + ldr r0, [r1] + strb r2, [r0, 0xC] + ldr r0, [r1] + strb r2, [r0, 0x14] + pop {r0} + bx r0 .align 2, 0 -_08148D78: .4byte gUnknown_203F3D4 -_08148D7C: .4byte _08148D80 - .align 2, 0 -_08148D80: - .4byte _08148D98 - .4byte _08148D9E - .4byte _08148DAE - .4byte _08148DC4 - .4byte _08148DEA - .4byte _08148E10 -_08148D98: - bl sub_814A6CC - b _08148DFA -_08148D9E: - bl sub_814A6FC - cmp r0, 0 - bne _08148E20 - movs r0, 0x7 - bl sub_8149D40 - b _08148DFA -_08148DAE: - bl sub_8149D68 - adds r2, r0, 0 - cmp r2, 0 - bne _08148E20 - ldr r0, _08148DC0 @ =gUnknown_203F3D4 - ldr r1, [r0] - strh r2, [r1, 0x3C] - b _08148DFE +_0815208C: .4byte gUnknown_203F3E0 + thumb_func_end sub_815206C + + thumb_func_start sub_8152090 +sub_8152090: @ 8152090 + push {r4,lr} + ldr r2, _081520B0 @ =gUnknown_203F3E0 + ldr r1, [r2] + ldrb r3, [r1, 0x18] + movs r4, 0 + strb r3, [r1, 0x1C] + ldr r1, [r2] + strb r0, [r1, 0x18] + ldr r0, [r2] + strb r4, [r0, 0x10] + ldr r0, [r2] + strb r4, [r0, 0x14] + pop {r4} + pop {r0} + bx r0 .align 2, 0 -_08148DC0: .4byte gUnknown_203F3D4 -_08148DC4: - ldr r1, [r4] - ldrh r0, [r1, 0x3C] +_081520B0: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152090 + + thumb_func_start sub_81520B4 +sub_81520B4: @ 81520B4 + push {r4,lr} + ldr r3, _081520E8 @ =gUnknown_203F3E0 + ldr r1, [r3] + ldrb r0, [r1, 0x14] + lsrs r2, r0, 2 adds r0, 0x1 - strh r0, [r1, 0x3C] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x78 - bls _08148E20 - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - b _08148DFE -_08148DEA: - ldr r0, _08148E08 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 + strb r0, [r1, 0x14] + cmp r2, 0 + beq _08152108 + ldr r3, [r3] + ldrb r0, [r3, 0x14] + movs r1, 0x3 ands r0, r1 cmp r0, 0 - bne _08148E20 - bl sub_800AAC0 -_08148DFA: - ldr r0, _08148E0C @ =gUnknown_203F3D4 - ldr r1, [r0] -_08148DFE: - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148E20 - .align 2, 0 -_08148E08: .4byte gPaletteFade -_08148E0C: .4byte gUnknown_203F3D4 -_08148E10: - ldr r0, _08148E1C @ =gReceivedRemoteLinkPlayers + bne _08152108 + ldr r1, _081520EC @ =gUnknown_8475548 + adds r0, r3, 0 + adds r0, 0x24 ldrb r0, [r0] - cmp r0, 0 - bne _08148E20 - movs r0, 0 - b _08148E22 - .align 2, 0 -_08148E1C: .4byte gReceivedRemoteLinkPlayers -_08148E20: + subs r0, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + bcc _081520F0 movs r0, 0x1 -_08148E22: - add sp, 0x4 + b _0815210A + .align 2, 0 +_081520E8: .4byte gUnknown_203F3E0 +_081520EC: .4byte gUnknown_8475548 +_081520F0: + lsls r4, r2, 3 + adds r1, r4, 0 + movs r0, 0x14 + bl SetGpuReg + negs r4, r4 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x18 + adds r1, r4, 0 + bl SetGpuReg +_08152108: + movs r0, 0 +_0815210A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8148D5C + thumb_func_end sub_81520B4 - thumb_func_start sub_8148E2C -sub_8148E2C: @ 8148E2C - push {r4,lr} - ldr r4, _08148E44 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldrh r0, [r0, 0xA] + thumb_func_start sub_8152110 +sub_8152110: @ 8152110 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r2, _08152168 @ =gUnknown_203F3E0 + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x44 + adds r0, 0x48 + ldrb r5, [r0] + ldrb r1, [r1] + cmp r1, r5 + bcs _0815215C + mov r8, r2 + ldr r0, _0815216C @ =0x000032e0 + mov r12, r0 + movs r7, 0 + movs r6, 0x1 +_08152132: + mov r2, r8 + ldr r0, [r2] + mov r2, r12 + adds r4, r0, r2 + ldr r2, _08152170 @ =0x000032eb + adds r0, r2 + adds r2, r0, r1 + movs r3, 0 + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + bne _0815214C + movs r3, 0x1 +_0815214C: + strb r3, [r2] + adds r0, r4, r1 + strb r7, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r5 + bcc _08152132 +_0815215C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08152168: .4byte gUnknown_203F3E0 +_0815216C: .4byte 0x000032e0 +_08152170: .4byte 0x000032eb + thumb_func_end sub_8152110 + + thumb_func_start sub_8152174 +sub_8152174: @ 8152174 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r0, _08152248 @ =gUnknown_203F3E0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x44 + ldrb r0, [r0] + str r0, [sp] + adds r0, r1, 0 + adds r0, 0x48 + ldrb r0, [r0] + str r0, [sp, 0x4] + adds r0, r1, 0 + adds r0, 0x24 + ldrb r0, [r0] + str r0, [sp, 0x8] + adds r0, r1, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bls _081521A8 + b _08152464 +_081521A8: + movs r6, 0 + ldr r0, [sp, 0x8] + cmp r6, r0 + bcs _08152290 +_081521B0: + ldr r3, _08152248 @ =gUnknown_203F3E0 + lsls r0, r6, 4 + subs r1, r0, r6 + lsls r1, 2 + ldr r2, [r3] + adds r1, r2 + ldr r4, _0815224C @ =0x000031cc + adds r4, r1 + mov r8, r4 + ldrb r1, [r4] + mov r9, r0 + adds r0, r6, 0x1 + str r0, [sp, 0xC] + cmp r1, 0 + beq _08152284 + adds r0, r2, 0 + adds r0, 0xA8 + adds r0, r6 + ldrb r0, [r0] cmp r0, 0x1 - beq _08148E62 + bne _08152284 + ldr r1, [sp] + mov r10, r1 + ldr r2, [sp, 0x4] + cmp r10, r2 + bcs _08152284 + adds r7, r3, 0 +_081521E6: + ldr r0, _08152250 @ =gUnknown_8471F50 + add r0, r10 + ldrb r5, [r0] + ldr r1, [r7] + lsls r4, r5, 1 + adds r0, r1, 0 + adds r0, 0xF4 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r6 + beq _08152284 + adds r0, r1, 0 + adds r0, 0xF5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r6 + beq _08152284 + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, 0 + adds r2, r5, 0 + bl sub_8152484 cmp r0, 0x1 - bgt _08148E48 - cmp r0, 0 - beq _08148E4E - b _08148E76 + bne _08152260 + movs r2, 0 + ldr r3, _08152248 @ =gUnknown_203F3E0 + mov r8, r4 +_0815221E: + ldr r0, [r3] + mov r4, r8 + adds r1, r2, r4 + adds r0, 0xF4 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08152254 + strb r6, [r1] + ldr r0, [r3] + adds r0, 0xA8 + adds r0, r6 + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r3] + adds r0, 0xC4 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + b _08152284 .align 2, 0 -_08148E44: .4byte gUnknown_203F3D4 -_08148E48: - cmp r0, 0x2 - beq _08148E72 - b _08148E76 -_08148E4E: - bl sub_814A6CC +_08152248: .4byte gUnknown_203F3E0 +_0815224C: .4byte 0x000031cc +_08152250: .4byte gUnknown_8471F50 +_08152254: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1 + bls _0815221E + b _08152284 +_08152260: + ldr r0, [r7] + mov r2, r9 + subs r1, r2, r6 + lsls r1, 2 + adds r0, r1 + ldr r4, _08152354 @ =0x000031d4 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08152284 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, [sp, 0x4] + cmp r10, r0 + bcc _081521E6 +_08152284: + ldr r1, [sp, 0xC] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r2, [sp, 0x8] + cmp r6, r2 + bcc _081521B0 +_08152290: + ldr r4, [sp] + mov r10, r4 + ldr r0, [sp, 0x4] + cmp r10, r0 + bcc _0815229C + b _08152464 +_0815229C: + ldr r1, _08152358 @ =gUnknown_203F3E0 + mov r9, r1 +_081522A0: + movs r6, 0xFF + ldr r0, _0815235C @ =gUnknown_8471F50 + add r0, r10 + ldrb r5, [r0] + mov r2, r9 + ldr r0, [r2] + adds r0, 0xC4 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081522B8 + b _08152452 +_081522B8: + adds r0, r5, 0 + bl sub_8152BD4 + mov r1, r9 + ldr r4, [r1] + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + adds r1, 0x90 + adds r1, r0 + ldrb r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _081522DE + movs r3, 0x2 +_081522DE: + ldr r2, _08152360 @ =gUnknown_847553C + ldr r0, _08152364 @ =0x000031b4 + adds r1, r4, r0 + adds r1, r5 + lsls r0, r3, 1 + adds r0, r3 + ldrb r1, [r1] + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + adds r0, r4, 0 + adds r0, 0xD0 + adds r0, r5 + ldrb r0, [r0] + subs r2, r1, r0 + cmp r2, 0x5 + bgt _0815230C + adds r1, r4, 0 + adds r1, 0x9C + adds r1, r5 + ldrb r0, [r1] + adds r0, r2 + strb r0, [r1] +_0815230C: + mov r2, r9 + ldr r1, [r2] + adds r1, 0x9C + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + movs r4, 0xFF + ands r0, r4 + cmp r0, 0x5 + bhi _08152326 + b _08152452 +_08152326: + mov r1, r9 + ldr r0, [r1] + adds r0, 0x9C + adds r0, r5 + strb r2, [r0] + ldr r3, [r1] + lsls r1, r5, 1 + adds r0, r3, 0 + adds r0, 0xF4 + adds r2, r0, r1 + ldrb r0, [r2] + mov r8, r1 + cmp r0, 0xFF + bne _08152368 + adds r0, r3, 0 + adds r0, 0xF5 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08152350 + b _08152452 +_08152350: + b _08152378 + .align 2, 0 +_08152354: .4byte 0x000031d4 +_08152358: .4byte gUnknown_203F3E0 +_0815235C: .4byte gUnknown_8471F50 +_08152360: .4byte gUnknown_847553C +_08152364: .4byte 0x000031b4 +_08152368: + adds r0, r3, 0 + adds r0, 0xF5 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08152378 + ldrb r4, [r2] + b _0815239E +_08152378: + mov r2, r9 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0xF4 + add r0, r8 + ldrb r7, [r0] + adds r1, 0xF5 + add r1, r8 + ldrb r6, [r1] + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0815239A + adds r4, r7, 0 + b _0815239E +_0815239A: + adds r4, r6, 0 + adds r6, r7, 0 +_0815239E: + mov r1, r9 + ldr r0, [r1] + ldr r2, _08152474 @ =0x000032eb + adds r0, r2 + adds r0, r5 + movs r1, 0x7 + strb r1, [r0] + mov r1, r9 + ldr r0, [r1] + adds r0, 0xC4 + adds r0, r5 + movs r1, 0x2 + strb r1, [r0] + mov r2, r9 + ldr r0, [r2] + adds r0, 0xA8 + adds r0, r4 + movs r1, 0x3 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0xB8 + adds r0, r5 + strb r4, [r0] + ldr r1, [r2] + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 2 + adds r1, r0 + ldr r2, _08152478 @ =0x000031d0 + adds r1, r2 + movs r0, 0x1 + strb r0, [r1] + mov r2, r9 + ldr r1, [r2] + lsls r0, r6, 4 + subs r0, r6 + lsls r0, 2 + adds r1, r0 + ldr r0, _0815247C @ =0x000031d4 + adds r1, r0 + movs r2, 0x1 + strb r2, [r1] + mov r0, r9 + ldr r1, [r0] + lsls r0, r4, 1 + adds r1, 0x86 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] movs r0, 0 - bl sub_814AA24 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8152D34 + movs r0, 0x1 + bl sub_8152F94 + adds r0, r4, 0 + bl sub_8152B64 + mov r1, r9 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0xE8 + adds r1, r5 + ldr r2, _08152480 @ =0x000032e0 + adds r0, r2 + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + mov r4, r9 + ldr r0, [r4] + adds r0, r2 + adds r0, r5 + movs r1, 0x3 + strb r1, [r0] ldr r1, [r4] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _08148E76 -_08148E62: - bl sub_814A6FC - cmp r0, 0 - bne _08148E76 + adds r1, 0xF4 + add r1, r8 + ldrb r0, [r1] + movs r2, 0xFF + orrs r0, r2 + strb r0, [r1] ldr r1, [r4] - ldrh r0, [r1, 0xA] + adds r1, 0xF5 + add r1, r8 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_08152452: + mov r0, r10 adds r0, 0x1 - strh r0, [r1, 0xA] -_08148E72: - movs r0, 0 - b _08148E78 -_08148E76: + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r4, [sp, 0x4] + cmp r10, r4 + bcs _08152464 + b _081522A0 +_08152464: + 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 +_08152474: .4byte 0x000032eb +_08152478: .4byte 0x000031d0 +_0815247C: .4byte 0x000031d4 +_08152480: .4byte 0x000032e0 + thumb_func_end sub_8152174 + + thumb_func_start sub_8152484 +sub_8152484: @ 8152484 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + movs r7, 0 + ldr r2, _081524B8 @ =gUnknown_203F3E0 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x24 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _081524BC @ =0x000032e0 + adds r1, r0 + mov r12, r2 + cmp r3, 0x2 + beq _081524C0 + cmp r3, 0x2 + bgt _081524C6 + cmp r3, 0x1 + beq _081524C4 + b _081524C6 + .align 2, 0 +_081524B8: .4byte gUnknown_203F3E0 +_081524BC: .4byte 0x000032e0 +_081524C0: + movs r7, 0x1 + b _081524C6 +_081524C4: + movs r7, 0x2 +_081524C6: + adds r0, r1, 0 + adds r0, 0xB + adds r0, r6 + ldrb r0, [r0] + subs r0, 0x6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08152524 + ldr r0, _08152518 @ =gUnknown_8472063 + lsls r1, r4, 1 + adds r1, r4 + adds r1, r7, r1 + lsls r2, r5, 4 + subs r2, r5 + adds r1, r2 + adds r1, r0 + ldrb r1, [r1] + cmp r6, r1 + bne _0815255A + mov r0, r12 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xC4 + adds r0, r6 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08152520 + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 2 + adds r0, r1, r0 + ldr r1, _0815251C @ =0x000031d4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + b _0815255A + .align 2, 0 +_08152518: .4byte gUnknown_8472063 +_0815251C: .4byte 0x000031d4 +_08152520: movs r0, 0x1 -_08148E78: - pop {r4} + b _0815255C +_08152524: + ldr r0, _08152564 @ =gUnknown_8472063 + lsls r1, r4, 1 + adds r1, r4 + adds r1, r7, r1 + lsls r2, r5, 4 + subs r2, r5 + adds r1, r2 + adds r1, r0 + ldrb r1, [r1] + cmp r6, r1 + bne _0815255A + mov r1, r12 + ldr r0, [r1] + adds r0, 0xA8 + adds r0, r4 + movs r1, 0x4 + strb r1, [r0] + mov r0, r12 + ldr r1, [r0] + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 2 + adds r1, r0 + ldr r0, _08152568 @ =0x000031d4 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] +_0815255A: + movs r0, 0 +_0815255C: + pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8148E2C + .align 2, 0 +_08152564: .4byte gUnknown_8472063 +_08152568: .4byte 0x000031d4 + thumb_func_end sub_8152484 - thumb_func_start sub_8148E80 -sub_8148E80: @ 8148E80 + thumb_func_start sub_815256C +sub_815256C: @ 815256C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} - sub sp, 0x4 + ldr r2, _08152640 @ =gUnknown_203F3E0 + ldr r4, [r2] + adds r0, r4, 0 + adds r0, 0x44 + ldrb r1, [r0] + adds r0, 0x4 + ldrb r0, [r0] + mov r9, r0 + movs r3, 0 + mov r10, r3 + movs r5, 0x90 + lsls r5, 1 + adds r0, r4, r5 + str r3, [r0] + adds r5, r1, 0 + mov r0, r9 + subs r0, 0x1 + cmp r5, r0 + blt _0815259E + b _081527BC +_0815259E: + mov r8, r2 +_081525A0: + mov r0, r8 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0xC4 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x1 + bls _081525B2 + b _081526BC +_081525B2: + movs r1, 0x90 + lsls r1, 1 + adds r0, r4, r1 + movs r2, 0x1 + str r2, [r0] + ldr r1, _08152644 @ =0x000032eb + adds r0, r4, r1 + adds r6, r0, r5 + ldrb r0, [r6] + cmp r0, 0x9 + bls _0815264C + movs r7, 0 + movs r0, 0xA + strb r0, [r6] + mov r1, r8 + ldr r0, [r1] + adds r0, 0xC4 + adds r0, r5 + movs r1, 0x3 + strb r1, [r0] + mov r1, r8 + ldr r0, [r1] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, 0 + bne _081525FC + strb r2, [r1] + ldr r2, _08152648 @ =0x000032e0 + adds r0, r4, r2 + adds r0, r5 + ldrb r0, [r0] + adds r0, 0x43 + bl PlaySE +_081525FC: + mov r0, r8 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08152612 + mov r2, r10 + cmp r2, 0x1 + beq _08152612 + b _081527AC +_08152612: + movs r0, 0x1 + mov r10, r0 + adds r0, r1, r6 + adds r0, r5 + strb r7, [r0] + mov r1, r8 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0x40 + ldrb r0, [r1] + cmp r0, 0x9 + bhi _0815262E + adds r0, 0x1 + strb r0, [r1] +_0815262E: + movs r0, 0x3 + adds r1, r5, 0 + movs r2, 0 + bl sub_8152D34 + movs r0, 0 + bl sub_8152F94 + b _081527AC + .align 2, 0 +_08152640: .4byte gUnknown_203F3E0 +_08152644: .4byte 0x000032eb +_08152648: .4byte 0x000032e0 +_0815264C: + adds r0, r5, 0 + bl sub_8152BD4 + mov r2, r8 + ldr r7, [r2] lsls r0, 24 lsrs r0, 24 - mov r10, r0 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - ldr r1, _08148EB4 @ =gTasks+0x8 - adds r6, r0, r1 - mov r0, r10 - movs r1, 0xE - bl GetWordTaskArg - mov r8, r0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _08148EC4 - cmp r0, 0x1 - beq _08148ED8 - b _08148F44 + adds r1, r7, 0 + adds r1, 0x90 + adds r1, r0 + ldrb r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _08152672 + movs r3, 0x2 +_08152672: + ldr r2, _081526B4 @ =gUnknown_847553C + ldr r0, _081526B8 @ =0x000032e0 + adds r1, r4, r0 + adds r1, r5 + lsls r0, r3, 1 + adds r0, r3 + ldrb r1, [r1] + adds r0, r1 + adds r0, r2 + ldrb r2, [r0] + adds r1, r7, 0 + adds r1, 0xD0 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + bcc _081526AC + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + mov r1, r8 + ldr r0, [r1] + adds r0, 0xD0 + adds r0, r5 + strb r3, [r0] +_081526AC: + bl sub_8152174 + b _081527AC .align 2, 0 -_08148EB4: .4byte gTasks+0x8 -_08148EB8: - bl sub_8147C20 - mov r0, r10 - bl DestroyTask - b _08148F44 -_08148EC4: - movs r1, 0 - adds r0, r6, 0 - adds r0, 0x8 -_08148ECA: - strh r1, [r0, 0x4] - subs r0, 0x2 - cmp r0, r6 - bge _08148ECA - ldrh r0, [r6] +_081526B4: .4byte gUnknown_847553C +_081526B8: .4byte 0x000032e0 +_081526BC: + cmp r0, 0x2 + bne _0815273C + adds r1, r4, 0 + adds r1, 0xDC + adds r1, r5 + ldrb r0, [r1] adds r0, 0x1 - strh r0, [r6] -_08148ED8: - mov r3, r8 - ldrb r1, [r3, 0x6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r4, _08148F54 @ =0x000082a8 - adds r0, r4 - add r0, r8 - bl sub_8149A6C - movs r2, 0 - adds r5, r6, 0x4 - mov r9, r2 - movs r7, 0x83 - lsls r7, 8 - add r7, r8 - add r4, r8 -_08148EFA: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08148F34 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _081527AC + mov r0, r8 + ldr r2, [r0] adds r0, r2, 0 + adds r0, 0xB8 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r2, r0 + ldr r1, _08152730 @ =0x000031d0 + adds r2, r1 + strb r3, [r2] + mov r2, r8 + ldr r0, [r2] + adds r0, 0xDC + adds r0, r5 + strb r3, [r0] + ldr r0, [r2] + adds r0, 0xD0 + adds r0, r5 + strb r3, [r0] + ldr r0, [r2] + adds r0, 0xC4 + adds r0, r5 + strb r3, [r0] + ldr r1, _08152734 @ =0x000032eb + adds r0, r4, r1 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + adds r0, r5, 0 + bl sub_8152BD4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + bl sub_8152BF8 + ldr r2, _08152738 @ =0x000032e0 + adds r1, r4, r2 + adds r1, r5 + strb r0, [r1] + b _081527AC + .align 2, 0 +_08152730: .4byte 0x000031d0 +_08152734: .4byte 0x000032eb +_08152738: .4byte 0x000032e0 +_0815273C: + cmp r0, 0x3 + bne _081527AC adds r1, r4, 0 - str r2, [sp] - bl sub_8149A90 - ldr r2, [sp] - cmp r0, 0 - beq _08148F34 - ldr r1, _08148F58 @ =gLinkPlayers + 8 - add r1, r9 - adds r0, r7, 0 - bl StringCopy - movs r0, 0x1 - strh r0, [r5] - ldrh r0, [r6, 0x2] + adds r1, 0xDC + adds r1, r5 + ldrb r0, [r1] adds r0, 0x1 - strh r0, [r6, 0x2] - movs r3, 0x2 - ldrsh r0, [r6, r3] - ldr r2, [sp] + movs r2, 0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _081527AC + mov r0, r8 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bhi _081527AC + adds r0, r1, 0 + adds r0, 0xDC + adds r0, r5 + strb r2, [r0] mov r1, r8 - ldrb r1, [r1, 0x5] - cmp r0, r1 - beq _08148EB8 -_08148F34: - adds r5, 0x2 - movs r3, 0x1C - add r9, r3 - adds r7, 0x28 - adds r4, 0xC - adds r2, 0x1 - cmp r2, 0x4 - ble _08148EFA -_08148F44: - add sp, 0x4 + ldr r0, [r1] + adds r0, 0xD0 + adds r0, r5 + strb r2, [r0] + ldr r0, [r1] + adds r0, 0xC4 + adds r0, r5 + strb r2, [r0] + ldr r2, _081527CC @ =0x000032eb + adds r0, r4, r2 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + mov r0, r8 + ldr r1, [r0] + adds r1, 0xE8 + adds r1, r5 + subs r2, 0xB + adds r4, r2 + adds r4, r5 + ldrb r0, [r4] + strb r0, [r1] + adds r0, r5, 0 + bl sub_8152BD4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + bl sub_8152BF8 + strb r0, [r4] +_081527AC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r9 + subs r0, 0x1 + cmp r5, r0 + bge _081527BC + b _081525A0 +_081527BC: pop {r3-r5} mov r8, r3 mov r9, r4 @@ -2722,726 +4082,1309 @@ _08148F44: pop {r0} bx r0 .align 2, 0 -_08148F54: .4byte 0x000082a8 -_08148F58: .4byte gLinkPlayers + 8 - thumb_func_end sub_8148E80 +_081527CC: .4byte 0x000032eb + thumb_func_end sub_815256C - thumb_func_start sub_8148F5C -sub_8148F5C: @ 8148F5C - push {lr} + thumb_func_start sub_81527D0 +sub_81527D0: @ 81527D0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08152838 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x44 + adds r0, 0x48 + ldrb r0, [r0] + mov r8, r0 + ldrb r6, [r1] + cmp r6, r8 + bcs _081528C2 + ldr r0, _0815283C @ =gUnknown_8471F50 + mov r9, r0 +_081527F0: + ldr r0, _08152838 @ =gUnknown_203F3E0 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x28 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + ldr r2, _08152840 @ =0x000031a0 + adds r0, r2 + adds r7, r3, r0 + movs r0, 0xB + adds r2, r1, 0 + muls r2, r0 + adds r2, r6, r2 + adds r3, 0x24 + ldrb r1, [r3] + subs r1, 0x1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + subs r0, r1 + adds r2, r0 + add r2, r9 + ldrb r4, [r2] + adds r0, r7, 0 + adds r0, 0x1F + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08152844 + adds r0, r6, 0 + movs r1, 0 + bl sub_81542EC + b _0815284C + .align 2, 0 +_08152838: .4byte gUnknown_203F3E0 +_0815283C: .4byte gUnknown_8471F50 +_08152840: .4byte 0x000031a0 +_08152844: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_81542EC +_0815284C: + adds r0, r7, 0 + adds r0, 0x1F + adds r5, r0, r4 + ldrb r0, [r5] + cmp r0, 0x9 + bls _08152878 + adds r0, r7, 0 + adds r0, 0x14 + adds r0, r4 + ldrb r1, [r0] + adds r1, 0x3 lsls r1, 24 lsrs r1, 24 - bl CreateTask + adds r0, r6, 0 + bl sub_8154398 + ldrb r1, [r5] + lsls r1, 25 + movs r0, 0xFF lsls r0, 24 - lsrs r0, 24 - ldr r1, _08148F78 @ =gUnknown_203F3D4 - ldr r2, [r1] - movs r1, 0xE - bl SetWordTaskArg + adds r1, r0 + b _0815289A +_08152878: + adds r0, r7, 0 + adds r0, 0x14 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, 0x3 + bne _081528A4 + movs r0, 0x7 + strb r0, [r5] + adds r0, r6, 0 + movs r1, 0x6 + bl sub_8154398 + ldrb r1, [r5] + lsls r1, 25 + movs r2, 0xFF + lsls r2, 24 + adds r1, r2 +_0815289A: + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8154370 + b _081528B8 +_081528A4: + ldrb r1, [r3] + adds r0, r6, 0 + bl sub_8154398 + ldrb r1, [r5] + lsls r1, 25 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8154370 +_081528B8: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r8 + bcc _081527F0 +_081528C2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} pop {r0} bx r0 - .align 2, 0 -_08148F78: .4byte gUnknown_203F3D4 - thumb_func_end sub_8148F5C + thumb_func_end sub_81527D0 - thumb_func_start sub_8148F7C -sub_8148F7C: @ 8148F7C - ldr r0, _08148F98 @ =gUnknown_203F3D4 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x4A - movs r1, 0 - strh r1, [r0] - movs r0, 0x6 - str r0, [r2, 0x14] - strh r1, [r2, 0x34] - str r1, [r2, 0x1C] - strh r1, [r2, 0x36] - str r1, [r2, 0x10] - bx lr + thumb_func_start sub_81528D0 +sub_81528D0: @ 81528D0 + push {r4-r6,lr} + ldr r1, _08152908 @ =gUnknown_203F3E0 + ldr r0, [r1] + adds r0, 0x24 + ldrb r5, [r0] + movs r4, 0 + cmp r4, r5 + bcs _08152902 + adds r6, r1, 0 +_081528E2: + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 2 + ldr r1, [r6] + adds r0, r1 + ldr r1, _0815290C @ =0x000031cc + adds r0, r1 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_8153DA8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _081528E2 +_08152902: + pop {r4-r6} + pop {r0} + bx r0 .align 2, 0 -_08148F98: .4byte gUnknown_203F3D4 - thumb_func_end sub_8148F7C +_08152908: .4byte gUnknown_203F3E0 +_0815290C: .4byte 0x000031cc + thumb_func_end sub_81528D0 - thumb_func_start sub_8148F9C -sub_8148F9C: @ 8148F9C - push {r4,lr} - ldr r3, _08148FD8 @ =gUnknown_203F3D4 - ldr r0, [r3] - adds r1, r0, 0 - adds r1, 0x4A + thumb_func_start sub_8152910 +sub_8152910: @ 8152910 + push {r4,r5,lr} + ldr r0, _08152938 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r5, [r0] movs r4, 0 - movs r2, 0 - strh r2, [r1] - ldr r1, _08148FDC @ =0x000006ff - strh r1, [r0, 0x34] - movs r1, 0x7 - str r1, [r0, 0x14] - strh r2, [r0, 0x36] - str r2, [r0, 0x10] - adds r0, 0x51 - strb r4, [r0] - ldr r0, [r3] - adds r0, 0x50 - strb r4, [r0] - ldr r0, [r3] - str r2, [r0, 0x20] - adds r1, r0, 0 - adds r1, 0x4E - strh r2, [r1] - str r2, [r0, 0x6C] - bl sub_8149078 - pop {r4} + cmp r4, r5 + bcs _08152932 +_08152920: + adds r0, r4, 0 + movs r1, 0x4 + bl sub_8153DA8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08152920 +_08152932: + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08148FD8: .4byte gUnknown_203F3D4 -_08148FDC: .4byte 0x000006ff - thumb_func_end sub_8148F9C +_08152938: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152910 - thumb_func_start sub_8148FE0 -sub_8148FE0: @ 8148FE0 - push {r4,lr} - ldr r4, _08149038 @ =gUnknown_203F3D4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x46 + thumb_func_start sub_815293C +sub_815293C: @ 815293C + push {lr} + bl sub_81527D0 + ldr r0, _08152954 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x40 ldrb r0, [r0] - cmp r0, 0 - beq _08149030 - adds r1, 0x4A - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl sub_8149044 - ldr r3, [r4] - ldrh r1, [r3, 0x34] - adds r2, r1, r0 - strh r2, [r3, 0x34] - lsls r1, r2, 16 - ldr r0, _0814903C @ =0x09fe0000 - cmp r1, r0 - bls _08149012 - ldr r1, _08149040 @ =0xfffff601 - adds r0, r2, r1 - strh r0, [r3, 0x34] -_08149012: - ldr r1, [r4] - ldr r2, [r1, 0x14] - str r2, [r1, 0x18] - ldrh r0, [r1, 0x34] - lsrs r0, 8 - str r0, [r1, 0x14] - cmp r0, 0x6 - bls _08149030 - cmp r2, 0x6 - bhi _08149030 - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] - bl sub_8149078 -_08149030: - pop {r4} + cmp r0, 0x9 + bls _08152958 + bl sub_8152910 + b _0815295C + .align 2, 0 +_08152954: .4byte gUnknown_203F3E0 +_08152958: + bl sub_81528D0 +_0815295C: + ldr r0, _0815296C @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x40 + ldrb r0, [r0] + bl sub_8153FC8 pop {r0} bx r0 .align 2, 0 -_08149038: .4byte gUnknown_203F3D4 -_0814903C: .4byte 0x09fe0000 -_08149040: .4byte 0xfffff601 - thumb_func_end sub_8148FE0 +_0815296C: .4byte gUnknown_203F3E0 + thumb_func_end sub_815293C - thumb_func_start sub_8149044 -sub_8149044: @ 8149044 + thumb_func_start sub_8152970 +sub_8152970: @ 8152970 push {lr} - ldr r0, _08149054 @ =gUnknown_203F3D4 - ldr r2, [r0] - ldr r0, [r2, 0x10] - cmp r0, 0 - beq _08149058 - movs r0, 0 - b _0814906E - .align 2, 0 -_08149054: .4byte gUnknown_203F3D4 -_08149058: - ldr r3, [r2, 0x1C] - ldrh r1, [r2, 0x34] - ldr r0, _08149074 @ =0x000005ff - cmp r1, r0 - bhi _0814906C - ldr r0, [r2, 0x20] - adds r0, 0x50 - str r0, [r2, 0x20] - lsrs r0, 8 - adds r3, r0 -_0814906C: - adds r0, r3, 0 -_0814906E: - pop {r1} - bx r1 + bl sub_81527D0 + ldr r0, _08152988 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x9 + bls _0815298C + bl sub_8152910 + b _08152990 + .align 2, 0 +_08152988: .4byte gUnknown_203F3E0 +_0815298C: + bl sub_81528D0 +_08152990: + ldr r0, _081529A0 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x40 + ldrb r0, [r0] + bl sub_8153FC8 + pop {r0} + bx r0 .align 2, 0 -_08149074: .4byte 0x000005ff - thumb_func_end sub_8149044 +_081529A0: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152970 - thumb_func_start sub_8149078 -sub_8149078: @ 8149078 - push {r4,lr} - ldr r4, _081490A8 @ =gUnknown_203F3D4 - ldr r3, [r4] - movs r0, 0 - str r0, [r3, 0x20] - adds r1, r3, 0 - adds r1, 0x4E - ldrh r0, [r1] - cmp r0, 0 - beq _081490BC + thumb_func_start sub_81529A4 +sub_81529A4: @ 81529A4 + push {lr} + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 subs r0, 0x1 - strh r0, [r1] - ldr r0, [r3, 0x6C] - cmp r0, 0 - beq _08149186 - bl sub_8149194 - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - beq _081490AC - ldr r1, [r4] - b _08149182 + cmp r0, 0x4 + bhi _081529FC + lsls r0, 2 + ldr r1, _081529BC @ =_081529C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 .align 2, 0 -_081490A8: .4byte gUnknown_203F3D4 -_081490AC: - ldr r1, [r4] - ldr r0, [r1, 0x28] - cmp r0, 0x36 - bls _081490B8 - movs r0, 0x1E - b _08149184 -_081490B8: - movs r0, 0x52 - b _08149184 -_081490BC: - adds r2, r3, 0 - adds r2, 0x50 - ldrb r1, [r2] +_081529BC: .4byte _081529C0 + .align 2, 0 +_081529C0: + .4byte _081529D4 + .4byte _081529DC + .4byte _081529E4 + .4byte _081529EC + .4byte _081529F4 +_081529D4: + movs r0, 0x4 + strb r0, [r3] + movs r0, 0x7 + b _081529FA +_081529DC: + movs r0, 0x3 + strb r0, [r3] movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08149110 - ldr r0, _08149108 @ =gUnknown_846B694 - ldrb r1, [r2] + b _081529FA +_081529E4: + movs r0, 0x2 + strb r0, [r3] + movs r0, 0x9 + b _081529FA +_081529EC: + movs r0, 0x1 + strb r0, [r3] + movs r0, 0xA + b _081529FA +_081529F4: + movs r0, 0 + strb r0, [r3] + movs r0, 0xB +_081529FA: + strb r0, [r2] +_081529FC: + pop {r0} + bx r0 + thumb_func_end sub_81529A4 + + thumb_func_start sub_8152A00 +sub_8152A00: @ 8152A00 + push {r4-r6,lr} + ldr r1, _08152A58 @ =gUnknown_203F3E0 + ldr r0, [r1] + adds r0, 0x24 + ldrb r5, [r0] + movs r4, 0x1 + cmp r4, r5 + bcs _08152A66 + adds r6, r1, 0 +_08152A12: + ldr r0, [r6] + movs r1, 0xAC lsls r1, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x51 - ldrb r2, [r0] - lsls r0, r2, 3 - subs r0, r2 - ldrh r1, [r1] adds r0, r1 - str r0, [r3, 0x28] - bl sub_8149194 - ldr r2, [r4] - ldr r3, _0814910C @ =gUnknown_846B6A4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 1 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x2 - adds r1, r2, 0 - adds r1, 0x4E - strh r0, [r1] - adds r2, 0x50 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _0814917E - .align 2, 0 -_08149108: .4byte gUnknown_846B694 -_0814910C: .4byte gUnknown_846B6A4 -_08149110: - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0x8 - bne _0814912C - adds r1, r3, 0 - adds r1, 0x51 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08149128 - adds r0, 0x1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08152A34 + adds r0, r4, 0 + bl sub_815A5E8 + ldr r1, [r6] + movs r2, 0xAC + lsls r2, 1 + adds r1, r2 + adds r1, r4 strb r0, [r1] - b _0814912C -_08149128: +_08152A34: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08152A12 + cmp r4, r5 + bcs _08152A66 + ldr r0, _08152A58 @ =gUnknown_203F3E0 + ldr r0, [r0] + movs r2, 0xAC + lsls r2, 1 + adds r1, r0, r2 +_08152A4C: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08152A5C + movs r0, 0 + b _08152A68 + .align 2, 0 +_08152A58: .4byte gUnknown_203F3E0 +_08152A5C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08152A4C +_08152A66: movs r0, 0x1 - str r0, [r3, 0x6C] -_0814912C: - ldr r2, _0814918C @ =gUnknown_846B694 - ldr r4, _08149190 @ =gUnknown_203F3D4 +_08152A68: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8152A00 + + thumb_func_start sub_8152A70 +sub_8152A70: @ 8152A70 + push {r4,lr} + movs r1, 0 + ldr r4, _08152A94 @ =gUnknown_203F3E0 + movs r3, 0xAC + lsls r3, 1 + movs r2, 0 +_08152A7C: ldr r0, [r4] - mov r12, r0 - mov r3, r12 - adds r3, 0x50 - ldrb r0, [r3] - movs r1, 0xF - subs r1, r0 - lsls r1, 1 - adds r1, r2 - mov r0, r12 - adds r0, 0x51 - ldrb r2, [r0] - lsls r0, r2, 3 - subs r0, r2 - ldrh r1, [r1] + adds r0, r3 adds r0, r1 - mov r1, r12 - str r0, [r1, 0x28] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] + strb r2, [r0] + adds r0, r1, 0x1 lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _0814917E - bl sub_8149194 - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - bne _08149176 - ldr r1, [r4] - ldr r0, [r1, 0x28] - subs r0, 0x5 - str r0, [r1, 0x28] -_08149176: - ldr r0, [r4] - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] -_0814917E: - ldr r0, _08149190 @ =gUnknown_203F3D4 - ldr r1, [r0] -_08149182: - ldr r0, [r1, 0x28] -_08149184: - str r0, [r1, 0x1C] -_08149186: + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _08152A7C pop {r4} pop {r0} bx r0 .align 2, 0 -_0814918C: .4byte gUnknown_846B694 -_08149190: .4byte gUnknown_203F3D4 - thumb_func_end sub_8149078 +_08152A94: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152A70 - thumb_func_start sub_8149194 -sub_8149194: @ 8149194 - ldr r0, _081491A8 @ =gUnknown_203F3D4 - ldr r2, [r0] - ldr r1, [r2, 0x24] - ldr r0, _081491AC @ =0x41c64e6d - muls r0, r1 - ldr r1, _081491B0 @ =0x00006073 + thumb_func_start sub_8152A98 +sub_8152A98: @ 8152A98 + push {r4,lr} + ldr r3, _08152ACC @ =gUnknown_203F3E0 + ldr r1, [r3] + adds r2, r1, 0 + adds r2, 0x40 + ldrb r0, [r2] + cmp r0, 0x9 + bls _08152AD0 + movs r4, 0x90 + lsls r4, 1 + adds r0, r1, r4 + ldr r0, [r0] + cmp r0, 0 + bne _08152AD0 + movs r0, 0xA + strb r0, [r2] + ldr r0, [r3] + movs r1, 0x96 + lsls r1, 1 adds r0, r1 - str r0, [r2, 0x24] - lsrs r0, 16 - bx lr - .align 2, 0 -_081491A8: .4byte gUnknown_203F3D4 -_081491AC: .4byte 0x41c64e6d -_081491B0: .4byte 0x00006073 - thumb_func_end sub_8149194 - - thumb_func_start sub_81491B4 -sub_81491B4: @ 81491B4 - push {lr} - ldr r0, _081491D0 @ =gUnknown_203F3D4 - ldr r1, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _08152AD0 movs r0, 0x1 - str r0, [r1, 0x10] - movs r0, 0x6 - str r0, [r1, 0x14] - ldr r0, _081491D4 @ =0x000005ff - strh r0, [r1, 0x34] - bl sub_814936C - pop {r0} - bx r0 + b _08152AD2 .align 2, 0 -_081491D0: .4byte gUnknown_203F3D4 -_081491D4: .4byte 0x000005ff - thumb_func_end sub_81491B4 +_08152ACC: .4byte gUnknown_203F3E0 +_08152AD0: + movs r0, 0 +_08152AD2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8152A98 - thumb_func_start sub_81491D8 -sub_81491D8: @ 81491D8 - ldr r0, _081491E0 @ =gUnknown_203F3D4 + thumb_func_start sub_8152AD8 +sub_8152AD8: @ 8152AD8 + push {r4-r6,lr} + ldr r4, _08152B50 @ =gUnknown_203F3E0 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0x40 + ldrb r0, [r2] + cmp r0, 0x9 + bls _08152B5C + adds r0, r1, 0 + adds r0, 0x44 + ldrb r3, [r0] + adds r0, 0x4 + ldrb r5, [r0] + movs r0, 0xA + strb r0, [r2] + ldr r4, [r4] + mov r12, r4 + movs r0, 0x96 + lsls r0, 1 + add r0, r12 ldr r0, [r0] - ldr r0, [r0, 0x10] - bx lr + cmp r0, 0 + beq _08152B5C + adds r4, r3, 0 + cmp r4, r5 + bcs _08152B4C + mov r0, r12 + adds r0, 0x28 + ldrb r3, [r0] + lsls r1, r3, 4 + subs r1, r3 + lsls r1, 2 + ldr r6, _08152B54 @ =gUnknown_8471F50 + subs r0, 0x4 + ldrb r2, [r0] + subs r2, 0x1 + add r1, r12 + movs r0, 0xB + muls r3, r0 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 3 + subs r2, r0, r2 + ldr r0, _08152B58 @ =0x000031bf + adds r1, r0 +_08152B32: + adds r0, r4, r3 + adds r0, r2 + adds r0, r6 + ldrb r0, [r0] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0xA + bne _08152B5C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08152B32 +_08152B4C: + movs r0, 0x1 + b _08152B5E .align 2, 0 -_081491E0: .4byte gUnknown_203F3D4 - thumb_func_end sub_81491D8 +_08152B50: .4byte gUnknown_203F3E0 +_08152B54: .4byte gUnknown_8471F50 +_08152B58: .4byte 0x000031bf +_08152B5C: + movs r0, 0 +_08152B5E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8152AD8 - thumb_func_start sub_81491E4 -sub_81491E4: @ 81491E4 - push {r4,r5,lr} - ldr r5, _08149208 @ =gUnknown_203F3D4 - ldr r4, _0814920C @ =0x000082f8 - movs r3, 0 - movs r2, 0 - movs r1, 0x4 -_081491F0: - ldr r0, [r5] + thumb_func_start sub_8152B64 +sub_8152B64: @ 8152B64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _08152BCC @ =gUnknown_8475550 + mov r8, r0 + ldr r0, _08152BD0 @ =gUnknown_203F3E0 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0x90 + adds r0, r5 + mov r9, r0 + ldrb r7, [r0] + adds r0, r7, 0 + movs r1, 0x7 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + add r4, r8 + adds r0, r7, 0 + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldrb r4, [r4] adds r0, r4 - adds r0, r2 - str r3, [r0] - adds r2, 0x28 - subs r1, 0x1 - cmp r1, 0 - bge _081491F0 - pop {r4,r5} + lsls r0, 24 + lsls r5, 1 + adds r6, 0x86 + adds r6, r5 + ldrh r1, [r6] + lsrs r0, 24 + cmp r1, r0 + bcc _08152BBE + adds r0, r7, 0x1 + mov r1, r9 + strb r0, [r1] +_08152BBE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_08149208: .4byte gUnknown_203F3D4 -_0814920C: .4byte 0x000082f8 - thumb_func_end sub_81491E4 +_08152BCC: .4byte gUnknown_8475550 +_08152BD0: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152B64 - thumb_func_start sub_8149210 -sub_8149210: @ 8149210 - ldr r0, _08149224 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldr r1, _08149228 @ =0x000083ac + thumb_func_start sub_8152BD4 +sub_8152BD4: @ 8152BD4 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08152BF0 @ =gUnknown_84720FC + ldr r1, _08152BF4 @ =gUnknown_203F3E0 + ldr r1, [r1] + adds r1, 0x24 + ldrb r1, [r1] + subs r1, 0x1 + movs r2, 0xB + muls r1, r2 adds r0, r1 - ldr r1, [r0] - movs r2, 0 - strh r2, [r1, 0x10] - ldr r0, [r0] - strh r2, [r0, 0x12] + adds r0, r3 + ldrb r0, [r0] bx lr .align 2, 0 -_08149224: .4byte gUnknown_203F3D4 -_08149228: .4byte 0x000083ac - thumb_func_end sub_8149210 +_08152BF0: .4byte gUnknown_84720FC +_08152BF4: .4byte gUnknown_203F3E0 + thumb_func_end sub_8152BD4 - thumb_func_start sub_814922C -sub_814922C: @ 814922C - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08149250 @ =gUnknown_203F3D4 - ldr r2, [r1] - ldrb r3, [r2, 0x6] - lsls r1, r3, 2 + thumb_func_start sub_8152BF8 +sub_8152BF8: @ 8152BF8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r4, _08152C78 @ =gUnknown_203F3E0 + ldr r1, [r4] + adds r1, 0x24 + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08152C7C @ =gUnknown_84720AE + lsls r1, r0, 1 + adds r1, r0 + lsls r0, r2, 4 + subs r0, r2 + adds r1, r0 + adds r0, r1, r3 + ldrb r0, [r0] + mov r12, r0 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r7, [r0] + adds r3, 0x2 adds r1, r3 - lsls r1, 3 - adds r2, r1 - ldr r1, _08149254 @ =0x000082f4 + ldrb r1, [r1] + mov r8, r1 + movs r3, 0 + ldr r1, _08152C80 @ =gUnknown_8472133 + lsls r0, r2, 2 + adds r2, r0, r2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08152C60 + adds r6, r1, 0 +_08152C46: + adds r0, r3, r2 + adds r0, r6 + ldrb r0, [r0] + cmp r5, r0 + beq _08152C84 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r3, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08152C46 +_08152C60: + ldr r0, [r4] + adds r0, 0x90 + mov r1, r12 + adds r2, r0, r1 + adds r1, r0, r7 + ldrb r0, [r2] + ldrb r3, [r1] + cmp r0, r3 + bls _08152C8E + adds r1, r0, 0 + b _08152C90 + .align 2, 0 +_08152C78: .4byte gUnknown_203F3E0 +_08152C7C: .4byte gUnknown_84720AE +_08152C80: .4byte gUnknown_8472133 +_08152C84: + ldr r0, [r4] + adds r0, 0x90 + adds r0, r7 + ldrb r0, [r0] + b _08152CA2 +_08152C8E: + ldrb r1, [r1] +_08152C90: + ldr r0, [r4] + adds r0, 0x90 + mov r2, r8 + adds r4, r0, r2 + ldrb r0, [r4] + cmp r0, r1 + bls _08152CA0 + adds r1, r0, 0 +_08152CA0: + adds r0, r1, 0 +_08152CA2: + adds r1, r5, 0 + bl sub_8152CB8 + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8152BF8 + + thumb_func_start sub_8152CB8 +sub_8152CB8: @ 8152CB8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08152CE4 @ =gUnknown_203F3E0 + ldr r2, [r2] + adds r2, 0xE8 adds r2, r1 - ldrh r1, [r2] - cmp r1, r0 - beq _08149258 - movs r0, 0 - b _0814925A + ldrb r4, [r2] + movs r1, 0x7 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bhi _08152D26 + lsls r0, 2 + ldr r1, _08152CE8 @ =_08152CEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 .align 2, 0 -_08149250: .4byte gUnknown_203F3D4 -_08149254: .4byte 0x000082f4 -_08149258: +_08152CE4: .4byte gUnknown_203F3E0 +_08152CE8: .4byte _08152CEC + .align 2, 0 +_08152CEC: + .4byte _08152D26 + .4byte _08152D1E + .4byte _08152D2A + .4byte _08152D08 + .4byte _08152D0E + .4byte _08152D14 + .4byte _08152D1A +_08152D08: + cmp r4, 0 + beq _08152D1E + b _08152D26 +_08152D0E: + cmp r4, 0 + beq _08152D2A + b _08152D26 +_08152D14: + cmp r4, 0x2 + beq _08152D1E + b _08152D2A +_08152D1A: + cmp r4, 0 + bne _08152D22 +_08152D1E: movs r0, 0x1 -_0814925A: + b _08152D2C +_08152D22: + cmp r4, 0x1 + beq _08152D2A +_08152D26: + movs r0, 0 + b _08152D2C +_08152D2A: + movs r0, 0x2 +_08152D2C: + pop {r4} pop {r1} bx r1 - thumb_func_end sub_814922C + thumb_func_end sub_8152CB8 - thumb_func_start sub_8149260 -sub_8149260: @ 8149260 - ldr r0, _08149280 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldr r1, _08149284 @ =0x000083ac - adds r2, r0, r1 - ldr r1, [r2] + thumb_func_start sub_8152D34 +sub_8152D34: @ 8152D34 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r1, _08152D60 @ =gUnknown_203F3E0 + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0x24 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r4, 0 + bge _08152D54 + b _08152F8E +_08152D54: + cmp r4, 0x2 + ble _08152D64 + cmp r4, 0x3 + beq _08152D94 + b _08152F8E + .align 2, 0 +_08152D60: .4byte gUnknown_203F3E0 +_08152D64: + ldr r1, _08152D8C @ =0x000031b4 + adds r0, r2, r1 + adds r0, r3 + ldrb r4, [r0] + lsls r4, 1 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r4, r0 + adds r0, r2, 0 adds r0, 0x4A + adds r0, r4 ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r1, [r2] - ldrh r0, [r1, 0x10] - strh r0, [r1, 0x12] - ldr r1, [r2] - movs r0, 0x1 - strh r0, [r1, 0x10] - bx lr + ldr r1, _08152D90 @ =0x00004e20 + bl sub_815378C + ldr r1, [r5] + adds r1, 0x4A + adds r1, r4 + b _08152F8C .align 2, 0 -_08149280: .4byte gUnknown_203F3D4 -_08149284: .4byte 0x000083ac - thumb_func_end sub_8149260 - - thumb_func_start sub_8149288 -sub_8149288: @ 8149288 - push {r4,lr} - ldr r0, _081492B0 @ =gUnknown_203F3D4 - ldr r2, [r0] - ldr r0, _081492B4 @ =0x000083ac - adds r3, r2, r0 - ldr r1, [r3] - ldrh r0, [r1, 0x10] - strh r0, [r1, 0x12] - ldr r0, [r3] - movs r4, 0x2 - strh r4, [r0, 0x10] - ldr r1, [r3] - adds r2, 0x4A - ldrh r0, [r2] - strh r0, [r1, 0xE] - ldr r0, [r3] - str r4, [r0, 0x14] - pop {r4} - pop {r0} - bx r0 +_08152D8C: .4byte 0x000031b4 +_08152D90: .4byte 0x00004e20 +_08152D94: + cmp r0, 0x3 + bne _08152D9A + b _08152EE0 +_08152D9A: + cmp r0, 0x3 + bgt _08152DA6 + cmp r0, 0x2 + bne _08152DA4 + b _08152F4A +_08152DA4: + b _08152F8E +_08152DA6: + cmp r0, 0x4 + beq _08152E56 + cmp r0, 0x5 + beq _08152DB0 + b _08152F8E +_08152DB0: + cmp r3, 0x9 + bls _08152DB6 + b _08152F8E +_08152DB6: + lsls r0, r3, 2 + ldr r1, _08152DC0 @ =_08152DC4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 .align 2, 0 -_081492B0: .4byte gUnknown_203F3D4 -_081492B4: .4byte 0x000083ac - thumb_func_end sub_8149288 - - thumb_func_start sub_81492B8 -sub_81492B8: @ 81492B8 - ldr r0, _081492D0 @ =gUnknown_203F3D4 +_08152DC0: .4byte _08152DC4 + .align 2, 0 +_08152DC4: + .4byte _08152DEC + .4byte _08152DFC + .4byte _08152E02 + .4byte _08152E12 + .4byte _08152E18 + .4byte _08152E28 + .4byte _08152E2E + .4byte _08152E3C + .4byte _08152E40 + .4byte _08152E50 +_08152DEC: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x68 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x74 + b _08152F88 +_08152DFC: + ldr r1, [r5] + adds r1, 0x74 + b _08152F88 +_08152E02: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x74 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x80 + b _08152F88 +_08152E12: + ldr r1, [r5] + adds r1, 0x80 + b _08152F88 +_08152E18: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x80 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x50 + b _08152F88 +_08152E28: + ldr r1, [r5] + adds r1, 0x50 + b _08152F88 +_08152E2E: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x50 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + b _08152F86 +_08152E3C: + ldr r1, [r5] + b _08152F86 +_08152E40: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x5C + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x68 + b _08152F88 +_08152E50: + ldr r1, [r5] + adds r1, 0x68 + b _08152F88 +_08152E56: + subs r0, r3, 0x1 + cmp r0, 0x7 + bls _08152E5E + b _08152F8E +_08152E5E: + lsls r0, 2 + ldr r1, _08152E68 @ =_08152E6C + adds r0, r1 ldr r0, [r0] - ldr r1, _081492D4 @ =0x000083ac + mov pc, r0 + .align 2, 0 +_08152E68: .4byte _08152E6C + .align 2, 0 +_08152E6C: + .4byte _08152E8C + .4byte _08152E9C + .4byte _08152EA2 + .4byte _08152EB2 + .4byte _08152EB8 + .4byte _08152EC6 + .4byte _08152ECA + .4byte _08152EDA +_08152E8C: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x68 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x74 + b _08152F88 +_08152E9C: + ldr r1, [r5] + adds r1, 0x74 + b _08152F88 +_08152EA2: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x74 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x50 + b _08152F88 +_08152EB2: + ldr r1, [r5] + adds r1, 0x50 + b _08152F88 +_08152EB8: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x50 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + b _08152F86 +_08152EC6: + ldr r1, [r5] + b _08152F86 +_08152ECA: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x5C + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x68 + b _08152F88 +_08152EDA: + ldr r1, [r5] + adds r1, 0x68 + b _08152F88 +_08152EE0: + subs r0, r3, 0x2 + cmp r0, 0x5 + bhi _08152F8E + lsls r0, 2 + ldr r1, _08152EF0 @ =_08152EF4 adds r0, r1 - ldr r1, [r0] - ldrh r2, [r1, 0x10] - movs r3, 0 - strh r2, [r1, 0x12] ldr r0, [r0] - strh r3, [r0, 0x10] - bx lr + mov pc, r0 .align 2, 0 -_081492D0: .4byte gUnknown_203F3D4 -_081492D4: .4byte 0x000083ac - thumb_func_end sub_81492B8 +_08152EF0: .4byte _08152EF4 + .align 2, 0 +_08152EF4: + .4byte _08152F0C + .4byte _08152F1C + .4byte _08152F22 + .4byte _08152F32 + .4byte _08152F38 + .4byte _08152F46 +_08152F0C: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x5C + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x68 + b _08152F88 +_08152F1C: + ldr r1, [r5] + adds r1, 0x68 + b _08152F88 +_08152F22: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x68 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0x50 + b _08152F88 +_08152F32: + ldr r1, [r5] + adds r1, 0x50 + b _08152F88 +_08152F38: + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x50 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + b _08152F86 +_08152F46: + ldr r1, [r5] + b _08152F86 +_08152F4A: + cmp r3, 0x4 + beq _08152F70 + cmp r3, 0x4 + bgt _08152F58 + cmp r3, 0x3 + beq _08152F62 + b _08152F8E +_08152F58: + cmp r3, 0x5 + beq _08152F76 + cmp r3, 0x6 + beq _08152F84 + b _08152F8E +_08152F62: + adds r1, r2, 0 + adds r1, 0x50 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + adds r1, 0xC + b _08152F88 +_08152F70: + adds r1, r2, 0 + adds r1, 0x50 + b _08152F88 +_08152F76: + adds r1, r2, 0 + adds r1, 0x50 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + adds r1, 0xC + b _08152F88 +_08152F84: + adds r1, r2, 0 +_08152F86: + adds r1, 0x5C +_08152F88: + ldrh r0, [r1] + adds r0, 0x1 +_08152F8C: + strh r0, [r1] +_08152F8E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8152D34 - thumb_func_start sub_81492D8 -sub_81492D8: @ 81492D8 + thumb_func_start sub_8152F94 +sub_8152F94: @ 8152F94 push {r4,r5,lr} - ldr r4, _08149334 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldr r0, [r1, 0x5C] - cmp r0, 0 - beq _08149318 - ldr r0, [r1, 0x78] - bl sub_814AA24 - ldr r1, [r4] - movs r5, 0 - str r5, [r1, 0x5C] - adds r0, r1, 0 - adds r0, 0x4D - ldrb r0, [r0] - cmp r0, 0 - beq _08149318 - adds r0, r1, 0 - adds r0, 0x71 + adds r1, r0, 0 + ldr r4, _08152FD8 @ =gUnknown_203F3E0 + ldr r3, [r4] + adds r0, r3, 0 + adds r0, 0x24 ldrb r0, [r0] - bl sub_814A98C - ldr r1, _08149338 @ =gUnknown_846B6AC - subs r0, 0x2 + cmp r0, 0x5 + bne _08152FFE + cmp r1, 0x1 + bne _08152FE0 + movs r5, 0x89 + lsls r5, 1 + adds r1, r3, r5 + ldrh r0, [r1] + adds r2, r0, 0x1 + strh r2, [r1] + movs r0, 0x8A lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl PlaySE + adds r1, r3, r0 + lsls r0, r2, 16 + lsrs r0, 16 + ldrh r3, [r1] + cmp r0, r3 + bls _08152FC8 + strh r2, [r1] +_08152FC8: ldr r0, [r4] - adds r0, 0x4D - strb r5, [r0] -_08149318: - ldr r0, _08149334 @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x74 + adds r2, r0, r5 + ldrh r0, [r2] + ldr r1, _08152FDC @ =0x0000270f + cmp r0, r1 + bls _08152FFE + strh r1, [r2] + b _08152FFE + .align 2, 0 +_08152FD8: .4byte gUnknown_203F3E0 +_08152FDC: .4byte 0x0000270f +_08152FE0: + movs r2, 0x89 + lsls r2, 1 + adds r0, r3, r2 + movs r5, 0x8A + lsls r5, 1 + adds r1, r3, r5 ldrh r0, [r0] - bl sub_814AA34 - bl sub_814937C - bl sub_814933C + ldrh r3, [r1] + cmp r0, r3 + bls _08152FF6 + strh r0, [r1] +_08152FF6: + ldr r0, [r4] + adds r0, r2 + movs r1, 0 + strh r1, [r0] +_08152FFE: pop {r4,r5} pop {r0} bx r0 - .align 2, 0 -_08149334: .4byte gUnknown_203F3D4 -_08149338: .4byte gUnknown_846B6AC - thumb_func_end sub_81492D8 + thumb_func_end sub_8152F94 - thumb_func_start sub_814933C -sub_814933C: @ 814933C - push {lr} - ldr r0, _08149358 @ =gUnknown_203F3D4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x46 + thumb_func_start sub_8153004 +sub_8153004: @ 8153004 + push {r4,r5,lr} + movs r3, 0 + ldr r2, _08153044 @ =gUnknown_203F3E0 + ldr r0, [r2] + adds r0, 0x24 ldrb r0, [r0] - cmp r0, 0 - beq _08149352 - ldr r0, [r1, 0x14] - bl sub_814A95C -_08149352: + cmp r3, r0 + bcs _0815303C + adds r5, r2, 0 + movs r4, 0x8A + lsls r4, 1 +_0815301A: + ldr r2, [r5] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x54 + adds r1, r0 + adds r0, r2, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, 0x24 + ldrb r2, [r2] + cmp r3, r2 + bcc _0815301A +_0815303C: + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08149358: .4byte gUnknown_203F3D4 - thumb_func_end sub_814933C - - thumb_func_start sub_814935C -sub_814935C: @ 814935C - ldr r0, _08149368 @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x46 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_08149368: .4byte gUnknown_203F3D4 - thumb_func_end sub_814935C +_08153044: .4byte gUnknown_203F3E0 + thumb_func_end sub_8153004 - thumb_func_start sub_814936C -sub_814936C: @ 814936C - ldr r0, _08149378 @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x46 - movs r1, 0x1 - strb r1, [r0] - bx lr - .align 2, 0 -_08149378: .4byte gUnknown_203F3D4 - thumb_func_end sub_814936C - - thumb_func_start sub_814937C -sub_814937C: @ 814937C + thumb_func_start sub_8153048 +sub_8153048: @ 8153048 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} - sub sp, 0x4 - movs r6, 0 - ldr r2, _081493B8 @ =gUnknown_203F3D4 - ldr r0, [r2] - ldrb r0, [r0, 0x5] - mov r9, r0 movs r5, 0 - cmp r6, r9 - bge _0814945C - mov r10, r2 - mov r8, r5 - movs r7, 0 -_0814939E: - mov r0, r10 - ldr r3, [r0] - adds r1, r3, r7 - ldr r2, _081493BC @ =0x000082f4 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, 0x1 - beq _081493D0 - cmp r2, 0x1 - bgt _081493C0 - cmp r2, 0 - beq _081493C6 - b _08149450 - .align 2, 0 -_081493B8: .4byte gUnknown_203F3D4 -_081493BC: .4byte 0x000082f4 -_081493C0: - cmp r2, 0x2 - beq _08149434 - b _08149450 -_081493C6: - adds r0, r5, 0 - movs r1, 0 - bl sub_814A940 - b _08149450 -_081493D0: - ldr r0, _08149424 @ =0x000082f6 - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, 0x1 - bne _081493F2 - ldr r0, _08149428 @ =0x000082f2 + ldr r7, _08153138 @ =gUnknown_203F3E0 + movs r4, 0 + ldr r0, _0815313C @ =0x000031bf + mov r10, r0 +_0815305C: + movs r2, 0 + lsls r6, r5, 4 + lsls r1, r5, 1 + mov r8, r1 + lsls r0, r5, 3 + mov r12, r0 + adds r1, r5, 0x1 + mov r9, r1 + subs r0, r6, r5 + lsls r3, r0, 2 +_08153070: + ldr r0, [r7] + adds r1, r2, r3 + add r0, r10 adds r0, r1 - adds r1, r3, 0 - adds r1, 0x9A - add r1, r8 - str r1, [sp] - ldrh r1, [r0] - mov r12, r1 - ldr r0, [sp] - ldrh r0, [r0] - cmp r12, r0 - beq _0814941A -_081493F2: - ldrb r3, [r3, 0x6] - cmp r5, r3 - bne _081493FA - strh r2, [r4] -_081493FA: - orrs r6, r2 - mov r1, r10 - ldr r2, [r1] - ldr r1, _0814942C @ =0x000082e8 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _08153070 + ldr r0, [r7] + subs r1, r6, r5 + lsls r1, 2 + adds r0, r1 + ldr r2, _08153140 @ =0x000031cc + adds r0, r2 + strb r4, [r0] + ldr r0, [r7] + adds r0, r1 + ldr r1, _08153144 @ =0x000031d0 + adds r0, r1 + strb r4, [r0] + ldr r0, [r7] + adds r0, 0x90 + adds r0, r5 + strb r4, [r0] + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x86 + add r0, r8 + strh r4, [r0] + add r1, r12 + ldr r2, _08153148 @ =0x00003308 + adds r1, r2 + strb r4, [r1] + ldr r2, [r7] + ldr r1, _0815314C @ =0x0000330c adds r0, r2, r1 - adds r0, r7 - ldr r1, _08149430 @ =0x7fffffff - str r1, [r0] - adds r1, r2, 0 - adds r1, 0x9A - add r1, r8 - adds r2, r7 - ldr r0, _08149428 @ =0x000082f2 - adds r2, r0 - ldrh r0, [r2] - strh r0, [r1] -_0814941A: - adds r0, r5, 0 - bl sub_8149490 - b _08149450 - .align 2, 0 -_08149424: .4byte 0x000082f6 -_08149428: .4byte 0x000082f2 -_0814942C: .4byte 0x000082e8 -_08149430: .4byte 0x7fffffff -_08149434: - ldr r0, _0814946C @ =0x000082f6 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0x2 - beq _08149450 - ldrb r3, [r3, 0x6] - cmp r5, r3 - bne _08149446 - strh r2, [r1] -_08149446: - orrs r6, r2 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_814AA48 -_08149450: - movs r1, 0x2 - add r8, r1 - adds r7, 0x28 - adds r5, 0x1 - cmp r5, r9 - blt _0814939E -_0814945C: - movs r0, 0x2 - ands r0, r6 - cmp r0, 0 - beq _08149470 - movs r0, 0xFF - bl PlaySE - b _0814947E - .align 2, 0 -_0814946C: .4byte 0x000082f6 -_08149470: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _0814947E - movs r0, 0xA - bl PlaySE -_0814947E: - add sp, 0x4 + add r0, r12 + str r4, [r0] + mov r0, r8 + adds r1, r0, r5 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x4A + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0 + adds r0, 0x4E + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0 + adds r0, 0x52 + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0 + adds r0, 0x54 + adds r0, r1 + strh r4, [r0] + mov r1, r9 + lsls r0, r1, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0815305C + ldr r2, _08153138 @ =gUnknown_203F3E0 + ldr r0, [r2] + movs r1, 0xAA + lsls r1, 1 + adds r0, r1 + movs r2, 0 + strb r2, [r0] + ldr r1, _08153138 @ =gUnknown_203F3E0 + ldr r0, [r1] + movs r1, 0x89 + lsls r1, 1 + adds r3, r0, r1 + movs r1, 0 + strh r2, [r3] + adds r0, 0x40 + strb r1, [r0] + bl sub_81528D0 + bl sub_81527D0 pop {r3-r5} mov r8, r3 mov r9, r4 @@ -3449,3519 +5392,5229 @@ _0814947E: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_814937C + .align 2, 0 +_08153138: .4byte gUnknown_203F3E0 +_0815313C: .4byte 0x000031bf +_08153140: .4byte 0x000031cc +_08153144: .4byte 0x000031d0 +_08153148: .4byte 0x00003308 +_0815314C: .4byte 0x0000330c + thumb_func_end sub_8153048 - thumb_func_start sub_8149490 -sub_8149490: @ 8149490 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _081494BC @ =gUnknown_203F3D4 - ldr r2, [r0] - ldr r0, [r2, 0x68] - cmp r0, 0 - bne _0814952A - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _081494C0 @ =0x000082e4 - adds r0, r1 - adds r5, r2, r0 - ldr r1, [r5, 0x4] - ldr r0, _081494C4 @ =0x7fffffff - cmp r1, r0 - beq _081494C8 - adds r0, r1, 0x1 - str r0, [r5, 0x4] - adds r3, r0, 0 - b _081494E0 + thumb_func_start sub_8153150 +sub_8153150: @ 8153150 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _08153168 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r0, [r0] + cmp r0, 0x4 + beq _0815316C + cmp r0, 0x5 + beq _08153170 + b _08153172 .align 2, 0 -_081494BC: .4byte gUnknown_203F3D4 -_081494C0: .4byte 0x000082e4 -_081494C4: .4byte 0x7fffffff -_081494C8: - adds r0, r2, 0 - adds r0, 0x4A - ldrh r1, [r0] - ldrh r0, [r5, 0xE] - subs r3, r1, r0 - ldr r0, _08149500 @ =0x0000fde7 - cmp r3, r0 - ble _081494DE - ldr r0, _08149504 @ =0xffff0218 - adds r3, r0 - adds r3, r1 -_081494DE: - str r3, [r5, 0x4] -_081494E0: - cmp r3, 0x3 - ble _0814952A - subs r3, 0x4 - cmp r3, 0x2F - bgt _0814950C - ldr r2, _08149508 @ =gUnknown_846B6B4 - ldrh r1, [r5, 0xC] - lsls r0, r1, 1 +_08153168: .4byte gUnknown_203F3E0 +_0815316C: + movs r4, 0x1 + b _08153172 +_08153170: + movs r4, 0x2 +_08153172: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + lsls r1, r4, 2 + ldr r5, _081531B4 @ =gUnknown_203F3E0 + ldr r2, _081531B8 @ =gUnknown_8475558 + adds r1, r4 + lsls r1, 1 adds r0, r1 - lsls r0, 4 - adds r0, r3, r0 adds r0, r2 - movs r4, 0 - ldrsb r4, [r0, r4] - b _0814950E - .align 2, 0 -_08149500: .4byte 0x0000fde7 -_08149504: .4byte 0xffff0218 -_08149508: .4byte gUnknown_846B6B4 -_0814950C: - movs r4, 0 -_0814950E: - adds r1, r4, 0 - adds r0, r6, 0 - bl sub_814A940 - cmp r4, 0 - bne _08149528 - ldr r0, _08149530 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r6, r0 - bne _08149528 - bl sub_81492B8 -_08149528: - str r4, [r5] -_0814952A: - pop {r4-r6} + ldrb r2, [r0] +_08153196: + ldr r1, [r5] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r1, 0x52 + adds r1, r0 + strh r2, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x4 + bls _08153196 + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08149530: .4byte gUnknown_203F3D4 - thumb_func_end sub_8149490 +_081531B4: .4byte gUnknown_203F3E0 +_081531B8: .4byte gUnknown_8475558 + thumb_func_end sub_8153150 - thumb_func_start sub_8149534 -sub_8149534: @ 8149534 - push {r4,r5,lr} - ldr r5, _08149560 @ =gUnknown_203F3D4 - ldr r1, [r5] - ldr r0, [r1, 0x14] - cmp r0, 0x8 - bne _081495C6 - ldr r0, [r1, 0x18] - cmp r0, 0x7 - bne _081495C6 - ldr r4, [r1, 0x58] - cmp r4, 0 - bne _08149564 - bl sub_8149878 - ldr r0, [r5] - str r4, [r0, 0x54] - movs r1, 0x1 - str r1, [r0, 0x58] - adds r0, 0x71 - strb r4, [r0] - b _081495C6 - .align 2, 0 -_08149560: .4byte gUnknown_203F3D4 -_08149564: - ldr r0, [r1, 0x54] - cmp r0, 0x5 - bne _08149578 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0xC] - bl sub_8149898 - b _0814957C -_08149578: - movs r0, 0 - strh r0, [r1, 0xC] -_0814957C: - ldr r4, _08149628 @ =gUnknown_203F3D4 - ldr r1, [r4] - ldr r0, [r1, 0x54] - cmp r0, 0x1 - ble _08149596 - movs r0, 0x1 - str r0, [r1, 0x64] + thumb_func_start sub_81531BC +sub_81531BC: @ 81531BC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081531F4 @ =gUnknown_203F3E0 + ldr r2, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x4A + adds r0, r1 + ldrh r3, [r0] + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1 + ldrh r0, [r0] + adds r2, 0x4E + adds r2, r1 + adds r3, r0 + ldrh r2, [r2] + adds r0, r3, r2 + ldr r1, _081531F8 @ =0x0000270f + cmp r0, r1 + bls _081531EE adds r0, r1, 0 - adds r0, 0x86 - adds r1, 0x81 - movs r2, 0x5 - bl memcpy -_08149596: - bl sub_8149878 - ldr r0, [r4] - movs r2, 0 - str r2, [r0, 0x54] - movs r1, 0x1 - str r1, [r0, 0x58] - adds r0, 0x71 - strb r2, [r0] - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x74 - ldrh r1, [r2] - ldr r0, _0814962C @ =0x0000270e - cmp r1, r0 - bhi _081495BA - adds r0, r1, 0x1 - strh r0, [r2] -_081495BA: - movs r0, 0xA - bl sub_8149780 - movs r0, 0x3 - bl sub_8147F10 -_081495C6: - ldr r4, _08149628 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldr r0, [r0, 0x64] - cmp r0, 0 - beq _081495FC - bl sub_8149710 - cmp r0, 0x1 - beq _081495E0 - ldr r0, [r4] - ldr r0, [r0, 0x14] - cmp r0, 0 - bne _081495FC -_081495E0: - ldr r0, [r4] - adds r0, 0x86 - bl sub_8149834 - bl sub_8149888 - bl sub_8149780 - movs r0, 0x3 - bl sub_8147F10 - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0x64] -_081495FC: - ldr r4, _08149628 @ =gUnknown_203F3D4 - ldr r0, [r4] - ldr r0, [r0, 0x58] - cmp r0, 0 - beq _08149622 - bl sub_81497A8 +_081531EE: + pop {r1} + bx r1 + .align 2, 0 +_081531F4: .4byte gUnknown_203F3E0 +_081531F8: .4byte 0x0000270f + thumb_func_end sub_81531BC + + thumb_func_start sub_81531FC +sub_81531FC: @ 81531FC + push {r4-r6,lr} + ldr r5, _08153264 @ =gUnknown_203F3E0 + ldr r0, [r5] + adds r0, 0x28 + ldrb r0, [r0] + bl sub_81531BC + ldr r1, _08153268 @ =0x0000270f + bl sub_815379C + adds r4, r0, 0 + ldr r0, [r5] + adds r0, 0x28 + ldrb r0, [r0] + bl sub_8153424 + ldr r1, _0815326C @ =0x000f4236 + bl sub_815379C adds r2, r0, 0 - ldr r1, [r4] - ldr r0, [r1, 0x54] - cmp r2, r0 - ble _08149622 - str r2, [r1, 0x54] - adds r0, r1, 0 - adds r0, 0x81 - adds r1, 0x7C - movs r2, 0x5 - bl memcpy -_08149622: - pop {r4,r5} + ldr r3, _08153270 @ =gSaveBlock2Ptr + ldr r0, [r3] + movs r6, 0xB1 + lsls r6, 4 + adds r1, r0, r6 + ldr r0, [r1] + cmp r0, r2 + bcs _08153236 + str r2, [r1] +_08153236: + ldr r0, [r3] + ldr r2, _08153274 @ =0x00000b14 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, r4 + bcs _08153244 + strh r4, [r1] +_08153244: + ldr r0, [r3] + ldr r6, _08153278 @ =0x00000b16 + adds r2, r0, r6 + ldr r0, [r5] + movs r1, 0x8A + lsls r1, 1 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + cmp r0, r1 + bcs _0815325C + strh r1, [r2] +_0815325C: + pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08149628: .4byte gUnknown_203F3D4 -_0814962C: .4byte 0x0000270e - thumb_func_end sub_8149534 +_08153264: .4byte gUnknown_203F3E0 +_08153268: .4byte 0x0000270f +_0815326C: .4byte 0x000f4236 +_08153270: .4byte gSaveBlock2Ptr +_08153274: .4byte 0x00000b14 +_08153278: .4byte 0x00000b16 + thumb_func_end sub_81531FC - thumb_func_start sub_8149630 -sub_8149630: @ 8149630 - push {r4,r5,lr} - ldr r5, _08149664 @ =gUnknown_203F3D4 - ldr r1, [r5] - ldr r0, [r1, 0x14] - cmp r0, 0x6 - bne _0814967A - ldr r4, _08149668 @ =0x000083ac - adds r0, r1, r4 - ldr r1, [r0] + thumb_func_start sub_815327C +sub_815327C: @ 815327C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _081532B4 @ =gUnknown_203F3E0 ldr r0, [r1] - cmp r0, 0 - bne _0814967A - ldrh r0, [r1, 0x12] - cmp r0, 0x1 - bne _08149670 - bl sub_81491D8 - adds r1, r0, 0 - cmp r1, 0x1 - bne _08149670 + adds r0, 0x9B + ldrb r6, [r0] + movs r3, 0x3 + adds r5, r1, 0 + adds r4, r5, 0 +_08153290: + ldr r0, [r4] + adds r0, 0x98 + adds r2, r0, r3 + subs r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r3, r1, 24 + cmp r3, 0 + bne _08153290 ldr r0, [r5] - adds r0, r4 - ldr r0, [r0] - str r1, [r0, 0x14] - b _0814967A - .align 2, 0 -_08149664: .4byte gUnknown_203F3D4 -_08149668: .4byte 0x000083ac -_0814966C: - movs r0, 0 - b _081496C2 -_08149670: - bl sub_8149288 - movs r0, 0x3 - bl sub_8147F10 -_0814967A: - ldr r0, _081496C8 @ =gUnknown_203F3D4 - ldr r1, [r0] - ldr r0, [r1, 0x14] - cmp r0, 0x7 - bne _081496A0 - ldr r0, [r1, 0x18] - cmp r0, 0x6 - bne _081496A0 - ldr r2, _081496CC @ =0x000083ac - adds r0, r1, r2 - ldr r1, [r0] - ldrh r0, [r1, 0x10] - cmp r0, 0x2 - beq _081496A0 - movs r0, 0x1 - str r0, [r1, 0x14] - movs r0, 0x3 - bl sub_8147F10 -_081496A0: - movs r2, 0 - ldr r0, _081496C8 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r2, r1 - bge _081496C0 - adds r3, r1, 0 - ldr r4, _081496D0 @ =0x000082f4 - adds r1, r0, r4 -_081496B2: - ldrh r0, [r1] - cmp r0, 0x2 - beq _0814966C - adds r1, 0x28 - adds r2, 0x1 - cmp r2, r3 - blt _081496B2 -_081496C0: - movs r0, 0x1 -_081496C2: - pop {r4,r5} + adds r0, 0x98 + strb r7, [r0] + adds r0, r6, 0 + pop {r4-r7} pop {r1} bx r1 .align 2, 0 -_081496C8: .4byte gUnknown_203F3D4 -_081496CC: .4byte 0x000083ac -_081496D0: .4byte 0x000082f4 - thumb_func_end sub_8149630 +_081532B4: .4byte gUnknown_203F3E0 + thumb_func_end sub_815327C - thumb_func_start sub_81496D4 -sub_81496D4: @ 81496D4 + thumb_func_start sub_81532B8 +sub_81532B8: @ 81532B8 push {r4,lr} - ldr r0, _08149708 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrb r3, [r0, 0x5] - movs r4, 0 - cmp r4, r3 - bge _081496F8 - ldr r1, _0814970C @ =0x000082f8 + ldr r4, _081532EC @ =gUnknown_203F3E0 + ldr r3, [r4] + adds r0, r3, 0 + adds r0, 0x28 + ldrb r1, [r0] + adds r0, 0x88 adds r2, r0, r1 - adds r1, r3, 0 -_081496E8: - ldr r0, [r2] + ldrb r0, [r2] cmp r0, 0 - beq _081496F0 - adds r4, 0x1 -_081496F0: - adds r2, 0x28 - subs r1, 0x1 - cmp r1, 0 - bne _081496E8 -_081496F8: - movs r0, 0 - cmp r4, r3 - bne _08149700 - movs r0, 0x1 -_08149700: - pop {r4} - pop {r1} - bx r1 + bne _08153360 + ldr r0, _081532F0 @ =gMain + ldrh r2, [r0, 0x2E] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _081532F8 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _081532F4 @ =0x000031cc + adds r0, r1 + movs r1, 0x2 + b _0815332E .align 2, 0 -_08149708: .4byte gUnknown_203F3D4 -_0814970C: .4byte 0x000082f8 - thumb_func_end sub_81496D4 - - thumb_func_start sub_8149710 -sub_8149710: @ 8149710 - push {r4,lr} - movs r2, 0 - ldr r0, _08149730 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r2, r1 - bge _08149740 - adds r3, r1, 0 - ldr r4, _08149734 @ =0x000082f8 - adds r1, r0, r4 -_08149724: - ldr r0, [r1] - cmp r0, 0x1 - beq _08149738 - movs r0, 0 - b _08149742 +_081532EC: .4byte gUnknown_203F3E0 +_081532F0: .4byte gMain +_081532F4: .4byte 0x000031cc +_081532F8: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08153314 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _08153310 @ =0x000031cc + adds r0, r1 + movs r1, 0x3 + b _0815332E .align 2, 0 -_08149730: .4byte gUnknown_203F3D4 -_08149734: .4byte 0x000082f8 -_08149738: +_08153310: .4byte 0x000031cc +_08153314: + movs r0, 0x10 + ands r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _0815334C + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _08153348 @ =0x000031cc + adds r0, r1 + movs r1, 0x1 +_0815332E: + strb r1, [r0] + ldr r0, [r4] + adds r1, r0, 0 adds r1, 0x28 - adds r2, 0x1 - cmp r2, r3 - blt _08149724 -_08149740: - movs r0, 0x1 -_08149742: + adds r0, 0xB0 + ldrb r1, [r1] + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0xCD + bl PlaySE + b _08153364 + .align 2, 0 +_08153348: .4byte 0x000031cc +_0815334C: + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _0815335C @ =0x000031cc + adds r0, r1 + strb r2, [r0] + b _08153364 + .align 2, 0 +_0815335C: .4byte 0x000031cc +_08153360: + subs r0, 0x1 + strb r0, [r2] +_08153364: pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8149710 + pop {r0} + bx r0 + thumb_func_end sub_81532B8 - thumb_func_start sub_8149748 -sub_8149748: @ 8149748 - push {lr} - ldr r0, _0814975C @ =gUnknown_203F3D4 + thumb_func_start sub_815336C +sub_815336C: @ 815336C + ldr r0, _08153388 @ =gUnknown_203F3E0 ldr r1, [r0] adds r0, r1, 0 - adds r0, 0x45 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08149760 -_08149758: + adds r0, 0x28 + ldrb r2, [r0] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 2 + adds r1, r0 + ldr r0, _0815338C @ =0x000031cc + adds r1, r0 movs r0, 0 - b _0814977C + strb r0, [r1] + bx lr .align 2, 0 -_0814975C: .4byte gUnknown_203F3D4 -_08149760: - movs r2, 0x1 - ldrb r0, [r1, 0x5] - cmp r2, r0 - bge _0814977A - adds r3, r0, 0 - adds r1, 0x92 -_0814976C: +_08153388: .4byte gUnknown_203F3E0 +_0815338C: .4byte 0x000031cc + thumb_func_end sub_815336C + + thumb_func_start sub_8153390 +sub_8153390: @ 8153390 + ldr r0, _081533B0 @ =gUnknown_203F3E0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x28 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, 0x52 + adds r1, r0 ldrh r0, [r1] - cmp r0, 0x1 - beq _08149758 - adds r1, 0x2 - adds r2, 0x1 - cmp r2, r3 - blt _0814976C -_0814977A: - movs r0, 0x1 -_0814977C: + adds r0, 0x85 + lsls r0, 16 + lsrs r0, 16 + bx lr + .align 2, 0 +_081533B0: .4byte gUnknown_203F3E0 + thumb_func_end sub_8153390 + + thumb_func_start sub_81533B4 +sub_81533B4: @ 81533B4 + ldr r0, _081533C0 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081533C0: .4byte gUnknown_203F3E0 + thumb_func_end sub_81533B4 + + thumb_func_start sub_81533C4 +sub_81533C4: @ 81533C4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081533E4 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _081533F0 + ldr r0, _081533E8 @ =gUnknown_203F3E0 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 2 + ldr r2, _081533EC @ =0x000031a0 + adds r1, r2 + ldr r0, [r0] + b _081533F8 + .align 2, 0 +_081533E4: .4byte gReceivedRemoteLinkPlayers +_081533E8: .4byte gUnknown_203F3E0 +_081533EC: .4byte 0x000031a0 +_081533F0: + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r1, _08153400 @ =gLinkPlayers + 8 +_081533F8: + adds r0, r1 pop {r1} bx r1 - thumb_func_end sub_8149748 + .align 2, 0 +_08153400: .4byte gLinkPlayers + 8 + thumb_func_end sub_81533C4 - thumb_func_start sub_8149780 -sub_8149780: @ 8149780 - push {lr} - ldr r1, _081497A0 @ =gUnknown_203F3D4 - ldr r2, [r1] - ldr r1, [r2, 0x78] - adds r1, r0 - str r1, [r2, 0x78] - movs r0, 0x1 - str r0, [r2, 0x5C] - ldr r0, _081497A4 @ =0x00018695 - cmp r1, r0 - bls _0814979A - adds r0, 0x1 - str r0, [r2, 0x78] -_0814979A: - pop {r0} - bx r0 + thumb_func_start sub_8153404 +sub_8153404: @ 8153404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r2, _08153420 @ =gUnknown_203F3E0 + ldr r3, [r2] + lsrs r1, 23 + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r1, r2 + adds r3, 0x4A + adds r3, r1 + ldrh r0, [r3] + bx lr .align 2, 0 -_081497A0: .4byte gUnknown_203F3D4 -_081497A4: .4byte 0x00018695 - thumb_func_end sub_8149780 +_08153420: .4byte gUnknown_203F3E0 + thumb_func_end sub_8153404 - thumb_func_start sub_81497A8 -sub_81497A8: @ 81497A8 + thumb_func_start sub_8153424 +sub_8153424: @ 8153424 push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 movs r5, 0 - ldr r1, _081497E0 @ =gUnknown_203F3D4 - ldr r0, [r1] - ldrb r4, [r0, 0x5] - movs r2, 0 - cmp r5, r4 - bge _081497FA - mov r12, r1 movs r3, 0 - ldr r7, _081497E4 @ =0x000082e4 - movs r6, 0x1E - negs r6, r6 -_081497C2: - mov r0, r12 - ldr r1, [r0] + ldr r0, _08153490 @ =gUnknown_203F3E0 + mov r9, r0 + ldr r2, _08153494 @ =gUnknown_84755D8 + mov r10, r2 + ldr r2, [r0] + lsls r1, r4, 1 + adds r0, r1, r4 + lsls r0, 2 + str r0, [sp] + adds r6, r2, 0 + adds r6, 0x4A + mov r12, r1 + mov r8, r10 +_08153452: + lsls r1, r3, 1 + ldr r7, [sp] adds r0, r1, r7 - adds r0, r3 - ldr r0, [r0] - cmp r0, r6 - bne _081497E8 - adds r0, r1, 0 - adds r0, 0x7C - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - adds r5, 0x1 - b _081497F2 + adds r0, r6, r0 + ldrh r2, [r0] + add r1, r8 + movs r7, 0 + ldrsh r0, [r1, r7] + muls r0, r2 + adds r5, r0 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _08153452 + mov r0, r9 + ldr r1, [r0] + mov r2, r12 + adds r0, r2, r4 + lsls r0, 2 + adds r1, 0x50 + adds r1, r0 + ldrh r1, [r1] + mov r3, r10 + movs r7, 0x6 + ldrsh r0, [r3, r7] + muls r0, r1 + cmp r5, r0 + bls _08153498 + subs r0, r5, r0 + b _0815349A .align 2, 0 -_081497E0: .4byte gUnknown_203F3D4 -_081497E4: .4byte 0x000082e4 -_081497E8: - adds r0, r1, 0 - adds r0, 0x7C - adds r0, r2 - movs r1, 0 - strb r1, [r0] -_081497F2: - adds r3, 0x28 - adds r2, 0x1 - cmp r2, r4 - blt _081497C2 -_081497FA: - adds r0, r5, 0 +_08153490: .4byte gUnknown_203F3E0 +_08153494: .4byte gUnknown_84755D8 +_08153498: + movs r0, 0 +_0815349A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_81497A8 - - thumb_func_start sub_8149804 -sub_8149804: @ 8149804 - push {lr} - movs r2, 0 - ldr r1, _08149828 @ =gUnknown_3005450 - ldr r3, _0814982C @ =0x0000069e - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08149820 - ldr r3, _08149830 @ =0x000008d2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08149820 - movs r2, 0x1 -_08149820: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_08149828: .4byte gUnknown_3005450 -_0814982C: .4byte 0x0000069e -_08149830: .4byte 0x000008d2 - thumb_func_end sub_8149804 + thumb_func_end sub_8153424 - thumb_func_start sub_8149834 -sub_8149834: @ 8149834 + thumb_func_start sub_81534AC +sub_81534AC: @ 81534AC push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - ldr r6, _08149874 @ =gUnknown_203F3D4 - movs r5, 0x1 -_08149842: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08149852 + ldr r0, _081534E8 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r6, [r0] + movs r0, 0 + bl sub_8153424 + adds r5, r0, 0 + movs r4, 0x1 + cmp r4, r6 + bcs _081534DA +_081534C4: + adds r0, r4, 0 + bl sub_8153424 + cmp r0, r5 + bls _081534D0 + adds r5, r0, 0 +_081534D0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _081534C4 +_081534DA: + ldr r1, _081534EC @ =0x000f4236 adds r0, r5, 0 - lsls r0, r1 - orrs r2, r0 - adds r3, 0x1 -_08149852: - adds r1, 0x1 - cmp r1, 0x4 - ble _08149842 - ldr r0, [r6] - adds r0, 0x71 - strb r2, [r0] - cmp r2, 0 - beq _0814986A - ldr r0, [r6] - adds r0, 0x4D - movs r1, 0x1 - strb r1, [r0] -_0814986A: - adds r0, r3, 0 + bl sub_815379C pop {r4-r6} pop {r1} bx r1 .align 2, 0 -_08149874: .4byte gUnknown_203F3D4 - thumb_func_end sub_8149834 +_081534E8: .4byte gUnknown_203F3E0 +_081534EC: .4byte 0x000f4236 + thumb_func_end sub_81534AC - thumb_func_start sub_8149878 -sub_8149878: @ 8149878 - ldr r0, _08149884 @ =gUnknown_203F3D4 - ldr r0, [r0] - adds r0, 0x44 + thumb_func_start sub_81534F0 +sub_81534F0: @ 81534F0 + push {r4,r5,lr} + lsls r0, 24 + ldr r1, _08153530 @ =gUnknown_203F3E0 + ldr r2, [r1] + adds r1, r2, 0 + adds r1, 0x24 + ldrb r5, [r1] + lsrs r4, r0, 23 + adds r2, 0x4A + adds r0, r2, r4 + ldrh r3, [r0] movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_08149884: .4byte gUnknown_203F3D4 - thumb_func_end sub_8149878 - - thumb_func_start sub_8149888 -sub_8149888: @ 8149888 - ldr r1, _08149894 @ =gUnknown_846B744 - lsls r0, 2 + cmp r1, r5 + bcs _08153528 +_0815350C: + lsls r0, r1, 1 adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_08149894: .4byte gUnknown_846B744 - thumb_func_end sub_8149888 - - thumb_func_start sub_8149898 -sub_8149898: @ 8149898 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _081498B0 @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrh r2, [r0, 0xE] - cmp r1, r2 - bls _081498AA - strh r1, [r0, 0xE] -_081498AA: - pop {r0} - bx r0 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, r3 + bls _0815351E + adds r3, r0, 0 +_0815351E: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r5 + bcc _0815350C +_08153528: + adds r0, r3, 0 + pop {r4,r5} + pop {r1} + bx r1 .align 2, 0 -_081498B0: .4byte gUnknown_203F3D4 - thumb_func_end sub_8149898 +_08153530: .4byte gUnknown_203F3E0 + thumb_func_end sub_81534F0 - thumb_func_start sub_81498B4 -sub_81498B4: @ 81498B4 - push {lr} - ldr r0, _081498C8 @ =gUnknown_203F3D4 + thumb_func_start sub_8153534 +sub_8153534: @ 8153534 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0x1 + ldr r0, _081535AC @ =gUnknown_203F3E0 ldr r0, [r0] - ldr r1, _081498CC @ =gUnknown_846B76C - ldr r2, [r0, 0x78] + adds r0, 0x24 + ldrb r5, [r0] + movs r4, 0 + cmp r4, r5 + bcs _08153562 +_0815354C: + adds r0, r4, 0 + bl sub_8153424 + lsls r1, r4, 2 + add r1, sp + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0815354C +_08153562: + lsls r7, 2 + mov r12, r7 + cmp r6, 0 + beq _0815359C + subs r7, r5, 0x1 +_0815356C: + movs r6, 0 + movs r4, 0 + cmp r6, r7 + bge _08153598 + adds r5, r7, 0 +_08153576: + lsls r0, r4, 2 + mov r2, sp + adds r1, r2, r0 + adds r4, 0x1 + lsls r0, r4, 2 + adds r3, r2, r0 ldr r0, [r1] - cmp r2, r0 - bcs _081498D0 - movs r0, 0 - b _081498D2 - .align 2, 0 -_081498C8: .4byte gUnknown_203F3D4 -_081498CC: .4byte gUnknown_846B76C -_081498D0: - movs r0, 0x1 -_081498D2: + ldr r2, [r3] + cmp r0, r2 + bcs _08153590 + str r2, [r1] + str r0, [r3] + movs r6, 0x1 +_08153590: + lsls r0, r4, 24 + lsrs r4, r0, 24 + cmp r4, r5 + blt _08153576 +_08153598: + cmp r6, 0 + bne _0815356C +_0815359C: + mov r0, sp + add r0, r12 + ldr r0, [r0] + add sp, 0x14 + pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_81498B4 + .align 2, 0 +_081535AC: .4byte gUnknown_203F3E0 + thumb_func_end sub_8153534 - thumb_func_start sub_81498D8 -sub_81498D8: @ 81498D8 - push {r4,lr} - bl sub_8149910 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_8149930 - lsls r0, 16 - lsrs r0, 4 - ldr r1, _081498FC @ =0x00000fff - ands r4, r1 - orrs r0, r4 - lsls r0, 16 - lsrs r0, 16 - pop {r4} + thumb_func_start sub_81535B0 +sub_81535B0: @ 81535B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r10, r0 + mov r8, r0 + mov r9, r0 + ldr r6, _08153690 @ =gUnknown_203F3E0 + ldr r0, [r6] + adds r0, 0x24 + ldrb r5, [r0] + bl sub_81534AC + bl sub_81534AC + cmp r0, 0 + bne _08153604 + movs r4, 0 + cmp r9, r5 + bcs _08153604 + adds r2, r6, 0 + ldr r1, _08153694 @ =0x00003308 + mov r12, r1 + movs r7, 0 + movs r6, 0x4 + ldr r3, _08153698 @ =0x0000330c +_081535E8: + ldr r0, [r2] + lsls r1, r4, 3 + adds r0, r1 + add r0, r12 + strb r6, [r0] + ldr r0, [r2] + adds r0, r3 + adds r0, r1 + str r7, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _081535E8 +_08153604: + movs r4, 0 + cmp r4, r5 + bcs _0815362E +_0815360A: + adds r0, r4, 0 + bl sub_8153424 + ldr r1, _0815369C @ =0x000f4236 + bl sub_815379C + ldr r1, _08153690 @ =gUnknown_203F3E0 + ldr r1, [r1] + lsls r2, r4, 3 + ldr r3, _08153698 @ =0x0000330c + adds r1, r3 + adds r1, r2 + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0815360A +_0815362E: + mov r0, r10 + bl sub_8153534 + adds r6, r0, 0 + mov r3, r8 + movs r4, 0 + cmp r4, r5 + bcs _0815367A + ldr r7, _08153690 @ =gUnknown_203F3E0 + mov r10, r7 +_08153642: + mov r0, r10 + ldr r2, [r0] + lsls r1, r4, 3 + ldr r7, _08153698 @ =0x0000330c + adds r0, r2, r7 + adds r0, r1 + ldr r0, [r0] + cmp r6, r0 + bne _08153670 + adds r0, r2, r1 + ldr r1, _08153694 @ =0x00003308 + adds r0, r1 + strb r3, [r0] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08153670: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08153642 +_0815367A: + mov r10, r8 + cmp r9, r5 + bcc _0815362E + movs r0, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} pop {r1} bx r1 .align 2, 0 -_081498FC: .4byte 0x00000fff - thumb_func_end sub_81498D8 +_08153690: .4byte gUnknown_203F3E0 +_08153694: .4byte 0x00003308 +_08153698: .4byte 0x0000330c +_0815369C: .4byte 0x000f4236 + thumb_func_end sub_81535B0 - thumb_func_start sub_8149900 -sub_8149900: @ 8149900 - lsls r0, 16 - lsrs r3, r0, 28 - strh r3, [r2] - lsls r0, 4 - lsrs r0, 20 - strh r0, [r1] + thumb_func_start sub_81536A0 +sub_81536A0: @ 81536A0 + lsls r1, 24 + ldr r2, _081536B8 @ =gUnknown_203F3E0 + ldr r2, [r2] + lsrs r1, 21 + ldr r3, _081536BC @ =0x00003308 + adds r2, r3 + adds r2, r1 + ldr r1, [r2] + ldr r2, [r2, 0x4] + str r1, [r0] + str r2, [r0, 0x4] bx lr - thumb_func_end sub_8149900 - - thumb_func_start sub_8149910 -sub_8149910: @ 8149910 - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - ldr r0, _0814992C @ =gUnknown_846B75C - lsrs r1, 15 - adds r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 .align 2, 0 -_0814992C: .4byte gUnknown_846B75C - thumb_func_end sub_8149910 +_081536B8: .4byte gUnknown_203F3E0 +_081536BC: .4byte 0x00003308 + thumb_func_end sub_81536A0 - thumb_func_start sub_8149930 -sub_8149930: @ 8149930 - push {r4-r6,lr} - movs r5, 0 + thumb_func_start sub_81536C0 +sub_81536C0: @ 81536C0 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r6, r0, 24 + movs r7, 0 + ldr r0, _08153728 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x24 + ldrb r5, [r0] + mov r0, sp + movs r1, 0 + movs r2, 0x14 + bl memset movs r4, 0 - ldr r3, _08149964 @ =gUnknown_203F3D4 - ldr r0, [r3] - ldr r2, _08149968 @ =gUnknown_846B76C - ldr r1, [r0, 0x78] - ldr r0, [r2] + cmp r7, r5 + bcs _081536F8 +_081536E2: + adds r0, r4, 0 + bl sub_8153424 + lsls r1, r4, 2 + add r1, sp + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _081536E2 +_081536F8: + lsls r0, r6, 2 + add r0, sp + ldr r1, [r0] + movs r4, 0 +_08153700: + cmp r4, r6 + beq _08153714 + lsls r0, r4, 2 + add r0, sp + ldr r0, [r0] cmp r1, r0 - bcc _0814996C - ldr r5, [r2, 0x4] - adds r6, r3, 0 - adds r3, r2, 0x4 -_0814994A: - adds r3, 0x8 - adds r2, 0x8 - adds r4, 0x1 + bcs _08153714 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08153714: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 cmp r4, 0x4 - bhi _0814996C - ldr r0, [r6] - ldr r1, [r0, 0x78] - ldr r0, [r2] - cmp r1, r0 - bcc _0814996C - ldr r5, [r3] - b _0814994A - .align 2, 0 -_08149964: .4byte gUnknown_203F3D4 -_08149968: .4byte gUnknown_846B76C -_0814996C: - lsls r0, r5, 16 - lsrs r0, 16 - pop {r4-r6} + bls _08153700 + adds r0, r7, 0 + add sp, 0x14 + pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8149930 + .align 2, 0 +_08153728: .4byte gUnknown_203F3E0 + thumb_func_end sub_81536C0 - thumb_func_start sub_8149978 -sub_8149978: @ 8149978 - push {r4,r5,lr} + thumb_func_start sub_815372C +sub_815372C: @ 815372C + push {r4-r6,lr} + ldr r0, _08153754 @ =gUnknown_203F3E0 + ldr r0, [r0] + adds r0, 0x28 + ldrb r4, [r0] + bl sub_8153390 lsls r0, 16 lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - b _0814998A -_08149984: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0814998A: - cmp r4, 0 - beq _0814999C + adds r6, r5, 0 + adds r0, r4, 0 + bl sub_8153424 + adds r4, r0, 0 + bl sub_81534AC + cmp r4, r0 + beq _08153758 + movs r0, 0x3 + b _08153786 + .align 2, 0 +_08153754: .4byte gUnknown_203F3E0 +_08153758: adds r0, r5, 0 - adds r1, r4, 0 + movs r1, 0x1 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 - beq _08149984 -_0814999C: - adds r0, r4, 0 - pop {r4,r5} + bne _0815376A + movs r0, 0x2 + b _08153786 +_0815376A: + adds r0, r6, 0 + movs r1, 0x1 + bl AddBagItem + adds r0, r6, 0 + movs r1, 0x1 + bl CheckBagHasSpace + lsls r0, 24 + cmp r0, 0 + beq _08153784 + movs r0, 0 + b _08153786 +_08153784: + movs r0, 0x1 +_08153786: + pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8149978 + thumb_func_end sub_815372C - thumb_func_start sub_81499A4 -sub_81499A4: @ 81499A4 + thumb_func_start sub_815378C +sub_815378C: @ 815378C push {lr} - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 + adds r2, r0, 0 + adds r0, r1, 0 + cmp r2, r0 + bcs _08153798 + adds r0, r2, 0x1 +_08153798: pop {r1} bx r1 - thumb_func_end sub_81499A4 + thumb_func_end sub_815378C - thumb_func_start sub_81499B4 -sub_81499B4: @ 81499B4 - ldr r0, _081499BC @ =gUnknown_203F3D4 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - bx lr - .align 2, 0 -_081499BC: .4byte gUnknown_203F3D4 - thumb_func_end sub_81499B4 + thumb_func_start sub_815379C +sub_815379C: @ 815379C + push {lr} + adds r2, r0, 0 + adds r0, r1, 0 + cmp r2, r0 + bcs _081537A8 + adds r0, r2, 0 +_081537A8: + pop {r1} + bx r1 + thumb_func_end sub_815379C - thumb_func_start sub_81499C0 -sub_81499C0: @ 81499C0 + thumb_func_start sub_81537AC +sub_81537AC: @ 81537AC lsls r0, 24 lsrs r0, 24 - ldr r2, _081499D8 @ =gUnknown_203F3D4 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _081499DC @ =0x000082a8 + ldr r1, _081537BC @ =gUnknown_203F3E0 + ldr r1, [r1] + adds r1, 0x34 adds r1, r0 - ldr r0, [r2] - adds r0, r1 - bx lr - .align 2, 0 -_081499D8: .4byte gUnknown_203F3D4 -_081499DC: .4byte 0x000082a8 - thumb_func_end sub_81499C0 - - thumb_func_start sub_81499E0 -sub_81499E0: @ 81499E0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081499FC @ =gUnknown_203F3D4 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, [r2] - adds r0, r1 - movs r1, 0x83 - lsls r1, 8 - adds r0, r1 + ldrb r0, [r1] bx lr .align 2, 0 -_081499FC: .4byte gUnknown_203F3D4 - thumb_func_end sub_81499E0 +_081537BC: .4byte gUnknown_203F3E0 + thumb_func_end sub_81537AC - thumb_func_start sub_8149A00 -sub_8149A00: @ 8149A00 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_8147D00 - lsls r0, 16 - asrs r0, 16 - mvns r0, r0 - lsrs r0, 31 - pop {r1} - bx r1 - thumb_func_end sub_8149A00 - - thumb_func_start sub_8149A18 -sub_8149A18: @ 8149A18 - push {r4,r5,lr} + thumb_func_start sub_81537C0 +sub_81537C0: @ 81537C0 + push {r4-r6,lr} movs r5, 0 -_08149A1C: + ldr r6, _081537F0 @ =gSpecialVar_Result +_081537C6: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 - ldr r0, _08149A4C @ =gPlayerParty + ldr r0, _081537F4 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 - beq _08149A54 + beq _081537F8 adds r0, r4, 0 movs r1, 0x41 bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl sub_8149A00 - cmp r0, 0 - beq _08149A54 - ldr r1, _08149A50 @ =gSpecialVar_Result + cmp r0, 0x55 + bne _081537F8 movs r0, 0x1 - b _08149A5E + strh r0, [r6] + b _08153804 .align 2, 0 -_08149A4C: .4byte gPlayerParty -_08149A50: .4byte gSpecialVar_Result -_08149A54: +_081537F0: .4byte gSpecialVar_Result +_081537F4: .4byte gPlayerParty +_081537F8: adds r5, 0x1 cmp r5, 0x5 - ble _08149A1C - ldr r1, _08149A68 @ =gSpecialVar_Result + ble _081537C6 + ldr r1, _0815380C @ =gSpecialVar_Result movs r0, 0 -_08149A5E: strh r0, [r1] - pop {r4,r5} +_08153804: + pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08149A68: .4byte gSpecialVar_Result - thumb_func_end sub_8149A18 +_0815380C: .4byte gSpecialVar_Result + thumb_func_end sub_81537C0 - thumb_func_start sub_8149A6C -sub_8149A6C: @ 8149A6C - push {lr} - sub sp, 0xC - mov r2, sp - movs r1, 0x1 - strb r1, [r2] - ldrh r1, [r0] - strh r1, [r2, 0x2] - ldr r1, [r0, 0x4] - str r1, [sp, 0x8] - ldr r0, [r0, 0x8] - str r0, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8149A6C - - thumb_func_start sub_8149A90 -sub_8149A90: @ 8149A90 + thumb_func_start sub_8153810 +sub_8153810: @ 8153810 push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - ldr r3, _08149AC4 @ =gUnknown_3003ED0 - lsls r2, r0, 4 - adds r0, r2, r3 - ldrh r1, [r0] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r1, 0xBC - lsls r1, 6 - cmp r0, r1 - bne _08149AC0 - adds r1, r3, 0x2 - adds r1, r2, r1 - mov r0, sp - movs r2, 0xC - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, 0x1 - beq _08149AC8 -_08149AC0: - movs r0, 0 - b _08149AD8 - .align 2, 0 -_08149AC4: .4byte gUnknown_3003ED0 -_08149AC8: - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r4] - ldr r0, [sp, 0x8] - str r0, [r4, 0x4] - ldr r0, [sp, 0x4] - str r0, [r4, 0x8] - movs r0, 0x1 -_08149AD8: - add sp, 0xC + ldr r4, _0815382C @ =sub_8153830 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8149A90 - - thumb_func_start sub_8149AE0 -sub_8149AE0: @ 8149AE0 - push {lr} - sub sp, 0xC - mov r2, sp - movs r1, 0x2 - strb r1, [r2] - str r0, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8149AE0 - - thumb_func_start sub_8149AF8 -sub_8149AF8: @ 8149AF8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r3, sp - movs r2, 0x3 - strb r2, [r3] - ldr r3, [r1, 0x8] - lsls r3, 15 - ldr r2, [sp, 0x8] - ldr r4, _08149B74 @ =0x00007fff - mov r8, r4 - ands r2, r4 - orrs r2, r3 - str r2, [sp, 0x8] - mov r6, sp - ldrb r2, [r1, 0x1] - movs r5, 0x1F - adds r3, r5, 0 - ands r3, r2 - ldrb r4, [r6, 0x3] - movs r2, 0x20 - negs r2, r2 - ands r2, r4 - orrs r2, r3 - strb r2, [r6, 0x3] - mov r3, sp - ldrb r2, [r1] - strb r2, [r3, 0x1] - ldrh r2, [r1, 0x2] - strh r2, [r3, 0x6] - mov r4, sp - ldrh r2, [r1, 0x4] - mov r1, r8 - ands r2, r1 - ldrh r3, [r4, 0x8] - ldr r1, _08149B78 @ =0xffff8000 - ands r1, r3 - orrs r1, r2 - strh r1, [r4, 0x8] - mov r2, sp - ldrh r1, [r0, 0x10] - strb r1, [r2, 0x2] - mov r3, sp - ldr r1, [r0, 0x14] - lsls r1, 5 - ldrb r2, [r3, 0x3] - ands r5, r2 - orrs r5, r1 - strb r5, [r3, 0x3] - mov r1, sp - ldrh r0, [r0, 0xE] - strh r0, [r1, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08149B74: .4byte 0x00007fff -_08149B78: .4byte 0xffff8000 - thumb_func_end sub_8149AF8 +_0815382C: .4byte sub_8153830 + thumb_func_end sub_8153810 - thumb_func_start sub_8149B7C -sub_8149B7C: @ 8149B7C + thumb_func_start sub_8153830 +sub_8153830: @ 8153830 push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r4, r1, 0 - ldr r2, _08149BE4 @ =gUnknown_3003ED0 - ldrh r0, [r2] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _08149BE8 - adds r1, r2, 0x2 - mov r0, sp - movs r2, 0xC - bl memcpy - mov r0, sp - ldrb r0, [r0] + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08153854 @ =gTasks+0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0815387C + cmp r0, 0x1 + bgt _08153858 + cmp r0, 0 + beq _08153862 + b _081538CA + .align 2, 0 +_08153854: .4byte gTasks+0x8 +_08153858: + cmp r0, 0x2 + beq _08153888 cmp r0, 0x3 - bne _08149BE8 - ldr r0, [sp, 0x8] - lsrs r0, 15 - str r0, [r4, 0x8] - mov r0, sp - ldrb r1, [r0, 0x3] - lsls r0, r1, 27 - lsrs r0, 27 - strb r0, [r4, 0x1] - mov r0, sp - ldrb r0, [r0, 0x1] - strb r0, [r4] - mov r0, sp - ldrh r0, [r0, 0x6] + beq _081538B0 + b _081538CA +_08153862: + ldr r0, _08153878 @ =gUnknown_84755E0 + bl AddWindow strh r0, [r4, 0x2] - mov r0, sp - ldrh r0, [r0, 0x8] - lsls r0, 17 - lsrs r0, 17 - strh r0, [r4, 0x4] - mov r0, sp - ldrb r0, [r0, 0x2] - strh r0, [r5, 0x10] - lsls r1, 24 - lsrs r1, 29 - str r1, [r5, 0x14] - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0xE] - movs r0, 0x1 - b _08149BEA + lsls r0, 24 + lsrs r0, 24 + bl sub_81538D0 + ldrb r0, [r4, 0x2] + movs r1, 0x3 + b _0815389E .align 2, 0 -_08149BE4: .4byte gUnknown_3003ED0 -_08149BE8: - movs r0, 0 -_08149BEA: - add sp, 0xC +_08153878: .4byte gUnknown_84755E0 +_0815387C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081538CA + b _081538A2 +_08153888: + ldr r0, _081538AC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081538CA + ldrb r0, [r4, 0x2] + bl rbox_fill_rectangle + ldrb r0, [r4, 0x2] + movs r1, 0x1 +_0815389E: + bl CopyWindowToVram +_081538A2: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081538CA + .align 2, 0 +_081538AC: .4byte gMain +_081538B0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081538CA + ldrb r0, [r4, 0x2] + bl RemoveWindow + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_081538CA: pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8149B7C - - thumb_func_start sub_8149BF4 -sub_8149BF4: @ 8149BF4 - push {r4,lr} - sub sp, 0xC - mov r4, sp - movs r3, 0x4 - strb r3, [r4] - ldrh r3, [r0, 0x10] - strb r3, [r4, 0x1] - ldr r3, [r0, 0x14] - strb r3, [r4, 0x2] - ldr r3, [r0, 0x18] - strb r3, [r4, 0x3] - mov r3, sp - ldrh r0, [r0, 0xE] - strh r0, [r3, 0x4] - mov r0, sp - strb r1, [r0, 0x6] - strh r2, [r0, 0x8] - bl sub_80F9E2C - add sp, 0xC - pop {r4} pop {r0} bx r0 - thumb_func_end sub_8149BF4 + thumb_func_end sub_8153830 - thumb_func_start sub_8149C24 -sub_8149C24: @ 8149C24 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, _08149C80 @ =gUnknown_3003ED0 - lsls r2, r1, 4 - adds r0, r2, r3 - ldrh r1, [r0] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r1, 0xBC - lsls r1, 6 - cmp r0, r1 - bne _08149C84 - adds r1, r3, 0x2 - adds r1, r2, r1 - mov r0, sp - movs r2, 0xC - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, 0x4 - bne _08149C84 - mov r0, sp - ldrb r0, [r0, 0x1] - strh r0, [r4, 0x10] - mov r0, sp - ldrb r0, [r0, 0x2] - str r0, [r4, 0x14] - mov r0, sp - ldrb r0, [r0, 0x3] - str r0, [r4, 0x18] - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0xE] - mov r0, sp - ldrb r0, [r0, 0x6] - strb r0, [r5] - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r6] + thumb_func_start sub_81538D0 +sub_81538D0: @ 81538D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _081539CC @ =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, _081539D0 @ =0x00000b14 + adds r0, r1, r2 + ldrh r0, [r0] + str r0, [sp, 0xC] + subs r2, 0x4 + adds r0, r1, r2 + ldr r0, [r0] + str r0, [sp, 0x10] + ldr r0, _081539D4 @ =0x00000b16 + adds r1, r0 + ldrh r0, [r1] + str r0, [sp, 0x14] + ldr r4, _081539D8 @ =0x0000021d + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0xD0 + bl sub_814FF2C + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0xD + bl DrawTextBorderOuter + adds r0, r7, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, _081539DC @ =gUnknown_84755E8 + ldr r2, [r0] movs r0, 0x1 - b _08149C86 - .align 2, 0 -_08149C80: .4byte gUnknown_3003ED0 -_08149C84: + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] movs r0, 0 -_08149C86: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8149C24 - - thumb_func_start sub_8149C90 -sub_8149C90: @ 8149C90 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r3, _08149CDC @ =gUnknown_3003ED0 - lsls r2, r1, 4 - adds r0, r2, r3 - ldrh r1, [r0] + str r0, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0x2 + movs r3, 0x1 + bl AddTextPrinterParameterized + movs r4, 0 + add r2, sp, 0x18 + mov r8, r2 movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r1, 0xBC - lsls r1, 6 - cmp r0, r1 - bne _08149CE0 - adds r1, r3, 0x2 - adds r1, r2, r1 - mov r0, sp - movs r2, 0xC - bl memcpy - mov r0, sp + mov r10, r0 + mov r9, r4 + mov r2, sp + adds r2, 0xC + str r2, [sp, 0x2C] +_08153946: + ldr r0, [sp, 0x2C] + ldm r0!, {r1} + str r0, [sp, 0x2C] + ldr r0, _081539E0 @ =gUnknown_84755F8 + adds r0, r4, r0 + ldrb r3, [r0] + mov r0, r8 + movs r2, 0 + bl ConvertIntToDecimalStringN + movs r0, 0x2 + mov r1, r8 + movs r2, 0x1 + negs r2, r2 + bl GetStringWidth + adds r5, r0, 0 + ldr r1, _081539DC @ =gUnknown_84755E8 + adds r6, r4, 0x1 + lsls r0, r6, 2 + adds r0, r1 + ldr r2, [r0] + ldr r0, _081539E4 @ =gUnknown_84755FC + lsls r4, 1 + adds r0, r4, r0 ldrb r0, [r0] - cmp r0, 0x4 - bne _08149CE0 - mov r0, sp - ldrb r0, [r0, 0x1] - strh r0, [r4, 0x10] - mov r0, sp - ldrb r0, [r0, 0x2] - str r0, [r4, 0x14] - mov r0, sp - ldrb r0, [r0, 0x3] - str r0, [r4, 0x18] - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0xE] - movs r0, 0x1 - b _08149CE2 - .align 2, 0 -_08149CDC: .4byte gUnknown_3003ED0 -_08149CE0: - movs r0, 0 -_08149CE2: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8149C90 - - thumb_func_start sub_8149CEC -sub_8149CEC: @ 8149CEC - push {r4,lr} - ldr r4, _08149D18 @ =gUnknown_203F3D8 - str r0, [r4] - bl sub_8149D34 - ldr r0, _08149D1C @ =sub_8149DA4 - movs r1, 0x3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, 0x6] - ldr r2, [r4] - ldrb r0, [r2, 0x6] + str r0, [sp] + mov r0, r10 + str r0, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r7, 0 movs r1, 0x2 - bl SetWordTaskArg - ldr r0, _08149D20 @ =sub_8149DC8 - bl sub_8149D80 - pop {r4} + movs r3, 0x1 + bl AddTextPrinterParameterized + movs r3, 0xE0 + subs r3, r5 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _081539E8 @ =gUnknown_8475602 + adds r4, r0 + ldrb r0, [r4] + str r0, [sp] + mov r2, r10 + str r2, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0x2 + mov r2, r8 + bl AddTextPrinterParameterized + adds r4, r6, 0 + cmp r4, 0x2 + ble _08153946 + adds r0, r7, 0 + bl PutWindowTilemap + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_08149D18: .4byte gUnknown_203F3D8 -_08149D1C: .4byte sub_8149DA4 -_08149D20: .4byte sub_8149DC8 - thumb_func_end sub_8149CEC - - thumb_func_start sub_8149D24 -sub_8149D24: @ 8149D24 +_081539CC: .4byte gSaveBlock2Ptr +_081539D0: .4byte 0x00000b14 +_081539D4: .4byte 0x00000b16 +_081539D8: .4byte 0x0000021d +_081539DC: .4byte gUnknown_84755E8 +_081539E0: .4byte gUnknown_84755F8 +_081539E4: .4byte gUnknown_84755FC +_081539E8: .4byte gUnknown_8475602 + thumb_func_end sub_81538D0 + + thumb_func_start sub_81539EC +sub_81539EC: @ 81539EC push {lr} - bl FreeAllWindowBuffers - bl sub_815C9F4 - pop {r0} - bx r0 - thumb_func_end sub_8149D24 - - thumb_func_start sub_8149D34 -sub_8149D34: @ 8149D34 - movs r1, 0 - strh r1, [r0, 0x4] - str r1, [r0] - movs r1, 0xFF - strh r1, [r0, 0x12] - bx lr - thumb_func_end sub_8149D34 - - thumb_func_start sub_8149D40 -sub_8149D40: @ 8149D40 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r4, _08149D64 @ =gUnknown_846D8FC -_08149D48: - ldr r0, [r4] - cmp r0, r6 - bne _08149D54 - ldr r0, [r4, 0x4] - bl sub_8149D80 -_08149D54: - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x9 - bls _08149D48 - pop {r4-r6} + bl GetLinkPlayerCount + ldr r1, _08153A00 @ =gUnknown_203F3E0 + ldr r1, [r1] + adds r1, 0x24 + strb r0, [r1] pop {r0} bx r0 .align 2, 0 -_08149D64: .4byte gUnknown_846D8FC - thumb_func_end sub_8149D40 +_08153A00: .4byte gUnknown_203F3E0 + thumb_func_end sub_81539EC - thumb_func_start sub_8149D68 -sub_8149D68: @ 8149D68 - ldr r0, _08149D7C @ =gUnknown_203F3D8 + thumb_func_start sub_8153A04 +sub_8153A04: @ 8153A04 + push {r4-r7,lr} + ldr r0, _08153A8C @ =gUnknown_203F3E0 ldr r0, [r0] + adds r0, 0x24 + ldrb r4, [r0] + cmp r4, 0x4 + bhi _08153A32 + ldr r5, _08153A90 @ =gUnknown_8475648 +_08153A14: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _08153A94 @ =gLinkPlayers + 8 + adds r0, r1 + lsls r1, r4, 2 + adds r1, r5 + ldr r1, [r1] + bl StringCopy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _08153A14 +_08153A32: + ldr r0, _08153A8C @ =gUnknown_203F3E0 ldr r1, [r0] - movs r0, 0x1 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .align 2, 0 -_08149D7C: .4byte gUnknown_203F3D8 - thumb_func_end sub_8149D68 - - thumb_func_start sub_8149D80 -sub_8149D80: @ 8149D80 - push {r4,lr} - adds r2, r0, 0 - ldr r4, _08149DA0 @ =gUnknown_203F3D8 - ldr r0, [r4] - ldrb r0, [r0, 0x6] + adds r1, 0x24 + movs r2, 0x5 + strb r2, [r1] movs r1, 0 - bl SetWordTaskArg - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0x4] - str r0, [r1] - pop {r4} + mov r12, r0 +_08153A40: + movs r4, 0 + mov r2, r12 + ldr r0, [r2] + adds r0, 0x24 + adds r5, r1, 0x1 + ldrb r0, [r0] + cmp r4, r0 + bcs _08153A7E + ldr r7, _08153A8C @ =gUnknown_203F3E0 + lsls r3, r1, 1 + ldr r6, _08153A98 @ =gUnknown_8475608 +_08153A56: + ldr r2, [r7] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r3, r0 + adds r1, r2, 0 + adds r1, 0x4A + adds r1, r0 + lsls r0, r4, 3 + adds r0, r3, r0 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, 0x24 + ldrb r2, [r2] + cmp r4, r2 + bcc _08153A56 +_08153A7E: + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _08153A40 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_08149DA0: .4byte gUnknown_203F3D8 - thumb_func_end sub_8149D80 +_08153A8C: .4byte gUnknown_203F3E0 +_08153A90: .4byte gUnknown_8475648 +_08153A94: .4byte gLinkPlayers + 8 +_08153A98: .4byte gUnknown_8475608 + thumb_func_end sub_8153A04 - thumb_func_start sub_8149DA4 -sub_8149DA4: @ 8149DA4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08149DC4 @ =gUnknown_203F3D8 + thumb_func_start sub_8153A9C +sub_8153A9C: @ 8153A9C + push {r4,r5,lr} + sub sp, 0x18 + movs r5, 0xC0 + lsls r5, 6 + adds r0, r5, 0 + bl AllocZeroed + adds r4, r0, 0 + ldr r0, _08153AF0 @ =gUnknown_8478D90 + ldr r1, [r0, 0x4] ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + ldr r0, _08153AF4 @ =gUnknown_8478D98 + ldr r1, [r0, 0x4] ldr r0, [r0] - cmp r0, 0 - bne _08149DC0 - adds r0, r1, 0 - movs r1, 0 - bl GetWordTaskArg - bl _call_via_r0 -_08149DC0: + str r0, [sp, 0x10] + str r1, [sp, 0x14] + ldr r0, _08153AF8 @ =gUnknown_8477374 + adds r1, r4, 0 + bl LZ77UnCompWram + cmp r4, 0 + beq _08153ADC + str r4, [sp] + str r5, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r4, 0 + bl Free +_08153ADC: + add r0, sp, 0x8 + bl LoadSpritePalette + add r0, sp, 0x10 + bl LoadSpritePalette + add sp, 0x18 + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08149DC4: .4byte gUnknown_203F3D8 - thumb_func_end sub_8149DA4 +_08153AF0: .4byte gUnknown_8478D90 +_08153AF4: .4byte gUnknown_8478D98 +_08153AF8: .4byte gUnknown_8477374 + thumb_func_end sub_8153A9C - thumb_func_start sub_8149DC8 -sub_8149DC8: @ 8149DC8 + thumb_func_start sub_8153AFC +sub_8153AFC: @ 8153AFC push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08149DE4 @ =gUnknown_203F3D8 - ldr r1, [r6] - ldrh r5, [r1, 0x4] - cmp r5, 0x1 - bne _08149DD8 - b _08149F18 -_08149DD8: - cmp r5, 0x1 - bgt _08149DE8 - cmp r5, 0 - beq _08149DF0 - b _08149F5A - .align 2, 0 -_08149DE4: .4byte gUnknown_203F3D8 -_08149DE8: - cmp r5, 0x2 - bne _08149DEE - b _08149F56 -_08149DEE: - b _08149F5A -_08149DF0: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08149EE8 @ =gUnknown_846D8D4 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, _08149EEC @ =gUnknown_846D8E4 - bl InitWindows - bl sub_80F6C14 - bl reset_temp_tile_data_buffers - ldr r0, [r6] - bl sub_814AD6C - bl sub_814A9C8 - ldr r0, _08149EF0 @ =gUnknown_846B7B4 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, _08149EF4 @ =gUnknown_846B7D4 - str r5, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _08149EF8 @ =gUnknown_846BA00 - movs r4, 0x1 - str r4, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _08149EFC @ =gUnknown_846BBB0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _08149F00 @ =gUnknown_846BBD0 - str r5, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _08149F04 @ =gUnknown_846C520 - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _08149F08 @ =gUnknown_846C8D8 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _08149F0C @ =gUnknown_846C8F8 - str r5, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _08149F10 @ =gUnknown_846D3A8 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _08149F14 @ =gUnknown_846B794 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r1, [r6] - movs r0, 0xD3 - lsls r0, 1 - adds r1, r0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 + mov r6, r8 + push {r6} + sub sp, 0x30 + adds r6, r1, 0 + mov r8, r2 + adds r5, r3, 0 + lsls r6, 24 + lsrs r6, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r5, 24 + lsrs r5, 24 + add r1, sp, 0x18 movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - bl sub_814A84C - movs r0, 0 - bl sub_814AA24 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xE0 - bl sub_814FDA0 - movs r0, 0 - movs r1, 0xA - movs r2, 0xD0 - bl LoadUserWindowBorderGfx - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _08149F4C - .align 2, 0 -_08149EE8: .4byte gUnknown_846D8D4 -_08149EEC: .4byte gUnknown_846D8E4 -_08149EF0: .4byte gUnknown_846B7B4 -_08149EF4: .4byte gUnknown_846B7D4 -_08149EF8: .4byte gUnknown_846BA00 -_08149EFC: .4byte gUnknown_846BBB0 -_08149F00: .4byte gUnknown_846BBD0 -_08149F04: .4byte gUnknown_846C520 -_08149F08: .4byte gUnknown_846C8D8 -_08149F0C: .4byte gUnknown_846C8F8 -_08149F10: .4byte gUnknown_846D3A8 -_08149F14: .4byte gUnknown_846B794 -_08149F18: - bl free_temp_tile_data_buffers_if_possible + strh r3, [r1] + ldrb r2, [r0] + mov r0, sp + adds r0, 0x1A + strh r2, [r0] + ldr r0, _08153B88 @ =gUnknown_8478C98 + str r0, [sp, 0x1C] + ldr r0, _08153B8C @ =gUnknown_8478CE0 + str r0, [sp, 0x20] + str r3, [sp, 0x24] + ldr r0, _08153B90 @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x28] + ldr r0, _08153B94 @ =sub_8153B9C + str r0, [sp, 0x2C] + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r0, 0x4 + bl AllocZeroed + ldr r1, _08153B98 @ =gUnknown_203F3E4 + mov r2, r8 + lsls r4, r2, 2 + adds r4, r1 + str r0, [r4] + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8154608 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x88 + movs r3, 0x3 + bl CreateSprite + ldr r1, [r4] lsls r0, 24 - cmp r0, 0 - bne _08149F5A - bl sub_814A8B8 - ldr r0, [r6] - bl sub_814B294 - ldr r0, [r6] - movs r1, 0x6 - bl sub_814B348 - movs r0, 0x3 - bl ShowBg - movs r0, 0 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x1 - bl HideBg -_08149F4C: - ldr r1, [r6] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _08149F5A -_08149F56: + lsrs r0, 24 + strh r0, [r1] movs r0, 0x1 - str r0, [r1] -_08149F5A: - add sp, 0x8 + mov r1, r8 + bl sub_8153D48 + add sp, 0x30 + pop {r3} + mov r8, r3 pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8149DC8 - - thumb_func_start sub_8149F64 -sub_8149F64: @ 8149F64 - push {r4,lr} - ldr r4, _08149F7C @ =gUnknown_203F3D8 - ldr r0, [r4] - ldrh r0, [r0, 0x4] - cmp r0, 0x1 - beq _08149F90 - cmp r0, 0x1 - bgt _08149F80 - cmp r0, 0 - beq _08149F8A - b _08149FCA .align 2, 0 -_08149F7C: .4byte gUnknown_203F3D8 -_08149F80: - cmp r0, 0x2 - beq _08149FA2 - cmp r0, 0x3 - beq _08149FBA - b _08149FCA -_08149F8A: - bl sub_814AADC - b _08149FB0 -_08149F90: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08149FCA - movs r0, 0 - bl sub_814AC30 - b _08149FB0 -_08149FA2: - bl IsDma3ManagerBusyWithBgCopy +_08153B88: .4byte gUnknown_8478C98 +_08153B8C: .4byte gUnknown_8478CE0 +_08153B90: .4byte gDummySpriteAffineAnimTable +_08153B94: .4byte sub_8153B9C +_08153B98: .4byte gUnknown_203F3E4 + thumb_func_end sub_8153AFC + + thumb_func_start sub_8153B9C +sub_8153B9C: @ 8153B9C + push {lr} + movs r2, 0x2E + ldrsh r1, [r0, r2] + cmp r1, 0x1 + beq _08153BB0 + cmp r1, 0x1 + ble _08153BBA + cmp r1, 0x2 + beq _08153BB6 + b _08153BBA +_08153BB0: + bl sub_8153C30 + b _08153BBA +_08153BB6: + bl sub_8153CA0 +_08153BBA: + pop {r0} + bx r0 + thumb_func_end sub_8153B9C + + thumb_func_start sub_8153BC0 +sub_8153BC0: @ 8153BC0 + push {lr} + bl GetMultiplayerId + ldr r1, _08153BF0 @ =gUnknown_203F3E4 lsls r0, 24 - cmp r0, 0 - bne _08149FCA - bl sub_814AC94 -_08149FB0: - ldr r1, [r4] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _08149FCA -_08149FBA: - bl IsDma3ManagerBusyWithBgCopy + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08153BF4 @ =gSprites + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + strh r2, [r0, 0x34] + strh r2, [r0, 0x36] + pop {r0} + bx r0 + .align 2, 0 +_08153BF0: .4byte gUnknown_203F3E4 +_08153BF4: .4byte gSprites + thumb_func_end sub_8153BC0 + + thumb_func_start sub_8153BF8 +sub_8153BF8: @ 8153BF8 + push {lr} + bl GetMultiplayerId + ldr r1, _08153C28 @ =gUnknown_203F3E4 lsls r0, 24 - cmp r0, 0 - bne _08149FCA - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1] -_08149FCA: - pop {r4} + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08153C2C @ =gSprites + adds r0, r1 + movs r2, 0 + movs r1, 0x2 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + strh r2, [r0, 0x34] + strh r2, [r0, 0x36] pop {r0} bx r0 - thumb_func_end sub_8149F64 + .align 2, 0 +_08153C28: .4byte gUnknown_203F3E4 +_08153C2C: .4byte gSprites + thumb_func_end sub_8153BF8 - thumb_func_start sub_8149FD0 -sub_8149FD0: @ 8149FD0 + thumb_func_start sub_8153C30 +sub_8153C30: @ 8153C30 push {r4,lr} - ldr r4, _08149FE8 @ =gUnknown_203F3D8 - ldr r0, [r4] - ldrh r0, [r0, 0x4] - cmp r0, 0x1 - beq _08149FFC - cmp r0, 0x1 - bgt _08149FEC - cmp r0, 0 - beq _08149FF6 - b _0814A036 - .align 2, 0 -_08149FE8: .4byte gUnknown_203F3D8 -_08149FEC: - cmp r0, 0x2 - beq _0814A00E - cmp r0, 0x3 - beq _0814A026 - b _0814A036 -_08149FF6: - bl sub_814AADC - b _0814A01C -_08149FFC: - bl IsDma3ManagerBusyWithBgCopy + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r2, r0, 16 + lsrs r0, 31 + adds r0, r2, r0 + asrs r1, r0, 1 + adds r0, r1, 0 + cmp r1, 0 + bge _08153C4C + adds r0, r1, 0x3 +_08153C4C: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 lsls r0, 24 - cmp r0, 0 - bne _0814A036 + lsrs r0, 24 + cmp r2, 0x2 + ble _08153C96 + cmp r0, 0x2 + bgt _08153C62 + cmp r0, 0x1 + bge _08153C66 +_08153C62: movs r0, 0x1 - bl sub_814AC30 - b _0814A01C -_0814A00E: - bl IsDma3ManagerBusyWithBgCopy + b _08153C68 +_08153C66: + movs r0, 0xFF +_08153C68: lsls r0, 24 - cmp r0, 0 - bne _0814A036 - bl sub_814AC94 -_0814A01C: - ldr r1, [r4] - ldrh r0, [r1, 0x4] + asrs r0, 24 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x30] adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A036 -_0814A026: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814A036 - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1] -_0814A036: + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _08153C96 + movs r0, 0 + strh r0, [r4, 0x2E] + bl sub_81533B4 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8154608 + strh r0, [r4, 0x20] +_08153C96: + movs r0, 0 pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8149FD0 + pop {r1} + bx r1 + thumb_func_end sub_8153C30 - thumb_func_start sub_814A03C -sub_814A03C: @ 814A03C + thumb_func_start sub_8153CA0 +sub_8153CA0: @ 8153CA0 push {r4,r5,lr} - bl sub_81499A4 + adds r5, r0, 0 + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xD + bl __divsi3 + lsls r0, 16 + asrs r1, r0, 16 + adds r0, r1, 0 + cmp r1, 0 + bge _08153CC0 + adds r0, r1, 0x3 +_08153CC0: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r1, 0xD + bl __modsi3 lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0814A058 @ =gUnknown_203F3D8 - ldr r0, [r0] - ldrh r0, [r0, 0x4] cmp r0, 0 - beq _0814A05C - cmp r0, 0x1 - beq _0814A090 - b _0814A0BE - .align 2, 0 -_0814A058: .4byte gUnknown_203F3D8 -_0814A05C: + bne _08153CE4 + cmp r4, 0 + beq _08153CE4 + movs r0, 0xCD + bl PlaySE +_08153CE4: + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x67 + ble _08153CF2 + movs r0, 0 + strh r0, [r5, 0x2E] movs r4, 0 - cmp r4, r5 - bge _0814A078 -_0814A062: - ldr r0, _0814A08C @ =gUnknown_203F3D8 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x1C - adds r0, r1 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r4, 0x1 - cmp r4, r5 - blt _0814A062 -_0814A078: +_08153CF2: + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_8153DA8 movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _0814A08C @ =gUnknown_203F3D8 - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A0BE - .align 2, 0 -_0814A08C: .4byte gUnknown_203F3D8 -_0814A090: - bl IsDma3ManagerBusyWithBgCopy + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8153CA0 + + thumb_func_start sub_8153D08 +sub_8153D08: @ 8153D08 + push {r4-r6,lr} lsls r0, 24 - cmp r0, 0 - bne _0814A0BE + lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 - bge _0814A0B6 -_0814A0A0: - ldr r0, _0814A0C4 @ =gUnknown_203F3D8 + bcs _08153D3A + ldr r6, _08153D40 @ =gUnknown_203F3E4 +_08153D16: + lsls r0, r4, 2 + adds r0, r6 ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x1C + ldrh r1, [r0] + lsls r0, r1, 4 adds r0, r1 - ldrb r0, [r0] - bl RemoveWindow - adds r4, 0x1 + lsls r0, 2 + ldr r1, _08153D44 @ =gSprites + adds r0, r1 + cmp r0, 0 + beq _08153D30 + bl DestroySpriteAndFreeResources +_08153D30: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 cmp r4, r5 - blt _0814A0A0 -_0814A0B6: - ldr r0, _0814A0C4 @ =gUnknown_203F3D8 - ldr r1, [r0] - movs r0, 0x1 - str r0, [r1] -_0814A0BE: - pop {r4,r5} + bcc _08153D16 +_08153D3A: + pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0814A0C4: .4byte gUnknown_203F3D8 - thumb_func_end sub_814A03C +_08153D40: .4byte gUnknown_203F3E4 +_08153D44: .4byte gSprites + thumb_func_end sub_8153D08 - thumb_func_start sub_814A0C8 -sub_814A0C8: @ 814A0C8 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, _0814A0E0 @ =gUnknown_203F3D8 - ldr r0, [r5] - ldrh r4, [r0, 0x4] - cmp r4, 0x1 - beq _0814A124 - cmp r4, 0x1 - bgt _0814A0E4 - cmp r4, 0 - beq _0814A0EA - b _0814A16C - .align 2, 0 -_0814A0E0: .4byte gUnknown_203F3D8 -_0814A0E4: - cmp r4, 0x2 - beq _0814A15C - b _0814A16C -_0814A0EA: - movs r0, 0x1 - movs r1, 0x8 - movs r2, 0x14 - movs r3, 0x2 - bl sub_814A754 - ldr r1, [r5] - strh r0, [r1, 0x12] + thumb_func_start sub_8153D48 +sub_8153D48: @ 8153D48 lsls r0, 24 lsrs r0, 24 - ldr r2, _0814A120 @ =gUnknown_841CBFD - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - b _0814A152 + lsls r1, 24 + ldr r3, _08153D78 @ =gSprites + ldr r2, _08153D7C @ =gUnknown_203F3E4 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + ldrh r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + adds r2, 0x3E + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + ldrb r3, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r0 + strb r1, [r2] + bx lr .align 2, 0 -_0814A120: .4byte gUnknown_841CBFD -_0814A124: - bl IsDma3ManagerBusyWithBgCopy +_08153D78: .4byte gSprites +_08153D7C: .4byte gUnknown_203F3E4 + thumb_func_end sub_8153D48 + + thumb_func_start sub_8153D80 +sub_8153D80: @ 8153D80 + push {r4-r6,lr} lsls r0, 24 - cmp r0, 0 - bne _0814A16C - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x12] - movs r1, 0x1 - movs r2, 0xE - bl DrawTextBorderOuter - movs r0, 0x17 - movs r1, 0x7 - movs r2, 0 - bl sub_814A7D0 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814A152: - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A16C -_0814A15C: - bl IsDma3ManagerBusyWithBgCopy + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r4, 0 + cmp r4, r5 + bcs _08153DA2 +_08153D90: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8153D48 + adds r0, r4, 0x1 lsls r0, 24 - cmp r0, 0 - bne _0814A16C - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1] -_0814A16C: - add sp, 0xC - pop {r4,r5} + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08153D90 +_08153DA2: + pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_814A0C8 + thumb_func_end sub_8153D80 - thumb_func_start sub_814A174 -sub_814A174: @ 814A174 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, _0814A18C @ =gUnknown_203F3D8 - ldr r0, [r5] - ldrh r4, [r0, 0x4] - cmp r4, 0x1 - beq _0814A1D0 - cmp r4, 0x1 - bgt _0814A190 - cmp r4, 0 - beq _0814A196 - b _0814A20E + thumb_func_start sub_8153DA8 +sub_8153DA8: @ 8153DA8 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08153DCC @ =gUnknown_203F3E4 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r2, _08153DD0 @ =gSprites + adds r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 .align 2, 0 -_0814A18C: .4byte gUnknown_203F3D8 -_0814A190: - cmp r4, 0x2 - beq _0814A1FE - b _0814A20E -_0814A196: - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x1A - movs r3, 0x4 - bl sub_814A754 - ldr r1, [r5] - strh r0, [r1, 0x12] +_08153DCC: .4byte gUnknown_203F3E4 +_08153DD0: .4byte gSprites + thumb_func_end sub_8153DA8 + + thumb_func_start nullsub_97 +nullsub_97: @ 8153DD4 + bx lr + thumb_func_end nullsub_97 + + thumb_func_start sub_8153DD8 +sub_8153DD8: @ 8153DD8 + push {r4-r7,lr} + movs r4, 0 + ldr r0, _08153E20 @ =gSprites + mov r12, r0 + movs r6, 0 + ldr r5, _08153E24 @ =gUnknown_203F43C +_08153DE4: + ldr r3, [r5] + lsls r1, r4, 1 + adds r0, r3, 0 + adds r0, 0x2A + adds r0, r1 + ldrh r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + lsls r0, r4, 4 + adds r0, 0x30 + strh r0, [r1, 0x20] + lsls r2, r4, 3 + movs r7, 0x8 + negs r7, r7 + adds r0, r7, 0 + subs r0, r2 + strh r0, [r1, 0x22] + adds r3, 0xC + adds r3, r4 + strb r6, [r3] + adds r0, r4, 0x1 lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814A1CC @ =gUnknown_841CC42 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - b _0814A1F4 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _08153DE4 + pop {r4-r7} + pop {r0} + bx r0 .align 2, 0 -_0814A1CC: .4byte gUnknown_841CC42 -_0814A1D0: - bl IsDma3ManagerBusyWithBgCopy +_08153E20: .4byte gSprites +_08153E24: .4byte gUnknown_203F43C + thumb_func_end sub_8153DD8 + + thumb_func_start sub_8153E28 +sub_8153E28: @ 8153E28 + push {r4-r6,lr} + sub sp, 0x28 + movs r4, 0xC0 + lsls r4, 1 + adds r0, r4, 0 + bl AllocZeroed + adds r6, r0, 0 + ldr r0, _08153EC8 @ =gUnknown_8478DA0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + ldr r0, _08153ECC @ =gUnknown_8477198 + adds r1, r6, 0 + bl LZ77UnCompWram + cmp r6, 0 + beq _08153EB8 + str r6, [sp, 0x18] + add r5, sp, 0x18 + movs r0, 0x80 + lsls r0, 9 + orrs r0, r4 + str r0, [r5, 0x4] + mov r1, sp + ldr r0, _08153ED0 @ =gUnknown_8478DA8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r4, _08153ED4 @ =gUnknown_203F43C + movs r0, 0x40 + bl AllocZeroed + str r0, [r4] + adds r0, r5, 0 + bl LoadSpriteSheet + add r0, sp, 0x20 + bl LoadSpritePalette + movs r4, 0 +_08153E7E: + lsls r1, r4, 20 + movs r0, 0xC0 + lsls r0, 14 + adds r1, r0 + asrs r1, 16 + lsls r0, r4, 3 + movs r3, 0x8 + negs r3, r3 + adds r2, r3, 0 + subs r2, r0 + lsls r2, 16 + asrs r2, 16 + mov r0, sp + movs r3, 0 + bl CreateSprite + ldr r1, _08153ED4 @ =gUnknown_203F43C + ldr r1, [r1] + lsls r2, r4, 1 + adds r1, 0x2A + adds r1, r2 lsls r0, 24 - cmp r0, 0 - bne _0814A20E - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x12] - movs r1, 0x1 - movs r2, 0xE - bl DrawTextBorderOuter - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814A1F4: - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A20E -_0814A1FE: - bl IsDma3ManagerBusyWithBgCopy + lsrs r0, 24 + strh r0, [r1] + adds r0, r4, 0x1 lsls r0, 24 - cmp r0, 0 - bne _0814A20E - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1] -_0814A20E: - add sp, 0xC - pop {r4,r5} + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _08153E7E +_08153EB8: + adds r0, r6, 0 + bl Free + add sp, 0x28 + pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_814A174 + .align 2, 0 +_08153EC8: .4byte gUnknown_8478DA0 +_08153ECC: .4byte gUnknown_8477198 +_08153ED0: .4byte gUnknown_8478DA8 +_08153ED4: .4byte gUnknown_203F43C + thumb_func_end sub_8153E28 - thumb_func_start sub_814A218 -sub_814A218: @ 814A218 + thumb_func_start sub_8153ED8 +sub_8153ED8: @ 8153ED8 push {r4,r5,lr} - ldr r5, _0814A22C @ =gUnknown_203F3D8 + movs r4, 0 +_08153EDC: + ldr r5, _08153F14 @ =gUnknown_203F43C ldr r0, [r5] - ldrh r4, [r0, 0x4] - cmp r4, 0 - beq _0814A230 - cmp r4, 0x1 - beq _0814A248 - b _0814A25E - .align 2, 0 -_0814A22C: .4byte gUnknown_203F3D8 -_0814A230: - bl sub_814A6CC - bl sub_81100E8 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A25E -_0814A248: - bl sub_814A6FC + lsls r1, r4, 1 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08153F18 @ =gSprites + adds r0, r1 cmp r0, 0 - bne _0814A25E - bl IsDma3ManagerBusyWithBgCopy + beq _08153EFA + bl DestroySpriteAndFreeResources +_08153EFA: + adds r0, r4, 0x1 lsls r0, 24 - cmp r0, 0 - bne _0814A25E + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _08153EDC ldr r0, [r5] - str r4, [r0] -_0814A25E: + bl Free + movs r0, 0 + str r0, [r5] pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_814A218 - - thumb_func_start sub_814A264 -sub_814A264: @ 814A264 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, _0814A27C @ =gUnknown_203F3D8 - ldr r0, [r5] - ldrh r4, [r0, 0x4] - cmp r4, 0x1 - beq _0814A2C0 - cmp r4, 0x1 - bgt _0814A280 - cmp r4, 0 - beq _0814A286 - b _0814A2FE .align 2, 0 -_0814A27C: .4byte gUnknown_203F3D8 -_0814A280: - cmp r4, 0x2 - beq _0814A2EE - b _0814A2FE -_0814A286: - movs r0, 0x2 - movs r1, 0x8 - movs r2, 0x16 - movs r3, 0x4 - bl sub_814A754 - ldr r1, [r5] - strh r0, [r1, 0x12] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814A2BC @ =gUnknown_841CC11 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 +_08153F14: .4byte gUnknown_203F43C +_08153F18: .4byte gSprites + thumb_func_end sub_8153ED8 + + thumb_func_start sub_8153F1C +sub_8153F1C: @ 8153F1C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, 0x12] + movs r6, 0 + ldr r0, _08153FAC @ =gUnknown_203F43C + mov r9, r0 +_08153F2E: + mov r7, r9 + ldr r2, [r7] + lsls r5, r6, 1 + adds r0, r2, 0 + adds r0, 0x2A + adds r0, r5 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08153FB0 @ =gSprites + adds r4, r0, r1 + adds r0, r2, 0 + adds r0, 0x16 + adds r0, r5 movs r1, 0x2 - bl CopyWindowToVram - b _0814A2E4 + strh r1, [r0] + adds r0, r2, 0 + adds r0, 0xC + adds r2, r0, r6 + ldrb r1, [r2] + cmp r1, 0 + beq _08153F64 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r0, 0x8 + beq _08153F9A +_08153F64: + movs r3, 0x1 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r0, 0x8 + bne _08153F8A + cmp r1, 0 + bne _08153F9A + strb r3, [r2] + mov r1, r9 + ldr r0, [r1] + adds r0, 0x16 + adds r0, r5 + ldr r1, _08153FB4 @ =0x0000fff0 + strh r1, [r0] + movs r0, 0x1E + str r3, [sp] + bl PlaySE + ldr r3, [sp] +_08153F8A: + mov r7, r9 + ldr r0, [r7] + adds r0, 0x16 + adds r0, r5 + ldrh r0, [r0] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_08153F9A: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x9 + bls _08153F2E + cmp r3, 0 + bne _08153FB8 + movs r0, 0x1 + b _08153FBA .align 2, 0 -_0814A2BC: .4byte gUnknown_841CC11 -_0814A2C0: - bl IsDma3ManagerBusyWithBgCopy +_08153FAC: .4byte gUnknown_203F43C +_08153FB0: .4byte gSprites +_08153FB4: .4byte 0x0000fff0 +_08153FB8: + movs r0, 0 +_08153FBA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8153F1C + + thumb_func_start sub_8153FC8 +sub_8153FC8: @ 8153FC8 + push {r4-r6,lr} lsls r0, 24 - cmp r0, 0 - bne _0814A2FE - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x12] + lsrs r5, r0, 24 + cmp r5, 0xA + bls _08154004 + movs r4, 0 +_08153FD4: + ldr r0, _08153FFC @ =gUnknown_203F43C + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08154000 @ =gSprites + adds r0, r1 movs r1, 0x1 - movs r2, 0xE - bl DrawTextBorderOuter - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814A2E4: - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A2FE -_0814A2EE: - bl IsDma3ManagerBusyWithBgCopy + bl StartSpriteAnim + adds r0, r4, 0x1 lsls r0, 24 - cmp r0, 0 - bne _0814A2FE - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1] -_0814A2FE: - add sp, 0xC - pop {r4,r5} + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _08153FD4 + b _081540CE + .align 2, 0 +_08153FFC: .4byte gUnknown_203F43C +_08154000: .4byte gSprites +_08154004: + movs r4, 0 + movs r0, 0xA + subs r0, r5 + cmp r4, r0 + bge _081540CA + ldr r6, _08154034 @ =gSprites +_08154010: + cmp r5, 0x6 + bls _08154078 + ldr r0, _08154038 @ =gUnknown_203F43C + ldr r2, [r0] + ldr r1, _0815403C @ =0x0000fffa + adds r0, r1, 0 + ldrh r1, [r2, 0x3E] + adds r0, r1 + adds r0, r5 + movs r1, 0 + strh r0, [r2, 0x3E] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bls _08154040 + strh r1, [r2, 0x3E] + b _08154092 + .align 2, 0 +_08154034: .4byte gSprites +_08154038: .4byte gUnknown_203F43C +_0815403C: .4byte 0x0000fffa +_08154040: + cmp r0, 0xA + bls _0815405E + lsls r1, r4, 1 + adds r0, r2, 0 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x2 + bl StartSpriteAnim + b _08154092 +_0815405E: + lsls r1, r4, 1 + adds r0, r2, 0 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + bl StartSpriteAnim + b _08154092 +_08154078: + ldr r0, _081540A4 @ =gUnknown_203F43C + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + bl StartSpriteAnim +_08154092: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0xA + subs r0, r5 + cmp r4, r0 + blt _08154010 + b _081540CA + .align 2, 0 +_081540A4: .4byte gUnknown_203F43C +_081540A8: + ldr r0, _081540D4 @ =gUnknown_203F43C + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x2A + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081540D8 @ =gSprites + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081540CA: + cmp r4, 0x9 + bls _081540A8 +_081540CE: + pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_814A264 - - thumb_func_start sub_814A308 -sub_814A308: @ 814A308 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, _0814A320 @ =gUnknown_203F3D8 - ldr r0, [r5] - ldrh r4, [r0, 0x4] - cmp r4, 0x1 - beq _0814A364 - cmp r4, 0x1 - bgt _0814A324 - cmp r4, 0 - beq _0814A32A - b _0814A3A2 .align 2, 0 -_0814A320: .4byte gUnknown_203F3D8 -_0814A324: - cmp r4, 0x2 - beq _0814A392 - b _0814A3A2 -_0814A32A: - movs r0, 0x7 - movs r1, 0xA - movs r2, 0x10 - movs r3, 0x2 - bl sub_814A754 - ldr r1, [r5] - strh r0, [r1, 0x12] +_081540D4: .4byte gUnknown_203F43C +_081540D8: .4byte gSprites + thumb_func_end sub_8153FC8 + + thumb_func_start sub_81540DC +sub_81540DC: @ 81540DC + push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _0814A360 @ =gUnknown_841CC64 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - b _0814A388 - .align 2, 0 -_0814A360: .4byte gUnknown_841CC64 -_0814A364: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814A3A2 - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x12] + ldr r7, _08154120 @ =gSprites movs r1, 0x1 - movs r2, 0xE - bl DrawTextBorderOuter - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814A388: - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A3A2 -_0814A392: - bl IsDma3ManagerBusyWithBgCopy + ands r0, r1 + lsls r4, r0, 2 + movs r6, 0x5 + negs r6, r6 + ldr r5, _08154124 @ =gUnknown_203F43C +_081540F2: + ldr r0, [r5] + lsls r1, r3, 1 + adds r0, 0x2A + adds r0, r1 + ldrh r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + adds r0, r3, 0x1 lsls r0, 24 - cmp r0, 0 - bne _0814A3A2 - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1] -_0814A3A2: - add sp, 0xC - pop {r4,r5} + lsrs r3, r0, 24 + cmp r3, 0x9 + bls _081540F2 + pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_814A308 + .align 2, 0 +_08154120: .4byte gSprites +_08154124: .4byte gUnknown_203F43C + thumb_func_end sub_81540DC - thumb_func_start sub_814A3AC -sub_814A3AC: @ 814A3AC + thumb_func_start sub_8154128 +sub_8154128: @ 8154128 push {r4,r5,lr} - ldr r5, _0814A3C0 @ =gUnknown_203F3D8 - ldr r0, [r5] - ldrh r4, [r0, 0x4] + sub sp, 0x10 + movs r5, 0x90 + lsls r5, 3 + adds r0, r5, 0 + bl AllocZeroed + adds r4, r0, 0 + ldr r0, _08154174 @ =gUnknown_8478DCC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + ldr r0, _08154178 @ =gUnknown_8475968 + adds r1, r4, 0 + bl LZ77UnCompWram cmp r4, 0 - beq _0814A3C4 - cmp r4, 0x1 - beq _0814A3D2 - b _0814A3DE - .align 2, 0 -_0814A3C0: .4byte gUnknown_203F3D8 -_0814A3C4: - bl sub_814B43C - ldr r1, [r5] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _0814A3DE -_0814A3D2: - bl sub_814B460 - cmp r0, 0 - bne _0814A3DE - ldr r0, [r5] - str r4, [r0] -_0814A3DE: + beq _0815415E + str r4, [sp] + movs r0, 0x80 + lsls r0, 10 + orrs r0, r5 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet +_0815415E: + add r0, sp, 0x8 + bl LoadSpritePalette + adds r0, r4, 0 + bl Free + add sp, 0x10 pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_814A3AC - - thumb_func_start sub_814A3E4 -sub_814A3E4: @ 814A3E4 - push {lr} - ldr r1, _0814A404 @ =gUnknown_203F3D8 - ldr r0, [r1] - movs r2, 0 - strb r2, [r0, 0xA] - ldr r0, [r1] - strb r2, [r0, 0xB] - ldr r2, [r1] - movs r0, 0x6 - strb r0, [r2, 0xC] - ldr r0, [r1] - ldrb r0, [r0, 0xC] - bl sub_814A95C - pop {r0} - bx r0 .align 2, 0 -_0814A404: .4byte gUnknown_203F3D8 - thumb_func_end sub_814A3E4 +_08154174: .4byte gUnknown_8478DCC +_08154178: .4byte gUnknown_8475968 + thumb_func_end sub_8154128 - thumb_func_start sub_814A408 -sub_814A408: @ 814A408 - push {r4,lr} - ldr r0, _0814A41C @ =gUnknown_203F3D8 - ldr r2, [r0] - ldrb r3, [r2, 0xA] - adds r4, r0, 0 - cmp r3, 0 - beq _0814A420 - cmp r3, 0x1 - beq _0814A45A - b _0814A45E - .align 2, 0 -_0814A41C: .4byte gUnknown_203F3D8 -_0814A420: - ldrb r0, [r2, 0xB] - adds r0, 0x1 - strb r0, [r2, 0xB] - ldr r1, [r4] - ldrb r0, [r1, 0xB] - cmp r0, 0xA - bls _0814A44A - strb r3, [r1, 0xB] - ldr r0, [r4] - ldrb r1, [r0, 0xC] - adds r1, 0x1 - strb r1, [r0, 0xC] - ldr r1, [r4] - ldrb r0, [r1, 0xC] - cmp r0, 0x9 - bls _0814A44A - strb r3, [r1, 0xC] - ldr r1, [r4] - ldrb r0, [r1, 0xA] - adds r0, 0x1 - strb r0, [r1, 0xA] -_0814A44A: - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl sub_814A95C - ldr r0, [r4] - ldrb r0, [r0, 0xC] - cmp r0, 0x7 - bne _0814A45E -_0814A45A: - movs r0, 0 - b _0814A460 -_0814A45E: - movs r0, 0x1 -_0814A460: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814A408 - - thumb_func_start sub_814A468 -sub_814A468: @ 814A468 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r5, _0814A52C @ =gUnknown_203F3D8 - ldr r1, [r5] - adds r1, 0x26 - adds r0, r4, 0 - bl CopyItemName - ldr r0, [r5] - adds r0, 0x66 - adds r1, r6, 0 - movs r2, 0 + thumb_func_start sub_815417C +sub_815417C: @ 815417C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x30 + mov r1, sp + ldr r0, _0815420C @ =gUnknown_8478DDC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + add r2, sp, 0x18 + adds r1, r2, 0 + ldr r0, _08154210 @ =gUnknown_8478DF4 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + movs r5, 0 + mov r9, r2 +_081541A4: + movs r0, 0x4 + bl AllocZeroed + ldr r1, _08154214 @ =gUnknown_203F400 + lsls r4, r5, 2 + adds r4, r1 + str r0, [r4] + lsls r0, r5, 3 + lsls r1, r5, 4 + adds r1, r0 + mov r0, sp + movs r2, 0x8 movs r3, 0x1 - bl ConvertIntToDecimalStringN - subs r4, 0x85 - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x29 - bhi _0814A4C2 - cmp r6, 0x1 - bls _0814A4C2 - ldr r0, [r5] - adds r0, 0x26 - bl StringLength - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0814A4C2 - ldr r0, [r5] - adds r0, r1, r0 - adds r0, 0x25 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r5] - adds r0, 0x26 - ldr r1, _0814A530 @ =gUnknown_846D94C - bl StringAppend -_0814A4C2: - bl UnkTextUtil_Reset - ldr r4, _0814A52C @ =gUnknown_203F3D8 - ldr r1, [r4] - adds r1, 0x26 - movs r0, 0 - bl UnkTextUtil_SetPtrI + bl CreateSprite ldr r1, [r4] - adds r1, 0x66 - movs r0, 0x1 - bl UnkTextUtil_SetPtrI - ldr r0, [r4] - adds r0, 0xA6 - ldr r1, _0814A534 @ =gUnknown_841CBA9 - bl UnkTextUtil_StringExpandPlaceholders - movs r0, 0x4 - movs r1, 0x8 - movs r2, 0x16 - movs r3, 0x4 - bl sub_814A754 - ldr r2, [r4] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1] + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81542EC + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xA + bls _081541A4 movs r5, 0 + ldr r7, _08154218 @ =gUnknown_203F42C + ldr r4, _0815421C @ =gUnknown_8478DD4 + mov r8, r4 +_081541E4: + movs r0, 0x4 + bl AllocZeroed + lsls r1, r5, 2 + adds r4, r1, r7 + str r0, [r4] + adds r6, r1, 0 + cmp r5, 0x3 + bne _08154220 + mov r0, r8 + movs r2, 0x6 + ldrsh r1, [r0, r2] + mov r0, r9 + movs r2, 0x39 movs r3, 0 - strh r0, [r2, 0x12] + bl CreateSprite + ldr r1, [r7, 0xC] + b _08154234 + .align 2, 0 +_0815420C: .4byte gUnknown_8478DDC +_08154210: .4byte gUnknown_8478DF4 +_08154214: .4byte gUnknown_203F400 +_08154218: .4byte gUnknown_203F42C +_0815421C: .4byte gUnknown_8478DD4 +_08154220: + lsls r0, r5, 1 + add r0, r8 + movs r3, 0 + ldrsh r1, [r0, r3] + mov r0, r9 + movs r2, 0x3C + movs r3, 0 + bl CreateSprite + ldr r1, [r4] +_08154234: lsls r0, 24 lsrs r0, 24 - adds r2, 0xA6 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r3, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized - ldr r0, [r4] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _0814A538 @ =0x00000101 - strh r0, [r1, 0x14] - strb r5, [r1, 0xD] - add sp, 0xC - pop {r4-r6} + strh r0, [r1] + adds r0, r6, r7 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08154270 @ =gSprites + adds r0, r1 + adds r1, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081541E4 + movs r0, 0x1 + bl sub_8154324 + add sp, 0x30 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814A52C: .4byte gUnknown_203F3D8 -_0814A530: .4byte gUnknown_846D94C -_0814A534: .4byte gUnknown_841CBA9 -_0814A538: .4byte 0x00000101 - thumb_func_end sub_814A468 +_08154270: .4byte gSprites + thumb_func_end sub_815417C - thumb_func_start sub_814A53C -sub_814A53C: @ 814A53C + thumb_func_start sub_8154274 +sub_8154274: @ 8154274 push {r4-r6,lr} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0814A5AC @ =gUnknown_203F3D8 - ldr r1, [r4] - adds r1, 0x26 - bl CopyItemName - bl UnkTextUtil_Reset - ldr r1, [r4] - adds r1, 0x26 - movs r0, 0 - bl UnkTextUtil_SetPtrI - ldr r0, [r4] - adds r0, 0xA6 - ldr r1, _0814A5B0 @ =gUnknown_841CBCA - bl UnkTextUtil_StringExpandPlaceholders - movs r0, 0x4 - movs r1, 0x8 - movs r2, 0x16 - movs r3, 0x4 - bl sub_814A754 - ldr r2, [r4] - movs r6, 0 movs r5, 0 - strh r0, [r2, 0x12] - lsls r0, 24 - lsrs r0, 24 - adds r2, 0xA6 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized + ldr r6, _081542E0 @ =gUnknown_203F400 +_0815427A: + lsls r0, r5, 2 + adds r4, r0, r6 ldr r0, [r4] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081542E4 @ =gSprites + adds r0, r1 + cmp r0, 0 + beq _08154294 + bl DestroySprite +_08154294: ldr r0, [r4] - strh r5, [r0, 0x14] - strb r6, [r0, 0xD] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814A5AC: .4byte gUnknown_203F3D8 -_0814A5B0: .4byte gUnknown_841CBCA - thumb_func_end sub_814A53C - - thumb_func_start sub_814A5B4 -sub_814A5B4: @ 814A5B4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0814A624 @ =gUnknown_203F3D8 - ldr r1, [r4] - adds r1, 0x26 - bl CopyItemName - bl UnkTextUtil_Reset - ldr r1, [r4] - adds r1, 0x26 + bl Free movs r0, 0 - bl UnkTextUtil_SetPtrI - ldr r0, [r4] - adds r0, 0xA6 - ldr r1, _0814A628 @ =gUnknown_841CBE4 - bl UnkTextUtil_StringExpandPlaceholders - movs r0, 0x4 - movs r1, 0x9 - movs r2, 0x16 - movs r3, 0x2 - bl sub_814A754 - ldr r2, [r4] - movs r6, 0 - movs r5, 0 - strh r0, [r2, 0x12] + str r0, [r4] + adds r0, r5, 0x1 lsls r0, 24 - lsrs r0, 24 - adds r2, 0xA6 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized + lsrs r5, r0, 24 + cmp r5, 0xA + bls _0815427A + movs r5, 0 + ldr r6, _081542E8 @ =gUnknown_203F42C +_081542AC: + lsls r0, r5, 2 + adds r4, r0, r6 ldr r0, [r4] - ldrb r0, [r0, 0x12] - movs r1, 0x2 - bl CopyWindowToVram + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081542E4 @ =gSprites + adds r0, r1 + cmp r0, 0 + beq _081542C6 + bl DestroySprite +_081542C6: ldr r0, [r4] - strh r5, [r0, 0x14] - strb r6, [r0, 0xD] - add sp, 0xC + bl Free + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081542AC pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0814A624: .4byte gUnknown_203F3D8 -_0814A628: .4byte gUnknown_841CBE4 - thumb_func_end sub_814A5B4 +_081542E0: .4byte gUnknown_203F400 +_081542E4: .4byte gSprites +_081542E8: .4byte gUnknown_203F42C + thumb_func_end sub_8154274 - thumb_func_start sub_814A62C -sub_814A62C: @ 814A62C - push {r4,lr} - ldr r4, _0814A644 @ =gUnknown_203F3D8 - ldr r0, [r4] - ldrb r0, [r0, 0xD] - cmp r0, 0x1 - beq _0814A680 - cmp r0, 0x1 - bgt _0814A648 - cmp r0, 0 - beq _0814A652 - b _0814A6C4 - .align 2, 0 -_0814A644: .4byte gUnknown_203F3D8 -_0814A648: - cmp r0, 0x2 - beq _0814A6A6 - cmp r0, 0x3 - beq _0814A6BA - b _0814A6C4 -_0814A652: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814A6C4 - ldr r0, [r4] - ldrb r0, [r0, 0x12] - bl PutWindowTilemap - ldr r0, [r4] - ldrb r0, [r0, 0x12] - movs r1, 0x1 - movs r2, 0xE - bl DrawTextBorderOuter - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r4] - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] - b _0814A6C4 -_0814A680: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814A6C4 - ldr r1, [r4] - ldrh r0, [r1, 0x14] - cmp r0, 0 - bne _0814A698 - ldrb r0, [r1, 0xD] - adds r0, 0x2 - b _0814A6B8 -_0814A698: - ldrh r0, [r1, 0x14] - bl PlayFanfare - ldr r1, [r4] - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] -_0814A6A6: - bl IsFanfareTaskInactive + thumb_func_start sub_81542EC +sub_81542EC: @ 81542EC lsls r0, 24 - cmp r0, 0 - beq _0814A6C4 - ldr r0, _0814A6C0 @ =gUnknown_203F3D8 - ldr r1, [r0] - ldrb r0, [r1, 0xD] - adds r0, 0x1 -_0814A6B8: - strb r0, [r1, 0xD] -_0814A6BA: - movs r0, 0 - b _0814A6C6 - .align 2, 0 -_0814A6C0: .4byte gUnknown_203F3D8 -_0814A6C4: + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0815431C @ =gSprites + ldr r2, _08154320 @ =gUnknown_203F400 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ldrh r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + adds r2, 0x3E movs r0, 0x1 -_0814A6C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814A62C + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_0815431C: .4byte gSprites +_08154320: .4byte gUnknown_203F400 + thumb_func_end sub_81542EC - thumb_func_start sub_814A6CC -sub_814A6CC: @ 814A6CC - push {r4,lr} - ldr r4, _0814A6F8 @ =gUnknown_203F3D8 - ldr r0, [r4] - ldrh r0, [r0, 0x12] - cmp r0, 0xFF - beq _0814A6F0 + thumb_func_start sub_8154324 +sub_8154324: @ 8154324 + push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 - bl rbox_fill_rectangle - ldr r0, [r4] - ldrb r0, [r0, 0x12] + movs r3, 0 + ldr r7, _08154368 @ =gSprites + ldr r6, _0815436C @ =gUnknown_203F42C movs r1, 0x1 - bl CopyWindowToVram - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0xD] -_0814A6F0: - pop {r4} + ands r0, r1 + lsls r4, r0, 2 + movs r5, 0x5 + negs r5, r5 +_0815433A: + lsls r0, r3, 2 + adds r0, r6 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _0815433A + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814A6F8: .4byte gUnknown_203F3D8 - thumb_func_end sub_814A6CC +_08154368: .4byte gSprites +_0815436C: .4byte gUnknown_203F42C + thumb_func_end sub_8154324 - thumb_func_start sub_814A6FC -sub_814A6FC: @ 814A6FC - push {r4,lr} - ldr r4, _0814A70C @ =gUnknown_203F3D8 - ldr r1, [r4] - ldrh r0, [r1, 0x12] - cmp r0, 0xFF - bne _0814A710 -_0814A708: - movs r0, 0 - b _0814A73C - .align 2, 0 -_0814A70C: .4byte gUnknown_203F3D8 -_0814A710: - ldrb r0, [r1, 0xD] - cmp r0, 0 - bne _0814A736 - bl IsDma3ManagerBusyWithBgCopy + thumb_func_start sub_8154370 +sub_8154370: @ 8154370 lsls r0, 24 - cmp r0, 0 - bne _0814A73A - ldr r0, [r4] - ldrb r0, [r0, 0x12] - bl RemoveWindow - ldr r1, [r4] - movs r0, 0xFF - strh r0, [r1, 0x12] - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] - b _0814A708 -_0814A736: - cmp r0, 0x1 - beq _0814A708 -_0814A73A: - movs r0, 0x1 -_0814A73C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814A6FC + lsls r1, 24 + ldr r3, _08154390 @ =gSprites + ldr r2, _08154394 @ =gUnknown_203F400 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + lsrs r1, 21 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_08154390: .4byte gSprites +_08154394: .4byte gUnknown_203F400 + thumb_func_end sub_8154370 - thumb_func_start sub_814A744 -sub_814A744: @ 814A744 + thumb_func_start sub_8154398 +sub_8154398: @ 8154398 push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_814A744 - - thumb_func_start sub_814A754 -sub_814A754: @ 814A754 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _0814A7BC @ =0xffffff00 - ldr r4, [sp] - ands r4, r6 - lsls r0, 24 - lsrs r0, 16 - ldr r5, _0814A7C0 @ =0xffff00ff - ands r4, r5 - orrs r4, r0 + lsls r0, 16 lsls r1, 24 - lsrs r1, 8 - ldr r0, _0814A7C4 @ =0xff00ffff - ands r4, r0 - orrs r4, r1 - lsls r2, 24 - ldr r0, _0814A7C8 @ =0x00ffffff - ands r4, r0 - orrs r4, r2 - str r4, [sp] - lsls r3, 24 - lsrs r3, 24 - ldr r0, [sp, 0x4] - ands r0, r6 - orrs r0, r3 - ands r0, r5 - movs r1, 0xF0 - lsls r1, 4 - orrs r0, r1 - ldr r1, _0814A7CC @ =0x0000ffff - ands r0, r1 - movs r1, 0x86 - lsls r1, 15 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl AddWindow - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r4, 0 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 + lsrs r1, 24 + ldr r2, _081543BC @ =gUnknown_203F400 + lsrs r0, 14 + adds r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r2, _081543C0 @ =gSprites + adds r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 .align 2, 0 -_0814A7BC: .4byte 0xffffff00 -_0814A7C0: .4byte 0xffff00ff -_0814A7C4: .4byte 0xff00ffff -_0814A7C8: .4byte 0x00ffffff -_0814A7CC: .4byte 0x0000ffff - thumb_func_end sub_814A754 +_081543BC: .4byte gUnknown_203F400 +_081543C0: .4byte gSprites + thumb_func_end sub_8154398 - thumb_func_start sub_814A7D0 -sub_814A7D0: @ 814A7D0 - push {r4,r5,lr} - sub sp, 0x14 - lsls r2, 24 - lsrs r2, 24 - ldr r5, _0814A838 @ =0xffffff00 - ldr r3, [sp, 0xC] - ands r3, r5 + thumb_func_start sub_81543C4 +sub_81543C4: @ 81543C4 lsls r0, 24 - lsrs r0, 16 - ldr r4, _0814A83C @ =0xffff00ff - ands r3, r4 - orrs r3, r0 - lsls r1, 24 - lsrs r1, 8 - ldr r0, _0814A840 @ =0xff00ffff - ands r3, r0 - orrs r3, r1 - ldr r0, _0814A844 @ =0x00ffffff - ands r3, r0 - movs r0, 0xC0 - lsls r0, 19 - orrs r3, r0 - str r3, [sp, 0xC] - ldr r0, [sp, 0x10] - ands r0, r5 - movs r1, 0x4 - orrs r0, r1 - ands r0, r4 - movs r1, 0x80 + lsrs r0, 24 + ldr r1, _081543E4 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + lsls r1, r0, 2 + adds r1, r0 lsls r1, 2 - orrs r0, r1 - ldr r1, _0814A848 @ =0x0000ffff - ands r0, r1 - movs r1, 0xAC - lsls r1, 14 - orrs r0, r1 - str r0, [sp, 0x10] - movs r0, 0xA - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - str r2, [sp, 0x8] - add r0, sp, 0xC - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 + adds r1, 0x32 + strh r1, [r2, 0x20] + movs r0, 0x32 + strh r0, [r2, 0x22] + bx lr .align 2, 0 -_0814A838: .4byte 0xffffff00 -_0814A83C: .4byte 0xffff00ff -_0814A840: .4byte 0xff00ffff -_0814A844: .4byte 0x00ffffff -_0814A848: .4byte 0x0000ffff - thumb_func_end sub_814A7D0 +_081543E4: .4byte gSprites + thumb_func_end sub_81543C4 - thumb_func_start sub_814A84C -sub_814A84C: @ 814A84C - push {r4,lr} - sub sp, 0x10 - ldr r1, _0814A8AC @ =gUnknown_846D950 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - add r0, sp, 0xC - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, _0814A8B0 @ =gUnknown_841CB52 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl box_print - add r0, sp, 0xC - str r0, [sp] - str r4, [sp, 0x4] - ldr r0, _0814A8B4 @ =gUnknown_841CB5A - str r0, [sp, 0x8] - movs r0, 0x1 + thumb_func_start sub_81543E8 +sub_81543E8: @ 81543E8 + push {r4-r7,lr} + adds r4, r0, 0 + adds r0, 0x42 movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl box_print - add sp, 0x10 - pop {r4} + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _0815442A + movs r3, 0 + ldr r7, _08154430 @ =gUnknown_8478E0C + ldr r6, _08154434 @ =gUnknown_203F3F8 + movs r5, 0 +_081543FE: + lsls r0, r3, 2 + adds r2, r0, r6 + ldr r1, [r2] + ldrh r0, [r1, 0x2] + adds r0, 0x1 + strh r0, [r1, 0x2] + adds r1, r3, r7 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1] + cmp r0, r1 + bls _08154420 + ldrh r0, [r4, 0x20] + subs r0, 0x1 + strh r0, [r4, 0x20] + ldr r0, [r2] + strh r5, [r0, 0x2] +_08154420: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _081543FE +_0815442A: + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814A8AC: .4byte gUnknown_846D950 -_0814A8B0: .4byte gUnknown_841CB52 -_0814A8B4: .4byte gUnknown_841CB5A - thumb_func_end sub_814A84C +_08154430: .4byte gUnknown_8478E0C +_08154434: .4byte gUnknown_203F3F8 + thumb_func_end sub_81543E8 - thumb_func_start sub_814A8B8 -sub_814A8B8: @ 814A8B8 + thumb_func_start sub_8154438 +sub_8154438: @ 8154438 push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - bl sub_81499A4 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r1, _0814A934 @ =gUnknown_846D9D4 - subs r0, 0x2 - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - movs r6, 0 - cmp r6, r10 - bge _0814A922 - ldr r0, _0814A938 @ =gUnknown_82349CC + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x28 + movs r4, 0x80 + lsls r4, 3 + adds r0, r4, 0 + bl AllocZeroed + adds r6, r0, 0 + ldr r0, _081544DC @ =gUnknown_8478E18 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + ldr r0, _081544E0 @ =gUnknown_847722C + adds r1, r6, 0 + bl LZ77UnCompWram + cmp r6, 0 + beq _081544C6 + str r6, [sp, 0x18] + add r0, sp, 0x18 + movs r1, 0xA0 + lsls r1, 11 + orrs r1, r4 + str r1, [r0, 0x4] + mov r2, sp + ldr r1, _081544E4 @ =gUnknown_8478E20 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + bl LoadSpriteSheet + add r0, sp, 0x20 + bl LoadSpritePalette + movs r5, 0 + ldr r7, _081544E8 @ =gUnknown_8478E0E + adds r0, r7, 0x2 mov r9, r0 - ldr r1, _0814A93C @ =gUnknown_203F3D8 + ldr r1, _081544EC @ =gUnknown_203F3F8 mov r8, r1 -_0814A8E6: - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_81499C0 - adds r1, r0, 0 - ldrh r0, [r1] - lsls r0, 2 - add r0, r9 - ldrb r3, [r0, 0x1] - mov r2, r8 - ldr r0, [r2] - movs r7, 0 - ldrsh r2, [r5, r7] - adds r3, 0x70 - str r4, [sp] - bl sub_814ADCC - mov r1, r8 - ldr r0, [r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x70 - adds r3, r4, 0 - bl sub_814B240 - adds r5, 0x2 - adds r6, 0x1 - cmp r6, r10 - blt _0814A8E6 -_0814A922: - add sp, 0x4 - pop {r3-r5} +_08154492: + movs r0, 0x4 + bl AllocZeroed + lsls r2, r5, 2 + mov r3, r8 + adds r4, r2, r3 + str r0, [r4] + adds r0, r2, r7 + movs r3, 0 + ldrsh r1, [r0, r3] + add r2, r9 + movs r0, 0 + ldrsh r2, [r2, r0] + mov r0, sp + movs r3, 0x4 + bl CreateSprite + ldr r1, [r4] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _08154492 +_081544C6: + adds r0, r6, 0 + bl Free + add sp, 0x28 + pop {r3,r4} mov r8, r3 mov r9, r4 - mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814A934: .4byte gUnknown_846D9D4 -_0814A938: .4byte gUnknown_82349CC -_0814A93C: .4byte gUnknown_203F3D8 - thumb_func_end sub_814A8B8 - - thumb_func_start sub_814A940 -sub_814A940: @ 814A940 - ldr r2, _0814A954 @ =gUnknown_203F3D8 - ldr r2, [r2] - lsls r0, 2 - ldr r3, _0814A958 @ =0x000081a8 - adds r2, r3 - adds r2, r0 - ldr r0, [r2] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_0814A954: .4byte gUnknown_203F3D8 -_0814A958: .4byte 0x000081a8 - thumb_func_end sub_814A940 +_081544DC: .4byte gUnknown_8478E18 +_081544E0: .4byte gUnknown_847722C +_081544E4: .4byte gUnknown_8478E20 +_081544E8: .4byte gUnknown_8478E0E +_081544EC: .4byte gUnknown_203F3F8 + thumb_func_end sub_8154438 - thumb_func_start sub_814A95C -sub_814A95C: @ 814A95C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0814A984 @ =gUnknown_203F3D8 + thumb_func_start sub_81544F0 +sub_81544F0: @ 81544F0 + push {r4-r7,lr} + movs r3, 0 + ldr r0, _08154534 @ =gUnknown_203F3F8 + mov r12, r0 + ldr r4, _08154538 @ =gUnknown_8478E0E + adds r7, r4, 0x2 + ldr r6, _0815453C @ =gSprites + movs r5, 0x1 +_08154500: + lsls r2, r3, 2 + mov r1, r12 + adds r0, r2, r1 ldr r0, [r0] - adds r1, r4, 0 - bl sub_814B348 - ldr r0, _0814A988 @ =gUnknown_846D953 - adds r4, r0 - ldrb r0, [r4] - lsls r1, r0, 2 + ldrh r0, [r0] + lsls r1, r0, 4 adds r1, r0 - lsls r1, 13 - movs r0, 0x2 + lsls r1, 2 + adds r1, r6 + adds r0, r1, 0 + adds r0, 0x42 + strh r5, [r0] + adds r0, r2, r4 + ldrh r0, [r0] + strh r0, [r1, 0x20] + adds r2, r7 + ldrh r0, [r2] + strh r0, [r1, 0x22] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _08154500 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08154534: .4byte gUnknown_203F3F8 +_08154538: .4byte gUnknown_8478E0E +_0815453C: .4byte gSprites + thumb_func_end sub_81544F0 + + thumb_func_start sub_8154540 +sub_8154540: @ 8154540 + push {r4,r5,lr} movs r2, 0 - bl ChangeBgY - pop {r4} + ldr r5, _08154570 @ =gUnknown_203F3F8 + ldr r4, _08154574 @ =gSprites + movs r3, 0 +_0815454A: + lsls r0, r2, 2 + adds r0, r5 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x42 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1 + bls _0815454A + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0814A984: .4byte gUnknown_203F3D8 -_0814A988: .4byte gUnknown_846D953 - thumb_func_end sub_814A95C +_08154570: .4byte gUnknown_203F3F8 +_08154574: .4byte gSprites + thumb_func_end sub_8154540 - thumb_func_start sub_814A98C -sub_814A98C: @ 814A98C + thumb_func_start sub_8154578 +sub_8154578: @ 8154578 push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 movs r5, 0 - movs r6, 0 -_0814A996: - movs r0, 0x1 - ands r0, r4 + ldr r6, _081545B4 @ =gUnknown_203F3F8 +_0815457E: + lsls r0, r5, 2 + adds r4, r0, r6 + ldr r0, [r4] + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081545B8 @ =gSprites + adds r0, r1 cmp r0, 0 - beq _0814A9AA - ldr r0, _0814A9C4 @ =gUnknown_203F3D8 - ldr r0, [r0] - adds r1, r5, 0 - bl sub_814AF0C - adds r6, 0x1 -_0814A9AA: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x4 - ble _0814A996 - subs r0, r6, 0x2 + beq _08154598 + bl DestroySprite +_08154598: + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 lsls r0, 24 - lsrs r0, 24 - bl sub_814ACCC - adds r0, r6, 0 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0815457E pop {r4-r6} - pop {r1} - bx r1 + pop {r0} + bx r0 .align 2, 0 -_0814A9C4: .4byte gUnknown_203F3D8 - thumb_func_end sub_814A98C +_081545B4: .4byte gUnknown_203F3F8 +_081545B8: .4byte gSprites + thumb_func_end sub_8154578 - thumb_func_start sub_814A9C8 -sub_814A9C8: @ 814A9C8 - push {r4,lr} - sub sp, 0x10 - mov r1, sp - movs r0, 0x40 + thumb_func_start sub_81545BC +sub_81545BC: @ 81545BC + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + ldr r7, _08154600 @ =gSprites + ldr r6, _08154604 @ =gUnknown_203F3F8 + movs r1, 0x1 + ands r0, r1 + lsls r4, r0, 2 + movs r5, 0x5 + negs r5, r5 +_081545D2: + lsls r0, r3, 2 + adds r0, r6 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + orrs r0, r4 strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x8 - strb r0, [r1, 0x2] - movs r0, 0x6C - strh r0, [r1, 0x4] - movs r4, 0x6 - strh r4, [r1, 0x6] - ldr r0, _0814AA1C @ =gUnknown_846D960 - str r0, [sp, 0x8] - ldr r0, _0814AA20 @ =gUnknown_846D968 - str r0, [sp, 0xC] - movs r0, 0x2 - bl sub_815C980 - movs r0, 0 - movs r1, 0 - mov r2, sp - bl sub_815CA40 - mov r1, sp - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x1E - strh r0, [r1, 0x4] - mov r0, sp - strh r4, [r0, 0x6] - movs r0, 0x1 - movs r1, 0 - mov r2, sp - bl sub_815CA40 - add sp, 0x10 - pop {r4} + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _081545D2 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814AA1C: .4byte gUnknown_846D960 -_0814AA20: .4byte gUnknown_846D968 - thumb_func_end sub_814A9C8 +_08154600: .4byte gSprites +_08154604: .4byte gUnknown_203F3F8 + thumb_func_end sub_81545BC - thumb_func_start sub_814AA24 -sub_814AA24: @ 814AA24 + thumb_func_start sub_8154608 +sub_8154608: @ 8154608 push {lr} - adds r1, r0, 0 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r3, 0 + subs r0, r1, 0x1 + cmp r0, 0x4 + bhi _081546BA + lsls r0, 2 + ldr r1, _08154624 @ =_08154628 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08154624: .4byte _08154628 + .align 2, 0 +_08154628: + .4byte _081546A8 + .4byte _0815463C + .4byte _08154646 + .4byte _0815465A + .4byte _08154682 +_0815463C: + cmp r2, 0 + beq _08154672 + cmp r2, 0x1 + bne _081546BA + b _08154676 +_08154646: + cmp r2, 0x1 + beq _081546AC + cmp r2, 0x1 + bgt _08154654 + cmp r2, 0 + beq _081546A8 + b _081546BA +_08154654: + cmp r2, 0x2 + bne _081546BA + b _081546B8 +_0815465A: + cmp r2, 0x1 + beq _08154676 + cmp r2, 0x1 + bgt _08154668 + cmp r2, 0 + beq _08154672 + b _081546BA +_08154668: + cmp r2, 0x2 + beq _0815467A + cmp r2, 0x3 + beq _0815467E + b _081546BA +_08154672: + movs r3, 0xC + b _081546BA +_08154676: + movs r3, 0x12 + b _081546BA +_0815467A: + movs r3, 0x18 + b _081546BA +_0815467E: + movs r3, 0x6 + b _081546BA +_08154682: + cmp r2, 0x4 + bhi _081546BA + lsls r0, r2, 2 + ldr r1, _08154690 @ =_08154694 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08154690: .4byte _08154694 + .align 2, 0 +_08154694: + .4byte _081546A8 + .4byte _081546AC + .4byte _081546B0 + .4byte _081546B4 + .4byte _081546B8 +_081546A8: + movs r3, 0xF + b _081546BA +_081546AC: + movs r3, 0x15 + b _081546BA +_081546B0: + movs r3, 0x1B + b _081546BA +_081546B4: + movs r3, 0x3 + b _081546BA +_081546B8: + movs r3, 0x9 +_081546BA: + lsls r0, r3, 3 + pop {r1} + bx r1 + thumb_func_end sub_8154608 + + thumb_func_start sub_81546C0 +sub_81546C0: @ 81546C0 + push {r4,lr} + movs r4, 0 +_081546C4: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81542EC + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8154370 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xA + bls _081546C4 movs r0, 0 - bl sub_815CD70 + bl sub_81540DC + pop {r4} pop {r0} bx r0 - thumb_func_end sub_814AA24 + thumb_func_end sub_81546C0 - thumb_func_start sub_814AA34 -sub_814AA34: @ 814AA34 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1 - bl sub_815CD70 + thumb_func_start sub_81546EC +sub_81546EC: @ 81546EC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8069788 + ldr r1, [r0] + movs r2, 0x90 + lsls r2, 1 + movs r0, 0 + movs r3, 0x1 + bl LoadBgTiles + adds r0, r4, 0 + bl sub_8069788 + ldr r0, [r0, 0x4] + movs r1, 0xA0 + movs r2, 0x20 + bl LoadPalette + pop {r4} pop {r0} bx r0 - thumb_func_end sub_814AA34 + thumb_func_end sub_81546EC - thumb_func_start sub_814AA48 -sub_814AA48: @ 814AA48 + thumb_func_start sub_8154720 +sub_8154720: @ 8154720 push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0814AA5C @ =gUnknown_203F3D8 - ldr r0, [r0] - bl sub_814AFE8 + movs r0, 0 + movs r1, 0xA + movs r2, 0xB0 + bl sub_814FF2C pop {r0} bx r0 + thumb_func_end sub_8154720 + + thumb_func_start sub_8154730 +sub_8154730: @ 8154730 + ldr r3, _08154760 @ =gUnknown_203F440 + ldr r0, [r3] + movs r2, 0xC0 + lsls r2, 6 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r1, _08154764 @ =0x00003014 + adds r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, 0x4 + adds r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, 0x8 + adds r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, 0x4 + adds r0, r1 + strb r2, [r0] + bx lr .align 2, 0 -_0814AA5C: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AA48 +_08154760: .4byte gUnknown_203F440 +_08154764: .4byte 0x00003014 + thumb_func_end sub_8154730 - thumb_func_start sub_814AA60 -sub_814AA60: @ 814AA60 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0814AA74 @ =gUnknown_203F3D8 - ldr r0, [r0] - bl sub_814B080 + thumb_func_start sub_8154768 +sub_8154768: @ 8154768 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r6, 0xA + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x3] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x2 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + str r5, [sp] + ldrb r0, [r4, 0x4] + str r0, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x4 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + str r5, [sp] + ldrb r0, [r4, 0x4] + str r0, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x6 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x4] + ldrb r0, [r4, 0x2] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x7 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + ldrb r3, [r4, 0x4] + ldrb r0, [r4, 0x2] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x3] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x8 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x4] + ldrb r4, [r4, 0x2] + adds r3, r4 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x9 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4-r6} pop {r0} bx r0 - .align 2, 0 -_0814AA74: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AA60 + thumb_func_end sub_8154768 - thumb_func_start sub_814AA78 -sub_814AA78: @ 814AA78 - push {lr} - adds r1, r0, 0 - ldr r0, _0814AA88 @ =gUnknown_203F3D8 - ldr r0, [r0] - bl sub_814B010 - pop {r1} - bx r1 - .align 2, 0 -_0814AA88: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AA78 + thumb_func_start sub_8154868 +sub_8154868: @ 8154868 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r6, 0xB + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0xA + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x3] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0xB + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0xC + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + str r5, [sp] + ldrb r0, [r4, 0x4] + str r0, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0xD + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x2] + str r5, [sp] + ldrb r0, [r4, 0x4] + str r0, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0xF + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x4] + ldrb r0, [r4, 0x2] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x10 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x1] + ldrb r3, [r4, 0x4] + ldrb r0, [r4, 0x2] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x3] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x11 + bl FillBgTilemapBufferRect + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x1] + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4, 0x4] + ldrb r4, [r4, 0x2] + adds r3, r4 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x12 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8154868 - thumb_func_start sub_814AA8C -sub_814AA8C: @ 814AA8C - push {lr} - ldr r0, _0814AA9C @ =gUnknown_203F3D8 - ldr r0, [r0] - bl sub_814B0A8 + thumb_func_start sub_8154968 +sub_8154968: @ 8154968 + push {r4,lr} + ldr r4, _081549B0 @ =gUnknown_203F440 + str r0, [r4] + movs r2, 0xC0 + lsls r2, 6 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r3, _081549B4 @ =0x00003014 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _081549B8 @ =0x00003018 + adds r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r3, 0xC + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r1, 0xC + adds r0, r1 + strb r2, [r0] + ldr r0, _081549BC @ =sub_8154A08 + movs r1, 0x3 + bl CreateTask + ldr r1, [r4] + ldr r2, _081549C0 @ =0x00003004 + adds r1, r2 + strb r0, [r1] + ldr r0, _081549C4 @ =sub_8154A2C + bl sub_8155E24 + pop {r4} pop {r0} bx r0 .align 2, 0 -_0814AA9C: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AA8C +_081549B0: .4byte gUnknown_203F440 +_081549B4: .4byte 0x00003014 +_081549B8: .4byte 0x00003018 +_081549BC: .4byte sub_8154A08 +_081549C0: .4byte 0x00003004 +_081549C4: .4byte sub_8154A2C + thumb_func_end sub_8154968 - thumb_func_start sub_814AAA0 -sub_814AAA0: @ 814AAA0 + thumb_func_start sub_81549C8 +sub_81549C8: @ 81549C8 push {lr} - ldr r0, _0814AAB0 @ =gUnknown_203F3D8 + bl FreeAllWindowBuffers + pop {r0} + bx r0 + thumb_func_end sub_81549C8 + + thumb_func_start sub_81549D4 +sub_81549D4: @ 81549D4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r5, _08154A04 @ =gUnknown_8478EC4 + adds r7, r5, 0x4 +_081549E0: + lsls r1, r4, 3 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r6 + bne _081549F2 + adds r0, r1, r7 ldr r0, [r0] - bl sub_814B134 + bl sub_8155E24 +_081549F2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _081549E0 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814AAB0: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AAA0 +_08154A04: .4byte gUnknown_8478EC4 + thumb_func_end sub_81549D4 - thumb_func_start sub_814AAB4 -sub_814AAB4: @ 814AAB4 + thumb_func_start sub_8154A08 +sub_8154A08: @ 8154A08 push {lr} - adds r1, r0, 0 - ldr r0, _0814AAC4 @ =gUnknown_203F3D8 + ldr r0, _08154A28 @ =gUnknown_203F440 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 ldr r0, [r0] - bl sub_814B168 + cmp r0, 0 + bne _08154A22 + bl sub_8155E54 + bl _call_via_r0 +_08154A22: pop {r0} bx r0 .align 2, 0 -_0814AAC4: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AAB4 +_08154A28: .4byte gUnknown_203F440 + thumb_func_end sub_8154A08 - thumb_func_start sub_814AAC8 -sub_814AAC8: @ 814AAC8 + thumb_func_start sub_8154A2C +sub_8154A2C: @ 8154A2C push {lr} - ldr r0, _0814AAD8 @ =gUnknown_203F3D8 + ldr r0, _08154A48 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r2, _08154A4C @ =0x00003014 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _08154B24 + lsls r0, 2 + ldr r1, _08154A50 @ =_08154A54 + adds r0, r1 ldr r0, [r0] - bl sub_814B190 - pop {r1} - bx r1 + mov pc, r0 + .align 2, 0 +_08154A48: .4byte gUnknown_203F440 +_08154A4C: .4byte 0x00003014 +_08154A50: .4byte _08154A54 + .align 2, 0 +_08154A54: + .4byte _08154A68 + .4byte _08154A6E + .4byte _08154A88 + .4byte _08154ACC + .4byte _08154AF8 +_08154A68: + bl sub_8155EA0 + b _08154B08 +_08154A6E: + bl sub_8155FE0 + cmp r0, 0x1 + bne _08154B2E + ldr r0, _08154A80 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r2, _08154A84 @ =0x00003014 + adds r1, r2 + b _08154B10 + .align 2, 0 +_08154A80: .4byte gUnknown_203F440 +_08154A84: .4byte 0x00003014 +_08154A88: + ldr r1, _08154AC0 @ =gUnknown_8478590 + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r1, _08154AC4 @ =gUnknown_8478A4C + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r1, _08154AC8 @ =gUnknown_84787FC + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + b _08154B08 .align 2, 0 -_0814AAD8: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AAC8 +_08154AC0: .4byte gUnknown_8478590 +_08154AC4: .4byte gUnknown_8478A4C +_08154AC8: .4byte gUnknown_84787FC +_08154ACC: + movs r0, 0 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r0, _08154AF0 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r2, _08154AF4 @ =0x00003014 + adds r1, r2 + b _08154B10 + .align 2, 0 +_08154AF0: .4byte gUnknown_203F440 +_08154AF4: .4byte 0x00003014 +_08154AF8: + ldr r0, _08154B18 @ =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl sub_81546EC + bl sub_8154720 +_08154B08: + ldr r0, _08154B1C @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _08154B20 @ =0x00003014 + adds r1, r0 +_08154B10: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08154B2E + .align 2, 0 +_08154B18: .4byte gSaveBlock2Ptr +_08154B1C: .4byte gUnknown_203F440 +_08154B20: .4byte 0x00003014 +_08154B24: + movs r2, 0xC0 + lsls r2, 6 + adds r1, r2 + movs r0, 0x1 + str r0, [r1] +_08154B2E: + pop {r0} + bx r0 + thumb_func_end sub_8154A2C - thumb_func_start sub_814AADC -sub_814AADC: @ 814AADC + thumb_func_start sub_8154B34 +sub_8154B34: @ 8154B34 push {r4-r7,lr} - sub sp, 0x8 - bl sub_81499A4 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _0814AB7C @ =gUnknown_846D9A8 - subs r0, r7, 0x2 + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, _08154B74 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r2, _08154B78 @ =0x00003014 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08154B7C + cmp r0, 0x1 + bne _08154B54 + b _08154CE0 +_08154B54: + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB4 + bhi _08154B62 + b _08154D82 +_08154B62: + bl sub_81533B4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + cmp r6, r7 + bcc _08154B72 + b _08154D5A +_08154B72: + b _08154D34 + .align 2, 0 +_08154B74: .4byte gUnknown_203F440 +_08154B78: .4byte 0x00003014 +_08154B7C: + bl sub_81533B4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08154CB8 @ =gUnknown_8478E80 + subs r0, r7, 0x1 lsls r0, 2 adds r0, r1 - ldr r4, [r0] - ldr r2, _0814AB80 @ =0xffffff00 - ldr r0, [sp] + ldr r5, [r0] + ldr r2, _08154CBC @ =0xffffff00 + ldr r0, [sp, 0xC] ands r0, r2 - ldr r1, _0814AB84 @ =0x00ffffff + ldr r1, _08154CC0 @ =0x00ffffff ands r0, r1 - movs r1, 0x80 - lsls r1, 20 + movs r1, 0xE0 + lsls r1, 19 orrs r0, r1 - str r0, [sp] - ldr r0, [sp, 0x4] + str r0, [sp, 0xC] + ldr r0, [sp, 0x10] ands r0, r2 movs r1, 0x2 orrs r0, r1 - ldr r1, _0814AB88 @ =0xffff00ff + ldr r1, _08154CC4 @ =0xffff00ff ands r0, r1 - movs r1, 0x80 - lsls r1, 2 + movs r1, 0xD0 + lsls r1, 4 orrs r0, r1 - ldr r1, _0814AB8C @ =0x0000ffff + ldr r1, _08154CC8 @ =0x0000ffff ands r0, r1 - movs r1, 0xAC - lsls r1, 14 + movs r1, 0x98 + lsls r1, 13 orrs r0, r1 - str r0, [sp, 0x4] - movs r5, 0 - cmp r5, r7 - bge _0814AB6C - mov r6, sp -_0814AB2A: - ldrb r0, [r4] + str r0, [sp, 0x10] + movs r6, 0 + cmp r6, r7 + bcs _08154CAC + mov r3, sp + adds r3, 0xC + str r3, [sp, 0x18] + mov r10, r4 + ldr r0, _08154CCC @ =0x00003008 + mov r9, r0 +_08154BD0: + movs r1, 0 + mov r8, r1 + adds r0, r6, 0 + bl sub_81537AC + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sub_81533C4 + adds r1, r0, 0 + movs r0, 0 + movs r2, 0x1 + negs r2, r2 + bl GetStringWidth + movs r1, 0x38 + subs r1, r0 + lsrs r1, 1 + str r1, [sp, 0x14] + ldrb r0, [r5] lsls r0, 8 - ldr r2, _0814AB88 @ =0xffff00ff - ldr r1, [sp] + ldr r2, _08154CC4 @ =0xffff00ff + ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 - str r1, [sp] - ldrb r2, [r4, 0x2] + str r1, [sp, 0xC] + ldrb r2, [r5, 0x1] lsls r2, 16 - ldr r0, _0814AB90 @ =0xff00ffff + ldr r0, _08154CD0 @ =0xff00ffff ands r0, r1 orrs r0, r2 - str r0, [sp] - mov r0, sp + str r0, [sp, 0xC] + add r0, sp, 0xC bl AddWindow - ldr r1, _0814AB94 @ =gUnknown_203F3D8 - ldr r1, [r1] - lsls r2, r5, 1 - adds r1, 0x1C - adds r1, r2 - strh r0, [r1] + mov r2, r10 + ldr r1, [r2] + add r1, r9 + adds r1, r6 + strb r0, [r1] + ldr r0, [r2] + add r0, r9 + adds r0, r6 + ldrb r0, [r0] + bl ClearWindowTilemap + mov r3, r10 + ldr r0, [r3] + add r0, r9 + adds r0, r6 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 + cmp r4, r0 + bne _08154C4E + movs r0, 0x2 + mov r8, r0 +_08154C4E: + adds r0, r4, 0 + bl sub_81533C4 + adds r4, r0, 0 + mov r1, r10 + ldr r0, [r1] + add r0, r9 + adds r0, r6 + ldrb r0, [r0] + ldr r3, [sp, 0x14] + lsls r2, r3, 24 + lsrs r2, 24 + mov r3, r8 + lsls r1, r3, 1 + add r1, r8 + ldr r3, _08154CD4 @ =gUnknown_8478E38 + adds r1, r3 + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r3, 0x1 + bl box_print + mov r2, r10 + ldr r0, [r2] + add r0, r9 + adds r0, r6 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r3, [sp, 0x18] + ldrh r0, [r3, 0x6] + adds r0, 0xE + strh r0, [r3, 0x6] + add r0, sp, 0xC + bl sub_8154868 + adds r5, 0x4 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r7 + bcc _08154BD0 +_08154CAC: + ldr r0, _08154CD8 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _08154CDC @ =0x00003014 + adds r1, r0 + b _08154D1E + .align 2, 0 +_08154CB8: .4byte gUnknown_8478E80 +_08154CBC: .4byte 0xffffff00 +_08154CC0: .4byte 0x00ffffff +_08154CC4: .4byte 0xffff00ff +_08154CC8: .4byte 0x0000ffff +_08154CCC: .4byte 0x00003008 +_08154CD0: .4byte 0xff00ffff +_08154CD4: .4byte gUnknown_8478E38 +_08154CD8: .4byte gUnknown_203F440 +_08154CDC: .4byte 0x00003014 +_08154CE0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08154D82 + bl sub_81533B4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + cmp r6, r7 + bcs _08154D10 +_08154CF8: + ldr r0, [r4] + ldr r1, _08154D28 @ =0x00003008 + adds r0, r1 + adds r0, r6 + ldrb r0, [r0] + bl PutWindowTilemap + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r7 + bcc _08154CF8 +_08154D10: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, _08154D2C @ =gUnknown_203F440 + ldr r1, [r0] + ldr r2, _08154D30 @ =0x00003014 + adds r1, r2 +_08154D1E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08154D82 + .align 2, 0 +_08154D28: .4byte 0x00003008 +_08154D2C: .4byte gUnknown_203F440 +_08154D30: .4byte 0x00003014 +_08154D34: + ldr r5, _08154D94 @ =gUnknown_203F440 + ldr r0, [r5] + ldr r4, _08154D98 @ =0x00003008 + adds r0, r4 + adds r0, r6 + ldrb r0, [r0] bl ClearWindowTilemap - ldrh r0, [r6, 0x6] - adds r0, 0x10 - strh r0, [r6, 0x6] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r7 - blt _0814AB2A -_0814AB6C: + ldr r0, [r5] + adds r0, r4 + adds r0, r6 + ldrb r0, [r0] + bl RemoveWindow + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r7 + bcc _08154D34 +_08154D5A: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram - add sp, 0x8 + ldr r0, _08154D94 @ =gUnknown_203F440 + ldr r0, [r0] + movs r3, 0xC0 + lsls r3, 6 + adds r0, r3 + movs r1, 0x1 + str r1, [r0] +_08154D82: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814AB7C: .4byte gUnknown_846D9A8 -_0814AB80: .4byte 0xffffff00 -_0814AB84: .4byte 0x00ffffff -_0814AB88: .4byte 0xffff00ff -_0814AB8C: .4byte 0x0000ffff -_0814AB90: .4byte 0xff00ffff -_0814AB94: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AADC - - thumb_func_start sub_814AB98 -sub_814AB98: @ 814AB98 - push {r4-r6,lr} +_08154D94: .4byte gUnknown_203F440 +_08154D98: .4byte 0x00003008 + thumb_func_end sub_8154B34 + + thumb_func_start sub_8154D9C +sub_8154D9C: @ 8154D9C + push {r4-r7,lr} + mov r7, r10 mov r6, r9 mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - add r0, sp, 0xC - strb r1, [r0] - strb r2, [r0, 0x1] - strb r3, [r0, 0x2] - ldr r6, _0814AC2C @ =gUnknown_203F3D8 - ldr r0, [r6] - lsls r1, r5, 1 + push {r5-r7} + sub sp, 0x70 + lsls r0, 24 + movs r1, 0 mov r8, r1 - adds r0, 0x1C - add r0, r8 + movs r6, 0 + lsrs r7, r0, 24 + add r4, sp, 0x2C + ldr r1, _08154F64 @ =gUnknown_8478F14 + adds r0, r4, 0 + movs r2, 0x5 + bl memcpy + movs r5, 0 + cmp r5, r7 + bcs _08154DEC + add r4, sp, 0x34 +_08154DC6: + mov r0, sp + adds r0, r5 + adds r0, 0x2C + strb r5, [r0] + add r0, sp, 0x5C + adds r1, r5, 0 + bl sub_81536A0 + lsls r2, r5, 3 + adds r2, r4, r2 + ldr r0, [sp, 0x5C] + ldr r1, [sp, 0x60] + str r0, [r2] + str r1, [r2, 0x4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _08154DC6 +_08154DEC: + bl sub_81534AC + cmp r0, 0 + beq _08154E22 +_08154DF4: + movs r5, 0 + cmp r5, r7 + bcs _08154E1C + add r2, sp, 0x34 + add r1, sp, 0x2C +_08154DFE: + lsls r0, r5, 3 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r8 + bne _08154E12 + adds r0, r1, r6 + strb r5, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08154E12: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _08154DFE +_08154E1C: + mov r8, r6 + cmp r6, r7 + bcc _08154DF4 +_08154E22: + movs r5, 0 + ldr r4, _08154F68 @ =gUnknown_841CE1C + cmp r5, r7 + bcs _08154E48 + add r1, sp, 0x34 + add r6, sp, 0x38 + subs r3, r7, 0x1 +_08154E30: + lsls r2, r5, 3 + adds r0, r6, r2 + ldr r0, [r0] + cmp r0, 0 + bne _08154E3E + adds r0, r1, r2 + strb r3, [r0] +_08154E3E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _08154E30 +_08154E48: + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl GetStringWidth + movs r1, 0xD8 + subs r1, r0 + str r1, [sp, 0x64] + movs r5, 0 + cmp r5, r7 + bcs _08154F52 + mov r2, sp + adds r2, 0x34 + str r2, [sp, 0x68] + ldr r3, _08154F6C @ =0x00003009 + mov r10, r3 + adds r0, r1, 0 + subs r0, 0x23 + lsls r0, 24 + str r0, [sp, 0x6C] +_08154E70: + movs r4, 0 + mov r8, r4 + mov r0, sp + adds r0, r5 + adds r0, 0x2C ldrb r0, [r0] + adds r4, r0, 0 + lsls r1, r4, 3 + add r0, sp, 0x38 + adds r0, r1 + ldr r0, [r0] + mov r9, r0 + ldr r2, _08154F70 @ =gUnknown_203F440 + ldr r0, [r2] + add r0, r10 + ldrb r0, [r0] + ldr r2, _08154F74 @ =gUnknown_8478E94 + ldr r3, [sp, 0x68] + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r2, [r1] + ldr r3, _08154F78 @ =gUnknown_8478EBA + lsls r1, r5, 1 + adds r1, r3 + ldrb r6, [r1] + str r6, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + mov r3, r8 + str r3, [sp, 0x8] movs r1, 0 - bl FillWindowPixelBuffer - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - bl sub_81499E0 - adds r1, r0, 0 + movs r3, 0x8 + bl AddTextPrinterParameterized + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _08154EC8 + movs r0, 0x2 + mov r8, r0 +_08154EC8: + adds r0, r4, 0 + bl sub_81533C4 + adds r3, r0, 0 + ldr r1, _08154F70 @ =gUnknown_203F440 + ldr r0, [r1] + add r0, r10 + ldrb r0, [r0] + mov r2, r8 + lsls r1, r2, 1 + add r1, r8 + ldr r2, _08154F7C @ =gUnknown_8478E38 + adds r1, r2 + str r1, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + str r3, [sp, 0x8] + movs r1, 0 + movs r2, 0x1C + adds r3, r6, 0 + bl box_print + add r0, sp, 0xC + mov r1, r9 movs r2, 0x1 - negs r2, r2 - mov r9, r2 + movs r3, 0x7 + bl ConvertIntToDecimalStringN movs r0, 0 + add r1, sp, 0xC + adds r2, r4, 0 bl GetStringWidth - movs r4, 0x40 - subs r4, r0 - lsrs r4, 1 - adds r0, r5, 0 - bl sub_81499E0 - adds r1, r0, 0 - ldr r0, [r6] - adds r0, 0x1C - add r0, r8 + ldr r1, _08154F70 @ =gUnknown_203F440 + ldr r0, [r1] + add r0, r10 ldrb r0, [r0] - lsls r4, 24 - lsrs r4, 24 - add r2, sp, 0xC - str r2, [sp] - mov r2, r9 + str r6, [sp] + movs r2, 0xFF str r2, [sp, 0x4] - str r1, [sp, 0x8] + movs r3, 0 + str r3, [sp, 0x8] movs r1, 0 - adds r2, r4, 0 - movs r3, 0x2 - bl box_print - ldr r0, [r6] - adds r0, 0x1C - add r0, r8 + add r2, sp, 0xC + ldr r4, [sp, 0x6C] + lsrs r3, r4, 24 + bl AddTextPrinterParameterized + ldr r1, _08154F70 @ =gUnknown_203F440 + ldr r0, [r1] + add r0, r10 ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3,r4} + ldr r2, [sp, 0x64] + lsls r3, r2, 24 + str r6, [sp] + movs r4, 0xFF + str r4, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + ldr r2, _08154F68 @ =gUnknown_841CE1C + lsrs r3, 24 + bl AddTextPrinterParameterized + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r7 + bcc _08154E70 +_08154F52: + add sp, 0x70 + pop {r3-r5} mov r8, r3 mov r9, r4 - pop {r4-r6} + mov r10, r5 + pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814AC2C: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AB98 - - thumb_func_start sub_814AC30 -sub_814AC30: @ 814AC30 - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_81499A4 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - bne _0814AC5A - movs r4, 0 - cmp r4, r5 - bge _0814AC8C -_0814AC46: - adds r0, r4, 0 +_08154F64: .4byte gUnknown_8478F14 +_08154F68: .4byte gUnknown_841CE1C +_08154F6C: .4byte 0x00003009 +_08154F70: .4byte gUnknown_203F440 +_08154F74: .4byte gUnknown_8478E94 +_08154F78: .4byte gUnknown_8478EBA +_08154F7C: .4byte gUnknown_8478E38 + thumb_func_end sub_8154D9C + + thumb_func_start sub_8154F80 +sub_8154F80: @ 8154F80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8C + bl sub_81533B4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x84] + ldr r6, _08154FB0 @ =gUnknown_203F440 + ldr r1, [r6] + ldr r2, _08154FB4 @ =0x00003014 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xB + bls _08154FA6 + b _08155678 +_08154FA6: + lsls r0, 2 + ldr r1, _08154FB8 @ =_08154FBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08154FB0: .4byte gUnknown_203F440 +_08154FB4: .4byte 0x00003014 +_08154FB8: .4byte _08154FBC + .align 2, 0 +_08154FBC: + .4byte _08154FEC + .4byte _08155008 + .4byte _08155060 + .4byte _0815524C + .4byte _08155298 + .4byte _081552DC + .4byte _08155340 + .4byte _0815537C + .4byte _081553C0 + .4byte _08155480 + .4byte _081555D8 + .4byte _0815562C +_08154FEC: + bl sub_81535B0 + ldr r0, _08155000 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _08155004 @ =0x0000301c + adds r2, r1, r0 + movs r0, 0 + strh r0, [r2] + b _0815565A + .align 2, 0 +_08155000: .4byte gUnknown_203F440 +_08155004: .4byte 0x0000301c +_08155008: + ldr r6, _08155050 @ =gUnknown_8475674 + adds r0, r6, 0 + bl AddWindow + ldr r4, _08155054 @ =gUnknown_203F440 + ldr r1, [r4] + ldr r2, _08155058 @ =0x00003008 + mov r8, r2 + add r1, r8 + strb r0, [r1] + movs r0, 0x8 + adds r0, r6 + mov r9, r0 + bl AddWindow + ldr r1, [r4] + ldr r5, _0815505C @ =0x00003009 + adds r1, r5 + strb r0, [r1] + ldr r0, [r4] + add r0, r8 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r6, 0 + bl sub_8154868 + mov r0, r9 + bl sub_8154868 + b _08155658 + .align 2, 0 +_08155050: .4byte gUnknown_8475674 +_08155054: .4byte gUnknown_203F440 +_08155058: .4byte 0x00003008 +_0815505C: .4byte 0x00003009 +_08155060: + ldr r4, _081551A8 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r5, _081551AC @ =0x00003008 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, [r4] + ldr r1, _081551B0 @ =0x00003009 + mov r9, r1 + add r0, r9 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, _081551B4 @ =gUnknown_841CD03 + mov r8, r2 + movs r2, 0x1 + negs r2, r2 + movs r0, 0 + mov r1, r8 + bl GetStringWidth + adds r1, r0, 0 + movs r0, 0xE0 + subs r0, r1 + lsrs r3, r0, 1 + ldr r0, [r4] + adds r0, r5 + ldrb r0, [r0] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x2 + str r1, [sp] + movs r6, 0xFF + str r6, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + movs r1, 0 + mov r2, r8 + bl AddTextPrinterParameterized + ldr r0, [r4] + add r0, r9 + ldrb r0, [r0] + ldr r2, _081551B8 @ =gUnknown_841CD25 + movs r1, 0x10 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0 + movs r3, 0x44 + bl AddTextPrinterParameterized + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x84] + cmp r9, r1 + bcc _081550DA + b _08155214 +_081550DA: + movs r5, 0 + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + cmp r9, r0 + bne _081550EA + movs r5, 0x2 +_081550EA: + mov r0, r9 + bl sub_81533C4 + adds r6, r0, 0 + ldr r0, _081551A8 @ =gUnknown_203F440 + ldr r0, [r0] + ldr r2, _081551B0 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + ldr r1, _081551BC @ =gUnknown_8478EB0 + mov r2, r9 + lsls r4, r2, 1 + adds r4, r1 + ldrb r3, [r4] + lsls r1, r5, 1 + adds r1, r5 + ldr r2, _081551C0 @ =gUnknown_8478E38 + adds r1, r2 + str r1, [sp] + movs r5, 0x1 + negs r5, r5 + str r5, [sp, 0x4] + str r6, [sp, 0x8] movs r1, 0 movs r2, 0x2 - movs r3, 0x3 - bl sub_814AB98 - adds r4, 0x1 - cmp r4, r5 - blt _0814AC46 - b _0814AC8C -_0814AC5A: - bl sub_81499B4 + bl box_print + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x88] + mov r8, r4 + ldr r1, _081551C4 @ =gUnknown_8478EA8 + mov r10, r1 +_0815512E: + mov r0, r9 + adds r1, r7, 0 + bl sub_8153404 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _081551C8 @ =0x0000270f + bl sub_815379C + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + bl sub_81534F0 + ldr r1, _081551C8 @ =0x0000270f + bl sub_815379C lsls r0, 16 lsrs r6, r0, 16 - movs r4, 0 - cmp r4, r5 - bge _0814AC8C -_0814AC68: + add r0, sp, 0xC + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + movs r0, 0 + add r1, sp, 0xC + movs r2, 0x1 + negs r2, r2 + bl GetStringWidth + adds r5, r0, 0 cmp r6, r4 - beq _0814AC7A - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x3 - bl sub_814AB98 - b _0814AC86 -_0814AC7A: - adds r0, r4, 0 + bne _081551D0 + cmp r6, 0 + beq _081551D0 + ldr r0, _081551A8 @ =gUnknown_203F440 + ldr r0, [r0] + ldr r2, _081551B0 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + lsls r1, r7, 1 + add r1, r10 + ldrb r2, [r1] + subs r2, r5 + lsls r2, 24 + lsrs r2, 24 + mov r1, r8 + ldrb r3, [r1] + ldr r1, _081551CC @ =gUnknown_8478E3B + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + add r1, sp, 0xC + str r1, [sp, 0x8] movs r1, 0 - movs r2, 0x4 - movs r3, 0x5 - bl sub_814AB98 -_0814AC86: - adds r4, 0x1 - cmp r4, r5 - blt _0814AC68 -_0814AC8C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814AC30 - - thumb_func_start sub_814AC94 -sub_814AC94: @ 814AC94 - push {r4,r5,lr} - bl sub_81499A4 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0 - cmp r4, r5 - bge _0814ACBA -_0814ACA4: - ldr r0, _0814ACC8 @ =gUnknown_203F3D8 + bl box_print + b _081551FA + .align 2, 0 +_081551A8: .4byte gUnknown_203F440 +_081551AC: .4byte 0x00003008 +_081551B0: .4byte 0x00003009 +_081551B4: .4byte gUnknown_841CD03 +_081551B8: .4byte gUnknown_841CD25 +_081551BC: .4byte gUnknown_8478EB0 +_081551C0: .4byte gUnknown_8478E38 +_081551C4: .4byte gUnknown_8478EA8 +_081551C8: .4byte 0x0000270f +_081551CC: .4byte gUnknown_8478E3B +_081551D0: + ldr r0, _0815523C @ =gUnknown_203F440 ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x1C + ldr r2, _08155240 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + lsls r1, r7, 1 + add r1, r10 + ldrb r3, [r1] + subs r3, r5 + lsls r3, 24 + lsrs r3, 24 + mov r2, r8 + ldrb r1, [r2] + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + add r2, sp, 0xC + bl AddTextPrinterParameterized +_081551FA: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _0815512E + ldr r1, [sp, 0x88] + lsls r0, r1, 24 + lsrs r0, 24 + mov r9, r0 + ldr r2, [sp, 0x84] + cmp r9, r2 + bcs _08155214 + b _081550DA +_08155214: + ldr r4, _0815523C @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _08155244 @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _08155240 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _08155248 @ =0x00003014 + adds r1, r0 + b _0815565E + .align 2, 0 +_0815523C: .4byte gUnknown_203F440 +_08155240: .4byte 0x00003009 +_08155244: .4byte 0x00003008 +_08155248: .4byte 0x00003014 +_0815524C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08155270 + ldr r4, _08155288 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _0815528C @ =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap - adds r4, 0x1 - cmp r4, r5 - blt _0814ACA4 -_0814ACBA: + ldr r0, [r4] + ldr r2, _08155290 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_08155270: movs r0, 0 bl CopyBgTilemapBufferToVram - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814ACC8: .4byte gUnknown_203F3D8 - thumb_func_end sub_814AC94 - - thumb_func_start sub_814ACCC -sub_814ACCC: @ 814ACCC - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _0814AD10 @ =gUnknown_203F3D8 - ldr r2, [r0] movs r0, 0 - str r0, [r2, 0x18] - lsrs r1, 25 - lsls r1, 16 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgX + bl sub_8154324 + ldr r0, _08155288 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _08155294 @ =0x00003014 + adds r1, r0 + b _0815565E + .align 2, 0 +_08155288: .4byte gUnknown_203F440 +_0815528C: .4byte 0x00003008 +_08155290: .4byte 0x00003009 +_08155294: .4byte 0x00003014 +_08155298: + ldr r4, _081552D0 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _081552D4 @ =0x0000301c + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _081552B0 + b _081556C8 +_081552B0: + ldr r0, _081552D8 @ =gMain + ldrh r1, [r0, 0x2E] movs r0, 0x1 - ands r4, r0 - lsls r4, 8 - subs r4, 0x28 - lsls r4, 8 - adds r1, r4, 0 - movs r2, 0 - bl ChangeBgY + ands r0, r1 + cmp r0, 0 + bne _081552BE + b _081556C8 +_081552BE: + movs r0, 0 + strh r0, [r2] + movs r0, 0x5 + bl PlaySE movs r0, 0x1 - bl ShowBg - ldr r0, _0814AD14 @ =sub_814AD50 - movs r1, 0x4 - bl CreateTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814AD10: .4byte gUnknown_203F3D8 -_0814AD14: .4byte sub_814AD50 - thumb_func_end sub_814ACCC - - thumb_func_start sub_814AD18 -sub_814AD18: @ 814AD18 - push {r4,lr} - ldr r4, _0814AD28 @ =gUnknown_203F3D8 + bl sub_8154324 + b _08155658 + .align 2, 0 +_081552D0: .4byte gUnknown_203F440 +_081552D4: .4byte 0x0000301c +_081552D8: .4byte gMain +_081552DC: + ldr r4, _08155330 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r5, _08155334 @ =0x00003008 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer ldr r0, [r4] - ldr r0, [r0, 0x18] - cmp r0, 0x1F - bls _0814AD2C + ldr r1, _08155338 @ =0x00003009 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r6, _0815533C @ =gUnknown_841CD43 + movs r2, 0x1 + negs r2, r2 movs r0, 0 - b _0814AD4A + adds r1, r6, 0 + bl GetStringWidth + adds r1, r0, 0 + movs r0, 0xE0 + subs r0, r1 + lsrs r3, r0, 1 + ldr r0, [r4] + adds r0, r5 + ldrb r0, [r0] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r2, r6, 0 + bl AddTextPrinterParameterized + b _08155658 + .align 2, 0 +_08155330: .4byte gUnknown_203F440 +_08155334: .4byte 0x00003008 +_08155338: .4byte 0x00003009 +_0815533C: .4byte gUnknown_841CD43 +_08155340: + ldr r0, [sp, 0x84] + bl sub_8154D9C + ldr r4, _0815536C @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _08155370 @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _08155374 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _08155378 @ =0x00003014 + adds r1, r0 + b _0815565E .align 2, 0 -_0814AD28: .4byte gUnknown_203F3D8 -_0814AD2C: +_0815536C: .4byte gUnknown_203F440 +_08155370: .4byte 0x00003008 +_08155374: .4byte 0x00003009 +_08155378: .4byte 0x00003014 +_0815537C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081553A0 + ldr r4, _081553B0 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _081553B4 @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r4] + ldr r2, _081553B8 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_081553A0: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, _081553B0 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _081553BC @ =0x00003014 + adds r1, r0 + b _0815565E + .align 2, 0 +_081553B0: .4byte gUnknown_203F440 +_081553B4: .4byte 0x00003008 +_081553B8: .4byte 0x00003009 +_081553BC: .4byte 0x00003014 +_081553C0: + ldr r4, _08155408 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _0815540C @ =0x0000301c + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _081553D8 + b _081556C8 +_081553D8: + ldr r0, _08155410 @ =gMain + ldrh r1, [r0, 0x2E] movs r0, 0x1 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgY + ands r0, r1 + cmp r0, 0 + bne _081553E6 + b _081556C8 +_081553E6: + movs r0, 0 + strh r0, [r2] + movs r0, 0x5 + bl PlaySE + bl sub_81534AC + ldr r1, _08155414 @ =0x00000bb7 + cmp r0, r1 + bhi _0815541C + ldr r0, [r4] + ldr r2, _08155418 @ =0x00003014 + adds r0, r2 + movs r1, 0x7F + strb r1, [r0] + b _0815542C + .align 2, 0 +_08155408: .4byte gUnknown_203F440 +_0815540C: .4byte 0x0000301c +_08155410: .4byte gMain +_08155414: .4byte 0x00000bb7 +_08155418: .4byte 0x00003014 +_0815541C: + bl StopMapMusic ldr r1, [r4] - ldr r0, [r1, 0x18] + ldr r0, _08155470 @ =0x00003014 + adds r1, r0 + ldrb r0, [r1] adds r0, 0x1 - str r0, [r1, 0x18] - cmp r0, 0x1F - bls _0814AD48 - movs r0, 0x1 - bl HideBg -_0814AD48: - movs r0, 0x1 -_0814AD4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814AD18 - - thumb_func_start sub_814AD50 -sub_814AD50: @ 814AD50 - push {r4,lr} + strb r0, [r1] +_0815542C: + movs r0, 0x1E + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x5 + bl FillBgTilemapBufferRect_Palette0 + ldr r5, _08155474 @ =gUnknown_203F440 + ldr r0, [r5] + ldr r4, _08155478 @ =0x00003009 + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + ldr r6, _0815547C @ =gUnknown_8475684 + adds r0, r6, 0 + bl AddWindow + ldr r1, [r5] + adds r1, r4 + strb r0, [r1] + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r6, 0 + bl sub_8154868 + b _081556C8 + .align 2, 0 +_08155470: .4byte 0x00003014 +_08155474: .4byte gUnknown_203F440 +_08155478: .4byte 0x00003009 +_0815547C: .4byte gUnknown_8475684 +_08155480: + ldr r0, _08155558 @ =0x00000101 + bl PlayNewMapMusic + ldr r4, _0815555C @ =gUnknown_203F440 + ldr r0, [r4] + ldr r6, _08155560 @ =0x00003008 + adds r0, r6 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, [r4] + ldr r1, _08155564 @ =0x00003009 + mov r10, r1 + add r0, r10 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r5, _08155568 @ =gUnknown_841CD58 + movs r2, 0x1 + negs r2, r2 + movs r0, 0 + adds r1, r5, 0 + bl GetStringWidth + adds r1, r0, 0 + movs r0, 0xE0 + subs r0, r1 + lsrs r3, r0, 1 + ldr r0, [r4] + adds r0, r6 + ldrb r0, [r0] + lsls r3, 24 + lsrs r3, 24 + movs r2, 0x2 + mov r9, r2 + str r2, [sp] + movs r1, 0xFF + mov r8, r1 + str r1, [sp, 0x4] + movs r6, 0 + str r6, [sp, 0x8] + movs r1, 0 + adds r2, r5, 0 + bl AddTextPrinterParameterized + bl UnkTextUtil_Reset + bl sub_8153390 + lsls r0, 16 + lsrs r0, 16 + add r5, sp, 0x70 + adds r1, r5, 0 + bl CopyItemName + movs r0, 0 + adds r1, r5, 0 + bl UnkTextUtil_SetPtrI + ldr r1, _0815556C @ =gUnknown_841CD7A + add r0, sp, 0xC + bl UnkTextUtil_StringExpandPlaceholders + ldr r0, [r4] + add r0, r10 + ldrb r0, [r0] + mov r2, r9 + str r2, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0 + add r2, sp, 0xC + movs r3, 0x8 + bl AddTextPrinterParameterized + bl sub_815372C lsls r0, 24 lsrs r4, r0, 24 - bl sub_814AD18 + adds r6, r4, 0 + cmp r4, 0 + beq _0815559E + cmp r4, 0x3 + beq _0815559E + bl UnkTextUtil_Reset + bl sub_8153390 + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl CopyItemName + movs r0, 0 + adds r1, r5, 0 + bl UnkTextUtil_SetPtrI + cmp r4, 0x2 + bne _08155574 + ldr r1, _08155570 @ =gUnknown_841CD9F + add r0, sp, 0xC + bl UnkTextUtil_StringExpandPlaceholders + b _08155580 + .align 2, 0 +_08155558: .4byte 0x00000101 +_0815555C: .4byte gUnknown_203F440 +_08155560: .4byte 0x00003008 +_08155564: .4byte 0x00003009 +_08155568: .4byte gUnknown_841CD58 +_0815556C: .4byte gUnknown_841CD7A +_08155570: .4byte gUnknown_841CD9F +_08155574: + cmp r6, 0x1 + bne _08155580 + ldr r1, _081555C4 @ =gUnknown_841CDBA + add r0, sp, 0xC + bl UnkTextUtil_StringExpandPlaceholders +_08155580: + ldr r0, _081555C8 @ =gUnknown_203F440 + ldr r0, [r0] + ldr r2, _081555CC @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + movs r1, 0x28 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + add r2, sp, 0xC + movs r3, 0x8 + bl AddTextPrinterParameterized +_0815559E: + ldr r4, _081555C8 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _081555D0 @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _081555CC @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _081555D4 @ =0x00003014 + adds r1, r0 + b _0815565E + .align 2, 0 +_081555C4: .4byte gUnknown_841CDBA +_081555C8: .4byte gUnknown_203F440 +_081555CC: .4byte 0x00003009 +_081555D0: .4byte 0x00003008 +_081555D4: .4byte 0x00003014 +_081555D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 cmp r0, 0 - bne _0814AD64 - adds r0, r4, 0 - bl DestroyTask -_0814AD64: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814AD50 - - thumb_func_start sub_814AD6C -sub_814AD6C: @ 814AD6C - push {r4-r6,lr} - adds r6, r0, 0 - movs r4, 0 - ldr r5, _0814ADAC @ =gUnknown_846E0B0 -_0814AD74: - adds r0, r5, 0 - bl LoadCompressedObjectPic - adds r5, 0x8 - adds r4, 0x1 - cmp r4, 0x4 - bls _0814AD74 - movs r4, 0 - ldr r5, _0814ADB0 @ =gUnknown_846E0D8 -_0814AD86: - adds r0, r5, 0 - bl LoadSpritePalette - adds r5, 0x8 - adds r4, 0x1 - cmp r4, 0x1 - bls _0814AD86 + bne _081555FC + ldr r4, _08155618 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _0815561C @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r4] + ldr r2, _08155620 @ =0x00003009 + adds r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_081555FC: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, _08155624 @ =0x00000137 + movs r1, 0x14 + movs r2, 0xA + bl FadeOutAndFadeInNewMapMusic + ldr r0, _08155618 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _08155628 @ =0x00003014 + adds r1, r0 + b _0815565E + .align 2, 0 +_08155618: .4byte gUnknown_203F440 +_0815561C: .4byte 0x00003008 +_08155620: .4byte 0x00003009 +_08155624: .4byte 0x00000137 +_08155628: .4byte 0x00003014 +_0815562C: + ldr r4, _08155668 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _0815566C @ =0x0000301c + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bls _081556C8 + ldr r0, _08155670 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081556C8 + movs r0, 0 + strh r0, [r2] movs r0, 0x5 - bl IndexOfSpritePaletteTag - strb r0, [r6, 0xE] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - strb r0, [r6, 0xF] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814ADAC: .4byte gUnknown_846E0B0 -_0814ADB0: .4byte gUnknown_846E0D8 - thumb_func_end sub_814AD6C - - thumb_func_start sub_814ADB4 -sub_814ADB4: @ 814ADB4 - push {lr} + bl PlaySE +_08155658: + ldr r1, [r4] +_0815565A: + ldr r2, _08155674 @ =0x00003014 + adds r1, r2 +_0815565E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081556C8 + .align 2, 0 +_08155668: .4byte gUnknown_203F440 +_0815566C: .4byte 0x0000301c +_08155670: .4byte gMain +_08155674: .4byte 0x00003014 +_08155678: + ldr r5, _081556D8 @ =0x00003008 + adds r0, r1, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + ldr r4, _081556DC @ =0x00003009 + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 movs r2, 0 - movs r1, 0x7 - adds r0, 0x3C -_0814ADBC: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0814ADBC + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 + movs r1, 0x1 + str r1, [r0] +_081556C8: + add sp, 0x8C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_814ADB4 + .align 2, 0 +_081556D8: .4byte 0x00003008 +_081556DC: .4byte 0x00003009 + thumb_func_end sub_8154F80 - thumb_func_start sub_814ADCC -sub_814ADCC: @ 814ADCC + thumb_func_start sub_81556E0 +sub_81556E0: @ 81556E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} - sub sp, 0x34 + sub sp, 0xC + ldr r1, _08155708 @ =gUnknown_203F440 + ldr r2, [r1] + ldr r0, _0815570C @ =0x00003014 mov r9, r0 - adds r7, r1, 0 - ldr r0, [sp, 0x54] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x28] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x2C] - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, sp - ldr r0, _0814AE20 @ =gUnknown_846E0E8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x80 - lsls r0, 6 - bl Alloc + adds r0, r2, r0 + ldrb r7, [r0] + mov r10, r1 + cmp r7, 0x1 + beq _0815579C + cmp r7, 0x1 + bgt _08155710 + cmp r7, 0 + beq _0815571E + b _081559EC + .align 2, 0 +_08155708: .4byte gUnknown_203F440 +_0815570C: .4byte 0x00003014 +_08155710: + cmp r7, 0x2 + bne _08155716 + b _08155868 +_08155716: + cmp r7, 0x3 + bne _0815571C + b _081558A4 +_0815571C: + b _081559EC +_0815571E: + ldr r5, _08155788 @ =gUnknown_847568C + adds r0, r5, 0 + bl AddWindow + mov r2, r10 + ldr r1, [r2] + ldr r3, _0815578C @ =0x00003008 + adds r1, r3 + strb r0, [r1] + movs r0, 0x8 + adds r0, r5 mov r8, r0 - movs r0, 0x80 - lsls r0, 4 - bl Alloc - mov r10, r0 - bl sub_81499B4 - lsls r0, 16 - lsrs r0, 16 - cmp r6, r0 - bne _0814AE24 - movs r0, 0x3 - b _0814AE2A - .align 2, 0 -_0814AE20: .4byte gUnknown_846E0E8 -_0814AE24: - adds r0, r6, 0x4 - lsls r0, 24 - lsrs r0, 24 -_0814AE2A: - str r0, [sp, 0x30] - mov r1, r8 - cmp r1, 0 - beq _0814AEEC + bl AddWindow mov r2, r10 - cmp r2, 0 - beq _0814AEEC - ldrh r2, [r7] - lsls r0, r2, 3 - ldr r1, _0814AED8 @ =gMonFrontPicTable - adds r0, r1 - ldr r3, [r7, 0x8] - mov r1, r8 - bl sub_800ECC4 - mov r3, r8 - str r3, [sp, 0x18] - adds r4, r6, 0 - add r0, sp, 0x18 - ldr r5, _0814AEDC @ =0xffff0000 - lsls r1, r4, 16 - movs r2, 0x80 - lsls r2, 4 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpriteSheet - ldrh r0, [r7] - ldr r1, [r7, 0x4] - ldr r2, [r7, 0x8] - bl GetFrontSpritePalFromSpeciesAndPersonality - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r4 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette + ldr r1, [r2] + ldr r4, _08155790 @ =0x00003009 + adds r1, r4 + strb r0, [r1] + ldr r0, [r2] + ldr r3, _0815578C @ =0x00003008 + adds r0, r3 + ldrb r0, [r0] + bl ClearWindowTilemap + mov r1, r10 + ldr r0, [r1] + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r5, 0 + bl sub_8154868 mov r0, r8 - bl Free + bl sub_8154768 + mov r2, r10 + ldr r1, [r2] + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + ldr r3, _08155794 @ =0x00003020 + adds r0, r3 + strb r7, [r0] + ldr r0, [r2] + ldr r1, _08155798 @ =0x00003024 + adds r0, r1 + strb r7, [r0] + b _08155A58 + .align 2, 0 +_08155788: .4byte gUnknown_847568C +_0815578C: .4byte 0x00003008 +_08155790: .4byte 0x00003009 +_08155794: .4byte 0x00003020 +_08155798: .4byte 0x00003024 +_0815579C: + ldr r3, _0815584C @ =0x00003008 + mov r8, r3 + adds r0, r2, r3 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + mov r1, r10 + ldr r0, [r1] + ldr r7, _08155850 @ =0x00003009 + adds r0, r7 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + mov r2, r10 + ldr r0, [r2] + add r0, r8 + ldrb r0, [r0] + ldr r2, _08155854 @ =gUnknown_841CDD7 + movs r1, 0x6 + str r1, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + mov r3, r10 + ldr r0, [r3] + adds r0, r7 + ldrb r0, [r0] + ldr r2, _08155858 @ =gUnknown_8417938 + movs r1, 0x2 + mov r9, r1 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r3, 0x8 + bl AddTextPrinterParameterized + mov r2, r10 + ldr r0, [r2] + adds r0, r7 + ldrb r0, [r0] + ldr r2, _0815585C @ =gUnknown_841793C + movs r1, 0x10 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0x8 + bl AddTextPrinterParameterized + mov r3, r10 + ldr r0, [r3] + adds r0, r7 + ldrb r0, [r0] + ldr r2, _08155860 @ =gFameCheckerText_ListMenuCursor + mov r1, r9 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + mov r2, r10 + ldr r0, [r2] + add r0, r8 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + mov r3, r10 + ldr r0, [r3] + adds r0, r7 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram mov r0, r10 - bl Free - mov r1, sp - mov r0, sp - ldrh r0, [r0] - adds r0, r6 - strh r0, [r1] - mov r0, sp - ldrh r0, [r0, 0x2] - adds r0, r6 - strh r0, [r1, 0x2] - ldr r4, [sp, 0x28] - lsls r1, r4, 16 - asrs r1, 16 - ldr r0, [sp, 0x2C] - lsls r2, r0, 16 - asrs r2, 16 - mov r0, sp - ldr r3, [sp, 0x30] - bl CreateSprite + ldr r1, [r0] + ldr r2, _08155864 @ =0x00003014 + adds r1, r2 + b _081559DA + .align 2, 0 +_0815584C: .4byte 0x00003008 +_08155850: .4byte 0x00003009 +_08155854: .4byte gUnknown_841CDD7 +_08155858: .4byte gUnknown_8417938 +_0815585C: .4byte gUnknown_841793C +_08155860: .4byte gFameCheckerText_ListMenuCursor +_08155864: .4byte 0x00003014 +_08155868: + bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0814AEEC - lsls r0, r6, 2 - ldr r2, _0814AEE0 @ =0x000081a8 - add r2, r9 - adds r2, r0 - lsls r0, r1, 4 + cmp r0, 0 + bne _0815588E + mov r3, r10 + ldr r0, [r3] + ldr r1, _0815589C @ =0x00003008 adds r0, r1 - lsls r0, 2 - ldr r1, _0814AEE4 @ =gSprites + ldrb r0, [r0] + bl PutWindowTilemap + mov r2, r10 + ldr r0, [r2] + ldr r3, _081558A0 @ =0x00003009 + adds r0, r3 + ldrb r0, [r0] + bl PutWindowTilemap +_0815588E: + movs r0, 0 + bl CopyBgTilemapBufferToVram + mov r0, r10 + ldr r1, [r0] + add r1, r9 + b _081559DA + .align 2, 0 +_0815589C: .4byte 0x00003008 +_081558A0: .4byte 0x00003009 +_081558A4: + ldr r1, _0815590C @ =0x00003020 + adds r0, r2, r1 + ldrb r7, [r0] + cmp r7, 0 + bne _081558B0 + movs r7, 0x1 +_081558B0: + ldr r4, _08155910 @ =0x00003009 + adds r0, r2, r4 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + mov r2, r10 + ldr r0, [r2] + adds r0, r4 + ldrb r0, [r0] + ldr r2, _08155914 @ =gUnknown_8417938 + movs r3, 0x2 + mov r8, r3 + str r3, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + movs r1, 0x2 + movs r3, 0x8 + bl AddTextPrinterParameterized + mov r2, r10 + ldr r0, [r2] + adds r0, r4 + ldrb r0, [r0] + ldr r2, _08155918 @ =gUnknown_841793C + movs r6, 0x10 + str r6, [sp] + movs r3, 0xFF + str r3, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x2 + movs r3, 0x8 + bl AddTextPrinterParameterized + mov r1, r10 + ldr r0, [r1] + adds r0, r4 + ldrb r1, [r0] + ldr r2, _0815591C @ =gFameCheckerText_ListMenuCursor + cmp r7, 0x1 + bne _08155920 + mov r3, r8 + str r3, [sp] + b _08155922 + .align 2, 0 +_0815590C: .4byte 0x00003020 +_08155910: .4byte 0x00003009 +_08155914: .4byte gUnknown_8417938 +_08155918: .4byte gUnknown_841793C +_0815591C: .4byte gFameCheckerText_ListMenuCursor +_08155920: + str r6, [sp] +_08155922: + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r1, 0 + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r4, _08155970 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _08155974 @ =0x00003009 adds r0, r1 - str r0, [r2] - ldr r0, _0814AEE8 @ =0x000081fc - add r0, r9 - adds r0, r6 - add r1, sp, 0x30 - ldrb r1, [r1] + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, _08155978 @ =gMain + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08155984 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + ldr r2, _0815597C @ =0x00003020 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _08155966 + strb r5, [r1] +_08155966: + ldr r1, [r4] + ldr r3, _08155980 @ =0x00003014 + adds r1, r3 + b _081559DA + .align 2, 0 +_08155970: .4byte gUnknown_203F440 +_08155974: .4byte 0x00003009 +_08155978: .4byte gMain +_0815597C: .4byte 0x00003020 +_08155980: .4byte 0x00003014 +_08155984: + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _081559BC + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + ldr r2, _081559A8 @ =0x00003020 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x1 + beq _081559B2 + cmp r0, 0x1 + bgt _081559AC + cmp r0, 0 + beq _081559B2 + b _08155A58 + .align 2, 0 +_081559A8: .4byte 0x00003020 +_081559AC: + cmp r0, 0x2 + beq _081559B8 + b _08155A58 +_081559B2: + movs r0, 0x2 + strb r0, [r1] + b _08155A58 +_081559B8: + strb r5, [r1] + b _08155A58 +_081559BC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08155A58 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + ldr r3, _081559E4 @ =0x00003020 + adds r0, r3 + movs r1, 0x2 strb r1, [r0] - b _0814AEF8 - .align 2, 0 -_0814AED8: .4byte gMonFrontPicTable -_0814AEDC: .4byte 0xffff0000 -_0814AEE0: .4byte 0x000081a8 -_0814AEE4: .4byte gSprites -_0814AEE8: .4byte 0x000081fc -_0814AEEC: - lsls r0, r6, 2 - ldr r1, _0814AF08 @ =0x000081a8 - add r1, r9 + ldr r1, [r4] + ldr r0, _081559E8 @ =0x00003014 adds r1, r0 +_081559DA: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08155A58 + .align 2, 0 +_081559E4: .4byte 0x00003020 +_081559E8: .4byte 0x00003014 +_081559EC: + mov r1, r10 + ldr r0, [r1] + ldr r2, _08155A68 @ =0x00003020 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r3, _08155A6C @ =0x00003024 + adds r0, r3 + strb r1, [r0] + mov r1, r10 + ldr r0, [r1] + ldr r5, _08155A70 @ =0x00003008 + adds r0, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + mov r2, r10 + ldr r0, [r2] + ldr r4, _08155A74 @ =0x00003009 + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + mov r3, r10 + ldr r0, [r3] + adds r0, r5 + ldrb r0, [r0] + bl RemoveWindow + mov r1, r10 + ldr r0, [r1] + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] movs r0, 0 - str r0, [r1] -_0814AEF8: - add sp, 0x34 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + mov r2, r10 + ldr r0, [r2] + movs r3, 0xC0 + lsls r3, 6 + adds r0, r3 + movs r1, 0x1 + str r1, [r0] +_08155A58: + add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 @@ -6970,1086 +10623,789 @@ _0814AEF8: pop {r0} bx r0 .align 2, 0 -_0814AF08: .4byte 0x000081a8 - thumb_func_end sub_814ADCC +_08155A68: .4byte 0x00003020 +_08155A6C: .4byte 0x00003024 +_08155A70: .4byte 0x00003008 +_08155A74: .4byte 0x00003009 + thumb_func_end sub_81556E0 - thumb_func_start sub_814AF0C -sub_814AF0C: @ 814AF0C + thumb_func_start sub_8155A78 +sub_8155A78: @ 8155A78 push {r4-r6,lr} - adds r4, r0, 0 - lsls r6, r1, 2 - ldr r0, _0814AF64 @ =0x000081bc - adds r5, r4, r0 - adds r5, r6 + sub sp, 0x10 + ldr r5, _08155A94 @ =gUnknown_203F440 ldr r0, [r5] - bl sub_814ADB4 - ldr r2, [r5] - ldr r0, _0814AF68 @ =0x000081a8 - adds r4, r0 - adds r4, r6 - ldr r1, [r4] - ldr r0, _0814AF6C @ =gSprites - subs r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r1, r0, 8 - adds r0, r1 - lsls r1, r0, 16 - adds r0, r1 - negs r0, r0 - asrs r0, 2 - strh r0, [r2, 0x3C] - ldr r1, [r5] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] + ldr r6, _08155A98 @ =0x00003014 + adds r0, r6 + ldrb r4, [r0] + cmp r4, 0x1 + beq _08155AD0 + cmp r4, 0x1 + bgt _08155A9C + cmp r4, 0 + beq _08155AA6 + b _08155B18 + .align 2, 0 +_08155A94: .4byte gUnknown_203F440 +_08155A98: .4byte 0x00003014 +_08155A9C: + cmp r4, 0x2 + beq _08155AE4 + cmp r4, 0x3 + beq _08155AFC + b _08155B18 +_08155AA6: + movs r0, 0 + movs r1, 0 + bl DrawDialogueFrame + ldr r2, _08155ACC @ =gUnknown_8419F54 + str r4, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParametrized + b _08155B08 + .align 2, 0 +_08155ACC: .4byte gUnknown_8419F54 +_08155AD0: + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram ldr r1, [r5] - movs r0, 0x60 - strh r0, [r1, 0x22] - ldr r0, [r5] - ldr r1, _0814AF70 @ =sub_814AF74 - str r1, [r0, 0x1C] - movs r1, 0x1 - bl StartSpriteAnim - pop {r4-r6} - pop {r0} - bx r0 + ldr r0, _08155AE0 @ =0x00003014 + adds r1, r0 + b _08155B0C .align 2, 0 -_0814AF64: .4byte 0x000081bc -_0814AF68: .4byte 0x000081a8 -_0814AF6C: .4byte gSprites -_0814AF70: .4byte sub_814AF74 - thumb_func_end sub_814AF0C - - thumb_func_start sub_814AF74 -sub_814AF74: @ 814AF74 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0814AFA0 - cmp r0, 0x1 - bgt _0814AF8A +_08155AE0: .4byte 0x00003014 +_08155AE4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 cmp r0, 0 - beq _0814AF90 - b _0814AFDE -_0814AF8A: - cmp r0, 0x2 - beq _0814AFC0 - b _0814AFDE -_0814AF90: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 + bne _08155B40 + ldr r0, _08155AF8 @ =sub_80DA634 + movs r1, 0 + bl CreateTask + b _08155B08 + .align 2, 0 +_08155AF8: .4byte sub_80DA634 +_08155AFC: + ldr r0, _08155B14 @ =sub_80DA634 + bl FuncIsActiveTask + lsls r0, 24 cmp r0, 0 - beq _0814AFDE - b _0814AFCE -_0814AFA0: - ldrh r1, [r2, 0x22] - subs r1, 0x1 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x48 - bgt _0814AFDE - movs r0, 0x48 - strh r0, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _0814AFDE -_0814AFC0: - ldrh r0, [r2, 0x30] + bne _08155B40 +_08155B08: + ldr r1, [r5] + adds r1, r6 +_08155B0C: + ldrb r0, [r1] adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _0814AFDE -_0814AFCE: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldr r0, _0814AFE4 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0814AFDE: - pop {r0} - bx r0 + strb r0, [r1] + b _08155B40 .align 2, 0 -_0814AFE4: .4byte SpriteCallbackDummy - thumb_func_end sub_814AF74 - - thumb_func_start sub_814AFE8 -sub_814AFE8: @ 814AFE8 - push {lr} - lsls r1, 2 - ldr r2, _0814B008 @ =0x000081a8 - adds r0, r2 - adds r0, r1 - ldr r2, [r0] - ldr r1, _0814B00C @ =sub_814B038 - str r1, [r2, 0x1C] +_08155B14: .4byte sub_80DA634 +_08155B18: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 movs r1, 0 - strh r1, [r2, 0x26] + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, _08155B48 @ =gUnknown_203F440 ldr r0, [r0] - bl sub_814ADB4 + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 + movs r1, 0x1 + str r1, [r0] +_08155B40: + add sp, 0x10 + pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0814B008: .4byte 0x000081a8 -_0814B00C: .4byte sub_814B038 - thumb_func_end sub_814AFE8 +_08155B48: .4byte gUnknown_203F440 + thumb_func_end sub_8155A78 - thumb_func_start sub_814B010 -sub_814B010: @ 814B010 - push {lr} - movs r2, 0 - lsls r1, 2 - ldr r3, _0814B030 @ =0x000081a8 - adds r0, r3 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0, 0x1C] - ldr r0, _0814B034 @ =sub_814B038 - cmp r1, r0 - bne _0814B028 - movs r2, 0x1 -_0814B028: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814B030: .4byte 0x000081a8 -_0814B034: .4byte sub_814B038 - thumb_func_end sub_814B010 - - thumb_func_start sub_814B038 -sub_814B038: @ 814B038 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 + thumb_func_start sub_8155B4C +sub_8155B4C: @ 8155B4C + push {r4-r6,lr} + sub sp, 0xC + ldr r1, _08155B6C @ =gUnknown_203F440 + ldr r2, [r1] + ldr r6, _08155B70 @ =0x00003014 + adds r0, r2, r6 + ldrb r0, [r0] + adds r5, r1, 0 cmp r0, 0x1 - ble _0814B064 - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - movs r1, 0x1 - ands r0, r1 + beq _08155BA4 + cmp r0, 0x1 + bgt _08155B74 cmp r0, 0 - beq _0814B05C - movs r0, 0x2 - b _0814B05E -_0814B05C: - ldr r0, _0814B078 @ =0x0000fffe -_0814B05E: - strh r0, [r2, 0x26] - movs r0, 0 - strh r0, [r2, 0x30] -_0814B064: - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0xC - ble _0814B074 - movs r0, 0 - strh r0, [r2, 0x26] - ldr r0, _0814B07C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0814B074: - pop {r0} - bx r0 + beq _08155B7A + b _08155C18 .align 2, 0 -_0814B078: .4byte 0x0000fffe -_0814B07C: .4byte SpriteCallbackDummy - thumb_func_end sub_814B038 - - thumb_func_start sub_814B080 -sub_814B080: @ 814B080 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 2 - ldr r0, _0814B0A0 @ =0x000081a8 - adds r4, r0 - adds r4, r1 - ldr r0, [r4] - bl sub_814ADB4 - ldr r1, [r4] - ldr r0, _0814B0A4 @ =sub_814B100 - str r0, [r1, 0x1C] - pop {r4} - pop {r0} - bx r0 +_08155B6C: .4byte gUnknown_203F440 +_08155B70: .4byte 0x00003014 +_08155B74: + cmp r0, 0x2 + beq _08155BEC + b _08155C18 +_08155B7A: + ldr r4, _08155B9C @ =gUnknown_84756A4 + adds r0, r4, 0 + bl AddWindow + ldr r1, [r5] + ldr r2, _08155BA0 @ =0x00003008 + adds r1, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r2 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r4, 0 + bl sub_8154868 + b _08155C08 + .align 2, 0 +_08155B9C: .4byte gUnknown_84756A4 +_08155BA0: .4byte 0x00003008 +_08155BA4: + ldr r4, _08155BE0 @ =0x00003008 + adds r0, r2, r4 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + ldr r2, _08155BE4 @ =gUnknown_841CE24 + movs r1, 0x6 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r5] + ldr r0, _08155BE8 @ =0x00003014 + adds r1, r0 + b _08155C0C .align 2, 0 -_0814B0A0: .4byte 0x000081a8 -_0814B0A4: .4byte sub_814B100 - thumb_func_end sub_814B080 - - thumb_func_start sub_814B0A8 -sub_814B0A8: @ 814B0A8 - push {r4-r7,lr} - adds r4, r0, 0 - bl sub_81499A4 - lsls r0, 16 - lsrs r0, 16 +_08155BE0: .4byte 0x00003008 +_08155BE4: .4byte gUnknown_841CE24 +_08155BE8: .4byte 0x00003014 +_08155BEC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 cmp r0, 0 - beq _0814B0EC - movs r1, 0x5 - negs r1, r1 - mov r12, r1 - ldr r1, _0814B0F4 @ =0x000081a8 - adds r3, r4, r1 - ldr r7, _0814B0F8 @ =sub_814B100 - ldr r6, _0814B0FC @ =SpriteCallbackDummy - movs r5, 0xA - adds r4, r0, 0 -_0814B0CA: - ldr r2, [r3] - ldr r0, [r2, 0x1C] - cmp r0, r7 - bne _0814B0E4 - adds r2, 0x3E - ldrb r1, [r2] - mov r0, r12 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - str r6, [r0, 0x1C] - adds r0, 0x43 - strb r5, [r0] -_0814B0E4: - adds r3, 0x4 - subs r4, 0x1 - cmp r4, 0 - bne _0814B0CA -_0814B0EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814B0F4: .4byte 0x000081a8 -_0814B0F8: .4byte sub_814B100 -_0814B0FC: .4byte SpriteCallbackDummy - thumb_func_end sub_814B0A8 - - thumb_func_start sub_814B100 -sub_814B100: @ 814B100 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0814B12E + bne _08155C02 + ldr r0, [r5] + ldr r1, _08155C14 @ =0x00003008 + adds r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap +_08155C02: movs r0, 0 - strh r0, [r3, 0x2E] - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0814B12E: - pop {r0} - bx r0 - thumb_func_end sub_814B100 - - thumb_func_start sub_814B134 -sub_814B134: @ 814B134 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81499A4 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r3 - bge _0814B15E - ldr r0, _0814B164 @ =0x000081fc - adds r5, r4, r0 - subs r0, 0x54 - adds r4, r0 -_0814B14E: - ldm r4!, {r0} - adds r1, r5, r2 - ldrb r1, [r1] - adds r0, 0x43 - strb r1, [r0] - adds r2, 0x1 - cmp r2, r3 - blt _0814B14E -_0814B15E: - pop {r4,r5} - pop {r0} - bx r0 + bl CopyBgTilemapBufferToVram +_08155C08: + ldr r1, [r5] + adds r1, r6 +_08155C0C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08155C24 .align 2, 0 -_0814B164: .4byte 0x000081fc - thumb_func_end sub_814B134 - - thumb_func_start sub_814B168 -sub_814B168: @ 814B168 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 2 - ldr r0, _0814B188 @ =0x000081a8 - adds r4, r0 - adds r4, r1 - ldr r0, [r4] - bl sub_814ADB4 - ldr r1, [r4] - ldr r0, _0814B18C @ =sub_814B1CC - str r0, [r1, 0x1C] - pop {r4} +_08155C14: .4byte 0x00003008 +_08155C18: + ldr r0, [r5] + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 + movs r1, 0x1 + str r1, [r0] +_08155C24: + add sp, 0xC + pop {r4-r6} pop {r0} bx r0 - .align 2, 0 -_0814B188: .4byte 0x000081a8 -_0814B18C: .4byte sub_814B1CC - thumb_func_end sub_814B168 + thumb_func_end sub_8155B4C - thumb_func_start sub_814B190 -sub_814B190: @ 814B190 + thumb_func_start sub_8155C2C +sub_8155C2C: @ 8155C2C push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81499A4 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r3 - bge _0814B1C4 - ldr r5, _0814B1B4 @ =sub_814B1CC - ldr r0, _0814B1B8 @ =0x000081a8 - adds r1, r4, r0 -_0814B1A8: - ldr r0, [r1] - ldr r0, [r0, 0x1C] - cmp r0, r5 - bne _0814B1BC - movs r0, 0x1 - b _0814B1C6 - .align 2, 0 -_0814B1B4: .4byte sub_814B1CC -_0814B1B8: .4byte 0x000081a8 -_0814B1BC: - adds r1, 0x4 - adds r2, 0x1 - cmp r2, r3 - blt _0814B1A8 -_0814B1C4: + sub sp, 0x8 + ldr r5, _08155C78 @ =gUnknown_203F440 + ldr r0, [r5] + ldr r4, _08155C7C @ =0x00003008 + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] movs r0, 0 -_0814B1C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814B190 - - thumb_func_start sub_814B1CC -sub_814B1CC: @ 814B1CC - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r4, [r5, r0] - cmp r4, 0 - beq _0814B1DE - cmp r4, 0x1 - beq _0814B1EC - b _0814B234 -_0814B1DE: - movs r0, 0x1C - bl PlaySE - strh r4, [r5, 0x30] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0814B1EC: - ldrh r0, [r5, 0x30] - adds r0, 0x4 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _0814B1FE + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 movs r0, 0 - strh r0, [r5, 0x30] -_0814B1FE: - ldr r1, _0814B22C @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 + bl CopyBgTilemapBufferToVram + ldr r0, [r5] + movs r1, 0xC0 + lsls r1, 6 adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - negs r0, r0 - strh r0, [r5, 0x26] - movs r0, 0x30 - ldrsh r1, [r5, r0] - cmp r1, 0 - bne _0814B234 - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _0814B230 - strh r1, [r5, 0x2E] - b _0814B234 - .align 2, 0 -_0814B22C: .4byte gSineTable -_0814B230: - ldr r0, _0814B23C @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_0814B234: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814B23C: .4byte SpriteCallbackDummy - thumb_func_end sub_814B1CC - - thumb_func_start sub_814B240 -sub_814B240: @ 814B240 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r3, 24 - lsrs r4, r3, 24 - ldr r0, _0814B288 @ =gUnknown_846E2B4 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0814B280 - ldr r0, _0814B28C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - lsls r2, r4, 2 - ldr r3, _0814B290 @ =0x000081bc - adds r0, r5, r3 - adds r0, r2 + movs r1, 0x1 str r1, [r0] -_0814B280: + add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0814B288: .4byte gUnknown_846E2B4 -_0814B28C: .4byte gSprites -_0814B290: .4byte 0x000081bc - thumb_func_end sub_814B240 +_08155C78: .4byte gUnknown_203F440 +_08155C7C: .4byte 0x00003008 + thumb_func_end sub_8155C2C - thumb_func_start sub_814B294 -sub_814B294: @ 814B294 + thumb_func_start sub_8155C80 +sub_8155C80: @ 8155C80 push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 - movs r4, 0 - ldr r6, _0814B334 @ =gUnknown_846E100 -_0814B29E: - ldr r1, _0814B338 @ =gUnknown_846E160 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - ldr r2, _0814B33C @ =gUnknown_846E150 - lsls r1, r5, 1 + sub sp, 0xC + ldr r0, _08155CA0 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r7, _08155CA4 @ =0x00003014 + adds r2, r1, r7 + ldrb r5, [r2] + adds r6, r0, 0 + cmp r5, 0x1 + beq _08155D08 + cmp r5, 0x1 + bgt _08155CA8 + cmp r5, 0 + beq _08155CB2 + b _08155D9C + .align 2, 0 +_08155CA0: .4byte gUnknown_203F440 +_08155CA4: .4byte 0x00003014 +_08155CA8: + cmp r5, 0x2 + beq _08155D50 + cmp r5, 0x3 + beq _08155D7C + b _08155D9C +_08155CB2: + ldr r4, _08155CF8 @ =gUnknown_847569C + adds r0, r4, 0 + bl AddWindow + ldr r1, [r6] + ldr r2, _08155CFC @ =0x00003008 adds r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, r2 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r4, 0 + bl sub_8154868 + ldr r1, [r6] + adds r1, r7 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + ldr r2, _08155D00 @ =0x0000301c + adds r1, r0, r2 movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r6, r3] - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r5, 2 - ldr r3, _0814B340 @ =0x000081d0 - adds r2, r7, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814B344 @ =gSprites + strh r5, [r1] + ldr r1, _08155D04 @ =0x00003020 adds r0, r1 - str r0, [r2] - adds r5, 0x1 - adds r6, 0x14 - adds r4, 0x1 - cmp r4, 0x3 - ble _0814B29E - movs r4, 0x3 - movs r6, 0x3C -_0814B2E0: - ldr r1, _0814B338 @ =gUnknown_846E160 - lsls r0, r4, 2 + strb r2, [r0] + ldr r0, [r6] + adds r1, 0x4 adds r0, r1 - ldr r0, [r0] - ldr r2, _0814B33C @ =gUnknown_846E150 - lsls r1, r5, 1 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, _0814B334 @ =gUnknown_846E100 - adds r2, r6, r2 + strb r2, [r0] + b _08155DE2 + .align 2, 0 +_08155CF8: .4byte gUnknown_847569C +_08155CFC: .4byte 0x00003008 +_08155D00: .4byte 0x0000301c +_08155D04: .4byte 0x00003020 +_08155D08: + ldr r4, _08155D44 @ =0x00003008 + adds r0, r1, r4 + ldrb r0, [r0] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + ldr r2, _08155D48 @ =gUnknown_841CDEB + movs r1, 0x6 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x2 movs r3, 0 - ldrsh r2, [r2, r3] - movs r3, 0x2 - bl CreateSprite + bl AddTextPrinterParameterized + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r6] + ldr r2, _08155D4C @ =0x00003014 + adds r1, r2 + b _08155D70 + .align 2, 0 +_08155D44: .4byte 0x00003008 +_08155D48: .4byte gUnknown_841CDEB +_08155D4C: .4byte 0x00003014 +_08155D50: + bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r5, 2 - ldr r3, _0814B340 @ =0x000081d0 - adds r2, r7, r3 - adds r2, r0 - lsls r0, r1, 4 + cmp r0, 0 + bne _08155D66 + ldr r0, [r6] + ldr r1, _08155D78 @ =0x00003008 adds r0, r1 - lsls r0, 2 - ldr r1, _0814B344 @ =gSprites + ldrb r0, [r0] + bl PutWindowTilemap +_08155D66: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r1, [r6] + adds r1, r7 +_08155D70: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08155DE2 + .align 2, 0 +_08155D78: .4byte 0x00003008 +_08155D7C: + ldr r0, _08155D98 @ =0x0000301c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x77 + bls _08155DE2 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _08155DE2 + .align 2, 0 +_08155D98: .4byte 0x0000301c +_08155D9C: + ldr r0, [r6] + ldr r1, _08155DEC @ =0x00003024 adds r0, r1 - str r0, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 + movs r1, 0x5 strb r1, [r0] - adds r5, 0x1 - subs r6, 0x14 - subs r4, 0x1 - cmp r4, 0 - bge _0814B2E0 + ldr r0, [r6] + ldr r4, _08155DF0 @ =0x00003008 + adds r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + movs r2, 0xC0 + lsls r2, 6 + adds r0, r2 + movs r1, 0x1 + str r1, [r0] +_08155DE2: + add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814B334: .4byte gUnknown_846E100 -_0814B338: .4byte gUnknown_846E160 -_0814B33C: .4byte gUnknown_846E150 -_0814B340: .4byte 0x000081d0 -_0814B344: .4byte gSprites - thumb_func_end sub_814B294 +_08155DEC: .4byte 0x00003024 +_08155DF0: .4byte 0x00003008 + thumb_func_end sub_8155C80 - thumb_func_start sub_814B348 -sub_814B348: @ 814B348 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp, 0x8] - cmp r1, 0x5 - ble _0814B368 - movs r0, 0xA - subs r1, r0, r1 - movs r0, 0x3 - str r0, [sp] - ldr r2, [sp, 0x8] - ldrb r0, [r2, 0xF] - b _0814B370 -_0814B368: - movs r3, 0x2 - str r3, [sp] - ldr r7, [sp, 0x8] - ldrb r0, [r7, 0xE] -_0814B370: - movs r6, 0 - lsls r2, r1, 1 - str r2, [sp, 0x4] - lsls r0, 4 - mov r9, r0 - lsls r1, 24 - mov r8, r1 - ldr r0, _0814B434 @ =gUnknown_846E100 - adds r4, r2, r0 - ldr r3, [sp] - lsls r3, 2 - mov r10, r3 - movs r5, 0x3 -_0814B38A: - lsls r0, r6, 2 - ldr r7, [sp, 0x8] - ldr r1, _0814B438 @ =0x000081d0 - adds r2, r7, r1 - adds r2, r0 - ldr r1, [r2] - ldrh r0, [r4] - strh r0, [r1, 0x22] - ldr r3, [r2] - ldrb r0, [r3, 0x5] - movs r7, 0xD - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - mov r1, r10 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xF - ands r0, r1 - mov r7, r9 - orrs r0, r7 - strb r0, [r3, 0x5] - ldr r0, [r2] - mov r2, r8 - lsrs r1, r2, 24 - bl StartSpriteAnim - adds r6, 0x1 - adds r4, 0x14 - subs r5, 0x1 - cmp r5, 0 - bge _0814B38A - movs r5, 0x3 - ldr r0, _0814B434 @ =gUnknown_846E100 - ldr r3, [sp, 0x4] - adds r0, r3, r0 - adds r4, r0, 0 - adds r4, 0x3C - ldr r7, [sp] - lsls r7, 2 - mov r10, r7 -_0814B3E0: - lsls r0, r6, 2 - ldr r1, [sp, 0x8] - ldr r3, _0814B438 @ =0x000081d0 - adds r2, r1, r3 - adds r2, r0 - ldr r1, [r2] - ldrh r0, [r4] - strh r0, [r1, 0x22] - ldr r3, [r2] - ldrb r0, [r3, 0x5] - movs r7, 0xD - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - mov r1, r10 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xF - ands r0, r1 - mov r7, r9 - orrs r0, r7 - strb r0, [r3, 0x5] - ldr r0, [r2] - mov r2, r8 - lsrs r1, r2, 24 - bl StartSpriteAnim - adds r6, 0x1 - subs r4, 0x14 - subs r5, 0x1 - cmp r5, 0 - bge _0814B3E0 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} + thumb_func_start unused_0 +unused_0: @ 8155DF4 + push {r4,lr} + ldr r4, _08155E18 @ =gUnknown_203F440 + ldr r0, [r4] + ldr r1, _08155E1C @ =0x00003004 + adds r0, r1 + ldrb r0, [r0] + bl DestroyTask + ldr r0, [r4] + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 + movs r1, 0x1 + str r1, [r0] + pop {r4} pop {r0} bx r0 .align 2, 0 -_0814B434: .4byte gUnknown_846E100 -_0814B438: .4byte 0x000081d0 - thumb_func_end sub_814B348 +_08155E18: .4byte gUnknown_203F440 +_08155E1C: .4byte 0x00003004 + thumb_func_end unused_0 + + thumb_func_start nullsub_98 +nullsub_98: @ 8155E20 + bx lr + thumb_func_end nullsub_98 - thumb_func_start sub_814B43C -sub_814B43C: @ 814B43C + thumb_func_start sub_8155E24 +sub_8155E24: @ 8155E24 push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0x7 - movs r2, 0x78 - movs r3, 0x50 - bl sub_815F138 - adds r0, r4, 0 - bl sub_814B134 - add sp, 0x4 + ldr r2, _08155E48 @ =gUnknown_203F440 + ldr r1, [r2] + ldr r3, _08155E4C @ =0x00003014 + adds r1, r3 + movs r3, 0 + strb r3, [r1] + ldr r1, [r2] + movs r4, 0xC0 + lsls r4, 6 + adds r2, r1, r4 + str r3, [r2] + ldr r2, _08155E50 @ =0x00003028 + adds r1, r2 + str r0, [r1] pop {r4} pop {r0} bx r0 - thumb_func_end sub_814B43C - - thumb_func_start sub_814B460 -sub_814B460: @ 814B460 - push {lr} - bl sub_815F198 - pop {r1} - bx r1 - thumb_func_end sub_814B460 + .align 2, 0 +_08155E48: .4byte gUnknown_203F440 +_08155E4C: .4byte 0x00003014 +_08155E50: .4byte 0x00003028 + thumb_func_end sub_8155E24 - thumb_func_start sub_814B46C -sub_814B46C: @ 814B46C - ldr r0, _0814B478 @ =gSaveBlock2Ptr + thumb_func_start sub_8155E54 +sub_8155E54: @ 8155E54 + ldr r0, _08155E60 @ =gUnknown_203F440 ldr r0, [r0] - movs r1, 0xB0 - lsls r1, 4 + ldr r1, _08155E64 @ =0x00003028 adds r0, r1 + ldr r0, [r0] bx lr .align 2, 0 -_0814B478: .4byte gSaveBlock2Ptr - thumb_func_end sub_814B46C +_08155E60: .4byte gUnknown_203F440 +_08155E64: .4byte 0x00003028 + thumb_func_end sub_8155E54 - thumb_func_start ResetPokeJumpResults -ResetPokeJumpResults: @ 814B47C + thumb_func_start sub_8155E68 +sub_8155E68: @ 8155E68 push {lr} - bl sub_814B46C - movs r1, 0 - strh r1, [r0] - str r1, [r0, 0xC] - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - str r1, [r0, 0x8] - strh r1, [r0, 0x2] - pop {r0} - bx r0 - thumb_func_end ResetPokeJumpResults - - thumb_func_start sub_814B494 -sub_814B494: @ 814B494 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - bl sub_814B46C - adds r1, r0, 0 - movs r2, 0 - ldr r0, [r1, 0xC] - cmp r0, r4 - bcs _0814B4B8 - ldr r0, _0814B4E0 @ =0x00018696 - cmp r4, r0 - bhi _0814B4B8 - str r4, [r1, 0xC] - movs r2, 0x1 -_0814B4B8: - ldrh r0, [r1] - cmp r0, r5 - bcs _0814B4C8 - ldr r0, _0814B4E4 @ =0x0000270f - cmp r5, r0 - bhi _0814B4C8 - strh r5, [r1] - movs r2, 0x1 -_0814B4C8: - ldrh r0, [r1, 0x4] - cmp r0, r6 - bcs _0814B4D8 - ldr r0, _0814B4E4 @ =0x0000270f - cmp r6, r0 - bhi _0814B4D8 - strh r6, [r1, 0x4] - movs r2, 0x1 -_0814B4D8: - adds r0, r2, 0 - pop {r4-r6} + ldr r0, _08155E80 @ =gUnknown_203F440 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 6 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x1 + beq _08155E84 + movs r0, 0x1 + b _08155E86 + .align 2, 0 +_08155E80: .4byte gUnknown_203F440 +_08155E84: + movs r0, 0 +_08155E86: pop {r1} bx r1 - .align 2, 0 -_0814B4E0: .4byte 0x00018696 -_0814B4E4: .4byte 0x0000270f - thumb_func_end sub_814B494 + thumb_func_end sub_8155E68 - thumb_func_start sub_814B4E8 -sub_814B4E8: @ 814B4E8 - push {lr} - bl sub_814B46C - adds r2, r0, 0 - ldrh r1, [r2, 0x6] - ldr r0, _0814B500 @ =0x0000270e - cmp r1, r0 - bhi _0814B4FC - adds r0, r1, 0x1 - strh r0, [r2, 0x6] -_0814B4FC: - pop {r0} - bx r0 + thumb_func_start sub_8155E8C +sub_8155E8C: @ 8155E8C + ldr r0, _08155E98 @ =gUnknown_203F440 + ldr r0, [r0] + ldr r1, _08155E9C @ =0x00003024 + adds r0, r1 + ldrb r0, [r0] + bx lr .align 2, 0 -_0814B500: .4byte 0x0000270e - thumb_func_end sub_814B4E8 +_08155E98: .4byte gUnknown_203F440 +_08155E9C: .4byte 0x00003024 + thumb_func_end sub_8155E8C - thumb_func_start sub_814B504 -sub_814B504: @ 814B504 - push {r4,lr} - ldr r4, _0814B520 @ =sub_814B524 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask + thumb_func_start sub_8155EA0 +sub_8155EA0: @ 8155EA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + mov r2, sp + movs r6, 0 + ldr r1, _08155FD0 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08155FD4 @ =0x81000800 + movs r0, 0x81 lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814B520: .4byte sub_814B524 - thumb_func_end sub_814B504 - - thumb_func_start sub_814B524 -sub_814B524: @ 814B524 - push {r4,r5,lr} + mov r12, r0 +_08155EC6: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _08155EC6 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, _08155FD0 @ =0x040000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0814B548 @ =gTasks+0x8 - adds r4, r0, r1 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0 movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0814B570 - cmp r0, 0x1 - bgt _0814B54C - cmp r0, 0 - beq _0814B556 - b _0814B5BE - .align 2, 0 -_0814B548: .4byte gTasks+0x8 -_0814B54C: - cmp r0, 0x2 - beq _0814B57C - cmp r0, 0x3 - beq _0814B5A4 - b _0814B5BE -_0814B556: - ldr r0, _0814B56C @ =gUnknown_846E2CC - bl AddWindow - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x2] - bl sub_814B5C4 - ldrb r0, [r4, 0x2] - movs r1, 0x3 - b _0814B592 - .align 2, 0 -_0814B56C: .4byte gUnknown_846E2CC -_0814B570: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814B5BE - b _0814B596 -_0814B57C: - ldr r0, _0814B5A0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0814B5BE - ldrb r0, [r4, 0x2] - bl rbox_fill_rectangle - ldrb r0, [r4, 0x2] - movs r1, 0x1 -_0814B592: - bl CopyWindowToVram -_0814B596: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0814B5BE - .align 2, 0 -_0814B5A0: .4byte gMain -_0814B5A4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814B5BE - ldrb r0, [r4, 0x2] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_0814B5BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814B524 - - thumb_func_start sub_814B5C4 -sub_814B5C4: @ 814B5C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x28] - bl sub_814B46C - ldrh r1, [r0] - str r1, [sp, 0x14] - ldr r1, [r0, 0xC] - str r1, [sp, 0x18] - ldrh r0, [r0, 0x4] - str r0, [sp, 0x1C] - ldr r0, [sp, 0x28] - lsls r4, r0, 24 - lsrs r4, 24 - ldr r5, _0814B6C8 @ =0x0000021d - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xD0 - bl sub_814FF2C - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xD - bl DrawTextBorderOuter - adds r0, r4, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _0814B6CC @ =gUnknown_841CB63 + bl SetGpuReg + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08155FD8 @ =gUnknown_847565C + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + movs r0, 0 movs r1, 0 - str r1, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r1, [sp, 0x8] + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY movs r0, 0x1 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x2 - movs r3, 0 - bl sub_812E62C - movs r7, 0 - mov r8, r4 - movs r1, 0xFF - mov r10, r1 - movs r6, 0 - mov r0, sp - adds r0, 0x14 - str r0, [sp, 0x2C] - movs r1, 0xA0 - lsls r1, 21 - mov r9, r1 - add r5, sp, 0x20 -_0814B63E: - ldr r1, _0814B6D0 @ =gUnknown_846E2D4 - lsls r0, r7, 2 - adds r0, r1 - ldr r2, [r0] - mov r0, r9 - lsrs r4, r0, 24 - str r4, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r6, [sp, 0x8] + movs r1, 0 + movs r2, 0 + bl ChangeBgX movs r0, 0x1 - str r0, [sp, 0xC] - str r6, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - movs r3, 0 - bl sub_812E62C - ldr r0, [sp, 0x2C] - ldm r0!, {r1} - str r0, [sp, 0x2C] - adds r0, r5, 0 + movs r1, 0 movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - bl sub_814B6D4 + bl ChangeBgY movs r0, 0x2 - adds r1, r5, 0 + movs r1, 0 movs r2, 0 - bl GetStringWidth - movs r3, 0xDE - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - str r4, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - str r6, [sp, 0xC] - str r6, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - adds r2, r5, 0 - bl sub_812E62C - movs r0, 0xE0 - lsls r0, 20 - add r9, r0 - adds r7, 0x1 - ldr r1, [sp, 0x28] - lsls r0, r1, 24 - cmp r7, 0x2 - bls _0814B63E - lsrs r0, 24 - bl PutWindowTilemap - add sp, 0x30 - pop {r3-r5} + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + bl InitStandardTextBoxWindows + bl ResetBg0 + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + ldr r4, _08155FDC @ =gUnknown_203F440 + ldr r1, [r4] + movs r0, 0x3 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 5 + adds r1, r2 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, 0x80 + lsls r0, 6 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + add sp, 0x8 + pop {r3} mov r8, r3 - mov r9, r4 - mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0814B6C8: .4byte 0x0000021d -_0814B6CC: .4byte gUnknown_841CB63 -_0814B6D0: .4byte gUnknown_846E2D4 - thumb_func_end sub_814B5C4 +_08155FD0: .4byte 0x040000d4 +_08155FD4: .4byte 0x81000800 +_08155FD8: .4byte gUnknown_847565C +_08155FDC: .4byte gUnknown_203F440 + thumb_func_end sub_8155EA0 - thumb_func_start sub_814B6D4 -sub_814B6D4: @ 814B6D4 + thumb_func_start sub_8155FE0 +sub_8155FE0: @ 8155FE0 push {lr} - adds r1, r0, 0 - b _0814B6DC -_0814B6DA: - adds r1, 0x1 -_0814B6DC: + sub sp, 0x4 + ldr r0, _08155FFC @ =gUnknown_203F440 + ldr r0, [r0] + ldr r2, _08156000 @ =0x00003018 + adds r1, r0, r2 ldrb r0, [r1] - cmp r0, 0xFF - beq _0814B6EA - cmp r0, 0 - bne _0814B6DA - movs r0, 0xFF + cmp r0, 0x5 + bhi _0815607A + lsls r0, 2 + ldr r1, _08156004 @ =_08156008 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08155FFC: .4byte gUnknown_203F440 +_08156000: .4byte 0x00003018 +_08156004: .4byte _08156008 + .align 2, 0 +_08156008: + .4byte _08156020 + .4byte _08156030 + .4byte _08156036 + .4byte _08156044 + .4byte _0815605C + .4byte _0815606A +_08156020: + ldr r0, _0815602C @ =gUnknown_84758A8 + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + b _08156082 + .align 2, 0 +_0815602C: .4byte gUnknown_84758A8 +_08156030: + bl reset_temp_tile_data_buffers + b _08156082 +_08156036: + ldr r1, _08156040 @ =gUnknown_8475B3C + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + b _0815604C + .align 2, 0 +_08156040: .4byte gUnknown_8475B3C +_08156044: + ldr r1, _08156058 @ =gUnknown_84763CC + movs r0, 0 + str r0, [sp] + movs r0, 0x1 +_0815604C: + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _08156082 + .align 2, 0 +_08156058: .4byte gUnknown_84763CC +_0815605C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08156082 + b _08156090 +_0815606A: + movs r0, 0x3 + bl stdpal_get + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + b _08156082 +_0815607A: + movs r0, 0 strb r0, [r1] -_0814B6EA: - pop {r0} - bx r0 - thumb_func_end sub_814B6D4 + movs r0, 0x1 + b _08156092 +_08156082: + ldr r0, _08156098 @ =gUnknown_203F440 + ldr r1, [r0] + ldr r0, _0815609C @ =0x00003018 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08156090: + movs r0, 0 +_08156092: + add sp, 0x4 + pop {r1} + bx r1 + .align 2, 0 +_08156098: .4byte gUnknown_203F440 +_0815609C: .4byte 0x00003018 + thumb_func_end sub_8155FE0 .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s new file mode 100644 index 000000000..f47e312ff --- /dev/null +++ b/asm/pokemon_jump_2.s @@ -0,0 +1,8055 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8147AA8 +sub_8147AA8: @ 8147AA8 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _08147B20 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _08147B3C + ldr r5, _08147B24 @ =gUnknown_203F3D4 + ldr r0, _08147B28 @ =0x000083b0 + bl Alloc + str r0, [r5] + cmp r0, 0 + beq _08147B3C + bl ResetTasks + ldr r0, _08147B2C @ =sub_8147DA0 + movs r1, 0x1 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, [r5] + movs r1, 0 + strh r1, [r0, 0x8] + str r6, [r0] + strb r4, [r0, 0x4] + bl GetMultiplayerId + ldr r1, [r5] + strb r0, [r1, 0x6] + ldr r0, [r5] + ldrb r2, [r0, 0x6] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + ldr r2, _08147B30 @ =0x000082a8 + adds r1, r2 + adds r0, r1 + movs r1, 0x64 + muls r1, r7 + ldr r2, _08147B34 @ =gPlayerParty + adds r1, r2 + bl sub_8147D2C + ldr r0, [r5] + bl sub_8147B60 + ldr r2, [r5] + adds r0, r4, 0 + movs r1, 0x2 + bl SetWordTaskArg + ldr r0, _08147B38 @ =sub_8147D6C + bl SetMainCallback2 + b _08147B42 + .align 2, 0 +_08147B20: .4byte gReceivedRemoteLinkPlayers +_08147B24: .4byte gUnknown_203F3D4 +_08147B28: .4byte 0x000083b0 +_08147B2C: .4byte sub_8147DA0 +_08147B30: .4byte 0x000082a8 +_08147B34: .4byte gPlayerParty +_08147B38: .4byte sub_8147D6C +_08147B3C: + adds r0, r6, 0 + bl SetMainCallback2 +_08147B42: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8147AA8 + + thumb_func_start sub_8147B48 +sub_8147B48: @ 8147B48 + push {lr} + bl sub_8149D24 + ldr r0, _08147B5C @ =gUnknown_203F3D4 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_08147B5C: .4byte gUnknown_203F3D4 + thumb_func_end sub_8147B48 + + thumb_func_start sub_8147B60 +sub_8147B60: @ 8147B60 + push {r4,lr} + adds r4, r0, 0 + bl GetLinkPlayerCount + movs r2, 0 + strb r0, [r4, 0x5] + adds r1, r4, 0 + adds r1, 0x70 + movs r0, 0x5 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x72 + strh r2, [r0] + bl sub_8147C20 + adds r0, r4, 0 + bl sub_8147B94 + ldrb r0, [r4, 0x5] + cmp r0, 0x5 + bne _08147B8E + bl sub_814B4E8 +_08147B8E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8147B60 + + thumb_func_start sub_8147B94 +sub_8147B94: @ 8147B94 + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x6 + str r0, [r4, 0x14] + str r0, [r4, 0x18] + adds r0, r4, 0 + adds r0, 0x4A + movs r6, 0 + movs r5, 0 + strh r5, [r0] + str r5, [r4, 0x1C] + str r5, [r4, 0x5C] + bl GetMultiplayerId + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _08147BBA + movs r1, 0x1 +_08147BBA: + adds r0, r4, 0 + adds r0, 0x47 + strb r1, [r0] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + str r5, [r4, 0x58] + strh r5, [r4, 0x3A] + subs r0, 0x3 + strb r6, [r0] + str r5, [r4, 0x54] + adds r0, 0x2 + strb r6, [r0] + adds r0, 0x3 + strb r6, [r0] + subs r0, 0x1 + movs r1, 0x1 + strb r1, [r0] + str r5, [r4, 0x78] + adds r0, 0x29 + strb r6, [r0] + adds r0, 0x3 + strh r5, [r0] + str r1, [r4, 0x60] + subs r0, 0x27 + strb r6, [r0] + str r5, [r4, 0x68] + str r5, [r4, 0x64] + str r5, [r4, 0x2C] + str r5, [r4, 0x30] + bl sub_8147C98 + bl sub_81491E4 + movs r2, 0 + adds r5, r4, 0 + adds r5, 0x7C + movs r3, 0 + adds r1, r4, 0 + adds r1, 0x9A +_08147C0C: + adds r0, r5, r2 + strb r3, [r0] + strh r3, [r1] + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x4 + ble _08147C0C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8147B94 + + thumb_func_start sub_8147C20 +sub_8147C20: @ 8147C20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _08147C80 @ =gUnknown_203F3D4 + movs r6, 0 + movs r5, 0 + ldr r0, _08147C84 @ =gUnknown_846B4BC + mov r8, r0 + movs r4, 0x4 +_08147C32: + ldr r0, [r7] + adds r0, r5 + ldr r1, _08147C88 @ =0x000082a8 + adds r0, r1 + ldrh r0, [r0] + bl sub_8147D00 + lsls r0, 16 + ldr r1, [r7] + adds r1, r6 + asrs r0, 14 + add r0, r8 + ldrh r0, [r0, 0x2] + ldr r2, _08147C8C @ =0x000082f0 + adds r1, r2 + strh r0, [r1] + adds r6, 0x28 + adds r5, 0xC + subs r4, 0x1 + cmp r4, 0 + bge _08147C32 + ldr r0, _08147C80 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldr r0, _08147C90 @ =0x000083ac + adds r3, r1, r0 + ldrb r2, [r1, 0x6] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r2, _08147C94 @ =0x000082e4 + adds r0, r2 + adds r1, r0 + str r1, [r3] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08147C80: .4byte gUnknown_203F3D4 +_08147C84: .4byte gUnknown_846B4BC +_08147C88: .4byte 0x000082a8 +_08147C8C: .4byte 0x000082f0 +_08147C90: .4byte 0x000083ac +_08147C94: .4byte 0x000082e4 + thumb_func_end sub_8147C20 + + thumb_func_start sub_8147C98 +sub_8147C98: @ 8147C98 + push {r4-r7,lr} + movs r5, 0 + ldr r6, _08147CE8 @ =gUnknown_203F3D4 + movs r4, 0 + movs r3, 0 +_08147CA2: + ldr r2, [r6] + adds r1, r2, r3 + ldr r7, _08147CEC @ =0x000082f2 + adds r0, r1, r7 + strh r4, [r0] + adds r7, 0x2 + adds r0, r1, r7 + strh r4, [r0] + ldr r0, _08147CF0 @ =0x000082f6 + adds r1, r0 + strh r4, [r1] + ldr r1, _08147CF4 @ =0x000082e4 + adds r0, r2, r1 + adds r0, r3 + str r4, [r0] + subs r7, 0xC + adds r0, r2, r7 + adds r0, r3 + ldr r1, _08147CF8 @ =0x7fffffff + str r1, [r0] + ldr r1, _08147CFC @ =0x000082f8 + adds r0, r2, r1 + adds r0, r3 + str r4, [r0] + adds r2, 0x8B + adds r2, r5 + movs r0, 0x9 + strb r0, [r2] + adds r3, 0x28 + adds r5, 0x1 + cmp r5, 0x4 + ble _08147CA2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08147CE8: .4byte gUnknown_203F3D4 +_08147CEC: .4byte 0x000082f2 +_08147CF0: .4byte 0x000082f6 +_08147CF4: .4byte 0x000082e4 +_08147CF8: .4byte 0x7fffffff +_08147CFC: .4byte 0x000082f8 + thumb_func_end sub_8147C98 + + thumb_func_start sub_8147D00 +sub_8147D00: @ 8147D00 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0 + ldr r2, _08147D18 @ =gUnknown_846B4BC +_08147D0A: + ldrh r0, [r2] + cmp r0, r3 + bne _08147D1C + lsls r0, r1, 16 + asrs r0, 16 + b _08147D28 + .align 2, 0 +_08147D18: .4byte gUnknown_846B4BC +_08147D1C: + adds r2, 0x4 + adds r1, 0x1 + cmp r1, 0x63 + bls _08147D0A + movs r0, 0x1 + negs r0, r0 +_08147D28: + pop {r1} + bx r1 + thumb_func_end sub_8147D00 + + thumb_func_start sub_8147D2C +sub_8147D2C: @ 8147D2C + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [r5, 0x4] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [r5, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8147D2C + + thumb_func_start sub_8147D58 +sub_8147D58: @ 8147D58 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_8147D58 + + thumb_func_start sub_8147D6C +sub_8147D6C: @ 8147D6C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8147D6C + + thumb_func_start sub_8147D84 +sub_8147D84: @ 8147D84 + push {lr} + movs r1, 0x1 + bl CreateTask + ldr r2, _08147D9C @ =gUnknown_203F3D4 + ldr r1, [r2] + movs r3, 0 + strb r0, [r1, 0x4] + ldr r0, [r2] + strh r3, [r0, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_08147D9C: .4byte gUnknown_203F3D4 + thumb_func_end sub_8147D84 + + thumb_func_start sub_8147DA0 +sub_8147DA0: @ 8147DA0 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08147DC0 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0x8] + adds r2, r1, 0 + cmp r0, 0x5 + bls _08147DB6 + b _08147F04 +_08147DB6: + lsls r0, 2 + ldr r1, _08147DC4 @ =_08147DC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08147DC0: .4byte gUnknown_203F3D4 +_08147DC4: .4byte _08147DC8 + .align 2, 0 +_08147DC8: + .4byte _08147DE0 + .4byte _08147E0C + .4byte _08147E3C + .4byte _08147E64 + .4byte _08147EA0 + .4byte _08147ECC +_08147DE0: + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _08147E04 @ =sub_8148E80 + movs r1, 0x5 + bl sub_8148F5C + movs r0, 0x4 + bl FadeOutMapMusic + ldr r0, _08147E08 @ =gUnknown_203F3D4 + ldr r1, [r0] + b _08147EBC + .align 2, 0 +_08147E04: .4byte sub_8148E80 +_08147E08: .4byte gUnknown_203F3D4 +_08147E0C: + ldr r0, _08147E34 @ =sub_8148E80 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _08147F04 + ldr r4, _08147E38 @ =gUnknown_203F3D4 + ldr r0, [r4] + adds r0, 0xA4 + bl sub_8149CEC + bl sub_80FCEA8 + movs r0, 0 + movs r1, 0 + bl sub_80FCD74 + ldr r1, [r4] + b _08147EBC + .align 2, 0 +_08147E34: .4byte sub_8148E80 +_08147E38: .4byte gUnknown_203F3D4 +_08147E3C: + bl sub_8149D68 + cmp r0, 0 + bne _08147F04 + bl IsNotWaitingForBGMStop + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147F04 + movs r0, 0xA3 + lsls r0, 1 + movs r1, 0x8 + bl FadeOutAndPlayNewMapMusic + ldr r0, _08147E60 @ =gUnknown_203F3D4 + ldr r1, [r0] + b _08147EBC + .align 2, 0 +_08147E60: .4byte gUnknown_203F3D4 +_08147E64: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _08147F04 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + adds r1, r4, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08147E98 @ =sub_8147D58 + bl SetVBlankCallback + ldr r0, _08147E9C @ =gUnknown_203F3D4 + ldr r1, [r0] + b _08147EBC + .align 2, 0 +_08147E98: .4byte sub_8147D58 +_08147E9C: .4byte gUnknown_203F3D4 +_08147EA0: + bl UpdatePaletteFade + ldr r0, _08147EC4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _08147F04 + ldr r1, _08147EC8 @ =gUnknown_203F3D4 + ldr r0, [r1] + strb r2, [r0, 0x7] + ldr r1, [r1] +_08147EBC: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08147F04 + .align 2, 0 +_08147EC4: .4byte gPaletteFade +_08147EC8: .4byte gUnknown_203F3D4 +_08147ECC: + ldr r0, [r2] + ldrb r1, [r0, 0x7] + adds r1, 0x1 + strb r1, [r0, 0x7] + ldr r1, [r2] + ldrb r0, [r1, 0x7] + cmp r0, 0x13 + bls _08147F04 + adds r0, r1, 0 + adds r0, 0x47 + ldrb r0, [r0] + cmp r0, 0 + beq _08147EF4 + ldr r0, _08147EF0 @ =sub_814807C + bl sub_8147D84 + b _08147EFA + .align 2, 0 +_08147EF0: .4byte sub_814807C +_08147EF4: + ldr r0, _08147F0C @ =sub_8148290 + bl sub_8147D84 +_08147EFA: + bl sub_8148F7C + adds r0, r4, 0 + bl DestroyTask +_08147F04: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147F0C: .4byte sub_8148290 + thumb_func_end sub_8147DA0 + + thumb_func_start sub_8147F10 +sub_8147F10: @ 8147F10 + push {lr} + adds r1, r0, 0 + cmp r1, 0 + bne _08147F30 + ldr r0, _08147F28 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldr r0, _08147F2C @ =0x00001111 + str r0, [r1, 0x30] + movs r0, 0x1 + str r0, [r1, 0x2C] + b _08147F42 + .align 2, 0 +_08147F28: .4byte gUnknown_203F3D4 +_08147F2C: .4byte 0x00001111 +_08147F30: + ldr r0, _08147F48 @ =gUnknown_203F3D4 + ldr r2, [r0] + subs r1, 0x1 + movs r0, 0x1 + lsls r0, r1 + subs r0, 0x1 + str r0, [r2, 0x30] + movs r0, 0 + str r0, [r2, 0x2C] +_08147F42: + pop {r0} + bx r0 + .align 2, 0 +_08147F48: .4byte gUnknown_203F3D4 + thumb_func_end sub_8147F10 + + thumb_func_start sub_8147F4C +sub_8147F4C: @ 8147F4C + push {r4-r6,lr} + ldr r4, _08147F98 @ =gUnknown_203F3D4 + ldr r1, [r4] + adds r1, 0x70 + movs r2, 0 + strb r0, [r1] + ldr r0, [r4] + movs r3, 0 + strh r2, [r0, 0x8] + strh r2, [r0, 0xA] + adds r0, 0x48 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x49 + strb r3, [r0] + movs r3, 0x1 + ldr r0, [r4] + ldrb r0, [r0, 0x5] + cmp r3, r0 + bge _08147F90 + adds r6, r4, 0 + ldr r5, _08147F9C @ =0x000082fc + movs r4, 0 + movs r2, 0x28 +_08147F7E: + ldr r1, [r6] + adds r0, r1, r5 + adds r0, r2 + str r4, [r0] + adds r2, 0x28 + adds r3, 0x1 + ldrb r1, [r1, 0x5] + cmp r3, r1 + blt _08147F7E +_08147F90: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08147F98: .4byte gUnknown_203F3D4 +_08147F9C: .4byte 0x000082fc + thumb_func_end sub_8147F4C + + thumb_func_start sub_8147FA0 +sub_8147FA0: @ 8147FA0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r4, 0x1 + movs r0, 0 + str r0, [sp, 0x4] + ldr r7, _08148068 @ =gUnknown_203F3D4 + ldr r0, [r7] + ldrb r0, [r0, 0x5] + cmp r4, r0 + bge _08148044 + adds r1, r7, 0 + mov r10, r1 + movs r2, 0x2 + add r2, sp + mov r8, r2 + ldr r3, _0814806C @ =0x0000830c + mov r9, r3 + movs r6, 0x28 +_08147FCC: + mov r1, r10 + ldr r0, [r1] + adds r1, r0, r6 + ldr r2, _08148070 @ =0x000082f4 + adds r1, r2 + ldrh r5, [r1] + add r0, r9 + adds r1, r4, 0 + mov r2, sp + mov r3, r8 + bl sub_8149C24 + cmp r0, 0 + beq _0814800C + ldr r2, [r7] + lsls r1, r4, 1 + adds r0, r2, 0 + adds r0, 0x90 + adds r0, r1 + mov r3, r8 + ldrh r1, [r3] + strh r1, [r0] + adds r2, 0x8B + adds r2, r4 + mov r0, sp + ldrb r0, [r0] + strb r0, [r2] + ldr r0, [r7] + adds r0, r6 + ldr r1, _08148074 @ =0x000082f6 + adds r0, r1 + strh r5, [r0] +_0814800C: + mov r2, r10 + ldr r1, [r2] + ldr r3, _08148078 @ =0x000082fc + adds r0, r1, r3 + adds r0, r6 + ldr r0, [r0] + cmp r0, 0 + beq _08148032 + adds r0, r1, 0 + adds r0, 0x8B + adds r0, r4 + adds r1, 0x70 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08148032 + ldr r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x4] +_08148032: + movs r1, 0x28 + add r9, r1 + adds r6, 0x28 + adds r4, 0x1 + ldr r7, _08148068 @ =gUnknown_203F3D4 + ldr r0, [r7] + ldrb r0, [r0, 0x5] + cmp r4, r0 + blt _08147FCC +_08148044: + ldr r2, _08148068 @ =gUnknown_203F3D4 + ldr r1, [r2] + ldrb r0, [r1, 0x5] + subs r0, 0x1 + ldr r3, [sp, 0x4] + cmp r3, r0 + bne _08148058 + adds r1, 0x49 + movs r0, 0x1 + strb r0, [r1] +_08148058: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08148068: .4byte gUnknown_203F3D4 +_0814806C: .4byte 0x0000830c +_08148070: .4byte 0x000082f4 +_08148074: .4byte 0x000082f6 +_08148078: .4byte 0x000082fc + thumb_func_end sub_8147FA0 + + thumb_func_start sub_814807C +sub_814807C: @ 814807C + push {r4,r5,lr} + bl sub_8147FA0 + bl sub_8149534 + ldr r0, _081480F8 @ =gUnknown_203F3D4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x48 + ldrb r0, [r0] + cmp r0, 0 + bne _081480AE + adds r0, r1, 0 + adds r0, 0x49 + ldrb r0, [r0] + cmp r0, 0 + beq _081480AE + adds r0, r1, 0 + adds r0, 0x4C + ldrb r0, [r0] + bl sub_8147F4C + movs r0, 0x3 + bl sub_8147F10 +_081480AE: + ldr r4, _081480F8 @ =gUnknown_203F3D4 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x48 + ldrb r5, [r0] + cmp r5, 0x1 + bne _081480EA + ldr r1, _081480FC @ =gUnknown_846B64C + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r1, r0, 0 + cmp r1, 0 + bne _081480EA + ldr r0, [r4] + adds r0, 0x48 + strb r1, [r0] + ldr r1, [r4] + ldrb r2, [r1, 0x6] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r2, _08148100 @ =0x000082fc + adds r1, r2 + adds r1, r0 + str r5, [r1] +_081480EA: + bl sub_81492D8 + bl sub_8148104 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081480F8: .4byte gUnknown_203F3D4 +_081480FC: .4byte gUnknown_846B64C +_08148100: .4byte 0x000082fc + thumb_func_end sub_814807C + + thumb_func_start sub_8148104 +sub_8148104: @ 8148104 + push {r4,lr} + ldr r4, _08148134 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldr r0, [r1, 0x2C] + cmp r0, 0 + bne _0814811A + ldr r2, _08148138 @ =0x000082e4 + adds r0, r1, r2 + adds r1, 0x70 + bl sub_8149AF8 +_0814811A: + ldr r1, [r4] + ldr r2, [r1, 0x30] + ldr r0, _0814813C @ =0x00001111 + cmp r2, r0 + beq _0814812C + ldr r0, [r1, 0x2C] + adds r0, 0x1 + ands r0, r2 + str r0, [r1, 0x2C] +_0814812C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148134: .4byte gUnknown_203F3D4 +_08148138: .4byte 0x000082e4 +_0814813C: .4byte 0x00001111 + thumb_func_end sub_8148104 + + thumb_func_start sub_8148140 +sub_8148140: @ 8148140 + ldr r2, _0814816C @ =gUnknown_203F3D4 + ldr r1, [r2] + adds r1, 0x70 + movs r3, 0 + strb r0, [r1] + ldr r0, [r2] + strh r3, [r0, 0x8] + strh r3, [r0, 0xA] + adds r0, 0x48 + movs r1, 0x1 + strb r1, [r0] + ldr r1, [r2] + ldrb r2, [r1, 0x6] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r2, _08148170 @ =0x000082fc + adds r1, r2 + adds r1, r0 + str r3, [r1] + bx lr + .align 2, 0 +_0814816C: .4byte gUnknown_203F3D4 +_08148170: .4byte 0x000082fc + thumb_func_end sub_8148140 + + thumb_func_start sub_8148174 +sub_8148174: @ 8148174 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r4, _081481F0 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldr r2, _081481F4 @ =0x000082f4 + adds r1, r0, r2 + ldrh r1, [r1] + mov r8, r1 + ldr r3, _081481F8 @ =0x000082e4 + adds r0, r3 + mov r1, sp + bl sub_8149B7C + cmp r0, 0 + beq _08148224 + ldr r2, [r4] + ldrb r0, [r2, 0x6] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r3, _081481FC @ =0x000082fc + adds r0, r2, r3 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x1 + bne _081481C2 + mov r0, sp + adds r1, r2, 0 + adds r1, 0x70 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081481C2 + mov r0, sp + ldrb r0, [r0] + bl sub_8148140 +_081481C2: + ldr r3, _081481F0 @ =gUnknown_203F3D4 + ldr r2, [r3] + ldr r0, [r2, 0x78] + ldr r1, [sp, 0x8] + cmp r0, r1 + beq _08148204 + str r1, [r2, 0x78] + movs r4, 0x1 + str r4, [r2, 0x5C] + mov r0, sp + ldrb r1, [r0, 0x1] + adds r0, r2, 0 + adds r0, 0x71 + strb r1, [r0] + ldr r0, [r3] + adds r1, r0, 0 + adds r1, 0x71 + ldrb r1, [r1] + cmp r1, 0 + beq _08148200 + adds r0, 0x4D + strb r4, [r0] + b _08148204 + .align 2, 0 +_081481F0: .4byte gUnknown_203F3D4 +_081481F4: .4byte 0x000082f4 +_081481F8: .4byte 0x000082e4 +_081481FC: .4byte 0x000082fc +_08148200: + adds r0, 0x4D + strb r1, [r0] +_08148204: + ldr r0, _08148280 @ =gUnknown_203F3D4 + ldr r1, [r0] + mov r0, sp + ldrh r0, [r0, 0x2] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + mov r0, sp + ldrh r2, [r0, 0x4] + adds r0, r1, 0 + adds r0, 0x74 + strh r2, [r0] + ldr r0, _08148284 @ =0x000082f6 + adds r1, r0 + mov r2, r8 + strh r2, [r1] +_08148224: + movs r4, 0x1 + ldr r2, _08148280 @ =gUnknown_203F3D4 + ldr r0, [r2] + ldrb r0, [r0, 0x5] + cmp r4, r0 + bge _08148272 + adds r7, r2, 0 + ldr r6, _08148288 @ =0x0000830c + movs r5, 0x28 +_08148236: + ldr r1, [r7] + ldrb r3, [r1, 0x6] + cmp r4, r3 + beq _08148264 + adds r0, r1, r5 + ldr r3, _0814828C @ =0x000082f4 + adds r0, r3 + ldrh r0, [r0] + mov r8, r0 + adds r0, r1, r6 + adds r1, r4, 0 + str r2, [sp, 0xC] + bl sub_8149C90 + ldr r2, [sp, 0xC] + cmp r0, 0 + beq _08148264 + ldr r0, [r7] + adds r0, r5 + ldr r1, _08148284 @ =0x000082f6 + adds r0, r1 + mov r3, r8 + strh r3, [r0] +_08148264: + adds r6, 0x28 + adds r5, 0x28 + adds r4, 0x1 + ldr r0, [r2] + ldrb r0, [r0, 0x5] + cmp r4, r0 + blt _08148236 +_08148272: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08148280: .4byte gUnknown_203F3D4 +_08148284: .4byte 0x000082f6 +_08148288: .4byte 0x0000830c +_0814828C: .4byte 0x000082f4 + thumb_func_end sub_8148174 + + thumb_func_start sub_8148290 +sub_8148290: @ 8148290 + push {r4,lr} + bl sub_8148174 + ldr r4, _081482EC @ =gUnknown_203F3D4 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x48 + ldrb r0, [r0] + cmp r0, 0 + beq _081482DC + ldr r1, _081482F0 @ =gUnknown_846B670 + adds r0, r2, 0 + adds r0, 0x70 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r1, r0, 0 + cmp r1, 0 + bne _081482DC + ldr r0, [r4] + adds r0, 0x48 + strb r1, [r0] + ldr r1, [r4] + ldrb r2, [r1, 0x6] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r2, _081482F4 @ =0x000082fc + adds r1, r2 + adds r1, r0 + movs r0, 0x1 + str r0, [r1] + movs r0, 0x3 + bl sub_8147F10 +_081482DC: + bl sub_81492D8 + bl sub_81482F8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081482EC: .4byte gUnknown_203F3D4 +_081482F0: .4byte gUnknown_846B670 +_081482F4: .4byte 0x000082fc + thumb_func_end sub_8148290 + + thumb_func_start sub_81482F8 +sub_81482F8: @ 81482F8 + push {r4,lr} + ldr r4, _08148338 @ =gUnknown_203F3D4 + ldr r2, [r4] + ldr r0, [r2, 0x2C] + cmp r0, 0 + bne _08148320 + ldrb r1, [r2, 0x6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _0814833C @ =0x000082e4 + adds r0, r1 + adds r0, r2, r0 + adds r1, r2, 0 + adds r1, 0x70 + ldrb r1, [r1] + adds r2, 0x42 + ldrh r2, [r2] + bl sub_8149BF4 +_08148320: + ldr r1, [r4] + ldr r2, [r1, 0x30] + ldr r0, _08148340 @ =0x00001111 + cmp r2, r0 + beq _08148332 + ldr r0, [r1, 0x2C] + adds r0, 0x1 + ands r0, r2 + str r0, [r1, 0x2C] +_08148332: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148338: .4byte gUnknown_203F3D4 +_0814833C: .4byte 0x000082e4 +_08148340: .4byte 0x00001111 + thumb_func_end sub_81482F8 + + thumb_func_start sub_8148344 +sub_8148344: @ 8148344 + push {r4,lr} + ldr r4, _08148358 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _0814835C + cmp r0, 0x1 + beq _0814836A + b _08148390 + .align 2, 0 +_08148358: .4byte gUnknown_203F3D4 +_0814835C: + movs r0, 0x3 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0814836A: + bl sub_81488DC + cmp r0, 0 + bne _08148390 + ldr r0, _0814838C @ =gUnknown_203F3D4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x4A + ldrh r0, [r0] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + adds r1, 0x4C + movs r0, 0x1 + strb r0, [r1] + movs r0, 0 + b _08148392 + .align 2, 0 +_0814838C: .4byte gUnknown_203F3D4 +_08148390: + movs r0, 0x1 +_08148392: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148344 + + thumb_func_start sub_8148398 +sub_8148398: @ 8148398 + push {r4,lr} + ldr r4, _081483AC @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _081483B0 + cmp r0, 0x1 + beq _081483C6 + movs r0, 0x1 + b _081483CA + .align 2, 0 +_081483AC: .4byte gUnknown_203F3D4 +_081483B0: + movs r0, 0 + bl sub_8147F10 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x72 + ldrh r0, [r0] + str r0, [r1, 0x24] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081483C6: + bl sub_81488DC +_081483CA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148398 + + thumb_func_start sub_81483D0 +sub_81483D0: @ 81483D0 + push {r4,lr} + ldr r4, _081483E4 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0 + beq _081483E8 + cmp r0, 0x1 + beq _081483FC + b _08148410 + .align 2, 0 +_081483E4: .4byte gUnknown_203F3D4 +_081483E8: + bl sub_81491E4 + movs r0, 0x5 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08148410 +_081483FC: + adds r0, r1, 0 + adds r0, 0x49 + ldrb r0, [r0] + cmp r0, 0 + beq _08148410 + adds r1, 0x4C + movs r0, 0x2 + strb r0, [r1] + movs r0, 0 + b _08148412 +_08148410: + movs r0, 0x1 +_08148412: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81483D0 + + thumb_func_start sub_8148418 +sub_8148418: @ 8148418 + push {r4,lr} + ldr r4, _0814842C @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _08148430 + cmp r0, 0x1 + beq _0814844E + b _0814845A + .align 2, 0 +_0814842C: .4byte gUnknown_203F3D4 +_08148430: + bl sub_81491E4 + movs r0, 0 + bl sub_8147F10 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x72 + ldrh r0, [r0] + adds r2, r1, 0 + adds r2, 0x4A + strh r0, [r2] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0814844E: + bl sub_8149804 + cmp r0, 0 + beq _0814845A + movs r0, 0 + b _0814845C +_0814845A: + movs r0, 0x1 +_0814845C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148418 + + thumb_func_start sub_8148464 +sub_8148464: @ 8148464 + push {lr} + bl sub_81489C8 + cmp r0, 0 + bne _0814848C + ldr r0, _08148488 @ =gUnknown_203F3D4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x4A + ldrh r0, [r0] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + adds r1, 0x4C + movs r0, 0x1 + strb r0, [r1] + b _081484A6 + .align 2, 0 +_08148488: .4byte gUnknown_203F3D4 +_0814848C: + bl sub_8149630 + cmp r0, 0 + beq _08148498 + movs r0, 0x1 + b _081484A8 +_08148498: + bl sub_81491B4 + ldr r0, _081484AC @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x4C + movs r1, 0x3 + strb r1, [r0] +_081484A6: + movs r0, 0 +_081484A8: + pop {r1} + bx r1 + .align 2, 0 +_081484AC: .4byte gUnknown_203F3D4 + thumb_func_end sub_8148464 + + thumb_func_start sub_81484B0 +sub_81484B0: @ 81484B0 + push {lr} + bl sub_81489C8 + cmp r0, 0 + beq _081484CA + bl sub_8149630 + cmp r0, 0 + beq _081484C6 + movs r0, 0x1 + b _081484CC +_081484C6: + bl sub_81491B4 +_081484CA: + movs r0, 0 +_081484CC: + pop {r1} + bx r1 + thumb_func_end sub_81484B0 + + thumb_func_start sub_81484D0 +sub_81484D0: @ 81484D0 + push {r4,lr} + ldr r4, _081484E8 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0x1 + beq _08148508 + cmp r0, 0x1 + bgt _081484EC + cmp r0, 0 + beq _081484F2 + b _08148564 + .align 2, 0 +_081484E8: .4byte gUnknown_203F3D4 +_081484EC: + cmp r0, 0x2 + beq _0814855C + b _08148564 +_081484F2: + bl sub_8149630 + bl sub_81496D4 + cmp r0, 0 + beq _08148564 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08148564 +_08148508: + bl sub_8148A60 + cmp r0, 0 + bne _08148564 + bl sub_81498B4 + cmp r0, 0 + beq _0814852A + bl sub_81498D8 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + adds r1, 0x4C + movs r0, 0x7 + b _08148550 +_0814852A: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x74 + ldrh r0, [r0] + cmp r0, 0xC7 + bls _08148544 + ldrh r0, [r1, 0xE] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + adds r1, 0x4C + movs r0, 0x8 + b _08148550 +_08148544: + ldrh r0, [r1, 0xE] + adds r2, r1, 0 + adds r2, 0x72 + strh r0, [r2] + adds r1, 0x4C + movs r0, 0x4 +_08148550: + strb r0, [r1] + ldr r0, _08148560 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0814855C: + movs r0, 0 + b _08148566 + .align 2, 0 +_08148560: .4byte gUnknown_203F3D4 +_08148564: + movs r0, 0x1 +_08148566: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81484D0 + + thumb_func_start sub_814856C +sub_814856C: @ 814856C + push {r4,lr} + ldr r4, _08148584 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0x1 + beq _081485AC + cmp r0, 0x1 + bgt _08148588 + cmp r0, 0 + beq _0814858E + b _081485C0 + .align 2, 0 +_08148584: .4byte gUnknown_203F3D4 +_08148588: + cmp r0, 0x2 + beq _081485BC + b _081485C0 +_0814858E: + bl sub_8149630 + cmp r0, 0 + bne _0814859A + bl sub_81491B4 +_0814859A: + bl sub_81496D4 + cmp r0, 0 + beq _081485C0 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081485C0 +_081485AC: + bl sub_8148A60 + cmp r0, 0 + bne _081485C0 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081485BC: + movs r0, 0 + b _081485C2 +_081485C0: + movs r0, 0x1 +_081485C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814856C + + thumb_func_start sub_81485C8 +sub_81485C8: @ 81485C8 + push {r4,lr} + ldr r4, _081485E0 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + cmp r1, 0x1 + beq _081485FC + cmp r1, 0x1 + bgt _081485E4 + cmp r1, 0 + beq _081485EE + b _0814865C + .align 2, 0 +_081485E0: .4byte gUnknown_203F3D4 +_081485E4: + cmp r1, 0x2 + beq _08148628 + cmp r1, 0x3 + beq _08148652 + b _0814865C +_081485EE: + movs r0, 0x4 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081485FC: + bl sub_8148C80 + cmp r0, 0 + bne _0814865C + ldr r4, _08148624 @ =gUnknown_203F3D4 + ldr r2, [r4] + ldr r0, [r2, 0x78] + adds r1, r2, 0 + adds r1, 0x74 + ldrh r1, [r1] + adds r2, 0x72 + ldrh r2, [r2] + bl sub_814B494 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0814865C + .align 2, 0 +_08148624: .4byte gUnknown_203F3D4 +_08148628: + adds r0, 0x49 + ldrb r0, [r0] + cmp r0, 0 + beq _0814865C + bl sub_8149748 + cmp r0, 0 + beq _08148640 + ldr r0, [r4] + adds r0, 0x4C + movs r1, 0x5 + b _08148646 +_08148640: + ldr r0, [r4] + adds r0, 0x4C + movs r1, 0x6 +_08148646: + strb r1, [r0] + ldr r0, _08148658 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08148652: + movs r0, 0 + b _0814865E + .align 2, 0 +_08148658: .4byte gUnknown_203F3D4 +_0814865C: + movs r0, 0x1 +_0814865E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81485C8 + + thumb_func_start sub_8148664 +sub_8148664: @ 8148664 + push {r4,lr} + ldr r4, _08148678 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _0814867C + cmp r0, 0x1 + beq _0814868A + b _081486BC + .align 2, 0 +_08148678: .4byte gUnknown_203F3D4 +_0814867C: + movs r0, 0 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0814868A: + bl sub_8148C80 + cmp r0, 0 + bne _081486BC + ldr r4, _081486B8 @ =gUnknown_203F3D4 + ldr r2, [r4] + ldr r0, [r2, 0x78] + adds r1, r2, 0 + adds r1, 0x74 + ldrh r1, [r1] + adds r2, 0x72 + ldrh r2, [r2] + bl sub_814B494 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x45 + ldrb r1, [r1] + adds r0, 0x42 + strh r1, [r0] + movs r0, 0 + b _081486BE + .align 2, 0 +_081486B8: .4byte gUnknown_203F3D4 +_081486BC: + movs r0, 0x1 +_081486BE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148664 + + thumb_func_start sub_81486C4 +sub_81486C4: @ 81486C4 + push {r4,lr} + ldr r4, _081486D8 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0 + beq _081486DC + cmp r0, 0x1 + beq _081486EE + b _0814871A + .align 2, 0 +_081486D8: .4byte gUnknown_203F3D4 +_081486DC: + bl sub_8148E2C + cmp r0, 0 + bne _0814871A + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0814871A +_081486EE: + adds r0, r1, 0 + adds r0, 0x49 + ldrb r0, [r0] + cmp r0, 0 + beq _0814871A + adds r0, r1, 0 + bl sub_8147B94 + bl Random + ldr r1, [r4] + lsls r0, 16 + lsrs r0, 16 + str r0, [r1, 0x24] + adds r3, r1, 0 + adds r3, 0x72 + movs r2, 0 + strh r0, [r3] + adds r1, 0x4C + strb r2, [r1] + movs r0, 0 + b _0814871C +_0814871A: + movs r0, 0x1 +_0814871C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81486C4 + + thumb_func_start sub_8148724 +sub_8148724: @ 8148724 + push {r4,lr} + ldr r4, _08148738 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _0814873C + cmp r0, 0x1 + beq _08148752 + b _08148756 + .align 2, 0 +_08148738: .4byte gUnknown_203F3D4 +_0814873C: + bl sub_8148E2C + cmp r0, 0 + bne _08148756 + ldr r0, [r4] + bl sub_8147B94 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08148752: + movs r0, 0 + b _08148758 +_08148756: + movs r0, 0x1 +_08148758: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148724 + + thumb_func_start sub_8148760 +sub_8148760: @ 8148760 + push {r4,lr} + ldr r4, _08148778 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0x1 + beq _08148788 + cmp r0, 0x1 + bgt _0814877C + cmp r0, 0 + beq _08148782 + b _081487AC + .align 2, 0 +_08148778: .4byte gUnknown_203F3D4 +_0814877C: + cmp r0, 0x2 + beq _08148798 + b _081487AC +_08148782: + movs r0, 0x1 + strh r0, [r1, 0x8] + b _081487AC +_08148788: + movs r0, 0 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081487AC +_08148798: + bl sub_8148D5C + cmp r0, 0 + bne _081487AC + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + bl sub_8147B48 +_081487AC: + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148760 + + thumb_func_start sub_81487B4 +sub_81487B4: @ 81487B4 + push {r4,lr} + ldr r4, _081487C8 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _081487CC + cmp r0, 0x1 + beq _081487DC + b _081487F8 + .align 2, 0 +_081487C8: .4byte gUnknown_203F3D4 +_081487CC: + movs r0, 0x4 + bl sub_8147F10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081487F8 +_081487DC: + bl sub_8148B54 + cmp r0, 0 + bne _081487F8 + ldr r0, [r4] + ldrh r1, [r0, 0xE] + adds r2, r0, 0 + adds r2, 0x72 + strh r1, [r2] + adds r0, 0x4C + movs r1, 0x8 + strb r1, [r0] + movs r0, 0 + b _081487FA +_081487F8: + movs r0, 0x1 +_081487FA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81487B4 + + thumb_func_start sub_8148800 +sub_8148800: @ 8148800 + push {lr} + movs r0, 0 + bl sub_8147F10 + bl sub_8148B54 + cmp r0, 0 + beq _08148814 + movs r0, 0x1 + b _08148816 +_08148814: + movs r0, 0 +_08148816: + pop {r1} + bx r1 + thumb_func_end sub_8148800 + + thumb_func_start sub_814881C +sub_814881C: @ 814881C + push {r4,lr} + ldr r1, _08148834 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0x8] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _081488D4 + lsls r0, 2 + ldr r1, _08148838 @ =_0814883C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148834: .4byte gUnknown_203F3D4 +_08148838: .4byte _0814883C + .align 2, 0 +_0814883C: + .4byte _08148850 + .4byte _0814886C + .4byte _0814887C + .4byte _08148894 + .4byte _081488B8 +_08148850: + ldr r2, [r4] + ldr r0, [r2, 0x78] + adds r1, r2, 0 + adds r1, 0x74 + ldrh r1, [r1] + adds r2, 0x72 + ldrh r2, [r2] + bl sub_814B494 + movs r0, 0x5 + bl sub_8149D40 + ldr r1, [r4] + b _081488A8 +_0814886C: + bl sub_8149D68 + cmp r0, 0 + bne _081488D4 + movs r0, 0 + bl sub_8147F10 + b _081488A4 +_0814887C: + bl sub_8149804 + cmp r0, 0 + beq _081488D4 + ldr r0, _08148890 @ =sub_80DA634 + movs r1, 0x6 + bl CreateTask + b _081488A4 + .align 2, 0 +_08148890: .4byte sub_80DA634 +_08148894: + ldr r0, _081488B0 @ =sub_80DA634 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _081488D4 + bl sub_814A6CC +_081488A4: + ldr r0, _081488B4 @ =gUnknown_203F3D4 + ldr r1, [r0] +_081488A8: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081488D4 + .align 2, 0 +_081488B0: .4byte sub_80DA634 +_081488B4: .4byte gUnknown_203F3D4 +_081488B8: + bl sub_814A6FC + cmp r0, 0 + bne _081488D4 + ldr r0, _081488D0 @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x4C + movs r1, 0x4 + strb r1, [r0] + movs r0, 0 + b _081488D6 + .align 2, 0 +_081488D0: .4byte gUnknown_203F3D4 +_081488D4: + movs r0, 0x1 +_081488D6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814881C + + thumb_func_start sub_81488DC +sub_81488DC: @ 81488DC + push {r4,r5,lr} + ldr r1, _081488F4 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0xA] + adds r4, r1, 0 + cmp r0, 0x7 + bhi _081489C0 + lsls r0, 2 + ldr r1, _081488F8 @ =_081488FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081488F4: .4byte gUnknown_203F3D4 +_081488F8: .4byte _081488FC + .align 2, 0 +_081488FC: + .4byte _0814891C + .4byte _08148928 + .4byte _08148948 + .4byte _08148962 + .4byte _08148974 + .4byte _0814897C + .4byte _0814899C + .4byte _081489B6 +_0814891C: + movs r0, 0x2 + bl sub_8149D40 + bl sub_814AAA0 + b _0814898C +_08148928: + bl sub_8149D68 + adds r5, r0, 0 + cmp r5, 0 + bne _081489C0 + ldr r4, _08148944 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrb r0, [r0, 0x6] + bl sub_814AAB4 + ldr r1, [r4] + strh r5, [r1, 0x3C] + b _08148990 + .align 2, 0 +_08148944: .4byte gUnknown_203F3D4 +_08148948: + ldr r1, [r4] + ldrh r0, [r1, 0x3C] + adds r0, 0x1 + strh r0, [r1, 0x3C] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x78 + bls _081489C0 + movs r0, 0x3 + bl sub_8149D40 + ldr r1, [r4] + b _08148990 +_08148962: + bl sub_8149D68 + cmp r0, 0x1 + beq _081489C0 + bl sub_814AAC8 + cmp r0, 0x1 + beq _081489C0 + b _0814898C +_08148974: + movs r0, 0x9 + bl sub_8149D40 + b _0814898C +_0814897C: + bl sub_8149D68 + cmp r0, 0 + bne _081489C0 + bl sub_814935C + bl sub_814A3E4 +_0814898C: + ldr r0, _08148998 @ =gUnknown_203F3D4 + ldr r1, [r0] +_08148990: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _081489C0 + .align 2, 0 +_08148998: .4byte gUnknown_203F3D4 +_0814899C: + bl sub_814A408 + cmp r0, 0 + bne _081489C0 + bl sub_814936C + bl sub_8148F9C + ldr r0, _081489BC @ =gUnknown_203F3D4 + ldr r1, [r0] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_081489B6: + movs r0, 0 + b _081489C2 + .align 2, 0 +_081489BC: .4byte gUnknown_203F3D4 +_081489C0: + movs r0, 0x1 +_081489C2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81488DC + + thumb_func_start sub_81489C8 +sub_81489C8: @ 81489C8 + push {r4,r5,lr} + bl sub_8148FE0 + ldr r5, _081489E0 @ =gUnknown_203F3D4 + ldr r1, [r5] + ldrh r4, [r1, 0x36] + cmp r4, 0 + beq _081489E4 + movs r0, 0 + strh r0, [r1, 0x36] + b _08148A58 + .align 2, 0 +_081489E0: .4byte gUnknown_203F3D4 +_081489E4: + ldrh r0, [r1, 0xA] + cmp r0, 0x1 + beq _08148A10 + cmp r0, 0x1 + bgt _081489F4 + cmp r0, 0 + beq _081489FE + b _08148A56 +_081489F4: + cmp r0, 0x2 + beq _08148A34 + cmp r0, 0x3 + beq _08148A48 + b _08148A56 +_081489FE: + movs r0, 0 + bl sub_814922C + cmp r0, 0 + beq _08148A56 + ldr r1, [r5] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08148A10: + ldr r0, _08148A2C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08148A56 + bl sub_8149260 + movs r0, 0x3 + bl sub_8147F10 + ldr r0, _08148A30 @ =gUnknown_203F3D4 + ldr r1, [r0] + b _08148A40 + .align 2, 0 +_08148A2C: .4byte gMain +_08148A30: .4byte gUnknown_203F3D4 +_08148A34: + movs r0, 0x1 + bl sub_814922C + cmp r0, 0x1 + bne _08148A56 + ldr r1, [r5] +_08148A40: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148A56 +_08148A48: + movs r0, 0 + bl sub_814922C + cmp r0, 0x1 + bne _08148A56 + ldr r0, [r5] + strh r4, [r0, 0xA] +_08148A56: + movs r0, 0x1 +_08148A58: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81489C8 + + thumb_func_start sub_8148A60 +sub_8148A60: @ 8148A60 + push {r4-r6,lr} + ldr r1, _08148A78 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0xA] + adds r5, r1, 0 + cmp r0, 0x4 + bhi _08148B4C + lsls r0, 2 + ldr r1, _08148A7C @ =_08148A80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148A78: .4byte gUnknown_203F3D4 +_08148A7C: .4byte _08148A80 + .align 2, 0 +_08148A80: + .4byte _08148A94 + .4byte _08148AB8 + .4byte _08148AFC + .4byte _08148B20 + .4byte _08148B42 +_08148A94: + movs r4, 0 + ldr r0, [r5] + ldrb r0, [r0, 0x5] + cmp r4, r0 + bge _08148AB4 + adds r6, r5, 0 +_08148AA0: + adds r0, r4, 0 + bl sub_814AA78 + cmp r0, 0x1 + beq _08148B4C + adds r4, 0x1 + ldr r0, [r6] + ldrb r0, [r0, 0x5] + cmp r4, r0 + blt _08148AA0 +_08148AB4: + ldr r1, [r5] + b _08148B18 +_08148AB8: + movs r4, 0 + ldr r0, [r5] + ldrb r0, [r0, 0x5] + cmp r4, r0 + bge _08148AE8 + adds r6, r5, 0 + movs r5, 0 +_08148AC6: + ldr r0, [r6] + adds r0, r5 + ldr r1, _08148AF4 @ =0x000082f4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x2 + bne _08148ADC + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_814AA60 +_08148ADC: + adds r5, 0x28 + adds r4, 0x1 + ldr r0, [r6] + ldrb r0, [r0, 0x5] + cmp r4, r0 + blt _08148AC6 +_08148AE8: + movs r0, 0x1 + bl sub_8149D40 + ldr r0, _08148AF8 @ =gUnknown_203F3D4 + ldr r1, [r0] + b _08148B14 + .align 2, 0 +_08148AF4: .4byte 0x000082f4 +_08148AF8: .4byte gUnknown_203F3D4 +_08148AFC: + ldr r1, [r5] + ldrh r0, [r1, 0x3C] + adds r0, 0x1 + strh r0, [r1, 0x3C] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x64 + bls _08148B4C + movs r0, 0x3 + bl sub_8149D40 + ldr r1, [r5] +_08148B14: + movs r0, 0 + strh r0, [r1, 0x3C] +_08148B18: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148B4C +_08148B20: + bl sub_8149D68 + adds r5, r0, 0 + cmp r5, 0 + bne _08148B4C + bl sub_814AA8C + ldr r4, _08148B48 @ =gUnknown_203F3D4 + ldr r0, [r4] + adds r0, 0x71 + strb r5, [r0] + bl sub_8149210 + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08148B42: + movs r0, 0 + b _08148B4E + .align 2, 0 +_08148B48: .4byte gUnknown_203F3D4 +_08148B4C: + movs r0, 0x1 +_08148B4E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8148A60 + + thumb_func_start sub_8148B54 +sub_8148B54: @ 8148B54 + push {r4,lr} + ldr r1, _08148B70 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0xA] + adds r4, r1, 0 + cmp r0, 0x6 + bls _08148B64 + b _08148C78 +_08148B64: + lsls r0, 2 + ldr r1, _08148B74 @ =_08148B78 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148B70: .4byte gUnknown_203F3D4 +_08148B74: .4byte _08148B78 + .align 2, 0 +_08148B78: + .4byte _08148B94 + .4byte _08148BB4 + .4byte _08148BCC + .4byte _08148BFC + .4byte _08148BB4 + .4byte _08148BCC + .4byte _08148C6C +_08148B94: + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x72 + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x3E + adds r2, 0x40 + bl sub_8149900 + ldr r1, [r4] + ldrh r0, [r1, 0x3E] + adds r1, 0x40 + ldrh r1, [r1] + bl sub_814A468 + b _08148BEC +_08148BB4: + bl sub_814A62C + adds r2, r0, 0 + cmp r2, 0 + bne _08148C78 + ldr r0, _08148BC8 @ =gUnknown_203F3D4 + ldr r1, [r0] + strh r2, [r1, 0x3C] + b _08148BEE + .align 2, 0 +_08148BC8: .4byte gUnknown_203F3D4 +_08148BCC: + ldr r1, [r4] + ldrh r0, [r1, 0x3C] + adds r2, r0, 0x1 + strh r2, [r1, 0x3C] + ldr r0, _08148BF8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08148BE8 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0xB4 + bls _08148C78 +_08148BE8: + bl sub_814A6CC +_08148BEC: + ldr r1, [r4] +_08148BEE: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148C78 + .align 2, 0 +_08148BF8: .4byte gMain +_08148BFC: + bl sub_814A6FC + cmp r0, 0 + bne _08148C78 + ldr r4, _08148C48 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldrh r0, [r1, 0x3E] + adds r1, 0x40 + ldrh r1, [r1] + bl sub_8149978 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0x40 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + beq _08148C54 + ldrh r0, [r1, 0x3E] + ldrh r1, [r2] + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + beq _08148C54 + ldr r0, [r4] + ldrh r0, [r0, 0x3E] + movs r1, 0x1 + bl CheckBagHasSpace + lsls r0, 24 + cmp r0, 0 + bne _08148C4C + ldr r0, [r4] + ldrh r0, [r0, 0x3E] + bl sub_814A53C + b _08148C5E + .align 2, 0 +_08148C48: .4byte gUnknown_203F3D4 +_08148C4C: + ldr r1, [r4] + movs r0, 0x6 + strh r0, [r1, 0xA] + b _08148C78 +_08148C54: + ldr r4, _08148C68 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0x3E] + bl sub_814A5B4 +_08148C5E: + ldr r1, [r4] + movs r0, 0x4 + strh r0, [r1, 0xA] + b _08148C78 + .align 2, 0 +_08148C68: .4byte gUnknown_203F3D4 +_08148C6C: + bl sub_814A6FC + cmp r0, 0 + bne _08148C78 + movs r0, 0 + b _08148C7A +_08148C78: + movs r0, 0x1 +_08148C7A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148B54 + + thumb_func_start sub_8148C80 +sub_8148C80: @ 8148C80 + push {r4,lr} + ldr r0, _08148C98 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrh r0, [r0, 0xA] + cmp r0, 0x6 + bhi _08148D54 + lsls r0, 2 + ldr r1, _08148C9C @ =_08148CA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148C98: .4byte gUnknown_203F3D4 +_08148C9C: .4byte _08148CA0 + .align 2, 0 +_08148CA0: + .4byte _08148CBC + .4byte _08148CC0 + .4byte _08148CCA + .4byte _08148D18 + .4byte _08148D22 + .4byte _08148D38 + .4byte _08148D4A +_08148CBC: + movs r0, 0x4 + b _08148D24 +_08148CC0: + bl sub_8149D68 + cmp r0, 0 + bne _08148D54 + b _08148D28 +_08148CCA: + bl sub_814A744 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08148D00 + cmp r1, 0 + bgt _08148CE4 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08148CE8 + b _08148D54 +_08148CE4: + cmp r1, 0x1 + bne _08148D54 +_08148CE8: + ldr r4, _08148CFC @ =gUnknown_203F3D4 + ldr r0, [r4] + adds r0, 0x45 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x6 + bl sub_8149D40 + ldr r1, [r4] + b _08148D2C + .align 2, 0 +_08148CFC: .4byte gUnknown_203F3D4 +_08148D00: + ldr r4, _08148D14 @ =gUnknown_203F3D4 + ldr r0, [r4] + adds r0, 0x45 + movs r1, 0x2 + strb r1, [r0] + movs r0, 0x6 + bl sub_8149D40 + ldr r1, [r4] + b _08148D2C + .align 2, 0 +_08148D14: .4byte gUnknown_203F3D4 +_08148D18: + bl sub_8149D68 + cmp r0, 0 + bne _08148D54 + b _08148D28 +_08148D22: + movs r0, 0x8 +_08148D24: + bl sub_8149D40 +_08148D28: + ldr r0, _08148D34 @ =gUnknown_203F3D4 + ldr r1, [r0] +_08148D2C: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148D54 + .align 2, 0 +_08148D34: .4byte gUnknown_203F3D4 +_08148D38: + bl sub_8149D68 + cmp r0, 0 + bne _08148D54 + ldr r0, _08148D50 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08148D4A: + movs r0, 0 + b _08148D56 + .align 2, 0 +_08148D50: .4byte gUnknown_203F3D4 +_08148D54: + movs r0, 0x1 +_08148D56: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148C80 + + thumb_func_start sub_8148D5C +sub_8148D5C: @ 8148D5C + push {r4,lr} + sub sp, 0x4 + ldr r1, _08148D78 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrh r0, [r0, 0xA] + adds r4, r1, 0 + cmp r0, 0x5 + bhi _08148E20 + lsls r0, 2 + ldr r1, _08148D7C @ =_08148D80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148D78: .4byte gUnknown_203F3D4 +_08148D7C: .4byte _08148D80 + .align 2, 0 +_08148D80: + .4byte _08148D98 + .4byte _08148D9E + .4byte _08148DAE + .4byte _08148DC4 + .4byte _08148DEA + .4byte _08148E10 +_08148D98: + bl sub_814A6CC + b _08148DFA +_08148D9E: + bl sub_814A6FC + cmp r0, 0 + bne _08148E20 + movs r0, 0x7 + bl sub_8149D40 + b _08148DFA +_08148DAE: + bl sub_8149D68 + adds r2, r0, 0 + cmp r2, 0 + bne _08148E20 + ldr r0, _08148DC0 @ =gUnknown_203F3D4 + ldr r1, [r0] + strh r2, [r1, 0x3C] + b _08148DFE + .align 2, 0 +_08148DC0: .4byte gUnknown_203F3D4 +_08148DC4: + ldr r1, [r4] + ldrh r0, [r1, 0x3C] + adds r0, 0x1 + strh r0, [r1, 0x3C] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x78 + bls _08148E20 + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + b _08148DFE +_08148DEA: + ldr r0, _08148E08 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08148E20 + bl sub_800AAC0 +_08148DFA: + ldr r0, _08148E0C @ =gUnknown_203F3D4 + ldr r1, [r0] +_08148DFE: + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148E20 + .align 2, 0 +_08148E08: .4byte gPaletteFade +_08148E0C: .4byte gUnknown_203F3D4 +_08148E10: + ldr r0, _08148E1C @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _08148E20 + movs r0, 0 + b _08148E22 + .align 2, 0 +_08148E1C: .4byte gReceivedRemoteLinkPlayers +_08148E20: + movs r0, 0x1 +_08148E22: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148D5C + + thumb_func_start sub_8148E2C +sub_8148E2C: @ 8148E2C + push {r4,lr} + ldr r4, _08148E44 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldrh r0, [r0, 0xA] + cmp r0, 0x1 + beq _08148E62 + cmp r0, 0x1 + bgt _08148E48 + cmp r0, 0 + beq _08148E4E + b _08148E76 + .align 2, 0 +_08148E44: .4byte gUnknown_203F3D4 +_08148E48: + cmp r0, 0x2 + beq _08148E72 + b _08148E76 +_08148E4E: + bl sub_814A6CC + movs r0, 0 + bl sub_814AA24 + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _08148E76 +_08148E62: + bl sub_814A6FC + cmp r0, 0 + bne _08148E76 + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08148E72: + movs r0, 0 + b _08148E78 +_08148E76: + movs r0, 0x1 +_08148E78: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148E2C + + thumb_func_start sub_8148E80 +sub_8148E80: @ 8148E80 + 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 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + ldr r1, _08148EB4 @ =gTasks+0x8 + adds r6, r0, r1 + mov r0, r10 + movs r1, 0xE + bl GetWordTaskArg + mov r8, r0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _08148EC4 + cmp r0, 0x1 + beq _08148ED8 + b _08148F44 + .align 2, 0 +_08148EB4: .4byte gTasks+0x8 +_08148EB8: + bl sub_8147C20 + mov r0, r10 + bl DestroyTask + b _08148F44 +_08148EC4: + movs r1, 0 + adds r0, r6, 0 + adds r0, 0x8 +_08148ECA: + strh r1, [r0, 0x4] + subs r0, 0x2 + cmp r0, r6 + bge _08148ECA + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] +_08148ED8: + mov r3, r8 + ldrb r1, [r3, 0x6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r4, _08148F54 @ =0x000082a8 + adds r0, r4 + add r0, r8 + bl sub_8149A6C + movs r2, 0 + adds r5, r6, 0x4 + mov r9, r2 + movs r7, 0x83 + lsls r7, 8 + add r7, r8 + add r4, r8 +_08148EFA: + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08148F34 + adds r0, r2, 0 + adds r1, r4, 0 + str r2, [sp] + bl sub_8149A90 + ldr r2, [sp] + cmp r0, 0 + beq _08148F34 + ldr r1, _08148F58 @ =gLinkPlayers + 8 + add r1, r9 + adds r0, r7, 0 + bl StringCopy + movs r0, 0x1 + strh r0, [r5] + ldrh r0, [r6, 0x2] + adds r0, 0x1 + strh r0, [r6, 0x2] + movs r3, 0x2 + ldrsh r0, [r6, r3] + ldr r2, [sp] + mov r1, r8 + ldrb r1, [r1, 0x5] + cmp r0, r1 + beq _08148EB8 +_08148F34: + adds r5, 0x2 + movs r3, 0x1C + add r9, r3 + adds r7, 0x28 + adds r4, 0xC + adds r2, 0x1 + cmp r2, 0x4 + ble _08148EFA +_08148F44: + 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 +_08148F54: .4byte 0x000082a8 +_08148F58: .4byte gLinkPlayers + 8 + thumb_func_end sub_8148E80 + + thumb_func_start sub_8148F5C +sub_8148F5C: @ 8148F5C + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08148F78 @ =gUnknown_203F3D4 + ldr r2, [r1] + movs r1, 0xE + bl SetWordTaskArg + pop {r0} + bx r0 + .align 2, 0 +_08148F78: .4byte gUnknown_203F3D4 + thumb_func_end sub_8148F5C + + thumb_func_start sub_8148F7C +sub_8148F7C: @ 8148F7C + ldr r0, _08148F98 @ =gUnknown_203F3D4 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x4A + movs r1, 0 + strh r1, [r0] + movs r0, 0x6 + str r0, [r2, 0x14] + strh r1, [r2, 0x34] + str r1, [r2, 0x1C] + strh r1, [r2, 0x36] + str r1, [r2, 0x10] + bx lr + .align 2, 0 +_08148F98: .4byte gUnknown_203F3D4 + thumb_func_end sub_8148F7C + + thumb_func_start sub_8148F9C +sub_8148F9C: @ 8148F9C + push {r4,lr} + ldr r3, _08148FD8 @ =gUnknown_203F3D4 + ldr r0, [r3] + adds r1, r0, 0 + adds r1, 0x4A + movs r4, 0 + movs r2, 0 + strh r2, [r1] + ldr r1, _08148FDC @ =0x000006ff + strh r1, [r0, 0x34] + movs r1, 0x7 + str r1, [r0, 0x14] + strh r2, [r0, 0x36] + str r2, [r0, 0x10] + adds r0, 0x51 + strb r4, [r0] + ldr r0, [r3] + adds r0, 0x50 + strb r4, [r0] + ldr r0, [r3] + str r2, [r0, 0x20] + adds r1, r0, 0 + adds r1, 0x4E + strh r2, [r1] + str r2, [r0, 0x6C] + bl sub_8149078 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148FD8: .4byte gUnknown_203F3D4 +_08148FDC: .4byte 0x000006ff + thumb_func_end sub_8148F9C + + thumb_func_start sub_8148FE0 +sub_8148FE0: @ 8148FE0 + push {r4,lr} + ldr r4, _08149038 @ =gUnknown_203F3D4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x46 + ldrb r0, [r0] + cmp r0, 0 + beq _08149030 + adds r1, 0x4A + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl sub_8149044 + ldr r3, [r4] + ldrh r1, [r3, 0x34] + adds r2, r1, r0 + strh r2, [r3, 0x34] + lsls r1, r2, 16 + ldr r0, _0814903C @ =0x09fe0000 + cmp r1, r0 + bls _08149012 + ldr r1, _08149040 @ =0xfffff601 + adds r0, r2, r1 + strh r0, [r3, 0x34] +_08149012: + ldr r1, [r4] + ldr r2, [r1, 0x14] + str r2, [r1, 0x18] + ldrh r0, [r1, 0x34] + lsrs r0, 8 + str r0, [r1, 0x14] + cmp r0, 0x6 + bls _08149030 + cmp r2, 0x6 + bhi _08149030 + ldrh r0, [r1, 0x36] + adds r0, 0x1 + strh r0, [r1, 0x36] + bl sub_8149078 +_08149030: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149038: .4byte gUnknown_203F3D4 +_0814903C: .4byte 0x09fe0000 +_08149040: .4byte 0xfffff601 + thumb_func_end sub_8148FE0 + + thumb_func_start sub_8149044 +sub_8149044: @ 8149044 + push {lr} + ldr r0, _08149054 @ =gUnknown_203F3D4 + ldr r2, [r0] + ldr r0, [r2, 0x10] + cmp r0, 0 + beq _08149058 + movs r0, 0 + b _0814906E + .align 2, 0 +_08149054: .4byte gUnknown_203F3D4 +_08149058: + ldr r3, [r2, 0x1C] + ldrh r1, [r2, 0x34] + ldr r0, _08149074 @ =0x000005ff + cmp r1, r0 + bhi _0814906C + ldr r0, [r2, 0x20] + adds r0, 0x50 + str r0, [r2, 0x20] + lsrs r0, 8 + adds r3, r0 +_0814906C: + adds r0, r3, 0 +_0814906E: + pop {r1} + bx r1 + .align 2, 0 +_08149074: .4byte 0x000005ff + thumb_func_end sub_8149044 + + thumb_func_start sub_8149078 +sub_8149078: @ 8149078 + push {r4,lr} + ldr r4, _081490A8 @ =gUnknown_203F3D4 + ldr r3, [r4] + movs r0, 0 + str r0, [r3, 0x20] + adds r1, r3, 0 + adds r1, 0x4E + ldrh r0, [r1] + cmp r0, 0 + beq _081490BC + subs r0, 0x1 + strh r0, [r1] + ldr r0, [r3, 0x6C] + cmp r0, 0 + beq _08149186 + bl sub_8149194 + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + beq _081490AC + ldr r1, [r4] + b _08149182 + .align 2, 0 +_081490A8: .4byte gUnknown_203F3D4 +_081490AC: + ldr r1, [r4] + ldr r0, [r1, 0x28] + cmp r0, 0x36 + bls _081490B8 + movs r0, 0x1E + b _08149184 +_081490B8: + movs r0, 0x52 + b _08149184 +_081490BC: + adds r2, r3, 0 + adds r2, 0x50 + ldrb r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08149110 + ldr r0, _08149108 @ =gUnknown_846B694 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x51 + ldrb r2, [r0] + lsls r0, r2, 3 + subs r0, r2 + ldrh r1, [r1] + adds r0, r1 + str r0, [r3, 0x28] + bl sub_8149194 + ldr r2, [r4] + ldr r3, _0814910C @ =gUnknown_846B6A4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 1 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x2 + adds r1, r2, 0 + adds r1, 0x4E + strh r0, [r1] + adds r2, 0x50 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _0814917E + .align 2, 0 +_08149108: .4byte gUnknown_846B694 +_0814910C: .4byte gUnknown_846B6A4 +_08149110: + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x8 + bne _0814912C + adds r1, r3, 0 + adds r1, 0x51 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08149128 + adds r0, 0x1 + strb r0, [r1] + b _0814912C +_08149128: + movs r0, 0x1 + str r0, [r3, 0x6C] +_0814912C: + ldr r2, _0814918C @ =gUnknown_846B694 + ldr r4, _08149190 @ =gUnknown_203F3D4 + ldr r0, [r4] + mov r12, r0 + mov r3, r12 + adds r3, 0x50 + ldrb r0, [r3] + movs r1, 0xF + subs r1, r0 + lsls r1, 1 + adds r1, r2 + mov r0, r12 + adds r0, 0x51 + ldrb r2, [r0] + lsls r0, r2, 3 + subs r0, r2 + ldrh r1, [r1] + adds r0, r1 + mov r1, r12 + str r0, [r1, 0x28] + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bls _0814917E + bl sub_8149194 + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + bne _08149176 + ldr r1, [r4] + ldr r0, [r1, 0x28] + subs r0, 0x5 + str r0, [r1, 0x28] +_08149176: + ldr r0, [r4] + adds r0, 0x50 + movs r1, 0 + strb r1, [r0] +_0814917E: + ldr r0, _08149190 @ =gUnknown_203F3D4 + ldr r1, [r0] +_08149182: + ldr r0, [r1, 0x28] +_08149184: + str r0, [r1, 0x1C] +_08149186: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814918C: .4byte gUnknown_846B694 +_08149190: .4byte gUnknown_203F3D4 + thumb_func_end sub_8149078 + + thumb_func_start sub_8149194 +sub_8149194: @ 8149194 + ldr r0, _081491A8 @ =gUnknown_203F3D4 + ldr r2, [r0] + ldr r1, [r2, 0x24] + ldr r0, _081491AC @ =0x41c64e6d + muls r0, r1 + ldr r1, _081491B0 @ =0x00006073 + adds r0, r1 + str r0, [r2, 0x24] + lsrs r0, 16 + bx lr + .align 2, 0 +_081491A8: .4byte gUnknown_203F3D4 +_081491AC: .4byte 0x41c64e6d +_081491B0: .4byte 0x00006073 + thumb_func_end sub_8149194 + + thumb_func_start sub_81491B4 +sub_81491B4: @ 81491B4 + push {lr} + ldr r0, _081491D0 @ =gUnknown_203F3D4 + ldr r1, [r0] + movs r0, 0x1 + str r0, [r1, 0x10] + movs r0, 0x6 + str r0, [r1, 0x14] + ldr r0, _081491D4 @ =0x000005ff + strh r0, [r1, 0x34] + bl sub_814936C + pop {r0} + bx r0 + .align 2, 0 +_081491D0: .4byte gUnknown_203F3D4 +_081491D4: .4byte 0x000005ff + thumb_func_end sub_81491B4 + + thumb_func_start sub_81491D8 +sub_81491D8: @ 81491D8 + ldr r0, _081491E0 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldr r0, [r0, 0x10] + bx lr + .align 2, 0 +_081491E0: .4byte gUnknown_203F3D4 + thumb_func_end sub_81491D8 + + thumb_func_start sub_81491E4 +sub_81491E4: @ 81491E4 + push {r4,r5,lr} + ldr r5, _08149208 @ =gUnknown_203F3D4 + ldr r4, _0814920C @ =0x000082f8 + movs r3, 0 + movs r2, 0 + movs r1, 0x4 +_081491F0: + ldr r0, [r5] + adds r0, r4 + adds r0, r2 + str r3, [r0] + adds r2, 0x28 + subs r1, 0x1 + cmp r1, 0 + bge _081491F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149208: .4byte gUnknown_203F3D4 +_0814920C: .4byte 0x000082f8 + thumb_func_end sub_81491E4 + + thumb_func_start sub_8149210 +sub_8149210: @ 8149210 + ldr r0, _08149224 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldr r1, _08149228 @ =0x000083ac + adds r0, r1 + ldr r1, [r0] + movs r2, 0 + strh r2, [r1, 0x10] + ldr r0, [r0] + strh r2, [r0, 0x12] + bx lr + .align 2, 0 +_08149224: .4byte gUnknown_203F3D4 +_08149228: .4byte 0x000083ac + thumb_func_end sub_8149210 + + thumb_func_start sub_814922C +sub_814922C: @ 814922C + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08149250 @ =gUnknown_203F3D4 + ldr r2, [r1] + ldrb r3, [r2, 0x6] + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r2, r1 + ldr r1, _08149254 @ =0x000082f4 + adds r2, r1 + ldrh r1, [r2] + cmp r1, r0 + beq _08149258 + movs r0, 0 + b _0814925A + .align 2, 0 +_08149250: .4byte gUnknown_203F3D4 +_08149254: .4byte 0x000082f4 +_08149258: + movs r0, 0x1 +_0814925A: + pop {r1} + bx r1 + thumb_func_end sub_814922C + + thumb_func_start sub_8149260 +sub_8149260: @ 8149260 + ldr r0, _08149280 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldr r1, _08149284 @ =0x000083ac + adds r2, r0, r1 + ldr r1, [r2] + adds r0, 0x4A + ldrh r0, [r0] + strh r0, [r1, 0xE] + ldr r1, [r2] + ldrh r0, [r1, 0x10] + strh r0, [r1, 0x12] + ldr r1, [r2] + movs r0, 0x1 + strh r0, [r1, 0x10] + bx lr + .align 2, 0 +_08149280: .4byte gUnknown_203F3D4 +_08149284: .4byte 0x000083ac + thumb_func_end sub_8149260 + + thumb_func_start sub_8149288 +sub_8149288: @ 8149288 + push {r4,lr} + ldr r0, _081492B0 @ =gUnknown_203F3D4 + ldr r2, [r0] + ldr r0, _081492B4 @ =0x000083ac + adds r3, r2, r0 + ldr r1, [r3] + ldrh r0, [r1, 0x10] + strh r0, [r1, 0x12] + ldr r0, [r3] + movs r4, 0x2 + strh r4, [r0, 0x10] + ldr r1, [r3] + adds r2, 0x4A + ldrh r0, [r2] + strh r0, [r1, 0xE] + ldr r0, [r3] + str r4, [r0, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081492B0: .4byte gUnknown_203F3D4 +_081492B4: .4byte 0x000083ac + thumb_func_end sub_8149288 + + thumb_func_start sub_81492B8 +sub_81492B8: @ 81492B8 + ldr r0, _081492D0 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldr r1, _081492D4 @ =0x000083ac + adds r0, r1 + ldr r1, [r0] + ldrh r2, [r1, 0x10] + movs r3, 0 + strh r2, [r1, 0x12] + ldr r0, [r0] + strh r3, [r0, 0x10] + bx lr + .align 2, 0 +_081492D0: .4byte gUnknown_203F3D4 +_081492D4: .4byte 0x000083ac + thumb_func_end sub_81492B8 + + thumb_func_start sub_81492D8 +sub_81492D8: @ 81492D8 + push {r4,r5,lr} + ldr r4, _08149334 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldr r0, [r1, 0x5C] + cmp r0, 0 + beq _08149318 + ldr r0, [r1, 0x78] + bl sub_814AA24 + ldr r1, [r4] + movs r5, 0 + str r5, [r1, 0x5C] + adds r0, r1, 0 + adds r0, 0x4D + ldrb r0, [r0] + cmp r0, 0 + beq _08149318 + adds r0, r1, 0 + adds r0, 0x71 + ldrb r0, [r0] + bl sub_814A98C + ldr r1, _08149338 @ =gUnknown_846B6AC + subs r0, 0x2 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl PlaySE + ldr r0, [r4] + adds r0, 0x4D + strb r5, [r0] +_08149318: + ldr r0, _08149334 @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x74 + ldrh r0, [r0] + bl sub_814AA34 + bl sub_814937C + bl sub_814933C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149334: .4byte gUnknown_203F3D4 +_08149338: .4byte gUnknown_846B6AC + thumb_func_end sub_81492D8 + + thumb_func_start sub_814933C +sub_814933C: @ 814933C + push {lr} + ldr r0, _08149358 @ =gUnknown_203F3D4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x46 + ldrb r0, [r0] + cmp r0, 0 + beq _08149352 + ldr r0, [r1, 0x14] + bl sub_814A95C +_08149352: + pop {r0} + bx r0 + .align 2, 0 +_08149358: .4byte gUnknown_203F3D4 + thumb_func_end sub_814933C + + thumb_func_start sub_814935C +sub_814935C: @ 814935C + ldr r0, _08149368 @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x46 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_08149368: .4byte gUnknown_203F3D4 + thumb_func_end sub_814935C + + thumb_func_start sub_814936C +sub_814936C: @ 814936C + ldr r0, _08149378 @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x46 + movs r1, 0x1 + strb r1, [r0] + bx lr + .align 2, 0 +_08149378: .4byte gUnknown_203F3D4 + thumb_func_end sub_814936C + + thumb_func_start sub_814937C +sub_814937C: @ 814937C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0 + ldr r2, _081493B8 @ =gUnknown_203F3D4 + ldr r0, [r2] + ldrb r0, [r0, 0x5] + mov r9, r0 + movs r5, 0 + cmp r6, r9 + bge _0814945C + mov r10, r2 + mov r8, r5 + movs r7, 0 +_0814939E: + mov r0, r10 + ldr r3, [r0] + adds r1, r3, r7 + ldr r2, _081493BC @ =0x000082f4 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, 0x1 + beq _081493D0 + cmp r2, 0x1 + bgt _081493C0 + cmp r2, 0 + beq _081493C6 + b _08149450 + .align 2, 0 +_081493B8: .4byte gUnknown_203F3D4 +_081493BC: .4byte 0x000082f4 +_081493C0: + cmp r2, 0x2 + beq _08149434 + b _08149450 +_081493C6: + adds r0, r5, 0 + movs r1, 0 + bl sub_814A940 + b _08149450 +_081493D0: + ldr r0, _08149424 @ =0x000082f6 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, 0x1 + bne _081493F2 + ldr r0, _08149428 @ =0x000082f2 + adds r0, r1 + adds r1, r3, 0 + adds r1, 0x9A + add r1, r8 + str r1, [sp] + ldrh r1, [r0] + mov r12, r1 + ldr r0, [sp] + ldrh r0, [r0] + cmp r12, r0 + beq _0814941A +_081493F2: + ldrb r3, [r3, 0x6] + cmp r5, r3 + bne _081493FA + strh r2, [r4] +_081493FA: + orrs r6, r2 + mov r1, r10 + ldr r2, [r1] + ldr r1, _0814942C @ =0x000082e8 + adds r0, r2, r1 + adds r0, r7 + ldr r1, _08149430 @ =0x7fffffff + str r1, [r0] + adds r1, r2, 0 + adds r1, 0x9A + add r1, r8 + adds r2, r7 + ldr r0, _08149428 @ =0x000082f2 + adds r2, r0 + ldrh r0, [r2] + strh r0, [r1] +_0814941A: + adds r0, r5, 0 + bl sub_8149490 + b _08149450 + .align 2, 0 +_08149424: .4byte 0x000082f6 +_08149428: .4byte 0x000082f2 +_0814942C: .4byte 0x000082e8 +_08149430: .4byte 0x7fffffff +_08149434: + ldr r0, _0814946C @ =0x000082f6 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0x2 + beq _08149450 + ldrb r3, [r3, 0x6] + cmp r5, r3 + bne _08149446 + strh r2, [r1] +_08149446: + orrs r6, r2 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_814AA48 +_08149450: + movs r1, 0x2 + add r8, r1 + adds r7, 0x28 + adds r5, 0x1 + cmp r5, r9 + blt _0814939E +_0814945C: + movs r0, 0x2 + ands r0, r6 + cmp r0, 0 + beq _08149470 + movs r0, 0xFF + bl PlaySE + b _0814947E + .align 2, 0 +_0814946C: .4byte 0x000082f6 +_08149470: + movs r0, 0x1 + ands r6, r0 + cmp r6, 0 + beq _0814947E + movs r0, 0xA + bl PlaySE +_0814947E: + 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_814937C + + thumb_func_start sub_8149490 +sub_8149490: @ 8149490 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _081494BC @ =gUnknown_203F3D4 + ldr r2, [r0] + ldr r0, [r2, 0x68] + cmp r0, 0 + bne _0814952A + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _081494C0 @ =0x000082e4 + adds r0, r1 + adds r5, r2, r0 + ldr r1, [r5, 0x4] + ldr r0, _081494C4 @ =0x7fffffff + cmp r1, r0 + beq _081494C8 + adds r0, r1, 0x1 + str r0, [r5, 0x4] + adds r3, r0, 0 + b _081494E0 + .align 2, 0 +_081494BC: .4byte gUnknown_203F3D4 +_081494C0: .4byte 0x000082e4 +_081494C4: .4byte 0x7fffffff +_081494C8: + adds r0, r2, 0 + adds r0, 0x4A + ldrh r1, [r0] + ldrh r0, [r5, 0xE] + subs r3, r1, r0 + ldr r0, _08149500 @ =0x0000fde7 + cmp r3, r0 + ble _081494DE + ldr r0, _08149504 @ =0xffff0218 + adds r3, r0 + adds r3, r1 +_081494DE: + str r3, [r5, 0x4] +_081494E0: + cmp r3, 0x3 + ble _0814952A + subs r3, 0x4 + cmp r3, 0x2F + bgt _0814950C + ldr r2, _08149508 @ =gUnknown_846B6B4 + ldrh r1, [r5, 0xC] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + adds r0, r3, r0 + adds r0, r2 + movs r4, 0 + ldrsb r4, [r0, r4] + b _0814950E + .align 2, 0 +_08149500: .4byte 0x0000fde7 +_08149504: .4byte 0xffff0218 +_08149508: .4byte gUnknown_846B6B4 +_0814950C: + movs r4, 0 +_0814950E: + adds r1, r4, 0 + adds r0, r6, 0 + bl sub_814A940 + cmp r4, 0 + bne _08149528 + ldr r0, _08149530 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrb r0, [r0, 0x6] + cmp r6, r0 + bne _08149528 + bl sub_81492B8 +_08149528: + str r4, [r5] +_0814952A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149530: .4byte gUnknown_203F3D4 + thumb_func_end sub_8149490 + + thumb_func_start sub_8149534 +sub_8149534: @ 8149534 + push {r4,r5,lr} + ldr r5, _08149560 @ =gUnknown_203F3D4 + ldr r1, [r5] + ldr r0, [r1, 0x14] + cmp r0, 0x8 + bne _081495C6 + ldr r0, [r1, 0x18] + cmp r0, 0x7 + bne _081495C6 + ldr r4, [r1, 0x58] + cmp r4, 0 + bne _08149564 + bl sub_8149878 + ldr r0, [r5] + str r4, [r0, 0x54] + movs r1, 0x1 + str r1, [r0, 0x58] + adds r0, 0x71 + strb r4, [r0] + b _081495C6 + .align 2, 0 +_08149560: .4byte gUnknown_203F3D4 +_08149564: + ldr r0, [r1, 0x54] + cmp r0, 0x5 + bne _08149578 + ldrh r0, [r1, 0xC] + adds r0, 0x1 + strh r0, [r1, 0xC] + ldrh r0, [r1, 0xC] + bl sub_8149898 + b _0814957C +_08149578: + movs r0, 0 + strh r0, [r1, 0xC] +_0814957C: + ldr r4, _08149628 @ =gUnknown_203F3D4 + ldr r1, [r4] + ldr r0, [r1, 0x54] + cmp r0, 0x1 + ble _08149596 + movs r0, 0x1 + str r0, [r1, 0x64] + adds r0, r1, 0 + adds r0, 0x86 + adds r1, 0x81 + movs r2, 0x5 + bl memcpy +_08149596: + bl sub_8149878 + ldr r0, [r4] + movs r2, 0 + str r2, [r0, 0x54] + movs r1, 0x1 + str r1, [r0, 0x58] + adds r0, 0x71 + strb r2, [r0] + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x74 + ldrh r1, [r2] + ldr r0, _0814962C @ =0x0000270e + cmp r1, r0 + bhi _081495BA + adds r0, r1, 0x1 + strh r0, [r2] +_081495BA: + movs r0, 0xA + bl sub_8149780 + movs r0, 0x3 + bl sub_8147F10 +_081495C6: + ldr r4, _08149628 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldr r0, [r0, 0x64] + cmp r0, 0 + beq _081495FC + bl sub_8149710 + cmp r0, 0x1 + beq _081495E0 + ldr r0, [r4] + ldr r0, [r0, 0x14] + cmp r0, 0 + bne _081495FC +_081495E0: + ldr r0, [r4] + adds r0, 0x86 + bl sub_8149834 + bl sub_8149888 + bl sub_8149780 + movs r0, 0x3 + bl sub_8147F10 + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x64] +_081495FC: + ldr r4, _08149628 @ =gUnknown_203F3D4 + ldr r0, [r4] + ldr r0, [r0, 0x58] + cmp r0, 0 + beq _08149622 + bl sub_81497A8 + adds r2, r0, 0 + ldr r1, [r4] + ldr r0, [r1, 0x54] + cmp r2, r0 + ble _08149622 + str r2, [r1, 0x54] + adds r0, r1, 0 + adds r0, 0x81 + adds r1, 0x7C + movs r2, 0x5 + bl memcpy +_08149622: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149628: .4byte gUnknown_203F3D4 +_0814962C: .4byte 0x0000270e + thumb_func_end sub_8149534 + + thumb_func_start sub_8149630 +sub_8149630: @ 8149630 + push {r4,r5,lr} + ldr r5, _08149664 @ =gUnknown_203F3D4 + ldr r1, [r5] + ldr r0, [r1, 0x14] + cmp r0, 0x6 + bne _0814967A + ldr r4, _08149668 @ =0x000083ac + adds r0, r1, r4 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, 0 + bne _0814967A + ldrh r0, [r1, 0x12] + cmp r0, 0x1 + bne _08149670 + bl sub_81491D8 + adds r1, r0, 0 + cmp r1, 0x1 + bne _08149670 + ldr r0, [r5] + adds r0, r4 + ldr r0, [r0] + str r1, [r0, 0x14] + b _0814967A + .align 2, 0 +_08149664: .4byte gUnknown_203F3D4 +_08149668: .4byte 0x000083ac +_0814966C: + movs r0, 0 + b _081496C2 +_08149670: + bl sub_8149288 + movs r0, 0x3 + bl sub_8147F10 +_0814967A: + ldr r0, _081496C8 @ =gUnknown_203F3D4 + ldr r1, [r0] + ldr r0, [r1, 0x14] + cmp r0, 0x7 + bne _081496A0 + ldr r0, [r1, 0x18] + cmp r0, 0x6 + bne _081496A0 + ldr r2, _081496CC @ =0x000083ac + adds r0, r1, r2 + ldr r1, [r0] + ldrh r0, [r1, 0x10] + cmp r0, 0x2 + beq _081496A0 + movs r0, 0x1 + str r0, [r1, 0x14] + movs r0, 0x3 + bl sub_8147F10 +_081496A0: + movs r2, 0 + ldr r0, _081496C8 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrb r1, [r0, 0x5] + cmp r2, r1 + bge _081496C0 + adds r3, r1, 0 + ldr r4, _081496D0 @ =0x000082f4 + adds r1, r0, r4 +_081496B2: + ldrh r0, [r1] + cmp r0, 0x2 + beq _0814966C + adds r1, 0x28 + adds r2, 0x1 + cmp r2, r3 + blt _081496B2 +_081496C0: + movs r0, 0x1 +_081496C2: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_081496C8: .4byte gUnknown_203F3D4 +_081496CC: .4byte 0x000083ac +_081496D0: .4byte 0x000082f4 + thumb_func_end sub_8149630 + + thumb_func_start sub_81496D4 +sub_81496D4: @ 81496D4 + push {r4,lr} + ldr r0, _08149708 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrb r3, [r0, 0x5] + movs r4, 0 + cmp r4, r3 + bge _081496F8 + ldr r1, _0814970C @ =0x000082f8 + adds r2, r0, r1 + adds r1, r3, 0 +_081496E8: + ldr r0, [r2] + cmp r0, 0 + beq _081496F0 + adds r4, 0x1 +_081496F0: + adds r2, 0x28 + subs r1, 0x1 + cmp r1, 0 + bne _081496E8 +_081496F8: + movs r0, 0 + cmp r4, r3 + bne _08149700 + movs r0, 0x1 +_08149700: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149708: .4byte gUnknown_203F3D4 +_0814970C: .4byte 0x000082f8 + thumb_func_end sub_81496D4 + + thumb_func_start sub_8149710 +sub_8149710: @ 8149710 + push {r4,lr} + movs r2, 0 + ldr r0, _08149730 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrb r1, [r0, 0x5] + cmp r2, r1 + bge _08149740 + adds r3, r1, 0 + ldr r4, _08149734 @ =0x000082f8 + adds r1, r0, r4 +_08149724: + ldr r0, [r1] + cmp r0, 0x1 + beq _08149738 + movs r0, 0 + b _08149742 + .align 2, 0 +_08149730: .4byte gUnknown_203F3D4 +_08149734: .4byte 0x000082f8 +_08149738: + adds r1, 0x28 + adds r2, 0x1 + cmp r2, r3 + blt _08149724 +_08149740: + movs r0, 0x1 +_08149742: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8149710 + + thumb_func_start sub_8149748 +sub_8149748: @ 8149748 + push {lr} + ldr r0, _0814975C @ =gUnknown_203F3D4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x45 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08149760 +_08149758: + movs r0, 0 + b _0814977C + .align 2, 0 +_0814975C: .4byte gUnknown_203F3D4 +_08149760: + movs r2, 0x1 + ldrb r0, [r1, 0x5] + cmp r2, r0 + bge _0814977A + adds r3, r0, 0 + adds r1, 0x92 +_0814976C: + ldrh r0, [r1] + cmp r0, 0x1 + beq _08149758 + adds r1, 0x2 + adds r2, 0x1 + cmp r2, r3 + blt _0814976C +_0814977A: + movs r0, 0x1 +_0814977C: + pop {r1} + bx r1 + thumb_func_end sub_8149748 + + thumb_func_start sub_8149780 +sub_8149780: @ 8149780 + push {lr} + ldr r1, _081497A0 @ =gUnknown_203F3D4 + ldr r2, [r1] + ldr r1, [r2, 0x78] + adds r1, r0 + str r1, [r2, 0x78] + movs r0, 0x1 + str r0, [r2, 0x5C] + ldr r0, _081497A4 @ =0x00018695 + cmp r1, r0 + bls _0814979A + adds r0, 0x1 + str r0, [r2, 0x78] +_0814979A: + pop {r0} + bx r0 + .align 2, 0 +_081497A0: .4byte gUnknown_203F3D4 +_081497A4: .4byte 0x00018695 + thumb_func_end sub_8149780 + + thumb_func_start sub_81497A8 +sub_81497A8: @ 81497A8 + push {r4-r7,lr} + movs r5, 0 + ldr r1, _081497E0 @ =gUnknown_203F3D4 + ldr r0, [r1] + ldrb r4, [r0, 0x5] + movs r2, 0 + cmp r5, r4 + bge _081497FA + mov r12, r1 + movs r3, 0 + ldr r7, _081497E4 @ =0x000082e4 + movs r6, 0x1E + negs r6, r6 +_081497C2: + mov r0, r12 + ldr r1, [r0] + adds r0, r1, r7 + adds r0, r3 + ldr r0, [r0] + cmp r0, r6 + bne _081497E8 + adds r0, r1, 0 + adds r0, 0x7C + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + adds r5, 0x1 + b _081497F2 + .align 2, 0 +_081497E0: .4byte gUnknown_203F3D4 +_081497E4: .4byte 0x000082e4 +_081497E8: + adds r0, r1, 0 + adds r0, 0x7C + adds r0, r2 + movs r1, 0 + strb r1, [r0] +_081497F2: + adds r3, 0x28 + adds r2, 0x1 + cmp r2, r4 + blt _081497C2 +_081497FA: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81497A8 + + thumb_func_start sub_8149804 +sub_8149804: @ 8149804 + push {lr} + movs r2, 0 + ldr r1, _08149828 @ =gUnknown_3005450 + ldr r3, _0814982C @ =0x0000069e + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08149820 + ldr r3, _08149830 @ =0x000008d2 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08149820 + movs r2, 0x1 +_08149820: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 +_08149828: .4byte gUnknown_3005450 +_0814982C: .4byte 0x0000069e +_08149830: .4byte 0x000008d2 + thumb_func_end sub_8149804 + + thumb_func_start sub_8149834 +sub_8149834: @ 8149834 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + ldr r6, _08149874 @ =gUnknown_203F3D4 + movs r5, 0x1 +_08149842: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08149852 + adds r0, r5, 0 + lsls r0, r1 + orrs r2, r0 + adds r3, 0x1 +_08149852: + adds r1, 0x1 + cmp r1, 0x4 + ble _08149842 + ldr r0, [r6] + adds r0, 0x71 + strb r2, [r0] + cmp r2, 0 + beq _0814986A + ldr r0, [r6] + adds r0, 0x4D + movs r1, 0x1 + strb r1, [r0] +_0814986A: + adds r0, r3, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08149874: .4byte gUnknown_203F3D4 + thumb_func_end sub_8149834 + + thumb_func_start sub_8149878 +sub_8149878: @ 8149878 + ldr r0, _08149884 @ =gUnknown_203F3D4 + ldr r0, [r0] + adds r0, 0x44 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_08149884: .4byte gUnknown_203F3D4 + thumb_func_end sub_8149878 + + thumb_func_start sub_8149888 +sub_8149888: @ 8149888 + ldr r1, _08149894 @ =gUnknown_846B744 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_08149894: .4byte gUnknown_846B744 + thumb_func_end sub_8149888 + + thumb_func_start sub_8149898 +sub_8149898: @ 8149898 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _081498B0 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrh r2, [r0, 0xE] + cmp r1, r2 + bls _081498AA + strh r1, [r0, 0xE] +_081498AA: + pop {r0} + bx r0 + .align 2, 0 +_081498B0: .4byte gUnknown_203F3D4 + thumb_func_end sub_8149898 + + thumb_func_start sub_81498B4 +sub_81498B4: @ 81498B4 + push {lr} + ldr r0, _081498C8 @ =gUnknown_203F3D4 + ldr r0, [r0] + ldr r1, _081498CC @ =gUnknown_846B76C + ldr r2, [r0, 0x78] + ldr r0, [r1] + cmp r2, r0 + bcs _081498D0 + movs r0, 0 + b _081498D2 + .align 2, 0 +_081498C8: .4byte gUnknown_203F3D4 +_081498CC: .4byte gUnknown_846B76C +_081498D0: + movs r0, 0x1 +_081498D2: + pop {r1} + bx r1 + thumb_func_end sub_81498B4 + + thumb_func_start sub_81498D8 +sub_81498D8: @ 81498D8 + push {r4,lr} + bl sub_8149910 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_8149930 + lsls r0, 16 + lsrs r0, 4 + ldr r1, _081498FC @ =0x00000fff + ands r4, r1 + orrs r0, r4 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081498FC: .4byte 0x00000fff + thumb_func_end sub_81498D8 + + thumb_func_start sub_8149900 +sub_8149900: @ 8149900 + lsls r0, 16 + lsrs r3, r0, 28 + strh r3, [r2] + lsls r0, 4 + lsrs r0, 20 + strh r0, [r1] + bx lr + thumb_func_end sub_8149900 + + thumb_func_start sub_8149910 +sub_8149910: @ 8149910 + push {lr} + bl Random + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + ldr r0, _0814992C @ =gUnknown_846B75C + lsrs r1, 15 + adds r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0814992C: .4byte gUnknown_846B75C + thumb_func_end sub_8149910 + + thumb_func_start sub_8149930 +sub_8149930: @ 8149930 + push {r4-r6,lr} + movs r5, 0 + movs r4, 0 + ldr r3, _08149964 @ =gUnknown_203F3D4 + ldr r0, [r3] + ldr r2, _08149968 @ =gUnknown_846B76C + ldr r1, [r0, 0x78] + ldr r0, [r2] + cmp r1, r0 + bcc _0814996C + ldr r5, [r2, 0x4] + adds r6, r3, 0 + adds r3, r2, 0x4 +_0814994A: + adds r3, 0x8 + adds r2, 0x8 + adds r4, 0x1 + cmp r4, 0x4 + bhi _0814996C + ldr r0, [r6] + ldr r1, [r0, 0x78] + ldr r0, [r2] + cmp r1, r0 + bcc _0814996C + ldr r5, [r3] + b _0814994A + .align 2, 0 +_08149964: .4byte gUnknown_203F3D4 +_08149968: .4byte gUnknown_846B76C +_0814996C: + lsls r0, r5, 16 + lsrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8149930 + + thumb_func_start sub_8149978 +sub_8149978: @ 8149978 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + b _0814998A +_08149984: + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_0814998A: + cmp r4, 0 + beq _0814999C + adds r0, r5, 0 + adds r1, r4, 0 + bl CheckBagHasSpace + lsls r0, 24 + cmp r0, 0 + beq _08149984 +_0814999C: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8149978 + + thumb_func_start sub_81499A4 +sub_81499A4: @ 81499A4 + push {lr} + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81499A4 + + thumb_func_start sub_81499B4 +sub_81499B4: @ 81499B4 + ldr r0, _081499BC @ =gUnknown_203F3D4 + ldr r0, [r0] + ldrb r0, [r0, 0x6] + bx lr + .align 2, 0 +_081499BC: .4byte gUnknown_203F3D4 + thumb_func_end sub_81499B4 + + thumb_func_start sub_81499C0 +sub_81499C0: @ 81499C0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081499D8 @ =gUnknown_203F3D4 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _081499DC @ =0x000082a8 + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + bx lr + .align 2, 0 +_081499D8: .4byte gUnknown_203F3D4 +_081499DC: .4byte 0x000082a8 + thumb_func_end sub_81499C0 + + thumb_func_start sub_81499E0 +sub_81499E0: @ 81499E0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _081499FC @ =gUnknown_203F3D4 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, [r2] + adds r0, r1 + movs r1, 0x83 + lsls r1, 8 + adds r0, r1 + bx lr + .align 2, 0 +_081499FC: .4byte gUnknown_203F3D4 + thumb_func_end sub_81499E0 + + thumb_func_start sub_8149A00 +sub_8149A00: @ 8149A00 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_8147D00 + lsls r0, 16 + asrs r0, 16 + mvns r0, r0 + lsrs r0, 31 + pop {r1} + bx r1 + thumb_func_end sub_8149A00 + + thumb_func_start sub_8149A18 +sub_8149A18: @ 8149A18 + push {r4,r5,lr} + movs r5, 0 +_08149A1C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08149A4C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _08149A54 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl sub_8149A00 + cmp r0, 0 + beq _08149A54 + ldr r1, _08149A50 @ =gSpecialVar_Result + movs r0, 0x1 + b _08149A5E + .align 2, 0 +_08149A4C: .4byte gPlayerParty +_08149A50: .4byte gSpecialVar_Result +_08149A54: + adds r5, 0x1 + cmp r5, 0x5 + ble _08149A1C + ldr r1, _08149A68 @ =gSpecialVar_Result + movs r0, 0 +_08149A5E: + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149A68: .4byte gSpecialVar_Result + thumb_func_end sub_8149A18 + + thumb_func_start sub_8149A6C +sub_8149A6C: @ 8149A6C + push {lr} + sub sp, 0xC + mov r2, sp + movs r1, 0x1 + strb r1, [r2] + ldrh r1, [r0] + strh r1, [r2, 0x2] + ldr r1, [r0, 0x4] + str r1, [sp, 0x8] + ldr r0, [r0, 0x8] + str r0, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_8149A6C + + thumb_func_start sub_8149A90 +sub_8149A90: @ 8149A90 + push {r4,lr} + sub sp, 0xC + adds r4, r1, 0 + ldr r3, _08149AC4 @ =gUnknown_3003ED0 + lsls r2, r0, 4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + movs r1, 0xBC + lsls r1, 6 + cmp r0, r1 + bne _08149AC0 + adds r1, r3, 0x2 + adds r1, r2, r1 + mov r0, sp + movs r2, 0xC + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, 0x1 + beq _08149AC8 +_08149AC0: + movs r0, 0 + b _08149AD8 + .align 2, 0 +_08149AC4: .4byte gUnknown_3003ED0 +_08149AC8: + mov r0, sp + ldrh r0, [r0, 0x2] + strh r0, [r4] + ldr r0, [sp, 0x8] + str r0, [r4, 0x4] + ldr r0, [sp, 0x4] + str r0, [r4, 0x8] + movs r0, 0x1 +_08149AD8: + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8149A90 + + thumb_func_start sub_8149AE0 +sub_8149AE0: @ 8149AE0 + push {lr} + sub sp, 0xC + mov r2, sp + movs r1, 0x2 + strb r1, [r2] + str r0, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_8149AE0 + + thumb_func_start sub_8149AF8 +sub_8149AF8: @ 8149AF8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r3, sp + movs r2, 0x3 + strb r2, [r3] + ldr r3, [r1, 0x8] + lsls r3, 15 + ldr r2, [sp, 0x8] + ldr r4, _08149B74 @ =0x00007fff + mov r8, r4 + ands r2, r4 + orrs r2, r3 + str r2, [sp, 0x8] + mov r6, sp + ldrb r2, [r1, 0x1] + movs r5, 0x1F + adds r3, r5, 0 + ands r3, r2 + ldrb r4, [r6, 0x3] + movs r2, 0x20 + negs r2, r2 + ands r2, r4 + orrs r2, r3 + strb r2, [r6, 0x3] + mov r3, sp + ldrb r2, [r1] + strb r2, [r3, 0x1] + ldrh r2, [r1, 0x2] + strh r2, [r3, 0x6] + mov r4, sp + ldrh r2, [r1, 0x4] + mov r1, r8 + ands r2, r1 + ldrh r3, [r4, 0x8] + ldr r1, _08149B78 @ =0xffff8000 + ands r1, r3 + orrs r1, r2 + strh r1, [r4, 0x8] + mov r2, sp + ldrh r1, [r0, 0x10] + strb r1, [r2, 0x2] + mov r3, sp + ldr r1, [r0, 0x14] + lsls r1, 5 + ldrb r2, [r3, 0x3] + ands r5, r2 + orrs r5, r1 + strb r5, [r3, 0x3] + mov r1, sp + ldrh r0, [r0, 0xE] + strh r0, [r1, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149B74: .4byte 0x00007fff +_08149B78: .4byte 0xffff8000 + thumb_func_end sub_8149AF8 + + thumb_func_start sub_8149B7C +sub_8149B7C: @ 8149B7C + push {r4,r5,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r4, r1, 0 + ldr r2, _08149BE4 @ =gUnknown_3003ED0 + ldrh r0, [r2] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _08149BE8 + adds r1, r2, 0x2 + mov r0, sp + movs r2, 0xC + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, 0x3 + bne _08149BE8 + ldr r0, [sp, 0x8] + lsrs r0, 15 + str r0, [r4, 0x8] + mov r0, sp + ldrb r1, [r0, 0x3] + lsls r0, r1, 27 + lsrs r0, 27 + strb r0, [r4, 0x1] + mov r0, sp + ldrb r0, [r0, 0x1] + strb r0, [r4] + mov r0, sp + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x2] + mov r0, sp + ldrh r0, [r0, 0x8] + lsls r0, 17 + lsrs r0, 17 + strh r0, [r4, 0x4] + mov r0, sp + ldrb r0, [r0, 0x2] + strh r0, [r5, 0x10] + lsls r1, 24 + lsrs r1, 29 + str r1, [r5, 0x14] + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r5, 0xE] + movs r0, 0x1 + b _08149BEA + .align 2, 0 +_08149BE4: .4byte gUnknown_3003ED0 +_08149BE8: + movs r0, 0 +_08149BEA: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8149B7C + + thumb_func_start sub_8149BF4 +sub_8149BF4: @ 8149BF4 + push {r4,lr} + sub sp, 0xC + mov r4, sp + movs r3, 0x4 + strb r3, [r4] + ldrh r3, [r0, 0x10] + strb r3, [r4, 0x1] + ldr r3, [r0, 0x14] + strb r3, [r4, 0x2] + ldr r3, [r0, 0x18] + strb r3, [r4, 0x3] + mov r3, sp + ldrh r0, [r0, 0xE] + strh r0, [r3, 0x4] + mov r0, sp + strb r1, [r0, 0x6] + strh r2, [r0, 0x8] + bl sub_80F9E2C + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149BF4 + + thumb_func_start sub_8149C24 +sub_8149C24: @ 8149C24 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, _08149C80 @ =gUnknown_3003ED0 + lsls r2, r1, 4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + movs r1, 0xBC + lsls r1, 6 + cmp r0, r1 + bne _08149C84 + adds r1, r3, 0x2 + adds r1, r2, r1 + mov r0, sp + movs r2, 0xC + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, 0x4 + bne _08149C84 + mov r0, sp + ldrb r0, [r0, 0x1] + strh r0, [r4, 0x10] + mov r0, sp + ldrb r0, [r0, 0x2] + str r0, [r4, 0x14] + mov r0, sp + ldrb r0, [r0, 0x3] + str r0, [r4, 0x18] + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0xE] + mov r0, sp + ldrb r0, [r0, 0x6] + strb r0, [r5] + mov r0, sp + ldrh r0, [r0, 0x8] + strh r0, [r6] + movs r0, 0x1 + b _08149C86 + .align 2, 0 +_08149C80: .4byte gUnknown_3003ED0 +_08149C84: + movs r0, 0 +_08149C86: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8149C24 + + thumb_func_start sub_8149C90 +sub_8149C90: @ 8149C90 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + ldr r3, _08149CDC @ =gUnknown_3003ED0 + lsls r2, r1, 4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + movs r1, 0xBC + lsls r1, 6 + cmp r0, r1 + bne _08149CE0 + adds r1, r3, 0x2 + adds r1, r2, r1 + mov r0, sp + movs r2, 0xC + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, 0x4 + bne _08149CE0 + mov r0, sp + ldrb r0, [r0, 0x1] + strh r0, [r4, 0x10] + mov r0, sp + ldrb r0, [r0, 0x2] + str r0, [r4, 0x14] + mov r0, sp + ldrb r0, [r0, 0x3] + str r0, [r4, 0x18] + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0xE] + movs r0, 0x1 + b _08149CE2 + .align 2, 0 +_08149CDC: .4byte gUnknown_3003ED0 +_08149CE0: + movs r0, 0 +_08149CE2: + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8149C90 + + thumb_func_start sub_8149CEC +sub_8149CEC: @ 8149CEC + push {r4,lr} + ldr r4, _08149D18 @ =gUnknown_203F3D8 + str r0, [r4] + bl sub_8149D34 + ldr r0, _08149D1C @ =sub_8149DA4 + movs r1, 0x3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, 0x6] + ldr r2, [r4] + ldrb r0, [r2, 0x6] + movs r1, 0x2 + bl SetWordTaskArg + ldr r0, _08149D20 @ =sub_8149DC8 + bl sub_8149D80 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149D18: .4byte gUnknown_203F3D8 +_08149D1C: .4byte sub_8149DA4 +_08149D20: .4byte sub_8149DC8 + thumb_func_end sub_8149CEC + + thumb_func_start sub_8149D24 +sub_8149D24: @ 8149D24 + push {lr} + bl FreeAllWindowBuffers + bl sub_815C9F4 + pop {r0} + bx r0 + thumb_func_end sub_8149D24 + + thumb_func_start sub_8149D34 +sub_8149D34: @ 8149D34 + movs r1, 0 + strh r1, [r0, 0x4] + str r1, [r0] + movs r1, 0xFF + strh r1, [r0, 0x12] + bx lr + thumb_func_end sub_8149D34 + + thumb_func_start sub_8149D40 +sub_8149D40: @ 8149D40 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + ldr r4, _08149D64 @ =gUnknown_846D8FC +_08149D48: + ldr r0, [r4] + cmp r0, r6 + bne _08149D54 + ldr r0, [r4, 0x4] + bl sub_8149D80 +_08149D54: + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x9 + bls _08149D48 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149D64: .4byte gUnknown_846D8FC + thumb_func_end sub_8149D40 + + thumb_func_start sub_8149D68 +sub_8149D68: @ 8149D68 + ldr r0, _08149D7C @ =gUnknown_203F3D8 + ldr r0, [r0] + ldr r1, [r0] + movs r0, 0x1 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .align 2, 0 +_08149D7C: .4byte gUnknown_203F3D8 + thumb_func_end sub_8149D68 + + thumb_func_start sub_8149D80 +sub_8149D80: @ 8149D80 + push {r4,lr} + adds r2, r0, 0 + ldr r4, _08149DA0 @ =gUnknown_203F3D8 + ldr r0, [r4] + ldrb r0, [r0, 0x6] + movs r1, 0 + bl SetWordTaskArg + ldr r1, [r4] + movs r0, 0 + strh r0, [r1, 0x4] + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149DA0: .4byte gUnknown_203F3D8 + thumb_func_end sub_8149D80 + + thumb_func_start sub_8149DA4 +sub_8149DA4: @ 8149DA4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _08149DC4 @ =gUnknown_203F3D8 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + bne _08149DC0 + adds r0, r1, 0 + movs r1, 0 + bl GetWordTaskArg + bl _call_via_r0 +_08149DC0: + pop {r0} + bx r0 + .align 2, 0 +_08149DC4: .4byte gUnknown_203F3D8 + thumb_func_end sub_8149DA4 + + thumb_func_start sub_8149DC8 +sub_8149DC8: @ 8149DC8 + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _08149DE4 @ =gUnknown_203F3D8 + ldr r1, [r6] + ldrh r5, [r1, 0x4] + cmp r5, 0x1 + bne _08149DD8 + b _08149F18 +_08149DD8: + cmp r5, 0x1 + bgt _08149DE8 + cmp r5, 0 + beq _08149DF0 + b _08149F5A + .align 2, 0 +_08149DE4: .4byte gUnknown_203F3D8 +_08149DE8: + cmp r5, 0x2 + bne _08149DEE + b _08149F56 +_08149DEE: + b _08149F5A +_08149DF0: + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08149EE8 @ =gUnknown_846D8D4 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r0, _08149EEC @ =gUnknown_846D8E4 + bl InitWindows + bl sub_80F6C14 + bl reset_temp_tile_data_buffers + ldr r0, [r6] + bl sub_814AD6C + bl sub_814A9C8 + ldr r0, _08149EF0 @ =gUnknown_846B7B4 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, _08149EF4 @ =gUnknown_846B7D4 + str r5, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _08149EF8 @ =gUnknown_846BA00 + movs r4, 0x1 + str r4, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _08149EFC @ =gUnknown_846BBB0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _08149F00 @ =gUnknown_846BBD0 + str r5, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _08149F04 @ =gUnknown_846C520 + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _08149F08 @ =gUnknown_846C8D8 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r1, _08149F0C @ =gUnknown_846C8F8 + str r5, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _08149F10 @ =gUnknown_846D3A8 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _08149F14 @ =gUnknown_846B794 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r1, [r6] + movs r0, 0xD3 + lsls r0, 1 + adds r1, r0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + bl sub_814A84C + movs r0, 0 + bl sub_814AA24 + movs r0, 0 + movs r1, 0x1 + movs r2, 0xE0 + bl sub_814FDA0 + movs r0, 0 + movs r1, 0xA + movs r2, 0xD0 + bl LoadUserWindowBorderGfx + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + b _08149F4C + .align 2, 0 +_08149EE8: .4byte gUnknown_846D8D4 +_08149EEC: .4byte gUnknown_846D8E4 +_08149EF0: .4byte gUnknown_846B7B4 +_08149EF4: .4byte gUnknown_846B7D4 +_08149EF8: .4byte gUnknown_846BA00 +_08149EFC: .4byte gUnknown_846BBB0 +_08149F00: .4byte gUnknown_846BBD0 +_08149F04: .4byte gUnknown_846C520 +_08149F08: .4byte gUnknown_846C8D8 +_08149F0C: .4byte gUnknown_846C8F8 +_08149F10: .4byte gUnknown_846D3A8 +_08149F14: .4byte gUnknown_846B794 +_08149F18: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _08149F5A + bl sub_814A8B8 + ldr r0, [r6] + bl sub_814B294 + ldr r0, [r6] + movs r1, 0x6 + bl sub_814B348 + movs r0, 0x3 + bl ShowBg + movs r0, 0 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x1 + bl HideBg +_08149F4C: + ldr r1, [r6] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _08149F5A +_08149F56: + movs r0, 0x1 + str r0, [r1] +_08149F5A: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8149DC8 + + thumb_func_start sub_8149F64 +sub_8149F64: @ 8149F64 + push {r4,lr} + ldr r4, _08149F7C @ =gUnknown_203F3D8 + ldr r0, [r4] + ldrh r0, [r0, 0x4] + cmp r0, 0x1 + beq _08149F90 + cmp r0, 0x1 + bgt _08149F80 + cmp r0, 0 + beq _08149F8A + b _08149FCA + .align 2, 0 +_08149F7C: .4byte gUnknown_203F3D8 +_08149F80: + cmp r0, 0x2 + beq _08149FA2 + cmp r0, 0x3 + beq _08149FBA + b _08149FCA +_08149F8A: + bl sub_814AADC + b _08149FB0 +_08149F90: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08149FCA + movs r0, 0 + bl sub_814AC30 + b _08149FB0 +_08149FA2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08149FCA + bl sub_814AC94 +_08149FB0: + ldr r1, [r4] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _08149FCA +_08149FBA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08149FCA + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1] +_08149FCA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149F64 + + thumb_func_start sub_8149FD0 +sub_8149FD0: @ 8149FD0 + push {r4,lr} + ldr r4, _08149FE8 @ =gUnknown_203F3D8 + ldr r0, [r4] + ldrh r0, [r0, 0x4] + cmp r0, 0x1 + beq _08149FFC + cmp r0, 0x1 + bgt _08149FEC + cmp r0, 0 + beq _08149FF6 + b _0814A036 + .align 2, 0 +_08149FE8: .4byte gUnknown_203F3D8 +_08149FEC: + cmp r0, 0x2 + beq _0814A00E + cmp r0, 0x3 + beq _0814A026 + b _0814A036 +_08149FF6: + bl sub_814AADC + b _0814A01C +_08149FFC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A036 + movs r0, 0x1 + bl sub_814AC30 + b _0814A01C +_0814A00E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A036 + bl sub_814AC94 +_0814A01C: + ldr r1, [r4] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A036 +_0814A026: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A036 + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1] +_0814A036: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149FD0 + + thumb_func_start sub_814A03C +sub_814A03C: @ 814A03C + push {r4,r5,lr} + bl sub_81499A4 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0814A058 @ =gUnknown_203F3D8 + ldr r0, [r0] + ldrh r0, [r0, 0x4] + cmp r0, 0 + beq _0814A05C + cmp r0, 0x1 + beq _0814A090 + b _0814A0BE + .align 2, 0 +_0814A058: .4byte gUnknown_203F3D8 +_0814A05C: + movs r4, 0 + cmp r4, r5 + bge _0814A078 +_0814A062: + ldr r0, _0814A08C @ =gUnknown_203F3D8 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x1C + adds r0, r1 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r4, 0x1 + cmp r4, r5 + blt _0814A062 +_0814A078: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, _0814A08C @ =gUnknown_203F3D8 + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A0BE + .align 2, 0 +_0814A08C: .4byte gUnknown_203F3D8 +_0814A090: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A0BE + movs r4, 0 + cmp r4, r5 + bge _0814A0B6 +_0814A0A0: + ldr r0, _0814A0C4 @ =gUnknown_203F3D8 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x1C + adds r0, r1 + ldrb r0, [r0] + bl RemoveWindow + adds r4, 0x1 + cmp r4, r5 + blt _0814A0A0 +_0814A0B6: + ldr r0, _0814A0C4 @ =gUnknown_203F3D8 + ldr r1, [r0] + movs r0, 0x1 + str r0, [r1] +_0814A0BE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A0C4: .4byte gUnknown_203F3D8 + thumb_func_end sub_814A03C + + thumb_func_start sub_814A0C8 +sub_814A0C8: @ 814A0C8 + push {r4,r5,lr} + sub sp, 0xC + ldr r5, _0814A0E0 @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0x1 + beq _0814A124 + cmp r4, 0x1 + bgt _0814A0E4 + cmp r4, 0 + beq _0814A0EA + b _0814A16C + .align 2, 0 +_0814A0E0: .4byte gUnknown_203F3D8 +_0814A0E4: + cmp r4, 0x2 + beq _0814A15C + b _0814A16C +_0814A0EA: + movs r0, 0x1 + movs r1, 0x8 + movs r2, 0x14 + movs r3, 0x2 + bl sub_814A754 + ldr r1, [r5] + strh r0, [r1, 0x12] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A120 @ =gUnknown_841CBFD + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + b _0814A152 + .align 2, 0 +_0814A120: .4byte gUnknown_841CBFD +_0814A124: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A16C + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + movs r2, 0xE + bl DrawTextBorderOuter + movs r0, 0x17 + movs r1, 0x7 + movs r2, 0 + bl sub_814A7D0 + movs r0, 0 + bl CopyBgTilemapBufferToVram +_0814A152: + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A16C +_0814A15C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A16C + ldr r1, [r5] + movs r0, 0x1 + str r0, [r1] +_0814A16C: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A0C8 + + thumb_func_start sub_814A174 +sub_814A174: @ 814A174 + push {r4,r5,lr} + sub sp, 0xC + ldr r5, _0814A18C @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0x1 + beq _0814A1D0 + cmp r4, 0x1 + bgt _0814A190 + cmp r4, 0 + beq _0814A196 + b _0814A20E + .align 2, 0 +_0814A18C: .4byte gUnknown_203F3D8 +_0814A190: + cmp r4, 0x2 + beq _0814A1FE + b _0814A20E +_0814A196: + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x1A + movs r3, 0x4 + bl sub_814A754 + ldr r1, [r5] + strh r0, [r1, 0x12] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A1CC @ =gUnknown_841CC42 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + b _0814A1F4 + .align 2, 0 +_0814A1CC: .4byte gUnknown_841CC42 +_0814A1D0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A20E + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + movs r2, 0xE + bl DrawTextBorderOuter + movs r0, 0 + bl CopyBgTilemapBufferToVram +_0814A1F4: + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A20E +_0814A1FE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A20E + ldr r1, [r5] + movs r0, 0x1 + str r0, [r1] +_0814A20E: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A174 + + thumb_func_start sub_814A218 +sub_814A218: @ 814A218 + push {r4,r5,lr} + ldr r5, _0814A22C @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0 + beq _0814A230 + cmp r4, 0x1 + beq _0814A248 + b _0814A25E + .align 2, 0 +_0814A22C: .4byte gUnknown_203F3D8 +_0814A230: + bl sub_814A6CC + bl sub_81100E8 + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A25E +_0814A248: + bl sub_814A6FC + cmp r0, 0 + bne _0814A25E + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A25E + ldr r0, [r5] + str r4, [r0] +_0814A25E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A218 + + thumb_func_start sub_814A264 +sub_814A264: @ 814A264 + push {r4,r5,lr} + sub sp, 0xC + ldr r5, _0814A27C @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0x1 + beq _0814A2C0 + cmp r4, 0x1 + bgt _0814A280 + cmp r4, 0 + beq _0814A286 + b _0814A2FE + .align 2, 0 +_0814A27C: .4byte gUnknown_203F3D8 +_0814A280: + cmp r4, 0x2 + beq _0814A2EE + b _0814A2FE +_0814A286: + movs r0, 0x2 + movs r1, 0x8 + movs r2, 0x16 + movs r3, 0x4 + bl sub_814A754 + ldr r1, [r5] + strh r0, [r1, 0x12] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A2BC @ =gUnknown_841CC11 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + b _0814A2E4 + .align 2, 0 +_0814A2BC: .4byte gUnknown_841CC11 +_0814A2C0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A2FE + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + movs r2, 0xE + bl DrawTextBorderOuter + movs r0, 0 + bl CopyBgTilemapBufferToVram +_0814A2E4: + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A2FE +_0814A2EE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A2FE + ldr r1, [r5] + movs r0, 0x1 + str r0, [r1] +_0814A2FE: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A264 + + thumb_func_start sub_814A308 +sub_814A308: @ 814A308 + push {r4,r5,lr} + sub sp, 0xC + ldr r5, _0814A320 @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0x1 + beq _0814A364 + cmp r4, 0x1 + bgt _0814A324 + cmp r4, 0 + beq _0814A32A + b _0814A3A2 + .align 2, 0 +_0814A320: .4byte gUnknown_203F3D8 +_0814A324: + cmp r4, 0x2 + beq _0814A392 + b _0814A3A2 +_0814A32A: + movs r0, 0x7 + movs r1, 0xA + movs r2, 0x10 + movs r3, 0x2 + bl sub_814A754 + ldr r1, [r5] + strh r0, [r1, 0x12] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A360 @ =gUnknown_841CC64 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + b _0814A388 + .align 2, 0 +_0814A360: .4byte gUnknown_841CC64 +_0814A364: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A3A2 + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + movs r2, 0xE + bl DrawTextBorderOuter + movs r0, 0 + bl CopyBgTilemapBufferToVram +_0814A388: + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A3A2 +_0814A392: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A3A2 + ldr r1, [r5] + movs r0, 0x1 + str r0, [r1] +_0814A3A2: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A308 + + thumb_func_start sub_814A3AC +sub_814A3AC: @ 814A3AC + push {r4,r5,lr} + ldr r5, _0814A3C0 @ =gUnknown_203F3D8 + ldr r0, [r5] + ldrh r4, [r0, 0x4] + cmp r4, 0 + beq _0814A3C4 + cmp r4, 0x1 + beq _0814A3D2 + b _0814A3DE + .align 2, 0 +_0814A3C0: .4byte gUnknown_203F3D8 +_0814A3C4: + bl sub_814B43C + ldr r1, [r5] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + b _0814A3DE +_0814A3D2: + bl sub_814B460 + cmp r0, 0 + bne _0814A3DE + ldr r0, [r5] + str r4, [r0] +_0814A3DE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A3AC + + thumb_func_start sub_814A3E4 +sub_814A3E4: @ 814A3E4 + push {lr} + ldr r1, _0814A404 @ =gUnknown_203F3D8 + ldr r0, [r1] + movs r2, 0 + strb r2, [r0, 0xA] + ldr r0, [r1] + strb r2, [r0, 0xB] + ldr r2, [r1] + movs r0, 0x6 + strb r0, [r2, 0xC] + ldr r0, [r1] + ldrb r0, [r0, 0xC] + bl sub_814A95C + pop {r0} + bx r0 + .align 2, 0 +_0814A404: .4byte gUnknown_203F3D8 + thumb_func_end sub_814A3E4 + + thumb_func_start sub_814A408 +sub_814A408: @ 814A408 + push {r4,lr} + ldr r0, _0814A41C @ =gUnknown_203F3D8 + ldr r2, [r0] + ldrb r3, [r2, 0xA] + adds r4, r0, 0 + cmp r3, 0 + beq _0814A420 + cmp r3, 0x1 + beq _0814A45A + b _0814A45E + .align 2, 0 +_0814A41C: .4byte gUnknown_203F3D8 +_0814A420: + ldrb r0, [r2, 0xB] + adds r0, 0x1 + strb r0, [r2, 0xB] + ldr r1, [r4] + ldrb r0, [r1, 0xB] + cmp r0, 0xA + bls _0814A44A + strb r3, [r1, 0xB] + ldr r0, [r4] + ldrb r1, [r0, 0xC] + adds r1, 0x1 + strb r1, [r0, 0xC] + ldr r1, [r4] + ldrb r0, [r1, 0xC] + cmp r0, 0x9 + bls _0814A44A + strb r3, [r1, 0xC] + ldr r1, [r4] + ldrb r0, [r1, 0xA] + adds r0, 0x1 + strb r0, [r1, 0xA] +_0814A44A: + ldr r0, [r4] + ldrb r0, [r0, 0xC] + bl sub_814A95C + ldr r0, [r4] + ldrb r0, [r0, 0xC] + cmp r0, 0x7 + bne _0814A45E +_0814A45A: + movs r0, 0 + b _0814A460 +_0814A45E: + movs r0, 0x1 +_0814A460: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814A408 + + thumb_func_start sub_814A468 +sub_814A468: @ 814A468 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r5, _0814A52C @ =gUnknown_203F3D8 + ldr r1, [r5] + adds r1, 0x26 + adds r0, r4, 0 + bl CopyItemName + ldr r0, [r5] + adds r0, 0x66 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + subs r4, 0x85 + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x29 + bhi _0814A4C2 + cmp r6, 0x1 + bls _0814A4C2 + ldr r0, [r5] + adds r0, 0x26 + bl StringLength + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0814A4C2 + ldr r0, [r5] + adds r0, r1, r0 + adds r0, 0x25 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r5] + adds r0, 0x26 + ldr r1, _0814A530 @ =gUnknown_846D94C + bl StringAppend +_0814A4C2: + bl UnkTextUtil_Reset + ldr r4, _0814A52C @ =gUnknown_203F3D8 + ldr r1, [r4] + adds r1, 0x26 + movs r0, 0 + bl UnkTextUtil_SetPtrI + ldr r1, [r4] + adds r1, 0x66 + movs r0, 0x1 + bl UnkTextUtil_SetPtrI + ldr r0, [r4] + adds r0, 0xA6 + ldr r1, _0814A534 @ =gUnknown_841CBA9 + bl UnkTextUtil_StringExpandPlaceholders + movs r0, 0x4 + movs r1, 0x8 + movs r2, 0x16 + movs r3, 0x4 + bl sub_814A754 + ldr r2, [r4] + movs r5, 0 + movs r3, 0 + strh r0, [r2, 0x12] + lsls r0, 24 + lsrs r0, 24 + adds r2, 0xA6 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r3, [sp, 0x8] + movs r1, 0x2 + bl AddTextPrinterParameterized + ldr r0, [r4] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _0814A538 @ =0x00000101 + strh r0, [r1, 0x14] + strb r5, [r1, 0xD] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A52C: .4byte gUnknown_203F3D8 +_0814A530: .4byte gUnknown_846D94C +_0814A534: .4byte gUnknown_841CBA9 +_0814A538: .4byte 0x00000101 + thumb_func_end sub_814A468 + + thumb_func_start sub_814A53C +sub_814A53C: @ 814A53C + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0814A5AC @ =gUnknown_203F3D8 + ldr r1, [r4] + adds r1, 0x26 + bl CopyItemName + bl UnkTextUtil_Reset + ldr r1, [r4] + adds r1, 0x26 + movs r0, 0 + bl UnkTextUtil_SetPtrI + ldr r0, [r4] + adds r0, 0xA6 + ldr r1, _0814A5B0 @ =gUnknown_841CBCA + bl UnkTextUtil_StringExpandPlaceholders + movs r0, 0x4 + movs r1, 0x8 + movs r2, 0x16 + movs r3, 0x4 + bl sub_814A754 + ldr r2, [r4] + movs r6, 0 + movs r5, 0 + strh r0, [r2, 0x12] + lsls r0, 24 + lsrs r0, 24 + adds r2, 0xA6 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r4] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + strh r5, [r0, 0x14] + strb r6, [r0, 0xD] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A5AC: .4byte gUnknown_203F3D8 +_0814A5B0: .4byte gUnknown_841CBCA + thumb_func_end sub_814A53C + + thumb_func_start sub_814A5B4 +sub_814A5B4: @ 814A5B4 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0814A624 @ =gUnknown_203F3D8 + ldr r1, [r4] + adds r1, 0x26 + bl CopyItemName + bl UnkTextUtil_Reset + ldr r1, [r4] + adds r1, 0x26 + movs r0, 0 + bl UnkTextUtil_SetPtrI + ldr r0, [r4] + adds r0, 0xA6 + ldr r1, _0814A628 @ =gUnknown_841CBE4 + bl UnkTextUtil_StringExpandPlaceholders + movs r0, 0x4 + movs r1, 0x9 + movs r2, 0x16 + movs r3, 0x2 + bl sub_814A754 + ldr r2, [r4] + movs r6, 0 + movs r5, 0 + strh r0, [r2, 0x12] + lsls r0, 24 + lsrs r0, 24 + adds r2, 0xA6 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r0, [r4] + ldrb r0, [r0, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + strh r5, [r0, 0x14] + strb r6, [r0, 0xD] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A624: .4byte gUnknown_203F3D8 +_0814A628: .4byte gUnknown_841CBE4 + thumb_func_end sub_814A5B4 + + thumb_func_start sub_814A62C +sub_814A62C: @ 814A62C + push {r4,lr} + ldr r4, _0814A644 @ =gUnknown_203F3D8 + ldr r0, [r4] + ldrb r0, [r0, 0xD] + cmp r0, 0x1 + beq _0814A680 + cmp r0, 0x1 + bgt _0814A648 + cmp r0, 0 + beq _0814A652 + b _0814A6C4 + .align 2, 0 +_0814A644: .4byte gUnknown_203F3D8 +_0814A648: + cmp r0, 0x2 + beq _0814A6A6 + cmp r0, 0x3 + beq _0814A6BA + b _0814A6C4 +_0814A652: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A6C4 + ldr r0, [r4] + ldrb r0, [r0, 0x12] + bl PutWindowTilemap + ldr r0, [r4] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + movs r2, 0xE + bl DrawTextBorderOuter + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r1, [r4] + ldrb r0, [r1, 0xD] + adds r0, 0x1 + strb r0, [r1, 0xD] + b _0814A6C4 +_0814A680: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A6C4 + ldr r1, [r4] + ldrh r0, [r1, 0x14] + cmp r0, 0 + bne _0814A698 + ldrb r0, [r1, 0xD] + adds r0, 0x2 + b _0814A6B8 +_0814A698: + ldrh r0, [r1, 0x14] + bl PlayFanfare + ldr r1, [r4] + ldrb r0, [r1, 0xD] + adds r0, 0x1 + strb r0, [r1, 0xD] +_0814A6A6: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _0814A6C4 + ldr r0, _0814A6C0 @ =gUnknown_203F3D8 + ldr r1, [r0] + ldrb r0, [r1, 0xD] + adds r0, 0x1 +_0814A6B8: + strb r0, [r1, 0xD] +_0814A6BA: + movs r0, 0 + b _0814A6C6 + .align 2, 0 +_0814A6C0: .4byte gUnknown_203F3D8 +_0814A6C4: + movs r0, 0x1 +_0814A6C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814A62C + + thumb_func_start sub_814A6CC +sub_814A6CC: @ 814A6CC + push {r4,lr} + ldr r4, _0814A6F8 @ =gUnknown_203F3D8 + ldr r0, [r4] + ldrh r0, [r0, 0x12] + cmp r0, 0xFF + beq _0814A6F0 + lsls r0, 24 + lsrs r0, 24 + bl rbox_fill_rectangle + ldr r0, [r4] + ldrb r0, [r0, 0x12] + movs r1, 0x1 + bl CopyWindowToVram + ldr r1, [r4] + movs r0, 0 + strb r0, [r1, 0xD] +_0814A6F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A6F8: .4byte gUnknown_203F3D8 + thumb_func_end sub_814A6CC + + thumb_func_start sub_814A6FC +sub_814A6FC: @ 814A6FC + push {r4,lr} + ldr r4, _0814A70C @ =gUnknown_203F3D8 + ldr r1, [r4] + ldrh r0, [r1, 0x12] + cmp r0, 0xFF + bne _0814A710 +_0814A708: + movs r0, 0 + b _0814A73C + .align 2, 0 +_0814A70C: .4byte gUnknown_203F3D8 +_0814A710: + ldrb r0, [r1, 0xD] + cmp r0, 0 + bne _0814A736 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814A73A + ldr r0, [r4] + ldrb r0, [r0, 0x12] + bl RemoveWindow + ldr r1, [r4] + movs r0, 0xFF + strh r0, [r1, 0x12] + ldrb r0, [r1, 0xD] + adds r0, 0x1 + strb r0, [r1, 0xD] + b _0814A708 +_0814A736: + cmp r0, 0x1 + beq _0814A708 +_0814A73A: + movs r0, 0x1 +_0814A73C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814A6FC + + thumb_func_start sub_814A744 +sub_814A744: @ 814A744 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, 24 + asrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_814A744 + + thumb_func_start sub_814A754 +sub_814A754: @ 814A754 + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _0814A7BC @ =0xffffff00 + ldr r4, [sp] + ands r4, r6 + lsls r0, 24 + lsrs r0, 16 + ldr r5, _0814A7C0 @ =0xffff00ff + ands r4, r5 + orrs r4, r0 + lsls r1, 24 + lsrs r1, 8 + ldr r0, _0814A7C4 @ =0xff00ffff + ands r4, r0 + orrs r4, r1 + lsls r2, 24 + ldr r0, _0814A7C8 @ =0x00ffffff + ands r4, r0 + orrs r4, r2 + str r4, [sp] + lsls r3, 24 + lsrs r3, 24 + ldr r0, [sp, 0x4] + ands r0, r6 + orrs r0, r3 + ands r0, r5 + movs r1, 0xF0 + lsls r1, 4 + orrs r0, r1 + ldr r1, _0814A7CC @ =0x0000ffff + ands r0, r1 + movs r1, 0x86 + lsls r1, 15 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl AddWindow + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r4, 0 + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814A7BC: .4byte 0xffffff00 +_0814A7C0: .4byte 0xffff00ff +_0814A7C4: .4byte 0xff00ffff +_0814A7C8: .4byte 0x00ffffff +_0814A7CC: .4byte 0x0000ffff + thumb_func_end sub_814A754 + + thumb_func_start sub_814A7D0 +sub_814A7D0: @ 814A7D0 + push {r4,r5,lr} + sub sp, 0x14 + lsls r2, 24 + lsrs r2, 24 + ldr r5, _0814A838 @ =0xffffff00 + ldr r3, [sp, 0xC] + ands r3, r5 + lsls r0, 24 + lsrs r0, 16 + ldr r4, _0814A83C @ =0xffff00ff + ands r3, r4 + orrs r3, r0 + lsls r1, 24 + lsrs r1, 8 + ldr r0, _0814A840 @ =0xff00ffff + ands r3, r0 + orrs r3, r1 + ldr r0, _0814A844 @ =0x00ffffff + ands r3, r0 + movs r0, 0xC0 + lsls r0, 19 + orrs r3, r0 + str r3, [sp, 0xC] + ldr r0, [sp, 0x10] + ands r0, r5 + movs r1, 0x4 + orrs r0, r1 + ands r0, r4 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _0814A848 @ =0x0000ffff + ands r0, r1 + movs r1, 0xAC + lsls r1, 14 + orrs r0, r1 + str r0, [sp, 0x10] + movs r0, 0xA + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + str r2, [sp, 0x8] + add r0, sp, 0xC + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl CreateYesNoMenu + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A838: .4byte 0xffffff00 +_0814A83C: .4byte 0xffff00ff +_0814A840: .4byte 0xff00ffff +_0814A844: .4byte 0x00ffffff +_0814A848: .4byte 0x0000ffff + thumb_func_end sub_814A7D0 + + thumb_func_start sub_814A84C +sub_814A84C: @ 814A84C + push {r4,lr} + sub sp, 0x10 + ldr r1, _0814A8AC @ =gUnknown_846D950 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + add r0, sp, 0xC + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r0, _0814A8B0 @ =gUnknown_841CB52 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl box_print + add r0, sp, 0xC + str r0, [sp] + str r4, [sp, 0x4] + ldr r0, _0814A8B4 @ =gUnknown_841CB5A + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl box_print + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A8AC: .4byte gUnknown_846D950 +_0814A8B0: .4byte gUnknown_841CB52 +_0814A8B4: .4byte gUnknown_841CB5A + thumb_func_end sub_814A84C + + thumb_func_start sub_814A8B8 +sub_814A8B8: @ 814A8B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + bl sub_81499A4 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldr r1, _0814A934 @ =gUnknown_846D9D4 + subs r0, 0x2 + lsls r0, 2 + adds r0, r1 + ldr r5, [r0] + movs r6, 0 + cmp r6, r10 + bge _0814A922 + ldr r0, _0814A938 @ =gUnknown_82349CC + mov r9, r0 + ldr r1, _0814A93C @ =gUnknown_203F3D8 + mov r8, r1 +_0814A8E6: + lsls r4, r6, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_81499C0 + adds r1, r0, 0 + ldrh r0, [r1] + lsls r0, 2 + add r0, r9 + ldrb r3, [r0, 0x1] + mov r2, r8 + ldr r0, [r2] + movs r7, 0 + ldrsh r2, [r5, r7] + adds r3, 0x70 + str r4, [sp] + bl sub_814ADCC + mov r1, r8 + ldr r0, [r1] + movs r2, 0 + ldrsh r1, [r5, r2] + movs r2, 0x70 + adds r3, r4, 0 + bl sub_814B240 + adds r5, 0x2 + adds r6, 0x1 + cmp r6, r10 + blt _0814A8E6 +_0814A922: + 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 +_0814A934: .4byte gUnknown_846D9D4 +_0814A938: .4byte gUnknown_82349CC +_0814A93C: .4byte gUnknown_203F3D8 + thumb_func_end sub_814A8B8 + + thumb_func_start sub_814A940 +sub_814A940: @ 814A940 + ldr r2, _0814A954 @ =gUnknown_203F3D8 + ldr r2, [r2] + lsls r0, 2 + ldr r3, _0814A958 @ =0x000081a8 + adds r2, r3 + adds r2, r0 + ldr r0, [r2] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_0814A954: .4byte gUnknown_203F3D8 +_0814A958: .4byte 0x000081a8 + thumb_func_end sub_814A940 + + thumb_func_start sub_814A95C +sub_814A95C: @ 814A95C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0814A984 @ =gUnknown_203F3D8 + ldr r0, [r0] + adds r1, r4, 0 + bl sub_814B348 + ldr r0, _0814A988 @ =gUnknown_846D953 + adds r4, r0 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 13 + movs r0, 0x2 + movs r2, 0 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A984: .4byte gUnknown_203F3D8 +_0814A988: .4byte gUnknown_846D953 + thumb_func_end sub_814A95C + + thumb_func_start sub_814A98C +sub_814A98C: @ 814A98C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + movs r6, 0 +_0814A996: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0814A9AA + ldr r0, _0814A9C4 @ =gUnknown_203F3D8 + ldr r0, [r0] + adds r1, r5, 0 + bl sub_814AF0C + adds r6, 0x1 +_0814A9AA: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x4 + ble _0814A996 + subs r0, r6, 0x2 + lsls r0, 24 + lsrs r0, 24 + bl sub_814ACCC + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814A9C4: .4byte gUnknown_203F3D8 + thumb_func_end sub_814A98C + + thumb_func_start sub_814A9C8 +sub_814A9C8: @ 814A9C8 + push {r4,lr} + sub sp, 0x10 + mov r1, sp + movs r0, 0x40 + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x8 + strb r0, [r1, 0x2] + movs r0, 0x6C + strh r0, [r1, 0x4] + movs r4, 0x6 + strh r4, [r1, 0x6] + ldr r0, _0814AA1C @ =gUnknown_846D960 + str r0, [sp, 0x8] + ldr r0, _0814AA20 @ =gUnknown_846D968 + str r0, [sp, 0xC] + movs r0, 0x2 + bl sub_815C980 + movs r0, 0 + movs r1, 0 + mov r2, sp + bl sub_815CA40 + mov r1, sp + movs r0, 0x4 + strb r0, [r1, 0x1] + movs r0, 0x1E + strh r0, [r1, 0x4] + mov r0, sp + strh r4, [r0, 0x6] + movs r0, 0x1 + movs r1, 0 + mov r2, sp + bl sub_815CA40 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AA1C: .4byte gUnknown_846D960 +_0814AA20: .4byte gUnknown_846D968 + thumb_func_end sub_814A9C8 + + thumb_func_start sub_814AA24 +sub_814AA24: @ 814AA24 + push {lr} + adds r1, r0, 0 + movs r0, 0 + bl sub_815CD70 + pop {r0} + bx r0 + thumb_func_end sub_814AA24 + + thumb_func_start sub_814AA34 +sub_814AA34: @ 814AA34 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x1 + bl sub_815CD70 + pop {r0} + bx r0 + thumb_func_end sub_814AA34 + + thumb_func_start sub_814AA48 +sub_814AA48: @ 814AA48 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0814AA5C @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814AFE8 + pop {r0} + bx r0 + .align 2, 0 +_0814AA5C: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AA48 + + thumb_func_start sub_814AA60 +sub_814AA60: @ 814AA60 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0814AA74 @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B080 + pop {r0} + bx r0 + .align 2, 0 +_0814AA74: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AA60 + + thumb_func_start sub_814AA78 +sub_814AA78: @ 814AA78 + push {lr} + adds r1, r0, 0 + ldr r0, _0814AA88 @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B010 + pop {r1} + bx r1 + .align 2, 0 +_0814AA88: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AA78 + + thumb_func_start sub_814AA8C +sub_814AA8C: @ 814AA8C + push {lr} + ldr r0, _0814AA9C @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B0A8 + pop {r0} + bx r0 + .align 2, 0 +_0814AA9C: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AA8C + + thumb_func_start sub_814AAA0 +sub_814AAA0: @ 814AAA0 + push {lr} + ldr r0, _0814AAB0 @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B134 + pop {r0} + bx r0 + .align 2, 0 +_0814AAB0: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AAA0 + + thumb_func_start sub_814AAB4 +sub_814AAB4: @ 814AAB4 + push {lr} + adds r1, r0, 0 + ldr r0, _0814AAC4 @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B168 + pop {r0} + bx r0 + .align 2, 0 +_0814AAC4: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AAB4 + + thumb_func_start sub_814AAC8 +sub_814AAC8: @ 814AAC8 + push {lr} + ldr r0, _0814AAD8 @ =gUnknown_203F3D8 + ldr r0, [r0] + bl sub_814B190 + pop {r1} + bx r1 + .align 2, 0 +_0814AAD8: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AAC8 + + thumb_func_start sub_814AADC +sub_814AADC: @ 814AADC + push {r4-r7,lr} + sub sp, 0x8 + bl sub_81499A4 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r1, _0814AB7C @ =gUnknown_846D9A8 + subs r0, r7, 0x2 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + ldr r2, _0814AB80 @ =0xffffff00 + ldr r0, [sp] + ands r0, r2 + ldr r1, _0814AB84 @ =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 20 + orrs r0, r1 + str r0, [sp] + ldr r0, [sp, 0x4] + ands r0, r2 + movs r1, 0x2 + orrs r0, r1 + ldr r1, _0814AB88 @ =0xffff00ff + ands r0, r1 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _0814AB8C @ =0x0000ffff + ands r0, r1 + movs r1, 0xAC + lsls r1, 14 + orrs r0, r1 + str r0, [sp, 0x4] + movs r5, 0 + cmp r5, r7 + bge _0814AB6C + mov r6, sp +_0814AB2A: + ldrb r0, [r4] + lsls r0, 8 + ldr r2, _0814AB88 @ =0xffff00ff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + ldrb r2, [r4, 0x2] + lsls r2, 16 + ldr r0, _0814AB90 @ =0xff00ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + mov r0, sp + bl AddWindow + ldr r1, _0814AB94 @ =gUnknown_203F3D8 + ldr r1, [r1] + lsls r2, r5, 1 + adds r1, 0x1C + adds r1, r2 + strh r0, [r1] + lsls r0, 24 + lsrs r0, 24 + bl ClearWindowTilemap + ldrh r0, [r6, 0x6] + adds r0, 0x10 + strh r0, [r6, 0x6] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r7 + blt _0814AB2A +_0814AB6C: + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814AB7C: .4byte gUnknown_846D9A8 +_0814AB80: .4byte 0xffffff00 +_0814AB84: .4byte 0x00ffffff +_0814AB88: .4byte 0xffff00ff +_0814AB8C: .4byte 0x0000ffff +_0814AB90: .4byte 0xff00ffff +_0814AB94: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AADC + + thumb_func_start sub_814AB98 +sub_814AB98: @ 814AB98 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + adds r5, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + strb r1, [r0] + strb r2, [r0, 0x1] + strb r3, [r0, 0x2] + ldr r6, _0814AC2C @ =gUnknown_203F3D8 + ldr r0, [r6] + lsls r1, r5, 1 + mov r8, r1 + adds r0, 0x1C + add r0, r8 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + bl sub_81499E0 + adds r1, r0, 0 + movs r2, 0x1 + negs r2, r2 + mov r9, r2 + movs r0, 0 + bl GetStringWidth + movs r4, 0x40 + subs r4, r0 + lsrs r4, 1 + adds r0, r5, 0 + bl sub_81499E0 + adds r1, r0, 0 + ldr r0, [r6] + adds r0, 0x1C + add r0, r8 + ldrb r0, [r0] + lsls r4, 24 + lsrs r4, 24 + add r2, sp, 0xC + str r2, [sp] + mov r2, r9 + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0 + adds r2, r4, 0 + movs r3, 0x2 + bl box_print + ldr r0, [r6] + adds r0, 0x1C + add r0, r8 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814AC2C: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AB98 + + thumb_func_start sub_814AC30 +sub_814AC30: @ 814AC30 + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_81499A4 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + bne _0814AC5A + movs r4, 0 + cmp r4, r5 + bge _0814AC8C +_0814AC46: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x3 + bl sub_814AB98 + adds r4, 0x1 + cmp r4, r5 + blt _0814AC46 + b _0814AC8C +_0814AC5A: + bl sub_81499B4 + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 + cmp r4, r5 + bge _0814AC8C +_0814AC68: + cmp r6, r4 + beq _0814AC7A + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x3 + bl sub_814AB98 + b _0814AC86 +_0814AC7A: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x4 + movs r3, 0x5 + bl sub_814AB98 +_0814AC86: + adds r4, 0x1 + cmp r4, r5 + blt _0814AC68 +_0814AC8C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_814AC30 + + thumb_func_start sub_814AC94 +sub_814AC94: @ 814AC94 + push {r4,r5,lr} + bl sub_81499A4 + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0 + cmp r4, r5 + bge _0814ACBA +_0814ACA4: + ldr r0, _0814ACC8 @ =gUnknown_203F3D8 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x1C + adds r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + adds r4, 0x1 + cmp r4, r5 + blt _0814ACA4 +_0814ACBA: + movs r0, 0 + bl CopyBgTilemapBufferToVram + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814ACC8: .4byte gUnknown_203F3D8 + thumb_func_end sub_814AC94 + + thumb_func_start sub_814ACCC +sub_814ACCC: @ 814ACCC + push {r4,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _0814AD10 @ =gUnknown_203F3D8 + ldr r2, [r0] + movs r0, 0 + str r0, [r2, 0x18] + lsrs r1, 25 + lsls r1, 16 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + ands r4, r0 + lsls r4, 8 + subs r4, 0x28 + lsls r4, 8 + adds r1, r4, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + ldr r0, _0814AD14 @ =sub_814AD50 + movs r1, 0x4 + bl CreateTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AD10: .4byte gUnknown_203F3D8 +_0814AD14: .4byte sub_814AD50 + thumb_func_end sub_814ACCC + + thumb_func_start sub_814AD18 +sub_814AD18: @ 814AD18 + push {r4,lr} + ldr r4, _0814AD28 @ =gUnknown_203F3D8 + ldr r0, [r4] + ldr r0, [r0, 0x18] + cmp r0, 0x1F + bls _0814AD2C + movs r0, 0 + b _0814AD4A + .align 2, 0 +_0814AD28: .4byte gUnknown_203F3D8 +_0814AD2C: + movs r0, 0x1 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgY + ldr r1, [r4] + ldr r0, [r1, 0x18] + adds r0, 0x1 + str r0, [r1, 0x18] + cmp r0, 0x1F + bls _0814AD48 + movs r0, 0x1 + bl HideBg +_0814AD48: + movs r0, 0x1 +_0814AD4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_814AD18 + + thumb_func_start sub_814AD50 +sub_814AD50: @ 814AD50 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_814AD18 + cmp r0, 0 + bne _0814AD64 + adds r0, r4, 0 + bl DestroyTask +_0814AD64: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814AD50 + + thumb_func_start sub_814AD6C +sub_814AD6C: @ 814AD6C + push {r4-r6,lr} + adds r6, r0, 0 + movs r4, 0 + ldr r5, _0814ADAC @ =gUnknown_846E0B0 +_0814AD74: + adds r0, r5, 0 + bl LoadCompressedObjectPic + adds r5, 0x8 + adds r4, 0x1 + cmp r4, 0x4 + bls _0814AD74 + movs r4, 0 + ldr r5, _0814ADB0 @ =gUnknown_846E0D8 +_0814AD86: + adds r0, r5, 0 + bl LoadSpritePalette + adds r5, 0x8 + adds r4, 0x1 + cmp r4, 0x1 + bls _0814AD86 + movs r0, 0x5 + bl IndexOfSpritePaletteTag + strb r0, [r6, 0xE] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + strb r0, [r6, 0xF] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814ADAC: .4byte gUnknown_846E0B0 +_0814ADB0: .4byte gUnknown_846E0D8 + thumb_func_end sub_814AD6C + + thumb_func_start sub_814ADB4 +sub_814ADB4: @ 814ADB4 + push {lr} + movs r2, 0 + movs r1, 0x7 + adds r0, 0x3C +_0814ADBC: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _0814ADBC + pop {r0} + bx r0 + thumb_func_end sub_814ADB4 + + thumb_func_start sub_814ADCC +sub_814ADCC: @ 814ADCC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + mov r9, r0 + adds r7, r1, 0 + ldr r0, [sp, 0x54] + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x28] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x2C] + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, sp + ldr r0, _0814AE20 @ =gUnknown_846E0E8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x80 + lsls r0, 6 + bl Alloc + mov r8, r0 + movs r0, 0x80 + lsls r0, 4 + bl Alloc + mov r10, r0 + bl sub_81499B4 + lsls r0, 16 + lsrs r0, 16 + cmp r6, r0 + bne _0814AE24 + movs r0, 0x3 + b _0814AE2A + .align 2, 0 +_0814AE20: .4byte gUnknown_846E0E8 +_0814AE24: + adds r0, r6, 0x4 + lsls r0, 24 + lsrs r0, 24 +_0814AE2A: + str r0, [sp, 0x30] + mov r1, r8 + cmp r1, 0 + beq _0814AEEC + mov r2, r10 + cmp r2, 0 + beq _0814AEEC + ldrh r2, [r7] + lsls r0, r2, 3 + ldr r1, _0814AED8 @ =gMonFrontPicTable + adds r0, r1 + ldr r3, [r7, 0x8] + mov r1, r8 + bl sub_800ECC4 + mov r3, r8 + str r3, [sp, 0x18] + adds r4, r6, 0 + add r0, sp, 0x18 + ldr r5, _0814AEDC @ =0xffff0000 + lsls r1, r4, 16 + movs r2, 0x80 + lsls r2, 4 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpriteSheet + ldrh r0, [r7] + ldr r1, [r7, 0x4] + ldr r2, [r7, 0x8] + bl GetFrontSpritePalFromSpeciesAndPersonality + str r0, [sp, 0x20] + add r0, sp, 0x20 + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r4 + str r1, [r0, 0x4] + bl LoadCompressedObjectPalette + mov r0, r8 + bl Free + mov r0, r10 + bl Free + mov r1, sp + mov r0, sp + ldrh r0, [r0] + adds r0, r6 + strh r0, [r1] + mov r0, sp + ldrh r0, [r0, 0x2] + adds r0, r6 + strh r0, [r1, 0x2] + ldr r4, [sp, 0x28] + lsls r1, r4, 16 + asrs r1, 16 + ldr r0, [sp, 0x2C] + lsls r2, r0, 16 + asrs r2, 16 + mov r0, sp + ldr r3, [sp, 0x30] + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _0814AEEC + lsls r0, r6, 2 + ldr r2, _0814AEE0 @ =0x000081a8 + add r2, r9 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AEE4 @ =gSprites + adds r0, r1 + str r0, [r2] + ldr r0, _0814AEE8 @ =0x000081fc + add r0, r9 + adds r0, r6 + add r1, sp, 0x30 + ldrb r1, [r1] + strb r1, [r0] + b _0814AEF8 + .align 2, 0 +_0814AED8: .4byte gMonFrontPicTable +_0814AEDC: .4byte 0xffff0000 +_0814AEE0: .4byte 0x000081a8 +_0814AEE4: .4byte gSprites +_0814AEE8: .4byte 0x000081fc +_0814AEEC: + lsls r0, r6, 2 + ldr r1, _0814AF08 @ =0x000081a8 + add r1, r9 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_0814AEF8: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814AF08: .4byte 0x000081a8 + thumb_func_end sub_814ADCC + + thumb_func_start sub_814AF0C +sub_814AF0C: @ 814AF0C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r6, r1, 2 + ldr r0, _0814AF64 @ =0x000081bc + adds r5, r4, r0 + adds r5, r6 + ldr r0, [r5] + bl sub_814ADB4 + ldr r2, [r5] + ldr r0, _0814AF68 @ =0x000081a8 + adds r4, r0 + adds r4, r6 + ldr r1, [r4] + ldr r0, _0814AF6C @ =gSprites + subs r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r1, r0, 8 + adds r0, r1 + lsls r1, r0, 16 + adds r0, r1 + negs r0, r0 + asrs r0, 2 + strh r0, [r2, 0x3C] + ldr r1, [r5] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + movs r0, 0x60 + strh r0, [r1, 0x22] + ldr r0, [r5] + ldr r1, _0814AF70 @ =sub_814AF74 + str r1, [r0, 0x1C] + movs r1, 0x1 + bl StartSpriteAnim + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814AF64: .4byte 0x000081bc +_0814AF68: .4byte 0x000081a8 +_0814AF6C: .4byte gSprites +_0814AF70: .4byte sub_814AF74 + thumb_func_end sub_814AF0C + + thumb_func_start sub_814AF74 +sub_814AF74: @ 814AF74 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _0814AFA0 + cmp r0, 0x1 + bgt _0814AF8A + cmp r0, 0 + beq _0814AF90 + b _0814AFDE +_0814AF8A: + cmp r0, 0x2 + beq _0814AFC0 + b _0814AFDE +_0814AF90: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0814AFDE + b _0814AFCE +_0814AFA0: + ldrh r1, [r2, 0x22] + subs r1, 0x1 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x48 + bgt _0814AFDE + movs r0, 0x48 + strh r0, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _0814AFDE +_0814AFC0: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _0814AFDE +_0814AFCE: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0814AFE4 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_0814AFDE: + pop {r0} + bx r0 + .align 2, 0 +_0814AFE4: .4byte SpriteCallbackDummy + thumb_func_end sub_814AF74 + + thumb_func_start sub_814AFE8 +sub_814AFE8: @ 814AFE8 + push {lr} + lsls r1, 2 + ldr r2, _0814B008 @ =0x000081a8 + adds r0, r2 + adds r0, r1 + ldr r2, [r0] + ldr r1, _0814B00C @ =sub_814B038 + str r1, [r2, 0x1C] + movs r1, 0 + strh r1, [r2, 0x26] + ldr r0, [r0] + bl sub_814ADB4 + pop {r0} + bx r0 + .align 2, 0 +_0814B008: .4byte 0x000081a8 +_0814B00C: .4byte sub_814B038 + thumb_func_end sub_814AFE8 + + thumb_func_start sub_814B010 +sub_814B010: @ 814B010 + push {lr} + movs r2, 0 + lsls r1, 2 + ldr r3, _0814B030 @ =0x000081a8 + adds r0, r3 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0, 0x1C] + ldr r0, _0814B034 @ =sub_814B038 + cmp r1, r0 + bne _0814B028 + movs r2, 0x1 +_0814B028: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 +_0814B030: .4byte 0x000081a8 +_0814B034: .4byte sub_814B038 + thumb_func_end sub_814B010 + + thumb_func_start sub_814B038 +sub_814B038: @ 814B038 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0814B064 + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0814B05C + movs r0, 0x2 + b _0814B05E +_0814B05C: + ldr r0, _0814B078 @ =0x0000fffe +_0814B05E: + strh r0, [r2, 0x26] + movs r0, 0 + strh r0, [r2, 0x30] +_0814B064: + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0xC + ble _0814B074 + movs r0, 0 + strh r0, [r2, 0x26] + ldr r0, _0814B07C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_0814B074: + pop {r0} + bx r0 + .align 2, 0 +_0814B078: .4byte 0x0000fffe +_0814B07C: .4byte SpriteCallbackDummy + thumb_func_end sub_814B038 + + thumb_func_start sub_814B080 +sub_814B080: @ 814B080 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 2 + ldr r0, _0814B0A0 @ =0x000081a8 + adds r4, r0 + adds r4, r1 + ldr r0, [r4] + bl sub_814ADB4 + ldr r1, [r4] + ldr r0, _0814B0A4 @ =sub_814B100 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B0A0: .4byte 0x000081a8 +_0814B0A4: .4byte sub_814B100 + thumb_func_end sub_814B080 + + thumb_func_start sub_814B0A8 +sub_814B0A8: @ 814B0A8 + push {r4-r7,lr} + adds r4, r0, 0 + bl sub_81499A4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _0814B0EC + movs r1, 0x5 + negs r1, r1 + mov r12, r1 + ldr r1, _0814B0F4 @ =0x000081a8 + adds r3, r4, r1 + ldr r7, _0814B0F8 @ =sub_814B100 + ldr r6, _0814B0FC @ =SpriteCallbackDummy + movs r5, 0xA + adds r4, r0, 0 +_0814B0CA: + ldr r2, [r3] + ldr r0, [r2, 0x1C] + cmp r0, r7 + bne _0814B0E4 + adds r2, 0x3E + ldrb r1, [r2] + mov r0, r12 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + str r6, [r0, 0x1C] + adds r0, 0x43 + strb r5, [r0] +_0814B0E4: + adds r3, 0x4 + subs r4, 0x1 + cmp r4, 0 + bne _0814B0CA +_0814B0EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B0F4: .4byte 0x000081a8 +_0814B0F8: .4byte sub_814B100 +_0814B0FC: .4byte SpriteCallbackDummy + thumb_func_end sub_814B0A8 + + thumb_func_start sub_814B100 +sub_814B100: @ 814B100 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0814B12E + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0814B12E: + pop {r0} + bx r0 + thumb_func_end sub_814B100 + + thumb_func_start sub_814B134 +sub_814B134: @ 814B134 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81499A4 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r3 + bge _0814B15E + ldr r0, _0814B164 @ =0x000081fc + adds r5, r4, r0 + subs r0, 0x54 + adds r4, r0 +_0814B14E: + ldm r4!, {r0} + adds r1, r5, r2 + ldrb r1, [r1] + adds r0, 0x43 + strb r1, [r0] + adds r2, 0x1 + cmp r2, r3 + blt _0814B14E +_0814B15E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814B164: .4byte 0x000081fc + thumb_func_end sub_814B134 + + thumb_func_start sub_814B168 +sub_814B168: @ 814B168 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 2 + ldr r0, _0814B188 @ =0x000081a8 + adds r4, r0 + adds r4, r1 + ldr r0, [r4] + bl sub_814ADB4 + ldr r1, [r4] + ldr r0, _0814B18C @ =sub_814B1CC + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B188: .4byte 0x000081a8 +_0814B18C: .4byte sub_814B1CC + thumb_func_end sub_814B168 + + thumb_func_start sub_814B190 +sub_814B190: @ 814B190 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81499A4 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r3 + bge _0814B1C4 + ldr r5, _0814B1B4 @ =sub_814B1CC + ldr r0, _0814B1B8 @ =0x000081a8 + adds r1, r4, r0 +_0814B1A8: + ldr r0, [r1] + ldr r0, [r0, 0x1C] + cmp r0, r5 + bne _0814B1BC + movs r0, 0x1 + b _0814B1C6 + .align 2, 0 +_0814B1B4: .4byte sub_814B1CC +_0814B1B8: .4byte 0x000081a8 +_0814B1BC: + adds r1, 0x4 + adds r2, 0x1 + cmp r2, r3 + blt _0814B1A8 +_0814B1C4: + movs r0, 0 +_0814B1C6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_814B190 + + thumb_func_start sub_814B1CC +sub_814B1CC: @ 814B1CC + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r4, [r5, r0] + cmp r4, 0 + beq _0814B1DE + cmp r4, 0x1 + beq _0814B1EC + b _0814B234 +_0814B1DE: + movs r0, 0x1C + bl PlaySE + strh r4, [r5, 0x30] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_0814B1EC: + ldrh r0, [r5, 0x30] + adds r0, 0x4 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7F + ble _0814B1FE + movs r0, 0 + strh r0, [r5, 0x30] +_0814B1FE: + ldr r1, _0814B22C @ =gSineTable + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + negs r0, r0 + strh r0, [r5, 0x26] + movs r0, 0x30 + ldrsh r1, [r5, r0] + cmp r1, 0 + bne _0814B234 + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _0814B230 + strh r1, [r5, 0x2E] + b _0814B234 + .align 2, 0 +_0814B22C: .4byte gSineTable +_0814B230: + ldr r0, _0814B23C @ =SpriteCallbackDummy + str r0, [r5, 0x1C] +_0814B234: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814B23C: .4byte SpriteCallbackDummy + thumb_func_end sub_814B1CC + + thumb_func_start sub_814B240 +sub_814B240: @ 814B240 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r3, 24 + lsrs r4, r3, 24 + ldr r0, _0814B288 @ =gUnknown_846E2B4 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0814B280 + ldr r0, _0814B28C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + lsls r2, r4, 2 + ldr r3, _0814B290 @ =0x000081bc + adds r0, r5, r3 + adds r0, r2 + str r1, [r0] +_0814B280: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814B288: .4byte gUnknown_846E2B4 +_0814B28C: .4byte gSprites +_0814B290: .4byte 0x000081bc + thumb_func_end sub_814B240 + + thumb_func_start sub_814B294 +sub_814B294: @ 814B294 + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 + movs r4, 0 + ldr r6, _0814B334 @ =gUnknown_846E100 +_0814B29E: + ldr r1, _0814B338 @ =gUnknown_846E160 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + ldr r2, _0814B33C @ =gUnknown_846E150 + lsls r1, r5, 1 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + movs r3, 0 + ldrsh r2, [r6, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r5, 2 + ldr r3, _0814B340 @ =0x000081d0 + adds r2, r7, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814B344 @ =gSprites + adds r0, r1 + str r0, [r2] + adds r5, 0x1 + adds r6, 0x14 + adds r4, 0x1 + cmp r4, 0x3 + ble _0814B29E + movs r4, 0x3 + movs r6, 0x3C +_0814B2E0: + ldr r1, _0814B338 @ =gUnknown_846E160 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + ldr r2, _0814B33C @ =gUnknown_846E150 + lsls r1, r5, 1 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, _0814B334 @ =gUnknown_846E100 + adds r2, r6, r2 + movs r3, 0 + ldrsh r2, [r2, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r5, 2 + ldr r3, _0814B340 @ =0x000081d0 + adds r2, r7, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814B344 @ =gSprites + adds r0, r1 + str r0, [r2] + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + adds r5, 0x1 + subs r6, 0x14 + subs r4, 0x1 + cmp r4, 0 + bge _0814B2E0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B334: .4byte gUnknown_846E100 +_0814B338: .4byte gUnknown_846E160 +_0814B33C: .4byte gUnknown_846E150 +_0814B340: .4byte 0x000081d0 +_0814B344: .4byte gSprites + thumb_func_end sub_814B294 + + thumb_func_start sub_814B348 +sub_814B348: @ 814B348 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp, 0x8] + cmp r1, 0x5 + ble _0814B368 + movs r0, 0xA + subs r1, r0, r1 + movs r0, 0x3 + str r0, [sp] + ldr r2, [sp, 0x8] + ldrb r0, [r2, 0xF] + b _0814B370 +_0814B368: + movs r3, 0x2 + str r3, [sp] + ldr r7, [sp, 0x8] + ldrb r0, [r7, 0xE] +_0814B370: + movs r6, 0 + lsls r2, r1, 1 + str r2, [sp, 0x4] + lsls r0, 4 + mov r9, r0 + lsls r1, 24 + mov r8, r1 + ldr r0, _0814B434 @ =gUnknown_846E100 + adds r4, r2, r0 + ldr r3, [sp] + lsls r3, 2 + mov r10, r3 + movs r5, 0x3 +_0814B38A: + lsls r0, r6, 2 + ldr r7, [sp, 0x8] + ldr r1, _0814B438 @ =0x000081d0 + adds r2, r7, r1 + adds r2, r0 + ldr r1, [r2] + ldrh r0, [r4] + strh r0, [r1, 0x22] + ldr r3, [r2] + ldrb r0, [r3, 0x5] + movs r7, 0xD + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + mov r1, r10 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xF + ands r0, r1 + mov r7, r9 + orrs r0, r7 + strb r0, [r3, 0x5] + ldr r0, [r2] + mov r2, r8 + lsrs r1, r2, 24 + bl StartSpriteAnim + adds r6, 0x1 + adds r4, 0x14 + subs r5, 0x1 + cmp r5, 0 + bge _0814B38A + movs r5, 0x3 + ldr r0, _0814B434 @ =gUnknown_846E100 + ldr r3, [sp, 0x4] + adds r0, r3, r0 + adds r4, r0, 0 + adds r4, 0x3C + ldr r7, [sp] + lsls r7, 2 + mov r10, r7 +_0814B3E0: + lsls r0, r6, 2 + ldr r1, [sp, 0x8] + ldr r3, _0814B438 @ =0x000081d0 + adds r2, r1, r3 + adds r2, r0 + ldr r1, [r2] + ldrh r0, [r4] + strh r0, [r1, 0x22] + ldr r3, [r2] + ldrb r0, [r3, 0x5] + movs r7, 0xD + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + mov r1, r10 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xF + ands r0, r1 + mov r7, r9 + orrs r0, r7 + strb r0, [r3, 0x5] + ldr r0, [r2] + mov r2, r8 + lsrs r1, r2, 24 + bl StartSpriteAnim + adds r6, 0x1 + subs r4, 0x14 + subs r5, 0x1 + cmp r5, 0 + bge _0814B3E0 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B434: .4byte gUnknown_846E100 +_0814B438: .4byte 0x000081d0 + thumb_func_end sub_814B348 + + thumb_func_start sub_814B43C +sub_814B43C: @ 814B43C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + movs r1, 0x7 + movs r2, 0x78 + movs r3, 0x50 + bl sub_815F138 + adds r0, r4, 0 + bl sub_814B134 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814B43C + + thumb_func_start sub_814B460 +sub_814B460: @ 814B460 + push {lr} + bl sub_815F198 + pop {r1} + bx r1 + thumb_func_end sub_814B460 + + thumb_func_start sub_814B46C +sub_814B46C: @ 814B46C + ldr r0, _0814B478 @ =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + bx lr + .align 2, 0 +_0814B478: .4byte gSaveBlock2Ptr + thumb_func_end sub_814B46C + + thumb_func_start ResetPokeJumpResults +ResetPokeJumpResults: @ 814B47C + push {lr} + bl sub_814B46C + movs r1, 0 + strh r1, [r0] + str r1, [r0, 0xC] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + str r1, [r0, 0x8] + strh r1, [r0, 0x2] + pop {r0} + bx r0 + thumb_func_end ResetPokeJumpResults + + thumb_func_start sub_814B494 +sub_814B494: @ 814B494 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + bl sub_814B46C + adds r1, r0, 0 + movs r2, 0 + ldr r0, [r1, 0xC] + cmp r0, r4 + bcs _0814B4B8 + ldr r0, _0814B4E0 @ =0x00018696 + cmp r4, r0 + bhi _0814B4B8 + str r4, [r1, 0xC] + movs r2, 0x1 +_0814B4B8: + ldrh r0, [r1] + cmp r0, r5 + bcs _0814B4C8 + ldr r0, _0814B4E4 @ =0x0000270f + cmp r5, r0 + bhi _0814B4C8 + strh r5, [r1] + movs r2, 0x1 +_0814B4C8: + ldrh r0, [r1, 0x4] + cmp r0, r6 + bcs _0814B4D8 + ldr r0, _0814B4E4 @ =0x0000270f + cmp r6, r0 + bhi _0814B4D8 + strh r6, [r1, 0x4] + movs r2, 0x1 +_0814B4D8: + adds r0, r2, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814B4E0: .4byte 0x00018696 +_0814B4E4: .4byte 0x0000270f + thumb_func_end sub_814B494 + + thumb_func_start sub_814B4E8 +sub_814B4E8: @ 814B4E8 + push {lr} + bl sub_814B46C + adds r2, r0, 0 + ldrh r1, [r2, 0x6] + ldr r0, _0814B500 @ =0x0000270e + cmp r1, r0 + bhi _0814B4FC + adds r0, r1, 0x1 + strh r0, [r2, 0x6] +_0814B4FC: + pop {r0} + bx r0 + .align 2, 0 +_0814B500: .4byte 0x0000270e + thumb_func_end sub_814B4E8 + + thumb_func_start sub_814B504 +sub_814B504: @ 814B504 + push {r4,lr} + ldr r4, _0814B520 @ =sub_814B524 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B520: .4byte sub_814B524 + thumb_func_end sub_814B504 + + thumb_func_start sub_814B524 +sub_814B524: @ 814B524 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0814B548 @ =gTasks+0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0814B570 + cmp r0, 0x1 + bgt _0814B54C + cmp r0, 0 + beq _0814B556 + b _0814B5BE + .align 2, 0 +_0814B548: .4byte gTasks+0x8 +_0814B54C: + cmp r0, 0x2 + beq _0814B57C + cmp r0, 0x3 + beq _0814B5A4 + b _0814B5BE +_0814B556: + ldr r0, _0814B56C @ =gUnknown_846E2CC + bl AddWindow + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x2] + bl sub_814B5C4 + ldrb r0, [r4, 0x2] + movs r1, 0x3 + b _0814B592 + .align 2, 0 +_0814B56C: .4byte gUnknown_846E2CC +_0814B570: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814B5BE + b _0814B596 +_0814B57C: + ldr r0, _0814B5A0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0814B5BE + ldrb r0, [r4, 0x2] + bl rbox_fill_rectangle + ldrb r0, [r4, 0x2] + movs r1, 0x1 +_0814B592: + bl CopyWindowToVram +_0814B596: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _0814B5BE + .align 2, 0 +_0814B5A0: .4byte gMain +_0814B5A4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0814B5BE + ldrb r0, [r4, 0x2] + bl RemoveWindow + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_0814B5BE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814B524 + + thumb_func_start sub_814B5C4 +sub_814B5C4: @ 814B5C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x28] + bl sub_814B46C + ldrh r1, [r0] + str r1, [sp, 0x14] + ldr r1, [r0, 0xC] + str r1, [sp, 0x18] + ldrh r0, [r0, 0x4] + str r0, [sp, 0x1C] + ldr r0, [sp, 0x28] + lsls r4, r0, 24 + lsrs r4, 24 + ldr r5, _0814B6C8 @ =0x0000021d + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xD0 + bl sub_814FF2C + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xD + bl DrawTextBorderOuter + adds r0, r4, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, _0814B6CC @ =gUnknown_841CB63 + movs r1, 0 + str r1, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x2 + movs r3, 0 + bl sub_812E62C + movs r7, 0 + mov r8, r4 + movs r1, 0xFF + mov r10, r1 + movs r6, 0 + mov r0, sp + adds r0, 0x14 + str r0, [sp, 0x2C] + movs r1, 0xA0 + lsls r1, 21 + mov r9, r1 + add r5, sp, 0x20 +_0814B63E: + ldr r1, _0814B6D0 @ =gUnknown_846E2D4 + lsls r0, r7, 2 + adds r0, r1 + ldr r2, [r0] + mov r0, r9 + lsrs r4, r0, 24 + str r4, [sp] + mov r1, r10 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + str r6, [sp, 0x10] + mov r0, r8 + movs r1, 0x2 + movs r3, 0 + bl sub_812E62C + ldr r0, [sp, 0x2C] + ldm r0!, {r1} + str r0, [sp, 0x2C] + adds r0, r5, 0 + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r5, 0 + bl sub_814B6D4 + movs r0, 0x2 + adds r1, r5, 0 + movs r2, 0 + bl GetStringWidth + movs r3, 0xDE + subs r3, r0 + lsls r3, 24 + lsrs r3, 24 + str r4, [sp] + mov r1, r10 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + str r6, [sp, 0xC] + str r6, [sp, 0x10] + mov r0, r8 + movs r1, 0x2 + adds r2, r5, 0 + bl sub_812E62C + movs r0, 0xE0 + lsls r0, 20 + add r9, r0 + adds r7, 0x1 + ldr r1, [sp, 0x28] + lsls r0, r1, 24 + cmp r7, 0x2 + bls _0814B63E + lsrs r0, 24 + bl PutWindowTilemap + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B6C8: .4byte 0x0000021d +_0814B6CC: .4byte gUnknown_841CB63 +_0814B6D0: .4byte gUnknown_846E2D4 + thumb_func_end sub_814B5C4 + + thumb_func_start sub_814B6D4 +sub_814B6D4: @ 814B6D4 + push {lr} + adds r1, r0, 0 + b _0814B6DC +_0814B6DA: + adds r1, 0x1 +_0814B6DC: + ldrb r0, [r1] + cmp r0, 0xFF + beq _0814B6EA + cmp r0, 0 + bne _0814B6DA + movs r0, 0xFF + strb r0, [r1] +_0814B6EA: + pop {r0} + bx r0 + thumb_func_end sub_814B6D4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s deleted file mode 100644 index 19b2b2c43..000000000 --- a/asm/unk_81507FC.s +++ /dev/null @@ -1,11411 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81507FC -sub_81507FC: @ 81507FC - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _081508A4 @ =gUnknown_3002044 - movs r0, 0 - str r0, [r1] - ldr r0, _081508A8 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081508CC - ldr r4, _081508AC @ =gUnknown_203F3E0 - ldr r0, _081508B0 @ =0x00003330 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _081508CC - bl sub_81508D8 - ldr r0, [r4] - bl sub_81508EC - ldr r0, [r4] - str r5, [r0] - bl GetMultiplayerId - ldr r1, [r4] - adds r1, 0x28 - strb r0, [r1] - ldr r1, [r4] - ldr r2, _081508B4 @ =0x000032cc - adds r0, r1, r2 - adds r2, r1, 0 - adds r2, 0x28 - ldrb r3, [r2] - lsls r2, r3, 4 - subs r2, r3 - lsls r2, 2 - adds r1, r2 - ldr r2, _081508B8 @ =0x000031a0 - adds r1, r2 - movs r2, 0x3C - bl memcpy - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x28 - ldrb r1, [r1] - lsls r1, 2 - ldr r2, _081508BC @ =0x0000318c - adds r1, r2 - adds r0, r1 - movs r1, 0x64 - muls r1, r6 - ldr r2, _081508C0 @ =gPlayerParty - adds r1, r2 - bl sub_8152048 - ldr r0, _081508C4 @ =sub_8150A84 - movs r1, 0x1 - bl CreateTask - ldr r0, _081508C8 @ =sub_815201C - bl SetMainCallback2 - bl sub_8153150 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x24 - ldrb r0, [r0] - adds r1, r2, 0 - adds r1, 0x44 - adds r2, 0x48 - bl sub_81529A4 - bl StopMapMusic - movs r0, 0xA5 - lsls r0, 1 - bl PlayNewMapMusic - b _081508D2 - .align 2, 0 -_081508A4: .4byte gUnknown_3002044 -_081508A8: .4byte gReceivedRemoteLinkPlayers -_081508AC: .4byte gUnknown_203F3E0 -_081508B0: .4byte 0x00003330 -_081508B4: .4byte 0x000032cc -_081508B8: .4byte 0x000031a0 -_081508BC: .4byte 0x0000318c -_081508C0: .4byte gPlayerParty -_081508C4: .4byte sub_8150A84 -_081508C8: .4byte sub_815201C -_081508CC: - adds r0, r5, 0 - bl SetMainCallback2 -_081508D2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81507FC - - thumb_func_start sub_81508D8 -sub_81508D8: @ 81508D8 - push {lr} - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - pop {r0} - bx r0 - thumb_func_end sub_81508D8 - - thumb_func_start sub_81508EC -sub_81508EC: @ 81508EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2, 0xC] - strb r0, [r2, 0x10] - strb r0, [r2, 0x14] - strb r0, [r2, 0x18] - strb r0, [r2, 0x1C] - movs r3, 0x8E - lsls r3, 1 - adds r1, r2, r3 - str r0, [r1] - movs r7, 0x90 - lsls r7, 1 - adds r1, r2, r7 - str r0, [r1] - adds r1, r2, 0 - adds r1, 0x30 - strb r0, [r1] - adds r1, 0x10 - strb r0, [r1] - subs r1, 0x4 - strb r0, [r1] - adds r3, 0x10 - adds r1, r2, r3 - str r0, [r1] - movs r5, 0 - adds r1, r2, 0 - adds r1, 0x98 - movs r3, 0 -_08150932: - adds r0, r1, r5 - strb r3, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08150932 - movs r5, 0 - adds r7, r2, 0 - adds r7, 0xA8 - str r7, [sp] - adds r0, r2, 0 - adds r0, 0xB0 - str r0, [sp, 0xC] - movs r1, 0x4A - adds r1, r2 - mov r10, r1 - movs r3, 0x4C - adds r3, r2 - mov r9, r3 - movs r7, 0x4E - adds r7, r2 - mov r12, r7 - subs r0, 0x60 - str r0, [sp, 0x24] - adds r6, r2, 0 - adds r6, 0x54 - adds r1, r2, 0 - adds r1, 0xD0 - str r1, [sp, 0x1C] - adds r3, r2, 0 - adds r3, 0xDC - str r3, [sp, 0x20] - adds r7, r2, 0 - adds r7, 0xC4 - str r7, [sp, 0x14] - adds r0, 0xA4 - str r0, [sp, 0x4] - adds r1, 0x25 - str r1, [sp, 0x8] - subs r3, 0xBC - str r3, [sp, 0x10] - movs r7, 0x24 - adds r7, r2 - mov r8, r7 - subs r0, 0xC0 - str r0, [sp, 0x18] - movs r3, 0 - movs r1, 0x86 - lsls r1, 1 - adds r4, r2, r1 - movs r7, 0x98 - lsls r7, 1 - adds r2, r7 -_0815099E: - ldr r1, [sp] - adds r0, r1, r5 - strb r3, [r0] - ldr r7, [sp, 0xC] - adds r0, r7, r5 - strb r3, [r0] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - mov r7, r10 - adds r1, r7, r0 - strh r3, [r1] - mov r7, r9 - adds r1, r7, r0 - strh r3, [r1] - mov r7, r12 - adds r1, r7, r0 - strh r3, [r1] - ldr r7, [sp, 0x24] - adds r1, r7, r0 - strh r3, [r1] - adds r0, r6, r0 - strh r3, [r0] - adds r0, r4, r5 - strb r3, [r0] - lsls r0, r5, 2 - adds r0, r2, r0 - str r3, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0815099E - movs r5, 0 - movs r3, 0 - movs r4, 0xFF - ldr r6, [sp, 0x1C] -_081509E8: - adds r0, r6, r5 - strb r3, [r0] - ldr r1, [sp, 0x20] - adds r0, r1, r5 - strb r3, [r0] - ldr r7, [sp, 0x14] - adds r0, r7, r5 - strb r3, [r0] - lsls r1, r5, 1 - ldr r0, [sp, 0x4] - adds r2, r0, r1 - ldrb r0, [r2] - orrs r0, r4 - strb r0, [r2] - ldr r7, [sp, 0x8] - adds r1, r7, r1 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _081509E8 - bl GetMultiplayerId - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _08150A26 - movs r1, 0x1 -_08150A26: - ldr r0, [sp, 0x10] - strb r1, [r0] - bl GetLinkPlayerCount - mov r1, r8 - strb r0, [r1] - bl GetMultiplayerId - ldr r3, [sp, 0x18] - strb r0, [r3] - movs r5, 0x1 - mov r7, r8 - ldrb r7, [r7] - cmp r5, r7 - bcs _08150A72 - ldr r7, [sp, 0x18] - mov r6, r8 -_08150A48: - adds r4, r7, r5 - subs r0, r5, 0x1 - adds r0, r7, r0 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r4] - ldrb r2, [r4] - ldrb r1, [r6] - subs r0, r1, 0x1 - cmp r2, r0 - ble _08150A66 - adds r0, r2, 0 - bl __umodsi3 - strb r0, [r4] -_08150A66: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - cmp r5, r0 - bcc _08150A48 -_08150A72: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81508EC - - thumb_func_start sub_8150A84 -sub_8150A84: @ 8150A84 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08150AA4 @ =gUnknown_203F3E0 - ldr r0, [r0] - ldrb r0, [r0, 0xC] - cmp r0, 0x7 - bls _08150A98 - b _08150BF0 -_08150A98: - lsls r0, 2 - ldr r1, _08150AA8 @ =_08150AAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08150AA4: .4byte gUnknown_203F3E0 -_08150AA8: .4byte _08150AAC - .align 2, 0 -_08150AAC: - .4byte _08150ACC - .4byte _08150AE0 - .4byte _08150B08 - .4byte _08150B16 - .4byte _08150B3C - .4byte _08150B90 - .4byte _08150BA2 - .4byte _08150BCC -_08150ACC: - movs r0, 0 - bl SetVBlankCallback - ldr r0, _08150ADC @ =sub_8151750 - movs r1, 0x4 - bl sub_815205C - b _08150BDC - .align 2, 0 -_08150ADC: .4byte sub_8151750 -_08150AE0: - ldr r0, _08150B00 @ =sub_8151750 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _08150AEE - b _08150BFC -_08150AEE: - ldr r4, _08150B04 @ =gUnknown_203F3E0 - ldr r0, [r4] - movs r1, 0xB0 - lsls r1, 1 - adds r0, r1 - bl sub_8154968 - ldr r1, [r4] - b _08150BE0 - .align 2, 0 -_08150B00: .4byte sub_8151750 -_08150B04: .4byte gUnknown_203F3E0 -_08150B08: - bl sub_8155E68 - cmp r0, 0 - bne _08150BFC - bl sub_80FA42C - b _08150BDC -_08150B16: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08150BFC - ldr r0, _08150B38 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _08150BDC - bl sub_80FCEA8 - movs r0, 0 - movs r1, 0 - bl sub_80FCD74 - b _08150BDC - .align 2, 0 -_08150B38: .4byte gReceivedRemoteLinkPlayers -_08150B3C: - ldr r0, _08150B88 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - bl sub_8153A9C - movs r4, 0 - cmp r4, r5 - bcs _08150B76 -_08150B4E: - ldr r0, _08150B88 @ =gUnknown_203F3E0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x34 - adds r0, r4 - ldrb r2, [r0] - lsls r0, r2, 2 - ldr r3, _08150B8C @ =0x0000318c - adds r0, r3 - adds r0, r1, r0 - adds r1, 0x24 - ldrb r3, [r1] - adds r1, r4, 0 - bl sub_8153AFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08150B4E -_08150B76: - ldr r4, _08150B88 @ =gUnknown_203F3E0 - ldr r0, [r4] - adds r0, 0x24 - ldrb r1, [r0] - movs r0, 0 - bl sub_8153D80 - ldr r1, [r4] - b _08150BE0 - .align 2, 0 -_08150B88: .4byte gUnknown_203F3E0 -_08150B8C: .4byte 0x0000318c -_08150B90: - bl sub_8154128 - bl sub_815417C - bl sub_8154438 - bl sub_8153E28 - b _08150BDC -_08150BA2: - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08150BC8 @ =sub_8152034 - bl SetVBlankCallback - b _08150BDC - .align 2, 0 -_08150BC8: .4byte sub_8152034 -_08150BCC: - bl UpdatePaletteFade - ldr r0, _08150BE8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08150BFC -_08150BDC: - ldr r0, _08150BEC @ =gUnknown_203F3E0 - ldr r1, [r0] -_08150BE0: - ldrb r0, [r1, 0xC] - adds r0, 0x1 - strb r0, [r1, 0xC] - b _08150BFC - .align 2, 0 -_08150BE8: .4byte gPaletteFade -_08150BEC: .4byte gUnknown_203F3E0 -_08150BF0: - adds r0, r1, 0 - bl DestroyTask - ldr r0, _08150C04 @ =sub_81516DC - bl sub_815206C -_08150BFC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08150C04: .4byte sub_81516DC - thumb_func_end sub_8150A84 - - thumb_func_start sub_8150C08 -sub_8150C08: @ 8150C08 - push {lr} - bl sub_8151B54 - ldr r1, _08150C34 @ =gUnknown_8475578 - ldr r0, _08150C38 @ =gUnknown_203F3E0 - ldr r0, [r0] - ldrb r0, [r0, 0x18] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08150C3C @ =gUnknown_3002044 - ldr r0, [r0] - cmp r0, 0 - bne _08150C2C - bl sub_815293C -_08150C2C: - bl sub_8151BA0 - pop {r0} - bx r0 - .align 2, 0 -_08150C34: .4byte gUnknown_8475578 -_08150C38: .4byte gUnknown_203F3E0 -_08150C3C: .4byte gUnknown_3002044 - thumb_func_end sub_8150C08 - - thumb_func_start sub_8150C40 -sub_8150C40: @ 8150C40 - push {lr} - bl sub_8151C5C - ldr r1, _08150C6C @ =gUnknown_84755A8 - ldr r0, _08150C70 @ =gUnknown_203F3E0 - ldr r0, [r0] - ldrb r0, [r0, 0x18] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08150C74 @ =gUnknown_3002044 - ldr r0, [r0] - cmp r0, 0 - bne _08150C64 - bl sub_8152970 -_08150C64: - bl sub_8151D28 - pop {r0} - bx r0 - .align 2, 0 -_08150C6C: .4byte gUnknown_84755A8 -_08150C70: .4byte gUnknown_203F3E0 -_08150C74: .4byte gUnknown_3002044 - thumb_func_end sub_8150C40 - - thumb_func_start sub_8150C78 -sub_8150C78: @ 8150C78 - push {r4,lr} - ldr r4, _08150C8C @ =gUnknown_203F3E0 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _08150C90 - cmp r0, 0x1 - beq _08150CA6 - b _08150CB4 - .align 2, 0 -_08150C8C: .4byte gUnknown_203F3E0 -_08150C90: - movs r0, 0x1 - bl sub_8153BF8 - movs r0, 0x1 - bl sub_81549D4 - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08150CB4 -_08150CA6: - bl sub_8155E68 - cmp r0, 0 - bne _08150CB4 - movs r0, 0x1 - bl sub_8152090 -_08150CB4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8150C78 - - thumb_func_start sub_8150CBC -sub_8150CBC: @ 8150CBC - push {r4,lr} - ldr r4, _08150CD8 @ =gUnknown_203F3E0 - ldr r1, [r4] - ldrb r0, [r1, 0x10] - cmp r0, 0 - bne _08150CDC - bl sub_8152110 - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08150CEC - .align 2, 0 -_08150CD8: .4byte gUnknown_203F3E0 -_08150CDC: - movs r0, 0x8C - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - str r0, [r1] - movs r0, 0x2 - bl sub_8152090 -_08150CEC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8150CBC - - thumb_func_start sub_8150CF4 -sub_8150CF4: @ 8150CF4 - push {lr} - sub sp, 0x4 - ldr r0, _08150D0C @ =gUnknown_203F3E0 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x4 - bhi _08150D74 - lsls r0, 2 - ldr r1, _08150D10 @ =_08150D14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08150D0C: .4byte gUnknown_203F3E0 -_08150D10: .4byte _08150D14 - .align 2, 0 -_08150D14: - .4byte _08150D28 - .4byte _08150D4E - .4byte _08150D3A - .4byte _08150D46 - .4byte _08150D64 -_08150D28: - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x78 - movs r3, 0x50 - bl sub_815F138 - b _08150D52 -_08150D3A: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08150D74 - b _08150D52 -_08150D46: - bl sub_815F198 - cmp r0, 0 - bne _08150D74 -_08150D4E: - bl sub_80FA42C -_08150D52: - ldr r0, _08150D60 @ =gUnknown_203F3E0 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08150D74 - .align 2, 0 -_08150D60: .4byte gUnknown_203F3E0 -_08150D64: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08150D74 - movs r0, 0x3 - bl sub_8152090 -_08150D74: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8150CF4 - - thumb_func_start sub_8150D7C -sub_8150D7C: @ 8150D7C - push {lr} - ldr r0, _08150DA0 @ =gUnknown_203F3E0 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0 - bne _08150D9A - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _08150D9A - movs r0, 0x4 - bl sub_8152090 -_08150D9A: - pop {r0} - bx r0 - .align 2, 0 -_08150DA0: .4byte gUnknown_203F3E0 - thumb_func_end sub_8150D7C - - thumb_func_start sub_8150DA4 -sub_8150DA4: @ 8150DA4 - push {r4,lr} - ldr r4, _08150DE4 @ =gUnknown_203F3E0 - ldr r2, [r4] - ldrb r0, [r2, 0x10] - cmp r0, 0 - bne _08150E62 - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bhi _08150E54 - adds r0, r2, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0 - bne _08150E5A - ldr r0, _08150DE8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08150DF4 - ldr r1, _08150DEC @ =0x000031cc - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, 0 - bne _08150E5A - ldr r3, _08150DF0 @ =0x000031d0 - adds r0, r2, r3 - strb r1, [r0] - movs r0, 0x2 - b _08150E2E - .align 2, 0 -_08150DE4: .4byte gUnknown_203F3E0 -_08150DE8: .4byte gMain -_08150DEC: .4byte 0x000031cc -_08150DF0: .4byte 0x000031d0 -_08150DF4: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08150E14 - ldr r3, _08150E10 @ =0x000031cc - adds r0, r2, r3 - ldrb r1, [r0] - cmp r1, 0 - bne _08150E5A - adds r3, 0x4 - adds r0, r2, r3 - strb r1, [r0] - movs r0, 0x1 - b _08150E2E - .align 2, 0 -_08150E10: .4byte 0x000031cc -_08150E14: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08150E40 - ldr r3, _08150E3C @ =0x000031cc - adds r0, r2, r3 - ldrb r1, [r0] - cmp r1, 0 - bne _08150E5A - adds r3, 0x4 - adds r0, r2, r3 - strb r1, [r0] - movs r0, 0x3 -_08150E2E: - bl sub_815327C - ldr r1, [r4] - ldr r2, _08150E3C @ =0x000031cc - adds r1, r2 - strb r0, [r1] - b _08150E5A - .align 2, 0 -_08150E3C: .4byte 0x000031cc -_08150E40: - movs r0, 0 - bl sub_815327C - ldr r1, [r4] - ldr r3, _08150E50 @ =0x000031cc - adds r1, r3 - strb r0, [r1] - b _08150E5A - .align 2, 0 -_08150E50: .4byte 0x000031cc -_08150E54: - movs r0, 0xB - bl sub_8152090 -_08150E5A: - bl sub_815256C - bl sub_8151D98 -_08150E62: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8150DA4 - - thumb_func_start sub_8150E68 -sub_8150E68: @ 8150E68 - push {lr} - ldr r0, _08150EA8 @ =gUnknown_203F3E0 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bhi _08150F30 - ldr r0, _08150EAC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08150EB8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r2, r0 - ldr r1, _08150EB0 @ =0x000031cc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08150F36 - ldr r3, _08150EB4 @ =0x000032f8 - adds r1, r2, r3 - movs r0, 0x2 - strb r0, [r1] - b _08150F36 - .align 2, 0 -_08150EA8: .4byte gUnknown_203F3E0 -_08150EAC: .4byte gMain -_08150EB0: .4byte 0x000031cc -_08150EB4: .4byte 0x000032f8 -_08150EB8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08150EEC - adds r0, r2, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r2, r0 - ldr r1, _08150EE4 @ =0x000031cc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08150F36 - ldr r3, _08150EE8 @ =0x000032f8 - adds r1, r2, r3 - movs r0, 0x1 - strb r0, [r1] - b _08150F36 - .align 2, 0 -_08150EE4: .4byte 0x000031cc -_08150EE8: .4byte 0x000032f8 -_08150EEC: - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08150F24 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r2, r0 - ldr r1, _08150F1C @ =0x000031cc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08150F36 - ldr r3, _08150F20 @ =0x000032f8 - adds r1, r2, r3 - movs r0, 0x3 - strb r0, [r1] - b _08150F36 - .align 2, 0 -_08150F1C: .4byte 0x000031cc -_08150F20: .4byte 0x000032f8 -_08150F24: - ldr r3, _08150F2C @ =0x000032f8 - adds r0, r2, r3 - strb r1, [r0] - b _08150F36 - .align 2, 0 -_08150F2C: .4byte 0x000032f8 -_08150F30: - movs r0, 0xB - bl sub_8152090 -_08150F36: - bl sub_8151E94 - pop {r0} - bx r0 - thumb_func_end sub_8150E68 - - thumb_func_start sub_8150F40 -sub_8150F40: @ 8150F40 - push {r4,r5,lr} - bl sub_815256C - bl sub_8151D98 - bl sub_8152A98 - cmp r0, 0x1 - bne _08150F5E - bl sub_8153004 - movs r0, 0x5 - bl sub_8152090 - b _08150FBC -_08150F5E: - ldr r0, _08150F8C @ =gUnknown_203F3E0 - ldr r2, [r0] - movs r1, 0x96 - lsls r1, 1 - adds r4, r2, r1 - movs r1, 0x1 - str r1, [r4] - movs r3, 0x1 - adds r1, r2, 0 - adds r1, 0x24 - adds r5, r0, 0 - ldrb r1, [r1] - cmp r3, r1 - bcs _08150FBC - movs r1, 0x9A - lsls r1, 1 - adds r0, r2, r1 - ldr r0, [r0] - cmp r0, 0x1 - beq _08150F90 - movs r0, 0 - str r0, [r4] - b _08150FBC - .align 2, 0 -_08150F8C: .4byte gUnknown_203F3E0 -_08150F90: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x24 - ldrb r0, [r0] - cmp r3, r0 - bcs _08150FBC - lsls r0, r3, 2 - movs r4, 0x98 - lsls r4, 1 - adds r1, r2, r4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0x1 - beq _08150F90 - movs r0, 0x96 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] -_08150FBC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8150F40 - - thumb_func_start sub_8150FC4 -sub_8150FC4: @ 8150FC4 - push {lr} - bl sub_8151E94 - bl sub_8152AD8 - cmp r0, 0x1 - bne _08150FD8 - movs r0, 0x5 - bl sub_8152090 -_08150FD8: - pop {r0} - bx r0 - thumb_func_end sub_8150FC4 - - thumb_func_start sub_8150FDC -sub_8150FDC: @ 8150FDC - push {r4-r6,lr} - ldr r6, _08150FF4 @ =gUnknown_203F3E0 - ldr r1, [r6] - ldrb r4, [r1, 0x10] - cmp r4, 0x1 - beq _08151010 - cmp r4, 0x1 - bgt _08150FF8 - cmp r4, 0 - beq _08150FFE - b _08151078 - .align 2, 0 -_08150FF4: .4byte gUnknown_203F3E0 -_08150FF8: - cmp r4, 0x2 - beq _0815101E - b _08151078 -_08150FFE: - adds r1, 0x4A - movs r0, 0 - movs r2, 0x3C - bl SendBlock - ldr r0, [r6] - strb r4, [r0, 0x8] - ldr r1, [r6] - b _0815106A -_08151010: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08151092 - ldr r1, [r6] - b _0815106A -_0815101E: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _08151048 -_0815102A: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _08151040 - adds r0, r4, 0 - bl ResetBlockReceivedFlag - ldr r1, [r6] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] -_08151040: - lsrs r5, 1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08151048: - ldr r0, [r6] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcc _0815102A - ldr r3, _08151074 @ =gUnknown_203F3E0 - ldr r2, [r3] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r0, [r2, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcc _08151092 - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - ldr r1, [r3] -_0815106A: - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08151092 - .align 2, 0 -_08151074: .4byte gUnknown_203F3E0 -_08151078: - movs r0, 0x1 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _08151092 - movs r0, 0x6 - bl sub_8152090 - ldr r0, _08151098 @ =0x00000137 - movs r1, 0x4 - bl FadeOutAndPlayNewMapMusic -_08151092: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08151098: .4byte 0x00000137 - thumb_func_end sub_8150FDC - - thumb_func_start sub_815109C -sub_815109C: @ 815109C - push {r4-r6,lr} - ldr r6, _081510B4 @ =gUnknown_203F3E0 - ldr r2, [r6] - ldrb r4, [r2, 0x10] - cmp r4, 0x1 - beq _081510DA - cmp r4, 0x1 - bgt _081510B8 - cmp r4, 0 - beq _081510BE - b _08151150 - .align 2, 0 -_081510B4: .4byte gUnknown_203F3E0 -_081510B8: - cmp r4, 0x2 - beq _081510E8 - b _08151150 -_081510BE: - ldrb r0, [r2, 0x14] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, 0x4A - adds r1, r2, r1 - movs r0, 0 - movs r2, 0x3C - bl SendBlock - ldr r0, [r6] - strb r4, [r0, 0x8] - ldr r1, [r6] - b _08151140 -_081510DA: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _0815118A - ldr r1, [r6] - b _08151140 -_081510E8: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _0815111E -_081510F4: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _08151116 - ldr r0, [r6] - adds r0, 0x4A - ldr r1, _08151148 @ =gBlockRecvBuffer - movs r2, 0x3C - bl memcpy - adds r0, r4, 0 - bl ResetBlockReceivedFlag - ldr r1, [r6] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] -_08151116: - lsrs r5, 1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0815111E: - ldr r0, [r6] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcc _081510F4 - ldr r3, _0815114C @ =gUnknown_203F3E0 - ldr r2, [r3] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r0, [r2, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcc _0815118A - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - ldr r1, [r3] -_08151140: - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _0815118A - .align 2, 0 -_08151148: .4byte gBlockRecvBuffer -_0815114C: .4byte gUnknown_203F3E0 -_08151150: - movs r0, 0x1 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _0815118A - ldr r0, _08151190 @ =gUnknown_203F3E0 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0x54 - adds r0, r1 - ldrh r1, [r0] - movs r3, 0x8A - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r0, 0x6 - bl sub_8152090 - ldr r0, _08151194 @ =0x00000137 - movs r1, 0x4 - bl FadeOutAndPlayNewMapMusic -_0815118A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08151190: .4byte gUnknown_203F3E0 -_08151194: .4byte 0x00000137 - thumb_func_end sub_815109C - - thumb_func_start sub_8151198 -sub_8151198: @ 8151198 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _081511B0 @ =gUnknown_203F3E0 - ldr r0, [r6] - ldrb r4, [r0, 0x10] - cmp r4, 0x1 - beq _081511DC - cmp r4, 0x1 - bgt _081511B4 - cmp r4, 0 - beq _081511BE - b _0815129C - .align 2, 0 -_081511B0: .4byte gUnknown_203F3E0 -_081511B4: - cmp r4, 0x2 - beq _08151202 - cmp r4, 0x3 - beq _0815121C - b _0815129C -_081511BE: - bl sub_81531FC - movs r0, 0x1 - bl sub_81540DC - bl sub_81544F0 - movs r0, 0x1 - bl sub_81545BC - movs r0, 0x2 - bl sub_81549D4 - ldr r1, [r6] - b _0815128A -_081511DC: - bl sub_8155E68 - cmp r0, 0 - bne _081512AA - mov r0, sp - strb r4, [r0] - movs r0, 0x5 - bl sub_81549D4 - bl sub_8155E8C - mov r1, sp - strb r0, [r1] - movs r0, 0 - movs r2, 0x1 - bl SendBlock - ldr r1, [r6] - b _0815128A -_08151202: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _081512AA - ldr r1, [r6] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1, 0x10] - ldr r0, [r6] - strb r2, [r0, 0x8] - b _081512AA -_0815121C: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _0815125A -_08151228: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _08151252 - ldr r2, [r6] - adds r2, r4, r2 - movs r0, 0x86 - lsls r0, 1 - adds r2, r0 - lsls r0, r4, 8 - ldr r1, _08151294 @ =gBlockRecvBuffer - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0 - bl ResetBlockReceivedFlag - ldr r1, [r6] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] -_08151252: - lsrs r5, 1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0815125A: - ldr r0, [r6] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcc _08151228 - ldr r4, _08151298 @ =gUnknown_203F3E0 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r0, [r2, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcc _081512AA - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - bls _081512AA - movs r0, 0x6 - bl sub_81549D4 - ldr r1, [r4] -_0815128A: - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _081512AA - .align 2, 0 -_08151294: .4byte gBlockRecvBuffer -_08151298: .4byte gUnknown_203F3E0 -_0815129C: - bl sub_8155E68 - cmp r0, 0 - bne _081512AA - movs r0, 0x7 - bl sub_8152090 -_081512AA: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8151198 - - thumb_func_start sub_81512B4 -sub_81512B4: @ 81512B4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r5, _081512D0 @ =gUnknown_203F3E0 - ldr r0, [r5] - ldrb r0, [r0, 0x10] - cmp r0, 0x6 - bls _081512C4 - b _0815144A -_081512C4: - lsls r0, 2 - ldr r1, _081512D4 @ =_081512D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081512D0: .4byte gUnknown_203F3E0 -_081512D4: .4byte _081512D8 - .align 2, 0 -_081512D8: - .4byte _081512F4 - .4byte _08151314 - .4byte _08151330 - .4byte _08151344 - .4byte _08151360 - .4byte _0815138C - .4byte _081513AC -_081512F4: - bl sub_81534AC - ldr r1, _0815130C @ =0x00000bb7 - cmp r0, r1 - bls _08151304 - movs r0, 0x4 - bl sub_81549D4 -_08151304: - ldr r0, _08151310 @ =gUnknown_203F3E0 - ldr r1, [r0] - b _0815142A - .align 2, 0 -_0815130C: .4byte 0x00000bb7 -_08151310: .4byte gUnknown_203F3E0 -_08151314: - bl sub_8155E68 - cmp r0, 0 - beq _0815131E - b _08151480 -_0815131E: - movs r0, 0x3 - bl sub_81549D4 - ldr r0, _0815132C @ =gUnknown_203F3E0 - ldr r1, [r0] - b _0815142A - .align 2, 0 -_0815132C: .4byte gUnknown_203F3E0 -_08151330: - bl sub_81546C0 - bl sub_8153048 - ldr r0, _08151340 @ =gUnknown_203F3E0 - ldr r1, [r0] - b _0815142A - .align 2, 0 -_08151340: .4byte gUnknown_203F3E0 -_08151344: - bl sub_8155E8C - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0 - bne _08151356 - b _08151480 -_08151356: - ldr r0, _0815135C @ =gUnknown_203F3E0 - ldr r1, [r0] - b _0815142A - .align 2, 0 -_0815135C: .4byte gUnknown_203F3E0 -_08151360: - bl sub_8155E68 - cmp r0, 0 - beq _0815136A - b _08151480 -_0815136A: - movs r0, 0x5 - bl sub_81549D4 - bl sub_8155E8C - mov r1, sp - strb r0, [r1] - movs r0, 0 - movs r2, 0x1 - bl SendBlock - ldr r0, _08151388 @ =gUnknown_203F3E0 - ldr r1, [r0] - b _0815142A - .align 2, 0 -_08151388: .4byte gUnknown_203F3E0 -_0815138C: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08151480 - ldr r3, _081513A8 @ =gUnknown_203F3E0 - ldr r1, [r3] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1, 0x10] - ldr r0, [r3] - strb r2, [r0, 0x8] - b _08151480 - .align 2, 0 -_081513A8: .4byte gUnknown_203F3E0 -_081513AC: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r7, _08151434 @ =gUnknown_203F3E0 - ldr r0, [r7] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcs _08151400 - adds r6, r7, 0 -_081513C4: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _081513EE - ldr r2, [r6] - adds r2, r4, r2 - movs r0, 0x86 - lsls r0, 1 - adds r2, r0 - lsls r0, r4, 8 - ldr r1, _08151438 @ =gBlockRecvBuffer - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0 - bl ResetBlockReceivedFlag - ldr r1, [r6] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] -_081513EE: - lsrs r5, 1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r7] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcc _081513C4 -_08151400: - ldr r4, _08151434 @ =gUnknown_203F3E0 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r0, [r2, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcc _0815143C - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - bls _08151480 - bl sub_815336C - movs r0, 0x6 - bl sub_81549D4 - ldr r1, [r4] -_0815142A: - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08151480 - .align 2, 0 -_08151434: .4byte gUnknown_203F3E0 -_08151438: .4byte gBlockRecvBuffer -_0815143C: - bl sub_81532B8 - b _08151480 -_08151442: - movs r0, 0x8 - bl sub_8152090 - b _08151480 -_0815144A: - bl sub_8155E68 - cmp r0, 0 - bne _08151480 - movs r4, 0 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcs _0815147A - movs r3, 0x86 - lsls r3, 1 - adds r2, r1, r3 - adds r1, r0, 0 -_08151468: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08151442 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r1 - bcc _08151468 -_0815147A: - movs r0, 0xA - bl sub_8152090 -_08151480: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81512B4 - - thumb_func_start sub_8151488 -sub_8151488: @ 8151488 - push {r4,lr} - ldr r4, _081514A0 @ =gUnknown_203F3E0 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - beq _081514B6 - cmp r0, 0x1 - bgt _081514A4 - cmp r0, 0 - beq _081514AA - b _081514D6 - .align 2, 0 -_081514A0: .4byte gUnknown_203F3E0 -_081514A4: - cmp r0, 0x2 - beq _081514C0 - b _081514D6 -_081514AA: - bl sub_800AAC0 - movs r0, 0x7 - bl sub_81549D4 - b _081514CC -_081514B6: - bl sub_8155E68 - cmp r0, 0 - bne _081514E4 - b _081514CC -_081514C0: - bl sub_8155E8C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _081514E4 -_081514CC: - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _081514E4 -_081514D6: - ldr r0, _081514EC @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _081514E4 - movs r0, 0x9 - bl sub_8152090 -_081514E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081514EC: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_8151488 - - thumb_func_start sub_81514F0 -sub_81514F0: @ 81514F0 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08151508 @ =gUnknown_203F3E0 - ldr r0, [r4] - ldrb r1, [r0, 0x10] - cmp r1, 0x1 - beq _08151524 - cmp r1, 0x1 - bgt _0815150C - cmp r1, 0 - beq _08151512 - b _0815156C - .align 2, 0 -_08151508: .4byte gUnknown_203F3E0 -_0815150C: - cmp r1, 0x2 - beq _0815153C - b _0815156C -_08151512: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0815155E -_08151524: - bl UpdatePaletteFade - ldr r0, _08151538 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08151590 - b _0815155E - .align 2, 0 -_08151538: .4byte gPaletteFade -_0815153C: - bl sub_8154274 - bl sub_8153ED8 - ldr r0, [r4] - adds r0, 0x24 - ldrb r0, [r0] - bl sub_8153D08 - bl sub_8154578 - ldr r1, _08151568 @ =gUnknown_3002044 - movs r0, 0x1 - str r0, [r1] - movs r0, 0x8 - bl sub_81549D4 -_0815155E: - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08151590 - .align 2, 0 -_08151568: .4byte gUnknown_3002044 -_0815156C: - bl sub_8155E68 - cmp r0, 0 - bne _08151590 - ldr r4, _08151598 @ =gUnknown_203F3E0 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - ldrb r0, [r0, 0x4] - bl DestroyTask - ldr r0, [r4] - bl Free - bl FreeAllWindowBuffers -_08151590: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08151598: .4byte gUnknown_203F3E0 - thumb_func_end sub_81514F0 - - thumb_func_start sub_815159C -sub_815159C: @ 815159C - push {r4,lr} - sub sp, 0x4 - ldr r4, _081515B4 @ =gUnknown_203F3E0 - ldr r1, [r4] - ldrb r0, [r1, 0x10] - cmp r0, 0x6 - bhi _0815169C - lsls r0, 2 - ldr r1, _081515B8 @ =_081515BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081515B4: .4byte gUnknown_203F3E0 -_081515B8: .4byte _081515BC - .align 2, 0 -_081515BC: - .4byte _081515D8 - .4byte _08151676 - .4byte _081515F0 - .4byte _08151642 - .4byte _08151648 - .4byte _08151656 - .4byte _08151676 -_081515D8: - movs r0, 0x9 - bl sub_81549D4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08151686 -_081515F0: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - b _08151686 -_08151642: - bl StopMapMusic - b _08151686 -_08151648: - movs r0, 0xA5 - lsls r0, 1 - bl PlayNewMapMusic - bl sub_8154540 - b _08151686 -_08151656: - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08151686 -_08151676: - bl UpdatePaletteFade - ldr r0, _08151694 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081516CC -_08151686: - ldr r0, _08151698 @ =gUnknown_203F3E0 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _081516CC - .align 2, 0 -_08151694: .4byte gPaletteFade -_08151698: .4byte gUnknown_203F3E0 -_0815169C: - ldrb r0, [r1, 0x4] - bl DestroyTask - ldr r0, _081516D4 @ =sub_81516DC - bl sub_815206C - bl sub_8154730 - ldr r0, [r4] - bl sub_81508EC - ldr r0, _081516D8 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _081516C2 - ldr r0, [r4] - adds r0, 0x24 - movs r1, 0x1 - strb r1, [r0] -_081516C2: - bl sub_8153150 - movs r0, 0 - bl sub_81545BC -_081516CC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081516D4: .4byte sub_81516DC -_081516D8: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_815159C - - thumb_func_start sub_81516DC -sub_81516DC: @ 81516DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081516F8 @ =gUnknown_203F3E0 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - adds r4, r1, 0 - cmp r0, 0x1 - beq _08151708 - cmp r0, 0x1 - bgt _081516FC - cmp r0, 0 - beq _08151702 - b _08151720 - .align 2, 0 -_081516F8: .4byte gUnknown_203F3E0 -_081516FC: - cmp r0, 0x2 - beq _0815170E - b _08151720 -_08151702: - bl sub_81520B4 - b _08151712 -_08151708: - bl sub_8153DD8 - b _08151716 -_0815170E: - bl sub_8153F1C -_08151712: - cmp r0, 0x1 - bne _08151744 -_08151716: - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _08151744 -_08151720: - ldr r0, [r4] - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08151738 - ldr r0, _08151734 @ =sub_8150C08 - bl sub_815206C - b _0815173E - .align 2, 0 -_08151734: .4byte sub_8150C08 -_08151738: - ldr r0, _0815174C @ =sub_8150C40 - bl sub_815206C -_0815173E: - adds r0, r5, 0 - bl DestroyTask -_08151744: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815174C: .4byte sub_8150C40 - thumb_func_end sub_81516DC - - thumb_func_start sub_8151750 -sub_8151750: @ 8151750 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08151774 @ =gTasks+0x8 - adds r6, r0, r1 - movs r0, 0 - ldrsh r5, [r6, r0] - cmp r5, 0x1 - beq _081517A8 - cmp r5, 0x1 - bgt _08151778 - cmp r5, 0 - beq _0815177E - b _08151836 - .align 2, 0 -_08151774: .4byte gTasks+0x8 -_08151778: - cmp r5, 0x2 - beq _081517BA - b _08151836 -_0815177E: - ldr r4, _081517A0 @ =gUnknown_203F3E0 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 2 - ldr r2, _081517A4 @ =0x0000318c - adds r0, r2 - adds r1, r0 - movs r0, 0 - movs r2, 0x1 - bl SendBlock - ldr r0, [r4] - strb r5, [r0, 0x8] - b _081517B2 - .align 2, 0 -_081517A0: .4byte gUnknown_203F3E0 -_081517A4: .4byte 0x0000318c -_081517A8: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _08151836 -_081517B2: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _08151836 -_081517BA: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r3, _08151840 @ =gUnknown_203F3E0 - ldr r0, [r3] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcs _08151812 - adds r6, r3, 0 -_081517D2: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _08151800 - ldr r0, [r6] - lsls r2, r4, 2 - adds r2, r0 - ldr r0, _08151844 @ =0x0000318c - adds r2, r0 - lsls r0, r4, 8 - ldr r1, _08151848 @ =gBlockRecvBuffer - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0 - str r3, [sp] - bl ResetBlockReceivedFlag - ldr r1, [r6] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - ldr r3, [sp] -_08151800: - lsrs r5, 1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r3] - adds r0, 0x24 - ldrb r0, [r0] - cmp r4, r0 - bcc _081517D2 -_08151812: - ldr r4, _08151840 @ =gUnknown_203F3E0 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x24 - ldrb r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcc _08151836 - adds r0, r7, 0 - bl DestroyTask - movs r0, 0x6 - bl sub_81549D4 - ldr r1, [r4] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] -_08151836: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08151840: .4byte gUnknown_203F3E0 -_08151844: .4byte 0x0000318c -_08151848: .4byte gBlockRecvBuffer - thumb_func_end sub_8151750 - - thumb_func_start sub_815184C -sub_815184C: @ 815184C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - ldr r6, _08151928 @ =gUnknown_203F3E0 - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x24 - ldrb r7, [r1] - ldr r2, _0815192C @ =0x000031a0 - adds r1, r0, r2 - ldr r3, _08151930 @ =0x000031cc - adds r2, r0, r3 - ldr r4, _08151934 @ =0x00003208 - adds r3, r0, r4 - ldr r5, _08151938 @ =0x00003244 - adds r4, r0, r5 - str r4, [sp] - adds r5, 0x3C - adds r4, r0, r5 - str r4, [sp, 0x4] - adds r5, 0x3C - adds r4, r0, r5 - str r4, [sp, 0x8] - adds r4, r0, 0 - adds r4, 0x40 - str r4, [sp, 0xC] - movs r5, 0x90 - lsls r5, 1 - adds r4, r0, r5 - str r4, [sp, 0x10] - movs r4, 0x96 - lsls r4, 1 - adds r0, r4 - str r0, [sp, 0x14] - movs r0, 0 - bl sub_815A950 - ldr r1, [r6] - ldr r5, _0815193C @ =0x000031b0 - adds r2, r1, r5 - str r0, [r2] - movs r0, 0x94 - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x1 - cmp r5, r7 - bcs _081518F4 -_081518B0: - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xA8 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _081518EA - lsls r0, r5, 4 - subs r0, r5 - lsls r4, r0, 2 - adds r1, r4, r1 - ldr r2, _08151930 @ =0x000031cc - adds r1, r2 - adds r0, r5, 0 - bl sub_815AB04 - adds r1, r0, 0 - cmp r1, 0 - bne _081518EA - ldr r0, [r6] - adds r0, r4 - ldr r3, _08151930 @ =0x000031cc - adds r0, r3 - strb r1, [r0] - ldr r0, [r6] - movs r4, 0x94 - lsls r4, 1 - adds r0, r4 - strb r1, [r0] -_081518EA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _081518B0 -_081518F4: - ldr r5, _08151928 @ =gUnknown_203F3E0 - ldr r1, [r5] - movs r6, 0x92 - lsls r6, 1 - adds r1, r6 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _08151952 - ldr r1, [r5] - movs r2, 0x94 - lsls r2, 1 - adds r0, r1, r2 - ldrb r4, [r0] - cmp r4, 0 - beq _08151940 - bl sub_80FBA44 - ldr r0, [r5] - adds r0, r6 - movs r1, 0 - strb r1, [r0] - b _08151952 - .align 2, 0 -_08151928: .4byte gUnknown_203F3E0 -_0815192C: .4byte 0x000031a0 -_08151930: .4byte 0x000031cc -_08151934: .4byte 0x00003208 -_08151938: .4byte 0x00003244 -_0815193C: .4byte 0x000031b0 -_08151940: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0x46 - bls _08151952 - bl sub_80FBA44 - ldr r0, [r5] - adds r0, r6 - strb r4, [r0] -_08151952: - movs r5, 0 - cmp r5, r7 - bcs _08151A46 - ldr r3, _0815199C @ =0x000031cc - mov r12, r3 - ldr r4, _081519A0 @ =gUnknown_203F3E0 - mov r8, r4 -_08151960: - mov r6, r8 - ldr r2, [r6] - lsls r0, r5, 4 - subs r1, r0, r5 - lsls r1, 2 - adds r1, r2, r1 - add r1, r12 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _08151986 - adds r0, r2, 0 - adds r0, 0xA8 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, 0 - bne _08151986 - movs r0, 0x1 - strb r0, [r1] -_08151986: - adds r3, r4, 0 - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0xA8 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x3 - bgt _081519A4 - cmp r0, 0x1 - bge _081519AA - b _08151A3C - .align 2, 0 -_0815199C: .4byte 0x000031cc -_081519A0: .4byte gUnknown_203F3E0 -_081519A4: - cmp r0, 0x4 - beq _081519F8 - b _08151A3C -_081519AA: - adds r1, 0xB0 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _08151A3C - ldr r0, [r3] - adds r0, 0xB0 - adds r0, r5 - strb r2, [r0] - ldr r0, [r3] - adds r0, 0xA8 - adds r0, r5 - strb r2, [r0] - ldr r0, [r3] - subs r1, r6, r5 - lsls r1, 2 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldr r0, [r3] - adds r0, r1 - ldr r6, _081519F0 @ =0x000031d0 - adds r0, r6 - strb r2, [r0] - ldr r0, [r3] - adds r0, r1 - ldr r1, _081519F4 @ =0x000031d4 - adds r0, r1 - b _08151A3A - .align 2, 0 -_081519F0: .4byte 0x000031d0 -_081519F4: .4byte 0x000031d4 -_081519F8: - adds r1, 0xB0 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x27 - bls _08151A3C - ldr r0, [r4] - adds r0, 0xB0 - adds r0, r5 - strb r2, [r0] - ldr r0, [r4] - adds r0, 0xA8 - adds r0, r5 - strb r2, [r0] - ldr r0, [r4] - subs r1, r6, r5 - lsls r1, 2 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldr r0, [r4] - adds r0, r1 - ldr r3, _08151A54 @ =0x000031d0 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r0, r1 - ldr r6, _08151A58 @ =0x000031d4 - adds r0, r6 -_08151A3A: - strb r2, [r0] -_08151A3C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08151960 -_08151A46: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08151A54: .4byte 0x000031d0 -_08151A58: .4byte 0x000031d4 - thumb_func_end sub_815184C - - thumb_func_start sub_8151A5C -sub_8151A5C: @ 8151A5C - push {r4-r7,lr} - sub sp, 0x18 - ldr r5, _08151B20 @ =gUnknown_203F3E0 - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0x24 - ldrb r6, [r1] - ldr r2, _08151B24 @ =0x000031a0 - adds r1, r0, r2 - ldr r3, _08151B28 @ =0x000031cc - adds r2, r0, r3 - ldr r4, _08151B2C @ =0x00003208 - adds r3, r0, r4 - ldr r7, _08151B30 @ =0x00003244 - adds r4, r0, r7 - str r4, [sp] - adds r7, 0x3C - adds r4, r0, r7 - str r4, [sp, 0x4] - adds r7, 0x3C - adds r4, r0, r7 - str r4, [sp, 0x8] - adds r4, r0, 0 - adds r4, 0x40 - str r4, [sp, 0xC] - movs r7, 0x90 - lsls r7, 1 - adds r4, r0, r7 - str r4, [sp, 0x10] - movs r4, 0x96 - lsls r4, 1 - adds r0, r4 - str r0, [sp, 0x14] - movs r0, 0 - bl sub_815A950 - ldr r1, [r5] - ldr r7, _08151B34 @ =0x000031b0 - adds r2, r1, r7 - str r0, [r2] - movs r0, 0x94 - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 - cmp r4, r6 - bcs _08151AEC -_08151ABC: - adds r0, r4, 0 - bl sub_815AB60 - cmp r0, 0 - beq _08151AE2 - ldr r0, _08151B20 @ =gUnknown_203F3E0 - ldr r2, [r0] - lsls r1, r4, 2 - movs r3, 0x98 - lsls r3, 1 - adds r0, r2, r3 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - movs r7, 0x94 - lsls r7, 1 - adds r1, r2, r7 - movs r0, 0 - strb r0, [r1] -_08151AE2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08151ABC -_08151AEC: - ldr r5, _08151B20 @ =gUnknown_203F3E0 - ldr r1, [r5] - movs r6, 0x92 - lsls r6, 1 - adds r1, r6 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _08151B4A - ldr r1, [r5] - movs r2, 0x94 - lsls r2, 1 - adds r0, r1, r2 - ldrb r4, [r0] - cmp r4, 0 - beq _08151B38 - bl sub_80FBA44 - ldr r0, [r5] - adds r0, r6 - movs r1, 0 - strb r1, [r0] - b _08151B4A - .align 2, 0 -_08151B20: .4byte gUnknown_203F3E0 -_08151B24: .4byte 0x000031a0 -_08151B28: .4byte 0x000031cc -_08151B2C: .4byte 0x00003208 -_08151B30: .4byte 0x00003244 -_08151B34: .4byte 0x000031b0 -_08151B38: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0x46 - bls _08151B4A - bl sub_80FBA44 - ldr r0, [r5] - adds r0, r6 - strb r4, [r0] -_08151B4A: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8151A5C - - thumb_func_start sub_8151B54 -sub_8151B54: @ 8151B54 - push {r4,r5,lr} - ldr r5, _08151B6C @ =gUnknown_203F3E0 - ldr r0, [r5] - ldrb r0, [r0, 0x18] - cmp r0, 0x4 - beq _08151B90 - cmp r0, 0x4 - bgt _08151B70 - cmp r0, 0x3 - beq _08151B76 - b _08151B9A - .align 2, 0 -_08151B6C: .4byte gUnknown_203F3E0 -_08151B70: - cmp r0, 0xB - beq _08151B96 - b _08151B9A -_08151B76: - bl sub_8152A00 - adds r4, r0, 0 - cmp r4, 0x1 - bne _08151B9A - bl sub_8152A70 - ldr r0, [r5] - movs r1, 0x8E - lsls r1, 1 - adds r0, r1 - str r4, [r0] - b _08151B9A -_08151B90: - bl sub_815184C - b _08151B9A -_08151B96: - bl sub_8151A5C -_08151B9A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8151B54 - - thumb_func_start sub_8151BA0 -sub_8151BA0: @ 8151BA0 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _08151BB4 @ =gUnknown_203F3E0 - ldr r5, [r0] - ldrb r0, [r5, 0x18] - cmp r0, 0x4 - beq _08151BB8 - cmp r0, 0xB - beq _08151C08 - b _08151C44 - .align 2, 0 -_08151BB4: .4byte gUnknown_203F3E0 -_08151BB8: - ldr r1, _08151BF8 @ =0x000032cc - adds r0, r5, r1 - ldr r2, _08151BFC @ =0x000031cc - adds r1, r5, r2 - ldr r3, _08151C00 @ =0x00003208 - adds r2, r5, r3 - ldr r4, _08151C04 @ =0x00003244 - adds r3, r5, r4 - movs r6, 0xCA - lsls r6, 6 - adds r4, r5, r6 - str r4, [sp] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x4] - adds r4, r5, 0 - adds r4, 0x40 - ldrb r4, [r4] - str r4, [sp, 0x8] - movs r6, 0x90 - lsls r6, 1 - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, 0xC] - adds r6, 0xC - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, 0x10] - bl sub_815A61C - b _08151C44 - .align 2, 0 -_08151BF8: .4byte 0x000032cc -_08151BFC: .4byte 0x000031cc -_08151C00: .4byte 0x00003208 -_08151C04: .4byte 0x00003244 -_08151C08: - ldr r1, _08151C4C @ =0x000032cc - adds r0, r5, r1 - ldr r2, _08151C50 @ =0x000031cc - adds r1, r5, r2 - ldr r3, _08151C54 @ =0x00003208 - adds r2, r5, r3 - ldr r4, _08151C58 @ =0x00003244 - adds r3, r5, r4 - movs r6, 0xCA - lsls r6, 6 - adds r4, r5, r6 - str r4, [sp] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x4] - adds r4, r5, 0 - adds r4, 0x40 - ldrb r4, [r4] - str r4, [sp, 0x8] - movs r6, 0x90 - lsls r6, 1 - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, 0xC] - adds r6, 0xC - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, 0x10] - bl sub_815A61C -_08151C44: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08151C4C: .4byte 0x000032cc -_08151C50: .4byte 0x000031cc -_08151C54: .4byte 0x00003208 -_08151C58: .4byte 0x00003244 - thumb_func_end sub_8151BA0 - - thumb_func_start sub_8151C5C -sub_8151C5C: @ 8151C5C - push {r4-r6,lr} - sub sp, 0x18 - ldr r0, _08151C70 @ =gUnknown_203F3E0 - ldr r5, [r0] - ldrb r0, [r5, 0x18] - cmp r0, 0x4 - beq _08151C74 - cmp r0, 0xB - beq _08151CCC - b _08151D10 - .align 2, 0 -_08151C70: .4byte gUnknown_203F3E0 -_08151C74: - adds r0, r5, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 2 - ldr r2, _08151CBC @ =0x000031a0 - adds r1, r2 - adds r1, r5, r1 - ldr r3, _08151CC0 @ =0x000031cc - adds r2, r5, r3 - ldr r4, _08151CC4 @ =0x00003208 - adds r3, r5, r4 - ldr r6, _08151CC8 @ =0x00003244 - adds r4, r5, r6 - str r4, [sp] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x4] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x8] - adds r4, r5, 0 - adds r4, 0x40 - str r4, [sp, 0xC] - movs r6, 0x90 - lsls r6, 1 - adds r4, r5, r6 - str r4, [sp, 0x10] - adds r6, 0xC - adds r4, r5, r6 - str r4, [sp, 0x14] - bl sub_815A950 - b _08151D10 - .align 2, 0 -_08151CBC: .4byte 0x000031a0 -_08151CC0: .4byte 0x000031cc -_08151CC4: .4byte 0x00003208 -_08151CC8: .4byte 0x00003244 -_08151CCC: - adds r0, r5, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 2 - ldr r2, _08151D18 @ =0x000031a0 - adds r1, r2 - adds r1, r5, r1 - ldr r3, _08151D1C @ =0x000031cc - adds r2, r5, r3 - ldr r4, _08151D20 @ =0x00003208 - adds r3, r5, r4 - ldr r6, _08151D24 @ =0x00003244 - adds r4, r5, r6 - str r4, [sp] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x4] - adds r6, 0x3C - adds r4, r5, r6 - str r4, [sp, 0x8] - adds r4, r5, 0 - adds r4, 0x40 - str r4, [sp, 0xC] - movs r6, 0x90 - lsls r6, 1 - adds r4, r5, r6 - str r4, [sp, 0x10] - adds r6, 0xC - adds r4, r5, r6 - str r4, [sp, 0x14] - bl sub_815A950 -_08151D10: - add sp, 0x18 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08151D18: .4byte 0x000031a0 -_08151D1C: .4byte 0x000031cc -_08151D20: .4byte 0x00003208 -_08151D24: .4byte 0x00003244 - thumb_func_end sub_8151C5C - - thumb_func_start sub_8151D28 -sub_8151D28: @ 8151D28 - push {r4,lr} - ldr r4, _08151D40 @ =gUnknown_203F3E0 - ldr r1, [r4] - ldrb r0, [r1, 0x18] - cmp r0, 0x4 - beq _08151D5E - cmp r0, 0x4 - bgt _08151D44 - cmp r0, 0x3 - beq _08151D4A - b _08151D90 - .align 2, 0 -_08151D40: .4byte gUnknown_203F3E0 -_08151D44: - cmp r0, 0xB - beq _08151D74 - b _08151D90 -_08151D4A: - movs r0, 0x1 - bl sub_815A5BC - ldr r0, [r4] - movs r1, 0x8E - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - b _08151D90 -_08151D5E: - ldr r2, _08151D70 @ =0x000032f8 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08151D90 - bl sub_815AAD8 - b _08151D90 - .align 2, 0 -_08151D70: .4byte 0x000032f8 -_08151D74: - movs r2, 0x90 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - bne _08151D90 - adds r2, 0xC - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - bne _08151D90 - movs r0, 0x1 - bl sub_815AB3C -_08151D90: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8151D28 - - thumb_func_start sub_8151D98 -sub_8151D98: @ 8151D98 - push {r4-r6,lr} - ldr r6, _08151DD0 @ =gUnknown_203F3E0 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r1, r2, r0 - ldr r3, _08151DD4 @ =0x000031cc - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08151DD8 - bl IsSEPlaying - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08151E3A - ldr r0, [r6] - movs r2, 0xA2 - lsls r2, 1 - adds r0, r2 - strb r1, [r0] - b _08151E3A - .align 2, 0 -_08151DD0: .4byte gUnknown_203F3E0 -_08151DD4: .4byte 0x000031cc -_08151DD8: - ldr r3, _08151E04 @ =0x000031d0 - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, 0x1 - bne _08151E08 - movs r1, 0xA2 - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08151E3A - movs r0, 0x19 - bl m4aSongNumStop - movs r0, 0x19 - bl PlaySE - ldr r0, [r6] - movs r2, 0xA2 - lsls r2, 1 - adds r0, r2 - b _08151E38 - .align 2, 0 -_08151E04: .4byte 0x000031d0 -_08151E08: - ldr r3, _08151E64 @ =0x000031d4 - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, 0x1 - bne _08151E3A - movs r5, 0xA2 - lsls r5, 1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _08151E3A - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08151E3A - movs r0, 0x16 - bl PlaySE - movs r0, 0x1 - bl sub_8153BC0 - ldr r0, [r6] - adds r0, r5 -_08151E38: - strb r4, [r0] -_08151E3A: - ldr r0, _08151E68 @ =gUnknown_203F3E0 - ldr r2, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r2, r5 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - bne _08151E6C - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08151E6C - bl StopMapMusic - ldr r0, [r4] - adds r0, r5 - movs r1, 0x1 - b _08151E8A - .align 2, 0 -_08151E64: .4byte 0x000031d4 -_08151E68: .4byte gUnknown_203F3E0 -_08151E6C: - ldr r0, [r4] - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08151E8C - movs r0, 0xA - bl PlayFanfareByFanfareNum - ldr r0, [r4] - movs r2, 0xAA - lsls r2, 1 - adds r0, r2 - movs r1, 0x2 -_08151E8A: - strb r1, [r0] -_08151E8C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8151D98 - - thumb_func_start sub_8151E94 -sub_8151E94: @ 8151E94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r6, _08151EE0 @ =gUnknown_203F3E0 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x44 - ldrb r0, [r0] - mov r8, r0 - adds r0, r2, 0 - adds r0, 0x48 - ldrb r7, [r0] - subs r0, 0x20 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r1, r2, r0 - ldr r3, _08151EE4 @ =0x000031cc - adds r0, r1, r3 - ldrb r3, [r0] - cmp r3, 0 - bne _08151EEC - ldr r4, _08151EE8 @ =0x000031d0 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08151F4E - adds r4, 0x4 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08151F4E - movs r1, 0xA2 - lsls r1, 1 - adds r0, r2, r1 - strb r3, [r0] - b _08151F4E - .align 2, 0 -_08151EE0: .4byte gUnknown_203F3E0 -_08151EE4: .4byte 0x000031cc -_08151EE8: .4byte 0x000031d0 -_08151EEC: - ldr r3, _08151F18 @ =0x000031d0 - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, 0x1 - bne _08151F1C - movs r1, 0xA2 - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08151F4E - movs r0, 0x19 - bl m4aSongNumStop - movs r0, 0x19 - bl PlaySE - ldr r0, [r6] - movs r3, 0xA2 - lsls r3, 1 - adds r0, r3 - b _08151F4C - .align 2, 0 -_08151F18: .4byte 0x000031d0 -_08151F1C: - ldr r4, _08151FA0 @ =0x000031d4 - adds r0, r1, r4 - ldrb r4, [r0] - cmp r4, 0x1 - bne _08151F4E - movs r5, 0xA2 - lsls r5, 1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _08151F4E - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08151F4E - movs r0, 0x16 - bl PlaySE - movs r0, 0x1 - bl sub_8153BC0 - ldr r0, [r6] - adds r0, r5 -_08151F4C: - strb r4, [r0] -_08151F4E: - mov r4, r8 - cmp r4, r7 - bcs _08151FC2 - ldr r5, _08151FA4 @ =gUnknown_203F3E0 -_08151F56: - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - ldr r1, _08151FA8 @ =0x000031a0 - adds r0, r1 - adds r0, r2, r0 - adds r1, r0, 0 - adds r1, 0x14 - adds r0, 0x1F - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08151FAC - movs r3, 0xA4 - lsls r3, 1 - adds r0, r2, r3 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08151FB8 - adds r0, r1, r4 - ldrb r0, [r0] - adds r0, 0x43 - bl PlaySE - ldr r0, [r5] - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - movs r1, 0x1 - b _08151FB6 - .align 2, 0 -_08151FA0: .4byte 0x000031d4 -_08151FA4: .4byte gUnknown_203F3E0 -_08151FA8: .4byte 0x000031a0 -_08151FAC: - movs r3, 0xA4 - lsls r3, 1 - adds r0, r2, r3 - adds r0, r4 - movs r1, 0 -_08151FB6: - strb r1, [r0] -_08151FB8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _08151F56 -_08151FC2: - ldr r0, _08151FEC @ =gUnknown_203F3E0 - ldr r2, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r2, r5 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - bne _08151FF0 - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08151FF0 - bl StopMapMusic - ldr r0, [r4] - adds r0, r5 - movs r1, 0x1 - b _0815200E - .align 2, 0 -_08151FEC: .4byte gUnknown_203F3E0 -_08151FF0: - ldr r0, [r4] - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08152010 - movs r0, 0xA - bl PlayFanfareByFanfareNum - ldr r0, [r4] - movs r3, 0xAA - lsls r3, 1 - adds r0, r3 - movs r1, 0x2 -_0815200E: - strb r1, [r0] -_08152010: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8151E94 - - thumb_func_start sub_815201C -sub_815201C: @ 815201C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_815201C - - thumb_func_start sub_8152034 -sub_8152034: @ 8152034 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_8152034 - - thumb_func_start sub_8152048 -sub_8152048: @ 8152048 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl IsMonShiny - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8152048 - - thumb_func_start sub_815205C -sub_815205C: @ 815205C - push {lr} - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - pop {r0} - bx r0 - thumb_func_end sub_815205C - - thumb_func_start sub_815206C -sub_815206C: @ 815206C - push {lr} - movs r1, 0x1 - bl CreateTask - ldr r1, _0815208C @ =gUnknown_203F3E0 - ldr r3, [r1] - movs r2, 0 - strb r0, [r3, 0x4] - ldr r0, [r1] - strb r2, [r0, 0x10] - ldr r0, [r1] - strb r2, [r0, 0xC] - ldr r0, [r1] - strb r2, [r0, 0x14] - pop {r0} - bx r0 - .align 2, 0 -_0815208C: .4byte gUnknown_203F3E0 - thumb_func_end sub_815206C - - thumb_func_start sub_8152090 -sub_8152090: @ 8152090 - push {r4,lr} - ldr r2, _081520B0 @ =gUnknown_203F3E0 - ldr r1, [r2] - ldrb r3, [r1, 0x18] - movs r4, 0 - strb r3, [r1, 0x1C] - ldr r1, [r2] - strb r0, [r1, 0x18] - ldr r0, [r2] - strb r4, [r0, 0x10] - ldr r0, [r2] - strb r4, [r0, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081520B0: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152090 - - thumb_func_start sub_81520B4 -sub_81520B4: @ 81520B4 - push {r4,lr} - ldr r3, _081520E8 @ =gUnknown_203F3E0 - ldr r1, [r3] - ldrb r0, [r1, 0x14] - lsrs r2, r0, 2 - adds r0, 0x1 - strb r0, [r1, 0x14] - cmp r2, 0 - beq _08152108 - ldr r3, [r3] - ldrb r0, [r3, 0x14] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08152108 - ldr r1, _081520EC @ =gUnknown_8475548 - adds r0, r3, 0 - adds r0, 0x24 - ldrb r0, [r0] - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bcc _081520F0 - movs r0, 0x1 - b _0815210A - .align 2, 0 -_081520E8: .4byte gUnknown_203F3E0 -_081520EC: .4byte gUnknown_8475548 -_081520F0: - lsls r4, r2, 3 - adds r1, r4, 0 - movs r0, 0x14 - bl SetGpuReg - negs r4, r4 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x18 - adds r1, r4, 0 - bl SetGpuReg -_08152108: - movs r0, 0 -_0815210A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81520B4 - - thumb_func_start sub_8152110 -sub_8152110: @ 8152110 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, _08152168 @ =gUnknown_203F3E0 - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x44 - adds r0, 0x48 - ldrb r5, [r0] - ldrb r1, [r1] - cmp r1, r5 - bcs _0815215C - mov r8, r2 - ldr r0, _0815216C @ =0x000032e0 - mov r12, r0 - movs r7, 0 - movs r6, 0x1 -_08152132: - mov r2, r8 - ldr r0, [r2] - mov r2, r12 - adds r4, r0, r2 - ldr r2, _08152170 @ =0x000032eb - adds r0, r2 - adds r2, r0, r1 - movs r3, 0 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - bne _0815214C - movs r3, 0x1 -_0815214C: - strb r3, [r2] - adds r0, r4, r1 - strb r7, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r5 - bcc _08152132 -_0815215C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08152168: .4byte gUnknown_203F3E0 -_0815216C: .4byte 0x000032e0 -_08152170: .4byte 0x000032eb - thumb_func_end sub_8152110 - - thumb_func_start sub_8152174 -sub_8152174: @ 8152174 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, _08152248 @ =gUnknown_203F3E0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x44 - ldrb r0, [r0] - str r0, [sp] - adds r0, r1, 0 - adds r0, 0x48 - ldrb r0, [r0] - str r0, [sp, 0x4] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r0, [r0] - str r0, [sp, 0x8] - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _081521A8 - b _08152464 -_081521A8: - movs r6, 0 - ldr r0, [sp, 0x8] - cmp r6, r0 - bcs _08152290 -_081521B0: - ldr r3, _08152248 @ =gUnknown_203F3E0 - lsls r0, r6, 4 - subs r1, r0, r6 - lsls r1, 2 - ldr r2, [r3] - adds r1, r2 - ldr r4, _0815224C @ =0x000031cc - adds r4, r1 - mov r8, r4 - ldrb r1, [r4] - mov r9, r0 - adds r0, r6, 0x1 - str r0, [sp, 0xC] - cmp r1, 0 - beq _08152284 - adds r0, r2, 0 - adds r0, 0xA8 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08152284 - ldr r1, [sp] - mov r10, r1 - ldr r2, [sp, 0x4] - cmp r10, r2 - bcs _08152284 - adds r7, r3, 0 -_081521E6: - ldr r0, _08152250 @ =gUnknown_8471F50 - add r0, r10 - ldrb r5, [r0] - ldr r1, [r7] - lsls r4, r5, 1 - adds r0, r1, 0 - adds r0, 0xF4 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r6 - beq _08152284 - adds r0, r1, 0 - adds r0, 0xF5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r6 - beq _08152284 - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, 0 - adds r2, r5, 0 - bl sub_8152484 - cmp r0, 0x1 - bne _08152260 - movs r2, 0 - ldr r3, _08152248 @ =gUnknown_203F3E0 - mov r8, r4 -_0815221E: - ldr r0, [r3] - mov r4, r8 - adds r1, r2, r4 - adds r0, 0xF4 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08152254 - strb r6, [r1] - ldr r0, [r3] - adds r0, 0xA8 - adds r0, r6 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r3] - adds r0, 0xC4 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - b _08152284 - .align 2, 0 -_08152248: .4byte gUnknown_203F3E0 -_0815224C: .4byte 0x000031cc -_08152250: .4byte gUnknown_8471F50 -_08152254: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _0815221E - b _08152284 -_08152260: - ldr r0, [r7] - mov r2, r9 - subs r1, r2, r6 - lsls r1, 2 - adds r0, r1 - ldr r4, _08152354 @ =0x000031d4 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08152284 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, [sp, 0x4] - cmp r10, r0 - bcc _081521E6 -_08152284: - ldr r1, [sp, 0xC] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x8] - cmp r6, r2 - bcc _081521B0 -_08152290: - ldr r4, [sp] - mov r10, r4 - ldr r0, [sp, 0x4] - cmp r10, r0 - bcc _0815229C - b _08152464 -_0815229C: - ldr r1, _08152358 @ =gUnknown_203F3E0 - mov r9, r1 -_081522A0: - movs r6, 0xFF - ldr r0, _0815235C @ =gUnknown_8471F50 - add r0, r10 - ldrb r5, [r0] - mov r2, r9 - ldr r0, [r2] - adds r0, 0xC4 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081522B8 - b _08152452 -_081522B8: - adds r0, r5, 0 - bl sub_8152BD4 - mov r1, r9 - ldr r4, [r1] - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r1, 0x90 - adds r1, r0 - ldrb r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _081522DE - movs r3, 0x2 -_081522DE: - ldr r2, _08152360 @ =gUnknown_847553C - ldr r0, _08152364 @ =0x000031b4 - adds r1, r4, r0 - adds r1, r5 - lsls r0, r3, 1 - adds r0, r3 - ldrb r1, [r1] - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0xD0 - adds r0, r5 - ldrb r0, [r0] - subs r2, r1, r0 - cmp r2, 0x5 - bgt _0815230C - adds r1, r4, 0 - adds r1, 0x9C - adds r1, r5 - ldrb r0, [r1] - adds r0, r2 - strb r0, [r1] -_0815230C: - mov r2, r9 - ldr r1, [r2] - adds r1, 0x9C - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - movs r4, 0xFF - ands r0, r4 - cmp r0, 0x5 - bhi _08152326 - b _08152452 -_08152326: - mov r1, r9 - ldr r0, [r1] - adds r0, 0x9C - adds r0, r5 - strb r2, [r0] - ldr r3, [r1] - lsls r1, r5, 1 - adds r0, r3, 0 - adds r0, 0xF4 - adds r2, r0, r1 - ldrb r0, [r2] - mov r8, r1 - cmp r0, 0xFF - bne _08152368 - adds r0, r3, 0 - adds r0, 0xF5 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08152350 - b _08152452 -_08152350: - b _08152378 - .align 2, 0 -_08152354: .4byte 0x000031d4 -_08152358: .4byte gUnknown_203F3E0 -_0815235C: .4byte gUnknown_8471F50 -_08152360: .4byte gUnknown_847553C -_08152364: .4byte 0x000031b4 -_08152368: - adds r0, r3, 0 - adds r0, 0xF5 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08152378 - ldrb r4, [r2] - b _0815239E -_08152378: - mov r2, r9 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0xF4 - add r0, r8 - ldrb r7, [r0] - adds r1, 0xF5 - add r1, r8 - ldrb r6, [r1] - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0815239A - adds r4, r7, 0 - b _0815239E -_0815239A: - adds r4, r6, 0 - adds r6, r7, 0 -_0815239E: - mov r1, r9 - ldr r0, [r1] - ldr r2, _08152474 @ =0x000032eb - adds r0, r2 - adds r0, r5 - movs r1, 0x7 - strb r1, [r0] - mov r1, r9 - ldr r0, [r1] - adds r0, 0xC4 - adds r0, r5 - movs r1, 0x2 - strb r1, [r0] - mov r2, r9 - ldr r0, [r2] - adds r0, 0xA8 - adds r0, r4 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xB8 - adds r0, r5 - strb r4, [r0] - ldr r1, [r2] - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 2 - adds r1, r0 - ldr r2, _08152478 @ =0x000031d0 - adds r1, r2 - movs r0, 0x1 - strb r0, [r1] - mov r2, r9 - ldr r1, [r2] - lsls r0, r6, 4 - subs r0, r6 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815247C @ =0x000031d4 - adds r1, r0 - movs r2, 0x1 - strb r2, [r1] - mov r0, r9 - ldr r1, [r0] - lsls r0, r4, 1 - adds r1, 0x86 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8152D34 - movs r0, 0x1 - bl sub_8152F94 - adds r0, r4, 0 - bl sub_8152B64 - mov r1, r9 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0xE8 - adds r1, r5 - ldr r2, _08152480 @ =0x000032e0 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - mov r4, r9 - ldr r0, [r4] - adds r0, r2 - adds r0, r5 - movs r1, 0x3 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0xF4 - add r1, r8 - ldrb r0, [r1] - movs r2, 0xFF - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, 0xF5 - add r1, r8 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_08152452: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r4, [sp, 0x4] - cmp r10, r4 - bcs _08152464 - b _081522A0 -_08152464: - 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 -_08152474: .4byte 0x000032eb -_08152478: .4byte 0x000031d0 -_0815247C: .4byte 0x000031d4 -_08152480: .4byte 0x000032e0 - thumb_func_end sub_8152174 - - thumb_func_start sub_8152484 -sub_8152484: @ 8152484 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r7, 0 - ldr r2, _081524B8 @ =gUnknown_203F3E0 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _081524BC @ =0x000032e0 - adds r1, r0 - mov r12, r2 - cmp r3, 0x2 - beq _081524C0 - cmp r3, 0x2 - bgt _081524C6 - cmp r3, 0x1 - beq _081524C4 - b _081524C6 - .align 2, 0 -_081524B8: .4byte gUnknown_203F3E0 -_081524BC: .4byte 0x000032e0 -_081524C0: - movs r7, 0x1 - b _081524C6 -_081524C4: - movs r7, 0x2 -_081524C6: - adds r0, r1, 0 - adds r0, 0xB - adds r0, r6 - ldrb r0, [r0] - subs r0, 0x6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08152524 - ldr r0, _08152518 @ =gUnknown_8472063 - lsls r1, r4, 1 - adds r1, r4 - adds r1, r7, r1 - lsls r2, r5, 4 - subs r2, r5 - adds r1, r2 - adds r1, r0 - ldrb r1, [r1] - cmp r6, r1 - bne _0815255A - mov r0, r12 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - adds r0, r6 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08152520 - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 2 - adds r0, r1, r0 - ldr r1, _0815251C @ =0x000031d4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _0815255A - .align 2, 0 -_08152518: .4byte gUnknown_8472063 -_0815251C: .4byte 0x000031d4 -_08152520: - movs r0, 0x1 - b _0815255C -_08152524: - ldr r0, _08152564 @ =gUnknown_8472063 - lsls r1, r4, 1 - adds r1, r4 - adds r1, r7, r1 - lsls r2, r5, 4 - subs r2, r5 - adds r1, r2 - adds r1, r0 - ldrb r1, [r1] - cmp r6, r1 - bne _0815255A - mov r1, r12 - ldr r0, [r1] - adds r0, 0xA8 - adds r0, r4 - movs r1, 0x4 - strb r1, [r0] - mov r0, r12 - ldr r1, [r0] - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 2 - adds r1, r0 - ldr r0, _08152568 @ =0x000031d4 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] -_0815255A: - movs r0, 0 -_0815255C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08152564: .4byte gUnknown_8472063 -_08152568: .4byte 0x000031d4 - thumb_func_end sub_8152484 - - thumb_func_start sub_815256C -sub_815256C: @ 815256C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _08152640 @ =gUnknown_203F3E0 - ldr r4, [r2] - adds r0, r4, 0 - adds r0, 0x44 - ldrb r1, [r0] - adds r0, 0x4 - ldrb r0, [r0] - mov r9, r0 - movs r3, 0 - mov r10, r3 - movs r5, 0x90 - lsls r5, 1 - adds r0, r4, r5 - str r3, [r0] - adds r5, r1, 0 - mov r0, r9 - subs r0, 0x1 - cmp r5, r0 - blt _0815259E - b _081527BC -_0815259E: - mov r8, r2 -_081525A0: - mov r0, r8 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0xC4 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x1 - bls _081525B2 - b _081526BC -_081525B2: - movs r1, 0x90 - lsls r1, 1 - adds r0, r4, r1 - movs r2, 0x1 - str r2, [r0] - ldr r1, _08152644 @ =0x000032eb - adds r0, r4, r1 - adds r6, r0, r5 - ldrb r0, [r6] - cmp r0, 0x9 - bls _0815264C - movs r7, 0 - movs r0, 0xA - strb r0, [r6] - mov r1, r8 - ldr r0, [r1] - adds r0, 0xC4 - adds r0, r5 - movs r1, 0x3 - strb r1, [r0] - mov r1, r8 - ldr r0, [r1] - movs r6, 0xA4 - lsls r6, 1 - adds r0, r6 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, 0 - bne _081525FC - strb r2, [r1] - ldr r2, _08152648 @ =0x000032e0 - adds r0, r4, r2 - adds r0, r5 - ldrb r0, [r0] - adds r0, 0x43 - bl PlaySE -_081525FC: - mov r0, r8 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08152612 - mov r2, r10 - cmp r2, 0x1 - beq _08152612 - b _081527AC -_08152612: - movs r0, 0x1 - mov r10, r0 - adds r0, r1, r6 - adds r0, r5 - strb r7, [r0] - mov r1, r8 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0x40 - ldrb r0, [r1] - cmp r0, 0x9 - bhi _0815262E - adds r0, 0x1 - strb r0, [r1] -_0815262E: - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0 - bl sub_8152D34 - movs r0, 0 - bl sub_8152F94 - b _081527AC - .align 2, 0 -_08152640: .4byte gUnknown_203F3E0 -_08152644: .4byte 0x000032eb -_08152648: .4byte 0x000032e0 -_0815264C: - adds r0, r5, 0 - bl sub_8152BD4 - mov r2, r8 - ldr r7, [r2] - lsls r0, 24 - lsrs r0, 24 - adds r1, r7, 0 - adds r1, 0x90 - adds r1, r0 - ldrb r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _08152672 - movs r3, 0x2 -_08152672: - ldr r2, _081526B4 @ =gUnknown_847553C - ldr r0, _081526B8 @ =0x000032e0 - adds r1, r4, r0 - adds r1, r5 - lsls r0, r3, 1 - adds r0, r3 - ldrb r1, [r1] - adds r0, r1 - adds r0, r2 - ldrb r2, [r0] - adds r1, r7, 0 - adds r1, 0xD0 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - bcc _081526AC - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - mov r1, r8 - ldr r0, [r1] - adds r0, 0xD0 - adds r0, r5 - strb r3, [r0] -_081526AC: - bl sub_8152174 - b _081527AC - .align 2, 0 -_081526B4: .4byte gUnknown_847553C -_081526B8: .4byte 0x000032e0 -_081526BC: - cmp r0, 0x2 - bne _0815273C - adds r1, r4, 0 - adds r1, 0xDC - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _081527AC - mov r0, r8 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xB8 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r1, _08152730 @ =0x000031d0 - adds r2, r1 - strb r3, [r2] - mov r2, r8 - ldr r0, [r2] - adds r0, 0xDC - adds r0, r5 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0xD0 - adds r0, r5 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0xC4 - adds r0, r5 - strb r3, [r0] - ldr r1, _08152734 @ =0x000032eb - adds r0, r4, r1 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - adds r0, r5, 0 - bl sub_8152BD4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl sub_8152BF8 - ldr r2, _08152738 @ =0x000032e0 - adds r1, r4, r2 - adds r1, r5 - strb r0, [r1] - b _081527AC - .align 2, 0 -_08152730: .4byte 0x000031d0 -_08152734: .4byte 0x000032eb -_08152738: .4byte 0x000032e0 -_0815273C: - cmp r0, 0x3 - bne _081527AC - adds r1, r4, 0 - adds r1, 0xDC - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _081527AC - mov r0, r8 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bhi _081527AC - adds r0, r1, 0 - adds r0, 0xDC - adds r0, r5 - strb r2, [r0] - mov r1, r8 - ldr r0, [r1] - adds r0, 0xD0 - adds r0, r5 - strb r2, [r0] - ldr r0, [r1] - adds r0, 0xC4 - adds r0, r5 - strb r2, [r0] - ldr r2, _081527CC @ =0x000032eb - adds r0, r4, r2 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - mov r0, r8 - ldr r1, [r0] - adds r1, 0xE8 - adds r1, r5 - subs r2, 0xB - adds r4, r2 - adds r4, r5 - ldrb r0, [r4] - strb r0, [r1] - adds r0, r5, 0 - bl sub_8152BD4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl sub_8152BF8 - strb r0, [r4] -_081527AC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r9 - subs r0, 0x1 - cmp r5, r0 - bge _081527BC - b _081525A0 -_081527BC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081527CC: .4byte 0x000032eb - thumb_func_end sub_815256C - - thumb_func_start sub_81527D0 -sub_81527D0: @ 81527D0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08152838 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x44 - adds r0, 0x48 - ldrb r0, [r0] - mov r8, r0 - ldrb r6, [r1] - cmp r6, r8 - bcs _081528C2 - ldr r0, _0815283C @ =gUnknown_8471F50 - mov r9, r0 -_081527F0: - ldr r0, _08152838 @ =gUnknown_203F3E0 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - ldr r2, _08152840 @ =0x000031a0 - adds r0, r2 - adds r7, r3, r0 - movs r0, 0xB - adds r2, r1, 0 - muls r2, r0 - adds r2, r6, r2 - adds r3, 0x24 - ldrb r1, [r3] - subs r1, 0x1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - adds r2, r0 - add r2, r9 - ldrb r4, [r2] - adds r0, r7, 0 - adds r0, 0x1F - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08152844 - adds r0, r6, 0 - movs r1, 0 - bl sub_81542EC - b _0815284C - .align 2, 0 -_08152838: .4byte gUnknown_203F3E0 -_0815283C: .4byte gUnknown_8471F50 -_08152840: .4byte 0x000031a0 -_08152844: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_81542EC -_0815284C: - adds r0, r7, 0 - adds r0, 0x1F - adds r5, r0, r4 - ldrb r0, [r5] - cmp r0, 0x9 - bls _08152878 - adds r0, r7, 0 - adds r0, 0x14 - adds r0, r4 - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8154398 - ldrb r1, [r5] - lsls r1, 25 - movs r0, 0xFF - lsls r0, 24 - adds r1, r0 - b _0815289A -_08152878: - adds r0, r7, 0 - adds r0, 0x14 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0x3 - bne _081528A4 - movs r0, 0x7 - strb r0, [r5] - adds r0, r6, 0 - movs r1, 0x6 - bl sub_8154398 - ldrb r1, [r5] - lsls r1, 25 - movs r2, 0xFF - lsls r2, 24 - adds r1, r2 -_0815289A: - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8154370 - b _081528B8 -_081528A4: - ldrb r1, [r3] - adds r0, r6, 0 - bl sub_8154398 - ldrb r1, [r5] - lsls r1, 25 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8154370 -_081528B8: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r8 - bcc _081527F0 -_081528C2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81527D0 - - thumb_func_start sub_81528D0 -sub_81528D0: @ 81528D0 - push {r4-r6,lr} - ldr r1, _08152908 @ =gUnknown_203F3E0 - ldr r0, [r1] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _08152902 - adds r6, r1, 0 -_081528E2: - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 2 - ldr r1, [r6] - adds r0, r1 - ldr r1, _0815290C @ =0x000031cc - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8153DA8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081528E2 -_08152902: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08152908: .4byte gUnknown_203F3E0 -_0815290C: .4byte 0x000031cc - thumb_func_end sub_81528D0 - - thumb_func_start sub_8152910 -sub_8152910: @ 8152910 - push {r4,r5,lr} - ldr r0, _08152938 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _08152932 -_08152920: - adds r0, r4, 0 - movs r1, 0x4 - bl sub_8153DA8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08152920 -_08152932: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08152938: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152910 - - thumb_func_start sub_815293C -sub_815293C: @ 815293C - push {lr} - bl sub_81527D0 - ldr r0, _08152954 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08152958 - bl sub_8152910 - b _0815295C - .align 2, 0 -_08152954: .4byte gUnknown_203F3E0 -_08152958: - bl sub_81528D0 -_0815295C: - ldr r0, _0815296C @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - bl sub_8153FC8 - pop {r0} - bx r0 - .align 2, 0 -_0815296C: .4byte gUnknown_203F3E0 - thumb_func_end sub_815293C - - thumb_func_start sub_8152970 -sub_8152970: @ 8152970 - push {lr} - bl sub_81527D0 - ldr r0, _08152988 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _0815298C - bl sub_8152910 - b _08152990 - .align 2, 0 -_08152988: .4byte gUnknown_203F3E0 -_0815298C: - bl sub_81528D0 -_08152990: - ldr r0, _081529A0 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - bl sub_8153FC8 - pop {r0} - bx r0 - .align 2, 0 -_081529A0: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152970 - - thumb_func_start sub_81529A4 -sub_81529A4: @ 81529A4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x4 - bhi _081529FC - lsls r0, 2 - ldr r1, _081529BC @ =_081529C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081529BC: .4byte _081529C0 - .align 2, 0 -_081529C0: - .4byte _081529D4 - .4byte _081529DC - .4byte _081529E4 - .4byte _081529EC - .4byte _081529F4 -_081529D4: - movs r0, 0x4 - strb r0, [r3] - movs r0, 0x7 - b _081529FA -_081529DC: - movs r0, 0x3 - strb r0, [r3] - movs r0, 0x8 - b _081529FA -_081529E4: - movs r0, 0x2 - strb r0, [r3] - movs r0, 0x9 - b _081529FA -_081529EC: - movs r0, 0x1 - strb r0, [r3] - movs r0, 0xA - b _081529FA -_081529F4: - movs r0, 0 - strb r0, [r3] - movs r0, 0xB -_081529FA: - strb r0, [r2] -_081529FC: - pop {r0} - bx r0 - thumb_func_end sub_81529A4 - - thumb_func_start sub_8152A00 -sub_8152A00: @ 8152A00 - push {r4-r6,lr} - ldr r1, _08152A58 @ =gUnknown_203F3E0 - ldr r0, [r1] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0x1 - cmp r4, r5 - bcs _08152A66 - adds r6, r1, 0 -_08152A12: - ldr r0, [r6] - movs r1, 0xAC - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08152A34 - adds r0, r4, 0 - bl sub_815A5E8 - ldr r1, [r6] - movs r2, 0xAC - lsls r2, 1 - adds r1, r2 - adds r1, r4 - strb r0, [r1] -_08152A34: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08152A12 - cmp r4, r5 - bcs _08152A66 - ldr r0, _08152A58 @ =gUnknown_203F3E0 - ldr r0, [r0] - movs r2, 0xAC - lsls r2, 1 - adds r1, r0, r2 -_08152A4C: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08152A5C - movs r0, 0 - b _08152A68 - .align 2, 0 -_08152A58: .4byte gUnknown_203F3E0 -_08152A5C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08152A4C -_08152A66: - movs r0, 0x1 -_08152A68: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8152A00 - - thumb_func_start sub_8152A70 -sub_8152A70: @ 8152A70 - push {r4,lr} - movs r1, 0 - ldr r4, _08152A94 @ =gUnknown_203F3E0 - movs r3, 0xAC - lsls r3, 1 - movs r2, 0 -_08152A7C: - ldr r0, [r4] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _08152A7C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08152A94: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152A70 - - thumb_func_start sub_8152A98 -sub_8152A98: @ 8152A98 - push {r4,lr} - ldr r3, _08152ACC @ =gUnknown_203F3E0 - ldr r1, [r3] - adds r2, r1, 0 - adds r2, 0x40 - ldrb r0, [r2] - cmp r0, 0x9 - bls _08152AD0 - movs r4, 0x90 - lsls r4, 1 - adds r0, r1, r4 - ldr r0, [r0] - cmp r0, 0 - bne _08152AD0 - movs r0, 0xA - strb r0, [r2] - ldr r0, [r3] - movs r1, 0x96 - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _08152AD0 - movs r0, 0x1 - b _08152AD2 - .align 2, 0 -_08152ACC: .4byte gUnknown_203F3E0 -_08152AD0: - movs r0, 0 -_08152AD2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8152A98 - - thumb_func_start sub_8152AD8 -sub_8152AD8: @ 8152AD8 - push {r4-r6,lr} - ldr r4, _08152B50 @ =gUnknown_203F3E0 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x40 - ldrb r0, [r2] - cmp r0, 0x9 - bls _08152B5C - adds r0, r1, 0 - adds r0, 0x44 - ldrb r3, [r0] - adds r0, 0x4 - ldrb r5, [r0] - movs r0, 0xA - strb r0, [r2] - ldr r4, [r4] - mov r12, r4 - movs r0, 0x96 - lsls r0, 1 - add r0, r12 - ldr r0, [r0] - cmp r0, 0 - beq _08152B5C - adds r4, r3, 0 - cmp r4, r5 - bcs _08152B4C - mov r0, r12 - adds r0, 0x28 - ldrb r3, [r0] - lsls r1, r3, 4 - subs r1, r3 - lsls r1, 2 - ldr r6, _08152B54 @ =gUnknown_8471F50 - subs r0, 0x4 - ldrb r2, [r0] - subs r2, 0x1 - add r1, r12 - movs r0, 0xB - muls r3, r0 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 3 - subs r2, r0, r2 - ldr r0, _08152B58 @ =0x000031bf - adds r1, r0 -_08152B32: - adds r0, r4, r3 - adds r0, r2 - adds r0, r6 - ldrb r0, [r0] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0xA - bne _08152B5C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08152B32 -_08152B4C: - movs r0, 0x1 - b _08152B5E - .align 2, 0 -_08152B50: .4byte gUnknown_203F3E0 -_08152B54: .4byte gUnknown_8471F50 -_08152B58: .4byte 0x000031bf -_08152B5C: - movs r0, 0 -_08152B5E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8152AD8 - - thumb_func_start sub_8152B64 -sub_8152B64: @ 8152B64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08152BCC @ =gUnknown_8475550 - mov r8, r0 - ldr r0, _08152BD0 @ =gUnknown_203F3E0 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x90 - adds r0, r5 - mov r9, r0 - ldrb r7, [r0] - adds r0, r7, 0 - movs r1, 0x7 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - add r4, r8 - adds r0, r7, 0 - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldrb r4, [r4] - adds r0, r4 - lsls r0, 24 - lsls r5, 1 - adds r6, 0x86 - adds r6, r5 - ldrh r1, [r6] - lsrs r0, 24 - cmp r1, r0 - bcc _08152BBE - adds r0, r7, 0x1 - mov r1, r9 - strb r0, [r1] -_08152BBE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08152BCC: .4byte gUnknown_8475550 -_08152BD0: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152B64 - - thumb_func_start sub_8152BD4 -sub_8152BD4: @ 8152BD4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08152BF0 @ =gUnknown_84720FC - ldr r1, _08152BF4 @ =gUnknown_203F3E0 - ldr r1, [r1] - adds r1, 0x24 - ldrb r1, [r1] - subs r1, 0x1 - movs r2, 0xB - muls r1, r2 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08152BF0: .4byte gUnknown_84720FC -_08152BF4: .4byte gUnknown_203F3E0 - thumb_func_end sub_8152BD4 - - thumb_func_start sub_8152BF8 -sub_8152BF8: @ 8152BF8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, _08152C78 @ =gUnknown_203F3E0 - ldr r1, [r4] - adds r1, 0x24 - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08152C7C @ =gUnknown_84720AE - lsls r1, r0, 1 - adds r1, r0 - lsls r0, r2, 4 - subs r0, r2 - adds r1, r0 - adds r0, r1, r3 - ldrb r0, [r0] - mov r12, r0 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r7, [r0] - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - mov r8, r1 - movs r3, 0 - ldr r1, _08152C80 @ =gUnknown_8472133 - lsls r0, r2, 2 - adds r2, r0, r2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08152C60 - adds r6, r1, 0 -_08152C46: - adds r0, r3, r2 - adds r0, r6 - ldrb r0, [r0] - cmp r5, r0 - beq _08152C84 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08152C46 -_08152C60: - ldr r0, [r4] - adds r0, 0x90 - mov r1, r12 - adds r2, r0, r1 - adds r1, r0, r7 - ldrb r0, [r2] - ldrb r3, [r1] - cmp r0, r3 - bls _08152C8E - adds r1, r0, 0 - b _08152C90 - .align 2, 0 -_08152C78: .4byte gUnknown_203F3E0 -_08152C7C: .4byte gUnknown_84720AE -_08152C80: .4byte gUnknown_8472133 -_08152C84: - ldr r0, [r4] - adds r0, 0x90 - adds r0, r7 - ldrb r0, [r0] - b _08152CA2 -_08152C8E: - ldrb r1, [r1] -_08152C90: - ldr r0, [r4] - adds r0, 0x90 - mov r2, r8 - adds r4, r0, r2 - ldrb r0, [r4] - cmp r0, r1 - bls _08152CA0 - adds r1, r0, 0 -_08152CA0: - adds r0, r1, 0 -_08152CA2: - adds r1, r5, 0 - bl sub_8152CB8 - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8152BF8 - - thumb_func_start sub_8152CB8 -sub_8152CB8: @ 8152CB8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08152CE4 @ =gUnknown_203F3E0 - ldr r2, [r2] - adds r2, 0xE8 - adds r2, r1 - ldrb r4, [r2] - movs r1, 0x7 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bhi _08152D26 - lsls r0, 2 - ldr r1, _08152CE8 @ =_08152CEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08152CE4: .4byte gUnknown_203F3E0 -_08152CE8: .4byte _08152CEC - .align 2, 0 -_08152CEC: - .4byte _08152D26 - .4byte _08152D1E - .4byte _08152D2A - .4byte _08152D08 - .4byte _08152D0E - .4byte _08152D14 - .4byte _08152D1A -_08152D08: - cmp r4, 0 - beq _08152D1E - b _08152D26 -_08152D0E: - cmp r4, 0 - beq _08152D2A - b _08152D26 -_08152D14: - cmp r4, 0x2 - beq _08152D1E - b _08152D2A -_08152D1A: - cmp r4, 0 - bne _08152D22 -_08152D1E: - movs r0, 0x1 - b _08152D2C -_08152D22: - cmp r4, 0x1 - beq _08152D2A -_08152D26: - movs r0, 0 - b _08152D2C -_08152D2A: - movs r0, 0x2 -_08152D2C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8152CB8 - - thumb_func_start sub_8152D34 -sub_8152D34: @ 8152D34 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, _08152D60 @ =gUnknown_203F3E0 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x24 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r4, 0 - bge _08152D54 - b _08152F8E -_08152D54: - cmp r4, 0x2 - ble _08152D64 - cmp r4, 0x3 - beq _08152D94 - b _08152F8E - .align 2, 0 -_08152D60: .4byte gUnknown_203F3E0 -_08152D64: - ldr r1, _08152D8C @ =0x000031b4 - adds r0, r2, r1 - adds r0, r3 - ldrb r4, [r0] - lsls r4, 1 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r4, r0 - adds r0, r2, 0 - adds r0, 0x4A - adds r0, r4 - ldrh r0, [r0] - ldr r1, _08152D90 @ =0x00004e20 - bl sub_815378C - ldr r1, [r5] - adds r1, 0x4A - adds r1, r4 - b _08152F8C - .align 2, 0 -_08152D8C: .4byte 0x000031b4 -_08152D90: .4byte 0x00004e20 -_08152D94: - cmp r0, 0x3 - bne _08152D9A - b _08152EE0 -_08152D9A: - cmp r0, 0x3 - bgt _08152DA6 - cmp r0, 0x2 - bne _08152DA4 - b _08152F4A -_08152DA4: - b _08152F8E -_08152DA6: - cmp r0, 0x4 - beq _08152E56 - cmp r0, 0x5 - beq _08152DB0 - b _08152F8E -_08152DB0: - cmp r3, 0x9 - bls _08152DB6 - b _08152F8E -_08152DB6: - lsls r0, r3, 2 - ldr r1, _08152DC0 @ =_08152DC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08152DC0: .4byte _08152DC4 - .align 2, 0 -_08152DC4: - .4byte _08152DEC - .4byte _08152DFC - .4byte _08152E02 - .4byte _08152E12 - .4byte _08152E18 - .4byte _08152E28 - .4byte _08152E2E - .4byte _08152E3C - .4byte _08152E40 - .4byte _08152E50 -_08152DEC: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x74 - b _08152F88 -_08152DFC: - ldr r1, [r5] - adds r1, 0x74 - b _08152F88 -_08152E02: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x74 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x80 - b _08152F88 -_08152E12: - ldr r1, [r5] - adds r1, 0x80 - b _08152F88 -_08152E18: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x80 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08152F88 -_08152E28: - ldr r1, [r5] - adds r1, 0x50 - b _08152F88 -_08152E2E: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08152F86 -_08152E3C: - ldr r1, [r5] - b _08152F86 -_08152E40: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08152F88 -_08152E50: - ldr r1, [r5] - adds r1, 0x68 - b _08152F88 -_08152E56: - subs r0, r3, 0x1 - cmp r0, 0x7 - bls _08152E5E - b _08152F8E -_08152E5E: - lsls r0, 2 - ldr r1, _08152E68 @ =_08152E6C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08152E68: .4byte _08152E6C - .align 2, 0 -_08152E6C: - .4byte _08152E8C - .4byte _08152E9C - .4byte _08152EA2 - .4byte _08152EB2 - .4byte _08152EB8 - .4byte _08152EC6 - .4byte _08152ECA - .4byte _08152EDA -_08152E8C: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x74 - b _08152F88 -_08152E9C: - ldr r1, [r5] - adds r1, 0x74 - b _08152F88 -_08152EA2: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x74 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08152F88 -_08152EB2: - ldr r1, [r5] - adds r1, 0x50 - b _08152F88 -_08152EB8: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08152F86 -_08152EC6: - ldr r1, [r5] - b _08152F86 -_08152ECA: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08152F88 -_08152EDA: - ldr r1, [r5] - adds r1, 0x68 - b _08152F88 -_08152EE0: - subs r0, r3, 0x2 - cmp r0, 0x5 - bhi _08152F8E - lsls r0, 2 - ldr r1, _08152EF0 @ =_08152EF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08152EF0: .4byte _08152EF4 - .align 2, 0 -_08152EF4: - .4byte _08152F0C - .4byte _08152F1C - .4byte _08152F22 - .4byte _08152F32 - .4byte _08152F38 - .4byte _08152F46 -_08152F0C: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08152F88 -_08152F1C: - ldr r1, [r5] - adds r1, 0x68 - b _08152F88 -_08152F22: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08152F88 -_08152F32: - ldr r1, [r5] - adds r1, 0x50 - b _08152F88 -_08152F38: - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08152F86 -_08152F46: - ldr r1, [r5] - b _08152F86 -_08152F4A: - cmp r3, 0x4 - beq _08152F70 - cmp r3, 0x4 - bgt _08152F58 - cmp r3, 0x3 - beq _08152F62 - b _08152F8E -_08152F58: - cmp r3, 0x5 - beq _08152F76 - cmp r3, 0x6 - beq _08152F84 - b _08152F8E -_08152F62: - adds r1, r2, 0 - adds r1, 0x50 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0xC - b _08152F88 -_08152F70: - adds r1, r2, 0 - adds r1, 0x50 - b _08152F88 -_08152F76: - adds r1, r2, 0 - adds r1, 0x50 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0xC - b _08152F88 -_08152F84: - adds r1, r2, 0 -_08152F86: - adds r1, 0x5C -_08152F88: - ldrh r0, [r1] - adds r0, 0x1 -_08152F8C: - strh r0, [r1] -_08152F8E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8152D34 - - thumb_func_start sub_8152F94 -sub_8152F94: @ 8152F94 - push {r4,r5,lr} - adds r1, r0, 0 - ldr r4, _08152FD8 @ =gUnknown_203F3E0 - ldr r3, [r4] - adds r0, r3, 0 - adds r0, 0x24 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08152FFE - cmp r1, 0x1 - bne _08152FE0 - movs r5, 0x89 - lsls r5, 1 - adds r1, r3, r5 - ldrh r0, [r1] - adds r2, r0, 0x1 - strh r2, [r1] - movs r0, 0x8A - lsls r0, 1 - adds r1, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - ldrh r3, [r1] - cmp r0, r3 - bls _08152FC8 - strh r2, [r1] -_08152FC8: - ldr r0, [r4] - adds r2, r0, r5 - ldrh r0, [r2] - ldr r1, _08152FDC @ =0x0000270f - cmp r0, r1 - bls _08152FFE - strh r1, [r2] - b _08152FFE - .align 2, 0 -_08152FD8: .4byte gUnknown_203F3E0 -_08152FDC: .4byte 0x0000270f -_08152FE0: - movs r2, 0x89 - lsls r2, 1 - adds r0, r3, r2 - movs r5, 0x8A - lsls r5, 1 - adds r1, r3, r5 - ldrh r0, [r0] - ldrh r3, [r1] - cmp r0, r3 - bls _08152FF6 - strh r0, [r1] -_08152FF6: - ldr r0, [r4] - adds r0, r2 - movs r1, 0 - strh r1, [r0] -_08152FFE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8152F94 - - thumb_func_start sub_8153004 -sub_8153004: @ 8153004 - push {r4,r5,lr} - movs r3, 0 - ldr r2, _08153044 @ =gUnknown_203F3E0 - ldr r0, [r2] - adds r0, 0x24 - ldrb r0, [r0] - cmp r3, r0 - bcs _0815303C - adds r5, r2, 0 - movs r4, 0x8A - lsls r4, 1 -_0815301A: - ldr r2, [r5] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x54 - adds r1, r0 - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, 0x24 - ldrb r2, [r2] - cmp r3, r2 - bcc _0815301A -_0815303C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08153044: .4byte gUnknown_203F3E0 - thumb_func_end sub_8153004 - - thumb_func_start sub_8153048 -sub_8153048: @ 8153048 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r7, _08153138 @ =gUnknown_203F3E0 - movs r4, 0 - ldr r0, _0815313C @ =0x000031bf - mov r10, r0 -_0815305C: - movs r2, 0 - lsls r6, r5, 4 - lsls r1, r5, 1 - mov r8, r1 - lsls r0, r5, 3 - mov r12, r0 - adds r1, r5, 0x1 - mov r9, r1 - subs r0, r6, r5 - lsls r3, r0, 2 -_08153070: - ldr r0, [r7] - adds r1, r2, r3 - add r0, r10 - adds r0, r1 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _08153070 - ldr r0, [r7] - subs r1, r6, r5 - lsls r1, 2 - adds r0, r1 - ldr r2, _08153140 @ =0x000031cc - adds r0, r2 - strb r4, [r0] - ldr r0, [r7] - adds r0, r1 - ldr r1, _08153144 @ =0x000031d0 - adds r0, r1 - strb r4, [r0] - ldr r0, [r7] - adds r0, 0x90 - adds r0, r5 - strb r4, [r0] - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x86 - add r0, r8 - strh r4, [r0] - add r1, r12 - ldr r2, _08153148 @ =0x00003308 - adds r1, r2 - strb r4, [r1] - ldr r2, [r7] - ldr r1, _0815314C @ =0x0000330c - adds r0, r2, r1 - add r0, r12 - str r4, [r0] - mov r0, r8 - adds r1, r0, r5 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0x4A - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x4E - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x52 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x54 - adds r0, r1 - strh r4, [r0] - mov r1, r9 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0815305C - ldr r2, _08153138 @ =gUnknown_203F3E0 - ldr r0, [r2] - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - movs r2, 0 - strb r2, [r0] - ldr r1, _08153138 @ =gUnknown_203F3E0 - ldr r0, [r1] - movs r1, 0x89 - lsls r1, 1 - adds r3, r0, r1 - movs r1, 0 - strh r2, [r3] - adds r0, 0x40 - strb r1, [r0] - bl sub_81528D0 - bl sub_81527D0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08153138: .4byte gUnknown_203F3E0 -_0815313C: .4byte 0x000031bf -_08153140: .4byte 0x000031cc -_08153144: .4byte 0x000031d0 -_08153148: .4byte 0x00003308 -_0815314C: .4byte 0x0000330c - thumb_func_end sub_8153048 - - thumb_func_start sub_8153150 -sub_8153150: @ 8153150 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _08153168 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r0, [r0] - cmp r0, 0x4 - beq _0815316C - cmp r0, 0x5 - beq _08153170 - b _08153172 - .align 2, 0 -_08153168: .4byte gUnknown_203F3E0 -_0815316C: - movs r4, 0x1 - b _08153172 -_08153170: - movs r4, 0x2 -_08153172: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - lsls r1, r4, 2 - ldr r5, _081531B4 @ =gUnknown_203F3E0 - ldr r2, _081531B8 @ =gUnknown_8475558 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r2, [r0] -_08153196: - ldr r1, [r5] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r1, 0x52 - adds r1, r0 - strh r2, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x4 - bls _08153196 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081531B4: .4byte gUnknown_203F3E0 -_081531B8: .4byte gUnknown_8475558 - thumb_func_end sub_8153150 - - thumb_func_start sub_81531BC -sub_81531BC: @ 81531BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081531F4 @ =gUnknown_203F3E0 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0x4A - adds r0, r1 - ldrh r3, [r0] - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1 - ldrh r0, [r0] - adds r2, 0x4E - adds r2, r1 - adds r3, r0 - ldrh r2, [r2] - adds r0, r3, r2 - ldr r1, _081531F8 @ =0x0000270f - cmp r0, r1 - bls _081531EE - adds r0, r1, 0 -_081531EE: - pop {r1} - bx r1 - .align 2, 0 -_081531F4: .4byte gUnknown_203F3E0 -_081531F8: .4byte 0x0000270f - thumb_func_end sub_81531BC - - thumb_func_start sub_81531FC -sub_81531FC: @ 81531FC - push {r4-r6,lr} - ldr r5, _08153264 @ =gUnknown_203F3E0 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - bl sub_81531BC - ldr r1, _08153268 @ =0x0000270f - bl sub_815379C - adds r4, r0, 0 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - bl sub_8153424 - ldr r1, _0815326C @ =0x000f4236 - bl sub_815379C - adds r2, r0, 0 - ldr r3, _08153270 @ =gSaveBlock2Ptr - ldr r0, [r3] - movs r6, 0xB1 - lsls r6, 4 - adds r1, r0, r6 - ldr r0, [r1] - cmp r0, r2 - bcs _08153236 - str r2, [r1] -_08153236: - ldr r0, [r3] - ldr r2, _08153274 @ =0x00000b14 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, r4 - bcs _08153244 - strh r4, [r1] -_08153244: - ldr r0, [r3] - ldr r6, _08153278 @ =0x00000b16 - adds r2, r0, r6 - ldr r0, [r5] - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - cmp r0, r1 - bcs _0815325C - strh r1, [r2] -_0815325C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08153264: .4byte gUnknown_203F3E0 -_08153268: .4byte 0x0000270f -_0815326C: .4byte 0x000f4236 -_08153270: .4byte gSaveBlock2Ptr -_08153274: .4byte 0x00000b14 -_08153278: .4byte 0x00000b16 - thumb_func_end sub_81531FC - - thumb_func_start sub_815327C -sub_815327C: @ 815327C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _081532B4 @ =gUnknown_203F3E0 - ldr r0, [r1] - adds r0, 0x9B - ldrb r6, [r0] - movs r3, 0x3 - adds r5, r1, 0 - adds r4, r5, 0 -_08153290: - ldr r0, [r4] - adds r0, 0x98 - adds r2, r0, r3 - subs r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0 - bne _08153290 - ldr r0, [r5] - adds r0, 0x98 - strb r7, [r0] - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081532B4: .4byte gUnknown_203F3E0 - thumb_func_end sub_815327C - - thumb_func_start sub_81532B8 -sub_81532B8: @ 81532B8 - push {r4,lr} - ldr r4, _081532EC @ =gUnknown_203F3E0 - ldr r3, [r4] - adds r0, r3, 0 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, 0x88 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, 0 - bne _08153360 - ldr r0, _081532F0 @ =gMain - ldrh r2, [r0, 0x2E] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _081532F8 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _081532F4 @ =0x000031cc - adds r0, r1 - movs r1, 0x2 - b _0815332E - .align 2, 0 -_081532EC: .4byte gUnknown_203F3E0 -_081532F0: .4byte gMain -_081532F4: .4byte 0x000031cc -_081532F8: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08153314 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _08153310 @ =0x000031cc - adds r0, r1 - movs r1, 0x3 - b _0815332E - .align 2, 0 -_08153310: .4byte 0x000031cc -_08153314: - movs r0, 0x10 - ands r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0815334C - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _08153348 @ =0x000031cc - adds r0, r1 - movs r1, 0x1 -_0815332E: - strb r1, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x28 - adds r0, 0xB0 - ldrb r1, [r1] - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0xCD - bl PlaySE - b _08153364 - .align 2, 0 -_08153348: .4byte 0x000031cc -_0815334C: - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _0815335C @ =0x000031cc - adds r0, r1 - strb r2, [r0] - b _08153364 - .align 2, 0 -_0815335C: .4byte 0x000031cc -_08153360: - subs r0, 0x1 - strb r0, [r2] -_08153364: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81532B8 - - thumb_func_start sub_815336C -sub_815336C: @ 815336C - ldr r0, _08153388 @ =gUnknown_203F3E0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r2, [r0] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815338C @ =0x000031cc - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08153388: .4byte gUnknown_203F3E0 -_0815338C: .4byte 0x000031cc - thumb_func_end sub_815336C - - thumb_func_start sub_8153390 -sub_8153390: @ 8153390 - ldr r0, _081533B0 @ =gUnknown_203F3E0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, 0x52 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - bx lr - .align 2, 0 -_081533B0: .4byte gUnknown_203F3E0 - thumb_func_end sub_8153390 - - thumb_func_start sub_81533B4 -sub_81533B4: @ 81533B4 - ldr r0, _081533C0 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081533C0: .4byte gUnknown_203F3E0 - thumb_func_end sub_81533B4 - - thumb_func_start sub_81533C4 -sub_81533C4: @ 81533C4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081533E4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _081533F0 - ldr r0, _081533E8 @ =gUnknown_203F3E0 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 2 - ldr r2, _081533EC @ =0x000031a0 - adds r1, r2 - ldr r0, [r0] - b _081533F8 - .align 2, 0 -_081533E4: .4byte gReceivedRemoteLinkPlayers -_081533E8: .4byte gUnknown_203F3E0 -_081533EC: .4byte 0x000031a0 -_081533F0: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r1, _08153400 @ =gLinkPlayers + 8 -_081533F8: - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_08153400: .4byte gLinkPlayers + 8 - thumb_func_end sub_81533C4 - - thumb_func_start sub_8153404 -sub_8153404: @ 8153404 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r2, _08153420 @ =gUnknown_203F3E0 - ldr r3, [r2] - lsrs r1, 23 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r1, r2 - adds r3, 0x4A - adds r3, r1 - ldrh r0, [r3] - bx lr - .align 2, 0 -_08153420: .4byte gUnknown_203F3E0 - thumb_func_end sub_8153404 - - thumb_func_start sub_8153424 -sub_8153424: @ 8153424 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - movs r3, 0 - ldr r0, _08153490 @ =gUnknown_203F3E0 - mov r9, r0 - ldr r2, _08153494 @ =gUnknown_84755D8 - mov r10, r2 - ldr r2, [r0] - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - str r0, [sp] - adds r6, r2, 0 - adds r6, 0x4A - mov r12, r1 - mov r8, r10 -_08153452: - lsls r1, r3, 1 - ldr r7, [sp] - adds r0, r1, r7 - adds r0, r6, r0 - ldrh r2, [r0] - add r1, r8 - movs r7, 0 - ldrsh r0, [r1, r7] - muls r0, r2 - adds r5, r0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08153452 - mov r0, r9 - ldr r1, [r0] - mov r2, r12 - adds r0, r2, r4 - lsls r0, 2 - adds r1, 0x50 - adds r1, r0 - ldrh r1, [r1] - mov r3, r10 - movs r7, 0x6 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r5, r0 - bls _08153498 - subs r0, r5, r0 - b _0815349A - .align 2, 0 -_08153490: .4byte gUnknown_203F3E0 -_08153494: .4byte gUnknown_84755D8 -_08153498: - movs r0, 0 -_0815349A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8153424 - - thumb_func_start sub_81534AC -sub_81534AC: @ 81534AC - push {r4-r6,lr} - ldr r0, _081534E8 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r6, [r0] - movs r0, 0 - bl sub_8153424 - adds r5, r0, 0 - movs r4, 0x1 - cmp r4, r6 - bcs _081534DA -_081534C4: - adds r0, r4, 0 - bl sub_8153424 - cmp r0, r5 - bls _081534D0 - adds r5, r0, 0 -_081534D0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _081534C4 -_081534DA: - ldr r1, _081534EC @ =0x000f4236 - adds r0, r5, 0 - bl sub_815379C - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081534E8: .4byte gUnknown_203F3E0 -_081534EC: .4byte 0x000f4236 - thumb_func_end sub_81534AC - - thumb_func_start sub_81534F0 -sub_81534F0: @ 81534F0 - push {r4,r5,lr} - lsls r0, 24 - ldr r1, _08153530 @ =gUnknown_203F3E0 - ldr r2, [r1] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r5, [r1] - lsrs r4, r0, 23 - adds r2, 0x4A - adds r0, r2, r4 - ldrh r3, [r0] - movs r1, 0 - cmp r1, r5 - bcs _08153528 -_0815350C: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r3 - bls _0815351E - adds r3, r0, 0 -_0815351E: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r5 - bcc _0815350C -_08153528: - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08153530: .4byte gUnknown_203F3E0 - thumb_func_end sub_81534F0 - - thumb_func_start sub_8153534 -sub_8153534: @ 8153534 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0x1 - ldr r0, _081535AC @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _08153562 -_0815354C: - adds r0, r4, 0 - bl sub_8153424 - lsls r1, r4, 2 - add r1, sp - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0815354C -_08153562: - lsls r7, 2 - mov r12, r7 - cmp r6, 0 - beq _0815359C - subs r7, r5, 0x1 -_0815356C: - movs r6, 0 - movs r4, 0 - cmp r6, r7 - bge _08153598 - adds r5, r7, 0 -_08153576: - lsls r0, r4, 2 - mov r2, sp - adds r1, r2, r0 - adds r4, 0x1 - lsls r0, r4, 2 - adds r3, r2, r0 - ldr r0, [r1] - ldr r2, [r3] - cmp r0, r2 - bcs _08153590 - str r2, [r1] - str r0, [r3] - movs r6, 0x1 -_08153590: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r5 - blt _08153576 -_08153598: - cmp r6, 0 - bne _0815356C -_0815359C: - mov r0, sp - add r0, r12 - ldr r0, [r0] - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081535AC: .4byte gUnknown_203F3E0 - thumb_func_end sub_8153534 - - thumb_func_start sub_81535B0 -sub_81535B0: @ 81535B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - mov r8, r0 - mov r9, r0 - ldr r6, _08153690 @ =gUnknown_203F3E0 - ldr r0, [r6] - adds r0, 0x24 - ldrb r5, [r0] - bl sub_81534AC - bl sub_81534AC - cmp r0, 0 - bne _08153604 - movs r4, 0 - cmp r9, r5 - bcs _08153604 - adds r2, r6, 0 - ldr r1, _08153694 @ =0x00003308 - mov r12, r1 - movs r7, 0 - movs r6, 0x4 - ldr r3, _08153698 @ =0x0000330c -_081535E8: - ldr r0, [r2] - lsls r1, r4, 3 - adds r0, r1 - add r0, r12 - strb r6, [r0] - ldr r0, [r2] - adds r0, r3 - adds r0, r1 - str r7, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081535E8 -_08153604: - movs r4, 0 - cmp r4, r5 - bcs _0815362E -_0815360A: - adds r0, r4, 0 - bl sub_8153424 - ldr r1, _0815369C @ =0x000f4236 - bl sub_815379C - ldr r1, _08153690 @ =gUnknown_203F3E0 - ldr r1, [r1] - lsls r2, r4, 3 - ldr r3, _08153698 @ =0x0000330c - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0815360A -_0815362E: - mov r0, r10 - bl sub_8153534 - adds r6, r0, 0 - mov r3, r8 - movs r4, 0 - cmp r4, r5 - bcs _0815367A - ldr r7, _08153690 @ =gUnknown_203F3E0 - mov r10, r7 -_08153642: - mov r0, r10 - ldr r2, [r0] - lsls r1, r4, 3 - ldr r7, _08153698 @ =0x0000330c - adds r0, r2, r7 - adds r0, r1 - ldr r0, [r0] - cmp r6, r0 - bne _08153670 - adds r0, r2, r1 - ldr r1, _08153694 @ =0x00003308 - adds r0, r1 - strb r3, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08153670: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08153642 -_0815367A: - mov r10, r8 - cmp r9, r5 - bcc _0815362E - movs r0, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08153690: .4byte gUnknown_203F3E0 -_08153694: .4byte 0x00003308 -_08153698: .4byte 0x0000330c -_0815369C: .4byte 0x000f4236 - thumb_func_end sub_81535B0 - - thumb_func_start sub_81536A0 -sub_81536A0: @ 81536A0 - lsls r1, 24 - ldr r2, _081536B8 @ =gUnknown_203F3E0 - ldr r2, [r2] - lsrs r1, 21 - ldr r3, _081536BC @ =0x00003308 - adds r2, r3 - adds r2, r1 - ldr r1, [r2] - ldr r2, [r2, 0x4] - str r1, [r0] - str r2, [r0, 0x4] - bx lr - .align 2, 0 -_081536B8: .4byte gUnknown_203F3E0 -_081536BC: .4byte 0x00003308 - thumb_func_end sub_81536A0 - - thumb_func_start sub_81536C0 -sub_81536C0: @ 81536C0 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r6, r0, 24 - movs r7, 0 - ldr r0, _08153728 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - mov r0, sp - movs r1, 0 - movs r2, 0x14 - bl memset - movs r4, 0 - cmp r7, r5 - bcs _081536F8 -_081536E2: - adds r0, r4, 0 - bl sub_8153424 - lsls r1, r4, 2 - add r1, sp - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081536E2 -_081536F8: - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - movs r4, 0 -_08153700: - cmp r4, r6 - beq _08153714 - lsls r0, r4, 2 - add r0, sp - ldr r0, [r0] - cmp r1, r0 - bcs _08153714 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_08153714: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08153700 - adds r0, r7, 0 - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08153728: .4byte gUnknown_203F3E0 - thumb_func_end sub_81536C0 - - thumb_func_start sub_815372C -sub_815372C: @ 815372C - push {r4-r6,lr} - ldr r0, _08153754 @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x28 - ldrb r4, [r0] - bl sub_8153390 - lsls r0, 16 - lsrs r5, r0, 16 - adds r6, r5, 0 - adds r0, r4, 0 - bl sub_8153424 - adds r4, r0, 0 - bl sub_81534AC - cmp r4, r0 - beq _08153758 - movs r0, 0x3 - b _08153786 - .align 2, 0 -_08153754: .4byte gUnknown_203F3E0 -_08153758: - adds r0, r5, 0 - movs r1, 0x1 - bl CheckBagHasSpace - lsls r0, 24 - cmp r0, 0 - bne _0815376A - movs r0, 0x2 - b _08153786 -_0815376A: - adds r0, r6, 0 - movs r1, 0x1 - bl AddBagItem - adds r0, r6, 0 - movs r1, 0x1 - bl CheckBagHasSpace - lsls r0, 24 - cmp r0, 0 - beq _08153784 - movs r0, 0 - b _08153786 -_08153784: - movs r0, 0x1 -_08153786: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815372C - - thumb_func_start sub_815378C -sub_815378C: @ 815378C - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - cmp r2, r0 - bcs _08153798 - adds r0, r2, 0x1 -_08153798: - pop {r1} - bx r1 - thumb_func_end sub_815378C - - thumb_func_start sub_815379C -sub_815379C: @ 815379C - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - cmp r2, r0 - bcs _081537A8 - adds r0, r2, 0 -_081537A8: - pop {r1} - bx r1 - thumb_func_end sub_815379C - - thumb_func_start sub_81537AC -sub_81537AC: @ 81537AC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081537BC @ =gUnknown_203F3E0 - ldr r1, [r1] - adds r1, 0x34 - adds r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_081537BC: .4byte gUnknown_203F3E0 - thumb_func_end sub_81537AC - - thumb_func_start sub_81537C0 -sub_81537C0: @ 81537C0 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081537F0 @ =gSpecialVar_Result -_081537C6: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _081537F4 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081537F8 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0x55 - bne _081537F8 - movs r0, 0x1 - strh r0, [r6] - b _08153804 - .align 2, 0 -_081537F0: .4byte gSpecialVar_Result -_081537F4: .4byte gPlayerParty -_081537F8: - adds r5, 0x1 - cmp r5, 0x5 - ble _081537C6 - ldr r1, _0815380C @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] -_08153804: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815380C: .4byte gSpecialVar_Result - thumb_func_end sub_81537C0 - - thumb_func_start sub_8153810 -sub_8153810: @ 8153810 - push {r4,lr} - ldr r4, _0815382C @ =sub_8153830 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815382C: .4byte sub_8153830 - thumb_func_end sub_8153810 - - thumb_func_start sub_8153830 -sub_8153830: @ 8153830 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08153854 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0815387C - cmp r0, 0x1 - bgt _08153858 - cmp r0, 0 - beq _08153862 - b _081538CA - .align 2, 0 -_08153854: .4byte gTasks+0x8 -_08153858: - cmp r0, 0x2 - beq _08153888 - cmp r0, 0x3 - beq _081538B0 - b _081538CA -_08153862: - ldr r0, _08153878 @ =gUnknown_84755E0 - bl AddWindow - strh r0, [r4, 0x2] - lsls r0, 24 - lsrs r0, 24 - bl sub_81538D0 - ldrb r0, [r4, 0x2] - movs r1, 0x3 - b _0815389E - .align 2, 0 -_08153878: .4byte gUnknown_84755E0 -_0815387C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081538CA - b _081538A2 -_08153888: - ldr r0, _081538AC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081538CA - ldrb r0, [r4, 0x2] - bl rbox_fill_rectangle - ldrb r0, [r4, 0x2] - movs r1, 0x1 -_0815389E: - bl CopyWindowToVram -_081538A2: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081538CA - .align 2, 0 -_081538AC: .4byte gMain -_081538B0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081538CA - ldrb r0, [r4, 0x2] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_081538CA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8153830 - - thumb_func_start sub_81538D0 -sub_81538D0: @ 81538D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _081539CC @ =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, _081539D0 @ =0x00000b14 - adds r0, r1, r2 - ldrh r0, [r0] - str r0, [sp, 0xC] - subs r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - str r0, [sp, 0x10] - ldr r0, _081539D4 @ =0x00000b16 - adds r1, r0 - ldrh r0, [r1] - str r0, [sp, 0x14] - ldr r4, _081539D8 @ =0x0000021d - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0xD0 - bl sub_814FF2C - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0xD - bl DrawTextBorderOuter - adds r0, r7, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, _081539DC @ =gUnknown_84755E8 - ldr r2, [r0] - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized - movs r4, 0 - add r2, sp, 0x18 - mov r8, r2 - movs r0, 0xFF - mov r10, r0 - mov r9, r4 - mov r2, sp - adds r2, 0xC - str r2, [sp, 0x2C] -_08153946: - ldr r0, [sp, 0x2C] - ldm r0!, {r1} - str r0, [sp, 0x2C] - ldr r0, _081539E0 @ =gUnknown_84755F8 - adds r0, r4, r0 - ldrb r3, [r0] - mov r0, r8 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0x2 - mov r1, r8 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r5, r0, 0 - ldr r1, _081539DC @ =gUnknown_84755E8 - adds r6, r4, 0x1 - lsls r0, r6, 2 - adds r0, r1 - ldr r2, [r0] - ldr r0, _081539E4 @ =gUnknown_84755FC - lsls r4, 1 - adds r0, r4, r0 - ldrb r0, [r0] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized - movs r3, 0xE0 - subs r3, r5 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _081539E8 @ =gUnknown_8475602 - adds r4, r0 - ldrb r0, [r4] - str r0, [sp] - mov r2, r10 - str r2, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - mov r2, r8 - bl AddTextPrinterParameterized - adds r4, r6, 0 - cmp r4, 0x2 - ble _08153946 - adds r0, r7, 0 - bl PutWindowTilemap - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081539CC: .4byte gSaveBlock2Ptr -_081539D0: .4byte 0x00000b14 -_081539D4: .4byte 0x00000b16 -_081539D8: .4byte 0x0000021d -_081539DC: .4byte gUnknown_84755E8 -_081539E0: .4byte gUnknown_84755F8 -_081539E4: .4byte gUnknown_84755FC -_081539E8: .4byte gUnknown_8475602 - thumb_func_end sub_81538D0 - - thumb_func_start sub_81539EC -sub_81539EC: @ 81539EC - push {lr} - bl GetLinkPlayerCount - ldr r1, _08153A00 @ =gUnknown_203F3E0 - ldr r1, [r1] - adds r1, 0x24 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08153A00: .4byte gUnknown_203F3E0 - thumb_func_end sub_81539EC - - thumb_func_start sub_8153A04 -sub_8153A04: @ 8153A04 - push {r4-r7,lr} - ldr r0, _08153A8C @ =gUnknown_203F3E0 - ldr r0, [r0] - adds r0, 0x24 - ldrb r4, [r0] - cmp r4, 0x4 - bhi _08153A32 - ldr r5, _08153A90 @ =gUnknown_8475648 -_08153A14: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _08153A94 @ =gLinkPlayers + 8 - adds r0, r1 - lsls r1, r4, 2 - adds r1, r5 - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08153A14 -_08153A32: - ldr r0, _08153A8C @ =gUnknown_203F3E0 - ldr r1, [r0] - adds r1, 0x24 - movs r2, 0x5 - strb r2, [r1] - movs r1, 0 - mov r12, r0 -_08153A40: - movs r4, 0 - mov r2, r12 - ldr r0, [r2] - adds r0, 0x24 - adds r5, r1, 0x1 - ldrb r0, [r0] - cmp r4, r0 - bcs _08153A7E - ldr r7, _08153A8C @ =gUnknown_203F3E0 - lsls r3, r1, 1 - ldr r6, _08153A98 @ =gUnknown_8475608 -_08153A56: - ldr r2, [r7] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r3, r0 - adds r1, r2, 0 - adds r1, 0x4A - adds r1, r0 - lsls r0, r4, 3 - adds r0, r3, r0 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, 0x24 - ldrb r2, [r2] - cmp r4, r2 - bcc _08153A56 -_08153A7E: - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _08153A40 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08153A8C: .4byte gUnknown_203F3E0 -_08153A90: .4byte gUnknown_8475648 -_08153A94: .4byte gLinkPlayers + 8 -_08153A98: .4byte gUnknown_8475608 - thumb_func_end sub_8153A04 - - thumb_func_start sub_8153A9C -sub_8153A9C: @ 8153A9C - push {r4,r5,lr} - sub sp, 0x18 - movs r5, 0xC0 - lsls r5, 6 - adds r0, r5, 0 - bl AllocZeroed - adds r4, r0, 0 - ldr r0, _08153AF0 @ =gUnknown_8478D90 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, _08153AF4 @ =gUnknown_8478D98 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x10] - str r1, [sp, 0x14] - ldr r0, _08153AF8 @ =gUnknown_8477374 - adds r1, r4, 0 - bl LZ77UnCompWram - cmp r4, 0 - beq _08153ADC - str r4, [sp] - str r5, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r4, 0 - bl Free -_08153ADC: - add r0, sp, 0x8 - bl LoadSpritePalette - add r0, sp, 0x10 - bl LoadSpritePalette - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08153AF0: .4byte gUnknown_8478D90 -_08153AF4: .4byte gUnknown_8478D98 -_08153AF8: .4byte gUnknown_8477374 - thumb_func_end sub_8153A9C - - thumb_func_start sub_8153AFC -sub_8153AFC: @ 8153AFC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x30 - adds r6, r1, 0 - mov r8, r2 - adds r5, r3, 0 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - add r1, sp, 0x18 - movs r3, 0 - strh r3, [r1] - ldrb r2, [r0] - mov r0, sp - adds r0, 0x1A - strh r2, [r0] - ldr r0, _08153B88 @ =gUnknown_8478C98 - str r0, [sp, 0x1C] - ldr r0, _08153B8C @ =gUnknown_8478CE0 - str r0, [sp, 0x20] - str r3, [sp, 0x24] - ldr r0, _08153B90 @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x28] - ldr r0, _08153B94 @ =sub_8153B9C - str r0, [sp, 0x2C] - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r0, 0x4 - bl AllocZeroed - ldr r1, _08153B98 @ =gUnknown_203F3E4 - mov r2, r8 - lsls r4, r2, 2 - adds r4, r1 - str r0, [r4] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8154608 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x88 - movs r3, 0x3 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - movs r0, 0x1 - mov r1, r8 - bl sub_8153D48 - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08153B88: .4byte gUnknown_8478C98 -_08153B8C: .4byte gUnknown_8478CE0 -_08153B90: .4byte gDummySpriteAffineAnimTable -_08153B94: .4byte sub_8153B9C -_08153B98: .4byte gUnknown_203F3E4 - thumb_func_end sub_8153AFC - - thumb_func_start sub_8153B9C -sub_8153B9C: @ 8153B9C - push {lr} - movs r2, 0x2E - ldrsh r1, [r0, r2] - cmp r1, 0x1 - beq _08153BB0 - cmp r1, 0x1 - ble _08153BBA - cmp r1, 0x2 - beq _08153BB6 - b _08153BBA -_08153BB0: - bl sub_8153C30 - b _08153BBA -_08153BB6: - bl sub_8153CA0 -_08153BBA: - pop {r0} - bx r0 - thumb_func_end sub_8153B9C - - thumb_func_start sub_8153BC0 -sub_8153BC0: @ 8153BC0 - push {lr} - bl GetMultiplayerId - ldr r1, _08153BF0 @ =gUnknown_203F3E4 - lsls r0, 24 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08153BF4 @ =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - pop {r0} - bx r0 - .align 2, 0 -_08153BF0: .4byte gUnknown_203F3E4 -_08153BF4: .4byte gSprites - thumb_func_end sub_8153BC0 - - thumb_func_start sub_8153BF8 -sub_8153BF8: @ 8153BF8 - push {lr} - bl GetMultiplayerId - ldr r1, _08153C28 @ =gUnknown_203F3E4 - lsls r0, 24 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08153C2C @ =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - pop {r0} - bx r0 - .align 2, 0 -_08153C28: .4byte gUnknown_203F3E4 -_08153C2C: .4byte gSprites - thumb_func_end sub_8153BF8 - - thumb_func_start sub_8153C30 -sub_8153C30: @ 8153C30 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r2, r0, 16 - lsrs r0, 31 - adds r0, r2, r0 - asrs r1, r0, 1 - adds r0, r1, 0 - cmp r1, 0 - bge _08153C4C - adds r0, r1, 0x3 -_08153C4C: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r2, 0x2 - ble _08153C96 - cmp r0, 0x2 - bgt _08153C62 - cmp r0, 0x1 - bge _08153C66 -_08153C62: - movs r0, 0x1 - b _08153C68 -_08153C66: - movs r0, 0xFF -_08153C68: - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _08153C96 - movs r0, 0 - strh r0, [r4, 0x2E] - bl sub_81533B4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8154608 - strh r0, [r4, 0x20] -_08153C96: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8153C30 - - thumb_func_start sub_8153CA0 -sub_8153CA0: @ 8153CA0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xD - bl __divsi3 - lsls r0, 16 - asrs r1, r0, 16 - adds r0, r1, 0 - cmp r1, 0 - bge _08153CC0 - adds r0, r1, 0x3 -_08153CC0: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r1, 0xD - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _08153CE4 - cmp r4, 0 - beq _08153CE4 - movs r0, 0xCD - bl PlaySE -_08153CE4: - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x67 - ble _08153CF2 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r4, 0 -_08153CF2: - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_8153DA8 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8153CA0 - - thumb_func_start sub_8153D08 -sub_8153D08: @ 8153D08 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08153D3A - ldr r6, _08153D40 @ =gUnknown_203F3E4 -_08153D16: - lsls r0, r4, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08153D44 @ =gSprites - adds r0, r1 - cmp r0, 0 - beq _08153D30 - bl DestroySpriteAndFreeResources -_08153D30: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08153D16 -_08153D3A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08153D40: .4byte gUnknown_203F3E4 -_08153D44: .4byte gSprites - thumb_func_end sub_8153D08 - - thumb_func_start sub_8153D48 -sub_8153D48: @ 8153D48 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _08153D78 @ =gSprites - ldr r2, _08153D7C @ =gUnknown_203F3E4 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - ldrh r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - ldrb r3, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_08153D78: .4byte gSprites -_08153D7C: .4byte gUnknown_203F3E4 - thumb_func_end sub_8153D48 - - thumb_func_start sub_8153D80 -sub_8153D80: @ 8153D80 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0 - cmp r4, r5 - bcs _08153DA2 -_08153D90: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8153D48 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08153D90 -_08153DA2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8153D80 - - thumb_func_start sub_8153DA8 -sub_8153DA8: @ 8153DA8 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08153DCC @ =gUnknown_203F3E4 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _08153DD0 @ =gSprites - adds r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08153DCC: .4byte gUnknown_203F3E4 -_08153DD0: .4byte gSprites - thumb_func_end sub_8153DA8 - - thumb_func_start nullsub_97 -nullsub_97: @ 8153DD4 - bx lr - thumb_func_end nullsub_97 - - thumb_func_start sub_8153DD8 -sub_8153DD8: @ 8153DD8 - push {r4-r7,lr} - movs r4, 0 - ldr r0, _08153E20 @ =gSprites - mov r12, r0 - movs r6, 0 - ldr r5, _08153E24 @ =gUnknown_203F43C -_08153DE4: - ldr r3, [r5] - lsls r1, r4, 1 - adds r0, r3, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - lsls r0, r4, 4 - adds r0, 0x30 - strh r0, [r1, 0x20] - lsls r2, r4, 3 - movs r7, 0x8 - negs r7, r7 - adds r0, r7, 0 - subs r0, r2 - strh r0, [r1, 0x22] - adds r3, 0xC - adds r3, r4 - strb r6, [r3] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _08153DE4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08153E20: .4byte gSprites -_08153E24: .4byte gUnknown_203F43C - thumb_func_end sub_8153DD8 - - thumb_func_start sub_8153E28 -sub_8153E28: @ 8153E28 - push {r4-r6,lr} - sub sp, 0x28 - movs r4, 0xC0 - lsls r4, 1 - adds r0, r4, 0 - bl AllocZeroed - adds r6, r0, 0 - ldr r0, _08153EC8 @ =gUnknown_8478DA0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - ldr r0, _08153ECC @ =gUnknown_8477198 - adds r1, r6, 0 - bl LZ77UnCompWram - cmp r6, 0 - beq _08153EB8 - str r6, [sp, 0x18] - add r5, sp, 0x18 - movs r0, 0x80 - lsls r0, 9 - orrs r0, r4 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, _08153ED0 @ =gUnknown_8478DA8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, _08153ED4 @ =gUnknown_203F43C - movs r0, 0x40 - bl AllocZeroed - str r0, [r4] - adds r0, r5, 0 - bl LoadSpriteSheet - add r0, sp, 0x20 - bl LoadSpritePalette - movs r4, 0 -_08153E7E: - lsls r1, r4, 20 - movs r0, 0xC0 - lsls r0, 14 - adds r1, r0 - asrs r1, 16 - lsls r0, r4, 3 - movs r3, 0x8 - negs r3, r3 - adds r2, r3, 0 - subs r2, r0 - lsls r2, 16 - asrs r2, 16 - mov r0, sp - movs r3, 0 - bl CreateSprite - ldr r1, _08153ED4 @ =gUnknown_203F43C - ldr r1, [r1] - lsls r2, r4, 1 - adds r1, 0x2A - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _08153E7E -_08153EB8: - adds r0, r6, 0 - bl Free - add sp, 0x28 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08153EC8: .4byte gUnknown_8478DA0 -_08153ECC: .4byte gUnknown_8477198 -_08153ED0: .4byte gUnknown_8478DA8 -_08153ED4: .4byte gUnknown_203F43C - thumb_func_end sub_8153E28 - - thumb_func_start sub_8153ED8 -sub_8153ED8: @ 8153ED8 - push {r4,r5,lr} - movs r4, 0 -_08153EDC: - ldr r5, _08153F14 @ =gUnknown_203F43C - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08153F18 @ =gSprites - adds r0, r1 - cmp r0, 0 - beq _08153EFA - bl DestroySpriteAndFreeResources -_08153EFA: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _08153EDC - ldr r0, [r5] - bl Free - movs r0, 0 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08153F14: .4byte gUnknown_203F43C -_08153F18: .4byte gSprites - thumb_func_end sub_8153ED8 - - thumb_func_start sub_8153F1C -sub_8153F1C: @ 8153F1C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r3, 0 - movs r6, 0 - ldr r0, _08153FAC @ =gUnknown_203F43C - mov r9, r0 -_08153F2E: - mov r7, r9 - ldr r2, [r7] - lsls r5, r6, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r5 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08153FB0 @ =gSprites - adds r4, r0, r1 - adds r0, r2, 0 - adds r0, 0x16 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0] - adds r0, r2, 0 - adds r0, 0xC - adds r2, r0, r6 - ldrb r1, [r2] - cmp r1, 0 - beq _08153F64 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r0, 0x8 - beq _08153F9A -_08153F64: - movs r3, 0x1 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r0, 0x8 - bne _08153F8A - cmp r1, 0 - bne _08153F9A - strb r3, [r2] - mov r1, r9 - ldr r0, [r1] - adds r0, 0x16 - adds r0, r5 - ldr r1, _08153FB4 @ =0x0000fff0 - strh r1, [r0] - movs r0, 0x1E - str r3, [sp] - bl PlaySE - ldr r3, [sp] -_08153F8A: - mov r7, r9 - ldr r0, [r7] - adds r0, 0x16 - adds r0, r5 - ldrh r0, [r0] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_08153F9A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x9 - bls _08153F2E - cmp r3, 0 - bne _08153FB8 - movs r0, 0x1 - b _08153FBA - .align 2, 0 -_08153FAC: .4byte gUnknown_203F43C -_08153FB0: .4byte gSprites -_08153FB4: .4byte 0x0000fff0 -_08153FB8: - movs r0, 0 -_08153FBA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8153F1C - - thumb_func_start sub_8153FC8 -sub_8153FC8: @ 8153FC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _08154004 - movs r4, 0 -_08153FD4: - ldr r0, _08153FFC @ =gUnknown_203F43C - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08154000 @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _08153FD4 - b _081540CE - .align 2, 0 -_08153FFC: .4byte gUnknown_203F43C -_08154000: .4byte gSprites -_08154004: - movs r4, 0 - movs r0, 0xA - subs r0, r5 - cmp r4, r0 - bge _081540CA - ldr r6, _08154034 @ =gSprites -_08154010: - cmp r5, 0x6 - bls _08154078 - ldr r0, _08154038 @ =gUnknown_203F43C - ldr r2, [r0] - ldr r1, _0815403C @ =0x0000fffa - adds r0, r1, 0 - ldrh r1, [r2, 0x3E] - adds r0, r1 - adds r0, r5 - movs r1, 0 - strh r0, [r2, 0x3E] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bls _08154040 - strh r1, [r2, 0x3E] - b _08154092 - .align 2, 0 -_08154034: .4byte gSprites -_08154038: .4byte gUnknown_203F43C -_0815403C: .4byte 0x0000fffa -_08154040: - cmp r0, 0xA - bls _0815405E - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - b _08154092 -_0815405E: - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim - b _08154092 -_08154078: - ldr r0, _081540A4 @ =gUnknown_203F43C - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim -_08154092: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xA - subs r0, r5 - cmp r4, r0 - blt _08154010 - b _081540CA - .align 2, 0 -_081540A4: .4byte gUnknown_203F43C -_081540A8: - ldr r0, _081540D4 @ =gUnknown_203F43C - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081540D8 @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081540CA: - cmp r4, 0x9 - bls _081540A8 -_081540CE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081540D4: .4byte gUnknown_203F43C -_081540D8: .4byte gSprites - thumb_func_end sub_8153FC8 - - thumb_func_start sub_81540DC -sub_81540DC: @ 81540DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, _08154120 @ =gSprites - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r6, 0x5 - negs r6, r6 - ldr r5, _08154124 @ =gUnknown_203F43C -_081540F2: - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x9 - bls _081540F2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154120: .4byte gSprites -_08154124: .4byte gUnknown_203F43C - thumb_func_end sub_81540DC - - thumb_func_start sub_8154128 -sub_8154128: @ 8154128 - push {r4,r5,lr} - sub sp, 0x10 - movs r5, 0x90 - lsls r5, 3 - adds r0, r5, 0 - bl AllocZeroed - adds r4, r0, 0 - ldr r0, _08154174 @ =gUnknown_8478DCC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, _08154178 @ =gUnknown_8475968 - adds r1, r4, 0 - bl LZ77UnCompWram - cmp r4, 0 - beq _0815415E - str r4, [sp] - movs r0, 0x80 - lsls r0, 10 - orrs r0, r5 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet -_0815415E: - add r0, sp, 0x8 - bl LoadSpritePalette - adds r0, r4, 0 - bl Free - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08154174: .4byte gUnknown_8478DCC -_08154178: .4byte gUnknown_8475968 - thumb_func_end sub_8154128 - - thumb_func_start sub_815417C -sub_815417C: @ 815417C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x30 - mov r1, sp - ldr r0, _0815420C @ =gUnknown_8478DDC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - add r2, sp, 0x18 - adds r1, r2, 0 - ldr r0, _08154210 @ =gUnknown_8478DF4 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - movs r5, 0 - mov r9, r2 -_081541A4: - movs r0, 0x4 - bl AllocZeroed - ldr r1, _08154214 @ =gUnknown_203F400 - lsls r4, r5, 2 - adds r4, r1 - str r0, [r4] - lsls r0, r5, 3 - lsls r1, r5, 4 - adds r1, r0 - mov r0, sp - movs r2, 0x8 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81542EC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _081541A4 - movs r5, 0 - ldr r7, _08154218 @ =gUnknown_203F42C - ldr r4, _0815421C @ =gUnknown_8478DD4 - mov r8, r4 -_081541E4: - movs r0, 0x4 - bl AllocZeroed - lsls r1, r5, 2 - adds r4, r1, r7 - str r0, [r4] - adds r6, r1, 0 - cmp r5, 0x3 - bne _08154220 - mov r0, r8 - movs r2, 0x6 - ldrsh r1, [r0, r2] - mov r0, r9 - movs r2, 0x39 - movs r3, 0 - bl CreateSprite - ldr r1, [r7, 0xC] - b _08154234 - .align 2, 0 -_0815420C: .4byte gUnknown_8478DDC -_08154210: .4byte gUnknown_8478DF4 -_08154214: .4byte gUnknown_203F400 -_08154218: .4byte gUnknown_203F42C -_0815421C: .4byte gUnknown_8478DD4 -_08154220: - lsls r0, r5, 1 - add r0, r8 - movs r3, 0 - ldrsh r1, [r0, r3] - mov r0, r9 - movs r2, 0x3C - movs r3, 0 - bl CreateSprite - ldr r1, [r4] -_08154234: - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r6, r7 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08154270 @ =gSprites - adds r0, r1 - adds r1, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081541E4 - movs r0, 0x1 - bl sub_8154324 - add sp, 0x30 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154270: .4byte gSprites - thumb_func_end sub_815417C - - thumb_func_start sub_8154274 -sub_8154274: @ 8154274 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081542E0 @ =gUnknown_203F400 -_0815427A: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081542E4 @ =gSprites - adds r0, r1 - cmp r0, 0 - beq _08154294 - bl DestroySprite -_08154294: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _0815427A - movs r5, 0 - ldr r6, _081542E8 @ =gUnknown_203F42C -_081542AC: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081542E4 @ =gSprites - adds r0, r1 - cmp r0, 0 - beq _081542C6 - bl DestroySprite -_081542C6: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081542AC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081542E0: .4byte gUnknown_203F400 -_081542E4: .4byte gSprites -_081542E8: .4byte gUnknown_203F42C - thumb_func_end sub_8154274 - - thumb_func_start sub_81542EC -sub_81542EC: @ 81542EC - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0815431C @ =gSprites - ldr r2, _08154320 @ =gUnknown_203F400 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_0815431C: .4byte gSprites -_08154320: .4byte gUnknown_203F400 - thumb_func_end sub_81542EC - - thumb_func_start sub_8154324 -sub_8154324: @ 8154324 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, _08154368 @ =gSprites - ldr r6, _0815436C @ =gUnknown_203F42C - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_0815433A: - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0815433A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154368: .4byte gSprites -_0815436C: .4byte gUnknown_203F42C - thumb_func_end sub_8154324 - - thumb_func_start sub_8154370 -sub_8154370: @ 8154370 - lsls r0, 24 - lsls r1, 24 - ldr r3, _08154390 @ =gSprites - ldr r2, _08154394 @ =gUnknown_203F400 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - lsrs r1, 21 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_08154390: .4byte gSprites -_08154394: .4byte gUnknown_203F400 - thumb_func_end sub_8154370 - - thumb_func_start sub_8154398 -sub_8154398: @ 8154398 - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081543BC @ =gUnknown_203F400 - lsrs r0, 14 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _081543C0 @ =gSprites - adds r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_081543BC: .4byte gUnknown_203F400 -_081543C0: .4byte gSprites - thumb_func_end sub_8154398 - - thumb_func_start sub_81543C4 -sub_81543C4: @ 81543C4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081543E4 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, 0x32 - strh r1, [r2, 0x20] - movs r0, 0x32 - strh r0, [r2, 0x22] - bx lr - .align 2, 0 -_081543E4: .4byte gSprites - thumb_func_end sub_81543C4 - - thumb_func_start sub_81543E8 -sub_81543E8: @ 81543E8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r0, 0x42 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _0815442A - movs r3, 0 - ldr r7, _08154430 @ =gUnknown_8478E0C - ldr r6, _08154434 @ =gUnknown_203F3F8 - movs r5, 0 -_081543FE: - lsls r0, r3, 2 - adds r2, r0, r6 - ldr r1, [r2] - ldrh r0, [r1, 0x2] - adds r0, 0x1 - strh r0, [r1, 0x2] - adds r1, r3, r7 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1] - cmp r0, r1 - bls _08154420 - ldrh r0, [r4, 0x20] - subs r0, 0x1 - strh r0, [r4, 0x20] - ldr r0, [r2] - strh r5, [r0, 0x2] -_08154420: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _081543FE -_0815442A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154430: .4byte gUnknown_8478E0C -_08154434: .4byte gUnknown_203F3F8 - thumb_func_end sub_81543E8 - - thumb_func_start sub_8154438 -sub_8154438: @ 8154438 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - movs r4, 0x80 - lsls r4, 3 - adds r0, r4, 0 - bl AllocZeroed - adds r6, r0, 0 - ldr r0, _081544DC @ =gUnknown_8478E18 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - ldr r0, _081544E0 @ =gUnknown_847722C - adds r1, r6, 0 - bl LZ77UnCompWram - cmp r6, 0 - beq _081544C6 - str r6, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xA0 - lsls r1, 11 - orrs r1, r4 - str r1, [r0, 0x4] - mov r2, sp - ldr r1, _081544E4 @ =gUnknown_8478E20 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - bl LoadSpriteSheet - add r0, sp, 0x20 - bl LoadSpritePalette - movs r5, 0 - ldr r7, _081544E8 @ =gUnknown_8478E0E - adds r0, r7, 0x2 - mov r9, r0 - ldr r1, _081544EC @ =gUnknown_203F3F8 - mov r8, r1 -_08154492: - movs r0, 0x4 - bl AllocZeroed - lsls r2, r5, 2 - mov r3, r8 - adds r4, r2, r3 - str r0, [r4] - adds r0, r2, r7 - movs r3, 0 - ldrsh r1, [r0, r3] - add r2, r9 - movs r0, 0 - ldrsh r2, [r2, r0] - mov r0, sp - movs r3, 0x4 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08154492 -_081544C6: - adds r0, r6, 0 - bl Free - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081544DC: .4byte gUnknown_8478E18 -_081544E0: .4byte gUnknown_847722C -_081544E4: .4byte gUnknown_8478E20 -_081544E8: .4byte gUnknown_8478E0E -_081544EC: .4byte gUnknown_203F3F8 - thumb_func_end sub_8154438 - - thumb_func_start sub_81544F0 -sub_81544F0: @ 81544F0 - push {r4-r7,lr} - movs r3, 0 - ldr r0, _08154534 @ =gUnknown_203F3F8 - mov r12, r0 - ldr r4, _08154538 @ =gUnknown_8478E0E - adds r7, r4, 0x2 - ldr r6, _0815453C @ =gSprites - movs r5, 0x1 -_08154500: - lsls r2, r3, 2 - mov r1, r12 - adds r0, r2, r1 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r1, 0 - adds r0, 0x42 - strh r5, [r0] - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1, 0x20] - adds r2, r7 - ldrh r0, [r2] - strh r0, [r1, 0x22] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _08154500 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154534: .4byte gUnknown_203F3F8 -_08154538: .4byte gUnknown_8478E0E -_0815453C: .4byte gSprites - thumb_func_end sub_81544F0 - - thumb_func_start sub_8154540 -sub_8154540: @ 8154540 - push {r4,r5,lr} - movs r2, 0 - ldr r5, _08154570 @ =gUnknown_203F3F8 - ldr r4, _08154574 @ =gSprites - movs r3, 0 -_0815454A: - lsls r0, r2, 2 - adds r0, r5 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x42 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _0815454A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08154570: .4byte gUnknown_203F3F8 -_08154574: .4byte gSprites - thumb_func_end sub_8154540 - - thumb_func_start sub_8154578 -sub_8154578: @ 8154578 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081545B4 @ =gUnknown_203F3F8 -_0815457E: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081545B8 @ =gSprites - adds r0, r1 - cmp r0, 0 - beq _08154598 - bl DestroySprite -_08154598: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0815457E - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081545B4: .4byte gUnknown_203F3F8 -_081545B8: .4byte gSprites - thumb_func_end sub_8154578 - - thumb_func_start sub_81545BC -sub_81545BC: @ 81545BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, _08154600 @ =gSprites - ldr r6, _08154604 @ =gUnknown_203F3F8 - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_081545D2: - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _081545D2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154600: .4byte gSprites -_08154604: .4byte gUnknown_203F3F8 - thumb_func_end sub_81545BC - - thumb_func_start sub_8154608 -sub_8154608: @ 8154608 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - subs r0, r1, 0x1 - cmp r0, 0x4 - bhi _081546BA - lsls r0, 2 - ldr r1, _08154624 @ =_08154628 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08154624: .4byte _08154628 - .align 2, 0 -_08154628: - .4byte _081546A8 - .4byte _0815463C - .4byte _08154646 - .4byte _0815465A - .4byte _08154682 -_0815463C: - cmp r2, 0 - beq _08154672 - cmp r2, 0x1 - bne _081546BA - b _08154676 -_08154646: - cmp r2, 0x1 - beq _081546AC - cmp r2, 0x1 - bgt _08154654 - cmp r2, 0 - beq _081546A8 - b _081546BA -_08154654: - cmp r2, 0x2 - bne _081546BA - b _081546B8 -_0815465A: - cmp r2, 0x1 - beq _08154676 - cmp r2, 0x1 - bgt _08154668 - cmp r2, 0 - beq _08154672 - b _081546BA -_08154668: - cmp r2, 0x2 - beq _0815467A - cmp r2, 0x3 - beq _0815467E - b _081546BA -_08154672: - movs r3, 0xC - b _081546BA -_08154676: - movs r3, 0x12 - b _081546BA -_0815467A: - movs r3, 0x18 - b _081546BA -_0815467E: - movs r3, 0x6 - b _081546BA -_08154682: - cmp r2, 0x4 - bhi _081546BA - lsls r0, r2, 2 - ldr r1, _08154690 @ =_08154694 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08154690: .4byte _08154694 - .align 2, 0 -_08154694: - .4byte _081546A8 - .4byte _081546AC - .4byte _081546B0 - .4byte _081546B4 - .4byte _081546B8 -_081546A8: - movs r3, 0xF - b _081546BA -_081546AC: - movs r3, 0x15 - b _081546BA -_081546B0: - movs r3, 0x1B - b _081546BA -_081546B4: - movs r3, 0x3 - b _081546BA -_081546B8: - movs r3, 0x9 -_081546BA: - lsls r0, r3, 3 - pop {r1} - bx r1 - thumb_func_end sub_8154608 - - thumb_func_start sub_81546C0 -sub_81546C0: @ 81546C0 - push {r4,lr} - movs r4, 0 -_081546C4: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81542EC - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8154370 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _081546C4 - movs r0, 0 - bl sub_81540DC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81546C0 - - thumb_func_start sub_81546EC -sub_81546EC: @ 81546EC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8069788 - ldr r1, [r0] - movs r2, 0x90 - lsls r2, 1 - movs r0, 0 - movs r3, 0x1 - bl LoadBgTiles - adds r0, r4, 0 - bl sub_8069788 - ldr r0, [r0, 0x4] - movs r1, 0xA0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81546EC - - thumb_func_start sub_8154720 -sub_8154720: @ 8154720 - push {lr} - movs r0, 0 - movs r1, 0xA - movs r2, 0xB0 - bl sub_814FF2C - pop {r0} - bx r0 - thumb_func_end sub_8154720 - - thumb_func_start sub_8154730 -sub_8154730: @ 8154730 - ldr r3, _08154760 @ =gUnknown_203F440 - ldr r0, [r3] - movs r2, 0xC0 - lsls r2, 6 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r1, _08154764 @ =0x00003014 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x8 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_08154760: .4byte gUnknown_203F440 -_08154764: .4byte 0x00003014 - thumb_func_end sub_8154730 - - thumb_func_start sub_8154768 -sub_8154768: @ 8154768 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r6, 0xA - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x3 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x4 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x6 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x7 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x8 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r4, [r4, 0x2] - adds r3, r4 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x9 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8154768 - - thumb_func_start sub_8154868 -sub_8154868: @ 8154868 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r6, 0xB - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xA - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xB - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xC - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xD - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xF - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x10 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x11 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r4, [r4, 0x2] - adds r3, r4 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x12 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8154868 - - thumb_func_start sub_8154968 -sub_8154968: @ 8154968 - push {r4,lr} - ldr r4, _081549B0 @ =gUnknown_203F440 - str r0, [r4] - movs r2, 0xC0 - lsls r2, 6 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r3, _081549B4 @ =0x00003014 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _081549B8 @ =0x00003018 - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r3, 0xC - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r1, 0xC - adds r0, r1 - strb r2, [r0] - ldr r0, _081549BC @ =sub_8154A08 - movs r1, 0x3 - bl CreateTask - ldr r1, [r4] - ldr r2, _081549C0 @ =0x00003004 - adds r1, r2 - strb r0, [r1] - ldr r0, _081549C4 @ =sub_8154A2C - bl sub_8155E24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081549B0: .4byte gUnknown_203F440 -_081549B4: .4byte 0x00003014 -_081549B8: .4byte 0x00003018 -_081549BC: .4byte sub_8154A08 -_081549C0: .4byte 0x00003004 -_081549C4: .4byte sub_8154A2C - thumb_func_end sub_8154968 - - thumb_func_start sub_81549C8 -sub_81549C8: @ 81549C8 - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - thumb_func_end sub_81549C8 - - thumb_func_start sub_81549D4 -sub_81549D4: @ 81549D4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _08154A04 @ =gUnknown_8478EC4 - adds r7, r5, 0x4 -_081549E0: - lsls r1, r4, 3 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r6 - bne _081549F2 - adds r0, r1, r7 - ldr r0, [r0] - bl sub_8155E24 -_081549F2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081549E0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154A04: .4byte gUnknown_8478EC4 - thumb_func_end sub_81549D4 - - thumb_func_start sub_8154A08 -sub_8154A08: @ 8154A08 - push {lr} - ldr r0, _08154A28 @ =gUnknown_203F440 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _08154A22 - bl sub_8155E54 - bl _call_via_r0 -_08154A22: - pop {r0} - bx r0 - .align 2, 0 -_08154A28: .4byte gUnknown_203F440 - thumb_func_end sub_8154A08 - - thumb_func_start sub_8154A2C -sub_8154A2C: @ 8154A2C - push {lr} - ldr r0, _08154A48 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r2, _08154A4C @ =0x00003014 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08154B24 - lsls r0, 2 - ldr r1, _08154A50 @ =_08154A54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08154A48: .4byte gUnknown_203F440 -_08154A4C: .4byte 0x00003014 -_08154A50: .4byte _08154A54 - .align 2, 0 -_08154A54: - .4byte _08154A68 - .4byte _08154A6E - .4byte _08154A88 - .4byte _08154ACC - .4byte _08154AF8 -_08154A68: - bl sub_8155EA0 - b _08154B08 -_08154A6E: - bl sub_8155FE0 - cmp r0, 0x1 - bne _08154B2E - ldr r0, _08154A80 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r2, _08154A84 @ =0x00003014 - adds r1, r2 - b _08154B10 - .align 2, 0 -_08154A80: .4byte gUnknown_203F440 -_08154A84: .4byte 0x00003014 -_08154A88: - ldr r1, _08154AC0 @ =gUnknown_8478590 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, _08154AC4 @ =gUnknown_8478A4C - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, _08154AC8 @ =gUnknown_84787FC - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _08154B08 - .align 2, 0 -_08154AC0: .4byte gUnknown_8478590 -_08154AC4: .4byte gUnknown_8478A4C -_08154AC8: .4byte gUnknown_84787FC -_08154ACC: - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, _08154AF0 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r2, _08154AF4 @ =0x00003014 - adds r1, r2 - b _08154B10 - .align 2, 0 -_08154AF0: .4byte gUnknown_203F440 -_08154AF4: .4byte 0x00003014 -_08154AF8: - ldr r0, _08154B18 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl sub_81546EC - bl sub_8154720 -_08154B08: - ldr r0, _08154B1C @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _08154B20 @ =0x00003014 - adds r1, r0 -_08154B10: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08154B2E - .align 2, 0 -_08154B18: .4byte gSaveBlock2Ptr -_08154B1C: .4byte gUnknown_203F440 -_08154B20: .4byte 0x00003014 -_08154B24: - movs r2, 0xC0 - lsls r2, 6 - adds r1, r2 - movs r0, 0x1 - str r0, [r1] -_08154B2E: - pop {r0} - bx r0 - thumb_func_end sub_8154A2C - - thumb_func_start sub_8154B34 -sub_8154B34: @ 8154B34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, _08154B74 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r2, _08154B78 @ =0x00003014 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08154B7C - cmp r0, 0x1 - bne _08154B54 - b _08154CE0 -_08154B54: - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB4 - bhi _08154B62 - b _08154D82 -_08154B62: - bl sub_81533B4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - cmp r6, r7 - bcc _08154B72 - b _08154D5A -_08154B72: - b _08154D34 - .align 2, 0 -_08154B74: .4byte gUnknown_203F440 -_08154B78: .4byte 0x00003014 -_08154B7C: - bl sub_81533B4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08154CB8 @ =gUnknown_8478E80 - subs r0, r7, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - ldr r2, _08154CBC @ =0xffffff00 - ldr r0, [sp, 0xC] - ands r0, r2 - ldr r1, _08154CC0 @ =0x00ffffff - ands r0, r1 - movs r1, 0xE0 - lsls r1, 19 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r0, [sp, 0x10] - ands r0, r2 - movs r1, 0x2 - orrs r0, r1 - ldr r1, _08154CC4 @ =0xffff00ff - ands r0, r1 - movs r1, 0xD0 - lsls r1, 4 - orrs r0, r1 - ldr r1, _08154CC8 @ =0x0000ffff - ands r0, r1 - movs r1, 0x98 - lsls r1, 13 - orrs r0, r1 - str r0, [sp, 0x10] - movs r6, 0 - cmp r6, r7 - bcs _08154CAC - mov r3, sp - adds r3, 0xC - str r3, [sp, 0x18] - mov r10, r4 - ldr r0, _08154CCC @ =0x00003008 - mov r9, r0 -_08154BD0: - movs r1, 0 - mov r8, r1 - adds r0, r6, 0 - bl sub_81537AC - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_81533C4 - adds r1, r0, 0 - movs r0, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - movs r1, 0x38 - subs r1, r0 - lsrs r1, 1 - str r1, [sp, 0x14] - ldrb r0, [r5] - lsls r0, 8 - ldr r2, _08154CC4 @ =0xffff00ff - ldr r1, [sp, 0xC] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0xC] - ldrb r2, [r5, 0x1] - lsls r2, 16 - ldr r0, _08154CD0 @ =0xff00ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - add r0, sp, 0xC - bl AddWindow - mov r2, r10 - ldr r1, [r2] - add r1, r9 - adds r1, r6 - strb r0, [r1] - ldr r0, [r2] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r3, r10 - ldr r0, [r3] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08154C4E - movs r0, 0x2 - mov r8, r0 -_08154C4E: - adds r0, r4, 0 - bl sub_81533C4 - adds r4, r0, 0 - mov r1, r10 - ldr r0, [r1] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - ldr r3, [sp, 0x14] - lsls r2, r3, 24 - lsrs r2, 24 - mov r3, r8 - lsls r1, r3, 1 - add r1, r8 - ldr r3, _08154CD4 @ =gUnknown_8478E38 - adds r1, r3 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r3, 0x1 - bl box_print - mov r2, r10 - ldr r0, [r2] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r3, [sp, 0x18] - ldrh r0, [r3, 0x6] - adds r0, 0xE - strh r0, [r3, 0x6] - add r0, sp, 0xC - bl sub_8154868 - adds r5, 0x4 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08154BD0 -_08154CAC: - ldr r0, _08154CD8 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _08154CDC @ =0x00003014 - adds r1, r0 - b _08154D1E - .align 2, 0 -_08154CB8: .4byte gUnknown_8478E80 -_08154CBC: .4byte 0xffffff00 -_08154CC0: .4byte 0x00ffffff -_08154CC4: .4byte 0xffff00ff -_08154CC8: .4byte 0x0000ffff -_08154CCC: .4byte 0x00003008 -_08154CD0: .4byte 0xff00ffff -_08154CD4: .4byte gUnknown_8478E38 -_08154CD8: .4byte gUnknown_203F440 -_08154CDC: .4byte 0x00003014 -_08154CE0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08154D82 - bl sub_81533B4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - cmp r6, r7 - bcs _08154D10 -_08154CF8: - ldr r0, [r4] - ldr r1, _08154D28 @ =0x00003008 - adds r0, r1 - adds r0, r6 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08154CF8 -_08154D10: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _08154D2C @ =gUnknown_203F440 - ldr r1, [r0] - ldr r2, _08154D30 @ =0x00003014 - adds r1, r2 -_08154D1E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08154D82 - .align 2, 0 -_08154D28: .4byte 0x00003008 -_08154D2C: .4byte gUnknown_203F440 -_08154D30: .4byte 0x00003014 -_08154D34: - ldr r5, _08154D94 @ =gUnknown_203F440 - ldr r0, [r5] - ldr r4, _08154D98 @ =0x00003008 - adds r0, r4 - adds r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r4 - adds r0, r6 - ldrb r0, [r0] - bl RemoveWindow - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08154D34 -_08154D5A: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _08154D94 @ =gUnknown_203F440 - ldr r0, [r0] - movs r3, 0xC0 - lsls r3, 6 - adds r0, r3 - movs r1, 0x1 - str r1, [r0] -_08154D82: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154D94: .4byte gUnknown_203F440 -_08154D98: .4byte 0x00003008 - thumb_func_end sub_8154B34 - - thumb_func_start sub_8154D9C -sub_8154D9C: @ 8154D9C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x70 - lsls r0, 24 - movs r1, 0 - mov r8, r1 - movs r6, 0 - lsrs r7, r0, 24 - add r4, sp, 0x2C - ldr r1, _08154F64 @ =gUnknown_8478F14 - adds r0, r4, 0 - movs r2, 0x5 - bl memcpy - movs r5, 0 - cmp r5, r7 - bcs _08154DEC - add r4, sp, 0x34 -_08154DC6: - mov r0, sp - adds r0, r5 - adds r0, 0x2C - strb r5, [r0] - add r0, sp, 0x5C - adds r1, r5, 0 - bl sub_81536A0 - lsls r2, r5, 3 - adds r2, r4, r2 - ldr r0, [sp, 0x5C] - ldr r1, [sp, 0x60] - str r0, [r2] - str r1, [r2, 0x4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08154DC6 -_08154DEC: - bl sub_81534AC - cmp r0, 0 - beq _08154E22 -_08154DF4: - movs r5, 0 - cmp r5, r7 - bcs _08154E1C - add r2, sp, 0x34 - add r1, sp, 0x2C -_08154DFE: - lsls r0, r5, 3 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r8 - bne _08154E12 - adds r0, r1, r6 - strb r5, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08154E12: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08154DFE -_08154E1C: - mov r8, r6 - cmp r6, r7 - bcc _08154DF4 -_08154E22: - movs r5, 0 - ldr r4, _08154F68 @ =gUnknown_841CE1C - cmp r5, r7 - bcs _08154E48 - add r1, sp, 0x34 - add r6, sp, 0x38 - subs r3, r7, 0x1 -_08154E30: - lsls r2, r5, 3 - adds r0, r6, r2 - ldr r0, [r0] - cmp r0, 0 - bne _08154E3E - adds r0, r1, r2 - strb r3, [r0] -_08154E3E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08154E30 -_08154E48: - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r1, 0xD8 - subs r1, r0 - str r1, [sp, 0x64] - movs r5, 0 - cmp r5, r7 - bcs _08154F52 - mov r2, sp - adds r2, 0x34 - str r2, [sp, 0x68] - ldr r3, _08154F6C @ =0x00003009 - mov r10, r3 - adds r0, r1, 0 - subs r0, 0x23 - lsls r0, 24 - str r0, [sp, 0x6C] -_08154E70: - movs r4, 0 - mov r8, r4 - mov r0, sp - adds r0, r5 - adds r0, 0x2C - ldrb r0, [r0] - adds r4, r0, 0 - lsls r1, r4, 3 - add r0, sp, 0x38 - adds r0, r1 - ldr r0, [r0] - mov r9, r0 - ldr r2, _08154F70 @ =gUnknown_203F440 - ldr r0, [r2] - add r0, r10 - ldrb r0, [r0] - ldr r2, _08154F74 @ =gUnknown_8478E94 - ldr r3, [sp, 0x68] - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - ldr r3, _08154F78 @ =gUnknown_8478EBA - lsls r1, r5, 1 - adds r1, r3 - ldrb r6, [r1] - str r6, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - mov r3, r8 - str r3, [sp, 0x8] - movs r1, 0 - movs r3, 0x8 - bl AddTextPrinterParameterized - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08154EC8 - movs r0, 0x2 - mov r8, r0 -_08154EC8: - adds r0, r4, 0 - bl sub_81533C4 - adds r3, r0, 0 - ldr r1, _08154F70 @ =gUnknown_203F440 - ldr r0, [r1] - add r0, r10 - ldrb r0, [r0] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - ldr r2, _08154F7C @ =gUnknown_8478E38 - adds r1, r2 - str r1, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - str r3, [sp, 0x8] - movs r1, 0 - movs r2, 0x1C - adds r3, r6, 0 - bl box_print - add r0, sp, 0xC - mov r1, r9 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - movs r0, 0 - add r1, sp, 0xC - adds r2, r4, 0 - bl GetStringWidth - ldr r1, _08154F70 @ =gUnknown_203F440 - ldr r0, [r1] - add r0, r10 - ldrb r0, [r0] - str r6, [sp] - movs r2, 0xFF - str r2, [sp, 0x4] - movs r3, 0 - str r3, [sp, 0x8] - movs r1, 0 - add r2, sp, 0xC - ldr r4, [sp, 0x6C] - lsrs r3, r4, 24 - bl AddTextPrinterParameterized - ldr r1, _08154F70 @ =gUnknown_203F440 - ldr r0, [r1] - add r0, r10 - ldrb r0, [r0] - ldr r2, [sp, 0x64] - lsls r3, r2, 24 - str r6, [sp] - movs r4, 0xFF - str r4, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - ldr r2, _08154F68 @ =gUnknown_841CE1C - lsrs r3, 24 - bl AddTextPrinterParameterized - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08154E70 -_08154F52: - add sp, 0x70 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08154F64: .4byte gUnknown_8478F14 -_08154F68: .4byte gUnknown_841CE1C -_08154F6C: .4byte 0x00003009 -_08154F70: .4byte gUnknown_203F440 -_08154F74: .4byte gUnknown_8478E94 -_08154F78: .4byte gUnknown_8478EBA -_08154F7C: .4byte gUnknown_8478E38 - thumb_func_end sub_8154D9C - - thumb_func_start sub_8154F80 -sub_8154F80: @ 8154F80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8C - bl sub_81533B4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x84] - ldr r6, _08154FB0 @ =gUnknown_203F440 - ldr r1, [r6] - ldr r2, _08154FB4 @ =0x00003014 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xB - bls _08154FA6 - b _08155678 -_08154FA6: - lsls r0, 2 - ldr r1, _08154FB8 @ =_08154FBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08154FB0: .4byte gUnknown_203F440 -_08154FB4: .4byte 0x00003014 -_08154FB8: .4byte _08154FBC - .align 2, 0 -_08154FBC: - .4byte _08154FEC - .4byte _08155008 - .4byte _08155060 - .4byte _0815524C - .4byte _08155298 - .4byte _081552DC - .4byte _08155340 - .4byte _0815537C - .4byte _081553C0 - .4byte _08155480 - .4byte _081555D8 - .4byte _0815562C -_08154FEC: - bl sub_81535B0 - ldr r0, _08155000 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _08155004 @ =0x0000301c - adds r2, r1, r0 - movs r0, 0 - strh r0, [r2] - b _0815565A - .align 2, 0 -_08155000: .4byte gUnknown_203F440 -_08155004: .4byte 0x0000301c -_08155008: - ldr r6, _08155050 @ =gUnknown_8475674 - adds r0, r6, 0 - bl AddWindow - ldr r4, _08155054 @ =gUnknown_203F440 - ldr r1, [r4] - ldr r2, _08155058 @ =0x00003008 - mov r8, r2 - add r1, r8 - strb r0, [r1] - movs r0, 0x8 - adds r0, r6 - mov r9, r0 - bl AddWindow - ldr r1, [r4] - ldr r5, _0815505C @ =0x00003009 - adds r1, r5 - strb r0, [r1] - ldr r0, [r4] - add r0, r8 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, 0 - bl sub_8154868 - mov r0, r9 - bl sub_8154868 - b _08155658 - .align 2, 0 -_08155050: .4byte gUnknown_8475674 -_08155054: .4byte gUnknown_203F440 -_08155058: .4byte 0x00003008 -_0815505C: .4byte 0x00003009 -_08155060: - ldr r4, _081551A8 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r5, _081551AC @ =0x00003008 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _081551B0 @ =0x00003009 - mov r9, r1 - add r0, r9 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _081551B4 @ =gUnknown_841CD03 - mov r8, r2 - movs r2, 0x1 - negs r2, r2 - movs r0, 0 - mov r1, r8 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x2 - str r1, [sp] - movs r6, 0xFF - str r6, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r1, 0 - mov r2, r8 - bl AddTextPrinterParameterized - ldr r0, [r4] - add r0, r9 - ldrb r0, [r0] - ldr r2, _081551B8 @ =gUnknown_841CD25 - movs r1, 0x10 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0 - movs r3, 0x44 - bl AddTextPrinterParameterized - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x84] - cmp r9, r1 - bcc _081550DA - b _08155214 -_081550DA: - movs r5, 0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r9, r0 - bne _081550EA - movs r5, 0x2 -_081550EA: - mov r0, r9 - bl sub_81533C4 - adds r6, r0, 0 - ldr r0, _081551A8 @ =gUnknown_203F440 - ldr r0, [r0] - ldr r2, _081551B0 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - ldr r1, _081551BC @ =gUnknown_8478EB0 - mov r2, r9 - lsls r4, r2, 1 - adds r4, r1 - ldrb r3, [r4] - lsls r1, r5, 1 - adds r1, r5 - ldr r2, _081551C0 @ =gUnknown_8478E38 - adds r1, r2 - str r1, [sp] - movs r5, 0x1 - negs r5, r5 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0 - movs r2, 0x2 - bl box_print - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x88] - mov r8, r4 - ldr r1, _081551C4 @ =gUnknown_8478EA8 - mov r10, r1 -_0815512E: - mov r0, r9 - adds r1, r7, 0 - bl sub_8153404 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _081551C8 @ =0x0000270f - bl sub_815379C - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl sub_81534F0 - ldr r1, _081551C8 @ =0x0000270f - bl sub_815379C - lsls r0, 16 - lsrs r6, r0, 16 - add r0, sp, 0xC - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - movs r0, 0 - add r1, sp, 0xC - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r5, r0, 0 - cmp r6, r4 - bne _081551D0 - cmp r6, 0 - beq _081551D0 - ldr r0, _081551A8 @ =gUnknown_203F440 - ldr r0, [r0] - ldr r2, _081551B0 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - lsls r1, r7, 1 - add r1, r10 - ldrb r2, [r1] - subs r2, r5 - lsls r2, 24 - lsrs r2, 24 - mov r1, r8 - ldrb r3, [r1] - ldr r1, _081551CC @ =gUnknown_8478E3B - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - add r1, sp, 0xC - str r1, [sp, 0x8] - movs r1, 0 - bl box_print - b _081551FA - .align 2, 0 -_081551A8: .4byte gUnknown_203F440 -_081551AC: .4byte 0x00003008 -_081551B0: .4byte 0x00003009 -_081551B4: .4byte gUnknown_841CD03 -_081551B8: .4byte gUnknown_841CD25 -_081551BC: .4byte gUnknown_8478EB0 -_081551C0: .4byte gUnknown_8478E38 -_081551C4: .4byte gUnknown_8478EA8 -_081551C8: .4byte 0x0000270f -_081551CC: .4byte gUnknown_8478E3B -_081551D0: - ldr r0, _0815523C @ =gUnknown_203F440 - ldr r0, [r0] - ldr r2, _08155240 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - lsls r1, r7, 1 - add r1, r10 - ldrb r3, [r1] - subs r3, r5 - lsls r3, 24 - lsrs r3, 24 - mov r2, r8 - ldrb r1, [r2] - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - add r2, sp, 0xC - bl AddTextPrinterParameterized -_081551FA: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _0815512E - ldr r1, [sp, 0x88] - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 - ldr r2, [sp, 0x84] - cmp r9, r2 - bcs _08155214 - b _081550DA -_08155214: - ldr r4, _0815523C @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _08155244 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08155240 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _08155248 @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_0815523C: .4byte gUnknown_203F440 -_08155240: .4byte 0x00003009 -_08155244: .4byte 0x00003008 -_08155248: .4byte 0x00003014 -_0815524C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08155270 - ldr r4, _08155288 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _0815528C @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _08155290 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08155270: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl sub_8154324 - ldr r0, _08155288 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _08155294 @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_08155288: .4byte gUnknown_203F440 -_0815528C: .4byte 0x00003008 -_08155290: .4byte 0x00003009 -_08155294: .4byte 0x00003014 -_08155298: - ldr r4, _081552D0 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _081552D4 @ =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _081552B0 - b _081556C8 -_081552B0: - ldr r0, _081552D8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081552BE - b _081556C8 -_081552BE: - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8154324 - b _08155658 - .align 2, 0 -_081552D0: .4byte gUnknown_203F440 -_081552D4: .4byte 0x0000301c -_081552D8: .4byte gMain -_081552DC: - ldr r4, _08155330 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r5, _08155334 @ =0x00003008 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08155338 @ =0x00003009 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r6, _0815533C @ =gUnknown_841CD43 - movs r2, 0x1 - negs r2, r2 - movs r0, 0 - adds r1, r6, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r2, r6, 0 - bl AddTextPrinterParameterized - b _08155658 - .align 2, 0 -_08155330: .4byte gUnknown_203F440 -_08155334: .4byte 0x00003008 -_08155338: .4byte 0x00003009 -_0815533C: .4byte gUnknown_841CD43 -_08155340: - ldr r0, [sp, 0x84] - bl sub_8154D9C - ldr r4, _0815536C @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _08155370 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08155374 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _08155378 @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_0815536C: .4byte gUnknown_203F440 -_08155370: .4byte 0x00003008 -_08155374: .4byte 0x00003009 -_08155378: .4byte 0x00003014 -_0815537C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081553A0 - ldr r4, _081553B0 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _081553B4 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _081553B8 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_081553A0: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _081553B0 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _081553BC @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_081553B0: .4byte gUnknown_203F440 -_081553B4: .4byte 0x00003008 -_081553B8: .4byte 0x00003009 -_081553BC: .4byte 0x00003014 -_081553C0: - ldr r4, _08155408 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _0815540C @ =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _081553D8 - b _081556C8 -_081553D8: - ldr r0, _08155410 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081553E6 - b _081556C8 -_081553E6: - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE - bl sub_81534AC - ldr r1, _08155414 @ =0x00000bb7 - cmp r0, r1 - bhi _0815541C - ldr r0, [r4] - ldr r2, _08155418 @ =0x00003014 - adds r0, r2 - movs r1, 0x7F - strb r1, [r0] - b _0815542C - .align 2, 0 -_08155408: .4byte gUnknown_203F440 -_0815540C: .4byte 0x0000301c -_08155410: .4byte gMain -_08155414: .4byte 0x00000bb7 -_08155418: .4byte 0x00003014 -_0815541C: - bl StopMapMusic - ldr r1, [r4] - ldr r0, _08155470 @ =0x00003014 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0815542C: - movs r0, 0x1E - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl FillBgTilemapBufferRect_Palette0 - ldr r5, _08155474 @ =gUnknown_203F440 - ldr r0, [r5] - ldr r4, _08155478 @ =0x00003009 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r6, _0815547C @ =gUnknown_8475684 - adds r0, r6, 0 - bl AddWindow - ldr r1, [r5] - adds r1, r4 - strb r0, [r1] - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, 0 - bl sub_8154868 - b _081556C8 - .align 2, 0 -_08155470: .4byte 0x00003014 -_08155474: .4byte gUnknown_203F440 -_08155478: .4byte 0x00003009 -_0815547C: .4byte gUnknown_8475684 -_08155480: - ldr r0, _08155558 @ =0x00000101 - bl PlayNewMapMusic - ldr r4, _0815555C @ =gUnknown_203F440 - ldr r0, [r4] - ldr r6, _08155560 @ =0x00003008 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08155564 @ =0x00003009 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r5, _08155568 @ =gUnknown_841CD58 - movs r2, 0x1 - negs r2, r2 - movs r0, 0 - adds r1, r5, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r6 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r2, 0x2 - mov r9, r2 - str r2, [sp] - movs r1, 0xFF - mov r8, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0 - adds r2, r5, 0 - bl AddTextPrinterParameterized - bl UnkTextUtil_Reset - bl sub_8153390 - lsls r0, 16 - lsrs r0, 16 - add r5, sp, 0x70 - adds r1, r5, 0 - bl CopyItemName - movs r0, 0 - adds r1, r5, 0 - bl UnkTextUtil_SetPtrI - ldr r1, _0815556C @ =gUnknown_841CD7A - add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders - ldr r0, [r4] - add r0, r10 - ldrb r0, [r0] - mov r2, r9 - str r2, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0 - add r2, sp, 0xC - movs r3, 0x8 - bl AddTextPrinterParameterized - bl sub_815372C - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - cmp r4, 0 - beq _0815559E - cmp r4, 0x3 - beq _0815559E - bl UnkTextUtil_Reset - bl sub_8153390 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl CopyItemName - movs r0, 0 - adds r1, r5, 0 - bl UnkTextUtil_SetPtrI - cmp r4, 0x2 - bne _08155574 - ldr r1, _08155570 @ =gUnknown_841CD9F - add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders - b _08155580 - .align 2, 0 -_08155558: .4byte 0x00000101 -_0815555C: .4byte gUnknown_203F440 -_08155560: .4byte 0x00003008 -_08155564: .4byte 0x00003009 -_08155568: .4byte gUnknown_841CD58 -_0815556C: .4byte gUnknown_841CD7A -_08155570: .4byte gUnknown_841CD9F -_08155574: - cmp r6, 0x1 - bne _08155580 - ldr r1, _081555C4 @ =gUnknown_841CDBA - add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders -_08155580: - ldr r0, _081555C8 @ =gUnknown_203F440 - ldr r0, [r0] - ldr r2, _081555CC @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x28 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - add r2, sp, 0xC - movs r3, 0x8 - bl AddTextPrinterParameterized -_0815559E: - ldr r4, _081555C8 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _081555D0 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _081555CC @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _081555D4 @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_081555C4: .4byte gUnknown_841CDBA -_081555C8: .4byte gUnknown_203F440 -_081555CC: .4byte 0x00003009 -_081555D0: .4byte 0x00003008 -_081555D4: .4byte 0x00003014 -_081555D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081555FC - ldr r4, _08155618 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _0815561C @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _08155620 @ =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_081555FC: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _08155624 @ =0x00000137 - movs r1, 0x14 - movs r2, 0xA - bl FadeOutAndFadeInNewMapMusic - ldr r0, _08155618 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _08155628 @ =0x00003014 - adds r1, r0 - b _0815565E - .align 2, 0 -_08155618: .4byte gUnknown_203F440 -_0815561C: .4byte 0x00003008 -_08155620: .4byte 0x00003009 -_08155624: .4byte 0x00000137 -_08155628: .4byte 0x00003014 -_0815562C: - ldr r4, _08155668 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _0815566C @ =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bls _081556C8 - ldr r0, _08155670 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081556C8 - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE -_08155658: - ldr r1, [r4] -_0815565A: - ldr r2, _08155674 @ =0x00003014 - adds r1, r2 -_0815565E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081556C8 - .align 2, 0 -_08155668: .4byte gUnknown_203F440 -_0815566C: .4byte 0x0000301c -_08155670: .4byte gMain -_08155674: .4byte 0x00003014 -_08155678: - ldr r5, _081556D8 @ =0x00003008 - adds r0, r1, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - ldr r4, _081556DC @ =0x00003009 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_081556C8: - add sp, 0x8C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081556D8: .4byte 0x00003008 -_081556DC: .4byte 0x00003009 - thumb_func_end sub_8154F80 - - thumb_func_start sub_81556E0 -sub_81556E0: @ 81556E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r1, _08155708 @ =gUnknown_203F440 - ldr r2, [r1] - ldr r0, _0815570C @ =0x00003014 - mov r9, r0 - adds r0, r2, r0 - ldrb r7, [r0] - mov r10, r1 - cmp r7, 0x1 - beq _0815579C - cmp r7, 0x1 - bgt _08155710 - cmp r7, 0 - beq _0815571E - b _081559EC - .align 2, 0 -_08155708: .4byte gUnknown_203F440 -_0815570C: .4byte 0x00003014 -_08155710: - cmp r7, 0x2 - bne _08155716 - b _08155868 -_08155716: - cmp r7, 0x3 - bne _0815571C - b _081558A4 -_0815571C: - b _081559EC -_0815571E: - ldr r5, _08155788 @ =gUnknown_847568C - adds r0, r5, 0 - bl AddWindow - mov r2, r10 - ldr r1, [r2] - ldr r3, _0815578C @ =0x00003008 - adds r1, r3 - strb r0, [r1] - movs r0, 0x8 - adds r0, r5 - mov r8, r0 - bl AddWindow - mov r2, r10 - ldr r1, [r2] - ldr r4, _08155790 @ =0x00003009 - adds r1, r4 - strb r0, [r1] - ldr r0, [r2] - ldr r3, _0815578C @ =0x00003008 - adds r0, r3 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r1, r10 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r5, 0 - bl sub_8154868 - mov r0, r8 - bl sub_8154768 - mov r2, r10 - ldr r1, [r2] - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - ldr r3, _08155794 @ =0x00003020 - adds r0, r3 - strb r7, [r0] - ldr r0, [r2] - ldr r1, _08155798 @ =0x00003024 - adds r0, r1 - strb r7, [r0] - b _08155A58 - .align 2, 0 -_08155788: .4byte gUnknown_847568C -_0815578C: .4byte 0x00003008 -_08155790: .4byte 0x00003009 -_08155794: .4byte 0x00003020 -_08155798: .4byte 0x00003024 -_0815579C: - ldr r3, _0815584C @ =0x00003008 - mov r8, r3 - adds r0, r2, r3 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - mov r1, r10 - ldr r0, [r1] - ldr r7, _08155850 @ =0x00003009 - adds r0, r7 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - mov r2, r10 - ldr r0, [r2] - add r0, r8 - ldrb r0, [r0] - ldr r2, _08155854 @ =gUnknown_841CDD7 - movs r1, 0x6 - str r1, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - mov r3, r10 - ldr r0, [r3] - adds r0, r7 - ldrb r0, [r0] - ldr r2, _08155858 @ =gUnknown_8417938 - movs r1, 0x2 - mov r9, r1 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r2, r10 - ldr r0, [r2] - adds r0, r7 - ldrb r0, [r0] - ldr r2, _0815585C @ =gUnknown_841793C - movs r1, 0x10 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r3, r10 - ldr r0, [r3] - adds r0, r7 - ldrb r0, [r0] - ldr r2, _08155860 @ =gFameCheckerText_ListMenuCursor - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - mov r2, r10 - ldr r0, [r2] - add r0, r8 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - mov r3, r10 - ldr r0, [r3] - adds r0, r7 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - mov r0, r10 - ldr r1, [r0] - ldr r2, _08155864 @ =0x00003014 - adds r1, r2 - b _081559DA - .align 2, 0 -_0815584C: .4byte 0x00003008 -_08155850: .4byte 0x00003009 -_08155854: .4byte gUnknown_841CDD7 -_08155858: .4byte gUnknown_8417938 -_0815585C: .4byte gUnknown_841793C -_08155860: .4byte gFameCheckerText_ListMenuCursor -_08155864: .4byte 0x00003014 -_08155868: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0815588E - mov r3, r10 - ldr r0, [r3] - ldr r1, _0815589C @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - mov r2, r10 - ldr r0, [r2] - ldr r3, _081558A0 @ =0x00003009 - adds r0, r3 - ldrb r0, [r0] - bl PutWindowTilemap -_0815588E: - movs r0, 0 - bl CopyBgTilemapBufferToVram - mov r0, r10 - ldr r1, [r0] - add r1, r9 - b _081559DA - .align 2, 0 -_0815589C: .4byte 0x00003008 -_081558A0: .4byte 0x00003009 -_081558A4: - ldr r1, _0815590C @ =0x00003020 - adds r0, r2, r1 - ldrb r7, [r0] - cmp r7, 0 - bne _081558B0 - movs r7, 0x1 -_081558B0: - ldr r4, _08155910 @ =0x00003009 - adds r0, r2, r4 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - mov r2, r10 - ldr r0, [r2] - adds r0, r4 - ldrb r0, [r0] - ldr r2, _08155914 @ =gUnknown_8417938 - movs r3, 0x2 - mov r8, r3 - str r3, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r2, r10 - ldr r0, [r2] - adds r0, r4 - ldrb r0, [r0] - ldr r2, _08155918 @ =gUnknown_841793C - movs r6, 0x10 - str r6, [sp] - movs r3, 0xFF - str r3, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r1, r10 - ldr r0, [r1] - adds r0, r4 - ldrb r1, [r0] - ldr r2, _0815591C @ =gFameCheckerText_ListMenuCursor - cmp r7, 0x1 - bne _08155920 - mov r3, r8 - str r3, [sp] - b _08155922 - .align 2, 0 -_0815590C: .4byte 0x00003020 -_08155910: .4byte 0x00003009 -_08155914: .4byte gUnknown_8417938 -_08155918: .4byte gUnknown_841793C -_0815591C: .4byte gFameCheckerText_ListMenuCursor -_08155920: - str r6, [sp] -_08155922: - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r4, _08155970 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _08155974 @ =0x00003009 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08155978 @ =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08155984 - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - ldr r2, _0815597C @ =0x00003020 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08155966 - strb r5, [r1] -_08155966: - ldr r1, [r4] - ldr r3, _08155980 @ =0x00003014 - adds r1, r3 - b _081559DA - .align 2, 0 -_08155970: .4byte gUnknown_203F440 -_08155974: .4byte 0x00003009 -_08155978: .4byte gMain -_0815597C: .4byte 0x00003020 -_08155980: .4byte 0x00003014 -_08155984: - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _081559BC - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - ldr r2, _081559A8 @ =0x00003020 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x1 - beq _081559B2 - cmp r0, 0x1 - bgt _081559AC - cmp r0, 0 - beq _081559B2 - b _08155A58 - .align 2, 0 -_081559A8: .4byte 0x00003020 -_081559AC: - cmp r0, 0x2 - beq _081559B8 - b _08155A58 -_081559B2: - movs r0, 0x2 - strb r0, [r1] - b _08155A58 -_081559B8: - strb r5, [r1] - b _08155A58 -_081559BC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08155A58 - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - ldr r3, _081559E4 @ =0x00003020 - adds r0, r3 - movs r1, 0x2 - strb r1, [r0] - ldr r1, [r4] - ldr r0, _081559E8 @ =0x00003014 - adds r1, r0 -_081559DA: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08155A58 - .align 2, 0 -_081559E4: .4byte 0x00003020 -_081559E8: .4byte 0x00003014 -_081559EC: - mov r1, r10 - ldr r0, [r1] - ldr r2, _08155A68 @ =0x00003020 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r3, _08155A6C @ =0x00003024 - adds r0, r3 - strb r1, [r0] - mov r1, r10 - ldr r0, [r1] - ldr r5, _08155A70 @ =0x00003008 - adds r0, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r2, r10 - ldr r0, [r2] - ldr r4, _08155A74 @ =0x00003009 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r3, r10 - ldr r0, [r3] - adds r0, r5 - ldrb r0, [r0] - bl RemoveWindow - mov r1, r10 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - mov r2, r10 - ldr r0, [r2] - movs r3, 0xC0 - lsls r3, 6 - adds r0, r3 - movs r1, 0x1 - str r1, [r0] -_08155A58: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08155A68: .4byte 0x00003020 -_08155A6C: .4byte 0x00003024 -_08155A70: .4byte 0x00003008 -_08155A74: .4byte 0x00003009 - thumb_func_end sub_81556E0 - - thumb_func_start sub_8155A78 -sub_8155A78: @ 8155A78 - push {r4-r6,lr} - sub sp, 0x10 - ldr r5, _08155A94 @ =gUnknown_203F440 - ldr r0, [r5] - ldr r6, _08155A98 @ =0x00003014 - adds r0, r6 - ldrb r4, [r0] - cmp r4, 0x1 - beq _08155AD0 - cmp r4, 0x1 - bgt _08155A9C - cmp r4, 0 - beq _08155AA6 - b _08155B18 - .align 2, 0 -_08155A94: .4byte gUnknown_203F440 -_08155A98: .4byte 0x00003014 -_08155A9C: - cmp r4, 0x2 - beq _08155AE4 - cmp r4, 0x3 - beq _08155AFC - b _08155B18 -_08155AA6: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldr r2, _08155ACC @ =gUnknown_8419F54 - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParametrized - b _08155B08 - .align 2, 0 -_08155ACC: .4byte gUnknown_8419F54 -_08155AD0: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, _08155AE0 @ =0x00003014 - adds r1, r0 - b _08155B0C - .align 2, 0 -_08155AE0: .4byte 0x00003014 -_08155AE4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08155B40 - ldr r0, _08155AF8 @ =sub_80DA634 - movs r1, 0 - bl CreateTask - b _08155B08 - .align 2, 0 -_08155AF8: .4byte sub_80DA634 -_08155AFC: - ldr r0, _08155B14 @ =sub_80DA634 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08155B40 -_08155B08: - ldr r1, [r5] - adds r1, r6 -_08155B0C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08155B40 - .align 2, 0 -_08155B14: .4byte sub_80DA634 -_08155B18: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _08155B48 @ =gUnknown_203F440 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_08155B40: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08155B48: .4byte gUnknown_203F440 - thumb_func_end sub_8155A78 - - thumb_func_start sub_8155B4C -sub_8155B4C: @ 8155B4C - push {r4-r6,lr} - sub sp, 0xC - ldr r1, _08155B6C @ =gUnknown_203F440 - ldr r2, [r1] - ldr r6, _08155B70 @ =0x00003014 - adds r0, r2, r6 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x1 - beq _08155BA4 - cmp r0, 0x1 - bgt _08155B74 - cmp r0, 0 - beq _08155B7A - b _08155C18 - .align 2, 0 -_08155B6C: .4byte gUnknown_203F440 -_08155B70: .4byte 0x00003014 -_08155B74: - cmp r0, 0x2 - beq _08155BEC - b _08155C18 -_08155B7A: - ldr r4, _08155B9C @ =gUnknown_84756A4 - adds r0, r4, 0 - bl AddWindow - ldr r1, [r5] - ldr r2, _08155BA0 @ =0x00003008 - adds r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, 0 - bl sub_8154868 - b _08155C08 - .align 2, 0 -_08155B9C: .4byte gUnknown_84756A4 -_08155BA0: .4byte 0x00003008 -_08155BA4: - ldr r4, _08155BE0 @ =0x00003008 - adds r0, r2, r4 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - ldr r2, _08155BE4 @ =gUnknown_841CE24 - movs r1, 0x6 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, _08155BE8 @ =0x00003014 - adds r1, r0 - b _08155C0C - .align 2, 0 -_08155BE0: .4byte 0x00003008 -_08155BE4: .4byte gUnknown_841CE24 -_08155BE8: .4byte 0x00003014 -_08155BEC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08155C02 - ldr r0, [r5] - ldr r1, _08155C14 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_08155C02: - movs r0, 0 - bl CopyBgTilemapBufferToVram -_08155C08: - ldr r1, [r5] - adds r1, r6 -_08155C0C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08155C24 - .align 2, 0 -_08155C14: .4byte 0x00003008 -_08155C18: - ldr r0, [r5] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_08155C24: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8155B4C - - thumb_func_start sub_8155C2C -sub_8155C2C: @ 8155C2C - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, _08155C78 @ =gUnknown_203F440 - ldr r0, [r5] - ldr r4, _08155C7C @ =0x00003008 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r5] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08155C78: .4byte gUnknown_203F440 -_08155C7C: .4byte 0x00003008 - thumb_func_end sub_8155C2C - - thumb_func_start sub_8155C80 -sub_8155C80: @ 8155C80 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, _08155CA0 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r7, _08155CA4 @ =0x00003014 - adds r2, r1, r7 - ldrb r5, [r2] - adds r6, r0, 0 - cmp r5, 0x1 - beq _08155D08 - cmp r5, 0x1 - bgt _08155CA8 - cmp r5, 0 - beq _08155CB2 - b _08155D9C - .align 2, 0 -_08155CA0: .4byte gUnknown_203F440 -_08155CA4: .4byte 0x00003014 -_08155CA8: - cmp r5, 0x2 - beq _08155D50 - cmp r5, 0x3 - beq _08155D7C - b _08155D9C -_08155CB2: - ldr r4, _08155CF8 @ =gUnknown_847569C - adds r0, r4, 0 - bl AddWindow - ldr r1, [r6] - ldr r2, _08155CFC @ =0x00003008 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, 0 - bl sub_8154868 - ldr r1, [r6] - adds r1, r7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - ldr r2, _08155D00 @ =0x0000301c - adds r1, r0, r2 - movs r2, 0 - strh r5, [r1] - ldr r1, _08155D04 @ =0x00003020 - adds r0, r1 - strb r2, [r0] - ldr r0, [r6] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - b _08155DE2 - .align 2, 0 -_08155CF8: .4byte gUnknown_847569C -_08155CFC: .4byte 0x00003008 -_08155D00: .4byte 0x0000301c -_08155D04: .4byte 0x00003020 -_08155D08: - ldr r4, _08155D44 @ =0x00003008 - adds r0, r1, r4 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - ldr r2, _08155D48 @ =gUnknown_841CDEB - movs r1, 0x6 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r6] - ldr r2, _08155D4C @ =0x00003014 - adds r1, r2 - b _08155D70 - .align 2, 0 -_08155D44: .4byte 0x00003008 -_08155D48: .4byte gUnknown_841CDEB -_08155D4C: .4byte 0x00003014 -_08155D50: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08155D66 - ldr r0, [r6] - ldr r1, _08155D78 @ =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_08155D66: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r6] - adds r1, r7 -_08155D70: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08155DE2 - .align 2, 0 -_08155D78: .4byte 0x00003008 -_08155D7C: - ldr r0, _08155D98 @ =0x0000301c - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x77 - bls _08155DE2 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _08155DE2 - .align 2, 0 -_08155D98: .4byte 0x0000301c -_08155D9C: - ldr r0, [r6] - ldr r1, _08155DEC @ =0x00003024 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - ldr r0, [r6] - ldr r4, _08155DF0 @ =0x00003008 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r2, 0xC0 - lsls r2, 6 - adds r0, r2 - movs r1, 0x1 - str r1, [r0] -_08155DE2: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08155DEC: .4byte 0x00003024 -_08155DF0: .4byte 0x00003008 - thumb_func_end sub_8155C80 - - thumb_func_start unused_0 -unused_0: @ 8155DF4 - push {r4,lr} - ldr r4, _08155E18 @ =gUnknown_203F440 - ldr r0, [r4] - ldr r1, _08155E1C @ =0x00003004 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08155E18: .4byte gUnknown_203F440 -_08155E1C: .4byte 0x00003004 - thumb_func_end unused_0 - - thumb_func_start nullsub_98 -nullsub_98: @ 8155E20 - bx lr - thumb_func_end nullsub_98 - - thumb_func_start sub_8155E24 -sub_8155E24: @ 8155E24 - push {r4,lr} - ldr r2, _08155E48 @ =gUnknown_203F440 - ldr r1, [r2] - ldr r3, _08155E4C @ =0x00003014 - adds r1, r3 - movs r3, 0 - strb r3, [r1] - ldr r1, [r2] - movs r4, 0xC0 - lsls r4, 6 - adds r2, r1, r4 - str r3, [r2] - ldr r2, _08155E50 @ =0x00003028 - adds r1, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08155E48: .4byte gUnknown_203F440 -_08155E4C: .4byte 0x00003014 -_08155E50: .4byte 0x00003028 - thumb_func_end sub_8155E24 - - thumb_func_start sub_8155E54 -sub_8155E54: @ 8155E54 - ldr r0, _08155E60 @ =gUnknown_203F440 - ldr r0, [r0] - ldr r1, _08155E64 @ =0x00003028 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_08155E60: .4byte gUnknown_203F440 -_08155E64: .4byte 0x00003028 - thumb_func_end sub_8155E54 - - thumb_func_start sub_8155E68 -sub_8155E68: @ 8155E68 - push {lr} - ldr r0, _08155E80 @ =gUnknown_203F440 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x1 - beq _08155E84 - movs r0, 0x1 - b _08155E86 - .align 2, 0 -_08155E80: .4byte gUnknown_203F440 -_08155E84: - movs r0, 0 -_08155E86: - pop {r1} - bx r1 - thumb_func_end sub_8155E68 - - thumb_func_start sub_8155E8C -sub_8155E8C: @ 8155E8C - ldr r0, _08155E98 @ =gUnknown_203F440 - ldr r0, [r0] - ldr r1, _08155E9C @ =0x00003024 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08155E98: .4byte gUnknown_203F440 -_08155E9C: .4byte 0x00003024 - thumb_func_end sub_8155E8C - - thumb_func_start sub_8155EA0 -sub_8155EA0: @ 8155EA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _08155FD0 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08155FD4 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08155EC6: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _08155EC6 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _08155FD0 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08155FD8 @ =gUnknown_847565C - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl InitStandardTextBoxWindows - bl ResetBg0 - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r4, _08155FDC @ =gUnknown_203F440 - ldr r1, [r4] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 6 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08155FD0: .4byte 0x040000d4 -_08155FD4: .4byte 0x81000800 -_08155FD8: .4byte gUnknown_847565C -_08155FDC: .4byte gUnknown_203F440 - thumb_func_end sub_8155EA0 - - thumb_func_start sub_8155FE0 -sub_8155FE0: @ 8155FE0 - push {lr} - sub sp, 0x4 - ldr r0, _08155FFC @ =gUnknown_203F440 - ldr r0, [r0] - ldr r2, _08156000 @ =0x00003018 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bhi _0815607A - lsls r0, 2 - ldr r1, _08156004 @ =_08156008 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08155FFC: .4byte gUnknown_203F440 -_08156000: .4byte 0x00003018 -_08156004: .4byte _08156008 - .align 2, 0 -_08156008: - .4byte _08156020 - .4byte _08156030 - .4byte _08156036 - .4byte _08156044 - .4byte _0815605C - .4byte _0815606A -_08156020: - ldr r0, _0815602C @ =gUnknown_84758A8 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - b _08156082 - .align 2, 0 -_0815602C: .4byte gUnknown_84758A8 -_08156030: - bl reset_temp_tile_data_buffers - b _08156082 -_08156036: - ldr r1, _08156040 @ =gUnknown_8475B3C - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - b _0815604C - .align 2, 0 -_08156040: .4byte gUnknown_8475B3C -_08156044: - ldr r1, _08156058 @ =gUnknown_84763CC - movs r0, 0 - str r0, [sp] - movs r0, 0x1 -_0815604C: - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08156082 - .align 2, 0 -_08156058: .4byte gUnknown_84763CC -_0815605C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08156082 - b _08156090 -_0815606A: - movs r0, 0x3 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - b _08156082 -_0815607A: - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _08156092 -_08156082: - ldr r0, _08156098 @ =gUnknown_203F440 - ldr r1, [r0] - ldr r0, _0815609C @ =0x00003018 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08156090: - movs r0, 0 -_08156092: - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_08156098: .4byte gUnknown_203F440 -_0815609C: .4byte 0x00003018 - thumb_func_end sub_8155FE0 - - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index bf5ce7fd2..482ea5d88 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -247,7 +247,7 @@ SECTIONS { src/menews_jisan.o(.text); src/seagallop.o(.text); asm/pokemon_jump.o(.text); - asm/dodrio_berry_picking.o(.text); + asm/pokemon_jump_2.o(.text); asm/berry_crush.o(.text); asm/berry_crush_2.o(.text); asm/berry_crush_3.o(.text); @@ -255,7 +255,7 @@ SECTIONS { asm/braille_text.o(.text); asm/text_window.o(.text); src/quest_log_8150454.o(.text); - asm/unk_81507FC.o(.text); + asm/dodrio_berry_picking.o(.text); asm/battle_controller_pokedude.o(.text); asm/unk_8159F40.o(.text); asm/teachy_tv.o(.text); |