=== lever-free bodies in md_SC07_004 sharing a callee or global with func_801A5094 (11 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_801A41CC (src/md_SC07_004/md_SC07_004.c:2764) shares 1: D_801F8744 ---
void func_801A41CC(void) {
    s32 i;
    u8 *src;
    s32 n;
    s32 dst;
    i = 1;
    src = D_801F8744;
    n = 4;
    dst = 0x40;
    while (i < 4) {
        D_801F8744[dst + 0] = (src[0] >> 2) * (n - i);
        D_801F8744[dst + 1] = (src[1] >> 2) * (n - i);
        D_801F8744[dst + 2] = (src[2] >> 2) * (n - i);
        dst += 0x40;
        i++;
    }
}

--- func_801A72DC (src/md_SC07_004/md_SC07_004.c:4857) shares 1: D_801F8744 ---
void func_801A72DC(void *a0)
{
    extern void func_801292C8(u8 *a0);
    extern void func_8012931C(struct vec *a0);

    s32 v0;

    v0 = *(u16 *)((s32)a0 + 0x2C) + 1;
    *(u16 *)((s32)a0 + 0x2C) = v0;
    if ((s16)v0 >= 4) {
        func_801292C8((u8 *)a0);
        return;
    }
    func_8012931C((struct vec *)a0);
    *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x20) =
        (s32)D_801F8744 + (*(s16 *)((s32)a0 + 0x2C) << 6);
}

--- func_801A7200 (src/md_SC07_004/md_SC07_004.c:4835) shares 1: D_801F8744 ---
void func_801A7200(s32 param_1)
{
    s32 s1;
    s32 s2;

    s1 = *(s32 *)(param_1 + 0x34);
    s2 = *(s32 *)(s1 + 0xCC);
    *(u16 *)(param_1 + 0x2C) = 0;
    func_8001CD9C(*(s32 *)(param_1 + 0x20), (s32)D_801F8744);
    *(u16 *)(param_1 + 6) = *(s32 *)(*(s32 *)(s1 + 0x20) + 0x48);
    *(u16 *)(param_1 + 0xA) = *(s32 *)(*(s32 *)(s1 + 0x20) + 0x4C);
    *(u16 *)(param_1 + 0xE) = *(s32 *)(*(s32 *)(s1 + 0x20) + 0x50);
    *(u16 *)(*(s32 *)(param_1 + 0x20) + 0x18) = *(u16 *)(s2 + 0x18);
    *(u16 *)(*(s32 *)(param_1 + 0x20) + 0x1A) = *(u16 *)(s2 + 0x1A);
    *(u32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x50800000;
    *(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2C) = 0xC020;
    *(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
}

--- func_801A6FD4 (src/md_SC07_004/md_SC07_004.c:4761) shares 1: D_801F8747 ---
void func_801A6FD4(void *arg0) {
    void *s1;
    s32 v0;

    s1 = *(void **)((u8 *)arg0 + 0xCC);
    func_801A5C44();
    func_801A5B5C(arg0);

    if ((D_8019FF8A & 4) && *(s16 *)((u8 *)arg0 + 0xFE) == 0xB) {
        func_801A5AC0(arg0);
        func_801A5D68(arg0);
        func_801A5CE8(arg0);
        D_801F8747[0] = 1;
        v0 = func_8017D7D4(D_801F88A8, D_801F88B0, D_801F8747 - 3, 6);
        *(s32 *)((u8 *)arg0 + 0xD0) = v0;
    } else if ((D_8019FF8A & 0x10) && *(s32 *)((u8 *)s1 + 4) >= 0 && (D_800B99DA & 1)) {
        func_801A6428(arg0);
    }
}

--- func_801A40CC (src/md_SC07_004/md_SC07_004.c:2727) shares 1: D_801F8744 ---
void func_801A40CC(s32 a0) {
    u8 *base;
    u8 *p;
    u8 *q;
    s32 i;

    i = 0;
    base = D_801F8744;
    q = base + 4;
    p = base;

    for (; i < 4; i++) {
        func_800233CC((void *)p, 0x40);
        *(Blk4_801A40CC *)p = *(Blk4_801A40CC *)&D_801AFEF8;
        *(Blk4_801A40CC *)q = *(Blk4_801A40CC *)&D_801A01B4;
        q += 0x40;
        p += 0x40;
    }

    func_801A417C(a0);
}

--- func_801A4FDC (src/md_SC07_004/md_SC07_004.c:3456) shares 1: func_801290DC ---
void func_801A4FDC(void)
{
    Vec16_801A4FDC vec0;
    Vec32_801A4FDC vec1;
    s32 flag;
    s32 p;

    vec0.vx = (rand() & 0xFF) - 0x80;
    vec0.vy = 0;
    vec0.vz = -(rand() & 0x7F);

    RotTransSV((s32)&vec0, (s32)&vec0, &flag);

    vec0.vy = -0x200;
    p = (s32)func_801290DC(0x22, (u8 *)&vec0);
    if (p != 0) {
        *(u16 *)(*(s32 *)(p + 0x20) + 0x2C) = 0xC020;
        vec1.vx = 0;
        vec1.vy = -0x40000;
        vec1.vz = -(((rand() & 0xF) + 0x1C) << 16);
        ApplyRotMatrixLV(&vec1, (void *)(p + 0x10));
        *(s16 *)(p + 0x34) = 0x3000;
    }
}

