=== lever-free bodies in ov_SC02_031 sharing a callee or global with func_801818A4 (2 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8012D5E4 (src/shared/ov/func_8012D5E4.h:5) shares 1: func_8012DEB8 ---
s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3) {
    if (func_8012DEB8(a0, a1, a2) != 0) {
        D_80126B98 = a3;
        return 1;
    }
    return 0;
}

--- func_8012D714 (src/shared/ov/func_8012D714.h:4) shares 1: func_8012DEB8 ---
s32 func_8012D714(s32 param_1, u32 param_2) {
    u16 a[3];
    u16 b[3];
    u32 base;
    base = (*(u32 *)(param_1 + 0x58) & 0xFFFFFFF) | 0x80000000;
    if (param_2 & 1) {
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 8);
        b[2] = *(u16 *)(base + 0xC);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 0xA);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xC);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xE);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 8);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 0xA);
        a[2] = *(u16 *)(base + 0xE);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
    }
    if (param_2 & 2) {
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 4);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xC);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xE);
        b[0] = *(u16 *)(base + 4);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 6);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xC);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 6);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xE);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
    }
    if (param_2 & 4) {
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 4);
        b[1] = *(u16 *)(base + 8);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 4);
        a[1] = *(u16 *)(base + 0xA);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 4);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 6);
        a[1] = *(u16 *)(base + 8);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 8);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
        a[0] = *(u16 *)(base + 6);
        a[1] = *(u16 *)(base + 0xA);
        a[2] = *(u16 *)(base + 0xC);
        b[0] = *(u16 *)(base + 6);
        b[1] = *(u16 *)(base + 0xA);
        b[2] = *(u16 *)(base + 0xE);
        if (((s32 (*)(s32, void *, void *))func_8012DEB8)(param_1, a, b) != 0) {
            return 1;
        }
    }
    return 0;
}

