=== lever-free bodies in ov_SC06_018 sharing a callee or global with func_8018F694 (48 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8012D3B4 (src/shared/ov/func_8012D3B4.h:12) shares 5: D_800AF648 D_800B9A02 func_80010A08 func_8004914C func_800491AC ---
void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2) {
    s32 sp10;
    s32 sp14;
    s32 temp_v0_2;
    void *temp_v0;
    temp_v0 = func_80010A08(0x10);
    (*(s32 *)((s8*)(temp_v0)+(4))) = arg2;
    SetLineF2(temp_v0);
    func_8004914C(&D_800AF648);
    func_800491AC(&D_800AF648);
    temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);
    if ((temp_v0_2 > 0) && (sp14 >= 0) && (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {
        AddPrim(*(s32 *)((s8 *)&D_800A651C + ((u16)D_800B9A02 * 0x14)) + (temp_v0_2 * 4), temp_v0);
    }
}

--- func_8012D4B4 (src/shared/ov/func_8012D4B4.h:13) shares 5: D_800AF648 D_800B9A02 func_80010A08 func_8004914C func_800491AC ---
void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
    s32 sp10[2];
    s32 sp18[2];
    s32 sp20;
    s32 sp24;
    s32 temp_v0_2;
    void *temp_v0;
    func_8012F214(arg0, arg1, (s32)sp10);
    func_8012F214(arg0, arg2, (s32)sp18);
    temp_v0 = func_80010A08(0x10);
    (*(s32 *)((s8 *)(temp_v0) + (4))) = arg3;
    SetLineF2(temp_v0);
    func_8004914C(&D_800AF648);
    func_800491AC(&D_800AF648);
    temp_v0_2 = RotTransPers((s32)sp10, temp_v0 + 8, &sp20, &sp24);
    if ((temp_v0_2 > 0) && (sp24 >= 0) &&
        (RotTransPers((s32)sp18, temp_v0 + 0xC, &sp20, &sp24) > 0) && (sp24 >= 0)) {
        AddPrim(*(s32 *)((s8 *)&D_800A651C + ((u16)D_800B9A02 * 0x14)) + (temp_v0_2 * 4), temp_v0);
    }
}

--- func_80136D08 (src/shared/ov/func_80136D08.h:12) shares 5: D_800AF648 D_800B9A02 func_80010A08 func_8004914C func_800491AC ---
void func_80136D08(s32 arg0, s32 arg1) {
    s32 sp10;
    s32 sp14;
    s32 temp_v0;
    s32 temp_v0_2;
    void *buf;
    func_8004914C(&D_800AF648);
    func_800491AC(&D_800AF648);
    buf = func_80010A08(0x14);
    SetLineG2(buf);
    *((u8 *)buf + 0xE) = 0xFF;
    *((u8 *)buf + 0x4) = 0xFF;
    *((u8 *)buf + 0xD) = 0x80;
    *((u8 *)buf + 0x5) = 0x80;
    *((u8 *)buf + 0xC) = 0x80;
    *((u8 *)buf + 0x6) = 0x80;
    temp_v0 = RotTransPers(arg0, (s32)buf + 8, &sp10, &sp14);
    temp_v0_2 = RotTransPers(arg1, (s32)buf + 0x10, &sp10, &sp14);
    temp_v0 = ((temp_v0 + temp_v0_2) >> 3) * 4;
    AddPrim(*(s32 *)((s8 *)&D_800A651C + ((u16)D_800B9A02 * 0x14)) + temp_v0, buf);
}

--- func_8012CFA8 (src/shared/ov/func_8012CFA8.h:3) shares 5: D_800AF648 D_800B9A02 func_80010A08 func_8004914C func_800491AC ---
void func_8012CFA8(s32 arg0)
{
    extern s32 AddPrim(s32, void *);
    extern s32 RotTransPers(s32, s32 *, s32 *, s32 *);
    extern void SetPolyF3(void *);
    extern void *func_80010A08(s32);
    extern void func_8004914C(void *a0);
    extern void func_800491AC(void *a0);
    extern s32 D_800A651C;
    extern u8 D_800AF648;
    extern short D_800B9A02;
    s32 sp10;
    s32 sp14;
    s32 sp18;
    s32 temp_a2;
    void *temp_v0;
    temp_v0 = func_80010A08(0x14);
    (*(s32 *)((s8 *)(temp_v0) + (4))) = 0xFF;
    SetPolyF3(temp_v0);
    func_8004914C(&D_800AF648);
    func_800491AC(&D_800AF648);
    temp_a2 = (RotTransPers(arg0, &sp10, &sp14, &sp18) >> 2) - 0x20;
    if (temp_a2 > 0) {
        *(s32 *)((s8 *)temp_v0 + 8) = sp10;
        *(s16 *)((s8 *)temp_v0 + 0xC) = *(u16 *)((s8 *)temp_v0 + 8) + 8;
        *(s16 *)((s8 *)temp_v0 + 0xE) = *(u16 *)((s8 *)temp_v0 + 0xA);
        *(s16 *)((s8 *)temp_v0 + 0x10) = *(u16 *)((s8 *)temp_v0 + 8);
        *(s16 *)((s8 *)temp_v0 + 0x12) = *(u16 *)((s8 *)temp_v0 + 0xA) + 8;
        AddPrim(*(s32 *)((s8 *)&D_800A651C + ((u16)D_800B9A02 * 0x14)) + (temp_a2 * 4), temp_v0);
    }
}

--- func_80144090 (src/shared/ov/func_80144090.h:10) shares 5: D_800AF648 D_800B9A02 func_80010A08 func_8004914C func_800491AC ---
void func_80144090(s32 param_1) {
    extern OtBlk D_800A651C[];
    extern u8 D_800AF648;
    extern short D_800B9A02;
    void *iVar1;
    s32 iVar2;
    s32 iVar3;
    s32 iVar4;
    s32 iVar5;
    s32 iVar6;
    struct {
        s16 v10[4];
        u16 sxy[2];
        s32 p;
        s32 flag;
    } L;
    iVar1 = func_80010A08(0x140);
    if (iVar1 != 0) {
        *(s32 *)(param_1 + 4) = *(s32 *)(param_1 + 4) + *(s32 *)(param_1 + 0x10);
        *(s32 *)(param_1 + 8) = *(s32 *)(param_1 + 8) + *(s32 *)(param_1 + 0x14);
        *(s32 *)(param_1 + 0xc) = *(s32 *)(param_1 + 0xc) + *(s32 *)(param_1 + 0x18);
        L.v10[0] = *(u16 *)(param_1 + 6);
        L.v10[1] = *(u16 *)(param_1 + 0xa);
        L.v10[2] = *(u16 *)(param_1 + 0xe);
        func_8004914C(&D_800AF648);
        func_800491AC(&D_800AF648);
        iVar2 = RotTransPers((s32)L.v10, (s32)L.sxy, &L.p, &L.flag);
        iVar2 = iVar2 + 4;
        if (iVar2 < 0) {
            iVar2 = 0;
        }
        iVar6 = 0;
        do {
            *(s32 *)((u8 *)iVar1 + 4) = 0xffffff;
            *(u8 *)((u8 *)iVar1 + 3) = 4;
            *(u8 *)((u8 *)iVar1 + 7) = 0x20;
            if (*(s32 *)(param_1 + 0x1c) - 6 < 1) {
                *(s16 *)((u8 *)iVar1 + 8) = L.sxy[0];
                *(s16 *)((u8 *)iVar1 + 0xa) = L.sxy[1];
            } else {
                iVar5 = func_8004787C(iVar6);
                *(s16 *)((u8 *)iVar1 + 8) = L.sxy[0] + ((iVar5 * ((*(s32 *)(param_1 + 0x1c) - 6) << 4)) >> 0xc);
                iVar5 = func_80047948(iVar6);
                *(s16 *)((u8 *)iVar1 + 0xa) = L.sxy[1] + ((iVar5 * ((*(s32 *)(param_1 + 0x1c) - 6) << 4)) >> 0xc);
            }
            iVar3 = func_8004787C(iVar6) * (*(s32 *)(param_1 + 0x1c) << 4);
            iVar4 = func_80047948(iVar6) * (*(s32 *)(param_1 + 0x1c) << 4);
            iVar6 = iVar6 + 0x100;
            *(s16 *)((u8 *)iVar1 + 0x10) = L.sxy[0] + ((iVar3 + (iVar4 >> 6)) >> 0xc);
            *(s16 *)((u8 *)iVar1 + 0x12) = L.sxy[1] + ((iVar4 + (iVar3 >> 6)) >> 0xc);
            *(s16 *)((u8 *)iVar1 + 0xc) = L.sxy[0] + ((iVar3 - (iVar4 >> 6)) >> 0xc);
            *(s16 *)((u8 *)iVar1 + 0xe) = L.sxy[1] + ((iVar4 - (iVar3 >> 6)) >> 0xc);
            AddPrim(D_800A651C[(u16)D_800B9A02].a + (iVar2 * 4), iVar1);
            iVar1 = (u8 *)iVar1 + 0x14;
        } while (iVar6 < 0x1000);
    }
}

--- func_8012E32C (src/shared/ov/func_8012E32C.h:6) shares 3: D_800AF648 func_8004914C func_800491AC ---
void func_8012E32C(void) {
    func_8004914C(&D_800AF648);
    func_800491AC(&D_800AF648);
}

