def split_semicolon(line, maxsplit=None):
    r
    split_line = line.split(';')
    split_line_size = len(split_line)
    if maxsplit is None or maxsplit < 0:
        maxsplit = split_line_size
    i = 0
    while i < split_line_size - 1:
        ends = split_line[i].endswith('\\')
        if ends:
            split_line[i] = split_line[i][:-1]
        if (ends or i >= maxsplit) and i < split_line_size - 1:
            split_line[i] = ";".join([split_line[i], split_line[i + 1]])
            del split_line[i + 1]
            split_line_size -= 1
        else:
            i += 1
    return split_line