void script_2132(int arg0,int arg1,int arg2,int arg3,int arg4) {
	int ivar5;
	int ivar6;
	int ivar7;
	int ivar8;
	flow_0:
		ivar5 = add(getWidgetActualX(new WidgetPointer(arg0)), arg1);
		ivar6 = add(getWidgetActualY(new WidgetPointer(arg0)), arg2);
		if ((getWidgetActualX(new WidgetPointer(arg3)) >= ivar5) && (getWidgetActualX(new WidgetPointer(arg3)) < add(ivar5, getWidgetActualWidth(new WidgetPointer(arg0))))) {
			if ((getWidgetActualY(new WidgetPointer(arg3)) >= ivar6) && (getWidgetActualY(new WidgetPointer(arg3)) < add(ivar6, getWidgetActualHeight(new WidgetPointer(arg0))))) {
				ivar5 = subtract(ivar5, add(rndExcl(3), 2));
				ivar6 = subtract(ivar6, add(rndExcl(3), 2));
				if (arg4 <= getClientCycle()) {
					playSoundEffect(819, 1, 0);
					arg4 = add(add(getClientCycle(), 20), rndExcl(40));
				}
			}
		} else {
			if (((ivar5 >= getWidgetActualX(new WidgetPointer(arg3))) && (ivar5 < add(getWidgetActualX(new WidgetPointer(arg3)), getWidgetActualWidth(new WidgetPointer(arg3))))) && ((ivar6 >= getWidgetActualY(new WidgetPointer(arg3))) && (ivar6 < add(getWidgetActualY(new WidgetPointer(arg3)), getWidgetActualHeight(new WidgetPointer(arg3)))))) {
				ivar5 = add(add(ivar5, rndExcl(3)), 2);
				ivar6 = add(add(ivar6, rndExcl(3)), 2);
				if (arg4 <= getClientCycle()) {
					playSoundEffect(819, 1, 0);
					arg4 = add(add(getClientCycle(), 20), rndExcl(40));
				}
			}
		}
		ivar5 = max(ivar5, 0);
		ivar6 = max(ivar6, 0);
		ivar7 = subtract(getWidgetActualWidth(new WidgetPointer(getWidgetParentId(new WidgetPointer(arg0)))), getWidgetActualWidth(new WidgetPointer(arg0)));
		ivar5 = min(ivar5, ivar7);
		ivar8 = subtract(getWidgetActualHeight(new WidgetPointer(getWidgetParentId(new WidgetPointer(arg0)))), getWidgetActualHeight(new WidgetPointer(arg0)));
		ivar6 = min(ivar6, ivar8);
		IF (ivar5 <= 0) 
			GOTO	flow_14
		GOTO	flow_15
	flow_14:
		IF (arg1 < 0) 
			GOTO	flow_17
	flow_15:
		IF ((ivar5 >= ivar7) && (arg1 > 0)) 
			GOTO	flow_17
		GOTO	flow_18
	flow_17:
		arg1 = subtract(0, arg1);
	flow_18:
		IF (ivar6 <= 0) 
			GOTO	flow_19
		GOTO	flow_20
	flow_19:
		IF (arg2 < 0) 
			GOTO	flow_22
	flow_20:
		IF ((ivar6 >= ivar8) && (arg2 > 0)) 
			GOTO	flow_22
		GOTO	flow_23
	flow_22:
		arg2 = subtract(0, arg2);
	flow_23:
		if (((boolean)arg1)) {
			arg1 = add(rndExcl(3), 1);
		}
		if (((boolean)arg2)) {
			arg2 = add(rndExcl(3), 1);
		}
		setWidgetPosition(ivar5, ivar6, 0, 0, new WidgetPointer(arg0));
		setScriptCallOnGameloop(2132, new WidgetPointer(arg0), arg1, arg2, new WidgetPointer(arg3), arg4, "IiiIi", new WidgetPointer(arg0));
		return;
}
