Prepare an IBAN for mod 97 computation by moving the first
    4 chars to the end and transforming the letters to numbers
    (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.

    @method iso13616Prepare
    @param {String} iban the IBAN
    @returns {String} the prepared IBAN

def iso13616Prepare(iban):
    """
    Prepare an IBAN for mod 97 computation by moving the first
    4 chars to the end and transforming the letters to numbers
    (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.

    @method iso13616Prepare
    @param {String} iban the IBAN
    @returns {String} the prepared IBAN
    """
    A = ord("A")
    Z = ord("Z")

    iban = iban.upper()
    iban = iban[4:] + iban[:4]

    def charfunc(n):
        code = ord(n)
        if code >= A and code <= Z:
            return str(code - A + 10)
        else:
            return str(n)

    return "".join(map(charfunc, list(iban)))