#include "game_types.h"

/* Sub_0800FEF8 @ 0x0800FEF8 (real 78B) -- block copy plus 40-iter zero/-1 fill. Mirrors src/matched/Sub_0800FEF8.c. */
/* Copies 4 words from 0x0802A6F8 to p+0x1C48, then 40 iterations zeroing
   p+0x1C58 words and p+0x1CF8 halfwords while filling p+0x1D48 words with
   -1; clears the words at +0x1DE8/+0x1DEC/+0x1DF0. */
void Sub_0800FEF8(int *p)
{
    int *src = (int *)0x0802A6F8;
    int *dst = (int *)((char *)p + 0x1C48);
    int *z1 = (int *)((char *)p + 0x1C58);
    unsigned short *z2 = (unsigned short *)((char *)p + 0x1CF8);
    int *ones = (int *)((char *)p + 0x1D48);
    int i;
    dst[0] = src[0];
    dst[1] = src[1];
    dst[2] = src[2];
    dst[3] = src[3];
    for (i = 0; i < 40; i++) {
        *z1++ = 0;
        *z2++ = 0;
        *ones++ = -1;
    }
    *(int *)((char *)p + 0x1DE8) = 0;
    *(int *)((char *)p + 0x1DEC) = 0;
    *(int *)((char *)p + 0x1DF0) = 0;
}
