def run_intcode(program):
    """
    Takes data, list of ints to run int_code on.
    Returns list of ints after intcode program has been run.
    
    Running Intcode program looks reads in the integers sequentially in sets of 4:
        data[i]      == Opcode
        data[i+1]    == Index 1
        data[i+2]    == Index 2
        data[i+3]    == Index 3
        
    If Opcode == 1, the entries at index 1 and 2 in the program are summed and
    stored at index 3. 
    If Opcode == 2, the entries at index 1 and 2 are multiplied instead.
    If Opcode == 99, the program is completed and will stop running.
    """
    
    data = program[:]
    
    for i in range(0, len(data), 4):
        
        if data[i] == 99:           
            break
        
        elif data[i] == 1:
            data[data[i+3]] = data[data[i+2]] + data[data[i+1]]
            
        elif data[i] == 2:           
            data[data[i+3]] = data[data[i+2]] * data[data[i+1]]
        
        else:
            print("Problem with the Program")
            break
        
    return data