/* 
 * Script decompiled by jagdecs2 v3.2
 * Decompiler opts:
 * --------------
 * t1LocalAnalyzer:true
 * t2LocalAnalyzer:true
 * beautifier:true
 * --------------
 * Made by mgi125 ;)
 */
// Beautifier was aborted, because this function contains unsolved flow blocks.


void script_288(int a0,int a1,int a2,int a3) {
	int v10 = -1;
	int v11 = a1;
	int v2 = 0;
	int v1 = 0;
	int v3 = 0;
	int v5 = 0;
	int v12 = -1;
	int v8 = -1;
	if (cs2method_11038(a0, a1) == 1) {
		int v4 = script_9635(interfaceDefsAttribute(3430));
		script_9628(a0, a1, -1);
		if (a3 == 1) {
			while (v5 == 0 && (v2 == v1 || v2 == v3)) {
				v11 = cs2method_10060(v11, 5);
				if (cs2method_11038(a0, v11) == 1) {
					if (interfaceDefsAttribute(4032) != -1) {
						v5 = 1;
					} else {
						int v9 = interfaceDefsAttribute(3430);
						if (v9 != -1) {
							v2 = cs2method_10060(v2, 1);
							if (script_9635(v9) == 1) {
								v1 = cs2method_10060(v1, 1);
							} else {
								v3 = cs2method_10060(v3, 1);
							}
						}
					}
				} else {
					v5 = 1;
				}
			}
			int v7 = a1;
			int v0 = 0;
			while (v0 == 0 && (v2 == v1 || v2 == v3)) {
				v7 = cs2method_10461(v7, 5);
				if (v7 < 0) {
					v0 = 1;
				} else if (cs2method_11038(a0, v7) == 1) {
					if (interfaceDefsAttribute(4032) != -1) {
						flow_21:
							IF (v2 > 0) 
								GOTO	flow_22
							GOTO	flow_27
						flow_22:
							IF (v2 == v1) 
								GOTO	flow_23
							GOTO	flow_24
						flow_23:
							IF (v4 == 1) 
								GOTO	flow_26
						flow_24:
							IF (v2 == v3 && v4 == 0) 
								GOTO	flow_26
							GOTO	flow_27
						flow_26:
							cs2method_10310(20328);
							v8 = 2;
							GOTO	flow_33
						flow_27:
							if (v2 == v1 && v4 == 0) {
								cs2method_10310(20326);
								v8 = 1;
							} else {
								if (v2 == v3 && v4 == 1) {
									cs2method_10310(20268);
									v8 = 0;
								}
							}
						flow_33:
							if (v8 != -1 && interfaceDefsAttribute(4032) == 1) {
								script_9631(a0, v7, v8);
							}
							v0 = 1;
					} else {
						int v6 = interfaceDefsAttribute(3430);
						if (v6 != -1) {
							v2 = cs2method_10060(v2, 1);
							if (script_9635(v6) == 1) {
								v1 = cs2method_10060(v1, 1);
							} else {
								v3 = cs2method_10060(v3, 1);
							}
						}
					}
				} else {
					v0 = 1;
				}
			}
		}
	}
	return;
}
