the second line is a subroutine that computes a Fibonacci number
the first line calls it once, then gets the divisors and then calls it once again for each divisor (treating the stack like a queue by processing the individual divisors from the bottom up, so that we can defer computing the sum to the end)
the return stack shenanigans are quite fun though, because the code continues after the subroutine once the loop on the first line is depleted
the B is the divisors, the 1 is just because I have the ; which discards the other Fibonacci result at the beginning of the loop
the 1 could literally be anything that pushes a single value
(and the reason I have the ; at the beginning of the loop is that I can save on a k this way... remember the nested loop trick we talked about a few days ago, which requires nested loops to be at the end of the surrounding loop?)
I remember the trick, but this is definitely more advanced :D I don't have enough time right now, I'll look at it again later to understand it better^^