.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text 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