=== lever-free bodies in ov_SC04_011 sharing a callee or global with func_80140958 (35 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8013FAF8 (src/ov_SC04_011/ov_SC04_011_jr_8013F350.c:1254) shares 5: D_800B9A02 D_8011516A D_8019129C D_80191390 func_8014168C ---
void func_8013FAF8(s16 arg0, s16 arg1) {

    extern Hw4    D_8011516A[];
    extern Rec20  D_800AE7B8[];
    extern Blk60  D_80190E2C[];
    extern Blk20  D_8019112C[];
    extern Prim4  D_8019122C[];
    extern Prim4  D_8019129C[];
    extern Prim4 *D_80191390[];
    extern s32    D_801913B0[];
    extern u8 D_801913D0;
    u8 sp18[72];
    s32 sp60[2];
    s32 *ot;
    s16 i;
    s16 j;
    s16 flag;
    s32 addr;
    Prim4 *p;
    s32 r;
    s32 t;
    s16 *pp;
    s32 flag2;
    s32 flag3;

    func_80140E6C();
    func_80140F00();
    ot = func_80140958((s32 *)D_801151D0, arg0, arg1);
    if (D_8011511A < 6) {
        ot = (s32 *)func_80141100((int)ot);
    }
    for (i = arg0; i < arg1; i++) {
        if (i == D_8011511A || i == 2 || i == 4) {
            flag = 0;
        } else {
            flag = 0xFF;
        }
        p = &D_8019122C[i];
        if (i != 5) {
            if (i == 2) {
                addr = ((s32 *)&D_801913D0)[*(s16 *)&D_80115128];
            } else {
                addr = D_801913B0[i];
            }
        } else {
            addr = func_8013FFD8(2, func_8014168C(2), sp60);
        }
        func_80024054(addr, sp18);
        ot = func_800D2650(ot, sp18, (s16)(p->f0 + (u16)D_8011516A[i].x), p->f2, 1,
                           flag != 0 ? 0x585858 : 0x808080);
        p = D_80191390[i];
        j = 0;
        if (p != 0) {
            if (i == 2 && *(s16 *)&D_80115128 != 0) {
                p = D_8019129C;
            }
            flag2 = flag;
            for (;;) {
                r = func_8013FFD8(i, j++, sp60);
                if (r == 0) {
                    break;
                }
                if (r < 0) {
                    func_80024054(r, sp18);
                    t = 1;
                    if (i == 0 && (D_80078EC0 & 0x7F) == j) {
                        t = 0xB6;
                    }
                    if (flag2 != 0) {
                        sp60[0] += -0x282828;
                    }
                    ot = func_800D2650(ot, sp18, (s16)(p->f0 + (u16)D_8011516A[i].x), p->f2, t, sp60[0]);
                }
                p++;
            }
        }
        func_8005A600((s32)ot, 0, 0, 0x15, 0);
        flag3 = flag;
        *ot = 0x2000000;
        *ot = (D_800AE7B8[*(u16 *)&D_800B9A02].f4[2] & 0xFFFFFF) | 0x2000000;
        D_800AE7B8[*(u16 *)&D_800B9A02].f4[2] =
            (D_800AE7B8[*(u16 *)&D_800B9A02].f4[2] & 0xFF000000) | ((u32)ot & 0xFFFFFF);
        ot = func_800D29F8(flag3,
                           func_800D27DC(flag3 != 0, ot + 10, &D_80190E2C[i], 8, D_8011516A[i].x),
                           &D_8019112C[i], 2, D_8011516A[i].x);
    }
    pp = &D_801917A4;
    if (*pp == 0xE) {
        ot = func_80137D08(ot, &D_800AE7B8[*(u16 *)&D_800B9A02], 2);
    }
    if (*pp != 0 && D_801917A6 != 0) {
        ot = func_8013AB54(ot, D_800AE7B8[*(u16 *)&D_800B9A02].f4 + 2, (s32)(pp - 2), 0x8000);
    }
    D_801151D0 = (s32)ot;
}

--- func_80140D68 (src/shared/ov/func_80140D68.h:3) shares 3: D_800AE7BC D_800B9A02 D_8011516A ---
s32 *func_80140D68(out, src, idx, dx, ofs)
    s32 *out;
    Prim4 *src;   /* conformed to the fleet prototype; used only as (s32)src */
    s16  idx;
    s32  dx;
    s16  ofs;
{

    extern Hw4 D_8011516A[];
    /* §94 TYPE-CARRY: this typedef and its extern MUST be BLOCK-scope. extract_unit carries
       file-scope externs and #defines into each remapped sibling (Phase-27 _carry_macros) but
       NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
       sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
       is the proof), so it lives here. */
         /* 0x14 stride */
    extern Env_800D29F8 D_800AE7BC[];


    u32 mhi;
    s16 *q;
    s32  a;

    out[0] = 0x04000000;
    *((u8 *)out + 0xC) = 0x70;
    *((u8 *)out + 0xD) = 0x10;
    mhi = 0x64808080;
    out[1] = mhi;
    *(u16 *)((u8 *)out + 0xE) = 0x4056;

    dx -= 0xD;
    q = (s16 *)(ofs * 2 + (s32)src);
    a = (u16)q[0] + (u16)D_8011516A[idx].x;
    a += dx;
    *(s16 *)((u8 *)out + 0x8) = a;
    *(s16 *)((u8 *)out + 0xA) = q[1] - 4;
    *(s16 *)((u8 *)out + 0x12) = 0x10;
    *(s16 *)((u8 *)out + 0x10) = 0x10;

    ((PTag_80140D68 *)out)->addr = *(u32 *)((PTag_80140D68 *)((D_800AE7BC[*(u16 *)&D_800B9A02].ot) + 2));
    ((PTag_80140D68 *)((D_800AE7BC[*(volatile u16 *)&D_800B9A02].ot) + 2))->addr = (u32)out;

    return out + 5;
}

--- func_8013E6AC (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1838) shares 2: D_80115110 D_80115140 ---
void func_8013E6AC(void) {
    short i;

    func_8013E83C();
    D_8011511A = 0;
    D_80115124 = D_80078EC0;
    for (i = 0; i < 8; i++) {
        *(s16 *)((char *)&D_80115148 + (i << 1)) = 0;
        D_80115140[i] = 0;
    }
    if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
        s32 *ep;
        s32 *fp;
        fp = (s32 *)&D_80115110;
        ep = (s32 *)&D_801917CC;
        for (i = 0; i < 5; i++) {
            s32 *fa;
            s32 v;
            fa = (s32 *)(i * 4 + (s32)fp);
            v = ep[i] * 3 >> 2;
            fa[0x16] = v;
            *(s32 *)((char *)&D_80115188 + (i << 2)) = v;
        }
        D_801917A4 = 2;
        D_801917A6 = 1;
        { u16 *q = &D_80115112; *q += 1; }
    } else {
        func_8013E83C();
        D_8011511A = 7;
        D_801917A6 = 0;
        D_801917A4 = 0;
        D_80115112 = 6;
    }
}

--- func_8013EB7C (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:2008) shares 2: D_800B9A02 func_8014168C ---
void func_8013EB7C(void) {
    s32 sp10[2];
    short sVar1;
    s32 iVar4;

    if ((s16)func_80141C50() == 0) {
        D_801151D0 = *(s32 *)&D_801151C8[(u16)D_800B9A02 * 4];
        sVar1 = ((short (*)(void))func_8013F350)();
        if (D_8011511A >= 4) {
            func_8013FAF8((s16)D_8011511A, (s16)(D_8011511A + 1));
        }
        func_8013FAF8(0, 5);
        if (D_8011511A == 5) {
            iVar4 = func_8014032C((2), (((short (*)(s32))func_8014168C)(2)));
        } else {
            iVar4 = func_8014032C(((s16)D_8011511A), (((short (*)(s32))func_8014168C)((s16)D_8011511A)));
        }
        if (iVar4 != 0) {
            s32 *p130 = &D_80115130;
            if (iVar4 != *p130) {
                *p130 = iVar4;
                func_80139954();
                func_801376E8(iVar4, (s32)&(*(u8 *)&D_801917A8));
            }
        }
        func_80137B80();
        if ((D_8011511E & 0x10) != 0 && D_8011511A < 5 && sVar1 == 0) {
            (*(s16 *)&D_80115128) = 0;
            func_8002D4C8(0x466, 0);
            if (D_8011511A != 4) {
                func_801376E8((s32)((s32 (*)(void))func_80141CA4)(), (s32)&(*(u8 *)&D_801917A8));
            }
            (*(unsigned short *)&D_80115112) -= 1;
        } else {
            if ((D_8011511E & 0x800) != 0 || D_8011512A != 0) {
                func_8013E958();
            }
        }
    }
    (void)sp10;
}

--- func_801412A8 (src/shared/ov/func_801412A8.h:4) shares 2: D_800AE7BC D_800B9A02 ---
Prim_1412A8 *aF801412A8(Prim_1412A8 *out, int a1, int a2, int a3, u16 a4, u16 a5) {
    extern Env_1412A8 D_800AE7BC[];
    extern short D_800B9A02;
    extern u16 D_80115116;
    Prim_1412A8 *p = out;
    int y = a5;
    int color = 0xF800F8;
    int val;
    if ((short)a1) {
        val = 0x5E;
        if (D_80115116 & 1) { color = 0xF89C00; }
    } else if ((short)a2) {
        val = (short)a3 * 0x5E / (short)a2;
    } else {
        val = 0x5E;
        color = 0xF89C00;
    }
    p->tag = 0x03000000;
    p->w1 = color | 0x60000000;
    p->w2 = a4 | (((short)y + 0xA) << 16);
    p->w3 = val | 0x20000;
    addPrim_1412A8(&OT_1412A8[2], p);
    p++;
    p->w1 = 0x60080808;
    p->tag = 0x03000000;
    p->w2 = a4 | (((short)y + 0xA) << 16);
    p->w3 = 0x2005E;
    addPrim_1412A8(&OT_1412A8[2], p);
    p++;
    p->w1 = 0x60FFFFFF;
    p->tag = 0x03000000;
    p->w2 = (((short)y + 9) << 16) | (u16)(a4 - 1);
    p->w3 = 0x20060;
    addPrim_1412A8(&OT_1412A8[2], p);
    p++;
    p->tag = 0x03000000;
    p->w1 = 0x60E0C0A0;
    p->w2 = (((short)y + 0xB) << 16) | (u16)(a4 - 1);
    p->w3 = 0x20060;
    addPrim_1412A8(&OT_1412A8[2], p);
    return p + 1;
}

--- func_8013E83C (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1879) shares 2: D_80115110 D_80115158 ---
void func_8013E83C() {
    extern void func_80141C0C(int);
    extern unsigned short D_80115118;
    extern unsigned short D_80115128;
    extern unsigned short D_8011512E;
    extern unsigned int D_80115130;
    extern unsigned short D_80115158;
    extern unsigned short D_8011515A;
    extern unsigned short D_8011515C;
    extern unsigned short D_8011515E;
    extern unsigned short D_80115162;
    extern unsigned short D_80115166;
    extern void * D_801EDB08;
    extern void * D_801EDB0C;
    extern unsigned char D_80191444;
    extern unsigned char D_8019145C;
    extern unsigned char D_801914D0;
    extern unsigned char D_801914D8;


    D_80115118 = 0;
    D_80115130 = 0;
    if (D_8011511A >= 4) {
        D_8011511A = D_8011511A - 3;
    }
    D_80115158 = 0x106;

    if ((((int(*)(int))func_80029178)(0x1c) & 0xFF) == 0) {
        D_801EDB08 = &D_80191444;
        D_801EDB0C = &D_801914D0;
    } else {
        D_801EDB08 = &D_8019145C;
        D_801EDB0C = &D_801914D8;
    }

    D_8011515A = 0x104;
    D_8011515C = 0x104;
    D_8011515E = 0x129;
    D_80115162 = 0x103;
    D_80115166 = 0x105;
    D_80115128 = 0;
    D_8011512E = 0;

    if (D_80115110 == 3) {
        ((void(*)(int, int))func_8002D4C8)(0x46e, 0);
    } else {
        func_80141C0C(0);
    }
}

