=== lever-free bodies in md_SC07_004 sharing a callee or global with func_801AB54C (2 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_801A80C0 (src/md_SC07_004/md_SC07_004.c:5484) shares 1: func_801A8494 ---
void func_801A80C0(void *a0) {
    u16 v0;

    func_801A8494(a0);

    v0 = *(u16 *)((s32)a0 + 0x2A) + 8;
    *(u16 *)((s32)a0 + 0x2A) = v0;
    func_800234E4((void *)D_801F89B8, 0x80, v0);

    if (*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) < 0x1E00) {
        if (*(s32 *)((s32)a0 + 0x1C) != 0) {
            *(s32 *)((s32)a0 + 0x1C) -= 1;
            if (*(s32 *)((s32)a0 + 0x1C) == 0) {
                s32 p = *(s32 *)((s32)a0 + 0x20);
                *(u16 *)(p + 0x1A) = 0x800;
                *(u16 *)(p + 0x18) = 0x800;
            }
        }

        *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) =
            *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) + 0x2C0;
        *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x1A) =
            *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18);

        if (*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) >= 0x1E00) {
            *(s32 *)((s32)a0 + 0x1C) = 0x30;
        }
    } else {
        if (*(s32 *)((s32)a0 + 0x1C) != 0) {
            *(s32 *)((s32)a0 + 0x1C) -= 1;
        } else {
            u8 *p = &D_801F89BC;
            D_801F89BC -= (D_801B0388 >> 4);
            p[1] -= (D_801B0389 >> 4);
            p[2] -= (D_801B038A >> 4);
            if (D_801F89BC == 0) {
                func_801292C8((u8 *)a0);
            }
        }
    }
}

--- func_801A8294 (src/md_SC07_004/md_SC07_004.c:5557) shares 1: func_801A8494 ---
void func_801A8294(void *a0) {
    u8 *base;
    s32 sub;
    s16 val;

    base = D_801F89F8;
    func_801A8494(a0);

    sub = *(s32 *)((s32)a0 + 0x20);
    val = *(s16 *)(sub + 0x18);

    if (val < 0x3000) {
        if (*(s32 *)((s32)a0 + 0x1C) != 0) {
            *(s32 *)((s32)a0 + 0x1C) -= 1;
        } else {
            *(s16 *)(sub + 0x1A) = 0x6000;
            *(s16 *)(sub + 0x18) = 0x6000;
            *(s32 *)((s32)a0 + 0x1C) = 0x30;
        }
        return;
    }

    if (val > 0x3000) {
        *(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) = val - 0x100;
        *(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x1A) = *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18);
        return;
    }

    if (*(s32 *)((s32)a0 + 0x1C) != 0) {
        u8 b0 = *base;

        if (b0 == 0xC0) {
            *base = b0 - 0x10;
            D_801F89F8[1] -= 0x10;
            D_801F89F8[2] -= 0x10;
        } else {
            *base = b0 + 0x10;
            D_801F89F8[1] += 0x10;
            D_801F89F8[2] += 0x10;
        }
        *(s32 *)((s32)a0 + 0x1C) -= 1;
        return;
    }

    *base -= 0x10;
    D_801F89F8[1] -= 0x10;
    D_801F89F8[2] -= 0x10;
    if (*base == 0) {
        func_801292C8((u8 *)a0);
    }
}

