=== lever-free bodies in ov_SC02_017 sharing a callee or global with func_801831FC (120 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_80147364 (src/shared/ov/func_80147364.h:9) shares 3: D_80126B58 func_80015978 func_8002D4C8 ---
void aF80147364(u16 param_1, u16 param_2) {
    s32 sp10[2];
    s32 *p = &D_80126B58;
    if (currentLocationId == 0x308d) {
        ((void (*)(void *, void *))func_80015978)(p + 1, sp10);
        ((void (*)(void *, s32, s32))aF8012E5CC)(sp10, param_1, param_2);
    } else {
        func_8002D4C8(param_1, param_2);
    }
}

--- func_8018347C (src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c:6153) shares 3: D_80126B58 func_80013294 func_80015978 ---
s32 func_8018347C(s32 *arg0, s32 arg1, s32 arg2) {
    s16 buf[4];
    s32 base;
    s32 t;
    s16 ret;

    base = (s32)&D_80126B58;
    if (*(u16 *)base == 0x19) {
        return 0;
    }
    func_80015978(base + 4, (s32 *)buf);
    buf[1] = 0;
    t = func_80013294((void *)&D_8018E920, (void *)buf);
    ret = t;
    if (((s16)arg1 != 0) && ((s16)t < (s16)arg1)) {
        func_800139C8((s16)func_8012B8A4((s16 *)arg0), (void *)D_8018E928, (void *)buf);
        D_80126B5E = buf[0];
        D_80126B66 = buf[2];
    }
    if ((*(s16 *)(base + 0xA) < -0xD00) && (*(s16 *)(base + 0xE) < 0)) {
        if (*(s16 *)(base + 6) >= 0) {
            if (*(s16 *)(base + 6) < 0x160) {
                *(s16 *)(base + 6) = 0x160;
            }
        } else if (*(s16 *)(base + 6) >= -0x15F) {
            *(s16 *)(base + 6) = -0x160;
        }
    }
    if ((s16)arg2 != 0) {
        if (ret < (s16)arg2) {
            if (func_8016F1AC() == 0) {
                return 1;
            }
        }
    }
    return 0;
}

--- func_80144B9C (src/shared/ov/func_80144B9C.h:159) shares 3: D_80126B58 func_80015978 func_8002D4C8 ---
void func_80144B9C(void) {
    P10 *p10 = (P10 *)D_80126B58;
    P14 *p14 = (P14 *)D_80078E78;
    register u8 *p = D_800AF630;
    P18 *p18 = (P18 *)D_800AE6A8;
    P1C *p1C = (P1C *)D_80126948;
    HDR *hdr;
    ENT *ent;
    s32 tbl;
    s16 i;
    void (*calltmp)(void);
    s32 flag;

    func_80019018();
    func_80018E78();
    if (p18->f8 == 0) {
        hdr = (HDR *)func_801457A4(*(s16 *)(p + 0xA3D8));
        p18->f16 = 0;
        flag = 1;
        D_8011DB14 = p14->f3A;
        D_8011DB1C = p14->f3E;
        D_80128150 = 100;
        func_8002AB64();
    } else {
        hdr = (HDR *)func_801457A4(*(s16 *)(p + 0xA3D8));
        flag = 0;
    }
    p18->f1C = hdr->fC8;
    tbl = hdr->fC8;
    if (p18->f16 == 0xFF) {
        ent = &D_80078E50;
    } else {
        ent = (ENT *)*(s32 *)(p18->f16 * 4 + tbl);
    }
    p18->fC = ent->f8;
    p18->f14 = 0;
    p10->f4D = 0;
    if (ent->fC != (s32)D_8010F5C8) {
        p10->f198 = ent->fC;
    }
    if (*(s16 *)(p + 0xA3DA) == 0x1000 && *(s16 *)(p + 0xA3DC) == 0x1000) {
        p10->f6 = p10->f88 = p10->f90 = p18->f20;
        p10->fA = p10->f8A = p10->f92 = p18->f22;
        p10->fE = p10->f8C = p10->f94 = p18->f24;
        p10->f20->f12 = p18->f26;
        p18->f18 = 0;
    } else {
        p10->f6 = p10->f88 = p10->f90 = ent->f10;
        p10->fA = p10->f8A = p10->f92 = ent->f12;
        p10->fE = p10->f8C = p10->f94 = ent->f14;
        p10->f20->f12 = ent->f16;
    }
    p10->f154 = p10->f15C = p10->f6;
    p10->f156 = p10->f15E = p10->fA;
    p10->f158 = p10->f160 = p10->fE;
    func_80015978((void *)((s32)p10 + 4), D_80126DB0);
    D_80126DB6 = p10->f20->f12;
    if (*(s16 *)(p + 0xA3DA) == 0x1000 &&
        (*(s16 *)(p + 0xA3DC) == 0x1000 || *(s16 *)(p + 0xA3DC) == 0x2000) && flag == 0) {
        ent->f18();
        func_8012A1BC();
    } else {
        if (*(s16 *)(p + 0xA3DA) == 0x1000 && *(s16 *)(p + 0xA3DC) == 0x3000) {
            p1C->fA0 = ent->f3;
        } else {
            p1C->fA0 = 0;
        }
        ent->f18();
    }
    if (*(s16 *)(p + 0xA3D8) == 0x3069) {
        p1C->fA0 = ent->f3;
    }
    D_801151D4 = (s32)p1C;
    func_8002850C(hdr->f0, hdr->f2, hdr->f4);
    D_800A5E88 = hdr->f6;
    D_800A5E8C = hdr->f8;
    D_800A5E90 = hdr->fA;
    D_800A5E94 = hdr->fC;
    D_800A5E95 = hdr->fD;
    D_800A5E96 = hdr->fE;
    func_80028620(0, &D_800A5E88);
    D_800A5E98 = hdr->f10;
    D_800A5E9C = hdr->f12;
    D_800A5EA0 = hdr->f14;
    D_800A5EA4 = hdr->f16;
    D_800A5EA5 = hdr->f17;
    D_800A5EA6 = hdr->f18;
    func_80028620(1, &D_800A5E98);
    D_800A5EA8 = hdr->f1A;
    D_800A5EAC = hdr->f1C;
    D_800A5EB0 = hdr->f1E;
    D_800A5EB4 = hdr->f20;
    D_800A5EB5 = hdr->f21;
    D_800A5EB6 = hdr->f22;
    func_80028620(2, &D_800A5EA8);
    func_80129398();
    D_800B9AAC = hdr->f24;
    D_800B9B00 = hdr->f26;
    D_800B9AC4 = hdr->f28;
    D_800B9B18 = hdr->f2C;
    D_800B9AC8 = hdr->f30;
    D_800B9B1C = hdr->f34;
    D_800B9AB2 = hdr->f38;
    D_800B9B06 = hdr->f3A;
    D_800B9AB6 = hdr->f3C;
    D_800B9B0A = hdr->f3E;
    D_800B9ABC = hdr->f40[0];
    D_800B9ABD = hdr->f40[1];
    D_800B9ABE = hdr->f40[2];
    D_800B9B10 = hdr->f40[3];
    D_800B9B11 = hdr->f40[4];
    D_800B9B12 = hdr->f40[5];
    D_800B9ABF = hdr->f40[6];
    D_800B9AC0 = hdr->f40[7];
    D_800B9AC1 = hdr->f40[8];
    D_800B9B13 = hdr->f40[9];
    D_800B9B14 = hdr->f40[10];
    D_800B9B15 = hdr->f40[11];
    func_8012944C();
    p10->fB0 = hdr->f4C;
    p10->fCC = hdr->f50;
    p10->f1E8 = hdr->f54;
    p10->f1F0 = hdr->f58;
    D_80126728 = hdr->f5C;
    D_8011DB08 = hdr->f60;
    D_80126AEC = hdr->f64;
    p10->f19C = (s32)hdr + 0x68;
    func_801336E8(hdr->f88, hdr->f8C, hdr->f90);
    func_8013B83C(hdr->f94, hdr->f98, hdr->f9C);
    func_8013B568(hdr->fA8);
    func_800D02C0(hdr->fD4);
    func_80011E84(hdr->fD8);
    for (i = 0; i < 8; i++) {
        D_801151F0[i] = *(u8 *)((s32)hdr + i + 0xAC);
    }
    D_801274C8 = hdr->fB4;
    D_801274CC = hdr->fB8;
    D_801274D0 = hdr->fBC;
    D_801274D4 = hdr->fC0;
    D_801270B8 = hdr->fC4;
    D_80127520 = hdr->fC4;
    D_801151D8 = 0;
    D_8011DB28 = 0;
    calltmp = ent->f20;
    calltmp();
    func_8013D3D4(hdr->fA0, hdr->fA4);
    func_8002D4C8(0x1E, 0);
    if (p18->f8 == 0) {
        D_80078E50 = *ent;
    }
    p18->f4 = (s32)&D_80078E50;
    p18->f8 = p18->f8 & 0x7F000000;
    if (func_800CF854() != 0) {
        func_8001C14C();
        func_8012A110();
    }
}

--- func_8017CCCC (src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c:3938) shares 2: D_80126B58 func_8002D4C8 ---
void func_8017CCCC(void) {

    extern s32 D_80126B58;
    func_8014BCEC((s32)&D_80126B58, 0x5);
    func_8014BD24((s32)&D_80126B58, 0x270F);
    func_8002D4C8(0xBFE, 0);
}

--- func_8014BDE8 (src/shared/ov/func_8014BDE8.h:8) shares 2: func_80013294 func_80015978 ---
void func_8014BDE8(s32 a0) {
    s32 s0 = a0;
    struct B8014 sp10;
    s16 sp18[4];
    if (func_8016F1AC() != 0) {
        return;
    }
    if (func_8017267C((s32 *)s0) != 0) {
        return;
    }
    sp10 = *(struct B8014 *)(s0 + 0x98);
    func_80015978(s0 + 4, (s32 *)sp18);
    sp18[1] = 0;
    *(s16 *)((s32)&sp10 + 0x2) = 0;
    func_80029ED4((func_80013294(&sp10, sp18) << 16) >> 16);
}

--- func_80149954 (src/shared/ov/func_80149954.h:12) shares 2: func_80015978 func_8002D4C8 ---
s32 func_80149954(s32 s0) {
    s32 sp10[2];
    s16 buf[10];
    if (*(s32 *)(s0 + 0x44) & 0x404) {
        return 0;
    }
    if ((*(u16 *)(s0 + 0xAA) & 0x90) == 0) {
        if (currentLocationId == 0x308D) {
            func_80015978((s32)&D_80126B5C, sp10);
            func_8012E5CC((s32)sp10, 0x4, 0x8E0);
            return 0;
        }
        func_8002D4C8(0x4, 0x8E0);
        return 0;
    }
    if (*(u16 *)(s0 + 0xAC) & 0x90) {
        if ((s32)D_8012707C == 0x8E0) {
            D_8012707C = 0;
        } else {
            func_80147364(0x8E0, 0);
        }
    }
    func_800CCF28(s0);
    *(s16 *)((s32)buf + 0x0) = 0x12;
    *(s32 *)((s32)buf + 0x8) = s0;
    *(s16 *)((s32)buf + 0x2) = 0;
    *(s16 *)((s32)buf + 0x4) = -0x1E;
    *(s16 *)((s32)buf + 0x6) = 0;
    *(s32 *)((s32)buf + 0xC) = 0;
    *(s32 *)((s32)buf + 0x10) = 0;
    func_80146750(buf);
    return 1;
}

