.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80D0164 sub_80D0164: @ 80D0164 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r0, =0x00000974 bl Alloc str r0, [r4] cmp r0, 0 beq _080D01B0 ldr r0, =gUnknown_0857BB1C bl AddWindow8Bit adds r1, r0, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] movs r2, 0x88 lsls r2, 6 adds r0, r2 strh r1, [r0] lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF beq _080D01B0 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 b _080D01B2 .pool _080D01B0: movs r0, 0 _080D01B2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D0164 thumb_func_start sub_80D01B8 sub_80D01B8: @ 80D01B8 push {lr} ldr r0, =gUnknown_02039D80 ldr r0, [r0] cmp r0, 0 beq _080D01C6 bl Free _080D01C6: pop {r0} bx r0 .pool thumb_func_end sub_80D01B8 thumb_func_start sub_80D01D0 sub_80D01D0: @ 80D01D0 ldr r2, =gUnknown_02039D80 ldr r1, [r2] movs r3, 0 strb r0, [r1] ldr r0, [r2] strb r3, [r0, 0x1] bx lr .pool thumb_func_end sub_80D01D0 thumb_func_start sub_80D01E4 sub_80D01E4: @ 80D01E4 push {lr} ldr r0, =gUnknown_02039D80 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _080D0244 lsls r0, 2 ldr r1, =_080D0204 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D0204: .4byte _080D021C .4byte _080D0222 .4byte _080D0228 .4byte _080D022E .4byte _080D0234 .4byte _080D023A _080D021C: bl sub_80D024C b _080D023E _080D0222: bl sub_80D0344 b _080D023E _080D0228: bl sub_80D03B0 b _080D023E _080D022E: bl sub_80D0420 b _080D023E _080D0234: bl sub_80D04A0 b _080D023E _080D023A: bl sub_80D04C8 _080D023E: lsls r0, 24 lsrs r0, 24 b _080D0246 _080D0244: movs r0, 0 _080D0246: pop {r1} bx r1 thumb_func_end sub_80D01E4 thumb_func_start sub_80D024C sub_80D024C: @ 80D024C push {r4-r6,lr} sub sp, 0x8 ldr r6, =gUnknown_02039D80 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0x1 beq _080D027C cmp r0, 0x1 bgt _080D0268 cmp r0, 0 beq _080D026E b _080D0338 .pool _080D0268: cmp r0, 0x2 beq _080D0324 b _080D0338 _080D026E: movs r0, 0 bl HideBg movs r0, 0x80 bl sub_80D304C b _080D030E _080D027C: adds r0, r1, 0x2 adds r1, 0x3 bl sub_80CFE14 ldr r1, [r6] ldrb r0, [r1, 0x2] strb r0, [r1, 0x4] ldr r1, [r6] ldrb r0, [r1, 0x3] strb r0, [r1, 0x5] ldr r4, =0xfffffc00 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgX movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgY movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r5, =gUnknown_02039D08 ldr r0, [r5] movs r4, 0x88 lsls r4, 6 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer8Bit ldr r1, [r6] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] bl sub_80D07B0 movs r0, 0 movs r1, 0x4 movs r2, 0x1 bl SetBgAttribute ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram8Bit movs r0, 0xFC lsls r0, 6 ldr r2, =0x00007fff movs r1, 0x8 bl BlendPalettes movs r0, 0x2 bl sub_80CFE54 movs r0, 0x8 movs r1, 0x80 bl SetGpuRegBits _080D030E: ldr r1, [r6] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080D0338 .pool _080D0324: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _080D0338 movs r0, 0 bl ShowBg movs r0, 0 b _080D033A _080D0338: movs r0, 0x1 _080D033A: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80D024C thumb_func_start sub_80D0344 sub_80D0344: @ 80D0344 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _080D036E cmp r0, 0x1 bgt _080D0360 cmp r0, 0 beq _080D0366 b _080D03A8 .pool _080D0360: cmp r0, 0x2 beq _080D0382 b _080D03A8 _080D0366: movs r0, 0 bl HideBg b _080D0378 _080D036E: bl sub_80D0B5C movs r0, 0 bl sub_80CFE54 _080D0378: ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080D03A8 _080D0382: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _080D03A8 bl sub_80CFE84 movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette movs r0, 0 bl ShowBg movs r0, 0 b _080D03AA _080D03A8: movs r0, 0x1 _080D03AA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D0344 thumb_func_start sub_80D03B0 sub_80D03B0: @ 80D03B0 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0 beq _080D03C8 cmp r0, 0x1 beq _080D040C b _080D0416 .pool _080D03C8: bl sub_80CD554 lsls r0, 24 cmp r0, 0 bne _080D0416 ldr r1, [r4] adds r0, r1, 0x6 adds r1, 0x7 bl sub_80CFE14 bl sub_80D062C ldr r1, [r4] ldrb r0, [r1, 0x6] strb r0, [r1, 0x4] ldr r1, [r4] ldrb r0, [r1, 0x7] strb r0, [r1, 0x5] ldr r0, =gUnknown_02039D08 ldr r0, [r0] movs r1, 0x88 lsls r1, 6 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram8Bit ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080D0416 .pool _080D040C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _080D0418 _080D0416: movs r0, 0x1 _080D0418: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D03B0 thumb_func_start sub_80D0420 sub_80D0420: @ 80D0420 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _080D044E cmp r0, 0x1 bgt _080D043C cmp r0, 0 beq _080D0442 b _080D0498 .pool _080D043C: cmp r0, 0x2 beq _080D047A b _080D0498 _080D0442: bl sub_80D08CC bl sub_80D09A4 movs r0, 0 b _080D046C _080D044E: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _080D0498 movs r0, 0x3 bl sub_80CFE54 movs r1, 0x80 lsls r1, 1 movs r0, 0 movs r2, 0x8 bl sub_80D0884 movs r0, 0x1 _080D046C: bl sub_80CDC64 ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080D0498 _080D047A: bl sub_80D0894 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl DoMonPlaceChange lsls r0, 24 lsrs r0, 24 cmp r4, 0 bne _080D0498 cmp r0, 0 bne _080D0498 movs r0, 0 b _080D049A _080D0498: movs r0, 0x1 _080D049A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D0420 thumb_func_start sub_80D04A0 sub_80D04A0: @ 80D04A0 push {r4,lr} bl sub_80CD554 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80D0894 lsls r0, 24 lsrs r0, 24 cmp r4, 0 bne _080D04C0 cmp r0, 0 bne _080D04C0 movs r0, 0 b _080D04C2 _080D04C0: movs r0, 0x1 _080D04C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D04A0 thumb_func_start sub_80D04C8 sub_80D04C8: @ 80D04C8 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _080D0506 cmp r0, 0x1 bgt _080D04E4 cmp r0, 0 beq _080D04EE b _080D0576 .pool _080D04E4: cmp r0, 0x2 beq _080D0532 cmp r0, 0x3 beq _080D0550 b _080D0576 _080D04EE: bl sub_80D0AAC movs r1, 0xFF lsls r1, 8 movs r0, 0 movs r2, 0x8 bl sub_80D0884 movs r0, 0 bl sub_80CDC64 b _080D0546 _080D0506: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _080D0576 bl sub_80D0894 lsls r0, 24 cmp r0, 0 bne _080D0576 bl sub_80D0A1C movs r0, 0x2 bl sub_80CFE54 movs r0, 0x1 bl sub_80CDC64 movs r0, 0 bl HideBg b _080D0546 _080D0532: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _080D0576 movs r0, 0 bl sub_80CFE54 bl sub_80D0B5C _080D0546: ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080D0576 _080D0550: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _080D0576 movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette bl sub_80CFE84 movs r0, 0 bl ShowBg movs r0, 0 b _080D0578 _080D0576: movs r0, 0x1 _080D0578: pop {r4} pop {r1} bx r1 thumb_func_end sub_80D04C8 thumb_func_start sub_80D0580 sub_80D0580: @ 80D0580 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080D05BC cmp r0, 0x1 bgt _080D0596 cmp r0, 0 beq _080D05A0 b _080D0624 _080D0596: cmp r1, 0x2 beq _080D05DC cmp r1, 0x3 beq _080D05FC b _080D0624 _080D05A0: ldr r0, =gUnknown_02039D80 ldr r1, [r0] ldrb r0, [r1, 0x9] cmp r0, 0 beq _080D060A subs r0, 0x1 strb r0, [r1, 0x9] movs r1, 0x80 lsls r1, 3 movs r0, 0 b _080D05F0 .pool _080D05BC: ldr r0, =gUnknown_02039D80 ldr r1, [r0] ldrb r2, [r1, 0x9] ldrb r0, [r1, 0xB] adds r0, r2, r0 cmp r0, 0x4 bgt _080D060A adds r0, r2, 0x1 strb r0, [r1, 0x9] movs r1, 0xFC lsls r1, 8 movs r0, 0 b _080D05F0 .pool _080D05DC: ldr r0, =gUnknown_02039D80 ldr r1, [r0] ldrb r0, [r1, 0x8] cmp r0, 0 beq _080D060A subs r0, 0x1 strb r0, [r1, 0x8] movs r0, 0x80 lsls r0, 3 movs r1, 0 _080D05F0: movs r2, 0x6 bl sub_80D0884 b _080D0624 .pool _080D05FC: ldr r0, =gUnknown_02039D80 ldr r1, [r0] ldrb r2, [r1, 0x8] ldrb r0, [r1, 0xA] adds r0, r2, r0 cmp r0, 0x5 ble _080D0614 _080D060A: movs r0, 0 b _080D0626 .pool _080D0614: adds r0, r2, 0x1 strb r0, [r1, 0x8] movs r0, 0xFC lsls r0, 8 movs r1, 0 movs r2, 0x6 bl sub_80D0884 _080D0624: movs r0, 0x1 _080D0626: pop {r1} bx r1 thumb_func_end sub_80D0580 thumb_func_start sub_80D062C sub_80D062C: @ 80D062C push {r4-r7,lr} ldr r6, =gUnknown_02039D80 ldr r2, [r6] ldrb r3, [r2, 0x2] ldrb r5, [r2, 0x6] subs r1, r3, r5 cmp r1, 0 bge _080D063E negs r1, r1 _080D063E: ldrb r0, [r2, 0x4] subs r0, r3, r0 cmp r0, 0 bge _080D0648 negs r0, r0 _080D0648: subs r0, r1, r0 lsls r0, 16 lsrs r4, r0, 16 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x7] subs r3, r1, r0 cmp r3, 0 bge _080D065A negs r3, r3 _080D065A: ldrb r2, [r2, 0x5] subs r0, r1, r2 cmp r0, 0 bge _080D0664 negs r0, r0 _080D0664: subs r0, r3, r0 lsls r0, 16 lsrs r7, r0, 16 lsls r0, r4, 16 asrs r4, r0, 16 cmp r4, 0 ble _080D0678 adds r0, r5, 0 bl sub_80D06D0 _080D0678: cmp r4, 0 bge _080D0694 ldr r2, [r6] ldrb r0, [r2, 0x4] ldrb r1, [r2, 0x3] ldrb r2, [r2, 0x5] bl sub_80D0740 ldr r2, [r6] ldrb r0, [r2, 0x6] ldrb r1, [r2, 0x3] ldrb r2, [r2, 0x5] bl sub_80D06D0 _080D0694: lsls r0, r7, 16 asrs r4, r0, 16 cmp r4, 0 ble _080D06A8 ldr r2, [r6] ldrb r0, [r2, 0x7] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_80D0708 _080D06A8: cmp r4, 0 bge _080D06C4 ldr r2, [r6] ldrb r0, [r2, 0x5] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_80D0778 ldr r2, [r6] ldrb r0, [r2, 0x7] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_80D0708 _080D06C4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D062C thumb_func_start sub_80D06D0 sub_80D06D0: @ 80D06D0 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _080D06EE adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _080D0700 _080D06EE: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 bl sub_80D07B0 cmp r4, r5 bls _080D06EE _080D0700: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D06D0 thumb_func_start sub_80D0708 sub_80D0708: @ 80D0708 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _080D0726 adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _080D0738 _080D0726: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r4, r1, 24 adds r1, r6, 0 bl sub_80D07B0 cmp r4, r5 bls _080D0726 _080D0738: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D0708 thumb_func_start sub_80D0740 sub_80D0740: @ 80D0740 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _080D075E adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _080D0770 _080D075E: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 bl sub_80D0834 cmp r4, r5 bls _080D075E _080D0770: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D0740 thumb_func_start sub_80D0778 sub_80D0778: @ 80D0778 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _080D0796 adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _080D07A8 _080D0796: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r4, r1, 24 adds r1, r6, 0 bl sub_80D0834 cmp r4, r5 bls _080D0796 _080D07A8: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D0778 thumb_func_start sub_80D07B0 sub_80D07B0: @ 80D07B0 push {r4-r7,lr} sub sp, 0x1C lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r7, r0, r1 lsls r4, r7, 1 adds r4, r6, r4 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x41 bl GetCurrentBoxMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetCurrentBoxMonData adds r1, r0, 0 cmp r5, 0 beq _080D0828 adds r0, r5, 0 movs r2, 0x1 bl GetMonIconPtr adds r4, r0, 0 adds r0, r5, 0 bl sub_80D3080 adds r0, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039D08 ldr r1, [r1] movs r2, 0x88 lsls r2, 6 adds r1, r2 ldrb r3, [r1] movs r2, 0x20 str r2, [sp] str r2, [sp, 0x4] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 str r1, [sp, 0x8] lsls r1, r7, 3 str r1, [sp, 0xC] str r2, [sp, 0x10] str r2, [sp, 0x14] str r0, [sp, 0x18] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl BlitBitmapRectToWindow4BitTo8Bit _080D0828: add sp, 0x1C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D07B0 thumb_func_start sub_80D0834 sub_80D0834: @ 80D0834 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r5, r0, r1 lsls r0, r5, 1 adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 movs r1, 0x41 bl GetCurrentBoxMonData lsls r0, 16 cmp r0, 0 beq _080D0878 ldr r0, =gUnknown_02039D08 ldr r0, [r0] movs r1, 0x88 lsls r1, 6 adds r0, r1 ldrb r0, [r0] lsls r2, r4, 1 adds r2, r4 lsls r2, 3 lsls r3, r5, 3 movs r1, 0x20 str r1, [sp] str r1, [sp, 0x4] movs r1, 0 bl FillWindowPixelRect8Bit _080D0878: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D0834 thumb_func_start sub_80D0884 sub_80D0884: @ 80D0884 ldr r3, =gUnknown_02039D80 ldr r3, [r3] strh r0, [r3, 0xC] strh r1, [r3, 0xE] strh r2, [r3, 0x10] bx lr .pool thumb_func_end sub_80D0884 thumb_func_start sub_80D0894 sub_80D0894: @ 80D0894 push {r4,lr} ldr r4, =gUnknown_02039D80 ldr r1, [r4] ldrh r0, [r1, 0x10] cmp r0, 0 beq _080D08BE ldrh r1, [r1, 0xC] movs r0, 0 movs r2, 0x1 bl ChangeBgX ldr r0, [r4] ldrh r1, [r0, 0xE] movs r0, 0 movs r2, 0x1 bl ChangeBgY ldr r1, [r4] ldrh r0, [r1, 0x10] subs r0, 0x1 strh r0, [r1, 0x10] _080D08BE: ldr r0, [r4] ldrb r0, [r0, 0x10] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80D0894 thumb_func_start sub_80D08CC sub_80D08CC: @ 80D08CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, =gUnknown_02039D80 ldr r1, [r4] ldrb r0, [r1, 0x4] ldrb r2, [r1, 0x2] cmp r0, r2 bls _080D08E4 adds r0, r2, 0 _080D08E4: strb r0, [r1, 0x8] ldr r1, [r4] ldrb r0, [r1, 0x5] ldrb r2, [r1, 0x3] cmp r0, r2 bls _080D08F2 adds r0, r2, 0 _080D08F2: strb r0, [r1, 0x9] ldr r2, [r4] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x4] subs r0, r1, r0 cmp r0, 0 bge _080D0902 negs r0, r0 _080D0902: adds r0, 0x1 strb r0, [r2, 0xA] ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x5] subs r0, r1, r0 cmp r0, 0 bge _080D0914 negs r0, r0 _080D0914: adds r0, 0x1 strb r0, [r2, 0xB] bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r6, 0 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r8, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1 mov r9, r0 adds r2, r1, 0 cmp r2, r9 bge _080D0990 _080D093C: lsls r0, r2, 1 adds r0, r2 ldr r3, =gUnknown_02039D80 ldr r1, [r3] lsls r0, 1 ldrb r3, [r1, 0x8] adds r0, r3 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r7, r2, 0x1 cmp r4, r8 bge _080D098A mov r0, r8 subs r4, r0, r4 _080D095A: mov r0, r10 adds r1, r5, 0 bl GetBoxedMonPtr adds r1, r0, 0 ldr r2, =gUnknown_02039D80 ldr r0, [r2] lsls r2, r6, 2 adds r2, r6 lsls r2, 4 adds r0, r2 adds r0, 0x14 movs r2, 0x50 bl memcpy adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _080D095A _080D098A: adds r2, r7, 0 cmp r2, r9 blt _080D093C _080D0990: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D08CC thumb_func_start sub_80D09A4 sub_80D09A4: @ 80D09A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r7, r2, r1 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r1, r0 mov r9, r1 bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, [r4] ldrb r2, [r0, 0x9] cmp r2, r9 bge _080D0A0C _080D09D0: lsls r0, r2, 1 adds r0, r2 ldr r1, =gUnknown_02039D80 ldr r1, [r1] lsls r0, 1 ldrb r3, [r1, 0x8] adds r0, r3 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r6, r2, 0x1 cmp r4, r7 bge _080D0A06 subs r4, r7, r4 _080D09EC: adds r0, r5, 0 bl DestroyBoxMonIconAtPosition mov r0, r8 adds r1, r5, 0 bl ZeroBoxMonAt adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _080D09EC _080D0A06: adds r2, r6, 0 cmp r2, r9 blt _080D09D0 _080D0A0C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D09A4 thumb_func_start sub_80D0A1C sub_80D0A1C: @ 80D0A1C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_02039D80 ldr r0, [r0] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r8, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1 mov r10, r0 movs r6, 0 adds r2, r1, 0 cmp r2, r10 bge _080D0A98 _080D0A42: lsls r0, r2, 1 adds r0, r2 ldr r3, =gUnknown_02039D80 ldr r1, [r3] lsls r0, 1 ldrb r4, [r1, 0x8] adds r0, r4 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r7, r2, 0x1 cmp r4, r8 bge _080D0A92 mov r9, r3 mov r0, r8 subs r4, r0, r4 _080D0A62: lsls r1, r6, 2 adds r1, r6 lsls r1, 4 adds r1, 0x14 mov r2, r9 ldr r0, [r2] adds r0, r1 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D0A80 adds r0, r5, 0 bl sub_80CB140 _080D0A80: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _080D0A62 _080D0A92: adds r2, r7, 0 cmp r2, r10 blt _080D0A42 _080D0A98: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D0A1C thumb_func_start sub_80D0AAC sub_80D0AAC: @ 80D0AAC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r4, =gUnknown_02039D80 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r10, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r1, r0 str r1, [sp] bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r7, 0 ldr r0, [r4] ldrb r3, [r0, 0x9] ldr r0, [sp] cmp r3, r0 bge _080D0B46 _080D0AE2: lsls r0, r3, 1 adds r0, r3 ldr r2, =gUnknown_02039D80 ldr r1, [r2] lsls r0, 1 ldrb r4, [r1, 0x8] adds r0, r4 lsls r0, 24 lsrs r6, r0, 24 ldrb r5, [r1, 0x8] adds r3, 0x1 mov r9, r3 cmp r5, r10 bge _080D0B3E mov r8, r2 mov r0, r10 subs r5, r0, r5 _080D0B04: lsls r0, r7, 2 adds r0, r7 lsls r0, 4 adds r4, r0, 0 adds r4, 0x14 mov r1, r8 ldr r0, [r1] adds r0, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D0B2C mov r0, r8 ldr r2, [r0] adds r2, r4 ldr r0, [sp, 0x4] adds r1, r6, 0 bl SetBoxMonAt _080D0B2C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 subs r5, 0x1 cmp r5, 0 bne _080D0B04 _080D0B3E: mov r3, r9 ldr r1, [sp] cmp r3, r1 blt _080D0AE2 _080D0B46: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D0AAC thumb_func_start sub_80D0B5C sub_80D0B5C: @ 80D0B5C push {lr} sub sp, 0x8 movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0 movs r1, 0x4 movs r2, 0 bl SetBgAttribute movs r0, 0x8 movs r1, 0x80 bl ClearGpuRegBits movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80D0B5C thumb_func_start sub_80D0BA4 sub_80D0BA4: @ 80D0BA4 ldr r0, =gUnknown_02039D80 ldr r2, [r0] ldrb r1, [r2, 0x3] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldrb r2, [r2, 0x2] adds r0, r2 lsls r0, 24 lsrs r0, 24 bx lr .pool thumb_func_end sub_80D0BA4 thumb_func_start sub_80D0BC0 sub_80D0BC0: @ 80D0BC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, =gUnknown_02039D80 ldr r0, [r0] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r9, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1, r0 str r0, [sp] movs r7, 0 adds r6, r1, 0 cmp r6, r0 bge _080D0C4E lsls r0, r6, 1 adds r0, r6 lsls r0, 1 mov r8, r0 _080D0BF0: ldr r2, =gUnknown_02039D80 ldr r1, [r2] ldrb r0, [r1, 0x8] add r0, r8 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] cmp r4, r9 bge _080D0C42 mov r10, r2 _080D0C04: lsls r1, r7, 2 adds r1, r7 lsls r1, 4 adds r1, 0x14 mov r2, r10 ldr r0, [r2] adds r0, r1 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D0C30 adds r0, r5, 0 movs r1, 0x5 bl GetCurrentBoxMonData cmp r0, 0 beq _080D0C30 movs r0, 0 b _080D0C50 .pool _080D0C30: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x1 cmp r4, r9 blt _080D0C04 _080D0C42: movs r0, 0x6 add r8, r0 adds r6, 0x1 ldr r2, [sp] cmp r6, r2 blt _080D0BF0 _080D0C4E: movs r0, 0x1 _080D0C50: 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_80D0BC0 thumb_func_start sub_80D0C60 sub_80D0C60: @ 80D0C60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r3, =gUnknown_02039D08 ldr r0, [r3] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D0D3E ldr r0, =gUnknown_03000F78 str r0, [sp, 0x18] ldr r1, =0xffff0000 add r2, sp, 0x18 ldr r0, [r2, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 str r0, [r2, 0x4] mov r1, sp ldr r0, =gSpriteTemplate_857BC70 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} movs r7, 0 mov r9, r2 mov r8, r3 movs r0, 0 mov r10, r0 _080D0CA0: adds r6, r7, 0x7 lsls r1, r6, 16 mov r2, r9 ldrh r0, [r2, 0x4] orrs r0, r1 str r0, [r2, 0x4] mov r0, r9 bl LoadCompressedObjectPic mov r4, r9 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag mov r5, r8 ldr r1, [r5] lsls r5, r7, 4 ldr r2, =0x00002208 adds r1, r2 adds r1, r5 lsls r0, 16 lsrs r0, 11 ldr r4, =0x06010000 adds r0, r4 str r0, [r1] ldr r0, =0xffffdacb adds r4, r7, r0 lsls r0, r4, 16 lsrs r0, 16 bl AllocSpritePalette mov r2, r8 ldr r1, [r2] adds r1, r5 lsls r0, 24 lsrs r0, 24 ldr r2, =0x0000220c adds r1, r2 strh r0, [r1] ldrh r0, [r1] lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 strh r0, [r1] mov r0, sp strh r6, [r0] strh r4, [r0, 0x2] movs r1, 0 movs r2, 0 movs r3, 0xB bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 ldr r2, [r4] ldr r6, =0x00002204 adds r2, r6 adds r2, r5 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r0, [r4] adds r0, r5 ldr r1, =0x00002210 adds r0, r1 mov r2, r10 strb r2, [r0] adds r7, 0x1 cmp r7, 0x2 ble _080D0CA0 _080D0D3E: ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r4, =0x00002234 adds r0, r4 movs r1, 0 strh r1, [r0] 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_80D0C60 thumb_func_start sub_80D0D8C sub_80D0D8C: @ 80D0D8C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D0E42 mov r0, r8 adds r1, r7, 0 bl sub_80D1324 cmp r0, 0 bne _080D0E42 mov r0, r8 cmp r0, 0 beq _080D0DC4 cmp r0, 0x1 beq _080D0DDA b _080D0E42 .pool _080D0DC4: adds r0, r7, 0 movs r1, 0x5 bl GetCurrentBoxMonData cmp r0, 0 beq _080D0E42 adds r0, r7, 0 movs r1, 0xC bl GetCurrentBoxMonData b _080D0DFC _080D0DDA: cmp r7, 0x5 bhi _080D0E42 movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _080D0E42 adds r0, r4, 0 movs r1, 0xC bl GetMonData _080D0DFC: lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080D0E42 adds r0, r4, 0 bl GetItemIconPic adds r6, r0, 0 adds r0, r4, 0 bl GetItemIconPalette adds r5, r0, 0 bl sub_80D12E8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 mov r1, r8 adds r2, r7, 0 bl sub_80D140C adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80D1524 adds r0, r4, 0 movs r1, 0x1 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x1 bl sub_80D1740 _080D0E42: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D0D8C thumb_func_start sub_80D0E50 sub_80D0E50: @ 80D0E50 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D0E86 adds r0, r6, 0 adds r1, r5, 0 bl sub_80D1370 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x2 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_80D1604 _080D0E86: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D0E50 thumb_func_start sub_80D0E90 sub_80D0E90: @ 80D0E90 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D0F20 adds r0, r6, 0 adds r1, r5, 0 bl sub_80D1370 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r4, 0 movs r1, 0x3 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x1 adds r2, r6, 0 adds r3, r5, 0 bl sub_80D1604 adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80D140C cmp r6, 0 bne _080D0EF8 adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0x1 bl SetBoxMonIconObjMode b _080D0F10 .pool _080D0EF8: movs r0, 0x64 muls r0, r7 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl SetPartyMonIconObjMode _080D0F10: ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r2, =0x00000ce6 adds r1, r0, r2 ldrh r1, [r1] ldr r2, =0x00002234 adds r0, r2 strh r1, [r0] _080D0F20: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D0E90 thumb_func_start sub_80D0F38 sub_80D0F38: @ 80D0F38 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 bl GetItemIconPic mov r8, r0 adds r0, r5, 0 bl GetItemIconPalette adds r6, r0, 0 bl sub_80D12E8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 mov r1, r8 adds r2, r6, 0 bl sub_80D1524 adds r0, r4, 0 movs r1, 0x6 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl sub_80D1604 adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80D140C adds r0, r4, 0 movs r1, 0x1 bl sub_80D1740 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002234 adds r0, r1 strh r5, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D0F38 thumb_func_start sub_80D0FAC sub_80D0FAC: @ 80D0FAC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r0, =gUnknown_02039D08 mov r8, r0 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D106A mov r0, r9 adds r1, r7, 0 bl sub_80D1370 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x3 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0 bl sub_80D1604 mov r1, r9 cmp r1, 0 bne _080D101C adds r0, r7, 0 movs r1, 0xC bl GetCurrentBoxMonData lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 ldr r2, [r0] ldr r4, =0x00002234 adds r2, r4 adds r0, r7, 0 movs r1, 0xC bl SetCurrentBoxMonData mov r1, r8 ldr r0, [r1] adds r0, r4 b _080D1048 .pool _080D101C: movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 ldr r2, [r0] ldr r5, =0x00002234 adds r2, r5 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r1, r8 ldr r0, [r1] adds r0, r5 _080D1048: strh r6, [r0] movs r0, 0x2 movs r1, 0 bl sub_80D1370 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x4 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x4 mov r2, r9 adds r3, r7, 0 bl sub_80D1604 _080D106A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D0FAC thumb_func_start sub_80D1080 sub_80D1080: @ 80D1080 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r5, r1, 24 mov r8, r5 ldr r6, =gUnknown_02039D08 ldr r0, [r6] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D1100 movs r0, 0x2 movs r1, 0 bl sub_80D1370 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x4 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0x2 adds r2, r7, 0 adds r3, r5, 0 bl sub_80D1604 cmp r7, 0 bne _080D10E0 ldr r2, [r6] ldr r0, =0x00002234 adds r2, r0 adds r0, r5, 0 movs r1, 0xC bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0 bl SetBoxMonIconObjMode b _080D1100 .pool _080D10E0: movs r0, 0x64 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r1, =gPlayerParty adds r0, r1 ldr r2, [r6] ldr r1, =0x00002234 adds r2, r1 movs r1, 0xC bl SetMonData mov r0, r8 movs r1, 0 bl SetPartyMonIconObjMode _080D1100: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D1080 thumb_func_start sub_80D1114 sub_80D1114: @ 80D1114 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D1188 movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80D1370 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x2 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_80D1604 cmp r6, 0 bne _080D1170 adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0x1 bl SetBoxMonIconObjMode b _080D1188 .pool _080D1170: movs r0, 0x64 muls r0, r7 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl SetPartyMonIconObjMode _080D1188: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D1114 thumb_func_start sub_80D1194 sub_80D1194: @ 80D1194 push {r4,lr} ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D11C2 movs r0, 0x2 movs r1, 0 bl sub_80D1370 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x5 bl sub_80D15D4 adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_80D1604 _080D11C2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1194 thumb_func_start sub_80D11CC sub_80D11CC: @ 80D11CC push {r4,lr} ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080D120A movs r4, 0 _080D11DA: ldr r0, =gUnknown_02039D08 ldr r1, [r0] lsls r0, r4, 4 adds r1, r0 ldr r2, =0x00002210 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080D1204 subs r2, 0x2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _080D1204 lsls r0, r4, 24 lsrs r0, 24 movs r1, 0x7 movs r2, 0x2 movs r3, 0 bl sub_80D1604 _080D1204: adds r4, 0x1 cmp r4, 0x2 ble _080D11DA _080D120A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D11CC thumb_func_start sub_80D1218 sub_80D1218: @ 80D1218 push {r4,r5,lr} movs r5, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002204 adds r4, r0, r1 adds r3, r0, 0 _080D1226: ldr r1, =0x00002210 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080D1268 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x28 ands r0, r1 cmp r0, 0x8 beq _080D124E ldr r1, [r2, 0x1C] ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _080D1268 ldr r0, =sub_80D1AD8 cmp r1, r0 beq _080D1268 _080D124E: movs r0, 0x1 b _080D1274 .pool _080D1268: adds r4, 0x10 adds r3, 0x10 adds r5, 0x1 cmp r5, 0x2 ble _080D1226 movs r0, 0 _080D1274: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D1218 thumb_func_start sub_80D127C sub_80D127C: @ 80D127C push {lr} ldr r0, =gUnknown_02039D08 ldr r1, [r0] ldrb r0, [r1, 0x1] cmp r0, 0x3 bne _080D12B0 movs r2, 0 ldr r0, =0x0000220e adds r1, r0 _080D128E: ldrb r0, [r1, 0x2] cmp r0, 0 beq _080D12A8 ldrb r0, [r1] cmp r0, 0x2 bne _080D12A8 movs r0, 0x1 b _080D12B2 .pool _080D12A8: adds r1, 0x10 adds r2, 0x1 cmp r2, 0x2 ble _080D128E _080D12B0: movs r0, 0 _080D12B2: pop {r1} bx r1 thumb_func_end sub_80D127C thumb_func_start GetMovingItemName GetMovingItemName: @ 80D12B8 push {lr} ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002234 adds r0, r1 ldrh r0, [r0] bl ItemId_GetName pop {r1} bx r1 .pool thumb_func_end GetMovingItemName thumb_func_start GetMovingItem GetMovingItem: @ 80D12D4 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002234 adds r0, r1 ldrh r0, [r0] bx lr .pool thumb_func_end GetMovingItem thumb_func_start sub_80D12E8 sub_80D12E8: @ 80D12E8 push {r4,r5,lr} movs r2, 0 ldr r5, =gUnknown_02039D08 ldr r3, =0x00002210 movs r4, 0x1 _080D12F2: ldr r0, [r5] lsls r1, r2, 4 adds r0, r1 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _080D1310 strb r4, [r1] adds r0, r2, 0 b _080D131C .pool _080D1310: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080D12F2 movs r0, 0x3 _080D131C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D12E8 thumb_func_start sub_80D1324 sub_80D1324: @ 80D1324 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 movs r3, 0 ldr r0, =gUnknown_02039D08 ldr r2, [r0] _080D1334: ldr r5, =0x00002210 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 beq _080D1360 subs r5, 0x2 adds r0, r2, r5 ldrb r0, [r0] cmp r0, r4 bne _080D1360 adds r5, 0x1 adds r0, r2, r5 ldrb r0, [r0] cmp r0, r1 bne _080D1360 movs r0, 0x1 b _080D136A .pool _080D1360: adds r2, 0x10 adds r3, 0x1 cmp r3, 0x2 ble _080D1334 movs r0, 0 _080D136A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D1324 thumb_func_start sub_80D1370 sub_80D1370: @ 80D1370 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r3, 0 ldr r0, =gUnknown_02039D08 ldr r1, [r0] _080D1380: lsls r0, r3, 4 adds r2, r1, r0 ldr r6, =0x00002210 adds r0, r2, r6 ldrb r0, [r0] cmp r0, 0 beq _080D13B0 subs r6, 0x2 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r5 bne _080D13B0 adds r6, 0x1 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r4 bne _080D13B0 adds r0, r3, 0 b _080D13BC .pool _080D13B0: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _080D1380 movs r0, 0x3 _080D13BC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80D1370 thumb_func_start sub_80D13C4 sub_80D13C4: @ 80D13C4 push {r4-r6,lr} adds r5, r0, 0 movs r2, 0 ldr r0, =gUnknown_02039D08 ldr r3, [r0] ldr r0, =0x00002204 adds r4, r3, r0 ldr r6, =0x00002210 _080D13D4: lsls r1, r2, 4 adds r0, r3, r1 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _080D13F8 adds r0, r4, r1 ldr r0, [r0] cmp r0, r5 bne _080D13F8 adds r0, r2, 0 b _080D1404 .pool _080D13F8: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080D13D4 movs r0, 0x3 _080D1404: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80D13C4 thumb_func_start sub_80D140C sub_80D140C: @ 80D140C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 cmp r5, 0x2 bhi _080D150A cmp r1, 0 beq _080D1438 cmp r1, 0x1 beq _080D1494 ldr r4, =gUnknown_02039D08 lsls r3, r5, 4 b _080D14F4 .pool _080D1438: adds r0, r7, 0 movs r1, 0x6 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 ldr r6, =gUnknown_02039D08 ldr r2, [r6] lsls r5, 4 ldr r1, =0x00002204 adds r2, r1 adds r2, r5 ldr r3, [r2] lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, 0x70 strh r1, [r3, 0x20] ldr r3, [r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x38 strh r1, [r3, 0x22] ldr r2, [r2] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x5] adds r4, r6, 0 adds r3, r5, 0 b _080D14F4 .pool _080D1494: cmp r7, 0 bne _080D14BC ldr r4, =gUnknown_02039D08 ldr r0, [r4] lsls r3, r5, 4 ldr r1, =0x00002204 adds r0, r1 adds r0, r3 ldr r2, [r0] movs r1, 0x74 strh r1, [r2, 0x20] ldr r1, [r0] movs r0, 0x4C strh r0, [r1, 0x22] b _080D14DC .pool _080D14BC: ldr r4, =gUnknown_02039D08 ldr r0, [r4] lsls r3, r5, 4 ldr r1, =0x00002204 adds r0, r1 adds r0, r3 ldr r2, [r0] movs r1, 0xA4 strh r1, [r2, 0x20] ldr r2, [r0] subs r1, r7, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x1C strh r0, [r2, 0x22] _080D14DC: ldr r0, [r4] ldr r1, =0x00002204 adds r0, r1 adds r0, r3 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] _080D14F4: ldr r0, [r4] adds r0, r3 ldr r1, =0x0000220e adds r0, r1 mov r1, r8 strb r1, [r0] ldr r0, [r4] adds r0, r3 ldr r1, =0x0000220f adds r0, r1 strb r7, [r0] _080D150A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D140C thumb_func_start sub_80D1524 sub_80D1524: @ 80D1524 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r1 mov r9, r2 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bhi _080D15AC movs r0, 0 str r0, [sp] ldr r4, =gUnknown_02039D08 ldr r1, [r4] ldr r6, =0x000042c4 adds r1, r6 ldr r2, =0x01000080 mov r0, sp bl CpuFastSet ldr r1, [r4] ldr r5, =0x000022c4 adds r1, r5 mov r0, r8 bl LZ77UnCompWram lsls r7, 4 mov r8, r7 adds r7, r4, 0 movs r4, 0x2 _080D1562: ldr r1, [r7] adds r0, r1, r5 adds r1, r6 movs r2, 0x18 bl CpuFastSet adds r6, 0x80 adds r5, 0x60 subs r4, 0x1 cmp r4, 0 bge _080D1562 ldr r5, =gUnknown_02039D08 ldr r1, [r5] ldr r4, =0x000042c4 adds r0, r1, r4 ldr r2, =0x00002208 adds r1, r2 add r1, r8 ldr r1, [r1] movs r2, 0x80 bl CpuFastSet ldr r1, [r5] adds r1, r4 mov r0, r9 bl LZ77UnCompWram ldr r0, [r5] adds r4, r0, r4 add r0, r8 ldr r1, =0x0000220c adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 movs r2, 0x20 bl LoadPalette _080D15AC: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D1524 thumb_func_start sub_80D15D4 sub_80D15D4: @ 80D15D4 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 cmp r2, 0x2 bhi _080D15F6 ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r2, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r0, [r0] adds r1, r3, 0 bl StartSpriteAffineAnim _080D15F6: pop {r0} bx r0 .pool thumb_func_end sub_80D15D4 thumb_func_start sub_80D1604 sub_80D1604: @ 80D1604 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r0, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r3, 24 cmp r4, 0x2 bls _080D161C b _080D172E _080D161C: cmp r0, 0x7 bls _080D1622 b _080D172E _080D1622: lsls r0, 2 ldr r1, =_080D1630 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D1630: .4byte _080D1650 .4byte _080D1674 .4byte _080D1698 .4byte _080D16C4 .4byte _080D16F0 .4byte _080D172E .4byte _080D172E .4byte _080D171C _080D1650: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r1, [r0] strh r4, [r1, 0x2E] ldr r1, [r0] ldr r0, =sub_80D1A48 b _080D172C .pool _080D1674: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] ldr r0, =sub_80D1A74 b _080D172C .pool _080D1698: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] strh r5, [r1, 0x3A] ldr r1, [r0] strh r3, [r1, 0x3C] ldr r1, [r0] ldr r0, =sub_80D1B14 b _080D172C .pool _080D16C4: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r2, [r0] ldr r1, =sub_80D1B94 str r1, [r2, 0x1C] strh r5, [r2, 0x3A] ldr r0, [r0] strh r3, [r0, 0x3C] b _080D172E .pool _080D16F0: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] strh r5, [r1, 0x3A] ldr r1, [r0] strh r3, [r1, 0x3C] ldr r1, [r0] ldr r0, =sub_80D1C30 b _080D172C .pool _080D171C: ldr r0, =gUnknown_02039D08 ldr r0, [r0] lsls r1, r4, 4 ldr r2, =0x00002204 adds r0, r2 adds r0, r1 ldr r1, [r0] ldr r0, =sub_80D1CCC _080D172C: str r0, [r1, 0x1C] _080D172E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D1604 thumb_func_start sub_80D1740 sub_80D1740: @ 80D1740 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r2, 0x2 bhi _080D1780 ldr r1, =gUnknown_02039D08 ldr r0, [r1] lsls r2, 4 adds r0, r2 ldr r3, =0x00002210 adds r0, r3 strb r4, [r0] ldr r0, [r1] ldr r1, =0x00002204 adds r0, r1 adds r0, r2 ldr r0, [r0] movs r3, 0 cmp r4, 0 bne _080D176E movs r3, 0x1 _080D176E: adds r2, r0, 0 adds r2, 0x3E lsls r3, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _080D1780: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1740 thumb_func_start GetItemIconPic GetItemIconPic: @ 80D1794 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0 bl GetItemIconPicOrPalette pop {r1} bx r1 thumb_func_end GetItemIconPic thumb_func_start GetItemIconPalette GetItemIconPalette: @ 80D17A4 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl GetItemIconPicOrPalette pop {r1} bx r1 thumb_func_end GetItemIconPalette thumb_func_start sub_80D17B4 sub_80D17B4: @ 80D17B4 push {r4,lr} sub sp, 0x14 bl sub_80D127C lsls r0, 24 cmp r0, 0 beq _080D17D4 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002234 b _080D17DA .pool _080D17D4: ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00000ce6 _080D17DA: adds r0, r1 ldrh r0, [r0] bl ItemId_GetDescription adds r4, r0, 0 movs r0, 0x2 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] movs r0, 0x2 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D17B4 thumb_func_start sub_80D1818 sub_80D1818: @ 80D1818 push {lr} ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002236 adds r0, r1 movs r1, 0x15 strh r1, [r0] ldr r1, =gUnknown_0857BB24 movs r3, 0x9D lsls r3, 1 movs r0, 0 movs r2, 0x80 bl LoadBgTiles movs r0, 0 bl sub_80D19B4 pop {r0} bx r0 .pool thumb_func_end sub_80D1818 thumb_func_start sub_80D184C sub_80D184C: @ 80D184C push {r4,r5,lr} sub sp, 0x10 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r2, =0x00002236 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 bne _080D186C movs r0, 0 b _080D18D2 .pool _080D186C: subs r0, 0x1 strh r0, [r1] ldrh r1, [r1] movs r0, 0x15 subs r5, r0, r1 movs r4, 0 cmp r4, r5 bge _080D18BC _080D187C: movs r0, 0 movs r1, 0xA bl GetBgAttribute adds r1, r0, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r2, =0x00002236 adds r0, r2 adds r1, 0x14 ldrh r0, [r0] adds r1, r0 adds r1, r4 lsls r1, 16 lsrs r1, 16 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x15 str r0, [sp, 0xC] movs r0, 0 movs r3, 0xD bl WriteSequenceToBgTilemapBuffer adds r4, 0x1 cmp r4, r5 blt _080D187C _080D18BC: adds r0, r5, 0 bl sub_80D19B4 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00002236 adds r0, r1 ldrh r1, [r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 _080D18D2: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80D184C thumb_func_start sub_80D18E4 sub_80D18E4: @ 80D18E4 push {r4,r5,lr} sub sp, 0x10 ldr r5, =gUnknown_02039D08 ldr r0, [r5] ldr r4, =0x00002236 adds r0, r4 ldrh r0, [r0] cmp r0, 0x16 bne _080D1904 movs r0, 0 b _080D19A4 .pool _080D1904: cmp r0, 0 bne _080D1920 movs r0, 0x1 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x15 movs r3, 0xC bl FillBgTilemapBufferRect _080D1920: ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrh r1, [r1] movs r0, 0x15 subs r5, r0, r1 movs r4, 0 cmp r4, r5 bge _080D1976 _080D1936: movs r0, 0 movs r1, 0xA bl GetBgAttribute adds r1, r0, 0 ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r2, =0x00002236 adds r0, r2 adds r1, 0x14 ldrh r0, [r0] adds r1, r0 adds r1, r4 lsls r1, 16 lsrs r1, 16 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x15 str r0, [sp, 0xC] movs r0, 0 movs r3, 0xD bl WriteSequenceToBgTilemapBuffer adds r4, 0x1 cmp r4, r5 blt _080D1936 _080D1976: cmp r5, 0 blt _080D1980 adds r0, r5, 0 bl sub_80D19B4 _080D1980: adds r2, r5, 0x1 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r3, 0xC bl FillBgTilemapBufferRect movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 _080D19A4: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80D18E4 thumb_func_start sub_80D19B4 sub_80D19B4: @ 80D19B4 push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 cmp r7, 0 beq _080D19EC movs r1, 0x9D lsls r1, 1 lsls r4, r7, 24 lsrs r4, 24 str r4, [sp] movs r6, 0x1 str r6, [sp, 0x4] movs r5, 0xF str r5, [sp, 0x8] movs r0, 0 movs r2, 0 movs r3, 0xC bl FillBgTilemapBufferRect ldr r1, =0x0000093a str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0 movs r3, 0x14 bl FillBgTilemapBufferRect _080D19EC: ldr r1, =0x0000013b lsls r5, r7, 24 lsrs r5, 24 movs r4, 0x1 str r4, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r6, 0xF str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0xD bl FillBgTilemapBufferRect movs r1, 0x9E lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0xC bl FillBgTilemapBufferRect ldr r1, =0x0000013d str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0x14 bl FillBgTilemapBufferRect movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D19B4 thumb_func_start sub_80D1A48 sub_80D1A48: @ 80D1A48 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D1A68 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80D1740 ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D1A68: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1A48 thumb_func_start sub_80D1A74 sub_80D1A74: @ 80D1A74 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _080D1A86 cmp r1, 0x1 beq _080D1AA2 b _080D1AD0 _080D1A86: ldrh r0, [r3, 0x20] lsls r0, 4 strh r0, [r3, 0x30] ldrh r0, [r3, 0x22] lsls r0, 4 strh r0, [r3, 0x32] movs r0, 0xA strh r0, [r3, 0x34] movs r0, 0x15 strh r0, [r3, 0x36] strh r1, [r3, 0x38] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] _080D1AA2: ldrh r1, [r3, 0x30] ldrh r0, [r3, 0x34] subs r1, r0 strh r1, [r3, 0x30] ldrh r0, [r3, 0x32] ldrh r2, [r3, 0x36] subs r0, r2 strh r0, [r3, 0x32] lsls r1, 16 asrs r1, 20 strh r1, [r3, 0x20] lsls r0, 16 asrs r0, 20 strh r0, [r3, 0x22] ldrh r0, [r3, 0x38] adds r0, 0x1 strh r0, [r3, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _080D1AD0 ldr r0, =sub_80D1AD8 str r0, [r3, 0x1C] _080D1AD0: pop {r0} bx r0 .pool thumb_func_end sub_80D1A74 thumb_func_start sub_80D1AD8 sub_80D1AD8: @ 80D1AD8 ldr r1, =gUnknown_02039D08 ldr r3, [r1] ldr r1, =0x00000cb4 adds r3, r1 ldr r1, [r3] ldrh r1, [r1, 0x20] adds r1, 0x4 strh r1, [r0, 0x20] ldr r2, [r3] ldrh r1, [r2, 0x26] ldrh r2, [r2, 0x22] adds r1, r2 adds r1, 0x8 strh r1, [r0, 0x22] ldr r1, [r3] ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] bx lr .pool thumb_func_end sub_80D1AD8 thumb_func_start sub_80D1B14 sub_80D1B14: @ 80D1B14 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _080D1B26 cmp r1, 0x1 beq _080D1B42 b _080D1B8A _080D1B26: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080D1B42: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x36] ldrh r2, [r4, 0x32] adds r1, r2 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _080D1B8A adds r0, r4, 0 bl sub_80D13C4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80D140C ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D1B8A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1B14 thumb_func_start sub_80D1B94 sub_80D1B94: @ 80D1B94 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _080D1BA6 cmp r1, 0x1 beq _080D1BC2 b _080D1C20 _080D1BA6: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080D1BC2: ldrh r1, [r4, 0x30] ldrh r0, [r4, 0x34] subs r1, r0 strh r1, [r4, 0x30] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x32] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x20] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _080D1C20 adds r0, r4, 0 bl sub_80D13C4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80D140C movs r0, 0 strh r0, [r4, 0x24] ldr r0, =sub_80D1AD8 str r0, [r4, 0x1C] _080D1C20: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1B94 thumb_func_start sub_80D1C30 sub_80D1C30: @ 80D1C30 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _080D1C42 cmp r1, 0x1 beq _080D1C5E b _080D1CBE _080D1C42: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080D1C5E: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x36] ldrh r2, [r4, 0x32] adds r1, r2 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _080D1CBE adds r0, r4, 0 bl sub_80D13C4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80D140C ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] _080D1CBE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D1C30 thumb_func_start sub_80D1CCC sub_80D1CCC: @ 80D1CCC push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x22] subs r0, 0x8 strh r0, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080D1CFC ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] adds r0, r2, 0 bl sub_80D13C4 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80D1740 _080D1CFC: pop {r0} bx r0 .pool thumb_func_end sub_80D1CCC thumb_func_start TaskDummy0 TaskDummy0: @ 80D1D04 bx lr thumb_func_end TaskDummy0 thumb_func_start nullsub_98 nullsub_98: @ 80D1D08 bx lr thumb_func_end nullsub_98 thumb_func_start StorageGetCurrentBox @ char StorageGetCurrentBox() StorageGetCurrentBox: @ 80D1D0C ldr r0, =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] bx lr .pool thumb_func_end StorageGetCurrentBox thumb_func_start SetCurrentBox SetCurrentBox: @ 80D1D18 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xD bhi _080D1D28 ldr r0, =gPokemonStoragePtr ldr r0, [r0] strb r1, [r0] _080D1D28: pop {r0} bx r0 .pool thumb_func_end SetCurrentBox thumb_func_start GetBoxMonDataAt GetBoxMonDataAt: @ 80D1D30 push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D1D6C cmp r4, 0x1D bhi _080D1D6C ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 adds r1, r5, 0 bl GetBoxMonData b _080D1D6E .pool _080D1D6C: movs r0, 0 _080D1D6E: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetBoxMonDataAt thumb_func_start SetBoxMonDataFromAnyBox SetBoxMonDataFromAnyBox: @ 80D1D74 push {r4-r6,lr} adds r5, r2, 0 adds r6, r3, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D1DAC cmp r4, 0x1D bhi _080D1DAC ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 adds r1, r5, 0 adds r2, r6, 0 bl SetBoxMonData _080D1DAC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end SetBoxMonDataFromAnyBox thumb_func_start GetCurrentBoxMonData GetCurrentBoxMonData: @ 80D1DB8 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 ldr r0, =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] adds r1, r3, 0 bl GetBoxMonDataAt pop {r1} bx r1 .pool thumb_func_end GetCurrentBoxMonData thumb_func_start SetCurrentBoxMonData SetCurrentBoxMonData: @ 80D1DD8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl SetBoxMonDataFromAnyBox pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end SetCurrentBoxMonData thumb_func_start GetBoxMonNickFromAnyBox GetBoxMonNickFromAnyBox: @ 80D1DFC push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D1E38 cmp r4, 0x1D bhi _080D1E38 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 movs r1, 0x2 adds r2, r5, 0 bl GetBoxMonData b _080D1E3C .pool _080D1E38: movs r0, 0xFF strb r0, [r5] _080D1E3C: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetBoxMonNickFromAnyBox thumb_func_start sub_80D1E44 sub_80D1E44: @ 80D1E44 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r0, 0xD bhi _080D1E84 cmp r2, 0x1D bhi _080D1E84 ldr r6, =gPokemonStoragePtr lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r5, r0, 0x4 ldr r0, [r6] adds r0, r5 lsls r1, r2, 2 adds r1, r2 lsls r4, r1, 4 adds r0, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D1E84 ldr r0, [r6] adds r0, r5 adds r0, r4 bl GetLevelFromBoxMonExp _080D1E84: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_80D1E44 thumb_func_start SetBoxMonNickFromAnyBox SetBoxMonNickFromAnyBox: @ 80D1E90 push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D1EC6 cmp r4, 0x1D bhi _080D1EC6 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 movs r1, 0x2 adds r2, r5, 0 bl SetBoxMonData _080D1EC6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end SetBoxMonNickFromAnyBox thumb_func_start GetAndCopyBoxMonDataAt GetAndCopyBoxMonDataAt: @ 80D1ED0 push {r4-r6,lr} adds r5, r2, 0 adds r6, r3, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D1F10 cmp r4, 0x1D bhi _080D1F10 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 adds r1, r5, 0 adds r2, r6, 0 bl GetBoxMonData b _080D1F12 .pool _080D1F10: movs r0, 0 _080D1F12: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetAndCopyBoxMonDataAt thumb_func_start SetBoxMonAt SetBoxMonAt: @ 80D1F18 push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r4, 0xD bhi _080D1F4E cmp r1, 0x1D bhi _080D1F4E ldr r0, =gPokemonStoragePtr ldr r0, [r0] lsls r3, r1, 2 adds r3, r1 lsls r3, 4 lsls r2, r4, 2 adds r2, r4 lsls r1, r2, 4 subs r1, r2 lsls r1, 5 adds r3, r1 adds r0, r3 adds r0, 0x4 adds r1, r5, 0 movs r2, 0x50 bl memcpy _080D1F4E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end SetBoxMonAt thumb_func_start sub_80D1F58 sub_80D1F58: @ 80D1F58 push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r4, 0xD bhi _080D1F8E cmp r2, 0x1D bhi _080D1F8E ldr r0, =gPokemonStoragePtr ldr r1, [r0] lsls r3, r2, 2 adds r3, r2 lsls r3, 4 lsls r2, r4, 2 adds r2, r4 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 adds r3, r0 adds r1, r3 adds r1, 0x4 adds r0, r5, 0 movs r2, 0x50 bl memcpy _080D1F8E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D1F58 thumb_func_start sub_80D1F98 sub_80D1F98: @ 80D1F98 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r4, [sp, 0x30] ldr r5, [sp, 0x34] ldr r6, [sp, 0x3C] mov r12, r6 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r0, r12 lsls r0, 24 lsrs r3, r0, 24 cmp r7, 0xD bhi _080D2004 cmp r6, 0x1D bhi _080D2004 ldr r2, =gPokemonStoragePtr lsls r0, r7, 2 adds r0, r7 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r6, 2 adds r1, r6 lsls r1, 4 adds r0, r1 str r5, [sp] ldr r1, [sp, 0x38] str r1, [sp, 0x4] str r3, [sp, 0x8] ldr r1, [sp, 0x40] str r1, [sp, 0xC] mov r1, r9 mov r2, r8 adds r3, r4, 0 bl CreateBoxMon _080D2004: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D1F98 thumb_func_start ZeroBoxMonAt ZeroBoxMonAt: @ 80D2018 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D2048 cmp r4, 0x1D bhi _080D2048 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 bl ZeroBoxMonData _080D2048: pop {r4} pop {r0} bx r0 .pool thumb_func_end ZeroBoxMonAt thumb_func_start BoxMonAtToMon BoxMonAtToMon: @ 80D2054 push {r4,r5,lr} adds r5, r2, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D2088 cmp r4, 0x1D bhi _080D2088 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 adds r1, r5, 0 bl BoxMonToMon _080D2088: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end BoxMonAtToMon thumb_func_start GetBoxedMonPtr @ pokemon *GetBoxedMonPtr(u8 box_id, u8 pos) GetBoxedMonPtr: @ 80D2094 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r3, 0xD bhi _080D20C8 cmp r4, 0x1D bhi _080D20C8 ldr r2, =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 adds r1, 0x4 ldr r0, [r2] adds r0, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 adds r0, r1 b _080D20CA .pool _080D20C8: movs r0, 0 _080D20CA: pop {r4} pop {r1} bx r1 thumb_func_end GetBoxedMonPtr thumb_func_start GetBoxNamePtr GetBoxNamePtr: @ 80D20D0 push {lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xD bls _080D20DE movs r0, 0 b _080D20EC _080D20DE: ldr r0, =gPokemonStoragePtr lsls r1, r2, 3 adds r1, r2 ldr r2, =0x00008344 adds r1, r2 ldr r0, [r0] adds r0, r1 _080D20EC: pop {r1} bx r1 .pool thumb_func_end GetBoxNamePtr thumb_func_start GetBoxWallpaper GetBoxWallpaper: @ 80D20F8 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xD bls _080D2106 movs r0, 0 b _080D2112 _080D2106: ldr r0, =gPokemonStoragePtr ldr r0, [r0] ldr r2, =0x000083c2 adds r0, r2 adds r0, r1 ldrb r0, [r0] _080D2112: pop {r1} bx r1 .pool thumb_func_end GetBoxWallpaper thumb_func_start SetBoxWallpaper SetBoxWallpaper: @ 80D2120 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r2, 0xD bhi _080D213E cmp r1, 0x10 bhi _080D213E ldr r0, =gPokemonStoragePtr ldr r0, [r0] ldr r3, =0x000083c2 adds r0, r3 adds r0, r2 strb r1, [r0] _080D213E: pop {r0} bx r0 .pool thumb_func_end SetBoxWallpaper thumb_func_start sub_80D214C sub_80D214C: @ 80D214C push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r0, r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 adds r4, r3, 0 ldr r2, =0x0000ffff cmp r3, 0x1 bhi _080D216E movs r2, 0x1 cmp r3, 0x1 beq _080D2172 _080D216E: cmp r4, 0x3 bne _080D21BC _080D2172: lsls r0, 24 asrs r0, 24 lsls r2, 16 asrs r1, r2, 16 adds r1, r0 lsls r0, r1, 16 asrs r1, r0, 16 adds r6, r2, 0 cmp r1, 0 blt _080D2208 cmp r1, r7 bgt _080D2208 _080D218A: asrs r4, r0, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 add r0, r8 movs r1, 0xB bl GetBoxMonData cmp r0, 0 bne _080D21B4 asrs r0, r6, 16 adds r0, r4, r0 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _080D2208 cmp r2, r7 ble _080D218A b _080D2208 .pool _080D21B4: adds r0, r4, 0 b _080D220C _080D21B8: adds r0, r5, 0 b _080D220C _080D21BC: lsls r0, 24 asrs r0, 24 lsls r2, 16 asrs r1, r2, 16 adds r1, r0 lsls r0, r1, 16 asrs r1, r0, 16 adds r6, r2, 0 cmp r1, 0 blt _080D2208 cmp r1, r7 bgt _080D2208 _080D21D4: asrs r5, r0, 16 lsls r0, r5, 2 adds r0, r5 lsls r0, 4 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _080D21F8 adds r0, r4, 0 movs r1, 0x2D bl GetBoxMonData cmp r0, 0 beq _080D21B8 _080D21F8: asrs r0, r6, 16 adds r0, r5, r0 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _080D2208 cmp r2, r7 ble _080D21D4 _080D2208: movs r0, 0x1 negs r0, r0 _080D220C: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D214C thumb_func_start CheckFreePokemonStorageSpace CheckFreePokemonStorageSpace: @ 80D2218 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, =gPokemonStoragePtr mov r8, r0 movs r7, 0x4 _080D2228: movs r5, 0 adds r6, r7, 0 movs r4, 0 _080D222E: mov r1, r8 ldr r0, [r1] adds r0, r6 adds r0, r4 movs r1, 0x5 str r2, [sp] bl GetBoxMonData ldr r2, [sp] cmp r0, 0 bne _080D224C movs r0, 0x1 b _080D2262 .pool _080D224C: adds r4, 0x50 adds r5, 0x1 cmp r5, 0x1D ble _080D222E movs r0, 0x96 lsls r0, 4 adds r7, r0 adds r2, 0x1 cmp r2, 0xD ble _080D2228 movs r0, 0 _080D2262: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckFreePokemonStorageSpace thumb_func_start CheckBoxedMonSanity CheckBoxedMonSanity: @ 80D2270 push {r4-r6,lr} adds r2, r1, 0 cmp r0, 0xD bhi _080D22C8 cmp r2, 0x1D bhi _080D22C8 ldr r6, =gPokemonStoragePtr lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r5, r0, 0x4 ldr r0, [r6] adds r0, r5 lsls r1, r2, 2 adds r1, r2 lsls r4, r1, 4 adds r0, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D22C8 ldr r0, [r6] adds r0, r5 adds r0, r4 movs r1, 0x6 bl GetBoxMonData cmp r0, 0 bne _080D22C8 ldr r0, [r6] adds r0, r5 adds r0, r4 movs r1, 0x4 bl GetBoxMonData cmp r0, 0 bne _080D22C8 movs r0, 0x1 b _080D22CA .pool _080D22C8: movs r0, 0 _080D22CA: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckBoxedMonSanity thumb_func_start sub_80D22D0 sub_80D22D0: @ 80D22D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 movs r0, 0 ldr r1, =gPokemonStoragePtr mov r9, r1 _080D22E0: lsls r1, r0, 2 adds r2, r0, 0x1 mov r8, r2 adds r1, r0 movs r5, 0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r4, r0, 0x4 movs r6, 0x1D _080D22F4: mov r1, r9 ldr r0, [r1] adds r0, r4 adds r0, r5 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D231A mov r2, r9 ldr r0, [r2] adds r0, r4 adds r0, r5 movs r1, 0x6 bl GetBoxMonData cmp r0, 0 bne _080D231A adds r7, 0x1 _080D231A: adds r5, 0x50 subs r6, 0x1 cmp r6, 0 bge _080D22F4 mov r0, r8 cmp r0, 0xD ble _080D22E0 adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80D22D0 thumb_func_start sub_80D233C sub_80D233C: @ 80D233C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 movs r0, 0 ldr r1, =gPokemonStoragePtr mov r9, r1 _080D234C: lsls r1, r0, 2 adds r2, r0, 0x1 mov r8, r2 adds r1, r0 movs r5, 0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r4, r0, 0x4 movs r6, 0x1D _080D2360: mov r1, r9 ldr r0, [r1] adds r0, r4 adds r0, r5 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 bne _080D2384 mov r2, r9 ldr r0, [r2] adds r0, r4 adds r0, r5 movs r1, 0x6 bl GetBoxMonData cmp r0, 0 beq _080D2386 _080D2384: adds r7, 0x1 _080D2386: adds r5, 0x50 subs r6, 0x1 cmp r6, 0 bge _080D2360 mov r0, r8 cmp r0, 0xD ble _080D234C adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80D233C thumb_func_start sub_80D23A8 sub_80D23A8: @ 80D23A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r1, sp strh r0, [r1] ldr r0, =0x00000163 strh r0, [r1, 0x2] movs r0, 0 mov r8, r0 ldr r7, =gPokemonStoragePtr movs r5, 0x4 _080D23C0: movs r6, 0 movs r4, 0 _080D23C4: ldr r0, [r7] adds r0, r5 adds r0, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080D2404 ldr r0, [r7] adds r0, r5 adds r0, r4 movs r1, 0x6 bl GetBoxMonData cmp r0, 0 bne _080D2404 ldr r0, [r7] adds r0, r5 adds r0, r4 movs r1, 0x51 mov r2, sp bl GetBoxMonData cmp r0, 0 beq _080D2404 movs r0, 0x1 b _080D241E .pool _080D2404: adds r4, 0x50 adds r6, 0x1 cmp r6, 0x1D ble _080D23C4 movs r0, 0x96 lsls r0, 4 adds r5, r0 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0xD ble _080D23C0 movs r0, 0 _080D241E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D23A8 thumb_func_start ResetWaldaWallpaper ResetWaldaWallpaper: @ 80D242C ldr r2, =gSaveBlock1Ptr ldr r0, [r2] ldr r1, =0x00003d84 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, =0x00003d85 adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x1 adds r0, r3 strb r1, [r0] ldr r1, [r2] ldr r0, =0x00003d70 adds r2, r1, r0 ldr r0, =0x00007b35 strh r0, [r2] subs r3, 0x14 adds r2, r1, r3 ldr r0, =0x00006186 strh r0, [r2] ldr r0, =0x00003d74 adds r1, r0 movs r0, 0xFF strb r0, [r1] bx lr .pool thumb_func_end ResetWaldaWallpaper thumb_func_start SetWaldaWallpaperLockedOrUnlocked SetWaldaWallpaperLockedOrUnlocked: @ 80D2480 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] ldr r2, =0x00003d86 adds r1, r2 strb r0, [r1] bx lr .pool thumb_func_end SetWaldaWallpaperLockedOrUnlocked thumb_func_start IsWaldaWallpaperUnlocked IsWaldaWallpaperUnlocked: @ 80D2494 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d86 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end IsWaldaWallpaperUnlocked thumb_func_start GetWaldaWallpaperPatternId GetWaldaWallpaperPatternId: @ 80D24A8 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d85 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end GetWaldaWallpaperPatternId thumb_func_start SetWaldaWallpaperPatternId SetWaldaWallpaperPatternId: @ 80D24BC push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bhi _080D24D0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003d85 adds r0, r2 strb r1, [r0] _080D24D0: pop {r0} bx r0 .pool thumb_func_end SetWaldaWallpaperPatternId thumb_func_start GetWaldaWallpaperIconId GetWaldaWallpaperIconId: @ 80D24DC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d84 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end GetWaldaWallpaperIconId thumb_func_start SetWaldaWallpaperIconId SetWaldaWallpaperIconId: @ 80D24F0 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1D bhi _080D2504 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003d84 adds r0, r2 strb r1, [r0] _080D2504: pop {r0} bx r0 .pool thumb_func_end SetWaldaWallpaperIconId thumb_func_start GetWaldaWallpaperColorsPtr GetWaldaWallpaperColorsPtr: @ 80D2510 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d70 adds r0, r1 bx lr .pool thumb_func_end GetWaldaWallpaperColorsPtr thumb_func_start SetWaldaWallpaperColors SetWaldaWallpaperColors: @ 80D2524 push {r4,lr} ldr r2, =gSaveBlock1Ptr ldr r2, [r2] ldr r4, =0x00003d70 adds r3, r2, r4 strh r0, [r3] ldr r0, =0x00003d72 adds r2, r0 strh r1, [r2] pop {r4} pop {r0} bx r0 .pool thumb_func_end SetWaldaWallpaperColors thumb_func_start GetWaldaPhrasePtr GetWaldaPhrasePtr: @ 80D2548 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d74 adds r0, r1 bx lr .pool thumb_func_end GetWaldaPhrasePtr thumb_func_start SetWaldaPhrase SetWaldaPhrase: @ 80D255C push {lr} adds r1, r0, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003d74 adds r0, r2 bl StringCopy pop {r0} bx r0 .pool thumb_func_end SetWaldaPhrase thumb_func_start IsWaldaPhraseEmpty IsWaldaPhraseEmpty: @ 80D2578 push {lr} movs r1, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003d74 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF bne _080D258C movs r1, 0x1 _080D258C: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end IsWaldaPhraseEmpty thumb_func_start sub_80D259C sub_80D259C: @ 80D259C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gUnknown_02039D84 lsls r0, r4, 1 adds r0, r4 lsls r0, 4 bl Alloc str r0, [r6] ldr r5, =gUnknown_02039D88 movs r1, 0 cmp r0, 0 beq _080D25BA adds r1, r4, 0 _080D25BA: strh r1, [r5] movs r2, 0 cmp r2, r1 bcs _080D25E2 movs r3, 0 adds r4, r5, 0 _080D25C6: ldr r0, [r6] lsls r1, r2, 1 adds r1, r2 lsls r1, 4 adds r1, r0 str r3, [r1, 0x18] adds r1, 0x2C strb r3, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r4] cmp r2, r0 bcc _080D25C6 _080D25E2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D259C thumb_func_start sub_80D25F0 sub_80D25F0: @ 80D25F0 push {lr} ldr r0, =gUnknown_02039D84 ldr r0, [r0] bl Free pop {r0} bx r0 .pool thumb_func_end sub_80D25F0 thumb_func_start sub_80D2604 sub_80D2604: @ 80D2604 push {r4,r5,lr} movs r4, 0 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r4, r0 bge _080D2634 movs r5, 0 _080D2612: ldr r0, =gUnknown_02039D84 ldr r0, [r0] adds r0, r5, r0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0x1 bne _080D2628 lsls r0, r4, 24 lsrs r0, 24 bl sub_80D2918 _080D2628: adds r5, 0x30 adds r4, 0x1 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r4, r0 blt _080D2612 _080D2634: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D2604 thumb_func_start sub_80D2644 sub_80D2644: @ 80D2644 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r2, 0 ldr r2, [sp, 0x24] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r3, 16 lsrs r3, 16 mov r10, r3 lsls r2, 16 lsrs r2, 16 str r2, [sp] ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r6, r0 bcs _080D272C ldr r0, =gUnknown_02039D84 mov r9, r0 ldr r0, [r0] lsls r1, r6, 1 mov r8, r1 adds r5, r1, r6 lsls r5, 4 adds r0, r5, r0 movs r1, 0 str r1, [r0, 0x18] str r4, [r0, 0x1C] adds r0, 0x2B strb r7, [r0] mov r2, r9 ldr r0, [r2] adds r0, r5, r0 mov r3, r10 strh r3, [r0, 0x24] mov r1, sp ldrh r1, [r1] strh r1, [r0, 0x26] adds r0, r7, 0 movs r1, 0x3 bl GetBgAttribute adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 movs r1, 0x9 bl GetBgAttribute lsls r0, 16 lsrs r0, 16 mov r2, r9 ldr r1, [r2] adds r5, r1 ldr r2, =gSpriteTemplate_857BC88 lsls r4, 2 lsls r1, r0, 4 adds r4, r1 adds r4, r2 ldrh r1, [r4] strh r1, [r5, 0x20] ldrh r1, [r4, 0x2] strh r1, [r5, 0x22] mov r2, r8 cmp r0, 0 beq _080D26E8 adds r1, r5, 0 adds r1, 0x2A movs r0, 0x1 b _080D26EE .pool _080D26E8: adds r1, r5, 0 adds r1, 0x2A movs r0, 0x2 _080D26EE: strb r0, [r1] ldr r4, =gUnknown_02039D84 ldr r1, [r4] adds r2, r6 lsls r2, 4 adds r1, r2, r1 adds r0, r1, 0 adds r0, 0x2A ldrb r0, [r0] mov r3, r10 muls r3, r0 movs r0, 0 strh r3, [r1, 0x28] mov r3, r10 strh r3, [r1, 0x10] mov r5, sp ldrh r5, [r5] strh r5, [r1, 0x12] strh r0, [r1, 0xC] strh r0, [r1, 0xE] strh r0, [r1, 0x14] strh r0, [r1, 0x16] adds r0, r1, 0 adds r0, 0xC ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldr r0, [r4] adds r2, r0 adds r2, 0x2C movs r0, 0x1 strb r0, [r2] _080D272C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D2644 thumb_func_start sub_80D2740 sub_80D2740: @ 80D2740 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r2, r0 bcs _080D2764 ldr r0, =gUnknown_02039D84 ldr r1, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r0, r1 str r3, [r0, 0x18] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] _080D2764: pop {r0} bx r0 .pool thumb_func_end sub_80D2740 thumb_func_start sub_80D2770 sub_80D2770: @ 80D2770 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r3, r0 bcs _080D279C ldr r0, =gUnknown_02039D84 ldr r1, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 4 adds r0, r1 strh r4, [r0, 0x14] strh r2, [r0, 0x16] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] _080D279C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D2770 thumb_func_start sub_80D27AC sub_80D27AC: @ 80D27AC push {r4-r6,lr} ldr r4, [sp, 0x10] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r5, r0 bcs _080D27E6 ldr r0, =gUnknown_02039D84 ldr r1, [r0] lsls r0, r5, 1 adds r0, r5 lsls r0, 4 adds r0, r1 strh r6, [r0, 0xC] strh r2, [r0, 0xE] strh r3, [r0, 0x10] strh r4, [r0, 0x12] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] _080D27E6: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D27AC thumb_func_start sub_80D27F4 sub_80D27F4: @ 80D27F4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r5, r0 bcc _080D280C b _080D290E _080D280C: ldr r4, =gUnknown_02039D84 lsls r2, r5, 1 cmp r1, 0x5 bls _080D2816 b _080D2900 _080D2816: lsls r0, r1, 2 ldr r1, =_080D282C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D282C: .4byte _080D2844 .4byte _080D2864 .4byte _080D2888 .4byte _080D28A8 .4byte _080D28CC .4byte _080D28E8 _080D2844: ldr r4, =gUnknown_02039D84 ldr r0, [r4] lsls r3, r5, 1 adds r1, r3, r5 lsls r1, 4 adds r1, r0 lsls r2, r6, 24 asrs r2, 24 ldrh r0, [r1, 0x14] adds r0, r2 strh r0, [r1, 0x14] ldrh r0, [r1, 0x10] subs r0, r2 b _080D287E .pool _080D2864: ldr r4, =gUnknown_02039D84 ldr r0, [r4] lsls r3, r5, 1 adds r1, r3, r5 lsls r1, 4 adds r1, r0 lsls r2, r6, 24 asrs r2, 24 ldrh r0, [r1, 0xC] adds r0, r2 strh r0, [r1, 0xC] ldrh r0, [r1, 0x10] adds r0, r2 _080D287E: strh r0, [r1, 0x10] adds r2, r3, 0 b _080D2900 .pool _080D2888: ldr r4, =gUnknown_02039D84 ldr r0, [r4] lsls r3, r5, 1 adds r1, r3, r5 lsls r1, 4 adds r1, r0 lsls r2, r6, 24 asrs r2, 24 ldrh r0, [r1, 0x16] adds r0, r2 strh r0, [r1, 0x16] ldrh r0, [r1, 0x12] subs r0, r2 b _080D28C2 .pool _080D28A8: ldr r4, =gUnknown_02039D84 ldr r0, [r4] lsls r3, r5, 1 adds r1, r3, r5 lsls r1, 4 adds r1, r0 lsls r2, r6, 24 asrs r2, 24 ldrh r0, [r1, 0xE] subs r0, r2 strh r0, [r1, 0xE] ldrh r0, [r1, 0x12] adds r0, r2 _080D28C2: strh r0, [r1, 0x12] adds r2, r3, 0 b _080D2900 .pool _080D28CC: ldr r3, =gUnknown_02039D84 ldr r0, [r3] lsls r2, r5, 1 adds r1, r2, r5 lsls r1, 4 adds r1, r0 lsls r0, r6, 24 asrs r0, 24 ldrh r4, [r1, 0x14] adds r0, r4 strh r0, [r1, 0x14] b _080D28FE .pool _080D28E8: ldr r3, =gUnknown_02039D84 ldr r0, [r3] lsls r2, r5, 1 adds r1, r2, r5 lsls r1, 4 adds r1, r0 lsls r0, r6, 24 asrs r0, 24 ldrh r4, [r1, 0x16] adds r0, r4 strh r0, [r1, 0x16] _080D28FE: adds r4, r3, 0 _080D2900: ldr r0, [r4] adds r1, r2, r5 lsls r1, 4 adds r1, r0 adds r1, 0x2C movs r0, 0x1 strb r0, [r1] _080D290E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D27F4 thumb_func_start sub_80D2918 sub_80D2918: @ 80D2918 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 adds r6, r2, 0 ldr r0, =gUnknown_02039D88 ldrh r0, [r0] cmp r2, r0 bcs _080D2952 ldr r5, =gUnknown_02039D84 ldr r0, [r5] lsls r1, r2, 1 adds r1, r2 lsls r4, r1, 4 adds r0, r4, r0 ldr r0, [r0, 0x18] cmp r0, 0 beq _080D2940 adds r0, r2, 0 bl sub_80D2960 _080D2940: adds r0, r6, 0 bl sub_80D29F8 ldr r1, [r5] adds r1, r4, r1 adds r0, r1, 0 adds r0, 0xC ldm r0!, {r2-r4} stm r1!, {r2-r4} _080D2952: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D2918 thumb_func_start sub_80D2960 sub_80D2960: @ 80D2960 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gUnknown_02039D84 ldr r1, [r4] lsls r5, r0, 1 adds r0, r5, r0 lsls r0, 4 adds r0, r1 adds r1, r0, 0 adds r1, 0x2A ldrb r3, [r1] ldrh r1, [r0, 0x20] adds r2, r3, 0 muls r2, r1 mov r9, r2 movs r6, 0xA ldrsh r1, [r0, r6] mov r2, r9 muls r2, r1 ldr r1, [r0, 0x18] adds r1, r2 movs r6, 0x8 ldrsh r2, [r0, r6] muls r2, r3 adds r7, r1, r2 movs r6, 0 ldrh r0, [r0, 0x6] cmp r6, r0 bge _080D29E4 mov r10, r4 _080D29AA: mov r0, r10 ldr r1, [r0] mov r2, r8 adds r4, r5, r2 lsls r4, 4 adds r1, r4, r1 adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] ldrb r2, [r1, 0x8] ldrb r3, [r1, 0xA] adds r3, r6 lsls r3, 24 lsrs r3, 24 ldrb r1, [r1, 0x4] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] adds r1, r7, 0 bl CopyToBgTilemapBufferRect add r7, r9 adds r6, 0x1 mov r1, r10 ldr r0, [r1] adds r4, r0 ldrh r4, [r4, 0x6] cmp r6, r4 blt _080D29AA _080D29E4: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D2960 thumb_func_start sub_80D29F8 sub_80D29F8: @ 80D29F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gUnknown_02039D84 ldr r1, [r4] lsls r5, r0, 1 adds r0, r5, r0 lsls r0, 4 adds r0, r1 adds r1, r0, 0 adds r1, 0x2A ldrb r3, [r1] ldrh r1, [r0, 0x24] adds r2, r3, 0 muls r2, r1 mov r9, r2 movs r6, 0xE ldrsh r1, [r0, r6] mov r2, r9 muls r2, r1 ldr r1, [r0, 0x1C] adds r1, r2 movs r6, 0xC ldrsh r2, [r0, r6] muls r2, r3 adds r7, r1, r2 movs r6, 0 ldrh r0, [r0, 0x12] cmp r6, r0 bge _080D2A7C mov r10, r4 _080D2A42: mov r0, r10 ldr r1, [r0] mov r2, r8 adds r4, r5, r2 lsls r4, 4 adds r1, r4, r1 adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] ldrb r2, [r1, 0x14] ldrb r3, [r1, 0x16] adds r3, r6 lsls r3, 24 lsrs r3, 24 ldrb r1, [r1, 0x10] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] adds r1, r7, 0 bl CopyToBgTilemapBufferRect add r7, r9 adds r6, 0x1 mov r1, r10 ldr r0, [r1] adds r4, r0 ldrh r4, [r4, 0x12] cmp r6, r4 blt _080D2A42 _080D2A7C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D29F8 thumb_func_start sub_80D2A90 sub_80D2A90: @ 80D2A90 ldr r3, =gUnknown_02039D8C str r0, [r3] str r1, [r0] movs r1, 0 strb r2, [r0, 0x5] strb r1, [r0, 0x4] bx lr .pool thumb_func_end sub_80D2A90 thumb_func_start sub_80D2AA4 sub_80D2AA4: @ 80D2AA4 push {r4,r5,lr} ldr r2, =gUnknown_02039D8C ldr r1, [r2] ldrb r0, [r1, 0x4] cmp r0, 0 beq _080D2AE2 movs r4, 0 ldrb r1, [r1, 0x4] cmp r4, r1 bcs _080D2ADA adds r5, r2, 0 _080D2ABA: ldr r0, [r5] lsls r1, r4, 2 adds r1, r4 lsls r1, 2 ldr r0, [r0] adds r0, r1 ldr r1, [r0, 0x10] bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r5] ldrb r0, [r0, 0x4] cmp r4, r0 bcc _080D2ABA _080D2ADA: ldr r0, =gUnknown_02039D8C ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x4] _080D2AE2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D2AA4 thumb_func_start sub_80D2AEC sub_80D2AEC: @ 80D2AEC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 mov r10, r3 ldr r0, [sp, 0x24] ldr r3, [sp, 0x28] ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] lsls r1, 16 lsrs r1, 16 mov r12, r1 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, =gUnknown_02039D8C ldr r2, [r0] ldrb r0, [r2, 0x4] adds r1, r0, 0 ldrb r7, [r2, 0x5] cmp r1, r7 bcs _080D2B74 adds r0, 0x1 strb r0, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 lsls r0, r4, 1 strh r0, [r1, 0x8] ldr r2, [sp] lsls r0, r2, 5 add r0, r12 lsls r0, 1 add r0, r9 str r0, [r1, 0x4] adds r0, r3, 0 muls r0, r6 add r0, r8 lsls r0, 1 add r0, r10 str r0, [r1] strh r5, [r1, 0xC] strh r6, [r1, 0xA] ldr r0, =sub_80D2B88 str r0, [r1, 0x10] movs r0, 0x1 b _080D2B76 .pool _080D2B74: movs r0, 0 _080D2B76: 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_80D2AEC thumb_func_start sub_80D2B88 sub_80D2B88: @ 80D2B88 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 b _080D2BB2 _080D2B90: ldr r0, [r4] ldr r1, [r4, 0x4] ldrh r2, [r4, 0x8] lsrs r2, 1 bl CpuSet ldr r0, [r4, 0x4] adds r0, 0x40 str r0, [r4, 0x4] ldrh r1, [r4, 0xA] lsls r1, 1 ldr r0, [r4] adds r0, r1 str r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080D2BB2: ldrh r0, [r4, 0xC] cmp r5, r0 bcc _080D2B90 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D2B88 thumb_func_start sub_80D2BC0 sub_80D2BC0: @ 80D2BC0 push {r4-r7,lr} mov r12, r0 ldr r0, [sp, 0x14] lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r5, r0, 16 ldr r0, =gUnknown_02039D8C ldr r2, [r0] ldrb r0, [r2, 0x4] adds r1, r0, 0 ldrb r7, [r2, 0x5] cmp r1, r7 bcs _080D2C14 adds r0, 0x1 strb r0, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 lsls r0, r3, 1 strh r0, [r1, 0x8] lsls r0, r4, 5 adds r0, r6 lsls r0, 1 add r0, r12 str r0, [r1, 0x4] strh r5, [r1, 0xC] ldr r0, =sub_80D2C1C str r0, [r1, 0x10] movs r0, 0x1 b _080D2C16 .pool _080D2C14: movs r0, 0 _080D2C16: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D2BC0 thumb_func_start sub_80D2C1C sub_80D2C1C: @ 80D2C1C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 movs r0, 0 ldrh r1, [r6, 0xC] cmp r0, r1 bcs _080D2CAA movs r7, 0x80 lsls r7, 5 mov r5, sp ldr r2, =0x040000d4 mov r8, r2 movs r1, 0x81 lsls r1, 24 mov r10, r1 _080D2C42: ldr r2, [r6, 0x4] ldrh r3, [r6, 0x8] mov r12, r2 adds r0, 0x1 mov r9, r0 cmp r3, r7 bhi _080D2C6C movs r0, 0 strh r0, [r5] mov r2, sp mov r0, r8 str r2, [r0] mov r1, r12 str r1, [r0, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 mov r1, r8 b _080D2C94 .pool _080D2C6C: movs r4, 0 strh r4, [r5] ldr r1, =0x040000d4 mov r0, sp str r0, [r1] str r2, [r1, 0x4] ldr r0, =0x81000800 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r7 subs r3, r7 cmp r3, r7 bhi _080D2C6C strh r4, [r5] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 _080D2C94: str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, r12 adds r0, 0x40 str r0, [r6, 0x4] mov r1, r9 lsls r0, r1, 16 lsrs r0, 16 ldrh r2, [r6, 0xC] cmp r0, r2 bcc _080D2C42 _080D2CAA: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D2C1C .align 2, 0 @ Don't pad with nop.