def fib_memo_loop(n, memo):
    """Looping recursive fibonacci sequence implementation utilizing memoization.

    Use for large n.

    Args:
        n (Integer): Index of the fibonacci number
        memoization (Dictionary): Non-Null dictionary with prior memoized values

    Returns:
        Integer: Value of the fibonacci sequence at the provided index
    """

    if n in memo:
        return memo[n]

    memo[0] = 0
    memo[1] = 1

    to_determine = [n]
    j = n
    while len(to_determine) > 0:
        j = to_determine.pop()
        if j - 1 in memo and j - 2 in memo:
            memo[j] = memo[j - 1] + memo[j - 2]
        else:
            to_determine.append(j)
            to_determine.append(j - 1)
            to_determine.append(j - 2)

    return memo[n]