=== lever-free bodies in ov_SC04_011 sharing a callee or global with func_8013D9B0 (14 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8013D53C (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1311) shares 3: D_801EDABC D_801EDACC D_801EDAD4 ---
void func_8013D53C(void *arg0v) {

    extern Rec9 D_80190D5C[];
    extern Rec12 D_80190D94[];
    extern u8 D_80078EAF;
    extern u8 D_801F15F8;
    extern s32 D_801EDAD4;
    Cmd_8013D53C *arg0 = arg0v;

    extern u8 D_80190D98[];
    extern u8 D_80190D9C[];
    extern unsigned char D_801F1558;
    extern s16 *D_801EDABC;
    extern s32 D_801EDAEC;
    extern s32 D_801EDAF0;
    extern s32 D_801EDAF4;
    s32 s0v;
    s32 t9v;
    s32 t8v;
    u8 b0, b1, b2;
    u8 pad[8];   /* dead BLKmode local: frame 0x10 -> 0x18, zero code */

    if (!(D_801EDAE0 & 1)) {
        D_801EDAC8 = 1;
    } else {
        D_801EDAC8 = D_80078EAF;
    }

    b0 = ((u8 *)D_80190D94)[D_801EDAC8 * 12];
    D_801F163A = b0;
    D_801F16AE = b0;
    b1 = D_80190D98[D_801EDAC8 * 12];
    D_801F1562 = b1;
    D_801F161C = b1;
    b2 = D_80190D9C[D_801EDAC8 * 12];
    D_801F1540 = b2;
    D_801F1561 = b2;

    (*(S9 *)&D_801F1558) = ((S9 *)D_80190D5C)[D_801EDAC8];
    (*(S9 *)&D_801F15F8) = *(S9 *)(&D_801F1540 + 0x18);  /* same addr as (*(S9 *)&D_801F1558); distinct sym defeats cse, keeps %hi/%lo */

    D_801F1620 = 1;
    D_801EDADC = -1;
    D_801EDAD8 = 0;
    D_801EDAD4 = -1;
    D_801EDAC0 = 0;
    D_801EDACC = 0;
    D_801EDAD0 = 0;

    if ((D_801EDAE0 & 2) && (D_801EDAC8 == 4)) {
        s0v = (*(s32 * *)&D_801EDAB0)[18];
        t9v = (*(s32 * *)&D_801EDAB0)[19];
        t8v = (*(s32 * *)&D_801EDAB0)[20];
    } else {
        s32 *p = (s32 *)(D_801EDAC8 * 12 + (s32) (*(s32 * *)&D_801EDAB0));  /* block-local: local-alloc ties sum into mul chain */
        s0v = p[0];
        t9v = p[1];
        t8v = p[2];
    }

    (*(Cmd_8013D53C * *)&D_801EDABC) = arg0;
    if (arg0 != 0) {
        if (D_801EDAE8 != 0) {
            s32 *p = (s32 *)(D_801EDAC8 * 12 + (s32) (*(s32 * *)&D_801EDAB8));
            D_801EDAEC = p[0];
            D_801EDAF0 = p[1];
            D_801EDAF4 = p[2];
        } else {
            while ((arg0->cmd & 0xFFFF) != 0xFF) {
                if ((arg0->cmd & 0xFFFF) == 9) {
                    s32 n;
                    s32 i;
                    u16 *src;
                    u16 *dst;
                    n = arg0->w * arg0->h;
                    i = 0;
                    src = arg0->data;
                    dst = src + n;
                    if (n > 0) {
                        do {
                            u16 px;
                            s32 r, g, b, out;
                            px = *src;
                            r = ((px & 0x1F) * s0v) / 2560;
                            g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
                            b = (((px & 0x7C00) * t8v) / 2560) & 0x7C00;
                            out = r | g | b | (px & 0x8000);
                            if (out == 0 && px != 0) {
                                out = 0x8000;
                            }
                            *dst = out;
                            dst++;
                            do { i++; } while (0);
                            src++;
                        } while (i < n);
                    }
                }
                arg0++;
            }
        }
    }
}

--- func_8013D8FC (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1423) shares 2: D_801EDABC func_800599B8 ---
void func_8013D8FC(void)
{

    extern s16 *D_801EDABC;
    Cmd_8013D53C *p;
    s16 buf[4];

    p = (Cmd_8013D53C *)D_801EDABC;
    if (p != 0) {
        while (p->cmd != 0xff) {
            if (p->cmd == 9) {
                u16 *data = p->data + p->w;
                buf[0] = p->pad4;
                buf[1] = p->pad6;
                buf[2] = p->w;
                buf[3] = p->h;
                ((void (*)(s16 *, u16 *))func_800599B8)(buf, data);
            }
            p++;
        }
    }
}

--- func_8013DBE4 (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1604) shares 2: D_801EDABC D_801EDACC ---
void func_8013DBE4(int param_1)
{
    int *p;
    int x, y, z;
    int flag;

    if (D_801EDABC != 0) {
        D_801EDACC = 0;
        p = (int *)(param_1 * 12 + (int)D_801EDAB8);
        x = p[0];
        y = p[1];
        z = p[2];
        flag = 0;
        if (D_801EDAEC != x) {
            flag = 1;
            if (D_801EDAEC < x) {
                if (x - D_801EDAEC < 5) {
                    D_801EDAEC = x;
                } else {
                    D_801EDAEC = D_801EDAEC + 4;
                }
            } else {
                if (D_801EDAEC - x < 5) {
                    D_801EDAEC = x;
                } else {
                    D_801EDAEC = D_801EDAEC - 4;
                }
            }
        }
        if (D_801EDAF0 != y) {
            flag = 1;
            if (D_801EDAF0 < y) {
                if (y - D_801EDAF0 < 5) {
                    D_801EDAF0 = y;
                } else {
                    D_801EDAF0 = D_801EDAF0 + 4;
                }
            } else {
                if (D_801EDAF0 - y < 5) {
                    D_801EDAF0 = y;
                } else {
                    D_801EDAF0 = D_801EDAF0 - 4;
                }
            }
        }
        if (D_801EDAF4 != z) {
            flag = 1;
            if (D_801EDAF4 < z) {
                if (z - D_801EDAF4 < 5) {
                    D_801EDAF4 = z;
                } else {
                    D_801EDAF4 = D_801EDAF4 + 4;
                }
            } else {
                if (D_801EDAF4 - z < 5) {
                    D_801EDAF4 = z;
                } else {
                    D_801EDAF4 = D_801EDAF4 - 4;
                }
            }
        }
        if (flag != 0) {
            func_8013DD68();
        }
        D_801EDACC = flag;
    }
}

--- func_8013CB84 (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:924) shares 2: D_801EDACC D_801EDAD4 ---
void func_8013CB84(void) {

    extern u8 D_80078EAF;
    extern s32 D_801EDAD4;
    extern s32 D_801EDAE0;
    extern s32 D_801EDAE8;
    extern s32 D_801F1620;
    extern s32 D_801F15A0;
    extern s32 D_801F1594[];
    extern u8 D_801F1561;
    extern u8 D_801F16AE;
    extern u8 D_801F161C;
    extern Rec12 D_80190D94[];
    extern Rec9 D_80190D5C[];
    extern u8 D_801F15F8;  /* canonical (§8d); Rec9 block-move via cast-at-use */
    s32 loc = currentLocationId;
    s32 s0 = D_80078EAF;
    s32 ta, tb, tc, t;

    D_801F1620 = 0;
    if (D_801EDAD0 == 0 && s0 != D_801EDAC8) {
        ta = D_80190D94[s0].a;
        tb = D_80190D94[s0].b;
        tc = D_80190D94[s0].c;
        D_801EDAC8 = s0;
        D_801F1561 = tc;
        D_801F16AE = ta;
        D_801F161C = tb;
        *(Rec9 *)&D_801F15F8 = D_80190D5C[s0];
        D_801EDACC = 1;
        D_801EDAC0 = 1;
        if (D_801EDAE0 & 2) {
            if (s0 == 4) { D_801F1594[0] = 0x100; D_801F15A0 = 0x80; }
            if (s0 == 0) { D_801F1594[0] = 0x100; D_801F15A0 = 0; }
        }
    }
    if (D_801EDACC != 0) {
        t = D_801EDAC0 - 1;
        D_801EDAC0 = t;
        if (t == 0) {
            if (D_801EDAD0 == 0) {
                if ((D_801EDAE0 & 2) && s0 == 4) {
                    if (D_801EDAE8 != 0) func_8013DBE4(6);
                    else func_8013D9B0(6);
                } else {
                    if (D_801EDAE8 != 0) func_8013DBE4(s0);
                    else func_8013D9B0(s0);
                }
                func_8013D330();
                func_8013D178();
                func_8013CF68();
                D_801EDAC0 = 2;
                if (D_801EDACC != 0) {
                    if (D_801EDAE0 & 2) {
                        if (s0 == 4) {
                            s32 *p = &D_801F15A0;
                            t = *p - 8;
                            *p = t;
                            if (t < 0) *p = 0;
                        } else if (s0 == 0) {
                            s32 *p = &D_801F15A0;
                            t = *p + 0x20;
                            *p = t;
                            if (t >= 0x81) *p = 0x80;
                        }
                    }
                } else if (D_801EDAE0 & 2) {
                    if (s0 == 4) D_801F15A0 = 0;
                    if (s0 == 0) D_801F15A0 = 0x80;
                }
            } else {
                if (D_801EDAE8 != 0) func_8013DBE4(5);
                else func_8013D9B0(5);
                D_801EDAC0 = 1;
            }
        }
    }
    D_801EDAD4 = 0;
    if (loc == 0x1010) {
        if (s0 == 3) {
            if (D_801EDACC != 0) D_801EDAD4 = D_801EDAC4;
            else D_801EDAD4 = 0x1F;
        } else if (s0 == 4) {
            if (D_801EDACC != 0) D_801EDAD4 = 0x1F - D_801EDAC4;
            else D_801EDAD4 = 0;
        }
    }
}

--- func_8013E054 (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:1756) shares 1: D_801EDAD4 ---
s32 func_8013E054(void) {
    return D_801EDAD4;
}

--- func_8013CB5C (src/ov_SC04_011/ov_SC04_011_jr_8013C98C.c:903) shares 1: D_801EDACC ---
void func_8013CB5C(void) {
    D_801EDAD0 = D_801EDAF8;
    D_801EDACC = D_801EDAFC;
}

