=== lever-free bodies in ov_SC03_104 sharing a callee or global with func_8018431C (91 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_80144364 (src/ov_SC03_104/ov_SC03_104_jr_80140608.c:2193) shares 3: func_8001CB6C func_8012C194 func_8012CAE4 ---
void func_80144364(int param_1) {
    int iVar3;
    u16 uVar2;
    s16 sVar1;

    iVar3 = ((s32 (*)(void))func_8012C194)();
    if (iVar3 == 0) {
        ((void (*)(int))func_8012CAE4)(param_1);
    } else {
        uVar2 = *(u16 *)(*(int *)(param_1 + 0x64) + 0x36);
        *(int *)(param_1 + 0xCC) = iVar3;
        *(u16 *)(param_1 + 0xFC) = uVar2;
        func_8001CB6C((u8 *)iVar3, (s32)&D_8018C5D8, 0x250, 0x1A0);
        *(s32 *)(iVar3 + 4) = 0x60000000;
        *(u8 *)(iVar3 + 0x27) = 0x14;
        *(u16 *)(iVar3 + 0x10) = 0x400;
        *(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
        *(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
        *(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
        sVar1 = *(s16 *)(param_1 + 0x70);
        if (sVar1 != 0) {
            *(s16 *)(iVar3 + 0x1A) = sVar1;
            *(s16 *)(iVar3 + 0x18) = sVar1;
        } else {
            *(u16 *)(iVar3 + 0x1A) = 0x2000;
            *(u16 *)(iVar3 + 0x18) = 0x2000;
        }
        *(u16 *)(param_1 + 2) = 1;
    }
}

--- func_80144880 (src/ov_SC03_104/ov_SC03_104_jr_80140608.c:2320) shares 3: func_8001CB6C func_8012C194 func_8012CAE4 ---
void func_80144880(s32 param_1)
{
    s32 obj;   /* $s0 */
    s32 self = param_1;  /* $s1 */
    s32 b;    /* $v0 */
    s32 e;

    obj = ((s32 (*)(void))func_8012C194)();
    if (obj == 0) {
        ((void (*)(s32))func_8012CAE4)(self);
    } else {
        *(u16 *)(self + 0xFC) = *(u16 *)(*(s32 *)(self + 0x64) + 0x36);
        *(s32 *)(self + 0xCC) = obj;
        if (*(s16 *)(self + 0x70) == 1) {
            func_8001CB6C((u8 *)obj, (s32)&D_8018C5D8, 0x250, 0x1A0);
            b = 0x14;
        } else {
            func_8001CB6C((u8 *)obj, (s32)&D_8018C648, 0x300, 0x1D0);
            b = 0x6A;
        }
        *(u8 *)(obj + 0x27) = (u8)b;
        *(s32 *)(obj + 4) = 0x60000000;
        *(u16 *)(obj + 0x10) = 0x400;
        *(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
        *(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
        e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
        *(u16 *)(obj + 0x1A) = 0x4000;
        *(u16 *)(obj + 0x18) = 0x4000;
        *(u16 *)(obj + 0xC) = (u16)e;
        *(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
    }
}

--- func_80144558 (src/shared/ov/func_80144558.h:10) shares 2: func_8012C194 func_8012CAE4 ---
void func_80144558(u8 *param_1) {
    s32 s0;
    s0 = ((s32 (*)(void))func_8012C194)();
    if (s0 == 0) {
        func_8012CAE4(param_1);
    } else {
        *(s32 *)(param_1 + 0xCC) = s0;
        func_8001CC3C(s0, 0, 0, 0);
        *(s32 *)(s0 + 0x20) = (s32)D_800D387C;
        *(u8 *)(s0 + 0x27) = 0x9C;
        *(u16 *)(s0 + 0x1A) = 0x3000;
        *(u16 *)(s0 + 0x18) = 0x3000;
        *(u32 *)(s0 + 4) = *(u32 *)(s0 + 4) | 0x50000000;
        func_80128EA8(s0, (s32)(param_1 + 0xD0), (s32)D_800D3888);
        *(u16 *)(s0 + 8) = *(u16 *)(param_1 + 6);
        *(u16 *)(s0 + 0xA) = *(u16 *)(param_1 + 0xA);
        *(u16 *)(s0 + 0xC) = *(u16 *)(param_1 + 0xE);
        *(u16 *)(param_1 + 2) = 1;
        func_8012B200(param_1);
    }
}

--- func_801446A4 (src/shared/ov/func_801446A4.h:9) shares 2: func_8012C194 func_8012CAE4 ---
void func_801446A4(int param_1)
{
    int s1;
    int iVar1;
    int param_12;
    param_12 = param_1;
    s1 = param_12;
    iVar1 = ((int (*)(void))func_8012C194)();
    if (iVar1 == 0) {
        ((void (*)(int))func_8012CAE4)(s1);
    } else {
        *(int *)(s1 + 0xcc) = iVar1;
        ((void (*)(int, int, int, int))func_8001CC3C)(iVar1, 0, 0, 0);
        *(int *)(iVar1 + 0x20) = (int)&D_800D387C;
        *(unsigned char *)(iVar1 + 0x27) = 0x9c;
        *(short *)(iVar1 + 0x1a) = 0x3000;
        *(short *)(iVar1 + 0x18) = 0x3000;
        *(unsigned int *)(iVar1 + 4) = *(unsigned int *)(iVar1 + 4) | 0x50000000;
        func_80128EA8(iVar1, s1 + 0xd0, (int)&D_800D3888);
        *(short *)(iVar1 + 8) = *(unsigned short *)(s1 + 6);
        *(short *)(iVar1 + 0xa) = *(unsigned short *)(s1 + 0xa);
        *(short *)(iVar1 + 0xc) = *(unsigned short *)(s1 + 0xe);
        *(short *)(s1 + 2) = *(short *)(s1 + 2) + 1;
    }
}

--- func_8018428C (src/ov_SC03_104/ov_SC03_104_jr_80182038.c:4401) shares 2: func_8012AD50 func_8012CAE4 ---
void func_8018428C(void *a0)
{
    extern void func_8012C1B8(void);
    extern void func_8012CAE4(void *a0);
    extern void func_8001C2C4(s32 a0);
    extern s16 D_8019CA60;
    extern s32 D_8019CA14;
    extern s32 func_8012AD50(void *a0);

    void *s0;
    s32 v0 = ((s32 (*)(void))func_8012C1B8)();
    s0 = a0;

    *(s32 *)((u8 *)s0 + 0x20) = v0;

    if (v0 == 0) {
        func_8012CAE4((void *)s0);
        return;
    }

    func_8001C2C4(v0);
    *(s32 *)((u8 *)s0 + 0x58) = (s32)&D_8019CA60 | 0x40000000;
    *(s16 *)((u8 *)s0 + 0x5C) = 0x800;
    *(u16 *)((u8 *)s0 + 0x72) |= 0x1000;
    *(s32 *)&D_8019CA14 = *(s32 *)((u8 *)s0 + 0xDC);
    func_8012AD50((void *)s0);
}

--- func_80142608 (src/ov_SC03_104/ov_SC03_104_jr_80140608.c:1588) shares 2: func_8012AD50 func_8012CAE4 ---
void func_80142608(s32 param_1)
{
    s32 iVar1;

    if (*(short *)(param_1 + 0x70) != 0) {
        iVar1 = ((s32 (*)(void))func_8012C1B8)();
    } else {
        iVar1 = func_8012C1DC(*(s32 *)(param_1 + 100));
    }
    *(s32 *)(param_1 + 0x20) = iVar1;
    if (iVar1 != 0) {
        func_8001CA1C(iVar1, (s32)&D_8018C0D8);
        *(short *)(iVar1 + 0x1a) = 0x200;
        *(short *)(iVar1 + 0x18) = 0x200;
        *(short *)(param_1 + 0xfc) = 0x40;
        if (*(short *)(param_1 + 0x70) != 0) {
            goto ad50;
        }
        if (*(s32 *)(param_1 + 100) != 0) {
            *(short *)(param_1 + 0xfe) = *(short *)(*(s32 *)(param_1 + 100) + 0x36);
            goto ad50;
        }
    }
    ((void (*)(s32))func_8012CAE4)(param_1);
    return;
ad50:
    *(short *)(param_1 + 0x98) = 0;
    *(s32 *)(param_1 + 0x90) = 0;
    ((void (*)(s32))func_8012AD50)(param_1);
}

