/* 
 * 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.


int script_8309(int a0) {
	int v9 = idx17mapData('i', 'J', 7716, a0);
	int v46 = script_8418(v9, 0);
	int v41 = -1;
	int v55 = -1;
	int v28 = 0;
	int v61 = 0;
	int v34 = -1;
	int v25 = -1;
	int v64 = 1;
	int v47 = 1;
	int v63 = 0;
	int v45 = 0;
	int v57 = 0;
	int v44 = 0;
	int v60 = 0;
	int v62 = -1;
	int v30 = -1;
	int v2 = idx22mapAttribute(v9, 3494);
	int v50 = idx22mapAttribute(v9, 3503);
	int v53 = 0;
	int v52 = 0;
	int v6 = 0;
	int v24 = 0;
	int v18 = cs2method_10191(v50);
	int v17 = cs2method_10152(v50);
	int v56 = cs2method_10236(v50);
	int v58 = cs2method_10823(v50);
	if (cs2_configs['cfg3466'] != a0) {
		int v16 = idx17mapData('i', 'J', 7716, cs2_configs['cfg3466']);
		int v19 = idx22mapAttribute(v16, 3506);
		if (v19 != -1) {
			int v14 = script_8403(v19);
			int v15 = script_8404(v19);
			if (v14 > 0 && v14 < cs2method_10236(v19) && v15 > 0 && v15 < cs2method_10823(v19)) {
				if (a0 != 17 && script_6213(a0) == 1 && idx22mapAttribute(v16, 3531) == 1) {
					return 3;
				}
				if (idx22mapAttribute(v16, 3521) == 1 && idx22mapAttribute(v9, 3521) == 1) {
					int v51 = idx22mapAttribute(v46, 3577);
					int v42 = 0;
					int v4 = cs2method_10236(v19);
					int v39 = 0;
					int v48 = cs2method_10060(cs2method_10060(idx22mapAttribute(v46, 3547), v51), idx22mapAttribute(v46, 3586));
					if (v14 >= v42 && v14 <= v4 && v15 >= v39 && v15 <= v48) {
						return 1;
					}
				}
				if (idx22mapAttribute(v16, 3530) == 1 && idx22mapAttribute(v9, 3530) == 1) {
					int v23 = 9;
					int v36 = a0;
					script_8701_struct(8,0,0) v13 = script_8701(v23, v36);
					int v12 = v13.intpart_7;
					int v20 = v13.intpart_6;
					int v10 = v13.intpart_5;
					int v1 = v13.intpart_4;
					int v49 = v13.intpart_3;
					int v22 = v13.intpart_2;
					int v3 = v13.intpart_1;
					int v32 = v13.intpart_0;
					int v0 = idx22mapAttribute(v16, 3494);
					int v33 = idx22mapAttribute(v9, 3494);
					if (v20 == 1) {
						if (idx22mapAttribute(v9, 3521) == 1 && (v1 != -1 || v10 != -1)) {
							if (v1 != -1) {
								int v37 = v1;
								script_8718_struct(2,0,0) v35 = script_8718(v37);
								v10 = v35.intpart_1;
								v1 = v35.intpart_0;
							} else {
								if (v10 != -1) {
									int v21 = v10;
									script_8718_struct(2,0,0) v5 = script_8718(v21);
									v10 = v5.intpart_1;
									v1 = v5.intpart_0;
								}
							}
							if (v1 != a0 && v10 != a0) {
								return -1;
							}
						}
						if (idx22mapAttribute(v0, 3541) <= v22 && idx22mapAttribute(v0, 3542) <= v49 && idx22mapAttribute(v33, 3541) <= cs2method_10236(v19) && idx22mapAttribute(v33, 3542) <= cs2method_10823(v19)) {
							flow_33:
								int v27 = a0;
								script_8717_struct(4,0,0) v26 = script_8717(v27);
								int v54 = v26.intpart_3;
								int v38 = v26.intpart_2;
								int v59 = v26.intpart_1;
								int v31 = v26.intpart_0;
								int v11 = cs2_configs['cfg3466'];
								script_8717_struct(4,0,0) v7 = script_8717(v11);
								int v8 = v7.intpart_3;
								int v29 = v7.intpart_2;
								int v40 = v7.intpart_1;
								int v43 = v7.intpart_0;
								IF (v2 == -1) 
									GOTO	flow_35
								IF (v29 >= idx22mapAttribute(v2, 3541) && v8 >= idx22mapAttribute(v2, 3542) && v38 >= idx22mapAttribute(v0, 3541) && v54 >= idx22mapAttribute(v0, 3542)) 
									GOTO	flow_37
								GOTO	flow_40
							flow_35:
							flow_37:
								if (cs2method_10051(v29, v8) >= idx22mapAttribute(v2, 3543) && cs2method_10051(v38, v54) >= idx22mapAttribute(v0, 3543)) {
									return 2;
								}
							flow_40:
								return -1;
						}
						return -1;
					}
					return -1;
				}
			}
		}
	}
	return 0;
}
