=== lever-free bodies in ov_SC06_010 sharing a callee or global with func_8017F024 (3 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_801788B8 (src/shared/ov/func_801788B8.h:6) shares 1: func_8012B2CC ---
s32 func_801788B8(s32 arg0, s32 arg1) {
    s32 iVar1;
    u16 buf[4];
    iVar1 = func_8012C658(0x83, (s32)*(s16 *)((u8 *)arg0 + 0x70), 0);
    if (iVar1 == 0) {
        return 0;
    }
    *(s32 *)((u8 *)iVar1 + 0x64) = arg0;
    buf[0] = *(u16 *)((u8 *)arg0 + 0x6);
    buf[1] = *(u16 *)((u8 *)arg0 + 0xA);
    buf[2] = *(u16 *)((u8 *)arg0 + 0xE);
    if (*(s32 *)((u8 *)arg0 + 0x20) != 0) {
        buf[3] = *(u16 *)((u8 *)(*(s32 *)((u8 *)arg0 + 0x20)) + 0x12);
    } else {
        buf[3] = 0;
    }
    func_8012E8E0(iVar1, (s32)buf);
    func_8012B2CC(iVar1);
    *(s32 *)((u8 *)iVar1 + 0xDC) = arg1;
    return iVar1;
}

--- func_80181FC4 (src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c:7320) shares 1: func_8012B2CC ---
void func_80181FC4(s32 a0)
{

    extern s32 D_801A4C64;
    SV4 in;
    SV4 out;
    u16 uStack_c;

    if (*(u16 *)(a0 + 0x34) == 0) {
        *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =
            *(u16 *)(*(s32 *)(*(s32 *)(a0 + 0x64) + 0x20) + 0x12);
        func_8012B2CC(a0);
        func_8012B23C(a0);
        func_8012B14C(a0, *(s16 *)(a0 + 0x70) * 12 + (s32)&D_801A4C64);

        in.a = 0;
        in.b = 0;
        in.c = 0x10;
        func_8012F214(a0, (s32)&in, (s32)&out);
        *(u16 *)(a0 + 6) = out.a;
        *(u16 *)(a0 + 0xa) = out.b;
        uStack_c = out.c;
        *(s32 *)(a0 + 0x1c) = 0x5a;
        *(u16 *)(a0 + 0x34) = 1;
        *(u16 *)(a0 + 0xe) = uStack_c;
    }

    *(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) += -0x80;
    *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += 4;
    *(u16 *)(*(s32 *)(a0 + 0x20) + 0x14) += *(u16 *)(a0 + 0xfc);

    *(s32 *)(a0 + 0xdc) = *(s32 *)(a0 + 0x14);
    if ((((s32 (*)(s32))func_8012CBCC)(a0)) & 0x6000) {
        *(s32 *)(a0 + 0x14) = -*(s32 *)(a0 + 0xdc);
        if (--*(s16 *)(a0 + 0xac) == 0) {
            func_8012C218((void *)a0);
        }
    }

    {
        s32 iVar3 = *(s32 *)(a0 + 0x1c) - 1;
        *(s32 *)(a0 + 0x1c) = iVar3;
        if (iVar3 == 0) {
            func_8012C218((void *)a0);
        }
    }
}

--- func_80131B14 (src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c:1692) shares 1: func_8012B2CC ---
void func_80131B14() {
    extern void func_8002A520(void *);
    extern void func_8002A790(void *);
    extern u8 D_80186EB0;

    u8 *a0v;
    u8 *p = a0v;


    s32 e = *(u8 *)(p + 0x5E);

    if (*(s16 *)(p + 0x60) != 0) {
        if (e == 0x1D) {
            *(s16 *)(p + 0x82) = 0;
            *(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
            *(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
            *(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
        }
        {
            s32 dec;
            s32 q = *(s32 *)(p + 0x78);
            if (q != 0) {
                dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
                if (dec <= 0) dec = 1;
            }
            *(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
        }
        ((void (*)(void *))func_8016AA50)(p);
        if (*(u16 *)(p + 0x82) & 1) {
            ((void (*)(void *))func_8016B428)(p);
            ((void(*)(void *))func_80019064)(&D_80186EB0);
        }
    }

    *(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;

    if (e != 0x1D) {
        if (*(u8 *)(p + 0xC8)) func_8002A520(p);
        if (*(u8 *)(p + 0xC9)) func_8002A790(p);
    }

    if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;

    {
        s32 r = *(s32 *)(p + 0x20);
        *(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
        {
            s32 r2 = *(s32 *)(p + 0x20);
            *(s16 *)(r2 + 0x14) = 0;
            *(s16 *)(r2 + 0x10) = 0;
        }
    }

    ((void (*)(void *))func_8012B2CC)(p);
    ((void (*)(void *))func_8012B23C)(p);
}

