c
typedef void (*DecodeBlockCallback)(uint8_t* dest, size_t dest_size, const uint8_t b64[B64_BLOCK]);


int DecodeBase64(..., DecodeBlockCallback decode_block, ...) {
    // ...
    decode_block(dptr, dest_size - *decoded_bytes, b64);
    // ...
}

// Example callback:
void MyDecodeBlock(uint8_t* dest, size_t dest_size, const uint8_t b64[B64_BLOCK]) {
    if (dest_size >= ASCII_BLOCK) {
        // ... decode logic directly into dest ...
    } // ... handle errors ...
}
