=== lever-free bodies in main sharing a callee or global with func_80015208 (50 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_80028694 (src/800.c:18681) shares 2: D_800AF630 D_800B9A15 ---
void func_80028694(void) {
    u8 *s0 = D_800AF630;
    u32 m;

    if (D_800B9A15 != 0) {
        return;
    }

    if ((s16)func_80014C54(1, 0, 2) != 0) {
        D_800AF737 = 1;
        D_800AF6DB = 1;
        D_800AF67F = 1;
        D_8007581C = 0;
        D_80075818 = 0;
        D_80075820[0] = D_800AF77C[0];
        D_80075820[1] = D_800AF77C[1];
        D_80075824[0] = D_800AF780[0];
        D_80075824[1] = D_800AF780[1];
        D_80075828[0] = D_800AF790[0];
        D_80075828[1] = D_800AF790[1];
        D_8007582C[0] = D_800AF794[0];
        D_8007582C[1] = D_800AF794[1];
        D_80075830[0] = D_800AF7A4[0];
        D_80075830[1] = D_800AF7A4[1];
        D_80075834[0] = D_800AF7A8[0];
        D_80075834[1] = D_800AF7A8[1];
    } else {
        if (((func_80014BFC(1) & 2) != 0) && ((func_80014B10(1) & 2) == 0)) {
            D_800AF737 = 0;
            D_800AF6DB = 0;
            D_800AF67F = 0;
            D_800AF77C[0] = D_80075820[0];
            D_800AF77C[1] = D_80075820[1];
            D_800AF780[0] = D_80075824[0];
            D_800AF780[1] = D_80075824[1];
            D_800AF790[0] = D_80075828[0];
            D_800AF790[1] = D_80075828[1];
            D_800AF794[0] = D_8007582C[0];
            D_800AF794[1] = D_8007582C[1];
            D_800AF7A4[0] = D_80075830[0];
            D_800AF7A4[1] = D_80075830[1];
            D_800AF7A8[0] = D_80075834[0];
            D_800AF7A8[1] = D_80075834[1];
        }
    }

    if ((s16)func_80014C54(1, 1, 2) == 0) {
        return;
    }

    m = func_80014B10(1) & 0x5000;
    if (m == 0x1000) goto minus1;
    if (m == 0x4000) goto plus1;
    goto skip1;
minus1:
    D_8007581C = D_8007581C - *(s32 *)(s0 + 0xA3E8) * 2;
    goto store1;
plus1:
    D_8007581C = D_8007581C + *(s32 *)(s0 + 0xA3E8) * 2;
store1:
skip1:
    m = func_80014B10(1) & 0xA000;
    if (m == 0x2000) goto plus2;
    if (m != 0x8000) goto skip2;
    D_80075818 = D_80075818 - *(s32 *)(s0 + 0xA3E8) * 2;
    goto store2;
plus2:
    D_80075818 = D_80075818 + *(s32 *)(s0 + 0xA3E8) * 2;
store2:
skip2:
    if ((s16)func_80014C54(1, 1, 8) != 0) {
        SetDefDispEnv(s0 + (*(u16 *)(s0 + 0x188) * 20 + 0x14C), D_80075818, D_8007581C, 0x140, 0xF0);
    } else {
        SetDefDispEnv(s0 + (*(u16 *)(s0 + 0x188) * 20 + 0x14C), D_80075818, D_8007581C, 0x280, 0x1E0);
    }
}

--- GameModeDispatch (src/boot.c:454) shares 1: D_800AF630 ---
void GameModeDispatch(void) {
    register u8 *p = D_800AF630;
    gameModeHandlerTable[*(u16 *)(p + 0xA3AE)]();
}

--- func_8001099C (src/boot.c:407) shares 1: D_800AF630 ---
void func_8001099C(void) {
    register u8 *p = D_800AF630;
    D_800AE810[*(u16 *)(p + 0xA3D2)] = VSync(1);
}

--- func_80010DA0 (src/boot.c:532) shares 1: D_800AF630 ---
void func_80010DA0(void) {
    register u8 *p = D_800AF630;
    func_80011778();
}

--- func_80014D94 (src/800.c:2155) shares 1: D_80078DD2 ---
s32 func_80014D94(s32 a0) {
    a0 &= 0xFF;
    return *(u16*)((u32)&D_80078DD2 + (a0 * 76));
}

--- func_80011998 (src/boot.c:901) shares 1: D_800AF630 ---
void func_80011998(void) {
    register u8 *p = D_800AF630;
    (*(u16 *)(p + 0xA3BA))++;
    *(u16 *)(p + 0xA3BC) = 0;
}

