=== lever-free bodies in ov_SC03_091 sharing a callee or global with func_80185730 (10 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_80184F08 (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:3755) shares 2: D_80126CBA func_801858AC ---
void func_80184F08(param_1)
s32 param_1;
{
    if (((s32 (*)(s32))func_8012BE54)(param_1) <= 0x40000 && D_80126CBA == 0 && func_801858AC(param_1) == 0) {
        *(s16 *)(param_1 + 2) = 5;
    }
}

--- func_8012BCCC (src/shared/ov/func_8012BCCC.h:6) shares 1: D_80126CBA ---
s32 func_8012BCCC(s32 a0) {
    s32 *p = &D_80126B58;
    if (D_80126CBA != 0) {
        return 0x7FFFFFFF;
    }
    return func_80013478(a0 + 4, (s32)p + 0x15C);
}

--- func_8012BD3C (src/shared/ov/func_8012BD3C.h:7) shares 1: D_80126CBA ---
s32 func_8012BD3C(s32 a0, s32 a1, s32 a2) {
    s32 v;
    s32 hp;
    hp = a1;
    if (D_80126CBA != 0) {
        v = 0x7FFFFFFF;
    } else {
        v = func_80013478(a0 + 4, (s32)&D_80126CB4);
    }
    if (a2 < v) {
        return 0;
    }
    return func_8012BDBC(a0, (s16)hp);
}

--- func_801889EC (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:6524) shares 1: func_8012B77C ---
void func_801889EC(s32 a0, s32 a1)
{
    s16 sp10[8];   /* the func_8012B77C "to" record — fields at +0x2/+0x6/+0xA */
    s32 sp20[2];   /* reused as both func_8012B0B4's dest and func_8012B77C's "out" */
    s32 t;
    s16 r;

    r = rand();
    func_8012B0B4((unsigned int *)sp20, r % 0x1000, (r % 0x100) + 0x200);

    t = sp20[0];
    if (a1 != 0) {
        sp10[1] = D_80126B5E + t;
        sp10[3] = *(u16 *)(a0 + 0xA);
        sp10[5] = D_80126B66 + (t >> 16);
    } else {
        sp10[1] = *(u16 *)(a0 + 0x88) + t;
        sp10[3] = *(u16 *)(a0 + 0xA);
        sp10[5] = *(u16 *)(a0 + 0x8C) + (t >> 16);
    }
    func_8012B77C((s32)sp20, a0 + 4, (s32)sp10);

    t = sp20[0];
    *(s16 *)(a0 + 0x100) = *(s16 *)(a0 + 0xE4) = t;
    *(s16 *)(a0 + 0x102) = *(s16 *)(a0 + 0xE6) = t >> 16;
}

--- func_80184D6C (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:3697) shares 1: func_801858AC ---
void func_80184D6C(s32 a0)
{
    extern void func_80185730();
    extern s32  func_8012B608(s32 a0, s32 a1, s32 a2);
    extern void func_8012B178(s32 a0, s32 a1);
    extern void func_8012CBF4(s32 a0);
    extern s32  func_8012BEE8(s32 a0);
    extern s32  func_801858AC();
    extern s32  func_80185800(s32 a0);
    extern void func_8012BE54(s32 a0);

    s32 sp10[2];
    s32 t;
    s32 r;

    func_80185730(sp10, a0, a0 + 0x102);
    t = sp10[0];
    *(s16 *)(*(s32 *)(a0 + 0x20) + 0x10) = t;
    r = func_8012B608(*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12), t >> 16,
                       *(s16 *)(a0 + 0xFE));
    *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =
        *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) + r;
    func_8012B178(a0, *(s32 *)(a0 + 0xE0));
    func_8012CBF4(a0);
    if (func_8012BEE8(a0)) {
        if (func_801858AC(a0) != 1) {
            if (func_80185800(a0) == 1) {
                if (((s32 (*)(s32))func_8012BE54)(a0) <= 0x8000) {
                    *(s16 *)(a0 + 0x2) = 8;
                } else {
                    *(s32 *)(a0 + 0x1C) = rand() % 60 + 0x78;
                    *(s16 *)(a0 + 0xFE) = rand() % 32 + 0xA;
                }
            }
        }
    }
}

--- func_80185430 (src/ov_SC03_091/ov_SC03_091_jr_8018326C.c:4044) shares 1: func_8012B77C ---
void func_80185430(s32 a0)
{
    s32 sp10[6];   /* the func_8012B77C "to" record — fields at +0x2/+0x6/+0xA;
                    * sized 6 words (24B, not case2's 4) — the target's buf sits
                    * at sp+0x28, a full 24B above sp10's base at sp+0x10. */
    s32 sp28[2];   /* reused as both func_8012B0B4's dest and func_8012B77C's "out" */
    s32 t;
    s16 r;

    if (*(u16 *)(a0 + 0x34) == 0) {
        if (func_8012BEE8(a0) != 0) {
            r = rand();
            func_8012B0B4((unsigned int *)sp28, r % 0x1000, (r % 0x80) + 0xC0);

            t = sp28[0];
            *(s16 *)((s32)sp10 + 0x2) = t;
            *(s16 *)((s32)sp10 + 0x6) = *(s16 *)(a0 + 0xA) - 0x180;
            *(s16 *)((s32)sp10 + 0xA) = t >> 16;
            func_8012B77C((s32)sp28, a0 + 4, (s32)sp10);

            t = sp28[0];
            *(s16 *)(*(s32 *)(a0 + 0x20) + 0x10) = t;
            *(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) = t >> 16;
            func_8012B200((u8 *)a0);
            func_8012B2CC(a0);
            func_8012B178(a0, *(s32 *)(a0 + 0xE0) - 0x20000);
            *(s16 *)(a0 + 0x34) = *(u16 *)(a0 + 0x34) + 1;
        }
    } else {
        func_8012CBF4(a0);
        if (func_8012E778(a0, 0xA000C8) == 0) {
            *(s16 *)(a0 + 0x2) = 0xA;
            *(s32 *)(a0 + 0x1C) = 0x80;
            func_8012E8A8((u8 *)a0);
        }
    }
}

