.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8026988 sub_8026988: @ 8026988 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gUnknown_02022C98 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 _08026A7A ldr r0, =gUnknown_082F449C mov r9, r0 _080269A8: ldr r0, =gUnknown_02022C98 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, =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 _080269FC adds r0, r6, 0 movs r1, 0 bl sub_8028BF8 b _08026A04 .pool _080269FC: adds r0, r6, 0 movs r1, 0x1 bl sub_8028BF8 _08026A04: adds r0, r7, 0 adds r0, 0x1F adds r5, r0, r4 ldrb r0, [r5] cmp r0, 0x9 bls _08026A30 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_8028CA4 ldrb r1, [r5] lsls r1, 25 movs r0, 0xFF lsls r0, 24 adds r1, r0 b _08026A52 _08026A30: adds r0, r7, 0 adds r0, 0x14 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0x3 bne _08026A5C movs r0, 0x7 strb r0, [r5] adds r0, r6, 0 movs r1, 0x6 bl sub_8028CA4 ldrb r1, [r5] lsls r1, 25 movs r2, 0xFF lsls r2, 24 adds r1, r2 _08026A52: lsrs r1, 24 adds r0, r6, 0 bl sub_8028C7C b _08026A70 _08026A5C: ldrb r1, [r3] adds r0, r6, 0 bl sub_8028CA4 ldrb r1, [r5] lsls r1, 25 lsrs r1, 24 adds r0, r6, 0 bl sub_8028C7C _08026A70: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r8 bcc _080269A8 _08026A7A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8026988 thumb_func_start sub_8026A88 sub_8026A88: @ 8026A88 push {r4-r6,lr} ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _08026ABA adds r6, r1, 0 _08026A9A: lsls r0, r4, 4 subs r0, r4 lsls r0, 2 ldr r1, [r6] adds r0, r1 ldr r1, =0x000031cc adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_80286B4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026A9A _08026ABA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8026A88 thumb_func_start sub_8026AC8 sub_8026AC8: @ 8026AC8 push {r4,r5,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _08026AEA _08026AD8: adds r0, r4, 0 movs r1, 0x4 bl sub_80286B4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026AD8 _08026AEA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8026AC8 thumb_func_start sub_8026AF4 sub_8026AF4: @ 8026AF4 push {lr} bl sub_8026988 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _08026B10 bl sub_8026AC8 b _08026B14 .pool _08026B10: bl sub_8026A88 _08026B14: ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] bl sub_80288D4 pop {r0} bx r0 .pool thumb_func_end sub_8026AF4 thumb_func_start sub_8026B28 sub_8026B28: @ 8026B28 push {lr} bl sub_8026988 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _08026B44 bl sub_8026AC8 b _08026B48 .pool _08026B44: bl sub_8026A88 _08026B48: ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] bl sub_80288D4 pop {r0} bx r0 .pool thumb_func_end sub_8026B28 thumb_func_start sub_8026B5C sub_8026B5C: @ 8026B5C push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x4 bhi _08026BB4 lsls r0, 2 ldr r1, =_08026B78 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026B78: .4byte _08026B8C .4byte _08026B94 .4byte _08026B9C .4byte _08026BA4 .4byte _08026BAC _08026B8C: movs r0, 0x4 strb r0, [r3] movs r0, 0x7 b _08026BB2 _08026B94: movs r0, 0x3 strb r0, [r3] movs r0, 0x8 b _08026BB2 _08026B9C: movs r0, 0x2 strb r0, [r3] movs r0, 0x9 b _08026BB2 _08026BA4: movs r0, 0x1 strb r0, [r3] movs r0, 0xA b _08026BB2 _08026BAC: movs r0, 0 strb r0, [r3] movs r0, 0xB _08026BB2: strb r0, [r2] _08026BB4: pop {r0} bx r0 thumb_func_end sub_8026B5C thumb_func_start sub_8026BB8 sub_8026BB8: @ 8026BB8 push {r4-r6,lr} ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r5, [r0] movs r4, 0x1 cmp r4, r5 bcs _08026C1E adds r6, r1, 0 _08026BCA: ldr r0, [r6] movs r1, 0xAC lsls r1, 1 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08026BEC adds r0, r4, 0 bl sub_8027DFC ldr r1, [r6] movs r2, 0xAC lsls r2, 1 adds r1, r2 adds r1, r4 strb r0, [r1] _08026BEC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026BCA cmp r4, r5 bcs _08026C1E ldr r0, =gUnknown_02022C98 ldr r0, [r0] movs r2, 0xAC lsls r2, 1 adds r1, r0, r2 _08026C04: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _08026C14 movs r0, 0 b _08026C20 .pool _08026C14: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026C04 _08026C1E: movs r0, 0x1 _08026C20: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026BB8 thumb_func_start sub_8026C28 sub_8026C28: @ 8026C28 push {r4,lr} movs r1, 0 ldr r4, =gUnknown_02022C98 movs r3, 0xAC lsls r3, 1 movs r2, 0 _08026C34: 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 _08026C34 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8026C28 thumb_func_start sub_8026C50 sub_8026C50: @ 8026C50 push {r4,lr} ldr r3, =gUnknown_02022C98 ldr r1, [r3] adds r2, r1, 0 adds r2, 0x40 ldrb r0, [r2] cmp r0, 0x9 bls _08026C88 movs r4, 0x90 lsls r4, 1 adds r0, r1, r4 ldr r0, [r0] cmp r0, 0 bne _08026C88 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 _08026C88 movs r0, 0x1 b _08026C8A .pool _08026C88: movs r0, 0 _08026C8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026C50 thumb_func_start sub_8026C90 sub_8026C90: @ 8026C90 push {r4-r6,lr} ldr r4, =gUnknown_02022C98 ldr r1, [r4] adds r2, r1, 0 adds r2, 0x40 ldrb r0, [r2] cmp r0, 0x9 bls _08026D14 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 _08026D14 adds r4, r3, 0 cmp r4, r5 bcs _08026D04 mov r0, r12 adds r0, 0x28 ldrb r3, [r0] lsls r1, r3, 4 subs r1, r3 lsls r1, 2 ldr r6, =gUnknown_082F449C 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, =0x000031bf adds r1, r0 _08026CEA: adds r0, r4, r3 adds r0, r2 adds r0, r6 ldrb r0, [r0] adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0xA bne _08026D14 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026CEA _08026D04: movs r0, 0x1 b _08026D16 .pool _08026D14: movs r0, 0 _08026D16: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026C90 thumb_func_start sub_8026D1C sub_8026D1C: @ 8026D1C 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, =gUnknown_082F7A9C mov r8, r0 ldr r0, =gUnknown_02022C98 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 _08026D76 adds r0, r7, 0x1 mov r1, r9 strb r0, [r1] _08026D76: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8026D1C thumb_func_start sub_8026D8C sub_8026D8C: @ 8026D8C lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_082F449C+0x1AC ldr r1, =gUnknown_02022C98 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 .pool thumb_func_end sub_8026D8C thumb_func_start sub_8026DB0 sub_8026DB0: @ 8026DB0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, =gUnknown_02022C98 ldr r1, [r4] adds r1, 0x24 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, =gUnknown_082F449C+0x15E 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, =gUnknown_082F449C+0x1E3 lsls r0, r2, 2 adds r2, r0, r2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08026E18 adds r6, r1, 0 _08026DFE: adds r0, r3, r2 adds r0, r6 ldrb r0, [r0] cmp r5, r0 beq _08026E3C 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 _08026DFE _08026E18: 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 _08026E46 adds r1, r0, 0 b _08026E48 .pool _08026E3C: ldr r0, [r4] adds r0, 0x90 adds r0, r7 ldrb r0, [r0] b _08026E5A _08026E46: ldrb r1, [r1] _08026E48: ldr r0, [r4] adds r0, 0x90 mov r2, r8 adds r4, r0, r2 ldrb r0, [r4] cmp r0, r1 bls _08026E58 adds r1, r0, 0 _08026E58: adds r0, r1, 0 _08026E5A: adds r1, r5, 0 bl sub_8026E70 lsls r0, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8026DB0 thumb_func_start sub_8026E70 sub_8026E70: @ 8026E70 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022C98 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 _08026EDE lsls r0, 2 ldr r1, =_08026EA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026EA4: .4byte _08026EDE .4byte _08026ED6 .4byte _08026EE2 .4byte _08026EC0 .4byte _08026EC6 .4byte _08026ECC .4byte _08026ED2 _08026EC0: cmp r4, 0 beq _08026ED6 b _08026EDE _08026EC6: cmp r4, 0 beq _08026EE2 b _08026EDE _08026ECC: cmp r4, 0x2 beq _08026ED6 b _08026EE2 _08026ED2: cmp r4, 0 bne _08026EDA _08026ED6: movs r0, 0x1 b _08026EE4 _08026EDA: cmp r4, 0x1 beq _08026EE2 _08026EDE: movs r0, 0 b _08026EE4 _08026EE2: movs r0, 0x2 _08026EE4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026E70 thumb_func_start sub_8026EEC sub_8026EEC: @ 8026EEC push {r4-r6,lr} movs r6, 0 movs r5, 0 adds r4, r0, 0 b _08026EFE _08026EF6: ldrh r0, [r4, 0x6] adds r6, r0 adds r4, 0xC adds r5, 0x1 _08026EFE: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 blt _08026EF6 cmp r6, 0xA bgt _08026F12 movs r0, 0 b _08026F14 _08026F12: movs r0, 0x1 _08026F14: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026EEC thumb_func_start sub_8026F1C sub_8026F1C: @ 8026F1C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r2, 24 ldr r6, =gUnknown_02022C98 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x24 ldrb r5, [r0] cmp r3, 0 bge _08026F3A b _0802722C _08026F3A: cmp r3, 0x2 ble _08026F48 cmp r3, 0x3 beq _08026F78 b _0802722C .pool _08026F48: ldr r3, =0x000031b4 adds r0, r1, r3 adds r0, r4 ldrb r4, [r0] lsls r4, 1 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0 adds r0, r1, 0 adds r0, 0x4A adds r0, r4 ldrh r0, [r0] ldr r1, =0x00004e20 bl sub_8027A28 ldr r1, [r6] adds r1, 0x4A adds r1, r4 b _0802722A .pool _08026F78: adds r0, r1, 0 adds r0, 0x4A bl sub_8026EEC cmp r0, 0 beq _08026F86 b _0802722C _08026F86: cmp r5, 0x3 bne _08026F8C b _08027154 _08026F8C: cmp r5, 0x3 bgt _08026F98 cmp r5, 0x2 bne _08026F96 b _080271E8 _08026F96: b _0802722C _08026F98: cmp r5, 0x4 bne _08026F9E b _08027090 _08026F9E: cmp r5, 0x5 beq _08026FA4 b _0802722C _08026FA4: cmp r4, 0x9 bls _08026FAA b _0802722C _08026FAA: lsls r0, r4, 2 ldr r1, =_08026FB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026FB8: .4byte _08026FE0 .4byte _08026FF8 .4byte _08027004 .4byte _0802701C .4byte _08027028 .4byte _08027040 .4byte _0802704C .4byte _08027060 .4byte _0802706C .4byte _08027084 _08026FE0: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x74 b _08027226 .pool _08026FF8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x74 b _08027226 .pool _08027004: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x74 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x80 b _08027226 .pool _0802701C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x80 b _08027226 .pool _08027028: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x80 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _08027040: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _0802704C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _08027060: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _0802706C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027084: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _08027090: subs r0, r4, 0x1 cmp r0, 0x7 bls _08027098 b _0802722C _08027098: lsls r0, 2 ldr r1, =_080270A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080270A8: .4byte _080270C8 .4byte _080270E0 .4byte _080270EC .4byte _08027104 .4byte _08027110 .4byte _08027124 .4byte _08027130 .4byte _08027148 _080270C8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x74 b _08027226 .pool _080270E0: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x74 b _08027226 .pool _080270EC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x74 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _08027104: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _08027110: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _08027124: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _08027130: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027148: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _08027154: subs r0, r4, 0x2 cmp r0, 0x5 bhi _0802722C lsls r0, 2 ldr r1, =_08027168 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08027168: .4byte _08027180 .4byte _08027198 .4byte _080271A4 .4byte _080271BC .4byte _080271C8 .4byte _080271DC _08027180: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027198: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _080271A4: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _080271BC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _080271C8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _080271DC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _080271E8: cmp r4, 0x4 beq _0802720E cmp r4, 0x4 bgt _080271F6 cmp r4, 0x3 beq _08027200 b _0802722C _080271F6: cmp r4, 0x5 beq _08027214 cmp r4, 0x6 beq _08027222 b _0802722C _08027200: ldr r1, [r6] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 _0802720E: ldr r1, [r6] adds r1, 0x50 b _08027226 _08027214: ldr r1, [r6] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 _08027222: ldr r1, [r6] _08027224: adds r1, 0x5C _08027226: ldrh r0, [r1] adds r0, 0x1 _0802722A: strh r0, [r1] _0802722C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8026F1C thumb_func_start sub_8027234 sub_8027234: @ 8027234 push {r4,r5,lr} adds r1, r0, 0 ldr r4, =gUnknown_02022C98 ldr r3, [r4] adds r0, r3, 0 adds r0, 0x24 ldrb r0, [r0] cmp r0, 0x5 bne _0802729E cmp r1, 0x1 bne _08027280 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 _08027268 strh r2, [r1] _08027268: ldr r0, [r4] adds r2, r0, r5 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _0802729E strh r1, [r2] b _0802729E .pool _08027280: 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 _08027296 strh r0, [r1] _08027296: ldr r0, [r4] adds r0, r2 movs r1, 0 strh r1, [r0] _0802729E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8027234 thumb_func_start sub_80272A4 sub_80272A4: @ 80272A4 push {r4,r5,lr} movs r3, 0 ldr r2, =gUnknown_02022C98 ldr r0, [r2] adds r0, 0x24 ldrb r0, [r0] cmp r3, r0 bcs _080272DC adds r5, r2, 0 movs r4, 0x8A lsls r4, 1 _080272BA: 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 _080272BA _080272DC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80272A4 thumb_func_start sub_80272E8 sub_80272E8: @ 80272E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r7, =gUnknown_02022C98 movs r4, 0 ldr r0, =0x000031bf mov r10, r0 _080272FC: 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 _08027310: 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 _08027310 ldr r0, [r7] subs r1, r6, r5 lsls r1, 2 adds r0, r1 ldr r2, =0x000031cc adds r0, r2 strb r4, [r0] ldr r0, [r7] adds r0, r1 ldr r1, =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, =0x00003308 adds r1, r2 strb r4, [r1] ldr r2, [r7] ldr r1, =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 _080272FC ldr r2, =gUnknown_02022C98 ldr r0, [r2] movs r1, 0xAA lsls r1, 1 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r1, =gUnknown_02022C98 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_8026A88 bl sub_8026988 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80272E8 thumb_func_start sub_80273F0 sub_80273F0: @ 80273F0 push {r4,r5,lr} movs r4, 0 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r0, [r0] cmp r0, 0x4 beq _0802740C cmp r0, 0x5 beq _08027410 b _08027412 .pool _0802740C: movs r4, 0x1 b _08027412 _08027410: movs r4, 0x2 _08027412: 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, =gUnknown_02022C98 ldr r2, =gUnknown_082F7AA4 adds r1, r4 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r2, [r0] _08027436: 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 _08027436 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80273F0 thumb_func_start sub_802745C sub_802745C: @ 802745C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C98 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, =0x0000270f cmp r0, r1 bls _0802748E adds r0, r1, 0 _0802748E: pop {r1} bx r1 .pool thumb_func_end sub_802745C thumb_func_start sub_802749C sub_802749C: @ 802749C push {r4-r6,lr} ldr r5, =gUnknown_02022C98 ldr r0, [r5] adds r0, 0x28 ldrb r0, [r0] bl sub_802745C ldr r1, =0x0000270f bl sub_8027A38 adds r4, r0, 0 ldr r0, [r5] adds r0, 0x28 ldrb r0, [r0] bl sub_80276C0 ldr r1, =0x000f4236 bl sub_8027A38 adds r2, r0, 0 ldr r3, =gSaveBlock2Ptr ldr r0, [r3] movs r6, 0x83 lsls r6, 2 adds r1, r0, r6 ldr r0, [r1] cmp r0, r2 bcs _080274D6 str r2, [r1] _080274D6: ldr r0, [r3] movs r2, 0x84 lsls r2, 2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, r4 bcs _080274E6 strh r4, [r1] _080274E6: ldr r0, [r3] ldr r6, =0x00000212 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 _080274FE strh r1, [r2] _080274FE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802749C thumb_func_start sub_8027518 sub_8027518: @ 8027518 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x9B ldrb r6, [r0] movs r3, 0x3 adds r5, r1, 0 adds r4, r5, 0 _0802752C: 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 _0802752C ldr r0, [r5] adds r0, 0x98 strb r7, [r0] adds r0, r6, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8027518 thumb_func_start sub_8027554 sub_8027554: @ 8027554 push {r4,lr} ldr r4, =gUnknown_02022C98 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 _080275FC ldr r0, =gMain ldrh r2, [r0, 0x2E] movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08027594 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x2 b _080275CA .pool _08027594: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080275B0 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x3 b _080275CA .pool _080275B0: movs r0, 0x10 ands r0, r2 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _080275E8 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x1 _080275CA: 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, 0xD4 bl PlaySE b _08027600 .pool _080275E8: lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 strb r2, [r0] b _08027600 .pool _080275FC: subs r0, 0x1 strb r0, [r2] _08027600: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027554 thumb_func_start sub_8027608 sub_8027608: @ 8027608 ldr r0, =gUnknown_02022C98 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, =0x000031cc adds r1, r0 movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end sub_8027608 thumb_func_start sub_802762C sub_802762C: @ 802762C ldr r0, =gUnknown_02022C98 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 .pool thumb_func_end sub_802762C thumb_func_start sub_8027650 sub_8027650: @ 8027650 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8027650 thumb_func_start sub_8027660 sub_8027660: @ 8027660 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0802768C ldr r0, =gUnknown_02022C98 lsls r1, r2, 4 subs r1, r2 lsls r1, 2 ldr r2, =0x000031a0 adds r1, r2 ldr r0, [r0] b _08027694 .pool _0802768C: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r1, =gLinkPlayers + 8 _08027694: adds r0, r1 pop {r1} bx r1 .pool thumb_func_end sub_8027660 thumb_func_start sub_80276A0 sub_80276A0: @ 80276A0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r2, =gUnknown_02022C98 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 .pool thumb_func_end sub_80276A0 thumb_func_start sub_80276C0 sub_80276C0: @ 80276C0 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, =gUnknown_02022C98 mov r9, r0 ldr r2, =gUnknown_082F7B24 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 _080276EE: 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 _080276EE 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 _08027734 subs r0, r5, r0 b _08027736 .pool _08027734: movs r0, 0 _08027736: 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_80276C0 thumb_func_start sub_8027748 sub_8027748: @ 8027748 push {r4-r6,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r6, [r0] movs r0, 0 bl sub_80276C0 adds r5, r0, 0 movs r4, 0x1 cmp r4, r6 bcs _08027776 _08027760: adds r0, r4, 0 bl sub_80276C0 cmp r0, r5 bls _0802776C adds r5, r0, 0 _0802776C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08027760 _08027776: ldr r1, =0x000f4236 adds r0, r5, 0 bl sub_8027A38 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8027748 thumb_func_start sub_802778C sub_802778C: @ 802778C push {r4,r5,lr} lsls r0, 24 ldr r1, =gUnknown_02022C98 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 _080277C4 _080277A8: 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 _080277BA adds r3, r0, 0 _080277BA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r5 bcc _080277A8 _080277C4: adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_802778C thumb_func_start sub_80277D0 sub_80277D0: @ 80277D0 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0x1 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _080277FE _080277E8: adds r0, r4, 0 bl sub_80276C0 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 _080277E8 _080277FE: lsls r7, 2 mov r12, r7 cmp r6, 0 beq _08027838 subs r7, r5, 0x1 _08027808: movs r6, 0 movs r4, 0 cmp r6, r7 bge _08027834 adds r5, r7, 0 _08027812: 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 _0802782C str r2, [r1] str r0, [r3] movs r6, 0x1 _0802782C: lsls r0, r4, 24 lsrs r4, r0, 24 cmp r4, r5 blt _08027812 _08027834: cmp r6, 0 bne _08027808 _08027838: mov r0, sp add r0, r12 ldr r0, [r0] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80277D0 thumb_func_start sub_802784C sub_802784C: @ 802784C 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, =gUnknown_02022C98 ldr r0, [r6] adds r0, 0x24 ldrb r5, [r0] bl sub_8027748 bl sub_8027748 cmp r0, 0 bne _080278A0 movs r4, 0 cmp r9, r5 bcs _080278A0 adds r2, r6, 0 ldr r1, =0x00003308 mov r12, r1 movs r7, 0 movs r6, 0x4 ldr r3, =0x0000330c _08027884: 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 _08027884 _080278A0: movs r4, 0 cmp r4, r5 bcs _080278CA _080278A6: adds r0, r4, 0 bl sub_80276C0 ldr r1, =0x000f4236 bl sub_8027A38 ldr r1, =gUnknown_02022C98 ldr r1, [r1] lsls r2, r4, 3 ldr r3, =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 _080278A6 _080278CA: mov r0, r10 bl sub_80277D0 adds r6, r0, 0 mov r3, r8 movs r4, 0 cmp r4, r5 bcs _08027916 ldr r7, =gUnknown_02022C98 mov r10, r7 _080278DE: mov r0, r10 ldr r2, [r0] lsls r1, r4, 3 ldr r7, =0x0000330c adds r0, r2, r7 adds r0, r1 ldr r0, [r0] cmp r6, r0 bne _0802790C adds r0, r2, r1 ldr r1, =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 _0802790C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080278DE _08027916: mov r10, r8 cmp r9, r5 bcc _080278CA movs r0, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_802784C thumb_func_start sub_802793C sub_802793C: @ 802793C lsls r1, 24 ldr r2, =gUnknown_02022C98 ldr r2, [r2] lsrs r1, 21 ldr r3, =0x00003308 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0] str r2, [r0, 0x4] bx lr .pool thumb_func_end sub_802793C thumb_func_start sub_802795C sub_802795C: @ 802795C push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r0, =gUnknown_02022C98 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 _08027994 _0802797E: adds r0, r4, 0 bl sub_80276C0 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 _0802797E _08027994: lsls r0, r6, 2 add r0, sp ldr r1, [r0] movs r4, 0 _0802799C: cmp r4, r6 beq _080279B0 lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r1, r0 bcs _080279B0 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080279B0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0802799C adds r0, r7, 0 add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_802795C thumb_func_start sub_80279C8 sub_80279C8: @ 80279C8 push {r4-r6,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x28 ldrb r4, [r0] bl sub_802762C lsls r0, 16 lsrs r5, r0, 16 adds r6, r5, 0 adds r0, r4, 0 bl sub_80276C0 adds r4, r0, 0 bl sub_8027748 cmp r4, r0 beq _080279F4 movs r0, 0x3 b _08027A22 .pool _080279F4: adds r0, r5, 0 movs r1, 0x1 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08027A06 movs r0, 0x2 b _08027A22 _08027A06: 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 _08027A20 movs r0, 0 b _08027A22 _08027A20: movs r0, 0x1 _08027A22: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80279C8 thumb_func_start sub_8027A28 sub_8027A28: @ 8027A28 push {lr} adds r2, r0, 0 adds r0, r1, 0 cmp r2, r0 bcs _08027A34 adds r0, r2, 0x1 _08027A34: pop {r1} bx r1 thumb_func_end sub_8027A28 thumb_func_start sub_8027A38 sub_8027A38: @ 8027A38 push {lr} adds r2, r0, 0 adds r0, r1, 0 cmp r2, r0 bcs _08027A44 adds r0, r2, 0 _08027A44: pop {r1} bx r1 thumb_func_end sub_8027A38 thumb_func_start sub_8027A48 sub_8027A48: @ 8027A48 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x34 adds r1, r0 ldrb r0, [r1] bx lr .pool thumb_func_end sub_8027A48 thumb_func_start sub_8027A5C sub_8027A5C: @ 8027A5C push {r4-r6,lr} movs r5, 0 ldr r6, =gSpecialVar_Result _08027A62: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _08027A94 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0x55 bne _08027A94 movs r0, 0x1 strh r0, [r6] b _08027AA0 .pool _08027A94: adds r5, 0x1 cmp r5, 0x5 ble _08027A62 ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] _08027AA0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8027A5C thumb_func_start sub_8027AAC sub_8027AAC: @ 8027AAC push {r4,lr} ldr r4, =sub_8027ACC 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 .pool thumb_func_end sub_8027AAC thumb_func_start sub_8027ACC sub_8027ACC: @ 8027ACC push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x1 beq _08027B94 cmp r0, 0x1 bgt _08027AF4 cmp r0, 0 beq _08027AFE b _08027BE2 .pool _08027AF4: cmp r0, 0x2 beq _08027BA0 cmp r0, 0x3 beq _08027BC8 b _08027BE2 _08027AFE: ldr r0, =gUnknown_082F7B2C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r1, =gText_BerryPickingRecords movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r4, r0, 0 movs r6, 0 ldr r5, =gUnknown_082F7B34 _08027B18: ldr r1, [r5] movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r0, 0x32 cmp r0, r4 ble _08027B2A adds r4, r0, 0 _08027B2A: adds r5, 0x4 adds r6, 0x1 cmp r6, 0x2 bls _08027B18 adds r0, r4, 0x7 cmp r0, 0 bge _08027B3A adds r0, 0x7 _08027B3A: asrs r4, r0, 3 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08027B46 adds r4, 0x1 _08027B46: movs r1, 0x1E subs r1, r4 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 lsls r1, 24 lsrs r1, 16 ldr r2, =0xffff00ff ldr r0, [sp] ands r0, r2 orrs r0, r1 lsls r2, r4, 24 ldr r1, =0x00ffffff ands r0, r1 orrs r0, r2 str r0, [sp] mov r0, sp bl AddWindow strh r0, [r7, 0x2] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_8027BEC ldrb r0, [r7, 0x2] movs r1, 0x3 b _08027BB6 .pool _08027B94: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08027BE2 b _08027BBA _08027BA0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08027BE2 ldrb r0, [r7, 0x2] bl rbox_fill_rectangle ldrb r0, [r7, 0x2] movs r1, 0x1 _08027BB6: bl CopyWindowToVram _08027BBA: ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] b _08027BE2 .pool _08027BC8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08027BE2 ldrb r0, [r7, 0x2] bl RemoveWindow adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _08027BE2: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8027ACC thumb_func_start sub_8027BEC sub_8027BEC: @ 8027BEC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r1, [sp, 0x18] lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r2, 0x84 lsls r2, 2 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, =0x00000212 adds r1, r0 ldrh r0, [r1] str r0, [sp, 0x14] ldr r4, =0x0000021d adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD0 bl LoadUserWindowBorderGfx_ adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD bl DrawTextBorderOuter adds r0, r7, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gText_BerryPickingRecords ldr r0, [sp, 0x18] lsls r2, r0, 3 movs r0, 0x1 adds r1, r4, 0 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 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, 0x1 adds r2, r4, 0 bl AddTextPrinterParameterized movs r6, 0 ldr r2, =gStringVar1 mov r8, r2 movs r0, 0xFF mov r10, r0 mov r9, r6 mov r2, sp adds r2, 0xC str r2, [sp, 0x1C] _08027C76: lsls r4, r6, 2 ldr r0, [sp, 0x1C] ldm r0!, {r1} str r0, [sp, 0x1C] ldr r0, =gUnknown_082F7B40 adds r0, r6, r0 ldrb r3, [r0] mov r0, r8 movs r2, 0 bl ConvertIntToDecimalStringN movs r0, 0x1 mov r1, r8 movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r5, r0, 0 ldr r0, =gUnknown_082F7B34 adds r4, r0 ldr r2, [r4] ldr r0, =gUnknown_082F7B44 lsls r4, r6, 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, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r2, [sp, 0x18] lsls r3, r2, 3 subs r3, r5 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_082F7B4A adds r4, r0 ldrb r0, [r4] str r0, [sp] mov r0, r10 str r0, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 mov r2, r8 bl AddTextPrinterParameterized adds r6, 0x1 cmp r6, 0x2 ble _08027C76 adds r0, r7, 0 bl PutWindowTilemap add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8027BEC thumb_func_start sub_8027D20 sub_8027D20: @ 8027D20 push {lr} bl GetLinkPlayerCount ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x24 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8027D20 thumb_func_start sub_8027D38 sub_8027D38: @ 8027D38 push {r4-r7,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r4, [r0] cmp r4, 0x4 bhi _08027D66 ldr r5, =gUnknown_082F7B90 _08027D48: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, =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 _08027D48 _08027D66: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x24 movs r2, 0x5 strb r2, [r1] movs r1, 0 mov r12, r0 _08027D74: movs r4, 0 mov r2, r12 ldr r0, [r2] adds r0, 0x24 adds r5, r1, 0x1 ldrb r0, [r0] cmp r4, r0 bcs _08027DB2 ldr r7, =gUnknown_02022C98 lsls r3, r1, 1 ldr r6, =gUnknown_082F7B50 _08027D8A: 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 _08027D8A _08027DB2: lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _08027D74 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8027D38 thumb_func_start sub_8027DD0 sub_8027DD0: @ 8027DD0 push {lr} sub sp, 0x8 ldr r3, =0xffffff00 ldr r1, [sp] ands r1, r3 movs r2, 0x1 orrs r1, r2 str r1, [sp] lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x4] ands r1, r3 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_8027DD0 thumb_func_start sub_8027DFC sub_8027DFC: @ 8027DFC push {lr} adds r2, r0, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _08027E1E lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x1 beq _08027E28 _08027E1E: movs r0, 0 b _08027E2A .pool _08027E28: ldrb r0, [r1, 0x4] _08027E2A: pop {r1} bx r1 thumb_func_end sub_8027DFC thumb_func_start sub_8027E30 sub_8027E30: @ 8027E30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x48] lsls r4, 24 str r4, [sp, 0x1C] movs r4, 0x14 adds r4, r0 mov r9, r4 mov r5, sp movs r4, 0x2 strb r4, [r5] mov r10, sp mov r5, r9 ldrb r4, [r5, 0xB] movs r7, 0xF adds r5, r7, 0 ands r5, r4 mov r6, r10 ldrb r6, [r6, 0x1] mov r8, r6 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x1] mov r8, sp mov r6, r9 ldrb r5, [r6, 0xC] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x1] ldrb r5, [r6, 0xD] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x2] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x2] mov r8, sp mov r6, r9 ldrb r5, [r6, 0xE] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x2] ldrb r5, [r6, 0xF] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x3] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x3] mov r8, sp mov r6, r9 ldrb r5, [r6, 0x10] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x3] ldrb r5, [r6, 0x11] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x4] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x4] mov r8, sp mov r6, r9 ldrb r5, [r6, 0x12] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x4] ldrb r4, [r6, 0x13] movs r6, 0xF ands r4, r6 mov r6, r8 ldrb r5, [r6, 0x5] movs r6, 0x10 negs r6, r6 ands r6, r5 orrs r6, r4 str r6, [sp, 0xC] mov r4, r8 strb r6, [r4, 0x5] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x14] lsls r4, 4 ldr r6, [sp, 0xC] ands r6, r7 orrs r6, r4 strb r6, [r5, 0x5] mov r7, sp movs r4, 0x3 mov r8, r4 ldrb r0, [r0, 0x14] mov r5, r8 ands r0, r5 ldrb r5, [r7, 0x6] movs r6, 0x4 negs r6, r6 mov r10, r6 mov r4, r10 ands r4, r5 orrs r4, r0 strb r4, [r7, 0x6] mov r5, r9 ldrb r0, [r5, 0x1] mov r6, r8 ands r0, r6 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 strb r5, [r7, 0x6] mov r0, r9 ldrb r4, [r0, 0x2] ands r4, r6 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 strb r0, [r7, 0x6] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x3] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x6] mov r4, r9 ldrb r0, [r4, 0x4] mov r5, r8 ands r0, r5 ldrb r5, [r7, 0x7] mov r4, r10 ands r4, r5 orrs r4, r0 strb r4, [r7, 0x7] mov r6, r9 ldrb r0, [r6, 0x5] mov r5, r8 ands r0, r5 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 strb r5, [r7, 0x7] ldrb r4, [r6, 0x6] mov r6, r8 ands r4, r6 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 strb r0, [r7, 0x7] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x7] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x7] mov r8, sp mov r0, r9 ldrb r4, [r0, 0x8] movs r7, 0x3 adds r0, r7, 0 ands r0, r4 mov r4, r8 ldrb r5, [r4, 0x8] mov r4, r10 ands r4, r5 orrs r4, r0 mov r5, r8 strb r4, [r5, 0x8] mov r6, r9 ldrb r5, [r6, 0x9] adds r0, r7, 0 ands r0, r5 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 mov r0, r8 strb r5, [r0, 0x8] ldrb r0, [r1] adds r4, r7, 0 ands r4, r0 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 mov r4, r8 strb r0, [r4, 0x8] mov r5, sp ldrb r4, [r2] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x8] ldrb r4, [r3] adds r0, r7, 0 ands r0, r4 ldrb r4, [r5, 0x9] mov r6, r10 ands r6, r4 orrs r6, r0 mov r10, r6 strb r6, [r5, 0x9] ldr r0, [sp, 0x40] ldrb r4, [r0] adds r0, r7, 0 ands r0, r4 lsls r0, 2 movs r4, 0xD negs r4, r4 ands r6, r4 orrs r6, r0 str r6, [sp, 0x10] strb r6, [r5, 0x9] mov r4, sp ldr r5, [sp, 0x44] ldrb r0, [r5] adds r6, r7, 0 ands r6, r0 lsls r0, r6, 4 subs r7, 0x34 ldr r5, [sp, 0x10] ands r7, r5 orrs r7, r0 strb r7, [r4, 0x9] mov r5, sp ldrb r0, [r1, 0x4] movs r6, 0x1 mov r12, r6 mov r4, r12 ands r4, r0 lsls r4, 6 movs r0, 0x41 negs r0, r0 mov r10, r0 ands r0, r7 orrs r0, r4 strb r0, [r5, 0x9] ldrb r4, [r2, 0x4] lsls r4, 7 movs r5, 0x7F ands r0, r5 orrs r0, r4 mov r4, r8 strb r0, [r4, 0x9] ldrb r4, [r3, 0x4] mov r0, r12 ands r0, r4 mov r5, r8 ldrb r4, [r5, 0xA] movs r7, 0x2 negs r7, r7 adds r5, r7, 0 ands r5, r4 orrs r5, r0 mov r6, r8 strb r5, [r6, 0xA] mov r9, sp ldr r4, [sp, 0x40] ldrb r0, [r4, 0x4] mov r4, r12 ands r4, r0 lsls r4, 1 movs r6, 0x3 negs r6, r6 mov r8, r6 mov r0, r8 ands r0, r5 orrs r0, r4 mov r4, r9 strb r0, [r4, 0xA] ldr r6, [sp, 0x44] ldrb r5, [r6, 0x4] mov r4, r12 ands r4, r5 lsls r4, 2 movs r5, 0x5 negs r5, r5 ands r0, r5 orrs r0, r4 mov r4, r9 strb r0, [r4, 0xA] mov r4, sp ldrb r1, [r1, 0x8] mov r0, r12 ands r0, r1 lsls r0, 2 ldrb r1, [r4, 0xB] ands r5, r1 orrs r5, r0 strb r5, [r4, 0xB] ldrb r1, [r2, 0x8] mov r0, r12 ands r0, r1 lsls r0, 3 movs r1, 0x9 negs r1, r1 ands r1, r5 orrs r1, r0 strb r1, [r4, 0xB] ldrb r2, [r3, 0x8] mov r0, r12 ands r0, r2 lsls r0, 4 movs r2, 0x11 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4, 0xB] mov r3, sp ldr r5, [sp, 0x40] ldrb r0, [r5, 0x8] mov r1, r12 ands r1, r0 lsls r1, 5 movs r0, 0x21 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xB] mov r2, sp ldrb r1, [r6, 0x8] mov r6, r12 ands r6, r1 lsls r1, r6, 6 mov r3, r10 ands r0, r3 orrs r0, r1 strb r0, [r2, 0xB] ldr r4, [sp, 0x1C] lsrs r3, r4, 21 ldrb r1, [r2, 0xA] movs r0, 0x7 ands r0, r1 orrs r0, r3 strb r0, [r2, 0xA] mov r1, sp ldr r5, [sp, 0x4C] movs r6, 0x1 ands r5, r6 lsls r2, r5, 1 ldrb r0, [r1, 0xB] mov r3, r8 ands r3, r0 orrs r3, r2 mov r8, r3 strb r3, [r1, 0xB] mov r0, sp ldr r4, [sp, 0x50] ands r4, r6 mov r5, r8 ands r5, r7 orrs r5, r4 strb r5, [r0, 0xB] bl sub_800FE50 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8027E30 thumb_func_start sub_8028164 sub_8028164: @ 8028164 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r0, [sp, 0x1C] mov r12, r0 ldr r1, [sp, 0x20] mov r8, r1 ldr r0, [sp, 0x24] mov r9, r0 adds r2, r7, 0 adds r2, 0x14 ldr r4, =gRecvCmds ldrh r0, [r4] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _0802819C adds r3, r4, 0x2 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080281A4 _0802819C: movs r0, 0 b _080282DE .pool _080281A4: ldrb r0, [r3, 0x1] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xB] ldrb r0, [r3, 0x1] lsrs r0, 4 strb r0, [r2, 0xC] ldrb r0, [r3, 0x2] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xD] ldrb r0, [r3, 0x2] lsrs r0, 4 strb r0, [r2, 0xE] ldrb r0, [r3, 0x3] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xF] ldrb r0, [r3, 0x3] lsrs r0, 4 strb r0, [r2, 0x10] ldrb r0, [r3, 0x4] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x11] ldrb r0, [r3, 0x4] lsrs r0, 4 strb r0, [r2, 0x12] ldrb r0, [r3, 0x5] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x13] ldrb r0, [r3, 0x5] lsrs r0, 4 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x15] ldrb r0, [r3, 0x6] lsls r0, 30 lsrs r0, 30 strb r0, [r7, 0x14] ldrb r0, [r3, 0x6] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x1] ldrb r0, [r3, 0x6] lsls r0, 26 lsrs r0, 30 strb r0, [r2, 0x2] ldrb r0, [r3, 0x6] lsrs r0, 6 strb r0, [r2, 0x3] ldrb r0, [r3, 0x7] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0x4] ldrb r0, [r3, 0x7] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x5] ldrb r0, [r3, 0x7] lsls r0, 26 lsrs r0, 30 strb r0, [r2, 0x6] ldrb r0, [r3, 0x7] lsrs r0, 6 strb r0, [r2, 0x7] ldrb r0, [r3, 0x8] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0x8] ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x9] ldrb r0, [r3, 0x6] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0xA] ldrb r0, [r3, 0x8] lsls r0, 26 lsrs r0, 30 strb r0, [r5] ldrb r0, [r3, 0x9] lsls r0, 25 lsrs r0, 31 strb r0, [r5, 0x4] ldrb r0, [r3, 0xB] lsls r0, 29 lsrs r0, 31 strb r0, [r5, 0x8] ldrb r0, [r3, 0x8] lsrs r0, 6 strb r0, [r6] ldrb r0, [r3, 0x9] lsrs r0, 7 strb r0, [r6, 0x4] ldrb r0, [r3, 0xB] lsls r0, 28 lsrs r0, 31 strb r0, [r6, 0x8] ldrb r0, [r3, 0x9] lsls r0, 30 lsrs r0, 30 mov r1, r12 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 31 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 27 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0x9] lsls r0, 28 lsrs r0, 30 mov r1, r8 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 30 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 26 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0x9] lsls r0, 26 lsrs r0, 30 mov r1, r9 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 29 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 25 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0xA] lsrs r0, 3 ldr r1, [sp, 0x28] strb r0, [r1] ldrb r0, [r3, 0xB] lsls r0, 30 lsrs r0, 31 ldr r1, [sp, 0x2C] str r0, [r1] ldrb r0, [r3, 0xB] lsls r0, 31 lsrs r0, 31 ldr r1, [sp, 0x30] str r0, [r1] movs r0, 0x1 _080282DE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8028164 thumb_func_start sub_80282EC sub_80282EC: @ 80282EC push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r3, =0xffffff00 ldr r1, [sp] ands r1, r3 movs r2, 0x3 orrs r1, r2 str r1, [sp] ldr r1, [sp, 0x4] ands r1, r3 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_80282EC thumb_func_start sub_8028318 sub_8028318: @ 8028318 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _0802833C lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x3 beq _08028344 _0802833C: movs r0, 0 b _0802834A .pool _08028344: ldrb r0, [r1, 0x4] strb r0, [r4] movs r0, 0x1 _0802834A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8028318 thumb_func_start sub_8028350 sub_8028350: @ 8028350 push {lr} sub sp, 0x8 ldr r2, =0xffffff00 ldr r1, [sp] ands r1, r2 movs r2, 0x4 orrs r1, r2 str r1, [sp] str r0, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_8028350 thumb_func_start sub_8028374 sub_8028374: @ 8028374 push {lr} adds r2, r0, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _08028396 lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x4 beq _080283A0 _08028396: movs r0, 0 b _080283A2 .pool _080283A0: ldr r0, [r1, 0x4] _080283A2: pop {r1} bx r1 thumb_func_end sub_8028374 thumb_func_start sub_80283A8 sub_80283A8: @ 80283A8 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, =gUnknown_082FB2D8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r0, =gUnknown_082FB2E0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x10] str r1, [sp, 0x14] ldr r0, =gDodrioBerryPkmnGfx adds r1, r4, 0 bl LZ77UnCompWram cmp r4, 0 beq _080283E8 str r4, [sp] str r5, [sp, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r4, 0 bl Free _080283E8: add r0, sp, 0x8 bl LoadSpritePalette add r0, sp, 0x10 bl LoadSpritePalette add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80283A8 thumb_func_start sub_8028408 sub_8028408: @ 8028408 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, =gUnknown_082FB1E0 str r0, [sp, 0x1C] ldr r0, =gUnknown_082FB228 str r0, [sp, 0x20] str r3, [sp, 0x24] ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x28] ldr r0, =sub_80284A8 str r0, [sp, 0x2C] mov r0, sp movs r2, 0x18 bl memcpy movs r0, 0x4 bl AllocZeroed ldr r1, =gUnknown_02022C9C mov r2, r8 lsls r4, r2, 2 adds r4, r1 str r0, [r4] adds r0, r6, 0 adds r1, r5, 0 bl sub_8028F14 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_8028654 add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028408 thumb_func_start sub_80284A8 sub_80284A8: @ 80284A8 push {lr} movs r2, 0x2E ldrsh r1, [r0, r2] cmp r1, 0x1 beq _080284BC cmp r1, 0x1 ble _080284C6 cmp r1, 0x2 beq _080284C2 b _080284C6 _080284BC: bl sub_802853C b _080284C6 _080284C2: bl sub_80285AC _080284C6: pop {r0} bx r0 thumb_func_end sub_80284A8 thumb_func_start sub_80284CC sub_80284CC: @ 80284CC push {lr} bl GetMultiplayerId ldr r1, =gUnknown_02022C9C 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, =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 .pool thumb_func_end sub_80284CC thumb_func_start sub_8028504 sub_8028504: @ 8028504 push {lr} bl GetMultiplayerId ldr r1, =gUnknown_02022C9C 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, =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 .pool thumb_func_end sub_8028504 thumb_func_start sub_802853C sub_802853C: @ 802853C 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 _08028558 adds r0, r1, 0x3 _08028558: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 cmp r2, 0x2 ble _080285A2 cmp r0, 0x2 bgt _0802856E cmp r0, 0x1 bge _08028572 _0802856E: movs r0, 0x1 b _08028574 _08028572: movs r0, 0xFF _08028574: 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 _080285A2 movs r0, 0 strh r0, [r4, 0x2E] bl sub_8027650 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8028F14 strh r0, [r4, 0x20] _080285A2: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_802853C thumb_func_start sub_80285AC sub_80285AC: @ 80285AC 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 _080285CC adds r0, r1, 0x3 _080285CC: 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 _080285F0 cmp r4, 0 beq _080285F0 movs r0, 0xD4 bl PlaySE _080285F0: movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x67 ble _080285FE movs r0, 0 strh r0, [r5, 0x2E] movs r4, 0 _080285FE: bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80286B4 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80285AC thumb_func_start sub_8028614 sub_8028614: @ 8028614 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _08028646 ldr r6, =gUnknown_02022C9C _08028622: 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, =gSprites adds r0, r1 cmp r0, 0 beq _0802863C bl DestroySpriteAndFreeResources _0802863C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08028622 _08028646: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028614 thumb_func_start sub_8028654 sub_8028654: @ 8028654 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022C9C 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 .pool thumb_func_end sub_8028654 thumb_func_start sub_802868C sub_802868C: @ 802868C 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 _080286AE _0802869C: adds r0, r6, 0 adds r1, r4, 0 bl sub_8028654 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0802869C _080286AE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802868C thumb_func_start sub_80286B4 sub_80286B4: @ 80286B4 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022C9C lsrs r0, 22 adds r0, r2 ldr r0, [r0] ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_80286B4 thumb_func_start nullsub_15 nullsub_15: @ 80286E0 bx lr thumb_func_end nullsub_15 thumb_func_start sub_80286E4 sub_80286E4: @ 80286E4 push {r4-r7,lr} movs r4, 0 ldr r0, =gSprites mov r12, r0 movs r6, 0 ldr r5, =gUnknown_02022CF4 _080286F0: 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 _080286F0 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80286E4 thumb_func_start sub_8028734 sub_8028734: @ 8028734 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, =gUnknown_082FB2E8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] ldr r0, =gDodrioBerryStatusGfx adds r1, r6, 0 bl LZ77UnCompWram cmp r6, 0 beq _080287C4 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, =gUnknown_082FB2F0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r4, =gUnknown_02022CF4 movs r0, 0x40 bl AllocZeroed str r0, [r4] adds r0, r5, 0 bl LoadSpriteSheet add r0, sp, 0x20 bl LoadSpritePalette movs r4, 0 _0802878A: 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, =gUnknown_02022CF4 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 _0802878A _080287C4: adds r0, r6, 0 bl Free add sp, 0x28 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028734 thumb_func_start sub_80287E4 sub_80287E4: @ 80287E4 push {r4,r5,lr} movs r4, 0 _080287E8: ldr r5, =gUnknown_02022CF4 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, =gSprites adds r0, r1 cmp r0, 0 beq _08028806 bl DestroySpriteAndFreeResources _08028806: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080287E8 ldr r0, [r5] bl Free movs r0, 0 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80287E4 thumb_func_start sub_8028828 sub_8028828: @ 8028828 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r3, 0 movs r6, 0 ldr r0, =gUnknown_02022CF4 mov r9, r0 _0802883A: 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, =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 _08028870 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r0, 0x8 beq _080288A6 _08028870: movs r3, 0x1 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r0, 0x8 bne _08028896 cmp r1, 0 bne _080288A6 strb r3, [r2] mov r1, r9 ldr r0, [r1] adds r0, 0x16 adds r0, r5 ldr r1, =0x0000fff0 strh r1, [r0] movs r0, 0x24 str r3, [sp] bl PlaySE ldr r3, [sp] _08028896: 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] _080288A6: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x9 bls _0802883A cmp r3, 0 bne _080288C4 movs r0, 0x1 b _080288C6 .pool _080288C4: movs r0, 0 _080288C6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8028828 thumb_func_start sub_80288D4 sub_80288D4: @ 80288D4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08028910 movs r4, 0 _080288E0: ldr r0, =gUnknown_02022CF4 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, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080288E0 b _080289DA .pool _08028910: movs r4, 0 movs r0, 0xA subs r0, r5 cmp r4, r0 bge _080289D6 ldr r6, =gSprites _0802891C: cmp r5, 0x6 bls _08028984 ldr r0, =gUnknown_02022CF4 ldr r2, [r0] ldr r1, =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 _0802894C strh r1, [r2, 0x3E] b _0802899E .pool _0802894C: cmp r0, 0xA bls _0802896A 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 _0802899E _0802896A: 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 _0802899E _08028984: ldr r0, =gUnknown_02022CF4 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 _0802899E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0xA subs r0, r5 cmp r4, r0 blt _0802891C b _080289D6 .pool _080289B4: ldr r0, =gUnknown_02022CF4 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, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080289D6: cmp r4, 0x9 bls _080289B4 _080289DA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80288D4 thumb_func_start sub_80289E8 sub_80289E8: @ 80289E8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r6, 0x5 negs r6, r6 ldr r5, =gUnknown_02022CF4 _080289FE: 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 _080289FE pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80289E8 thumb_func_start sub_8028A34 sub_8028A34: @ 8028A34 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, =gUnknown_082FB314 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r0, =gDodrioBerrySpritesGfx adds r1, r4, 0 bl LZ77UnCompWram cmp r4, 0 beq _08028A6A str r4, [sp] movs r0, 0x80 lsls r0, 10 orrs r0, r5 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet _08028A6A: add r0, sp, 0x8 bl LoadSpritePalette adds r0, r4, 0 bl Free add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8028A34 thumb_func_start sub_8028A88 sub_8028A88: @ 8028A88 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x30 mov r1, sp ldr r0, =gUnknown_082FB324 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, =gUnknown_082FB33C ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} movs r5, 0 mov r9, r2 _08028AB0: movs r0, 0x4 bl AllocZeroed ldr r1, =gUnknown_02022CB8 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_8028BF8 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08028AB0 movs r5, 0 ldr r7, =gUnknown_02022CE4 ldr r4, =gUnknown_082FB31C mov r8, r4 _08028AF0: movs r0, 0x4 bl AllocZeroed lsls r1, r5, 2 adds r4, r1, r7 str r0, [r4] adds r6, r1, 0 cmp r5, 0x3 bne _08028B2C mov r0, r8 movs r2, 0x6 ldrsh r1, [r0, r2] mov r0, r9 movs r2, 0x31 movs r3, 0 bl CreateSprite ldr r1, [r7, 0xC] b _08028B40 .pool _08028B2C: lsls r0, r5, 1 add r0, r8 movs r3, 0 ldrsh r1, [r0, r3] mov r0, r9 movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r1, [r4] _08028B40: 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, =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 _08028AF0 movs r0, 0x1 bl sub_8028C30 add sp, 0x30 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028A88 thumb_func_start sub_8028B80 sub_8028B80: @ 8028B80 push {r4-r6,lr} movs r5, 0 ldr r6, =gUnknown_02022CB8 _08028B86: 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, =gSprites adds r0, r1 cmp r0, 0 beq _08028BA0 bl DestroySprite _08028BA0: 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 _08028B86 movs r5, 0 ldr r6, =gUnknown_02022CE4 _08028BB8: 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, =gSprites adds r0, r1 cmp r0, 0 beq _08028BD2 bl DestroySprite _08028BD2: 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 _08028BB8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028B80 thumb_func_start sub_8028BF8 sub_8028BF8: @ 8028BF8 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 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 .pool thumb_func_end sub_8028BF8 thumb_func_start sub_8028C30 sub_8028C30: @ 8028C30 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_02022CE4 movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r5, 0x5 negs r5, r5 _08028C46: 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 _08028C46 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028C30 thumb_func_start sub_8028C7C sub_8028C7C: @ 8028C7C lsls r0, 24 lsls r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 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 .pool thumb_func_end sub_8028C7C thumb_func_start sub_8028CA4 sub_8028CA4: @ 8028CA4 push {lr} lsls r0, 16 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022CB8 lsrs r0, 14 adds r0, r2 ldr r0, [r0] ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_8028CA4 thumb_func_start sub_8028CD0 sub_8028CD0: @ 8028CD0 lsls r0, 24 lsrs r0, 24 ldr r1, =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 .pool thumb_func_end sub_8028CD0 thumb_func_start sub_8028CF4 sub_8028CF4: @ 8028CF4 push {r4-r7,lr} adds r4, r0, 0 adds r0, 0x42 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _08028D36 movs r3, 0 ldr r7, =gUnknown_082FB354 ldr r6, =gUnknown_02022CB0 movs r5, 0 _08028D0A: 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 _08028D2C ldrh r0, [r4, 0x20] subs r0, 0x1 strh r0, [r4, 0x20] ldr r0, [r2] strh r5, [r0, 0x2] _08028D2C: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _08028D0A _08028D36: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028CF4 thumb_func_start sub_8028D44 sub_8028D44: @ 8028D44 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, =gUnknown_082FB360 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] ldr r0, =gDodrioBerryPlatformGfx adds r1, r6, 0 bl LZ77UnCompWram cmp r6, 0 beq _08028DD2 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, =gUnknown_082FB368 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, =gUnknown_082FB356 adds r0, r7, 0x2 mov r9, r0 ldr r1, =gUnknown_02022CB0 mov r8, r1 _08028D9E: 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 _08028D9E _08028DD2: 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 .pool thumb_func_end sub_8028D44 thumb_func_start sub_8028DFC sub_8028DFC: @ 8028DFC push {r4-r7,lr} movs r3, 0 ldr r0, =gUnknown_02022CB0 mov r12, r0 ldr r4, =gUnknown_082FB356 adds r7, r4, 0x2 ldr r6, =gSprites movs r5, 0x1 _08028E0C: 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 _08028E0C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028DFC thumb_func_start sub_8028E4C sub_8028E4C: @ 8028E4C push {r4,r5,lr} movs r2, 0 ldr r5, =gUnknown_02022CB0 ldr r4, =gSprites movs r3, 0 _08028E56: 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 _08028E56 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8028E4C thumb_func_start sub_8028E84 sub_8028E84: @ 8028E84 push {r4-r6,lr} movs r5, 0 ldr r6, =gUnknown_02022CB0 _08028E8A: 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, =gSprites adds r0, r1 cmp r0, 0 beq _08028EA4 bl DestroySprite _08028EA4: 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 _08028E8A pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028E84 thumb_func_start sub_8028EC8 sub_8028EC8: @ 8028EC8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_02022CB0 movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r5, 0x5 negs r5, r5 _08028EDE: 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 _08028EDE pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028EC8 thumb_func_start sub_8028F14 sub_8028F14: @ 8028F14 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 _08028FC6 lsls r0, 2 ldr r1, =_08028F34 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08028F34: .4byte _08028FB4 .4byte _08028F48 .4byte _08028F52 .4byte _08028F66 .4byte _08028F8E _08028F48: cmp r2, 0 beq _08028F7E cmp r2, 0x1 bne _08028FC6 b _08028F82 _08028F52: cmp r2, 0x1 beq _08028FB8 cmp r2, 0x1 bgt _08028F60 cmp r2, 0 beq _08028FB4 b _08028FC6 _08028F60: cmp r2, 0x2 bne _08028FC6 b _08028FC4 _08028F66: cmp r2, 0x1 beq _08028F82 cmp r2, 0x1 bgt _08028F74 cmp r2, 0 beq _08028F7E b _08028FC6 _08028F74: cmp r2, 0x2 beq _08028F86 cmp r2, 0x3 beq _08028F8A b _08028FC6 _08028F7E: movs r3, 0xC b _08028FC6 _08028F82: movs r3, 0x12 b _08028FC6 _08028F86: movs r3, 0x18 b _08028FC6 _08028F8A: movs r3, 0x6 b _08028FC6 _08028F8E: cmp r2, 0x4 bhi _08028FC6 lsls r0, r2, 2 ldr r1, =_08028FA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08028FA0: .4byte _08028FB4 .4byte _08028FB8 .4byte _08028FBC .4byte _08028FC0 .4byte _08028FC4 _08028FB4: movs r3, 0xF b _08028FC6 _08028FB8: movs r3, 0x15 b _08028FC6 _08028FBC: movs r3, 0x1B b _08028FC6 _08028FC0: movs r3, 0x3 b _08028FC6 _08028FC4: movs r3, 0x9 _08028FC6: lsls r0, r3, 3 pop {r1} bx r1 thumb_func_end sub_8028F14 thumb_func_start sub_8028FCC sub_8028FCC: @ 8028FCC push {r4,lr} movs r4, 0 _08028FD0: adds r0, r4, 0 movs r1, 0x1 bl sub_8028BF8 adds r0, r4, 0 movs r1, 0x1 bl sub_8028C7C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xA bls _08028FD0 movs r0, 0 bl sub_80289E8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FCC thumb_func_start sub_8028FF8 sub_8028FF8: @ 8028FF8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl GetWindowFrameTilesPal ldr r1, [r0] movs r2, 0x90 lsls r2, 1 movs r0, 0 movs r3, 0x1 bl LoadBgTiles adds r0, r4, 0 bl GetWindowFrameTilesPal ldr r0, [r0, 0x4] movs r1, 0xA0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FF8 thumb_func_start sub_802902C sub_802902C: @ 802902C push {lr} movs r0, 0 movs r1, 0xA movs r2, 0xB0 bl LoadUserWindowBorderGfx_ pop {r0} bx r0 thumb_func_end sub_802902C thumb_func_start sub_802903C sub_802903C: @ 802903C ldr r3, =gUnknown_02022CF8 ldr r0, [r3] movs r2, 0xC0 lsls r2, 6 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r1, =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 .pool thumb_func_end sub_802903C thumb_func_start sub_8029074 sub_8029074: @ 8029074 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_8029074 thumb_func_start sub_8029174 sub_8029174: @ 8029174 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_8029174 thumb_func_start sub_8029274 sub_8029274: @ 8029274 push {r4,lr} ldr r4, =gUnknown_02022CF8 str r0, [r4] movs r2, 0xC0 lsls r2, 6 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r3, =0x00003014 adds r1, r0, r3 strb r2, [r1] ldr r1, =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, =sub_8029314 movs r1, 0x3 bl CreateTask ldr r1, [r4] ldr r2, =0x00003004 adds r1, r2 strb r0, [r1] ldr r0, =sub_8029338 bl sub_802A72C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8029274 thumb_func_start sub_80292D4 sub_80292D4: @ 80292D4 push {lr} bl FreeAllWindowBuffers pop {r0} bx r0 thumb_func_end sub_80292D4 thumb_func_start sub_80292E0 sub_80292E0: @ 80292E0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, =gUnknown_082FB40C adds r7, r5, 0x4 _080292EC: lsls r1, r4, 3 adds r0, r1, r5 ldrb r0, [r0] cmp r0, r6 bne _080292FE adds r0, r1, r7 ldr r0, [r0] bl sub_802A72C _080292FE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080292EC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80292E0 thumb_func_start sub_8029314 sub_8029314: @ 8029314 push {lr} ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0802932E bl sub_802A75C bl _call_via_r0 _0802932E: pop {r0} bx r0 .pool thumb_func_end sub_8029314 thumb_func_start sub_8029338 sub_8029338: @ 8029338 push {lr} ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x4 bhi _08029430 lsls r0, 2 ldr r1, =_08029360 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08029360: .4byte _08029374 .4byte _0802937A .4byte _08029394 .4byte _080293D8 .4byte _08029404 _08029374: bl sub_802A7A8 b _08029414 _0802937A: bl sub_802A8E8 cmp r0, 0x1 bne _0802943A ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 b _0802941C .pool _08029394: ldr r1, =gDodrioBerryBgTilemap1 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gDodrioBerryBgTilemap2Left movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gDodrioBerryBgTilemap2Right 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 _08029414 .pool _080293D8: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 b _0802941C .pool _08029404: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8028FF8 bl sub_802902C _08029414: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 _0802941C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802943A .pool _08029430: movs r2, 0xC0 lsls r2, 6 adds r1, r2 movs r0, 0x1 str r0, [r1] _0802943A: pop {r0} bx r0 thumb_func_end sub_8029338 thumb_func_start sub_8029440 sub_8029440: @ 8029440 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r2, =0x00003014 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08029488 cmp r0, 0x1 bne _08029460 b _080295EC _08029460: adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB4 bhi _0802946E b _0802968E _0802946E: bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 cmp r6, r7 bcc _0802947E b _08029666 _0802947E: b _08029640 .pool _08029488: bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gUnknown_082FB3C8 subs r0, r7, 0x1 lsls r0, 2 adds r0, r1 ldr r5, [r0] ldr r2, =0xffffff00 ldr r0, [sp, 0xC] ands r0, r2 ldr r1, =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, =0xffff00ff ands r0, r1 movs r1, 0xD0 lsls r1, 4 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0x98 lsls r1, 13 orrs r0, r1 str r0, [sp, 0x10] movs r6, 0 cmp r6, r7 bcs _080295B8 mov r3, sp adds r3, 0xC str r3, [sp, 0x18] mov r10, r4 ldr r0, =0x00003008 mov r9, r0 _080294DC: movs r1, 0 mov r8, r1 adds r0, r6, 0 bl sub_8027A48 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_8027660 adds r1, r0, 0 movs r0, 0x1 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, =0xffff00ff ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] ldrb r2, [r5, 0x1] lsls r2, 16 ldr r0, =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 _0802955A movs r0, 0x2 mov r8, r0 _0802955A: adds r0, r4, 0 bl sub_8027660 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, =gUnknown_082FB380 adds r1, r3 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 bl AddTextPrinterParameterized3 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_8029174 adds r5, 0x4 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r7 bcc _080294DC _080295B8: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _0802962A .pool _080295EC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802968E bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 cmp r6, r7 bcs _0802961C _08029604: ldr r0, [r4] ldr r1, =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 _08029604 _0802961C: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 _0802962A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802968E .pool _08029640: ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =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 _08029640 _08029666: 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, =gUnknown_02022CF8 ldr r0, [r0] movs r3, 0xC0 lsls r3, 6 adds r0, r3 movs r1, 0x1 str r1, [r0] _0802968E: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8029440 thumb_func_start sub_80296A8 sub_80296A8: @ 80296A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x6C lsls r0, 24 movs r1, 0 mov r8, r1 movs r6, 0 lsrs r7, r0, 24 add r4, sp, 0x2C ldr r1, =gUnknown_082FB45C adds r0, r4, 0 movs r2, 0x5 bl memcpy movs r5, 0 cmp r5, r7 bcs _080296F8 add r4, sp, 0x34 _080296D2: mov r0, sp adds r0, r5 adds r0, 0x2C strb r5, [r0] add r0, sp, 0x5C adds r1, r5, 0 bl sub_802793C 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 _080296D2 _080296F8: bl sub_8027748 cmp r0, 0 beq _0802972E _08029700: movs r5, 0 cmp r5, r7 bcs _08029728 add r2, sp, 0x34 add r1, sp, 0x2C _0802970A: lsls r0, r5, 3 adds r0, r2, r0 ldrb r0, [r0] cmp r0, r8 bne _0802971E adds r0, r1, r6 strb r5, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0802971E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _0802970A _08029728: mov r8, r6 cmp r6, r7 bcc _08029700 _0802972E: movs r5, 0 ldr r4, =gText_SpacePoints cmp r5, r7 bcs _08029754 add r1, sp, 0x34 add r6, sp, 0x38 subs r3, r7, 0x1 _0802973C: lsls r2, r5, 3 adds r0, r6, r2 ldr r0, [r0] cmp r0, 0 bne _0802974A adds r0, r1, r2 strb r3, [r0] _0802974A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _0802973C _08029754: movs r0, 0x1 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 _08029860 mov r2, sp adds r2, 0x34 str r2, [sp, 0x68] ldr r3, =0x00003009 mov r10, r3 _08029774: movs r0, 0 mov r8, r0 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, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r2, =gUnknown_082FB3DC ldr r3, [sp, 0x68] adds r1, r3, r1 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r2, [r1] ldr r3, =gUnknown_082FB402 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, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080297CC movs r0, 0x2 mov r8, r0 _080297CC: adds r0, r4, 0 bl sub_8027660 adds r3, r0, 0 ldr r1, =gUnknown_02022CF8 ldr r0, [r1] add r0, r10 ldrb r0, [r0] mov r2, r8 lsls r1, r2, 1 add r1, r8 ldr r2, =gUnknown_082FB380 adds r1, r2 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0x1 movs r2, 0x1C adds r3, r6, 0 bl AddTextPrinterParameterized3 add r0, sp, 0xC mov r1, r9 movs r2, 0 movs r3, 0x7 bl ConvertIntToDecimalStringN movs r0, 0x1 add r1, sp, 0xC movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r3, r0, 0 ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r1, [sp, 0x64] subs r3, r1, r3 lsls r3, 24 lsrs r3, 24 str r6, [sp] movs r2, 0xFF str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl AddTextPrinterParameterized ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r1, [sp, 0x64] lsls r3, r1, 24 str r6, [sp] movs r2, 0xFF str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 ldr r2, =gText_SpacePoints lsrs r3, 24 bl AddTextPrinterParameterized adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _08029774 _08029860: add sp, 0x6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80296A8 thumb_func_start sub_802988C sub_802988C: @ 802988C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 bl sub_8027650 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] ldr r6, =gUnknown_02022CF8 ldr r1, [r6] ldr r2, =0x00003014 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xB bls _080298B2 b _08029FA8 _080298B2: lsls r0, 2 ldr r1, =_080298C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080298C8: .4byte _080298F8 .4byte _08029914 .4byte _0802996C .4byte _08029B6C .4byte _08029BB8 .4byte _08029BFC .4byte _08029C60 .4byte _08029C9C .4byte _08029CE0 .4byte _08029DA0 .4byte _08029F08 .4byte _08029F5C _080298F8: bl sub_802784C ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x0000301c adds r2, r1, r0 movs r0, 0 strh r0, [r2] b _08029F8A .pool _08029914: ldr r6, =gUnknown_082F7BBC adds r0, r6, 0 bl AddWindow ldr r4, =gUnknown_02022CF8 ldr r1, [r4] ldr r2, =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, =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_8029174 mov r0, r9 bl sub_8029174 b _08029F88 .pool _0802996C: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r5, =0x00003008 adds r0, r5 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 mov r9, r1 add r0, r9 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, =gText_BerryPickingResults mov r8, r2 movs r2, 0x1 negs r2, r2 movs r0, 0x1 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, 0x1 str r1, [sp] movs r6, 0xFF str r6, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] mov r2, r8 bl AddTextPrinterParameterized ldr r0, [r4] add r0, r9 ldrb r0, [r0] ldr r2, =gText_10P30P50P50P movs r1, 0x11 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x44 bl AddTextPrinterParameterized mov r9, r5 ldr r0, [sp, 0xC] cmp r9, r0 bcc _080299E2 b _08029B2A _080299E2: movs r4, 0 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r9, r0 bne _080299F2 movs r4, 0x2 _080299F2: mov r0, r9 bl sub_8027660 adds r6, r0, 0 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] mov r2, r9 lsls r5, r2, 1 ldr r2, =gUnknown_082FB3F8 adds r1, r5, r2 ldrb r3, [r1] lsls r1, r4, 1 adds r1, r4 ldr r2, =gUnknown_082FB380 adds r1, r2 str r1, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] str r6, [sp, 0x8] movs r1, 0x1 movs r2, 0 bl AddTextPrinterParameterized3 movs r7, 0 mov r8, r5 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x10] ldr r1, =gStringVar4 mov r10, r1 _08029A36: mov r0, r9 adds r1, r7, 0 bl sub_80276A0 lsls r0, 16 lsrs r0, 16 ldr r1, =0x0000270f bl sub_8027A38 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl sub_802778C ldr r1, =0x0000270f bl sub_8027A38 lsls r0, 16 lsrs r6, r0, 16 mov r0, r10 adds r1, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN movs r0, 0x1 mov r1, r10 movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r5, r0, 0 cmp r6, r4 bne _08029AE0 cmp r6, 0 beq _08029AE0 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] lsls r1, r7, 1 ldr r2, =gUnknown_082FB3F0 adds r1, r2 ldrb r2, [r1] subs r2, r5 lsls r2, 24 lsrs r2, 24 ldr r1, =gUnknown_082FB3F8 add r1, r8 ldrb r3, [r1] ldr r1, =gUnknown_082FB383 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] movs r1, 0x1 bl AddTextPrinterParameterized3 b _08029B10 .pool _08029AE0: ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] lsls r1, r7, 1 ldr r2, =gUnknown_082FB3F0 adds r1, r2 ldrb r3, [r1] subs r3, r5 lsls r3, 24 lsrs r3, 24 ldr r1, =gUnknown_082FB3F8 add r1, r8 ldrb r1, [r1] str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 ldr r2, =gStringVar4 bl AddTextPrinterParameterized _08029B10: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _08029A36 ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 ldr r2, [sp, 0xC] cmp r9, r2 bcs _08029B2A b _080299E2 _08029B2A: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029B6C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029B90 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029B90: movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0 bl sub_8028C30 ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029BB8: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _08029BD0 b _08029FF8 _08029BD0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08029BDE b _08029FF8 _08029BDE: movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_8028C30 b _08029F88 .pool _08029BFC: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r5, =0x00003008 adds r0, r5 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r6, =gText_AnnouncingRankings movs r2, 0x1 negs r2, r2 movs r0, 0x1 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, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r6, 0 bl AddTextPrinterParameterized b _08029F88 .pool _08029C60: ldr r0, [sp, 0xC] bl sub_80296A8 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029C9C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029CC0 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029CC0: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029CE0: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _08029CF8 b _08029FF8 _08029CF8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08029D06 b _08029FF8 _08029D06: movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE bl sub_8027748 ldr r1, =0x00000bb7 cmp r0, r1 bhi _08029D3C ldr r0, [r4] ldr r2, =0x00003014 adds r0, r2 movs r1, 0x7F strb r1, [r0] b _08029D4C .pool _08029D3C: bl StopMapMusic ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08029D4C: 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, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =0x00003009 adds r0, r4 ldrb r0, [r0] bl RemoveWindow ldr r6, =gUnknown_082F7BCC 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_8029174 b _08029FF8 .pool _08029DA0: ldr r0, =0x0000016f bl PlayNewMapMusic ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r6, =0x00003008 adds r0, r6 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 mov r10, r1 add r0, r10 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gText_AnnouncingPrizes movs r2, 0x1 negs r2, r2 movs r0, 0x1 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, 0x1 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, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized bl DynamicPlaceholderTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 ldr r5, =gStringVar1 adds r1, r5, 0 bl CopyItemName movs r0, 0 adds r1, r5, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r7, =gStringVar4 ldr r1, =gText_FirstPlacePrize adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders 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, 0x1 adds r2, r7, 0 movs r3, 0 bl AddTextPrinterParameterized bl sub_80279C8 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 cmp r4, 0 beq _08029EC8 cmp r4, 0x3 beq _08029EC8 bl DynamicPlaceholderTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl CopyItemName movs r0, 0 adds r1, r5, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr cmp r4, 0x2 bne _08029E9C ldr r1, =gText_CantHoldAnyMore adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _08029EA8 .pool _08029E9C: cmp r6, 0x1 bne _08029EA8 ldr r1, =gText_FilledStorageSpace adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders _08029EA8: ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] ldr r2, =gStringVar4 movs r1, 0x29 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized _08029EC8: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029F08: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029F2C ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029F2C: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =0x0000020b movs r1, 0x14 movs r2, 0xA bl FadeOutAndFadeInNewMapMusic ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029F5C: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bls _08029FF8 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08029FF8 movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE _08029F88: ldr r1, [r4] _08029F8A: ldr r2, =0x00003014 adds r1, r2 _08029F8E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08029FF8 .pool _08029FA8: ldr r5, =0x00003008 adds r0, r1, r5 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r6] ldr r4, =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] _08029FF8: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802988C thumb_func_start sub_802A010 sub_802A010: @ 802A010 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r1, =gUnknown_02022CF8 ldr r2, [r1] ldr r3, =0x00003014 adds r0, r2, r3 ldrb r6, [r0] adds r7, r1, 0 cmp r6, 0x1 beq _0802A0CC cmp r6, 0x1 bgt _0802A040 cmp r6, 0 beq _0802A04E b _0802A2FC .pool _0802A040: cmp r6, 0x2 bne _0802A046 b _0802A194 _0802A046: cmp r6, 0x3 bne _0802A04C b _0802A1D0 _0802A04C: b _0802A2FC _0802A04E: ldr r0, =gUnknown_082F7BD4 mov r9, r0 bl AddWindow ldr r1, [r7] ldr r4, =0x00003008 adds r1, r4 strb r0, [r1] movs r1, 0x8 add r1, r9 mov r8, r1 mov r0, r8 bl AddWindow ldr r1, [r7] ldr r2, =0x00003009 adds r1, r2 strb r0, [r1] ldr r0, [r7] adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] ldr r3, =0x00003009 adds r0, r3 ldrb r0, [r0] bl ClearWindowTilemap mov r0, r9 bl sub_8029174 mov r0, r8 bl sub_8029074 ldr r1, [r7] ldr r0, =0x00003014 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r7] ldr r1, =0x00003020 adds r0, r1 strb r6, [r0] ldr r0, [r7] ldr r2, =0x00003024 adds r0, r2 strb r6, [r0] b _0802A35E .pool _0802A0CC: ldr r3, =0x00003008 mov r8, r3 adds r0, r2, r3 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] ldr r1, =0x00003009 mov r10, r1 add r0, r10 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_WantToPlayAgain movs r1, 0x5 str r1, [sp] movs r3, 0xFF mov r9, r3 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_Yes str r6, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_SelectorArrow2 str r6, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r7] add r0, r10 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r7] ldr r2, =0x00003014 adds r1, r2 b _0802A2EA .pool _0802A194: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A1B6 ldr r0, [r7] ldr r3, =0x00003008 adds r0, r3 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r7] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A1B6: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r7] ldr r2, =0x00003014 adds r1, r2 b _0802A2EA .pool _0802A1D0: ldr r3, =0x00003020 adds r0, r2, r3 ldrb r5, [r0] cmp r5, 0 bne _0802A1DC movs r5, 0x1 _0802A1DC: ldr r0, =0x00003009 mov r8, r0 adds r0, r2, r0 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_Yes movs r1, 0x1 str r1, [sp] movs r3, 0xFF mov r10, r3 str r3, [sp, 0x4] movs r1, 0 mov r9, r1 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r10 str r3, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_SelectorArrow2 subs r1, r5, 0x1 lsls r1, 4 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] mov r3, r10 str r3, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r5, 0x1 movs r2, 0x1 ands r2, r1 cmp r2, 0 beq _0802A294 movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _0802A2E4 strb r5, [r1] b _0802A2E4 .pool _0802A294: movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0802A2CC movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r2, =0x00003020 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x1 beq _0802A2C2 cmp r0, 0x1 bgt _0802A2BC cmp r0, 0 beq _0802A2C2 b _0802A35E .pool _0802A2BC: cmp r0, 0x2 beq _0802A2C8 b _0802A35E _0802A2C2: movs r0, 0x2 strb r0, [r1] b _0802A35E _0802A2C8: strb r5, [r1] b _0802A35E _0802A2CC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802A35E movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r0, r3 movs r1, 0x2 strb r1, [r0] _0802A2E4: ldr r1, [r7] ldr r0, =0x00003014 adds r1, r0 _0802A2EA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A35E .pool _0802A2FC: ldr r0, [r7] ldr r2, =0x00003020 adds r1, r0, r2 ldrb r1, [r1] ldr r3, =0x00003024 adds r0, r3 strb r1, [r0] ldr r0, [r7] ldr r6, =0x00003008 adds r0, r6 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] adds r0, r6 ldrb r0, [r0] bl RemoveWindow ldr r0, [r7] ldr r2, =0x00003009 adds r0, r2 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, [r7] movs r3, 0xC0 lsls r3, 6 adds r0, r3 movs r1, 0x1 str r1, [r0] _0802A35E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802A010 thumb_func_start sub_802A380 sub_802A380: @ 802A380 push {r4-r6,lr} sub sp, 0x10 ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r6, =0x00003014 adds r0, r6 ldrb r4, [r0] cmp r4, 0x1 beq _0802A3D8 cmp r4, 0x1 bgt _0802A3A4 cmp r4, 0 beq _0802A3AE b _0802A420 .pool _0802A3A4: cmp r4, 0x2 beq _0802A3EC cmp r4, 0x3 beq _0802A404 b _0802A420 _0802A3AE: movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, =gText_SavingDontTurnOffPower 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, 0x1 movs r3, 0 bl AddTextPrinterParameterized2 b _0802A410 .pool _0802A3D8: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, [r5] ldr r0, =0x00003014 adds r1, r0 b _0802A414 .pool _0802A3EC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A448 ldr r0, =sub_8153688 movs r1, 0 bl CreateTask b _0802A410 .pool _0802A404: ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0802A448 _0802A410: ldr r1, [r5] adds r1, r6 _0802A414: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A448 .pool _0802A420: 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, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] _0802A448: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802A380 thumb_func_start sub_802A454 sub_802A454: @ 802A454 push {r4-r6,lr} sub sp, 0xC ldr r1, =gUnknown_02022CF8 ldr r2, [r1] ldr r6, =0x00003014 adds r0, r2, r6 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x1 beq _0802A4AC cmp r0, 0x1 bgt _0802A47C cmp r0, 0 beq _0802A482 b _0802A520 .pool _0802A47C: cmp r0, 0x2 beq _0802A4F4 b _0802A520 _0802A482: ldr r4, =gUnknown_082F7BEC adds r0, r4, 0 bl AddWindow ldr r1, [r5] ldr r2, =0x00003008 adds r1, r2 strb r0, [r1] ldr r0, [r5] adds r0, r2 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r4, 0 bl sub_8029174 b _0802A510 .pool _0802A4AC: ldr r4, =0x00003008 adds r0, r2, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, r4 ldrb r0, [r0] ldr r2, =gText_CommunicationStandby3 movs r1, 0x5 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r5] ldr r0, =0x00003014 adds r1, r0 b _0802A514 .pool _0802A4F4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A50A ldr r0, [r5] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A50A: movs r0, 0 bl CopyBgTilemapBufferToVram _0802A510: ldr r1, [r5] adds r1, r6 _0802A514: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A52C .pool _0802A520: ldr r0, [r5] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] _0802A52C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802A454 thumb_func_start sub_802A534 sub_802A534: @ 802A534 push {r4,r5,lr} sub sp, 0x8 ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =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 .pool thumb_func_end sub_802A534 thumb_func_start sub_802A588 sub_802A588: @ 802A588 push {r4-r7,lr} sub sp, 0xC ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r7, =0x00003014 adds r2, r1, r7 ldrb r5, [r2] adds r6, r0, 0 cmp r5, 0x1 beq _0802A610 cmp r5, 0x1 bgt _0802A5B0 cmp r5, 0 beq _0802A5BA b _0802A6A4 .pool _0802A5B0: cmp r5, 0x2 beq _0802A658 cmp r5, 0x3 beq _0802A684 b _0802A6A4 _0802A5BA: ldr r4, =gUnknown_082F7BE4 adds r0, r4, 0 bl AddWindow ldr r1, [r6] ldr r2, =0x00003008 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, r2 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r4, 0 bl sub_8029174 ldr r1, [r6] adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r6] ldr r2, =0x0000301c adds r1, r0, r2 movs r2, 0 strh r5, [r1] ldr r1, =0x00003020 adds r0, r1 strb r2, [r0] ldr r0, [r6] adds r1, 0x4 adds r0, r1 strb r2, [r0] b _0802A6EA .pool _0802A610: ldr r4, =0x00003008 adds r0, r1, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r6] adds r0, r4 ldrb r0, [r0] ldr r2, =gText_SomeoneDroppedOut movs r1, 0x5 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r6] adds r0, r4 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r6] ldr r2, =0x00003014 adds r1, r2 b _0802A678 .pool _0802A658: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A66E ldr r0, [r6] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A66E: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r6] adds r1, r7 _0802A678: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A6EA .pool _0802A684: ldr r0, =0x0000301c adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x77 bls _0802A6EA ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _0802A6EA .pool _0802A6A4: ldr r0, [r6] ldr r1, =0x00003024 adds r0, r1 movs r1, 0x5 strb r1, [r0] ldr r0, [r6] ldr r4, =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] _0802A6EA: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802A588 thumb_func_start unused_0 unused_0: @ 802A6FC push {r4,lr} ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =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 .pool thumb_func_end unused_0 thumb_func_start nullsub_16 nullsub_16: @ 802A728 bx lr thumb_func_end nullsub_16 thumb_func_start sub_802A72C sub_802A72C: @ 802A72C push {r4,lr} ldr r2, =gUnknown_02022CF8 ldr r1, [r2] ldr r3, =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, =0x00003028 adds r1, r2 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802A72C thumb_func_start sub_802A75C sub_802A75C: @ 802A75C ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003028 adds r0, r1 ldr r0, [r0] bx lr .pool thumb_func_end sub_802A75C thumb_func_start sub_802A770 sub_802A770: @ 802A770 push {lr} ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 beq _0802A78C movs r0, 0x1 b _0802A78E .pool _0802A78C: movs r0, 0 _0802A78E: pop {r1} bx r1 thumb_func_end sub_802A770 thumb_func_start sub_802A794 sub_802A794: @ 802A794 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003024 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_802A794 thumb_func_start sub_802A7A8 sub_802A7A8: @ 802A7A8 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, =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0802A7CE: 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 _0802A7CE 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, =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, =gUnknown_082F7BA4 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 sub_8197200 movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r4, =gUnknown_02022CF8 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 .pool thumb_func_end sub_802A7A8 thumb_func_start sub_802A8E8 sub_802A8E8: @ 802A8E8 push {lr} sub sp, 0x4 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003018 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x5 bhi _0802A982 lsls r0, 2 ldr r1, =_0802A910 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802A910: .4byte _0802A928 .4byte _0802A938 .4byte _0802A93E .4byte _0802A94C .4byte _0802A964 .4byte _0802A972 _0802A928: ldr r0, =gDodrioBerryBgPal1 movs r1, 0 movs r2, 0x40 bl LoadPalette b _0802A98A .pool _0802A938: bl reset_temp_tile_data_buffers b _0802A98A _0802A93E: ldr r1, =gDodrioBerryBgGfx1 movs r0, 0 str r0, [sp] movs r0, 0x3 b _0802A954 .pool _0802A94C: ldr r1, =gDodrioBerryBgGfx2 movs r0, 0 str r0, [sp] movs r0, 0x1 _0802A954: movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _0802A98A .pool _0802A964: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802A98A b _0802A998 _0802A972: movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _0802A98A _0802A982: movs r0, 0 strb r0, [r1] movs r0, 0x1 b _0802A99A _0802A98A: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003018 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0802A998: movs r0, 0 _0802A99A: add sp, 0x4 pop {r1} bx r1 .pool thumb_func_end sub_802A8E8 .align 2, 0 @ don't pad with nop