Help! understand code!

hi everyone!! This is my first time creating a post so be easy on me lol :ponder: I have found code for image panning online and I need help commenting the code!! :smiley:

The code works lol!!

Thank in advance

The code:

function panThisImage(target:MovieClip, speed:Number,speed1:Number, dir:int) {
var mousePercent:Number = mouseX / stage.stageWidth;
var mousePercent1:Number = mouseY / stage.stageHeight;
stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
target.cacheAsBitmap = true;

function panImage(E:MouseEvent):void {
	var mSpeed:Number;
	var mSpeed1:Number;
	mousePercent = mouseX / stage.stageWidth;
	mousePercent1 = mouseY / stage.stageHeight;
	if (dir == 1) {
		mSpeed =1-mousePercent;
	} else {
		mSpeed =mousePercent;
	}
	if (dir==1) {
		mSpeed1 =1-mousePercent1;
	} else {
		mSpeed1=mousePercent1;
	}
	target.destX = Math.round(-((target.width-stage.stageWidth) * mSpeed));
	target.destY = Math.round(-((target.height-stage.stageHeight) * mSpeed1));
	if (target.hasEventListener(Event.ENTER_FRAME)) {
		target.removeEventListener(Event.ENTER_FRAME, del);
	}
	target.addEventListener(Event.ENTER_FRAME, del);

}
function del(E:Event):void {
	if (Math.abs(target.x-target.destX) <= 1) {
		target.x = Math.round(target.destX);
		target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
	} else {
		target.x += (target.destX-target.x) * (speed / 100);
	}
	if (Math.abs(target.y-target.destY) <= 1) {
		target.y = Math.round(target.destY);
		target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
	} else {
		target.y += (target.destY-target.y) * (speed1 / 100);
	}
}

}
panThisImage(main_map, 30,0, 0);