decode-coding-region is an interactive built-in function in `C source code'.

(decode-coding-region START END CODING-SYSTEM &optional DESTINATION)

Decode the current region from the specified coding system.
When called from a program, takes four arguments:
START and END are buffer positions.

Optional 4th arguments DESTINATION specifies where the decoded text goes.
If nil, the region between START and END is replaced by the decoded text.
If buffer, the decoded text is inserted in that buffer after point (point
does not move).
In those cases, the length of the decoded text is returned.
If DESTINATION is t, the decoded text is returned.

This function sets `last-coding-system-used' to the precise coding system
used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
not fully specified.)