.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8027CA0 sub_8027CA0: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08027CFA lsls r0, 2 ldr r1, _08027CB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027CB8: .4byte _08027CBC .align 2, 0 _08027CBC: .4byte _08027CFA .4byte _08027CFA .4byte _08027CF0 .4byte _08027CD0 .4byte _08027CD0 _08027CD0: bl sub_801F194 ldr r1, _08027CEC ldr r1, [r1] str r0, [r1, 0x20] lsls r0, 3 adds r0, r1, r0 ldrh r0, [r0, 0x2A] strh r0, [r1, 0x24] movs r0, 0x10 bl sub_8027184 b _08027CFA .align 2, 0 _08027CEC: .4byte gUnknown_203B2BC _08027CF0: bl sub_801F214 movs r0, 0x2 bl sub_8027184 _08027CFA: pop {r0} bx r0 thumb_func_end sub_8027CA0 thumb_func_start sub_8027D00 sub_8027D00: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08027D18 cmp r0, 0x3 bhi _08027D18 bl sub_801F8D0 movs r0, 0xF bl sub_8027184 _08027D18: pop {r0} bx r0 thumb_func_end sub_8027D00 thumb_func_start sub_8027D1C sub_8027D1C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08027D34 ldr r0, _08027D3C ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8027184 _08027D34: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08027D3C: .4byte gUnknown_203B2BC thumb_func_end sub_8027D1C thumb_func_start sub_8027D40 sub_8027D40: push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 bl sub_8008C54 adds r0, r6, 0 bl sub_80073B8 add r4, sp, 0x10 adds r0, r4, 0 adds r1, r5, 0 bl sub_8090B64 movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 strb r5, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08027D94 adds r1, r4, 0 add r2, sp, 0x4 bl sub_8090E14 ldr r2, _08027D98 str r5, [sp] movs r0, 0x4 movs r1, 0x3 adds r3, r6, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_80073E0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08027D94: .4byte gUnknown_202DE58 _08027D98: .4byte gUnknown_80DD958 thumb_func_end sub_8027D40 thumb_func_start sub_8027D9C sub_8027D9C: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08027DC0 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08027DB0 movs r2, 0x1 _08027DB0: cmp r2, 0 beq _08027DC4 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08027DC4 _08027DC0: movs r0, 0 b _08027DC6 _08027DC4: movs r0, 0x1 _08027DC6: pop {r1} bx r1 thumb_func_end sub_8027D9C thumb_func_start sub_8027DCC sub_8027DCC: push {r4,lr} adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 beq _08027E0E bl sub_808D3F8 cmp r0, r4 beq _08027E0E ldrb r0, [r4, 0x2] cmp r0, 0 bne _08027E0E movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08027DF0 movs r1, 0x1 _08027DF0: cmp r1, 0 beq _08027E00 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08027E0E _08027E00: adds r0, r4, 0 bl sub_8027E18 cmp r0, 0x3 beq _08027E0E movs r0, 0x1 b _08027E10 _08027E0E: movs r0, 0 _08027E10: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027DCC thumb_func_start sub_8027E18 sub_8027E18: push {r4,lr} adds r4, r0, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _08027E28 movs r0, 0 b _08027E46 _08027E28: bl sub_8090A34 cmp r0, 0x13 bgt _08027E34 movs r0, 0x1 b _08027E46 _08027E34: adds r0, r4, 0 bl sub_8027E4C lsls r0, 24 cmp r0, 0 bne _08027E44 movs r0, 0x3 b _08027E46 _08027E44: movs r0, 0x2 _08027E46: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027E18 thumb_func_start sub_8027E4C sub_8027E4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x28 ldrb r0, [r4] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08027E88 ldrb r0, [r4] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027E94 ldr r0, _08027E8C ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r0 ldr r0, _08027E90 cmp r1, r0 ble _08027EA8 _08027E88: movs r0, 0 b _08027EAA .align 2, 0 _08027E8C: .4byte gUnknown_203B460 _08027E90: .4byte 0x000003e7 _08027E94: ldr r0, _08027EB0 ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] ldr r0, _08027EB4 cmp r1, r0 bhi _08027E88 _08027EA8: movs r0, 0x1 _08027EAA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08027EB0: .4byte gUnknown_203B460 _08027EB4: .4byte 0x000003e6 thumb_func_end sub_8027E4C thumb_func_start sub_8027EB8 sub_8027EB8: push {r4,lr} ldr r4, _08027ED4 ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_8027E18 cmp r0, 0x1 beq _08027ED8 cmp r0, 0x1 bcc _08027F7C cmp r0, 0x2 beq _08027F0C b _08027F7C .align 2, 0 _08027ED4: .4byte gUnknown_203B2BC _08027ED8: ldr r0, _08027F08 bl sub_8011988 ldr r0, [r4] adds r0, 0x14 bl sub_8091274 bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x6 bl sub_8027184 b _08027F82 .align 2, 0 _08027F08: .4byte 0x0000014d _08027F0C: ldr r0, _08027F38 bl sub_8011988 ldr r0, [r4] ldrb r0, [r0, 0x14] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027F40 ldr r0, _08027F3C ldr r1, [r0] ldr r2, [r4] ldrb r0, [r2, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] ldrb r2, [r2, 0x15] adds r0, r2 b _08027F52 .align 2, 0 _08027F38: .4byte 0x0000014d _08027F3C: .4byte gUnknown_203B460 _08027F40: ldr r0, _08027F74 ldr r1, [r0] ldr r0, [r4] ldrb r0, [r0, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 _08027F52: strh r0, [r1] ldr r1, _08027F78 ldr r0, [r1] movs r2, 0 strb r2, [r0, 0x14] ldr r0, [r1] strb r2, [r0, 0x15] ldr r1, [r1] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x7 bl sub_8027184 b _08027F82 .align 2, 0 _08027F74: .4byte gUnknown_203B460 _08027F78: .4byte gUnknown_203B2BC _08027F7C: movs r0, 0x2 bl sub_8027184 _08027F82: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027EB8 thumb_func_start sub_8027F88 sub_8027F88: push {r4-r6,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08028050 movs r4, 0xA9 lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] ldr r2, _08028054 adds r0, r1, r2 movs r6, 0 str r6, [r0] movs r3, 0x86 lsls r3, 2 adds r1, r3 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] ldr r1, _08028058 adds r0, r1 ldr r1, _0802805C strh r1, [r0] ldr r0, _08028060 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08028064 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08028068 adds r2, r0 strb r6, [r2] ldr r0, [r5] ldr r1, _0802806C adds r0, r1 strb r6, [r0] ldr r0, [r5] ldr r2, _08028070 adds r0, r2 strb r6, [r0] ldr r1, [r5] adds r3, 0x4 adds r2, r1, r3 movs r0, 0x2 strh r0, [r2] ldr r0, _08028074 adds r1, r0 movs r0, 0x8 strh r0, [r1] movs r2, 0 movs r3, 0 adds r1, r5, 0 _0802802E: ldr r0, [r5] adds r0, 0x8 adds r0, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x35 ble _0802802E ldr r1, [r1] movs r0, 0x3D str r0, [r1] movs r0, 0 bl sub_8028B04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08028050: .4byte gUnknown_203B2C0 _08028054: .4byte 0x0000053c _08028058: .4byte 0x00000544 _0802805C: .4byte 0x0000ffff _08028060: .4byte gUnknown_202E5D8 _08028064: .4byte gUnknown_202DF98 _08028068: .4byte 0x0000042c _0802806C: .4byte 0x0000042d _08028070: .4byte 0x0000042e _08028074: .4byte 0x0000042a thumb_func_end sub_8027F88 thumb_func_start sub_8028078 sub_8028078: push {lr} ldr r0, _08028090 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x3C bls _08028086 b _080282D4 _08028086: lsls r0, 2 ldr r1, _08028094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028090: .4byte gUnknown_203B2C0 _08028094: .4byte _08028098 .align 2, 0 _08028098: .4byte _080282C4 .4byte _080282C4 .4byte _080282CA .4byte _080282D0 .4byte _08028222 .4byte _08028234 .4byte _08028228 .4byte _0802822E .4byte _0802823A .4byte _080281FE .4byte _08028272 .4byte _08028278 .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _08028286 .4byte _08028294 .4byte _0802829A .4byte _080282B2 .4byte _080282B8 .4byte _080282BE .4byte _080282A0 .4byte _080282A6 .4byte _080282AC .4byte _08028240 .4byte _08028248 .4byte _0802824E .4byte _0802824E .4byte _0802825A .4byte _0802826C .4byte _08028260 .4byte _08028266 .4byte _08028254 .4byte _08028204 .4byte _0802820A .4byte _080282CA .4byte _08028210 .4byte _08028216 .4byte _0802821C .4byte _080281E0 .4byte _080281F2 .4byte _080281E6 .4byte _080281EC .4byte _080281DA .4byte _080281D4 .4byte _080281F8 .4byte _080281CE .4byte _080281C2 .4byte _080281AA .4byte _080281B0 .4byte _080281B6 .4byte _080281BC .4byte _080281C8 .4byte _080281A4 .4byte _0802819E .4byte _080282CA .4byte _08028192 .4byte _08028198 .4byte _0802818C _0802818C: bl sub_8029B34 b _080282D4 _08028192: bl sub_8029AD8 b _080282D4 _08028198: bl sub_8029AF4 b _080282D4 _0802819E: bl sub_8029A88 b _080282D4 _080281A4: bl sub_8029AB0 b _080282D4 _080281AA: bl sub_80297B8 b _080282D4 _080281B0: bl sub_80297D4 b _080282D4 _080281B6: bl sub_8029884 b _080282D4 _080281BC: bl sub_8029944 b _080282D4 _080281C2: bl sub_80299AC b _080282D4 _080281C8: bl sub_80299D8 b _080282D4 _080281CE: bl sub_8029A6C b _080282D4 _080281D4: bl sub_8029A18 b _080282D4 _080281DA: bl sub_80295A8 b _080282D4 _080281E0: bl sub_8029668 b _080282D4 _080281E6: bl sub_8029684 b _080282D4 _080281EC: bl sub_8029740 b _080282D4 _080281F2: bl sub_80295D8 b _080282D4 _080281F8: bl sub_802979C b _080282D4 _080281FE: bl sub_8029358 b _080282D4 _08028204: bl sub_8029374 b _080282D4 _0802820A: bl sub_802939C b _080282D4 _08028210: bl sub_80293D8 b _080282D4 _08028216: bl sub_80293F4 b _080282D4 _0802821C: bl sub_802955C b _080282D4 _08028222: bl sub_80292A4 b _080282D4 _08028228: bl sub_80292EC b _080282D4 _0802822E: bl sub_802933C b _080282D4 _08028234: bl sub_802958C b _080282D4 _0802823A: bl sub_8029208 b _080282D4 _08028240: movs r0, 0x1 bl sub_8028DE8 b _080282D4 _08028248: bl sub_8028F80 b _080282D4 _0802824E: bl sub_8028FC0 b _080282D4 _08028254: bl sub_8028FDC b _080282D4 _0802825A: bl sub_80290D4 b _080282D4 _08028260: bl sub_80290F0 b _080282D4 _08028266: bl sub_80291AC b _080282D4 _0802826C: bl sub_8029044 b _080282D4 _08028272: bl sub_8028CFC b _080282D4 _08028278: bl sub_8028D4C b _080282D4 _0802827E: movs r0, 0xA bl sub_8028DE8 b _080282D4 _08028286: bl sub_8028E08 b _080282D4 _0802828C: movs r0, 0x19 bl sub_8028DE8 b _080282D4 _08028294: bl sub_8028E24 b _080282D4 _0802829A: bl sub_8028E54 b _080282D4 _080282A0: bl sub_8028E84 b _080282D4 _080282A6: bl sub_8028EAC b _080282D4 _080282AC: bl sub_8028ED4 b _080282D4 _080282B2: bl sub_8028F04 b _080282D4 _080282B8: bl sub_8028F30 b _080282D4 _080282BE: bl sub_8028F58 b _080282D4 _080282C4: bl sub_8028BF0 b _080282D4 _080282CA: bl sub_8028CE0 b _080282D4 _080282D0: movs r0, 0x3 b _080282D6 _080282D4: movs r0, 0 _080282D6: pop {r1} bx r1 thumb_func_end sub_8028078 thumb_func_start sub_80282DC sub_80282DC: ldr r1, _080282F4 ldr r1, [r1] movs r3, 0x86 lsls r3, 2 adds r2, r1, r3 ldrb r2, [r2] strb r2, [r0] ldr r0, _080282F8 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _080282F4: .4byte gUnknown_203B2C0 _080282F8: .4byte 0x0000053c thumb_func_end sub_80282DC thumb_func_start sub_80282FC sub_80282FC: push {r4,lr} ldr r4, _08028340 ldr r0, [r4] cmp r0, 0 beq _08028338 movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8031E10 bl sub_8023C60 bl sub_803084C bl sub_80155F0 bl sub_80310B4 bl sub_8030DE4 bl sub_802453C _08028338: pop {r4} pop {r0} bx r0 .align 2, 0 _08028340: .4byte gUnknown_203B2C0 thumb_func_end sub_80282FC thumb_func_start nullsub_130 nullsub_130: bx lr thumb_func_end nullsub_130 thumb_func_start sub_8028348 sub_8028348: push {r4-r6,lr} sub sp, 0x14 ldr r1, _08028368 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x3C bls _0802835C bl _08028AF2 _0802835C: lsls r0, 2 ldr r1, _0802836C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028368: .4byte gUnknown_203B2C0 _0802836C: .4byte _08028370 .align 2, 0 _08028370: .4byte _08028A84 .4byte _08028AB4 .4byte _08028AE0 .4byte _08028AF2 .4byte _08028650 .4byte _08028660 .4byte _08028678 .4byte _08028AF2 .4byte _08028802 .4byte _08028640 .4byte _0802890C .4byte _08028948 .4byte _08028988 .4byte _08028978 .4byte _080289A0 .4byte _08028990 .4byte _080289B8 .4byte _080289B0 .4byte _080289C8 .4byte _080289E8 .4byte _08028A48 .4byte _08028A58 .4byte _08028A68 .4byte _080289F8 .4byte _08028A08 .4byte _08028A18 .4byte _08028850 .4byte _08028860 .4byte _08028868 .4byte _08028878 .4byte _08028890 .4byte _080288A0 .4byte _080288C6 .4byte _08028AF2 .4byte _08028888 .4byte _08028790 .4byte _08028AF2 .4byte _080287C4 .4byte _080287D4 .4byte _080287DC .4byte _08028AF2 .4byte _080285CC .4byte _080285DC .4byte _080288C6 .4byte _08028AF2 .4byte _080285AC .4byte _08028610 .4byte _080285F8 .4byte _08028600 .4byte _0802856C .4byte _080284F4 .4byte _0802850C .4byte _08028532 .4byte _08028AF2 .4byte _0802859C .4byte _080284B8 .4byte _080284A8 .4byte _080284EC .4byte _080284A0 .4byte _08028464 .4byte _08028490 _08028464: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _08028AF2 _08028490: ldr r0, _0802849C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802849C: .4byte gUnknown_80DDBA8 _080284A0: ldr r0, _080284A4 b _08028A6A .align 2, 0 _080284A4: .4byte gUnknown_80DDBFC _080284A8: ldr r0, _080284B4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080284B4: .4byte gUnknown_80DDC30 _080284B8: ldr r0, [r6] ldr r2, _080284D0 adds r0, r2 ldr r0, [r0] cmp r0, 0xE bne _080284C6 b _08028AF2 _080284C6: cmp r0, 0xE bhi _080284D4 cmp r0, 0xD beq _080284DA b _08028AF2 .align 2, 0 _080284D0: .4byte 0x00000534 _080284D4: cmp r0, 0x10 bls _080284DA b _08028AF2 _080284DA: ldr r0, _080284E8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080284E8: .4byte gUnknown_80DDC70 _080284EC: ldr r0, _080284F0 b _08028A6A .align 2, 0 _080284F0: .4byte gUnknown_80DDC30 _080284F4: ldr r0, _08028504 ldr r3, _08028508 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028504: .4byte gUnknown_80DDCBC _08028508: .4byte 0x00000101 _0802850C: bl sub_8023CE8 cmp r0, 0 beq _08028516 b _08028AF2 _08028516: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 b _08028AF2 _08028532: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028564 ldr r2, _08028568 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 b _080288F6 .align 2, 0 _08028564: .4byte gUnknown_80DDAE4 _08028568: .4byte gUnknown_80DDAFC _0802856C: ldr r0, _08028594 ldr r3, _08028598 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xA bl sub_8014248 b _08028AF2 .align 2, 0 _08028594: .4byte gUnknown_80DDD2C _08028598: .4byte gUnknown_80DDAA0 _0802859C: ldr r0, _080285A4 ldr r3, _080285A8 b _08028A1C .align 2, 0 _080285A4: .4byte gUnknown_80DDD88 _080285A8: .4byte gUnknown_80DDA80 _080285AC: ldr r0, _080285C4 ldr r3, _080285C8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080285C4: .4byte gUnknown_80DDDBC _080285C8: .4byte gUnknown_80DDA64 _080285CC: ldr r0, _080285D8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080285D8: .4byte gUnknown_80DDDD8 _080285DC: bl sub_8030894 cmp r0, 0 beq _080285E6 b _08028AF2 _080285E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080288BA _080285F8: ldr r0, _080285FC b _08028A6A .align 2, 0 _080285FC: .4byte gUnknown_80DDE20 _08028600: ldr r0, _0802860C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802860C: .4byte gUnknown_80DDE58 _08028610: ldr r0, _08028638 ldr r3, _0802863C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 b _08028AF2 .align 2, 0 _08028638: .4byte gUnknown_80DDEC0 _0802863C: .4byte gUnknown_80DDB60 _08028640: ldr r0, _0802864C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802864C: .4byte gUnknown_80DDF2C _08028650: ldr r0, _08028658 ldr r3, _0802865C b _08028A1C .align 2, 0 _08028658: .4byte gUnknown_80DDFB8 _0802865C: .4byte gUnknown_80DDA48 _08028660: movs r0, 0 bl nullsub_23 ldr r0, _08028674 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028674: .4byte gUnknown_80DE01C _08028678: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 bne _0802878A ldr r1, [r0, 0x40] cmp r1, 0x3 beq _080286A0 cmp r1, 0x4 beq _080286C2 b _08028748 _080286A0: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08028740 _080286C2: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r4, _08028760 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08028736 adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08028764 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _08028736: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08028740: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08028748: ldr r4, _08028768 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802878A ldr r0, [r2, 0x40] cmp r0, 0x3 beq _0802876C cmp r0, 0x4 beq _08028776 b _0802878A .align 2, 0 _08028760: .4byte 0x00000544 _08028764: .4byte gUnknown_203B45C _08028768: .4byte gUnknown_203B2C0 _0802876C: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 movs r0, 0x3 b _08028782 _08028776: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 movs r0, 0x4 _08028782: bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] _0802878A: bl sub_8011854 b _08028AF2 _08028790: ldr r0, [r6] ldr r4, _080287A8 adds r0, r4 ldr r0, [r0] cmp r0, 0xE bne _0802879E b _08028AF2 _0802879E: cmp r0, 0xE bhi _080287AC cmp r0, 0xD beq _080287B2 b _08028AF2 .align 2, 0 _080287A8: .4byte 0x00000534 _080287AC: cmp r0, 0x10 bls _080287B2 b _08028AF2 _080287B2: ldr r0, _080287C0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080287C0: .4byte gUnknown_80DE06C _080287C4: ldr r0, _080287D0 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080287D0: .4byte gUnknown_80DE0C0 _080287D4: ldr r0, _080287D8 b _08028A6A .align 2, 0 _080287D8: .4byte gUnknown_80DE124 _080287DC: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _08028AF2 _08028802: ldr r4, [r6] movs r2, 0xA7 lsls r2, 3 adds r0, r4, r2 ldr r2, [r0] cmp r2, 0 beq _08028816 cmp r2, 0x2 beq _08028824 b _08028AF2 _08028816: ldr r0, _0802881C ldr r3, _08028820 b _0802882A .align 2, 0 _0802881C: .4byte gUnknown_80DE178 _08028820: .4byte gUnknown_80DDB24 _08028824: ldr r0, _08028848 ldr r3, _0802884C movs r2, 0 _0802882A: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8014248 b _08028AF2 .align 2, 0 _08028848: .4byte gUnknown_80DE1B4 _0802884C: .4byte gUnknown_80DDB24 _08028850: ldr r0, _0802885C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802885C: .4byte gUnknown_80DE1E4 _08028860: ldr r0, _08028864 b _08028A6A .align 2, 0 _08028864: .4byte gUnknown_80DE280 _08028868: ldr r0, _08028874 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028874: .4byte gUnknown_80DE2B0 _08028878: ldr r0, _08028884 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028884: .4byte gUnknown_80DE368 _08028888: ldr r0, _0802888C b _08028A1A .align 2, 0 _0802888C: .4byte gUnknown_80DDDBC _08028890: ldr r0, _0802889C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802889C: .4byte gUnknown_80DE430 _080288A0: bl sub_8030894 cmp r0, 0 beq _080288AA b _08028AF2 _080288AA: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 _080288BA: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _08028AF2 _080288C6: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028904 ldr r2, _08028908 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080288F6: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08028AF2 .align 2, 0 _08028904: .4byte gUnknown_80DDACC _08028908: .4byte gUnknown_80DDAFC _0802890C: bl sub_8095350 ldr r1, _0802893C ldr r1, [r1] movs r3, 0xA8 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r4, 0xA7 lsls r4, 3 adds r1, r4 ldr r1, [r1] cmp r1, 0x6 beq _08028940 cmp r1, 0x6 bls _0802892E b _08028AF2 _0802892E: cmp r1, 0x5 beq _08028934 b _08028AF2 _08028934: movs r0, 0x2 bl sub_8030F58 b _08028AF2 .align 2, 0 _0802893C: .4byte gUnknown_203B2C0 _08028940: movs r0, 0x4 bl sub_8030F58 b _08028AF2 _08028948: ldr r0, _08028970 ldr r3, _08028974 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08028AF2 .align 2, 0 _08028970: .4byte gUnknown_80DE48C _08028974: .4byte gUnknown_80DD9EC _08028978: ldr r0, _08028984 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028984: .4byte gUnknown_80DE4B8 _08028988: ldr r0, _0802898C b _08028A6A .align 2, 0 _0802898C: .4byte gUnknown_80DE4F0 _08028990: ldr r0, _0802899C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802899C: .4byte gUnknown_80DE524 _080289A0: ldr r0, _080289AC ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080289AC: .4byte gUnknown_80DE614 _080289B0: ldr r0, _080289B4 b _08028A6A .align 2, 0 _080289B4: .4byte gUnknown_80DE648 _080289B8: ldr r0, _080289C4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080289C4: .4byte gUnknown_80DE694 _080289C8: ldr r0, _080289E0 ldr r3, _080289E4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080289E0: .4byte gUnknown_80DE6D4 _080289E4: .4byte gUnknown_80DDA48 _080289E8: ldr r0, _080289F0 ldr r3, _080289F4 b _08028A1C .align 2, 0 _080289F0: .4byte gUnknown_80DE754 _080289F4: .4byte gUnknown_80DDA48 _080289F8: ldr r0, _08028A04 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A04: .4byte gUnknown_80DE7B8 _08028A08: ldr r0, _08028A14 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A14: .4byte gUnknown_80DE7E8 _08028A18: ldr r0, _08028A40 _08028A1A: ldr r3, _08028A44 _08028A1C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 _08028A2E: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 b _08028AF2 .align 2, 0 _08028A40: .4byte gUnknown_80DE808 _08028A44: .4byte gUnknown_80DDA64 _08028A48: ldr r0, _08028A54 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A54: .4byte gUnknown_80DE830 _08028A58: ldr r0, _08028A64 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A64: .4byte gUnknown_80DE864 _08028A68: ldr r0, _08028A7C _08028A6A: ldr r2, [r6] movs r4, 0x84 lsls r4, 3 adds r2, r4 _08028A72: ldr r3, _08028A80 movs r1, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028A7C: .4byte gUnknown_80DE7E8 _08028A80: .4byte 0x0000010d _08028A84: ldr r0, _08028AAC ldr r3, _08028AB0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AAC: .4byte gUnknown_80DE8B4 _08028AB0: .4byte gUnknown_80DD970 _08028AB4: ldr r0, _08028AD8 ldr r3, _08028ADC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AD8: .4byte gUnknown_80DE918 _08028ADC: .4byte gUnknown_80DD970 _08028AE0: ldr r0, _08028AFC ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028B00 movs r1, 0 bl sub_80141B4 _08028AF2: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08028AFC: .4byte gUnknown_80DE93C _08028B00: .4byte 0x0000010d thumb_func_end sub_8028348 thumb_func_start sub_8028B04 sub_8028B04: push {lr} ldr r1, _08028B18 ldr r1, [r1] str r0, [r1, 0x4] bl nullsub_130 bl sub_8028348 pop {r0} bx r0 .align 2, 0 _08028B18: .4byte gUnknown_203B2C0 thumb_func_end sub_8028B04 thumb_func_start sub_8028B1C sub_8028B1C: push {lr} cmp r0, 0xF bhi _08028BE0 lsls r0, 2 ldr r1, _08028B2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028B2C: .4byte _08028B30 .align 2, 0 _08028B30: .4byte _08028BE0 .4byte _08028BA8 .4byte _08028BA8 .4byte _08028B70 .4byte _08028B78 .4byte _08028BA8 .4byte _08028B80 .4byte _08028B88 .4byte _08028BE0 .4byte _08028B90 .4byte _08028BE0 .4byte _08028B98 .4byte _08028BE0 .4byte _08028BA0 .4byte _08028BA8 .4byte _08028BCC _08028B70: ldr r0, _08028B74 b _08028BAA .align 2, 0 _08028B74: .4byte gUnknown_80DE98C _08028B78: ldr r0, _08028B7C b _08028BAA .align 2, 0 _08028B7C: .4byte gUnknown_80DE9F0 _08028B80: ldr r0, _08028B84 b _08028BAA .align 2, 0 _08028B84: .4byte gUnknown_80DEA58 _08028B88: ldr r0, _08028B8C b _08028BAA .align 2, 0 _08028B8C: .4byte gUnknown_80DEAB4 _08028B90: ldr r0, _08028B94 b _08028BAA .align 2, 0 _08028B94: .4byte gUnknown_80DEB18 _08028B98: ldr r0, _08028B9C b _08028BAA .align 2, 0 _08028B9C: .4byte gUnknown_80DEB18 _08028BA0: ldr r0, _08028BA4 b _08028BAA .align 2, 0 _08028BA4: .4byte gUnknown_80DEB54 _08028BA8: ldr r0, _08028BC0 _08028BAA: ldr r1, _08028BC4 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BC8 movs r1, 0 bl sub_80141B4 b _08028BE0 .align 2, 0 _08028BC0: .4byte gUnknown_80DE954 _08028BC4: .4byte gUnknown_203B2C0 _08028BC8: .4byte 0x0000010d _08028BCC: ldr r0, _08028BE4 ldr r1, _08028BE8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BEC movs r1, 0 bl sub_80141B4 _08028BE0: pop {r0} bx r0 .align 2, 0 _08028BE4: .4byte gUnknown_80DEC00 _08028BE8: .4byte gUnknown_203B2C0 _08028BEC: .4byte 0x0000010d thumb_func_end sub_8028B1C thumb_func_start sub_8028BF0 sub_8028BF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CDA ldr r2, _08028C20 ldr r0, [r2] movs r1, 0x8 str r1, [r0, 0x40] ldr r1, _08028C24 adds r0, r1 ldr r1, _08028C28 strh r1, [r0] ldr r0, [sp] cmp r0, 0xA bhi _08028CDA lsls r0, 2 ldr r1, _08028C2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028C20: .4byte gUnknown_203B2C0 _08028C24: .4byte 0x00000544 _08028C28: .4byte 0x0000ffff _08028C2C: .4byte _08028C30 .align 2, 0 _08028C30: .4byte _08028C5C .4byte _08028C88 .4byte _08028CA2 .4byte _08028CCC .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CD4 _08028C5C: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08028C80 movs r0, 0x8 bl sub_8028B04 b _08028CDA _08028C80: movs r0, 0x9 bl sub_8028B04 b _08028CDA _08028C88: movs r0, 0x2 bl sub_8095324 cmp r0, 0 beq _08028C9A movs r0, 0x1E bl sub_8028B04 b _08028CDA _08028C9A: movs r0, 0x1A bl sub_8028B04 b _08028CDA _08028CA2: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0x2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08028CC4 movs r0, 0x29 bl sub_8028B04 b _08028CDA _08028CC4: movs r0, 0x2F bl sub_8028B04 b _08028CDA _08028CCC: movs r0, 0xB bl sub_8028B04 b _08028CDA _08028CD4: movs r0, 0x2 bl sub_8028B04 _08028CDA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028BF0 thumb_func_start sub_8028CE0 sub_8028CE0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CF4 movs r0, 0x3 bl sub_8028B04 _08028CF4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028CE0 thumb_func_start sub_8028CFC sub_8028CFC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028D42 bl sub_8031050 cmp r0, 0x3 bhi _08028D42 cmp r0, 0x2 bcc _08028D42 bl sub_8095350 adds r4, r0, 0 bl sub_80310B4 ldr r0, _08028D38 ldr r0, [r0] movs r1, 0xA8 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r4, r0 beq _08028D3C movs r0, 0x17 bl sub_8028B04 b _08028D42 .align 2, 0 _08028D38: .4byte gUnknown_203B2C0 _08028D3C: movs r0, 0x19 bl sub_8028B04 _08028D42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028CFC thumb_func_start sub_8028D4C sub_8028D4C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DE0 ldr r0, _08028D78 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0x6 beq _08028DA2 cmp r1, 0x6 bgt _08028D7C cmp r1, 0x5 beq _08028D86 b _08028DE0 .align 2, 0 _08028D78: .4byte gUnknown_203B2C0 _08028D7C: cmp r1, 0x7 beq _08028DBE cmp r1, 0xA beq _08028DDA b _08028DE0 _08028D86: movs r0, 0x2 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028D9A movs r0, 0xC bl sub_8028B04 b _08028DE0 _08028D9A: movs r0, 0xD bl sub_8028B04 b _08028DE0 _08028DA2: movs r0, 0x4 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DB6 movs r0, 0xE bl sub_8028B04 b _08028DE0 _08028DB6: movs r0, 0xF bl sub_8028B04 b _08028DE0 _08028DBE: movs r0, 0 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DD2 movs r0, 0x10 bl sub_8028B04 b _08028DE0 _08028DD2: movs r0, 0x11 bl sub_8028B04 b _08028DE0 _08028DDA: movs r0, 0x1 bl sub_8028B04 _08028DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028D4C thumb_func_start sub_8028DE8 sub_8028DE8: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DFE adds r0, r4, 0 bl sub_8028B04 _08028DFE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028DE8 thumb_func_start sub_8028E08 sub_8028E08: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E1C movs r0, 0x12 bl sub_8028B04 _08028E1C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E08 thumb_func_start sub_8028E24 sub_8028E24: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E4C ldr r0, [sp] cmp r0, 0x8 beq _08028E3E cmp r0, 0xA beq _08028E46 b _08028E4C _08028E3E: movs r0, 0x13 bl sub_8028B04 b _08028E4C _08028E46: movs r0, 0x1 bl sub_8028B04 _08028E4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E24 thumb_func_start sub_8028E54 sub_8028E54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E7C ldr r0, [sp] cmp r0, 0x8 beq _08028E6E cmp r0, 0xA beq _08028E76 b _08028E7C _08028E6E: movs r0, 0x14 bl sub_8028B04 b _08028E7C _08028E76: movs r0, 0x1 bl sub_8028B04 _08028E7C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E54 thumb_func_start sub_8028E84 sub_8028E84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EA4 movs r0, 0x18 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028EA4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E84 thumb_func_start sub_8028EAC sub_8028EAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028ECE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028ECE bl sub_8012750 movs r0, 0x19 bl sub_8028B04 _08028ECE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028EAC thumb_func_start sub_8028ED4 sub_8028ED4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EFE ldr r0, [sp] cmp r0, 0x8 bne _08028EF0 movs r0, 0xB bl sub_8028B04 b _08028EFE _08028EF0: cmp r0, 0x8 blt _08028EFE cmp r0, 0xA bgt _08028EFE movs r0, 0x2 bl sub_8028B04 _08028EFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028ED4 thumb_func_start sub_8028F04 sub_8028F04: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F28 movs r4, 0 _08028F14: lsls r0, r4, 24 lsrs r0, 24 bl sub_8095240 adds r4, 0x1 cmp r4, 0x1F ble _08028F14 movs r0, 0x15 bl sub_8028B04 _08028F28: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028F04 thumb_func_start sub_8028F30 sub_8028F30: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F50 movs r0, 0x16 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028F50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F30 thumb_func_start sub_8028F58 sub_8028F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F7A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028F7A bl sub_8012750 movs r0, 0x2 bl sub_8028B04 _08028F7A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F58 thumb_func_start sub_8028F80 sub_8028F80: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FAE ldr r4, _08028FB8 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_809927C ldr r0, [r4] ldr r1, _08028FBC adds r0, r1 movs r1, 0x1 str r1, [r0] movs r0, 0x3 bl sub_8028B04 _08028FAE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08028FB8: .4byte gUnknown_203B2C0 _08028FBC: .4byte 0x0000053c thumb_func_end sub_8028F80 thumb_func_start sub_8028FC0 sub_8028FC0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FD4 movs r0, 0x1 bl sub_8028B04 _08028FD4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028FC0 thumb_func_start sub_8028FDC sub_8028FDC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802903C ldr r0, [sp] cmp r0, 0x8 beq _08028FFC cmp r0, 0x8 blt _0802903C cmp r0, 0xA bgt _0802903C movs r0, 0x1 b _08029038 _08028FFC: ldr r0, _08029020 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r4, r0, 0 ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _08029024 movs r0, 0x1C b _08029038 .align 2, 0 _08029020: .4byte gUnknown_203B2C0 _08029024: adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bgt _08029036 movs r0, 0x1D b _08029038 _08029036: movs r0, 0x1B _08029038: bl sub_8028B04 _0802903C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FDC thumb_func_start sub_8029044 sub_8029044: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802906C cmp r0, 0x3 bhi _0802905A cmp r0, 0x2 beq _08029060 b _080290CA _0802905A: cmp r0, 0x4 beq _08029088 b _080290CA _08029060: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _080290CA _0802906C: bl sub_80307EC ldr r1, _08029084 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x20 bl sub_8028B04 b _080290CA .align 2, 0 _08029084: .4byte gUnknown_203B2C0 _08029088: ldr r4, _080290D0 ldr r1, [r4] movs r0, 0x1F str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 _080290CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080290D0: .4byte gUnknown_203B2C0 thumb_func_end sub_8029044 thumb_func_start sub_80290D4 sub_80290D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080290E8 movs r0, 0x1F bl sub_8028B04 _080290E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80290D4 thumb_func_start sub_80290F0 sub_80290F0: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08029134 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08029122 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08029122: ldr r0, [sp] cmp r0, 0xA beq _08029184 cmp r0, 0xA bgt _08029138 cmp r0, 0x4 beq _08029184 b _080291A0 .align 2, 0 _08029134: .4byte gUnknown_203B2C0 _08029138: cmp r0, 0xB beq _08029142 cmp r0, 0xC beq _0802914E b _080291A0 _08029142: bl sub_803084C movs r0, 0x22 bl sub_8028B04 b _080291A0 _0802914E: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 b _080291A0 _08029184: ldr r0, _080291A8 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1F bl sub_8028B04 _080291A0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080291A8: .4byte gUnknown_203B2C0 thumb_func_end sub_80290F0 thumb_func_start sub_80291AC sub_80291AC: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029200 cmp r0, 0x2 bcc _08029200 bl sub_8030DE4 bl sub_8004914 ldr r4, _080291F8 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080291FC movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x20 bl sub_8028B04 b _08029200 .align 2, 0 _080291F8: .4byte gUnknown_203B2C0 _080291FC: bl sub_8028B04 _08029200: pop {r4} pop {r0} bx r0 thumb_func_end sub_80291AC thumb_func_start sub_8029208 sub_8029208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802929E ldr r2, [sp] cmp r2, 0xE bgt _08029226 cmp r2, 0xD bge _0802922C cmp r2, 0xA beq _08029298 b _0802929E _08029226: cmp r2, 0xF beq _08029264 b _0802929E _0802922C: ldr r0, _0802924C ldr r0, [r0] ldr r1, _08029250 adds r2, r0, r1 movs r1, 0xD str r1, [r2] movs r3, 0xA7 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0 beq _08029254 cmp r0, 0x2 beq _0802925C b _0802929E .align 2, 0 _0802924C: .4byte gUnknown_203B2C0 _08029250: .4byte 0x00000534 _08029254: movs r0, 0x4 bl sub_8028B04 b _0802929E _0802925C: movs r0, 0x30 bl sub_8028B04 b _0802929E _08029264: ldr r0, _08029280 ldr r0, [r0] ldr r3, _08029284 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08029288 cmp r0, 0x2 beq _08029290 b _0802929E .align 2, 0 _08029280: .4byte gUnknown_203B2C0 _08029284: .4byte 0x00000534 _08029288: movs r0, 0x26 bl sub_8028B04 b _0802929E _08029290: movs r0, 0x3A bl sub_8028B04 b _0802929E _08029298: movs r0, 0x1 bl sub_8028B04 _0802929E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029208 thumb_func_start sub_80292A4 sub_80292A4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080292E6 ldr r0, [sp] cmp r0, 0x8 beq _080292BE cmp r0, 0xA beq _080292E0 b _080292E6 _080292BE: ldr r0, _080292DC ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080292D2 cmp r0, 0x2 bne _080292E6 _080292D2: movs r0, 0x5 bl sub_8028B04 b _080292E6 .align 2, 0 _080292DC: .4byte gUnknown_203B2C0 _080292E0: movs r0, 0x1 bl sub_8028B04 _080292E6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292A4 thumb_func_start sub_80292EC sub_80292EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029336 ldr r0, _08029318 ldr r1, [r0] ldr r0, [r1, 0x44] cmp r0, 0 bne _0802932C movs r2, 0xA7 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0802931C cmp r0, 0x2 beq _08029324 b _08029336 .align 2, 0 _08029318: .4byte gUnknown_203B2C0 _0802931C: movs r0, 0x23 bl sub_8028B04 b _08029336 _08029324: movs r0, 0x37 bl sub_8028B04 b _08029336 _0802932C: bl sub_8028B1C movs r0, 0x7 bl sub_8028B04 _08029336: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292EC thumb_func_start sub_802933C sub_802933C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029350 movs r0, 0x1 bl sub_8028B04 _08029350: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802933C thumb_func_start sub_8029358 sub_8029358: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802936C movs r0, 0x1 bl sub_8028B04 _0802936C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029358 thumb_func_start sub_8029374 sub_8029374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029394 movs r0, 0x24 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029394: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029374 thumb_func_start sub_802939C sub_802939C: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293D0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080293D0 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _080293CA movs r0, 0x25 bl sub_8028B04 b _080293D0 _080293CA: movs r0, 0x2 bl sub_8028B04 _080293D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802939C thumb_func_start sub_80293D8 sub_80293D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293EC movs r0, 0x27 bl sub_8028B04 _080293EC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80293D8 thumb_func_start sub_80293F4 sub_80293F4: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802940E b _08029530 _0802940E: cmp r4, 0x3 beq _08029414 b _08029550 _08029414: ldr r0, _08029434 ldr r1, [r0] adds r1, 0x8 movs r0, 0x1C add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802942A b _0802951C _0802942A: lsls r0, 2 ldr r1, _08029438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029434: .4byte gUnknown_203B2C0 _08029438: .4byte _0802943C .align 2, 0 _0802943C: .4byte _080294C8 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _08029484 .4byte _080294C0 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _080294F0 .4byte _0802951C .4byte _0802951C _08029484: ldr r0, _080294B4 ldr r3, _080294B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _080294BC ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 movs r0, 0x28 bl sub_8028B04 b _0802951C .align 2, 0 _080294B4: .4byte gUnknown_80DEC70 _080294B8: .4byte gUnknown_80DDA48 _080294BC: .4byte gUnknown_203B2C0 _080294C0: ldr r0, _080294C4 b _080294CA .align 2, 0 _080294C4: .4byte gUnknown_80DECC0 _080294C8: ldr r0, _080294E4 _080294CA: ldr r1, _080294E8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _080294EC movs r1, 0 bl sub_80141B4 movs r0, 0x7 bl sub_8028B04 b _0802951C .align 2, 0 _080294E4: .4byte gUnknown_80DEAB4 _080294E8: .4byte gUnknown_203B2C0 _080294EC: .4byte 0x0000010d _080294F0: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08029524 ldr r1, _08029528 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802952C movs r1, 0 bl sub_80141B4 movs r0, 0x23 bl sub_8028B04 _0802951C: bl sub_80155F0 b _08029550 .align 2, 0 _08029524: .4byte gUnknown_80DECFC _08029528: .4byte gUnknown_203B2C0 _0802952C: .4byte 0x00000101 _08029530: bl sub_80155F0 bl sub_8004914 ldr r0, _08029558 ldr r0, [r0] movs r2, 0xEF lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8028B04 _08029550: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08029558: .4byte gUnknown_203B2C0 thumb_func_end sub_80293F4 thumb_func_start sub_802955C sub_802955C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029584 ldr r0, [sp] cmp r0, 0x8 beq _08029576 cmp r0, 0xA beq _0802957E b _08029584 _08029576: movs r0, 0x26 bl sub_8028B04 b _08029584 _0802957E: movs r0, 0x1 bl sub_8028B04 _08029584: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802955C thumb_func_start sub_802958C sub_802958C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295A0 movs r0, 0x6 bl sub_8028B04 _080295A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802958C thumb_func_start sub_80295A8 sub_80295A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295D2 ldr r0, [sp] cmp r0, 0x8 bne _080295C4 movs r0, 0x8 bl sub_8028B04 b _080295D2 _080295C4: cmp r0, 0x8 blt _080295D2 cmp r0, 0xA bgt _080295D2 movs r0, 0x1 bl sub_8028B04 _080295D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80295A8 thumb_func_start sub_80295D8 sub_80295D8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08029600 cmp r0, 0x3 bhi _080295EE cmp r0, 0x2 beq _080295F4 b _0802965E _080295EE: cmp r0, 0x4 beq _0802961C b _0802965E _080295F4: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _0802965E _08029600: bl sub_80307EC ldr r1, _08029618 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x2B bl sub_8028B04 b _0802965E .align 2, 0 _08029618: .4byte gUnknown_203B2C0 _0802961C: ldr r4, _08029664 ldr r1, [r4] movs r0, 0x2A str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 _0802965E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08029664: .4byte gUnknown_203B2C0 thumb_func_end sub_80295D8 thumb_func_start sub_8029668 sub_8029668: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802967C movs r0, 0x2A bl sub_8028B04 _0802967C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029668 thumb_func_start sub_8029684 sub_8029684: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080296C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080296B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080296B6: ldr r0, [sp] cmp r0, 0xA beq _08029718 cmp r0, 0xA bgt _080296CC cmp r0, 0x4 beq _08029718 b _08029734 .align 2, 0 _080296C8: .4byte gUnknown_203B2C0 _080296CC: cmp r0, 0xB beq _080296D6 cmp r0, 0xC beq _080296E2 b _08029734 _080296D6: bl sub_803084C movs r0, 0x2D bl sub_8028B04 b _08029734 _080296E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 b _08029734 _08029718: ldr r0, _0802973C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x2A bl sub_8028B04 _08029734: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802973C: .4byte gUnknown_203B2C0 thumb_func_end sub_8029684 thumb_func_start sub_8029740 sub_8029740: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029794 cmp r0, 0x2 bcc _08029794 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802978C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _08029790 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x2B bl sub_8028B04 b _08029794 .align 2, 0 _0802978C: .4byte gUnknown_203B2C0 _08029790: bl sub_8028B04 _08029794: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029740 thumb_func_start sub_802979C sub_802979C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297B0 movs r0, 0x1 bl sub_8028B04 _080297B0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802979C thumb_func_start sub_80297B8 sub_80297B8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297CC movs r0, 0x33 bl sub_8028B04 _080297CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80297B8 thumb_func_start sub_80297D4 sub_80297D4: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _08029814 cmp r0, 0x3 bhi _080297EA cmp r0, 0x2 beq _080297F0 b _08029876 _080297EA: cmp r0, 0x4 beq _08029834 b _08029876 _080297F0: bl sub_8023C60 movs r0, 0x1 bl sub_8028B04 ldr r0, _08029808 ldr r0, [r0] ldr r1, _0802980C adds r0, r1 ldr r1, _08029810 strh r1, [r0] b _08029876 .align 2, 0 _08029808: .4byte gUnknown_203B2C0 _0802980C: .4byte 0x00000544 _08029810: .4byte 0x0000ffff _08029814: bl sub_8023B44 ldr r1, _0802982C ldr r1, [r1] ldr r2, _08029830 adds r1, r2 strh r0, [r1] movs r0, 0x34 bl sub_8028B04 b _08029876 .align 2, 0 _0802982C: .4byte gUnknown_203B2C0 _08029830: .4byte 0x00000544 _08029834: ldr r4, _0802987C ldr r1, [r4] movs r0, 0x33 str r0, [r1] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] ldr r5, _08029880 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 _08029876: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802987C: .4byte gUnknown_203B2C0 _08029880: .4byte 0x00000544 thumb_func_end sub_80297D4 thumb_func_start sub_8029884 sub_8029884: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _080298C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080298B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080298B6: ldr r0, [sp] cmp r0, 0xA beq _0802991C cmp r0, 0xA bgt _080298CC cmp r0, 0x4 beq _0802991C b _08029938 .align 2, 0 _080298C8: .4byte gUnknown_203B2C0 _080298CC: cmp r0, 0xB beq _080298D6 cmp r0, 0xC beq _080298E2 b _08029938 _080298D6: bl sub_8023C60 movs r0, 0x4 bl sub_8028B04 b _08029938 _080298E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08029918 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 b _08029938 .align 2, 0 _08029918: .4byte 0x00000544 _0802991C: ldr r0, _08029940 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_8023B7C movs r0, 0x33 bl sub_8028B04 _08029938: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08029940: .4byte gUnknown_203B2C0 thumb_func_end sub_8029884 thumb_func_start sub_8029944 sub_8029944: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08029954 bl sub_802452C b _080299A4 _08029954: cmp r0, 0x1 bcc _080299A4 cmp r0, 0x3 bhi _080299A4 bl sub_802453C bl sub_8004914 ldr r4, _0802999C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080299A0 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x34 bl sub_8028B04 b _080299A4 .align 2, 0 _0802999C: .4byte gUnknown_203B2C0 _080299A0: bl sub_8028B04 _080299A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029944 thumb_func_start sub_80299AC sub_80299AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080299D2 ldr r0, [sp] cmp r0, 0xA beq _080299CC cmp r0, 0x12 bne _080299D2 movs r0, 0x4 bl sub_8028B04 b _080299D2 _080299CC: movs r0, 0x1 bl sub_8028B04 _080299D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299AC thumb_func_start sub_80299D8 sub_80299D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A12 ldr r0, [sp] cmp r0, 0x9 beq _08029A04 cmp r0, 0x9 bgt _080299F6 cmp r0, 0x8 beq _080299FC b _08029A12 _080299F6: cmp r0, 0xA beq _08029A0C b _08029A12 _080299FC: movs r0, 0x4 bl sub_8028B04 b _08029A12 _08029A04: movs r0, 0x32 bl sub_8028B04 b _08029A12 _08029A0C: movs r0, 0x1 bl sub_8028B04 _08029A12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299D8 thumb_func_start sub_8029A18 sub_8029A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A66 ldr r0, [sp] cmp r0, 0x11 beq _08029A3C cmp r0, 0x11 bgt _08029A36 cmp r0, 0xA beq _08029A60 b _08029A66 _08029A36: cmp r0, 0x12 beq _08029A58 b _08029A66 _08029A3C: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08029A50 movs r0, 0x31 bl sub_8028B04 b _08029A66 _08029A50: movs r0, 0x32 bl sub_8028B04 b _08029A66 _08029A58: movs r0, 0x4 bl sub_8028B04 b _08029A66 _08029A60: movs r0, 0x1 bl sub_8028B04 _08029A66: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A18 thumb_func_start sub_8029A6C sub_8029A6C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A80 movs r0, 0x2E bl sub_8028B04 _08029A80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A6C thumb_func_start sub_8029A88 sub_8029A88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AAA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08029AAA bl sub_8012750 movs r0, 0x39 bl sub_8028B04 _08029AAA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A88 thumb_func_start sub_8029AB0 sub_8029AB0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AD0 movs r0, 0x38 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029AD0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AB0 thumb_func_start sub_8029AD8 sub_8029AD8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AEC movs r0, 0x3B bl sub_8028B04 _08029AEC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AD8 thumb_func_start sub_8029AF4 sub_8029AF4: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08029B2C cmp r0, 0x1 bcc _08029B30 cmp r0, 0x3 bhi _08029B30 bl sub_8031E10 bl sub_8004914 ldr r0, _08029B28 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3C bl sub_8028B04 b _08029B30 .align 2, 0 _08029B28: .4byte gUnknown_203B2C0 _08029B2C: bl sub_8031E00 _08029B30: pop {r0} bx r0 thumb_func_end sub_8029AF4 thumb_func_start sub_8029B34 sub_8029B34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029B48 movs r0, 0x3 bl sub_8028B04 _08029B48: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029B34 thumb_func_start sub_8029B50 sub_8029B50: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08029C3C ldr r4, _08029C40 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r0, _08029C44 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08029C48 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08029C4C adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08029C50 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r1, [r5] movs r0, 0x85 lsls r0, 3 adds r2, r1, r0 movs r0, 0x2 strh r0, [r2] ldr r2, _08029C54 adds r1, r2 movs r0, 0x8 strh r0, [r1] movs r1, 0 movs r2, 0 _08029BD8: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _08029BD8 ldr r5, _08029C3C ldr r1, [r5] ldr r3, _08029C58 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] movs r0, 0xA7 lsls r0, 3 adds r1, r0 movs r0, 0x1 str r0, [r1] movs r0, 0x6 bl sub_80953D4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08029C60 lsls r0, r4, 24 lsrs r0, 24 bl sub_8095228 ldr r1, [r5] ldr r2, _08029C5C adds r3, r1, r2 ldr r2, [r0, 0x20] str r2, [r3] movs r3, 0x86 lsls r3, 2 adds r1, r3 strb r4, [r1] ldr r1, [r5] movs r2, 0x86 lsls r2, 3 adds r1, r2 ldr r0, [r0, 0x10] str r0, [r1] movs r0, 0x5 bl sub_802B2BC b _08029C7C .align 2, 0 _08029C3C: .4byte gUnknown_203B2C4 _08029C40: .4byte 0x00000564 _08029C44: .4byte gUnknown_202E5D8 _08029C48: .4byte gUnknown_202DF98 _08029C4C: .4byte 0x0000042c _08029C50: .4byte 0x0000042d _08029C54: .4byte 0x0000042a _08029C58: .4byte 0x00000534 _08029C5C: .4byte 0x0000041c _08029C60: ldr r1, [r5] ldr r3, _08029C8C adds r2, r1, r3 ldr r0, _08029C90 ldr r0, [r0] str r0, [r2] movs r0, 0x86 lsls r0, 2 adds r1, r0 movs r0, 0xFF strb r0, [r1] movs r0, 0 bl sub_802B2BC _08029C7C: ldr r0, _08029C94 ldr r1, [r0] movs r0, 0x2B str r0, [r1, 0x4] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08029C8C: .4byte 0x0000041c _08029C90: .4byte gUnknown_80DED44 _08029C94: .4byte gUnknown_203B2C4 thumb_func_end sub_8029B50 thumb_func_start sub_8029C98 sub_8029C98: push {lr} ldr r0, _08029CB0 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x2A bls _08029CA6 b _08029E58 _08029CA6: lsls r0, 2 ldr r1, _08029CB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029CB0: .4byte gUnknown_203B2C4 _08029CB4: .4byte _08029CB8 .align 2, 0 _08029CB8: .4byte _08029E48 .4byte _08029E48 .4byte _08029E4E .4byte _08029E54 .4byte _08029E42 .4byte _08029D64 .4byte _08029E3C .4byte _08029E30 .4byte _08029E36 .4byte _08029E2A .4byte _08029E24 .4byte _08029E1E .4byte _08029E0C .4byte _08029E06 .4byte _08029D76 .4byte _08029D7C .4byte _08029D8E .4byte _08029D82 .4byte _08029D88 .4byte _08029D94 .4byte _08029D9A .4byte _08029DA0 .4byte _08029DE8 .4byte _08029DF4 .4byte _08029DEE .4byte _08029DB2 .4byte _08029DB8 .4byte _08029DAC .4byte _08029DA6 .4byte _08029DFA .4byte _08029D6A .4byte _08029D70 .4byte _08029E00 .4byte _08029DDC .4byte _08029DE2 .4byte _08029E58 .4byte _08029DD6 .4byte _08029DD0 .4byte _08029DC4 .4byte _08029DCA .4byte _08029DBE .4byte _08029E12 .4byte _08029E18 _08029D64: bl sub_802AB7C b _08029E58 _08029D6A: bl sub_8029F98 b _08029E58 _08029D70: bl sub_8029EA8 b _08029E58 _08029D76: bl sub_802A090 b _08029E58 _08029D7C: bl sub_802A158 b _08029E58 _08029D82: bl sub_802A174 b _08029E58 _08029D88: bl sub_802A230 b _08029E58 _08029D8E: bl sub_802A0C8 b _08029E58 _08029D94: bl sub_802A28C b _08029E58 _08029D9A: bl sub_802A39C b _08029E58 _08029DA0: bl sub_802A33C b _08029E58 _08029DA6: bl sub_802A458 b _08029E58 _08029DAC: bl sub_802A4AC b _08029E58 _08029DB2: bl sub_802A4D4 b _08029E58 _08029DB8: bl sub_802A050 b _08029E58 _08029DBE: bl sub_802A9FC b _08029E58 _08029DC4: bl sub_802A4F0 b _08029E58 _08029DCA: bl sub_802A50C b _08029E58 _08029DD0: bl sub_802A6B4 b _08029E58 _08029DD6: bl sub_802A718 b _08029E58 _08029DDC: bl sub_802AB60 b _08029E58 _08029DE2: bl sub_802AB98 b _08029E58 _08029DE8: bl sub_802A740 b _08029E58 _08029DEE: bl sub_802A68C b _08029E58 _08029DF4: bl sub_802A6F0 b _08029E58 _08029DFA: bl sub_802A75C b _08029E58 _08029E00: bl sub_802A490 b _08029E58 _08029E06: bl sub_802A474 b _08029E58 _08029E0C: bl sub_802A798 b _08029E58 _08029E12: bl sub_802A828 b _08029E58 _08029E18: bl sub_802A850 b _08029E58 _08029E1E: bl sub_802A8A0 b _08029E58 _08029E24: bl sub_802A8BC b _08029E58 _08029E2A: bl sub_802A910 b _08029E58 _08029E30: bl sub_802A98C b _08029E58 _08029E36: bl sub_802A9A8 b _08029E58 _08029E3C: bl sub_802AA28 b _08029E58 _08029E42: bl sub_802AAAC b _08029E58 _08029E48: bl sub_802AAE4 b _08029E58 _08029E4E: bl sub_802AAC8 b _08029E58 _08029E54: movs r0, 0x3 b _08029E5A _08029E58: movs r0, 0 _08029E5A: pop {r1} bx r1 thumb_func_end sub_8029C98 thumb_func_start sub_8029E60 sub_8029E60: push {r4,lr} ldr r4, _08029EA4 ldr r0, [r4] cmp r0, 0 beq _08029E9C movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 bl sub_802F2C0 _08029E9C: pop {r4} pop {r0} bx r0 .align 2, 0 _08029EA4: .4byte gUnknown_203B2C4 thumb_func_end sub_8029E60 thumb_func_start sub_8029EA8 sub_8029EA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029EBC movs r0, 0x1 bl sub_802B2BC _08029EBC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029EA8 thumb_func_start sub_8029EC4 sub_8029EC4: push {lr} cmp r0, 0xF bhi _08029F88 lsls r0, 2 ldr r1, _08029ED4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029ED4: .4byte _08029ED8 .align 2, 0 _08029ED8: .4byte _08029F88 .4byte _08029F50 .4byte _08029F50 .4byte _08029F18 .4byte _08029F20 .4byte _08029F50 .4byte _08029F28 .4byte _08029F30 .4byte _08029F88 .4byte _08029F38 .4byte _08029F88 .4byte _08029F40 .4byte _08029F88 .4byte _08029F48 .4byte _08029F50 .4byte _08029F74 _08029F18: ldr r0, _08029F1C b _08029F52 .align 2, 0 _08029F1C: .4byte gUnknown_80DEF28 _08029F20: ldr r0, _08029F24 b _08029F52 .align 2, 0 _08029F24: .4byte gUnknown_80DEF80 _08029F28: ldr r0, _08029F2C b _08029F52 .align 2, 0 _08029F2C: .4byte gUnknown_80DEFDC _08029F30: ldr r0, _08029F34 b _08029F52 .align 2, 0 _08029F34: .4byte gUnknown_80DF044 _08029F38: ldr r0, _08029F3C b _08029F52 .align 2, 0 _08029F3C: .4byte gUnknown_80DF0A0 _08029F40: ldr r0, _08029F44 b _08029F52 .align 2, 0 _08029F44: .4byte gUnknown_80DF0A0 _08029F48: ldr r0, _08029F4C b _08029F52 .align 2, 0 _08029F4C: .4byte gUnknown_80DF0E0 _08029F50: ldr r0, _08029F68 _08029F52: ldr r1, _08029F6C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F70 movs r1, 0 bl sub_80141B4 b _08029F88 .align 2, 0 _08029F68: .4byte gUnknown_80DEF04 _08029F6C: .4byte gUnknown_203B2C4 _08029F70: .4byte 0x0000010d _08029F74: ldr r0, _08029F8C ldr r1, _08029F90 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F94 movs r1, 0 bl sub_80141B4 _08029F88: pop {r0} bx r0 .align 2, 0 _08029F8C: .4byte gUnknown_80DF138 _08029F90: .4byte gUnknown_203B2C4 _08029F94: .4byte 0x0000010d thumb_func_end sub_8029EC4 thumb_func_start sub_8029F98 sub_8029F98: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _0802A048 ldr r4, _08029FE4 ldr r0, [r4] ldr r5, _08029FE8 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08029FEC adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0802A03C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _08029FF0 cmp r1, 0x7 beq _0802A034 b _0802A048 .align 2, 0 _08029FE4: .4byte gUnknown_203B2C4 _08029FE8: .4byte 0x0000041c _08029FEC: .4byte 0x0000041e _08029FF0: ldr r1, _0802A004 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _0802A020 cmp r0, 0x4 bgt _0802A008 cmp r0, 0x3 beq _0802A00C b _0802A020 .align 2, 0 _0802A004: .4byte 0x00000534 _0802A008: cmp r0, 0x6 bgt _0802A020 _0802A00C: ldr r0, _0802A028 ldr r1, _0802A02C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802A030 movs r1, 0 bl sub_80141B4 _0802A020: movs r0, 0xD bl sub_802B2BC b _0802A048 .align 2, 0 _0802A028: .4byte gUnknown_80DF194 _0802A02C: .4byte gUnknown_203B2C4 _0802A030: .4byte 0x0000010d _0802A034: movs r0, 0x21 bl sub_802B2BC b _0802A048 _0802A03C: adds r0, r1, 0 bl sub_8029EC4 movs r0, 0x1F bl sub_802B2BC _0802A048: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8029F98 thumb_func_start sub_802A050 sub_802A050: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _0802A088 cmp r0, 0x1 bcc _0802A08C cmp r0, 0x3 bhi _0802A08C bl sub_8031E10 bl sub_8004914 ldr r0, _0802A084 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1B bl sub_802B2BC b _0802A08C .align 2, 0 _0802A084: .4byte gUnknown_203B2C4 _0802A088: bl sub_8031E00 _0802A08C: pop {r0} bx r0 thumb_func_end sub_802A050 thumb_func_start sub_802A090 sub_802A090: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A0C2 ldr r0, [sp] cmp r0, 0x7 beq _0802A0B4 cmp r0, 0x7 bgt _0802A0AE cmp r0, 0 beq _0802A0BC b _0802A0C2 _0802A0AE: cmp r0, 0x8 beq _0802A0BC b _0802A0C2 _0802A0B4: movs r0, 0x6 bl sub_802B2BC b _0802A0C2 _0802A0BC: movs r0, 0x1 bl sub_802B2BC _0802A0C2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A090 thumb_func_start sub_802A0C8 sub_802A0C8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802A0F0 cmp r0, 0x3 bhi _0802A0DE cmp r0, 0x2 beq _0802A0E4 b _0802A14E _0802A0DE: cmp r0, 0x4 beq _0802A10C b _0802A14E _0802A0E4: bl sub_803084C movs r0, 0x1 bl sub_802B2BC b _0802A14E _0802A0F0: bl sub_80307EC ldr r1, _0802A108 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x11 bl sub_802B2BC b _0802A14E .align 2, 0 _0802A108: .4byte gUnknown_203B2C4 _0802A10C: ldr r4, _0802A154 ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC _0802A14E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A154: .4byte gUnknown_203B2C4 thumb_func_end sub_802A0C8 thumb_func_start sub_802A158 sub_802A158: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A16C movs r0, 0x10 bl sub_802B2BC _0802A16C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A158 thumb_func_start sub_802A174 sub_802A174: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _0802A1B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A1A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A1A6: ldr r0, [sp] cmp r0, 0xB beq _0802A1C6 cmp r0, 0xB bgt _0802A1BC cmp r0, 0 beq _0802A208 b _0802A224 .align 2, 0 _0802A1B8: .4byte gUnknown_203B2C4 _0802A1BC: cmp r0, 0xC beq _0802A1D2 cmp r0, 0xD beq _0802A208 b _0802A224 _0802A1C6: bl sub_803084C movs r0, 0xE bl sub_802B2BC b _0802A224 _0802A1D2: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC b _0802A224 _0802A208: ldr r0, _0802A22C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x10 bl sub_802B2BC _0802A224: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A22C: .4byte gUnknown_203B2C4 thumb_func_end sub_802A174 thumb_func_start sub_802A230 sub_802A230: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _0802A284 cmp r0, 0x2 bcc _0802A284 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802A27C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A280 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x11 bl sub_802B2BC b _0802A284 .align 2, 0 _0802A27C: .4byte gUnknown_203B2C4 _0802A280: bl sub_802B2BC _0802A284: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A230 thumb_func_start sub_802A28C sub_802A28C: push {r4-r6,lr} ldr r4, _0802A2C0 ldr r0, [r4] ldr r5, _0802A2C4 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _0802A2C8 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _0802A2CC adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _0802A2E2 cmp r0, 0x3 bhi _0802A2D0 cmp r0, 0x2 beq _0802A2D6 b _0802A334 .align 2, 0 _0802A2C0: .4byte gUnknown_203B2C4 _0802A2C4: .4byte 0x0000041e _0802A2C8: .4byte 0x0000041d _0802A2CC: .4byte 0x0000041c _0802A2D0: cmp r0, 0x4 beq _0802A2FC b _0802A334 _0802A2D6: bl sub_801CBB8 movs r0, 0x1 bl sub_802B2BC b _0802A334 _0802A2E2: bl sub_801CB24 ldr r1, [r4] ldr r2, _0802A2F8 adds r1, r2 strb r0, [r1] movs r0, 0x14 bl sub_802B2BC b _0802A334 .align 2, 0 _0802A2F8: .4byte 0x0000041e _0802A2FC: ldr r1, [r4] movs r0, 0x13 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC _0802A334: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802A28C thumb_func_start sub_802A33C sub_802A33C: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _0802A394 cmp r0, 0x1 bcc _0802A394 cmp r0, 0x3 bhi _0802A394 bl sub_801B450 bl sub_8004914 ldr r4, _0802A38C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A390 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x14 bl sub_802B2BC b _0802A394 .align 2, 0 _0802A38C: .4byte gUnknown_203B2C4 _0802A390: bl sub_802B2BC _0802A394: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A33C thumb_func_start sub_802A39C sub_802A39C: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _0802A3E0 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A3CE ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A3CE: ldr r0, [sp] cmp r0, 0xB beq _0802A3EE cmp r0, 0xB bgt _0802A3E4 cmp r0, 0 beq _0802A430 b _0802A44A .align 2, 0 _0802A3E0: .4byte gUnknown_203B2C4 _0802A3E4: cmp r0, 0xC beq _0802A3FA cmp r0, 0xD beq _0802A430 b _0802A44A _0802A3EE: bl sub_801CBB8 movs r0, 0xC bl sub_802B2BC b _0802A44A _0802A3FA: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _0802A42C adds r0, r1 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC b _0802A44A .align 2, 0 _0802A42C: .4byte 0x0000041c _0802A430: ldr r0, _0802A454 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x13 bl sub_802B2BC _0802A44A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A454: .4byte gUnknown_203B2C4 thumb_func_end sub_802A39C thumb_func_start sub_802A458 sub_802A458: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A46C movs r0, 0xD bl sub_802B2BC _0802A46C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A458 thumb_func_start sub_802A474 sub_802A474: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A488 movs r0, 0x3 bl sub_802B2BC _0802A488: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A474 thumb_func_start sub_802A490 sub_802A490: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4A4 movs r0, 0x3 bl sub_802B2BC _0802A4A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A490 thumb_func_start sub_802A4AC sub_802A4AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4CC movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A4CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4AC thumb_func_start sub_802A4D4 sub_802A4D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4E8 movs r0, 0x1A bl sub_802B2BC _0802A4E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4D4 thumb_func_start sub_802A4F0 sub_802A4F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A504 movs r0, 0x27 bl sub_802B2BC _0802A504: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4F0 thumb_func_start sub_802A50C sub_802A50C: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802A526 b _0802A660 _0802A526: cmp r4, 0x3 beq _0802A52C b _0802A680 _0802A52C: ldr r0, _0802A54C ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802A542 b _0802A654 _0802A542: lsls r0, 2 ldr r1, _0802A550 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A54C: .4byte gUnknown_203B2C4 _0802A550: .4byte _0802A554 .align 2, 0 _0802A554: .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A5F0 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A59C .4byte _0802A654 .4byte _0802A654 .4byte _0802A5D8 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A618 _0802A59C: ldr r0, _0802A5CC ldr r3, _0802A5D0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _0802A5D4 ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 movs r0, 0x28 bl sub_802B2BC b _0802A654 .align 2, 0 _0802A5CC: .4byte gUnknown_80DF1C0 _0802A5D0: .4byte gUnknown_80DEE44 _0802A5D4: .4byte gUnknown_203B2C4 _0802A5D8: ldr r0, _0802A5E8 ldr r1, _0802A5EC ldr r2, [r1] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _0802A5FC .align 2, 0 _0802A5E8: .4byte gUnknown_80DF208 _0802A5EC: .4byte gUnknown_203B2C4 _0802A5F0: ldr r0, _0802A60C ldr r1, _0802A610 ldr r2, [r1] movs r4, 0x84 lsls r4, 3 adds r2, r4 _0802A5FC: ldr r3, _0802A614 movs r1, 0 bl sub_80141B4 movs r0, 0x1F bl sub_802B2BC b _0802A654 .align 2, 0 _0802A60C: .4byte gUnknown_80DF0A0 _0802A610: .4byte gUnknown_203B2C4 _0802A614: .4byte 0x0000010d _0802A618: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _0802A65C ldr r0, [r0] movs r5, 0x86 lsls r5, 3 adds r0, r5 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x21 bl sub_802B2BC _0802A654: bl sub_80155F0 b _0802A680 .align 2, 0 _0802A65C: .4byte gUnknown_203B2C4 _0802A660: bl sub_80155F0 bl sub_8004914 ldr r0, _0802A688 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_802B2BC _0802A680: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A688: .4byte gUnknown_203B2C4 thumb_func_end sub_802A50C thumb_func_start sub_802A68C sub_802A68C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6AE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6AE bl sub_8012750 movs r0, 0xD bl sub_802B2BC _0802A6AE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A68C thumb_func_start sub_802A6B4 sub_802A6B4: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6E8 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6E8 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _0802A6E2 movs r0, 0x20 bl sub_802B2BC b _0802A6E8 _0802A6E2: movs r0, 0x3 bl sub_802B2BC _0802A6E8: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802A6B4 thumb_func_start sub_802A6F0 sub_802A6F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A710 movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A710: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A6F0 thumb_func_start sub_802A718 sub_802A718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A738 movs r0, 0x25 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A738: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A718 thumb_func_start sub_802A740 sub_802A740: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A754 movs r0, 0x1E bl sub_802B2BC _0802A754: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A740 thumb_func_start sub_802A75C sub_802A75C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A792 ldr r0, [sp] cmp r0, 0 beq _0802A78C cmp r0, 0x7 bne _0802A792 ldr r0, _0802A788 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] movs r0, 0x16 bl sub_802B2BC b _0802A792 .align 2, 0 _0802A788: .4byte gUnknown_203B2C4 _0802A78C: movs r0, 0x1 bl sub_802B2BC _0802A792: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A75C thumb_func_start sub_802A798 sub_802A798: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A81E ldr r0, [sp] cmp r0, 0x7 beq _0802A7BC cmp r0, 0x7 bgt _0802A7B6 cmp r0, 0 beq _0802A818 b _0802A81E _0802A7B6: cmp r0, 0x8 beq _0802A810 b _0802A81E _0802A7BC: ldr r4, _0802A800 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _0802A804 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0802A7E2 ldr r5, _0802A808 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _0802A7E2: ldr r0, _0802A80C ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x29 bl sub_802B2BC b _0802A81E .align 2, 0 _0802A800: .4byte gUnknown_203B2C4 _0802A804: .4byte 0x0000041e _0802A808: .4byte 0x0000041c _0802A80C: .4byte gUnknown_203B460 _0802A810: movs r0, 0xB bl sub_802B2BC b _0802A81E _0802A818: movs r0, 0x1 bl sub_802B2BC _0802A81E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802A798 thumb_func_start sub_802A828 sub_802A828: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A848 movs r0, 0x2A bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A848: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A828 thumb_func_start sub_802A850 sub_802A850: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A89A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A89A bl sub_8012750 ldr r0, _0802A884 ldr r0, [r0] ldr r1, _0802A888 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A89A cmp r0, 0x4 ble _0802A88C cmp r0, 0x5 beq _0802A894 b _0802A89A .align 2, 0 _0802A884: .4byte gUnknown_203B2C4 _0802A888: .4byte 0x00000534 _0802A88C: movs r0, 0x1D bl sub_802B2BC b _0802A89A _0802A894: movs r0, 0x19 bl sub_802B2BC _0802A89A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A850 thumb_func_start sub_802A8A0 sub_802A8A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A8B4 movs r0, 0x13 bl sub_802B2BC _0802A8B4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8A0 thumb_func_start sub_802A8BC sub_802A8BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A90A ldr r0, [sp] cmp r0, 0 beq _0802A904 cmp r0, 0xA bne _0802A90A ldr r0, _0802A8EC ldr r0, [r0] ldr r1, _0802A8F0 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A90A cmp r0, 0x4 ble _0802A8F4 cmp r0, 0x5 beq _0802A8FC b _0802A90A .align 2, 0 _0802A8EC: .4byte gUnknown_203B2C4 _0802A8F0: .4byte 0x00000534 _0802A8F4: movs r0, 0x1D bl sub_802B2BC b _0802A90A _0802A8FC: movs r0, 0x19 bl sub_802B2BC b _0802A90A _0802A904: movs r0, 0x1 bl sub_802B2BC _0802A90A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8BC thumb_func_start sub_802A910 sub_802A910: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A986 ldr r0, [sp] cmp r0, 0x9 beq _0802A934 cmp r0, 0x9 bgt _0802A92E cmp r0, 0 beq _0802A980 b _0802A986 _0802A92E: cmp r0, 0xA beq _0802A950 b _0802A986 _0802A934: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0802A948 movs r0, 0xA bl sub_802B2BC b _0802A986 _0802A948: movs r0, 0xB bl sub_802B2BC b _0802A986 _0802A950: ldr r0, _0802A968 ldr r0, [r0] ldr r1, _0802A96C adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A986 cmp r0, 0x4 ble _0802A970 cmp r0, 0x5 beq _0802A978 b _0802A986 .align 2, 0 _0802A968: .4byte gUnknown_203B2C4 _0802A96C: .4byte 0x00000534 _0802A970: movs r0, 0x1D bl sub_802B2BC b _0802A986 _0802A978: movs r0, 0x19 bl sub_802B2BC b _0802A986 _0802A980: movs r0, 0x1 bl sub_802B2BC _0802A986: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A910 thumb_func_start sub_802A98C sub_802A98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9A0 movs r0, 0x8 bl sub_802B2BC _0802A9A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A98C thumb_func_start sub_802A9A8 sub_802A9A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9F6 ldr r0, [sp] cmp r0, 0 beq _0802A9F0 cmp r0, 0x7 bne _0802A9F6 ldr r0, _0802A9D8 ldr r0, [r0] ldr r1, _0802A9DC adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A9F6 cmp r0, 0x4 ble _0802A9E0 cmp r0, 0x5 beq _0802A9E8 b _0802A9F6 .align 2, 0 _0802A9D8: .4byte gUnknown_203B2C4 _0802A9DC: .4byte 0x00000534 _0802A9E0: movs r0, 0x1D bl sub_802B2BC b _0802A9F6 _0802A9E8: movs r0, 0x19 bl sub_802B2BC b _0802A9F6 _0802A9F0: movs r0, 0x1 bl sub_802B2BC _0802A9F6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9A8 thumb_func_start sub_802A9FC sub_802A9FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AA22 ldr r0, [sp] cmp r0, 0 beq _0802AA1C cmp r0, 0x7 bne _0802AA22 movs r0, 0x26 bl sub_802B2BC b _0802AA22 _0802AA1C: movs r0, 0x1 bl sub_802B2BC _0802AA22: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9FC thumb_func_start sub_802AA28 sub_802AA28: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAA6 ldr r2, [sp] cmp r2, 0 beq _0802AAA0 cmp r2, 0 blt _0802AAA6 cmp r2, 0x5 bgt _0802AAA6 cmp r2, 0x3 blt _0802AAA6 ldr r0, _0802AA7C ldr r0, [r0] ldr r3, _0802AA80 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0802AA8C movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0802AA84 movs r0, 0x7 bl sub_802B2BC b _0802AAA6 .align 2, 0 _0802AA7C: .4byte gUnknown_203B2C4 _0802AA80: .4byte 0x00000534 _0802AA84: movs r0, 0x9 bl sub_802B2BC b _0802AAA6 _0802AA8C: cmp r2, 0x5 bne _0802AA98 movs r0, 0x26 bl sub_802B2BC b _0802AAA6 _0802AA98: movs r0, 0x1D bl sub_802B2BC b _0802AAA6 _0802AAA0: movs r0, 0x1 bl sub_802B2BC _0802AAA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AA28 thumb_func_start sub_802AAAC sub_802AAAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAC0 movs r0, 0x1 bl sub_802B2BC _0802AAC0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAAC thumb_func_start sub_802AAC8 sub_802AAC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AADC movs r0, 0x3 bl sub_802B2BC _0802AADC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAC8 thumb_func_start sub_802AAE4 sub_802AAE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB5A ldr r2, [sp] cmp r2, 0x1 beq _0802AB08 cmp r2, 0x1 bgt _0802AB02 cmp r2, 0 beq _0802AB54 b _0802AB5A _0802AB02: cmp r2, 0x2 beq _0802AB38 b _0802AB5A _0802AB08: ldr r0, _0802AB2C ldr r0, [r0] movs r1, 0x6 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _0802AB30 movs r0, 0x4 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB2C: .4byte gUnknown_203B2C4 _0802AB30: movs r0, 0xF bl sub_802B2BC b _0802AB5A _0802AB38: ldr r0, _0802AB50 ldr r0, [r0] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x6 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB50: .4byte gUnknown_203B2C4 _0802AB54: movs r0, 0x2 bl sub_802B2BC _0802AB5A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAE4 thumb_func_start sub_802AB60 sub_802AB60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB74 movs r0, 0x22 bl sub_802B2BC _0802AB74: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB60 thumb_func_start sub_802AB7C sub_802AB7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB90 movs r0, 0x22 bl sub_802B2BC _0802AB90: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB7C thumb_func_start sub_802AB98 sub_802AB98: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802ABE0 bl sub_802F2C0 ldr r0, _0802ABE8 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802ABEC bl strcpy ldr r0, _0802ABF0 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x24 bl sub_802B2BC _0802ABE0: pop {r4} pop {r0} bx r0 .align 2, 0 _0802ABE8: .4byte gUnknown_202E5D8 _0802ABEC: .4byte gUnknown_202DF98 _0802ABF0: .4byte gUnknown_203B2C4 thumb_func_end sub_802AB98 thumb_func_start nullsub_131 nullsub_131: bx lr thumb_func_end nullsub_131 thumb_func_start sub_802ABF8 sub_802ABF8: push {r4-r6,lr} sub sp, 0xB8 ldr r1, _0802AC14 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x2A bls _0802AC0A b _0802B2AA _0802AC0A: lsls r0, 2 ldr r1, _0802AC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AC14: .4byte gUnknown_203B2C4 _0802AC18: .4byte _0802AC1C .align 2, 0 _0802AC1C: .4byte _0802B1DC .4byte _0802B1FC .4byte _0802B22C .4byte _0802B2AA .4byte _0802B1D4 .4byte _0802ACC8 .4byte _0802B248 .4byte _0802B194 .4byte _0802B1A4 .4byte _0802B168 .4byte _0802B138 .4byte _0802B128 .4byte _0802B0F0 .4byte _0802B0AC .4byte _0802AD08 .4byte _0802AD18 .4byte _0802AD20 .4byte _0802AD46 .4byte _0802B2AA .4byte _0802AD80 .4byte _0802ADB0 .4byte _0802B2AA .4byte _0802B07C .4byte _0802B094 .4byte _0802B2AA .4byte _0802AF50 .4byte _0802AF1A .4byte _0802AF46 .4byte _0802B2AA .4byte _0802B0A4 .4byte _0802ADF8 .4byte _0802B2AA .4byte _0802AF70 .4byte _0802AF78 .4byte _0802AFAC .4byte _0802B2AA .4byte _0802AF60 .4byte _0802B2AA .4byte _0802AEEC .4byte _0802AEF4 .4byte _0802B2AA .4byte _0802B110 .4byte _0802B120 _0802ACC8: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _0802ACF8 ldr r0, [r5] ldr r4, _0802ACFC adds r0, r4 ldr r1, _0802AD00 add r2, sp, 0x14 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r0, 0x84 lsls r0, 3 adds r2, r0 ldr r3, _0802AD04 adds r0, r4, 0 b _0802B238 .align 2, 0 _0802ACF8: .4byte gUnknown_203B2C4 _0802ACFC: .4byte 0x00000434 _0802AD00: .4byte gUnknown_80DF250 _0802AD04: .4byte 0x0000010d _0802AD08: ldr r0, _0802AD10 ldr r3, _0802AD14 b _0802B1A8 .align 2, 0 _0802AD10: .4byte gUnknown_80DF304 _0802AD14: .4byte gUnknown_80DEE60 _0802AD18: ldr r0, _0802AD1C b _0802B22E .align 2, 0 _0802AD1C: .4byte gUnknown_80DF330 _0802AD20: bl sub_8030894 cmp r0, 0 beq _0802AD2A b _0802B2AA _0802AD2A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _0802B2AA _0802AD46: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802AD78 ldr r2, _0802AD7C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C b _0802ADE0 .align 2, 0 _0802AD78: .4byte gUnknown_80DED60 _0802AD7C: .4byte gUnknown_80DED78 _0802AD80: bl sub_801D008 cmp r0, 0 beq _0802AD8A b _0802B2AA _0802AD8A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C add r2, sp, 0xB4 ldr r0, _0802ADAC str r0, [r2] movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _0802B2AA .align 2, 0 _0802ADAC: .4byte 0x00020003 _0802ADB0: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802ADF0 ldr r2, _0802ADF4 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 _0802ADE0: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _0802B2AA .align 2, 0 _0802ADF0: .4byte gUnknown_80DED48 _0802ADF4: .4byte gUnknown_80DED78 _0802ADF8: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0802AE1E cmp r0, 0x7 beq _0802AE5C b _0802AE8C _0802AE1E: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0x86 lsls r5, 2 adds r0, r5 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r1, 0xF4 lsls r1, 1 adds r2, r1 b _0802AE82 _0802AE5C: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0802AE82: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0802AE8C: ldr r4, _0802AED0 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _0802AEE6 cmp r0, 0x6 bcc _0802AEE6 movs r3, 0xDC lsls r3, 1 adds r1, r2, r3 movs r5, 0xF4 lsls r5, 1 adds r2, r5 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0802AED4 ldr r0, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r0, r2 movs r3, 0xFC lsls r3, 1 adds r0, r3 b _0802AEE2 .align 2, 0 _0802AED0: .4byte gUnknown_203B2C4 _0802AED4: ldr r0, [r4] movs r5, 0x86 lsls r5, 3 adds r1, r0, r5 movs r2, 0xE4 lsls r2, 1 adds r0, r2 _0802AEE2: ldr r0, [r0] str r0, [r1] _0802AEE6: bl sub_8011854 b _0802B2AA _0802AEEC: ldr r0, _0802AEF0 b _0802B22E .align 2, 0 _0802AEF0: .4byte gUnknown_80DF380 _0802AEF4: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _0802B2AA _0802AF1A: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _0802B2AA _0802AF46: ldr r0, _0802AF4C b _0802B22E .align 2, 0 _0802AF4C: .4byte gUnknown_80DF3B4 _0802AF50: ldr r0, _0802AF5C ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802AF5C: .4byte gUnknown_80DF418 _0802AF60: ldr r0, _0802AF6C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AF6C: .4byte gUnknown_80DF44C _0802AF70: ldr r0, _0802AF74 b _0802B22E .align 2, 0 _0802AF74: .4byte gUnknown_80DF46C _0802AF78: ldr r0, [r6] ldr r5, _0802AF90 adds r0, r5 ldr r0, [r0] cmp r0, 0x4 bne _0802AF86 b _0802B2AA _0802AF86: cmp r0, 0x4 bgt _0802AF94 cmp r0, 0x3 beq _0802AF9A b _0802B2AA .align 2, 0 _0802AF90: .4byte 0x00000534 _0802AF94: cmp r0, 0x6 ble _0802AF9A b _0802B2AA _0802AF9A: ldr r0, _0802AFA8 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AFA8: .4byte gUnknown_80DF4F4 _0802AFAC: movs r4, 0x98 lsls r4, 1 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B00C ldr r0, [r5] ldr r2, _0802B010 adds r0, r2 bl strcpy ldr r1, [r5] movs r3, 0xAA lsls r3, 3 adds r0, r1, r3 movs r2, 0 strh r4, [r0] ldr r0, _0802B014 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r5] adds r3, 0x4 adds r1, r0, r3 str r2, [r1] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _0802B018 ldr r0, [r5] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _0802B022 .align 2, 0 _0802B00C: .4byte gUnknown_203B2C4 _0802B010: .4byte 0x0000053c _0802B014: .4byte 0x00000552 _0802B018: ldr r0, [r5] movs r5, 0xAB lsls r5, 3 adds r0, r5 movs r1, 0 _0802B022: strb r1, [r0] ldr r4, _0802B068 ldr r0, [r4] ldr r1, _0802B06C adds r0, r1 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _0802B070 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _0802B074 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _0802B078 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _0802B2AA .align 2, 0 _0802B068: .4byte gUnknown_203B2C4 _0802B06C: .4byte 0x0000055b _0802B070: .4byte 0x00000559 _0802B074: .4byte 0x0000055a _0802B078: .4byte 0x0000055c _0802B07C: movs r0, 0 bl nullsub_23 ldr r0, _0802B090 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B090: .4byte gUnknown_80DF544 _0802B094: ldr r0, _0802B0A0 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B0A0: .4byte gUnknown_80DF594 _0802B0A4: ldr r0, _0802B0A8 b _0802B1A6 .align 2, 0 _0802B0A8: .4byte gUnknown_80DF5E4 _0802B0AC: bl sub_808D33C adds r1, r0, 0 add r6, sp, 0x64 adds r1, 0x4C adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 ldr r5, _0802B0E0 ldr r0, [r5] ldr r4, _0802B0E4 adds r0, r4 ldr r1, _0802B0E8 adds r2, r6, 0 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r3, 0x84 lsls r3, 3 adds r2, r3 ldr r3, _0802B0EC adds r0, r4, 0 b _0802B238 .align 2, 0 _0802B0E0: .4byte gUnknown_203B2C4 _0802B0E4: .4byte 0x00000434 _0802B0E8: .4byte gUnknown_80DF63C _0802B0EC: .4byte 0x0000010d _0802B0F0: ldr r0, _0802B108 ldr r3, _0802B10C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B1BA .align 2, 0 _0802B108: .4byte gUnknown_80DF694 _0802B10C: .4byte gUnknown_80DEEE4 _0802B110: ldr r0, _0802B11C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B11C: .4byte gUnknown_80DF44C _0802B120: ldr r0, _0802B124 b _0802B22E .align 2, 0 _0802B124: .4byte gUnknown_80DF6F0 _0802B128: ldr r0, _0802B134 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B134: .4byte gUnknown_80DF710 _0802B138: ldr r0, _0802B160 ldr r3, _0802B164 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B160: .4byte gUnknown_80DF73C _0802B164: .4byte gUnknown_80DEEBC _0802B168: ldr r0, _0802B18C ldr r3, _0802B190 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B18C: .4byte gUnknown_80DF77C _0802B190: .4byte gUnknown_80DEE7C _0802B194: ldr r0, _0802B1A0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B1A0: .4byte gUnknown_80DF7D4 _0802B1A4: ldr r0, _0802B1CC _0802B1A6: ldr r3, _0802B1D0 _0802B1A8: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B1BA: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B1CC: .4byte gUnknown_80DF870 _0802B1D0: .4byte gUnknown_80DEE44 _0802B1D4: ldr r0, _0802B1D8 b _0802B22E .align 2, 0 _0802B1D8: .4byte gUnknown_80DF8B4 _0802B1DC: ldr r0, _0802B1F4 ldr r3, _0802B1F8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B212 .align 2, 0 _0802B1F4: .4byte gUnknown_80DF8EC _0802B1F8: .4byte gUnknown_80DEDB8 _0802B1FC: ldr r0, _0802B224 ldr r3, _0802B228 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B212: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B224: .4byte gUnknown_80DF928 _0802B228: .4byte gUnknown_80DEDB8 _0802B22C: ldr r0, _0802B240 _0802B22E: ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 _0802B236: ldr r3, _0802B244 _0802B238: movs r1, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B240: .4byte gUnknown_80DF94C _0802B244: .4byte 0x0000010d _0802B248: ldr r4, [r6] movs r5, 0xA7 lsls r5, 3 adds r0, r4, r5 ldr r0, [r0] cmp r0, 0x1 beq _0802B25C cmp r0, 0x2 beq _0802B288 b _0802B2AA _0802B25C: ldr r0, _0802B280 ldr r3, _0802B284 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B280: .4byte gUnknown_80DF96C _0802B284: .4byte gUnknown_80DEE08 _0802B288: ldr r0, _0802B2B4 ldr r3, _0802B2B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r5, 0x84 lsls r5, 3 adds r1, r4, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 _0802B2AA: add sp, 0xB8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B2B4: .4byte gUnknown_80DF9A4 _0802B2B8: .4byte gUnknown_80DEE08 thumb_func_end sub_802ABF8 thumb_func_start sub_802B2BC sub_802B2BC: push {lr} ldr r1, _0802B2D0 ldr r1, [r1] strb r0, [r1] bl nullsub_131 bl sub_802ABF8 pop {r0} bx r0 .align 2, 0 _0802B2D0: .4byte gUnknown_203B2C4 thumb_func_end sub_802B2BC thumb_func_start sub_802B2D4 sub_802B2D4: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802B348 movs r4, 0xA0 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xFF strb r0, [r1, 0x1] ldr r0, _0802B34C subs r4, 0x10 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x4] ldr r0, [r0, 0x4] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x10] ldr r0, [r5] strb r2, [r0, 0x11] ldr r0, [r5] strb r2, [r0, 0x12] ldr r0, [r5] movs r1, 0x2 strh r1, [r0, 0xC] movs r1, 0x8 strh r1, [r0, 0xE] adds r0, 0x1 bl sub_8099394 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802B350 movs r0, 0 bl sub_802B548 movs r0, 0x1 b _0802B352 .align 2, 0 _0802B348: .4byte gUnknown_203B2C8 _0802B34C: .4byte gUnknown_202E5D8 _0802B350: movs r0, 0 _0802B352: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802B2D4 thumb_func_start sub_802B358 sub_802B358: push {lr} ldr r0, _0802B370 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _0802B3B2 lsls r0, 2 ldr r1, _0802B374 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B370: .4byte gUnknown_203B2C8 _0802B374: .4byte _0802B378 .align 2, 0 _0802B378: .4byte _0802B390 .4byte _0802B396 .4byte _0802B39C .4byte _0802B3A2 .4byte _0802B3A8 .4byte _0802B3AE _0802B390: bl sub_802B560 b _0802B3B2 _0802B396: bl sub_802B57C b _0802B3B2 _0802B39C: bl sub_802B5B8 b _0802B3B2 _0802B3A2: bl sub_802B5FC b _0802B3B2 _0802B3A8: bl sub_802B624 b _0802B3B2 _0802B3AE: movs r0, 0x3 b _0802B3B4 _0802B3B2: movs r0, 0 _0802B3B4: pop {r1} bx r1 thumb_func_end sub_802B358 thumb_func_start sub_802B3B8 sub_802B3B8: push {r4,lr} ldr r4, _0802B3D8 ldr r0, [r4] cmp r0, 0 beq _0802B3D2 ldr r0, [r0, 0x4] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B3D2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B3D8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B3B8 thumb_func_start nullsub_132 nullsub_132: bx lr thumb_func_end nullsub_132 thumb_func_start sub_802B3E0 sub_802B3E0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x28 ldr r1, _0802B404 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bls _0802B3F8 b _0802B532 _0802B3F8: lsls r0, 2 ldr r1, _0802B408 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B404: .4byte gUnknown_203B2C8 _0802B408: .4byte _0802B40C .align 2, 0 _0802B40C: .4byte _0802B424 .4byte _0802B464 .4byte _0802B50C .4byte _0802B532 .4byte _0802B524 .4byte _0802B532 _0802B424: movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0802B438 mov r0, sp bl sub_80920D8 b _0802B440 _0802B438: ldr r1, _0802B458 mov r0, sp bl strcpy _0802B440: ldr r4, _0802B45C ldr r0, [r4] adds r0, 0x14 ldr r1, _0802B460 mov r2, sp bl sub_800D158 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x14 b _0802B510 .align 2, 0 _0802B458: .4byte gUnknown_80DF9F0 _0802B45C: .4byte gUnknown_203B2C8 _0802B460: .4byte gUnknown_80DF9F8 _0802B464: movs r6, 0x98 lsls r6, 1 adds r0, r6, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B500 ldr r0, [r5] movs r2, 0x8A lsls r2, 1 mov r9, r2 add r0, r9 bl strcpy ldr r2, [r5] movs r3, 0x94 lsls r3, 1 adds r0, r2, r3 movs r1, 0 mov r8, r1 movs r1, 0 strh r6, [r0] adds r3, 0x2 adds r2, r3 movs r0, 0x2 strb r0, [r2] ldr r0, [r5] movs r2, 0x96 lsls r2, 1 adds r0, r2 str r1, [r0] bl sub_8097790 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8095228 adds r4, r0, 0 adds r4, 0x4 ldr r2, [r5] adds r2, r6 adds r0, r4, 0 movs r1, 0 bl sub_803C37C adds r0, r4, 0 movs r1, 0 bl sub_803C200 ldr r2, [r5] movs r3, 0x9C lsls r3, 1 adds r1, r2, r3 str r0, [r1] ldr r1, _0802B504 adds r0, r2, r1 mov r2, r8 strb r2, [r0] ldr r0, [r5] subs r3, 0x6 adds r0, r3 strb r2, [r0] ldr r0, [r5] ldr r2, _0802B508 adds r1, r0, r2 movs r0, 0xA strb r0, [r1] ldr r0, [r5] adds r3, 0x2 adds r0, r3 mov r1, r8 strb r1, [r0] ldr r0, [r5] add r0, r9 movs r1, 0 bl sub_802F204 b _0802B532 .align 2, 0 _0802B500: .4byte gUnknown_203B2C8 _0802B504: .4byte 0x00000131 _0802B508: .4byte 0x00000133 _0802B50C: ldr r0, _0802B51C ldr r2, [r2] _0802B510: adds r2, 0x4 ldr r3, _0802B520 movs r1, 0 bl sub_80141B4 b _0802B532 .align 2, 0 _0802B51C: .4byte gUnknown_80DFAA8 _0802B520: .4byte 0x0000010d _0802B524: ldr r0, _0802B540 ldr r2, [r2] adds r2, 0x4 ldr r3, _0802B544 movs r1, 0 bl sub_80141B4 _0802B532: add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B540: .4byte gUnknown_80DFB14 _0802B544: .4byte 0x0000010d thumb_func_end sub_802B3E0 thumb_func_start sub_802B548 sub_802B548: push {lr} ldr r1, _0802B55C ldr r1, [r1] strb r0, [r1] bl nullsub_132 bl sub_802B3E0 pop {r0} bx r0 .align 2, 0 _0802B55C: .4byte gUnknown_203B2C8 thumb_func_end sub_802B548 thumb_func_start sub_802B560 sub_802B560: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B574 movs r0, 0x1 bl sub_802B548 _0802B574: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B560 thumb_func_start sub_802B57C sub_802B57C: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802B5AA bl sub_802F2C0 ldr r0, _0802B5B0 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802B5B4 bl strcpy movs r0, 0x2 bl sub_802B548 _0802B5AA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5B0: .4byte gUnknown_202E5D8 _0802B5B4: .4byte gUnknown_202DF98 thumb_func_end sub_802B57C thumb_func_start sub_802B5B8 sub_802B5B8: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B5EE bl sub_8011C34 adds r4, r0, 0 ldr r0, _0802B5F8 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8095228 movs r1, 0x4 strb r1, [r0] str r4, [r0, 0x28] movs r0, 0x3 bl sub_802B548 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802B5EE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5F8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B5B8 thumb_func_start sub_802B5FC sub_802B5FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B61E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802B61E bl sub_8012750 movs r0, 0x4 bl sub_802B548 _0802B61E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B5FC thumb_func_start sub_802B624 sub_802B624: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B638 movs r0, 0x5 bl sub_802B548 _0802B638: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B624 thumb_func_start sub_802B640 sub_802B640: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802B65A movs r0, 0 b _0802B706 _0802B65A: ldr r5, _0802B710 ldr r0, [r5] cmp r0, 0 bne _0802B66C movs r0, 0xD4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802B66C: ldr r0, [r5] str r6, [r0, 0x6C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x74 adds r1, r0, r1 str r1, [r0, 0x70] adds r0, 0x74 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x74 ldr r0, _0802B714 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} cmp r4, 0 beq _0802B6B0 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, 0x7C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802B6B0: ldr r0, [r5] ldr r0, [r0, 0x70] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x38 bl sub_802B9A8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013818 ldr r2, [r5] ldr r0, _0802B718 ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x50 strh r1, [r0] ldr r0, _0802B71C ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x56 strh r0, [r1] adds r0, r2, 0 adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B706: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802B710: .4byte gUnknown_203B2CC _0802B714: .4byte gUnknown_80DFBEC _0802B718: .4byte gUnknown_203B2D0 _0802B71C: .4byte gUnknown_203B2D2 thumb_func_end sub_802B640 thumb_func_start sub_802B720 sub_802B720: push {lr} lsls r0, 24 cmp r0, 0 bne _0802B73C ldr r0, _0802B738 ldr r0, [r0] adds r0, 0x38 bl sub_8013660 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B738: .4byte gUnknown_203B2CC _0802B73C: ldr r0, _0802B754 ldr r0, [r0] adds r0, 0x38 bl GetKeyPress cmp r0, 0x2 beq _0802B75E cmp r0, 0x2 bgt _0802B758 cmp r0, 0x1 beq _0802B768 b _0802B77C .align 2, 0 _0802B754: .4byte gUnknown_203B2CC _0802B758: cmp r0, 0x4 beq _0802B772 b _0802B77C _0802B75E: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802B7A2 _0802B768: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802B7A2 _0802B772: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802B7A2 _0802B77C: ldr r0, _0802B794 ldr r0, [r0] adds r0, 0x38 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802B798 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B794: .4byte gUnknown_203B2CC _0802B798: bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B7A2: pop {r1} bx r1 thumb_func_end sub_802B720 thumb_func_start sub_802B7A8 sub_802B7A8: ldr r0, _0802B7CC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x56 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x50 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 adds r0, r2, r0 ldrb r0, [r0] bx lr .align 2, 0 _0802B7CC: .4byte gUnknown_203B2CC thumb_func_end sub_802B7A8 thumb_func_start sub_802B7D0 sub_802B7D0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802B818 ldr r0, [r5] adds r0, 0x74 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802B9A8 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x5A strh r1, [r2] adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 cmp r4, 0 beq _0802B812 ldr r0, [r5] adds r0, 0x38 bl AddMenuCursorSprite _0802B812: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B818: .4byte gUnknown_203B2CC thumb_func_end sub_802B7D0 thumb_func_start sub_802B81C sub_802B81C: push {r4,r5,lr} ldr r4, _0802B870 ldr r2, [r4] cmp r2, 0 beq _0802B86A ldr r1, _0802B874 adds r0, r2, 0 adds r0, 0x50 ldrh r0, [r0] strh r0, [r1] ldr r1, _0802B878 adds r0, r2, 0 adds r0, 0x56 ldrh r0, [r0] strh r0, [r1] ldr r0, [r2, 0x6C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x74 ldr r0, _0802B87C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B86A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B870: .4byte gUnknown_203B2CC _0802B874: .4byte gUnknown_203B2D0 _0802B878: .4byte gUnknown_203B2D2 _0802B87C: .4byte gUnknown_80DFBD0 thumb_func_end sub_802B81C thumb_func_start sub_802B880 sub_802B880: push {r4,lr} ldr r4, _0802B8D0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x6C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x82 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x6C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x84 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802B8D0: .4byte gUnknown_203B2CC thumb_func_end sub_802B880 thumb_func_start sub_802B8D4 sub_802B8D4: push {r4-r7,lr} sub sp, 0x8 ldr r4, _0802B99C ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_80073B8 ldr r2, _0802B9A0 ldr r0, [r4] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r0, _0802B9A4 ldrb r0, [r0, 0x2] lsls r0, 3 adds r0, 0x4 ldr r3, [r4] adds r1, r3, 0 adds r1, 0x56 movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x6C] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 bge _0802B98A adds r7, r4, 0 _0802B930: ldr r0, [r7] adds r0, 0x38 adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x56 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r0, r1, r0 ldrb r4, [r0] ldr r3, [r1, 0x6C] movs r0, 0xA adds r1, r5, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_802BC7C adds r0, r4, 0 bl sub_803C190 adds r2, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r5, 0 bl sub_8014FF0 adds r6, 0x1 ldr r0, [r7] adds r0, 0x52 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 blt _0802B930 _0802B98A: ldr r0, _0802B99C ldr r0, [r0] ldr r0, [r0, 0x6C] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B99C: .4byte gUnknown_203B2CC _0802B9A0: .4byte gUnknown_80DFC04 _0802B9A4: .4byte gUnknown_80DFBE8 thumb_func_end sub_802B8D4 thumb_func_start sub_802B9A8 sub_802B9A8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802B9AE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9C6 ldr r0, _0802B9D4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802B9C6: adds r4, 0x1 cmp r4, 0x37 ble _0802B9AE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802B9D4: .4byte gUnknown_203B2CC thumb_func_end sub_802B9A8 thumb_func_start sub_802B9D8 sub_802B9D8: push {r4,lr} movs r4, 0 _0802B9DC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9EE movs r0, 0 b _0802B9F6 _0802B9EE: adds r4, 0x1 cmp r4, 0x37 ble _0802B9DC movs r0, 0x1 _0802B9F6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B9D8 thumb_func_start sub_802B9FC sub_802B9FC: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0802BA80 movs r0, 0x94 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 strb r4, [r0, 0x4] ldr r0, [r5] adds r0, 0x88 bl sub_801317C ldr r1, [r5] str r6, [r1, 0x24] adds r1, 0x28 ldr r0, _0802BA84 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r1, [r5] ldr r2, _0802BA88 adds r1, 0x40 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r1, [r5] adds r1, 0x58 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r5] adds r0, 0x70 ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldm r2!, {r3,r4,r7} stm r0!, {r3,r4,r7} bl sub_8004914 ldr r0, [r5] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] str r6, [r0, 0x8] bl sub_802BCC4 bl sub_802BC7C movs r0, 0 bl sub_802BB14 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BA80: .4byte gUnknown_203B2D4 _0802BA84: .4byte gUnknown_80DFC34 _0802BA88: .4byte gUnknown_80DFC18 thumb_func_end sub_802B9FC thumb_func_start sub_802BA8C sub_802BA8C: push {lr} ldr r0, _0802BAA4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0802BAB8 cmp r0, 0x1 bgt _0802BAA8 cmp r0, 0 beq _0802BAB2 b _0802BAC2 .align 2, 0 _0802BAA4: .4byte gUnknown_203B2D4 _0802BAA8: cmp r0, 0x2 beq _0802BAC2 cmp r0, 0x3 beq _0802BABE b _0802BAC2 _0802BAB2: bl sub_802BB98 b _0802BAC6 _0802BAB8: bl sub_802BC08 b _0802BAC6 _0802BABE: movs r0, 0x3 b _0802BAC8 _0802BAC2: movs r0, 0x2 b _0802BAC8 _0802BAC6: movs r0, 0 _0802BAC8: pop {r1} bx r1 thumb_func_end sub_802BA8C thumb_func_start sub_802BACC sub_802BACC: push {r4,r5,lr} ldr r4, _0802BB0C ldr r2, [r4] cmp r2, 0 beq _0802BB06 ldr r0, [r2, 0x24] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x28 ldr r0, _0802BB10 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BB06: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB0C: .4byte gUnknown_203B2D4 _0802BB10: .4byte gUnknown_80DFC18 thumb_func_end sub_802BACC thumb_func_start sub_802BB14 sub_802BB14: push {lr} ldr r1, _0802BB24 ldr r1, [r1] str r0, [r1] bl sub_802BB28 pop {r0} bx r0 .align 2, 0 _0802BB24: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB14 thumb_func_start sub_802BB28 sub_802BB28: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0802BB94 ldr r1, [r5] ldr r0, [r1] cmp r0, 0 blt _0802BB8C cmp r0, 0x1 bgt _0802BB8C ldr r0, [r1, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_803C190 adds r2, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x24] movs r4, 0 str r4, [sp] movs r0, 0xA movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0x8] lsls r1, 2 adds r0, r3, 0 adds r0, 0x10 adds r0, r1 ldr r2, [r0] ldr r3, [r3, 0x24] str r4, [sp] movs r0, 0x6 movs r1, 0x14 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 ldr r1, [r5] ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] _0802BB8C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB94: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB28 thumb_func_start sub_802BB98 sub_802BB98: push {r4,lr} ldr r0, _0802BBD4 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _0802BBBC ldr r0, [r2, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BBB4 bl sub_8013E54 _0802BBB4: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BBBC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BBD8 cmp r0, 0x2 beq _0802BBF6 b _0802BC02 .align 2, 0 _0802BBD4: .4byte gUnknown_203B2D4 _0802BBD8: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r0, [r0, 0xC] cmp r0, 0 beq _0802BBEE movs r0, 0x1 bl sub_802BB14 b _0802BC02 _0802BBEE: movs r0, 0x3 bl sub_802BB14 b _0802BC02 _0802BBF6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC02: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BB98 thumb_func_start sub_802BC08 sub_802BC08: push {r4,lr} ldr r0, _0802BC44 ldr r3, [r0] ldr r2, [r3, 0x8] ldr r1, [r3, 0xC] adds r4, r0, 0 cmp r2, r1 bge _0802BC2E ldr r0, [r3, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BC26 bl sub_8013E54 _0802BC26: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BC2E: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BC48 cmp r0, 0x2 beq _0802BC68 b _0802BC74 .align 2, 0 _0802BC44: .4byte gUnknown_203B2D4 _0802BC48: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0xC] cmp r1, r0 bge _0802BC60 movs r0, 0x1 bl sub_802BB14 b _0802BC74 _0802BC60: movs r0, 0x3 bl sub_802BB14 b _0802BC74 _0802BC68: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC74: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BC08 thumb_func_start sub_802BC7C sub_802BC7C: push {r4,lr} ldr r4, _0802BCA4 bl sub_808D3BC adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, _0802BCA8 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _0802BCB0 adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCAC bl strcpy b _0802BCBA .align 2, 0 _0802BCA4: .4byte gUnknown_202DF98 _0802BCA8: .4byte gUnknown_203B46C _0802BCAC: .4byte gUnknown_80DFC4C _0802BCB0: adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCC0 bl strcpy _0802BCBA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802BCC0: .4byte gUnknown_80DFC50 thumb_func_end sub_802BC7C thumb_func_start sub_802BCC4 sub_802BCC4: push {r4,lr} ldr r4, _0802BCDC ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_803C1A0 adds r3, r0, 0 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] str r3, [r1, 0x10] b _0802BD08 .align 2, 0 _0802BCDC: .4byte gUnknown_203B2D4 _0802BCE0: cmp r0, 0x23 bne _0802BD06 ldrb r2, [r3, 0x1] cmp r2, 0x50 beq _0802BCF0 adds r1, r3, 0x2 cmp r2, 0x70 bne _0802BD02 _0802BCF0: ldr r0, [r4] ldr r1, [r0, 0xC] adds r1, 0x1 str r1, [r0, 0xC] lsls r1, 2 adds r0, 0x10 adds r0, r1 adds r1, r3, 0x2 str r1, [r0] _0802BD02: adds r3, r1, 0 b _0802BD08 _0802BD06: adds r3, 0x1 _0802BD08: ldrb r0, [r3] cmp r0, 0 bne _0802BCE0 pop {r4} pop {r0} bx r0 thumb_func_end sub_802BCC4 thumb_func_start sub_802BD14 sub_802BD14: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802BD2E movs r0, 0 b _0802BDD4 _0802BD2E: ldr r5, _0802BDE0 ldr r0, [r5] cmp r0, 0 bne _0802BD40 movs r0, 0xA4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802BD40: ldr r0, [r5] str r6, [r0, 0x38] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x40 adds r1, r0, r1 str r1, [r0, 0x3C] adds r0, 0x40 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x38] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x40 ldr r0, _0802BDE4 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x3C] adds r0, r2, 0 adds r0, 0xA0 str r0, [r1, 0x14] cmp r4, 0 beq _0802BD8E ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x48 adds r1, r0 ldr r0, [r4] str r0, [r1] _0802BD8E: ldr r0, [r5] ldr r0, [r0, 0x3C] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x4 bl sub_802C0B8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802BDE8 ldrh r1, [r1] strh r1, [r0, 0x1C] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BDD4: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BDE0: .4byte gUnknown_203B2D8 _0802BDE4: .4byte gUnknown_80DFC74 _0802BDE8: .4byte gUnknown_203B2DC thumb_func_end sub_802BD14 thumb_func_start sub_802BDEC sub_802BDEC: push {lr} lsls r0, 24 cmp r0, 0 bne _0802BE08 ldr r0, _0802BE04 ldr r0, [r0] adds r0, 0x4 bl sub_8013660 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE04: .4byte gUnknown_203B2D8 _0802BE08: ldr r0, _0802BE20 ldr r0, [r0] adds r0, 0x4 bl GetKeyPress cmp r0, 0x2 beq _0802BE2A cmp r0, 0x2 bgt _0802BE24 cmp r0, 0x1 beq _0802BE34 b _0802BE48 .align 2, 0 _0802BE20: .4byte gUnknown_203B2D8 _0802BE24: cmp r0, 0x4 beq _0802BE3E b _0802BE48 _0802BE2A: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802BE6E _0802BE34: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802BE6E _0802BE3E: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802BE6E _0802BE48: ldr r0, _0802BE60 ldr r0, [r0] adds r0, 0x4 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802BE64 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE60: .4byte gUnknown_203B2D8 _0802BE64: bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BE6E: pop {r1} bx r1 thumb_func_end sub_802BDEC thumb_func_start sub_802BE74 sub_802BE74: ldr r0, _0802BE90 ldr r1, [r0] movs r0, 0x22 ldrsh r2, [r1, r0] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x1C ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802BE90: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE74 thumb_func_start sub_802BE94 sub_802BE94: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802BED8 ldr r0, [r5] adds r0, 0x40 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C0B8 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x26] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 cmp r4, 0 beq _0802BED2 ldr r0, [r5] adds r0, 0x4 bl AddMenuCursorSprite _0802BED2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BED8: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE94 thumb_func_start sub_802BEDC sub_802BEDC: push {r4,r5,lr} ldr r4, _0802BF24 ldr r2, [r4] cmp r2, 0 beq _0802BF1C ldr r1, _0802BF28 ldrh r0, [r2, 0x1C] strh r0, [r1] ldr r0, [r2, 0x38] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x40 ldr r0, _0802BF2C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BF1C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BF24: .4byte gUnknown_203B2D8 _0802BF28: .4byte gUnknown_203B2DC _0802BF2C: .4byte gUnknown_80DFC5C thumb_func_end sub_802BEDC thumb_func_start sub_802BF30 sub_802BF30: push {r4,lr} ldr r4, _0802BF9C ldr r0, [r4] adds r0, 0xA0 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xA1 strb r2, [r0] ldr r0, [r4] adds r0, 0xA2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA3 strb r2, [r0] ldr r0, [r4] movs r1, 0x1E ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x38] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x50 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802BF9C: .4byte gUnknown_203B2D8 thumb_func_end sub_802BF30 thumb_func_start sub_802BFA0 sub_802BFA0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xDC ldr r4, _0802C060 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_80073B8 ldr r1, [r4] movs r2, 0x22 ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0xA ldr r2, _0802C064 ldr r3, [r1, 0x38] movs r1, 0 str r1, [sp] bl xxx_call_draw_string movs r6, 0 ldr r0, [r4] movs r3, 0x1E ldrsh r0, [r0, r3] cmp r6, r0 bge _0802C09A adds r7, r4, 0 ldr r0, _0802C068 mov r9, r0 add r1, sp, 0x5C mov r8, r1 _0802BFE8: ldr r1, [r7] movs r3, 0x22 ldrsh r2, [r1, r3] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095FE8 adds r5, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x38] str r1, [sp, 0x4] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x4C] ldrb r0, [r5] cmp r0, 0x1 bne _0802C06C ldr r0, [r7] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0xA adds r1, r4, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_808D33C adds r1, r0, 0 mov r0, r9 bl sub_808DA34 ldrb r0, [r5, 0x5] bl sub_803C190 adds r1, r0, 0 mov r0, r8 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r4, 0 mov r2, r8 bl xxx_call_draw_string b _0802C08E .align 2, 0 _0802C060: .4byte gUnknown_203B2D8 _0802C064: .4byte gUnknown_80DFC8C _0802C068: .4byte gUnknown_202DF98 _0802C06C: adds r0, r5, 0 add r1, sp, 0x4 bl sub_803B35C adds r0, r5, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C088 mov r1, sp adds r1, 0x47 movs r0, 0x2 strb r0, [r1] _0802C088: add r0, sp, 0x4 bl sub_803B6D4 _0802C08E: adds r6, 0x1 ldr r0, [r7] movs r1, 0x1E ldrsh r0, [r0, r1] cmp r6, r0 blt _0802BFE8 _0802C09A: ldr r0, _0802C0B4 ldr r0, [r0] ldr r0, [r0, 0x38] bl sub_80073E0 add sp, 0xDC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C0B4: .4byte gUnknown_203B2D8 thumb_func_end sub_802BFA0 thumb_func_start sub_802C0B8 sub_802C0B8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C0BE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0D6 ldr r0, _0802C0E4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C0D6: adds r4, 0x1 cmp r4, 0x3 ble _0802C0BE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C0E4: .4byte gUnknown_203B2D8 thumb_func_end sub_802C0B8 thumb_func_start sub_802C0E8 sub_802C0E8: push {r4,lr} movs r4, 0 _0802C0EC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0FE movs r0, 0 b _0802C106 _0802C0FE: adds r4, 0x1 cmp r4, 0x3 ble _0802C0EC movs r0, 0x1 _0802C106: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C0E8 thumb_func_start sub_802C10C sub_802C10C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802C126 movs r0, 0 b _0802C1CC _0802C126: ldr r5, _0802C1D8 ldr r0, [r5] cmp r0, 0 bne _0802C138 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802C138: ldr r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C1DC ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C186 ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C186: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C474 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C1E0 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C1CC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C1D8: .4byte gUnknown_203B2E0 _0802C1DC: .4byte gUnknown_80DFCB4 _0802C1E0: .4byte gUnknown_203B2E4 thumb_func_end sub_802C10C thumb_func_start sub_802C1E4 sub_802C1E4: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C200 ldr r0, _0802C1FC ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C266 .align 2, 0 _0802C1FC: .4byte gUnknown_203B2E0 _0802C200: ldr r0, _0802C218 ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C222 cmp r0, 0x2 bgt _0802C21C cmp r0, 0x1 beq _0802C22C b _0802C240 .align 2, 0 _0802C218: .4byte gUnknown_203B2E0 _0802C21C: cmp r0, 0x4 beq _0802C236 b _0802C240 _0802C222: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C266 _0802C22C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C266 _0802C236: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C266 _0802C240: ldr r0, _0802C258 ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C25C movs r0, 0 b _0802C266 .align 2, 0 _0802C258: .4byte gUnknown_203B2E0 _0802C25C: bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C266: pop {r1} bx r1 thumb_func_end sub_802C1E4 thumb_func_start sub_802C26C sub_802C26C: ldr r0, _0802C288 ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C288: .4byte gUnknown_203B2E0 thumb_func_end sub_802C26C thumb_func_start sub_802C28C sub_802C28C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C2D0 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C474 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C cmp r4, 0 beq _0802C2CA ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C2CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C2D0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C28C thumb_func_start sub_802C2D4 sub_802C2D4: push {r4,r5,lr} ldr r4, _0802C31C ldr r2, [r4] cmp r2, 0 beq _0802C314 ldr r1, _0802C320 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C324 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C314: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C31C: .4byte gUnknown_203B2E0 _0802C320: .4byte gUnknown_203B2E4 _0802C324: .4byte gUnknown_80DFC9C thumb_func_end sub_802C2D4 thumb_func_start sub_802C328 sub_802C328: push {r4,lr} ldr r4, _0802C398 ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C398: .4byte gUnknown_203B2E0 thumb_func_end sub_802C328 thumb_func_start sub_802C39C sub_802C39C: push {r4-r7,lr} sub sp, 0x60 ldr r7, _0802C3F8 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r7] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C3FC ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 b _0802C452 .align 2, 0 _0802C3F8: .4byte gUnknown_203B2E0 _0802C3FC: .4byte gUnknown_80DFCCC _0802C400: ldr r1, [r7] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r5, [r1] adds r0, r5, 0 bl sub_8096574 adds r4, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C adds r0, r5, 0 bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C44A mov r1, sp adds r1, 0x4B movs r0, 0x2 strb r0, [r1] _0802C44A: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 _0802C452: ldr r0, [r7] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802C400 ldr r0, _0802C470 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C470: .4byte gUnknown_203B2E0 thumb_func_end sub_802C39C thumb_func_start sub_802C474 sub_802C474: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C47A: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C492 ldr r0, _0802C4A0 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C492: adds r4, 0x1 cmp r4, 0x7 ble _0802C47A adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C4A0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C474 thumb_func_start sub_802C4A4 sub_802C4A4: push {r4,lr} movs r4, 0 _0802C4A8: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C4BA movs r0, 0 b _0802C4C2 _0802C4BA: adds r4, 0x1 cmp r4, 0x7 ble _0802C4A8 movs r0, 0x1 _0802C4C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C4A4 thumb_func_start sub_802C4C8 sub_802C4C8: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802C4E2 movs r0, 0 b _0802C580 _0802C4E2: ldr r5, _0802C58C movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C590 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C53A ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C53A: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C80C adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C594 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C580: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C58C: .4byte gUnknown_203B2E8 _0802C590: .4byte gUnknown_80DFCFC _0802C594: .4byte gUnknown_203B2EC thumb_func_end sub_802C4C8 thumb_func_start sub_802C598 sub_802C598: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C5B4 ldr r0, _0802C5B0 ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C61A .align 2, 0 _0802C5B0: .4byte gUnknown_203B2E8 _0802C5B4: ldr r0, _0802C5CC ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C5D6 cmp r0, 0x2 bgt _0802C5D0 cmp r0, 0x1 beq _0802C5E0 b _0802C5F4 .align 2, 0 _0802C5CC: .4byte gUnknown_203B2E8 _0802C5D0: cmp r0, 0x4 beq _0802C5EA b _0802C5F4 _0802C5D6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C61A _0802C5E0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C61A _0802C5EA: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C61A _0802C5F4: ldr r0, _0802C60C ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C610 movs r0, 0 b _0802C61A .align 2, 0 _0802C60C: .4byte gUnknown_203B2E8 _0802C610: bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C61A: pop {r1} bx r1 thumb_func_end sub_802C598 thumb_func_start sub_802C620 sub_802C620: ldr r0, _0802C63C ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C63C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C620 thumb_func_start sub_802C640 sub_802C640: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C684 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C80C adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 cmp r4, 0 beq _0802C67E ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C67E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C684: .4byte gUnknown_203B2E8 thumb_func_end sub_802C640 thumb_func_start sub_802C688 sub_802C688: push {r4,r5,lr} ldr r4, _0802C6D0 ldr r2, [r4] cmp r2, 0 beq _0802C6C8 ldr r1, _0802C6D4 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C6D8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C6C8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C6D0: .4byte gUnknown_203B2E8 _0802C6D4: .4byte gUnknown_203B2EC _0802C6D8: .4byte gUnknown_80DFCE4 thumb_func_end sub_802C688 thumb_func_start sub_802C6DC sub_802C6DC: push {r4,lr} ldr r4, _0802C74C ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C74C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C6DC thumb_func_start sub_802C750 sub_802C750: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802C7AC ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r6] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C7B0 ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802C7EC .align 2, 0 _0802C7AC: .4byte gUnknown_203B2E8 _0802C7B0: .4byte gUnknown_80DFD14 _0802C7B4: ldr r1, [r6] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r5 adds r1, r0 ldrb r0, [r1] bl sub_8096AB4 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802C7EC: ldr r0, [r6] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r5, r0 blt _0802C7B4 ldr r0, _0802C808 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802C808: .4byte gUnknown_203B2E8 thumb_func_end sub_802C750 thumb_func_start sub_802C80C sub_802C80C: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C812: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C82A ldr r0, _0802C838 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C82A: adds r4, 0x1 cmp r4, 0x7 ble _0802C812 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C838: .4byte gUnknown_203B2E8 thumb_func_end sub_802C80C thumb_func_start sub_802C83C sub_802C83C: push {r4,lr} movs r4, 0 _0802C840: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C852 movs r0, 0 b _0802C85A _0802C852: adds r4, 0x1 cmp r4, 0x7 ble _0802C840 movs r0, 0x1 _0802C85A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C83C thumb_func_start sub_802C860 sub_802C860: push {r4-r6,lr} adds r6, r0, 0 bl sub_802C83C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0802C890 ldr r4, _0802C88C movs r0, 0xFE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x68] str r6, [r0] movs r0, 0 bl sub_802C910 movs r0, 0x1 b _0802C892 .align 2, 0 _0802C88C: .4byte gUnknown_203B2F0 _0802C890: movs r0, 0 _0802C892: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802C860 thumb_func_start sub_802C898 sub_802C898: push {lr} ldr r0, _0802C8B0 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x5 bhi _0802C8E8 lsls r0, 2 ldr r1, _0802C8B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C8B0: .4byte gUnknown_203B2F0 _0802C8B4: .4byte _0802C8B8 .align 2, 0 _0802C8B8: .4byte _0802C8D0 .4byte _0802C8D0 .4byte _0802C8D6 .4byte _0802C8DC .4byte _0802C8E2 .4byte _0802C8E8 _0802C8D0: bl sub_802CC00 b _0802C8EC _0802C8D6: bl sub_802CC70 b _0802C8EC _0802C8DC: bl sub_802CD38 b _0802C8EC _0802C8E2: bl sub_802CDB8 b _0802C8EC _0802C8E8: movs r0, 0x3 b _0802C8EE _0802C8EC: movs r0, 0 _0802C8EE: pop {r1} bx r1 thumb_func_end sub_802C898 thumb_func_start sub_802C8F4 sub_802C8F4: push {r4,lr} ldr r4, _0802C90C ldr r0, [r4] cmp r0, 0 beq _0802C906 bl MemoryFree movs r0, 0 str r0, [r4] _0802C906: pop {r4} pop {r0} bx r0 .align 2, 0 _0802C90C: .4byte gUnknown_203B2F0 thumb_func_end sub_802C8F4 thumb_func_start sub_802C910 sub_802C910: push {lr} ldr r1, _0802C924 ldr r1, [r1] str r0, [r1, 0x4] bl sub_802C928 bl sub_802C9D8 pop {r0} bx r0 .align 2, 0 _0802C924: .4byte gUnknown_203B2F0 thumb_func_end sub_802C910 thumb_func_start sub_802C928 sub_802C928: push {r4-r7,lr} ldr r4, _0802C94C ldr r0, [r4] movs r1, 0xCE lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x2 beq _0802C954 cmp r0, 0x3 beq _0802C980 movs r2, 0 ldr r3, _0802C950 b _0802C998 .align 2, 0 _0802C94C: .4byte gUnknown_203B2F0 _0802C950: .4byte gUnknown_80DFD28 _0802C954: bl sub_802CAA4 ldr r2, [r4] movs r0, 0xE6 lsls r0, 1 adds r2, r0 ldr r1, _0802C97C ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x86 lsls r6, 1 adds r1, r6 bl sub_8012CAC b _0802C9B8 .align 2, 0 _0802C97C: .4byte gUnknown_80DFD40 _0802C980: movs r7, 0xF2 lsls r7, 1 adds r1, r7 ldr r0, _0802C994 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0802C9B8 .align 2, 0 _0802C994: .4byte gUnknown_80DFD58 _0802C998: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 movs r1, 0xCE lsls r1, 1 adds r0, r1 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0802C998 _0802C9B8: bl sub_8004914 ldr r0, _0802C9D4 ldr r0, [r0] movs r1, 0xCE lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C9D4: .4byte gUnknown_203B2F0 thumb_func_end sub_802C928 thumb_func_start sub_802C9D8 sub_802C9D8: push {r4,lr} sub sp, 0x8 ldr r1, _0802C9F4 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x5 bhi _0802CA9C lsls r0, 2 ldr r1, _0802C9F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C9F4: .4byte gUnknown_203B2F0 _0802C9F8: .4byte _0802C9FC .align 2, 0 _0802C9FC: .4byte _0802CA14 .4byte _0802CA20 .4byte _0802CA28 .4byte _0802CA48 .4byte _0802CA80 .4byte _0802CA9C _0802CA14: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802CA9C _0802CA20: movs r0, 0x1 bl sub_802C640 b _0802CA9C _0802CA28: bl sub_802C750 ldr r0, _0802CA44 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 b _0802CA6E .align 2, 0 _0802CA44: .4byte gUnknown_203B2F0 _0802CA48: bl sub_802CBAC bl sub_802C750 ldr r4, _0802CA7C ldr r0, [r4] adds r0, 0x6C movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC movs r2, 0xA6 lsls r2, 1 adds r1, r2 movs r2, 0x6 str r2, [sp] movs r2, 0x3 _0802CA6E: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802CA9C .align 2, 0 _0802CA7C: .4byte gUnknown_203B2F0 _0802CA80: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x10 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x10] adds r0, 0x10 bl sub_802DE84 _0802CA9C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802C9D8 thumb_func_start sub_802CAA4 sub_802CAA4: push {r4-r7,lr} movs r7, 0 ldr r5, _0802CAC8 ldr r0, [r5] ldrb r0, [r0, 0xC] bl sub_8096AB4 adds r4, r0, 0 ldr r2, [r5] ldr r0, [r2] cmp r0, 0 bne _0802CB26 ldrb r0, [r4] cmp r0, 0x5 beq _0802CACC cmp r0, 0x6 beq _0802CB10 b _0802CB26 .align 2, 0 _0802CAC8: .4byte gUnknown_203B2F0 _0802CACC: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CAFC str r0, [r1] adds r0, r4, 0 bl sub_809693C lsls r0, 24 cmp r0, 0 bne _0802CAEE ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _0802CB00 _0802CAEE: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 b _0802CB0A .align 2, 0 _0802CAFC: .4byte gUnknown_80DFD70 _0802CB00: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x2 _0802CB0A: str r1, [r0] adds r7, 0x1 b _0802CB26 _0802CB10: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CB9C str r0, [r1] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x3 str r0, [r1] movs r7, 0x1 _0802CB26: ldr r4, _0802CBA0 ldr r6, [r4] lsls r1, r7, 3 movs r0, 0x86 lsls r0, 1 adds r3, r6, r0 adds r2, r3, r1 ldr r0, _0802CBA4 ldr r0, [r0] str r0, [r2] movs r0, 0x88 lsls r0, 1 adds r5, r6, r0 adds r1, r5, r1 movs r0, 0x4 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _0802CBA8 ldr r0, [r0] str r0, [r2] adds r1, r5, r1 movs r0, 0x7 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r5, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r7 bge _0802CB8C adds r4, r6, 0 adds r1, r5, 0 movs r5, 0x1 negs r5, r5 _0802CB78: ldr r2, [r1] cmp r2, r5 beq _0802CB84 ldr r0, [r4, 0x68] cmp r2, r0 beq _0802CB94 _0802CB84: adds r1, 0x8 adds r3, 0x1 cmp r3, r7 blt _0802CB78 _0802CB8C: mov r0, r12 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x68] _0802CB94: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802CB9C: .4byte gUnknown_80DFD7C _0802CBA0: .4byte gUnknown_203B2F0 _0802CBA4: .4byte gUnknown_80D494C _0802CBA8: .4byte gUnknown_80D4970 thumb_func_end sub_802CAA4 thumb_func_start sub_802CBAC sub_802CBAC: ldr r0, _0802CBF4 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xA6 lsls r1, 1 add r1, r12 ldr r0, _0802CBF8 ldr r0, [r0] str r0, [r1] movs r1, 0xA8 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r2, 0x1 movs r1, 0xAA lsls r1, 1 add r1, r12 ldr r0, _0802CBFC ldr r0, [r0] str r0, [r1] movs r1, 0xAC lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r0, 0xAE lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB0 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802CBF4: .4byte gUnknown_203B2F0 _0802CBF8: .4byte gUnknown_80D4920 _0802CBFC: .4byte gUnknown_80D4928 thumb_func_end sub_802CBAC thumb_func_start sub_802CC00 sub_802CC00: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802CC6A lsls r0, 2 ldr r1, _0802CC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CC18: .4byte _0802CC1C .align 2, 0 _0802CC1C: .4byte _0802CC6A .4byte _0802CC6A .4byte _0802CC60 .4byte _0802CC30 .4byte _0802CC48 _0802CC30: bl sub_802C620 ldr r1, _0802CC44 ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x2 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC44: .4byte gUnknown_203B2F0 _0802CC48: bl sub_802C620 ldr r1, _0802CC5C ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x4 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC5C: .4byte gUnknown_203B2F0 _0802CC60: bl sub_802C688 movs r0, 0x5 bl sub_802C910 _0802CC6A: pop {r0} bx r0 thumb_func_end sub_802CC00 thumb_func_start sub_802CC70 sub_802CC70: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CCB4 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CCA0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802CCA0 ldr r0, [r4] str r1, [r0, 0x68] _0802CCA0: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802CD2E lsls r0, 2 ldr r1, _0802CCB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CCB4: .4byte gUnknown_203B2F0 _0802CCB8: .4byte _0802CCBC .align 2, 0 _0802CCBC: .4byte _0802CD28 .4byte _0802CCD8 .4byte _0802CCF4 .4byte _0802CD18 .4byte _0802CD2E .4byte _0802CD2E .4byte _0802CD20 _0802CCD8: ldr r0, _0802CCEC bl sub_8011988 ldr r0, _0802CCF0 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x6 b _0802CD06 .align 2, 0 _0802CCEC: .4byte 0x00000133 _0802CCF0: .4byte gUnknown_203B2F0 _0802CCF4: ldr r0, _0802CD10 bl sub_8011988 ldr r0, _0802CD14 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x5 _0802CD06: strb r1, [r0] movs r0, 0x1 bl sub_802C910 b _0802CD2E .align 2, 0 _0802CD10: .4byte 0x00000133 _0802CD14: .4byte gUnknown_203B2F0 _0802CD18: movs r0, 0x3 bl sub_802C910 b _0802CD2E _0802CD20: movs r0, 0x4 bl sub_802C910 b _0802CD2E _0802CD28: movs r0, 0x1 bl sub_802C910 _0802CD2E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CC70 thumb_func_start sub_802CD38 sub_802CD38: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CD78 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 ldr r0, [r4] adds r0, 0xBC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CD66 ldr r0, [r4] adds r0, 0xBC mov r1, sp bl sub_8013114 _0802CD66: ldr r0, [sp] cmp r0, 0x5 beq _0802CD88 cmp r0, 0x5 bgt _0802CD7C cmp r0, 0x1 beq _0802CD80 b _0802CDB0 .align 2, 0 _0802CD78: .4byte gUnknown_203B2F0 _0802CD7C: cmp r0, 0x6 bne _0802CDB0 _0802CD80: movs r0, 0x1 bl sub_802C910 b _0802CDB0 _0802CD88: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096C3C bl sub_8096C80 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802CDAA bl sub_802C688 movs r0, 0x5 bl sub_802C910 b _0802CDB0 _0802CDAA: movs r0, 0x1 bl sub_802C910 _0802CDB0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CD38 thumb_func_start sub_802CDB8 sub_802CDB8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802CDD0 cmp r0, 0x3 bhi _0802CDD0 bl sub_802DF24 movs r0, 0x1 bl sub_802C910 _0802CDD0: pop {r0} bx r0 thumb_func_end sub_802CDB8 thumb_func_start sub_802CDD4 sub_802CDD4: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0802CE54 ldr r0, [r4] cmp r0, 0 bne _0802CDEA movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802CDEA: ldr r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0802CE58 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r1, [r4] ldr r0, [r1, 0x38] adds r1, 0x9C str r1, [r0, 0x14] movs r1, 0x4 bl sub_8012D34 bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_8013848 bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802CE54: .4byte gUnknown_203B2F4 _0802CE58: .4byte gUnknown_80DFDA4 thumb_func_end sub_802CDD4 thumb_func_start sub_802CE5C sub_802CE5C: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802CE74 ldr r0, _0802CE70 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _0802CEB4 .align 2, 0 _0802CE70: .4byte gUnknown_203B2F4 _0802CE74: ldr r4, _0802CE90 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0802CE94 cmp r0, 0x2 bne _0802CE98 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802CEB4 .align 2, 0 _0802CE90: .4byte gUnknown_203B2F4 _0802CE94: movs r0, 0x3 b _0802CEB4 _0802CE98: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802CEAA movs r0, 0 b _0802CEB4 _0802CEAA: bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 _0802CEB4: pop {r4} pop {r1} bx r1 thumb_func_end sub_802CE5C thumb_func_start sub_802CEBC sub_802CEBC: ldr r0, _0802CED4 ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 ldrb r1, [r1, 0x18] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0802CED4: .4byte gUnknown_203B2F4 thumb_func_end sub_802CEBC thumb_func_start sub_802CED8 sub_802CED8: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802CF10 ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] bl sub_8013984 bl sub_802CF5C bl sub_802CFD0 cmp r4, 0 beq _0802CF0A ldr r0, [r5] bl AddMenuCursorSprite _0802CF0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF10: .4byte gUnknown_203B2F4 thumb_func_end sub_802CED8 thumb_func_start sub_802CF14 sub_802CF14: push {r4,r5,lr} ldr r4, _0802CF54 ldr r2, [r4] cmp r2, 0 beq _0802CF4E ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0802CF58 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802CF4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF54: .4byte gUnknown_203B2F4 _0802CF58: .4byte gUnknown_80DFD8C thumb_func_end sub_802CF14 thumb_func_start sub_802CF5C sub_802CF5C: push {r4,lr} ldr r4, _0802CFCC ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802CFCC: .4byte gUnknown_203B2F4 thumb_func_end sub_802CF5C thumb_func_start sub_802CFD0 sub_802CFD0: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802D02C ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r6] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802D030 ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802D076 .align 2, 0 _0802D02C: .4byte gUnknown_203B2F4 _0802D030: .4byte gUnknown_80DFDBC _0802D034: ldr r0, [r6] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r5 lsls r0, 24 lsrs r0, 24 bl sub_803B344 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x34] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C mov r1, sp adds r1, 0x4B movs r0, 0x1 strb r0, [r1] ldr r0, [r4, 0x14] str r0, [sp, 0x54] add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802D076: ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 blt _0802D034 ldr r0, _0802D094 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D094: .4byte gUnknown_203B2F4 thumb_func_end sub_802CFD0 thumb_func_start sub_802D098 sub_802D098: push {r4-r6,lr} adds r4, r0, 0 ldr r6, _0802D0DC movs r0, 0x82 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r6] movs r5, 0 str r5, [r0, 0x6C] str r5, [r0, 0x70] str r5, [r0, 0x74] str r4, [r0, 0xC] strb r5, [r0, 0x8] ldr r0, [r6] adds r0, 0xA bl sub_8099328 ldr r1, [r6] strb r0, [r1, 0x9] bl sub_8011C1C cmp r0, 0x2 beq _0802D0CE ldr r0, [r6] strb r5, [r0, 0x9] _0802D0CE: movs r0, 0 bl sub_802D1A0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802D0DC: .4byte gUnknown_203B2F8 thumb_func_end sub_802D098 thumb_func_start sub_802D0E0 sub_802D0E0: push {lr} ldr r0, _0802D0F8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x10 bhi _0802D16C lsls r0, 2 ldr r1, _0802D0FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D0F8: .4byte gUnknown_203B2F8 _0802D0FC: .4byte _0802D100 .align 2, 0 _0802D100: .4byte _0802D170 .4byte _0802D144 .4byte _0802D168 .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D162 .4byte _0802D16C .4byte _0802D14A .4byte _0802D14A .4byte _0802D150 .4byte _0802D156 .4byte _0802D15C .4byte _0802D15C _0802D144: bl sub_802D7D0 b _0802D170 _0802D14A: bl sub_802D8CC b _0802D170 _0802D150: bl sub_802D940 b _0802D170 _0802D156: bl sub_802D9F0 b _0802D170 _0802D15C: bl sub_802DA60 b _0802D170 _0802D162: bl sub_802D82C b _0802D170 _0802D168: movs r0, 0x3 b _0802D172 _0802D16C: bl sub_802DA84 _0802D170: movs r0, 0 _0802D172: pop {r1} bx r1 thumb_func_end sub_802D0E0 thumb_func_start sub_802D178 sub_802D178: ldr r0, _0802D180 ldr r0, [r0] ldrb r0, [r0, 0x8] bx lr .align 2, 0 _0802D180: .4byte gUnknown_203B2F8 thumb_func_end sub_802D178 thumb_func_start sub_802D184 sub_802D184: push {r4,lr} ldr r4, _0802D19C ldr r0, [r4] cmp r0, 0 beq _0802D196 bl MemoryFree movs r0, 0 str r0, [r4] _0802D196: pop {r4} pop {r0} bx r0 .align 2, 0 _0802D19C: .4byte gUnknown_203B2F8 thumb_func_end sub_802D184 thumb_func_start sub_802D1A0 sub_802D1A0: push {lr} ldr r1, _0802D1B4 ldr r1, [r1] str r0, [r1] bl sub_802D1B8 bl sub_802D2A8 pop {r0} bx r0 .align 2, 0 _0802D1B4: .4byte gUnknown_203B2F8 thumb_func_end sub_802D1A0 thumb_func_start sub_802D1B8 sub_802D1B8: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802D1E0 ldr r0, [r4] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xD beq _0802D1EA cmp r0, 0xD bgt _0802D1E4 cmp r0, 0x2 beq _0802D27E b _0802D254 .align 2, 0 _0802D1E0: .4byte gUnknown_203B2F8 _0802D1E4: cmp r0, 0xE beq _0802D21C b _0802D254 _0802D1EA: bl sub_802D5A4 ldr r2, [r4] movs r0, 0xEC lsls r0, 1 adds r2, r0 ldr r1, _0802D218 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x8C lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xF2 lsls r7, 1 b _0802D246 .align 2, 0 _0802D218: .4byte gUnknown_80DFE04 _0802D21C: bl sub_802D63C ldr r2, [r4] movs r0, 0xF8 lsls r0, 1 adds r2, r0 ldr r1, _0802D250 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0xAC lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xFE lsls r7, 1 _0802D246: adds r0, r7 movs r1, 0x6 strh r1, [r0] b _0802D27E .align 2, 0 _0802D250: .4byte gUnknown_80DFE1C _0802D254: ldr r0, _0802D2A0 mov r12, r0 movs r1, 0xD4 lsls r1, 1 mov r8, r1 ldr r4, _0802D2A4 movs r3, 0 movs r2, 0x3 _0802D264: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802D264 _0802D27E: bl sub_8004914 ldr r0, _0802D2A0 ldr r0, [r0] movs r6, 0xD4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D2A0: .4byte gUnknown_203B2F8 _0802D2A4: .4byte gUnknown_80DFDD4 thumb_func_end sub_802D1B8 thumb_func_start sub_802D2A8 sub_802D2A8: push {r4,lr} sub sp, 0x14 ldr r1, _0802D2C4 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _0802D2BA b _0802D59A _0802D2BA: lsls r0, 2 ldr r1, _0802D2C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D2C4: .4byte gUnknown_203B2F8 _0802D2C8: .4byte _0802D2CC .align 2, 0 _0802D2CC: .4byte _0802D310 .4byte _0802D398 .4byte _0802D59A .4byte _0802D3B4 .4byte _0802D3C4 .4byte _0802D3D4 .4byte _0802D3E4 .4byte _0802D3F4 .4byte _0802D404 .4byte _0802D498 .4byte _0802D4C8 .4byte _0802D4E4 .4byte _0802D4F0 .4byte _0802D4F8 .4byte _0802D524 .4byte _0802D558 .4byte _0802D576 _0802D310: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802D326 movs r0, 0x3 bl sub_802D1A0 b _0802D59A _0802D326: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096F50 lsls r0, 24 cmp r0, 0 beq _0802D33C movs r0, 0x4 bl sub_802D1A0 b _0802D59A _0802D33C: ldr r1, [r4] ldr r0, [r1, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D36E adds r0, r1, 0 adds r0, 0x10 bl sub_8096C08 lsls r0, 24 cmp r0, 0 beq _0802D36E bl sub_802DAA8 lsls r0, 24 cmp r0, 0 beq _0802D366 movs r0, 0x9 bl sub_802D1A0 b _0802D59A _0802D366: movs r0, 0x5 bl sub_802D1A0 b _0802D59A _0802D36E: bl sub_80969AC cmp r0, 0x7 ble _0802D390 bl sub_802DADC lsls r0, 24 cmp r0, 0 beq _0802D388 movs r0, 0xA bl sub_802D1A0 b _0802D59A _0802D388: movs r0, 0x6 bl sub_802D1A0 b _0802D59A _0802D390: movs r0, 0x8 bl sub_802D1A0 b _0802D59A _0802D398: bl sub_802D73C ldr r0, _0802D3AC ldr r1, _0802D3B0 ldr r3, [r1] ldr r2, [r3, 0x70] movs r1, 0xAC lsls r1, 1 adds r3, r1 b _0802D4AA .align 2, 0 _0802D3AC: .4byte gUnknown_80DFE4C _0802D3B0: .4byte gUnknown_203B2F8 _0802D3B4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3C0 b _0802D4D0 .align 2, 0 _0802D3C0: .4byte gUnknown_80DFE9C _0802D3C4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3D0 b _0802D4D0 .align 2, 0 _0802D3D0: .4byte gUnknown_80DFED0 _0802D3D4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3E0 b _0802D4D0 .align 2, 0 _0802D3E0: .4byte gUnknown_80DFF2C _0802D3E4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3F0 b _0802D4D0 .align 2, 0 _0802D3F0: .4byte gUnknown_80DFFA4 _0802D3F4: ldr r1, [r4] movs r0, 0xC str r0, [r1, 0x4] ldr r0, _0802D400 b _0802D4D0 .align 2, 0 _0802D400: .4byte gUnknown_80E0010 _0802D404: ldr r4, _0802D45C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x8] ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D446 bl sub_8096DD8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x14] movs r2, 0x28 bl MemoryCopy8 bl sub_8096DE8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x18] movs r2, 0x78 bl MemoryCopy8 _0802D446: ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x4] cmp r0, 0x2C beq _0802D46E cmp r0, 0x2C bgt _0802D460 cmp r0, 0x2B beq _0802D46A b _0802D484 .align 2, 0 _0802D45C: .4byte gUnknown_203B2F8 _0802D460: cmp r0, 0x2D beq _0802D472 cmp r0, 0x2E beq _0802D47C b _0802D484 _0802D46A: movs r0, 0x2A b _0802D474 _0802D46E: movs r0, 0x2B b _0802D474 _0802D472: movs r0, 0x2C _0802D474: movs r1, 0x1 bl sub_8097418 b _0802D484 _0802D47C: movs r0, 0x2D movs r1, 0x1 bl sub_8097418 _0802D484: ldr r0, _0802D490 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D494 b _0802D4D0 .align 2, 0 _0802D490: .4byte gUnknown_203B2F8 _0802D494: .4byte gUnknown_80E0074 _0802D498: bl sub_802D690 ldr r0, _0802D4C0 ldr r1, _0802D4C4 ldr r3, [r1] ldr r2, [r3, 0x74] movs r4, 0xAC lsls r4, 1 adds r3, r4 _0802D4AA: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802D59A .align 2, 0 _0802D4C0: .4byte gUnknown_80E0094 _0802D4C4: .4byte gUnknown_203B2F8 _0802D4C8: ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x4] ldr r0, _0802D4DC _0802D4D0: ldr r3, _0802D4E0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802D59A .align 2, 0 _0802D4DC: .4byte gUnknown_80E0108 _0802D4E0: .4byte 0x00000101 _0802D4E4: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802D59A _0802D4F0: movs r0, 0x1 bl sub_802C640 b _0802D59A _0802D4F8: bl sub_802C750 ldr r0, _0802D520 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 movs r3, 0x8C lsls r3, 1 adds r1, r2, r3 movs r4, 0xCC lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x6C] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D520: .4byte gUnknown_203B2F8 _0802D524: bl sub_802C750 ldr r4, _0802D554 ldr r0, [r4] adds r0, 0x78 movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 movs r2, 0xAC lsls r2, 1 adds r1, r2 movs r2, 0x4 str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D554: .4byte gUnknown_203B2F8 _0802D558: ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x14 bl sub_802DE84 b _0802D59A _0802D576: ldr r1, [r4] ldr r0, [r1, 0xC] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x58 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r1, [r0, 0xC] ldr r1, [r1, 0x18] str r1, [r0, 0x64] adds r0, 0x14 bl sub_802DE84 _0802D59A: add sp, 0x14 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D2A8 thumb_func_start sub_802D5A4 sub_802D5A4: push {r4-r7,lr} ldr r4, _0802D630 ldr r0, [r4] movs r5, 0xCC lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r3, 0 movs r1, 0x8C lsls r1, 1 add r1, r12 ldr r0, _0802D634 ldr r0, [r0] str r0, [r1] movs r1, 0x8E lsls r1, 1 add r1, r12 movs r0, 0x2 str r0, [r1] movs r2, 0x1 movs r1, 0x90 lsls r1, 1 add r1, r12 ldr r0, _0802D638 ldr r0, [r0] str r0, [r1] movs r1, 0x92 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r7, 0x2 movs r0, 0x94 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0x96 lsls r0, 1 add r0, r12 str r2, [r0] movs r6, 0 movs r3, 0x8E lsls r3, 1 add r3, r12 mov r0, r12 adds r2, r0, r5 _0802D60A: ldrh r0, [r2] cmp r0, 0 bne _0802D61A ldr r1, [r3] mov r5, r12 ldr r0, [r5, 0x6C] cmp r1, r0 beq _0802D62A _0802D61A: adds r3, 0x8 adds r2, 0x2 adds r6, 0x1 cmp r6, r7 blt _0802D60A ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x6C] _0802D62A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D630: .4byte gUnknown_203B2F8 _0802D634: .4byte gUnknown_80D494C _0802D638: .4byte gUnknown_80D4970 thumb_func_end sub_802D5A4 thumb_func_start sub_802D63C sub_802D63C: ldr r0, _0802D684 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D688 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D68C ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r0, 0xB4 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802D684: .4byte gUnknown_203B2F8 _0802D688: .4byte gUnknown_80D4920 _0802D68C: .4byte gUnknown_80D4928 thumb_func_end sub_802D63C thumb_func_start sub_802D690 sub_802D690: push {r4,r5,lr} ldr r2, _0802D728 ldr r0, [r2] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D72C ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r3, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D730 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D734 str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r1, 0xB8 lsls r1, 1 add r1, r12 ldr r0, _0802D738 str r0, [r1] movs r1, 0xBA lsls r1, 1 add r1, r12 movs r0, 0x7 str r0, [r1] movs r5, 0x4 movs r0, 0xBC lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBE lsls r0, 1 add r0, r12 str r3, [r0] movs r3, 0 mov r0, r12 ldr r4, [r0, 0x74] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D70E: ldr r0, [r1] cmp r0, r4 beq _0802D722 adds r1, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802D70E ldr r1, [r2] movs r0, 0x4 str r0, [r1, 0x74] _0802D722: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D728: .4byte gUnknown_203B2F8 _0802D72C: .4byte gUnknown_80D4920 _0802D730: .4byte gUnknown_80D4928 _0802D734: .4byte gUnknown_80E014C _0802D738: .4byte gUnknown_80E0158 thumb_func_end sub_802D690 thumb_func_start sub_802D73C sub_802D73C: push {r4,r5,lr} ldr r3, _0802D7C0 ldr r0, [r3] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D7C4 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D7C8 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D7CC str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r5, 0x3 movs r0, 0xB8 lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBA lsls r0, 1 add r0, r12 str r2, [r0] movs r2, 0 mov r0, r12 ldr r4, [r0, 0x70] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D7A6: ldr r0, [r1] cmp r0, r4 beq _0802D7BA adds r1, 0x8 adds r2, 0x1 cmp r2, r5 blt _0802D7A6 ldr r1, [r3] movs r0, 0x4 str r0, [r1, 0x70] _0802D7BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D7C0: .4byte gUnknown_203B2F8 _0802D7C4: .4byte gUnknown_80D4920 _0802D7C8: .4byte gUnknown_80D4928 _0802D7CC: .4byte gUnknown_80E014C thumb_func_end sub_802D73C thumb_func_start sub_802D7D0 sub_802D7D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D826 ldr r1, [sp] cmp r1, 0x1 beq _0802D7EA ldr r0, _0802D800 ldr r0, [r0] str r1, [r0, 0x70] _0802D7EA: ldr r0, [sp] cmp r0, 0x3 beq _0802D804 cmp r0, 0x3 ble _0802D820 cmp r0, 0x4 beq _0802D820 cmp r0, 0x6 beq _0802D80C b _0802D820 .align 2, 0 _0802D800: .4byte gUnknown_203B2F8 _0802D804: movs r0, 0x2 bl sub_802D1A0 b _0802D826 _0802D80C: ldr r0, _0802D81C ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D826 .align 2, 0 _0802D81C: .4byte gUnknown_203B2F8 _0802D820: movs r0, 0 bl sub_802D1A0 _0802D826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D7D0 thumb_func_start sub_802D82C sub_802D82C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D8C6 ldr r1, [sp] cmp r1, 0x1 beq _0802D846 ldr r0, _0802D858 ldr r0, [r0] str r1, [r0, 0x74] _0802D846: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802D8C0 lsls r0, 2 ldr r1, _0802D85C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D858: .4byte gUnknown_203B2F8 _0802D85C: .4byte _0802D860 .align 2, 0 _0802D860: .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D87C .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D898 .4byte _0802D8AC _0802D87C: ldr r0, _0802D894 ldr r0, [r0] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D894: .4byte gUnknown_203B2F8 _0802D898: ldr r0, _0802D8A8 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8A8: .4byte gUnknown_203B2F8 _0802D8AC: ldr r0, _0802D8BC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8BC: .4byte gUnknown_203B2F8 _0802D8C0: movs r0, 0x1 bl sub_802D1A0 _0802D8C6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D82C thumb_func_start sub_802D8CC sub_802D8CC: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802D93A lsls r0, 2 ldr r1, _0802D8E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D8E4: .4byte _0802D8E8 .align 2, 0 _0802D8E8: .4byte _0802D93A .4byte _0802D93A .4byte _0802D930 .4byte _0802D8FC .4byte _0802D914 _0802D8FC: bl sub_802C620 ldr r1, _0802D910 ldr r1, [r1] strb r0, [r1, 0x10] movs r0, 0xD bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D910: .4byte gUnknown_203B2F8 _0802D914: bl sub_802C620 ldr r2, _0802D92C ldr r1, [r2] strb r0, [r1, 0x10] ldr r1, [r2] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D92C: .4byte gUnknown_203B2F8 _0802D930: bl sub_802C688 movs r0, 0x1 bl sub_802D1A0 _0802D93A: pop {r0} bx r0 thumb_func_end sub_802D8CC thumb_func_start sub_802D940 sub_802D940: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802D980 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802D970 ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802D970 ldr r0, [r4] str r1, [r0, 0x6C] _0802D970: ldr r0, [sp] cmp r0, 0x2 beq _0802D98A cmp r0, 0x2 bgt _0802D984 cmp r0, 0x1 beq _0802D9E0 b _0802D9E6 .align 2, 0 _0802D980: .4byte gUnknown_203B2F8 _0802D984: cmp r0, 0x5 beq _0802D9CC b _0802D9E6 _0802D98A: ldr r0, _0802D9BC ldr r3, [r0] ldrb r0, [r3, 0x9] cmp r0, 0 beq _0802D9C4 ldr r2, _0802D9C0 ldrb r1, [r3, 0x10] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, 0xF0 ldr r1, [r2] adds r1, r0 ldrb r0, [r1] cmp r0, 0x5 bls _0802D9C4 ldrb r0, [r3, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802D9C4 movs r0, 0x7 bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9BC: .4byte gUnknown_203B2F8 _0802D9C0: .4byte gUnknown_203B490 _0802D9C4: movs r0, 0xE bl sub_802D1A0 b _0802D9E6 _0802D9CC: ldr r0, _0802D9DC ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9DC: .4byte gUnknown_203B2F8 _0802D9E0: movs r0, 0xC bl sub_802D1A0 _0802D9E6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D940 thumb_func_start sub_802D9F0 sub_802D9F0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802DA30 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xC8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802DA1E ldr r0, [r4] adds r0, 0xC8 mov r1, sp bl sub_8013114 _0802DA1E: ldr r0, [sp] cmp r0, 0x3 beq _0802DA40 cmp r0, 0x3 bgt _0802DA34 cmp r0, 0x1 beq _0802DA38 b _0802DA56 .align 2, 0 _0802DA30: .4byte gUnknown_203B2F8 _0802DA34: cmp r0, 0x4 bne _0802DA56 _0802DA38: movs r0, 0xC bl sub_802D1A0 b _0802DA56 _0802DA40: bl sub_802C688 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 _0802DA56: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D9F0 thumb_func_start sub_802DA60 sub_802DA60: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802DA7C cmp r0, 0x3 bhi _0802DA7C bl sub_802DF24 ldr r0, _0802DA80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA7C: pop {r0} bx r0 .align 2, 0 _0802DA80: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA60 thumb_func_start sub_802DA84 sub_802DA84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DA9C ldr r0, _0802DAA4 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA9C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DAA4: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA84 thumb_func_start sub_802DAA8 sub_802DAA8: push {r4,lr} ldr r4, _0802DAD0 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 adds r1, r0, 0 ldr r4, [r4] ldrb r0, [r4, 0x9] cmp r0, 0 beq _0802DAD4 ldrb r0, [r1] cmp r0, 0x5 beq _0802DAD4 ldrb r0, [r4, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802DAD4 movs r0, 0 b _0802DAD6 .align 2, 0 _0802DAD0: .4byte gUnknown_203B2F8 _0802DAD4: movs r0, 0x1 _0802DAD6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802DAA8 thumb_func_start sub_802DADC sub_802DADC: push {r4,lr} ldr r3, _0802DAEC ldr r0, [r3] ldrb r0, [r0, 0x9] cmp r0, 0 bne _0802DAF0 _0802DAE8: movs r0, 0x1 b _0802DB1C .align 2, 0 _0802DAEC: .4byte gUnknown_203B2F8 _0802DAF0: ldr r0, _0802DB24 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _0802DAFA: ldrb r0, [r1] cmp r0, 0 beq _0802DAE8 cmp r0, 0x5 beq _0802DAE8 cmp r0, 0x5 bls _0802DB12 ldr r0, [r3] ldrb r0, [r0, 0xA] ldrb r4, [r1, 0x4] cmp r0, r4 bne _0802DAE8 _0802DB12: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x7 ble _0802DAFA movs r0, 0 _0802DB1C: pop {r4} pop {r1} bx r1 .align 2, 0 _0802DB24: .4byte gUnknown_203B490 thumb_func_end sub_802DADC thumb_func_start sub_802DB28 sub_802DB28: push {r4-r6,lr} sub sp, 0x8 adds r2, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r2, 24 mov r0, sp adds r1, r6, 0 bl sub_8096AF8 mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0802DB4A movs r0, 0 b _0802DBC6 _0802DB4A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802DBD0 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0x30 movs r5, 0 strb r6, [r0] adds r0, r6, 0 bl sub_8096AB4 ldr r1, [r4] str r0, [r1, 0x34] bl sub_8096EEC ldr r1, [r4] ldr r0, [r1, 0x34] adds r1, 0x8 bl sub_803C21C ldr r0, [r4] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r4] str r0, [r1, 0x38] str r5, [r1, 0x3C] adds r1, 0x44 strb r5, [r1] ldr r0, [r4] adds r0, 0x45 strb r5, [r0] ldr r0, [r4] adds r0, 0x46 strb r5, [r0] ldr r2, [r4] adds r1, r2, 0 adds r1, 0x40 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x8 strh r0, [r1] ldr r0, [r2, 0x38] cmp r0, 0 beq _0802DBBE ldr r0, [r0, 0x4] str r0, [r2, 0x3C] _0802DBBE: movs r0, 0 bl sub_802DC28 movs r0, 0x1 _0802DBC6: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802DBD0: .4byte gUnknown_203B2FC thumb_func_end sub_802DB28 thumb_func_start sub_802DBD4 sub_802DBD4: push {lr} ldr r0, _0802DBEC ldr r0, [r0] ldr r1, [r0] cmp r1, 0x6 beq _0802DBF0 cmp r1, 0x7 bne _0802DBF6 ldr r0, [r0, 0x34] strb r1, [r0] movs r0, 0x3 b _0802DBFC .align 2, 0 _0802DBEC: .4byte gUnknown_203B2FC _0802DBF0: bl sub_802DE44 b _0802DBFA _0802DBF6: bl sub_802DE60 _0802DBFA: movs r0, 0 _0802DBFC: pop {r1} bx r1 thumb_func_end sub_802DBD4 thumb_func_start sub_802DC00 sub_802DC00: push {r4,lr} ldr r4, _0802DC24 ldr r0, [r4] cmp r0, 0 beq _0802DC1E ldr r0, [r0, 0x38] cmp r0, 0 beq _0802DC14 bl CloseFile _0802DC14: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DC1E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802DC24: .4byte gUnknown_203B2FC thumb_func_end sub_802DC00 thumb_func_start sub_802DC28 sub_802DC28: push {lr} ldr r1, _0802DC3C ldr r1, [r1] str r0, [r1] bl sub_802DC40 bl sub_802DC9C pop {r0} bx r0 .align 2, 0 _0802DC3C: .4byte gUnknown_203B2FC thumb_func_end sub_802DC28 thumb_func_start sub_802DC40 sub_802DC40: push {r4-r7,lr} ldr r4, _0802DC94 ldr r0, [r4] adds r0, 0x48 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0802DC58 cmp r0, 0x7 bne _0802DC7A _0802DC58: mov r12, r4 ldr r4, _0802DC98 movs r3, 0 movs r2, 0x3 _0802DC60: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x48 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802DC60 _0802DC7A: bl sub_8004914 ldr r0, _0802DC94 ldr r0, [r0] adds r0, 0x48 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802DC94: .4byte gUnknown_203B2FC _0802DC98: .4byte gUnknown_80E016C thumb_func_end sub_802DC40 thumb_func_start sub_802DC9C sub_802DC9C: push {r4,r5,lr} ldr r1, _0802DCB8 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x7 bls _0802DCAC b _0802DE3E _0802DCAC: lsls r0, 2 ldr r1, _0802DCBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DCB8: .4byte gUnknown_203B2FC _0802DCBC: .4byte _0802DCC0 .align 2, 0 _0802DCC0: .4byte _0802DCE0 .4byte _0802DDDC .4byte _0802DDE4 .4byte _0802DDEC .4byte _0802DDFC .4byte _0802DDF4 .4byte _0802DE34 .4byte _0802DE3E _0802DCE0: ldr r0, _0802DD60 ldr r1, [r5] ldr r1, [r1, 0x34] movs r2, 0xC ldrsh r1, [r1, r2] bl sub_808D8E0 ldr r4, _0802DD64 ldr r0, [r5] ldr r0, [r0, 0x34] movs r2, 0xC ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808D8E0 ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD68 adds r0, r4, r2 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD6C adds r4, r2 adds r0, r4, 0 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_8098214 ldr r0, _0802DD70 ldr r1, [r5] ldr r1, [r1, 0x34] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8090DC4 ldr r1, [r5] movs r0, 0x6 str r0, [r1, 0x4] ldr r0, [r1, 0x34] ldrb r0, [r0, 0x1] cmp r0, 0x4 bhi _0802DDD4 lsls r0, 2 ldr r1, _0802DD74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DD60: .4byte gUnknown_202E5D8 _0802DD64: .4byte gUnknown_202E1C8 _0802DD68: .4byte 0xfffffdd0 _0802DD6C: .4byte 0xfffffe20 _0802DD70: .4byte gUnknown_202DE58 _0802DD74: .4byte _0802DD78 .align 2, 0 _0802DD78: .4byte _0802DDD4 .4byte _0802DD9C .4byte _0802DDB8 .4byte _0802DD94 .4byte _0802DD8C _0802DD8C: movs r0, 0x5 bl sub_802DC28 b _0802DE3E _0802DD94: movs r0, 0x4 bl sub_802DC28 b _0802DE3E _0802DD9C: movs r0, 0x2 bl sub_802DC28 ldr r0, _0802DDB4 ldr r0, [r0] ldr r0, [r0, 0x34] movs r2, 0xE ldrsh r0, [r0, r2] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDB4: .4byte gUnknown_203B2FC _0802DDB8: movs r0, 0x3 bl sub_802DC28 ldr r0, _0802DDD0 ldr r0, [r0] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDD0: .4byte gUnknown_203B2FC _0802DDD4: movs r0, 0x1 bl sub_802DC28 b _0802DE3E _0802DDDC: ldr r0, _0802DDE0 b _0802DE1C .align 2, 0 _0802DDE0: .4byte gUnknown_80E0184 _0802DDE4: ldr r0, _0802DDE8 b _0802DE1C .align 2, 0 _0802DDE8: .4byte gUnknown_80E01A0 _0802DDEC: ldr r0, _0802DDF0 b _0802DE1C .align 2, 0 _0802DDF0: .4byte gUnknown_80E01C4 _0802DDF4: ldr r0, _0802DDF8 b _0802DE1C .align 2, 0 _0802DDF8: .4byte gUnknown_80E01F0 _0802DDFC: ldr r0, [r5] ldr r0, [r0, 0x34] ldrb r0, [r0, 0x10] bl sub_8091130 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0802DE1A adds r0, r1, 0 bl sub_80911F8 bl sub_80910B4 _0802DE1A: ldr r0, _0802DE2C _0802DE1C: ldr r2, [r5] adds r2, 0x38 ldr r3, _0802DE30 movs r1, 0 bl sub_80141B4 b _0802DE3E .align 2, 0 _0802DE2C: .4byte gUnknown_80E0218 _0802DE30: .4byte 0x0000010d _0802DE34: ldr r0, [r5] adds r0, 0x8 movs r1, 0x1 bl sub_802F204 _0802DE3E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802DC9C thumb_func_start sub_802DE44 sub_802DE44: push {lr} bl sub_802F298 cmp r0, 0x1 bls _0802DE5C cmp r0, 0x3 bhi _0802DE5C bl sub_802F2C0 movs r0, 0x7 bl sub_802DC28 _0802DE5C: pop {r0} bx r0 thumb_func_end sub_802DE44 thumb_func_start sub_802DE60 sub_802DE60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DE78 ldr r0, _0802DE80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802DC28 _0802DE78: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DE80: .4byte gUnknown_203B2FC thumb_func_end sub_802DE60 thumb_func_start sub_802DE84 sub_802DE84: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0802DED8 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0xC] bl sub_801317C ldr r0, [r4] ldr r1, [r0, 0xC] ldr r2, [r1] str r2, [r0, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _0802DEDC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_802DF14 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802DED8: .4byte gUnknown_203B300 _0802DEDC: .4byte gUnknown_80E0264 thumb_func_end sub_802DE84 thumb_func_start sub_802DEE0 sub_802DEE0: push {lr} ldr r0, _0802DF00 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _0802DF04 cmp r0, 0x2 bne _0802DF0E movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802DF10 .align 2, 0 _0802DF00: .4byte gUnknown_203B300 _0802DF04: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802DF10 _0802DF0E: movs r0, 0 _0802DF10: pop {r1} bx r1 thumb_func_end sub_802DEE0 thumb_func_start sub_802DF14 sub_802DF14: push {lr} bl sub_802DF6C bl sub_802DF88 pop {r0} bx r0 thumb_func_end sub_802DF14 thumb_func_start sub_802DF24 sub_802DF24: push {r4,r5,lr} ldr r4, _0802DF64 ldr r2, [r4] cmp r2, 0 beq _0802DF5E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _0802DF68 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DF5E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802DF64: .4byte gUnknown_203B300 _0802DF68: .4byte gUnknown_80E0248 thumb_func_end sub_802DF24 thumb_func_start sub_802DF6C sub_802DF6C: push {lr} bl sub_8004914 ldr r0, _0802DF84 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _0802DF84: .4byte gUnknown_203B300 thumb_func_end sub_802DF6C thumb_func_start sub_802DF88 sub_802DF88: push {r4,lr} ldr r4, _0802DFAC ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_803B98C ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073E0 pop {r4} pop {r0} bx r0 .align 2, 0 _0802DFAC: .4byte gUnknown_203B300 thumb_func_end sub_802DF88 thumb_func_start sub_802DFB0 sub_802DFB0: push {r4,lr} ldr r4, _0802DFD4 movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] movs r0, 0 bl sub_802E088 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802DFD4: .4byte gUnknown_203B304 thumb_func_end sub_802DFB0 thumb_func_start sub_802DFD8 sub_802DFD8: push {lr} ldr r0, _0802DFF0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0xB bhi _0802E060 lsls r0, 2 ldr r1, _0802DFF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DFF0: .4byte gUnknown_203B304 _0802DFF4: .4byte _0802DFF8 .align 2, 0 _0802DFF8: .4byte _0802E028 .4byte _0802E030 .4byte _0802E036 .4byte _0802E060 .4byte _0802E03C .4byte _0802E03C .4byte _0802E042 .4byte _0802E048 .4byte _0802E04E .4byte _0802E054 .4byte _0802E054 .4byte _0802E05A _0802E028: movs r0, 0x1 bl sub_802E088 b _0802E064 _0802E030: bl sub_802E4B0 b _0802E064 _0802E036: bl nullsub_133 b _0802E064 _0802E03C: bl sub_802E578 b _0802E064 _0802E042: bl sub_802E60C b _0802E064 _0802E048: bl sub_802E73C b _0802E064 _0802E04E: bl sub_802E758 b _0802E064 _0802E054: bl sub_802E774 b _0802E064 _0802E05A: bl sub_802E7D0 b _0802E064 _0802E060: movs r0, 0x3 b _0802E066 _0802E064: movs r0, 0 _0802E066: pop {r1} bx r1 thumb_func_end sub_802DFD8 thumb_func_start sub_802E06C sub_802E06C: push {r4,lr} ldr r4, _0802E084 ldr r0, [r4] cmp r0, 0 beq _0802E07E bl MemoryFree movs r0, 0 str r0, [r4] _0802E07E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E084: .4byte gUnknown_203B304 thumb_func_end sub_802E06C thumb_func_start sub_802E088 sub_802E088: push {lr} ldr r1, _0802E09C ldr r1, [r1] str r0, [r1] bl sub_802E0A0 bl sub_802E1AC pop {r0} bx r0 .align 2, 0 _0802E09C: .4byte gUnknown_203B304 thumb_func_end sub_802E088 thumb_func_start sub_802E0A0 sub_802E0A0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E0C8 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E0D0 cmp r5, 0x6 beq _0802E124 movs r3, 0 ldr r2, _0802E0CC b _0802E168 .align 2, 0 _0802E0C8: .4byte gUnknown_203B304 _0802E0CC: .4byte gUnknown_80E0284 _0802E0D0: mov r12, r6 ldr r0, _0802E118 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E0DA: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E0DA bl sub_802E2B4 ldr r3, _0802E11C ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E120 ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802E188 .align 2, 0 _0802E118: .4byte gUnknown_80E0284 _0802E11C: .4byte gUnknown_203B304 _0802E120: .4byte gUnknown_80E029C _0802E124: bl sub_802E3B8 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E160 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802E164 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802E188 .align 2, 0 _0802E160: .4byte gUnknown_80E02B4 _0802E164: .4byte gUnknown_80E02CC _0802E168: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802E168 _0802E188: bl sub_8004914 ldr r0, _0802E1A8 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802E1A8: .4byte gUnknown_203B304 thumb_func_end sub_802E0A0 thumb_func_start sub_802E1AC sub_802E1AC: push {r4,lr} sub sp, 0x8 ldr r1, _0802E1C8 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0xB bhi _0802E2AA lsls r0, 2 ldr r1, _0802E1CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E1C8: .4byte gUnknown_203B304 _0802E1CC: .4byte _0802E1D0 .align 2, 0 _0802E1D0: .4byte _0802E2AA .4byte _0802E200 .4byte _0802E2AA .4byte _0802E2AA .4byte _0802E21E .4byte _0802E22A .4byte _0802E232 .4byte _0802E260 .4byte _0802E286 .4byte _0802E28E .4byte _0802E29A .4byte _0802E2A2 _0802E200: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802E2AA _0802E21E: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802BD14 b _0802E2AA _0802E22A: movs r0, 0x1 bl sub_802BE94 b _0802E2AA _0802E232: bl sub_802BFA0 movs r0, 0x3 bl sub_802E7F8 ldr r0, _0802E25C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802E2AA .align 2, 0 _0802E25C: .4byte gUnknown_203B304 _0802E260: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802E2AA _0802E286: movs r0, 0 bl sub_802C860 b _0802E2AA _0802E28E: movs r0, 0 movs r1, 0 movs r2, 0x8 bl sub_802B640 b _0802E2AA _0802E29A: movs r0, 0x1 bl sub_802B7D0 b _0802E2AA _0802E2A2: ldr r0, [r4] ldrb r0, [r0, 0x9] bl sub_802B9FC _0802E2AA: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E1AC thumb_func_start sub_802E2B4 sub_802E2B4: push {r4-r7,lr} ldr r4, _0802E380 ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E384 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E2E6 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802E2E6: movs r5, 0x1 ldr r1, [r4] movs r6, 0x1 adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802E388 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802E30A ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802E30A: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xCC ldr r0, _0802E38C str r0, [r2] adds r1, 0xD0 movs r0, 0x4 str r0, [r1] bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802E32E ldr r0, [r4] movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r6, [r0] _0802E32E: movs r5, 0x3 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xD4 movs r1, 0 str r1, [r0] adds r0, 0x4 str r6, [r0] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802E34A: ldrh r0, [r4] cmp r0, 0 bne _0802E35A ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802E3B2 _0802E35A: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E34A movs r3, 0 cmp r3, r5 bge _0802E3B2 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802E390 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802E3B2 .align 2, 0 _0802E380: .4byte gUnknown_203B304 _0802E384: .4byte gUnknown_80E02E4 _0802E388: .4byte gUnknown_80E02F0 _0802E38C: .4byte gUnknown_80E02FC _0802E390: adds r3, 0x1 cmp r3, r5 bge _0802E3B2 ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802E390 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802E3B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E2B4 thumb_func_start sub_802E3B8 sub_802E3B8: push {r4-r7,lr} movs r5, 0 ldr r4, _0802E3F0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r7, r0, 0 ldrb r0, [r7] cmp r0, 0x1 bne _0802E3FC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802E3F4 str r0, [r1] adds r1, 0x4 movs r0, 0x6 str r0, [r1] adds r1, 0x4 ldr r0, _0802E3F8 str r0, [r1] adds r1, 0x4 movs r0, 0x7 str r0, [r1] movs r5, 0x2 b _0802E44A .align 2, 0 _0802E3F0: .4byte gUnknown_203B304 _0802E3F4: .4byte gUnknown_80E0308 _0802E3F8: .4byte gUnknown_80E0310 _0802E3FC: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E494 ldr r0, [r0] str r0, [r2] adds r1, 0xC0 movs r0, 0x5 str r0, [r1] adds r0, r7, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802E422 bl sub_80969AC cmp r0, 0x7 ble _0802E42C _0802E422: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802E42C: adds r5, 0x1 ldr r4, _0802E498 ldr r2, [r4] lsls r3, r5, 3 adds r0, r2, 0 adds r0, 0xBC adds r0, r3 ldr r1, _0802E49C ldr r1, [r1] str r1, [r0] adds r2, 0xC0 adds r2, r3 movs r0, 0x8 str r0, [r2] adds r5, 0x1 _0802E44A: mov r12, r4 mov r0, r12 ldr r4, [r0] lsls r2, r5, 3 adds r0, r4, 0 adds r0, 0xBC adds r0, r2 movs r1, 0 str r1, [r0] adds r1, r4, 0 adds r1, 0xC0 adds r2, r1, r2 movs r0, 0x1 str r0, [r2] movs r3, 0 cmp r3, r5 bge _0802E486 movs r6, 0x1 negs r6, r6 adds r2, r1, 0 _0802E472: ldr r1, [r2] cmp r1, r6 beq _0802E47E ldr r0, [r4, 0x68] cmp r1, r0 beq _0802E4A8 _0802E47E: adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E472 _0802E486: ldrb r0, [r7] cmp r0, 0x1 bne _0802E4A0 mov r0, r12 ldr r1, [r0] movs r0, 0x7 b _0802E4A6 .align 2, 0 _0802E494: .4byte gUnknown_80D4990 _0802E498: .4byte gUnknown_203B304 _0802E49C: .4byte gUnknown_80D4970 _0802E4A0: mov r0, r12 ldr r1, [r0] movs r0, 0x8 _0802E4A6: str r0, [r1, 0x68] _0802E4A8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E3B8 thumb_func_start sub_802E4B0 sub_802E4B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802E4F0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E4DC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E4DC ldr r0, [r4] str r1, [r0, 0x64] _0802E4DC: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E56E lsls r0, 2 ldr r1, _0802E4F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E4F0: .4byte gUnknown_203B304 _0802E4F4: .4byte _0802E4F8 .align 2, 0 _0802E4F8: .4byte _0802E568 .4byte _0802E518 .4byte _0802E52A .4byte _0802E53C .4byte _0802E56E .4byte _0802E56E .4byte _0802E56E .4byte _0802E560 _0802E518: bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x4 bl sub_802E088 b _0802E56E _0802E52A: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x8 bl sub_802E088 b _0802E56E _0802E53C: bl sub_802B9D8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x9 bl sub_802E088 b _0802E56E _0802E54E: ldr r0, _0802E55C ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802E56E .align 2, 0 _0802E55C: .4byte gUnknown_203B304 _0802E560: movs r0, 0x2 bl sub_802E088 b _0802E56E _0802E568: movs r0, 0x3 bl sub_802E088 _0802E56E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E4B0 thumb_func_start sub_802E578 sub_802E578: push {r4,lr} movs r0, 0x1 bl sub_802BDEC cmp r0, 0x4 bhi _0802E606 lsls r0, 2 ldr r1, _0802E590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E590: .4byte _0802E594 .align 2, 0 _0802E594: .4byte _0802E606 .4byte _0802E606 .4byte _0802E5FC .4byte _0802E5A8 .4byte _0802E5C0 _0802E5A8: bl sub_802BE74 ldr r1, _0802E5BC ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E088 b _0802E606 .align 2, 0 _0802E5BC: .4byte gUnknown_203B304 _0802E5C0: bl sub_802BE74 ldr r4, _0802E5F0 ldr r1, [r4] strb r0, [r1, 0x8] ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0x1 bne _0802E5F4 ldr r1, [r4] ldrb r0, [r2, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E606 .align 2, 0 _0802E5F0: .4byte gUnknown_203B304 _0802E5F4: movs r0, 0x7 bl sub_802E088 b _0802E606 _0802E5FC: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 _0802E606: pop {r4} pop {r0} bx r0 thumb_func_end sub_802E578 thumb_func_start sub_802E60C sub_802E60C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802BDEC ldr r4, _0802E650 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E63C ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E63C ldr r0, [r4] str r1, [r0, 0x68] _0802E63C: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E732 lsls r0, 2 ldr r1, _0802E654 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E650: .4byte gUnknown_203B304 _0802E654: .4byte _0802E658 .align 2, 0 _0802E658: .4byte _0802E72C .4byte _0802E732 .4byte _0802E732 .4byte _0802E732 .4byte _0802E678 .4byte _0802E6BC .4byte _0802E704 .4byte _0802E6B4 _0802E678: ldr r0, _0802E6AC bl sub_8011988 ldr r4, _0802E6B0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E6E8 b _0802E6FC .align 2, 0 _0802E6AC: .4byte 0x00000133 _0802E6B0: .4byte gUnknown_203B304 _0802E6B4: movs r0, 0x7 bl sub_802E088 b _0802E732 _0802E6BC: ldr r0, _0802E6F4 bl sub_8011988 ldr r4, _0802E6F8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldrb r0, [r0, 0x5] bl sub_8096DF8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E6FC _0802E6E8: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 b _0802E732 .align 2, 0 _0802E6F4: .4byte 0x00000133 _0802E6F8: .4byte gUnknown_203B304 _0802E6FC: movs r0, 0x5 bl sub_802E088 b _0802E732 _0802E704: movs r0, 0 bl sub_80119D4 ldr r4, _0802E728 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] ldrb r0, [r0, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E732 .align 2, 0 _0802E728: .4byte gUnknown_203B304 _0802E72C: movs r0, 0x5 bl sub_802E088 _0802E732: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E60C thumb_func_start sub_802E73C sub_802E73C: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802E754 cmp r0, 0x3 bhi _0802E754 bl sub_802DF24 movs r0, 0x5 bl sub_802E088 _0802E754: pop {r0} bx r0 thumb_func_end sub_802E73C thumb_func_start sub_802E758 sub_802E758: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802E770 cmp r0, 0x3 bhi _0802E770 bl sub_802C8F4 movs r0, 0x1 bl sub_802E088 _0802E770: pop {r0} bx r0 thumb_func_end sub_802E758 thumb_func_start sub_802E774 sub_802E774: push {lr} movs r0, 0x1 bl sub_802B720 cmp r0, 0x4 bhi _0802E7CA lsls r0, 2 ldr r1, _0802E78C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E78C: .4byte _0802E790 .align 2, 0 _0802E790: .4byte _0802E7CA .4byte _0802E7CA .4byte _0802E7C0 .4byte _0802E7A4 .4byte _0802E7A4 _0802E7A4: bl sub_802B7A8 ldr r2, _0802E7BC ldr r1, [r2] strb r0, [r1, 0x9] ldr r1, [r2] movs r0, 0xA str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E7CA .align 2, 0 _0802E7BC: .4byte gUnknown_203B304 _0802E7C0: bl sub_802B81C movs r0, 0x1 bl sub_802E088 _0802E7CA: pop {r0} bx r0 thumb_func_end sub_802E774 thumb_func_start sub_802E7D0 sub_802E7D0: push {lr} bl sub_802BA8C cmp r0, 0x1 bls _0802E7EC cmp r0, 0x3 bhi _0802E7EC bl sub_802BACC ldr r0, _0802E7F0 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802E088 _0802E7EC: pop {r0} bx r0 .align 2, 0 _0802E7F0: .4byte gUnknown_203B304 thumb_func_end sub_802E7D0 thumb_func_start nullsub_133 nullsub_133: bx lr thumb_func_end nullsub_133 thumb_func_start sub_802E7F8 sub_802E7F8: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802E85C movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802E860 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E85C: .4byte gUnknown_80E0318 _0802E860: .4byte gUnknown_80E0324 thumb_func_end sub_802E7F8 thumb_func_start sub_802E864 sub_802E864: push {r4,lr} ldr r4, _0802E88C movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] str r1, [r0, 0x4] movs r0, 0 bl sub_802E934 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802E88C: .4byte gUnknown_203B308 thumb_func_end sub_802E864 thumb_func_start sub_802E890 sub_802E890: push {lr} ldr r0, _0802E8A8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x8 bhi _0802E900 lsls r0, 2 ldr r1, _0802E8AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E8A8: .4byte gUnknown_203B308 _0802E8AC: .4byte _0802E8B0 .align 2, 0 _0802E8B0: .4byte _0802E8D4 .4byte _0802E8DC .4byte _0802E8E2 .4byte _0802E900 .4byte _0802E8E8 .4byte _0802E8E8 .4byte _0802E8EE .4byte _0802E8F4 .4byte _0802E8FA _0802E8D4: movs r0, 0x1 bl sub_802E934 b _0802E904 _0802E8DC: bl sub_802ECB4 b _0802E904 _0802E8E2: bl nullsub_134 b _0802E904 _0802E8E8: bl sub_802ED4C b _0802E904 _0802E8EE: bl sub_802EDBC b _0802E904 _0802E8F4: bl sub_802EEA0 b _0802E904 _0802E8FA: bl sub_802EEBC b _0802E904 _0802E900: movs r0, 0x3 b _0802E906 _0802E904: movs r0, 0 _0802E906: pop {r1} bx r1 thumb_func_end sub_802E890 thumb_func_start sub_802E90C sub_802E90C: ldr r0, _0802E914 ldr r0, [r0] ldr r0, [r0, 0x4] bx lr .align 2, 0 _0802E914: .4byte gUnknown_203B308 thumb_func_end sub_802E90C thumb_func_start sub_802E918 sub_802E918: push {r4,lr} ldr r4, _0802E930 ldr r0, [r4] cmp r0, 0 beq _0802E92A bl MemoryFree movs r0, 0 str r0, [r4] _0802E92A: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E930: .4byte gUnknown_203B308 thumb_func_end sub_802E918 thumb_func_start sub_802E934 sub_802E934: push {lr} ldr r1, _0802E948 ldr r1, [r1] str r0, [r1] bl sub_802E94C bl sub_802EA58 pop {r0} bx r0 .align 2, 0 _0802E948: .4byte gUnknown_203B308 thumb_func_end sub_802E934 thumb_func_start sub_802E94C sub_802E94C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E974 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E97C cmp r5, 0x6 beq _0802E9D0 movs r3, 0 ldr r2, _0802E978 b _0802EA14 .align 2, 0 _0802E974: .4byte gUnknown_203B308 _0802E978: .4byte gUnknown_80E0330 _0802E97C: mov r12, r6 ldr r0, _0802E9C4 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E986: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E986 bl sub_802EB34 ldr r3, _0802E9C8 ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E9CC ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802EA34 .align 2, 0 _0802E9C4: .4byte gUnknown_80E0330 _0802E9C8: .4byte gUnknown_203B308 _0802E9CC: .4byte gUnknown_80E0348 _0802E9D0: bl sub_802EC10 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802EA0C ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802EA10 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802EA34 .align 2, 0 _0802EA0C: .4byte gUnknown_80E0360 _0802EA10: .4byte gUnknown_80E0378 _0802EA14: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802EA14 _0802EA34: bl sub_8004914 ldr r0, _0802EA54 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802EA54: .4byte gUnknown_203B308 thumb_func_end sub_802E94C thumb_func_start sub_802EA58 sub_802EA58: push {r4,lr} sub sp, 0x8 ldr r1, _0802EA74 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bhi _0802EB2C lsls r0, 2 ldr r1, _0802EA78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EA74: .4byte gUnknown_203B308 _0802EA78: .4byte _0802EA7C .align 2, 0 _0802EA7C: .4byte _0802EB2C .4byte _0802EAA0 .4byte _0802EB2C .4byte _0802EB2C .4byte _0802EABE .4byte _0802EACA .4byte _0802EAD2 .4byte _0802EB00 .4byte _0802EB26 _0802EAA0: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802EB2C _0802EABE: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C10C b _0802EB2C _0802EACA: movs r0, 0x1 bl sub_802C28C b _0802EB2C _0802EAD2: bl sub_802C39C movs r0, 0x3 bl sub_802EEDC ldr r0, _0802EAFC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802EB2C .align 2, 0 _0802EAFC: .4byte gUnknown_203B308 _0802EB00: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802EB2C _0802EB26: movs r0, 0 bl sub_802C860 _0802EB2C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EA58 thumb_func_start sub_802EB34 sub_802EB34: push {r4-r7,lr} ldr r4, _0802EBDC ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802EBE0 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EB66 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802EB66: movs r5, 0x1 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802EBE4 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802EB88 ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802EB88: movs r5, 0x2 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xCC movs r0, 0 str r0, [r1] adds r1, 0x4 movs r0, 0x1 str r0, [r1] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802EBA6: ldrh r0, [r4] cmp r0, 0 bne _0802EBB6 ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802EC0A _0802EBB6: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802EBA6 movs r3, 0 cmp r3, r5 bge _0802EC0A ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802EBE8 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802EC0A .align 2, 0 _0802EBDC: .4byte gUnknown_203B308 _0802EBE0: .4byte gUnknown_80E0390 _0802EBE4: .4byte gUnknown_80E03A0 _0802EBE8: adds r3, 0x1 cmp r3, r5 bge _0802EC0A ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802EBE8 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802EC0A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802EB34 thumb_func_start sub_802EC10 sub_802EC10: push {r4-r7,lr} movs r6, 0 ldr r4, _0802ECA8 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802ECAC ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x4 str r0, [r1] ldrb r0, [r2, 0x8] bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802EC40 bl sub_80969AC cmp r0, 0x7 ble _0802EC4A _0802EC40: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802EC4A: adds r6, 0x1 ldr r4, _0802ECA8 ldr r5, [r4] lsls r1, r6, 3 adds r2, r5, 0 adds r2, 0xBC adds r3, r2, r1 ldr r0, _0802ECB0 ldr r0, [r0] str r0, [r3] adds r3, r5, 0 adds r3, 0xC0 adds r1, r3, r1 movs r0, 0x5 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r1 movs r0, 0 str r0, [r2] adds r1, r3, r1 movs r0, 0x1 str r0, [r1] movs r2, 0 adds r7, r4, 0 cmp r2, r6 bge _0802EC9C adds r4, r5, 0 movs r5, 0x1 negs r5, r5 adds r1, r3, 0 _0802EC88: ldr r3, [r1] cmp r3, r5 beq _0802EC94 ldr r0, [r4, 0x68] cmp r3, r0 beq _0802ECA2 _0802EC94: adds r1, 0x8 adds r2, 0x1 cmp r2, r6 blt _0802EC88 _0802EC9C: ldr r1, [r7] movs r0, 0x5 str r0, [r1, 0x68] _0802ECA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802ECA8: .4byte gUnknown_203B308 _0802ECAC: .4byte gUnknown_80D4990 _0802ECB0: .4byte gUnknown_80D4970 thumb_func_end sub_802EC10 thumb_func_start sub_802ECB4 sub_802ECB4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802ECF0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802ECE0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802ECE0 ldr r0, [r4] str r1, [r0, 0x64] _0802ECE0: ldr r0, [sp] cmp r0, 0x2 beq _0802ECFE cmp r0, 0x2 bgt _0802ECF4 cmp r0, 0x1 beq _0802ED3C b _0802ED42 .align 2, 0 _0802ECF0: .4byte gUnknown_203B308 _0802ECF4: cmp r0, 0x3 beq _0802ED10 cmp r0, 0x5 beq _0802ED34 b _0802ED42 _0802ECFE: bl sub_802C4A4 lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x4 bl sub_802E934 b _0802ED42 _0802ED10: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x8 bl sub_802E934 b _0802ED42 _0802ED22: ldr r0, _0802ED30 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802ED42 .align 2, 0 _0802ED30: .4byte gUnknown_203B308 _0802ED34: movs r0, 0x2 bl sub_802E934 b _0802ED42 _0802ED3C: movs r0, 0x3 bl sub_802E934 _0802ED42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802ECB4 thumb_func_start sub_802ED4C sub_802ED4C: push {lr} movs r0, 0x1 bl sub_802C1E4 cmp r0, 0x4 bhi _0802EDB6 lsls r0, 2 ldr r1, _0802ED64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802ED64: .4byte _0802ED68 .align 2, 0 _0802ED68: .4byte _0802EDB6 .4byte _0802EDB6 .4byte _0802EDAC .4byte _0802ED7C .4byte _0802ED94 _0802ED7C: bl sub_802C26C ldr r1, _0802ED90 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802ED90: .4byte gUnknown_203B308 _0802ED94: bl sub_802C26C ldr r1, _0802EDA8 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x7 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802EDA8: .4byte gUnknown_203B308 _0802EDAC: bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 _0802EDB6: pop {r0} bx r0 thumb_func_end sub_802ED4C thumb_func_start sub_802EDBC sub_802EDBC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C1E4 ldr r4, _0802EDFC ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802EDEC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802EDEC ldr r0, [r4] str r1, [r0, 0x68] _0802EDEC: ldr r0, [sp] cmp r0, 0x4 beq _0802EE06 cmp r0, 0x4 bgt _0802EE00 cmp r0, 0x1 beq _0802EE90 b _0802EE96 .align 2, 0 _0802EDFC: .4byte gUnknown_203B308 _0802EE00: cmp r0, 0x5 beq _0802EE88 b _0802EE96 _0802EE06: ldr r0, _0802EE28 bl sub_8011988 ldr r4, _0802EE2C ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldrb r1, [r0] cmp r1, 0x3 beq _0802EE3C cmp r1, 0x3 bgt _0802EE30 cmp r1, 0x2 beq _0802EE36 b _0802EE5E .align 2, 0 _0802EE28: .4byte 0x00000133 _0802EE2C: .4byte gUnknown_203B308 _0802EE30: cmp r1, 0x4 beq _0802EE42 b _0802EE5E _0802EE36: ldr r0, [r4] movs r1, 0x1 b _0802EE46 _0802EE3C: ldr r0, [r4] movs r1, 0x2 b _0802EE46 _0802EE42: ldr r0, [r4] movs r1, 0x3 _0802EE46: str r1, [r0, 0x4] ldrb r0, [r0, 0x8] bl sub_80965B8 bl sub_80965F4 bl sub_802C2D4 movs r0, 0x3 bl sub_802E934 b _0802EE96 _0802EE5E: bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EE80 bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 b _0802EE96 _0802EE80: movs r0, 0x5 bl sub_802E934 b _0802EE96 _0802EE88: movs r0, 0x7 bl sub_802E934 b _0802EE96 _0802EE90: movs r0, 0x5 bl sub_802E934 _0802EE96: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EDBC thumb_func_start sub_802EEA0 sub_802EEA0: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802EEB8 cmp r0, 0x3 bhi _0802EEB8 bl sub_802DF24 movs r0, 0x5 bl sub_802E934 _0802EEB8: pop {r0} bx r0 thumb_func_end sub_802EEA0 thumb_func_start sub_802EEBC sub_802EEBC: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802EED4 cmp r0, 0x3 bhi _0802EED4 bl sub_802C8F4 movs r0, 0x1 bl sub_802E934 _0802EED4: pop {r0} bx r0 thumb_func_end sub_802EEBC thumb_func_start nullsub_134 nullsub_134: bx lr thumb_func_end nullsub_134 thumb_func_start sub_802EEDC sub_802EEDC: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802EF40 movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802EF44 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802EF40: .4byte gUnknown_80E03AC _0802EF44: .4byte gUnknown_80E03B8 thumb_func_end sub_802EEDC thumb_func_start sub_802EF48 sub_802EF48: push {r4,lr} ldr r4, _0802EF68 movs r0, 0xA8 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_802EFEC movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802EF68: .4byte gUnknown_203B30C thumb_func_end sub_802EF48 thumb_func_start sub_802EF6C sub_802EF6C: push {lr} ldr r0, _0802EF84 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0802EFBA lsls r0, 2 ldr r1, _0802EF88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EF84: .4byte gUnknown_203B30C _0802EF88: .4byte _0802EF8C .align 2, 0 _0802EF8C: .4byte _0802EFA4 .4byte _0802EFA4 .4byte _0802EFAA .4byte _0802EFB0 .4byte _0802EFB6 .4byte _0802EFBA _0802EFA4: bl sub_802F148 b _0802EFBE _0802EFAA: bl sub_802F184 b _0802EFBE _0802EFB0: bl sub_802F1E8 b _0802EFBE _0802EFB6: movs r0, 0x3 b _0802EFC0 _0802EFBA: movs r0, 0x2 b _0802EFC0 _0802EFBE: movs r0, 0 _0802EFC0: pop {r1} bx r1 thumb_func_end sub_802EF6C thumb_func_start sub_802EFC4 sub_802EFC4: ldr r0, _0802EFCC ldr r0, [r0] ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0802EFCC: .4byte gUnknown_203B30C thumb_func_end sub_802EFC4 thumb_func_start sub_802EFD0 sub_802EFD0: push {r4,lr} ldr r4, _0802EFE8 ldr r0, [r4] cmp r0, 0 beq _0802EFE2 bl MemoryFree movs r0, 0 str r0, [r4] _0802EFE2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802EFE8: .4byte gUnknown_203B30C thumb_func_end sub_802EFD0 thumb_func_start sub_802EFEC sub_802EFEC: push {lr} ldr r1, _0802F000 ldr r1, [r1] str r0, [r1] bl sub_802F004 bl sub_802F088 pop {r0} bx r0 .align 2, 0 _0802F000: .4byte gUnknown_203B30C thumb_func_end sub_802EFEC thumb_func_start sub_802F004 sub_802F004: push {r4-r7,lr} ldr r4, _0802F03C ldr r0, [r4] adds r0, 0xF0 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x2 bne _0802F044 bl sub_802F108 ldr r2, [r4] movs r0, 0x90 lsls r0, 1 adds r2, r0 ldr r1, _0802F040 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xB0 bl sub_8012CAC b _0802F066 .align 2, 0 _0802F03C: .4byte gUnknown_203B30C _0802F040: .4byte gUnknown_80E03F4 _0802F044: mov r12, r4 ldr r4, _0802F080 movs r2, 0 movs r3, 0x3 _0802F04C: mov r6, r12 ldr r1, [r6] adds r1, r2 adds r1, 0xF0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802F04C _0802F066: bl sub_8004914 ldr r0, _0802F084 ldr r0, [r0] adds r0, 0xF0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F080: .4byte gUnknown_80E03C4 _0802F084: .4byte gUnknown_203B30C thumb_func_end sub_802F004 thumb_func_start sub_802F088 sub_802F088: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0802F0A0 ldr r0, [r6] ldr r5, [r0] cmp r5, 0x1 beq _0802F0B6 cmp r5, 0x1 bgt _0802F0A4 cmp r5, 0 beq _0802F0AE b _0802F100 .align 2, 0 _0802F0A0: .4byte gUnknown_203B30C _0802F0A4: cmp r5, 0x2 beq _0802F0BE cmp r5, 0x3 beq _0802F0DA b _0802F100 _0802F0AE: movs r0, 0 bl sub_802CDD4 b _0802F100 _0802F0B6: movs r0, 0x1 bl sub_802CED8 b _0802F100 _0802F0BE: bl sub_802CFD0 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x60 adds r1, 0xB0 movs r2, 0x3 str r2, [sp] str r5, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802F100 _0802F0DA: ldrb r0, [r0, 0x4] bl sub_803B344 adds r4, r0, 0 ldr r1, [r6] adds r1, 0x8 bl sub_803B35C ldr r0, [r6] str r5, [r0, 0x8] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r6] ldr r1, [r4, 0x18] str r1, [r0, 0x58] adds r0, 0x8 bl sub_802DE84 _0802F100: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802F088 thumb_func_start sub_802F108 sub_802F108: ldr r0, _0802F13C ldr r0, [r0] mov r12, r0 movs r3, 0 mov r1, r12 adds r1, 0xB0 ldr r0, _0802F140 str r0, [r1] adds r1, 0x4 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _0802F144 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x3 str r0, [r1] mov r0, r12 adds r0, 0xC0 str r3, [r0] adds r0, 0x4 str r2, [r0] bx lr .align 2, 0 _0802F13C: .4byte gUnknown_203B30C _0802F140: .4byte gUnknown_80E040C _0802F144: .4byte gUnknown_80D4970 thumb_func_end sub_802F108 thumb_func_start sub_802F148 sub_802F148: push {lr} movs r0, 0x1 bl sub_802CE5C cmp r0, 0x2 beq _0802F174 cmp r0, 0x2 bcc _0802F17E cmp r0, 0x3 bne _0802F17E bl sub_802CEBC ldr r1, _0802F170 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_802EFEC b _0802F17E .align 2, 0 _0802F170: .4byte gUnknown_203B30C _0802F174: bl sub_802CF14 movs r0, 0x5 bl sub_802EFEC _0802F17E: pop {r0} bx r0 thumb_func_end sub_802F148 thumb_func_start sub_802F184 sub_802F184: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802CE5C ldr r4, _0802F1BC ldr r0, [r4] adds r0, 0x60 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802F1AA ldr r0, [r4] adds r0, 0x60 mov r1, sp bl sub_8013114 _0802F1AA: ldr r0, [sp] cmp r0, 0x2 beq _0802F1C6 cmp r0, 0x2 bgt _0802F1C0 cmp r0, 0x1 beq _0802F1DA b _0802F1E0 .align 2, 0 _0802F1BC: .4byte gUnknown_203B30C _0802F1C0: cmp r0, 0x3 beq _0802F1D2 b _0802F1E0 _0802F1C6: bl sub_802CF14 movs r0, 0x4 bl sub_802EFEC b _0802F1E0 _0802F1D2: movs r0, 0x3 bl sub_802EFEC b _0802F1E0 _0802F1DA: movs r0, 0x1 bl sub_802EFEC _0802F1E0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802F184 thumb_func_start sub_802F1E8 sub_802F1E8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802F200 cmp r0, 0x3 bhi _0802F200 bl sub_802DF24 movs r0, 0x1 bl sub_802EFEC _0802F200: pop {r0} bx r0 thumb_func_end sub_802F1E8 thumb_func_start sub_802F204 sub_802F204: push {r4-r6,lr} adds r6, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802F28C movs r0, 0x84 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x10] movs r6, 0 str r6, [r0, 0xC] strb r4, [r0, 0x8] ldr r1, [r5] ldr r0, _0802F290 ldr r1, [r1, 0x10] bl strcpy ldr r4, _0802F294 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, [r5] ldr r0, [r0, 0x10] movs r1, 0x14 ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x14] str r6, [r1, 0x18] adds r1, 0x20 strb r6, [r1] ldr r0, [r5] adds r0, 0x21 strb r6, [r0] ldr r0, [r5] adds r0, 0x22 strb r6, [r0] ldr r5, [r5] movs r0, 0x2 strh r0, [r5, 0x1C] movs r0, 0x8 strh r0, [r5, 0x1E] ldr r0, [r5, 0x14] cmp r0, 0 beq _0802F27C ldr r0, [r0, 0x4] str r0, [r5, 0x18] _0802F27C: movs r0, 0 bl sub_802F2E8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802F28C: .4byte gUnknown_203B310 _0802F290: .4byte gUnknown_202E5D8 _0802F294: .4byte gUnknown_202DF98 thumb_func_end sub_802F204 thumb_func_start sub_802F298 sub_802F298: push {lr} ldr r0, _0802F2AC ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 beq _0802F2B0 cmp r0, 0x9 bne _0802F2B6 movs r0, 0x3 b _0802F2BC .align 2, 0 _0802F2AC: .4byte gUnknown_203B310 _0802F2B0: bl sub_802F6FC b _0802F2BA _0802F2B6: bl sub_802F718 _0802F2BA: movs r0, 0 _0802F2BC: pop {r1} bx r1 thumb_func_end sub_802F298 thumb_func_start sub_802F2C0 sub_802F2C0: push {r4,lr} ldr r4, _0802F2E4 ldr r0, [r4] cmp r0, 0 beq _0802F2DE ldr r0, [r0, 0x14] cmp r0, 0 beq _0802F2D4 bl CloseFile _0802F2D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F2DE: pop {r4} pop {r0} bx r0 .align 2, 0 _0802F2E4: .4byte gUnknown_203B310 thumb_func_end sub_802F2C0 thumb_func_start sub_802F2E8 sub_802F2E8: push {lr} ldr r1, _0802F2FC ldr r1, [r1] str r0, [r1] bl sub_802F300 bl sub_802F358 pop {r0} bx r0 .align 2, 0 _0802F2FC: .4byte gUnknown_203B310 thumb_func_end sub_802F2E8 thumb_func_start sub_802F300 sub_802F300: push {r4-r7,lr} ldr r4, _0802F350 ldr r1, [r4] ldr r0, [r1] cmp r0, 0 bne _0802F348 adds r0, r1, 0 adds r0, 0x24 bl sub_8006518 mov r12, r4 ldr r4, _0802F354 movs r3, 0 movs r2, 0x3 _0802F31C: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x24 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802F31C bl sub_8004914 ldr r0, _0802F350 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0802F348: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F350: .4byte gUnknown_203B310 _0802F354: .4byte gUnknown_80E041C thumb_func_end sub_802F300 thumb_func_start sub_802F358 sub_802F358: push {r4-r6,lr} sub sp, 0x10 ldr r1, _0802F374 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x9 bls _0802F36A b _0802F6E4 _0802F36A: lsls r0, 2 ldr r1, _0802F378 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F374: .4byte gUnknown_203B310 _0802F378: .4byte _0802F37C .align 2, 0 _0802F37C: .4byte _0802F3A4 .4byte _0802F3E8 .4byte _0802F444 .4byte _0802F494 .4byte _0802F524 .4byte _0802F5CC .4byte _0802F614 .4byte _0802F630 .4byte _0802F6A4 .4byte _0802F6E4 _0802F3A4: ldr r2, [r6] ldr r0, [r2, 0x10] ldr r1, [r0, 0x18] cmp r1, 0 bne _0802F3B6 movs r0, 0x2 bl sub_802F2E8 b _0802F6E4 _0802F3B6: ldr r0, _0802F3D4 str r1, [r0] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F3E0 ldr r0, _0802F3D8 adds r2, 0x14 ldr r3, _0802F3DC movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F3D4: .4byte gUnknown_202DE30 _0802F3D8: .4byte gUnknown_80E0434 _0802F3DC: .4byte 0x0000010d _0802F3E0: movs r0, 0x1 bl sub_802F2E8 b _0802F6E4 _0802F3E8: movs r0, 0xCB bl sub_8011988 ldr r0, _0802F414 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x18] bl sub_80913A0 movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F420 ldr r0, _0802F418 ldr r3, _0802F41C movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F42C .align 2, 0 _0802F414: .4byte gUnknown_203B310 _0802F418: .4byte gUnknown_80E045C _0802F41C: .4byte 0x00000101 _0802F420: ldr r0, _0802F438 ldr r3, _0802F43C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F42C: ldr r0, _0802F440 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F438: .4byte gUnknown_80E0484 _0802F43C: .4byte 0x00000101 _0802F440: .4byte gUnknown_203B310 _0802F444: ldr r0, [r6] ldr r0, [r0, 0x10] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0802F45A movs r0, 0x4 bl sub_802F2E8 b _0802F6E4 _0802F45A: ldr r0, _0802F480 ldrb r1, [r1] movs r2, 0 bl sub_8092578 ldr r2, [r6] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F48C ldr r0, _0802F484 adds r2, 0x14 ldr r3, _0802F488 movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x3 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F480: .4byte gUnknown_202E628 _0802F484: .4byte gUnknown_80E04B4 _0802F488: .4byte 0x0000010d _0802F48C: movs r0, 0x3 bl sub_802F2E8 b _0802F6E4 _0802F494: ldr r4, _0802F4B4 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _0802F4BC movs r0, 0xFA lsls r0, 2 bl sub_80913A0 ldr r0, _0802F4B8 b _0802F4DA .align 2, 0 _0802F4B4: .4byte gUnknown_203B310 _0802F4B8: .4byte gUnknown_80E04F4 _0802F4BC: movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F4F0 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F4E8 _0802F4DA: ldr r3, _0802F4EC movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F50E .align 2, 0 _0802F4E8: .4byte gUnknown_80E05C0 _0802F4EC: .4byte 0x00000101 _0802F4F0: ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F518 ldr r3, _0802F51C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F50E: ldr r0, _0802F520 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F518: .4byte gUnknown_80E05FC _0802F51C: .4byte 0x00000101 _0802F520: .4byte gUnknown_203B310 _0802F524: ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r2, [r0, 0x1C] cmp r2, 0 beq _0802F628 ldr r0, [r0, 0x18] cmp r0, 0 bne _0802F620 lsls r2, 16 ldr r1, _0802F564 ldr r0, [sp, 0xC] ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0802F56C ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r1, [r0, 0x1F] lsls r1, 8 ldr r2, _0802F568 ldr r0, [sp, 0xC] ands r0, r2 orrs r0, r1 b _0802F572 .align 2, 0 _0802F564: .4byte 0xff00ffff _0802F568: .4byte 0xffff00ff _0802F56C: ldr r1, _0802F5B4 ldr r0, [sp, 0xC] ands r0, r1 _0802F572: str r0, [sp, 0xC] ldr r1, _0802F5B8 ldr r0, [sp, 0xC] ands r0, r1 movs r2, 0x1 orrs r0, r2 str r0, [sp, 0xC] movs r1, 0 str r1, [sp] mov r0, sp strb r1, [r0, 0x4] strb r2, [r0, 0x8] ldr r0, _0802F5BC add r1, sp, 0xC mov r2, sp bl sub_8090E14 ldr r4, _0802F5C0 ldr r2, [r4] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F620 ldr r0, _0802F5C4 adds r2, 0x14 ldr r3, _0802F5C8 movs r1, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F5B4: .4byte 0xffff00ff _0802F5B8: .4byte 0xffffff00 _0802F5BC: .4byte gUnknown_202DEA8 _0802F5C0: .4byte gUnknown_203B310 _0802F5C4: .4byte gUnknown_80E0640 _0802F5C8: .4byte 0x0000010d _0802F5CC: ldr r0, [r6] ldr r2, [r0, 0x10] adds r1, r2, 0 adds r1, 0x1C ldr r3, [r0, 0xC] adds r1, r3 ldrb r0, [r1] cmp r0, 0 bne _0802F5E6 movs r0, 0x6 bl sub_802F2E8 b _0802F6E4 _0802F5E6: cmp r3, 0 bne _0802F5FC ldr r0, [r2, 0x18] cmp r0, 0 bne _0802F5FC ldrb r1, [r2, 0x1C] ldrb r2, [r2, 0x1F] movs r0, 0 bl sub_801B60C b _0802F6E4 _0802F5FC: ldr r1, [r6] ldr r2, [r1, 0x10] adds r0, r2, 0 adds r0, 0x1C ldr r1, [r1, 0xC] adds r0, r1 ldrb r1, [r0] ldrb r2, [r2, 0x1F] movs r0, 0x1 bl sub_801B60C b _0802F6E4 _0802F614: ldr r1, [r6] ldr r0, [r1, 0xC] adds r0, 0x1 str r0, [r1, 0xC] cmp r0, 0x2 bgt _0802F628 _0802F620: movs r0, 0x5 bl sub_802F2E8 b _0802F6E4 _0802F628: movs r0, 0x7 bl sub_802F2E8 b _0802F6E4 _0802F630: adds r5, r6, 0 ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] cmp r0, 0 bne _0802F644 movs r0, 0x9 bl sub_802F2E8 b _0802F6E4 _0802F644: bl sub_8092178 ldr r1, [r5] strb r0, [r1, 0x9] ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] bl sub_8092158 movs r0, 0xCB bl sub_8011988 ldr r4, [r5] bl sub_8092178 ldrb r1, [r4, 0x9] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _0802F672 ldr r1, [r5] movs r0, 0x8 b _0802F676 _0802F672: ldr r1, [r6] movs r0, 0x9 _0802F676: str r0, [r1, 0x4] ldr r1, _0802F694 ldr r0, _0802F698 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] str r0, [r1] ldr r0, _0802F69C ldr r3, _0802F6A0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F6E4 .align 2, 0 _0802F694: .4byte gUnknown_202DE30 _0802F698: .4byte gUnknown_203B310 _0802F69C: .4byte gUnknown_80E0670 _0802F6A0: .4byte 0x00000101 _0802F6A4: movs r0, 0xC9 bl sub_8011988 ldr r0, _0802F6EC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldrb r0, [r1, 0x9] bl sub_80921A8 adds r1, r0, 0 ldr r4, _0802F6F0 adds r0, r4, 0 bl strcpy bl sub_8092178 lsls r0, 24 lsrs r0, 24 bl sub_80921A8 adds r1, r0, 0 adds r4, 0x50 adds r0, r4, 0 bl strcpy ldr r0, _0802F6F4 ldr r3, _0802F6F8 movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F6E4: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802F6EC: .4byte gUnknown_203B310 _0802F6F0: .4byte gUnknown_202E038 _0802F6F4: .4byte gUnknown_80E06A8 _0802F6F8: .4byte 0x00000101 thumb_func_end sub_802F358 thumb_func_start sub_802F6FC sub_802F6FC: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _0802F714 cmp r0, 0x3 bhi _0802F714 bl sub_801B72C movs r0, 0x6 bl sub_802F2E8 _0802F714: pop {r0} bx r0 thumb_func_end sub_802F6FC thumb_func_start sub_802F718 sub_802F718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802F730 ldr r0, _0802F738 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802F2E8 _0802F730: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802F738: .4byte gUnknown_203B310 thumb_func_end sub_802F718 thumb_func_start sub_802F73C sub_802F73C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 bl sub_802FCF0 lsls r0, 24 cmp r0, 0 beq _0802F75A movs r0, 0 b _0802F836 _0802F75A: ldr r4, _0802F7AC ldr r0, [r4] cmp r0, 0 bne _0802F76E movs r0, 0xAE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802F76E: ldr r0, [r4] adds r0, 0xB8 strb r6, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xF0 str r5, [r1] adds r2, r0, 0 adds r2, 0xF4 lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0xF8 adds r1, r0, r1 str r1, [r2] adds r0, 0xF8 bl sub_8006518 cmp r6, 0 beq _0802F7B4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F7B0 b _0802F7C8 .align 2, 0 _0802F7AC: .4byte gUnknown_203B314 _0802F7B0: .4byte gUnknown_80E072C _0802F7B4: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F840 _0802F7C8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r4, _0802F844 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xF4 ldr r1, [r0] movs r3, 0xAC lsls r3, 1 adds r0, r2, r3 str r0, [r1, 0x14] cmp r7, 0 beq _0802F7FC adds r0, r2, 0 adds r0, 0xF0 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 subs r3, 0x58 adds r1, r2, r3 adds r1, r0 ldr r0, [r7] str r0, [r1] _0802F7FC: ldr r0, [r4] adds r0, 0xF4 ldr r0, [r0] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0xBC bl sub_802FBF4 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F836: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802F840: .4byte gUnknown_80E0714 _0802F844: .4byte gUnknown_203B314 thumb_func_end sub_802F73C thumb_func_start sub_802F848 sub_802F848: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r1, _0802F858 ldr r0, [r1] b _0802F884 .align 2, 0 _0802F858: .4byte gUnknown_203B314 _0802F85C: ldr r2, [r1] lsls r0, r3, 1 adds r0, r2, r0 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, r4 bne _0802F880 adds r0, r2, 0 adds r0, 0xBC adds r1, r3, 0 bl sub_8013878 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 b _0802F89A _0802F880: adds r3, 0x1 adds r0, r2, 0 _0802F884: adds r0, 0xDE movs r2, 0 ldrsh r0, [r0, r2] cmp r3, r0 blt _0802F85C ldr r0, [r1] adds r0, 0xBC movs r1, 0 bl sub_8013878 movs r0, 0 _0802F89A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802F848 thumb_func_start sub_802F8A0 sub_802F8A0: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802F8BC ldr r0, _0802F8B8 ldr r0, [r0] adds r0, 0xBC bl sub_8013660 movs r0, 0 b _0802F904 .align 2, 0 _0802F8B8: .4byte gUnknown_203B314 _0802F8BC: ldr r4, _0802F8D8 ldr r0, [r4] adds r0, 0xBC bl GetKeyPress cmp r0, 0x1 beq _0802F8DC cmp r0, 0x2 bne _0802F8E6 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802F904 .align 2, 0 _0802F8D8: .4byte gUnknown_203B314 _0802F8DC: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802F904 _0802F8E6: ldr r0, [r4] adds r0, 0xBC movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802F8FA movs r0, 0 b _0802F904 _0802F8FA: bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F904: pop {r4} pop {r1} bx r1 thumb_func_end sub_802F8A0 thumb_func_start sub_802F90C sub_802F90C: ldr r0, _0802F934 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0xD4 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802F934: .4byte gUnknown_203B314 thumb_func_end sub_802F90C thumb_func_start sub_802F938 sub_802F938: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_802FBF4 adds r1, r0, 0 ldr r5, _0802F970 ldr r0, [r5] adds r2, r0, 0 adds r2, 0xDE strh r1, [r2] adds r0, 0xBC bl sub_8013984 bl sub_802F9C0 bl sub_802FA50 cmp r4, 0 beq _0802F96A ldr r0, [r5] adds r0, 0xBC bl AddMenuCursorSprite _0802F96A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F970: .4byte gUnknown_203B314 thumb_func_end sub_802F938 thumb_func_start sub_802F974 sub_802F974: push {r4,r5,lr} ldr r4, _0802F9B8 ldr r2, [r4] cmp r2, 0 beq _0802F9B2 adds r0, r2, 0 adds r0, 0xF0 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0xF8 ldr r0, _0802F9BC ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F9B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F9B8: .4byte gUnknown_203B314 _0802F9BC: .4byte gUnknown_80E06FC thumb_func_end sub_802F974 thumb_func_start sub_802F9C0 sub_802F9C0: push {r4,r5,lr} ldr r4, _0802FA44 ldr r0, [r4] movs r1, 0xAC lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r3, _0802FA48 adds r0, r3 strb r2, [r0] ldr r0, [r4] adds r3, 0x1 adds r1, r0, r3 movs r0, 0x8 strb r0, [r1] ldr r0, [r4] ldr r1, _0802FA4C adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r0, 0xD6 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r4] adds r5, r3, 0 adds r5, 0xF0 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 movs r2, 0x83 lsls r2, 1 adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0x84 lsls r0, 1 adds r3, r0 strh r2, [r3] bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FA44: .4byte gUnknown_203B314 _0802FA48: .4byte 0x00000159 _0802FA4C: .4byte 0x0000015b thumb_func_end sub_802F9C0 thumb_func_start sub_802FA50 sub_802FA50: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, _0802FB1C ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0802FB20 ldr r0, [r4] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] movs r1, 0xAD lsls r1, 1 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0xDA movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r1, r3, 0 adds r1, 0xF0 ldr r1, [r1] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FB78 movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802FACA b _0802FBD6 _0802FACA: mov r8, r4 _0802FACC: mov r2, r8 ldr r0, [r2] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 mov r3, r8 ldr r2, [r3] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r0, r6 lsls r0, r1, 1 adds r0, r2, r0 movs r3, 0 ldrsh r7, [r0, r3] adds r0, r2, 0 adds r0, 0x5C adds r0, r1 ldrb r4, [r0] cmp r4, 0 beq _0802FB28 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB24 bl xxx_call_draw_string b _0802FB46 .align 2, 0 _0802FB1C: .4byte gUnknown_203B314 _0802FB20: .4byte gUnknown_80E0744 _0802FB24: .4byte gUnknown_80E0750 _0802FB28: adds r0, r2, 0 adds r0, 0x8A adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0802FB46 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] str r4, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB74 bl xxx_call_draw_string _0802FB46: adds r0, r7, 0 bl sub_80974A0 adds r2, r0, 0 mov r1, r8 ldr r0, [r1] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x18 adds r1, r5, 0 bl xxx_call_draw_string adds r6, 0x1 mov r2, r8 ldr r0, [r2] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FACC b _0802FBD6 .align 2, 0 _0802FB74: .4byte gUnknown_80E0754 _0802FB78: movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 bge _0802FBD6 adds r5, r4, 0 _0802FB88: ldr r0, [r5] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xDA movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 lsls r0, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bl sub_80974A0 adds r2, r0, 0 ldr r0, [r5] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r6, 0x1 ldr r0, [r5] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FB88 _0802FBD6: ldr r0, _0802FBF0 ldr r0, [r0] adds r0, 0xF0 ldr r0, [r0] bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FBF0: .4byte gUnknown_203B314 thumb_func_end sub_802FA50 thumb_func_start sub_802FBF4 sub_802FBF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r8, r0 movs r1, 0 str r1, [sp] _0802FC08: ldr r1, [sp] lsls r0, r1, 16 asrs r4, r0, 16 mov r10, r4 adds r0, r4, 0 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FCCE cmp r4, 0x13 beq _0802FCCE cmp r4, 0x1D beq _0802FCCE ldr r7, _0802FC88 ldr r1, [r7] mov r0, r8 lsls r6, r0, 1 adds r0, r1, r6 strh r4, [r0] adds r1, 0x5C add r1, r8 movs r0, 0 strb r0, [r1] ldr r0, [r7] adds r0, 0x8A add r0, r8 movs r1, 0 strb r1, [r0] ldr r0, [r7] adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FCCA cmp r4, 0xD beq _0802FCCA adds r0, r4, 0 bl sub_80A270C lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 cmp r4, 0x1E bgt _0802FCA8 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _0802FCA6 cmp r4, 0x6 bne _0802FC8C movs r0, 0x13 bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x13 b _0802FCA4 .align 2, 0 _0802FC88: .4byte gUnknown_203B314 _0802FC8C: mov r0, r10 cmp r0, 0xA bne _0802FCA8 movs r0, 0x1D bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x1D _0802FCA4: strh r1, [r0] _0802FCA6: movs r5, 0x1 _0802FCA8: ldr r4, _0802FCEC ldr r0, [r4] adds r0, 0x5C add r0, r8 strb r5, [r0] cmp r5, 0 bne _0802FCCA mov r0, r9 bl sub_80969D0 cmp r0, 0 ble _0802FCCA ldr r0, [r4] adds r0, 0x8A add r0, r8 movs r1, 0x1 strb r1, [r0] _0802FCCA: movs r1, 0x1 add r8, r1 _0802FCCE: ldr r0, [sp] adds r0, 0x1 str r0, [sp] cmp r0, 0x2D ble _0802FC08 mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802FCEC: .4byte gUnknown_203B314 thumb_func_end sub_802FBF4 thumb_func_start sub_802FCF0 sub_802FCF0: push {r4,lr} movs r4, 0 _0802FCF4: lsls r0, r4, 16 asrs r0, 16 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FD06 movs r0, 0 b _0802FD0E _0802FD06: adds r4, 0x1 cmp r4, 0x2D ble _0802FCF4 movs r0, 0x1 _0802FD0E: pop {r4} pop {r1} bx r1 thumb_func_end sub_802FCF0 thumb_func_start sub_802FD14 sub_802FD14: push {r4-r6,lr} adds r5, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802FD48 movs r0, 0xCC movs r1, 0x8 bl MemoryAlloc str r0, [r4] ldr r1, _0802FD4C strh r1, [r0, 0x10] str r5, [r0] cmp r5, 0x7 bhi _0802FDC0 lsls r0, r5, 2 ldr r1, _0802FD50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FD48: .4byte gUnknown_203B318 _0802FD4C: .4byte 0x0000ffff _0802FD50: .4byte _0802FD54 .align 2, 0 _0802FD54: .4byte _0802FD74 .4byte _0802FD84 .4byte _0802FD94 .4byte _0802FDA4 .4byte _0802FDB4 .4byte _0802FDB8 .4byte _0802FDBC .4byte _0802FDC0 _0802FD74: movs r6, 0 ldr r1, _0802FD80 ldr r0, [r1] str r6, [r0, 0x4] b _0802FDCC .align 2, 0 _0802FD80: .4byte gUnknown_203B318 _0802FD84: movs r6, 0x7 ldr r2, _0802FD90 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FD90: .4byte gUnknown_203B318 _0802FD94: movs r6, 0x6 ldr r2, _0802FDA0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDA0: .4byte gUnknown_203B318 _0802FDA4: movs r6, 0x8 ldr r2, _0802FDB0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDB0: .4byte gUnknown_203B318 _0802FDB4: movs r6, 0 b _0802FDC2 _0802FDB8: movs r6, 0x7 b _0802FDC2 _0802FDBC: movs r6, 0x6 b _0802FDC2 _0802FDC0: movs r6, 0x8 _0802FDC2: ldr r2, _0802FDD8 ldr r1, [r2] movs r0, 0x1 _0802FDC8: str r0, [r1, 0x4] adds r1, r2, 0 _0802FDCC: ldr r1, [r1] ldr r0, [r1, 0x4] cmp r0, 0x1 bne _0802FDDC movs r0, 0 b _0802FDE0 .align 2, 0 _0802FDD8: .4byte gUnknown_203B318 _0802FDDC: adds r0, r1, 0 adds r0, 0x58 _0802FDE0: str r0, [r1, 0x68] ldr r0, _0802FE48 ldr r5, _0802FE4C adds r1, r5, 0 bl sub_808D8E0 ldr r4, _0802FE50 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy adds r0, r5, 0 bl sub_808DDD0 ldr r3, _0802FE54 ldr r1, [r3] str r0, [r1, 0x58] ldr r0, [r0, 0x4] str r0, [r1, 0x5C] adds r1, 0x64 movs r2, 0 strb r2, [r1] ldr r0, [r3] adds r0, 0x65 strb r2, [r0] ldr r0, [r3] adds r0, 0x66 strb r2, [r0] ldr r1, [r3] adds r2, r1, 0 adds r2, 0x60 movs r0, 0x2 strh r0, [r2] adds r1, 0x62 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_802FF04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802FE48: .4byte gUnknown_202E5D8 _0802FE4C: .4byte 0x00000141 _0802FE50: .4byte gUnknown_202E1C8 _0802FE54: .4byte gUnknown_203B318 thumb_func_end sub_802FD14 thumb_func_start sub_802FE58 sub_802FE58: push {lr} ldr r0, _0802FE70 ldr r0, [r0] ldr r0, [r0, 0x8] cmp r0, 0xD bhi _0802FEC6 lsls r0, 2 ldr r1, _0802FE74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FE70: .4byte gUnknown_203B318 _0802FE74: .4byte _0802FE78 .align 2, 0 _0802FE78: .4byte _0802FEB0 .4byte _0802FEB0 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEB6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEBC .4byte _0802FEC6 .4byte _0802FEC2 _0802FEB0: bl sub_8030208 b _0802FECA _0802FEB6: bl sub_8030258 b _0802FECA _0802FEBC: bl sub_80302A8 b _0802FECA _0802FEC2: movs r0, 0x3 b _0802FECC _0802FEC6: bl sub_80302C4 _0802FECA: movs r0, 0 _0802FECC: pop {r1} bx r1 thumb_func_end sub_802FE58 thumb_func_start sub_802FED0 sub_802FED0: ldr r0, _0802FEDC ldr r0, [r0] movs r1, 0x10 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802FEDC: .4byte gUnknown_203B318 thumb_func_end sub_802FED0 thumb_func_start sub_802FEE0 sub_802FEE0: push {r4,lr} ldr r4, _0802FF00 ldr r0, [r4] cmp r0, 0 beq _0802FEFA ldr r0, [r0, 0x58] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802FEFA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802FF00: .4byte gUnknown_203B318 thumb_func_end sub_802FEE0 thumb_func_start sub_802FF04 sub_802FF04: push {lr} ldr r1, _0802FF18 ldr r1, [r1] str r0, [r1, 0x8] bl sub_802FF1C bl sub_802FF88 pop {r0} bx r0 .align 2, 0 _0802FF18: .4byte gUnknown_203B318 thumb_func_end sub_802FF04 thumb_func_start sub_802FF1C sub_802FF1C: push {r4-r7,lr} ldr r4, _0802FF3C ldr r0, [r4] adds r0, 0x6C bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x8] cmp r0, 0x4 beq _0802FF44 cmp r0, 0x4 bgt _0802FF40 cmp r0, 0 beq _0802FF44 b _0802FF68 .align 2, 0 _0802FF3C: .4byte gUnknown_203B318 _0802FF40: cmp r0, 0xD bne _0802FF68 _0802FF44: ldr r0, _0802FF80 mov r12, r0 ldr r4, _0802FF84 movs r3, 0 movs r2, 0x3 _0802FF4E: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0x6C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802FF4E _0802FF68: bl sub_8004914 ldr r0, _0802FF80 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FF80: .4byte gUnknown_203B318 _0802FF84: .4byte gUnknown_80E0760 thumb_func_end sub_802FF1C thumb_func_start sub_802FF88 sub_802FF88: push {r4,r5,lr} sub sp, 0x18 ldr r1, _0802FFA4 ldr r0, [r1] ldr r0, [r0, 0x8] adds r5, r1, 0 cmp r0, 0xD bls _0802FF9A b _080301A0 _0802FF9A: lsls r0, 2 ldr r1, _0802FFA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FFA4: .4byte gUnknown_203B318 _0802FFA8: .4byte _0802FFAC .align 2, 0 _0802FFAC: .4byte _0802FFE4 .4byte _08030000 .4byte _08030038 .4byte _08030050 .4byte _08030068 .4byte _08030074 .4byte _080300DC .4byte _080300C4 .4byte _080300F4 .4byte _0803010C .4byte _08030148 .4byte _08030174 .4byte _08030180 .4byte _080301A0 _0802FFE4: bl sub_80301B0 ldr r2, _0802FFF8 ldr r0, _0802FFFC ldr r5, [r0] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 b _0803000E .align 2, 0 _0802FFF8: .4byte gUnknown_80D9FC8 _0802FFFC: .4byte gUnknown_203B318 _08030000: ldr r2, _08030034 ldr r5, [r5] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x4 _0803000E: adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x14] adds r3, r5, 0 adds r3, 0x18 movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] ldr r1, [r5, 0x68] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080301A0 .align 2, 0 _08030034: .4byte gUnknown_80D9FC8 _08030038: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803004C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x8 b _0803015A .align 2, 0 _0803004C: .4byte gUnknown_80D9FC8 _08030050: ldr r3, [r5] movs r0, 0x4 str r0, [r3, 0xC] ldr r2, _08030064 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0xC b _0803015A .align 2, 0 _08030064: .4byte gUnknown_80D9FC8 _08030068: movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 b _080301A0 _08030074: ldr r1, [r5] movs r0, 0xD str r0, [r1, 0xC] movs r2, 0x10 ldrsh r0, [r1, r2] bl sub_80A2740 lsls r0, 24 lsrs r0, 24 ldr r2, _080300B4 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 ldr r0, _080300B8 ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0x14] ldr r0, _080300BC add r1, sp, 0x14 bl sub_8090208 ldr r2, _080300C0 ldr r3, [r5] ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x10 b _0803015A .align 2, 0 _080300B4: .4byte 0xffffff00 _080300B8: .4byte 0xffff00ff _080300BC: .4byte gUnknown_202DF98 _080300C0: .4byte gUnknown_80D9FC8 _080300C4: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300D8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x18 b _0803015A .align 2, 0 _080300D8: .4byte gUnknown_80D9FC8 _080300DC: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300F0 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x14 b _0803015A .align 2, 0 _080300F0: .4byte gUnknown_80D9FC8 _080300F4: ldr r3, [r5] movs r0, 0x9 str r0, [r3, 0xC] ldr r2, _08030108 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C b _0803015A .align 2, 0 _08030108: .4byte gUnknown_80D9FC8 _0803010C: ldr r4, _08030138 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r0, _0803013C ldr r1, [r0] movs r0, 0xB str r0, [r1, 0xC] movs r0, 0xCB bl sub_8011988 ldr r0, _08030140 ldr r3, _08030144 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _08030138: .4byte gPlayerName _0803013C: .4byte gUnknown_203B318 _08030140: .4byte gUnknown_80E0778 _08030144: .4byte 0x00000101 _08030148: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803016C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x20 _0803015A: adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _08030170 movs r1, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _0803016C: .4byte gUnknown_80D9FC8 _08030170: .4byte 0x0000010d _08030174: movs r0, 0x1 movs r1, 0x49 movs r2, 0x1 bl sub_801B60C b _080301A0 _08030180: ldr r3, [r5] movs r0, 0x1 str r0, [r3, 0xC] ldr r2, _080301A8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x24 adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _080301AC movs r1, 0 bl sub_80141B4 _080301A0: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080301A8: .4byte gUnknown_80D9FC8 _080301AC: .4byte 0x0000010d thumb_func_end sub_802FF88 thumb_func_start sub_80301B0 sub_80301B0: push {r4,lr} ldr r4, _080301F8 ldr r1, [r4] movs r2, 0x2 str r2, [r1, 0x14] ldr r0, _080301FC str r0, [r1, 0x18] str r2, [r1, 0x1C] bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _080301D6 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x1C] movs r1, 0x1 str r1, [r0, 0x14] _080301D6: ldr r1, [r4] movs r2, 0x1 ldr r0, _08030200 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08030204 ldr r0, [r0] str r0, [r1, 0x28] str r2, [r1, 0x2C] movs r0, 0 str r0, [r1, 0x30] str r2, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _080301F8: .4byte gUnknown_203B318 _080301FC: .4byte gUnknown_80E07D8 _08030200: .4byte gUnknown_80D4970 _08030204: .4byte gUnknown_80D4934 thumb_func_end sub_80301B0 thumb_func_start sub_8030208 sub_8030208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08030250 ldr r0, _08030230 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x14] ldr r0, [sp] cmp r0, 0x2 beq _0803023A cmp r0, 0x2 bgt _08030234 cmp r0, 0x1 beq _0803024A b _08030250 .align 2, 0 _08030230: .4byte gUnknown_203B318 _08030234: cmp r0, 0x3 beq _08030242 b _08030250 _0803023A: movs r0, 0x3 bl sub_802FF04 b _08030250 _08030242: movs r0, 0xC bl sub_802FF04 b _08030250 _0803024A: movs r0, 0x2 bl sub_802FF04 _08030250: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030208 thumb_func_start sub_8030258 sub_8030258: push {lr} movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _08030288 cmp r0, 0x2 bcc _0803029A cmp r0, 0x3 bne _0803029A bl sub_8030418 ldr r1, _08030284 ldr r1, [r1] strh r0, [r1, 0x10] bl sub_8030480 movs r0, 0x5 bl sub_802FF04 b _0803029A .align 2, 0 _08030284: .4byte gUnknown_203B318 _08030288: bl sub_8030480 ldr r0, _080302A0 ldr r1, [r0] ldr r0, _080302A4 strh r0, [r1, 0x10] movs r0, 0x1 bl sub_802FF04 _0803029A: pop {r0} bx r0 .align 2, 0 _080302A0: .4byte gUnknown_203B318 _080302A4: .4byte 0x0000ffff thumb_func_end sub_8030258 thumb_func_start sub_80302A8 sub_80302A8: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _080302C0 cmp r0, 0x3 bhi _080302C0 bl sub_801B72C movs r0, 0xA bl sub_802FF04 _080302C0: pop {r0} bx r0 thumb_func_end sub_80302A8 thumb_func_start sub_80302C4 sub_80302C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080302DC ldr r0, _080302E4 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_802FF04 _080302DC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080302E4: .4byte gUnknown_203B318 thumb_func_end sub_80302C4 thumb_func_start sub_80302E8 sub_80302E8: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _08030302 movs r0, 0 b _0803039A _08030302: ldr r4, _080303A4 ldr r0, [r4] cmp r0, 0 bne _08030314 movs r0, 0xD0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _08030314: ldr r0, [r4] str r5, [r0, 0x64] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x6C adds r1, r0, r1 str r1, [r0, 0x68] adds r0, 0x6C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x64] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x6C ldr r0, _080303A8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] ldr r1, [r2, 0x68] adds r0, r2, 0 adds r0, 0xCC str r0, [r1, 0x14] cmp r6, 0 beq _08030362 ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldr r0, [r6] str r0, [r1] _08030362: ldr r0, [r4] ldr r0, [r0, 0x68] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0x30 bl sub_8030668 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80304C8 bl sub_803053C movs r0, 0x1 _0803039A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080303A4: .4byte gUnknown_203B31C _080303A8: .4byte gUnknown_80E0804 thumb_func_end sub_80302E8 thumb_func_start sub_80303AC sub_80303AC: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _080303C8 ldr r0, _080303C4 ldr r0, [r0] adds r0, 0x30 bl sub_8013660 movs r0, 0 b _08030410 .align 2, 0 _080303C4: .4byte gUnknown_203B31C _080303C8: ldr r4, _080303E4 ldr r0, [r4] adds r0, 0x30 bl GetKeyPress cmp r0, 0x1 beq _080303E8 cmp r0, 0x2 bne _080303F2 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030410 .align 2, 0 _080303E4: .4byte gUnknown_203B31C _080303E8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030410 _080303F2: ldr r0, [r4] adds r0, 0x30 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08030406 movs r0, 0 b _08030410 _08030406: bl sub_80304C8 bl sub_803053C movs r0, 0x1 _08030410: pop {r4} pop {r1} bx r1 thumb_func_end sub_80303AC thumb_func_start sub_8030418 sub_8030418: ldr r0, _08030440 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4E movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x48 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08030440: .4byte gUnknown_203B31C thumb_func_end sub_8030418 thumb_func_start sub_8030444 sub_8030444: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030668 adds r1, r0, 0 ldr r5, _0803047C ldr r0, [r5] adds r2, r0, 0 adds r2, 0x52 strh r1, [r2] adds r0, 0x30 bl sub_8013984 bl sub_80304C8 bl sub_803053C cmp r4, 0 beq _08030476 ldr r0, [r5] adds r0, 0x30 bl AddMenuCursorSprite _08030476: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803047C: .4byte gUnknown_203B31C thumb_func_end sub_8030444 thumb_func_start sub_8030480 sub_8030480: push {r4,r5,lr} ldr r4, _080304C0 ldr r2, [r4] cmp r2, 0 beq _080304BA ldr r0, [r2, 0x64] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6C ldr r0, _080304C4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080304BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080304C0: .4byte gUnknown_203B31C _080304C4: .4byte gUnknown_80E07EC thumb_func_end sub_8030480 thumb_func_start sub_80304C8 sub_80304C8: push {r4,lr} ldr r4, _08030538 ldr r0, [r4] adds r0, 0xCC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xCD strb r2, [r0] ldr r0, [r4] adds r0, 0xCE movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0xCF strb r2, [r0] ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x64] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x7C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030538: .4byte gUnknown_203B31C thumb_func_end sub_80304C8 thumb_func_start sub_803053C sub_803053C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x108 ldr r4, _08030658 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_80073B8 ldr r2, _0803065C ldr r0, [r4] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] adds r0, r3, 0 adds r0, 0xCE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x4E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x64] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 bge _0803063E mov r8, r4 _080305A2: mov r3, r8 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x4E movs r5, 0 ldrsh r2, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r9 lsls r0, 1 adds r1, r0 movs r5, 0 ldrsh r4, [r1, r5] adds r0, r4, 0 bl sub_80A2740 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl sub_80A2668 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 mov r1, r8 ldr r0, [r1] adds r0, 0x30 mov r1, r9 bl sub_8013800 adds r6, r0, 0 movs r5, 0x7 adds r0, r4, 0 bl sub_809758C lsls r0, 24 cmp r0, 0 beq _08030608 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 ldr r2, _08030660 bl xxx_call_draw_string movs r5, 0x4 _08030608: adds r0, r7, 0 bl GetDungeonName1 adds r3, r0, 0 add r0, sp, 0x8 ldr r1, _08030664 adds r2, r5, 0 bl sub_800D158 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x10 adds r1, r6, 0 add r2, sp, 0x8 bl xxx_call_draw_string movs r0, 0x1 add r9, r0 ldr r0, [r5] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080305A2 _0803063E: ldr r0, _08030658 ldr r0, [r0] ldr r0, [r0, 0x64] bl sub_80073E0 add sp, 0x108 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030658: .4byte gUnknown_203B31C _0803065C: .4byte gUnknown_80E081C _08030660: .4byte gUnknown_80E0824 _08030664: .4byte gUnknown_80E0828 thumb_func_end sub_803053C thumb_func_start sub_8030668 sub_8030668: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0803066E: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8097504 lsls r0, 24 cmp r0, 0 beq _08030690 adds r0, r4, 0 bl sub_80A26CC ldr r1, _080306A0 ldr r1, [r1] lsls r2, r6, 1 adds r1, r2 strh r0, [r1] adds r6, 0x1 _08030690: adds r5, 0x1 cmp r5, 0x16 ble _0803066E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080306A0: .4byte gUnknown_203B31C thumb_func_end sub_8030668 thumb_func_start sub_80306A4 sub_80306A4: movs r0, 0 bx lr thumb_func_end sub_80306A4 thumb_func_start sub_80306A8 sub_80306A8: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _080306C4 movs r0, 0 b _08030756 _080306C4: ldr r6, _08030760 movs r0, 0xC4 movs r1, 0x8 bl MemoryAlloc str r0, [r6] str r4, [r0, 0x20] str r5, [r0, 0x58] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x60 adds r1, r0, r1 str r1, [r0, 0x5C] adds r0, 0x60 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x58] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x60 ldr r0, _08030764 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r1, [r2, 0x5C] adds r0, r2, 0 adds r0, 0xC0 str r0, [r1, 0x14] cmp r7, 0 beq _0803071E ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x68 adds r1, r0 ldr r0, [r7] str r0, [r1] _0803071E: ldr r0, [r6] ldr r0, [r0, 0x5C] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r6] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r6] adds r4, 0x24 bl sub_8030A74 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80308A0 bl sub_803092C movs r0, 0x1 _08030756: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08030760: .4byte gUnknown_203B320 _08030764: .4byte gUnknown_80E0854 thumb_func_end sub_80306A8 thumb_func_start sub_8030768 sub_8030768: push {lr} lsls r0, 24 cmp r0, 0 bne _08030784 ldr r0, _08030780 ldr r0, [r0] adds r0, 0x24 bl sub_8013660 movs r0, 0 b _080307E6 .align 2, 0 _08030780: .4byte gUnknown_203B320 _08030784: ldr r0, _0803079C ldr r0, [r0] adds r0, 0x24 bl GetKeyPress cmp r0, 0x2 beq _080307AE cmp r0, 0x2 bgt _080307A0 cmp r0, 0x1 beq _080307B8 b _080307C2 .align 2, 0 _0803079C: .4byte gUnknown_203B320 _080307A0: cmp r0, 0x4 bne _080307C2 movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _080307E6 _080307AE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _080307E6 _080307B8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _080307E6 _080307C2: ldr r0, _080307D8 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _080307DC movs r0, 0 b _080307E6 .align 2, 0 _080307D8: .4byte gUnknown_203B320 _080307DC: bl sub_80308A0 bl sub_803092C movs r0, 0x1 _080307E6: pop {r1} bx r1 thumb_func_end sub_8030768 thumb_func_start sub_80307EC sub_80307EC: ldr r0, _0803080C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x42 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 movs r3, 0x3C ldrsh r1, [r2, r3] adds r0, r1 adds r2, r0 ldrb r0, [r2] bx lr .align 2, 0 _0803080C: .4byte gUnknown_203B320 thumb_func_end sub_80307EC thumb_func_start sub_8030810 sub_8030810: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030A74 adds r1, r0, 0 ldr r5, _08030848 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x46 strh r1, [r2] adds r0, 0x24 bl sub_8013984 bl sub_80308A0 bl sub_803092C cmp r4, 0 beq _08030842 ldr r0, [r5] adds r0, 0x24 bl AddMenuCursorSprite _08030842: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030848: .4byte gUnknown_203B320 thumb_func_end sub_8030810 thumb_func_start sub_803084C sub_803084C: push {r4,r5,lr} ldr r4, _0803088C ldr r2, [r4] cmp r2, 0 beq _08030886 ldr r0, [r2, 0x58] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x60 ldr r0, _08030890 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030886: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803088C: .4byte gUnknown_203B320 _08030890: .4byte gUnknown_80E083C thumb_func_end sub_803084C thumb_func_start sub_8030894 sub_8030894: ldr r0, _0803089C ldr r0, [r0] bx lr .align 2, 0 _0803089C: .4byte gUnknown_203B320 thumb_func_end sub_8030894 thumb_func_start sub_80308A0 sub_80308A0: push {r4,lr} ldr r4, _08030928 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x44 ldrh r1, [r1] adds r0, 0xC0 movs r2, 0 strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x42 ldrh r1, [r1] adds r0, 0xC1 strb r1, [r0] ldr r0, [r4] adds r0, 0xC2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xC3 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x3E ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x58] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x70 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030928: .4byte gUnknown_203B320 thumb_func_end sub_80308A0 thumb_func_start sub_803092C sub_803092C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x60 ldr r7, _08030A24 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_80073B8 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x42 movs r2, 0 ldrsh r4, [r0, r2] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _08030A28 ldr r0, [r1, 0x20] lsls r0, 2 adds r0, r2 ldr r2, [r0] ldr r3, [r1, 0x58] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r3, [r7] adds r0, r3, 0 adds r0, 0xC2 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 adds r0, r3, 0 adds r0, 0x42 movs r1, 0 ldrsh r2, [r0, r1] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r3, 0x58] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r6, 0 ldr r0, [r7] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 bge _08030A56 mov r9, r7 mov r8, r6 add r7, sp, 0x8 mov r5, sp adds r5, 0x4B _080309B0: mov r3, r9 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x42 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095228 adds r4, r0, 0 mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x58] str r1, [sp, 0x8] adds r0, 0x24 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] add r1, sp, 0x48 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x4A mov r2, r8 strb r2, [r0] add r0, sp, 0x4C strb r2, [r0] adds r0, r4, 0x4 str r0, [sp, 0x10] adds r0, 0x10 str r0, [sp, 0x14] ldrh r0, [r4, 0xC] strh r0, [r7, 0x10] ldrh r0, [r4, 0xC] strh r0, [r7, 0x12] strb r2, [r7, 0x14] subs r1, 0x12 movs r0, 0x5 strb r0, [r1] ldrb r0, [r4] cmp r0, 0x4 beq _08030A32 cmp r0, 0x4 bgt _08030A2C cmp r0, 0x2 bgt _08030A3E cmp r0, 0x1 blt _08030A3E movs r0, 0x1 strb r0, [r5] b _08030A42 .align 2, 0 _08030A24: .4byte gUnknown_203B320 _08030A28: .4byte gUnknown_80E086C _08030A2C: cmp r0, 0x5 beq _08030A38 b _08030A3E _08030A32: movs r0, 0x3 strb r0, [r5] b _08030A42 _08030A38: movs r0, 0x4 strb r0, [r5] b _08030A42 _08030A3E: mov r3, r8 strb r3, [r5] _08030A42: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 mov r1, r9 ldr r0, [r1] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 blt _080309B0 _08030A56: ldr r0, _08030A70 ldr r0, [r0] ldr r0, [r0, 0x58] bl sub_80073E0 add sp, 0x60 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030A70: .4byte gUnknown_203B320 thumb_func_end sub_803092C thumb_func_start sub_8030A74 sub_8030A74: push {r4,r5,lr} movs r2, 0 ldr r0, _08030A90 ldr r0, [r0] ldr r0, [r0, 0x20] cmp r0, 0x7 bls _08030A84 b _08030C0E _08030A84: lsls r0, 2 ldr r1, _08030A94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030A90: .4byte gUnknown_203B320 _08030A94: .4byte _08030A98 .align 2, 0 _08030A98: .4byte _08030AB8 .4byte _08030B10 .4byte _08030B3C .4byte _08030B94 .4byte _08030B68 .4byte _08030BC0 .4byte _08030AE4 .4byte _08030BEC _08030AB8: movs r1, 0 ldr r5, _08030ADC ldr r4, _08030AE0 movs r3, 0 _08030AC0: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _08030AD2 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AD2: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AC0 b _08030C0E .align 2, 0 _08030ADC: .4byte gUnknown_203B480 _08030AE0: .4byte gUnknown_203B320 _08030AE4: movs r1, 0 ldr r5, _08030B08 ldr r4, _08030B0C movs r3, 0 _08030AEC: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x6 bne _08030AFE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AFE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AEC b _08030C0E .align 2, 0 _08030B08: .4byte gUnknown_203B480 _08030B0C: .4byte gUnknown_203B320 _08030B10: movs r1, 0 ldr r5, _08030B34 ldr r4, _08030B38 movs r3, 0 _08030B18: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08030B2A ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B2A: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B18 b _08030C0E .align 2, 0 _08030B34: .4byte gUnknown_203B480 _08030B38: .4byte gUnknown_203B320 _08030B3C: movs r1, 0 ldr r5, _08030B60 ldr r4, _08030B64 movs r3, 0 _08030B44: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x2 bne _08030B56 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B56: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B44 b _08030C0E .align 2, 0 _08030B60: .4byte gUnknown_203B480 _08030B64: .4byte gUnknown_203B320 _08030B68: movs r1, 0 ldr r5, _08030B8C ldr r4, _08030B90 movs r3, 0 _08030B70: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08030B82 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B82: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B70 b _08030C0E .align 2, 0 _08030B8C: .4byte gUnknown_203B480 _08030B90: .4byte gUnknown_203B320 _08030B94: movs r1, 0 ldr r5, _08030BB8 ldr r4, _08030BBC movs r3, 0 _08030B9C: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x3 bne _08030BAE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BAE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B9C b _08030C0E .align 2, 0 _08030BB8: .4byte gUnknown_203B480 _08030BBC: .4byte gUnknown_203B320 _08030BC0: movs r1, 0 ldr r5, _08030BE4 ldr r4, _08030BE8 movs r3, 0 _08030BC8: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x5 bne _08030BDA ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BDA: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BC8 b _08030C0E .align 2, 0 _08030BE4: .4byte gUnknown_203B480 _08030BE8: .4byte gUnknown_203B320 _08030BEC: movs r1, 0 ldr r5, _08030C18 ldr r4, _08030C1C movs r3, 0 _08030BF4: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x7 bne _08030C06 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030C06: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BF4 _08030C0E: adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08030C18: .4byte gUnknown_203B480 _08030C1C: .4byte gUnknown_203B320 thumb_func_end sub_8030A74 thumb_func_start sub_8030C20 sub_8030C20: push {lr} cmp r0, 0x7 bls _08030C28 b _08030D34 _08030C28: lsls r0, 2 ldr r1, _08030C34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030C34: .4byte _08030C38 .align 2, 0 _08030C38: .4byte _08030C58 .4byte _08030C90 .4byte _08030CAC .4byte _08030CE4 .4byte _08030CC8 .4byte _08030D00 .4byte _08030C74 .4byte _08030D20 _08030C58: movs r1, 0 ldr r0, _08030C70 ldr r2, [r0] _08030C5E: ldrb r0, [r2] cmp r0, 0 bne _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C5E b _08030D34 .align 2, 0 _08030C70: .4byte gUnknown_203B480 _08030C74: movs r1, 0 ldr r0, _08030C8C ldr r2, [r0] _08030C7A: ldrb r0, [r2] cmp r0, 0x6 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C7A b _08030D34 .align 2, 0 _08030C8C: .4byte gUnknown_203B480 _08030C90: movs r1, 0 ldr r0, _08030CA8 ldr r2, [r0] _08030C96: ldrb r0, [r2] cmp r0, 0x1 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C96 b _08030D34 .align 2, 0 _08030CA8: .4byte gUnknown_203B480 _08030CAC: movs r1, 0 ldr r0, _08030CC4 ldr r2, [r0] _08030CB2: ldrb r0, [r2] cmp r0, 0x2 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CB2 b _08030D34 .align 2, 0 _08030CC4: .4byte gUnknown_203B480 _08030CC8: movs r1, 0 ldr r0, _08030CE0 ldr r2, [r0] _08030CCE: ldrb r0, [r2] cmp r0, 0x4 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CCE b _08030D34 .align 2, 0 _08030CE0: .4byte gUnknown_203B480 _08030CE4: movs r1, 0 ldr r0, _08030CFC ldr r2, [r0] _08030CEA: ldrb r0, [r2] cmp r0, 0x3 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CEA b _08030D34 .align 2, 0 _08030CFC: .4byte gUnknown_203B480 _08030D00: movs r1, 0 ldr r0, _08030D18 ldr r2, [r0] _08030D06: ldrb r0, [r2] cmp r0, 0x5 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D06 b _08030D34 .align 2, 0 _08030D18: .4byte gUnknown_203B480 _08030D1C: movs r0, 0 b _08030D36 _08030D20: movs r1, 0 ldr r0, _08030D3C ldr r2, [r0] _08030D26: ldrb r0, [r2] cmp r0, 0x7 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D26 _08030D34: movs r0, 0x1 _08030D36: pop {r1} bx r1 .align 2, 0 _08030D3C: .4byte gUnknown_203B480 thumb_func_end sub_8030C20 thumb_func_start sub_8030D40 sub_8030D40: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _08030D98 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] bl sub_801317C ldr r0, [r6] str r5, [r0, 0x10] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08030D9C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8030DD4 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08030D98: .4byte gUnknown_203B324 _08030D9C: .4byte gUnknown_80E091C thumb_func_end sub_8030D40 thumb_func_start sub_8030DA0 sub_8030DA0: push {lr} ldr r0, _08030DC0 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08030DC4 cmp r0, 0x2 bne _08030DCE movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030DD0 .align 2, 0 _08030DC0: .4byte gUnknown_203B324 _08030DC4: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030DD0 _08030DCE: movs r0, 0 _08030DD0: pop {r1} bx r1 thumb_func_end sub_8030DA0 thumb_func_start sub_8030DD4 sub_8030DD4: push {lr} bl sub_8030E2C bl sub_8030E48 pop {r0} bx r0 thumb_func_end sub_8030DD4 thumb_func_start sub_8030DE4 sub_8030DE4: push {r4,r5,lr} ldr r4, _08030E24 ldr r2, [r4] cmp r2, 0 beq _08030E1E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08030E28 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030E1E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030E24: .4byte gUnknown_203B324 _08030E28: .4byte gUnknown_80E0900 thumb_func_end sub_8030DE4 thumb_func_start sub_8030E2C sub_8030E2C: push {lr} bl sub_8004914 ldr r0, _08030E44 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08030E44: .4byte gUnknown_203B324 thumb_func_end sub_8030E2C thumb_func_start sub_8030E48 sub_8030E48: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x15C ldr r3, _08030EA8 ldr r4, _08030EAC ldr r2, [r4] ldrb r1, [r2, 0xC] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r1, [r3] adds r5, r1, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0x10] str r0, [sp, 0x4] add r1, sp, 0x44 movs r2, 0 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x46 strb r2, [r0] add r0, sp, 0x48 strb r2, [r0] adds r0, r5, 0x4 str r0, [sp, 0xC] adds r0, 0x10 str r0, [sp, 0x10] add r1, sp, 0x4 ldrh r0, [r5, 0xC] strh r0, [r1, 0x10] ldrh r0, [r5, 0xC] strh r0, [r1, 0x12] adds r0, r1, 0 strb r2, [r0, 0x14] adds r2, r5, 0 adds r2, 0x22 ldrb r0, [r2] cmp r0, 0 bne _08030EB0 adds r1, 0x2E movs r0, 0x5 strb r0, [r1] b _08030EBE .align 2, 0 _08030EA8: .4byte gUnknown_203B480 _08030EAC: .4byte gUnknown_203B324 _08030EB0: mov r1, sp adds r1, 0x32 movs r0, 0x2 strb r0, [r1] ldrb r1, [r2] add r0, sp, 0x38 strb r1, [r0] _08030EBE: ldrb r0, [r5] cmp r0, 0x2 beq _08030ED2 cmp r0, 0x2 ble _08030EE2 cmp r0, 0x4 beq _08030ED2 cmp r0, 0x5 beq _08030EDA b _08030EE2 _08030ED2: mov r1, sp adds r1, 0x45 movs r0, 0xA b _08030EE8 _08030EDA: mov r1, sp adds r1, 0x45 movs r0, 0xB b _08030EE8 _08030EE2: mov r1, sp adds r1, 0x45 movs r0, 0x9 _08030EE8: strb r0, [r1] add r0, sp, 0x4 bl sub_803B98C ldrh r0, [r5, 0x10] ldr r1, _08030F48 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r2, _08030F4C ldr r5, _08030F50 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA movs r1, 0x68 bl xxx_call_draw_string add r6, sp, 0x5C ldr r1, _08030F54 adds r0, r6, 0 adds r2, r4, 0 bl sub_800D158 ldr r0, [r5] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x44 movs r1, 0x68 adds r2, r6, 0 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x15C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08030F48: .4byte 0x00002710 _08030F4C: .4byte gUnknown_80E0934 _08030F50: .4byte gUnknown_203B324 _08030F54: .4byte gUnknown_80E0938 thumb_func_end sub_8030E48 thumb_func_start sub_8030F58 sub_8030F58: push {r4-r6,lr} adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08030FF4 ldr r0, [r5] cmp r0, 0 bne _08030F88 movs r4, 0x8E lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08030F88: ldr r0, [r5] movs r1, 0x8C lsls r1, 1 adds r0, r1 str r6, [r0] movs r0, 0x98 lsls r0, 1 bl sub_808DDD0 ldr r2, [r5] movs r4, 0x84 lsls r4, 1 adds r1, r2, r4 str r0, [r1] movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] movs r0, 0x8A lsls r0, 1 adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08030FF8 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r2, [r5] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x4 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_8030C20 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031038 cmp r6, 0x2 beq _08030FFC cmp r6, 0x4 beq _08031014 b _08031022 .align 2, 0 _08030FF4: .4byte gUnknown_203B328 _08030FF8: .4byte 0x00000115 _08030FFC: ldr r0, _0803100C ldr r2, [r5] adds r2, r4 ldr r3, _08031010 movs r1, 0 bl sub_80141B4 b _08031022 .align 2, 0 _0803100C: .4byte gUnknown_80E09D8 _08031010: .4byte 0x00000101 _08031014: ldr r0, _0803102C ldr r2, [r5] adds r2, r4 ldr r3, _08031030 movs r1, 0 bl sub_80141B4 _08031022: ldr r0, _08031034 ldr r1, [r0] movs r0, 0x5 str r0, [r1] b _08031048 .align 2, 0 _0803102C: .4byte gUnknown_80E0A0C _08031030: .4byte 0x00000101 _08031034: .4byte gUnknown_203B328 _08031038: ldr r0, [r5] str r1, [r0] adds r0, r6, 0 movs r1, 0 movs r2, 0 movs r3, 0x8 bl sub_80306A8 _08031048: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8030F58 thumb_func_start sub_8031050 sub_8031050: push {lr} ldr r1, _08031068 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080310AC lsls r0, 2 ldr r1, _0803106C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031068: .4byte gUnknown_203B328 _0803106C: .4byte _08031070 .align 2, 0 _08031070: .4byte _0803108C .4byte _08031092 .4byte _08031098 .4byte _08031098 .4byte _080310A2 .4byte _080310A8 .4byte _080310A8 _0803108C: bl sub_8031300 b _080310AC _08031092: bl sub_803136C b _080310AC _08031098: ldr r0, [r2] ldr r0, [r0] bl sub_80313D8 b _080310AC _080310A2: bl sub_8031498 b _080310AC _080310A8: movs r0, 0x3 b _080310AE _080310AC: movs r0, 0 _080310AE: pop {r1} bx r1 thumb_func_end sub_8031050 thumb_func_start sub_80310B4 sub_80310B4: push {r4,lr} bl sub_803084C ldr r4, _080310E0 ldr r0, [r4] cmp r0, 0 beq _080310D8 movs r1, 0x84 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080310D8: pop {r4} pop {r0} bx r0 .align 2, 0 _080310E0: .4byte gUnknown_203B328 thumb_func_end sub_80310B4 thumb_func_start sub_80310E4 sub_80310E4: push {lr} ldr r1, _080310F8 ldr r1, [r1] str r0, [r1] bl sub_80310FC bl sub_8031258 pop {r0} bx r0 .align 2, 0 _080310F8: .4byte gUnknown_203B328 thumb_func_end sub_80310E4 thumb_func_start sub_80310FC sub_80310FC: push {r4-r6,lr} ldr r4, _0803111C ldr r0, [r4] adds r0, 0xA8 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x6 bls _08031112 b _0803122C _08031112: lsls r0, 2 ldr r1, _08031120 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803111C: .4byte gUnknown_203B328 _08031120: .4byte _08031124 .align 2, 0 _08031124: .4byte _08031140 .4byte _08031178 .4byte _080311C0 .4byte _080311C0 .4byte _080311E8 .4byte _0803122C .4byte _0803122C _08031140: ldr r3, _08031170 ldr r1, [r3] ldr r2, _08031174 adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r3,r4} stm r0!, {r1,r3,r4} ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} b _0803123A .align 2, 0 _08031170: .4byte gUnknown_203B328 _08031174: .4byte gUnknown_80E0990 _08031178: ldr r3, _080311B0 ldr r1, [r3] adds r1, 0xC0 ldr r0, _080311B4 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldr r1, [r3] ldr r2, _080311B8 adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r4-r6} stm r0!, {r4-r6} ldr r0, [r3] adds r0, 0xC0 ldr r1, _080311BC bl sub_8012CAC b _0803123A .align 2, 0 _080311B0: .4byte gUnknown_203B328 _080311B4: .4byte gUnknown_80E09A8 _080311B8: .4byte gUnknown_80E0990 _080311BC: .4byte gUnknown_80E0968 _080311C0: ldr r2, _080311DC ldr r1, [r2] adds r1, 0xD8 ldr r0, _080311E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} ldr r0, [r2] adds r0, 0xD8 ldr r1, _080311E4 bl sub_8012CAC b _0803123A .align 2, 0 _080311DC: .4byte gUnknown_203B328 _080311E0: .4byte gUnknown_80E09C0 _080311E4: .4byte gUnknown_80E0948 _080311E8: ldr r3, _08031224 ldr r1, [r3] ldr r2, _08031228 adds r1, 0xA8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r3-r5} stm r0!, {r3-r5} b _0803123A .align 2, 0 _08031224: .4byte gUnknown_203B328 _08031228: .4byte gUnknown_80E0990 _0803122C: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0803123A: bl sub_8004914 ldr r0, _08031254 ldr r0, [r0] adds r0, 0xA8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031254: .4byte gUnknown_203B328 thumb_func_end sub_80310FC thumb_func_start sub_8031258 sub_8031258: push {r4,lr} sub sp, 0x8 ldr r1, _08031274 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080312F6 lsls r0, 2 ldr r1, _08031278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031274: .4byte gUnknown_203B328 _08031278: .4byte _0803127C .align 2, 0 _0803127C: .4byte _08031298 .4byte _080312A0 .4byte _080312BC .4byte _080312BC .4byte _080312EC .4byte _080312F6 .4byte _080312F6 _08031298: movs r0, 0x1 bl sub_8030810 b _080312F6 _080312A0: bl sub_803092C ldr r0, _080312B4 ldr r0, [r0] adds r0, 0x8 ldr r1, _080312B8 movs r2, 0x4 str r2, [sp] movs r2, 0x1 b _080312D8 .align 2, 0 _080312B4: .4byte gUnknown_203B328 _080312B8: .4byte gUnknown_80E0968 _080312BC: bl sub_803092C ldr r4, _080312E4 ldr r0, [r4] adds r0, 0x8 movs r1, 0 bl sub_8012EA4 ldr r0, [r4] adds r0, 0x58 ldr r1, _080312E8 movs r2, 0x3 str r2, [sp] movs r2, 0x2 _080312D8: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _080312F6 .align 2, 0 _080312E4: .4byte gUnknown_203B328 _080312E8: .4byte gUnknown_80E0948 _080312EC: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x3 bl sub_8030D40 _080312F6: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8031258 thumb_func_start sub_8031300 sub_8031300: push {lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x4 bhi _08031366 lsls r0, 2 ldr r1, _08031318 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031318: .4byte _0803131C .align 2, 0 _0803131C: .4byte _08031366 .4byte _08031366 .4byte _08031360 .4byte _08031330 .4byte _08031348 _08031330: bl sub_80307EC ldr r1, _08031344 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x1 bl sub_80310E4 b _08031366 .align 2, 0 _08031344: .4byte gUnknown_203B328 _08031348: bl sub_80307EC ldr r1, _0803135C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_80310E4 b _08031366 .align 2, 0 _0803135C: .4byte gUnknown_203B328 _08031360: movs r0, 0x6 bl sub_80310E4 _08031366: pop {r0} bx r0 thumb_func_end sub_8031300 thumb_func_start sub_803136C sub_803136C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _080313A4 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031392 ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _08031392: ldr r0, [sp] cmp r0, 0x4 beq _080313C2 cmp r0, 0x4 bgt _080313A8 cmp r0, 0x1 beq _080313B2 b _080313D0 .align 2, 0 _080313A4: .4byte gUnknown_203B328 _080313A8: cmp r0, 0x5 beq _080313CA cmp r0, 0x6 beq _080313BA b _080313D0 _080313B2: movs r0, 0 bl sub_80310E4 b _080313D0 _080313BA: movs r0, 0x3 bl sub_80310E4 b _080313D0 _080313C2: movs r0, 0x2 bl sub_80310E4 b _080313D0 _080313CA: movs r0, 0x4 bl sub_80310E4 _080313D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803136C thumb_func_start sub_80313D8 sub_80313D8: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _08031418 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031408 ldr r0, [r4] adds r0, 0x58 mov r1, sp bl sub_8013114 _08031408: ldr r0, [sp] cmp r0, 0x2 beq _08031428 cmp r0, 0x2 bgt _0803141C cmp r0, 0x1 beq _08031420 b _0803148E .align 2, 0 _08031418: .4byte gUnknown_203B328 _0803141C: cmp r0, 0x3 bne _0803148E _08031420: movs r0, 0 bl sub_80310E4 b _0803148E _08031428: cmp r5, 0x2 beq _08031432 cmp r5, 0x3 beq _0803143C b _0803145A _08031432: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_8095240 b _0803145A _0803143C: ldr r4, _08031480 movs r3, 0 movs r1, 0 movs r2, 0x1F _08031444: ldr r0, [r4] adds r0, r1 strb r3, [r0] ldr r0, [r4] adds r0, r1 adds r0, 0x22 strb r3, [r0] adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _08031444 _0803145A: ldr r0, _08031484 ldr r0, [r0] movs r1, 0x8C lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x2 beq _0803146E cmp r0, 0x4 bne _0803148E _0803146E: bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08031488 movs r0, 0x5 bl sub_80310E4 b _0803148E .align 2, 0 _08031480: .4byte gUnknown_203B480 _08031484: .4byte gUnknown_203B328 _08031488: movs r0, 0 bl sub_80310E4 _0803148E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80313D8 thumb_func_start sub_8031498 sub_8031498: push {lr} bl sub_8030DA0 cmp r0, 0x1 bls _080314B0 cmp r0, 0x3 bhi _080314B0 bl sub_8030DE4 movs r0, 0 bl sub_80310E4 _080314B0: pop {r0} bx r0 thumb_func_end sub_8031498 thumb_func_start sub_80314B4 sub_80314B4: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r6, _08031534 movs r0, 0x18 movs r1, 0x8 bl MemoryAlloc str r0, [r6] ldr r0, _08031538 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803153C bl strcpy ldr r0, [r6] movs r4, 0 str r4, [r0, 0x8] str r4, [r0, 0xC] cmp r5, 0 beq _0803151E adds r0, r5, 0 bl sub_808DDD0 ldr r1, [r6] str r0, [r1, 0x8] strb r4, [r1, 0x14] ldr r0, [r6] strb r4, [r0, 0x15] ldr r0, [r6] strb r4, [r0, 0x16] ldr r1, [r6] movs r0, 0x2 strh r0, [r1, 0x10] movs r0, 0x8 strh r0, [r1, 0x12] ldr r0, [r1, 0x8] cmp r0, 0 beq _0803151E ldr r0, [r0, 0x4] str r0, [r1, 0xC] _0803151E: ldr r0, _08031534 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r0, 0x1 bl sub_80317C0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031534: .4byte gUnknown_203B32C _08031538: .4byte gUnknown_202E5D8 _0803153C: .4byte gUnknown_202DF98 thumb_func_end sub_80314B4 thumb_func_start sub_8031540 sub_8031540: push {lr} ldr r0, _08031558 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x9 bhi _080315BA lsls r0, 2 ldr r1, _0803155C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031558: .4byte gUnknown_203B32C _0803155C: .4byte _08031560 .align 2, 0 _08031560: .4byte _080315AC .4byte _08031588 .4byte _08031588 .4byte _0803158E .4byte _08031594 .4byte _0803159A .4byte _080315A0 .4byte _080315A6 .4byte _080315B0 .4byte _080315B6 _08031588: bl sub_80317D8 b _080315BA _0803158E: bl sub_8031848 b _080315BA _08031594: bl sub_8031864 b _080315BA _0803159A: bl sub_80318D0 b _080315BA _080315A0: bl sub_80318EC b _080315BA _080315A6: bl sub_803192C b _080315BA _080315AC: movs r0, 0x3 b _080315BC _080315B0: bl sub_8031948 b _080315BA _080315B6: bl sub_8031988 _080315BA: movs r0, 0 _080315BC: pop {r1} bx r1 thumb_func_end sub_8031540 thumb_func_start sub_80315C0 sub_80315C0: push {r4,lr} ldr r4, _080315E4 ldr r0, [r4] cmp r0, 0 beq _080315DE ldr r0, [r0, 0x8] cmp r0, 0 beq _080315D4 bl CloseFile _080315D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080315DE: pop {r4} pop {r0} bx r0 .align 2, 0 _080315E4: .4byte gUnknown_203B32C thumb_func_end sub_80315C0 thumb_func_start nullsub_39 nullsub_39: bx lr thumb_func_end nullsub_39 thumb_func_start sub_80315EC sub_80315EC: push {r4,r5,lr} sub sp, 0x14 movs r5, 0 ldr r0, _08031618 ldr r2, [r0] ldr r1, [r2, 0x8] adds r3, r0, 0 cmp r1, 0 beq _08031602 adds r5, r2, 0 adds r5, 0x8 _08031602: ldrb r0, [r2] subs r0, 0x1 cmp r0, 0x8 bls _0803160C b _080317B0 _0803160C: lsls r0, 2 ldr r1, _0803161C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031618: .4byte gUnknown_203B32C _0803161C: .4byte _08031620 .align 2, 0 _08031620: .4byte _08031700 .4byte _08031714 .4byte _08031728 .4byte _08031758 .4byte _08031780 .4byte _08031694 .4byte _080316A8 .4byte _08031644 .4byte _08031658 _08031644: ldr r0, _08031650 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031654 b _08031760 .align 2, 0 _08031650: .4byte gUnknown_80E0C4C _08031654: .4byte gUnknown_80E0BD4 _08031658: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x10 beq _0803167C cmp r0, 0x10 bgt _0803166A cmp r0, 0xF beq _08031674 b _080317B0 _0803166A: cmp r0, 0x11 beq _08031684 cmp r0, 0x12 beq _0803168C b _080317B0 _08031674: ldr r0, _08031678 b _08031790 .align 2, 0 _08031678: .4byte gUnknown_80E0C70 _0803167C: ldr r0, _08031680 b _08031790 .align 2, 0 _08031680: .4byte gUnknown_80E0DD0 _08031684: ldr r0, _08031688 b _08031790 .align 2, 0 _08031688: .4byte gUnknown_80E0ED8 _0803168C: ldr r0, _08031690 b _08031790 .align 2, 0 _08031690: .4byte gUnknown_80E10C8 _08031694: ldr r0, _080316A0 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _080316A4 b _08031760 .align 2, 0 _080316A0: .4byte gUnknown_80E0C4C _080316A4: .4byte gUnknown_80E0B3C _080316A8: ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0xA cmp r0, 0x4 bls _080316B4 b _080317B0 _080316B4: lsls r0, 2 ldr r1, _080316C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080316C0: .4byte _080316C4 .align 2, 0 _080316C4: .4byte _080316D8 .4byte _080316E0 .4byte _080316F0 .4byte _080316E8 .4byte _080316F8 _080316D8: ldr r0, _080316DC b _08031790 .align 2, 0 _080316DC: .4byte gUnknown_80E120C _080316E0: ldr r0, _080316E4 b _08031790 .align 2, 0 _080316E4: .4byte gUnknown_80E136C _080316E8: ldr r0, _080316EC b _08031790 .align 2, 0 _080316EC: .4byte gUnknown_80E1420 _080316F0: ldr r0, _080316F4 b _08031790 .align 2, 0 _080316F4: .4byte gUnknown_80E157C _080316F8: ldr r0, _080316FC b _08031790 .align 2, 0 _080316FC: .4byte gUnknown_80E169C _08031700: ldr r0, _0803170C ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031710 b _08031760 .align 2, 0 _0803170C: .4byte gUnknown_80E17C8 _08031710: .4byte gUnknown_80E0A48 _08031714: ldr r0, _08031720 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031724 b _08031760 .align 2, 0 _08031720: .4byte gUnknown_80E183C _08031724: .4byte gUnknown_80E0A48 _08031728: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x1 beq _08031748 cmp r0, 0x1 bgt _0803173A cmp r0, 0 beq _08031740 b _080317B0 _0803173A: cmp r0, 0x2 beq _08031750 b _080317B0 _08031740: ldr r0, _08031744 b _08031790 .align 2, 0 _08031744: .4byte gUnknown_80E1868 _08031748: ldr r0, _0803174C b _08031790 .align 2, 0 _0803174C: .4byte gUnknown_80E1A30 _08031750: ldr r0, _08031754 b _08031790 .align 2, 0 _08031754: .4byte gUnknown_80E1AD8 _08031758: ldr r0, _08031778 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _0803177C _08031760: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080317B0 .align 2, 0 _08031778: .4byte gUnknown_80E0C4C _0803177C: .4byte gUnknown_80E0ABC _08031780: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x6 beq _0803178E cmp r0, 0x9 beq _080317A4 b _080317B0 _0803178E: ldr r0, _0803179C _08031790: ldr r3, _080317A0 movs r1, 0 adds r2, r5, 0 bl sub_80141B4 b _080317B0 .align 2, 0 _0803179C: .4byte gUnknown_80E1B88 _080317A0: .4byte 0x0000010d _080317A4: ldr r0, _080317B8 ldr r3, _080317BC movs r1, 0 adds r2, r5, 0 bl sub_80141B4 _080317B0: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080317B8: .4byte gUnknown_80E1D84 _080317BC: .4byte 0x0000010d thumb_func_end sub_80315EC thumb_func_start sub_80317C0 sub_80317C0: push {lr} ldr r1, _080317D4 ldr r1, [r1] strb r0, [r1] bl nullsub_39 bl sub_80315EC pop {r0} bx r0 .align 2, 0 _080317D4: .4byte gUnknown_203B32C thumb_func_end sub_80317C0 thumb_func_start sub_80317D8 sub_80317D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803183C ldr r2, [sp] cmp r2, 0x5 bhi _0803183C lsls r0, r2, 2 ldr r1, _080317F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080317F8: .4byte _080317FC .align 2, 0 _080317FC: .4byte _08031830 .4byte _08031830 .4byte _08031830 .4byte _0803181C .4byte _08031814 .4byte _08031814 _08031814: movs r0, 0 bl sub_80317C0 b _0803183C _0803181C: ldr r0, _0803182C ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x4 bl sub_80317C0 b _0803183C .align 2, 0 _0803182C: .4byte gUnknown_203B32C _08031830: ldr r0, _08031844 ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x3 bl sub_80317C0 _0803183C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031844: .4byte gUnknown_203B32C thumb_func_end sub_80317D8 thumb_func_start sub_8031848 sub_8031848: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803185C movs r0, 0x2 bl sub_80317C0 _0803185C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031848 thumb_func_start sub_8031864 sub_8031864: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318C4 ldr r0, [sp] subs r1, r0, 0x5 adds r2, r0, 0 cmp r1, 0x4 bhi _080318C4 lsls r0, r1, 2 ldr r1, _08031888 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031888: .4byte _0803188C .align 2, 0 _0803188C: .4byte _080318A0 .4byte _080318B8 .4byte _080318A8 .4byte _080318B0 .4byte _080318B8 _080318A0: movs r0, 0x2 bl sub_80317C0 b _080318C4 _080318A8: movs r0, 0x6 bl sub_80317C0 b _080318C4 _080318B0: movs r0, 0x8 bl sub_80317C0 b _080318C4 _080318B8: ldr r0, _080318CC ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x5 bl sub_80317C0 _080318C4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080318CC: .4byte gUnknown_203B32C thumb_func_end sub_8031864 thumb_func_start sub_80318D0 sub_80318D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318E4 movs r0, 0x4 bl sub_80317C0 _080318E4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80318D0 thumb_func_start sub_80318EC sub_80318EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031920 ldr r1, [sp] cmp r1, 0x5 bne _08031908 movs r0, 0x4 bl sub_80317C0 b _08031920 _08031908: cmp r1, 0x5 blt _08031920 cmp r1, 0xE bgt _08031920 cmp r1, 0xA blt _08031920 ldr r0, _08031928 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x7 bl sub_80317C0 _08031920: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031928: .4byte gUnknown_203B32C thumb_func_end sub_80318EC thumb_func_start sub_803192C sub_803192C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031940 movs r0, 0x6 bl sub_80317C0 _08031940: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803192C thumb_func_start sub_8031948 sub_8031948: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803197C ldr r1, [sp] cmp r1, 0x5 bne _08031964 movs r0, 0x4 bl sub_80317C0 b _0803197C _08031964: cmp r1, 0x5 blt _0803197C cmp r1, 0x12 bgt _0803197C cmp r1, 0xF blt _0803197C ldr r0, _08031984 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x9 bl sub_80317C0 _0803197C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031984: .4byte gUnknown_203B32C thumb_func_end sub_8031948 thumb_func_start sub_8031988 sub_8031988: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803199C movs r0, 0x8 bl sub_80317C0 _0803199C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031988 thumb_func_start sub_80319A4 sub_80319A4: push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _080319F4 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] strb r5, [r0, 0xD] ldr r0, [r6] bl sub_801317C ldr r1, [r6] mov r0, r8 str r0, [r1, 0x10] lsls r0, 1 add r0, r8 lsls r0, 3 adds r0, 0x18 adds r0, r1, r0 str r0, [r1, 0x14] bl sub_8031A2C movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080319F4: .4byte gUnknown_203B330 thumb_func_end sub_80319A4 thumb_func_start sub_80319F8 sub_80319F8: push {lr} ldr r0, _08031A18 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031A1C cmp r0, 0x2 bne _08031A26 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031A28 .align 2, 0 _08031A18: .4byte gUnknown_203B330 _08031A1C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031A28 _08031A26: movs r0, 0 _08031A28: pop {r1} bx r1 thumb_func_end sub_80319F8 thumb_func_start sub_8031A2C sub_8031A2C: push {lr} bl sub_8031A84 bl sub_8031AE8 pop {r0} bx r0 thumb_func_end sub_8031A2C thumb_func_start sub_8031A3C sub_8031A3C: push {r4,r5,lr} ldr r4, _08031A7C ldr r2, [r4] cmp r2, 0 beq _08031A76 ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031A80 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031A76: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031A7C: .4byte gUnknown_203B330 _08031A80: .4byte gUnknown_80E1EFC thumb_func_end sub_8031A3C thumb_func_start sub_8031A84 sub_8031A84: push {r4,r5,lr} ldr r4, _08031AE0 ldr r0, [r4] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031AE4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r1, [r4] ldrb r0, [r1, 0xC] cmp r0, 0x2 bne _08031AC6 ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031ABE movs r1, 0x1 _08031ABE: ldr r0, [r4] ldr r0, [r0, 0x14] bl sub_8012D08 _08031AC6: bl sub_8004914 ldr r0, _08031AE0 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031AE0: .4byte gUnknown_203B330 _08031AE4: .4byte gUnknown_80E1F18 thumb_func_end sub_8031A84 thumb_func_start sub_8031AE8 sub_8031AE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xDC ldr r7, _08031B24 ldr r0, [r7] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r2, _08031B28 ldr r0, [r7] ldr r3, [r0, 0x10] movs r6, 0 str r6, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r7] ldrb r0, [r1, 0xC] cmp r0, 0x1 beq _08031B2C cmp r0, 0x1 bgt _08031B1E b _08031CD4 _08031B1E: cmp r0, 0x2 beq _08031B94 b _08031CD4 .align 2, 0 _08031B24: .4byte gUnknown_203B330 _08031B28: .4byte gUnknown_80E1F30 _08031B2C: add r4, sp, 0x68 adds r0, r4, 0 bl sub_8099394 ldrb r0, [r4] bl sub_8095228 adds r5, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x10] movs r0, 0xA movs r1, 0x10 movs r2, 0x3 bl sub_803B6B0 ldr r1, _08031B8C ldrb r2, [r5, 0x5] add r0, sp, 0x4 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x15 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string ldr r4, _08031B90 movs r1, 0xC ldrsh r0, [r5, r1] bl sub_808D994 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r4, 0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x28 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031B8C: .4byte gUnknown_80E1F3C _08031B90: .4byte gUnknown_80E1F40 _08031B94: ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031BB0 ldr r2, _08031BAC ldr r0, [r7] ldr r3, [r0, 0x10] str r1, [sp] b _08031D2C .align 2, 0 _08031BAC: .4byte gUnknown_80E1F54 _08031BB0: movs r6, 0x10 movs r2, 0 mov r10, r2 mov r8, r2 ldr r0, _08031C28 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD8] _08031BC2: mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 bl sub_8096AB4 adds r4, r0, 0 ldr r1, [r7] ldrb r0, [r4, 0x4] ldrb r2, [r1, 0xD] cmp r0, r2 bne _08031CC2 ldrb r0, [r4] cmp r0, 0 beq _08031CC2 cmp r0, 0x5 beq _08031CC2 cmp r0, 0x7 beq _08031CC2 ldr r3, [r1, 0x10] movs r0, 0xA adds r1, r6, 0 movs r2, 0x3 bl sub_803B6B0 ldrb r0, [r4, 0x1] add r5, sp, 0x6C cmp r0, 0x3 beq _08031C16 ldrb r2, [r4, 0x5] ldr r0, [sp, 0xD8] ldr r1, _08031C2C bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x15 adds r1, r6, 0 ldr r2, [sp, 0xD8] bl xxx_call_draw_string _08031C16: ldrb r0, [r4, 0x1] cmp r0, 0x3 beq _08031C58 cmp r0, 0x3 bgt _08031C30 cmp r0, 0x2 beq _08031C70 b _08031C9C .align 2, 0 _08031C28: .4byte gUnknown_202DE58 _08031C2C: .4byte gUnknown_80E1F3C _08031C30: cmp r0, 0x4 bne _08031C9C ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C54 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r1, r8 str r1, [sp] b _08031C8A .align 2, 0 _08031C54: .4byte gUnknown_80E1F60 _08031C58: ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C6C mov r2, r9 b _08031C7E .align 2, 0 _08031C6C: .4byte gUnknown_80E1F70 _08031C70: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031C98 _08031C7E: bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] _08031C8A: movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string b _08031CC0 .align 2, 0 _08031C98: .4byte gUnknown_80E1F80 _08031C9C: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031CD0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string _08031CC0: adds r6, 0xC _08031CC2: movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x7 bgt _08031CCE b _08031BC2 _08031CCE: b _08031D4E .align 2, 0 _08031CD0: .4byte gUnknown_80E1F40 _08031CD4: add r0, sp, 0xD0 mov r4, sp adds r4, 0xD2 adds r1, r4, 0 bl sub_80992E0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08031D04 movs r2, 0 ldrsh r0, [r4, r2] bl sub_80974C4 adds r2, r0, 0 ldr r0, _08031D00 ldr r0, [r0] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] b _08031D2C .align 2, 0 _08031D00: .4byte gUnknown_203B330 _08031D04: add r4, sp, 0xD4 adds r0, r4, 0 bl sub_8099360 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031D3C ldrb r0, [r4] bl sub_80A2688 lsls r0, 16 asrs r0, 16 bl sub_80975DC adds r2, r0, 0 ldr r0, _08031D38 ldr r0, [r0] ldr r3, [r0, 0x10] str r5, [sp] _08031D2C: movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031D38: .4byte gUnknown_203B330 _08031D3C: ldr r2, _08031D68 ldr r0, _08031D6C ldr r0, [r0] ldr r3, [r0, 0x10] str r1, [sp] movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string _08031D4E: ldr r0, _08031D6C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0xDC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031D68: .4byte gUnknown_80E1F94 _08031D6C: .4byte gUnknown_203B330 thumb_func_end sub_8031AE8 thumb_func_start sub_8031D70 sub_8031D70: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, _08031DC4 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r5] stm r0!, {r6} bl sub_801317C ldr r0, [r5] str r4, [r0, 0x10] lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031DC8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8031E00 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031DC4: .4byte gUnknown_203B334 _08031DC8: .4byte gUnknown_80E1FC4 thumb_func_end sub_8031D70 thumb_func_start sub_8031DCC sub_8031DCC: push {lr} ldr r0, _08031DEC ldr r1, [r0] adds r0, r1, 0x4 ldr r1, [r1, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031DF0 cmp r0, 0x2 bne _08031DFA movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031DFC .align 2, 0 _08031DEC: .4byte gUnknown_203B334 _08031DF0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031DFC _08031DFA: movs r0, 0 _08031DFC: pop {r1} bx r1 thumb_func_end sub_8031DCC thumb_func_start sub_8031E00 sub_8031E00: push {lr} bl sub_8031E58 bl sub_8031E74 pop {r0} bx r0 thumb_func_end sub_8031E00 thumb_func_start sub_8031E10 sub_8031E10: push {r4,r5,lr} ldr r4, _08031E50 ldr r2, [r4] cmp r2, 0 beq _08031E4A ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031E54 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031E4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031E50: .4byte gUnknown_203B334 _08031E54: .4byte gUnknown_80E1FA8 thumb_func_end sub_8031E10 thumb_func_start sub_8031E58 sub_8031E58: push {lr} bl sub_8004914 ldr r0, _08031E70 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08031E70: .4byte gUnknown_203B334 thumb_func_end sub_8031E58 thumb_func_start sub_8031E74 sub_8031E74: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C ldr r3, _08031EC0 ldr r5, _08031EC4 ldr r2, [r5] ldr r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r4, [r3] adds r4, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r2, _08031EC8 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] movs r0, 0x14 movs r1, 0 bl xxx_call_draw_string add r0, sp, 0x4 adds r1, r4, 0 bl sub_803D2C0 movs r7, 0 mov r8, r5 _08031EB2: cmp r7, 0x4 ble _08031ED0 cmp r7, 0xC bgt _08031ECC movs r6, 0x6 movs r5, 0x16 b _08031F00 .align 2, 0 _08031EC0: .4byte gUnknown_203B480 _08031EC4: .4byte gUnknown_203B334 _08031EC8: .4byte gUnknown_80E1FDC _08031ECC: cmp r7, 0x11 bgt _08031ED6 _08031ED0: movs r6, 0x7 movs r5, 0x15 b _08031F00 _08031ED6: cmp r7, 0x16 ble _08031EE8 cmp r7, 0x1E bgt _08031EE4 movs r6, 0x6 movs r5, 0x25 b _08031F00 _08031EE4: cmp r7, 0x23 bgt _08031EEE _08031EE8: movs r6, 0x7 movs r5, 0x24 b _08031F00 _08031EEE: cmp r7, 0x28 ble _08031EFC cmp r7, 0x30 bgt _08031EFC movs r6, 0x6 movs r5, 0x34 b _08031F00 _08031EFC: movs r6, 0x7 movs r5, 0x33 _08031F00: adds r0, r7, 0 movs r1, 0x12 bl __modsi3 movs r1, 0xB adds r4, r0, 0 muls r4, r1 adds r4, 0x6 mov r0, sp adds r0, r7 adds r0, 0x4 ldrb r2, [r0] mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r3, r6, 0 bl sub_8012C60 mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] adds r2, r5, 0 adds r2, 0xA movs r1, 0x5 str r1, [sp] adds r1, r4, 0 movs r3, 0xA bl sub_80078A4 adds r7, 0x1 cmp r7, 0x35 ble _08031EB2 ldr r0, _08031F5C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031F5C: .4byte gUnknown_203B334 thumb_func_end sub_8031E74 thumb_func_start sub_8031F60 sub_8031F60: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08031FD0 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _08031FD4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x20 movs r2, 0x8 adds r3, r5, 0 bl sub_8013818 bl sub_8032084 bl sub_80320F8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031FD0: .4byte gUnknown_203B338 _08031FD4: .4byte gUnknown_80E2008 thumb_func_end sub_8031F60 thumb_func_start sub_8031FD8 sub_8031FD8: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08031FF0 ldr r0, _08031FEC ldr r0, [r0] bl sub_8013660 movs r0, 0 b _08032034 .align 2, 0 _08031FEC: .4byte gUnknown_203B338 _08031FF0: ldr r4, _0803200C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _08032010 cmp r0, 0x2 bne _0803201A movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08032034 .align 2, 0 _0803200C: .4byte gUnknown_203B338 _08032010: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08032034 _0803201A: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0803202A movs r0, 0 b _08032034 _0803202A: bl sub_8032084 bl sub_80320F8 movs r0, 0x1 _08032034: pop {r4} pop {r1} bx r1 thumb_func_end sub_8031FD8 thumb_func_start sub_803203C sub_803203C: push {r4,r5,lr} ldr r4, _0803207C ldr r2, [r4] cmp r2, 0 beq _08032076 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _08032080 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08032076: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803207C: .4byte gUnknown_203B338 _08032080: .4byte gUnknown_80E1FF0 thumb_func_end sub_803203C thumb_func_start sub_8032084 sub_8032084: push {r4,lr} ldr r4, _080320F4 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xB strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _080320F4: .4byte gUnknown_203B338 thumb_func_end sub_8032084 thumb_func_start sub_80320F8 sub_80320F8: push {r4-r7,lr} sub sp, 0x8 ldr r5, _08032158 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r5] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r6, r4, 0 adds r6, 0xA ldr r2, _0803215C ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r6, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r6, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r7, 0 ldr r0, [r5] b _0803223A .align 2, 0 _08032158: .4byte gUnknown_203B338 _0803215C: .4byte gUnknown_80E2020 _08032160: ldr r5, _08032194 ldr r0, [r5] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r7 lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_8097710 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803221C subs r0, r6, 0x7 cmp r0, 0x5 bhi _080321EC lsls r0, 2 ldr r1, _08032198 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032194: .4byte gUnknown_203B338 _08032198: .4byte _0803219C .align 2, 0 _0803219C: .4byte _080321BA .4byte _080321C6 .4byte _080321D4 .4byte _080321E0 .4byte _080321C0 .4byte _080321B4 _080321B4: bl sub_80978B8 b _080321E4 _080321BA: bl sub_8097880 b _080321E4 _080321C0: bl sub_8097838 b _080321E4 _080321C6: bl sub_80977B8 ldr r1, _080321D0 b _080321EA .align 2, 0 _080321D0: .4byte gUnknown_202DE30 _080321D4: bl sub_80977F8 ldr r1, _080321DC b _080321EA .align 2, 0 _080321DC: .4byte gUnknown_202DE30 _080321E0: bl sub_8097870 _080321E4: ldr r1, _08032214 lsls r0, 16 asrs r0, 16 _080321EA: str r0, [r1] _080321EC: ldr r4, _08032218 ldr r0, [r4] adds r1, r7, 0 bl sub_8013800 adds r5, r0, 0 adds r0, r6, 0 bl sub_8097738 adds r2, r0, 0 ldr r0, [r4] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r5, 0 bl sub_8014FF0 b _08032234 .align 2, 0 _08032214: .4byte gUnknown_202DE30 _08032218: .4byte gUnknown_203B338 _0803221C: ldr r0, [r5] adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _08032254 ldr r0, [r5] ldr r3, [r0, 0x34] str r4, [sp] movs r0, 0x8 bl xxx_call_draw_string _08032234: adds r7, 0x1 ldr r0, _08032258 ldr r0, [r0] _0803223A: movs r1, 0x1A ldrsh r0, [r0, r1] cmp r7, r0 blt _08032160 ldr r0, _08032258 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032254: .4byte gUnknown_80E2030 _08032258: .4byte gUnknown_203B338 thumb_func_end sub_80320F8 thumb_func_start sub_803225C sub_803225C: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08032300 movs r4, 0xAD lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xA6 lsls r0, 3 adds r2, r1, r0 movs r0, 0 str r0, [r2] movs r2, 0x86 lsls r2, 2 adds r1, r2 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _08032304 strh r1, [r0] ldr r0, _08032308 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803230C bl strcpy movs r1, 0 movs r2, 0 adds r4, r5, 0 _080322C6: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080322C6 ldr r1, [r4] movs r0, 0x7E str r0, [r1, 0x4] bl sub_8039880 ldr r1, [r4] ldr r2, _08032310 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08032314 adds r0, r2 strb r1, [r0] movs r0, 0 bl sub_80338C4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08032300: .4byte gUnknown_203B33C _08032304: .4byte 0x0000ffff _08032308: .4byte gUnknown_202E5D8 _0803230C: .4byte gUnknown_202DF98 _08032310: .4byte 0x0000052c _08032314: .4byte 0x0000052d thumb_func_end sub_803225C thumb_func_start sub_8032318 sub_8032318: push {lr} ldr r0, _08032330 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7D bls _08032326 b _080327DC _08032326: lsls r0, 2 ldr r1, _08032334 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032330: .4byte gUnknown_203B33C _08032334: .4byte _08032338 .align 2, 0 _08032338: .4byte _080326A6 .4byte _080326A6 .4byte _080326AC .4byte _0803255A .4byte _0803255A .4byte _0803266C .4byte _08032672 .4byte _08032678 .4byte _0803267E .4byte _08032684 .4byte _0803268A .4byte _08032690 .4byte _08032690 .4byte _08032698 .4byte _080326A0 .4byte _080327CE .4byte _080327CE .4byte _0803262C .4byte _08032634 .4byte _0803263A .4byte _08032640 .4byte _08032646 .4byte _0803264C .4byte _08032652 .4byte _08032764 .4byte _08032658 .4byte _08032660 .4byte _08032666 .4byte _08032612 .4byte _08032626 .4byte _0803261A .4byte _08032620 .4byte _0803260C .4byte _080325CE .4byte _080327CE .4byte _080325C6 .4byte _080325BA .4byte _080325A0 .4byte _080325A8 .4byte _080325AE .4byte _080325B4 .4byte _080325C0 .4byte _0803258C .4byte _0803259A .4byte _08032594 .4byte _0803257E .4byte _08032586 .4byte _08032764 .4byte _080327CE .4byte _080325D4 .4byte _080325DC .4byte _080325E2 .4byte _080325E8 .4byte _080325EE .4byte _080327DC .4byte _080325FA .4byte _080325F4 .4byte _08032600 .4byte _08032606 .4byte _08032764 .4byte _080327CE .4byte _08032560 .4byte _08032566 .4byte _0803256C .4byte _08032572 .4byte _08032578 .4byte _08032764 .4byte _08032658 .4byte _080327CE .4byte _080327CE .4byte _08032794 .4byte _0803279C .4byte _080327A2 .4byte _080327A8 .4byte _080327AE .4byte _080327B4 .4byte _080327BA .4byte _080327C0 .4byte _080327C0 .4byte _080327C8 .4byte _08032722 .4byte _080327D6 .4byte _0803278E .4byte _08032780 .4byte _08032788 .4byte _0803277A .4byte _08032774 .4byte _0803276C .4byte _08032752 .4byte _08032764 .4byte _080326BC .4byte _080326C2 .4byte _080326D6 .4byte _080326CA .4byte _080326D0 .4byte _080326DC .4byte _080326E2 .4byte _080326E8 .4byte _08032730 .4byte _08032744 .4byte _0803273E .4byte _08032738 .4byte _080326F4 .4byte _080326FC .4byte _080326EE .4byte _0803274C .4byte _080326B0 .4byte _080326B6 .4byte _08032764 .4byte _08032722 .4byte _0803272A .4byte _08032744 .4byte _0803271C .4byte _08032716 .4byte _08032708 .4byte _08032710 .4byte _08032702 .4byte _08032758 .4byte _0803275E .4byte _08032764 .4byte _08032530 .4byte _08032536 .4byte _0803253E .4byte _08032544 .4byte _0803254C .4byte _08032552 _08032530: bl sub_8035300 b _080327DC _08032536: movs r0, 0x78 bl sub_8035404 b _080327DC _0803253E: bl sub_8035374 b _080327DC _08032544: movs r0, 0x7A bl sub_8035404 b _080327DC _0803254C: bl sub_80353BC b _080327DC _08032552: movs r0, 0x7C bl sub_8035404 b _080327DC _0803255A: bl sub_8033A2C b _080327DC _08032560: bl sub_803477C b _080327DC _08032566: bl sub_80347AC b _080327DC _0803256C: bl sub_80347C8 b _080327DC _08032572: bl sub_80347E4 b _080327DC _08032578: bl sub_8034804 b _080327DC _0803257E: movs r0, 0x2E bl sub_8035404 b _080327DC _08032586: bl sub_80344C0 b _080327DC _0803258C: movs r0, 0xD bl sub_8035404 b _080327DC _08032594: bl sub_8034478 b _080327DC _0803259A: bl sub_80344A0 b _080327DC _080325A0: movs r0, 0x26 bl sub_8035404 b _080327DC _080325A8: bl sub_803418C b _080327DC _080325AE: bl sub_8034254 b _080327DC _080325B4: bl sub_8034310 b _080327DC _080325BA: bl sub_8034378 b _080327DC _080325C0: bl sub_80343C4 b _080327DC _080325C6: movs r0, 0x21 bl sub_8035404 b _080327DC _080325CE: bl sub_8034404 b _080327DC _080325D4: movs r0, 0x32 bl sub_8035404 b _080327DC _080325DC: bl sub_8034500 b _080327DC _080325E2: bl sub_8034590 b _080327DC _080325E8: bl sub_803464C b _080327DC _080325EE: bl sub_80346A8 b _080327DC _080325F4: bl sub_80346D8 b _080327DC _080325FA: bl sub_8034700 b _080327DC _08032600: bl sub_8034720 b _080327DC _08032606: bl sub_803473C b _080327DC _0803260C: bl sub_8033FB4 b _080327DC _08032612: movs r0, 0x1D bl sub_8035404 b _080327DC _0803261A: bl sub_8034074 b _080327DC _08032620: bl sub_8034130 b _080327DC _08032626: bl sub_8033FE4 b _080327DC _0803262C: movs r0, 0x12 bl sub_8035404 b _080327DC _08032634: bl nullsub_42 b _080327DC _0803263A: bl nullsub_43 b _080327DC _08032640: bl nullsub_44 b _080327DC _08032646: bl nullsub_45 b _080327DC _0803264C: bl sub_8033D74 b _080327DC _08032652: bl sub_8033D94 b _080327DC _08032658: movs r0, 0x1A bl sub_8035404 b _080327DC _08032660: bl sub_8033DBC b _080327DC _08032666: bl sub_8033F64 b _080327DC _0803266C: bl sub_8033C54 b _080327DC _08032672: bl nullsub_41 b _080327DC _08032678: bl sub_8033CAC b _080327DC _0803267E: bl sub_8033D48 b _080327DC _08032684: bl sub_8035424 b _080327DC _0803268A: bl nullsub_50 b _080327DC _08032690: movs r0, 0x6 bl sub_8035404 b _080327DC _08032698: movs r0, 0x7 bl sub_8035404 b _080327DC _080326A0: bl sub_8033B8C b _080327DC _080326A6: bl sub_80339C8 b _080327DC _080326AC: movs r0, 0x3 b _080327DE _080326B0: bl sub_80348C4 b _080327DC _080326B6: bl sub_803482C b _080327DC _080326BC: bl sub_80349B0 b _080327DC _080326C2: movs r0, 0x5C bl sub_8035404 b _080327DC _080326CA: bl sub_8034A70 b _080327DC _080326D0: bl sub_8034B2C b _080327DC _080326D6: bl sub_80349E0 b _080327DC _080326DC: bl sub_8034B88 b _080327DC _080326E2: bl sub_8034C98 b _080327DC _080326E8: bl sub_8034C38 b _080327DC _080326EE: bl sub_8034D54 b _080327DC _080326F4: movs r0, 0x67 bl sub_8035404 b _080327DC _080326FC: bl sub_8034970 b _080327DC _08032702: bl sub_80351E0 b _080327DC _08032708: movs r0, 0x73 bl sub_8035404 b _080327DC _08032710: bl sub_8034D74 b _080327DC _08032716: bl sub_8034EF0 b _080327DC _0803271C: bl sub_8034F38 b _080327DC _08032722: movs r0, 0x6E bl sub_8035404 b _080327DC _0803272A: bl sub_80352A4 b _080327DC _08032730: movs r0, 0x6A bl sub_8035404 b _080327DC _08032738: bl sub_8034EC8 b _080327DC _0803273E: bl sub_8034F18 b _080327DC _08032744: movs r0, 0x62 bl sub_8035404 b _080327DC _0803274C: bl sub_8034F58 b _080327DC _08032752: bl sub_8034F88 b _080327DC _08032758: bl sub_8035018 b _080327DC _0803275E: bl sub_8035038 b _080327DC _08032764: movs r0, 0x2 bl sub_8035404 b _080327DC _0803276C: movs r0, 0x5F bl sub_8035404 b _080327DC _08032774: bl sub_8035094 b _080327DC _0803277A: bl sub_80350F4 b _080327DC _08032780: movs r0, 0x54 bl sub_8035404 b _080327DC _08032788: bl sub_803517C b _080327DC _0803278E: bl sub_8035210 b _080327DC _08032794: movs r0, 0x47 bl sub_8035404 b _080327DC _0803279C: bl nullsub_46 b _080327DC _080327A2: bl nullsub_47 b _080327DC _080327A8: bl nullsub_48 b _080327DC _080327AE: bl nullsub_49 b _080327DC _080327B4: bl sub_8035430 b _080327DC _080327BA: bl nullsub_51 b _080327DC _080327C0: movs r0, 0x4F bl sub_8035404 b _080327DC _080327C8: bl sub_8034848 b _080327DC _080327CE: movs r0, 0x1 bl sub_8035404 b _080327DC _080327D6: movs r0, 0x1 bl sub_8035404 _080327DC: movs r0, 0 _080327DE: pop {r1} bx r1 thumb_func_end sub_8032318 thumb_func_start sub_80327E4 sub_80327E4: push {r4,lr} ldr r4, _08032820 ldr r0, [r4] cmp r0, 0 beq _0803281A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_803084C bl sub_8031E10 bl sub_8023C60 bl sub_80155F0 bl sub_801CBB8 bl sub_802F2C0 bl sub_8030DE4 bl sub_802453C bl sub_801B450 _0803281A: pop {r4} pop {r0} bx r0 .align 2, 0 _08032820: .4byte gUnknown_203B33C thumb_func_end sub_80327E4 thumb_func_start nullsub_40 nullsub_40: bx lr thumb_func_end nullsub_40 thumb_func_start sub_8032828 sub_8032828: push {r4-r6,lr} sub sp, 0x68 ldr r1, _08032848 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x7D bls _0803283C bl _080338B4 _0803283C: lsls r0, 2 ldr r1, _0803284C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032848: .4byte gUnknown_203B33C _0803284C: .4byte _08032850 .align 2, 0 _08032850: .4byte _08032A48 .4byte _08032AD0 .4byte _080338B4 .4byte _08032B80 .4byte _08032BC4 .4byte _08032FD0 .4byte _080338B4 .4byte _08032FF0 .4byte _080338B4 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _0803356C .4byte _08032C50 .4byte _08033200 .4byte _080331CC .4byte _080331D4 .4byte _080331DC .4byte _080336B2 .4byte _080338B4 .4byte _080331F8 .4byte _08033208 .4byte _080338B4 .4byte _08033234 .4byte _0803323C .4byte _08033244 .4byte _080338B4 .4byte _08032F8C .4byte _08032F98 .4byte _080336B2 .4byte _080338B4 .4byte _08032FB6 .4byte _08032EB8 .4byte _08032FC4 .4byte _08032EAC .4byte _08032F54 .4byte _08032EE0 .4byte _08032EEC .4byte _08032F16 .4byte _080338B4 .4byte _08032F7C .4byte _08032E60 .4byte _08032E6C .4byte _08032EA0 .4byte _08032E48 .4byte _0803341C .4byte _08032E54 .4byte _08032D84 .4byte _08032D90 .4byte _08032D9C .4byte _080336B2 .4byte _080338B4 .4byte _08032DBC .4byte _080338B4 .4byte _08032DCC .4byte _08032E00 .4byte _08032E3C .4byte _08032E0C .4byte _08032E30 .4byte _08032D04 .4byte _08032D10 .4byte _08032D2C .4byte _08032D38 .4byte _08032D44 .4byte _080338B4 .4byte _08032D78 .4byte _08032D20 .4byte _08033720 .4byte _08033728 .4byte _08033684 .4byte _0803368C .4byte _080336B2 .4byte _080338B4 .4byte _080336F8 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _080338B4 .4byte _08033468 .4byte _08033730 .4byte _08033738 .4byte _0803366C .4byte _08033674 .4byte _08033644 .4byte _0803361C .4byte _08033614 .4byte _080335F4 .4byte _080335C0 .4byte _0803324E .4byte _0803325C .4byte _0803368C .4byte _08033264 .4byte _080338B4 .4byte _08033288 .4byte _080332B8 .4byte _080338B4 .4byte _0803356C .4byte _080335B0 .4byte _08033584 .4byte _080338B4 .4byte _08033412 .4byte _0803341C .4byte _08033448 .4byte _080335B8 .4byte _080332F4 .4byte _080338B4 .4byte _08033460 .4byte _08033470 .4byte _0803349C .4byte _08033450 .4byte _08033458 .4byte _080338B4 .4byte _080333E4 .4byte _080333EC .4byte _080338B4 .4byte _08033604 .4byte _0803360C .4byte _080338B4 .4byte _0803384C .4byte _0803387C .4byte _080337D4 .4byte _080337F0 .4byte _08033770 .4byte _0803378C _08032A48: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032A9C movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032A9C ldr r0, _08032A7C ldr r0, [r0] ldr r1, _08032A80 adds r0, r1 ldrb r2, [r0] cmp r2, 0 beq _08032A8C ldr r0, _08032A84 ldr r3, _08032A88 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032A7C: .4byte gUnknown_203B33C _08032A80: .4byte 0x0000052c _08032A84: .4byte gUnknown_80E25F4 _08032A88: .4byte gUnknown_80E2108 _08032A8C: ldr r0, _08032A94 ldr r3, _08032A98 b _08032B5C .align 2, 0 _08032A94: .4byte gUnknown_80E25F4 _08032A98: .4byte gUnknown_80E20B8 _08032A9C: ldr r0, _08032AC0 ldr r0, [r0] ldr r2, _08032AC4 adds r0, r2 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032AC8 ldr r3, _08032ACC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032AC0: .4byte gUnknown_203B33C _08032AC4: .4byte 0x0000052c _08032AC8: .4byte gUnknown_80E25F4 _08032ACC: .4byte gUnknown_80E20E0 _08032AD0: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032B24 movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032B24 ldr r0, _08032B04 ldr r0, [r0] ldr r3, _08032B08 adds r0, r3 ldrb r2, [r0] cmp r2, 0 beq _08032B14 ldr r0, _08032B0C ldr r3, _08032B10 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032B04: .4byte gUnknown_203B33C _08032B08: .4byte 0x0000052c _08032B0C: .4byte gUnknown_80E25F4 _08032B10: .4byte gUnknown_80E2108 _08032B14: ldr r0, _08032B1C ldr r3, _08032B20 b _08032B5C .align 2, 0 _08032B1C: .4byte gUnknown_80E25F4 _08032B20: .4byte gUnknown_80E20B8 _08032B24: ldr r0, _08032B48 ldr r0, [r0] ldr r4, _08032B4C adds r0, r4 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032B50 ldr r3, _08032B54 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032B48: .4byte gUnknown_203B33C _08032B4C: .4byte 0x0000052c _08032B50: .4byte gUnknown_80E25F4 _08032B54: .4byte gUnknown_80E20E0 _08032B58: ldr r0, _08032B78 ldr r3, _08032B7C _08032B5C: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032B66: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 bl _080338B4 .align 2, 0 _08032B78: .4byte gUnknown_80E25F4 _08032B7C: .4byte gUnknown_80E2068 _08032B80: movs r0, 0x4 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 beq _08032B9C ldr r0, _08032B94 ldr r3, _08032B98 movs r2, 0 b _08032BA0 .align 2, 0 _08032B94: .4byte gUnknown_80E25F4 _08032B98: .4byte gUnknown_80E2130 _08032B9C: ldr r0, _08032BBC ldr r3, _08032BC0 _08032BA0: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 bl _080338B4 .align 2, 0 _08032BBC: .4byte gUnknown_80E25F4 _08032BC0: .4byte gUnknown_80E2190 _08032BC4: movs r0, 0x1 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032C0C movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08032BF4 ldr r0, _08032BEC ldr r3, _08032BF0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032BEC: .4byte gUnknown_80E25F4 _08032BF0: .4byte gUnknown_80E2268 _08032BF4: ldr r0, _08032C04 ldr r3, _08032C08 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032C04: .4byte gUnknown_80E25F4 _08032C08: .4byte gUnknown_80E2218 _08032C0C: movs r0, 0x5 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 bne _08032C28 ldr r0, _08032C20 ldr r3, _08032C24 b _08032C2E .align 2, 0 _08032C20: .4byte gUnknown_80E25F4 _08032C24: .4byte gUnknown_80E2240 _08032C28: ldr r0, _08032C48 ldr r3, _08032C4C movs r2, 0 _08032C2E: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032C38: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 bl _080338B4 .align 2, 0 _08032C48: .4byte gUnknown_80E25F4 _08032C4C: .4byte gUnknown_80E21B8 _08032C50: ldr r0, [r6] movs r5, 0xA5 lsls r5, 3 adds r0, r5 ldr r0, [r0] subs r0, 0x3 cmp r0, 0x11 bls _08032C64 bl _080338B4 _08032C64: lsls r0, 2 ldr r1, _08032C70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032C70: .4byte _08032C74 .align 2, 0 _08032C74: .4byte _08032CC8 .4byte _08032CD4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _08032CBC .4byte _08032CE0 .4byte _08032CEC .4byte _08032CF8 _08032CBC: ldr r0, _08032CC4 bl _0803374A .align 2, 0 _08032CC4: .4byte gUnknown_80E2610 _08032CC8: ldr r0, _08032CD0 bl _0803374A .align 2, 0 _08032CD0: .4byte gUnknown_80E2640 _08032CD4: ldr r0, _08032CDC bl _0803374A .align 2, 0 _08032CDC: .4byte gUnknown_80E2680 _08032CE0: ldr r0, _08032CE8 bl _0803374A .align 2, 0 _08032CE8: .4byte gUnknown_80E26B0 _08032CEC: ldr r0, _08032CF4 bl _0803374A .align 2, 0 _08032CF4: .4byte gUnknown_80E26F0 _08032CF8: ldr r0, _08032D00 bl _0803374A .align 2, 0 _08032D00: .4byte gUnknown_80E2728 _08032D04: ldr r0, _08032D0C bl _0803388E .align 2, 0 _08032D0C: .4byte gUnknown_80E276C _08032D10: ldr r0, _08032D18 ldr r3, _08032D1C bl _080336FC .align 2, 0 _08032D18: .4byte gUnknown_80E27A4 _08032D1C: .4byte gUnknown_80E2458 _08032D20: ldr r0, _08032D28 bl _0803388E .align 2, 0 _08032D28: .4byte gUnknown_80E2814 _08032D2C: ldr r0, _08032D34 bl _0803388E .align 2, 0 _08032D34: .4byte gUnknown_80E2840 _08032D38: ldr r0, _08032D40 bl _0803388E .align 2, 0 _08032D40: .4byte gUnknown_80E2874 _08032D44: ldr r0, [r6] ldr r1, _08032D60 adds r0, r1 ldr r0, [r0] cmp r0, 0xC bne _08032D54 bl _080338B4 _08032D54: cmp r0, 0xC bhi _08032D64 cmp r0, 0xB beq _08032D6C bl _080338B4 .align 2, 0 _08032D60: .4byte 0x00000524 _08032D64: cmp r0, 0xE bls _08032D6C bl _080338B4 _08032D6C: ldr r0, _08032D74 bl _0803388E .align 2, 0 _08032D74: .4byte gUnknown_80E2898 _08032D78: ldr r0, _08032D80 bl _0803388E .align 2, 0 _08032D80: .4byte gUnknown_80E28D8 _08032D84: ldr r0, _08032D8C bl _0803388E .align 2, 0 _08032D8C: .4byte gUnknown_80E2904 _08032D90: ldr r0, _08032D98 bl _0803388E .align 2, 0 _08032D98: .4byte gUnknown_80E296C _08032D9C: bl sub_8030894 cmp r0, 0 beq _08032DA8 bl _080338B4 _08032DA8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl _080336A6 _08032DBC: ldr r0, _08032DC4 ldr r3, _08032DC8 bl _080336FC .align 2, 0 _08032DC4: .4byte gUnknown_80E29A0 _08032DC8: .4byte gUnknown_80E22B4 _08032DCC: ldr r0, [r6] ldr r2, _08032DE8 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032DDC bl _080338B4 _08032DDC: cmp r0, 0xC bhi _08032DEC cmp r0, 0xB beq _08032DF4 bl _080338B4 .align 2, 0 _08032DE8: .4byte 0x00000524 _08032DEC: cmp r0, 0xE bls _08032DF4 bl _080338B4 _08032DF4: ldr r0, _08032DFC bl _0803388E .align 2, 0 _08032DFC: .4byte gUnknown_80E29D0 _08032E00: ldr r0, _08032E08 bl _0803388E .align 2, 0 _08032E08: .4byte gUnknown_80E2A0C _08032E0C: ldr r0, [r6] movs r3, 0xEF lsls r3, 2 adds r0, r3 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r4, 0x86 lsls r4, 2 adds r0, r4 b _0803343E _08032E30: ldr r0, _08032E38 bl _0803388E .align 2, 0 _08032E38: .4byte gUnknown_80E2A1C _08032E3C: ldr r0, _08032E44 bl _0803388E .align 2, 0 _08032E44: .4byte gUnknown_80E2A5C _08032E48: ldr r0, _08032E50 bl _0803388E .align 2, 0 _08032E50: .4byte gUnknown_80E2A80 _08032E54: ldr r0, _08032E5C bl _0803388E .align 2, 0 _08032E5C: .4byte gUnknown_80E2AA8 _08032E60: ldr r0, _08032E68 bl _0803388E .align 2, 0 _08032E68: .4byte gUnknown_80E2AE4 _08032E6C: ldr r0, [r6] ldr r2, _08032E88 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032E7C bl _080338B4 _08032E7C: cmp r0, 0xC bhi _08032E8C cmp r0, 0xB beq _08032E94 bl _080338B4 .align 2, 0 _08032E88: .4byte 0x00000524 _08032E8C: cmp r0, 0xE bls _08032E94 bl _080338B4 _08032E94: ldr r0, _08032E9C bl _0803388E .align 2, 0 _08032E9C: .4byte gUnknown_80E2B54 _08032EA0: ldr r0, _08032EA8 bl _0803388E .align 2, 0 _08032EA8: .4byte gUnknown_80E2A0C _08032EAC: ldr r0, _08032EB4 bl _0803388E .align 2, 0 _08032EB4: .4byte gUnknown_80E2B90 _08032EB8: ldr r0, _08032ED8 ldr r3, _08032EDC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xF bl sub_8014248 bl _080338B4 .align 2, 0 _08032ED8: .4byte gUnknown_80E2BE0 _08032EDC: .4byte gUnknown_80E23A8 _08032EE0: ldr r0, _08032EE8 bl _0803388E .align 2, 0 _08032EE8: .4byte gUnknown_80E2C48 _08032EEC: bl sub_8023CE8 cmp r0, 0 beq _08032EF8 bl sub_8023C60 _08032EF8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 bl _080338B4 _08032F16: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08032F4C ldr r2, _08032F50 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 bl _080336E2 .align 2, 0 _08032F4C: .4byte gUnknown_80E2334 _08032F50: .4byte gUnknown_80E234C _08032F54: ldr r0, _08032F74 ldr r3, _08032F78 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x10 bl sub_8014248 bl _080338B4 .align 2, 0 _08032F74: .4byte gUnknown_80E2C94 _08032F78: .4byte gUnknown_80E22F0 _08032F7C: ldr r0, _08032F84 ldr r3, _08032F88 bl _080336FC .align 2, 0 _08032F84: .4byte gUnknown_80E2CD4 _08032F88: .4byte gUnknown_80E22D0 _08032F8C: ldr r0, _08032F94 bl _0803388E .align 2, 0 _08032F94: .4byte gUnknown_80E2CE8 _08032F98: bl sub_8030894 cmp r0, 0 beq _08032FA4 bl _080338B4 _08032FA4: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080336A6 _08032FB6: ldr r0, _08032FBC ldr r3, _08032FC0 b _080336FC .align 2, 0 _08032FBC: .4byte gUnknown_80E2D30 _08032FC0: .4byte gUnknown_80E22B4 _08032FC4: ldr r0, _08032FCC bl _0803388E .align 2, 0 _08032FCC: .4byte gUnknown_80E2D60 _08032FD0: ldr r0, _08032FD4 b _080336FA .align 2, 0 _08032FD4: .4byte gUnknown_80E2D7C _08032FD8: ldr r0, _08032FDC b _080336FA .align 2, 0 _08032FDC: .4byte gUnknown_80E2E20 _08032FE0: ldr r0, _08032FE4 b _08033574 .align 2, 0 _08032FE4: .4byte gUnknown_80E2E54 _08032FE8: ldr r0, _08032FEC b _08033574 .align 2, 0 _08032FEC: .4byte gUnknown_80E2EB4 _08032FF0: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 beq _0803300E b _080333DE _0803300E: ldr r1, [r0, 0x40] cmp r1, 0x3 beq _08033028 cmp r1, 0x3 bhi _0803301E cmp r1, 0x2 beq _0803304A b _0803313C _0803301E: cmp r1, 0x4 beq _080330B4 cmp r1, 0x5 beq _0803308E b _0803313C _08033028: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803304A: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0x86 lsls r3, 2 adds r0, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0x48 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803308E: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r4, 0x98 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r4 b _08033134 _080330B4: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] movs r4, 0xA7 lsls r4, 3 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0803312A adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08033188 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _0803312A: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08033134: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0803313C: ldr r4, _0803318C ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 beq _08033148 b _080333DE _08033148: ldr r0, [r2, 0x40] cmp r0, 0x2 bcs _08033150 b _080333DE _08033150: cmp r0, 0x3 bls _08033190 cmp r0, 0x5 bls _0803315A b _080333DE _0803315A: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331C0 ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 movs r5, 0xA0 lsls r5, 1 adds r0, r5 b _080333DA .align 2, 0 _08033188: .4byte gUnknown_203B45C _0803318C: .4byte gUnknown_203B33C _08033190: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331B4 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 adds r0, 0x88 b _080333DA _080331B4: ldr r0, [r4] movs r3, 0x84 lsls r3, 3 adds r1, r0, r3 ldr r0, [r0, 0x58] b _080333DC _080331C0: ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r0, 0xB8 b _080333DA _080331CC: ldr r0, _080331D0 b _0803388E .align 2, 0 _080331D0: .4byte gUnknown_80E2F14 _080331D4: ldr r0, _080331D8 b _0803388E .align 2, 0 _080331D8: .4byte gUnknown_80E2F44 _080331DC: bl sub_8030894 cmp r0, 0 beq _080331E6 b _080338B4 _080331E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 b _080336A6 _080331F8: ldr r0, _080331FC b _080336FA .align 2, 0 _080331FC: .4byte gUnknown_80E2F78 _08033200: ldr r0, _08033204 b _0803388E .align 2, 0 _08033204: .4byte gUnknown_80E2FA0 _08033208: ldr r0, [r6] ldr r5, _08033220 adds r0, r5 ldr r0, [r0] cmp r0, 0xC bne _08033216 b _080338B4 _08033216: cmp r0, 0xC bhi _08033224 cmp r0, 0xB beq _0803322A b _080338B4 .align 2, 0 _08033220: .4byte 0x00000524 _08033224: cmp r0, 0xE bls _0803322A b _080338B4 _0803322A: ldr r0, _08033230 b _0803388E .align 2, 0 _08033230: .4byte gUnknown_80E2FEC _08033234: ldr r0, _08033238 b _0803388E .align 2, 0 _08033238: .4byte gUnknown_80E3030 _0803323C: ldr r0, _08033240 b _0803388E .align 2, 0 _08033240: .4byte gUnknown_80E3078 _08033244: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 b _080333F4 _0803324E: ldr r0, _08033254 ldr r3, _08033258 b _080336FC .align 2, 0 _08033254: .4byte gUnknown_80E30A4 _08033258: .4byte gUnknown_80E2458 _0803325C: ldr r0, _08033260 b _0803388E .align 2, 0 _08033260: .4byte gUnknown_80E30D0 _08033264: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08033280 ldr r2, _08033284 b _080336CC .align 2, 0 _08033280: .4byte gUnknown_80E231C _08033284: .4byte gUnknown_80E2408 _08033288: bl sub_801D008 cmp r0, 0 beq _08033292 b _080338B4 _08033292: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _080332B4 str r0, [sp, 0x64] add r2, sp, 0x64 movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _080338B4 .align 2, 0 _080332B4: .4byte 0x00020003 _080332B8: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080332EC ldr r2, _080332F0 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 b _080336E2 .align 2, 0 _080332EC: .4byte gUnknown_80E23F0 _080332F0: .4byte gUnknown_80E2408 _080332F4: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0803331A cmp r0, 0x7 beq _08033358 b _08033388 _0803331A: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r3, 0xF4 lsls r3, 1 adds r2, r3 b _0803337E _08033358: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0803337E: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08033388: ldr r4, _080333C8 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _080333DE cmp r0, 0x6 bcc _080333DE movs r5, 0xDC lsls r5, 1 adds r1, r2, r5 movs r3, 0xF4 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080333CC ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r5, 0x40 adds r0, r5 b _080333DA .align 2, 0 _080333C8: .4byte gUnknown_203B33C _080333CC: ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 movs r3, 0xE4 lsls r3, 1 adds r0, r3 _080333DA: ldr r0, [r0] _080333DC: str r0, [r1] _080333DE: bl sub_8011854 b _080338B4 _080333E4: ldr r0, _080333E8 b _0803388E .align 2, 0 _080333E8: .4byte gUnknown_80E311C _080333EC: ldr r0, [r6] movs r4, 0xEF lsls r4, 2 adds r0, r4 _080333F4: bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _080338B4 _08033412: ldr r0, _08033418 b _0803388E .align 2, 0 _08033418: .4byte gUnknown_80E314C _0803341C: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r1, 0x86 lsls r1, 2 adds r0, r1 _0803343E: ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _080338B4 _08033448: ldr r0, _0803344C b _0803388E .align 2, 0 _0803344C: .4byte gUnknown_80E317C _08033450: ldr r0, _08033454 b _0803388E .align 2, 0 _08033454: .4byte gUnknown_80E319C _08033458: ldr r0, _0803345C b _0803388E .align 2, 0 _0803345C: .4byte gUnknown_80E317C _08033460: ldr r0, _08033464 b _0803388E .align 2, 0 _08033464: .4byte gUnknown_80E31D8 _08033468: ldr r0, _0803346C b _0803388E .align 2, 0 _0803346C: .4byte gUnknown_80E31FC _08033470: ldr r0, [r6] ldr r2, _08033488 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _0803347E b _080338B4 _0803347E: cmp r0, 0xC bhi _0803348C cmp r0, 0xB beq _08033492 b _080338B4 .align 2, 0 _08033488: .4byte 0x00000524 _0803348C: cmp r0, 0xE bls _08033492 b _080338B4 _08033492: ldr r0, _08033498 b _0803388E .align 2, 0 _08033498: .4byte gUnknown_80E3220 _0803349C: movs r0, 0x98 lsls r0, 1 bl sub_808D994 adds r1, r0, 0 ldr r4, _080334F8 ldr r0, [r4] ldr r3, _080334FC adds r0, r3 bl strcpy ldr r1, [r4] movs r5, 0xAA lsls r5, 3 adds r0, r1, r5 movs r2, 0 strh r2, [r0] ldr r0, _08033500 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r4] ldr r3, _08033504 adds r1, r0, r3 str r2, [r1] movs r5, 0x84 lsls r5, 3 adds r0, r5 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _08033508 ldr r0, [r4] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _08033512 .align 2, 0 _080334F8: .4byte gUnknown_203B33C _080334FC: .4byte 0x0000053c _08033500: .4byte 0x00000552 _08033504: .4byte 0x00000554 _08033508: ldr r0, [r4] movs r4, 0xAB lsls r4, 3 adds r0, r4 movs r1, 0 _08033512: strb r1, [r0] ldr r4, _08033558 ldr r0, [r4] ldr r5, _0803355C adds r0, r5 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _08033560 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _08033564 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _08033568 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _080338B4 .align 2, 0 _08033558: .4byte gUnknown_203B33C _0803355C: .4byte 0x0000055b _08033560: .4byte 0x00000559 _08033564: .4byte 0x0000055a _08033568: .4byte 0x0000055c _0803356C: movs r0, 0 bl nullsub_23 ldr r0, _08033580 _08033574: movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _08033580: .4byte gUnknown_80E2DD0 _08033584: ldr r0, [r6] ldr r4, _0803359C adds r0, r4 ldr r0, [r0] cmp r0, 0xC bne _08033592 b _080338B4 _08033592: cmp r0, 0xC bhi _080335A0 cmp r0, 0xB beq _080335A6 b _080338B4 .align 2, 0 _0803359C: .4byte 0x00000524 _080335A0: cmp r0, 0xE bls _080335A6 b _080338B4 _080335A6: ldr r0, _080335AC b _0803388E .align 2, 0 _080335AC: .4byte gUnknown_80E3248 _080335B0: ldr r0, _080335B4 b _0803388E .align 2, 0 _080335B4: .4byte gUnknown_80E3288 _080335B8: ldr r0, _080335BC b _080336FA .align 2, 0 _080335BC: .4byte gUnknown_80E2D7C _080335C0: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _080335E8 ldr r0, [r5] ldr r4, _080335EC adds r0, r4 ldr r1, _080335F0 add r2, sp, 0x14 bl sub_800D158 ldr r0, [r5] adds r0, r4 b _0803388E .align 2, 0 _080335E8: .4byte gUnknown_203B33C _080335EC: .4byte 0x00000424 _080335F0: .4byte gUnknown_80E32C4 _080335F4: ldr r0, _080335FC ldr r3, _08033600 b _080336FC .align 2, 0 _080335FC: .4byte gUnknown_80E331C _08033600: .4byte gUnknown_80E24D8 _08033604: ldr r0, _08033608 b _0803388E .align 2, 0 _08033608: .4byte gUnknown_80E317C _0803360C: ldr r0, _08033610 b _0803388E .align 2, 0 _08033610: .4byte gUnknown_80E2A0C _08033614: ldr r0, _08033618 b _0803388E .align 2, 0 _08033618: .4byte gUnknown_80E3378 _0803361C: ldr r0, _0803363C ldr r3, _08033640 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x16 bl sub_8014248 b _080338B4 .align 2, 0 _0803363C: .4byte gUnknown_80E339C _08033640: .4byte gUnknown_80E24B0 _08033644: ldr r0, _08033664 ldr r3, _08033668 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x15 bl sub_8014248 b _080338B4 .align 2, 0 _08033664: .4byte gUnknown_80E33D8 _08033668: .4byte gUnknown_80E2470 _0803366C: ldr r0, _08033670 b _0803388E .align 2, 0 _08033670: .4byte gUnknown_80E3430 _08033674: ldr r0, _0803367C ldr r3, _08033680 b _080336FC .align 2, 0 _0803367C: .4byte gUnknown_80E34B0 _08033680: .4byte gUnknown_80E2440 _08033684: ldr r0, _08033688 b _0803388E .align 2, 0 _08033688: .4byte gUnknown_80E34F0 _0803368C: bl sub_8030894 cmp r0, 0 beq _08033696 b _080338B4 _08033696: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 _080336A6: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _080338B4 _080336B2: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080336F0 ldr r2, _080336F4 _080336CC: str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080336E2: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _080338B4 .align 2, 0 _080336F0: .4byte gUnknown_80E231C _080336F4: .4byte gUnknown_80E234C _080336F8: ldr r0, _08033718 _080336FA: ldr r3, _0803371C _080336FC: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _080338B4 .align 2, 0 _08033718: .4byte gUnknown_80E352C _0803371C: .4byte gUnknown_80E2290 _08033720: ldr r0, _08033724 b _0803388E .align 2, 0 _08033724: .4byte gUnknown_80E355C _08033728: ldr r0, _0803372C b _0803388E .align 2, 0 _0803372C: .4byte gUnknown_80E35AC _08033730: ldr r0, _08033734 b _0803388E .align 2, 0 _08033734: .4byte gUnknown_80E35E8 _08033738: ldr r0, [r6] ldr r0, [r0, 0x40] cmp r0, 0x6 bne _08033748 ldr r0, _08033744 b _0803374A .align 2, 0 _08033744: .4byte gUnknown_80E360C _08033748: ldr r0, _08033768 _0803374A: ldr r3, _0803376C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xB bl sub_8014248 b _080338B4 .align 2, 0 _08033768: .4byte gUnknown_80E3644 _0803376C: .4byte gUnknown_80E236C _08033770: ldr r0, _08033780 ldr r1, [r6] ldr r5, _08033784 adds r1, r5 ldr r2, [r1] ldr r3, _08033788 b _08033858 .align 2, 0 _08033780: .4byte gUnknown_80E367C _08033784: .4byte 0x00000564 _08033788: .4byte gUnknown_80E25B4 _0803378C: ldr r0, [r6] ldr r1, _080337A4 adds r0, r1 ldr r0, [r0] cmp r0, 0x24 beq _080337BC cmp r0, 0x24 bgt _080337A8 cmp r0, 0x23 beq _080337B2 b _080338B4 .align 2, 0 _080337A4: .4byte 0x00000564 _080337A8: cmp r0, 0x25 beq _080337C4 cmp r0, 0x26 beq _080337CC b _080338B4 _080337B2: ldr r0, _080337B8 b _0803388E .align 2, 0 _080337B8: .4byte gUnknown_80E3690 _080337BC: ldr r0, _080337C0 b _0803388E .align 2, 0 _080337C0: .4byte gUnknown_80E3818 _080337C4: ldr r0, _080337C8 b _0803388E .align 2, 0 _080337C8: .4byte gUnknown_80E3998 _080337CC: ldr r0, _080337D0 b _0803388E .align 2, 0 _080337D0: .4byte gUnknown_80E3B1C _080337D4: ldr r0, _080337E4 ldr r1, [r6] ldr r2, _080337E8 adds r1, r2 ldr r2, [r1] ldr r3, _080337EC b _08033858 .align 2, 0 _080337E4: .4byte gUnknown_80E367C _080337E8: .4byte 0x00000564 _080337EC: .4byte gUnknown_80E2554 _080337F0: ldr r0, [r6] ldr r3, _08033808 adds r0, r3 ldr r0, [r0] subs r0, 0x1E cmp r0, 0x4 bhi _080338B4 lsls r0, 2 ldr r1, _0803380C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033808: .4byte 0x00000564 _0803380C: .4byte _08033810 .align 2, 0 _08033810: .4byte _08033824 .4byte _0803382C .4byte _0803383C .4byte _08033834 .4byte _08033844 _08033824: ldr r0, _08033828 b _0803388E .align 2, 0 _08033828: .4byte gUnknown_80E3BF8 _0803382C: ldr r0, _08033830 b _0803388E .align 2, 0 _08033830: .4byte gUnknown_80E3DE4 _08033834: ldr r0, _08033838 b _0803388E .align 2, 0 _08033838: .4byte gUnknown_80E3E98 _0803383C: ldr r0, _08033840 b _0803388E .align 2, 0 _08033840: .4byte gUnknown_80E4014 _08033844: ldr r0, _08033848 b _0803388E .align 2, 0 _08033848: .4byte gUnknown_80E4130 _0803384C: ldr r0, _08033870 ldr r1, [r6] ldr r4, _08033874 adds r1, r4 ldr r2, [r1] ldr r3, _08033878 _08033858: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] _08033864: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080338B4 .align 2, 0 _08033870: .4byte gUnknown_80E367C _08033874: .4byte 0x00000564 _08033878: .4byte gUnknown_80E24F8 _0803387C: ldr r0, [r6] ldr r5, _0803389C adds r0, r5 ldr r0, [r0] cmp r0, 0x1A beq _080338A8 cmp r0, 0x1D bne _080338B4 ldr r0, _080338A0 _0803388E: ldr r3, _080338A4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _0803389C: .4byte 0x00000564 _080338A0: .4byte gUnknown_80E41DC _080338A4: .4byte 0x00000101 _080338A8: ldr r0, _080338BC ldr r3, _080338C0 movs r1, 0 movs r2, 0 bl sub_80141B4 _080338B4: add sp, 0x68 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080338BC: .4byte gUnknown_80E4314 _080338C0: .4byte 0x00000101 thumb_func_end sub_8032828 thumb_func_start sub_80338C4 sub_80338C4: push {lr} ldr r1, _080338D8 ldr r1, [r1] str r0, [r1] bl nullsub_40 bl sub_8032828 pop {r0} bx r0 .align 2, 0 _080338D8: .4byte gUnknown_203B33C thumb_func_end sub_80338C4 thumb_func_start sub_80338DC sub_80338DC: push {lr} cmp r0, 0x10 bls _080338E4 b _080339BC _080338E4: lsls r0, 2 ldr r1, _080338F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080338F0: .4byte _080338F4 .align 2, 0 _080338F4: .4byte _080339BC .4byte _08033998 .4byte _08033940 .4byte _08033938 .4byte _08033948 .4byte _08033998 .4byte _08033950 .4byte _08033958 .4byte _08033960 .4byte _08033968 .4byte _08033970 .4byte _08033978 .4byte _08033980 .4byte _08033990 .4byte _08033998 .4byte _080339B0 .4byte _08033988 _08033938: ldr r0, _0803393C b _0803399A .align 2, 0 _0803393C: .4byte gUnknown_80E44A4 _08033940: ldr r0, _08033944 b _0803399A .align 2, 0 _08033944: .4byte gUnknown_80E4500 _08033948: ldr r0, _0803394C b _0803399A .align 2, 0 _0803394C: .4byte gUnknown_80E4550 _08033950: ldr r0, _08033954 b _0803399A .align 2, 0 _08033954: .4byte gUnknown_80E45B4 _08033958: ldr r0, _0803395C b _0803399A .align 2, 0 _0803395C: .4byte gUnknown_80E460C _08033960: ldr r0, _08033964 b _0803399A .align 2, 0 _08033964: .4byte gUnknown_80E4650 _08033968: ldr r0, _0803396C b _0803399A .align 2, 0 _0803396C: .4byte gUnknown_80E468C _08033970: ldr r0, _08033974 b _0803399A .align 2, 0 _08033974: .4byte gUnknown_80E46C8 _08033978: ldr r0, _0803397C b _0803399A .align 2, 0 _0803397C: .4byte gUnknown_80E4704 _08033980: ldr r0, _08033984 b _0803399A .align 2, 0 _08033984: .4byte gUnknown_80E4744 _08033988: ldr r0, _0803398C b _0803399A .align 2, 0 _0803398C: .4byte gUnknown_80E4788 _08033990: ldr r0, _08033994 b _0803399A .align 2, 0 _08033994: .4byte gUnknown_80E47D8 _08033998: ldr r0, _080339A8 _0803399A: ldr r3, _080339AC movs r1, 0 movs r2, 0 bl sub_80141B4 b _080339BC .align 2, 0 _080339A8: .4byte gUnknown_80E4480 _080339AC: .4byte 0x00000101 _080339B0: ldr r0, _080339C0 ldr r3, _080339C4 movs r1, 0 movs r2, 0 bl sub_80141B4 _080339BC: pop {r0} bx r0 .align 2, 0 _080339C0: .4byte gUnknown_80E482C _080339C4: .4byte 0x00000101 thumb_func_end sub_80338DC thumb_func_start sub_80339C8 sub_80339C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033A24 ldr r0, _080339F4 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080339F8 strh r1, [r0] ldr r0, [sp] cmp r0, 0x1 beq _08033A0E cmp r0, 0x1 bgt _080339FC cmp r0, 0 beq _08033A06 b _08033A24 .align 2, 0 _080339F4: .4byte gUnknown_203B33C _080339F8: .4byte 0x0000ffff _080339FC: cmp r0, 0x8 beq _08033A1E cmp r0, 0x17 beq _08033A16 b _08033A24 _08033A06: movs r0, 0x3 bl sub_80338C4 b _08033A24 _08033A0E: movs r0, 0x4 bl sub_80338C4 b _08033A24 _08033A16: movs r0, 0x78 bl sub_80338C4 b _08033A24 _08033A1E: movs r0, 0x2 bl sub_80338C4 _08033A24: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80339C8 thumb_func_start sub_8033A2C sub_8033A2C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 beq _08033A3C b _08033B86 _08033A3C: ldr r2, _08033A58 ldr r1, [r2] movs r0, 0x8 str r0, [r1, 0x40] ldr r0, [sp] subs r0, 0x3 cmp r0, 0x11 bls _08033A4E b _08033B86 _08033A4E: lsls r0, 2 ldr r1, _08033A5C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033A58: .4byte gUnknown_203B33C _08033A5C: .4byte _08033A60 .align 2, 0 _08033A60: .4byte _08033ACA .4byte _08033AEC .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B80 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033AA8 .4byte _08033B14 .4byte _08033B3E .4byte _08033B68 _08033AA8: ldr r0, [r2] movs r1, 0x2 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x11 str r1, [r0] movs r0, 0x1 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x31 bl sub_80338C4 b _08033B86 _08033ACA: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08033B36 movs r0, 0xF bl sub_80338C4 b _08033B86 _08033AEC: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x1C bl sub_80338C4 b _08033B86 _08033B0C: movs r0, 0x22 bl sub_80338C4 b _08033B86 _08033B14: ldr r0, [r2] movs r1, 0x5 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x12 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 beq _08033B36 movs r0, 0x3D bl sub_80338C4 b _08033B86 _08033B36: movs r0, 0xE bl sub_80338C4 b _08033B86 _08033B3E: ldr r0, [r2] movs r1, 0x6 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 movs r1, 0x13 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08033B60 movs r0, 0x51 bl sub_80338C4 b _08033B86 _08033B60: movs r0, 0x5B bl sub_80338C4 b _08033B86 _08033B68: ldr r0, [r2] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x14 str r1, [r0] movs r0, 0x52 bl sub_80338C4 b _08033B86 _08033B80: movs r0, 0x1 bl sub_80338C4 _08033B86: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033A2C thumb_func_start sub_8033B8C sub_8033B8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033C4C ldr r2, [sp] cmp r2, 0xC bgt _08033BAA cmp r2, 0xB bge _08033BB0 cmp r2, 0x8 beq _08033C46 b _08033C4C _08033BAA: cmp r2, 0xD beq _08033BF4 b _08033C4C _08033BB0: ldr r0, _08033BD4 ldr r0, [r0] ldr r1, _08033BD8 adds r2, r0, r1 movs r1, 0xB str r1, [r2] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x4 beq _08033BEC cmp r0, 0x4 bhi _08033BDC cmp r0, 0x3 beq _08033BE4 b _08033C4C .align 2, 0 _08033BD4: .4byte gUnknown_203B33C _08033BD8: .4byte 0x00000524 _08033BDC: cmp r0, 0x12 bhi _08033C4C cmp r0, 0x11 bcc _08033C4C _08033BE4: movs r0, 0x5 bl sub_80338C4 b _08033C4C _08033BEC: movs r0, 0x23 bl sub_80338C4 b _08033C4C _08033BF4: ldr r0, _08033C14 ldr r0, [r0] ldr r3, _08033C18 adds r1, r0, r3 str r2, [r1] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C3E cmp r0, 0x4 bhi _08033C1C cmp r0, 0x3 beq _08033C26 b _08033C4C .align 2, 0 _08033C14: .4byte gUnknown_203B33C _08033C18: .4byte 0x00000524 _08033C1C: cmp r0, 0x11 beq _08033C2E cmp r0, 0x12 beq _08033C36 b _08033C4C _08033C26: movs r0, 0x19 bl sub_80338C4 b _08033C4C _08033C2E: movs r0, 0x39 bl sub_80338C4 b _08033C4C _08033C36: movs r0, 0x43 bl sub_80338C4 b _08033C4C _08033C3E: movs r0, 0x2D bl sub_80338C4 b _08033C4C _08033C46: movs r0, 0x1 bl sub_80338C4 _08033C4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033B8C thumb_func_start sub_8033C54 sub_8033C54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033CA2 ldr r0, [sp] cmp r0, 0x6 beq _08033C6E cmp r0, 0x8 beq _08033C9C b _08033CA2 _08033C6E: ldr r0, _08033C88 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C94 cmp r0, 0x4 bhi _08033C8C cmp r0, 0x3 beq _08033C94 b _08033CA2 .align 2, 0 _08033C88: .4byte gUnknown_203B33C _08033C8C: cmp r0, 0x11 beq _08033C94 cmp r0, 0x12 bne _08033CA2 _08033C94: movs r0, 0xD bl sub_80338C4 b _08033CA2 _08033C9C: movs r0, 0x1 bl sub_80338C4 _08033CA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033C54 thumb_func_start nullsub_41 nullsub_41: bx lr thumb_func_end nullsub_41 thumb_func_start sub_8033CAC sub_8033CAC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D40 ldr r4, _08033CDC ldr r1, [r4] ldr r0, [r1, 0x44] cmp r0, 0 bne _08033D36 movs r2, 0xA5 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x4 beq _08033D2E cmp r0, 0x4 bhi _08033CE0 cmp r0, 0x3 beq _08033CEA b _08033D40 .align 2, 0 _08033CDC: .4byte gUnknown_203B33C _08033CE0: cmp r0, 0x11 beq _08033CF2 cmp r0, 0x12 beq _08033CFA b _08033D40 _08033CEA: movs r0, 0x16 bl sub_80338C4 b _08033D40 _08033CF2: movs r0, 0x37 bl sub_80338C4 b _08033D40 _08033CFA: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08033D12 ldr r0, [r4] movs r1, 0xB4 lsls r1, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] b _08033D1A _08033D12: ldr r0, [r4] adds r0, 0xE0 movs r1, 0 ldrsh r0, [r0, r1] _08033D1A: cmp r0, 0 beq _08033D26 movs r0, 0x3F bl sub_80338C4 b _08033D40 _08033D26: movs r0, 0x40 bl sub_80338C4 b _08033D40 _08033D2E: movs r0, 0x2B bl sub_80338C4 b _08033D40 _08033D36: bl sub_80338DC movs r0, 0x8 bl sub_80338C4 _08033D40: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8033CAC thumb_func_start sub_8033D48 sub_8033D48: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D5C movs r0, 0x1 bl sub_80338C4 _08033D5C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D48 thumb_func_start nullsub_42 nullsub_42: bx lr thumb_func_end nullsub_42 thumb_func_start nullsub_43 nullsub_43: bx lr thumb_func_end nullsub_43 thumb_func_start nullsub_44 nullsub_44: bx lr thumb_func_end nullsub_44 thumb_func_start nullsub_45 nullsub_45: bx lr thumb_func_end nullsub_45 thumb_func_start sub_8033D74 sub_8033D74: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D8E movs r0, 0x17 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08033D8E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D74 thumb_func_start sub_8033D94 sub_8033D94: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033DB6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08033DB6 bl sub_8012750 movs r0, 0x18 bl sub_80338C4 _08033DB6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D94 thumb_func_start sub_8033DBC sub_8033DBC: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08033DD6 b _08033F38 _08033DD6: cmp r4, 0x3 beq _08033DDC b _08033F58 _08033DDC: ldr r2, _08033DF4 ldr r1, _08033DF8 ldr r0, [r1] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x3 beq _08033DFC cmp r0, 0x12 beq _08033E00 b _08033E02 .align 2, 0 _08033DF4: .4byte 0x0000ffdc _08033DF8: .4byte gUnknown_203B33C _08033DFC: movs r2, 0x1C b _08033E02 _08033E00: movs r2, 0x1E _08033E02: ldr r1, [r1] adds r1, 0x8 adds r0, r2, 0 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08033E16 b _08033F2E _08033E16: lsls r0, 2 ldr r1, _08033E20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033E20: .4byte _08033E24 .align 2, 0 _08033E24: .4byte _08033EA0 .4byte _08033F2E .4byte _08033EE0 .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033E6C .4byte _08033E98 .4byte _08033ED8 .4byte _08033F2E .4byte _08033F2E .4byte _08033EA8 .4byte _08033EFC .4byte _08033F2E _08033E6C: ldr r0, _08033E90 ldr r3, _08033E94 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x1B bl sub_80338C4 b _08033F2E .align 2, 0 _08033E90: .4byte gUnknown_80E48A8 _08033E94: .4byte gUnknown_80E2290 _08033E98: ldr r0, _08033E9C b _08033EE2 .align 2, 0 _08033E9C: .4byte gUnknown_80E48E8 _08033EA0: ldr r0, _08033EA4 b _08033EE2 .align 2, 0 _08033EA4: .4byte gUnknown_80E460C _08033EA8: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08033ED0 ldr r3, _08033ED4 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x16 bl sub_80338C4 b _08033F2E .align 2, 0 _08033ED0: .4byte gUnknown_80E4928 _08033ED4: .4byte 0x00000101 _08033ED8: ldr r0, _08033EDC b _08033EE2 .align 2, 0 _08033EDC: .4byte gUnknown_80E4964 _08033EE0: ldr r0, _08033EF4 _08033EE2: ldr r3, _08033EF8 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x8 bl sub_80338C4 b _08033F2E .align 2, 0 _08033EF4: .4byte gUnknown_80E499C _08033EF8: .4byte 0x00000101 _08033EFC: add r1, sp, 0x14 movs r0, 0x5 strb r0, [r1] adds r0, r1, 0 bl sub_80951FC ldr r1, [sp, 0x24] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08033F34 ldr r0, [r0] movs r1, 0 movs r2, 0x5C bl MemoryFill8 movs r0, 0x40 bl sub_80338C4 _08033F2E: bl sub_80155F0 b _08033F58 .align 2, 0 _08033F34: .4byte gUnknown_203B484 _08033F38: bl sub_80155F0 bl sub_8004914 ldr r0, _08033F60 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08033F58: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08033F60: .4byte gUnknown_203B33C thumb_func_end sub_8033DBC thumb_func_start sub_8033F64 sub_8033F64: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FAE ldr r0, [sp] cmp r0, 0x6 beq _08033F7E cmp r0, 0x8 beq _08033FA8 b _08033FAE _08033F7E: ldr r0, _08033F94 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 beq _08033F98 cmp r0, 0x12 beq _08033FA0 b _08033FAE .align 2, 0 _08033F94: .4byte gUnknown_203B33C _08033F98: movs r0, 0x19 bl sub_80338C4 b _08033FAE _08033FA0: movs r0, 0x43 bl sub_80338C4 b _08033FAE _08033FA8: movs r0, 0x1 bl sub_80338C4 _08033FAE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033F64 thumb_func_start sub_8033FB4 sub_8033FB4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FDE ldr r0, [sp] cmp r0, 0x6 bne _08033FD0 movs r0, 0xE bl sub_80338C4 b _08033FDE _08033FD0: cmp r0, 0x6 blt _08033FDE cmp r0, 0x8 bgt _08033FDE movs r0, 0x1 bl sub_80338C4 _08033FDE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033FB4 thumb_func_start sub_8033FE4 sub_8033FE4: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0803400C cmp r0, 0x3 bhi _08033FFA cmp r0, 0x2 beq _08034000 b _0803406A _08033FFA: cmp r0, 0x4 beq _08034028 b _0803406A _08034000: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _0803406A _0803400C: bl sub_80307EC ldr r1, _08034024 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x1E bl sub_80338C4 b _0803406A .align 2, 0 _08034024: .4byte gUnknown_203B33C _08034028: ldr r4, _08034070 ldr r1, [r4] movs r0, 0x1D str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 _0803406A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034070: .4byte gUnknown_203B33C thumb_func_end sub_8033FE4 thumb_func_start sub_8034074 sub_8034074: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080340B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080340A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080340A6: ldr r0, [sp] cmp r0, 0x8 beq _08034108 cmp r0, 0x8 bgt _080340BC cmp r0, 0x5 beq _08034108 b _08034124 .align 2, 0 _080340B8: .4byte gUnknown_203B33C _080340BC: cmp r0, 0x9 beq _080340C6 cmp r0, 0xA beq _080340D2 b _08034124 _080340C6: bl sub_803084C movs r0, 0x20 bl sub_80338C4 b _08034124 _080340D2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 b _08034124 _08034108: ldr r0, _0803412C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1D bl sub_80338C4 _08034124: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803412C: .4byte gUnknown_203B33C thumb_func_end sub_8034074 thumb_func_start sub_8034130 sub_8034130: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034184 cmp r0, 0x2 bcc _08034184 bl sub_8030DE4 bl sub_8004914 ldr r4, _0803417C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034180 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x1E bl sub_80338C4 b _08034184 .align 2, 0 _0803417C: .4byte gUnknown_203B33C _08034180: bl sub_80338C4 _08034184: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034130 thumb_func_start sub_803418C sub_803418C: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _080341D0 cmp r0, 0x3 bhi _080341A2 cmp r0, 0x2 beq _080341A8 b _08034248 _080341A2: cmp r0, 0x4 beq _08034204 b _08034248 _080341A8: bl sub_8023C60 movs r0, 0x1 bl sub_80338C4 bl sub_8035D1C ldr r0, _080341C8 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080341CC strh r1, [r0] b _08034248 .align 2, 0 _080341C8: .4byte gUnknown_203B33C _080341CC: .4byte 0x0000ffff _080341D0: bl sub_8023B44 ldr r1, _080341F4 ldr r1, [r1] movs r3, 0xA7 lsls r3, 3 adds r2, r1, r3 strh r0, [r2] ldr r0, _080341F8 adds r1, r0 ldr r0, [r1] cmp r0, 0xE bne _080341FC movs r0, 0x9 bl sub_80338C4 b _08034248 .align 2, 0 _080341F4: .4byte gUnknown_203B33C _080341F8: .4byte 0x00000524 _080341FC: movs r0, 0x27 bl sub_80338C4 b _08034248 _08034204: ldr r4, _08034250 ldr r1, [r4] movs r0, 0x26 str r0, [r1, 0x4] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] movs r5, 0xA7 lsls r5, 3 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r3, 0 ldrsh r0, [r0, r3] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 _08034248: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034250: .4byte gUnknown_203B33C thumb_func_end sub_803418C thumb_func_start sub_8034254 sub_8034254: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _08034298 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034286 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034286: ldr r0, [sp] cmp r0, 0x8 beq _080342EA cmp r0, 0x8 bgt _0803429C cmp r0, 0x5 beq _080342EA b _08034304 .align 2, 0 _08034298: .4byte gUnknown_203B33C _0803429C: cmp r0, 0x9 beq _080342A6 cmp r0, 0xA beq _080342B2 b _08034304 _080342A6: bl sub_8023C60 movs r0, 0x29 bl sub_80338C4 b _08034304 _080342B2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 b _08034304 _080342EA: ldr r0, _0803430C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_8023DA4 movs r0, 0x26 bl sub_80338C4 _08034304: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803430C: .4byte gUnknown_203B33C thumb_func_end sub_8034254 thumb_func_start sub_8034310 sub_8034310: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08034320 bl sub_802452C b _08034370 _08034320: cmp r0, 0x1 bcc _08034370 cmp r0, 0x3 bhi _08034370 bl sub_802453C bl sub_8004914 ldr r4, _08034368 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803436C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x27 bl sub_80338C4 b _08034370 .align 2, 0 _08034368: .4byte gUnknown_203B33C _0803436C: bl sub_80338C4 _08034370: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034310 thumb_func_start sub_8034378 sub_8034378: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343BE ldr r0, [sp] cmp r0, 0x8 beq _080343B8 cmp r0, 0x10 bne _080343BE ldr r0, _080343A8 ldr r0, [r0] ldr r1, _080343AC adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _080343B0 movs r0, 0x9 bl sub_80338C4 b _080343BE .align 2, 0 _080343A8: .4byte gUnknown_203B33C _080343AC: .4byte 0x00000524 _080343B0: movs r0, 0x5 bl sub_80338C4 b _080343BE _080343B8: movs r0, 0x1 bl sub_80338C4 _080343BE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034378 thumb_func_start sub_80343C4 sub_80343C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343FE ldr r0, [sp] cmp r0, 0x7 beq _080343F0 cmp r0, 0x7 bgt _080343E2 cmp r0, 0x6 beq _080343E8 b _080343FE _080343E2: cmp r0, 0x8 beq _080343F8 b _080343FE _080343E8: movs r0, 0x5 bl sub_80338C4 b _080343FE _080343F0: movs r0, 0x25 bl sub_80338C4 b _080343FE _080343F8: movs r0, 0x1 bl sub_80338C4 _080343FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80343C4 thumb_func_start sub_8034404 sub_8034404: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034472 ldr r0, [sp] cmp r0, 0xF beq _08034428 cmp r0, 0xF bgt _08034422 cmp r0, 0x8 beq _0803446C b _08034472 _08034422: cmp r0, 0x10 beq _08034444 b _08034472 _08034428: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _0803443C movs r0, 0x24 bl sub_80338C4 b _08034472 _0803443C: movs r0, 0x25 bl sub_80338C4 b _08034472 _08034444: ldr r0, _0803445C ldr r0, [r0] ldr r1, _08034460 adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _08034464 movs r0, 0x9 bl sub_80338C4 b _08034472 .align 2, 0 _0803445C: .4byte gUnknown_203B33C _08034460: .4byte 0x00000524 _08034464: movs r0, 0x5 bl sub_80338C4 b _08034472 _0803446C: movs r0, 0x1 bl sub_80338C4 _08034472: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034404 thumb_func_start sub_8034478 sub_8034478: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803449A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803449A bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _0803449A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034478 thumb_func_start sub_80344A0 sub_80344A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080344BA movs r0, 0x2C bl sub_80338C4 movs r0, 0 bl sub_8012574 _080344BA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80344A0 thumb_func_start sub_80344C0 sub_80344C0: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080344F8 cmp r0, 0x1 bcc _080344FC cmp r0, 0x3 bhi _080344FC bl sub_8031E10 bl sub_8004914 ldr r0, _080344F4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2F bl sub_80338C4 b _080344FC .align 2, 0 _080344F4: .4byte gUnknown_203B33C _080344F8: bl sub_8031E00 _080344FC: pop {r0} bx r0 thumb_func_end sub_80344C0 thumb_func_start sub_8034500 sub_8034500: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034528 cmp r0, 0x3 bhi _08034516 cmp r0, 0x2 beq _0803451C b _08034586 _08034516: cmp r0, 0x4 beq _08034544 b _08034586 _0803451C: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034586 _08034528: bl sub_80307EC ldr r1, _08034540 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x33 bl sub_80338C4 b _08034586 .align 2, 0 _08034540: .4byte gUnknown_203B33C _08034544: ldr r4, _0803458C ldr r1, [r4] movs r0, 0x32 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 _08034586: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803458C: .4byte gUnknown_203B33C thumb_func_end sub_8034500 thumb_func_start sub_8034590 sub_8034590: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080345D4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080345C2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080345C2: ldr r0, [sp] cmp r0, 0x8 beq _08034624 cmp r0, 0x8 bgt _080345D8 cmp r0, 0x5 beq _08034624 b _08034640 .align 2, 0 _080345D4: .4byte gUnknown_203B33C _080345D8: cmp r0, 0x9 beq _080345E2 cmp r0, 0xA beq _080345EE b _08034640 _080345E2: bl sub_803084C movs r0, 0x35 bl sub_80338C4 b _08034640 _080345EE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 b _08034640 _08034624: ldr r0, _08034648 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x32 bl sub_80338C4 _08034640: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034648: .4byte gUnknown_203B33C thumb_func_end sub_8034590 thumb_func_start sub_803464C sub_803464C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _080346A0 cmp r0, 0x2 bcc _080346A0 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034698 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803469C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x33 bl sub_80338C4 b _080346A0 .align 2, 0 _08034698: .4byte gUnknown_203B33C _0803469C: bl sub_80338C4 _080346A0: pop {r4} pop {r0} bx r0 thumb_func_end sub_803464C thumb_func_start sub_80346A8 sub_80346A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346D2 ldr r0, [sp] cmp r0, 0x6 bne _080346C4 movs r0, 0xE bl sub_80338C4 b _080346D2 _080346C4: cmp r0, 0x6 blt _080346D2 cmp r0, 0x8 bgt _080346D2 movs r0, 0x1 bl sub_80338C4 _080346D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346A8 thumb_func_start sub_80346D8 sub_80346D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346FA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080346FA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _080346FA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346D8 thumb_func_start sub_8034700 sub_8034700: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803471A movs r0, 0x38 bl sub_80338C4 movs r0, 0 bl sub_8012574 _0803471A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034700 thumb_func_start sub_8034720 sub_8034720: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034734 movs r0, 0x3A bl sub_80338C4 _08034734: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034720 thumb_func_start sub_803473C sub_803473C: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08034774 cmp r0, 0x1 bcc _08034778 cmp r0, 0x3 bhi _08034778 bl sub_8031E10 bl sub_8004914 ldr r0, _08034770 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3B bl sub_80338C4 b _08034778 .align 2, 0 _08034770: .4byte gUnknown_203B33C _08034774: bl sub_8031E00 _08034778: pop {r0} bx r0 thumb_func_end sub_803473C thumb_func_start sub_803477C sub_803477C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347A6 ldr r0, [sp] cmp r0, 0x6 bne _08034798 movs r0, 0xE bl sub_80338C4 b _080347A6 _08034798: cmp r0, 0x6 blt _080347A6 cmp r0, 0x8 bgt _080347A6 movs r0, 0x1 bl sub_80338C4 _080347A6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803477C thumb_func_start sub_80347AC sub_80347AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347C0 movs r0, 0xD bl sub_80338C4 _080347C0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347AC thumb_func_start sub_80347C8 sub_80347C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347DC movs r0, 0x40 bl sub_80338C4 _080347DC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347C8 thumb_func_start sub_80347E4 sub_80347E4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347FE movs r0, 0x41 bl sub_80338C4 movs r0, 0 bl sub_8012574 _080347FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347E4 thumb_func_start sub_8034804 sub_8034804: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034826 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034826 bl sub_8012750 movs r0, 0x42 bl sub_80338C4 _08034826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034804 thumb_func_start sub_803482C sub_803482C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034840 movs r0, 0x1 bl sub_80338C4 _08034840: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803482C thumb_func_start sub_8034848 sub_8034848: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _080348BA ldr r4, _0803489C ldr r0, [r4] ldr r5, _080348A0 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _080348A4 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r4, [r4] ldr r0, [r4, 0x44] cmp r0, 0 bne _080348B0 ldr r4, [r4, 0x40] cmp r4, 0x6 beq _080348A8 cmp r4, 0x7 bne _080348BA movs r0, 0x6D bl sub_80338C4 b _080348BA .align 2, 0 _0803489C: .4byte gUnknown_203B33C _080348A0: .4byte 0x0000041c _080348A4: .4byte 0x0000041e _080348A8: movs r0, 0x50 bl sub_80338C4 b _080348BA _080348B0: bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _080348BA: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034848 thumb_func_start sub_80348C4 sub_80348C4: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _08034968 ldr r4, _08034910 ldr r0, [r4] ldr r5, _08034914 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08034918 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0803495C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _0803491C cmp r1, 0x7 beq _08034954 b _08034968 .align 2, 0 _08034910: .4byte gUnknown_203B33C _08034914: .4byte 0x0000041c _08034918: .4byte 0x0000041e _0803491C: ldr r1, _08034930 adds r0, r1 ldr r0, [r0] cmp r0, 0xC beq _08034944 cmp r0, 0xC bhi _08034934 cmp r0, 0xB beq _08034938 b _08034944 .align 2, 0 _08034930: .4byte 0x00000524 _08034934: cmp r0, 0xE bhi _08034944 _08034938: ldr r0, _0803494C ldr r3, _08034950 movs r1, 0 movs r2, 0 bl sub_80141B4 _08034944: movs r0, 0x77 bl sub_80338C4 b _08034968 .align 2, 0 _0803494C: .4byte gUnknown_80E31FC _08034950: .4byte 0x00000101 _08034954: movs r0, 0x6D bl sub_80338C4 b _08034968 _0803495C: adds r0, r1, 0 bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _08034968: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80348C4 thumb_func_start sub_8034970 sub_8034970: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080349A8 cmp r0, 0x1 bcc _080349AC cmp r0, 0x3 bhi _080349AC bl sub_8031E10 bl sub_8004914 ldr r0, _080349A4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x68 bl sub_80338C4 b _080349AC .align 2, 0 _080349A4: .4byte gUnknown_203B33C _080349A8: bl sub_8031E00 _080349AC: pop {r0} bx r0 thumb_func_end sub_8034970 thumb_func_start sub_80349B0 sub_80349B0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080349DA ldr r0, [sp] cmp r0, 0x6 bne _080349CC movs r0, 0x52 bl sub_80338C4 b _080349DA _080349CC: cmp r0, 0x6 blt _080349DA cmp r0, 0x8 bgt _080349DA movs r0, 0x1 bl sub_80338C4 _080349DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80349B0 thumb_func_start sub_80349E0 sub_80349E0: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034A08 cmp r0, 0x3 bhi _080349F6 cmp r0, 0x2 beq _080349FC b _08034A66 _080349F6: cmp r0, 0x4 beq _08034A24 b _08034A66 _080349FC: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034A66 _08034A08: bl sub_80307EC ldr r1, _08034A20 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x5D bl sub_80338C4 b _08034A66 .align 2, 0 _08034A20: .4byte gUnknown_203B33C _08034A24: ldr r4, _08034A6C ldr r1, [r4] movs r0, 0x5C str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 _08034A66: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034A6C: .4byte gUnknown_203B33C thumb_func_end sub_80349E0 thumb_func_start sub_8034A70 sub_8034A70: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08034AB4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034AA2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034AA2: ldr r0, [sp] cmp r0, 0x8 beq _08034B04 cmp r0, 0x8 bgt _08034AB8 cmp r0, 0x5 beq _08034B04 b _08034B20 .align 2, 0 _08034AB4: .4byte gUnknown_203B33C _08034AB8: cmp r0, 0x9 beq _08034AC2 cmp r0, 0xA beq _08034ACE b _08034B20 _08034AC2: bl sub_803084C movs r0, 0x5A bl sub_80338C4 b _08034B20 _08034ACE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 b _08034B20 _08034B04: ldr r0, _08034B28 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x5C bl sub_80338C4 _08034B20: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034B28: .4byte gUnknown_203B33C thumb_func_end sub_8034A70 thumb_func_start sub_8034B2C sub_8034B2C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034B80 cmp r0, 0x2 bcc _08034B80 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034B78 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034B7C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x5D bl sub_80338C4 b _08034B80 .align 2, 0 _08034B78: .4byte gUnknown_203B33C _08034B7C: bl sub_80338C4 _08034B80: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034B2C thumb_func_start sub_8034B88 sub_8034B88: push {r4-r6,lr} ldr r4, _08034BBC ldr r0, [r4] ldr r5, _08034BC0 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _08034BC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _08034BC8 adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08034BDE cmp r0, 0x3 bhi _08034BCC cmp r0, 0x2 beq _08034BD2 b _08034C30 .align 2, 0 _08034BBC: .4byte gUnknown_203B33C _08034BC0: .4byte 0x0000041e _08034BC4: .4byte 0x0000041d _08034BC8: .4byte 0x0000041c _08034BCC: cmp r0, 0x4 beq _08034BF8 b _08034C30 _08034BD2: bl sub_801CBB8 movs r0, 0x1 bl sub_80338C4 b _08034C30 _08034BDE: bl sub_801CB24 ldr r1, [r4] ldr r2, _08034BF4 adds r1, r2 strb r0, [r1] movs r0, 0x60 bl sub_80338C4 b _08034C30 .align 2, 0 _08034BF4: .4byte 0x0000041e _08034BF8: ldr r1, [r4] movs r0, 0x5F str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 _08034C30: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034B88 thumb_func_start sub_8034C38 sub_8034C38: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08034C90 cmp r0, 0x1 bcc _08034C90 cmp r0, 0x3 bhi _08034C90 bl sub_801B450 bl sub_8004914 ldr r4, _08034C88 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034C8C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x60 bl sub_80338C4 b _08034C90 .align 2, 0 _08034C88: .4byte gUnknown_203B33C _08034C8C: bl sub_80338C4 _08034C90: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034C38 thumb_func_start sub_8034C98 sub_8034C98: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _08034CDC ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034CCA ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034CCA: ldr r0, [sp] cmp r0, 0x8 beq _08034D2C cmp r0, 0x8 bgt _08034CE0 cmp r0, 0x5 beq _08034D2C b _08034D48 .align 2, 0 _08034CDC: .4byte gUnknown_203B33C _08034CE0: cmp r0, 0x9 beq _08034CEA cmp r0, 0xA beq _08034CF6 b _08034D48 _08034CEA: bl sub_801CBB8 movs r0, 0x58 bl sub_80338C4 b _08034D48 _08034CF6: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08034D28 adds r0, r1 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 b _08034D48 .align 2, 0 _08034D28: .4byte 0x0000041c _08034D2C: ldr r0, _08034D50 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_801CB5C movs r0, 0x5F bl sub_80338C4 _08034D48: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034D50: .4byte gUnknown_203B33C thumb_func_end sub_8034C98 thumb_func_start sub_8034D54 sub_8034D54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034D6E movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034D6E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034D54 thumb_func_start sub_8034D74 sub_8034D74: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08034D8E b _08034E9C _08034D8E: cmp r4, 0x3 beq _08034D94 b _08034EBC _08034D94: ldr r0, _08034DB4 ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bhi _08034E90 lsls r0, 2 ldr r1, _08034DB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034DB4: .4byte gUnknown_203B33C _08034DB8: .4byte _08034DBC .align 2, 0 _08034DBC: .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E38 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E04 .4byte _08034E90 .4byte _08034E90 .4byte _08034E30 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E54 _08034E04: ldr r0, _08034E28 ldr r3, _08034E2C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x74 bl sub_80338C4 b _08034E90 .align 2, 0 _08034E28: .4byte gUnknown_80E48A8 _08034E2C: .4byte gUnknown_80E2440 _08034E30: ldr r0, _08034E34 b _08034E3A .align 2, 0 _08034E34: .4byte gUnknown_80E49C4 _08034E38: ldr r0, _08034E4C _08034E3A: ldr r3, _08034E50 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x6B bl sub_80338C4 b _08034E90 .align 2, 0 _08034E4C: .4byte gUnknown_80E4704 _08034E50: .4byte 0x00000101 _08034E54: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _08034E98 ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x6D bl sub_80338C4 _08034E90: bl sub_80155F0 b _08034EBC .align 2, 0 _08034E98: .4byte gUnknown_203B33C _08034E9C: bl sub_80155F0 bl sub_8004914 ldr r0, _08034EC4 ldr r0, [r0] movs r3, 0xEF lsls r3, 2 adds r0, r3 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08034EBC: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034EC4: .4byte gUnknown_203B33C thumb_func_end sub_8034D74 thumb_func_start sub_8034EC8 sub_8034EC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034EEA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034EEA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034EEA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EC8 thumb_func_start sub_8034EF0 sub_8034EF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F12 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034F12 bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034F12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EF0 thumb_func_start sub_8034F18 sub_8034F18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F32 movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F32: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F18 thumb_func_start sub_8034F38 sub_8034F38: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F52 movs r0, 0x71 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F52: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F38 thumb_func_start sub_8034F58 sub_8034F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F80 ldr r0, [sp] cmp r0, 0x6 beq _08034F72 cmp r0, 0x8 beq _08034F7A b _08034F80 _08034F72: movs r0, 0x62 bl sub_80338C4 b _08034F80 _08034F7A: movs r0, 0x1 bl sub_80338C4 _08034F80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F58 thumb_func_start sub_8034F88 sub_8034F88: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803500E ldr r0, [sp] cmp r0, 0x7 beq _08035000 cmp r0, 0x7 bgt _08034FA6 cmp r0, 0x6 beq _08034FAC b _0803500E _08034FA6: cmp r0, 0x8 beq _08035008 b _0803500E _08034FAC: ldr r4, _08034FF0 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _08034FF4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _08034FD2 ldr r5, _08034FF8 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _08034FD2: ldr r0, _08034FFC ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x75 bl sub_80338C4 b _0803500E .align 2, 0 _08034FF0: .4byte gUnknown_203B33C _08034FF4: .4byte 0x0000041e _08034FF8: .4byte 0x0000041c _08034FFC: .4byte gUnknown_203B460 _08035000: movs r0, 0x57 bl sub_80338C4 b _0803500E _08035008: movs r0, 0x1 bl sub_80338C4 _0803500E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8034F88 thumb_func_start sub_8035018 sub_8035018: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035032 movs r0, 0x76 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08035032: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035018 thumb_func_start sub_8035038 sub_8035038: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803508E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803508E bl sub_8012750 ldr r0, _0803506C ldr r0, [r0] ldr r1, _08035070 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035080 cmp r0, 0xD bls _08035074 cmp r0, 0xE beq _08035088 b _0803508E .align 2, 0 _0803506C: .4byte gUnknown_203B33C _08035070: .4byte 0x00000524 _08035074: cmp r0, 0xB bcc _0803508E movs r0, 0x69 bl sub_80338C4 b _0803508E _08035080: movs r0, 0x66 bl sub_80338C4 b _0803508E _08035088: movs r0, 0x4B bl sub_80338C4 _0803508E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035038 thumb_func_start sub_8035094 sub_8035094: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080350EE ldr r0, [sp] cmp r0, 0x8 beq _080350E8 cmp r0, 0x16 bne _080350EE ldr r0, _080350C4 ldr r0, [r0] ldr r1, _080350C8 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080350D8 cmp r0, 0xD bls _080350CC cmp r0, 0xE beq _080350E0 b _080350EE .align 2, 0 _080350C4: .4byte gUnknown_203B33C _080350C8: .4byte 0x00000524 _080350CC: cmp r0, 0xB bcc _080350EE movs r0, 0x69 bl sub_80338C4 b _080350EE _080350D8: movs r0, 0x66 bl sub_80338C4 b _080350EE _080350E0: movs r0, 0x4B bl sub_80338C4 b _080350EE _080350E8: movs r0, 0x1 bl sub_80338C4 _080350EE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035094 thumb_func_start sub_80350F4 sub_80350F4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035176 ldr r0, [sp] cmp r0, 0x15 beq _08035118 cmp r0, 0x15 bgt _08035112 cmp r0, 0x8 beq _08035170 b _08035176 _08035112: cmp r0, 0x16 beq _08035134 b _08035176 _08035118: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0803512C movs r0, 0x56 bl sub_80338C4 b _08035176 _0803512C: movs r0, 0x57 bl sub_80338C4 b _08035176 _08035134: ldr r0, _0803514C ldr r0, [r0] ldr r1, _08035150 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035160 cmp r0, 0xD bls _08035154 cmp r0, 0xE beq _08035168 b _08035176 .align 2, 0 _0803514C: .4byte gUnknown_203B33C _08035150: .4byte 0x00000524 _08035154: cmp r0, 0xB bcc _08035176 movs r0, 0x69 bl sub_80338C4 b _08035176 _08035160: movs r0, 0x66 bl sub_80338C4 b _08035176 _08035168: movs r0, 0x4B bl sub_80338C4 b _08035176 _08035170: movs r0, 0x1 bl sub_80338C4 _08035176: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80350F4 thumb_func_start sub_803517C sub_803517C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080351DA ldr r0, [sp] cmp r0, 0x6 beq _08035196 cmp r0, 0x8 beq _080351D4 b _080351DA _08035196: ldr r0, _080351B0 ldr r0, [r0] ldr r1, _080351B4 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080351C4 cmp r0, 0xD bls _080351B8 cmp r0, 0xE beq _080351CC b _080351DA .align 2, 0 _080351B0: .4byte gUnknown_203B33C _080351B4: .4byte 0x00000524 _080351B8: cmp r0, 0xB bcc _080351DA movs r0, 0x69 bl sub_80338C4 b _080351DA _080351C4: movs r0, 0x66 bl sub_80338C4 b _080351DA _080351CC: movs r0, 0x4B bl sub_80338C4 b _080351DA _080351D4: movs r0, 0x1 bl sub_80338C4 _080351DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803517C thumb_func_start sub_80351E0 sub_80351E0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035208 ldr r0, [sp] cmp r0, 0x6 beq _080351FA cmp r0, 0x8 beq _08035202 b _08035208 _080351FA: movs r0, 0x72 bl sub_80338C4 b _08035208 _08035202: movs r0, 0x1 bl sub_80338C4 _08035208: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80351E0 thumb_func_start sub_8035210 sub_8035210: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803528C ldr r0, _08035238 ldr r2, [r0] ldr r1, _0803523C adds r0, r2, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0xD bgt _0803528C cmp r1, 0xB bge _08035240 cmp r1, 0x8 beq _08035286 b _0803528C .align 2, 0 _08035238: .4byte gUnknown_203B33C _0803523C: .4byte 0x00000524 _08035240: movs r3, 0xA5 lsls r3, 3 adds r0, r2, r3 ldr r0, [r0] cmp r0, 0x13 bne _08035272 movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0803526A movs r0, 0x53 bl sub_80338C4 b _0803528C _0803526A: movs r0, 0x55 bl sub_80338C4 b _0803528C _08035272: cmp r1, 0xD beq _0803527E movs r0, 0x69 bl sub_80338C4 b _0803528C _0803527E: movs r0, 0x72 bl sub_80338C4 b _0803528C _08035286: movs r0, 0x1 bl sub_80338C4 _0803528C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035210 thumb_func_start nullsub_46 nullsub_46: bx lr thumb_func_end nullsub_46 thumb_func_start nullsub_47 nullsub_47: bx lr thumb_func_end nullsub_47 thumb_func_start nullsub_48 nullsub_48: bx lr thumb_func_end nullsub_48 thumb_func_start nullsub_49 nullsub_49: bx lr thumb_func_end nullsub_49 thumb_func_start sub_80352A4 sub_80352A4: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _080352EC bl sub_802F2C0 ldr r0, _080352F4 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _080352F8 bl strcpy ldr r0, _080352FC ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x70 bl sub_80338C4 _080352EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080352F4: .4byte gUnknown_202E5D8 _080352F8: .4byte gUnknown_202DF98 _080352FC: .4byte gUnknown_203B33C thumb_func_end sub_80352A4 thumb_func_start sub_8035300 sub_8035300: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035364 ldr r0, [sp] adds r1, r0, 0 subs r1, 0x19 adds r2, r0, 0 cmp r1, 0x4 bhi _08035364 lsls r0, r1, 2 ldr r1, _08035324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035324: .4byte _08035328 .align 2, 0 _08035328: .4byte _0803533C .4byte _08035354 .4byte _08035344 .4byte _0803534C .4byte _08035354 _0803533C: movs r0, 0x1 bl sub_80338C4 b _08035364 _08035344: movs r0, 0x7A bl sub_80338C4 b _08035364 _0803534C: movs r0, 0x7C bl sub_80338C4 b _08035364 _08035354: ldr r0, _0803536C ldr r0, [r0] ldr r1, _08035370 adds r0, r1 str r2, [r0] movs r0, 0x79 bl sub_80338C4 _08035364: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803536C: .4byte gUnknown_203B33C _08035370: .4byte 0x00000564 thumb_func_end sub_8035300 thumb_func_start sub_8035374 sub_8035374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353AC ldr r1, [sp] cmp r1, 0x19 bne _08035390 movs r0, 0x78 bl sub_80338C4 b _080353AC _08035390: cmp r1, 0x19 blt _080353AC cmp r1, 0x22 bgt _080353AC cmp r1, 0x1E blt _080353AC ldr r0, _080353B4 ldr r0, [r0] ldr r2, _080353B8 adds r0, r2 str r1, [r0] movs r0, 0x7B bl sub_80338C4 _080353AC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353B4: .4byte gUnknown_203B33C _080353B8: .4byte 0x00000564 thumb_func_end sub_8035374 thumb_func_start sub_80353BC sub_80353BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353F4 ldr r1, [sp] cmp r1, 0x19 bne _080353D8 movs r0, 0x78 bl sub_80338C4 b _080353F4 _080353D8: cmp r1, 0x19 blt _080353F4 cmp r1, 0x26 bgt _080353F4 cmp r1, 0x23 blt _080353F4 ldr r0, _080353FC ldr r0, [r0] ldr r2, _08035400 adds r0, r2 str r1, [r0] movs r0, 0x7D bl sub_80338C4 _080353F4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353FC: .4byte gUnknown_203B33C _08035400: .4byte 0x00000564 thumb_func_end sub_80353BC thumb_func_start sub_8035404 sub_8035404: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803541A adds r0, r4, 0 bl sub_80338C4 _0803541A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8035404 thumb_func_start sub_8035424 sub_8035424: push {lr} movs r0, 0x6 bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035424 thumb_func_start sub_8035430 sub_8035430: push {lr} movs r0, 0x4F bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035430 thumb_func_start nullsub_50 nullsub_50: bx lr thumb_func_end nullsub_50 thumb_func_start nullsub_51 nullsub_51: bx lr thumb_func_end nullsub_51 thumb_func_start sub_8035444 sub_8035444: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x84 mov r8, r0 adds r5, r1, 0 ldr r4, _080354C0 movs r0, 0x6C movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x60] str r5, [r0, 0x64] mov r1, r8 str r1, [r0, 0x68] ldr r2, _080354C4 mov r12, r2 mov r9, r4 movs r3, 0 movs r2, 0x3 _08035472: ldr r1, [r4] adds r1, r3 mov r0, r12 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035472 mov r0, r9 ldr r1, [r0] ldr r0, _080354C8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} bl sub_8004914 mov r1, r9 ldr r0, [r1] movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 bl sub_8099690 movs r0, 0 bl sub_80073B8 mov r2, r8 lsls r0, r2, 2 ldr r1, _080354CC adds r0, r1 ldr r1, [r0] movs r5, 0 b _08035542 .align 2, 0 _080354C0: .4byte gUnknown_203B340 _080354C4: .4byte gUnknown_80E4A10 _080354C8: .4byte gUnknown_80E4A28 _080354CC: .4byte gUnknown_80E591C _080354D0: ldr r2, [r1, 0x8] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0 blt _080354DE adds r5, r0, 0 b _080354E4 _080354DE: movs r6, 0x4 ldrsh r0, [r1, r6] subs r5, r0 _080354E4: movs r7, 0x2 ldrsh r6, [r1, r7] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080354FA cmp r0, 0x2 beq _08035514 adds r4, r1, 0 adds r4, 0xC b _08035532 _080354FA: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035506: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035506 b _0803552C _08035514: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035520: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035520 _0803552C: movs r0, 0 strb r0, [r3] add r2, sp, 0x4 _08035532: movs r0, 0 str r0, [sp] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl xxx_call_draw_string adds r1, r4, 0 _08035542: ldr r0, [r1, 0x8] cmp r0, 0 bne _080354D0 movs r0, 0 bl sub_80073E0 movs r0, 0 bl sub_80063CC ldr r2, _08035570 movs r0, 0x9 movs r1, 0 ldr r2, [r2] bl sub_8099AFC movs r0, 0x1 add sp, 0x84 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08035570: .4byte gCreditsTable thumb_func_end sub_8035444 thumb_func_start sub_8035574 sub_8035574: push {r4,lr} ldr r1, _0803558C ldr r0, [r1] ldr r0, [r0, 0x60] adds r4, r1, 0 cmp r0, 0x4 bhi _08035654 lsls r0, 2 ldr r1, _08035590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803558C: .4byte gUnknown_203B340 _08035590: .4byte _08035594 .align 2, 0 _08035594: .4byte _080355A8 .4byte _080355D0 .4byte _080355E8 .4byte _08035610 .4byte _08035638 _080355A8: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355C8 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x60] ldr r2, _080355CC movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099A5C b _08035654 .align 2, 0 _080355C8: .4byte gUnknown_203B340 _080355CC: .4byte gCreditsTable _080355D0: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355E4 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x60] b _08035654 .align 2, 0 _080355E4: .4byte gUnknown_203B340 _080355E8: ldr r1, [r4] ldr r0, [r1, 0x64] cmp r0, 0 bgt _08035600 movs r0, 0x3 str r0, [r1, 0x60] ldr r2, _0803560C movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099AFC _08035600: ldr r1, [r4] ldr r0, [r1, 0x64] subs r0, 0x1 str r0, [r1, 0x64] b _08035654 .align 2, 0 _0803560C: .4byte gCreditsTable _08035610: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08035634 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x60] b _08035654 .align 2, 0 _08035634: .4byte gUnknown_203B340 _08035638: movs r0, 0 bl sub_8099690 ldr r2, _08035650 movs r0, 0x1 movs r1, 0 ldr r2, [r2] bl sub_8099A5C movs r0, 0x3 b _08035656 .align 2, 0 _08035650: .4byte gCreditsTable _08035654: movs r0, 0 _08035656: pop {r4} pop {r1} bx r1 thumb_func_end sub_8035574 thumb_func_start sub_803565C sub_803565C: push {r4,lr} ldr r4, _08035674 ldr r0, [r4] cmp r0, 0 beq _0803566E bl MemoryFree movs r0, 0 str r0, [r4] _0803566E: pop {r4} pop {r0} bx r0 .align 2, 0 _08035674: .4byte gUnknown_203B340 thumb_func_end sub_803565C thumb_func_start sub_8035678 sub_8035678: push {r4,lr} ldr r4, _0803569C movs r0, 0x8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0] str r1, [r0, 0x4] movs r0, 0 movs r1, 0x39 bl sub_80015C0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803569C: .4byte gUnknown_203B344 thumb_func_end sub_8035678 thumb_func_start sub_80356A0 sub_80356A0: push {r4,lr} ldr r0, _080356C4 ldrh r4, [r0] ldr r3, _080356C8 ldr r2, _080356CC ldr r1, [r2] ldr r0, [r1, 0x4] lsls r0, 1 adds r0, r3 ldrh r3, [r0] ldr r0, [r1] cmp r0, 0x4 bhi _08035734 lsls r0, 2 ldr r1, _080356D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080356C4: .4byte gUnknown_20255F0 _080356C8: .4byte gUnknown_80E5990 _080356CC: .4byte gUnknown_203B344 _080356D0: .4byte _080356D4 .align 2, 0 _080356D4: .4byte _08035728 .4byte _080356E8 .4byte _08035710 .4byte _0803574C .4byte _08035730 _080356E8: cmp r3, 0 bne _080356F4 ldr r1, [r2] movs r0, 0x4 str r0, [r1] b _08035734 _080356F4: cmp r4, r3 bne _08035700 ldr r1, [r2] movs r0, 0x2 str r0, [r1] b _08035734 _08035700: ands r3, r4 cmp r3, r4 bne _08035728 ldr r1, [r2] ldr r0, [r1, 0x4] cmp r0, 0 bne _08035734 b _0803572A _08035710: cmp r4, 0 bne _08035722 ldr r1, [r2] movs r0, 0x1 str r0, [r1] ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] b _08035734 _08035722: ands r3, r4 cmp r3, r4 beq _08035734 _08035728: ldr r1, [r2] _0803572A: movs r0, 0x3 str r0, [r1] b _08035734 _08035730: movs r0, 0x3 b _0803574E _08035734: movs r0, 0 movs r1, 0x39 bl sub_8001658 cmp r0, 0 bne _08035744 movs r0, 0 b _0803574E _08035744: ldr r0, _08035754 ldr r1, [r0] movs r0, 0x3 str r0, [r1] _0803574C: movs r0, 0x2 _0803574E: pop {r4} pop {r1} bx r1 .align 2, 0 _08035754: .4byte gUnknown_203B344 thumb_func_end sub_80356A0 thumb_func_start sub_8035758 sub_8035758: push {r4,lr} ldr r4, _08035770 ldr r0, [r4] cmp r0, 0 beq _0803576A bl MemoryFree movs r0, 0 str r0, [r4] _0803576A: pop {r4} pop {r0} bx r0 .align 2, 0 _08035770: .4byte gUnknown_203B344 thumb_func_end sub_8035758 thumb_func_start InitMainMenu InitMainMenu: push {r4,r5,lr} ldr r5, _080357C8 ldr r0, [r5] cmp r0, 0 bne _08035790 movs r0, 0x40 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 movs r2, 0x40 bl MemoryFill8 _08035790: ldr r0, [r5] ldr r1, _080357CC str r1, [r0] movs r2, 0x1 str r2, [r0, 0x4] str r2, [r0, 0x8] adds r1, 0x23 strh r1, [r0, 0x38] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x3C] adds r0, 0x2E movs r4, 0 strb r4, [r0] ldr r0, [r5] adds r0, 0x2C strb r2, [r0] ldr r0, [r5] adds r0, 0x2D strb r4, [r0] bl sub_8035DA0 ldr r0, [r5] adds r0, 0x3A strb r4, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080357C8: .4byte gUnknown_203B348 _080357CC: .4byte 0x0000ffdc thumb_func_end InitMainMenu thumb_func_start sub_80357D0 sub_80357D0: push {r4,lr} ldr r4, _080357E8 ldr r0, [r4] cmp r0, 0 beq _080357E2 bl MemoryFree movs r0, 0 str r0, [r4] _080357E2: pop {r4} pop {r0} bx r0 .align 2, 0 _080357E8: .4byte gUnknown_203B348 thumb_func_end sub_80357D0 thumb_func_start SetUpMenu SetUpMenu: push {lr} ldr r0, _08035810 ldr r0, [r0] ldr r1, [r0] ldr r0, [r0, 0x4] cmp r1, r0 bne _080357FC b _08035958 _080357FC: subs r0, 0x1 cmp r0, 0x2D bls _08035804 b _08035950 _08035804: lsls r0, 2 ldr r1, _08035814 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035810: .4byte gUnknown_203B348 _08035814: .4byte _08035818 .align 2, 0 _08035818: .4byte _080358D0 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _08035934 .4byte _0803590C .4byte _080358F0 .4byte _08035912 .4byte _08035918 .4byte _0803591E .4byte _0803594C .4byte _08035950 .4byte _08035950 .4byte _080358F6 .4byte _080358F6 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035924 .4byte _08035924 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A _080358D0: bl sub_8094C14 movs r0, 0 bl sub_8099690 bl sub_8035E10 b _08035950 _080358E0: ldr r0, _080358EC ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8039254 b _08035950 .align 2, 0 _080358EC: .4byte gUnknown_203B348 _080358F0: bl sub_8036400 b _08035950 _080358F6: ldr r0, _08035908 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8035DB4 bl sub_8036FDC b _08035950 .align 2, 0 _08035908: .4byte gUnknown_203B348 _0803590C: bl sub_803225C b _08035950 _08035912: bl sub_80398AC b _08035950 _08035918: bl sub_803A1D8 b _08035950 _0803591E: bl sub_803A1E4 b _08035950 _08035924: ldr r0, _08035930 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8038900 b _08035950 .align 2, 0 _08035930: .4byte gUnknown_203B348 _08035934: bl sub_80382A0 b _08035950 _0803593A: ldr r0, _08035948 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_803850C b _08035950 .align 2, 0 _08035948: .4byte gUnknown_203B348 _0803594C: bl sub_803A200 _08035950: ldr r0, _0803595C ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1] _08035958: pop {r0} bx r0 .align 2, 0 _0803595C: .4byte gUnknown_203B348 thumb_func_end SetUpMenu thumb_func_start UpdateMenu UpdateMenu: push {lr} ldr r2, _0803597C ldr r0, _08035980 ldr r0, [r0] ldr r0, [r0, 0x4] subs r0, 0x1 cmp r0, 0x2D bls _08035972 b _08035AA6 _08035972: lsls r0, 2 ldr r1, _08035984 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803597C: .4byte 0x0000ffdc _08035980: .4byte gUnknown_203B348 _08035984: .4byte _08035988 .align 2, 0 _08035988: .4byte _08035A40 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A8E .4byte _08035A52 .4byte _08035A4C .4byte _08035A58 .4byte _08035A5E .4byte _08035A70 .4byte _08035AA0 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A88 .4byte _08035A88 .4byte _08035AA6 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A _08035A40: bl sub_8035EEC b _08035AA4 _08035A46: bl sub_803941C b _08035AA4 _08035A4C: bl sub_8036448 b _08035A62 _08035A52: bl sub_8032318 b _08035A62 _08035A58: bl sub_8039928 b _08035A62 _08035A5E: bl sub_803A1DC _08035A62: movs r2, 0x1 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A6C b _08035AA6 .align 2, 0 _08035A6C: .4byte 0x0000ffdc _08035A70: bl sub_803A1E8 movs r2, 0x5 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A84 cmp r0, 0x2 bne _08035AA6 movs r2, 0x1 b _08035AA6 .align 2, 0 _08035A84: .4byte 0x0000ffdc _08035A88: bl sub_8038A90 b _08035AA4 _08035A8E: bl sub_80382C0 b _08035AA4 _08035A94: bl sub_80383D4 b _08035AA4 _08035A9A: bl sub_8038630 b _08035AA4 _08035AA0: bl sub_803A2A4 _08035AA4: adds r2, r0, 0 _08035AA6: ldr r0, _08035AB8 cmp r2, r0 beq _08035AB2 ldr r0, _08035ABC ldr r0, [r0] str r2, [r0, 0x4] _08035AB2: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08035AB8: .4byte 0x0000ffdc _08035ABC: .4byte gUnknown_203B348 thumb_func_end UpdateMenu thumb_func_start CleanUpMenu CleanUpMenu: push {lr} ldr r0, _08035AE4 ldr r0, [r0] ldr r1, [r0, 0x8] ldr r0, [r0, 0x4] cmp r1, r0 bne _08035AD0 b _08035BF8 _08035AD0: subs r0, r1, 0x1 cmp r0, 0x2D bls _08035AD8 b _08035BF0 _08035AD8: lsls r0, 2 ldr r1, _08035AE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035AE4: .4byte gUnknown_203B348 _08035AE8: .4byte _08035AEC .align 2, 0 _08035AEC: .4byte _08035BA4 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BDA .4byte _08035BBC .4byte _08035BB0 .4byte _08035BC2 .4byte _08035BC8 .4byte _08035BCE .4byte _08035BEC .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BB6 .4byte _08035BB6 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BD4 .4byte _08035BD4 .4byte _08035BF0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 _08035BA4: bl sub_8035EC0 b _08035BF0 _08035BAA: bl sub_80393F0 b _08035BF0 _08035BB0: bl sub_8036B04 b _08035BF0 _08035BB6: bl sub_80370D4 b _08035BF0 _08035BBC: bl sub_80327E4 b _08035BF0 _08035BC2: bl sub_80399E4 b _08035BF0 _08035BC8: bl nullsub_55 b _08035BF0 _08035BCE: bl sub_803A1EC b _08035BF0 _08035BD4: bl sub_8038A5C b _08035BF0 _08035BDA: bl sub_80382AC b _08035BF0 _08035BE0: bl sub_80383A8 b _08035BF0 _08035BE6: bl sub_8038604 b _08035BF0 _08035BEC: bl sub_803A278 _08035BF0: ldr r0, _08035BFC ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1, 0x8] _08035BF8: pop {r0} bx r0 .align 2, 0 _08035BFC: .4byte gUnknown_203B348 thumb_func_end CleanUpMenu thumb_func_start sub_8035C00 sub_8035C00: ldr r1, _08035C0C ldr r1, [r1] ldr r0, [r0] str r0, [r1, 0x2C] bx lr .align 2, 0 _08035C0C: .4byte gUnknown_203B348 thumb_func_end sub_8035C00 thumb_func_start sub_8035C10 sub_8035C10: ldr r0, _08035C18 ldr r0, [r0] adds r0, 0x2C bx lr .align 2, 0 _08035C18: .4byte gUnknown_203B348 thumb_func_end sub_8035C10 thumb_func_start sub_8035C1C sub_8035C1C: ldr r2, _08035C38 ldr r0, [r2] adds r0, 0x2E movs r3, 0 strb r3, [r0] ldr r0, [r2] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] ldr r0, [r2] adds r0, 0x2D strb r3, [r0] bx lr .align 2, 0 _08035C38: .4byte gUnknown_203B348 thumb_func_end sub_8035C1C thumb_func_start SetMenuItems SetMenuItems: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldr r0, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r4 ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r0, r8 cmp r0, 0 beq _08035C90 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 ldr r1, [sp, 0x28] str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012D60 b _08035CA8 _08035C90: lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012E04 _08035CA8: adds r0, r4, r5 lsls r0, 4 adds r0, r6 adds r0, 0x4C movs r1, 0x1 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetMenuItems thumb_func_start sub_8035CC0 sub_8035CC0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_8006518 lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, r5 ldr r0, _08035CF0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 adds r0, r5, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08035CF0: .4byte gUnknown_80E59A8 thumb_func_end sub_8035CC0 thumb_func_start sub_8035CF4 sub_8035CF4: push {lr} adds r3, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r0, r3 adds r1, r0, 0 adds r1, 0x4C strb r2, [r1] adds r2, r0, 0 adds r2, 0x4D movs r1, 0x1 strb r1, [r2] subs r1, 0x2 str r1, [r0, 0x48] bl sub_8012EBC pop {r0} bx r0 thumb_func_end sub_8035CF4 thumb_func_start sub_8035D1C sub_8035D1C: ldr r0, _08035D28 ldr r1, [r0] ldr r0, _08035D2C strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D28: .4byte gUnknown_203B348 _08035D2C: .4byte 0x0000ffff thumb_func_end sub_8035D1C thumb_func_start sub_8035D30 sub_8035D30: ldr r1, _08035D38 ldr r1, [r1] strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D38: .4byte gUnknown_203B348 thumb_func_end sub_8035D30 thumb_func_start sub_8035D3C sub_8035D3C: ldr r0, _08035D48 ldr r0, [r0] movs r1, 0x38 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08035D48: .4byte gUnknown_203B348 thumb_func_end sub_8035D3C thumb_func_start sub_8035D4C sub_8035D4C: ldr r0, _08035D54 ldr r0, [r0] bx lr .align 2, 0 _08035D54: .4byte gUnknown_203B348 thumb_func_end sub_8035D4C thumb_func_start sub_8035D58 sub_8035D58: ldr r0, _08035D64 ldr r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D64: .4byte gUnknown_203B348 thumb_func_end sub_8035D58 thumb_func_start sub_8035D68 sub_8035D68: ldr r1, _08035D70 ldr r1, [r1] str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D70: .4byte gUnknown_203B348 thumb_func_end sub_8035D68 thumb_func_start sub_8035D74 sub_8035D74: ldr r0, _08035D7C ldr r0, [r0] ldr r0, [r0, 0x3C] bx lr .align 2, 0 _08035D7C: .4byte gUnknown_203B348 thumb_func_end sub_8035D74 thumb_func_start sub_8035D80 sub_8035D80: ldr r1, _08035D90 ldr r2, [r1] ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2, 0x30] str r1, [r2, 0x34] bx lr .align 2, 0 _08035D90: .4byte gUnknown_203B348 thumb_func_end sub_8035D80 thumb_func_start sub_8035D94 sub_8035D94: ldr r0, _08035D9C ldr r0, [r0] adds r0, 0x30 bx lr .align 2, 0 _08035D9C: .4byte gUnknown_203B348 thumb_func_end sub_8035D94 thumb_func_start sub_8035DA0 sub_8035DA0: ldr r2, _08035DB0 ldr r0, [r2] adds r0, 0x30 movs r1, 0 strb r1, [r0] ldr r0, [r2] str r1, [r0, 0x34] bx lr .align 2, 0 _08035DB0: .4byte gUnknown_203B348 thumb_func_end sub_8035DA0 thumb_func_start sub_8035DB4 sub_8035DB4: push {lr} movs r1, 0x8 subs r0, 0x13 cmp r0, 0x7 bhi _08035E0A lsls r0, 2 ldr r1, _08035DC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035DC8: .4byte _08035DCC .align 2, 0 _08035DCC: .4byte _08035DEC .4byte _08035DF0 .4byte _08035DF4 .4byte _08035DF8 .4byte _08035DFC .4byte _08035E00 .4byte _08035E04 .4byte _08035E08 _08035DEC: movs r1, 0 b _08035E0A _08035DF0: movs r1, 0x1 b _08035E0A _08035DF4: movs r1, 0x2 b _08035E0A _08035DF8: movs r1, 0x3 b _08035E0A _08035DFC: movs r1, 0x4 b _08035E0A _08035E00: movs r1, 0x5 b _08035E0A _08035E04: movs r1, 0x6 b _08035E0A _08035E08: movs r1, 0x7 _08035E0A: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8035DB4 thumb_func_start sub_8035E10 sub_8035E10: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08035EB8 ldr r0, [r5] cmp r0, 0 bne _08035E34 movs r4, 0xD4 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08035E34: mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _08035EBC movs r3, 0 movs r2, 0x3 _08035E42: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035E42 bl sub_8004914 ldr r4, _08035EB8 ldr r0, [r4] movs r6, 0xA2 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803628C ldr r0, [r4] movs r7, 0xD2 lsls r7, 1 adds r0, r7 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035E9A ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035E9A: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035EB8: .4byte gUnknown_203B34C _08035EBC: .4byte gUnknown_80E59C8 thumb_func_end sub_8035E10 thumb_func_start sub_8035EC0 sub_8035EC0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08035EE8 ldr r0, [r4] cmp r0, 0 beq _08035EE0 bl MemoryFree movs r0, 0 str r0, [r4] _08035EE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08035EE8: .4byte gUnknown_203B34C thumb_func_end sub_8035EC0 thumb_func_start sub_8035EEC sub_8035EEC: push {r4-r6,lr} sub sp, 0x4 ldr r6, _08035F64 str r6, [sp] ldr r4, _08035F68 ldr r0, [r4] ldr r5, [r0] cmp r5, 0xC beq _08035FB8 cmp r5, 0xC bls _08035F04 b _0803601A _08035F04: cmp r5, 0x1 beq _08035F0A b _0803601A _08035F0A: adds r0, 0xA4 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035F28 ldr r0, [r4] adds r0, 0x4 mov r1, sp bl sub_8013114 _08035F28: bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035F4A ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035F4A: ldr r1, [sp] cmp r1, 0xC beq _08035FA8 cmp r1, 0xC bhi _08035F6C cmp r1, 0x3 beq _08035FAC cmp r1, 0x3 bcc _0803601A cmp r1, 0x6 bcc _0803601A b _08035FAC .align 2, 0 _08035F64: .4byte 0x0000ffdc _08035F68: .4byte gUnknown_203B34C _08035F6C: cmp r1, r6 beq _08035FF2 cmp r1, r6 bhi _08035F7A cmp r1, 0x10 bhi _0803601A b _08035FAC _08035F7A: ldr r0, _08035FA4 cmp r1, r0 bne _0803601A ldr r0, [r4] str r5, [r0] str r6, [sp] bl sub_8004914 ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 b _0803601A .align 2, 0 _08035FA4: .4byte 0x0000ffdd _08035FA8: bl sub_8035DA0 _08035FAC: ldr r1, _08035FB4 ldr r0, [sp] str r0, [r1] b _0803601A .align 2, 0 _08035FB4: .4byte gUnknown_203B350 _08035FB8: adds r0, 0x54 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035FCE ldr r0, [r4] adds r0, 0x54 mov r1, sp bl sub_8013114 _08035FCE: ldr r1, [sp] cmp r1, 0x12 beq _08036008 cmp r1, 0x12 bhi _08035FDE cmp r1, 0x11 beq _08035FFC b _0803601A _08035FDE: cmp r1, r6 beq _08036018 ldr r0, _08035FF8 cmp r1, r0 bne _0803601A bl sub_803623C ldr r1, [r4] movs r0, 0x1 str r0, [r1] _08035FF2: str r6, [sp] b _0803601A .align 2, 0 _08035FF8: .4byte 0x0000ffdd _08035FFC: ldr r0, _08036004 str r1, [r0] str r5, [sp] b _0803601A .align 2, 0 _08036004: .4byte gUnknown_203B354 _08036008: ldr r0, _08036014 str r1, [r0] movs r0, 0x14 str r0, [sp] b _0803601A .align 2, 0 _08036014: .4byte gUnknown_203B354 _08036018: str r1, [sp] _0803601A: ldr r0, [sp] add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8035EEC thumb_func_start SetMainMenuType SetMainMenuType: push {r4-r6,lr} sub sp, 0x10 ldr r6, _08036048 ldr r2, [r6] ldr r0, [r2, 0x8] movs r3, 0x30 ldrsh r1, [r2, r3] lsls r1, 3 adds r1, r0 ldr r5, [r1, 0x4] movs r0, 0xD2 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] cmp r0, r5 bne _0803604C movs r0, 0 b _08036226 .align 2, 0 _08036048: .4byte gUnknown_203B34C _0803604C: str r5, [r1] movs r4, 0xA2 lsls r4, 1 adds r0, r2, r4 movs r1, 0x2 bl sub_8035CC0 ldr r0, [r6] adds r0, r4 movs r1, 0x3 bl sub_8035CC0 subs r0, r5, 0x3 cmp r0, 0xD bls _0803606C b _08036224 _0803606C: lsls r0, 2 ldr r1, _08036078 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036078: .4byte _0803607C .align 2, 0 _0803607C: .4byte _08036114 .4byte _08036224 .4byte _08036224 .4byte _080360F4 .4byte _08036134 .4byte _08036154 .4byte _08036224 .4byte _08036174 .4byte _08036194 .4byte _080361B4 .4byte _080360D4 .4byte _080361D4 .4byte _080360B4 .4byte _08036204 _080360B4: ldr r0, _080360C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080360CC ldr r2, _080360D0 b _080361E4 .align 2, 0 _080360C8: .4byte gUnknown_203B34C _080360CC: .4byte gUnknown_80E5CB4 _080360D0: .4byte gUnknown_80E6030 _080360D4: ldr r0, _080360E8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080360EC ldr r2, _080360F0 b _080361E4 .align 2, 0 _080360E8: .4byte gUnknown_203B34C _080360EC: .4byte gUnknown_80E5CB4 _080360F0: .4byte gUnknown_80E5F80 _080360F4: ldr r0, _08036108 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803610C ldr r2, _08036110 b _080361E4 .align 2, 0 _08036108: .4byte gUnknown_203B34C _0803610C: .4byte gUnknown_80E5CB4 _08036110: .4byte gUnknown_80E5F1C _08036114: ldr r0, _08036128 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803612C ldr r2, _08036130 b _080361E4 .align 2, 0 _08036128: .4byte gUnknown_203B34C _0803612C: .4byte gUnknown_80E5CB4 _08036130: .4byte gUnknown_80E5CCC _08036134: ldr r0, _08036148 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803614C ldr r2, _08036150 b _080361E4 .align 2, 0 _08036148: .4byte gUnknown_203B34C _0803614C: .4byte gUnknown_80E5CB4 _08036150: .4byte gUnknown_80E5DA0 _08036154: ldr r0, _08036168 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803616C ldr r2, _08036170 b _080361E4 .align 2, 0 _08036168: .4byte gUnknown_203B34C _0803616C: .4byte gUnknown_80E5CB4 _08036170: .4byte gUnknown_80E5DF0 _08036174: ldr r0, _08036188 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803618C ldr r2, _08036190 b _080361E4 .align 2, 0 _08036188: .4byte gUnknown_203B34C _0803618C: .4byte gUnknown_80E5CB4 _08036190: .4byte gUnknown_80E5D0C _08036194: ldr r0, _080361A8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361AC ldr r2, _080361B0 b _080361E4 .align 2, 0 _080361A8: .4byte gUnknown_203B34C _080361AC: .4byte gUnknown_80E5CB4 _080361B0: .4byte gUnknown_80E5E5C _080361B4: ldr r0, _080361C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080361CC ldr r2, _080361D0 b _080361E4 .align 2, 0 _080361C8: .4byte gUnknown_203B34C _080361CC: .4byte gUnknown_80E5CB4 _080361D0: .4byte gUnknown_80E5EBC _080361D4: ldr r0, _080361F8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361FC ldr r2, _08036200 _080361E4: str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems b _08036224 .align 2, 0 _080361F8: .4byte gUnknown_203B34C _080361FC: .4byte gUnknown_80E5CB4 _08036200: .4byte gUnknown_80E5FCC _08036204: ldr r0, _08036230 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036234 ldr r2, _08036238 str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems _08036224: movs r0, 0x1 _08036226: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08036230: .4byte gUnknown_203B34C _08036234: .4byte gUnknown_80E5CB4 _08036238: .4byte gUnknown_80E5D48 thumb_func_end SetMainMenuType thumb_func_start sub_803623C sub_803623C: push {r4,lr} ldr r4, _08036288 ldr r0, [r4] movs r1, 0xA2 lsls r1, 1 adds r0, r1 movs r1, 0x1 bl sub_8035CC0 bl sub_803628C ldr r0, [r4] movs r1, 0xD2 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08036276 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08036276: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036288: .4byte gUnknown_203B34C thumb_func_end sub_803623C thumb_func_start sub_803628C sub_803628C: push {r4,lr} sub sp, 0x10 bl sub_8011C34 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803629E b _080363A4 _0803629E: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08036344 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _080362FC bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _080362DC ldr r0, _080362D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362D4 ldr r2, _080362D8 b _0803637C .align 2, 0 _080362D0: .4byte gUnknown_203B34C _080362D4: .4byte gUnknown_80E5A78 _080362D8: .4byte gUnknown_80E5C18 _080362DC: ldr r0, _080362F0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362F4 ldr r2, _080362F8 b _0803637C .align 2, 0 _080362F0: .4byte gUnknown_203B34C _080362F4: .4byte gUnknown_80E5BC4 _080362F8: .4byte gUnknown_80E5BDC _080362FC: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _08036324 ldr r0, _08036318 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803631C ldr r2, _08036320 b _0803637C .align 2, 0 _08036318: .4byte gUnknown_203B34C _0803631C: .4byte gUnknown_80E5A78 _08036320: .4byte gUnknown_80E5AFC _08036324: ldr r0, _08036338 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803633C ldr r2, _08036340 b _0803637C .align 2, 0 _08036338: .4byte gUnknown_203B34C _0803633C: .4byte gUnknown_80E5A60 _08036340: .4byte gUnknown_80E5A90 _08036344: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _0803636C ldr r0, _08036360 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036364 ldr r2, _08036368 b _0803637C .align 2, 0 _08036360: .4byte gUnknown_203B34C _08036364: .4byte gUnknown_80E5A78 _08036368: .4byte gUnknown_80E5B8C _0803636C: ldr r0, _08036394 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036398 ldr r2, _0803639C _0803637C: str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363A0 ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080363C8 .align 2, 0 _08036394: .4byte gUnknown_203B34C _08036398: .4byte gUnknown_80E5B34 _0803639C: .4byte gUnknown_80E5B4C _080363A0: .4byte gUnknown_203B350 _080363A4: ldr r0, _080363D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080363D4 ldr r2, _080363D8 str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363DC ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080363C8: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _080363D0: .4byte gUnknown_203B34C _080363D4: .4byte gUnknown_80E59E0 _080363D8: .4byte gUnknown_80E59F8 _080363DC: .4byte gUnknown_203B350 thumb_func_end sub_803628C thumb_func_start sub_80363E0 sub_80363E0: push {lr} ldr r0, _080363F4 ldr r0, [r0] cmp r0, 0 beq _080363F8 ldr r0, [r0] cmp r0, 0xC beq _080363F8 movs r0, 0x1 b _080363FA .align 2, 0 _080363F4: .4byte gUnknown_203B34C _080363F8: movs r0, 0 _080363FA: pop {r1} bx r1 thumb_func_end sub_80363E0 thumb_func_start sub_8036400 sub_8036400: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08036444 movs r4, 0xE8 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 bl sub_8035C1C bl sub_8035DA0 ldr r1, [r5] movs r0, 0x13 str r0, [r1, 0x4] movs r0, 0 bl sub_8036FC4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08036444: .4byte gUnknown_203B358 thumb_func_end sub_8036400 thumb_func_start sub_8036448 sub_8036448: push {lr} ldr r0, _08036460 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x12 bhi _08036524 lsls r0, 2 ldr r1, _08036464 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036460: .4byte gUnknown_203B358 _08036464: .4byte _08036468 .align 2, 0 _08036468: .4byte _080364B4 .4byte _080364BA .4byte _080364C0 .4byte _080364C6 .4byte _080364D2 .4byte _080364CC .4byte _080364D8 .4byte _080364DE .4byte _080364E4 .4byte _080364F0 .4byte _080364F6 .4byte _080364FC .4byte _08036502 .4byte _08036514 .4byte _08036508 .4byte _080364EA .4byte _0803650E .4byte _0803651A .4byte _08036520 _080364B4: bl sub_803652C b _08036524 _080364BA: bl sub_8036590 b _08036524 _080364C0: bl sub_80365AC b _08036524 _080364C6: bl sub_8036674 b _08036524 _080364CC: bl sub_8036728 b _08036524 _080364D2: bl sub_8036788 b _08036524 _080364D8: bl sub_8036830 b _08036524 _080364DE: bl sub_803689C b _08036524 _080364E4: bl sub_80368D4 b _08036524 _080364EA: bl sub_8036A7C b _08036524 _080364F0: bl sub_8036934 b _08036524 _080364F6: bl sub_8036950 b _08036524 _080364FC: bl sub_8036AA4 b _08036524 _08036502: bl sub_80369FC b _08036524 _08036508: bl sub_8036A34 b _08036524 _0803650E: bl sub_8036A54 b _08036524 _08036514: bl sub_8036A18 b _08036524 _0803651A: bl sub_8036ADC b _08036524 _08036520: movs r0, 0x3 b _08036526 _08036524: movs r0, 0 _08036526: pop {r1} bx r1 thumb_func_end sub_8036448 thumb_func_start sub_803652C sub_803652C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r1, r0, 0 cmp r1, 0 bne _0803658A ldr r2, [sp] cmp r2, 0x1 beq _08036556 cmp r2, 0x1 bgt _0803654C cmp r2, 0 beq _08036584 b _0803658A _0803654C: cmp r2, 0x2 beq _0803656C cmp r2, 0x7 beq _08036584 b _0803658A _08036556: ldr r0, _08036568 ldr r0, [r0] str r1, [r0, 0x8] str r2, [r0, 0x10] movs r0, 0x1 bl sub_8036FC4 b _0803658A .align 2, 0 _08036568: .4byte gUnknown_203B358 _0803656C: ldr r0, _08036580 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x8] str r2, [r1, 0x10] movs r0, 0x7 bl sub_8036FC4 b _0803658A .align 2, 0 _08036580: .4byte gUnknown_203B358 _08036584: movs r0, 0x12 bl sub_8036FC4 _0803658A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803652C thumb_func_start sub_8036590 sub_8036590: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080365A4 movs r0, 0x2 bl sub_8036FC4 _080365A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036590 thumb_func_start sub_80365AC sub_80365AC: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _080365E8 ldr r0, [r4] ldr r7, _080365EC adds r0, r7 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r6, _080365F0 adds r0, r6 movs r5, 0x1 strb r5, [r0] ldr r0, [r4] movs r2, 0x97 lsls r2, 2 mov r8, r2 add r0, r8 strb r1, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08036606 cmp r0, 0x3 bhi _080365F4 cmp r0, 0x2 beq _080365FA b _0803666A .align 2, 0 _080365E8: .4byte gUnknown_203B358 _080365EC: .4byte 0x0000025e _080365F0: .4byte 0x0000025d _080365F4: cmp r0, 0x4 beq _0803662C b _0803666A _080365FA: bl sub_801CBB8 movs r0, 0 bl sub_8036FC4 b _0803666A _08036606: bl sub_801CB24 ldr r1, [r4] ldr r2, _08036624 adds r1, r2 strb r0, [r1] ldr r0, [r4] ldr r1, _08036628 adds r0, r1 strb r5, [r0] movs r0, 0x3 bl sub_8036FC4 b _0803666A .align 2, 0 _08036624: .4byte 0x0000025e _08036628: .4byte 0x0000025d _0803662C: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r7 strb r0, [r1] ldr r0, [r4] adds r0, r6 strb r5, [r0] ldr r0, [r4] movs r2, 0xF2 lsls r2, 1 adds r0, r2 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] add r0, r8 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 _0803666A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80365AC thumb_func_start sub_8036674 sub_8036674: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _080366B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080366A6 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 mov r1, sp bl sub_8013114 _080366A6: ldr r0, [sp] cmp r0, 0x3 beq _080366C6 cmp r0, 0x3 bgt _080366BC cmp r0, 0 beq _08036700 b _0803671A .align 2, 0 _080366B8: .4byte gUnknown_203B358 _080366BC: cmp r0, 0x4 beq _080366CE cmp r0, 0x7 beq _08036700 b _0803671A _080366C6: movs r0, 0x4 bl sub_8036FC4 b _0803671A _080366CE: ldr r0, [r4] movs r1, 0x13 str r1, [r0, 0x4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x97 lsls r1, 2 adds r0, r1 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 b _0803671A _08036700: ldr r0, _08036724 ldr r0, [r0] movs r1, 0xC2 lsls r1, 1 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x2 bl sub_8036FC4 _0803671A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036724: .4byte gUnknown_203B358 thumb_func_end sub_8036674 thumb_func_start sub_8036728 sub_8036728: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08036780 cmp r0, 0x1 bcc _08036780 cmp r0, 0x3 bhi _08036780 bl sub_801B450 bl sub_8004914 ldr r4, _08036778 ldr r0, [r4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x13 bne _0803677C adds r0, r4, 0 adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036780 .align 2, 0 _08036778: .4byte gUnknown_203B358 _0803677C: bl sub_8036FC4 _08036780: pop {r4} pop {r0} bx r0 thumb_func_end sub_8036728 thumb_func_start sub_8036788 sub_8036788: push {r4,lr} ldr r4, _080367B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 movs r0, 0 bl sub_801CA08 ldr r0, [r4] adds r0, 0x14 bl sub_8013BBC cmp r0, 0x1 beq _080367BC cmp r0, 0x1 bcc _08036824 cmp r0, 0x2 beq _080367D2 cmp r0, 0x3 beq _080367F8 b _08036824 .align 2, 0 _080367B8: .4byte gUnknown_203B358 _080367BC: bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 b _08036824 _080367D2: ldr r0, [r4] movs r2, 0xC2 lsls r2, 1 adds r0, r2 movs r1, 0x2 bl sub_8035CC0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036824 _080367F8: ldr r0, [r4] ldr r1, [r0, 0x14] ldr r2, _0803682C adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x1 adds r1, r0, r2 ldrb r1, [r1] subs r2, 0xA adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r1, r0, r2 ldr r0, [r0, 0x14] str r0, [r1] bl sub_801CBB8 movs r0, 0x6 bl sub_8036FC4 _08036824: pop {r4} pop {r0} bx r0 .align 2, 0 _0803682C: .4byte 0x0000025d thumb_func_end sub_8036788 thumb_func_start sub_8036830 sub_8036830: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036896 ldr r0, [sp] cmp r0, 0x5 beq _08036854 cmp r0, 0x5 bgt _0803684E cmp r0, 0 beq _08036890 b _08036896 _0803684E: cmp r0, 0x6 beq _08036890 b _08036896 _08036854: bl sub_801CBB8 ldr r0, _08036884 ldr r2, [r0] ldr r0, _08036888 ldr r1, [r0] ldr r3, _0803688C adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] ldr r1, [r1, 0x14] subs r0, r1 strh r0, [r2] movs r0, 0xF bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _08036896 .align 2, 0 _08036884: .4byte gUnknown_203B460 _08036888: .4byte gUnknown_203B358 _0803688C: .4byte 0x0000025e _08036890: movs r0, 0 bl sub_8036FC4 _08036896: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036830 thumb_func_start sub_803689C sub_803689C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080368CE ldr r0, [sp] cmp r0, 0x5 beq _080368C0 cmp r0, 0x5 bgt _080368BA cmp r0, 0 beq _080368C8 b _080368CE _080368BA: cmp r0, 0x7 beq _080368C8 b _080368CE _080368C0: movs r0, 0x9 bl sub_8036FC4 b _080368CE _080368C8: movs r0, 0x12 bl sub_8036FC4 _080368CE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803689C thumb_func_start sub_80368D4 sub_80368D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803692A ldr r0, [sp] cmp r0, 0x5 beq _080368F8 cmp r0, 0x5 bgt _080368F2 cmp r0, 0 beq _08036900 b _0803692A _080368F2: cmp r0, 0x7 beq _08036900 b _0803692A _080368F8: movs r0, 0x9 bl sub_8036FC4 b _0803692A _08036900: ldr r0, _08036930 ldr r1, [r0] movs r2, 0x95 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0803692A adds r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0803692A bl sub_80369D0 movs r0, 0x11 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _0803692A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036930: .4byte gUnknown_203B358 thumb_func_end sub_80368D4 thumb_func_start sub_8036934 sub_8036934: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036948 movs r0, 0xA bl sub_8036FC4 _08036948: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036934 thumb_func_start sub_8036950 sub_8036950: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080369C8 ldr r0, _08036978 ldr r2, [r0] ldr r1, [r2, 0xC] adds r3, r0, 0 cmp r1, 0 bne _0803698C ldr r0, [r2, 0x8] cmp r0, 0 beq _0803697C cmp r0, 0x1 beq _08036984 b _080369C8 .align 2, 0 _08036978: .4byte gUnknown_203B358 _0803697C: movs r0, 0xD bl sub_8036FC4 b _080369C8 _08036984: movs r0, 0xE bl sub_8036FC4 b _080369C8 _0803698C: ldr r0, [r2, 0x8] cmp r0, 0 bne _080369BA movs r1, 0x95 lsls r1, 2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080369BA adds r1, 0x4 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0 beq _080369BA bl sub_80369D0 movs r0, 0xB bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _080369C8 _080369BA: ldr r0, [r3] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _080369C8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036950 thumb_func_start sub_80369D0 sub_80369D0: ldr r0, _080369F4 ldr r2, [r0] ldr r0, _080369F8 ldr r1, [r0] movs r3, 0x95 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] adds r3, 0x4 adds r1, r3 ldr r1, [r1] adds r0, r1 strh r0, [r2] bx lr .align 2, 0 _080369F4: .4byte gUnknown_203B460 _080369F8: .4byte gUnknown_203B358 thumb_func_end sub_80369D0 thumb_func_start sub_80369FC sub_80369FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A10 movs r0, 0 bl sub_8036FC4 _08036A10: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80369FC thumb_func_start sub_8036A18 sub_8036A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A2C movs r0, 0x12 bl sub_8036FC4 _08036A2C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A18 thumb_func_start sub_8036A34 sub_8036A34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A4E movs r0, 0x10 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _08036A4E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A34 thumb_func_start sub_8036A54 sub_8036A54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A76 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A76 bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036A76: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A54 thumb_func_start sub_8036A7C sub_8036A7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A9E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A9E bl sub_8012750 movs r0, 0x8 bl sub_8036FC4 _08036A9E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A7C thumb_func_start sub_8036AA4 sub_8036AA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AD0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AD0 bl sub_8012750 ldr r0, _08036AD8 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _08036AD0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036AD8: .4byte gUnknown_203B358 thumb_func_end sub_8036AA4 thumb_func_start sub_8036ADC sub_8036ADC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AFE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AFE bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036AFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036ADC thumb_func_start sub_8036B04 sub_8036B04: push {r4,lr} ldr r4, _08036B20 ldr r0, [r4] cmp r0, 0 beq _08036B1A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_801CBB8 _08036B1A: pop {r4} pop {r0} bx r0 .align 2, 0 _08036B20: .4byte gUnknown_203B358 thumb_func_end sub_8036B04 thumb_func_start nullsub_52 nullsub_52: bx lr thumb_func_end nullsub_52 thumb_func_start sub_8036B28 sub_8036B28: push {r4,r5,lr} sub sp, 0x18 ldr r1, _08036B44 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x12 bls _08036B3A b _08036DFA _08036B3A: lsls r0, 2 ldr r1, _08036B48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036B44: .4byte gUnknown_203B358 _08036B48: .4byte _08036B4C .align 2, 0 _08036B4C: .4byte _08036B98 .4byte _08036BDC .4byte _08036BE4 .4byte _08036C14 .4byte _08036C58 .4byte _08036DFA .4byte _08036C5E .4byte _08036C90 .4byte _08036C98 .4byte _08036CC0 .4byte _08036CD8 .4byte _08036DFA .4byte _08036DFA .4byte _08036DD8 .4byte _08036D70 .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA _08036B98: movs r0, 0 bl sub_801CF14 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08036BB8 ldr r0, _08036BB0 ldr r3, _08036BB4 movs r2, 0 b _08036BBC .align 2, 0 _08036BB0: .4byte gUnknown_80E61A4 _08036BB4: .4byte gUnknown_80E60D4 _08036BB8: ldr r0, _08036BD4 ldr r3, _08036BD8 _08036BBC: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _08036DFA .align 2, 0 _08036BD4: .4byte gUnknown_80E61A4 _08036BD8: .4byte gUnknown_80E60A0 _08036BDC: ldr r0, _08036BE0 b _08036DBA .align 2, 0 _08036BE0: .4byte gUnknown_80E61C0 _08036BE4: bl sub_801D008 cmp r0, 0 beq _08036BEE b _08036DFA _08036BEE: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08036C10 str r0, [sp, 0x14] movs r0, 0 movs r1, 0x1 add r2, sp, 0x14 movs r3, 0x9 bl sub_801C8C4 b _08036DFA .align 2, 0 _08036C10: .4byte 0x00020003 _08036C14: ldr r0, [r5] movs r4, 0xC2 lsls r4, 1 adds r0, r4 bl sub_8006518 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x44 adds r1, r4 ldr r3, _08036C50 ldr r2, _08036C54 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 ldr r0, [r5] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08036DFA .align 2, 0 _08036C50: .4byte gUnknown_80E60EC _08036C54: .4byte gUnknown_80E6104 _08036C58: bl sub_8036F74 b _08036DFA _08036C5E: ldr r2, _08036C7C ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036C80 ldr r2, _08036C84 adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036C88 ldr r3, _08036C8C b _08036C9C .align 2, 0 _08036C7C: .4byte gUnknown_202DE30 _08036C80: .4byte gUnknown_202DE58 _08036C84: .4byte 0x0000025e _08036C88: .4byte gUnknown_80E61E4 _08036C8C: .4byte gUnknown_80E6154 _08036C90: ldr r0, _08036C94 b _08036C9A .align 2, 0 _08036C94: .4byte gUnknown_80E6214 _08036C98: ldr r0, _08036CB8 _08036C9A: ldr r3, _08036CBC _08036C9C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08036DFA .align 2, 0 _08036CB8: .4byte gUnknown_80E6268 _08036CBC: .4byte gUnknown_80E618C _08036CC0: movs r0, 0 bl nullsub_23 ldr r0, _08036CD4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036CD4: .4byte gUnknown_80E62C4 _08036CD8: ldr r4, _08036D18 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] movs r2, 0 movs r3, 0 movs r5, 0x91 lsls r5, 2 adds r0, r1, r5 str r2, [r0] str r3, [r0, 0x4] movs r0, 0x93 lsls r0, 2 adds r1, r0 str r2, [r1] str r3, [r1, 0x4] bl sub_8011830 ldr r0, [r4] ldr r0, [r0, 0x8] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0xC] cmp r0, 0 bne _08036D44 ldr r0, [r4, 0x8] cmp r0, 0 beq _08036D1C cmp r0, 0x1 beq _08036D2C b _08036D44 .align 2, 0 _08036D18: .4byte gUnknown_203B358 _08036D1C: adds r2, r4, r5 movs r1, 0x95 lsls r1, 2 adds r0, r4, r1 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] _08036D2C: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0x8] movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0xC] _08036D44: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0xC] cmp r0, 0 bne _08036D66 ldr r0, [r2, 0x8] cmp r0, 0x1 bhi _08036D66 movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0xC] _08036D66: bl sub_8011854 b _08036DFA .align 2, 0 _08036D6C: .4byte gUnknown_203B358 _08036D70: ldr r2, [r5] movs r1, 0x94 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 bne _08036DA4 ldr r1, _08036D9C movs r3, 0x92 lsls r3, 2 adds r0, r2, r3 ldr r0, [r0] str r0, [r1] ldr r0, _08036DA0 subs r3, 0x4 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 b _08036DB8 .align 2, 0 _08036D9C: .4byte gUnknown_202DE30 _08036DA0: .4byte gUnknown_202DE58 _08036DA4: ldr r0, _08036DC8 str r1, [r0] ldr r0, _08036DCC movs r3, 0x93 lsls r3, 2 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 _08036DB8: ldr r0, _08036DD0 _08036DBA: ldr r3, _08036DD4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036DC8: .4byte gUnknown_202DE30 _08036DCC: .4byte gUnknown_202DE58 _08036DD0: .4byte gUnknown_80E6314 _08036DD4: .4byte 0x00000101 _08036DD8: ldr r2, _08036E04 ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036E08 ldr r2, _08036E0C adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036E10 ldr r3, _08036E14 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036DFA: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036E04: .4byte gUnknown_202DE30 _08036E08: .4byte gUnknown_202DE58 _08036E0C: .4byte 0x0000025e _08036E10: .4byte gUnknown_80E6358 _08036E14: .4byte 0x00000101 thumb_func_end sub_8036B28 thumb_func_start sub_8036E18 sub_8036E18: push {lr} cmp r0, 0xF bhi _08036EB4 lsls r0, 2 ldr r1, _08036E28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036E28: .4byte _08036E2C .align 2, 0 _08036E2C: .4byte _08036EC0 .4byte _08036E6C .4byte _08036E7C .4byte _08036E74 .4byte _08036E84 .4byte _08036E8C .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036E94 .4byte _08036E9C _08036E6C: ldr r0, _08036E70 b _08036E9E .align 2, 0 _08036E70: .4byte gUnknown_80E6378 _08036E74: ldr r0, _08036E78 b _08036E9E .align 2, 0 _08036E78: .4byte gUnknown_80E639C _08036E7C: ldr r0, _08036E80 b _08036E9E .align 2, 0 _08036E80: .4byte gUnknown_80E63F8 _08036E84: ldr r0, _08036E88 b _08036E9E .align 2, 0 _08036E88: .4byte gUnknown_80E6448 _08036E8C: ldr r0, _08036E90 b _08036E9E .align 2, 0 _08036E90: .4byte gUnknown_80E6378 _08036E94: ldr r0, _08036E98 b _08036E9E .align 2, 0 _08036E98: .4byte gUnknown_80E6378 _08036E9C: ldr r0, _08036EAC _08036E9E: ldr r3, _08036EB0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036EC0 .align 2, 0 _08036EAC: .4byte gUnknown_80E64AC _08036EB0: .4byte 0x00000101 _08036EB4: ldr r0, _08036EC4 ldr r3, _08036EC8 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036EC0: pop {r0} bx r0 .align 2, 0 _08036EC4: .4byte gUnknown_80E6378 _08036EC8: .4byte 0x00000101 thumb_func_end sub_8036E18 thumb_func_start sub_8036ECC sub_8036ECC: push {r4-r6,lr} adds r3, r0, 0 ldr r6, _08036F28 ldr r0, [r6] movs r2, 0x3 str r2, [r0, 0x24] movs r2, 0x1 str r2, [r0, 0x18] str r2, [r0, 0x1C] str r1, [r0, 0x20] movs r1, 0x2C str r1, [r0, 0x30] movs r1, 0x12 str r1, [r0, 0x34] str r3, [r0, 0x28] lsls r4, r3, 1 adds r4, r3 lsls r4, 3 movs r5, 0xC2 lsls r5, 1 adds r1, r4, r5 adds r1, r0, r1 str r1, [r0, 0x2C] adds r0, 0x14 bl sub_8013AA0 ldr r1, [r6] adds r1, r4 adds r1, r5 ldr r0, _08036F2C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 ldr r0, [r6] adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08036F28: .4byte gUnknown_203B358 _08036F2C: .4byte gUnknown_80E6174 thumb_func_end sub_8036ECC thumb_func_start sub_8036F30 sub_8036F30: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08036F6C ldr r0, [r5] ldr r4, [r0, 0x28] adds r0, r4, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _08036F70 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string ldr r0, [r5] adds r0, 0x14 bl sub_8013C68 adds r0, r4, 0 bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036F6C: .4byte gUnknown_203B358 _08036F70: .4byte gUnknown_80E6528 thumb_func_end sub_8036F30 thumb_func_start sub_8036F74 sub_8036F74: push {r4,lr} ldr r4, _08036FB8 ldr r0, [r4] movs r1, 0xC2 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, _08036FBC ldr r1, [r0] ldr r0, [r4] ldr r2, _08036FC0 adds r0, r2 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] movs r0, 0x2 bl sub_8036ECC bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 pop {r4} pop {r0} bx r0 .align 2, 0 _08036FB8: .4byte gUnknown_203B358 _08036FBC: .4byte gUnknown_203B460 _08036FC0: .4byte 0x0000025e thumb_func_end sub_8036F74 thumb_func_start sub_8036FC4 sub_8036FC4: push {lr} ldr r1, _08036FD8 ldr r1, [r1] str r0, [r1] bl nullsub_52 bl sub_8036B28 pop {r0} bx r0 .align 2, 0 _08036FD8: .4byte gUnknown_203B358 thumb_func_end sub_8036FC4 thumb_func_start sub_8036FDC sub_8036FDC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl ResetSprites ldr r5, _080370C0 ldr r0, [r5] cmp r0, 0 bne _08037016 ldr r4, _080370C4 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08037016: ldr r0, [r5] str r6, [r0] movs r1, 0 str r1, [r0, 0x4] str r1, [r0, 0x8] movs r3, 0 adds r7, r5, 0 movs r6, 0xE0 lsls r6, 1 movs r4, 0 movs r5, 0xDE lsls r5, 1 _0803702E: ldr r0, [r7] lsls r2, r3, 3 adds r1, r0, r6 adds r1, r2 str r4, [r1] adds r0, r2 adds r0, r5 strb r4, [r0] adds r3, 0x1 cmp r3, 0x1 ble _0803702E ldr r0, _080370C0 mov r12, r0 movs r5, 0xAE lsls r5, 1 mov r8, r5 ldr r4, _080370C8 movs r3, 0 movs r2, 0x3 _08037054: mov r6, r12 ldr r1, [r6] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08037054 movs r6, 0 bl sub_8004914 ldr r5, _080370C0 ldr r0, [r5] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _080370CC ldr r2, _080370D0 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80376CC add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080370C0: .4byte gUnknown_203B35C _080370C4: .4byte 0x00000504 _080370C8: .4byte gUnknown_80E653C _080370CC: .4byte gUnknown_80E6CD0 _080370D0: .4byte gUnknown_80E6CE8 thumb_func_end sub_8036FDC thumb_func_start sub_80370D4 sub_80370D4: push {r4,lr} ldr r4, _080370EC ldr r0, [r4] cmp r0, 0 beq _080370E6 bl MemoryFree movs r0, 0 str r0, [r4] _080370E6: pop {r4} pop {r0} bx r0 .align 2, 0 _080370EC: .4byte gUnknown_203B35C thumb_func_end sub_80370D4 thumb_func_start sub_80370F0 sub_80370F0: push {r4,r5,lr} sub sp, 0x4 movs r0, 0x4 str r0, [sp] ldr r5, _08037110 ldr r4, _08037114 ldr r1, [r4] ldr r0, [r1, 0x8] cmp r0, 0x1 beq _08037148 cmp r0, 0x1 bcc _08037118 cmp r0, 0x2 beq _08037158 b _080371A8 .align 2, 0 _08037110: .4byte 0x0000ffdc _08037114: .4byte gUnknown_203B35C _08037118: adds r0, r1, 0 adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _08037130 ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _08037130: ldr r0, [sp] cmp r0, 0x4 bne _0803713C bl sub_8037748 b _080371A8 _0803713C: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x8] bl sub_8037900 b _080371A8 _08037148: bl sub_80376CC ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x8] bl sub_80371B8 b _080371A8 _08037158: ldr r0, [r1] cmp r0, 0x1 bhi _08037172 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037172 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _08037172 movs r0, 0x29 b _080371AA _08037172: ldr r4, _080371B4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _0803718C ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _0803718C: ldr r0, [sp] cmp r0, 0x4 beq _080371A4 movs r0, 0x3 bl sub_80119D4 bl sub_8037798 adds r5, r0, 0 ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0x8] _080371A4: bl sub_8037748 _080371A8: adds r0, r5, 0 _080371AA: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080371B4: .4byte gUnknown_203B35C thumb_func_end sub_80370F0 thumb_func_start sub_80371B8 sub_80371B8: push {r4-r7,lr} sub sp, 0x10 movs r6, 0 movs r5, 0 bl sub_8037400 ldr r7, _0803721C ldr r1, [r7] ldr r0, [r1] cmp r0, 0x1 bhi _08037228 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037228 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _080371E0 b _080373AC _080371E0: bl sub_80376CC ldr r0, [r7] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _08037220 ldr r2, _08037224 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r7] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 b _080373AC .align 2, 0 _0803721C: .4byte gUnknown_203B35C _08037220: .4byte gUnknown_80E6C50 _08037224: .4byte gUnknown_80E6C68 _08037228: bl sub_80376CC ldr r4, _08037250 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0, 0x4] cmp r0, 0xF bls _08037246 b _0803734C _08037246: lsls r0, 2 ldr r1, _08037254 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037250: .4byte gUnknown_203B35C _08037254: .4byte _08037258 .align 2, 0 _08037258: .4byte _08037298 .4byte _080372D8 .4byte _080372B8 .4byte _080372A8 .4byte _080372C8 .4byte _080372D8 .4byte _080372E8 .4byte _080372F8 .4byte _0803734C .4byte _08037308 .4byte _0803734C .4byte _08037318 .4byte _0803734C .4byte _08037328 .4byte _08037338 .4byte _08037348 _08037298: ldr r6, _080372A0 ldr r5, _080372A4 b _0803734C .align 2, 0 _080372A0: .4byte gUnknown_80E66BC _080372A4: .4byte gUnknown_80E66D4 _080372A8: ldr r6, _080372B0 ldr r5, _080372B4 b _0803734C .align 2, 0 _080372B0: .4byte gUnknown_80E6D54 _080372B4: .4byte gUnknown_80E6D6C _080372B8: ldr r6, _080372C0 ldr r5, _080372C4 b _0803734C .align 2, 0 _080372C0: .4byte gUnknown_80E6DDC _080372C4: .4byte gUnknown_80E6DF4 _080372C8: ldr r6, _080372D0 ldr r5, _080372D4 b _0803734C .align 2, 0 _080372D0: .4byte gUnknown_80E67D4 _080372D4: .4byte gUnknown_80E67EC _080372D8: ldr r6, _080372E0 ldr r5, _080372E4 b _0803734C .align 2, 0 _080372E0: .4byte gUnknown_80E6748 _080372E4: .4byte gUnknown_80E6760 _080372E8: ldr r6, _080372F0 ldr r5, _080372F4 b _0803734C .align 2, 0 _080372F0: .4byte gUnknown_80E689C _080372F4: .4byte gUnknown_80E68B4 _080372F8: ldr r6, _08037300 ldr r5, _08037304 b _0803734C .align 2, 0 _08037300: .4byte gUnknown_80E6938 _08037304: .4byte gUnknown_80E6950 _08037308: ldr r6, _08037310 ldr r5, _08037314 b _0803734C .align 2, 0 _08037310: .4byte gUnknown_80E69B0 _08037314: .4byte gUnknown_80E69C8 _08037318: ldr r6, _08037320 ldr r5, _08037324 b _0803734C .align 2, 0 _08037320: .4byte gUnknown_80E6A10 _08037324: .4byte gUnknown_80E6A28 _08037328: ldr r6, _08037330 ldr r5, _08037334 b _0803734C .align 2, 0 _08037330: .4byte gUnknown_80E6A74 _08037334: .4byte gUnknown_80E6A8C _08037338: ldr r6, _08037340 ldr r5, _08037344 b _0803734C .align 2, 0 _08037340: .4byte gUnknown_80E6B78 _08037344: .4byte gUnknown_80E6B90 _08037348: ldr r6, _080373B4 ldr r5, _080373B8 _0803734C: ldr r4, _080373BC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 str r5, [sp] movs r3, 0 str r3, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r3, [sp, 0xC] movs r2, 0 adds r3, r6, 0 bl SetMenuItems ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0 beq _080373AC ldr r0, [r4] cmp r0, 0 bne _080373AC bl sub_8035D94 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0 beq _080373AC ldr r3, [r2, 0x4] cmp r3, 0 beq _080373AC ldr r0, _080373C0 ldr r1, [r0] ldrb r0, [r2] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, r3 strh r0, [r1] _080373AC: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080373B4: .4byte gUnknown_80E6BF4 _080373B8: .4byte gUnknown_80E6C0C _080373BC: .4byte gUnknown_203B35C _080373C0: .4byte gUnknown_203B460 thumb_func_end sub_80371B8 thumb_func_start sub_80373C4 sub_80373C4: push {lr} movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC bl sub_800CB20 bl sub_800485C bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl ResetSprites pop {r0} bx r0 thumb_func_end sub_80373C4 thumb_func_start sub_80373F4 sub_80373F4: ldr r0, _080373FC ldr r0, [r0] bx lr .align 2, 0 _080373FC: .4byte gUnknown_203B35C thumb_func_end sub_80373F4 thumb_func_start sub_8037400 sub_8037400: push {r4-r6,lr} movs r6, 0 movs r5, 0 bl sub_8037810 bl sub_8011830 ldr r4, _08037434 ldr r0, [r4] ldr r0, [r0] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0x4] cmp r0, 0 beq _08037422 b _080376BE _08037422: ldr r0, [r4] cmp r0, 0xA bls _0803742A b _080375E8 _0803742A: lsls r0, 2 ldr r1, _08037438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037434: .4byte gUnknown_203B35C _08037438: .4byte _0803743C .align 2, 0 _0803743C: .4byte _08037494 .4byte _080374B8 .4byte _08037534 .4byte _0803751C .4byte _0803756C .4byte _080375D8 .4byte _080374E4 .4byte _080374D0 .4byte _080375E8 .4byte _08037480 .4byte _08037468 _08037468: ldr r0, _0803747C ldr r0, [r0] movs r1, 0xE7 lsls r1, 2 adds r6, r0, r1 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 b _080375E8 .align 2, 0 _0803747C: .4byte gUnknown_203B35C _08037480: ldr r0, _08037490 ldr r0, [r0] movs r3, 0xE7 lsls r3, 2 adds r6, r0, r3 movs r4, 0x8A lsls r4, 3 b _080375E6 .align 2, 0 _08037490: .4byte gUnknown_203B35C _08037494: bl sub_8035D94 ldr r1, _080374B4 ldr r3, [r1] movs r5, 0xDE lsls r5, 1 adds r2, r3, r5 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] adds r6, r2, 0 movs r0, 0xE2 lsls r0, 1 adds r5, r3, r0 b _080375E8 .align 2, 0 _080374B4: .4byte gUnknown_203B35C _080374B8: ldr r0, _080374CC ldr r0, [r0] movs r1, 0xDE lsls r1, 1 adds r6, r0, r1 movs r2, 0xE2 lsls r2, 1 adds r5, r0, r2 b _080375E8 .align 2, 0 _080374CC: .4byte gUnknown_203B35C _080374D0: ldr r0, _080374E0 ldr r0, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r0, r3 movs r4, 0xFE lsls r4, 1 b _080375E6 .align 2, 0 _080374E0: .4byte gUnknown_203B35C _080374E4: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037518 ldr r1, [r3] movs r2, 0xE6 lsls r2, 1 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0xFE lsls r1, 1 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037518: .4byte gUnknown_203B35C _0803751C: ldr r0, _08037530 ldr r0, [r0] movs r2, 0x8B lsls r2, 2 adds r6, r0, r2 movs r3, 0x97 lsls r3, 2 adds r5, r0, r3 b _080375E8 .align 2, 0 _08037530: .4byte gUnknown_203B35C _08037534: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037568 ldr r1, [r3] movs r2, 0x8B lsls r2, 2 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0x97 lsls r1, 2 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037568: .4byte gUnknown_203B35C _0803756C: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r4, _080375CC ldr r1, [r4] movs r5, 0xA3 lsls r5, 2 adds r1, r5 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8035D3C lsls r0, 16 ldr r1, _080375D0 cmp r0, r1 beq _080375BE bl sub_8035D3C ldr r3, [r4] movs r1, 0xAF lsls r1, 2 adds r3, r1 ldr r1, _080375D4 ldr r1, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x58 muls r0, r2 adds r1, r0 adds r0, r3, 0 bl memcpy _080375BE: ldr r0, [r4] adds r6, r0, r5 movs r2, 0xC5 lsls r2, 2 adds r5, r0, r2 b _080375E8 .align 2, 0 _080375CC: .4byte gUnknown_203B35C _080375D0: .4byte 0xffff0000 _080375D4: .4byte gUnknown_203B45C _080375D8: ldr r0, _08037610 ldr r0, [r0] movs r3, 0xA3 lsls r3, 2 adds r6, r0, r3 movs r4, 0xC5 lsls r4, 2 _080375E6: adds r5, r0, r4 _080375E8: ldr r4, _08037610 ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0x4] cmp r0, 0 bne _080376BE ldr r0, [r1] cmp r0, 0xA bhi _080376AE lsls r0, 2 ldr r1, _08037614 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037610: .4byte gUnknown_203B35C _08037614: .4byte _08037618 .align 2, 0 _08037618: .4byte _08037644 .4byte _08037644 .4byte _08037658 .4byte _08037658 .4byte _0803766C .4byte _0803766C .4byte _08037684 .4byte _08037684 .4byte _080376AE .4byte _0803769C .4byte _0803769C _08037644: ldr r0, _08037654 ldr r2, [r0] movs r5, 0xDE lsls r5, 1 adds r6, r2, r5 movs r1, 0xE2 lsls r1, 1 b _0803767A .align 2, 0 _08037654: .4byte gUnknown_203B35C _08037658: ldr r0, _08037668 ldr r2, [r0] movs r3, 0x8B lsls r3, 2 adds r6, r2, r3 movs r4, 0x97 lsls r4, 2 b _08037692 .align 2, 0 _08037668: .4byte gUnknown_203B35C _0803766C: ldr r0, _08037680 ldr r2, [r0] movs r5, 0xA3 lsls r5, 2 adds r6, r2, r5 movs r1, 0xC5 lsls r1, 2 _0803767A: adds r5, r2, r1 adds r4, r0, 0 b _080376AE .align 2, 0 _08037680: .4byte gUnknown_203B35C _08037684: ldr r0, _08037698 ldr r2, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r2, r3 movs r4, 0xFE lsls r4, 1 _08037692: adds r5, r2, r4 adds r4, r0, 0 b _080376AE .align 2, 0 _08037698: .4byte gUnknown_203B35C _0803769C: ldr r1, _080376C8 ldr r0, [r1] movs r5, 0xE7 lsls r5, 2 adds r6, r0, r5 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 adds r4, r1, 0 _080376AE: ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x4] _080376BE: bl sub_8011854 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080376C8: .4byte gUnknown_203B35C thumb_func_end sub_8037400 thumb_func_start sub_80376CC sub_80376CC: push {r4,lr} ldr r0, _08037728 ldr r3, [r0] ldrh r1, [r3, 0xC] ldr r0, _0803772C ands r0, r1 ldr r1, _08037730 ands r0, r1 ldr r4, _08037734 ands r0, r4 ldr r1, _08037738 ands r0, r1 ldr r1, _0803773C ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _08037740 ands r0, r1 orrs r0, r2 strh r0, [r3, 0xC] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x10] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _08037744 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x10] movs r0, 0 strh r0, [r3, 0xE] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x12] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _08037728: .4byte gUnknown_203B35C _0803772C: .4byte 0x0000feff _08037730: .4byte 0x0000fdff _08037734: .4byte 0x0000f3ff _08037738: .4byte 0x0000efff _0803773C: .4byte 0x0000dfff _08037740: .4byte 0x00003fff _08037744: .4byte 0x00000fff thumb_func_end sub_80376CC thumb_func_start sub_8037748 sub_8037748: push {r4,lr} ldr r4, _08037794 ldr r3, [r4] ldrh r1, [r3, 0xE] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r3, 0xE] movs r2, 0xD0 lsls r2, 3 ldrh r1, [r3, 0x12] movs r0, 0xF ands r0, r1 orrs r0, r2 strh r0, [r3, 0x12] ldr r0, [r3, 0x14] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08037782 adds r0, r3, 0 adds r0, 0xC adds r1, 0xF8 movs r2, 0 movs r3, 0 bl AddSprite _08037782: bl xxx_draw_string_80144C4 ldr r1, [r4] ldr r0, [r1, 0x14] adds r0, 0x1 str r0, [r1, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _08037794: .4byte gUnknown_203B35C thumb_func_end sub_8037748 thumb_func_start sub_8037798 sub_8037798: push {lr} ldr r2, _080377B4 ldr r1, _080377B8 ldr r0, [r1] ldr r0, [r0] adds r3, r1, 0 cmp r0, 0xA bhi _0803780A lsls r0, 2 ldr r1, _080377BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080377B4: .4byte 0x0000ffdc _080377B8: .4byte gUnknown_203B35C _080377BC: .4byte _080377C0 .align 2, 0 _080377C0: .4byte _080377EC .4byte _080377EC .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _0803780A .4byte _080377FE .4byte _080377FE _080377EC: movs r2, 0x1 b _0803780A _080377F0: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0x1 cmp r0, 0 bne _0803780A movs r2, 0x2A b _0803780A _080377FE: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0xD cmp r0, 0 bne _0803780A movs r2, 0x2B _0803780A: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8037798 thumb_func_start sub_8037810 sub_8037810: push {r4-r6,lr} ldr r6, _080378FC ldr r0, [r6] movs r5, 0xDE lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] movs r4, 0xE2 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] adds r5, r0, r5 movs r1, 0 movs r2, 0 str r1, [r5] str r2, [r5, 0x4] adds r4, r0, r4 str r1, [r4] str r2, [r4, 0x4] movs r2, 0xE6 lsls r2, 1 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xFE lsls r3, 1 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0x8B lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x97 lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xA3 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0xC5 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0xAF lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r3, 0xD1 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r1, 0xE7 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r2, 0x8A lsls r2, 3 adds r0, r2 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] movs r3, 0xB1 lsls r3, 2 adds r0, r2, r3 movs r1, 0 strh r1, [r0] adds r3, 0x88 adds r0, r2, r3 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080378FC: .4byte gUnknown_203B35C thumb_func_end sub_8037810 thumb_func_start sub_8037900 sub_8037900: push {r4,lr} sub sp, 0x10 ldr r4, _08037928 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xA bls _0803791E b _08037A14 _0803791E: lsls r0, 2 ldr r1, _0803792C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037928: .4byte gUnknown_203B35C _0803792C: .4byte _08037930 .align 2, 0 _08037930: .4byte _0803795C .4byte _0803795C .4byte _0803797C .4byte _0803797C .4byte _0803799C .4byte _0803799C .4byte _080379BC .4byte _080379BC .4byte _08037A14 .4byte _080379F0 .4byte _080379F0 _0803795C: ldr r0, _08037970 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037974 ldr r2, _08037978 b _080379CE .align 2, 0 _08037970: .4byte gUnknown_203B35C _08037974: .4byte gUnknown_80E6554 _08037978: .4byte gUnknown_80E656C _0803797C: ldr r0, _08037990 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037994 ldr r2, _08037998 b _080379CE .align 2, 0 _08037990: .4byte gUnknown_203B35C _08037994: .4byte gUnknown_80E6554 _08037998: .4byte gUnknown_80E65D8 _0803799C: ldr r0, _080379B0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379B4 ldr r2, _080379B8 b _080379CE .align 2, 0 _080379B0: .4byte gUnknown_203B35C _080379B4: .4byte gUnknown_80E6554 _080379B8: .4byte gUnknown_80E661C _080379BC: ldr r0, _080379E4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379E8 ldr r2, _080379EC _080379CE: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08037A14 .align 2, 0 _080379E4: .4byte gUnknown_203B35C _080379E8: .4byte gUnknown_80E6554 _080379EC: .4byte gUnknown_80E665C _080379F0: ldr r0, _08037A38 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037A3C ldr r2, _08037A40 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08037A14: ldr r4, _08037A38 ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80373C4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08037A38: .4byte gUnknown_203B35C _08037A3C: .4byte gUnknown_80E6554 _08037A40: .4byte gUnknown_80E667C thumb_func_end sub_8037900 thumb_func_start nullsub_202 nullsub_202: bx lr thumb_func_end nullsub_202 thumb_func_start sub_8037A48 sub_8037A48: push {r4-r6,lr} sub sp, 0x28 movs r6, 0x1 movs r0, 0 mov r1, sp movs r2, 0x14 bl sub_800D670 add r4, sp, 0x14 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x14 bl sub_800D670 ldr r1, _08037AAC movs r3, 0x8 adds r2, r1, 0 adds r0, r2, 0x4 _08037A6C: str r3, [r0] subs r0, 0x4 cmp r0, r1 bge _08037A6C ldr r0, [sp, 0x10] str r0, [r2] ldr r0, [r4, 0x10] str r0, [r2, 0x4] ldr r5, _08037AB0 mov r0, sp adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037A8C movs r0, 0x1 _08037A8C: lsls r0, 24 cmp r0, 0 bne _08037AA6 adds r0, r4, 0 adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037AA0 movs r0, 0x1 _08037AA0: lsls r0, 24 cmp r0, 0 beq _08037AB4 _08037AA6: movs r0, 0 b _08037B1E .align 2, 0 _08037AAC: .4byte gUnknown_202EC40 _08037AB0: .4byte gUnknown_80E6E50 _08037AB4: ldr r1, [sp, 0x10] cmp r1, 0 bne _08037AC0 ldr r0, [r4, 0x10] cmp r0, 0x1 beq _08037B1C _08037AC0: cmp r1, 0x1 bne _08037ACA ldr r0, [r4, 0x10] cmp r0, 0 beq _08037B1C _08037ACA: cmp r1, 0x2 bne _08037AD4 ldr r0, [r4, 0x10] cmp r0, 0x3 beq _08037B1C _08037AD4: cmp r1, 0x3 bne _08037ADE ldr r0, [r4, 0x10] cmp r0, 0x2 beq _08037B1C _08037ADE: cmp r1, 0x9 bne _08037AE8 ldr r0, [r4, 0x10] cmp r0, 0xA beq _08037B1C _08037AE8: cmp r1, 0xA bne _08037AF2 ldr r0, [r4, 0x10] cmp r0, 0x9 beq _08037B1C _08037AF2: cmp r1, 0x4 bne _08037AFC ldr r0, [r4, 0x10] cmp r0, 0x5 beq _08037B1C _08037AFC: cmp r1, 0x5 bne _08037B06 ldr r0, [r4, 0x10] cmp r0, 0x4 beq _08037B1C _08037B06: cmp r1, 0x6 bne _08037B10 ldr r0, [r4, 0x10] cmp r0, 0x7 beq _08037B1C _08037B10: cmp r1, 0x7 bne _08037B1A ldr r0, [r4, 0x10] cmp r0, 0x6 beq _08037B1C _08037B1A: movs r6, 0 _08037B1C: adds r0, r6, 0 _08037B1E: add sp, 0x28 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8037A48 thumb_func_start sub_8037B28 sub_8037B28: push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 movs r5, 0 bl sub_800D414 ldr r0, _08037B58 str r5, [r0] ldr r5, _08037B5C mov r0, sp movs r1, 0 movs r2, 0x14 bl MemoryFill8 mov r0, sp adds r1, r5, 0 bl strcpy str r4, [sp, 0x10] mov r0, sp movs r1, 0x14 bl sub_800D59C b _08037B7A .align 2, 0 _08037B58: .4byte gUnknown_202EC38 _08037B5C: .4byte gUnknown_80E6E50 _08037B60: cmp r5, 0x3 beq _08037BCC cmp r5, 0x4 beq _08037BD8 cmp r5, 0x5 beq _08037BF0 ldr r2, _08037BC0 ldr r1, [r2] ldr r0, _08037BC4 cmp r1, r0 bgt _08037BE4 adds r0, r1, 0x1 str r0, [r2] _08037B7A: movs r4, 0 _08037B7C: bl sub_80373C4 bl sub_8012AE8 cmp r0, 0x3 bgt _08037B8C cmp r0, 0x2 bge _08037BF0 _08037B8C: adds r4, 0x1 cmp r4, 0 ble _08037B7C bl sub_800D33C adds r5, r0, 0 bl sub_800D570 cmp r5, 0x2 bne _08037B60 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037BFC bl sub_8037A48 lsls r0, 24 cmp r0, 0 bne _08037BC8 movs r4, 0x4 bl sub_800D520 bl sub_800D510 b _08037C06 .align 2, 0 _08037BC0: .4byte gUnknown_202EC38 _08037BC4: .4byte 0x00000707 _08037BC8: movs r4, 0 b _08037C06 _08037BCC: bl sub_800D520 bl sub_800D510 movs r0, 0x2 b _08037C08 _08037BD8: bl sub_800D520 bl sub_800D510 movs r0, 0x3 b _08037C08 _08037BE4: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037C08 _08037BF0: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037C08 _08037BFC: movs r4, 0x5 bl sub_800D520 bl sub_800D510 _08037C06: adds r0, r4, 0 _08037C08: add sp, 0x14 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8037B28 thumb_func_start sub_8037C10 sub_8037C10: push {lr} lsls r0, 24 cmp r0, 0 beq _08037C24 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037C38 b _08037C2E _08037C24: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08037C38 _08037C2E: ldr r0, _08037C34 ldr r0, [r0, 0x4] b _08037C3C .align 2, 0 _08037C34: .4byte gUnknown_202EC40 _08037C38: ldr r0, _08037C40 ldr r0, [r0] _08037C3C: pop {r1} bx r1 .align 2, 0 _08037C40: .4byte gUnknown_202EC40 thumb_func_end sub_8037C10 thumb_func_start sub_8037C44 sub_8037C44: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 _08037C4C: adds r0, r4, 0 bl sub_800D68C adds r4, 0x1 cmp r4, 0x1 ble _08037C4C cmp r6, 0xA bhi _08037CBE lsls r0, r6, 2 ldr r1, _08037C68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037C68: .4byte _08037C6C .align 2, 0 _08037C6C: .4byte _08037C98 .4byte _08037C98 .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CAC .4byte _08037CAC .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CBE .4byte _08037CB6 .4byte _08037CB6 _08037C98: adds r0, r5, 0 movs r1, 0x8 bl sub_800D59C b _08037CBE _08037CA2: adds r0, r5, 0 movs r1, 0x30 bl sub_800D59C b _08037CBE _08037CAC: adds r0, r5, 0 movs r1, 0x88 bl sub_800D59C b _08037CBE _08037CB6: adds r0, r5, 0 movs r1, 0xB4 bl sub_800D59C _08037CBE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8037C44 thumb_func_start sub_8037CC4 sub_8037CC4: push {r4,lr} adds r3, r1, 0 adds r4, r2, 0 cmp r0, 0xA bhi _08037D5E lsls r0, 2 ldr r1, _08037CD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037CD8: .4byte _08037CDC .align 2, 0 _08037CDC: .4byte _08037D08 .4byte _08037D08 .4byte _08037D1E .4byte _08037D1E .4byte _08037D34 .4byte _08037D34 .4byte _08037D1E .4byte _08037D1E .4byte _08037D5E .4byte _08037D4A .4byte _08037D4A _08037D08: movs r0, 0 adds r1, r3, 0 movs r2, 0x8 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x8 bl sub_800D670 b _08037D5E _08037D1E: movs r0, 0 adds r1, r3, 0 movs r2, 0x30 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x30 bl sub_800D670 b _08037D5E _08037D34: movs r0, 0 adds r1, r3, 0 movs r2, 0x88 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x88 bl sub_800D670 b _08037D5E _08037D4A: movs r0, 0 adds r1, r3, 0 movs r2, 0xB4 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xB4 bl sub_800D670 _08037D5E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8037CC4 thumb_func_start sub_8037D64 sub_8037D64: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 ldr r0, _08037D80 str r4, [r0] bl sub_800D494 adds r0, r5, 0 adds r1, r6, 0 bl sub_8037C44 b _08037D96 .align 2, 0 _08037D80: .4byte gUnknown_202EC48 _08037D84: subs r0, r4, 0x3 cmp r0, 0x2 bls _08037DBC ldr r1, _08037DB8 ldr r0, [r1] cmp r0, 0x63 bgt _08037DC8 adds r0, 0x1 str r0, [r1] _08037D96: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _08037D84 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037DD4 movs r4, 0 b _08037DDE .align 2, 0 _08037DB8: .4byte gUnknown_202EC48 _08037DBC: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037DEA _08037DC8: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037DEA _08037DD4: bl sub_800D520 bl sub_800D510 movs r4, 0x5 _08037DDE: adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037CC4 adds r0, r4, 0 _08037DEA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8037D64 thumb_func_start sub_8037DF0 sub_8037DF0: push {r4,lr} sub sp, 0x8 movs r4, 0 movs r0, 0 mov r1, sp movs r2, 0x4 bl sub_800D670 add r1, sp, 0x4 movs r0, 0x1 movs r2, 0x4 bl sub_800D670 ldr r0, [sp] cmp r0, 0 bne _08037E16 ldr r0, [sp, 0x4] cmp r0, 0 beq _08037E2C _08037E16: bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037E24 ldr r4, [sp, 0x4] b _08037E26 _08037E24: ldr r4, [sp] _08037E26: cmp r4, 0 bne _08037E2C movs r4, 0xE _08037E2C: adds r0, r4, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8037DF0 thumb_func_start sub_8037E38 sub_8037E38: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08037E4C adds r4, r5, 0 _08037E4C: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08037E5A adds r3, r6, 0 _08037E5A: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _08037E70 ldr r0, _08037E6C ldr r1, [r0] ldrb r0, [r4] b _08037E76 .align 2, 0 _08037E6C: .4byte gUnknown_203B460 _08037E70: ldr r0, _08037E8C ldr r1, [r0] ldrb r0, [r3] _08037E76: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 strh r2, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037E8C: .4byte gUnknown_203B460 thumb_func_end sub_8037E38 thumb_func_start sub_8037E90 sub_8037E90: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037EA2 adds r4, r5, 0 _08037EA2: movs r0, 0x2 strb r0, [r4] adds r0, r4, 0 bl sub_80951BC ldr r0, [r4, 0x10] bl sub_8095274 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037E90 thumb_func_start nullsub_53 nullsub_53: bx lr thumb_func_end nullsub_53 thumb_func_start sub_8037EBC sub_8037EBC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _08037ED0 adds r5, r6, 0 _08037ED0: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r4, r0, 0 adds r1, r4, 0 adds r0, r5, 0 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0x5 strb r0, [r4] adds r0, r4, 0 bl sub_80951FC movs r0, 0x7 strb r0, [r4] movs r0, 0x38 ldrsh r6, [r5, r0] cmp r6, 0 beq _08037F30 ldr r4, _08037F2C ldr r0, [r4] ldr r1, [r5, 0x10] stm r0!, {r1} adds r1, r5, 0 adds r1, 0x30 movs r2, 0x58 bl memcpy ldr r1, [r4] movs r0, 0x42 strb r0, [r1, 0x8] ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x9] b _08037F40 .align 2, 0 _08037F2C: .4byte gUnknown_203B484 _08037F30: ldr r4, _08037F48 ldr r0, [r4] movs r1, 0 movs r2, 0x5C bl MemoryFill8 ldr r0, [r4] strh r6, [r0, 0xC] _08037F40: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037F48: .4byte gUnknown_203B484 thumb_func_end sub_8037EBC thumb_func_start sub_8037F4C sub_8037F4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037F5E adds r4, r5, 0 _08037F5E: ldr r1, [r4, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r1, r4, 0 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C cmp r0, 0 beq _08037F96 adds r1, r0, 0 adds r1, 0x3A movs r0, 0x1 strb r0, [r1] _08037F96: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037F4C thumb_func_start sub_8037F9C sub_8037F9C: push {lr} adds r3, r1, 0 cmp r0, 0xA bhi _08038010 lsls r0, 2 ldr r1, _08037FB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037FB0: .4byte _08037FB4 .align 2, 0 _08037FB4: .4byte _08037FE0 .4byte _08037FE0 .4byte _08038010 .4byte _08037FF4 .4byte _08038010 .4byte _08037FFE .4byte _08038010 .4byte _08037FEA .4byte _08038010 .4byte _08038010 .4byte _08038008 _08037FE0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E38 b _08038010 _08037FEA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037F4C b _08038010 _08037FF4: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E90 b _08038010 _08037FFE: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037EBC b _08038010 _08038008: adds r0, r3, 0 adds r1, r2, 0 bl nullsub_53 _08038010: pop {r0} bx r0 thumb_func_end sub_8037F9C thumb_func_start sub_8038014 sub_8038014: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08038028 adds r4, r5, 0 _08038028: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08038036 adds r3, r6, 0 _08038036: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _0803804C ldr r0, _08038048 ldr r1, [r0] ldrb r0, [r4] b _08038052 .align 2, 0 _08038048: .4byte gUnknown_203B460 _0803804C: ldr r0, _08038070 ldr r1, [r0] ldrb r0, [r3] _08038052: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 ldr r0, _08038074 movs r1, 0 cmp r2, r0 ble _08038068 movs r1, 0x6 _08038068: adds r0, r1, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038070: .4byte gUnknown_203B460 _08038074: .4byte 0x000003e7 thumb_func_end sub_8038014 thumb_func_start sub_8038078 sub_8038078: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803808A adds r4, r5, 0 _0803808A: ldr r6, [r4, 0x10] ldr r0, _08038098 ldr r0, [r0] cmp r0, 0 beq _0803809C ldr r5, [r0, 0x50] b _080380A2 .align 2, 0 _08038098: .4byte gUnknown_203B184 _0803809C: bl sub_8011C34 adds r5, r0, 0 _080380A2: movs r0, 0x4 adds r1, r6, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _080380BA ldr r0, [r4, 0x28] cmp r0, r5 bne _080380BA movs r0, 0 b _080380BC _080380BA: movs r0, 0xB _080380BC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038078 thumb_func_start sub_80380C4 sub_80380C4: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _080380D8 adds r5, r6, 0 _080380D8: ldr r4, [r5, 0x10] movs r0, 0x2 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x4 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x6 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _08038114 _08038110: movs r0, 0x7 b _08038126 _08038114: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08038124 movs r0, 0 b _08038126 _08038124: movs r0, 0xD _08038126: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80380C4 thumb_func_start sub_803812C sub_803812C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803813E adds r4, r5, 0 _0803813E: ldr r1, [r4, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038150 movs r0, 0x9 b _08038152 _08038150: movs r0, 0 _08038152: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803812C thumb_func_start sub_8038158 sub_8038158: movs r0, 0 bx lr thumb_func_end sub_8038158 thumb_func_start sub_803815C sub_803815C: push {r4,lr} adds r3, r1, 0 movs r4, 0 cmp r0, 0xA bhi _080381D2 lsls r0, 2 ldr r1, _08038170 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038170: .4byte _08038174 .align 2, 0 _08038174: .4byte _080381A0 .4byte _080381A0 .4byte _080381D2 .4byte _080381B4 .4byte _080381D2 .4byte _080381BE .4byte _080381D2 .4byte _080381AA .4byte _080381D2 .4byte _080381D2 .4byte _080381C8 _080381A0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038014 b _080381D0 _080381AA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038078 b _080381D0 _080381B4: adds r0, r3, 0 adds r1, r2, 0 bl sub_80380C4 b _080381D0 _080381BE: adds r0, r3, 0 adds r1, r2, 0 bl sub_803812C b _080381D0 _080381C8: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038158 _080381D0: adds r4, r0, 0 _080381D2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_803815C thumb_func_start sub_80381DC sub_80381DC: push {lr} bl sub_8037F9C pop {r0} bx r0 thumb_func_end sub_80381DC thumb_func_start sub_80381E8 sub_80381E8: push {lr} bl sub_803815C pop {r1} bx r1 thumb_func_end sub_80381E8 thumb_func_start sub_80381F4 sub_80381F4: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 bl sub_803815C str r0, [sp] ldr r0, _08038218 str r4, [r0] bl sub_800D494 mov r0, sp movs r1, 0x4 bl sub_800D59C b _0803822E .align 2, 0 _08038218: .4byte gUnknown_202EC4C _0803821C: subs r0, r4, 0x3 cmp r0, 0x2 bls _08038272 ldr r1, _08038250 ldr r0, [r1] cmp r0, 0x63 bgt _0803827E adds r0, 0x1 str r0, [r1] _0803822E: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _0803821C bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08038254 bl sub_8037DF0 b _0803825E .align 2, 0 _08038250: .4byte gUnknown_202EC4C _08038254: bl sub_800D520 bl sub_800D510 movs r0, 0x5 _0803825E: str r0, [sp] ldr r0, [sp] cmp r0, 0 bne _0803828A adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037F9C b _08038292 _08038272: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08038298 _0803827E: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08038298 _0803828A: bl sub_800D520 bl sub_800D510 _08038292: bl sub_800D520 ldr r0, [sp] _08038298: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80381F4 thumb_func_start sub_80382A0 sub_80382A0: push {lr} movs r0, 0 bl sub_8031F60 pop {r0} bx r0 thumb_func_end sub_80382A0 thumb_func_start sub_80382AC sub_80382AC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_80382AC thumb_func_start sub_80382C0 sub_80382C0: push {r4,lr} ldr r4, _080382E0 movs r0, 0x1 bl sub_8031FD8 cmp r0, 0x1 bls _080382D8 cmp r0, 0x3 bhi _080382D8 bl sub_803203C movs r4, 0x1 _080382D8: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080382E0: .4byte 0x0000ffdc thumb_func_end sub_80382C0 thumb_func_start sub_80382E4 sub_80382E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _08038398 ldr r0, [r5] cmp r0, 0 bne _0803830E movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803830E: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _0803839C movs r3, 0 movs r2, 0x3 _0803831C: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803831C bl sub_8004914 ldr r5, _08038398 ldr r0, [r5] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x25 bne _08038370 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080383A0 ldr r2, _080383A4 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x4 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038370: ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r5] mov r0, r8 str r0, [r1] movs r0, 0 str r0, [r1, 0x4] bl sub_8038440 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038398: .4byte gUnknown_203B360 _0803839C: .4byte gUnknown_80E6E7C _080383A0: .4byte gUnknown_80E6E94 _080383A4: .4byte gUnknown_80E6EAC thumb_func_end sub_80382E4 thumb_func_start sub_80383A8 sub_80383A8: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _080383D0 ldr r0, [r4] cmp r0, 0 beq _080383C8 bl MemoryFree movs r0, 0 str r0, [r4] _080383C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080383D0: .4byte gUnknown_203B360 thumb_func_end sub_80383A8 thumb_func_start sub_80383D4 sub_80383D4: push {r4-r6,lr} sub sp, 0x4 movs r0, 0x2 str r0, [sp] ldr r6, _08038410 ldr r4, _08038414 ldr r0, [r4] ldr r5, [r0, 0x4] cmp r5, 0 bne _08038434 adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080383FE ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _080383FE: ldr r0, [sp] cmp r0, 0x2 beq _0803842C cmp r0, 0x2 bhi _08038418 cmp r0, 0x1 beq _0803841C b _08038430 .align 2, 0 _08038410: .4byte 0x0000ffdc _08038414: .4byte gUnknown_203B360 _08038418: cmp r0, 0x3 bne _08038430 _0803841C: ldr r0, _08038428 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r6, 0x1 b _08038430 .align 2, 0 _08038428: .4byte gUnknown_203B360 _0803842C: ldr r0, [r4] str r5, [r0, 0x4] _08038430: bl sub_80384D0 _08038434: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80383D4 thumb_func_start sub_8038440 sub_8038440: push {r4,r5,lr} movs r5, 0 ldr r0, _080384B0 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080384B4 ands r0, r1 ldr r1, _080384B8 ands r0, r1 ldr r4, _080384BC ands r0, r4 ldr r1, _080384C0 ands r0, r1 ldr r1, _080384C4 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080384C8 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080384CC ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xE0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080384B0: .4byte gUnknown_203B360 _080384B4: .4byte 0x0000feff _080384B8: .4byte 0x0000fdff _080384BC: .4byte 0x0000f3ff _080384C0: .4byte 0x0000efff _080384C4: .4byte 0x0000dfff _080384C8: .4byte 0x00003fff _080384CC: .4byte 0x00000fff thumb_func_end sub_8038440 thumb_func_start sub_80384D0 sub_80384D0: push {r4,r5,lr} ldr r5, _08038508 ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080384F6 movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080384F6: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038508: .4byte gUnknown_203B360 thumb_func_end sub_80384D0 thumb_func_start sub_803850C sub_803850C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _0803859C ldr r0, [r5] cmp r0, 0 bne _08038536 movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08038536: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _080385A0 movs r3, 0 movs r2, 0x3 _08038544: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038544 bl sub_8004914 ldr r4, _0803859C ldr r0, [r4] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x2E bne _080385AC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080385A4 ldr r2, _080385A8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080385CE .align 2, 0 _0803859C: .4byte gUnknown_203B364 _080385A0: .4byte gUnknown_80E6F20 _080385A4: .4byte gUnknown_80E6F38 _080385A8: .4byte gUnknown_80E7090 _080385AC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080385F8 ldr r2, _080385FC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080385CE: ldr r4, _08038600 ldr r0, [r4] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0 str r0, [r1, 0x4] mov r5, r8 str r5, [r1] bl sub_8038830 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080385F8: .4byte gUnknown_80E6F38 _080385FC: .4byte gUnknown_80E6F50 _08038600: .4byte gUnknown_203B364 thumb_func_end sub_803850C thumb_func_start sub_8038604 sub_8038604: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803862C ldr r0, [r4] cmp r0, 0 beq _08038624 bl MemoryFree movs r0, 0 str r0, [r4] _08038624: pop {r4} pop {r0} bx r0 .align 2, 0 _0803862C: .4byte gUnknown_203B364 thumb_func_end sub_8038604 thumb_func_start sub_8038630 sub_8038630: push {r4-r6,lr} sub sp, 0x18 ldr r5, _080386A8 movs r0, 0x3 str r0, [sp, 0x14] ldr r6, _080386AC ldr r0, [r6] ldr r4, [r0, 0x4] cmp r4, 0x1 bne _08038646 b _08038798 _08038646: cmp r4, 0x1 bcc _0803864C b _08038824 _0803864C: adds r0, 0x8 bl sub_8012FD8 movs r5, 0 str r5, [sp, 0x10] bl sub_80140F8 bl sub_8011C1C adds r1, r0, 0 add r0, sp, 0x10 bl sub_801203C adds r4, r0, 0 bl sub_8014114 cmp r4, 0 beq _080386B8 cmp r4, 0x1 beq _08038738 ldr r0, [r6] movs r4, 0xA4 lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _08038750 adds r0, r1, 0 adds r0, 0x8 adds r1, r4 ldr r3, _080386B0 ldr r2, _080386B4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _0803876E .align 2, 0 _080386A8: .4byte 0x0000ffdc _080386AC: .4byte gUnknown_203B364 _080386B0: .4byte gUnknown_80E6F38 _080386B4: .4byte gUnknown_80E7114 _080386B8: ldr r0, [r6] movs r1, 0xA4 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _080386F8 adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080386F0 ldr r2, _080386F4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038716 .align 2, 0 _080386F0: .4byte gUnknown_80E6F38 _080386F4: .4byte gUnknown_80E70CC _080386F8: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038728 ldr r2, _0803872C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038716: ldr r4, _08038730 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2D bne _08038734 movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x13 b _08038826 .align 2, 0 _08038728: .4byte gUnknown_80E6F38 _0803872C: .4byte gUnknown_80E6FBC _08038730: .4byte gUnknown_203B364 _08038734: adds r0, r1, 0 b _08038772 _08038738: ldr r0, _0803874C movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x5 b _08038780 .align 2, 0 _0803874C: .4byte gUnknown_80E7178 _08038750: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038788 ldr r2, _0803878C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _0803876E: ldr r4, _08038790 ldr r0, [r4] _08038772: adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 _08038780: str r0, [r1, 0x4] ldr r5, _08038794 b _08038824 .align 2, 0 _08038788: .4byte gUnknown_80E6F38 _0803878C: .4byte gUnknown_80E701C _08038790: .4byte gUnknown_203B364 _08038794: .4byte 0x0000ffdc _08038798: adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080387AE ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x14 bl sub_8013114 _080387AE: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _0803881C cmp r0, 0x3 bhi _080387BE cmp r0, 0x2 beq _080387C2 b _08038820 _080387BE: cmp r0, 0x4 bne _08038820 _080387C2: ldr r4, _080387D8 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x29 beq _080387D0 cmp r0, 0x2E bne _080387DC _080387D0: movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1 b _08038820 .align 2, 0 _080387D8: .4byte gUnknown_203B364 _080387DC: cmp r0, 0x2D bne _080387E8 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x13 b _08038820 _080387E8: cmp r0, 0x2C bne _080387F4 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1F b _08038820 _080387F4: bl sub_8035D4C adds r0, 0x3A ldrb r0, [r0] cmp r0, 0 beq _0803880A ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x35 b _08038820 _0803880A: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x4] ldr r0, [r0] movs r5, 0xB cmp r0, 0x2B bne _08038820 movs r5, 0xD b _08038820 _0803881C: ldr r0, [r6] str r4, [r0, 0x4] _08038820: bl sub_80388C4 _08038824: adds r0, r5, 0 _08038826: add sp, 0x18 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038630 thumb_func_start sub_8038830 sub_8038830: push {r4,r5,lr} movs r5, 0 ldr r0, _080388A4 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080388A8 ands r0, r1 ldr r1, _080388AC ands r0, r1 ldr r4, _080388B0 ands r0, r4 ldr r1, _080388B4 ands r0, r1 ldr r1, _080388B8 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080388BC ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080388C0 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xD0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] movs r0, 0 bl ResetSprites pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388A4: .4byte gUnknown_203B364 _080388A8: .4byte 0x0000feff _080388AC: .4byte 0x0000fdff _080388B0: .4byte 0x0000f3ff _080388B4: .4byte 0x0000efff _080388B8: .4byte 0x0000dfff _080388BC: .4byte 0x00003fff _080388C0: .4byte 0x00000fff thumb_func_end sub_8038830 thumb_func_start sub_80388C4 sub_80388C4: push {r4,r5,lr} ldr r5, _080388FC ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080388EA movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080388EA: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388FC: .4byte gUnknown_203B364 thumb_func_end sub_80388C4 thumb_func_start sub_8038900 sub_8038900: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 ldr r5, _080389B8 ldr r0, [r5] cmp r0, 0 bne _0803892A movs r4, 0x85 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803892A: movs r0, 0x1B negs r0, r0 adds r0, r6 mov r8, r0 mov r12, r5 movs r1, 0xA4 lsls r1, 1 mov r9, r1 ldr r4, _080389BC mov r10, r4 movs r3, 0 movs r2, 0x3 _08038942: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 mov r0, r10 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038942 bl sub_8004914 ldr r4, _080389B8 ldr r0, [r4] movs r7, 0xA4 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r2, _080389C0 ldrb r0, [r2] cmp r0, 0 bne _08038986 ldr r0, _080389C4 ldr r1, [r0] adds r7, r4, 0 adds r5, r0, 0 cmp r1, r6 beq _080389A0 _08038986: adds r7, r4, 0 adds r3, r2, 0 ldr r5, _080389C4 ldr r1, _080389C8 movs r2, 0 adds r0, r1, 0 adds r0, 0x35 _08038994: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08038994 movs r0, 0 strb r0, [r3] _080389A0: ldr r0, [r7] str r6, [r0] str r6, [r5] mov r0, r8 cmp r0, 0x7 bhi _08038A36 lsls r0, 2 ldr r1, _080389CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080389B8: .4byte gUnknown_203B370 _080389BC: .4byte gUnknown_80E71E4 _080389C0: .4byte gUnknown_203B368 _080389C4: .4byte gUnknown_203B36C _080389C8: .4byte gUnknown_202EC50 _080389CC: .4byte _080389D0 .align 2, 0 _080389D0: .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _08038A0C .4byte _08038A2E _080389F0: bl sub_8035D74 movs r1, 0 bl sub_8031D70 b _08038A36 _080389FC: ldr r1, _08038A08 movs r0, 0x4 bl sub_80151C0 b _08038A36 .align 2, 0 _08038A08: .4byte gUnknown_202EC50 _08038A0C: movs r0, 0x1F bl sub_8095228 adds r4, r0, 0 movs r1, 0 movs r2, 0x30 bl MemoryFill8 movs r1, 0 movs r0, 0x2 strb r0, [r4] adds r4, 0x22 strb r1, [r4] movs r0, 0x1F bl sub_8031D70 b _08038A36 _08038A2E: ldr r1, _08038A54 movs r0, 0x4 bl sub_80151C0 _08038A36: adds r0, r6, 0 bl sub_8039000 ldr r1, _08038A58 ldr r1, [r1] str r0, [r1, 0x4] bl sub_8039174 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038A54: .4byte gUnknown_202EC50 _08038A58: .4byte gUnknown_203B370 thumb_func_end sub_8038900 thumb_func_start sub_8038A5C sub_8038A5C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08038A8C ldr r0, [r4] cmp r0, 0 beq _08038A86 bl sub_80155F0 bl sub_8031E10 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08038A86: pop {r4} pop {r0} bx r0 .align 2, 0 _08038A8C: .4byte gUnknown_203B370 thumb_func_end sub_8038A5C thumb_func_start sub_8038A90 sub_8038A90: push {r4-r6,lr} sub sp, 0x34 movs r0, 0xB str r0, [sp, 0x30] ldr r5, _08038AB4 ldr r1, _08038AB8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x9 bls _08038AA8 b _08038DB0 _08038AA8: lsls r0, 2 ldr r1, _08038ABC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038AB4: .4byte 0x0000ffdc _08038AB8: .4byte gUnknown_203B370 _08038ABC: .4byte _08038AC0 .align 2, 0 _08038AC0: .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038C78 .4byte _08038C8C .4byte _08038CC2 .4byte _08038D38 _08038AE8: bl sub_8031DCC ldr r5, _08038AF8 cmp r0, 0 bne _08038AF4 b _08038DB0 _08038AF4: movs r5, 0xB b _08038DB0 .align 2, 0 _08038AF8: .4byte 0x0000ffdc _08038AFC: bl sub_80154F0 adds r4, r0, 0 mov r0, sp movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x1 bne _08038B12 b _08038CBC _08038B12: cmp r4, 0x1 bcs _08038B18 b _08038CB0 _08038B18: cmp r4, 0x2 beq _08038AF4 cmp r4, 0x3 beq _08038B22 b _08038DB0 _08038B22: ldr r0, _08038B44 ldr r0, [r0] ldr r0, [r0] ldr r1, _08038B48 mov r2, sp bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08038B38 b _08038DB0 _08038B38: lsls r0, 2 ldr r1, _08038B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038B44: .4byte gUnknown_203B370 _08038B48: .4byte gUnknown_202EC50 _08038B4C: .4byte _08038B50 .align 2, 0 _08038B50: .4byte _08038BA4 .4byte _08038DB0 .4byte _08038BD8 .4byte _08038DB0 .4byte _08038C28 .4byte _08038DB0 .4byte _08038B9C .4byte _08038DB0 .4byte _08038DB0 .4byte _08038DB0 .4byte _08038B98 .4byte _08038BA0 .4byte _08038BD4 .4byte _08038C24 .4byte _08038DB0 .4byte _08038BA8 .4byte _08038BDC .4byte _08038C2C _08038B98: movs r0, 0x11 b _08038CA4 _08038B9C: movs r0, 0xD b _08038CA4 _08038BA0: movs r0, 0x12 b _08038CA4 _08038BA4: movs r0, 0x7 b _08038CA4 _08038BA8: ldr r0, [sp, 0x10] bl sub_8095274 bl sub_8038F98 ldr r0, _08038BCC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038BD0 mov r1, sp movs r0, 0x2 strb r0, [r1] mov r0, sp bl sub_80951BC b _08038DB0 .align 2, 0 _08038BCC: .4byte gUnknown_203B370 _08038BD0: .4byte 0x0000ffdc _08038BD4: movs r0, 0x13 b _08038CA4 _08038BD8: movs r0, 0x9 b _08038CA4 _08038BDC: bl sub_8038F98 ldr r0, _08038C18 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C1C mov r1, sp movs r0, 0x5 strb r0, [r1] mov r0, sp bl sub_80951FC ldr r1, [sp, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08038C20 movs r1, 0 movs r2, 0x5C bl MemoryFill8 b _08038DB0 .align 2, 0 _08038C18: .4byte gUnknown_203B370 _08038C1C: .4byte 0x0000ffdc _08038C20: .4byte gUnknown_203B484 _08038C24: movs r0, 0x14 b _08038CA4 _08038C28: movs r0, 0xB b _08038CA4 _08038C2C: bl sub_8038F98 ldr r0, _08038C70 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C74 ldr r1, [sp, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 mov r1, sp ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C adds r0, 0x3A movs r1, 0x1 strb r1, [r0] b _08038DB0 .align 2, 0 _08038C70: .4byte gUnknown_203B370 _08038C74: .4byte 0x0000ffdc _08038C78: bl sub_8031DCC ldr r5, _08038C88 cmp r0, 0 bne _08038C84 b _08038DB0 _08038C84: movs r5, 0xD b _08038DB0 .align 2, 0 _08038C88: .4byte 0x0000ffdc _08038C8C: bl sub_80154F0 cmp r0, 0x1 beq _08038CBC cmp r0, 0x1 bcc _08038CB0 cmp r0, 0x2 beq _08038C84 cmp r0, 0x3 beq _08038CA2 b _08038DB0 _08038CA2: movs r0, 0x15 _08038CA4: bl sub_8038DC0 ldr r0, _08038CB4 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] _08038CB0: ldr r5, _08038CB8 b _08038DB0 .align 2, 0 _08038CB4: .4byte gUnknown_203B370 _08038CB8: .4byte 0x0000ffdc _08038CBC: bl sub_8031E00 b _08038CB0 _08038CC2: ldr r0, [r6] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038CDA ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038CDA: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038D24 cmp r0, 0xB bhi _08038CEA cmp r0, 0xA beq _08038CEE b _08038DB0 _08038CEA: cmp r0, 0xC bne _08038DB0 _08038CEE: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D1C movs r0, 0x4 bl sub_80151C0 ldr r0, _08038D20 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0xB cmp r0, 0x1 bhi _08038DB0 b _08038C84 .align 2, 0 _08038D1C: .4byte gUnknown_202EC50 _08038D20: .4byte gUnknown_203B370 _08038D24: ldr r1, [r6] movs r0, 0x8 str r0, [r1, 0x4] ldr r5, _08038D34 bl sub_80391F8 b _08038DB0 .align 2, 0 _08038D34: .4byte 0x0000ffdc _08038D38: adds r4, r6, 0 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038D52 ldr r0, [r4] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038D52: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038DA4 cmp r0, 0xB bhi _08038D62 cmp r0, 0xA beq _08038D66 b _08038DB0 _08038D62: cmp r0, 0xC bne _08038DB0 _08038D66: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D9C movs r0, 0x4 bl sub_80151C0 ldr r4, _08038DA0 ldr r0, [r4] ldr r0, [r0] bl sub_8039000 ldr r1, [r4] str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0x2A cmp r0, 0x1 bhi _08038DB0 movs r5, 0x2B b _08038DB0 .align 2, 0 _08038D9C: .4byte gUnknown_202EC50 _08038DA0: .4byte gUnknown_203B370 _08038DA4: ldr r1, [r6] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038DBC bl sub_80391F8 _08038DB0: adds r0, r5, 0 add sp, 0x34 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038DBC: .4byte 0x0000ffdc thumb_func_end sub_8038A90 thumb_func_start sub_8038DC0 sub_8038DC0: push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldr r0, _08038DF8 ldr r0, [r0] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 subs r0, r4, 0x7 cmp r0, 0xE bls _08038DEE b _08038F74 _08038DEE: lsls r0, 2 ldr r1, _08038DFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038DF8: .4byte gUnknown_203B370 _08038DFC: .4byte _08038E00 .align 2, 0 _08038E00: .4byte _08038E7C .4byte _08038F74 .4byte _08038EDC .4byte _08038F74 .4byte _08038F1C .4byte _08038F74 .4byte _08038E9C .4byte _08038F74 .4byte _08038F74 .4byte _08038F74 .4byte _08038E3C .4byte _08038E5C .4byte _08038EBC .4byte _08038EFC .4byte _08038F50 _08038E3C: ldr r0, _08038E50 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E54 ldr r2, _08038E58 b _08038F2E .align 2, 0 _08038E50: .4byte gUnknown_203B370 _08038E54: .4byte gUnknown_80E71FC _08038E58: .4byte gUnknown_80E7214 _08038E5C: ldr r0, _08038E70 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E74 ldr r2, _08038E78 b _08038F2E .align 2, 0 _08038E70: .4byte gUnknown_203B370 _08038E74: .4byte gUnknown_80E72EC _08038E78: .4byte gUnknown_80E7304 _08038E7C: ldr r0, _08038E90 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E94 ldr r2, _08038E98 b _08038F2E .align 2, 0 _08038E90: .4byte gUnknown_203B370 _08038E94: .4byte gUnknown_80E7344 _08038E98: .4byte gUnknown_80E735C _08038E9C: ldr r0, _08038EB0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EB4 ldr r2, _08038EB8 b _08038F2E .align 2, 0 _08038EB0: .4byte gUnknown_203B370 _08038EB4: .4byte gUnknown_80E7588 _08038EB8: .4byte gUnknown_80E75A0 _08038EBC: ldr r0, _08038ED0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038ED4 ldr r2, _08038ED8 b _08038F2E .align 2, 0 _08038ED0: .4byte gUnknown_203B370 _08038ED4: .4byte gUnknown_80E73AC _08038ED8: .4byte gUnknown_80E73C4 _08038EDC: ldr r0, _08038EF0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EF4 ldr r2, _08038EF8 b _08038F2E .align 2, 0 _08038EF0: .4byte gUnknown_203B370 _08038EF4: .4byte gUnknown_80E7408 _08038EF8: .4byte gUnknown_80E7420 _08038EFC: ldr r0, _08038F10 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F14 ldr r2, _08038F18 b _08038F2E .align 2, 0 _08038F10: .4byte gUnknown_203B370 _08038F14: .4byte gUnknown_80E7468 _08038F18: .4byte gUnknown_80E7480 _08038F1C: ldr r0, _08038F44 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F48 ldr r2, _08038F4C _08038F2E: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038F74 .align 2, 0 _08038F44: .4byte gUnknown_203B370 _08038F48: .4byte gUnknown_80E74C8 _08038F4C: .4byte gUnknown_80E74E0 _08038F50: ldr r0, _08038F8C ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F90 ldr r2, _08038F94 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038F74: ldr r0, _08038F8C ldr r0, [r0] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08038F8C: .4byte gUnknown_203B370 _08038F90: .4byte gUnknown_80E752C _08038F94: .4byte gUnknown_80E7544 thumb_func_end sub_8038DC0 thumb_func_start sub_8038F98 sub_8038F98: push {r4,r5,lr} sub sp, 0x10 ldr r5, _08038FF4 ldr r0, [r5] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038FF8 ldr r2, _08038FFC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038FF4: .4byte gUnknown_203B370 _08038FF8: .4byte gUnknown_80E7278 _08038FFC: .4byte gUnknown_80E7290 thumb_func_end sub_8038F98 thumb_func_start sub_8039000 sub_8039000: push {lr} movs r1, 0xB ldr r0, _0803901C ldr r0, [r0] ldr r0, [r0] subs r0, 0x1B cmp r0, 0x7 bhi _08039062 lsls r0, 2 ldr r1, _08039020 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803901C: .4byte gUnknown_203B370 _08039020: .4byte _08039024 .align 2, 0 _08039024: .4byte _08039044 .4byte _08039054 .4byte _0803904C .4byte _0803905C .4byte _08039048 .4byte _08039058 .4byte _08039050 .4byte _08039060 _08039044: movs r1, 0 b _08039062 _08039048: movs r1, 0x4 b _08039062 _0803904C: movs r1, 0x2 b _08039062 _08039050: movs r1, 0x6 b _08039062 _08039054: movs r1, 0x1 b _08039062 _08039058: movs r1, 0x5 b _08039062 _0803905C: movs r1, 0x3 b _08039062 _08039060: movs r1, 0x7 _08039062: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8039000 thumb_func_start sub_8039068 sub_8039068: push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 adds r5, r2, 0 adds r1, r5, 0 bl sub_803D204 lsls r0, 24 cmp r0, 0 beq _080390AC ldrb r0, [r5] cmp r0, 0x7 bhi _080390AC ldrb r4, [r5, 0x5] ldrb r0, [r5, 0x4] bl sub_8090298 cmp r4, r0 bge _080390AC movs r0, 0xC ldrsh r1, [r5, r0] cmp r1, 0 beq _080390AC ldr r0, _080390B0 cmp r1, r0 bgt _080390AC adds r0, r5, 0 adds r0, 0x22 ldrb r0, [r0] bl sub_8092040 lsls r0, 24 cmp r0, 0 beq _080390B4 _080390AC: movs r0, 0x11 b _0803916E .align 2, 0 _080390B0: .4byte 0x000001a7 _080390B4: cmp r6, 0x1E beq _08039120 cmp r6, 0x1E bhi _080390C2 cmp r6, 0x1C beq _080390C8 b _0803916A _080390C2: cmp r6, 0x20 beq _08039140 b _0803916A _080390C8: ldrb r0, [r5] cmp r0, 0x1 beq _080390D2 movs r0, 0x12 b _0803916E _080390D2: ldr r1, [r5, 0x10] movs r0, 0x2 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x6 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _0803910C _08039108: movs r0, 0x7 b _0803916E _0803910C: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803911C movs r0, 0xD b _0803916E _0803911C: movs r0, 0x16 b _0803916E _08039120: ldrb r0, [r5] cmp r0, 0x4 beq _0803912A movs r0, 0x13 b _0803916E _0803912A: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _0803913C movs r0, 0x9 b _0803916E _0803913C: movs r0, 0x17 b _0803916E _08039140: ldrb r0, [r5] cmp r0, 0x5 beq _0803914A movs r0, 0x14 b _0803916E _0803914A: ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _08039162 bl sub_8011C34 ldr r1, [r5, 0x28] cmp r1, r0 beq _08039166 _08039162: movs r0, 0xB b _0803916E _08039166: movs r0, 0x18 b _0803916E _0803916A: movs r0, 0x1 negs r0, r0 _0803916E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8039068 thumb_func_start sub_8039174 sub_8039174: push {r4,lr} ldr r0, _080391D8 ldr r3, [r0] movs r0, 0x82 lsls r0, 2 adds r3, r0 ldrh r1, [r3] ldr r0, _080391DC ands r0, r1 ldr r1, _080391E0 ands r0, r1 ldr r4, _080391E4 ands r0, r4 ldr r1, _080391E8 ands r0, r1 ldr r1, _080391EC ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080391F0 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080391F4 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0 strh r0, [r3, 0x2] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080391D8: .4byte gUnknown_203B370 _080391DC: .4byte 0x0000feff _080391E0: .4byte 0x0000fdff _080391E4: .4byte 0x0000f3ff _080391E8: .4byte 0x0000efff _080391EC: .4byte 0x0000dfff _080391F0: .4byte 0x00003fff _080391F4: .4byte 0x00000fff thumb_func_end sub_8039174 thumb_func_start sub_80391F8 sub_80391F8: push {r4-r6,lr} ldr r6, _08039250 ldr r2, [r6] movs r0, 0x82 lsls r0, 2 adds r4, r2, r0 ldrh r1, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r4, 0x2] movs r3, 0xE0 lsls r3, 3 ldrh r1, [r4, 0x6] movs r0, 0xF ands r0, r1 orrs r0, r3 strh r0, [r4, 0x6] movs r5, 0x84 lsls r5, 2 adds r2, r5 ldr r0, [r2] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0803923C adds r1, 0xF8 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl AddSprite _0803923C: bl xxx_draw_string_80144C4 ldr r1, [r6] adds r1, r5 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039250: .4byte gUnknown_203B370 thumb_func_end sub_80391F8 thumb_func_start sub_8039254 sub_8039254: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 ldr r5, _080392EC ldr r0, [r5] cmp r0, 0 bne _0803927C movs r4, 0x9F lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803927C: ldr r0, [r5] str r6, [r0] mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _080392F0 movs r3, 0 movs r2, 0x3 _0803928E: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803928E bl sub_8004914 ldr r6, _080392EC ldr r0, [r6] movs r5, 0xA2 lsls r5, 1 adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _080392F4 ldr r2, _080392F8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r7, 0x6 str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r1, [r6] ldr r0, [r1] cmp r0, 0x7 beq _08039306 cmp r0, 0x7 bhi _080392FC cmp r0, 0x6 beq _08039338 b _08039382 .align 2, 0 _080392EC: .4byte gUnknown_203B374 _080392F0: .4byte gUnknown_80E75F8 _080392F4: .4byte gUnknown_80E7610 _080392F8: .4byte gUnknown_203B378 _080392FC: cmp r0, 0x8 beq _0803934C cmp r0, 0x9 beq _0803936C b _08039382 _08039306: bl sub_8039844 lsls r0, 24 cmp r0, 0 beq _08039324 ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _0803931C ldr r2, _08039320 b _08039354 .align 2, 0 _0803931C: .4byte gUnknown_80E762C _08039320: .4byte gUnknown_80E7644 _08039324: ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039330 ldr r2, _08039334 b _08039354 .align 2, 0 _08039330: .4byte gUnknown_80E762C _08039334: .4byte gUnknown_80E7684 _08039338: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039344 ldr r2, _08039348 b _08039354 .align 2, 0 _08039344: .4byte gUnknown_80E762C _08039348: .4byte gUnknown_80E76B8 _0803934C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039364 ldr r2, _08039368 _08039354: str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems b _08039382 .align 2, 0 _08039364: .4byte gUnknown_80E762C _08039368: .4byte gUnknown_80E76E8 _0803936C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _080393DC ldr r2, _080393E0 str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems _08039382: ldr r4, _080393E4 ldr r1, [r4] adds r0, r1, 0x4 movs r6, 0xA2 lsls r6, 1 adds r1, r6 ldr r3, _080393E8 ldr r2, _080393EC str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x2 str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x1 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0x1 bl sub_8035CF4 bl sub_80394A4 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080393DC: .4byte gUnknown_80E762C _080393E0: .4byte gUnknown_80E7730 _080393E4: .4byte gUnknown_203B374 _080393E8: .4byte gUnknown_80E7784 _080393EC: .4byte gUnknown_80E779C thumb_func_end sub_8039254 thumb_func_start sub_80393F0 sub_80393F0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08039418 ldr r0, [r4] cmp r0, 0 beq _08039410 bl MemoryFree movs r0, 0 str r0, [r4] _08039410: pop {r4} pop {r0} bx r0 .align 2, 0 _08039418: .4byte gUnknown_203B374 thumb_func_end sub_80393F0 thumb_func_start sub_803941C sub_803941C: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08039458 movs r0, 0x4 str r0, [sp] ldr r4, _0803945C ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xA4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08039448 ldr r0, [r4] adds r0, 0xA4 mov r1, sp bl sub_8013114 _08039448: ldr r0, [sp] cmp r0, 0x3 bhi _08039498 cmp r0, 0x2 bcs _08039460 cmp r0, 0x1 beq _08039464 b _08039498 .align 2, 0 _08039458: .4byte 0x0000ffdc _0803945C: .4byte gUnknown_203B374 _08039460: movs r5, 0x1 b _08039498 _08039464: ldr r0, [r4] ldr r0, [r0] cmp r0, 0x7 beq _08039480 cmp r0, 0x7 bhi _08039476 cmp r0, 0x6 beq _08039484 b _08039498 _08039476: cmp r0, 0x8 beq _0803948E cmp r0, 0x9 beq _08039492 b _08039498 _08039480: movs r5, 0x2 b _08039498 _08039484: movs r0, 0 bl sub_8095240 movs r5, 0x4 b _08039498 _0803948E: movs r5, 0x9 b _08039498 _08039492: bl sub_80122A8 movs r5, 0x2E _08039498: adds r0, r5, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803941C thumb_func_start sub_80394A4 sub_80394A4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x150 bl sub_8011FA8 mov r8, r0 movs r0, 0 bl sub_8008C54 movs r0, 0 bl sub_80073B8 ldr r2, _0803952C movs r4, 0 str r4, [sp] movs r0, 0x8 movs r1, 0 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039530 str r4, [sp] movs r0, 0x8 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string ldr r2, _08039534 str r4, [sp] movs r0, 0x8 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039538 str r4, [sp] movs r0, 0x8 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string ldr r2, _0803953C str r4, [sp] movs r0, 0x8 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039540 str r4, [sp] movs r0, 0x8 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08039544 add r4, sp, 0x68 adds r0, r4, 0 bl sub_80920D8 adds r2, r4, 0 b _0803954E .align 2, 0 _0803952C: .4byte gUnknown_80E77BC _08039530: .4byte gUnknown_80E77C4 _08039534: .4byte gUnknown_80E77CC _08039538: .4byte gUnknown_80E77D8 _0803953C: .4byte gUnknown_80E77E4 _08039540: .4byte gUnknown_80E77F0 _08039544: ldr r1, _08039588 add r0, sp, 0x68 bl strcpy add r2, sp, 0x68 _0803954E: ldr r5, _0803958C ldr r0, [r5] movs r4, 0xD2 lsls r4, 1 adds r0, r4 ldr r1, _08039590 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0 movs r3, 0 bl xxx_call_draw_string bl sub_808D33C cmp r0, 0 bne _08039598 add r4, sp, 0x90 ldr r1, _08039594 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 b _080395A6 .align 2, 0 _08039588: .4byte gUnknown_80E77F8 _0803958C: .4byte gUnknown_203B374 _08039590: .4byte gUnknown_80E7804 _08039594: .4byte gUnknown_80E7808 _08039598: add r4, sp, 0x90 adds r1, r0, 0 adds r1, 0x4C adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 _080395A6: adds r2, r4, 0 ldr r5, _080395F0 ldr r0, [r5] movs r4, 0xE4 lsls r4, 1 adds r0, r4 ldr r6, _080395F4 adds r1, r6, 0 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080395E0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _08039606 _080395E0: ldr r0, _080395F8 cmp r8, r0 bne _080395FC ldr r4, [r5] movs r0, 0xF6 lsls r0, 1 adds r4, r0 b _08039676 .align 2, 0 _080395F0: .4byte gUnknown_203B374 _080395F4: .4byte gUnknown_80E7804 _080395F8: .4byte 0x000f1207 _080395FC: ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 _08039606: bl sub_8011C1C cmp r0, 0x1 beq _08039624 cmp r0, 0x2 beq _08039668 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 ldr r1, _08039620 b _08039692 .align 2, 0 _08039620: .4byte gUnknown_80E7824 _08039624: movs r0, 0 movs r1, 0x18 bl sub_8001658 cmp r0, 0x7 beq _08039658 cmp r0, 0xB beq _08039658 bl sub_8098FB4 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r6, 0 bl sub_800D158 ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r1, r0, r3 adds r3, 0x24 adds r2, r0, r3 add r0, sp, 0x4 movs r3, 0 bl xxx_format_string b _08039696 _08039658: ldr r0, _08039664 ldr r0, [r0] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 .align 2, 0 _08039664: .4byte gUnknown_203B374 _08039668: ldr r0, _08039684 cmp r8, r0 bne _08039688 ldr r4, [r5] movs r2, 0xF6 lsls r2, 1 adds r4, r2 _08039676: bl sub_809769C adds r1, r0, 0 adds r0, r4, 0 bl sub_8090228 b _08039696 .align 2, 0 _08039684: .4byte 0x000f1207 _08039688: ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r0, r3 _08039690: ldr r1, _0803974C _08039692: bl sub_800D158 _08039696: ldr r7, _08039750 ldr r2, [r7] movs r0, 0xF6 lsls r0, 1 adds r2, r0 movs r6, 0 str r6, [sp] movs r0, 0x40 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039754 ldr r0, [r0] add r1, sp, 0x144 add r2, sp, 0x148 add r3, sp, 0x14C bl DeconstructPlayTime ldr r0, [r7] movs r5, 0x84 lsls r5, 2 adds r0, r5 ldr r1, _08039758 add r2, sp, 0x144 ldr r2, [r2] add r3, sp, 0x148 ldr r3, [r3] add r4, sp, 0x14C ldr r4, [r4] str r4, [sp] bl sub_800D158 ldr r2, [r7] adds r2, r5 str r6, [sp] movs r0, 0x40 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string bl sub_8097778 adds r2, r0, 0 ldr r0, [r7] movs r4, 0x8D lsls r4, 2 adds r0, r4 ldr r1, _0803975C bl sub_800D158 ldr r2, [r7] adds r2, r4 str r6, [sp] movs r0, 0x40 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039760 cmp r8, r0 bne _0803976C ldr r0, _08039764 ldr r6, [r0] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 beq _0803976C add r5, sp, 0x130 adds r1, r0, 0 adds r0, r5, 0 bl sub_808D930 add r4, sp, 0xE0 adds r1, r6, 0 adds r1, 0x50 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 ldr r0, [r7] movs r3, 0x96 lsls r3, 2 adds r0, r3 ldr r1, _08039768 adds r2, r4, 0 adds r3, r5, 0 bl sub_800D158 b _0803977C .align 2, 0 _0803974C: .4byte gUnknown_80E780C _08039750: .4byte gUnknown_203B374 _08039754: .4byte gUnknown_203B47C _08039758: .4byte gUnknown_80E7838 _0803975C: .4byte gUnknown_80E7848 _08039760: .4byte 0x000f1207 _08039764: .4byte gUnknown_203B484 _08039768: .4byte gUnknown_80E784C _0803976C: ldr r0, _080397AC ldr r0, [r0] movs r1, 0x96 lsls r1, 2 adds r0, r1 ldr r1, _080397B0 bl sub_800D158 _0803977C: ldr r0, _080397AC ldr r2, [r0] movs r3, 0x96 lsls r3, 2 adds r2, r3 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string bl sub_80397B4 movs r0, 0 bl sub_80073E0 add sp, 0x150 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080397AC: .4byte gUnknown_203B374 _080397B0: .4byte gUnknown_80E7854 thumb_func_end sub_80394A4 thumb_func_start sub_80397B4 sub_80397B4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, _08039834 ldr r1, _08039838 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 movs r4, 0 _080397C8: adds r0, r4, 0 adds r0, 0xB0 ldr r1, [r6, 0x4] lsls r2, r4, 2 ldr r1, [r1, 0x4] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0x3F ble _080397C8 movs r7, 0x8 movs r0, 0x49 mov r8, r0 movs r4, 0 _080397E6: ldr r0, _0803983C lsls r5, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803981C movs r0, 0x10 str r0, [sp] ldr r0, [r6, 0x4] lsls r1, r4, 7 ldr r0, [r0] adds r0, r1 str r0, [sp, 0x4] ldr r0, _08039840 adds r0, r5, r0 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0 adds r1, r7, 0 mov r2, r8 movs r3, 0x10 bl sub_8007E20 adds r7, 0x10 _0803981C: adds r4, 0x1 cmp r4, 0xB ble _080397E6 adds r0, r6, 0 bl CloseFile add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08039834: .4byte gUnknown_80E785C _08039838: .4byte gUnknown_8380000 _0803983C: .4byte gUnknown_203B3B8 _08039840: .4byte gUnknown_203B388 thumb_func_end sub_80397B4 thumb_func_start sub_8039844 sub_8039844: push {r4,r5,lr} bl sub_8011FA8 adds r5, r0, 0 movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _0803986A movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _0803986A bl sub_8011C1C cmp r0, 0x2 bne _08039872 _0803986A: ldr r0, _0803987C cmp r5, r0 bne _08039872 movs r4, 0x1 _08039872: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803987C: .4byte 0x000f1207 thumb_func_end sub_8039844 thumb_func_start sub_8039880 sub_8039880: push {r4,lr} movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080398A0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _080398A0 bl sub_8011C1C cmp r0, 0x2 bne _080398A2 _080398A0: movs r4, 0x1 _080398A2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8039880 thumb_func_start sub_80398AC sub_80398AC: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0803991C ldr r4, _08039920 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 movs r1, 0 movs r2, 0 adds r4, r5, 0 _080398D8: ldr r0, [r5] adds r0, 0x1 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080398D8 ldr r1, [r4] movs r3, 0x92 lsls r3, 3 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] ldr r0, _08039924 adds r2, r1, r0 movs r0, 0x2 str r0, [r2] movs r0, 0x93 lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] adds r0, r3 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803991C: .4byte gUnknown_203B3E8 _08039920: .4byte 0x0000049c _08039924: .4byte 0x00000494 thumb_func_end sub_80398AC thumb_func_start sub_8039928 sub_8039928: push {lr} ldr r0, _08039940 ldr r0, [r0] ldrb r0, [r0] subs r0, 0x4 cmp r0, 0xF bhi _080399DE lsls r0, 2 ldr r1, _08039944 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039940: .4byte gUnknown_203B3E8 _08039944: .4byte _08039948 .align 2, 0 _08039948: .4byte _08039988 .4byte _0803998E .4byte _0803999E .4byte _080399AA .4byte _08039992 .4byte _080399A4 .4byte _080399C8 .4byte _080399DE .4byte _08039998 .4byte _080399B0 .4byte _080399B6 .4byte _080399BC .4byte _080399C2 .4byte _080399CE .4byte _080399D4 .4byte _080399DA _08039988: bl sub_8039A18 b _080399DE _0803998E: movs r0, 0x3 b _080399E0 _08039992: bl sub_8039AA8 b _080399DE _08039998: bl sub_8039B14 b _080399DE _0803999E: bl sub_8039B20 b _080399DE _080399A4: bl sub_8039B58 b _080399DE _080399AA: bl sub_8039D88 b _080399DE _080399B0: bl sub_8039D28 b _080399DE _080399B6: bl sub_8039D68 b _080399DE _080399BC: bl sub_8039DA4 b _080399DE _080399C2: bl sub_8039DCC b _080399DE _080399C8: bl sub_8039B3C b _080399DE _080399CE: bl sub_8039D0C b _080399DE _080399D4: bl sub_8039C60 b _080399DE _080399DA: bl sub_8039DE8 _080399DE: movs r0, 0 _080399E0: pop {r1} bx r1 thumb_func_end sub_8039928 thumb_func_start sub_80399E4 sub_80399E4: push {r4,lr} ldr r4, _08039A14 ldr r0, [r4] cmp r0, 0 beq _08039A0E bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 _08039A0E: pop {r4} pop {r0} bx r0 .align 2, 0 _08039A14: .4byte gUnknown_203B3E8 thumb_func_end sub_80399E4 thumb_func_start sub_8039A18 sub_8039A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039AA2 ldr r0, _08039A48 ldr r1, [r0] movs r2, 0x93 lsls r2, 2 adds r1, r2 movs r2, 0xA str r2, [r1] ldr r1, [sp] adds r2, r0, 0 cmp r1, 0x8 bhi _08039AA2 lsls r0, r1, 2 ldr r1, _08039A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039A48: .4byte gUnknown_203B3E8 _08039A4C: .4byte _08039A50 .align 2, 0 _08039A50: .4byte _08039A9C .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A74 .4byte _08039A74 .4byte _08039A88 .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A9C _08039A74: ldr r0, [r2] movs r1, 0x92 lsls r1, 3 adds r0, r1 movs r1, 0x3 str r1, [r0] movs r0, 0x8 bl sub_803A1C0 b _08039AA2 _08039A88: ldr r0, [r2] movs r2, 0x92 lsls r2, 3 adds r0, r2 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 b _08039AA2 _08039A9C: movs r0, 0x5 bl sub_803A1C0 _08039AA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039A18 thumb_func_start sub_8039AA8 sub_8039AA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B0E ldr r0, [sp] cmp r0, 0 beq _08039AE8 cmp r0, 0x6 bne _08039B0E ldr r0, _08039AD8 ldr r0, [r0] ldr r1, _08039ADC adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039AE0 movs r0, 0x2 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039AD8: .4byte gUnknown_203B3E8 _08039ADC: .4byte 0x00000494 _08039AE0: movs r0, 0xC bl sub_803A1C0 b _08039B0E _08039AE8: ldr r0, _08039B00 ldr r0, [r0] ldr r1, _08039B04 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039B08 movs r0, 0x1 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039B00: .4byte gUnknown_203B3E8 _08039B04: .4byte 0x00000494 _08039B08: movs r0, 0x4 bl sub_803A1C0 _08039B0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039AA8 thumb_func_start sub_8039B14 sub_8039B14: push {lr} movs r0, 0x6 bl sub_803A1C0 pop {r0} bx r0 thumb_func_end sub_8039B14 thumb_func_start sub_8039B20 sub_8039B20: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B34 movs r0, 0x9 bl sub_803A1C0 _08039B34: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B20 thumb_func_start sub_8039B3C sub_8039B3C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B50 movs r0, 0x4 bl sub_803A1C0 _08039B50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B3C thumb_func_start sub_8039B58 sub_8039B58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039BA6 ldr r0, _08039B88 ldr r1, [r0] movs r2, 0x94 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _08039B9C subs r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x9 beq _08039B8C cmp r0, 0xA beq _08039B94 b _08039BA6 .align 2, 0 _08039B88: .4byte gUnknown_203B3E8 _08039B8C: movs r0, 0x7 bl sub_803A1C0 b _08039BA6 _08039B94: movs r0, 0xD bl sub_803A1C0 b _08039BA6 _08039B9C: bl sub_8039BAC movs r0, 0xA bl sub_803A1C0 _08039BA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B58 thumb_func_start sub_8039BAC sub_8039BAC: push {lr} cmp r0, 0xF bhi _08039C48 lsls r0, 2 ldr r1, _08039BBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039BBC: .4byte _08039BC0 .align 2, 0 _08039BC0: .4byte _08039C54 .4byte _08039C00 .4byte _08039C10 .4byte _08039C08 .4byte _08039C18 .4byte _08039C20 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C28 .4byte _08039C30 _08039C00: ldr r0, _08039C04 b _08039C32 .align 2, 0 _08039C04: .4byte gUnknown_80E7914 _08039C08: ldr r0, _08039C0C b _08039C32 .align 2, 0 _08039C0C: .4byte gUnknown_80E7938 _08039C10: ldr r0, _08039C14 b _08039C32 .align 2, 0 _08039C14: .4byte gUnknown_80E7994 _08039C18: ldr r0, _08039C1C b _08039C32 .align 2, 0 _08039C1C: .4byte gUnknown_80E79E4 _08039C20: ldr r0, _08039C24 b _08039C32 .align 2, 0 _08039C24: .4byte gUnknown_80E7914 _08039C28: ldr r0, _08039C2C b _08039C32 .align 2, 0 _08039C2C: .4byte gUnknown_80E7914 _08039C30: ldr r0, _08039C40 _08039C32: ldr r3, _08039C44 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08039C54 .align 2, 0 _08039C40: .4byte gUnknown_80E7A48 _08039C44: .4byte 0x00000101 _08039C48: ldr r0, _08039C58 ldr r3, _08039C5C movs r1, 0 movs r2, 0 bl sub_80141B4 _08039C54: pop {r0} bx r0 .align 2, 0 _08039C58: .4byte gUnknown_80E7914 _08039C5C: .4byte 0x00000101 thumb_func_end sub_8039BAC thumb_func_start sub_8039C60 sub_8039C60: push {r4,r5,lr} bl sub_80154F0 adds r4, r0, 0 ldr r5, _08039CBC ldr r0, [r5] adds r0, 0x38 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 beq _08039CE6 cmp r4, 0x3 bne _08039D04 bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0x1 adds r1, 0x38 bl sub_803D358 lsls r0, 24 cmp r0, 0 beq _08039CB4 ldr r0, [r5] adds r0, 0x38 bl sub_80959C0 lsls r0, 24 cmp r0, 0 bne _08039CC0 _08039CB4: movs r0, 0x13 bl sub_803A1C0 b _08039D04 .align 2, 0 _08039CBC: .4byte gUnknown_203B3E8 _08039CC0: ldr r0, [r5] movs r2, 0xF0 lsls r2, 2 adds r1, r0, r2 adds r0, 0x38 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r3,r4} stm r1!, {r3,r4} ldr r0, [r5] movs r1, 0x93 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0xD bl sub_803A1C0 b _08039D04 _08039CE6: bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 bl sub_803A1C0 _08039D04: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039C60 thumb_func_start sub_8039D0C sub_8039D0C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D20 movs r0, 0x12 bl sub_803A1C0 _08039D20: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D0C thumb_func_start sub_8039D28 sub_8039D28: push {r4,r5,lr} bl sub_802D0E0 cmp r0, 0x3 bne _08039D62 bl sub_802D178 ldr r5, _08039D58 ldr r1, [r5] movs r4, 0x93 lsls r4, 3 adds r1, r4 strb r0, [r1] bl sub_802D184 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039D5C movs r0, 0xE bl sub_803A1C0 b _08039D62 .align 2, 0 _08039D58: .4byte gUnknown_203B3E8 _08039D5C: movs r0, 0x10 bl sub_803A1C0 _08039D62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039D28 thumb_func_start sub_8039D68 sub_8039D68: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D82 movs r0, 0xF bl sub_803A1C0 movs r0, 0 bl sub_8012574 _08039D82: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D68 thumb_func_start sub_8039D88 sub_8039D88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D9C movs r0, 0x8 bl sub_803A1C0 _08039D9C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D88 thumb_func_start sub_8039DA4 sub_8039DA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DC6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08039DC6 bl sub_8012750 movs r0, 0x10 bl sub_803A1C0 _08039DC6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DA4 thumb_func_start sub_8039DCC sub_8039DCC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DE0 movs r0, 0x5 bl sub_803A1C0 _08039DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DCC thumb_func_start sub_8039DE8 sub_8039DE8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039E0E ldr r0, [sp] cmp r0, 0 beq _08039E08 cmp r0, 0x6 bne _08039E0E movs r0, 0x11 bl sub_803A1C0 b _08039E0E _08039E08: movs r0, 0x5 bl sub_803A1C0 _08039E0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DE8 thumb_func_start nullsub_54 nullsub_54: bx lr thumb_func_end nullsub_54 thumb_func_start sub_8039E18 sub_8039E18: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 ldr r1, _08039E38 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x13 bls _08039E2E b _0803A1AA _08039E2E: lsls r0, 2 ldr r1, _08039E3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039E38: .4byte gUnknown_203B3E8 _08039E3C: .4byte _08039E40 .align 2, 0 _08039E40: .4byte _08039E90 .4byte _08039EB8 .4byte _0803A1AA .4byte _08039EC8 .4byte _08039EDC .4byte _0803A1AA .4byte _08039FF4 .4byte _08039FA4 .4byte _08039FCC .4byte _0803A00C .4byte _0803A1AA .4byte _0803A1AA .4byte _0803A1AA .4byte _08039F04 .4byte _08039F68 .4byte _0803A1AA .4byte _08039FAC .4byte _0803A152 .4byte _0803A168 .4byte _0803A18E _08039E90: ldr r0, _08039EB0 ldr r3, _08039EB4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EB0: .4byte gUnknown_80E7AC4 _08039EB4: .4byte gUnknown_80E786C _08039EB8: ldr r0, _08039EC0 ldr r3, _08039EC4 b _08039EE0 .align 2, 0 _08039EC0: .4byte gUnknown_80E7AE0 _08039EC4: .4byte gUnknown_80E7894 _08039EC8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_802EF48 b _0803A1AA _08039EDC: ldr r0, _08039EFC ldr r3, _08039F00 _08039EE0: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EFC: .4byte gUnknown_80E7B14 _08039F00: .4byte gUnknown_80E78D8 _08039F04: ldr r0, [r6] ldr r2, _08039F3C adds r1, r0, r2 movs r3, 0xF0 lsls r3, 2 adds r0, r3 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] ldr r3, _08039F40 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08039F44 movs r4, 0x91 lsls r4, 3 adds r1, r2, r4 subs r3, 0xA2 adds r0, r2, r3 str r0, [r1] adds r4, 0x4 adds r1, r2, r4 adds r3, 0x28 adds r0, r2, r3 str r0, [r1] b _08039F54 .align 2, 0 _08039F3C: .4byte 0x00000474 _08039F40: .4byte 0x00000476 _08039F44: movs r4, 0x91 lsls r4, 3 adds r0, r2, r4 movs r1, 0 str r1, [r0] ldr r3, _08039F60 adds r0, r2, r3 str r1, [r0] _08039F54: ldr r0, [r6] ldr r4, _08039F64 adds r0, r4 bl sub_802D098 b _0803A1AA .align 2, 0 _08039F60: .4byte 0x0000048c _08039F64: .4byte 0x00000474 _08039F68: ldr r1, [r6] movs r2, 0x93 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08039F9C movs r3, 0x92 lsls r3, 3 adds r0, r1, r3 ldr r0, [r0] cmp r0, 0x4 bne _08039F84 b _0803A1AA _08039F84: cmp r0, 0x4 bgt _08039F8E cmp r0, 0x3 beq _08039F94 b _0803A1AA _08039F8E: cmp r0, 0x5 beq _08039F94 b _0803A1AA _08039F94: ldr r0, _08039F98 b _0803A154 .align 2, 0 _08039F98: .4byte gUnknown_80E7B48 _08039F9C: ldr r0, _08039FA0 b _0803A154 .align 2, 0 _08039FA0: .4byte gUnknown_80E7B48 _08039FA4: ldr r0, _08039FA8 b _0803A154 .align 2, 0 _08039FA8: .4byte gUnknown_80E7B68 _08039FAC: ldr r0, [r6] movs r4, 0x93 lsls r4, 3 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039FC4 ldr r0, _08039FC0 b _0803A154 .align 2, 0 _08039FC0: .4byte gUnknown_80E7B88 _08039FC4: ldr r0, _08039FC8 b _0803A154 .align 2, 0 _08039FC8: .4byte gUnknown_80E7BC8 _08039FCC: ldr r0, _08039FEC ldr r3, _08039FF0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _0803A1AA .align 2, 0 _08039FEC: .4byte gUnknown_80E7BEC _08039FF0: .4byte gUnknown_80E78F8 _08039FF4: movs r0, 0 bl nullsub_23 ldr r0, _0803A008 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A008: .4byte gUnknown_80E7C48 _0803A00C: ldr r0, [r6] movs r1, 0x94 lsls r1, 2 mov r8, r1 add r0, r8 movs r1, 0 str r1, [r0] bl sub_8011830 ldr r0, [r6] movs r7, 0x93 lsls r7, 2 adds r0, r7 ldr r0, [r0] bl sub_8037B28 ldr r2, [r6] mov r3, r8 adds r1, r2, r3 str r0, [r1] cmp r0, 0 beq _0803A03A b _0803A14C _0803A03A: adds r4, r7, 0 adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x9 beq _0803A04A cmp r0, 0xA beq _0803A0AA b _0803A0DE _0803A04A: movs r5, 0x95 lsls r5, 2 adds r0, r2, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_803B344 adds r4, r0, 0 ldr r1, [r4, 0x14] cmp r1, 0 beq _0803A08C ldr r0, [r6] movs r2, 0x9A lsls r2, 2 adds r0, r2 movs r2, 0x28 bl MemoryCopy8 ldr r0, [r6] movs r3, 0xA4 lsls r3, 2 adds r0, r3 ldr r1, [r4, 0x18] movs r2, 0x78 bl MemoryCopy8 _0803A08C: ldr r1, [r6] adds r1, r5 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r1, r2, r5 movs r3, 0xC2 lsls r3, 2 adds r2, r3 b _0803A0D4 _0803A0AA: movs r4, 0x95 lsls r4, 2 adds r0, r2, r4 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r5, 0xC2 lsls r5, 2 adds r0, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r4, r2, r4 adds r2, r5 adds r1, r4, 0 _0803A0D4: bl sub_8037D64 ldr r1, [r6] add r1, r8 str r0, [r1] _0803A0DE: ldr r4, _0803A134 ldr r2, [r4] movs r5, 0x94 lsls r5, 2 adds r0, r2, r5 ldr r0, [r0] cmp r0, 0 bne _0803A14C movs r1, 0x93 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0xA bhi _0803A14C cmp r0, 0x9 bcc _0803A14C movs r3, 0x95 lsls r3, 2 adds r1, r2, r3 adds r3, 0xB4 adds r2, r3 bl sub_80381F4 ldr r1, [r4] adds r1, r5 str r0, [r1] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0803A138 ldr r1, [r4] movs r4, 0xF0 lsls r4, 2 adds r0, r1, r4 movs r2, 0xC2 lsls r2, 2 adds r1, r2 movs r2, 0xB4 bl memcpy b _0803A14C .align 2, 0 _0803A134: .4byte gUnknown_203B3E8 _0803A138: ldr r1, [r4] movs r3, 0xF0 lsls r3, 2 adds r0, r1, r3 movs r4, 0x95 lsls r4, 2 adds r1, r4 movs r2, 0xB4 bl memcpy _0803A14C: bl sub_8011854 b _0803A1AA _0803A152: ldr r0, _0803A160 _0803A154: ldr r3, _0803A164 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A160: .4byte gUnknown_80E7C98 _0803A164: .4byte 0x00000101 _0803A168: ldr r0, [r6] movs r1, 0xF6 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x1 movs r0, 0x5 bl sub_80151C0 b _0803A1AA _0803A18E: ldr r0, _0803A1B8 ldr r3, _0803A1BC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 _0803A1AA: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A1B8: .4byte gUnknown_80E7CC4 _0803A1BC: .4byte gUnknown_80E78F8 thumb_func_end sub_8039E18 thumb_func_start sub_803A1C0 sub_803A1C0: push {lr} ldr r1, _0803A1D4 ldr r1, [r1] strb r0, [r1] bl nullsub_54 bl sub_8039E18 pop {r0} bx r0 .align 2, 0 _0803A1D4: .4byte gUnknown_203B3E8 thumb_func_end sub_803A1C0 thumb_func_start sub_803A1D8 sub_803A1D8: movs r0, 0x1 bx lr thumb_func_end sub_803A1D8 thumb_func_start sub_803A1DC sub_803A1DC: movs r0, 0 bx lr thumb_func_end sub_803A1DC thumb_func_start nullsub_55 nullsub_55: bx lr thumb_func_end nullsub_55 thumb_func_start sub_803A1E4 sub_803A1E4: movs r0, 0x1 bx lr thumb_func_end sub_803A1E4 thumb_func_start sub_803A1E8 sub_803A1E8: movs r0, 0x2 bx lr thumb_func_end sub_803A1E8 thumb_func_start sub_803A1EC sub_803A1EC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_803A1EC thumb_func_start sub_803A200 sub_803A200: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _0803A270 ldr r0, [r5] cmp r0, 0 bne _0803A224 movs r4, 0xD2 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803A224: mov r12, r5 movs r0, 0xA0 lsls r0, 1 mov r8, r0 ldr r4, _0803A274 movs r3, 0 movs r2, 0x3 _0803A232: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A232 bl sub_8004914 ldr r0, _0803A270 ldr r0, [r0] movs r6, 0xA0 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl SetDebugMenuItems pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A270: .4byte gUnknown_203B3EC _0803A274: .4byte gUnknown_80E7D40 thumb_func_end sub_803A200 thumb_func_start sub_803A278 sub_803A278: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A2A0 ldr r0, [r4] cmp r0, 0 beq _0803A298 bl MemoryFree movs r0, 0 str r0, [r4] _0803A298: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A2A0: .4byte gUnknown_203B3EC thumb_func_end sub_803A278 thumb_func_start sub_803A2A4 sub_803A2A4: push {r4,r5,lr} sub sp, 0x4 ldr r4, _0803A2D4 movs r0, 0xB str r0, [sp] ldr r5, _0803A2D8 ldr r0, [r5] bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A2C4 ldr r0, [r5] mov r1, sp bl sub_8013114 _0803A2C4: ldr r0, [sp] cmp r0, 0xB bhi _0803A34E lsls r0, 2 ldr r1, _0803A2DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A2D4: .4byte 0x0000ffdc _0803A2D8: .4byte gUnknown_203B3EC _0803A2DC: .4byte _0803A2E0 .align 2, 0 _0803A2E0: .4byte _0803A310 .4byte _0803A314 .4byte _0803A318 .4byte _0803A31C .4byte _0803A320 .4byte _0803A324 .4byte _0803A328 .4byte _0803A34E .4byte _0803A34E .4byte _0803A330 .4byte _0803A344 .4byte _0803A34C _0803A310: movs r4, 0x2F b _0803A34E _0803A314: movs r4, 0x30 b _0803A34E _0803A318: movs r4, 0x31 b _0803A34E _0803A31C: movs r4, 0x32 b _0803A34E _0803A320: movs r4, 0x33 b _0803A34E _0803A324: movs r4, 0x34 b _0803A34E _0803A328: bl sub_803A3BC movs r4, 0x1 b _0803A34E _0803A330: movs r4, 0 _0803A332: lsls r0, r4, 24 lsrs r0, 24 bl sub_80976F8 adds r4, 0x1 cmp r4, 0x1F ble _0803A332 movs r4, 0x1 b _0803A34E _0803A344: bl sub_803A3A0 movs r4, 0x1 b _0803A34E _0803A34C: ldr r4, _0803A358 _0803A34E: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803A358: .4byte 0x0000ffdc thumb_func_end sub_803A2A4 thumb_func_start SetDebugMenuItems SetDebugMenuItems: push {r4,lr} sub sp, 0x10 ldr r4, _0803A394 ldr r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r1, r0, r2 ldr r3, _0803A398 ldr r2, _0803A39C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] bl SetMenuItems ldr r0, [r4] movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A394: .4byte gUnknown_203B3EC _0803A398: .4byte gUnknown_80E7D58 _0803A39C: .4byte gUnknown_80E7D70 thumb_func_end SetDebugMenuItems thumb_func_start sub_803A3A0 sub_803A3A0: push {lr} ldr r0, _0803A3B8 ldr r0, [r0] movs r1, 0xA0 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 pop {r0} bx r0 .align 2, 0 _0803A3B8: .4byte gUnknown_203B3EC thumb_func_end sub_803A3A0 thumb_func_start sub_803A3BC sub_803A3BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 movs r5, 0x1 add r4, sp, 0x60 add r6, sp, 0x68 add r0, sp, 0x7C mov r8, r0 add r0, sp, 0x80 mov r10, r0 _0803A3D6: lsls r0, r5, 24 lsrs r0, 24 bl sub_80925EC adds r5, 0x1 cmp r5, 0x39 ble _0803A3D6 movs r5, 0 adds r7, r4, 0 _0803A3E8: movs r0, 0 mov r9, r0 ldr r0, _0803A454 str r0, [sp, 0x7C] adds r5, 0x1 lsls r4, r5, 16 asrs r4, 16 adds r0, r7, 0 movs r1, 0 movs r2, 0x8 bl memset movs r0, 0x27 strh r0, [r7] adds r0, r6, 0 adds r1, r4, 0 bl sub_808D8BC adds r0, r6, 0 adds r1, r6, 0 bl sub_80922F4 movs r0, 0x40 strb r0, [r6] mov r0, r8 str r0, [sp] str r7, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x43 bl sub_808CFD0 add r0, sp, 0x8 bl sub_808D1DC ldr r0, _0803A458 cmp r5, r0 ble _0803A3E8 mov r0, r9 str r0, [sp, 0x80] mov r0, r10 movs r1, 0x1 bl sub_801203C add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A454: .4byte 0x00001006 _0803A458: .4byte 0x0000012b thumb_func_end sub_803A3BC thumb_func_start sub_803A45C sub_803A45C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A488 movs r0, 0x9C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A504 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A488: .4byte gUnknown_203B3F0 thumb_func_end sub_803A45C thumb_func_start sub_803A48C sub_803A48C: push {lr} ldr r0, _0803A4A4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0803A4E0 lsls r0, 2 ldr r1, _0803A4A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A4A4: .4byte gUnknown_203B3F0 _0803A4A8: .4byte _0803A4AC .align 2, 0 _0803A4AC: .4byte _0803A4C4 .4byte _0803A4C4 .4byte _0803A4CA .4byte _0803A4D0 .4byte _0803A4D6 .4byte _0803A4DC _0803A4C4: bl sub_803A740 b _0803A4E0 _0803A4CA: bl sub_803A7B0 b _0803A4E0 _0803A4D0: bl sub_803A810 b _0803A4E0 _0803A4D6: bl sub_803A86C b _0803A4E0 _0803A4DC: movs r0, 0x3 b _0803A4E2 _0803A4E0: movs r0, 0 _0803A4E2: pop {r1} bx r1 thumb_func_end sub_803A48C thumb_func_start sub_803A4E8 sub_803A4E8: push {r4,lr} ldr r4, _0803A500 ldr r0, [r4] cmp r0, 0 beq _0803A4FA bl MemoryFree movs r0, 0 str r0, [r4] _0803A4FA: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A500: .4byte gUnknown_203B3F0 thumb_func_end sub_803A4E8 thumb_func_start sub_803A504 sub_803A504: push {lr} ldr r1, _0803A518 ldr r1, [r1] str r0, [r1] bl sub_803A51C bl sub_803A5A0 pop {r0} bx r0 .align 2, 0 _0803A518: .4byte gUnknown_203B3F0 thumb_func_end sub_803A504 thumb_func_start sub_803A51C sub_803A51C: push {r4-r7,lr} ldr r4, _0803A53C ldr r0, [r4] adds r0, 0xD8 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 beq _0803A544 cmp r0, 0x3 bne _0803A55C adds r1, 0xF0 ldr r0, _0803A540 b _0803A54C .align 2, 0 _0803A53C: .4byte gUnknown_203B3F0 _0803A540: .4byte gUnknown_80E7E64 _0803A544: movs r0, 0x84 lsls r0, 1 adds r1, r0 ldr r0, _0803A558 _0803A54C: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A57E .align 2, 0 _0803A558: .4byte gUnknown_80E7E4C _0803A55C: mov r12, r4 ldr r4, _0803A598 movs r3, 0 movs r2, 0x3 _0803A564: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0xD8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A564 _0803A57E: bl sub_8004914 ldr r0, _0803A59C ldr r0, [r0] adds r0, 0xD8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A598: .4byte gUnknown_80E7E34 _0803A59C: .4byte gUnknown_203B3F0 thumb_func_end sub_803A51C thumb_func_start sub_803A5A0 sub_803A5A0: push {lr} sub sp, 0xC ldr r1, _0803A5BC ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _0803A68A lsls r0, 2 ldr r1, _0803A5C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A5BC: .4byte gUnknown_203B3F0 _0803A5C0: .4byte _0803A5C4 .align 2, 0 _0803A5C4: .4byte _0803A5DC .4byte _0803A5EA .4byte _0803A5F2 .4byte _0803A61C .4byte _0803A678 .4byte _0803A68A _0803A5DC: movs r0, 0x2 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801C8C4 b _0803A68A _0803A5EA: movs r0, 0x1 bl sub_801CB5C b _0803A68A _0803A5F2: bl sub_801CCD8 bl sub_803A6F0 ldr r0, _0803A618 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803A68A .align 2, 0 _0803A618: .4byte gUnknown_203B3F0 _0803A61C: ldr r3, [r2] adds r1, r3, 0 adds r1, 0xAC movs r0, 0x3 str r0, [r1] subs r1, 0x8 movs r0, 0 str r0, [r1] adds r1, 0x4 ldr r0, _0803A670 str r0, [r1] adds r2, r3, 0 adds r2, 0xA0 ldr r0, _0803A674 ldr r1, [r0] ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] str r0, [r2] adds r1, r3, 0 adds r1, 0xB0 movs r0, 0x1 str r0, [r1] adds r1, 0x4 adds r0, r3, 0 adds r0, 0xF0 str r0, [r1] adds r1, 0x4 movs r0, 0x2C str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r3, 0 adds r0, 0x9C bl sub_8013AA0 bl sub_803A690 b _0803A68A .align 2, 0 _0803A670: .4byte 0x000003e7 _0803A674: .4byte gUnknown_203B460 _0803A678: ldr r0, [r2] ldrb r1, [r0, 0x4] add r0, sp, 0x8 movs r2, 0 bl sub_8090A8C add r0, sp, 0x8 bl sub_801B3C0 _0803A68A: add sp, 0xC pop {r0} bx r0 thumb_func_end sub_803A5A0 thumb_func_start sub_803A690 sub_803A690: push {r4,lr} sub sp, 0x4 ldr r4, _0803A6E8 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0803A6EC ldr r0, [r4] adds r0, 0xB0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x9C bl sub_8013C68 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073E0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x4C movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A6E8: .4byte gUnknown_203B3F0 _0803A6EC: .4byte gUnknown_80E7E7C thumb_func_end sub_803A690 thumb_func_start sub_803A6F0 sub_803A6F0: push {r4,lr} ldr r4, _0803A734 ldr r1, [r4] ldr r0, _0803A738 str r0, [r1, 0xC] movs r0, 0x2 str r0, [r1, 0x10] str r0, [r1, 0x8] ldrb r0, [r1, 0x4] bl sub_8091524 lsls r0, 24 cmp r0, 0 bne _0803A718 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x10] movs r1, 0x3 str r1, [r0, 0x8] _0803A718: ldr r1, [r4] movs r2, 0x1 ldr r0, _0803A73C ldr r0, [r0] str r0, [r1, 0x14] movs r0, 0x3 str r0, [r1, 0x18] movs r0, 0 str r0, [r1, 0x1C] str r2, [r1, 0x20] pop {r4} pop {r0} bx r0 .align 2, 0 _0803A734: .4byte gUnknown_203B3F0 _0803A738: .4byte gUnknown_80E7E7C _0803A73C: .4byte gUnknown_80D4970 thumb_func_end sub_803A6F0 thumb_func_start sub_803A740 sub_803A740: push {lr} movs r0, 0x1 bl sub_801CA08 cmp r0, 0x4 bhi _0803A7AA lsls r0, 2 ldr r1, _0803A758 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A758: .4byte _0803A75C .align 2, 0 _0803A75C: .4byte _0803A7AA .4byte _0803A7AA .4byte _0803A7A0 .4byte _0803A770 .4byte _0803A788 _0803A770: bl sub_801CB24 ldr r1, _0803A784 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A784: .4byte gUnknown_203B3F0 _0803A788: bl sub_801CB24 ldr r1, _0803A79C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A79C: .4byte gUnknown_203B3F0 _0803A7A0: bl sub_801CBB8 movs r0, 0x5 bl sub_803A504 _0803A7AA: pop {r0} bx r0 thumb_func_end sub_803A740 thumb_func_start sub_803A7B0 sub_803A7B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801CA08 ldr r4, _0803A7E8 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A7D6 ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803A7D6: ldr r0, [sp] cmp r0, 0x2 beq _0803A7F2 cmp r0, 0x2 bgt _0803A7EC cmp r0, 0x1 beq _0803A802 b _0803A808 .align 2, 0 _0803A7E8: .4byte gUnknown_203B3F0 _0803A7EC: cmp r0, 0x3 beq _0803A7FA b _0803A808 _0803A7F2: movs r0, 0x3 bl sub_803A504 b _0803A808 _0803A7FA: movs r0, 0x4 bl sub_803A504 b _0803A808 _0803A802: movs r0, 0x1 bl sub_803A504 _0803A808: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803A7B0 thumb_func_start sub_803A810 sub_803A810: push {r4,lr} movs r0, 0 bl sub_801CA08 ldr r4, _0803A838 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 ldr r0, [r4] adds r0, 0x9C bl sub_8013BBC cmp r0, 0x2 beq _0803A854 cmp r0, 0x2 bhi _0803A83C cmp r0, 0x1 beq _0803A860 b _0803A864 .align 2, 0 _0803A838: .4byte gUnknown_203B3F0 _0803A83C: cmp r0, 0x3 bne _0803A864 ldr r0, _0803A85C ldr r2, [r0] ldr r1, [r4] ldrb r0, [r1, 0x4] lsls r0, 1 adds r2, 0x50 adds r2, r0 adds r1, 0x9C ldr r0, [r1] strh r0, [r2] _0803A854: movs r0, 0x1 bl sub_803A504 b _0803A864 .align 2, 0 _0803A85C: .4byte gUnknown_203B460 _0803A860: bl sub_803A690 _0803A864: pop {r4} pop {r0} bx r0 thumb_func_end sub_803A810 thumb_func_start sub_803A86C sub_803A86C: push {lr} bl sub_801B410 cmp r0, 0x1 bls _0803A884 cmp r0, 0x3 bhi _0803A884 bl sub_801B450 movs r0, 0x1 bl sub_803A504 _0803A884: pop {r0} bx r0 thumb_func_end sub_803A86C thumb_func_start sub_803A888 sub_803A888: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A8B4 movs r0, 0xFC movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A924 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A8B4: .4byte gUnknown_203B3F4 thumb_func_end sub_803A888 thumb_func_start sub_803A8B8 sub_803A8B8: push {lr} ldr r0, _0803A8D0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bhi _0803A902 lsls r0, 2 ldr r1, _0803A8D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A8D0: .4byte gUnknown_203B3F4 _0803A8D4: .4byte _0803A8D8 .align 2, 0 _0803A8D8: .4byte _0803A8EC .4byte _0803A8EC .4byte _0803A8F2 .4byte _0803A8F8 .4byte _0803A8FE _0803A8EC: bl sub_803AAC4 b _0803A902 _0803A8F2: bl sub_803AB34 b _0803A902 _0803A8F8: bl sub_803ABAC b _0803A902 _0803A8FE: movs r0, 0x3 b _0803A904 _0803A902: movs r0, 0 _0803A904: pop {r1} bx r1 thumb_func_end sub_803A8B8 thumb_func_start sub_803A908 sub_803A908: push {r4,lr} ldr r4, _0803A920 ldr r0, [r4] cmp r0, 0 beq _0803A91A bl MemoryFree movs r0, 0 str r0, [r4] _0803A91A: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A920: .4byte gUnknown_203B3F4 thumb_func_end sub_803A908 thumb_func_start sub_803A924 sub_803A924: push {lr} ldr r1, _0803A938 ldr r1, [r1] str r0, [r1] bl sub_803A93C bl sub_803A9AC pop {r0} bx r0 .align 2, 0 _0803A938: .4byte gUnknown_203B3F4 thumb_func_end sub_803A924 thumb_func_start sub_803A93C sub_803A93C: push {r4-r7,lr} ldr r4, _0803A960 ldr r0, [r4] adds r0, 0x9C bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 bne _0803A968 adds r1, 0xCC ldr r0, _0803A964 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A98A .align 2, 0 _0803A960: .4byte gUnknown_203B3F4 _0803A964: .4byte gUnknown_80E7EA4 _0803A968: mov r12, r4 ldr r4, _0803A9A4 movs r3, 0 movs r2, 0x3 _0803A970: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x9C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A970 _0803A98A: bl sub_8004914 ldr r0, _0803A9A8 ldr r0, [r0] adds r0, 0x9C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A9A4: .4byte gUnknown_80E7E8C _0803A9A8: .4byte gUnknown_203B3F4 thumb_func_end sub_803A93C thumb_func_start sub_803A9AC sub_803A9AC: push {lr} sub sp, 0x8 ldr r1, _0803A9C8 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0803AA2C lsls r0, 2 ldr r1, _0803A9CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A9C8: .4byte gUnknown_203B3F4 _0803A9CC: .4byte _0803A9D0 .align 2, 0 _0803A9D0: .4byte _0803A9E4 .4byte _0803A9EE .4byte _0803A9F6 .4byte _0803AA20 .4byte _0803AA2C _0803A9E4: movs r0, 0 movs r1, 0x3 bl sub_80211AC b _0803AA2C _0803A9EE: movs r0, 0x1 bl sub_8021354 b _0803AA2C _0803A9F6: bl sub_8021494 bl sub_803AA34 ldr r0, _0803AA1C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803AA2C .align 2, 0 _0803AA1C: .4byte gUnknown_203B3F4 _0803AA20: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x1 movs r2, 0 bl sub_8021774 _0803AA2C: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803A9AC thumb_func_start sub_803AA34 sub_803AA34: push {r4,r5,lr} movs r4, 0 ldr r0, _0803AA64 ldr r1, [r0] ldr r2, _0803AA68 ldr r3, [r2] ldrb r0, [r3, 0x4] adds r1, r0 ldrb r0, [r1] adds r5, r2, 0 cmp r0, 0 beq _0803AA7A ldr r0, _0803AA6C str r0, [r3, 0xC] bl sub_803ABC8 lsls r0, 24 cmp r0, 0 beq _0803AA70 ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x10] b _0803AA82 .align 2, 0 _0803AA64: .4byte gUnknown_203B468 _0803AA68: .4byte gUnknown_203B3F4 _0803AA6C: .4byte gUnknown_80E7EBC _0803AA70: ldr r1, [r5] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x10] b _0803AA82 _0803AA7A: ldr r0, _0803AABC str r0, [r3, 0xC] movs r0, 0x2 str r0, [r3, 0x10] _0803AA82: adds r4, 0x1 ldr r5, [r5] mov r12, r5 lsls r1, r4, 3 mov r3, r12 adds r3, 0xC adds r2, r3, r1 ldr r0, _0803AAC0 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r2, 0x10 adds r1, r2, r1 movs r0, 0x4 str r0, [r1] adds r4, 0x1 lsls r1, r4, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r2, r1 movs r0, 0x1 str r0, [r2] mov r1, r12 ldr r0, [r1, 0x10] str r0, [r1, 0x8] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803AABC: .4byte gUnknown_80E7EC4 _0803AAC0: .4byte gUnknown_80D4970 thumb_func_end sub_803AA34 thumb_func_start sub_803AAC4 sub_803AAC4: push {lr} movs r0, 0x1 bl sub_8021274 cmp r0, 0x4 bhi _0803AB2E lsls r0, 2 ldr r1, _0803AADC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AADC: .4byte _0803AAE0 .align 2, 0 _0803AAE0: .4byte _0803AB2E .4byte _0803AB2E .4byte _0803AB24 .4byte _0803AAF4 .4byte _0803AB0C _0803AAF4: bl sub_802132C ldr r1, _0803AB08 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB08: .4byte gUnknown_203B3F4 _0803AB0C: bl sub_802132C ldr r1, _0803AB20 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x3 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB20: .4byte gUnknown_203B3F4 _0803AB24: bl sub_80213A0 movs r0, 0x4 bl sub_803A924 _0803AB2E: pop {r0} bx r0 thumb_func_end sub_803AAC4 thumb_func_start sub_803AB34 sub_803AB34: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8021274 ldr r4, _0803AB6C ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AB5A ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803AB5A: ldr r0, [sp] cmp r0, 0x2 beq _0803AB7A cmp r0, 0x2 bgt _0803AB70 cmp r0, 0x1 beq _0803AB9E b _0803ABA4 .align 2, 0 _0803AB6C: .4byte gUnknown_203B3F4 _0803AB70: cmp r0, 0x3 beq _0803AB84 cmp r0, 0x4 beq _0803AB96 b _0803ABA4 _0803AB7A: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_80925EC b _0803AB8E _0803AB84: ldr r0, [r4] ldrb r0, [r0, 0x4] movs r1, 0x1 bl sub_809249C _0803AB8E: movs r0, 0x1 bl sub_803A924 b _0803ABA4 _0803AB96: movs r0, 0x3 bl sub_803A924 b _0803ABA4 _0803AB9E: movs r0, 0x1 bl sub_803A924 _0803ABA4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AB34 thumb_func_start sub_803ABAC sub_803ABAC: push {lr} bl sub_80217EC cmp r0, 0x1 bls _0803ABC4 cmp r0, 0x3 bhi _0803ABC4 bl sub_8021830 movs r0, 0x1 bl sub_803A924 _0803ABC4: pop {r0} bx r0 thumb_func_end sub_803ABAC thumb_func_start sub_803ABC8 sub_803ABC8: push {r4-r6,lr} movs r5, 0 movs r6, 0x1 _0803ABCE: ldr r2, _0803AC08 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r2, r0, r1 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0803AC10 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0803AC10 ldr r0, _0803AC0C ldr r4, [r0] movs r1, 0x8 ldrsh r0, [r2, r1] bl GetFriendArea ldrb r1, [r4, 0x4] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0803AC10 movs r0, 0 b _0803AC1C .align 2, 0 _0803AC08: .4byte gUnknown_203B45C _0803AC0C: .4byte gUnknown_203B3F4 _0803AC10: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0803ABCE movs r0, 0x1 _0803AC1C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803ABC8 thumb_func_start sub_803AC24 sub_803AC24: push {r4,lr} ldr r4, _0803AC44 movs r0, 0xA0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803ACD0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803AC44: .4byte gUnknown_203B3F8 thumb_func_end sub_803AC24 thumb_func_start sub_803AC48 sub_803AC48: push {lr} ldr r0, _0803AC60 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7 bhi _0803ACA8 lsls r0, 2 ldr r1, _0803AC64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AC60: .4byte gUnknown_203B3F8 _0803AC64: .4byte _0803AC68 .align 2, 0 _0803AC68: .4byte _0803AC88 .4byte _0803AC90 .4byte _0803AC90 .4byte _0803AC96 .4byte _0803ACA8 .4byte _0803AC9C .4byte _0803ACA2 .4byte _0803ACA8 _0803AC88: movs r0, 0x1 bl sub_803ACD0 b _0803ACAC _0803AC90: bl sub_803AF38 b _0803ACAC _0803AC96: bl sub_803AF88 b _0803ACAC _0803AC9C: bl sub_803AFE8 b _0803ACAC _0803ACA2: bl sub_803B034 b _0803ACAC _0803ACA8: movs r0, 0x3 b _0803ACAE _0803ACAC: movs r0, 0 _0803ACAE: pop {r1} bx r1 thumb_func_end sub_803AC48 thumb_func_start sub_803ACB4 sub_803ACB4: push {r4,lr} ldr r4, _0803ACCC ldr r0, [r4] cmp r0, 0 beq _0803ACC6 bl MemoryFree movs r0, 0 str r0, [r4] _0803ACC6: pop {r4} pop {r0} bx r0 .align 2, 0 _0803ACCC: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACB4 thumb_func_start sub_803ACD0 sub_803ACD0: push {lr} ldr r1, _0803ACE4 ldr r1, [r1] str r0, [r1] bl sub_803ACE8 bl sub_803AD88 pop {r0} bx r0 .align 2, 0 _0803ACE4: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACD0 thumb_func_start sub_803ACE8 sub_803ACE8: push {r4-r7,lr} ldr r4, _0803AD08 ldr r0, [r4] adds r0, 0xE0 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _0803AD10 cmp r0, 0x5 beq _0803AD38 movs r2, 0 ldr r3, _0803AD0C b _0803AD50 .align 2, 0 _0803AD08: .4byte gUnknown_203B3F8 _0803AD0C: .4byte gUnknown_80E7ED4 _0803AD10: bl sub_803AEB0 ldr r2, [r4] movs r0, 0x88 lsls r0, 1 adds r2, r0 ldr r1, _0803AD34 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x90 bl sub_8012CAC b _0803AD6C .align 2, 0 _0803AD34: .4byte gUnknown_80E7EEC _0803AD38: movs r6, 0x94 lsls r6, 1 adds r1, r6 ldr r0, _0803AD4C ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r4-r6} stm r1!, {r4-r6} b _0803AD6C .align 2, 0 _0803AD4C: .4byte gUnknown_80E7F04 _0803AD50: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, 0xE0 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0803AD50 _0803AD6C: bl sub_8004914 ldr r0, _0803AD84 ldr r0, [r0] adds r0, 0xE0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803AD84: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACE8 thumb_func_start sub_803AD88 sub_803AD88: push {lr} sub sp, 0x8 ldr r1, _0803ADA4 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x7 bhi _0803AE50 lsls r0, 2 ldr r1, _0803ADA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803ADA4: .4byte gUnknown_203B3F8 _0803ADA8: .4byte _0803ADAC .align 2, 0 _0803ADAC: .4byte _0803AE50 .4byte _0803ADCC .4byte _0803ADDA .4byte _0803ADE2 .4byte _0803AE50 .4byte _0803AE0C .4byte _0803AE44 .4byte _0803AE50 _0803ADCC: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _0803AE50 _0803ADDA: movs r0, 0x1 bl sub_8023B7C b _0803AE50 _0803ADE2: bl sub_8023DA4 ldr r0, _0803AE08 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x10 adds r1, r2, 0 adds r1, 0x90 adds r3, r2, 0 adds r3, 0xD0 ldr r2, [r2, 0xC] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0803AE50 .align 2, 0 _0803AE08: .4byte gUnknown_203B3F8 _0803AE0C: ldr r2, [r2] movs r1, 0x3 str r1, [r2, 0x70] movs r0, 0x1 str r0, [r2, 0x68] movs r0, 0x64 str r0, [r2, 0x6C] ldr r0, [r2, 0x8] ldrb r0, [r0, 0x3] str r0, [r2, 0x64] str r1, [r2, 0x74] movs r1, 0x94 lsls r1, 1 adds r0, r2, r1 str r0, [r2, 0x78] movs r0, 0x2C str r0, [r2, 0x7C] adds r1, r2, 0 adds r1, 0x80 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0x60 bl sub_8013AA0 bl sub_803AE58 b _0803AE50 _0803AE44: ldr r0, [r2] ldr r1, [r0, 0x8] adds r1, 0x4C movs r0, 0x2 bl sub_801602C _0803AE50: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803AD88 thumb_func_start sub_803AE58 sub_803AE58: push {r4,lr} sub sp, 0x4 ldr r4, _0803AEA8 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r2, _0803AEAC ldr r0, [r4] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x60 bl sub_8013C68 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073E0 bl sub_8023DA4 ldr r0, [r4] adds r0, 0x10 movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803AEA8: .4byte gUnknown_203B3F8 _0803AEAC: .4byte gUnknown_80E7F1C thumb_func_end sub_803AE58 thumb_func_start sub_803AEB0 sub_803AEB0: push {r4-r6,lr} ldr r4, _0803AEFC ldr r0, [r4] adds r0, 0xD0 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 adds r1, r4, 0 adds r1, 0x90 ldr r0, _0803AF00 str r0, [r1] adds r5, r4, 0 adds r5, 0x94 movs r0, 0x4 str r0, [r5] movs r2, 0x1 adds r1, 0x8 ldr r0, _0803AF04 str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] movs r6, 0x2 adds r0, r4, 0 adds r0, 0xA0 str r3, [r0] adds r0, 0x4 str r2, [r0] adds r0, 0x2C ldrh r0, [r0] cmp r0, 0 bne _0803AF08 ldr r0, [r5] str r0, [r4, 0xC] b _0803AF2C .align 2, 0 _0803AEFC: .4byte gUnknown_203B3F8 _0803AF00: .4byte gUnknown_80E7F24 _0803AF04: .4byte gUnknown_80E7F2C _0803AF08: adds r3, 0x1 cmp r3, r6 bge _0803AF2C ldr r0, _0803AF34 ldr r2, [r0] lsls r1, r3, 1 adds r0, r2, 0 adds r0, 0xD0 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0803AF08 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x94 adds r1, r0 ldr r0, [r1] str r0, [r2, 0xC] _0803AF2C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803AF34: .4byte gUnknown_203B3F8 thumb_func_end sub_803AEB0 thumb_func_start sub_803AF38 sub_803AF38: push {lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x2 beq _0803AF78 cmp r0, 0x2 bcc _0803AF82 cmp r0, 0x3 bne _0803AF82 bl sub_8023B44 ldr r1, _0803AF70 ldr r1, [r1] strh r0, [r1, 0x4] ldr r3, _0803AF74 movs r0, 0x4 ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x8] movs r0, 0x3 bl sub_803ACD0 b _0803AF82 .align 2, 0 _0803AF70: .4byte gUnknown_203B3F8 _0803AF74: .4byte gUnknown_203B45C _0803AF78: bl sub_8023C60 movs r0, 0x7 bl sub_803ACD0 _0803AF82: pop {r0} bx r0 thumb_func_end sub_803AF38 thumb_func_start sub_803AF88 sub_803AF88: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _0803AFC0 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AFAE ldr r0, [r4] adds r0, 0x10 mov r1, sp bl sub_8013114 _0803AFAE: ldr r0, [sp] cmp r0, 0x4 beq _0803AFCA cmp r0, 0x4 bgt _0803AFC4 cmp r0, 0x1 beq _0803AFDA b _0803AFE0 .align 2, 0 _0803AFC0: .4byte gUnknown_203B3F8 _0803AFC4: cmp r0, 0x5 beq _0803AFD2 b _0803AFE0 _0803AFCA: movs r0, 0x5 bl sub_803ACD0 b _0803AFE0 _0803AFD2: movs r0, 0x6 bl sub_803ACD0 b _0803AFE0 _0803AFDA: movs r0, 0x2 bl sub_803ACD0 _0803AFE0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AF88 thumb_func_start sub_803AFE8 sub_803AFE8: push {r4,lr} movs r0, 0 bl sub_8023A94 ldr r4, _0803B010 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x60 bl sub_8013BBC cmp r0, 0x2 beq _0803B020 cmp r0, 0x2 bhi _0803B014 cmp r0, 0x1 beq _0803B028 b _0803B02C .align 2, 0 _0803B010: .4byte gUnknown_203B3F8 _0803B014: cmp r0, 0x3 bne _0803B02C ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0x60] strb r0, [r1, 0x3] _0803B020: movs r0, 0x2 bl sub_803ACD0 b _0803B02C _0803B028: bl sub_803AE58 _0803B02C: pop {r4} pop {r0} bx r0 thumb_func_end sub_803AFE8 thumb_func_start sub_803B034 sub_803B034: push {lr} bl sub_8016080 cmp r0, 0x3 bhi _0803B04C cmp r0, 0x2 bcc _0803B04C bl sub_80160D8 movs r0, 0x2 bl sub_803ACD0 _0803B04C: pop {r0} bx r0 thumb_func_end sub_803B034 thumb_func_start sub_803B050 sub_803B050: push {r4-r7,lr} ldr r4, _0803B0F4 movs r0, 0xF4 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0x3 str r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x84 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0803B0F8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r2, 0 movs r3, 0 movs r7, 0xCB lsls r7, 1 movs r6, 0x80 lsls r6, 9 movs r5, 0 _0803B0AE: ldr r0, _0803B0FC adds r0, r5, r0 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r4, _0803B0F4 cmp r0, 0xA bne _0803B0C8 ldr r0, [r4] lsls r1, r2, 1 adds r0, 0xA0 adds r0, r1 strh r3, [r0] adds r2, 0x1 _0803B0C8: adds r0, r6, 0 movs r3, 0x80 lsls r3, 9 adds r6, r3 adds r5, 0xC asrs r3, r0, 16 cmp r3, r7 ble _0803B0AE ldr r0, [r4] ldr r3, [r0, 0x34] adds r1, r2, 0 movs r2, 0xA bl sub_8013818 bl sub_803B204 bl sub_803B284 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803B0F4: .4byte gUnknown_203B3FC _0803B0F8: .4byte gUnknown_80E7F54 _0803B0FC: .4byte gUnknown_812F1F8 thumb_func_end sub_803B050 thumb_func_start sub_803B100 sub_803B100: push {lr} adds r1, r0, 0 lsls r1, 16 asrs r1, 16 ldr r0, _0803B11C ldr r0, [r0] bl sub_8013878 bl sub_803B204 bl sub_803B284 pop {r0} bx r0 .align 2, 0 _0803B11C: .4byte gUnknown_203B3FC thumb_func_end sub_803B100 thumb_func_start sub_803B120 sub_803B120: push {r4,lr} ldr r4, _0803B13C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0803B140 cmp r0, 0x2 bne _0803B144 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0803B160 .align 2, 0 _0803B13C: .4byte gUnknown_203B3FC _0803B140: movs r0, 0x3 b _0803B160 _0803B144: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0803B156 movs r0, 0 b _0803B160 _0803B156: bl sub_803B204 bl sub_803B284 movs r0, 0x1 _0803B160: pop {r4} pop {r1} bx r1 thumb_func_end sub_803B120 thumb_func_start sub_803B168 sub_803B168: ldr r0, _0803B188 ldr r0, [r0] movs r1, 0x1E ldrsh r2, [r0, r1] movs r3, 0x1C ldrsh r1, [r0, r3] muls r1, r2 movs r3, 0x18 ldrsh r2, [r0, r3] adds r1, r2 lsls r1, 1 adds r0, 0xA0 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0803B188: .4byte gUnknown_203B3FC thumb_func_end sub_803B168 thumb_func_start sub_803B18C sub_803B18C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0803B1B8 ldr r0, [r5] movs r1, 0xE5 strh r1, [r0, 0x22] bl sub_8013984 bl sub_803B204 bl sub_803B284 cmp r4, 0 beq _0803B1B2 ldr r0, [r5] bl AddMenuCursorSprite _0803B1B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1B8: .4byte gUnknown_203B3FC thumb_func_end sub_803B18C thumb_func_start sub_803B1BC sub_803B1BC: push {r4,r5,lr} ldr r4, _0803B1FC ldr r2, [r4] cmp r2, 0 beq _0803B1F6 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0803B200 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803B1F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1FC: .4byte gUnknown_203B3FC _0803B200: .4byte gUnknown_80E7F3C thumb_func_end sub_803B1BC thumb_func_start sub_803B204 sub_803B204: push {r4,lr} ldr r4, _0803B280 ldr r0, [r4] adds r0, 0x9C movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0x9D strb r2, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0803B280: .4byte gUnknown_203B3FC thumb_func_end sub_803B204 thumb_func_start sub_803B284 sub_803B284: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0803B338 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r2, _0803B33C ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r4, [r0] lsls r4, 3 subs r4, 0x2 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 bge _0803B324 _0803B2DC: ldr r0, [r6] movs r3, 0x1E ldrsh r2, [r0, r3] movs r3, 0x1C ldrsh r1, [r0, r3] muls r2, r1 adds r2, r5 lsls r2, 1 adds r1, r0, 0 adds r1, 0xA0 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r4, r1, 1 adds r4, r1 lsls r4, 2 ldr r1, _0803B340 adds r4, r1 adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r4, 0x4] ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 bl xxx_call_draw_string adds r5, 0x1 ldr r0, [r6] movs r3, 0x1A ldrsh r0, [r0, r3] cmp r5, r0 blt _0803B2DC _0803B324: ldr r0, _0803B338 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803B338: .4byte gUnknown_203B3FC _0803B33C: .4byte gUnknown_80E7F6C _0803B340: .4byte gUnknown_812F1F8 thumb_func_end sub_803B284 thumb_func_start sub_803B344 sub_803B344: adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803B358 adds r0, r1 bx lr .align 2, 0 _0803B358: .4byte gUnknown_80E7F94 thumb_func_end sub_803B344 thumb_func_start sub_803B35C sub_803B35C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r1, 0x18 bl sub_803C21C ldrb r0, [r5, 0x2] subs r0, 0x1 cmp r0, 0x8 bls _0803B372 b _0803B4FA _0803B372: lsls r0, 2 ldr r1, _0803B37C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B37C: .4byte _0803B380 .align 2, 0 _0803B380: .4byte _0803B3A4 .4byte _0803B3BE .4byte _0803B3D8 .4byte _0803B3F2 .4byte _0803B414 .4byte _0803B442 .4byte _0803B470 .4byte _0803B49E .4byte _0803B4CC _0803B3A4: adds r0, r4, 0 adds r0, 0x40 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3BE: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3D8: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x2 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3F2: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x3 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] bl sub_8096DD8 str r0, [r4, 0x4C] bl sub_8096DE8 str r0, [r4, 0x50] b _0803B578 _0803B414: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B42A adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B438 _0803B42A: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B438: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x4 b _0803B576 _0803B442: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B458 adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B466 _0803B458: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B466: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x5 b _0803B576 _0803B470: adds r0, r5, 0 bl sub_803B600 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B488 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B48E _0803B488: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x4 _0803B48E: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x6 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B49E: adds r0, r5, 0 bl sub_803B628 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4B6 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B4BC _0803B4B6: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x5 _0803B4BC: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x7 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B4CC: adds r0, r5, 0 bl sub_803B66C str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4E4 adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA b _0803B4EA _0803B4E4: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x6 _0803B4EA: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B4FA: ldrb r0, [r5, 0x1] cmp r0, 0x2 beq _0803B528 cmp r0, 0x2 bgt _0803B50A cmp r0, 0x1 beq _0803B514 b _0803B564 _0803B50A: cmp r0, 0x3 beq _0803B53C cmp r0, 0x4 beq _0803B550 b _0803B564 _0803B514: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 strb r0, [r1] adds r1, 0x1 movs r0, 0xD strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B528: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA strb r0, [r1] adds r1, 0x1 movs r0, 0xE strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B53C: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xB strb r0, [r1] adds r1, 0x1 movs r0, 0xF strb r0, [r1] adds r1, 0x1 movs r0, 0x1 b _0803B576 _0803B550: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x10 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 b _0803B576 _0803B564: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x3 _0803B576: strb r0, [r1] _0803B578: adds r0, r5, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] ldrh r0, [r5, 0xC] movs r1, 0 strh r0, [r4, 0x10] ldrh r0, [r5, 0xE] strh r0, [r4, 0x12] ldrb r0, [r5, 0x10] strb r0, [r4, 0x14] ldrb r0, [r5] subs r0, 0x2 cmp r0, 0x7 bhi _0803B5EC lsls r0, 2 ldr r1, _0803B5A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B5A0: .4byte _0803B5A4 .align 2, 0 _0803B5A4: .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5DC .4byte _0803B5CC .4byte _0803B5DC .4byte _0803B5DC _0803B5C4: adds r0, r4, 0 adds r0, 0x43 movs r1, 0x1 b _0803B5F0 _0803B5CC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0 strb r0, [r1] adds r1, 0x1 movs r0, 0x3 strb r0, [r1] b _0803B5F6 _0803B5DC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x3 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 strb r0, [r1] b _0803B5F6 _0803B5EC: adds r0, r4, 0 adds r0, 0x43 _0803B5F0: strb r1, [r0] adds r0, 0x1 strb r1, [r0] _0803B5F6: str r5, [r4, 0x54] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_803B35C thumb_func_start sub_803B600 sub_803B600: push {lr} ldr r2, _0803B614 movs r1, 0 ldr r3, [r0, 0xC] _0803B608: ldr r0, [r2] cmp r0, r3 bne _0803B618 adds r0, r1, 0 b _0803B624 .align 2, 0 _0803B614: .4byte gUnknown_80E9920 _0803B618: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x14 ble _0803B608 movs r0, 0x1 negs r0, r0 _0803B624: pop {r1} bx r1 thumb_func_end sub_803B600 thumb_func_start sub_803B628 sub_803B628: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B654 movs r3, 0 _0803B630: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B650 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 _0803B650: adds r0, r3, 0 b _0803B664 .align 2, 0 _0803B654: .4byte gUnknown_80E9F8C _0803B658: adds r2, 0xC adds r3, 0x1 cmp r3, 0x2C ble _0803B630 movs r0, 0x1 negs r0, r0 _0803B664: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B628 thumb_func_start sub_803B66C sub_803B66C: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B698 movs r3, 0 _0803B674: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B694 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C _0803B694: adds r0, r3, 0 b _0803B6A8 .align 2, 0 _0803B698: .4byte gUnknown_80E8168 _0803B69C: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x5 ble _0803B674 movs r0, 0x1 negs r0, r0 _0803B6A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B66C thumb_func_start sub_803B6B0 sub_803B6B0: push {r4,lr} sub sp, 0x4 lsls r2, 24 ldr r4, _0803B6D0 lsrs r2, 22 adds r2, r4 ldr r2, [r2] movs r4, 0 str r4, [sp] bl xxx_call_draw_string add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803B6D0: .4byte gUnknown_80E8B94 thumb_func_end sub_803B6B0 thumb_func_start sub_803B6D4 sub_803B6D4: push {r4-r7,lr} sub sp, 0x144 adds r7, r0, 0 ldr r1, [r7, 0x48] adds r0, 0x43 ldrb r2, [r0] ldr r3, [r7] movs r0, 0xA bl sub_803B6B0 adds r0, r7, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0xC bls _0803B6F4 b _0803B86C _0803B6F4: lsls r0, 2 ldr r1, _0803B700 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B700: .4byte _0803B704 .align 2, 0 _0803B704: .4byte _0803B73E .4byte _0803B748 .4byte _0803B754 .4byte _0803B738 .4byte _0803B7A4 .4byte _0803B7B0 .4byte _0803B7C8 .4byte _0803B760 .4byte _0803B86C .4byte _0803B818 .4byte _0803B7E0 .4byte _0803B788 .4byte _0803B76A _0803B738: ldr r1, [r7, 0x48] ldr r2, [r7, 0x4C] b _0803B7CC _0803B73E: ldr r1, [r7, 0x48] ldr r2, _0803B744 b _0803B7CC .align 2, 0 _0803B744: .4byte gMankeyMission _0803B748: ldr r1, [r7, 0x48] ldr r2, _0803B750 b _0803B7CC .align 2, 0 _0803B750: .4byte gSmeargleMission _0803B754: ldr r1, [r7, 0x48] ldr r2, _0803B75C b _0803B7CC .align 2, 0 _0803B75C: .4byte gMedichamMission _0803B760: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090208 b _0803B850 _0803B76A: ldr r4, _0803B780 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B784 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B780: .4byte gUnknown_202DE58 _0803B784: .4byte gUnknown_80E8830 _0803B788: ldr r4, _0803B79C ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B7A0 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B79C: .4byte gUnknown_202DE58 _0803B7A0: .4byte gUnknown_80E8848 _0803B7A4: ldr r1, [r7, 0x48] ldr r2, _0803B7AC b _0803B7CC .align 2, 0 _0803B7AC: .4byte gUnknown_80E885C _0803B7B0: ldr r1, [r7, 0x48] ldr r3, _0803B7C4 ldr r2, [r7, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, 0x4 adds r0, r3 ldr r2, [r0] b _0803B7CC .align 2, 0 _0803B7C4: .4byte gUnknown_80E9F8C _0803B7C8: ldr r1, [r7, 0x48] ldr r2, _0803B7DC _0803B7CC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B7DC: .4byte gUnknown_80E886C _0803B7E0: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r5, _0803B810 adds r0, r5, 0 bl strcpy ldr r1, _0803B814 movs r0, 0x3 ands r4, r0 lsls r4, 2 adds r4, r1 ldr r1, [r4] add r0, sp, 0x4 adds r2, r5, 0 b _0803B84C .align 2, 0 _0803B810: .4byte gUnknown_202DF98 _0803B814: .4byte gUnknown_80EAE5C _0803B818: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B864 adds r0, r6, 0 bl strcpy ldr r5, _0803B868 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 _0803B84C: bl sub_800D158 _0803B850: ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B864: .4byte gUnknown_202DF98 _0803B868: .4byte gUnknown_80E910C _0803B86C: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B8E8 adds r0, r6, 0 bl strcpy ldr r5, _0803B8EC adds r0, r4, 0 movs r1, 0xF bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string _0803B8B4: adds r0, r7, 0 adds r0, 0x40 ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0x7 bne _0803B916 ldr r5, [r7, 0xC] cmp r5, 0 bne _0803B8F0 bl sub_8016028 movs r4, 0xB2 subs r4, r0 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] str r5, [sp] adds r0, r4, 0 bl xxx_call_draw_string b _0803B956 .align 2, 0 _0803B8E8: .4byte gUnknown_202DF98 _0803B8EC: .4byte gUnknown_80E8C98 _0803B8F0: add r4, sp, 0xCC adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA bl sub_80922B4 bl sub_8016028 adds r1, r0, 0 movs r0, 0xB2 subs r0, r1 ldr r1, [r7, 0x48] ldr r3, [r7] movs r2, 0 str r2, [sp] adds r2, r4, 0 bl xxx_call_draw_string b _0803B956 _0803B916: adds r0, r7, 0 adds r0, 0x42 ldrb r0, [r0] cmp r0, 0x1 bne _0803B93C add r4, sp, 0xE0 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803B938 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803B944 .align 2, 0 _0803B938: .4byte gUnknown_80E8884 _0803B93C: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803B944: ldr r1, [r7, 0x48] adds r1, 0xC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x1D add r2, sp, 0x4 bl xxx_call_draw_string _0803B956: ldrb r0, [r6] cmp r0, 0x7 bne _0803B962 ldr r0, [r7, 0x8] movs r1, 0 b _0803B968 _0803B962: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803B968: bl sub_803C1D0 lsls r0, 24 lsrs r0, 24 bl sub_803C1F0 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xB4 bl xxx_call_draw_string add sp, 0x144 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803B6D4 thumb_func_start sub_803B98C sub_803B98C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1FC adds r7, r0, 0 movs r0, 0 mov r9, r0 ldr r2, _0803B9E0 ldr r3, [r7] str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, _0803B9E4 adds r0, r7, 0 adds r0, 0x44 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] mov r1, r9 str r1, [sp] movs r0, 0x6C movs r1, 0 bl xxx_call_draw_string movs r0, 0x10 mov r9, r0 adds r0, r7, 0 adds r0, 0x41 ldrb r0, [r0] cmp r0, 0x10 bls _0803B9D6 b _0803BCC0 _0803B9D6: lsls r0, 2 ldr r1, _0803B9E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B9E0: .4byte gUnknown_80E888C _0803B9E4: .4byte gUnknown_80E8BCC _0803B9E8: .4byte _0803B9EC .align 2, 0 _0803B9EC: .4byte _0803BA34 .4byte _0803BA3C .4byte _0803BA44 .4byte _0803BA30 .4byte _0803BA4C .4byte _0803BA6C .4byte _0803BA8C .4byte _0803BAA0 .4byte _0803BBF0 .4byte _0803BAE8 .4byte _0803BAF0 .4byte _0803BAF8 .4byte _0803BCC0 .4byte _0803BC58 .4byte _0803BB74 .4byte _0803BB10 .4byte _0803BB10 _0803BA30: ldr r2, [r7, 0x50] b _0803BAFA _0803BA34: ldr r2, _0803BA38 b _0803BAFA .align 2, 0 _0803BA38: .4byte gUnknown_80E88A0 _0803BA3C: ldr r2, _0803BA40 b _0803BAFA .align 2, 0 _0803BA40: .4byte gUnknown_80E88C8 _0803BA44: ldr r2, _0803BA48 b _0803BAFA .align 2, 0 _0803BA48: .4byte gUnknown_80E8920 _0803BA4C: ldr r4, _0803BA64 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA68 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA64: .4byte gUnknown_202DE58 _0803BA68: .4byte gUnknown_80E8968 _0803BA6C: ldr r4, _0803BA84 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA88 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA84: .4byte gUnknown_202DE58 _0803BA88: .4byte gUnknown_80E89B0 _0803BA8C: ldr r1, _0803BA9C ldr r0, [r7, 0x4] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r2, [r0] b _0803BAFA .align 2, 0 _0803BA9C: .4byte gUnknown_80E9920 _0803BAA0: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BAE0 adds r0, r4, 0 bl strcpy ldr r2, _0803BAE4 ldr r1, [r7, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 adds r3, r4, 0 bl sub_800D158 _0803BACC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BAE0: .4byte gUnknown_202DF98 _0803BAE4: .4byte gUnknown_80E9F8C _0803BAE8: ldr r2, _0803BAEC b _0803BAFA .align 2, 0 _0803BAEC: .4byte gUnknown_80E89FC _0803BAF0: ldr r2, _0803BAF4 b _0803BAFA .align 2, 0 _0803BAF4: .4byte gUnknown_80E8A40 _0803BAF8: ldr r2, _0803BB0C _0803BAFA: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BB0C: .4byte gUnknown_80E8A7C _0803BB10: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 ldr r0, _0803BB68 mov r8, r0 ldrb r1, [r7, 0x14] movs r2, 0 bl sub_8090DC4 ldr r6, _0803BB6C adds r0, r4, 0 movs r1, 0x16 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BB70 adds r0, r5, 0 movs r1, 0x16 b _0803BD1A .align 2, 0 _0803BB68: .4byte gUnknown_202DE58 _0803BB6C: .4byte gUnknown_80EB3F8 _0803BB70: .4byte gUnknown_80EB72C _0803BB74: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BBE4 mov r8, r0 bl strcpy ldr r6, _0803BBE8 adds r0, r4, 0 movs r1, 0x14 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r4, 0 str r4, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r1, _0803BBEC movs r0, 0x3 ands r5, r0 lsls r5, 2 adds r5, r1 ldr r1, [r5] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r4, [sp] b _0803BD32 .align 2, 0 _0803BBE4: .4byte gUnknown_202DF98 _0803BBE8: .4byte gUnknown_80EAEB8 _0803BBEC: .4byte gUnknown_80EB198 _0803BBF0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BC4C mov r8, r0 bl strcpy ldr r6, _0803BC50 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BC54 adds r0, r5, 0 movs r1, 0x6 b _0803BD1A .align 2, 0 _0803BC4C: .4byte gUnknown_202DF98 _0803BC50: .4byte gUnknown_80EB220 _0803BC54: .4byte gUnknown_80EB2F0 _0803BC58: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BCB4 mov r8, r0 bl strcpy ldr r6, _0803BCB8 adds r0, r4, 0 movs r1, 0x2D bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BCBC adds r0, r5, 0 movs r1, 0xA b _0803BD1A .align 2, 0 _0803BCB4: .4byte gUnknown_202DF98 _0803BCB8: .4byte gUnknown_80E91D4 _0803BCBC: .4byte gUnknown_80E9820 _0803BCC0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BD78 mov r8, r0 bl strcpy ldr r6, _0803BD7C adds r0, r4, 0 movs r1, 0xD bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BD80 adds r0, r5, 0 movs r1, 0xD _0803BD1A: bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r6, [sp] _0803BD32: movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r0, 0xC negs r0, r0 add r9, r0 _0803BD42: movs r1, 0x1C add r9, r1 ldr r2, _0803BD84 ldr r3, [r7] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldr r1, [r7, 0xC] cmp r1, 0 bne _0803BD88 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r3, [r7] mov r0, r8 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BDBC .align 2, 0 _0803BD78: .4byte gUnknown_202DF98 _0803BD7C: .4byte gUnknown_80E8DE4 _0803BD80: .4byte gUnknown_80E8FB0 _0803BD84: .4byte gUnknown_80E8AC8 _0803BD88: add r6, sp, 0x158 adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 add r4, sp, 0x16C movs r0, 0x10 ldrsh r1, [r7, r0] adds r0, r4, 0 bl sub_808D930 add r5, sp, 0x130 ldr r1, _0803BDE8 adds r0, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_800D158 ldr r3, [r7] mov r1, r8 str r1, [sp] movs r0, 0x44 mov r1, r9 adds r2, r5, 0 bl xxx_call_draw_string _0803BDBC: movs r0, 0xC add r9, r0 ldr r2, _0803BDEC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x42 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x6 bhi _0803BEB8 lsls r0, r1, 2 ldr r1, _0803BDF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BDE8: .4byte gUnknown_80E8AD0 _0803BDEC: .4byte gUnknown_80E8AE0 _0803BDF0: .4byte _0803BDF4 .align 2, 0 _0803BDF4: .4byte _0803BE10 .4byte _0803BE30 .4byte _0803BE18 .4byte _0803BE48 .4byte _0803BE80 .4byte _0803BE60 .4byte _0803BEB8 _0803BE10: ldr r2, _0803BE14 b _0803BE4A .align 2, 0 _0803BE14: .4byte gUnknown_80E8AEC _0803BE18: ldr r4, _0803BE28 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE2C b _0803BE94 .align 2, 0 _0803BE28: .4byte gUnknown_202DE58 _0803BE2C: .4byte gUnknown_80E8AFC _0803BE30: ldr r4, _0803BE40 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE44 b _0803BE94 .align 2, 0 _0803BE40: .4byte gUnknown_202DE58 _0803BE44: .4byte gUnknown_80E8B10 _0803BE48: ldr r2, _0803BE5C _0803BE4A: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BE5C: .4byte gUnknown_80E8B20 _0803BE60: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BE78 adds r0, r4, 0 bl strcpy ldr r1, _0803BE7C b _0803BE94 .align 2, 0 _0803BE78: .4byte gUnknown_202DF98 _0803BE7C: .4byte gUnknown_80E8B2C _0803BE80: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BEB0 adds r0, r4, 0 bl strcpy ldr r1, _0803BEB4 _0803BE94: add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BEB0: .4byte gUnknown_202DF98 _0803BEB4: .4byte gUnknown_80E8B40 _0803BEB8: ldr r2, _0803BEF8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803BEC8: movs r0, 0xC add r9, r0 ldr r2, _0803BEFC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0x1 bne _0803BF04 add r4, sp, 0x180 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803BF00 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BF0C .align 2, 0 _0803BEF8: .4byte gSpecialMissionText _0803BEFC: .4byte gPlaceText _0803BF00: .4byte gUnknown_80E8884 _0803BF04: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803BF0C: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0 bne _0803BF28 ldr r0, [r7, 0x8] movs r1, 0 b _0803BF2E _0803BF28: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803BF2E: bl sub_803C1D0 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0xC add r9, r1 ldr r2, _0803BF88 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r4, 0 bl sub_803C1F0 adds r2, r0, 0 ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string movs r0, 0xC add r9, r0 ldr r2, _0803BF8C ldr r3, [r7] str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x2E ldrb r2, [r0] adds r5, r0, 0 cmp r2, 0x4 bhi _0803C02C lsls r0, r2, 2 ldr r1, _0803BF90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BF88: .4byte gDifficultyText _0803BF8C: .4byte gRewardText _0803BF90: .4byte _0803BF94 .align 2, 0 _0803BF94: .4byte _0803BFA8 .4byte _0803BFBC .4byte _0803BFD0 .4byte _0803BFD0 .4byte _0803C00C _0803BFA8: ldr r1, _0803BFB8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFB8: .4byte gUnknown_80E8C48 _0803BFBC: ldr r1, _0803BFCC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFCC: .4byte gUnknown_80E8C48 _0803BFD0: ldr r4, _0803C004 adds r0, r7, 0 adds r0, 0x34 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803C008 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 _0803BFEE: bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C004: .4byte gUnknown_202DE58 _0803C008: .4byte gUnknown_80E8C48 _0803C00C: ldr r1, _0803C028 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C028: .4byte gUnknown_80E8C48 _0803C02C: ldr r1, _0803C0D4 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803C040: movs r1, 0xC add r9, r1 adds r0, r7, 0 adds r0, 0x41 ldrb r1, [r0] adds r0, r1, 0 subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0803C0C6 cmp r1, 0x3 beq _0803C0C6 ldr r0, [r7, 0x54] ldrb r0, [r0] cmp r0, 0x5 bne _0803C0C6 ldr r2, _0803C0D8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string add r0, sp, 0x1E4 ldr r1, [r7, 0x54] bl sub_803D414 movs r4, 0 _0803C07C: cmp r4, 0xC bne _0803C084 movs r0, 0xC add r9, r0 _0803C084: movs r5, 0x7 cmp r4, 0x3 ble _0803C09C movs r5, 0x6 cmp r4, 0x7 ble _0803C09C movs r5, 0x7 cmp r4, 0xF ble _0803C09C cmp r4, 0x13 bgt _0803C09C movs r5, 0x6 _0803C09C: adds r0, r4, 0 movs r1, 0xC bl __modsi3 adds r1, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x54 add r1, sp, 0x1E4 adds r1, r4 ldrb r2, [r1] ldr r1, [r7] str r1, [sp] mov r1, r9 adds r3, r5, 0 bl sub_8012C60 adds r4, 0x1 cmp r4, 0x17 ble _0803C07C _0803C0C6: add sp, 0x1FC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803C0D4: .4byte gUnknown_80E8C48 _0803C0D8: .4byte gUnknown_80E8B7C thumb_func_end sub_803B98C thumb_func_start sub_803C0DC sub_803C0DC: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808E770 lsls r0, 16 asrs r2, r0, 16 ldr r1, _0803C0F0 b _0803C102 .align 2, 0 _0803C0F0: .4byte gUnknown_80E80E0 _0803C0F4: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 bne _0803C100 movs r0, 0 b _0803C10C _0803C100: adds r1, 0x2 _0803C102: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C0F4 movs r0, 0x1 _0803C10C: pop {r1} bx r1 thumb_func_end sub_803C0DC thumb_func_start sub_803C110 sub_803C110: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _0803C180 adds r0, r4, 0 bl sub_808E770 lsls r0, 16 asrs r0, 16 cmp r4, r0 bne _0803C180 adds r0, r4, 0 bl sub_803C0DC lsls r0, 24 cmp r0, 0 beq _0803C180 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0803C188 ldr r1, _0803C184 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803C168 adds r2, r1, 0 _0803C154: movs r3, 0 ldrsh r0, [r2, r3] cmp r0, r4 beq _0803C180 adds r1, 0x2 adds r2, 0x2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C154 _0803C168: bl sub_808D33C movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, r4 beq _0803C180 bl sub_808D378 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r0, r4 bne _0803C188 _0803C180: movs r0, 0 b _0803C18A .align 2, 0 _0803C184: .4byte gUnknown_80E8126 _0803C188: movs r0, 0x1 _0803C18A: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C110 thumb_func_start sub_803C190 sub_803C190: lsls r0, 24 ldr r1, _0803C19C lsrs r0, 21 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C19C: .4byte gUnknown_80EBA18 thumb_func_end sub_803C190 thumb_func_start sub_803C1A0 sub_803C1A0: lsls r0, 24 ldr r1, _0803C1B0 lsrs r0, 21 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1B0: .4byte gUnknown_80EBA18 thumb_func_end sub_803C1A0 thumb_func_start sub_803C1B4 sub_803C1B4: push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl sub_80908D8 cmp r4, 0x2 bne _0803C1C4 adds r0, 0x2 _0803C1C4: cmp r0, 0xF ble _0803C1CA movs r0, 0xF _0803C1CA: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C1B4 thumb_func_start sub_803C1D0 sub_803C1D0: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r1, r0, 0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x6 bls _0803C1EC movs r0, 0x6 _0803C1EC: pop {r1} bx r1 thumb_func_end sub_803C1D0 thumb_func_start sub_803C1F0 sub_803C1F0: lsls r0, 24 ldr r1, _0803C1FC lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1FC: .4byte gUnknown_80E8BF8 thumb_func_end sub_803C1F0 thumb_func_start sub_803C200 sub_803C200: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 ldr r1, _0803C218 lsls r0, 2 adds r0, r1 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _0803C218: .4byte gUnknown_80E80A0 thumb_func_end sub_803C200 thumb_func_start sub_803C21C sub_803C21C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r0, r6, 0x4 ldrb r1, [r6, 0x1] bl sub_803C1D0 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 str r0, [r4, 0x18] movs r3, 0 movs r1, 0x2 adds r0, r4, 0 adds r0, 0x1E _0803C23E: strb r3, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0803C23E adds r0, r4, 0 adds r0, 0x20 movs r1, 0 strb r1, [r0] movs r1, 0xA strb r1, [r4, 0x1F] ldrb r1, [r6, 0x11] adds r3, r0, 0 cmp r1, 0x9 bhi _0803C354 lsls r0, r1, 2 ldr r1, _0803C268 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C268: .4byte _0803C26C .align 2, 0 _0803C26C: .4byte _0803C294 .4byte _0803C2A2 .4byte _0803C2B4 .4byte _0803C2BE .4byte _0803C354 .4byte _0803C2E0 .4byte _0803C2EE .4byte _0803C300 .4byte _0803C30A .4byte _0803C34A _0803C294: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2A2: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2B4: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2BE: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D _0803C2CC: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C2CC b _0803C35A _0803C2E0: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2EE: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C300: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C30A: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D movs r0, 0x1E adds r0, r4 mov r8, r0 _0803C31E: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C31E _0803C330: ldrb r1, [r6, 0x1] adds r0, r5, 0 mov r2, r8 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1E] cmp r0, r1 beq _0803C330 ldrb r0, [r4, 0x1D] cmp r0, r1 beq _0803C330 b _0803C35A _0803C34A: movs r0, 0x4 strb r0, [r4, 0x16] ldrb r0, [r6, 0x13] strb r0, [r3] b _0803C358 _0803C354: movs r0, 0x5 strb r0, [r4, 0x16] _0803C358: adds r5, r6, 0x4 _0803C35A: movs r0, 0xC ldrsh r1, [r6, r0] adds r0, r4, 0 bl sub_808D8E0 ldrh r0, [r6, 0xC] strh r0, [r4, 0x14] ldrb r1, [r6, 0x1] adds r0, r5, 0 bl sub_803C200 str r0, [r4, 0x24] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C21C thumb_func_start sub_803C37C sub_803C37C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r2 lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r7, r0, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 _0803C398: movs r5, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xEA bne _0803C3BA movs r0, 0 movs r1, 0x47 movs r2, 0x1 bl sub_8001784 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 _0803C3BA: cmp r4, 0xEB bne _0803C3CE movs r0, 0 movs r1, 0x47 movs r2, 0 bl sub_8001784 cmp r0, 0 beq _0803C3CE movs r5, 0x1 _0803C3CE: cmp r5, 0 bne _0803C398 mov r0, r8 strb r4, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C37C thumb_func_start sub_803C3E0 sub_803C3E0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C42C movs r4, 0 mov r8, sp _0803C3F2: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C41A: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x14 ble _0803C3F2 ldr r5, _0803C42C cmp r6, 0 bne _0803C430 movs r0, 0 b _0803C44E .align 2, 0 _0803C42C: .4byte gUnknown_80E9920 _0803C430: adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 3 adds r5, r0, r5 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] strh r0, [r7, 0xE] movs r0, 0x7 strb r0, [r7, 0x2] movs r0, 0x1 _0803C44E: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C3E0 thumb_func_start sub_803C45C sub_803C45C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xB4 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C4CC movs r4, 0 mov r8, sp _0803C46E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C496: adds r5, 0xC adds r4, 0x1 cmp r4, 0x2C ble _0803C46E ldr r5, _0803C4CC cmp r6, 0 beq _0803C4E0 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C4D0 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C4D6 .align 2, 0 _0803C4CC: .4byte gUnknown_80E9F8C _0803C4D0: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C4D6: strh r0, [r7, 0xE] movs r0, 0x8 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C4E2 _0803C4E0: movs r0, 0 _0803C4E2: add sp, 0xB4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C45C thumb_func_start sub_803C4F0 sub_803C4F0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C55C movs r4, 0 mov r8, sp _0803C502: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C52A: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x5 ble _0803C502 ldr r5, _0803C55C cmp r6, 0 beq _0803C570 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C560 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C566 .align 2, 0 _0803C55C: .4byte gUnknown_80E8168 _0803C560: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C566: strh r0, [r7, 0xE] movs r0, 0x9 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C572 _0803C570: movs r0, 0 _0803C572: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C4F0 thumb_func_start sub_803C580 sub_803C580: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r6, r0, 0 movs r7, 0 ldr r5, _0803C5D8 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803C5D2 movs r4, 0 mov r8, sp _0803C59E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C5C6 ldrb r0, [r6, 0x4] ldrb r1, [r5, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C5C6 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r7, 0x1 _0803C5C6: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x14 ble _0803C59E cmp r7, 0 bne _0803C5DC _0803C5D2: movs r0, 0 b _0803C600 .align 2, 0 _0803C5D8: .4byte gUnknown_80E8180 _0803C5DC: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r1, r4, 2 ldr r0, _0803C60C adds r5, r1, r0 ldrh r0, [r5] strh r0, [r6, 0xC] ldrh r0, [r5] strh r0, [r6, 0xE] ldrb r0, [r5, 0x2] strb r0, [r6, 0x10] movs r0, 0x5 strb r0, [r6, 0x2] movs r0, 0x1 _0803C600: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C60C: .4byte gUnknown_80E8180 thumb_func_end sub_803C580 thumb_func_start sub_803C610 sub_803C610: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0803C660 add sp, r4 adds r6, r0, 0 movs r7, 0 ldr r4, _0803C664 movs r5, 0 mov r8, sp _0803C624: movs r1, 0 ldrsh r0, [r4, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C64C ldrb r0, [r6, 0x4] ldrb r1, [r4, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C64C mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r5} adds r7, 0x1 _0803C64C: adds r4, 0x4 adds r5, 0x1 ldr r0, _0803C668 cmp r5, r0 ble _0803C624 cmp r7, 0 bne _0803C66C movs r0, 0 b _0803C690 .align 2, 0 _0803C660: .4byte 0xfffff9f8 _0803C664: .4byte gUnknown_80E81D4 _0803C668: .4byte 0x00000181 _0803C66C: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r5, [r0] lsls r1, r5, 2 ldr r0, _0803C6A0 adds r4, r1, r0 ldrh r0, [r4] strh r0, [r6, 0xC] ldrh r0, [r4] strh r0, [r6, 0xE] ldrb r0, [r4, 0x2] strb r0, [r6, 0x10] movs r0, 0x6 strb r0, [r6, 0x2] movs r0, 0x1 _0803C690: movs r3, 0xC1 lsls r3, 3 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C6A0: .4byte gUnknown_80E81D4 thumb_func_end sub_803C610 thumb_func_start sub_803C6A4 sub_803C6A4: push {r4,lr} ldr r4, _0803C6CC movs r0, 0xC0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0xB4 bl sub_801317C bl sub_803C6D0 movs r0, 0x1 bl sub_8099690 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803C6CC: .4byte gUnknown_203B400 thumb_func_end sub_803C6A4 thumb_func_start sub_803C6D0 sub_803C6D0: push {r4,r5,lr} ldr r4, _0803C72C ldr r0, [r4] adds r0, 0x4 bl sub_8001024 ldr r1, [r4] movs r0, 0 str r0, [r1] str r0, [r1, 0x34] str r0, [r1, 0x38] movs r2, 0 movs r5, 0 adds r3, r4, 0 _0803C6EC: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x44 adds r0, r1 str r5, [r0] adds r2, 0x1 cmp r2, 0xC ble _0803C6EC ldr r1, [r3] movs r0, 0 str r0, [r1, 0x3C] movs r2, 0 adds r4, r3, 0 movs r1, 0 _0803C708: ldr r0, [r4] adds r0, 0x78 adds r0, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x36 ble _0803C708 ldr r0, [r3] adds r0, 0x40 movs r1, 0 strb r1, [r0] ldr r0, [r3] adds r0, 0xB0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803C72C: .4byte gUnknown_203B400 thumb_func_end sub_803C6D0 thumb_func_start sub_803C730 sub_803C730: push {r4,r5,lr} ldr r0, _0803C750 ldr r1, [r0] ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, [r1, 0x34] cmp r0, 0xF bls _0803C744 b _0803C848 _0803C744: lsls r0, 2 ldr r1, _0803C754 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C750: .4byte gUnknown_203B400 _0803C754: .4byte _0803C758 .align 2, 0 _0803C758: .4byte _0803C798 .4byte _0803C79E .4byte _0803C7A4 .4byte _0803C7AA .4byte _0803C7B0 .4byte _0803C7B6 .4byte _0803C7BC .4byte _0803C7C2 .4byte _0803C7C8 .4byte _0803C7CE .4byte _0803C7D4 .4byte _0803C7DA .4byte _0803C7E0 .4byte _0803C7E6 .4byte _0803C7EC .4byte _0803C7F2 _0803C798: bl sub_803C870 b _0803C848 _0803C79E: bl sub_803C908 b _0803C848 _0803C7A4: bl sub_803C920 b _0803C848 _0803C7AA: bl sub_803C98C b _0803C848 _0803C7B0: bl sub_803C9D8 b _0803C848 _0803C7B6: bl sub_803CA54 b _0803C848 _0803C7BC: bl sub_803CA8C b _0803C848 _0803C7C2: bl sub_803CAAC b _0803C848 _0803C7C8: bl sub_803CAD4 b _0803C848 _0803C7CE: bl sub_803CAF4 b _0803C848 _0803C7D4: bl sub_803CB14 b _0803C848 _0803C7DA: bl sub_803CB5C b _0803C848 _0803C7E0: bl sub_803CB7C b _0803C848 _0803C7E6: bl sub_803CBB0 b _0803C848 _0803C7EC: bl sub_803CBE4 b _0803C848 _0803C7F2: bl Random ldr r4, _0803C844 ldr r1, [r4] ldr r1, [r1] adds r5, r0, 0 muls r5, r1 bl Random bl sub_8094D28 movs r1, 0 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x44 _0803C810: ldm r2!, {r0} adds r0, r1 adds r0, 0x3 muls r5, r0 adds r1, 0x1 cmp r1, 0xC ble _0803C810 bl sub_8094E4C adds r5, r0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0803C838 adds r4, r5, 0 _0803C82E: bl sub_8094E4C adds r5, r0 cmp r5, r4 beq _0803C82E _0803C838: adds r0, r5, 0 bl sub_8011C40 movs r0, 0x3 b _0803C84A .align 2, 0 _0803C844: .4byte gUnknown_203B400 _0803C848: movs r0, 0 _0803C84A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803C730 thumb_func_start sub_803C850 sub_803C850: push {r4,lr} ldr r4, _0803C86C ldr r0, [r4] adds r0, 0x4 bl sub_8001044 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0803C86C: .4byte gUnknown_203B400 thumb_func_end sub_803C850 thumb_func_start sub_803C870 sub_803C870: push {r4-r6,lr} sub sp, 0x14 ldr r5, _0803C8A4 ldr r1, [r5] ldr r0, [r1, 0x38] adds r0, 0x1 str r0, [r1, 0x38] cmp r0, 0x8 ble _0803C8B4 ldr r0, _0803C8A8 ldr r3, _0803C8AC movs r1, 0 str r1, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r1, [sp, 0x8] str r1, [sp, 0xC] ldr r1, _0803C8B0 str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 ldr r0, [r5] str r4, [r0, 0x34] b _0803C8F8 .align 2, 0 _0803C8A4: .4byte gUnknown_203B400 _0803C8A8: .4byte gGenderText _0803C8AC: .4byte gUnknown_80F275C _0803C8B0: .4byte 0x00000101 _0803C8B4: adds r4, r5, 0 _0803C8B6: movs r0, 0x37 bl RandomCapped ldr r1, [r4] str r0, [r1, 0x3C] adds r1, 0x78 adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 beq _0803C8B6 ldr r2, _0803C900 ldr r1, _0803C904 ldr r0, [r1] ldr r0, [r0, 0x3C] adds r0, r2 ldrb r4, [r0] movs r3, 0 adds r6, r1, 0 movs r5, 0x1 _0803C8DC: adds r0, r3, r2 ldrb r0, [r0] cmp r0, r4 bne _0803C8EC ldr r0, [r1] adds r0, 0x78 adds r0, r3 strb r5, [r0] _0803C8EC: adds r3, 0x1 cmp r3, 0x36 ble _0803C8DC ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x34] _0803C8F8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C900: .4byte gNatureQuestionTable _0803C904: .4byte gUnknown_203B400 thumb_func_end sub_803C870 thumb_func_start sub_803C908 sub_803C908: push {lr} bl sub_803CC04 ldr r0, _0803C91C ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803C91C: .4byte gUnknown_203B400 thumb_func_end sub_803C908 thumb_func_start sub_803C920 sub_803C920: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C97C ldr r3, [sp] cmp r3, 0x63 bne _0803C944 ldr r0, _0803C940 ldr r1, [r0] movs r0, 0x37 str r0, [r1, 0x3C] movs r0, 0x1 b _0803C97A .align 2, 0 _0803C940: .4byte gUnknown_203B400 _0803C944: ldr r1, _0803C984 ldr r2, _0803C988 ldr r0, [r2] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r4, [r0, 0x8] lsls r0, r3, 4 adds r4, r0 movs r3, 0 adds r6, r2, 0 adds r5, r6, 0 _0803C95E: ldr r1, [r5] lsls r0, r3, 2 adds r1, 0x44 adds r1, r0 adds r0, r4, r3 ldrb r2, [r0] ldr r0, [r1] adds r0, r2 str r0, [r1] adds r3, 0x1 cmp r3, 0xC ble _0803C95E ldr r1, [r6] movs r0, 0 _0803C97A: str r0, [r1, 0x34] _0803C97C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C984: .4byte gPersonalityQuestionPointerTable _0803C988: .4byte gUnknown_203B400 thumb_func_end sub_803C920 thumb_func_start sub_803C98C sub_803C98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C9CA ldr r1, [sp] cmp r1, 0 bne _0803C9AC ldr r0, _0803C9A8 ldr r0, [r0] adds r0, 0xB0 b _0803C9B4 .align 2, 0 _0803C9A8: .4byte gUnknown_203B400 _0803C9AC: ldr r0, _0803C9D0 ldr r0, [r0] adds r0, 0xB0 movs r1, 0x1 _0803C9B4: str r1, [r0] ldr r0, _0803C9D4 ldr r0, [r0] strb r1, [r0, 0xB] movs r0, 0 bl sub_8099690 ldr r0, _0803C9D0 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x34] _0803C9CA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803C9D0: .4byte gUnknown_203B400 _0803C9D4: .4byte gUnknown_203B46C thumb_func_end sub_803C98C thumb_func_start sub_803C9D8 sub_803C9D8: push {r4-r7,lr} movs r0, 0xD bl RandomCapped ldr r2, _0803CA4C ldr r1, [r2] adds r1, 0x40 strb r0, [r1] ldr r0, [r2] adds r0, 0x40 ldrb r3, [r0] adds r7, r2, 0 movs r5, 0xB _0803C9F2: adds r3, 0x1 cmp r3, 0xC ble _0803C9FA movs r3, 0 _0803C9FA: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, 0 adds r1, 0x44 adds r2, r1, r2 adds r4, r0, 0 adds r4, 0x40 ldrb r0, [r4] lsls r0, 2 adds r1, r0 ldr r2, [r2] ldr r0, [r1] ldr r6, _0803CA4C cmp r2, r0 ble _0803CA1A strb r3, [r4] _0803CA1A: subs r5, 0x1 cmp r5, 0 bge _0803C9F2 ldr r3, [r6] ldr r2, _0803CA50 adds r0, r3, 0 adds r0, 0xB0 ldr r1, [r0] lsls r1, 1 subs r0, 0x70 ldrb r0, [r0] lsls r0, 2 adds r1, r0 adds r1, r2 ldrh r0, [r1] strh r0, [r3, 0x8] bl sub_803CC40 ldr r1, [r6] movs r0, 0x5 str r0, [r1, 0x34] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CA4C: .4byte gUnknown_203B400 _0803CA50: .4byte gStarters thumb_func_end sub_803C9D8 thumb_func_start sub_803CA54 sub_803CA54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CA7A ldr r0, _0803CA80 ldr r3, _0803CA84 movs r1, 0 movs r2, 0 bl sub_80141B4 bl sub_803CC80 ldr r0, _0803CA88 ldr r1, [r0] movs r0, 0x6 str r0, [r1, 0x34] _0803CA7A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CA80: .4byte gStarterReveal _0803CA84: .4byte 0x00000101 _0803CA88: .4byte gUnknown_203B400 thumb_func_end sub_803CA54 thumb_func_start sub_803CA8C sub_803CA8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAA2 ldr r0, _0803CAA8 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x34] _0803CAA2: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAA8: .4byte gUnknown_203B400 thumb_func_end sub_803CA8C thumb_func_start sub_803CAAC sub_803CAAC: push {lr} ldr r0, _0803CAC8 ldr r3, _0803CACC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CAD0 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803CAC8: .4byte gUnknown_80F27DC _0803CACC: .4byte 0x00000301 _0803CAD0: .4byte gUnknown_203B400 thumb_func_end sub_803CAAC thumb_func_start sub_803CAD4 sub_803CAD4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAEA ldr r0, _0803CAF0 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x34] _0803CAEA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAF0: .4byte gUnknown_203B400 thumb_func_end sub_803CAD4 thumb_func_start sub_803CAF4 sub_803CAF4: push {r4,lr} ldr r4, _0803CB10 ldr r0, [r4] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_803CD08 ldr r1, [r4] movs r0, 0xA str r0, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _0803CB10: .4byte gUnknown_203B400 thumb_func_end sub_803CAF4 thumb_func_start sub_803CB14 sub_803CB14: push {r4,r5,lr} bl sub_803CDC0 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0803CB4C cmp r5, r0 beq _0803CB46 subs r0, 0x1 cmp r5, r0 beq _0803CB46 bl sub_803CE6C ldr r4, _0803CB50 ldr r0, [r4] strh r5, [r0, 0xA] ldr r0, _0803CB54 ldr r3, _0803CB58 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x34] _0803CB46: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CB4C: .4byte 0x0000ffff _0803CB50: .4byte gUnknown_203B400 _0803CB54: .4byte gUnknown_80F286C _0803CB58: .4byte 0x00000301 thumb_func_end sub_803CB14 thumb_func_start sub_803CB5C sub_803CB5C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CB72 ldr r0, _0803CB78 ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x34] _0803CB72: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CB78: .4byte gUnknown_203B400 thumb_func_end sub_803CB5C thumb_func_start sub_803CB7C sub_803CB7C: push {r4,r5,lr} ldr r4, _0803CBAC ldr r0, [r4] adds r5, r0, 0 adds r5, 0x20 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r5, 0 bl sub_80922F4 ldr r1, [r4] adds r1, 0x20 movs r0, 0x3 bl sub_801602C ldr r1, [r4] movs r0, 0xD str r0, [r1, 0x34] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CBAC: .4byte gUnknown_203B400 thumb_func_end sub_803CB7C thumb_func_start sub_803CBB0 sub_803CBB0: push {lr} bl sub_8016080 cmp r0, 0 beq _0803CBD2 bl sub_80160D8 ldr r0, _0803CBD8 ldr r3, _0803CBDC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CBE0 ldr r1, [r0] movs r0, 0xE str r0, [r1, 0x34] _0803CBD2: pop {r0} bx r0 .align 2, 0 _0803CBD8: .4byte gUnknown_80F2898 _0803CBDC: .4byte 0x00000301 _0803CBE0: .4byte gUnknown_203B400 thumb_func_end sub_803CBB0 thumb_func_start sub_803CBE4 sub_803CBE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CBFA ldr r0, _0803CC00 ldr r1, [r0] movs r0, 0xF str r0, [r1, 0x34] _0803CBFA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CC00: .4byte gUnknown_203B400 thumb_func_end sub_803CBE4 thumb_func_start sub_803CC04 sub_803CC04: push {lr} sub sp, 0x14 ldr r1, _0803CC38 ldr r0, _0803CC3C ldr r0, [r0] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r1] ldr r3, [r1, 0x4] movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFE str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0803CC38: .4byte gPersonalityQuestionPointerTable _0803CC3C: .4byte gUnknown_203B400 thumb_func_end sub_803CC04 thumb_func_start sub_803CC40 sub_803CC40: push {r4,lr} ldr r0, _0803CC70 ldr r4, _0803CC74 ldr r1, [r4] movs r2, 0x8 ldrsh r1, [r1, r2] bl sub_808D8BC ldr r1, _0803CC78 ldr r0, [r4] adds r0, 0x40 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r3, _0803CC7C movs r1, 0 movs r2, 0 bl sub_80141B4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CC70: .4byte gUnknown_202DF98 _0803CC74: .4byte gUnknown_203B400 _0803CC78: .4byte gPersonalityTypeDescriptionTable _0803CC7C: .4byte 0x00000101 thumb_func_end sub_803CC40 thumb_func_start sub_803CC80 sub_803CC80: push {r4-r7,lr} sub sp, 0x60 ldr r0, _0803CD00 ldr r0, [r0] movs r1, 0x8 ldrsh r4, [r0, r1] mov r0, sp bl sub_8006518 add r1, sp, 0x18 ldr r0, _0803CD04 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 mov r0, sp movs r1, 0x1 movs r2, 0 bl sub_800641C movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0xC] movs r4, 0 movs r7, 0x8 _0803CCC8: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CCC8 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CD00: .4byte gUnknown_203B400 _0803CD04: .4byte gUnknown_80F4244 thumb_func_end sub_803CC80 thumb_func_start sub_803CD08 sub_803CD08: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 16 asrs r4, 16 bl sub_803CEAC ldr r5, _0803CDB0 ldr r0, [r5] movs r3, 0 movs r1, 0 strh r4, [r0] str r1, [r0, 0x4C] adds r1, r0, 0 adds r1, 0x54 str r1, [r0, 0x50] ldr r0, _0803CDB4 ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldr r1, [r5] adds r1, 0x6C ldr r0, _0803CDB8 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r1, [r5] ldr r2, _0803CDBC adds r1, 0x84 adds r0, r2, 0 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r0, [r5] adds r0, 0x9C ldm r2!, {r1,r4,r6} stm r0!, {r1,r4,r6} ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldr r0, [r5] ldr r1, [r0, 0x50] adds r0, 0xB4 str r0, [r1, 0x14] movs r1, 0x1 strb r1, [r0] ldr r0, [r5] adds r0, 0xB5 strb r3, [r0] ldr r0, [r5] adds r0, 0xB6 movs r1, 0x6 strb r1, [r0] ldr r0, [r5] adds r0, 0xB7 strb r3, [r0] bl sub_8004914 ldr r0, [r5] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x18 bl sub_803D030 adds r1, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x4C] adds r0, r4, 0 movs r2, 0xA bl sub_8013818 bl sub_803CEF0 bl sub_803CFC0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CDB0: .4byte gUnknown_203B404 _0803CDB4: .4byte gUnknown_80F4290 _0803CDB8: .4byte gUnknown_80F42A8 _0803CDBC: .4byte gUnknown_80F4278 thumb_func_end sub_803CD08 thumb_func_start sub_803CDC0 sub_803CDC0: push {r4,r5,lr} ldr r4, _0803CDF0 ldr r1, [r4] movs r0, 0x30 ldrsh r5, [r1, r0] movs r0, 0 strb r0, [r1, 0x16] ldr r0, [r4] adds r0, 0x18 bl GetKeyPress cmp r0, 0x1 bne _0803CDF4 movs r0, 0 bl sub_80119D4 ldr r0, [r4] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 ldrh r0, [r0] b _0803CE2A .align 2, 0 _0803CDF0: .4byte gUnknown_203B404 _0803CDF4: ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 beq _0803CE08 bl sub_803CEF0 _0803CE08: ldr r0, [r4] movs r1, 0x30 ldrsh r0, [r0, r1] cmp r5, r0 beq _0803CE16 bl sub_803CFC0 _0803CE16: ldr r0, [r4] ldrb r0, [r0, 0x16] cmp r0, 0 bne _0803CE28 ldr r0, _0803CE24 b _0803CE2A .align 2, 0 _0803CE24: .4byte 0x0000ffff _0803CE28: ldr r0, _0803CE30 _0803CE2A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803CE30: .4byte 0x0000fffe thumb_func_end sub_803CDC0 thumb_func_start sub_803CE34 sub_803CE34: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_803D030 adds r1, r0, 0 ldr r5, _0803CE68 ldr r0, [r5] strh r1, [r0, 0x3A] adds r0, 0x18 bl sub_8013984 bl sub_803CEF0 bl sub_803CFC0 cmp r4, 0 beq _0803CE62 ldr r0, [r5] adds r0, 0x18 bl AddMenuCursorSprite _0803CE62: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CE68: .4byte gUnknown_203B404 thumb_func_end sub_803CE34 thumb_func_start sub_803CE6C sub_803CE6C: push {r4,r5,lr} ldr r4, _0803CEA4 ldr r1, [r4] ldr r2, [r1, 0x4C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x54 ldr r0, _0803CEA8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803CECC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CEA4: .4byte gUnknown_203B404 _0803CEA8: .4byte gUnknown_80F4278 thumb_func_end sub_803CE6C thumb_func_start sub_803CEAC sub_803CEAC: push {r4,lr} ldr r4, _0803CEC4 movs r0, 0xB8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] bl nullsub_135 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEC4: .4byte gUnknown_203B404 thumb_func_end sub_803CEAC thumb_func_start nullsub_135 nullsub_135: bx lr thumb_func_end nullsub_135 thumb_func_start sub_803CECC sub_803CECC: push {r4,lr} ldr r4, _0803CEEC ldr r0, [r4] cmp r0, 0 beq _0803CEE4 bl nullsub_135 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803CEE4: pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEEC: .4byte gUnknown_203B404 thumb_func_end sub_803CECC thumb_func_start sub_803CEF0 sub_803CEF0: push {r4-r6,lr} sub sp, 0x4 ldr r6, _0803CF60 ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r6] ldr r3, [r2, 0x4C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x62 movs r4, 0 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x4C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x64 strh r3, [r2] bl sub_8004914 ldr r0, [r6] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_80073B8 ldr r2, _0803CF64 ldr r0, [r6] ldr r3, [r0, 0x4C] str r4, [sp] movs r0, 0xC movs r1, 0 bl xxx_call_draw_string movs r5, 0 b _0803CF98 .align 2, 0 _0803CF60: .4byte gUnknown_203B404 _0803CF64: .4byte gUnknown_80F42C0 _0803CF68: ldr r0, [r6] adds r0, 0x18 adds r1, r5, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r6] lsls r1, r5, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_808D994 adds r2, r0, 0 ldr r0, [r6] ldr r3, [r0, 0x4C] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r5, 0x1 _0803CF98: ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] cmp r5, r0 blt _0803CF68 ldr r4, _0803CFBC ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_80073E0 ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x16] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803CFBC: .4byte gUnknown_203B404 thumb_func_end sub_803CEF0 thumb_func_start sub_803CFC0 sub_803CFC0: push {r4-r7,lr} ldr r0, _0803D02C ldr r0, [r0] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r4, [r0, r1] movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0x4] movs r4, 0 movs r7, 0 _0803CFF0: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CFF0 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 ldr r0, _0803D02C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x16] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D02C: .4byte gUnknown_203B404 thumb_func_end sub_803CFC0 thumb_func_start sub_803D030 sub_803D030: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0 mov r8, r0 ldr r4, _0803D0D0 ldr r0, [r4] movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_808DC68 mov r1, sp strb r0, [r1] ldr r0, [r4] movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x1 bl sub_808DC68 mov r1, sp strb r0, [r1, 0x1] movs r7, 0 add r6, sp, 0x4 mov r5, sp _0803D064: ldr r0, _0803D0D4 lsls r1, r7, 1 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] adds r0, r4, 0 movs r1, 0 bl sub_808DC68 strb r0, [r6] adds r0, r4, 0 movs r1, 0x1 bl sub_808DC68 adds r2, r0, 0 strb r2, [r6, 0x1] ldrb r1, [r6] cmp r1, 0 beq _0803D096 ldrb r0, [r5] cmp r1, r0 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D096: lsls r0, r2, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0803D0AA ldrb r2, [r5] cmp r1, r2 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D0AA: ldr r0, _0803D0D0 ldr r0, [r0] mov r2, r8 lsls r1, r2, 1 adds r0, 0x2 adds r0, r1 strh r4, [r0] movs r0, 0x1 add r8, r0 _0803D0BC: adds r7, 0x1 cmp r7, 0x9 ble _0803D064 mov r0, r8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D0D0: .4byte gUnknown_203B404 _0803D0D4: .4byte gPartners thumb_func_end sub_803D030 .align 2,0