=== lever-free bodies in md_MAIN_003 sharing a callee or global with func_800D1E9C (7 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_800D27A0 (src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:456) shares 3: D_800EC9F4 D_800EC9F8 func_80059888 ---
s32 func_800D27A0(void* arg0, struct UnkS1* arg1) {
    s32 sp10[2];
    u16 sp18[4];
    s32 ret;
    s32 i;

    for (i = 0x8000; i != 0; i--) {
        if (StGetNext(&sp10[0], &sp10[1]) == 0) {
            goto found;
        }
    }
    return 0;
found:
    if (*(u32*)(sp10[1] + 8) >= arg1->fC) {
        D_800EC9F4 = 1;
    }
    if (*(u32*)(sp10[1] + 8) >= arg1->fC - 15) {
        D_800EC9F8 = 1;
    } else {
        D_800EC9F8 = 0;
    }
    if (D_800D9484 != *(u16*)(sp10[1] + 0x10) || D_800D9488 != *(u16*)(sp10[1] + 0x12)) {
        u16 cur1;
        u16 cur2;
        sp18[0] = 0;
        sp18[1] = 0;
        sp18[2] = arg1->f4 != 0 ? (arg1->f18 * 3) / 2 : *(u16*)&arg1->f18;
        sp18[3] = arg1->f1C * 2;
        if (arg1->f4 != 0) {
            func_80059888(sp18, 0, 0, 0);
        } else {
            func_80059888(sp18, 0x40, 0x40, 0x40);
        }
        cur1 = *(u16*)(sp10[1] + 0x10);
        cur2 = *(u16*)(sp10[1] + 0x12);
        D_800D9484 = cur1;
        D_800D9488 = cur2;
    }
    {
        u16 t = arg1->f4 != 0 ? (D_800D9484 * 3) / 2 : *(u16*)&D_800D9484;
        u16 g;
        ret = sp10[0];
        g = *(u16*)&D_800D9488;
        *(u16*)(arg0 + 0x24) = t;
        *(u16*)(arg0 + 0x1C) = t;
        *(u16*)(arg0 + 0x26) = g;
        *(u16*)(arg0 + 0x1E) = g;
        *(u16*)(arg0 + 0x32) = g;
    }
    return ret;
}

--- func_800D2454 (src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:340) shares 2: func_800D2AA0 func_800D2D44 ---
void func_800D2454(s32 a0, s32 a1, s32 *a2) {
    func_800D2AA0(0);
    func_800D2D44(a1);
    StSetRing(D_800D946C, 0x20);
    StSetStream(a2[1], a2[2], -1, 0, 0);
    func_800D2A24(a0);
}

--- func_800D1E18 (src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:93) shares 1: D_800EC9FC ---
s32 func_800D1E18(void) {
    return CdSearchFile(D_800EC9FC, (void *) D_800D942C[func_8001BFA0()].unk00) != 0;
}

--- func_800D1E58 (src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:105) shares 1: D_800EC9E0 ---
void func_800D1E58(void) {
    D_800EC9E0 = 0;
    func_800D1E9C(&D_800D942C[func_8001BFA0()]);
    func_8001BFB0();
}

--- func_800CF300 (src/md_MAIN_003/md_MAIN_003.c:193) shares 1: func_80059888 ---
void func_800CF300(void) {
    s16 sp10[4];

    func_800CF3E8();
    D_800EC68C -= 4;
    if (D_800EC68C < 0) {
        sp10[2] = 0x280;
        sp10[0] = 0;
        sp10[1] = 0;
        sp10[3] = 0x1E0;
        func_80059888(&sp10[0], 0, 0, 0);
        func_800118AC();
    }
}

--- func_800D0440 (src/md_MAIN_003/md_MAIN_003_o0e.c:205) shares 1: func_80059888 ---
void func_800D0440(void) {
    register u8 *p = D_800AF630;
    u16 rect[4];

    if ((u16) func_800167F0(4) != 0) {
        switch (D_800EC894) {
        case 0:
            *(u16 *) (p + 0xA3B6) = 1;
            *(u16 *) (p + 0xA3B8) = 2;
            break;
        case 1:
            *(u16 *) (p + 0xA3B6) = 1;
            *(u16 *) (p + 0xA3B8) = 0;
            break;
        case 2:
            *(u16 *) (p + 0xA3B6) = 1;
            *(u16 *) (p + 0xA3B8) = 1;
            break;
        case 4:
            *(u16 *) (p + 0xA3B6) = 1;
            *(u16 *) (p + 0xA3B8) = 4;
            break;
        }
        rect[0] = 0;
        rect[1] = 0;
        rect[2] = 0x140;
        rect[3] = 0x1E0;
        func_80059888(rect, 0, 0, 0);
    }
    func_800D0D6C();
}

