=== lever-free bodies in ov_SC04_011 sharing a callee or global with func_801833D4 (48 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_80183880 (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:7142) shares 8: D_801EFD20 D_801EFD40 func_800484EC func_80183BF0 func_801852BC func_801853D0 func_80185648 func_80185960 ---
void func_80183880(s32 a0)
{
    extern u16 D_801EFD20;
    extern u16 D_801EFD40;
    extern s32 D_801EFC4C[];
    extern void func_801852BC(s32);
    extern void func_801853D0(s32);
    extern void func_80185648();
    extern void func_800484EC(s32, s32, s32);
    extern s32 func_80183BF0(s32);
    extern void func_80185960(s32, u16 *, s32);

    u16 idx;
    s32 obj;
    s32 v[3];
    s32 step;
    s32 sub;

    idx = D_801EFD20;
    obj = D_801EFC4C[idx];

    if (D_801EFD40 & 4) {
        func_801852BC(idx);
        func_801853D0(idx);
        func_80185648(idx);

        v[1] = 0;
        v[0] = 0;
        if (D_801EFD40 & 0x20) {
            v[2] = 0xFFD80000;
        } else {
            v[2] = 0xFFEC0000;
        }

        func_800484EC(*(s32 *)(obj + 0x20) + 0x34, (s32)&v[0], (s32)&v[0]);

        *(s32 *)(obj + 0x4) += v[0];
        *(s32 *)(obj + 0x8) += v[1];
        *(s32 *)(obj + 0xC) += v[2];

        func_80183BF0(a0);

        *(u16 *)(*(s32 *)(obj + 0x20) + 0x10) =
            *(u16 *)(a0 + 0xFE) + *(u16 *)(a0 + 0x102);

        func_80185960(*(s16 *)(a0 + 0x100), (u16 *)(a0 + 0xFE), 0x20);

        if (D_801EFD40 & 0x20) {
            step = 0x40;
        } else {
            step = 0x20;
        }

        sub = *(s32 *)(obj + 0x20);

        if (*(s16 *)(sub + 0x12) < *(s16 *)(a0 + 0x106) + 0x1000) {
            *(s16 *)(sub + 0x12) += step;
            if (!(*(s16 *)(*(s32 *)(obj + 0x20) + 0x12) < *(s16 *)(a0 + 0x106) + 0x1000)) {
                *(s16 *)(*(s32 *)(obj + 0x20) + 0x12) = *(s16 *)(a0 + 0x106) + 0x2000;
            }
        } else {
            *(s16 *)(sub + 0x12) -= step;
            if (!(*(s16 *)(a0 + 0x106) + 0x1000 < *(s16 *)(*(s32 *)(obj + 0x20) + 0x12))) {
                *(s16 *)(*(s32 *)(obj + 0x20) + 0x12) = *(s16 *)(a0 + 0x106);
            }
        }
    }
}

--- func_80187008 (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:9658) shares 5: D_801EFD20 D_801EFD40 func_801852BC func_801853D0 func_80185648 ---
void func_80187008(s32 arg0) {
    s32 g = D_801EFD20;
    func_801805F8(arg0);
    if (D_801EFD40 & 4) {
        func_801852BC(g);
        func_801853D0(g);
        func_80185648(g);
    }
}

--- func_80183BF0 (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:7304) shares 2: D_801EFD40 func_80185960 ---
void impl_80183BF0(s32 a0)
{
    s16 sVar1;

    if (D_801EFD40 & 0x40) {
        sVar1 = *(s16 *)(a0 + 0x102) + *(s16 *)(a0 + 0x104);
        *(s16 *)(a0 + 0x102) = sVar1;
        if (sVar1 < -0x17F) {
            *(u16 *)(a0 + 0x104) = 0x20;
        }
        if (*(s16 *)(a0 + 0x102) >= 0x180) {
            *(s16 *)(a0 + 0x104) = -0x20;
        }
    } else {
        func_80185960(0, (u16 *)(a0 + 0x102), 0x20);
    }
}

--- func_801858DC (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:8574) shares 2: D_801EFD40 func_80185960 ---
void func_801858DC(void *a0)
{
    u16 step;
    u16 flag;

    flag = D_801EFD40;
    step = 0x20;
    if (flag & 0x20) {
        step = 0x40;
    }

    func_80185960(*(s16 *)((s32)a0 + 0xE4),
                  (u16 *)((s32)(*(void **)((s32)a0 + 0x20)) + 0x10), step);
    func_80185960(*(s16 *)((s32)a0 + 0xE6),
                  (u16 *)((s32)(*(void **)((s32)a0 + 0x20)) + 0x12), step);
    func_80185960(*(s16 *)((s32)a0 + 0xE8),
                  (u16 *)((s32)(*(void **)((s32)a0 + 0x20)) + 0x14), step);
}

--- func_80180E80 (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:4928) shares 2: D_801EFD20 D_801EFD40 ---
void func_80180E80(u8 *self) {
    s32 obj;
    s32 vp1;
    s32 vp2;

    obj = aFC4C[D_801EFD20];
    vp1 = *(s32 *)(obj + 0x20);
    *(s16 *)(obj + 6) = 0x640;
    *(s16 *)(obj + 0xA) = -0x980;
    *(s16 *)(obj + 0xE) = 0x240;
    *(s16 *)(vp1 + 0x12) = 0x600;
    vp2 = *(s32 *)(obj + 0x20);
    *(s16 *)(vp2 + 0x10) = 0;
    *(s16 *)(self + 0xFE) = 0;
    func_80186710();
    *(s16 *)(self + 0xF4) = 0;
    *(s16 *)(self + 0xF2) = 0;
    func_80183564((s32)self, (s16 *)D_80194490);
    D_801EFD40 = D_801EFD40 & 0xFDFF;
    func_8012AD44((s32 *)self, 4);
}

--- func_80181868 (src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:5319) shares 2: D_801EFD20 D_801EFD40 ---
void func_80181868(u8 *self) {
    s32 obj;
    s32 vp;

    obj = aFC4C[D_801EFD20];
    if (!(D_801EFD40 & 0x400)) {
        D_801EFD18 = func_80188E00(obj, D_801944D0);
    }
    vp = *(s32 *)(obj + 0x20);
    *(s16 *)(obj + 6) = 0x500;
    *(s16 *)(obj + 0xA) = -0xD88;
    *(s16 *)(obj + 0xE) = 0x1980;
    *(s16 *)(vp + 0x12) = 0;
    vp = *(s32 *)(obj + 0x20);
    *(s16 *)(vp + 0x10) = 0x380;
    *(s16 *)(self + 0xFE) = 0x380;
    func_80186710();
    func_80183BD0(self);
    D_801EFD40 = D_801EFD40 & 0xFFF7;
    func_80183564((s32)self, (s16 *)D_801944D0);
    func_80186BD8();
    func_8012AD44((s32 *)self, 7);
}

