c
static BOOL safe_add(uint32_t a, uint32_t b, uint32_t* result) {
    if (a > UINT32_MAX - b) return FALSE;
    *result = a + b;
    return TRUE;
}

uint32_t xOffset, yOffset, totalOffset;
if (!safe_add(nXDst * dstBytesPerPixel, nYDst * nDstStep, &totalOffset)) {
    // Handle overflow error
    return FALSE;
}
const BYTE* pDstStart = &pDstData[totalOffset];
