okay so, see the "mov ES, [bp+06]"? That's normal code that is getting the arguments to the function, right? which are at +4 and +6 on the original stack pointer. They're accessing through BP because the stack pointer changes when they push those other registers, to preserve them.
HOWEVER, look at the DS and SS. SS is 1810, but DS is 2811.
The problem is that that instruction should be accessing DS:bp+06, not SS:bp+04. and those are DIFFERNT