=== lever-free bodies in ov_MAIN_012 sharing a callee or global with func_8013D9B0 (12 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8013D53C (src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:1250) shares 3: D_801841AC D_801841BC D_801841C4 ---
void func_8013D53C(void *arg0v) {

    extern Rec9 D_8017ECB0[];
    extern Rec12 D_8017ECE8[];
    extern s32 D_801841D0;
    extern u8 D_80078EAF;
    extern s32 D_801841B8;
    extern u8 D_80185C0A;
    extern u8 D_80185C7E;
    extern u8 D_80185B32;
    extern u8 D_80185BEC;
    extern u8 D_80185B10;
    extern u8 D_80185B31;
    extern u8 D_80185BC8;
    extern s32 D_80185BF0;
    extern s32 D_801841CC;
    extern s32 D_801841C8;
    extern s32 D_801841C4;
    extern s32 D_801841B0;
    extern s32 D_801841BC;
    extern s32 D_801841C0;
    extern void *D_801841A0;
    extern s32 D_801841D8;
    extern void *D_801841A8;
    Cmd_8013D53C *arg0 = arg0v;

    extern u8 D_8017ECEC[];
    extern u8 D_8017ECF0[];
    extern unsigned char D_80185B28;
    extern s16 *D_801841AC;
    extern s32 D_801841DC;
    extern s32 D_801841E0;
    extern s32 D_801841E4;
    s32 s0v;
    s32 t9v;
    s32 t8v;
    u8 b0, b1, b2;
    u8 pad[8];   /* dead BLKmode local: frame 0x10 -> 0x18, zero code */

    if (!(D_801841D0 & 1)) {
        D_801841B8 = 1;
    } else {
        D_801841B8 = D_80078EAF;
    }

    b0 = ((u8 *)D_8017ECE8)[D_801841B8 * 12];
    D_80185C0A = b0;
    D_80185C7E = b0;
    b1 = D_8017ECEC[D_801841B8 * 12];
    D_80185B32 = b1;
    D_80185BEC = b1;
    b2 = D_8017ECF0[D_801841B8 * 12];
    D_80185B10 = b2;
    D_80185B31 = b2;

    (*(S9 *)&D_80185B28) = ((S9 *)D_8017ECB0)[D_801841B8];
    (*(S9 *)&D_80185BC8) = *(S9 *)(&D_80185B10 + 0x18);  /* same addr as (*(S9 *)&D_80185B28); distinct sym defeats cse, keeps %hi/%lo */

    D_80185BF0 = 1;
    D_801841CC = -1;
    D_801841C8 = 0;
    D_801841C4 = -1;
    D_801841B0 = 0;
    D_801841BC = 0;
    D_801841C0 = 0;

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

    (*(Cmd_8013D53C * *)&D_801841AC) = arg0;
    if (arg0 != 0) {
        if (D_801841D8 != 0) {
            s32 *p = (s32 *)(D_801841B8 * 12 + (s32) (*(s32 * *)&D_801841A8));
            D_801841DC = p[0];
            D_801841E0 = p[1];
            D_801841E4 = 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_MAIN_012/ov_MAIN_012_jr_8013C98C.c:1378) shares 2: D_801841AC func_800599B8 ---
void func_8013D8FC(void)
{

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

    p = (Cmd_8013D53C *)D_801841AC;
    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_MAIN_012/ov_MAIN_012_jr_8013C98C.c:1554) shares 2: D_801841AC D_801841BC ---
void func_8013DBE4(int param_1)
{

    extern void *D_801841A8;
    extern s16 *D_801841AC;
    extern s32 D_801841BC;
    extern s32 D_801841DC;
    extern s32 D_801841E0;
    extern s32 D_801841E4;
    int *p;
    int x, y, z;
    int flag;

    if (D_801841AC != 0) {
        D_801841BC = 0;
        p = (int *)(param_1 * 12 + (int)D_801841A8);
        x = p[0];
        y = p[1];
        z = p[2];
        flag = 0;
        if (D_801841DC != x) {
            flag = 1;
            if (D_801841DC < x) {
                if (x - D_801841DC < 5) {
                    D_801841DC = x;
                } else {
                    D_801841DC = D_801841DC + 4;
                }
            } else {
                if (D_801841DC - x < 5) {
                    D_801841DC = x;
                } else {
                    D_801841DC = D_801841DC - 4;
                }
            }
        }
        if (D_801841E0 != y) {
            flag = 1;
            if (D_801841E0 < y) {
                if (y - D_801841E0 < 5) {
                    D_801841E0 = y;
                } else {
                    D_801841E0 = D_801841E0 + 4;
                }
            } else {
                if (D_801841E0 - y < 5) {
                    D_801841E0 = y;
                } else {
                    D_801841E0 = D_801841E0 - 4;
                }
            }
        }
        if (D_801841E4 != z) {
            flag = 1;
            if (D_801841E4 < z) {
                if (z - D_801841E4 < 5) {
                    D_801841E4 = z;
                } else {
                    D_801841E4 = D_801841E4 + 4;
                }
            } else {
                if (D_801841E4 - z < 5) {
                    D_801841E4 = z;
                } else {
                    D_801841E4 = D_801841E4 - 4;
                }
            }
        }
        if (flag != 0) {
            func_8013DD68();
        }
        D_801841BC = flag;
    }
}

--- func_8013CB84 (src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:903) shares 2: D_801841BC D_801841C4 ---
void func_8013CB84(void) {

    extern u8 D_80078EAF;
    extern s32 D_801841C0;
    extern s32 D_801841B8;
    extern s32 D_801841BC;
    extern s32 D_801841B0;
    extern s32 D_801841B4;
    extern s32 D_801841C4;
    extern s32 D_801841D0;
    extern s32 D_801841D8;
    extern s32 D_80185BF0;
    extern s32 D_80185B70;
    extern s32 D_80185B64[];
    extern u8 D_80185B31;
    extern u8 D_80185C7E;
    extern u8 D_80185BEC;
    extern Rec12 D_8017ECE8[];
    extern Rec9 D_8017ECB0[];
    extern u8 D_80185BC8;  /* canonical (§8d); Rec9 block-move via cast-at-use */
    s32 loc = currentLocationId;
    s32 s0 = D_80078EAF;
    s32 ta, tb, tc, t;

    D_80185BF0 = 0;
    if (D_801841C0 == 0 && s0 != D_801841B8) {
        ta = D_8017ECE8[s0].a;
        tb = D_8017ECE8[s0].b;
        tc = D_8017ECE8[s0].c;
        D_801841B8 = s0;
        D_80185B31 = tc;
        D_80185C7E = ta;
        D_80185BEC = tb;
        *(Rec9 *)&D_80185BC8 = D_8017ECB0[s0];
        D_801841BC = 1;
        D_801841B0 = 1;
        if (D_801841D0 & 2) {
            if (s0 == 4) { D_80185B64[0] = 0x100; D_80185B70 = 0x80; }
            if (s0 == 0) { D_80185B64[0] = 0x100; D_80185B70 = 0; }
        }
    }
    if (D_801841BC != 0) {
        t = D_801841B0 - 1;
        D_801841B0 = t;
        if (t == 0) {
            if (D_801841C0 == 0) {
                if ((D_801841D0 & 2) && s0 == 4) {
                    if (D_801841D8 != 0) func_8013DBE4(6);
                    else func_8013D9B0(6);
                } else {
                    if (D_801841D8 != 0) func_8013DBE4(s0);
                    else func_8013D9B0(s0);
                }
                func_8013D330();
                func_8013D178();
                func_8013CF68();
                D_801841B0 = 2;
                if (D_801841BC != 0) {
                    if (D_801841D0 & 2) {
                        if (s0 == 4) {
                            s32 *p = &D_80185B70;
                            t = *p - 8;
                            *p = t;
                            if (t < 0) *p = 0;
                        } else if (s0 == 0) {
                            s32 *p = &D_80185B70;
                            t = *p + 0x20;
                            *p = t;
                            if (t >= 0x81) *p = 0x80;
                        }
                    }
                } else if (D_801841D0 & 2) {
                    if (s0 == 4) D_80185B70 = 0;
                    if (s0 == 0) D_80185B70 = 0x80;
                }
            } else {
                if (D_801841D8 != 0) func_8013DBE4(5);
                else func_8013D9B0(5);
                D_801841B0 = 1;
            }
        }
    }
    D_801841C4 = 0;
    if (loc == 0x1010) {
        if (s0 == 3) {
            if (D_801841BC != 0) D_801841C4 = D_801841B4;
            else D_801841C4 = 0x1F;
        } else if (s0 == 4) {
            if (D_801841BC != 0) D_801841C4 = 0x1F - D_801841B4;
            else D_801841C4 = 0;
        }
    }
}

--- func_8013E054 (src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:1715) shares 1: D_801841C4 ---
s32 func_8013E054(void) {

    extern s32 D_801841C4;
    return D_801841C4;
}

--- func_8013D13C (src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:1083) shares 1: D_801841BC ---
s32 func_8013D13C(void) {

    extern s32 D_801841BC;
    func_8013D9B0();
    return D_801841BC;
}

