=== lever-free bodies in ov_SC03_091 sharing a callee or global with func_8018486C (48 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8017C378 (src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c:3617) shares 2: D_801202A0 func_8012BD14 ---
void func_8017C378(s32 a0) {

    extern u8 D_80126B5C;
    extern u8 D_801202A0[];
    extern u16 D_80126B62;
    extern s16 D_80115214;
    extern u8 D_80190378[];
    extern u8 D_801903DC[];
    /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every
       LATER function in this TU, which blocks a byte-true decl of a different type.
       Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */
    extern u16 D_800B99DA;
    s32 s0 = *(s32 *)(a0 + 0x20);
    s16 found;
    s32 lvl;
    s16 i;
    s16 j;
    s32 rand_val;

    if ((D_800B99DA & 0xF) == 0) {
        u8 *p;
        u8 *end;
        for (p = D_801202A0, end = p + 0x6480; p < end; p += 0x10C) {
            if (*(u16 *)p == 0x128) {
                found = ((s32)p == a0);
                break;
            }
        }
        lvl = func_80013328(a0 + 4, (s32)&D_80126B5C);
        if (lvl < 0x800) {
            lvl = 0x44 - ((lvl >> 5) & 0x38);
        } else {
            lvl = 4;
        }
        if (found != 0 || D_80115214 < lvl) {
            D_80115214 = lvl;
        }
    }

    *(u16 *)(s0 + 0x12) += 0x20;
    rand_val = rand();
    func_8017BEBC(a0, rand_val & 0xF);

    if (*(u16 *)(a0 + 0x5E) != 0) {
        for (i = 0; (u16)i < 8; i++) {
            if (*(u16 *)(a0 + 0x5E) == D_80190378[i]) {
                func_801746A4();
                *(s32 *)(a0 + 0x1C) = 0x20;
                *(u16 *)(a0 + 0x2) += 1;
            }
        }
        *(s16 *)(a0 + 0x5E) = 0;
        return;
    }

    if (*(s16 *)(a0 + 0x10A) != 0) {
        return;
    }

    j = 5;
    do {
        if ((func_800291B4(j + 0x3B) & 0xFF) != 0) {
            break;
        }
        j++;
    } while (j < 0x28);

    if (j != 0x28) {
        *(s16 *)(a0 + 0x10A) = 1;
    } else if (((s32 (*)(s32))func_8012BD14)(a0) < 0x2A40) {
        if (currentLocationId == 0x3028) {
            if ((u16)(*(u16 *)(a0 + 0xA) - D_80126B62 + 4) < 4) {
                *(u16 *)(a0 + 0x106) += 1;
            }
            if (*(s16 *)(a0 + 0x106) < 2) {
                return;
            }
        }
        func_80178B18(a0, (s32)D_801903DC);
        *(s16 *)(a0 + 0x10A) = 1;
        *(s16 *)(a0 + 0x2) = 0xA;
    } else {
        *(s16 *)(a0 + 0x106) = 0;
    }
}

--- func_80184A98 (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:3597) shares 1: func_80184AE4 ---
void func_80184A98(s32 a0, s32 a1)
{
    if ((*(u16 *)a0 != 0x178) && (*(u16 *)a0 != 0x1E8)) {
        func_80184AE4(a0 + 4, a1);
    } else {
        func_80184B28(a0 + 4, a1, 0xC0);
    }
}

--- func_80184814 (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:3439) shares 1: func_8013B7AC ---
void func_80184814(s32 a0) {
    extern void func_8013B7AC(s32 a0);
    s32 i;
    for (i = 0; i < 3; i++) {
        func_8013B7AC(i);
    }
    *(u16 *)(a0 + 2) += 1;
    *(s32 *)(a0 + 0xCC) = 0;
}

--- func_8012A908 (src/shared/ov/func_8012A908.h:6) shares 1: D_801202A0 ---
void func_8012A908(void) {
    u8 *p = D_801202A0;
    s32 i;
    for (i = 0; i < 0x60; i++) {
        if (((s16)D_801270C0 == 1) || (*(u16 *)(p + 0x72) & 0x1000)) {
            func_8012A988(p);
        }
        p += 0x10C;
    }
}

--- func_801787D4 (src/shared/ov/func_801787D4.h:5) shares 1: D_801202A0 ---
void func_801787D4(void) {
    u8 *p = D_801202A0;
    s32 i;
    for (i = 0; i < 0x60; i++) {
        if (*(u16 *)(p + 0) != 0 && p[0xC0] != 0) {
            func_80178840(p);
        }
        p += 0x10C;
    }
}

--- func_801841B0 (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:3186) shares 1: func_8012BD14 ---
void func_801841B0(s32 a0) {
    s32 ret = func_8012BD14(a0);
    if (ret <= 0x64000) {
        Struct_801841B0 *ptr = *(Struct_801841B0 **)(a0 + 0x20);
        *(s16 *)(a0 + 0x2) = 1;
        ptr->f1 = ptr->f1 & 0x7FFFFFFF;
        func_80143970((void *)a0);
        func_8012E688((void *)a0, 0xBA2, 0);
    }
}

