=== lever-free bodies in md_SC07_004 sharing a callee or global with func_801A1E94 (45 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_801A66DC (src/md_SC07_004/md_SC07_004.c:4346) shares 5: D_801BF01C D_801F8724 func_8001C924 func_80132288 func_801A8528 ---
void func_801A66DC(s32 a0) {
    s32 *sp;
    u8 pad[8];

    switch (*(u16 *)(a0 + 0x34)) {
    case 0:
        sp = &D_801BF01C;
        func_8001C924(*(s32 *)(a0 + 0x20), sp);
        func_8012B2CC(a0);
        func_801A39D0(a0);
        func_80132288(&D_801F8724, D_801AFB78, *sp);
        D_8019FF8A |= 1;
        *(s32 *)(a0 + 0xD4) = func_801A8528(a0);
        func_801A85A8(a0, 0x28080A0, 0, 0x200);
        func_801A8A64(a0);
        func_8017FA74();
        *(u16 *)(a0 + 0x34) += 1;
        break;
    case 1:
        func_8013240C((s32)&D_801F8724);
        if (D_801F8730 & 0x4000) {
            func_801A18F4(a0);
        }
        break;
    }
}

--- func_801A3744 (src/md_SC07_004/md_SC07_004.c:2284) shares 3: D_801BF01C D_801F8724 func_80132288 ---
void func_801A3744(s32 a0) {
    *(s16 *)(a0 + 0xE6) = 4;
    func_80132288(&D_801F8724, D_801AFB8C, D_801BF01C);
    *(s16 *)(a0 + 0x100) = -0x40;
}

--- func_801A2F34 (src/md_SC07_004/md_SC07_004.c:1919) shares 3: D_801F8724 func_8001C924 func_80132288 ---
void func_801A2F34(s32 a0) {
    s16 *p;
    s32 *s2;
    s32 *s0;
    s16 v1;
    s32 v0;

    v1 = *(s16 *)(a0 + 0xE6);
    s2 = D_80126B58;
    if (v1 == 0) {
        p = &D_801F872A;
        *p = (s16)D_80126CE0 >> 1;
        func_8013240C((s32)p - 6);
        if ((D_801F8730 & 0x4000) != 0) {
            *(u16 *)(a0 + 0xE6) = *(u16 *)(a0 + 0xE6) + 1;
        }
    } else if (v1 != 1) {
        if (*(s16 *)(a0 + 0x98) == 0 && *(s16 *)&D_80126CE0 >= D_801AFB90) {
            s0 = &D_801BC9EC;
            func_8001C924(*(s32 *)(a0 + 0x20), s0);
            *(s32 *)(*(s32 *)(a0 + 0x20) + 0x20) = (s32)D_80063548;
            *(s16 *)(a0 + 0xE6) = 0;
            func_80132288(&D_801F8724, &D_801AFAB8, *s0);
        }
    }
    if ((D_800B99DA & 1) != 0) {
        if (*(s16 *)((s32)s2 + 0x188) > 0) {
            *(s16 *)((s32)s2 + 0x188) = *(s16 *)((s32)s2 + 0x188) - 1;
        }
    }
    if (*(s16 *)((s32)s2 + 0x188) == 0) {
        v0 = *(u16 *)(a0 + 0xF8) + 1;
        *(u16 *)(a0 + 0xF8) = v0;
        if ((s16)v0 >= 0x19) {
            func_8014CBD8();
            func_801A3114((s32 *)a0);
        }
    } else {
        *(u16 *)(a0 + 0xF8) = 0;
    }
}

--- func_801A3798 (src/md_SC07_004/md_SC07_004.c:2330) shares 3: D_801F8724 func_8001C924 func_80132288 ---
s32 func_801A3798(s32 s0, s32 arg1) {
    s32 v0;
    s32 v1;
    u16 y;
    s32 t;
    s32 p;
    u16 f9;

    y = arg1 + 0;
    v0 = ((s32 (*)(s32, s32))func_801A395C)(s0, (s16)(*(u16 *)(s0 + 0x100) - 0x240));
    v1 = *(s16 *)(s0 + 0xE6);
    if (v1 >= 0) {
        func_8013240C((s32)&D_801F8724);
        if (D_801F8730 & 0x4000) {
            t = *(u16 *)(s0 + 0xE6) - 1;
            *(u16 *)(s0 + 0xE6) = t;
            t <<= 16;
            v1 = t >> 16;
            if (v1 >= 0) {
                if (v1 >= 3) {
                    if (v1 != 3) {
                        goto other;
                    }
                    func_8001C924(*(s32 *)(s0 + 0x20), &D_801BC9EC);
                    if (*(s32 *)(s0 + 0xD4) != 0) {
                        func_801A7D18(*(s32 *)(s0 + 0xD4));
                        *(s32 *)(s0 + 0xD4) = 0;
                    }
                    func_801A3A6C((u8 *)s0);
                    *(u16 *)(s0 + 0x100) = 0;
                    func_8012B2CC(s0);
                    if ((arg1 << 16) != 0) {
                        *(s32 *)(s0 + 0xD4) = func_801A8564(s0);
                    }
                }
                func_80132288(&D_801F8724, D_801AFB7C[*(s16 *)(s0 + 0xE6)], D_801BC9EC);
                goto ret0;
            }
        other:
            func_8001C924(*(s32 *)(s0 + 0x20), D_801B6E94);
            func_8012A860((void *)s0, (int)&D_801EF9A8);
            if ((y << 16) != 0) {
                f9 = D_8019FF8A & 0xFFF7;
                p = *(s32 *)(s0 + 0xD4);
                D_8019FF8A = f9;
                if (p != 0) {
                    func_801292C8((u8 *)p);
                }
            }
        }
    ret0:
        return 0;
    }
    return (*(s16 *)(s0 + 0x98) == 0) && (v0 != 0);
}

--- func_801A4A18 (src/md_SC07_004/md_SC07_004.c:3163) shares 2: func_8012AD44 func_80132288 ---
void func_801A4A18(s32 a0)
{
    s16 cond;
    s32 mirror;

    cond = *(s16 *)(a0 + 0x70);
    mirror = *(s32 *)(a0 + 0xCC);

    if (cond == 0) {
        func_80132288(&D_801F8888, &D_801B007C, D_801B75EC);
        if (mirror != 0) {
            func_80132288(&D_801F8898, &D_801B00B4, (*(s32 *)D_801B80FC));
        }
    }

    *(s16 *)(a0 + 0x84) = 0;
    func_8012AD44((s32 *)a0, 2);
}

--- func_801A2364 (src/md_SC07_004/md_SC07_004.c:1416) shares 2: func_8012AD44 func_80178B18 ---
void func_801A2364(s32 a0)
{
    s32 flag;

    func_80178B18(a0, (s32)&D_801AFD8C);
    flag = *(s32 *)(a0 + 0xD4);
    *(s32 *)(a0 + 0x1C) = 0x20;
    (*(u16 *)&D_801F8868) = 0;
    if (flag != 0) {
        ((void (*)(s32 arg0))func_801A7D18)(flag);
        *(s32 *)(a0 + 0xD4) = 0;
        func_801A36F0((void *)a0);
    }
    func_8012AD44((s32 *)a0, 0xF);
    func_800D0C48(1);
    D_801F8720 = 0;
    func_8002A088(0x320);
    func_8002A2D4(0x64);
    func_8002A544(0x190);
    func_8002A7B4(0x12C);
}

