vs编译器优化疑问,为什么会优化成这样?

这是一个base64编码的实现函数,编译器把我的语句优化没了,导致结果错误
图片说明
图片说明图片说明

图1,为代码片段
图2,为优化后的汇编指令,红色部分为被优化掉的语句
图3,为vs工程优化选项,已经设置了不优化

简单来说就是 ,编译器把我图2红色部分代码优化没了,导致后来的字节都是0
求汇编大神解释一下,为什么会这样?