=== lever-free bodies in main sharing a callee or global with func_8001C5B8 (59 found; top 6 by shared symbols) — read them for the SHAPE ===
--- func_8001C810 (src/800.c:9407) shares 4: D_80063548 func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C810(s32 a0, s32 *a1) {
    s32 local_buf[8];
    s32 base;

    func_8001C9D0();

    base = a0 + 0x30;
    *(s16 *)(a0 + 0) = 1;
    *(s16 *)(a0 + 2) = 5;
    func_80052D90(0, (void *)base);
    func_80054514(base, (s32)local_buf);

    *(s32 *)(a0 + 0x24) = (s32)a1;
    if (a1 != 0) {
        *(s32 *)(a0 + 0x20) = (s32)&D_80063548;
        if (*a1 != 0) {
            do {
                GsMapModelingData((unsigned long *)((*a1 & 0x80FFFFFF) + 4));
                a1++;
            } while (*a1 != 0);
        }
    }
}

--- func_8001C214 (src/800.c:9124) shares 4: D_80063548 func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C214(s32 a0, s32 a1)
{
    extern void func_8001C9D0(void);
    extern void func_80052D90(s32 a0, void *a1);
    extern void func_80054514(s32 a0, s32 a1);
    extern void GsMapModelingData(u32 *p);
    extern u8 D_80063548[];

    s32 sp10[8];

    func_8001C9D0();
    *(u16 *)a0 = 1;
    *(u16 *)(a0 + 2) = 0;
    func_80052D90(0, (void *)(a0 + 0x30));
    func_80054514(a0 + 0x30, (s32)&sp10[0]);
    *(s32 *)(a0 + 0x24) = a1;
    if (a1 != 0) {
        *(s32 *)(a0 + 0x20) = (s32)D_80063548;
        if (*(s32 *)a1 != 0) {
            do {
                GsMapModelingData((u32 *)((*(s32 *)a1 & 0x80FFFFFF) + 4));
                a1 += 4;
            } while (*(s32 *)a1 != 0);
        }
    }
}

--- func_8001C4A4 (src/800.c:9246) shares 4: D_80063548 func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C4A4(s32 a0, u32 *a1)
{
    extern void func_8001C9D0(void);
    extern void func_80052D90(s32 a0, void *a1);
    extern void func_80054514(s32 a0, s32 a1);
    extern void GsMapModelingData(u32 *p);
    extern u8 D_80063548[];

    s32 sp10[8];

    func_8001C9D0();
    *(u16 *)a0 = 1;
    *(u16 *)(a0 + 2) = 7;
    func_80052D90(0, (void *)(a0 + 0x30));
    func_80054514(a0 + 0x30, (s32)&sp10[0]);
    *(s32 *)(a0 + 0x24) = (s32)a1;
    if (a1 != 0) {
        *(s32 *)(a0 + 0x20) = (s32)D_80063548;
        if (*a1 != 0) {
            do {
                GsMapModelingData((u32 *)((*a1 & 0x80FFFFFF) + 4));
                a1 += 1;
            } while (*a1 != 0);
        }
    }
}

--- func_8001C558 (src/800.c:9278) shares 3: func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C558(s32 a0) {
    u8 local_var[32];

    func_8001C9D0();
    *(s16 *)(a0 + 0x0) = 1;
    *(s16 *)(a0 + 0x2) = 7;
    func_80052D90(0, (void *)(a0 + 0x30));
    func_80054514((s32)(a0 + 0x30), (s32)&local_var[0]);
    *(s32 *)(a0 + 0x24) = 0;
}

--- func_8001C8C4 (src/800.c:9436) shares 3: func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C8C4(s32 a0) {
    s32 local_10[4];
    s32 local_20[4];

    ((void (*)(s32))func_8001C9D0)(a0);
    *(s16 *)(a0 + 0x0) = 1;
    *(s16 *)(a0 + 0x2) = 5;
    func_80052D90(0, (void *)(a0 + 0x30));
    func_80054514(a0 + 0x30, (s32)local_10);
    *(s32 *)(a0 + 0x24) = 0;
}

--- func_8001C6E4 (src/800.c:9345) shares 3: func_8001C9D0 func_80052D90 func_80054514 ---
void func_8001C6E4(void *a0) {
    s32 sp_buf[8];

    ((void (*)(void *))func_8001C9D0)(a0);

    *(s16 *)a0 = 1;
    *(s16 *)((s32)a0 + 2) = 8;

    func_80052D90(0, (void *)((s32)a0 + 0x30));
    func_80054514((s32)a0 + 0x30, (s32)sp_buf);

    *(s32 *)((s32)a0 + 0x24) = 0;
}

