diff options
author | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2021-01-07 11:15:16 +0100 |
---|---|---|
committer | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2021-01-07 11:15:16 +0100 |
commit | ab7882034042826e3bd7b398fc046452bf685716 (patch) | |
tree | eb7fc79be53f37a9994001d3d5f41c66a5da285e | |
parent | e7fa1950201c72d318fdd1eeffc545facb179ab8 (diff) | |
download | compcert-kvx-ab7882034042826e3bd7b398fc046452bf685716.tar.gz compcert-kvx-ab7882034042826e3bd7b398fc046452bf685716.zip |
cleaning
-rw-r--r-- | aarch64/Asmgenproof_orig_single_label_in_header.v.stash | 2245 | ||||
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | multiple_labels_crash_test/check.c | 120 | ||||
-rw-r--r-- | multiple_labels_crash_test/driver.c | 12 | ||||
-rw-r--r-- | multiple_labels_crash_test/func.c | 915 | ||||
-rw-r--r-- | multiple_labels_crash_test/func.ref.s | 5170 | ||||
-rw-r--r-- | multiple_labels_crash_test/hash.c | 3 | ||||
-rw-r--r-- | multiple_labels_crash_test/init.c | 209 | ||||
-rw-r--r-- | multiple_labels_crash_test/init.h | 181 | ||||
-rw-r--r-- | scheduling/PseudoAsmblock.v | 267 | ||||
-rw-r--r-- | scheduling/PseudoAsmblockproof.v | 1173 |
11 files changed, 1 insertions, 10296 deletions
diff --git a/aarch64/Asmgenproof_orig_single_label_in_header.v.stash b/aarch64/Asmgenproof_orig_single_label_in_header.v.stash deleted file mode 100644 index bff18716..00000000 --- a/aarch64/Asmgenproof_orig_single_label_in_header.v.stash +++ /dev/null @@ -1,2245 +0,0 @@ -(* *************************************************************) -(* *) -(* The Compcert verified compiler *) -(* *) -(* Sylvain Boulmé Grenoble-INP, VERIMAG *) -(* Léo Gourdin UGA, VERIMAG *) -(* Justus Fasse UGA, VERIMAG *) -(* Xavier Leroy INRIA Paris-Rocquencourt *) -(* David Monniaux CNRS, VERIMAG *) -(* Cyril Six Kalray *) -(* *) -(* Copyright Kalray. Copyright VERIMAG. All rights reserved. *) -(* This file is distributed under the terms of the INRIA *) -(* Non-Commercial License Agreement. *) -(* *) -(* *************************************************************) - -Require Import Coqlib Errors. -Require Import Integers Floats AST Linking. -Require Import Values Memory Events Globalenvs Smallstep. -Require Import Op Locations Machblock Conventions PseudoAsmblock Asm Asmblock. -Require Machblockgenproof Asmblockgenproof PostpassSchedulingproof. -Require Import Asmgen. -Require Import Axioms. -Require Import IterList. -Require Import Ring. - -Module Asmblock_PRESERVATION. - -Import Asmblock_TRANSF. - -Definition match_prog (p: Asmblock.program) (tp: Asm.program) := - match_program (fun _ f tf => transf_fundef f = OK tf) eq p tp. - -Lemma transf_program_match: - forall p tp, transf_program p = OK tp -> match_prog p tp. -Proof. - intros. eapply match_transform_partial_program; eauto. -Qed. - -Section PRESERVATION. - -Variable prog: Asmblock.program. -Variable tprog: Asm.program. -Hypothesis TRANSF: match_prog prog tprog. -Let ge := Genv.globalenv prog. -Let tge := Genv.globalenv tprog. - -Definition lk :aarch64_linker := {| Asmblock.symbol_low:=Asm.symbol_low tge; Asmblock.symbol_high:=Asm.symbol_high tge|}. - -Lemma symbols_preserved: - forall (s: ident), Genv.find_symbol tge s = Genv.find_symbol ge s. -Proof (Genv.find_symbol_match TRANSF). - -Lemma symbol_addresses_preserved: - forall (s: ident) (ofs: ptrofs), - Genv.symbol_address tge s ofs = Genv.symbol_address ge s ofs. -Proof. - intros; unfold Genv.symbol_address; rewrite symbols_preserved; reflexivity. -Qed. - -Lemma senv_preserved: - Senv.equiv ge tge. -Proof (Genv.senv_match TRANSF). - -Lemma symbol_high_low: forall (id: ident) (ofs: ptrofs), - Val.addl (Asmblock.symbol_high lk id ofs) (Asmblock.symbol_low lk id ofs) = Genv.symbol_address ge id ofs. -Proof. - unfold lk; simpl. intros; rewrite Asm.symbol_high_low; unfold Genv.symbol_address; - rewrite symbols_preserved; reflexivity. -Qed. - -Lemma functions_translated: - forall b f, - Genv.find_funct_ptr ge b = Some f -> - exists tf, - Genv.find_funct_ptr tge b = Some tf /\ transf_fundef f = OK tf. -Proof (Genv.find_funct_ptr_transf_partial TRANSF). - -Lemma internal_functions_translated: - forall b f, - Genv.find_funct_ptr ge b = Some (Internal f) -> - exists tf, - Genv.find_funct_ptr tge b = Some (Internal tf) /\ transf_function f = OK tf. -Proof. - intros; exploit functions_translated; eauto. - intros (x & FIND & TRANSf). - apply bind_inversion in TRANSf. - destruct TRANSf as (tf & TRANSf & X). - inv X. - eauto. -Qed. - -Lemma internal_functions_unfold: - forall b f, - Genv.find_funct_ptr ge b = Some (Internal f) -> - exists tc, - Genv.find_funct_ptr tge b = Some (Internal (Asm.mkfunction (fn_sig f) tc)) - /\ unfold (fn_blocks f) = OK tc - /\ list_length_z tc <= Ptrofs.max_unsigned. -Proof. - intros. - exploit internal_functions_translated; eauto. - intros (tf & FINDtf & TRANStf). - unfold transf_function in TRANStf. - monadInv TRANStf. - destruct (zlt _ _); try congruence. - inv EQ. inv EQ0. - eexists; intuition eauto. - omega. -Qed. - - -Inductive is_nth_inst (bb: bblock) (n:Z) (i:Asm.instruction): Prop := - | is_nth_label l: - list_nth_z (header bb) n = Some l -> - i = Asm.Plabel l -> - is_nth_inst bb n i - | is_nth_basic bi: - list_nth_z (body bb) (n - list_length_z (header bb)) = Some bi -> - basic_to_instruction bi = OK i -> - is_nth_inst bb n i - | is_nth_ctlflow cfi: - (exit bb) = Some cfi -> - n = size bb - 1 -> - i = control_to_instruction cfi -> - is_nth_inst bb n i. - -(* Asmblock and Asm share the same definition of state *) -Definition match_states (s1 s2 : state) := s1 = s2. - -Inductive match_internal: forall n, state -> state -> Prop := - | match_internal_intro n rs1 m1 rs2 m2 - (MEM: m1 = m2) - (AG: forall r, r <> PC -> rs1 r = rs2 r) - (AGPC: Val.offset_ptr (rs1 PC) (Ptrofs.repr n) = rs2 PC) - : match_internal n (State rs1 m1) (State rs2 m2). - -Lemma match_internal_set_parallel: - forall n rs1 m1 rs2 m2 r val, - match_internal n (State rs1 m1) (State rs2 m2) -> - r <> PC -> - match_internal n (State (rs1#r <- val) m1) (State (rs2#r <- val ) m2). -Proof. - intros n rs1 m1 rs2 m2 r v MI. - inversion MI; constructor; auto. - - intros r' NOTPC. - unfold Pregmap.set; rewrite AG. reflexivity. assumption. - - unfold Pregmap.set; destruct (PregEq.eq PC r); congruence. -Qed. - -Lemma agree_match_states: - forall rs1 m1 rs2 m2, - match_states (State rs1 m1) (State rs2 m2) -> - forall r : preg, rs1#r = rs2#r. -Proof. - intros. - unfold match_states in *. - assert (rs1 = rs2) as EQ. { congruence. } - rewrite EQ. reflexivity. -Qed. - -Lemma match_states_set_parallel: - forall rs1 m1 rs2 m2 r v, - match_states (State rs1 m1) (State rs2 m2) -> - match_states (State (rs1#r <- v) m1) (State (rs2#r <- v) m2). -Proof. - intros; unfold match_states in *. - assert (rs1 = rs2) as RSEQ. { congruence. } - assert (m1 = m2) as MEQ. { congruence. } - rewrite RSEQ in *; rewrite MEQ in *; unfold Pregmap.set; reflexivity. -Qed. - -(* match_internal from match_states *) -Lemma mi_from_ms: - forall rs1 m1 rs2 m2 b ofs, - match_states (State rs1 m1) (State rs2 m2) -> - rs1#PC = Vptr b ofs -> - match_internal 0 (State rs1 m1) (State rs2 m2). -Proof. - intros rs1 m1 rs2 m2 b ofs MS PCVAL. - inv MS; constructor; auto; unfold Val.offset_ptr; - rewrite PCVAL; rewrite Ptrofs.add_zero; reflexivity. -Qed. - -Lemma transf_initial_states: - forall s1, Asmblock.initial_state prog s1 -> - exists s2, Asm.initial_state tprog s2 /\ match_states s1 s2. -Proof. - intros ? INIT_s1. - inversion INIT_s1 as (m, ?, ge0, rs). unfold ge0 in *. - econstructor; split. - - econstructor. - eapply (Genv.init_mem_transf_partial TRANSF); eauto. - - rewrite (match_program_main TRANSF); rewrite symbol_addresses_preserved. - unfold rs; reflexivity. -Qed. - -Lemma transf_final_states: - forall s1 s2 r, - match_states s1 s2 -> Asmblock.final_state s1 r -> Asm.final_state s2 r. -Proof. - intros s1 s2 r MATCH FINAL_s1. - inv FINAL_s1; inv MATCH; constructor; assumption. -Qed. - -Definition max_pos (f : Asm.function) := list_length_z f.(Asm.fn_code). - -Lemma functions_bound_max_pos: forall fb f tf, - Genv.find_funct_ptr ge fb = Some (Internal f) -> - transf_function f = OK tf -> - max_pos tf <= Ptrofs.max_unsigned. -Proof. - intros fb f tf FINDf TRANSf. - unfold transf_function in TRANSf. - apply bind_inversion in TRANSf. - destruct TRANSf as (c & TRANSf). - destruct TRANSf as (_ & TRANSf). - destruct (zlt _ _). - - inversion TRANSf. - - unfold max_pos. - assert (Asm.fn_code tf = c) as H. { inversion TRANSf as (H'); auto. } - rewrite H; omega. -Qed. - -Lemma one_le_max_unsigned: - 1 <= Ptrofs.max_unsigned. -Proof. - unfold Ptrofs.max_unsigned; simpl; unfold Ptrofs.wordsize; - unfold Wordsize_Ptrofs.wordsize; destruct Archi.ptr64; simpl; omega. -Qed. - -(* NB: does not seem useful anymore, with the [exec_header_simulation] proof below -Lemma match_internal_exec_label: - forall n rs1 m1 rs2 m2 l fb f tf, - Genv.find_funct_ptr ge fb = Some (Internal f) -> - transf_function f = OK tf -> - match_internal n (State rs1 m1) (State rs2 m2) -> - n >= 0 -> - (* There is no step if n is already max_pos *) - n < (max_pos tf) -> - exists rs2' m2', Asm.exec_instr tge tf (Asm.Plabel l) rs2 m2 = Next rs2' m2' - /\ match_internal (n+1) (State rs1 m1) (State rs2' m2'). -Proof. - intros. (* XXX auto generated names *) - unfold Asm.exec_instr. - eexists; eexists; split; eauto. - inversion H1; constructor; auto. - - intros; unfold Asm.nextinstr; unfold Pregmap.set; - destruct (PregEq.eq r PC); auto; contradiction. - - unfold Asm.nextinstr; rewrite Pregmap.gss; unfold Ptrofs.one. - rewrite <- AGPC; rewrite Val.offset_ptr_assoc; unfold Ptrofs.add; - rewrite Ptrofs.unsigned_repr. rewrite Ptrofs.unsigned_repr; trivial. - + split. - * apply Z.le_0_1. - * apply one_le_max_unsigned. - + split. - * apply Z.ge_le; assumption. - * rewrite <- functions_bound_max_pos; eauto; omega. -Qed. -*) - -Lemma incrPC_agree_but_pc: - forall rs r ofs, - r <> PC -> - (incrPC ofs rs)#r = rs#r. -Proof. - intros rs r ofs NOTPC. - unfold incrPC; unfold Pregmap.set; destruct (PregEq.eq r PC). - - contradiction. - - reflexivity. -Qed. - -Lemma bblock_non_empty bb: body bb <> nil \/ exit bb <> None. -Proof. - destruct bb. simpl. - unfold non_empty_bblockb in correct. - unfold non_empty_body, non_empty_exit, Is_true in correct. - destruct body, exit. - - right. discriminate. - - contradiction. - - right. discriminate. - - left. discriminate. -Qed. - -Lemma list_length_z_aux_increase A (l: list A): forall acc, - list_length_z_aux l acc >= acc. -Proof. - induction l; simpl; intros. - - omega. - - generalize (IHl (Z.succ acc)). omega. -Qed. - -Lemma bblock_size_aux_pos bb: list_length_z (body bb) + Z.of_nat (length_opt (exit bb)) >= 1. -Proof. - destruct (bblock_non_empty bb), (body bb) as [|hd tl], (exit bb); simpl; - try (congruence || omega); - unfold list_length_z; simpl; - generalize (list_length_z_aux_increase _ tl 1); omega. -Qed. - - -Lemma list_length_add_acc A (l : list A) acc: - list_length_z_aux l acc = (list_length_z l) + acc. -Proof. - unfold list_length_z, list_length_z_aux. simpl. - fold list_length_z_aux. - rewrite (list_length_z_aux_shift l acc 0). - omega. -Qed. - -Lemma list_length_z_cons A hd (tl : list A): - list_length_z (hd :: tl) = list_length_z tl + 1. -Proof. - unfold list_length_z; simpl; rewrite list_length_add_acc; reflexivity. -Qed. - -(*Lemma length_agree A (l : list A):*) - (*list_length_z l = Z.of_nat (length l).*) -(*Proof.*) - (*induction l as [| ? l IH]; intros.*) - (*- unfold list_length_z; reflexivity.*) - (*- simpl; rewrite list_length_z_cons, Zpos_P_of_succ_nat; omega.*) -(*Qed.*) - -Lemma bblock_size_aux bb: size bb = list_length_z (header bb) + list_length_z (body bb) + Z.of_nat (length_opt (exit bb)). -Proof. - unfold size. - repeat (rewrite list_length_z_nat). repeat (rewrite Nat2Z.inj_add). reflexivity. -Qed. - -Lemma header_size_lt_block_size bb: - list_length_z (header bb) < size bb. -Proof. - rewrite bblock_size_aux. - generalize (bblock_non_empty bb); intros NEMPTY; destruct NEMPTY as [HDR|EXIT]. - - destruct (body bb); try contradiction; rewrite list_length_z_cons; - repeat rewrite list_length_z_nat; omega. - - destruct (exit bb); try contradiction; simpl; repeat rewrite list_length_z_nat; omega. -Qed. - -Lemma body_size_le_block_size bb: - list_length_z (body bb) <= size bb. -Proof. - rewrite bblock_size_aux; repeat rewrite list_length_z_nat; omega. -Qed. - - -Lemma bblock_size_pos bb: size bb >= 1. -Proof. - rewrite (bblock_size_aux bb). - generalize (bblock_size_aux_pos bb). - generalize (list_length_z_pos (header bb)). - omega. -Qed. - -Lemma unfold_car_cdr bb bbs tc: - unfold (bb :: bbs) = OK tc -> - exists tbb tc', unfold_bblock bb = OK tbb - /\ unfold bbs = OK tc' - /\ unfold (bb :: bbs) = OK (tbb ++ tc'). -Proof. - intros UNFOLD. - assert (UF := UNFOLD). - unfold unfold in UNFOLD. - apply bind_inversion in UNFOLD. destruct UNFOLD as (? & UBB). destruct UBB as (UBB & REST). - apply bind_inversion in REST. destruct REST as (? & UNFOLD'). - fold unfold in UNFOLD'. destruct UNFOLD' as (UNFOLD' & UNFOLD). - rewrite <- UNFOLD in UF. - eauto. -Qed. - -Lemma unfold_cdr bb bbs tc: - unfold (bb :: bbs) = OK tc -> - exists tc', unfold bbs = OK tc'. -Proof. - intros; exploit unfold_car_cdr; eauto. intros (_ & ? & _ & ? & _). - eexists; eauto. -Qed. - -Lemma unfold_car bb bbs tc: - unfold (bb :: bbs) = OK tc -> - exists tbb, unfold_bblock bb = OK tbb. -Proof. - intros; exploit unfold_car_cdr; eauto. intros (? & _ & ? & _ & _). - eexists; eauto. -Qed. - -Lemma all_blocks_translated: - forall bbs tc, - unfold bbs = OK tc -> - forall bb, In bb bbs -> - exists c, unfold_bblock bb = OK c. -Proof. - induction bbs as [| bb bbs IHbbs]. - - contradiction. - - intros ? UNFOLD ? IN. - (* unfold proceeds by unfolding the basic block at the head of the list and - * then recurring *) - exploit unfold_car_cdr; eauto. intros (? & ? & ? & ? & _). - (* basic block is either in head or tail *) - inversion IN as [EQ | NEQ]. - + rewrite <- EQ; eexists; eauto. - + eapply IHbbs; eauto. -Qed. - -Lemma entire_body_translated: - forall lbi tc, - unfold_body lbi = OK tc -> - forall bi, In bi lbi -> - exists bi', basic_to_instruction bi = OK bi'. -Proof. - induction lbi as [| a lbi IHlbi]. - - intros. contradiction. - - intros tc UNFOLD_BODY bi IN. - unfold unfold_body in UNFOLD_BODY. apply bind_inversion in UNFOLD_BODY. - destruct UNFOLD_BODY as (? & TRANSbi & REST). - apply bind_inversion in REST. destruct REST as (? & UNFOLD_BODY' & ?). - fold unfold_body in UNFOLD_BODY'. - - inversion IN as [EQ | NEQ]. - + rewrite <- EQ; eauto. - + eapply IHlbi; eauto. -Qed. - -Lemma bblock_in_bblocks bbs bb: forall - tc pos - (UNFOLD: unfold bbs = OK tc) - (FINDBB: find_bblock pos bbs = Some bb), - In bb bbs. -Proof. - induction bbs as [| b bbs IH]. - - intros. inversion FINDBB. - - destruct pos. - + intros. inversion FINDBB as (EQ). rewrite <- EQ. apply in_eq. - + intros. - exploit unfold_cdr; eauto. intros (tc' & UNFOLD'). - unfold find_bblock in FINDBB. simpl in FINDBB. - fold find_bblock in FINDBB. - apply in_cons. eapply IH; eauto. - + intros. inversion FINDBB. -Qed. - -Lemma blocks_translated tc pos bbs bb: forall - (UNFOLD: unfold bbs = OK tc) - (FINDBB: find_bblock pos bbs = Some bb), - exists tbb, unfold_bblock bb = OK tbb. -Proof. - intros; exploit bblock_in_bblocks; eauto; intros; - eapply all_blocks_translated; eauto. -Qed. - -Lemma size_header b pos f bb: forall - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock pos (fn_blocks f) = Some bb), - list_length_z (header bb) <= 1. -Proof. - intros. - exploit internal_functions_unfold; eauto. - intros (tc & FINDtf & TRANStf & ?). - exploit blocks_translated; eauto. intros TBB. - - unfold unfold_bblock in TBB. - destruct (zle (list_length_z (header bb)) 1). - - assumption. - - destruct TBB as (? & TBB). discriminate TBB. -Qed. - -Lemma list_nth_z_neg A (l: list A): forall n, - n < 0 -> list_nth_z l n = None. -Proof. - induction l; simpl; auto. - intros n H; destruct (zeq _ _); (try eapply IHl); omega. -Qed. - -Lemma find_bblock_neg bbs: forall pos, - pos < 0 -> find_bblock pos bbs = None. -Proof. - induction bbs; simpl; auto. - intros. destruct (zlt pos 0). { reflexivity. } - destruct (zeq pos 0); contradiction. -Qed. - -Lemma equal_header_size bb: - length (header bb) = length (unfold_label (header bb)). -Proof. - induction (header bb); auto. - simpl. rewrite IHl. auto. -Qed. - -Lemma equal_body_size: - forall bb tb, - unfold_body (body bb) = OK tb -> - length (body bb) = length tb. -Proof. - intros bb. induction (body bb). - - simpl. intros ? H. inversion H. auto. - - intros tb H. simpl in H. apply bind_inversion in H. destruct H as (? & BI & TAIL). - apply bind_inversion in TAIL. destruct TAIL as (tb' & BODY' & CONS). inv CONS. - simpl. specialize (IHl tb' BODY'). rewrite IHl. reflexivity. -Qed. - -Lemma equal_exit_size bb: - length_opt (exit bb) = length (unfold_exit (exit bb)). -Proof. - destruct (exit bb); trivial. -Qed. - -Lemma bblock_size_preserved bb tb: - unfold_bblock bb = OK tb -> - size bb = list_length_z tb. -Proof. - unfold unfold_bblock. intros UNFOLD_BBLOCK. - destruct (zle (list_length_z (header bb)) 1). 2: { inversion UNFOLD_BBLOCK. } - apply bind_inversion in UNFOLD_BBLOCK. destruct UNFOLD_BBLOCK as (? & UNFOLD_BODY & CONS). - inversion CONS. - unfold size. - rewrite equal_header_size, equal_exit_size. - erewrite equal_body_size; eauto. - rewrite list_length_z_nat. - repeat (rewrite app_length). - rewrite plus_assoc. auto. -Qed. - -Lemma size_of_blocks_max_pos_aux: - forall bbs tbbs pos bb, - find_bblock pos bbs = Some bb -> - unfold bbs = OK tbbs -> - pos + size bb <= list_length_z tbbs. -Proof. - induction bbs as [| bb ? IHbbs]. - - intros tbbs ? ? FINDBB; inversion FINDBB. - - simpl; intros tbbs pos bb' FINDBB UNFOLD. - apply bind_inversion in UNFOLD; destruct UNFOLD as (tbb & UNFOLD_BBLOCK & H). - apply bind_inversion in H; destruct H as (tbbs' & UNFOLD & CONS). - inv CONS. - destruct (zlt pos 0). { discriminate FINDBB. } - destruct (zeq pos 0). - + inv FINDBB. - exploit bblock_size_preserved; eauto; intros SIZE; rewrite SIZE. - repeat (rewrite list_length_z_nat). rewrite app_length, Nat2Z.inj_add. - omega. - + generalize (IHbbs tbbs' (pos - size bb) bb' FINDBB UNFOLD). intros IH. - exploit bblock_size_preserved; eauto; intros SIZE. - repeat (rewrite list_length_z_nat); rewrite app_length. - rewrite Nat2Z.inj_add; repeat (rewrite <- list_length_z_nat). - omega. -Qed. - -Lemma size_of_blocks_max_pos pos f tf bi: - find_bblock pos (fn_blocks f) = Some bi -> - transf_function f = OK tf -> - pos + size bi <= max_pos tf. -Proof. - unfold transf_function, max_pos. - intros FINDBB UNFOLD. - apply bind_inversion in UNFOLD. destruct UNFOLD as (? & UNFOLD & H). - destruct (zlt Ptrofs.max_unsigned (list_length_z x)). { discriminate H. } - inv H. simpl. - eapply size_of_blocks_max_pos_aux; eauto. -Qed. - -Lemma unfold_bblock_not_nil bb: - unfold_bblock bb = OK nil -> False. -Proof. - intros. - exploit bblock_size_preserved; eauto. unfold list_length_z; simpl. intros SIZE. - generalize (bblock_size_pos bb). intros SIZE'. omega. -Qed. - -(* same proof as list_nth_z_range (Coqlib) *) -Lemma find_instr_range: - forall c n i, - Asm.find_instr n c = Some i -> 0 <= n < list_length_z c. -Proof. - induction c; simpl; intros. - discriminate. - rewrite list_length_z_cons. destruct (zeq n 0). - generalize (list_length_z_pos c); omega. - exploit IHc; eauto. omega. -Qed. - -Lemma find_instr_tail: - forall tbb pos c i, - Asm.find_instr pos c = Some i -> - Asm.find_instr (pos + list_length_z tbb) (tbb ++ c) = Some i. -Proof. - induction tbb as [| ? ? IHtbb]. - - intros. unfold list_length_z; simpl. rewrite Z.add_0_r. assumption. - - intros. rewrite list_length_z_cons. simpl. - destruct (zeq (pos + (list_length_z tbb + 1)) 0). - + exploit find_instr_range; eauto. intros POS_RANGE. - generalize (list_length_z_pos tbb). omega. - + replace (pos + (list_length_z tbb + 1) - 1) with (pos + list_length_z tbb) by omega. - eapply IHtbb; eauto. -Qed. - -Lemma size_of_blocks_bounds fb pos f bi: - Genv.find_funct_ptr ge fb = Some (Internal f) -> - find_bblock pos (fn_blocks f) = Some bi -> - pos + size bi <= Ptrofs.max_unsigned. -Proof. - intros; exploit internal_functions_translated; eauto. - intros (tf & _ & TRANSf). - assert (pos + size bi <= max_pos tf). { eapply size_of_blocks_max_pos; eauto. } - assert (max_pos tf <= Ptrofs.max_unsigned). { eapply functions_bound_max_pos; eauto. } - omega. -Qed. - -Lemma find_instr_bblock_tail: - forall tbb bb pos c i, - Asm.find_instr pos c = Some i -> - unfold_bblock bb = OK tbb -> - Asm.find_instr (pos + size bb ) (tbb ++ c) = Some i. -Proof. - induction tbb. - - intros. exploit unfold_bblock_not_nil; eauto. intros. contradiction. - - intros. simpl. - destruct (zeq (pos + size bb) 0). - + (* absurd *) - exploit find_instr_range; eauto. intros POS_RANGE. - generalize (bblock_size_pos bb). intros SIZE. omega. - + erewrite bblock_size_preserved; eauto. - rewrite list_length_z_cons. - replace (pos + (list_length_z tbb + 1) - 1) with (pos + list_length_z tbb) by omega. - apply find_instr_tail; auto. -Qed. - -Lemma list_nth_z_find_label: - forall (ll : list label) il n l, - list_nth_z ll n = Some l -> - Asm.find_instr n ((unfold_label ll) ++ il) = Some (Asm.Plabel l). -Proof. - induction ll. - - intros. inversion H. - - intros. simpl. - destruct (zeq n 0) as [Z | NZ]. - + inversion H as (H'). rewrite Z in H'. simpl in H'. inv H'. reflexivity. - + simpl in H. destruct (zeq n 0). { contradiction. } - apply IHll; auto. -Qed. - -Lemma list_nth_z_find_bi: - forall lbi bi tlbi n bi' exit, - list_nth_z lbi n = Some bi -> - unfold_body lbi = OK tlbi -> - basic_to_instruction bi = OK bi' -> - Asm.find_instr n (tlbi ++ exit) = Some bi'. -Proof. - induction lbi. - - intros. inversion H. - - simpl. intros. - apply bind_inversion in H0. destruct H0 as (? & ? & ?). - apply bind_inversion in H2. destruct H2 as (? & ? & ?). - destruct (zeq n 0) as [Z | NZ]. - + destruct n. - * inversion H as (BI). rewrite BI in *. - inversion H3. simpl. congruence. - * (* absurd *) congruence. - * (* absurd *) congruence. - + inv H3. simpl. destruct (zeq n 0). { contradiction. } - eapply IHlbi; eauto. -Qed. - -Lemma list_nth_z_find_bi_with_header: - forall ll lbi bi tlbi n bi' (rest : list Asm.instruction), - list_nth_z lbi (n - list_length_z ll) = Some bi -> - unfold_body lbi = OK tlbi -> - basic_to_instruction bi = OK bi' -> - Asm.find_instr n ((unfold_label ll) ++ (tlbi) ++ (rest)) = Some bi'. -Proof. - induction ll. - - unfold list_length_z. simpl. intros. - replace (n - 0) with n in H by omega. eapply list_nth_z_find_bi; eauto. - - intros. simpl. destruct (zeq n 0). - + rewrite list_length_z_cons in H. rewrite e in H. - replace (0 - (list_length_z ll + 1)) with (-1 - (list_length_z ll)) in H by omega. - generalize (list_length_z_pos ll). intros. - rewrite list_nth_z_neg in H; try omega. inversion H. - + rewrite list_length_z_cons in H. - replace (n - (list_length_z ll + 1)) with (n -1 - (list_length_z ll)) in H by omega. - eapply IHll; eauto. -Qed. - -(* XXX unused *) -Lemma range_list_nth_z: - forall (A: Type) (l: list A) n, - 0 <= n < list_length_z l -> - exists x, list_nth_z l n = Some x. -Proof. - induction l. - - intros. unfold list_length_z in H. simpl in H. omega. - - intros n. destruct (zeq n 0). - + intros. simpl. destruct (zeq n 0). { eauto. } contradiction. - + intros H. rewrite list_length_z_cons in H. - simpl. destruct (zeq n 0). { contradiction. } - replace (Z.pred n) with (n - 1) by omega. - eapply IHl; omega. -Qed. - -Lemma list_nth_z_n_too_big: - forall (A: Type) (l: list A) n, - 0 <= n -> - list_nth_z l n = None -> - n >= list_length_z l. -Proof. - induction l. - - intros. unfold list_length_z. simpl. omega. - - intros. rewrite list_length_z_cons. - simpl in H0. - destruct (zeq n 0) as [N | N]. - + inversion H0. - + (* XXX there must be a more elegant way to prove this simple fact *) - assert (n > 0). { omega. } - assert (0 <= n - 1). { omega. } - generalize (IHl (n - 1)). intros IH. - assert (n - 1 >= list_length_z l). { auto. } - assert (n > list_length_z l); omega. -Qed. - -Lemma find_instr_past_header: - forall labels n rest, - list_nth_z labels n = None -> - Asm.find_instr n (unfold_label labels ++ rest) = - Asm.find_instr (n - list_length_z labels) rest. -Proof. - induction labels as [| label labels' IH]. - - unfold list_length_z; simpl; intros; rewrite Z.sub_0_r; reflexivity. - - intros. simpl. destruct (zeq n 0) as [N | N]. - + rewrite N in H. inversion H. - + rewrite list_length_z_cons. - replace (n - (list_length_z labels' + 1)) with (n - 1 - list_length_z labels') by omega. - simpl in H. destruct (zeq n 0). { contradiction. } - replace (Z.pred n) with (n - 1) in H by omega. - apply IH; auto. -Qed. - -(* very similar to find_instr_past_header *) -Lemma find_instr_past_body: - forall lbi n tlbi rest, - list_nth_z lbi n = None -> - unfold_body lbi = OK tlbi -> - Asm.find_instr n (tlbi ++ rest) = - Asm.find_instr (n - list_length_z lbi) rest. -Proof. - induction lbi. - - unfold list_length_z; simpl; intros ? ? ? ? H. inv H; rewrite Z.sub_0_r; reflexivity. - - intros n tlib ? NTH UNFOLD_BODY. - unfold unfold_body in UNFOLD_BODY. apply bind_inversion in UNFOLD_BODY. - destruct UNFOLD_BODY as (? & BI & H). - apply bind_inversion in H. destruct H as (? & UNFOLD_BODY' & CONS). - fold unfold_body in UNFOLD_BODY'. inv CONS. - simpl; destruct (zeq n 0) as [N|N]. - + rewrite N in NTH; inversion NTH. - + rewrite list_length_z_cons. - replace (n - (list_length_z lbi + 1)) with (n - 1 - list_length_z lbi) by omega. - simpl in NTH. destruct (zeq n 0). { contradiction. } - replace (Z.pred n) with (n - 1) in NTH by omega. - apply IHlbi; auto. -Qed. - -Lemma n_beyond_body: - forall bb n, - 0 <= n < size bb -> - list_nth_z (header bb) n = None -> - list_nth_z (body bb) (n - list_length_z (header bb)) = None -> - n >= Z.of_nat (length (header bb) + length (body bb)). -Proof. - intros. - assert (0 <= n). { omega. } - generalize (list_nth_z_n_too_big label (header bb) n H2 H0). intros. - generalize (list_nth_z_n_too_big _ (body bb) (n - list_length_z (header bb))). intros. - unfold size in H. - - assert (0 <= n - list_length_z (header bb)). { omega. } - assert (n - list_length_z (header bb) >= list_length_z (body bb)). { apply H4; auto. } - - assert (n >= list_length_z (header bb) + list_length_z (body bb)). { omega. } - rewrite Nat2Z.inj_add. - repeat (rewrite <- list_length_z_nat). assumption. -Qed. - -Lemma exec_arith_instr_dont_move_PC ai rs rs': forall - (BASIC: exec_arith_instr lk ai rs = rs'), - rs PC = rs' PC. -Proof. - destruct ai; simpl; intros; - try (rewrite <- BASIC; rewrite Pregmap.gso; auto; discriminate). - - destruct i; simpl in BASIC. - + unfold compare_long in BASIC; rewrite <- BASIC. - repeat rewrite Pregmap.gso; try discriminate. reflexivity. - + unfold compare_long in BASIC; rewrite <- BASIC. - repeat rewrite Pregmap.gso; try discriminate. reflexivity. - + destruct sz; - try (unfold compare_single in BASIC || unfold compare_float in BASIC); - destruct (rs r1), (rs r2); - try (rewrite <- BASIC; repeat rewrite Pregmap.gso; try (discriminate || reflexivity)). - - destruct i; simpl in BASIC; destruct is; - try (unfold compare_int in BASIC || unfold compare_long in BASIC); - try (rewrite <- BASIC; repeat rewrite Pregmap.gso; try (discriminate || reflexivity)). - - destruct i; simpl in BASIC; destruct sz; - try (unfold compare_single in BASIC || unfold compare_float in BASIC); - destruct (rs r1); - try (rewrite <- BASIC; repeat rewrite Pregmap.gso; try (discriminate || reflexivity)). - - destruct fsz; rewrite <- BASIC; rewrite Pregmap.gso; try (discriminate || reflexivity). - - destruct fsz; rewrite <- BASIC; rewrite Pregmap.gso; try (discriminate || reflexivity). -Qed. - -Lemma exec_basic_dont_move_PC bi rs m rs' m': forall - (BASIC: exec_basic lk ge bi rs m = Next rs' m'), - rs PC = rs' PC. -Proof. - destruct bi; simpl; intros. - - inv BASIC. exploit exec_arith_instr_dont_move_PC; eauto. - - unfold exec_load in BASIC. - destruct Mem.loadv. 2: { discriminate BASIC. } - inv BASIC. rewrite Pregmap.gso; try discriminate; auto. - - unfold exec_store in BASIC. - destruct Mem.storev. 2: { discriminate BASIC. } - inv BASIC; reflexivity. - - destruct Mem.alloc, Mem.store. 2: { discriminate BASIC. } - inv BASIC. repeat (rewrite Pregmap.gso; try discriminate). reflexivity. - - destruct Mem.loadv. 2: { discriminate BASIC. } - destruct rs, Mem.free; try discriminate BASIC. - inv BASIC; rewrite Pregmap.gso; try discriminate; auto. - - inv BASIC; rewrite Pregmap.gso; try discriminate; auto. - - inv BASIC; rewrite Pregmap.gso; try discriminate; auto. - - inv BASIC; rewrite Pregmap.gso; try discriminate; auto. - - inv BASIC; rewrite Pregmap.gso; try discriminate; auto. -Qed. - -Lemma exec_body_dont_move_PC_aux: - forall bis rs m rs' m' - (BODY: exec_body lk ge bis rs m = Next rs' m'), - rs PC = rs' PC. -Proof. - induction bis. - - intros; inv BODY; reflexivity. - - simpl; intros. - remember (exec_basic lk ge a rs m) as bi eqn:BI; destruct bi. 2: { discriminate BODY. } - symmetry in BI; destruct s in BODY, BI; simpl in BODY, BI. - exploit exec_basic_dont_move_PC; eauto; intros AGPC; rewrite AGPC. - eapply IHbis; eauto. -Qed. - -Lemma exec_body_dont_move_PC bb rs m rs' m': forall - (BODY: exec_body lk ge (body bb) rs m = Next rs' m'), - rs PC = rs' PC. -Proof. apply exec_body_dont_move_PC_aux. Qed. - -Lemma find_instr_bblock: - forall n lb pos bb tlb - (FINDBB: find_bblock pos lb = Some bb) - (UNFOLD: unfold lb = OK tlb) - (SIZE: 0 <= n < size bb), - exists i, is_nth_inst bb n i /\ Asm.find_instr (pos+n) tlb = Some i. -Proof. - induction lb as [| b lb IHlb]. - - intros. inversion FINDBB. - - intros pos bb tlb FINDBB UNFOLD SIZE. - destruct pos. - + inv FINDBB. simpl. - exploit unfold_car_cdr; eauto. intros (tbb & tlb' & UNFOLD_BBLOCK & UNFOLD' & UNFOLD_cons). - rewrite UNFOLD in UNFOLD_cons. inversion UNFOLD_cons. - unfold unfold_bblock in UNFOLD_BBLOCK. - destruct (zle (list_length_z (header bb)) 1). 2: { inversion UNFOLD_BBLOCK. } - apply bind_inversion in UNFOLD_BBLOCK. - destruct UNFOLD_BBLOCK as (? & UNFOLD_BODY & H). - inversion H as (UNFOLD_BBLOCK). - remember (list_nth_z (header bb) n) as label_opt eqn:LBL. destruct label_opt. - * (* nth instruction is a label *) - eexists; split. { eapply is_nth_label; eauto. } - inversion UNFOLD_cons. - symmetry in LBL. - rewrite <- app_assoc. - apply list_nth_z_find_label; auto. - * remember (list_nth_z (body bb) (n - list_length_z (header bb))) as bi_opt eqn:BI. - destruct bi_opt. - -- (* nth instruction is a basic instruction *) - exploit list_nth_z_in; eauto. intros INBB. - exploit entire_body_translated; eauto. intros BI'. - destruct BI'. - eexists; split. - ++ eapply is_nth_basic; eauto. - ++ repeat (rewrite <- app_assoc). eapply list_nth_z_find_bi_with_header; eauto. - -- (* nth instruction is the exit instruction *) - generalize n_beyond_body. intros TEMP. - assert (n >= Z.of_nat (Datatypes.length (header bb) - + Datatypes.length (body bb))) as NGE. { auto. } clear TEMP. - remember (exit bb) as exit_opt eqn:EXIT. destruct exit_opt. - ++ rewrite <- app_assoc. rewrite find_instr_past_header; auto. - rewrite <- app_assoc. erewrite find_instr_past_body; eauto. - assert (SIZE' := SIZE). - unfold size in SIZE. rewrite <- EXIT in SIZE. simpl in SIZE. - destruct SIZE as (LOWER & UPPER). - repeat (rewrite Nat2Z.inj_add in UPPER). - repeat (rewrite <- list_length_z_nat in UPPER). repeat (rewrite Nat2Z.inj_add in NGE). - repeat (rewrite <- list_length_z_nat in NGE). simpl in UPPER. - assert (n = list_length_z (header bb) + list_length_z (body bb)). { omega. } - assert (n = size bb - 1). { - unfold size. rewrite <- EXIT. simpl. - repeat (rewrite Nat2Z.inj_add). repeat (rewrite <- list_length_z_nat). simpl. omega. - } - symmetry in EXIT. - eexists; split. - ** eapply is_nth_ctlflow; eauto. - ** simpl. - destruct (zeq (n - list_length_z (header bb) - list_length_z (body bb)) 0). { reflexivity. } - (* absurd *) omega. - ++ (* absurd *) - unfold size in SIZE. rewrite <- EXIT in SIZE. simpl in SIZE. - destruct SIZE as (? & SIZE'). rewrite Nat.add_0_r in SIZE'. omega. - + unfold find_bblock in FINDBB; simpl in FINDBB; fold find_bblock in FINDBB. - inversion UNFOLD as (UNFOLD'). - apply bind_inversion in UNFOLD'. destruct UNFOLD' as (? & (UNFOLD_BBLOCK' & UNFOLD')). - apply bind_inversion in UNFOLD'. destruct UNFOLD' as (? & (UNFOLD' & TLB)). - inversion TLB. - generalize (IHlb _ _ _ FINDBB UNFOLD'). intros IH. - destruct IH as (? & (IH_is_nth & IH_find_instr)); eauto. - eexists; split. - * apply IH_is_nth. - * replace (Z.pos p + n) with (Z.pos p + n - size b + size b) by omega. - eapply find_instr_bblock_tail; try assumption. - replace (Z.pos p + n - size b) with (Z.pos p - size b + n) by omega. - apply IH_find_instr. - + (* absurd *) - generalize (Pos2Z.neg_is_neg p). intros. exploit (find_bblock_neg (b :: lb)); eauto. - rewrite FINDBB. intros CONTRA. inversion CONTRA. -Qed. - -Lemma exec_header_simulation b ofs f bb rs m: forall - (ATPC: rs PC = Vptr b ofs) - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb), - exists s', star Asm.step tge (State rs m) E0 s' - /\ match_internal (list_length_z (header bb)) (State rs m) s'. -Proof. - intros. - exploit internal_functions_unfold; eauto. - intros (tc & FINDtf & TRANStf & _). - assert (BNDhead: list_length_z (header bb) <= 1). { eapply size_header; eauto. } - destruct (header bb) as [|l[|]] eqn: EQhead. - + (* header nil *) - eexists; split. - - eapply star_refl. - - split; eauto. - unfold list_length_z; rewrite !ATPC; simpl. - rewrite Ptrofs.add_zero; auto. - + (* header one *) - assert (Lhead: list_length_z (header bb) = 1). { rewrite EQhead; unfold list_length_z; simpl. auto. } - exploit (find_instr_bblock 0); eauto. - { generalize (bblock_size_pos bb). omega. } - intros (i & NTH & FIND_INSTR). - inv NTH. - * rewrite EQhead in H; simpl in H. inv H. - cutrewrite (Ptrofs.unsigned ofs + 0 = Ptrofs.unsigned ofs) in FIND_INSTR; try omega. - eexists. split. - - eapply star_one. - eapply Asm.exec_step_internal; eauto. - simpl; eauto. - - unfold list_length_z; simpl. split; eauto. - intros r; destruct r; simpl; congruence || auto. - * (* absurd case *) - erewrite list_nth_z_neg in * |-; [ congruence | rewrite Lhead; omega]. - * (* absurd case *) - rewrite bblock_size_aux, Lhead in *. generalize (bblock_size_aux_pos bb). omega. - + (* absurd case *) - unfold list_length_z in BNDhead. simpl in *. - generalize (list_length_z_aux_increase _ l1 2); omega. -Qed. - -Lemma eval_addressing_preserved a rs1 rs2: - (forall r : preg, r <> PC -> rs1 r = rs2 r) -> - eval_addressing lk a rs1 = Asm.eval_addressing tge a rs2. -Proof. - intros EQ. - destruct a; simpl; try (rewrite !EQ; congruence). auto. -Qed. - -Ltac next_stuck_cong := try (unfold Next, Stuck in *; congruence). - -Ltac inv_ok_eq := - repeat match goal with - | [EQ: OK ?x = OK ?y |- _ ] - => inversion EQ; clear EQ; subst - end. - -Ltac reg_rwrt := - match goal with - | [e: DR _ = DR _ |- _ ] - => rewrite e in * - end. - -Ltac destruct_reg_inv := - repeat match goal with - | [ H : match ?reg with _ => _ end = _ |- _ ] - => simpl in *; destruct reg; try congruence; try inv_ok_eq; try reg_rwrt - end. - -Ltac destruct_ireg_inv := - repeat match goal with - | [ H : match ?reg with _ => _ end = _ |- _ ] - => destruct reg as [[r|]|]; try congruence; try inv_ok_eq; subst - end. - -Ltac destruct_reg_size := - simpl in *; - match goal with - | [ |- context [ match ?reg with _ => _ end ] ] - => destruct reg; try congruence - end. - -Ltac find_rwrt_ag := - simpl in *; - match goal with - | [ AG: forall r, r <> ?PC -> _ r = _ r |- _ ] - => repeat rewrite <- AG; try congruence - end. - -Ltac inv_matchi := - match goal with - | [ MATCHI : match_internal _ _ _ |- _ ] - => inversion MATCHI; subst; find_rwrt_ag - end. - -Ltac destruct_ir0_reg := - match goal with - | [ |- context [ ir0 _ _ ?r ] ] - => unfold ir0 in *; destruct r; find_rwrt_ag; eauto - end. - -Ltac pc_not_sp := - match goal with - | [ |- ?PC <> ?SP ] - => destruct (PregEq.eq SP PC); repeat congruence; discriminate - end. - -Ltac update_x_access_x := - subst; rewrite !Pregmap.gss; auto. - -Ltac update_x_access_r := - rewrite !Pregmap.gso; auto. - -Lemma nextinstr_agree_but_pc rs1 rs2: forall - (AG: forall r, r <> PC -> rs1 r = rs2 r), - forall r, r <> PC -> rs1 r = Asm.nextinstr rs2 r. -Proof. - intros; unfold Asm.nextinstr in *; rewrite Pregmap.gso in *; eauto. -Qed. - -Lemma ptrofs_nextinstr_agree rs1 rs2 n: forall - (BOUNDED : 0 <= n <= Ptrofs.max_unsigned) - (AGPC : Val.offset_ptr (rs1 PC) (Ptrofs.repr n) = rs2 PC), - Val.offset_ptr (rs1 PC) (Ptrofs.repr (n + 1)) = Asm.nextinstr rs2 PC. -Proof. - intros; unfold Asm.nextinstr; rewrite Pregmap.gss. - rewrite <- Ptrofs.unsigned_one; rewrite <- (Ptrofs.unsigned_repr n); eauto; - rewrite <- Ptrofs.add_unsigned; rewrite <- Val.offset_ptr_assoc; rewrite AGPC; eauto. -Qed. - -Lemma load_preserved n rs1 m1 rs1' m1' rs2 m2 rd chk f a: forall - (BOUNDED: 0 <= n <= Ptrofs.max_unsigned) - (MATCHI: match_internal n (State rs1 m1) (State rs2 m2)) - (HLOAD: exec_load lk chk f a rd rs1 m1 = Next rs1' m1'), - exists (rs2' : regset) (m2' : mem), Asm.exec_load tge chk f a rd rs2 m2 = Next rs2' m2' - /\ match_internal (n + 1) (State rs1' m1') (State rs2' m2'). -Proof. - intros. - unfold exec_load, Asm.exec_load in *. - inversion MATCHI as [n0 r1 mx1 r2 mx2 EQM EQR EQPC]; subst. - rewrite <- (eval_addressing_preserved a rs1 rs2); auto. - destruct (Mem.loadv _ _ _). - + inversion HLOAD; auto. repeat (econstructor; eauto). - * eapply nextinstr_agree_but_pc; intros. - destruct (PregEq.eq r rd); try update_x_access_x; try update_x_access_r. - * eapply ptrofs_nextinstr_agree; eauto. - + next_stuck_cong. -Qed. - -Lemma store_preserved n rs1 m1 rs1' m1' rs2 m2 rd chk a: forall - (BOUNDED: 0 <= n <= Ptrofs.max_unsigned) - (MATCHI: match_internal n (State rs1 m1) (State rs2 m2)) - (HSTORE: exec_store lk chk a rd rs1 m1 = Next rs1' m1'), - exists (rs2' : regset) (m2' : mem), Asm.exec_store tge chk a rd rs2 m2 = Next rs2' m2' - /\ match_internal (n + 1) (State rs1' m1') (State rs2' m2'). -Proof. - intros. - unfold exec_store, Asm.exec_store in *. - inversion MATCHI as [n0 r1 mx1 r2 mx2 EQM EQR EQPC]; subst. - rewrite <- (eval_addressing_preserved a rs1 rs2); auto. - destruct (Mem.storev _ _ _ _). - + inversion HSTORE; auto. repeat (econstructor; eauto). - * eapply nextinstr_agree_but_pc; intros. - subst. apply EQR. auto. - * eapply ptrofs_nextinstr_agree; subst; eauto. - + next_stuck_cong. -Qed. - -Lemma next_inst_preserved n rs1 m1 rs1' m1' rs2 m2 (x: dreg) v: forall - (BOUNDED: 0 <= n <= Ptrofs.max_unsigned) - (MATCHI: match_internal n (State rs1 m1) (State rs2 m2)) - (NEXTI: Next rs1 # x <- v m1 = Next rs1' m1'), - exists (rs2' : regset) (m2' : mem), - Next (Asm.nextinstr rs2 # x <- v) m2 = Next rs2' m2' - /\ match_internal (n + 1) (State rs1' m1') (State rs2' m2'). -Proof. - intros. - inversion MATCHI as [n0 r1 mx1 r2 mx2 EQM EQR EQPC]; subst. - inversion NEXTI. repeat (econstructor; eauto). - * eapply nextinstr_agree_but_pc; intros. - destruct (PregEq.eq r x); try update_x_access_x; try update_x_access_r. - * eapply ptrofs_nextinstr_agree; eauto. -Qed. - -Lemma match_internal_nextinstr_switch: - forall n s rs2 m2 r v, - r <> PC -> - match_internal n s (State ((Asm.nextinstr rs2)#r <- v) m2) -> - match_internal n s (State (Asm.nextinstr (rs2#r <- v)) m2). -Proof. - unfold Asm.nextinstr; intros n s rs2 m2 r v NOTPC1 MI. - inversion MI; subst; constructor; auto. - - eapply nextinstr_agree_but_pc; intros. - rewrite AG; try congruence. - destruct (PregEq.eq r r0); try update_x_access_x; try update_x_access_r. - - rewrite !Pregmap.gss, !Pregmap.gso; try congruence. - rewrite AGPC. - rewrite Pregmap.gso, Pregmap.gss; try congruence. -Qed. - -Lemma match_internal_nextinstr_set_parallel: - forall n rs1 m1 rs2 m2 r v1 v2, - r <> PC -> - match_internal n (State rs1 m1) (State (Asm.nextinstr rs2) m2) -> - v1 = v2 -> - match_internal n (State (rs1#r <- v1) m1) (State (Asm.nextinstr (rs2#r <- v2)) m2). -Proof. - intros; subst; eapply match_internal_nextinstr_switch; eauto. - intros; eapply match_internal_set_parallel; eauto. -Qed. - -Lemma exec_basic_simulation: - forall tf n rs1 m1 rs1' m1' rs2 m2 bi tbi - (BOUNDED: 0 <= n <= Ptrofs.max_unsigned) - (BASIC: exec_basic lk ge bi rs1 m1 = Next rs1' m1') - (MATCHI: match_internal n (State rs1 m1) (State rs2 m2)) - (TRANSBI: basic_to_instruction bi = OK tbi), - exists rs2' m2', Asm.exec_instr tge tf tbi - rs2 m2 = Next rs2' m2' - /\ match_internal (n + 1) (State rs1' m1') (State rs2' m2'). -Proof. - intros. - destruct bi. - { (* PArith *) - simpl in *; destruct i. - 1,2,3,4,5,6: (* PArithP, PArithPP, PArithPPP, PArithRR0R, PArithRR0, PArithARRRR0 *) - destruct i; - try (destruct sumbool_rec; try congruence); - try (monadInv TRANSBI); - try (destruct_reg_inv); - try (inv_matchi); - try (exploit next_inst_preserved; eauto); - try (repeat destruct_reg_size); - try (destruct_ir0_reg). - { (* PArithComparisonPP *) - destruct i; - try (monadInv TRANSBI); - try (inv_matchi); - try (destruct_reg_inv); - simpl in *. - 1,2: (* compare_long *) - inversion BASIC; clear BASIC; subst; - eexists; eexists; split; eauto; - unfold compare_long; - repeat (eapply match_internal_nextinstr_set_parallel; [ congruence | idtac | try (rewrite !AG; congruence)]); - try (econstructor; eauto); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). - - destruct sz. - - (* compare_single *) - unfold compare_single in BASIC. - destruct (rs1 x), (rs1 x0); - inversion BASIC; - eexists; eexists; split; eauto; - repeat (eapply match_internal_nextinstr_set_parallel; [ congruence | idtac | try (rewrite !AG; congruence)]); - try (econstructor; eauto); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). - - (* compare_float *) - unfold compare_float in BASIC. - destruct (rs1 x), (rs1 x0); - inversion BASIC; - eexists; eexists; split; eauto; - repeat (eapply match_internal_nextinstr_set_parallel; [ congruence | idtac | try (rewrite !AG; congruence)]); - try (econstructor; eauto); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). } - 1,2: (* PArithComparisonR0R, PArithComparisonP *) - destruct i; - try (monadInv TRANSBI); - try (inv_matchi); - try (destruct_reg_inv); - try (destruct_reg_size); - simpl in *; - inversion BASIC; clear BASIC; subst; - eexists; eexists; split; eauto; - unfold compare_long, compare_int, compare_float, compare_single; - try (destruct_reg_size); - repeat (eapply match_internal_nextinstr_set_parallel; [ congruence | idtac | try (rewrite !AG; congruence)]); - try (econstructor; eauto); - try (destruct_ir0_reg); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). - { (* Pcset *) - try (monadInv TRANSBI); - try (inv_matchi). - try (exploit next_inst_preserved; eauto); - try (simpl in *; intros; - unfold if_opt_bool_val in *; unfold eval_testcond in *; - rewrite <- !AG; try congruence; eauto). } - { (* Pfmovi *) - try (monadInv TRANSBI); - try (inv_matchi); - try (destruct_reg_size); - try (destruct_ir0_reg); - try (exploit next_inst_preserved; eauto). } - { (* Pcsel *) - try (destruct_reg_inv); - try (monadInv TRANSBI); - try (destruct_reg_inv); - try (inv_matchi); - try (exploit next_inst_preserved; eauto); - simpl in *; intros; - unfold if_opt_bool_val in *; unfold eval_testcond in *; - rewrite <- !AG; try congruence; eauto. } - { (* Pfnmul *) - try (monadInv TRANSBI); - try (inv_matchi); - try (destruct_reg_size); - try (exploit next_inst_preserved; eauto); - try (find_rwrt_ag). } } - { (* PLoad *) - destruct ld; monadInv TRANSBI; try destruct_ireg_inv; exploit load_preserved; eauto; - intros; simpl in *; destruct sz; eauto. } - { (* PStore *) - destruct st; monadInv TRANSBI; try destruct_ireg_inv; exploit store_preserved; eauto; - simpl in *; inv_matchi; find_rwrt_ag. } - { (* Pallocframe *) - monadInv TRANSBI; - inv_matchi; try pc_not_sp; - destruct sz eqn:EQSZ; - destruct Mem.alloc eqn:EQALLOC; - destruct Mem.store eqn:EQSTORE; inversion BASIC; try pc_not_sp; - eexists; eexists; split; eauto; - repeat (eapply match_internal_nextinstr_set_parallel; [ try (pc_not_sp; congruence) | idtac | try (reflexivity)]); - try (econstructor; eauto); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). } - { (* Pfreeframe *) - monadInv TRANSBI; - inv_matchi; try pc_not_sp; - destruct sz eqn:EQSZ; - destruct Mem.loadv eqn:EQLOAD; - destruct (rs1 SP) eqn:EQRS1SP; - try (destruct Mem.free eqn:EQFREE); - inversion BASIC; try pc_not_sp; - eexists; eexists; split; eauto; - repeat (eapply match_internal_nextinstr_set_parallel; [ try (pc_not_sp; congruence) | idtac | try (reflexivity)]); - try (econstructor; eauto); - try (eapply nextinstr_agree_but_pc; eauto); - try (eapply ptrofs_nextinstr_agree; eauto). } - 1,2,3,4: (* Ploadsymbol, Pcvtsw2x, Pcvtuw2x, Pcvtx2w *) - try (monadInv TRANSBI); - try (inv_matchi); - try (exploit next_inst_preserved; eauto); - rewrite symbol_addresses_preserved; eauto; - try (find_rwrt_ag). -Qed. - -Lemma find_basic_instructions b ofs f bb tc: forall - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (UNFOLD: unfold (fn_blocks f) = OK tc), - forall n, - (n < length (body bb))%nat -> - exists (i : Asm.instruction) (bi : basic), - list_nth_z (body bb) (Z.of_nat n) = Some bi - /\ basic_to_instruction bi = OK i - /\ Asm.find_instr (Ptrofs.unsigned ofs - + (list_length_z (header bb)) - + Z.of_nat n) tc - = Some i. -Proof. - intros until n; intros NLT. - exploit internal_functions_unfold; eauto. - intros (tc' & FINDtf & TRANStf & _). - assert (tc' = tc) by congruence; subst. - exploit (find_instr_bblock (list_length_z (header bb) + Z.of_nat n)); eauto. - { unfold size; split. - - rewrite list_length_z_nat; omega. - - repeat (rewrite list_length_z_nat). repeat (rewrite Nat2Z.inj_add). omega. } - intros (i & NTH & FIND_INSTR). - exists i; intros. - inv NTH. - - (* absurd *) apply list_nth_z_range in H; omega. - - exists bi; - rewrite Z.add_simpl_l in H; - rewrite Z.add_assoc in FIND_INSTR; - intuition. - - (* absurd *) rewrite bblock_size_aux in H0; - rewrite H in H0; simpl in H0; repeat rewrite list_length_z_nat in H0; omega. -Qed. - -(** "is_tail" auxiliary lemma about is_tail to move in IterList ou Coqlib (déplacer aussi Machblockgenproof.is_tail_app_inv) ? *) - -Lemma is_tail_app_right A (l2 l1: list A): is_tail l1 (l2++l1). -Proof. - intros; eapply Machblockgenproof.is_tail_app_inv; econstructor. -Qed. - -Lemma is_tail_app_def A (l1 l2: list A): - is_tail l1 l2 -> exists l3, l2 = l3 ++ l1. -Proof. - induction 1 as [|x l1 l2]; simpl. - - exists nil; simpl; auto. - - destruct IHis_tail as (l3 & EQ); rewrite EQ. - exists (x::l3); simpl; auto. -Qed. - -Lemma is_tail_bound A (l1 l2: list A): - is_tail l1 l2 -> (length l1 <= length l2)%nat. -Proof. - intros H; destruct (is_tail_app_def _ _ _ H) as (l3 & EQ). - subst; rewrite app_length. - omega. -Qed. - -Lemma is_tail_list_nth_z A (l1 l2: list A): - is_tail l1 l2 -> list_nth_z l2 ((list_length_z l2) - (list_length_z l1)) = list_nth_z l1 0. -Proof. - induction 1; simpl. - - replace (list_length_z c - list_length_z c) with 0; omega || auto. - - assert (X: list_length_z (i :: c2) > list_length_z c1). - { rewrite !list_length_z_nat, <- Nat2Z.inj_gt. - exploit is_tail_bound; simpl; eauto. - omega. } - destruct (zeq (list_length_z (i :: c2) - list_length_z c1) 0) as [Y|Y]; try omega. - replace (Z.pred (list_length_z (i :: c2) - list_length_z c1)) with (list_length_z c2 - list_length_z c1); auto. - rewrite list_length_z_cons. - omega. -Qed. - -(* TODO: remplacer find_basic_instructions directement par ce lemme ? *) -Lemma find_basic_instructions_alt b ofs f bb tc n: forall - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (UNFOLD: unfold (fn_blocks f) = OK tc) - (BOUND: 0 <= n < list_length_z (body bb)), - exists (i : Asm.instruction) (bi : basic), - list_nth_z (body bb) n = Some bi - /\ basic_to_instruction bi = OK i - /\ Asm.find_instr (Ptrofs.unsigned ofs - + (list_length_z (header bb)) - + n) tc - = Some i. -Proof. - intros; assert ((Z.to_nat n) < length (body bb))%nat. - { rewrite Nat2Z.inj_lt, <- list_length_z_nat, Z2Nat.id; try omega. } - exploit find_basic_instructions; eauto. - rewrite Z2Nat.id; try omega. intros (i & bi & X). - eexists; eexists; intuition eauto. -Qed. - -Lemma header_body_tail_bound: forall (a: basic) (li: list basic) bb ofs - (BOUNDBB : Ptrofs.unsigned ofs + size bb <= Ptrofs.max_unsigned) - (BDYLENPOS : 0 <= list_length_z (body bb) - list_length_z (a :: li) < - list_length_z (body bb)), -0 <= list_length_z (header bb) + list_length_z (body bb) - list_length_z (a :: li) <= -Ptrofs.max_unsigned. -Proof. - intros. - assert (HBBPOS: list_length_z (header bb) >= 0) by eapply list_length_z_pos. - assert (HBBSIZE: list_length_z (header bb) < size bb) by eapply header_size_lt_block_size. - assert (OFSBOUND: 0 <= Ptrofs.unsigned ofs <= Ptrofs.max_unsigned) by eapply Ptrofs.unsigned_range_2. - assert (BBSIZE: size bb <= Ptrofs.max_unsigned) by omega. - unfold size in BBSIZE. - rewrite !Nat2Z.inj_add in BBSIZE. - rewrite <- !list_length_z_nat in BBSIZE. - omega. -Qed. - -(* A more general version of the exec_body_simulation_plus lemma below. - This generalization is necessary for the induction proof inside the body. -*) -Lemma exec_body_simulation_plus_gen li: forall b ofs f bb rs m s2 rs' m' - (BLI: is_tail li (body bb)) - (ATPC: rs PC = Vptr b ofs) - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (NEMPTY_BODY: li <> nil) - (MATCHI: match_internal ((list_length_z (header bb)) + (list_length_z (body bb)) - (list_length_z li)) (State rs m) s2) - (BODY: exec_body lk ge li rs m = Next rs' m'), - exists s2', plus Asm.step tge s2 E0 s2' - /\ match_internal (size bb - (Z.of_nat (length_opt (exit bb)))) (State rs' m') s2'. -Proof. - induction li as [|a li]; simpl; try congruence. - intros. - assert (BDYLENPOS: 0 <= (list_length_z (body bb) - list_length_z (a::li)) < list_length_z (body bb)). { - assert (Z.of_nat O < list_length_z (a::li) <= list_length_z (body bb)); try omega. - rewrite !list_length_z_nat; split. - - rewrite <- Nat2Z.inj_lt. simpl. omega. - - rewrite <- Nat2Z.inj_le; eapply is_tail_bound; eauto. - } - exploit internal_functions_unfold; eauto. - intros (tc & FINDtf & TRANStf & _). - exploit find_basic_instructions_alt; eauto. - intros (tbi & (bi & (NTHBI & TRANSBI & FIND_INSTR))). - exploit is_tail_list_nth_z; eauto. - rewrite NTHBI; simpl. - intros X; inversion X; subst; clear X NTHBI. - destruct (exec_basic _ _ _ _ _) eqn:EXEC_BASIC; next_stuck_cong. - destruct s as (rs1 & m1); simpl in *. - destruct s2 as (rs2 & m2); simpl in *. - assert (BOUNDBBMAX: Ptrofs.unsigned ofs + size bb <= Ptrofs.max_unsigned) - by (eapply size_of_blocks_bounds; eauto). - exploit header_body_tail_bound; eauto. intros BDYTAIL. - exploit exec_basic_simulation; eauto. - intros (rs_next' & m_next' & EXEC_INSTR & MI_NEXT). - exploit exec_basic_dont_move_PC; eauto. intros AGPC. - inversion MI_NEXT as [A B C D E M_NEXT_AGREE RS_NEXT_AGREE ATPC_NEXT PC_OFS_NEXT RS RS']. - subst A. subst B. subst C. subst D. subst E. - rewrite ATPC in AGPC. symmetry in AGPC, ATPC_NEXT. - - inv MATCHI. symmetry in AGPC0. - rewrite ATPC in AGPC0. - unfold Val.offset_ptr in AGPC0. - - simpl in FIND_INSTR. - (* Execute internal step. *) - exploit (Asm.exec_step_internal tge b); eauto. - { - rewrite Ptrofs.add_unsigned. - repeat (rewrite Ptrofs.unsigned_repr); try omega. - 2: { - assert (BOUNDOFS: 0 <= Ptrofs.unsigned ofs <= Ptrofs.max_unsigned) by eapply Ptrofs.unsigned_range_2. - assert (list_length_z (body bb) <= size bb) by eapply body_size_le_block_size. - assert (list_length_z (header bb) <= 1). { eapply size_header; eauto. } - omega. } - try rewrite list_length_z_nat; try split; - simpl; rewrite <- !list_length_z_nat; - replace (Ptrofs.unsigned ofs + (list_length_z (header bb) + list_length_z (body bb) - - list_length_z (a :: li))) with (Ptrofs.unsigned ofs + list_length_z (header bb) + - (list_length_z (body bb) - list_length_z (a :: li))) by omega; - try assumption; try omega. } - - (* This is our STEP hypothesis. *) - intros STEP_NEXT. - destruct li as [|a' li]; simpl in *. - - (* case of a single instruction in li: this our base case in the induction *) - inversion BODY; subst. - eexists; split. - + apply plus_one. eauto. - + constructor; auto. - rewrite ATPC_NEXT. - apply f_equal. - apply f_equal. - rewrite bblock_size_aux, list_length_z_cons; simpl. - omega. - - exploit (IHli b ofs f bb rs1 m_next' (State rs_next' m_next')); congruence || eauto. - + exploit is_tail_app_def; eauto. - intros (l3 & EQ); rewrite EQ. - exploit (is_tail_app_right _ (l3 ++ a::nil)). - rewrite <- app_assoc; simpl; eauto. - + constructor; auto. - rewrite ATPC_NEXT. - apply f_equal. - apply f_equal. - rewrite! list_length_z_cons; simpl. - omega. - + intros (s2' & LAST_STEPS & LAST_MATCHS). - eexists. split; eauto. - eapply plus_left'; eauto. -Qed. - -Lemma exec_body_simulation_plus b ofs f bb rs m s2 rs' m': forall - (ATPC: rs PC = Vptr b ofs) - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (NEMPTY_BODY: body bb <> nil) - (MATCHI: match_internal (list_length_z (header bb)) (State rs m) s2) - (BODY: exec_body lk ge (body bb) rs m = Next rs' m'), - exists s2', plus Asm.step tge s2 E0 s2' - /\ match_internal (size bb - (Z.of_nat (length_opt (exit bb)))) (State rs' m') s2'. -Proof. - intros. - exploit exec_body_simulation_plus_gen; eauto. - - constructor. - - replace (list_length_z (header bb) + list_length_z (body bb) - list_length_z (body bb)) with (list_length_z (header bb)); auto. - omega. -Qed. - -Lemma exec_body_simulation_star b ofs f bb rs m s2 rs' m': forall - (ATPC: rs PC = Vptr b ofs) - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (MATCHI: match_internal (list_length_z (header bb)) (State rs m) s2) - (BODY: exec_body lk ge (body bb) rs m = Next rs' m'), - exists s2', star Asm.step tge s2 E0 s2' - /\ match_internal (size bb - (Z.of_nat (length_opt (exit bb)))) (State rs' m') s2'. -Proof. - intros. - destruct (body bb) eqn: Hbb. - - simpl in BODY. inv BODY. - eexists. split. - eapply star_refl; eauto. - assert (EQ: (size bb - Z.of_nat (length_opt (exit bb))) = list_length_z (header bb)). - { rewrite bblock_size_aux. rewrite Hbb; unfold list_length_z; simpl. omega. } - rewrite EQ; eauto. - - exploit exec_body_simulation_plus; congruence || eauto. - { rewrite Hbb; eauto. } - intros (s2' & PLUS & MATCHI'). - eexists; split; eauto. - eapply plus_star; eauto. -Qed. - -Lemma list_nth_z_range_exceeded A (l : list A) n: - n >= list_length_z l -> - list_nth_z l n = None. -Proof. - intros N. - remember (list_nth_z l n) as opt eqn:H. symmetry in H. - destruct opt; auto. - exploit list_nth_z_range; eauto. omega. -Qed. - -Lemma label_in_header_list lbl a: - is_label lbl a = true -> list_length_z (header a) <= 1 -> header a = lbl :: nil. -Proof. - intros. - eapply is_label_correct_true in H. - destruct (header a). - - eapply in_nil in H. contradiction. - - rewrite list_length_z_cons in H0. - assert (list_length_z l0 >= 0) by eapply list_length_z_pos. - assert (list_length_z l0 = 0) by omega. - rewrite list_length_z_nat in H2. - assert (Datatypes.length l0 = 0%nat) by omega. - eapply length_zero_iff_nil in H3. subst. - unfold In in H. destruct H. - + subst; eauto. - + destruct H. -Qed. - -Lemma no_label_in_basic_inst: forall a lbl x, - basic_to_instruction a = OK x -> Asm.is_label lbl x = false. -Proof. - intros. - destruct a; simpl in *; - repeat destruct i; simpl in *; - try (try destruct_reg_inv; monadInv H; simpl in *; reflexivity). -Qed. - -Lemma label_pos_body bdy: forall c1 c2 z ex lbl - (HUNF : unfold_body bdy = OK c2), - Asm.label_pos lbl (z + Z.of_nat ((Datatypes.length bdy) + length_opt ex)) c1 = Asm.label_pos lbl (z) ((c2 ++ unfold_exit ex) ++ c1). -Proof. - induction bdy. - - intros. inversion HUNF. simpl in *. - destruct ex eqn:EQEX. - + simpl in *. unfold Asm.is_label. destruct c; simpl; try congruence. - destruct i; simpl; try congruence. - + simpl in *. ring_simplify (z + 0). auto. - - intros. inversion HUNF; clear HUNF. monadInv H0. simpl in *. - erewrite no_label_in_basic_inst; eauto. rewrite <- IHbdy; eauto. - erewrite Zpos_P_of_succ_nat. - apply f_equal2; auto. omega. -Qed. - -Lemma asm_label_pos_header: forall z a x0 x1 lbl - (HUNF: unfold_body (body a) = OK x1), - Asm.label_pos lbl (z + size a) x0 = - Asm.label_pos lbl (z + list_length_z (header a)) ((x1 ++ unfold_exit (exit a)) ++ x0). -Proof. - intros. - unfold size. - rewrite <- plus_assoc. rewrite Nat2Z.inj_add. - rewrite list_length_z_nat. - replace (z + (Z.of_nat (Datatypes.length (header a)) + Z.of_nat (Datatypes.length (body a) + length_opt (exit a)))) with (z + Z.of_nat (Datatypes.length (header a)) + Z.of_nat (Datatypes.length (body a) + length_opt (exit a))) by omega. - eapply (label_pos_body (body a) x0 x1 (z + Z.of_nat (Datatypes.length (header a))) (exit a) lbl). auto. -Qed. - -Lemma header_size_cons_nil: forall (l0: label) (l1: list label) - (HSIZE: list_length_z (l0 :: l1) <= 1), - l1 = nil. -Proof. - intros. - destruct l1; try congruence. rewrite !list_length_z_cons in HSIZE. - assert (list_length_z l1 >= 0) by eapply list_length_z_pos. - assert (list_length_z l1 + 1 + 1 >= 2) by omega. - assert (2 <= 1) by omega. contradiction H1. omega. -Qed. - -Lemma label_pos_preserved_gen bbs: forall lbl c z - (HUNF: unfold bbs = OK c), - label_pos lbl z bbs = Asm.label_pos lbl z c. -Proof. - induction bbs. - - intros. simpl in *. inversion HUNF. simpl. reflexivity. - - intros. simpl in *. monadInv HUNF. unfold unfold_bblock in EQ. - destruct (zle _ _); try congruence. monadInv EQ. - destruct (is_label _ _) eqn:EQLBL. - + erewrite label_in_header_list; eauto. - simpl in *. destruct (peq lbl lbl); try congruence. - + erewrite IHbbs; eauto. - rewrite (asm_label_pos_header z a x0 x1 lbl); auto. - unfold is_label in *. - destruct (header a). - * replace (z + list_length_z (@nil label)) with (z); eauto. - unfold list_length_z. simpl. omega. - * eapply header_size_cons_nil in l as HL1. - subst. simpl in *. destruct (in_dec _ _); try congruence. - simpl in *. - destruct (peq _ _); try intuition congruence. -Qed. - -Lemma label_pos_preserved f lbl z tf: forall - (FINDF: transf_function f = OK tf), - label_pos lbl z (fn_blocks f) = Asm.label_pos lbl z (Asm.fn_code tf). -Proof. - intros. - eapply label_pos_preserved_gen. - unfold transf_function in FINDF. monadInv FINDF. - destruct zlt; try congruence. inversion EQ0. eauto. -Qed. - -Lemma goto_label_preserved bb rs1 m1 rs1' m1' rs2 m2 lbl f tf v: forall - (FINDF: transf_function f = OK tf) - (BOUNDED: size bb <= Ptrofs.max_unsigned) - (MATCHI: match_internal (size bb - 1) (State rs1 m1) (State rs2 m2)) - (HGOTO: goto_label f lbl (incrPC v rs1) m1 = Next rs1' m1'), - exists (rs2' : regset) (m2' : mem), Asm.goto_label tf lbl rs2 m2 = Next rs2' m2' - /\ match_states (State rs1' m1') (State rs2' m2'). -Proof. - intros. - unfold goto_label, Asm.goto_label in *. - rewrite <- (label_pos_preserved f); auto. - inversion MATCHI as [n0 r1 mx1 r2 mx2 EQM EQR EQPC]; subst. - destruct label_pos; next_stuck_cong. - destruct (incrPC v rs1 PC) eqn:INCRPC; next_stuck_cong. - inversion HGOTO; auto. repeat (econstructor; eauto). - rewrite <- EQPC. - unfold incrPC in *. - rewrite !Pregmap.gss in *. - destruct (rs1 PC) eqn:EQRS1; simpl in *; try congruence. - replace (rs2 # PC <- (Vptr b0 (Ptrofs.repr z))) with ((rs1 # PC <- (Vptr b0 (Ptrofs.add i0 v))) # PC <- (Vptr b (Ptrofs.repr z))); auto. - eapply functional_extensionality. intros. - destruct (PregEq.eq x PC); subst. - rewrite !Pregmap.gss. congruence. - rewrite !Pregmap.gso; auto. -Qed. - -Lemma next_inst_incr_pc_preserved bb rs1 m1 rs1' m1' rs2 m2 f tf: forall - (FINDF: transf_function f = OK tf) - (BOUNDED: size bb <= Ptrofs.max_unsigned) - (MATCHI: match_internal (size bb - 1) (State rs1 m1) (State rs2 m2)) - (NEXT: Next (incrPC (Ptrofs.repr (size bb)) rs1) m2 = Next rs1' m1'), - exists (rs2' : regset) (m2' : mem), - Next (Asm.nextinstr rs2) m2 = Next rs2' m2' - /\ match_states (State rs1' m1') (State rs2' m2'). -Proof. - intros; simpl in *; unfold incrPC in NEXT; - inv_matchi; - assert (size bb >= 1) by eapply bblock_size_pos; - assert (0 <= size bb - 1 <= Ptrofs.max_unsigned) by omega; - inversion NEXT; subst; - eexists; eexists; split; eauto. - assert (rs1 # PC <- (Val.offset_ptr (rs1 PC) (Ptrofs.repr (size bb))) = Asm.nextinstr rs2). { - unfold Pregmap.set. apply functional_extensionality. - intros x. destruct (PregEq.eq x PC). - -- unfold Asm.nextinstr. rewrite <- AGPC. - rewrite Val.offset_ptr_assoc. rewrite Ptrofs.add_unsigned. - rewrite (Ptrofs.unsigned_repr (size bb - 1)); try omega. - rewrite Ptrofs.unsigned_one. - replace (size bb - 1 + 1) with (size bb) by omega. - rewrite e. rewrite Pregmap.gss. - reflexivity. - -- eapply nextinstr_agree_but_pc; eauto. } - rewrite H1. econstructor. -Qed. - -Lemma pc_reg_overwrite: forall (r: ireg) rs1 m1 rs2 m2 bb - (MATCHI: match_internal (size bb - 1) (State rs1 m1) (State rs2 m2)), - rs2 # PC <- (rs2 r) = - (rs1 # PC <- (Val.offset_ptr (rs1 PC) (Ptrofs.repr (size bb)))) # PC <- - (rs1 r). -Proof. - intros. - unfold Pregmap.set; apply functional_extensionality. - intros x; destruct (PregEq.eq x PC) as [X | X]; try discriminate; inv_matchi. -Qed. - -Lemma exec_cfi_simulation: - forall bb f tf rs1 m1 rs1' m1' rs2 m2 cfi - (SIZE: size bb <= Ptrofs.max_unsigned) - (FINDF: transf_function f = OK tf) - (* Warning: Asmblock's PC is assumed to be already pointing on the next instruction ! *) - (CFI: exec_cfi ge f cfi (incrPC (Ptrofs.repr (size bb)) rs1) m1 = Next rs1' m1') - (MATCHI: match_internal (size bb - 1) (State rs1 m1) (State rs2 m2)), - exists rs2' m2', Asm.exec_instr tge tf (cf_instruction_to_instruction cfi) - rs2 m2 = Next rs2' m2' - /\ match_states (State rs1' m1') (State rs2' m2'). -Proof. - intros. - assert (BBPOS: size bb >= 1) by eapply bblock_size_pos. - destruct cfi; inv CFI; simpl. - - (* Pb *) - exploit goto_label_preserved; eauto. - - (* Pbc *) - inv_matchi. - unfold eval_testcond in *. destruct c; - erewrite !incrPC_agree_but_pc in H0; try rewrite <- !AG; try congruence. - all: - destruct_reg_size; - try destruct b eqn:EQB. - 1,4,7,10,13,16,19,22,25,28,31,34: - exploit goto_label_preserved; eauto. - 1,3,5,7,9,11,13,15,17,19,21,23: - exploit next_inst_incr_pc_preserved; eauto. - all: repeat (econstructor; eauto). - - (* Pbl *) - eexists; eexists; split; eauto. - assert ( ((incrPC (Ptrofs.repr (size bb)) rs1) # X30 <- (incrPC (Ptrofs.repr (size bb)) rs1 PC)) - # PC <- (Genv.symbol_address ge id Ptrofs.zero) - = (rs2 # X30 <- (Val.offset_ptr (rs2 PC) Ptrofs.one)) - # PC <- (Genv.symbol_address tge id Ptrofs.zero) - ) as EQRS. { - unfold incrPC. unfold Pregmap.set. simpl. apply functional_extensionality. - intros x. destruct (PregEq.eq x PC). - * rewrite symbol_addresses_preserved. reflexivity. - * destruct (PregEq.eq x X30). - -- inv MATCHI. rewrite <- AGPC. rewrite Val.offset_ptr_assoc. - unfold Ptrofs.add, Ptrofs.one. repeat (rewrite Ptrofs.unsigned_repr); try omega. - replace (size bb - 1 + 1) with (size bb) by omega. reflexivity. - -- inv MATCHI; rewrite AG; try assumption; reflexivity. - } rewrite EQRS; inv MATCHI; reflexivity. - - (* Pbs *) - eexists; eexists; split; eauto. - assert ( (incrPC (Ptrofs.repr (size bb)) rs1) # PC <- - (Genv.symbol_address ge id Ptrofs.zero) - = rs2 # PC <- (Genv.symbol_address tge id Ptrofs.zero) - ) as EQRS. { - unfold incrPC, Pregmap.set. rewrite symbol_addresses_preserved. inv MATCHI. - apply functional_extensionality. intros x. destruct (PregEq.eq x PC); auto. - } rewrite EQRS; inv MATCHI; reflexivity. - - (* Pblr *) - eexists; eexists; split; eauto. - unfold incrPC. rewrite Pregmap.gss. rewrite Pregmap.gso; try discriminate. - assert ( (rs2 # X30 <- (Val.offset_ptr (rs2 PC) Ptrofs.one)) # PC <- (rs2 r) - = ((rs1 # PC <- (Val.offset_ptr (rs1 PC) (Ptrofs.repr (size bb)))) - # X30 <- (Val.offset_ptr (rs1 PC) (Ptrofs.repr (size bb)))) - # PC <- (rs1 r) - ) as EQRS. { - unfold Pregmap.set. apply functional_extensionality. - intros x; destruct (PregEq.eq x PC) as [X | X]. - - inv_matchi; rewrite AG; auto. - - destruct (PregEq.eq x X30) as [X' | X']. - + inversion MATCHI; subst. rewrite <- AGPC. - rewrite Val.offset_ptr_assoc. unfold Ptrofs.one. - rewrite Ptrofs.add_unsigned. rewrite Ptrofs.unsigned_repr; try omega. rewrite Ptrofs.unsigned_repr; try omega. - rewrite Z.sub_add; reflexivity. - + inv_matchi. - } rewrite EQRS. inv_matchi. - - (* Pbr *) - eexists; eexists; split; eauto. - unfold incrPC. rewrite Pregmap.gso; try discriminate. - rewrite (pc_reg_overwrite r rs1 m1' rs2 m2 bb); auto. - inv_matchi. - - (* Pret *) - eexists; eexists; split; eauto. - unfold incrPC. rewrite Pregmap.gso; try discriminate. - rewrite (pc_reg_overwrite r rs1 m1' rs2 m2 bb); auto. - inv_matchi. - - (* Pcbnz *) - inv_matchi. - unfold eval_neg_branch in *. - erewrite incrPC_agree_but_pc in H0; try congruence. - destruct eval_testzero; next_stuck_cong. - destruct b. - * exploit next_inst_incr_pc_preserved; eauto. - * exploit goto_label_preserved; eauto. - - (* Pcbz *) - inv_matchi. - unfold eval_branch in *. - erewrite incrPC_agree_but_pc in H0; try congruence. - destruct eval_testzero; next_stuck_cong. - destruct b. - * exploit goto_label_preserved; eauto. - * exploit next_inst_incr_pc_preserved; eauto. - - (* Ptbnbz *) - inv_matchi. - unfold eval_branch in *. - erewrite incrPC_agree_but_pc in H0; try congruence. - destruct eval_testbit; next_stuck_cong. - destruct b. - * exploit goto_label_preserved; eauto. - * exploit next_inst_incr_pc_preserved; eauto. - - (* Ptbz *) - inv_matchi. - unfold eval_neg_branch in *. - erewrite incrPC_agree_but_pc in H0; try congruence. - destruct eval_testbit; next_stuck_cong. - destruct b. - * exploit next_inst_incr_pc_preserved; eauto. - * exploit goto_label_preserved; eauto. - - (* Pbtbl *) - assert (rs2 # X16 <- Vundef r1 = (incrPC (Ptrofs.repr (size bb)) rs1) # X16 <- Vundef r1) - as EQUNDEFX16. { - unfold incrPC, Pregmap.set. - destruct (PregEq.eq r1 X16) as [X16 | X16]; auto. - destruct (PregEq.eq r1 PC) as [PC' | PC']; try discriminate. - inv MATCHI; rewrite AG; auto. - } rewrite <- EQUNDEFX16 in H0. - destruct_reg_inv; next_stuck_cong. - unfold goto_label, Asm.goto_label in *. - rewrite <- (label_pos_preserved f); auto. - inversion MATCHI; subst. - destruct label_pos; next_stuck_cong. - destruct (((incrPC (Ptrofs.repr (size bb)) rs1) # X16 <- Vundef) # X17 <- Vundef PC) eqn:INCRPC; next_stuck_cong. - inversion H0; auto. repeat (econstructor; eauto). - rewrite !Pregmap.gso; try congruence. - rewrite <- AGPC. - unfold incrPC in *. - destruct (rs1 PC) eqn:EQRS1; simpl in *; try discriminate. - replace (((rs2 # X16 <- Vundef) # X17 <- Vundef) # PC <- (Vptr b0 (Ptrofs.repr z))) with - ((((rs1 # PC <- (Vptr b0 (Ptrofs.add i1 (Ptrofs.repr (size bb))))) # X16 <- - Vundef) # X17 <- Vundef) # PC <- (Vptr b (Ptrofs.repr z))); auto. - eapply functional_extensionality; intros x. - destruct (PregEq.eq x PC); subst. - + rewrite Pregmap.gso in INCRPC; try congruence. - rewrite Pregmap.gso in INCRPC; try congruence. - rewrite Pregmap.gss in INCRPC. - rewrite !Pregmap.gss in *; congruence. - + rewrite Pregmap.gso; auto. - rewrite (Pregmap.gso (i := x) (j := PC)); auto. - destruct (PregEq.eq x X17); subst. - * rewrite !Pregmap.gss; auto. - * rewrite !(Pregmap.gso (i := x) (j:= X17)); auto. destruct (PregEq.eq x X16); subst. - -- rewrite !Pregmap.gss; auto. - -- rewrite !Pregmap.gso; auto. -Qed. - -Lemma last_instruction_cannot_be_label bb: - list_nth_z (header bb) (size bb - 1) = None. -Proof. - assert (list_length_z (header bb) <= size bb - 1). { - rewrite bblock_size_aux. generalize (bblock_size_aux_pos bb). omega. - } - remember (list_nth_z (header bb) (size bb - 1)) as label_opt; destruct label_opt; auto; - exploit list_nth_z_range; eauto; omega. -Qed. - -Lemma pc_ptr_exec_step: forall ofs bb b rs m _rs _m - (ATPC : rs PC = Vptr b ofs) - (MATCHI : match_internal (size bb - 1) - {| _rs := rs; _m := m |} - {| _rs := _rs; _m := _m |}), - _rs PC = Vptr b (Ptrofs.add ofs (Ptrofs.repr (size bb - 1))). -Proof. - intros; inv MATCHI. rewrite <- AGPC; rewrite ATPC; unfold Val.offset_ptr; eauto. -Qed. - -Lemma find_instr_ofs_somei: forall ofs bb f tc asmi rs m _rs _m - (BOUNDOFS : Ptrofs.unsigned ofs + size bb <= Ptrofs.max_unsigned) - (FIND_INSTR : Asm.find_instr (Ptrofs.unsigned ofs + (size bb - 1)) tc = - Some (asmi)) - (MATCHI : match_internal (size bb - 1) - {| _rs := rs; _m := m |} - {| _rs := _rs; _m := _m |}), - Asm.find_instr (Ptrofs.unsigned (Ptrofs.add ofs (Ptrofs.repr (size bb - 1)))) - (Asm.fn_code {| Asm.fn_sig := fn_sig f; Asm.fn_code := tc |}) = - Some (asmi). -Proof. - intros; simpl. - replace (Ptrofs.unsigned (Ptrofs.add ofs (Ptrofs.repr (size bb - 1)))) - with (Ptrofs.unsigned ofs + (size bb - 1)); try assumption. - generalize (bblock_size_pos bb); generalize (Ptrofs.unsigned_range_2 ofs); intros. - unfold Ptrofs.add. - rewrite Ptrofs.unsigned_repr. rewrite Ptrofs.unsigned_repr; try omega. - rewrite Ptrofs.unsigned_repr; omega. -Qed. - -Lemma eval_builtin_arg_match: forall rs _m _rs a1 b1 - (AG : forall r : preg, r <> PC -> rs r = _rs r) - (EVAL : eval_builtin_arg tge (fun r : dreg => rs r) (rs SP) _m a1 b1), - eval_builtin_arg tge _rs (_rs SP) _m (map_builtin_arg DR a1) b1. -Proof. - intros; induction EVAL; simpl in *; try rewrite AG; try rewrite AG in EVAL; try discriminate; try congruence; eauto with barg. - econstructor. rewrite <- AG; try discriminate; auto. -Qed. - -Lemma eval_builtin_args_match: forall bb rs m _rs _m args vargs - (MATCHI : match_internal (size bb - 1) - {| _rs := rs; _m := m |} - {| _rs := _rs; _m := _m |}) - (EVAL : eval_builtin_args tge (fun r : dreg => rs r) (rs SP) m args vargs), - eval_builtin_args tge _rs (_rs SP) _m (map (map_builtin_arg DR) args) vargs. -Proof. - intros; inv MATCHI. - induction EVAL; subst. - - econstructor. - - econstructor. - + eapply eval_builtin_arg_match; eauto. - + eauto. -Qed. - -Lemma pc_both_sides: forall (rs _rs: regset) v - (AG : forall r : preg, r <> PC -> rs r = _rs r), - rs # PC <- v = _rs # PC <- v. -Proof. - intros; unfold Pregmap.set; apply functional_extensionality; intros y. - destruct (PregEq.eq y PC); try rewrite AG; eauto. -Qed. - -Lemma set_buitin_res_sym res: forall vres rs _rs r - (NPC: r <> PC) - (AG : forall r : preg, r <> PC -> rs r = _rs r), - set_res res vres rs r = set_res res vres _rs r. -Proof. - induction res; simpl; intros; unfold Pregmap.set; try rewrite AG; eauto. -Qed. - -Lemma set_builtin_res_dont_move_pc_gen res: forall vres rs _rs v1 v2 - (HV: v1 = v2) - (AG : forall r : preg, r <> PC -> rs r = _rs r), - (set_res res vres rs) # PC <- v1 = - (set_res res vres _rs) # PC <- v2. -Proof. - intros. rewrite HV. generalize res vres rs _rs AG v2. - clear res vres rs _rs AG v1 v2 HV. - induction res. - - simpl; intros. apply pc_both_sides; intros. - unfold Pregmap.set; try rewrite AG; eauto. - - simpl; intros; apply pc_both_sides; eauto. - - simpl; intros. - erewrite IHres2; eauto; intros. - eapply set_buitin_res_sym; eauto. -Qed. - -Lemma set_builtin_map_not_pc (res: builtin_res dreg): forall vres rs, - set_res (map_builtin_res DR res) vres rs PC = rs PC. -Proof. - induction res. - - intros; simpl. unfold Pregmap.set. destruct (PregEq.eq PC x); try congruence. - - intros; simpl; congruence. - - intros; simpl in *. rewrite IHres2. rewrite IHres1. reflexivity. -Qed. - -Lemma undef_reg_preserved (rl: list mreg): forall rs _rs r - (NPC: r <> PC) - (AG : forall r : preg, r <> PC -> rs r = _rs r), - undef_regs (map preg_of rl) rs r = undef_regs (map preg_of rl) _rs r. -Proof. - induction rl. - - simpl; auto. - - simpl; intros. erewrite IHrl; eauto. - intros. unfold Pregmap.set. destruct (PregEq.eq r0 (preg_of a)); try rewrite AG; eauto. -Qed. - -Lemma undef_regs_other: - forall r rl rs, - (forall r', In r' rl -> r <> r') -> - undef_regs rl rs r = rs r. -Proof. - induction rl; simpl; intros. auto. - rewrite IHrl by auto. rewrite Pregmap.gso; auto. -Qed. - -Fixpoint preg_notin (r: preg) (rl: list mreg) : Prop := - match rl with - | nil => True - | r1 :: nil => r <> preg_of r1 - | r1 :: rl => r <> preg_of r1 /\ preg_notin r rl - end. - -Remark preg_notin_charact: - forall r rl, - preg_notin r rl <-> (forall mr, In mr rl -> r <> preg_of mr). -Proof. - induction rl; simpl; intros. - tauto. - destruct rl. - simpl. split. intros. intuition congruence. auto. - rewrite IHrl. split. - intros [A B]. intros. destruct H. congruence. auto. - auto. -Qed. - -Lemma undef_regs_other_2: - forall r rl rs, - preg_notin r rl -> - undef_regs (map preg_of rl) rs r = rs r. -Proof. - intros. apply undef_regs_other. intros. - exploit list_in_map_inv; eauto. intros [mr [A B]]. subst. - rewrite preg_notin_charact in H. auto. -Qed. - -Lemma exec_exit_simulation_plus b ofs f bb s2 t rs m rs' m': forall - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (NEMPTY_EXIT: exit bb <> None) - (MATCHI: match_internal (size bb - Z.of_nat (length_opt (exit bb))) (State rs m) s2) - (EXIT: exec_exit ge f (Ptrofs.repr (size bb)) rs m (exit bb) t rs' m') - (ATPC: rs PC = Vptr b ofs), - plus Asm.step tge s2 t (State rs' m'). -Proof. - intros. - exploit internal_functions_unfold; eauto. - intros (tc & FINDtf & TRANStf & _). - - exploit (find_instr_bblock (size bb - 1)); eauto. - { generalize (bblock_size_pos bb). omega. } - intros (i' & NTH & FIND_INSTR). - - inv NTH. - + rewrite last_instruction_cannot_be_label in *. discriminate. - + destruct (exit bb) as [ctrl |] eqn:NEMPTY_EXIT'. 2: { contradiction. } - rewrite bblock_size_aux in *. rewrite NEMPTY_EXIT' in *. simpl in *. - (* XXX: Is there a better way to simplify this expression i.e. automatically? *) - replace (list_length_z (header bb) + list_length_z (body bb) + 1 - 1 - - list_length_z (header bb)) with (list_length_z (body bb)) in H by omega. - rewrite list_nth_z_range_exceeded in H; try omega. discriminate. - + assert (Ptrofs.unsigned ofs + size bb <= Ptrofs.max_unsigned). { - eapply size_of_blocks_bounds; eauto. - } - assert (size bb <= Ptrofs.max_unsigned). { generalize (Ptrofs.unsigned_range_2 ofs); omega. } - destruct cfi. - * (* control flow instruction *) - destruct s2. - rewrite H in EXIT. (* exit bb is a cfi *) - inv EXIT. - rewrite H in MATCHI. simpl in MATCHI. - exploit internal_functions_translated; eauto. - rewrite FINDtf. - intros (tf & FINDtf' & TRANSf). inversion FINDtf'; subst; clear FINDtf'. - exploit exec_cfi_simulation; eauto. - (* extract exec_cfi_simulation's conclusion as separate hypotheses *) - intros (rs2' & m2' & EXECI & MATCHS); rewrite MATCHS. - apply plus_one. - eapply Asm.exec_step_internal; eauto. - - eapply pc_ptr_exec_step; eauto. - - eapply find_instr_ofs_somei; eauto. - * (* builtin *) - destruct s2. - rewrite H in EXIT. - rewrite H in MATCHI. simpl in MATCHI. - simpl in FIND_INSTR. - inversion EXIT. - apply plus_one. - eapply external_call_symbols_preserved in H10; try (apply senv_preserved). - eapply eval_builtin_args_preserved in H6; try (apply symbols_preserved). - eapply Asm.exec_step_builtin; eauto. - - eapply pc_ptr_exec_step; eauto. - - eapply find_instr_ofs_somei; eauto. - - eapply eval_builtin_args_match; eauto. - - inv MATCHI; eauto. - - inv MATCHI. - unfold Asm.nextinstr, incrPC. - assert (HPC: Val.offset_ptr (rs PC) (Ptrofs.repr (size bb)) - = Val.offset_ptr (_rs PC) Ptrofs.one). - { rewrite <- AGPC. rewrite ATPC. unfold Val.offset_ptr. - rewrite Ptrofs.add_assoc. unfold Ptrofs.add. - assert (BBPOS: size bb >= 1) by eapply bblock_size_pos. - rewrite (Ptrofs.unsigned_repr (size bb - 1)); try omega. - rewrite Ptrofs.unsigned_one. - replace (size bb - 1 + 1) with (size bb) by omega. - reflexivity. } - apply set_builtin_res_dont_move_pc_gen. - -- erewrite !set_builtin_map_not_pc. - erewrite !undef_regs_other_2. - rewrite HPC; auto. all: rewrite preg_notin_charact; intros; try discriminate. - -- intros. eapply undef_reg_preserved; eauto. -Qed. - -Lemma exec_exit_simulation_star b ofs f bb s2 t rs m rs' m': forall - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (MATCHI: match_internal (size bb - Z.of_nat (length_opt (exit bb))) (State rs m) s2) - (EXIT: exec_exit ge f (Ptrofs.repr (size bb)) rs m (exit bb) t rs' m') - (ATPC: rs PC = Vptr b ofs), - star Asm.step tge s2 t (State rs' m'). -Proof. - intros. - destruct (exit bb) eqn: Hex. - - eapply plus_star. - eapply exec_exit_simulation_plus; try rewrite Hex; congruence || eauto. - - inv MATCHI. - inv EXIT. - assert (X: rs2 = incrPC (Ptrofs.repr (size bb)) rs). { - unfold incrPC. unfold Pregmap.set. - apply functional_extensionality. intros x. - destruct (PregEq.eq x PC) as [X|]. - - rewrite X. rewrite <- AGPC. simpl. - replace (size bb - 0) with (size bb) by omega. reflexivity. - - rewrite AG; try assumption. reflexivity. - } - destruct X. - subst; eapply star_refl; eauto. -Qed. - -Lemma exec_bblock_simulation b ofs f bb t rs m rs' m': forall - (ATPC: rs PC = Vptr b ofs) - (FINDF: Genv.find_funct_ptr ge b = Some (Internal f)) - (FINDBB: find_bblock (Ptrofs.unsigned ofs) (fn_blocks f) = Some bb) - (EXECBB: exec_bblock lk ge f bb rs m t rs' m'), - plus Asm.step tge (State rs m) t (State rs' m'). -Proof. - intros; destruct EXECBB as (rs1 & m1 & BODY & CTL). - exploit exec_header_simulation; eauto. - intros (s0 & STAR & MATCH0). - eapply star_plus_trans; traceEq || eauto. - destruct (bblock_non_empty bb). - - (* body bb <> nil *) - exploit exec_body_simulation_plus; eauto. - intros (s1 & PLUS & MATCH1). - eapply plus_star_trans; traceEq || eauto. - eapply exec_exit_simulation_star; eauto. - erewrite <- exec_body_dont_move_PC; eauto. - - (* exit bb <> None *) - exploit exec_body_simulation_star; eauto. - intros (s1 & STAR1 & MATCH1). - eapply star_plus_trans; traceEq || eauto. - eapply exec_exit_simulation_plus; eauto. - erewrite <- exec_body_dont_move_PC; eauto. -Qed. - -Lemma step_simulation s t s': - Asmblock.step lk ge s t s' -> plus Asm.step tge s t s'. -Proof. - intros STEP. - inv STEP; simpl; exploit functions_translated; eauto; - intros (tf0 & FINDtf & TRANSf); - monadInv TRANSf. - - (* internal step *) eapply exec_bblock_simulation; eauto. - - (* external step *) - apply plus_one. - exploit external_call_symbols_preserved; eauto. apply senv_preserved. - intros ?. - eapply Asm.exec_step_external; eauto. -Qed. - -Lemma transf_program_correct: - forward_simulation (Asmblock.semantics lk prog) (Asm.semantics tprog). -Proof. - eapply forward_simulation_plus. - - apply senv_preserved. - - eexact transf_initial_states. - - eexact transf_final_states. - - (* TODO step_simulation *) - unfold match_states. - simpl; intros; subst; eexists; split; eauto. - eapply step_simulation; eauto. -Qed. - -End PRESERVATION. - -End Asmblock_PRESERVATION. - - -Local Open Scope linking_scope. - -Definition block_passes := - mkpass Machblockgenproof.match_prog - ::: mkpass PseudoAsmblockproof.match_prog - ::: mkpass Asmblockgenproof.match_prog - (*::: mkpass PostpassSchedulingproof.match_prog*) - ::: mkpass Asmblock_PRESERVATION.match_prog - ::: pass_nil _. - -Definition match_prog := pass_match (compose_passes block_passes). - -Lemma transf_program_match: - forall p tp, Asmgen.transf_program p = OK tp -> match_prog p tp. -Proof. - intros p tp H. - unfold Asmgen.transf_program in H. apply bind_inversion in H. destruct H. - inversion_clear H. apply bind_inversion in H1. destruct H1. - inversion_clear H. inversion H2. remember (Machblockgen.transf_program p) as mbp. - unfold match_prog; simpl. - exists mbp; split. apply Machblockgenproof.transf_program_match; auto. - exists x; split. apply PseudoAsmblockproof.transf_program_match; auto. - exists x0; split. apply Asmblockgenproof.transf_program_match; auto. - exists tp; split. apply Asmblock_PRESERVATION.transf_program_match; auto. auto. -Qed. - -(** Return Address Offset *) - -Definition return_address_offset: Mach.function -> Mach.code -> ptrofs -> Prop := - Machblockgenproof.Mach_return_address_offset (PseudoAsmblockproof.rao Asmblockgenproof.next). - -Lemma return_address_exists: - forall f sg ros c, is_tail (Mach.Mcall sg ros :: c) f.(Mach.fn_code) -> - exists ra, return_address_offset f c ra. -Proof. - intros; eapply Machblockgenproof.Mach_return_address_exists; eauto. -Admitted. - -Section PRESERVATION. - -Variable prog: Mach.program. -Variable tprog: Asm.program. -Hypothesis TRANSF: match_prog prog tprog. -Let ge := Genv.globalenv prog. -Let tge := Genv.globalenv tprog. - -Theorem transf_program_correct: - forward_simulation (Mach.semantics return_address_offset prog) (Asm.semantics tprog). -Proof. - unfold match_prog in TRANSF. simpl in TRANSF. - inv TRANSF. inv H. inv H1. inv H. inv H2. inv H. inv H3. inv H. - eapply compose_forward_simulations. - { exploit Machblockgenproof.transf_program_correct; eauto. } - eapply compose_forward_simulations. - + apply PseudoAsmblockproof.transf_program_correct; eauto. - - intros; apply Asmblockgenproof.next_progress. - - intros; eapply Asmblockgenproof.functions_bound_max_pos; eauto. - { intros; eapply Asmblock_PRESERVATION.symbol_high_low; eauto. } - + eapply compose_forward_simulations. apply Asmblockgenproof.transf_program_correct; eauto. - { intros; eapply Asmblock_PRESERVATION.symbol_high_low; eauto. } - apply Asmblock_PRESERVATION.transf_program_correct. eauto. -Qed. - -End PRESERVATION. - -Instance TransfAsm: TransfLink match_prog := pass_match_link (compose_passes block_passes). - -(*******************************************) -(* Stub actually needed by driver/Compiler *) - -Module Asmgenproof0. - -Definition return_address_offset := return_address_offset. - -End Asmgenproof0. @@ -834,7 +834,7 @@ ARCHDIRS=$arch EXECUTE=kvx-cluster --syscall=libstd_scalls.so -- CFLAGS= -D __KVX_COS__ SIMU=kvx-cluster -- -BACKENDLIB=Machblock.v Machblockgen.v Machblockgenproof.v OptionMonad.v IterList.v PseudoAsmblock.v PseudoAsmblockproof.v\\ +BACKENDLIB=Machblock.v Machblockgen.v Machblockgenproof.v OptionMonad.v IterList.v\\ Asmblock.v Asmblockgen.v Asmblockgenproof0.v Asmblockgenproof1.v Asmblockgenproof.v Asmvliw.v Asmblockprops.v\\ ForwardSimulationBlock.v PostpassScheduling.v PostpassSchedulingproof.v\\ Asmblockdeps.v DecBoolOps.v Chunks.v Peephole.v ExtValues.v ExtFloats.v\\ diff --git a/multiple_labels_crash_test/check.c b/multiple_labels_crash_test/check.c deleted file mode 100644 index 3c2ff89d..00000000 --- a/multiple_labels_crash_test/check.c +++ /dev/null @@ -1,120 +0,0 @@ -#include "init.h" - -unsigned long long int checksum () { - unsigned long long int seed = 0ULL; - hash(&seed, var_36); - hash(&seed, var_37); - hash(&seed, var_38); - hash(&seed, var_39); - hash(&seed, var_40); - hash(&seed, var_41); - hash(&seed, var_42); - hash(&seed, var_43); - hash(&seed, var_44); - hash(&seed, var_45); - hash(&seed, var_46); - hash(&seed, var_47); - hash(&seed, var_48); - hash(&seed, var_49); - hash(&seed, var_50); - hash(&seed, var_51); - hash(&seed, var_52); - hash(&seed, var_53); - hash(&seed, var_54); - hash(&seed, var_55); - hash(&seed, var_56); - hash(&seed, var_57); - hash(&seed, var_58); - hash(&seed, var_59); - hash(&seed, var_60); - hash(&seed, var_61); - hash(&seed, var_62); - hash(&seed, var_63); - hash(&seed, var_64); - hash(&seed, var_65); - hash(&seed, var_70); - hash(&seed, var_78); - hash(&seed, var_82); - hash(&seed, var_90); - hash(&seed, var_94); - hash(&seed, var_100); - hash(&seed, var_106); - hash(&seed, var_123); - hash(&seed, var_129); - hash(&seed, var_143); - hash(&seed, var_152); - hash(&seed, var_156); - hash(&seed, var_162); - hash(&seed, var_178); - hash(&seed, var_217); - hash(&seed, var_234); - hash(&seed, var_240); - hash(&seed, var_241); - hash(&seed, var_260); - hash(&seed, var_268); - hash(&seed, var_284); - hash(&seed, var_297); - hash(&seed, var_314); - hash(&seed, var_358); - hash(&seed, var_359); - hash(&seed, var_367); - hash(&seed, var_392); - hash(&seed, var_468); - hash(&seed, var_500); - hash(&seed, var_514); - hash(&seed, var_522); - hash(&seed, var_543); - hash(&seed, var_544); - hash(&seed, var_547); - hash(&seed, var_549); - hash(&seed, var_558); - hash(&seed, var_591); - hash(&seed, struct_obj_5.member_1_0); - hash(&seed, struct_obj_5.member_1_1); - hash(&seed, struct_obj_5.member_1_2); - hash(&seed, struct_obj_5.member_1_3); - hash(&seed, struct_obj_6.member_5_0); - hash(&seed, struct_obj_6.member_5_1); - hash(&seed, struct_obj_6.member_5_2); - hash(&seed, struct_obj_6.member_5_3); - hash(&seed, struct_obj_7.member_1_0); - hash(&seed, struct_obj_7.member_1_1); - hash(&seed, struct_obj_7.member_1_2); - hash(&seed, struct_obj_7.member_1_3); - hash(&seed, struct_obj_8.member_4_0); - hash(&seed, struct_obj_8.member_4_1.member_3_0); - hash(&seed, struct_obj_8.member_4_1.member_3_1.member_1_0); - hash(&seed, struct_obj_8.member_4_1.member_3_1.member_1_1); - hash(&seed, struct_obj_8.member_4_1.member_3_1.member_1_2); - hash(&seed, struct_obj_8.member_4_1.member_3_1.member_1_3); - hash(&seed, struct_obj_8.member_4_2); - hash(&seed, struct_obj_8.member_4_3); - hash(&seed, struct_obj_8.member_4_4); - hash(&seed, struct_obj_8.member_4_5); - hash(&seed, struct_obj_8.member_4_6); - hash(&seed, struct_obj_8.member_4_7); - hash(&seed, struct_obj_8.member_4_8); - hash(&seed, struct_obj_8.member_4_9.member_1_0); - hash(&seed, struct_obj_8.member_4_9.member_1_1); - hash(&seed, struct_obj_8.member_4_9.member_1_2); - hash(&seed, struct_obj_8.member_4_9.member_1_3); - hash(&seed, struct_obj_9.member_2_0); - hash(&seed, struct_obj_9.member_2_1.member_1_0); - hash(&seed, struct_obj_9.member_2_1.member_1_1); - hash(&seed, struct_obj_9.member_2_1.member_1_2); - hash(&seed, struct_obj_9.member_2_1.member_1_3); - hash(&seed, struct_obj_9.member_2_2); - hash(&seed, struct_obj_9.member_2_3.member_1_0); - hash(&seed, struct_obj_9.member_2_3.member_1_1); - hash(&seed, struct_obj_9.member_2_3.member_1_2); - hash(&seed, struct_obj_9.member_2_3.member_1_3); - hash(&seed, struct_obj_9.member_2_4); - hash(&seed, struct_obj_9.member_2_5); - hash(&seed, struct_obj_9.member_2_6); - hash(&seed, struct_obj_9.member_2_7); - hash(&seed, struct_obj_10.member_1_0); - hash(&seed, struct_obj_10.member_1_1); - hash(&seed, struct_obj_10.member_1_2); - hash(&seed, struct_obj_10.member_1_3); - return seed; -}
\ No newline at end of file diff --git a/multiple_labels_crash_test/driver.c b/multiple_labels_crash_test/driver.c deleted file mode 100644 index 3084e131..00000000 --- a/multiple_labels_crash_test/driver.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <stdio.h> -#include "init.h" - -extern void init (); -extern void foo (); -extern unsigned long long int checksum (); - -int main () { - init (); - foo (); - printf("%llu\n", checksum ()); return 0; -}
\ No newline at end of file diff --git a/multiple_labels_crash_test/func.c b/multiple_labels_crash_test/func.c deleted file mode 100644 index cc9d3653..00000000 --- a/multiple_labels_crash_test/func.c +++ /dev/null @@ -1,915 +0,0 @@ -#include "init.h" - -void foo () -{ - unsigned short var_66 = ~((int) ((((int) (((int) (((int) (-27782)) > ((int) (5913)))) <= ((int) ((signed char) (11720))))) | ((int) (30935))) <= (((~((int) (-17))) * (((int) (92)) * ((int) (7)))) * ((int) (56914))))); - if ((unsigned short) ((short) (((int) ((unsigned short) (((int) (-5211)) & ((int) (var_47))))) <= (((int) ((short) (15973))) & ((int) (17901)))))) - { - var_58 = (signed char) (((int) ((((int) (-104)) | ((((int) (-16858)) ^ ((int) (var_24))) ^ ((int) ((signed char) (-45))))) <= ((int) ((signed char) (+((int) (struct_obj_4.member_2_5))))))) != (((int) (4536)) || ((int) (50251)))); - if ((((((int) (63229)) && ((int) ((signed char) (115)))) - ((int) (struct_obj_4.member_2_3.member_1_0))) - (((!((int) (-7155))) || ((int) (-7))) << (((int) ((signed char) (-((int) (var_15))))) - (43)))) || (-((((int) ((signed char) (struct_obj_10.member_1_3))) - (((int) (-24985)) + ((int) (var_31)))) - ((+((int) (253))) + (((int) (-26639)) + ((int) (24190))))))) - { - short var_67 = (!((int) (((!((int) (6))) && (!((int) (21935)))) != ((int) ((unsigned short) (((int) (51591)) & ((int) (-41)))))))) << ((int) (((~((int) (-29500))) & (~(((int) (var_27)) & ((int) (struct_obj_6.member_5_2))))) <= ((int) (var_23)))); - signed char var_68 = (short) ((~((int) ((unsigned short) (~((int) (var_28)))))) | (~((int) ((short) (~((int) (var_6))))))); - if (((((int) (struct_obj_7.member_1_1)) ^ ((((((int) (-12017)) + (2147483647)) >> (((int) (-5)) + (5))) >> ((((int) (struct_obj_4.member_2_7)) ^ ((int) (var_34))) - (9570))) >> ((int) ((~((int) ((short) (struct_obj_4.member_2_1.member_1_0)))) != (((int) ((signed char) (var_1))) | ((int) ((unsigned short) ((((int) (var_19)) & ((int) (struct_obj_1.member_5_2))) & (~((int) (-114))))))))))) + (2147483647)) >> ((((((int) (var_29)) & ((int) (var_8))) | ((int) ((unsigned short) (var_48)))) & ((~((int) (struct_obj_8.member_4_5))) << (((int) ((unsigned short) (struct_obj_8.member_4_6))) - (51692)))) << ((((((int) (49144)) << (((int) (struct_obj_5.member_1_1)) - (28946))) << (((-((int) ((signed char) ((((int) ((short) (-246))) ^ (((int) (var_30)) << (((int) (var_3)) - (49)))) || ((+((int) (var_9))) >> ((((int) (struct_obj_4.member_2_1.member_1_0)) | ((int) (53547))) - (53607))))))) + (20)) - (15))) ^ ((((int) (27896)) ^ ((int) (struct_obj_2.member_5_1))) << ((~((int) (var_56))) + (20190)))) - (100631155)))) - { - unsigned short var_69 = ((int) (((int) (((int) ((((int) (struct_obj_3.member_5_1)) && ((int) (var_18))) < ((int) (((int) (14551)) <= ((int) (-206)))))) >= ((int) ((~((int) ((short) (struct_obj_4.member_2_1.member_1_0)))) != (((int) ((signed char) (var_1))) | ((int) ((unsigned short) ((((int) (var_19)) & ((int) (struct_obj_1.member_5_2))) & (~((int) (-114))))))))))) != (!(((((int) (-2718)) * ((int) (struct_obj_9.member_2_7))) + (2147483647)) >> (((int) ((unsigned short) (-122))) - (65411)))))) >> ((!((!((int) (-34))) && (!((int) (11439))))) || (((((int) (10371)) || ((int) (18010))) || (((int) (52917)) && ((int) (-118)))) || ((((int) (23)) || ((int) (15037))) && (((int) (93)) && ((int) (-12489)))))); - var_70 = (signed char) (((((((int) (34812)) * ((int) (var_13))) / (((int) (struct_obj_1.member_5_1)) * ((int) (var_65)))) * (!(((int) (var_35)) * ((int) (62))))) * (-((int) ((~((int) ((short) (struct_obj_4.member_2_1.member_1_0)))) != (((int) ((signed char) (var_1))) | ((int) ((unsigned short) ((((int) (var_19)) & ((int) (struct_obj_1.member_5_2))) & (~((int) (-114))))))))))) ^ (-((int) ((signed char) ((((int) ((short) (-246))) ^ (((int) (var_30)) << (((int) (var_3)) - (49)))) || ((+((int) (var_9))) >> ((((int) (struct_obj_4.member_2_1.member_1_0)) | ((int) (53547))) - (53607)))))))); - struct_obj_9.member_2_5 = (unsigned short) (((((-((int) ((signed char) ((((int) ((short) (-246))) ^ (((int) (var_30)) << (((int) (var_3)) - (49)))) || ((+((int) (var_9))) >> ((((int) (struct_obj_4.member_2_1.member_1_0)) | ((int) (53547))) - (53607))))))) ^ (((~((int) (44847))) + (2147483647)) >> (((int) ((short) (var_4))) - (3630)))) + (2147483647)) << (((int) ((unsigned short) ((~((int) (struct_obj_2.member_5_1))) | (~((int) (struct_obj_4.member_2_3.member_1_0)))))) - (65535))) ^ (~(~(((int) ((unsigned short) (var_41))) ^ (((int) (struct_obj_9.member_2_5)) << (((int) (struct_obj_9.member_2_4)) - (13536))))))); - unsigned short var_71 = (unsigned short) (~((int) ((signed char) ((((int) (15546)) << (((int) (58115)) - (58101))) >> ((~((int) (-17858))) - (17855)))))); - unsigned short var_72 = ((int) ((((int) ((signed char) (((int) (var_53)) > ((int) (struct_obj_7.member_1_0))))) * ((int) (((int) (((int) (struct_obj_1.member_5_2)) <= ((int) (4016)))) > (((int) (23666)) % ((int) (-117)))))) <= (((int) ((((int) (struct_obj_4.member_2_6)) ^ ((int) (struct_obj_1.member_5_3))) <= ((int) (var_52)))) && (~((int) (58979)))))) * ((int) (struct_obj_1.member_5_0)); - short var_73 = ((int) ((((~((int) (var_46))) | (((int) (struct_obj_9.member_2_1.member_1_1)) | ((int) (42879)))) | ((~((int) (var_55))) & (((int) (var_66)) & ((int) (struct_obj_10.member_1_3))))) <= ((int) ((~(!((int) (64290)))) > ((int) ((signed char) (((int) (struct_obj_1.member_5_3)) * ((int) (10324))))))))) >> (!((~(~((int) (var_30)))) >> (((((int) (struct_obj_9.member_2_4)) | ((int) (struct_obj_3.member_5_2))) & ((int) (struct_obj_9.member_2_0))) - (41371)))); - unsigned short var_74 = (((int) (struct_obj_8.member_4_5)) + (2147483647)) << ((((((((int) ((short) (~((((int) ((short) ((short) (~(((int) (65)) << (((int) (-26039)) + (26049))))))) + (2147483647)) >> ((~((int) ((unsigned short) ((((int) (40110)) | ((int) (85))) << ((((int) ((short) (-45))) + (61)) - (14)))))) + (29723)))))) + (29)) - (26)) - (0)) - (0)) - (0)) - (1)); - unsigned short var_75 = ((int) ((short) (23390))) + (((int) (((int) (((int) ((signed char) (struct_obj_10.member_1_3))) <= ((((int) ((short) ((short) (~(((int) (65)) << (((int) (-26039)) + (26049))))))) + (2147483647)) >> ((~((int) ((unsigned short) ((((int) (40110)) | ((int) (85))) << ((((int) ((short) (-45))) + (61)) - (14)))))) + (29723))))) < ((((int) (-41)) && ((int) (var_71))) && (!((int) (5)))))) ^ (((((int) (35578)) * ((int) (struct_obj_5.member_1_0))) * (((int) (var_69)) * ((int) (103)))) || ((int) (struct_obj_8.member_4_7)))); - short var_76 = ((int) (-63)) + ((int) ((short) ((((int) (((int) (46788)) != ((int) (struct_obj_4.member_2_1.member_1_3)))) || (!((int) (-115)))) << (((((int) (struct_obj_4.member_2_1.member_1_1)) * ((int) (var_1))) - (((int) (20657)) + ((int) (struct_obj_9.member_2_0)))) + (1945793196))))); - short var_77 = +(((+(((int) (117)) * ((int) (-115)))) * ((((int) (57)) * ((int) (-8289))) / ((-((((int) (var_26)) || (((int) (1474)) && ((int) (var_34)))) || ((!((int) (95))) && (((int) (var_26)) || ((int) (7528)))))) - ((int) (struct_obj_4.member_2_0))))) * ((int) ((signed char) (var_65)))); - } - - var_78 = (short) (((((((int) (var_61)) | ((int) (var_15))) | (((int) (var_52)) & ((int) (5914)))) & (~((int) (struct_obj_2.member_5_0)))) | (~(~(((int) (31461)) | ((int) (var_24)))))) != ((int) ((signed char) ((~((int) (((int) (struct_obj_6.member_5_0)) < ((int) (struct_obj_9.member_2_6))))) * ((+((int) (21135))) && (!((int) (100)))))))); - if (-((int) (struct_obj_8.member_4_0))) - { - signed char var_79 = var_12; - unsigned short var_80 = var_56; - short var_81 = !(((((int) (struct_obj_4.member_2_0)) || (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) && ((int) (45)))) || ((int) ((short) (((int) (struct_obj_1.member_5_1)) || ((int) (var_67)))))) || ((int) (var_31))); - var_54 = (short) ((((int) (var_54)) + (2147483647)) >> (((int) ((short) (((int) (var_62)) ^ ((int) (struct_obj_2.member_5_2))))) - (25016))); - var_82 = (unsigned short) ((~((int) (((~((int) (var_47))) * ((((int) (struct_obj_7.member_1_1)) + (2147483647)) >> (((int) (var_18)) - (75)))) <= ((!((int) (var_66))) % ((int) ((unsigned short) (8))))))) > (+((~((((int) (-22)) * ((int) (struct_obj_4.member_2_3.member_1_3))) / (((int) (-32289)) * ((int) (var_6))))) * (~((((int) (struct_obj_2.member_5_1)) * ((int) (var_4))) * (!((int) (var_7)))))))); - short var_83 = (-(-((int) ((~((int) (struct_obj_10.member_1_3))) <= (((int) (struct_obj_8.member_4_2)) * ((int) (29850))))))) >> (((int) (((int) ((~((int) ((short) (struct_obj_4.member_2_1.member_1_0)))) != (((int) ((signed char) (var_1))) | ((int) ((unsigned short) ((((int) (var_19)) & ((int) (struct_obj_1.member_5_2))) & (~((int) (-114))))))))) <= (((int) (struct_obj_5.member_1_1)) * ((int) (var_51))))) & (((int) ((+((int) (struct_obj_9.member_2_1.member_1_0))) <= ((int) ((signed char) (21412))))) >> (((int) (var_13)) + (23934)))); - signed char var_84 = !(-((int) (struct_obj_5.member_1_0))); - signed char var_85 = ((int) ((~((int) ((short) (struct_obj_4.member_2_1.member_1_0)))) != (((int) ((signed char) (var_1))) | ((int) ((unsigned short) ((((int) (var_19)) & ((int) (struct_obj_1.member_5_2))) & (~((int) (-114))))))))) * (((int) ((unsigned short) ((~((int) (var_15))) / (((int) (var_23)) * ((int) (var_15)))))) * (((int) ((short) (((int) (struct_obj_1.member_5_2)) * ((int) (struct_obj_3.member_5_0))))) * ((((int) (struct_obj_1.member_5_1)) * ((int) (struct_obj_4.member_2_6))) / (((int) (var_26)) * ((int) (60852)))))); - short var_86 = -((int) (struct_obj_9.member_2_6)); - } - - short var_87 = ((int) ((short) ((((int) (((int) (-4380)) > ((int) (var_20)))) || (((int) (struct_obj_2.member_5_1)) >> (((int) (var_56)) - (20160)))) <= ((((int) (struct_obj_4.member_2_3.member_1_3)) && ((int) (struct_obj_2.member_5_2))) || (!((int) (struct_obj_6.member_5_2))))))) < (~(((int) (33)) || ((int) ((short) (((int) (var_12)) * ((int) (var_40))))))); - } - - if ((~(((int) (((int) ((unsigned short) (83))) >= ((int) ((unsigned short) (29637))))) || ((((int) (10308)) && ((int) (struct_obj_3.member_5_0))) || (((int) (var_33)) || ((int) (var_28)))))) < ((int) ((signed char) (+((int) ((signed char) (((int) (var_2)) - ((int) (struct_obj_4.member_2_7))))))))) - { - signed char var_88 = (short) (!((int) ((unsigned short) (!(((int) (var_17)) || ((int) (struct_obj_8.member_4_7))))))); - if (((int) (((int) (((int) ((((int) (59)) && ((int) (var_47))) <= (((int) (17266)) - ((int) (3015))))) != ((int) (var_17)))) >= ((int) ((unsigned short) (struct_obj_4.member_2_7))))) ^ ((~((((int) (80)) >> (((int) (91)) - (69))) | ((int) ((unsigned short) (struct_obj_1.member_5_0))))) ^ (((~((int) (39542))) & ((int) (60573))) ^ ((((int) (-21393)) ^ ((int) (-10090))) << (((int) (-10709)) + (10717)))))) - { - short var_89 = ~(!(((((int) (64831)) && ((int) (-102))) && (!((int) (-122)))) && (((int) ((signed char) (-26762))) && (((int) (92)) && ((int) (-82)))))); - var_90 = (short) ((signed char) (((((int) ((short) (struct_obj_5.member_1_0))) ^ (((int) (11026)) | ((int) (1914)))) ^ (((int) (var_1)) ^ (((int) (struct_obj_10.member_1_3)) | ((int) (-10))))) & (((int) (struct_obj_8.member_4_9.member_1_0)) | ((int) (var_88))))); - signed char var_91 = ~(!(~(((int) ((signed char) (struct_obj_9.member_2_1.member_1_3))) & ((int) (var_9))))); - signed char var_92 = ~(~((~((((int) (63094)) | ((int) (struct_obj_4.member_2_2))) >> ((((int) (23595)) >> (((int) (struct_obj_4.member_2_0)) - (7603))) - (171)))) & ((int) ((unsigned short) (45532))))); - signed char var_93 = (signed char) (~(~((int) ((signed char) (struct_obj_3.member_5_3))))); - var_94 = (unsigned short) (((int) ((short) (((((int) (var_16)) ^ ((int) (56567))) & ((int) ((unsigned short) (struct_obj_7.member_1_0)))) | ((int) (var_8))))) & (~((((int) ((short) (var_5))) ^ (~((int) (var_32)))) | ((int) ((signed char) (((int) (var_34)) & ((int) (44163)))))))); - unsigned short var_95 = ~((int) (var_52)); - signed char var_96 = (~(!((int) ((!((int) (struct_obj_4.member_2_3.member_1_0))) > ((int) ((signed char) (19985))))))) <= ((int) ((unsigned short) (((-((int) (14064))) / (((int) (13781)) * ((int) (struct_obj_4.member_2_4)))) * ((((int) (-8630)) * ((int) (var_33))) / ((int) ((short) (struct_obj_2.member_5_2))))))); - unsigned short var_97 = ~(~(((int) (-7658)) | (!(((int) (-28143)) || ((int) (-16555)))))); - } - else - { - short var_98 = (signed char) (~((int) ((signed char) ((((int) (-8)) * ((int) (38))) * (((int) (44)) * ((int) (-25899))))))); - short var_99 = ~((!((((int) (45811)) * ((int) (18866))) / (((int) (36128)) * ((int) (57))))) * ((int) (-15867))); - var_100 = (short) (struct_obj_6.member_5_3); - unsigned short var_101 = (short) (~(-((((int) (var_12)) * ((int) (struct_obj_4.member_2_4))) / (((int) (63446)) * ((int) (var_5)))))); - unsigned short var_102 = ~(~(-(+((int) ((unsigned short) ((((int) (var_27)) + (((int) (struct_obj_4.member_2_7)) + ((int) (struct_obj_2.member_5_1)))) - (+((int) (22407))))))))); - unsigned short var_103 = ((int) (((((((int) (-103)) + (2147483647)) >> (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) + (103))) ^ ((int) ((unsigned short) (var_42)))) >> (((int) (struct_obj_7.member_1_0)) + (87))) < (+((int) ((unsigned short) ((((int) (var_27)) + (((int) (struct_obj_4.member_2_7)) + ((int) (struct_obj_2.member_5_1)))) - (+((int) (22407))))))))) | ((int) ((signed char) ((!(((int) (var_32)) * ((int) (struct_obj_8.member_4_9.member_1_2)))) << ((~((int) ((unsigned short) (121)))) + (152))))); - signed char var_104 = +(-((int) ((signed char) ((unsigned short) (((int) (-127)) > ((int) (-91))))))); - signed char var_105 = ((((-((int) (30661))) * ((int) ((unsigned short) (var_5)))) / ((int) ((signed char) (-((int) (struct_obj_2.member_5_3)))))) / (~(~(-(+((int) ((unsigned short) ((((int) (var_27)) + (((int) (struct_obj_4.member_2_7)) + ((int) (struct_obj_2.member_5_1)))) - (+((int) (22407))))))))))) * ((+((int) ((unsigned short) ((((int) (var_27)) + (((int) (struct_obj_4.member_2_7)) + ((int) (struct_obj_2.member_5_1)))) - (+((int) (22407))))))) * ((+(((int) (var_11)) * ((int) (struct_obj_8.member_4_3)))) * (((int) ((unsigned short) (struct_obj_1.member_5_2))) / (((int) (-95)) * ((int) (var_50)))))); - } - - var_106 = (short) ((signed char) (struct_obj_8.member_4_8)); - unsigned short var_107 = ((((int) ((((int) (struct_obj_4.member_2_3.member_1_3)) % ((int) (43869))) < ((((int) (var_55)) + (2147483647)) >> (((int) (var_3)) - (28))))) / (((int) ((unsigned short) (var_29))) - ((int) ((signed char) (var_26))))) * ((int) ((signed char) ((short) (((int) (-65)) * ((int) (struct_obj_3.member_5_0))))))) != (+(~((int) ((signed char) ((((int) ((short) ((unsigned short) (struct_obj_1.member_5_1)))) / (-(((int) (var_32)) * ((int) (struct_obj_4.member_2_3.member_1_0))))) * ((~(-((int) (struct_obj_1.member_5_0)))) * ((int) (var_27)))))))); - if (32515) - { - var_46 = (unsigned short) (!(((int) ((unsigned short) ((~((int) (var_3))) ^ (((int) (19146)) | ((int) (struct_obj_2.member_5_2)))))) & ((~(((int) (struct_obj_8.member_4_4)) ^ ((int) (var_2)))) & ((((int) (33293)) | ((int) (var_55))) ^ (~((int) (struct_obj_4.member_2_1.member_1_0))))))); - short var_108 = (short) ((((((int) (14)) & ((int) (var_53))) | (((int) (var_53)) & ((int) (var_19)))) | (~(~((int) (var_54))))) ^ (((((int) (-18302)) & ((int) (63))) & ((int) (struct_obj_1.member_5_2))) ^ (~((int) ((unsigned short) (8902)))))); - unsigned short var_109 = (unsigned short) (+((int) ((+((int) ((unsigned short) (61136)))) != (-((int) ((signed char) (var_28))))))); - short var_110 = (signed char) (~(~((int) (struct_obj_4.member_2_5)))); - var_40 = (signed char) ((((~((((int) (31124)) ^ ((int) (32575))) | ((((int) (-25599)) + (2147483647)) << ((((((((int) (43839)) - (43838)) - (0)) - (0)) - (0)) - (0)) - (1))))) + (2147483647)) << ((((~(((int) (56)) | ((int) (42861)))) + (2147483647)) << ((((((~((int) ((unsigned short) (29861)))) + (29886)) - (23)) - (0)) - (0)) - (1))) - (2147440759))) || ((int) ((short) (-(~((int) (((int) (struct_obj_9.member_2_2)) > ((int) (-28602))))))))); - unsigned short var_111 = ((int) ((signed char) (((int) ((((int) (var_14)) << (((int) (5053)) - (5042))) >= (~((int) ((unsigned short) (-(((int) (var_31)) * (!((int) (struct_obj_4.member_2_3.member_1_2)))))))))) & ((int) ((unsigned short) (4610)))))) << (((int) (var_20)) - (49510)); - unsigned short var_112 = (unsigned short) (((((int) ((unsigned short) (var_7))) && (((int) (struct_obj_8.member_4_9.member_1_1)) && ((int) (var_11)))) && ((((int) (struct_obj_7.member_1_1)) || ((int) (var_17))) || (((int) (var_10)) || ((int) (24048))))) % (((int) ((unsigned short) (((int) (12332)) * ((int) (59))))) * (~(-((int) (var_17)))))); - signed char var_113 = ~((((int) ((short) ((signed char) (44957)))) | ((~((int) (15636))) | (((int) (var_59)) ^ ((int) (var_109))))) & ((int) (13))); - short var_114 = ~((((~((int) (var_16))) | (~((int) (var_40)))) & (~(((int) (struct_obj_10.member_1_2)) & ((int) (struct_obj_8.member_4_9.member_1_0))))) ^ ((int) ((short) (((int) ((unsigned short) (struct_obj_8.member_4_2))) & (~((int) (7475))))))); - unsigned short var_115 = (-((int) (28145))) - (((((int) ((unsigned short) (25233))) + ((int) ((signed char) (110)))) - ((((int) (17997)) - ((int) (var_45))) + ((int) ((signed char) (29))))) + (((((int) (26576)) - ((int) (struct_obj_9.member_2_4))) - (((int) (var_47)) + ((int) (118)))) - (+((int) ((signed char) (-101)))))); - } - - } - else - { - unsigned short var_116 = ((((((int) (29480)) * ((int) (47))) * (~((int) (-106)))) * ((((int) (-5906)) * ((int) (var_47))) / (((int) (struct_obj_10.member_1_3)) * ((int) (var_49))))) * ((int) (var_17))) * (!((((int) (var_14)) * (((int) (var_22)) * ((int) (struct_obj_10.member_1_3)))) * ((((int) (9930)) * ((int) (-39))) / (((int) (var_50)) * ((int) (7597)))))); - short var_117 = 23937; - var_37 = (signed char) (((int) ((((int) ((signed char) (((int) (struct_obj_4.member_2_1.member_1_3)) % ((int) (struct_obj_2.member_5_1))))) | ((int) (((int) ((unsigned short) (-10713))) >= (((int) (struct_obj_8.member_4_9.member_1_1)) || ((int) (struct_obj_4.member_2_1.member_1_1)))))) > (((int) ((unsigned short) (((~((((int) (var_15)) ^ ((int) (struct_obj_2.member_5_3))) | (((int) (-117)) & ((int) (struct_obj_4.member_2_0))))) & ((int) (var_9))) | ((int) (struct_obj_4.member_2_1.member_1_0))))) * ((int) (struct_obj_4.member_2_3.member_1_3))))) & ((((~((int) (var_21))) | ((int) ((signed char) (6873)))) | ((((int) (11866)) & ((int) (1866))) & (((int) (120)) | ((int) (51141))))) & ((~(((int) (var_23)) ^ ((int) (var_21)))) ^ (((int) (var_38)) & (~((int) (var_61))))))); - unsigned short var_118 = var_39; - short var_119 = (short) (((((int) ((signed char) (struct_obj_4.member_2_3.member_1_3))) || (!((int) (var_60)))) % ((int) (((int) (var_59)) != (((int) (var_42)) & ((int) (var_5)))))) - ((int) ((unsigned short) (+((int) (41572)))))); - } - - if ((short) ((((int) ((unsigned short) (145))) || (!((int) (struct_obj_8.member_4_8)))) || ((!(!((int) (52600)))) && (!(((int) (struct_obj_1.member_5_1)) || ((int) (-45))))))) - { - if (((int) (struct_obj_7.member_1_1)) || ((int) (var_14))) - { - short var_120 = (((int) (-25025)) * (((int) ((signed char) (((int) (var_41)) || ((int) (-6379))))) * ((int) ((((int) (struct_obj_2.member_5_1)) || ((int) (var_66))) >= ((int) (struct_obj_2.member_5_1)))))) != (((int) ((unsigned short) ((((int) (struct_obj_4.member_2_6)) % ((int) (var_58))) % (~((int) (var_27)))))) && (~((~((int) (14817))) | (((int) (struct_obj_9.member_2_6)) | ((int) (80)))))); - unsigned short var_121 = ~((int) (40954)); - unsigned short var_122 = (short) ((((int) ((signed char) (+((int) (38261))))) * ((int) ((unsigned short) (((int) (struct_obj_1.member_5_3)) * ((int) (var_14)))))) * ((!(-((int) (var_25)))) * ((((int) (var_21)) * ((int) (struct_obj_3.member_5_0))) * (!((int) (struct_obj_8.member_4_6)))))); - var_123 = (unsigned short) (struct_obj_9.member_2_0); - signed char var_124 = ((int) ((+(~(((int) (1985)) * ((int) (104))))) <= ((int) (-17923)))) || ((~((((int) (struct_obj_8.member_4_1.member_3_0)) << (((int) (var_24)) + (4604))) >> (((int) ((signed char) (-29108))) - (70)))) | ((~((int) (46864))) | ((((int) (var_65)) + (2147483647)) >> (((((int) (struct_obj_10.member_1_3)) + (2147483647)) >> (((int) (var_25)) - (111))) - (32745))))); - unsigned short var_125 = ((int) (struct_obj_8.member_4_5)) * (+((+(~((int) (var_21)))) - ((int) ((unsigned short) ((unsigned short) (-12)))))); - short var_126 = ((int) (struct_obj_4.member_2_1.member_1_0)) && ((((!((int) (60288))) || ((int) (96))) && ((((int) (-57)) || ((int) (19530))) || (((int) (17387)) && ((int) (48289))))) || (!((((int) (29335)) && ((int) (-23143))) || (((int) (-16)) && ((int) (9431)))))); - short var_127 = (+((int) (((int) ((short) (((int) (struct_obj_1.member_5_1)) - ((int) (32370))))) < ((int) (60992))))) - ((int) ((((int) ((short) (((int) (var_8)) ^ ((int) (-54))))) & ((~((int) (32))) ^ (((int) (-29031)) | ((int) (126))))) != (((+(((int) (struct_obj_8.member_4_0)) ^ ((int) (struct_obj_5.member_1_0)))) + (2147483647)) >> ((~((int) (18))) || (((int) (struct_obj_4.member_2_2)) && ((int) (-39))))))); - unsigned short var_128 = !((int) ((((int) ((unsigned short) (~((int) (83))))) * ((int) ((((int) (-23)) ^ ((int) (62519))) >= ((int) (((int) (41099)) > ((int) (62255))))))) >= (~((~((int) (81))) * (((int) (-103)) * ((int) (23532))))))); - } - else - { - var_129 = (short) ((unsigned short) (var_20)); - unsigned short var_130 = var_66; - unsigned short var_131 = ((int) ((unsigned short) (((~((int) (-45))) & (~((int) (30782)))) ^ ((((int) (52410)) ^ ((int) (-29797))) ^ (~((int) (23))))))) & ((((int) ((((int) (24037)) % ((int) (struct_obj_8.member_4_4))) <= ((int) ((short) (29870))))) | (((((int) (struct_obj_8.member_4_6)) + (2147483647)) >> (((int) (struct_obj_5.member_1_0)) + (105))) ^ (((int) (var_28)) - ((((+((int) (struct_obj_4.member_2_3.member_1_0))) - (+((int) (17696)))) - ((int) (var_22))) + (((int) ((short) ((unsigned short) (var_27)))) + (((int) (var_23)) + (-((int) (var_1))))))))) || (~((int) ((short) (~((int) (-31180))))))); - short var_132 = (+(((int) (var_58)) * ((((int) (struct_obj_1.member_5_3)) * ((int) (struct_obj_4.member_2_1.member_1_1))) / ((int) ((unsigned short) (struct_obj_8.member_4_1.member_3_1.member_1_2)))))) * ((int) ((signed char) ((!(((int) (var_28)) - ((((+((int) (struct_obj_4.member_2_3.member_1_0))) - (+((int) (17696)))) - ((int) (var_22))) + (((int) ((short) ((unsigned short) (var_27)))) + (((int) (var_23)) + (-((int) (var_1)))))))) * (!(((int) (var_28)) - ((((+((int) (struct_obj_4.member_2_3.member_1_0))) - (+((int) (17696)))) - ((int) (var_22))) + (((int) ((short) ((unsigned short) (var_27)))) + (((int) (var_23)) + (-((int) (var_1))))))))))); - signed char var_133 = ~(~(((((int) (var_31)) & ((int) (-6036))) | (((int) (struct_obj_8.member_4_1.member_3_0)) & ((int) (119)))) & ((int) ((short) (((int) (var_51)) & ((int) (struct_obj_6.member_5_1))))))); - signed char var_134 = ((int) (var_28)) - ((((+((int) (struct_obj_4.member_2_3.member_1_0))) - (+((int) (17696)))) - ((int) (var_22))) + (((int) ((short) ((unsigned short) (var_27)))) + (((int) (var_23)) + (-((int) (var_1)))))); - unsigned short var_135 = (!((!(((int) (41271)) && ((int) (13731)))) || (((int) (25327)) || (!((int) (-8624)))))) && ((!((((int) (6099)) || ((int) (122))) && (((int) (39583)) || ((int) (32873))))) || (!((!((int) (16105))) || (((int) (var_28)) - ((((+((int) (struct_obj_4.member_2_3.member_1_0))) - (+((int) (17696)))) - ((int) (var_22))) + (((int) ((short) ((unsigned short) (var_27)))) + (((int) (var_23)) + (-((int) (var_1)))))))))); - signed char var_136 = (signed char) (((int) (((int) ((((int) (var_35)) % ((int) (struct_obj_6.member_5_1))) <= ((int) ((signed char) (var_20))))) <= (~(((int) (-26722)) ^ ((int) (-5)))))) * ((!(((int) (struct_obj_2.member_5_2)) % ((int) (var_12)))) >> (!(!((int) (10583)))))); - unsigned short var_137 = ~((int) ((signed char) (~(~((int) ((unsigned short) (var_8))))))); - } - - signed char var_138 = ((~((((int) (struct_obj_9.member_2_4)) + ((int) (var_48))) - ((int) (((int) (25852)) > ((int) (32844)))))) || (((int) ((unsigned short) (((int) (12)) < ((int) (35004))))) + ((int) (20954)))) >= ((int) (struct_obj_4.member_2_6)); - if (~(~(((int) (var_9)) ^ (~(((int) (var_56)) & ((int) (-97))))))) - { - unsigned short var_139 = ((int) (struct_obj_4.member_2_3.member_1_1)) < ((((((int) (59174)) ^ ((int) (-69))) & (~((int) (122)))) & ((((int) (24)) & ((int) (61565))) ^ (((int) (54007)) | ((int) (-60))))) & ((~(((int) (-1951)) | ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)))) & (~(((int) (var_55)) ^ ((int) (54148)))))); - short var_140 = (((int) (struct_obj_3.member_5_1)) && ((int) ((unsigned short) ((((int) (var_18)) || ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))) > (((int) (23085)) & ((int) (-10998))))))) & (((!(((int) (var_64)) && ((int) (22)))) || ((!((int) (-372))) && (((int) (196)) || ((int) (28127))))) && (!((!((int) (var_28))) || (((int) (-3298)) || ((int) (86)))))); - signed char var_141 = 32; - unsigned short var_142 = (short) (((int) (-91)) || (!(!(((int) (-2370)) || ((int) (-120)))))); - var_143 = (signed char) ((unsigned short) ((~((int) (struct_obj_6.member_5_0))) & ((int) ((signed char) ((short) ((signed char) (struct_obj_4.member_2_6))))))); - short var_144 = 65519; - } - - var_55 = (signed char) (((-((int) ((((int) (struct_obj_10.member_1_3)) - ((int) (struct_obj_8.member_4_9.member_1_1))) < ((((int) (struct_obj_5.member_1_3)) + (2147483647)) >> ((((int) (-2633)) + (2665)) - (21)))))) & (~(((int) (21384)) * (((int) (struct_obj_4.member_2_3.member_1_0)) * ((int) (struct_obj_4.member_2_1.member_1_3)))))) == ((~(~(((int) (var_11)) | ((int) (28869))))) | (((int) (struct_obj_10.member_1_2)) | (~(((int) (struct_obj_7.member_1_2)) & ((int) (var_31))))))); - short var_145 = (((int) (((int) ((unsigned short) (66))) == (~(((int) (-108)) & ((int) (var_50)))))) / (-(+((int) (((int) (var_49)) != ((int) (var_43))))))) == (((int) (var_60)) | (-(-(+((int) (-28574)))))); - short var_146 = (((int) ((signed char) (((int) (((int) (struct_obj_6.member_5_2)) <= ((int) (var_51)))) && ((int) ((unsigned short) (var_23)))))) * ((int) (((int) (struct_obj_1.member_5_2)) == ((((int) (var_66)) & ((int) (37785))) & ((int) ((~((int) (var_15))) != (~((((((int) (struct_obj_4.member_2_7)) + (2147483647)) << ((((int) (var_30)) - (42704)) - (1))) | ((int) (var_18))) << (((int) ((unsigned short) (~((int) (struct_obj_3.member_5_3))))) - (26655)))))))))) % ((int) ((unsigned short) (((+((int) (var_20))) + (((int) (struct_obj_4.member_2_2)) * ((int) (var_52)))) + (+(+((int) (var_58))))))); - if ((signed char) ((((((int) (var_50)) ^ ((int) (58076))) ^ (((int) (struct_obj_2.member_5_1)) << (((int) (struct_obj_8.member_4_0)) - (17338)))) >> ((~(~((int) (var_8)))) - (14640))) << (((int) (((int) (((int) (27168)) < ((int) (var_45)))) < (((int) (41179)) & ((int) (-9862))))) >> (((int) (-56)) + (59))))) - { - unsigned short var_147 = var_7; - unsigned short var_148 = (((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_1)) + ((int) (-42))) - (((int) (struct_obj_8.member_4_9.member_1_2)) + ((int) (var_24)))))) - ((int) ((~((int) (var_15))) != (~((((((int) (struct_obj_4.member_2_7)) + (2147483647)) << ((((int) (var_30)) - (42704)) - (1))) | ((int) (var_18))) << (((int) ((unsigned short) (~((int) (struct_obj_3.member_5_3))))) - (26655))))))) % (((-(+((int) (struct_obj_2.member_5_0)))) >> ((((int) (19611)) << (((int) (7596)) - (7595))) >> (((int) ((short) (struct_obj_8.member_4_1.member_3_1.member_1_2))) + (90)))) % (-((int) (struct_obj_4.member_2_3.member_1_3)))); - signed char var_149 = (signed char) (9177); - signed char var_150 = ~((((((int) (var_32)) >> (((int) (var_63)) - (21651))) >> ((((int) (var_52)) & ((int) (var_28))) - (9212))) << ((((int) ((short) (var_37))) << (((int) (var_59)) >> (((int) (struct_obj_8.member_4_0)) - (17332)))) - (924))) << ((~(~(((int) (struct_obj_1.member_5_1)) & ((int) (var_65))))) - (19726))); - short var_151 = ((int) (((int) ((~(~((int) (var_28)))) >= (((int) ((unsigned short) (45))) % ((int) ((unsigned short) (59243)))))) != ((int) ((unsigned short) (!((int) (2861))))))) && (-(((-((int) (struct_obj_6.member_5_0))) * ((int) (76))) / (~(~((int) (struct_obj_6.member_5_0)))))); - var_152 = (short) ((short) ((!((((int) (-48)) && ((int) (var_29))) && (!((int) (27080))))) | ((int) ((signed char) (+(+((int) (var_47)))))))); - short var_153 = ~(!(((int) ((~((int) (var_15))) != (~((((((int) (struct_obj_4.member_2_7)) + (2147483647)) << ((((int) (var_30)) - (42704)) - (1))) | ((int) (var_18))) << (((int) ((unsigned short) (~((int) (struct_obj_3.member_5_3))))) - (26655)))))) ^ ((int) ((short) (((int) (13313)) >> (((int) (4429)) - (4409))))))); - short var_154 = (signed char) (((int) ((signed char) (((~((int) (38068))) + (2147483647)) >> ((((int) (5010)) << ((((int) (-97)) + (120)) - (9))) - (82083818))))) & (((((int) (var_27)) >> (((int) (var_34)) + (88))) >> ((((int) (var_6)) ^ ((int) (struct_obj_4.member_2_1.member_1_0))) - (40569))) | ((int) (23074)))); - } - - } - - short var_155 = ((~((int) ((signed char) ((short) (struct_obj_4.member_2_3.member_1_2))))) | (~(((((int) (var_8)) | ((int) (struct_obj_1.member_5_0))) + (2147483647)) << ((((int) (var_18)) << (((int) (struct_obj_2.member_5_3)) - (25447))) - (157696))))) > ((int) ((((!((int) (55608))) || (((int) (42069)) && ((int) (struct_obj_4.member_2_0)))) && (!((int) ((signed char) (struct_obj_8.member_4_1.member_3_1.member_1_0))))) == ((((int) (((int) (struct_obj_1.member_5_1)) <= ((int) (var_18)))) & ((int) (((int) (7701)) != ((int) (var_7))))) && ((int) ((((int) (struct_obj_9.member_2_2)) - ((int) (var_1))) <= (((int) (struct_obj_4.member_2_1.member_1_1)) ^ ((int) (struct_obj_10.member_1_3)))))))); - if (((!((((int) (var_1)) || ((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) || (((int) (struct_obj_8.member_4_6)) || ((int) (var_49))))) && ((!(((int) (var_29)) || ((int) (95)))) && (!((int) ((short) (struct_obj_6.member_5_1)))))) || (!((!(((int) (var_48)) || ((int) (var_31)))) && (((int) ((unsigned short) (struct_obj_8.member_4_5))) && (!((int) (var_25))))))) - { - var_156 = (signed char) (+(((int) (struct_obj_4.member_2_2)) / (~((int) ((unsigned short) (~((int) (struct_obj_8.member_4_6)))))))); - signed char var_157 = (short) (((int) (var_15)) << (((int) ((signed char) (((int) (struct_obj_8.member_4_9.member_1_0)) & ((int) (17017))))) >> ((((((int) (struct_obj_1.member_5_1)) << (((int) (var_39)) - (28162))) & ((int) (struct_obj_1.member_5_2))) - (55360)) - (15)))); - signed char var_158 = ~((int) (struct_obj_9.member_2_7)); - unsigned short var_159 = (((int) (((int) ((unsigned short) (((int) (var_14)) << ((int) (struct_obj_4.member_2_3.member_1_0))))) < (((int) (((int) (struct_obj_8.member_4_9.member_1_2)) > ((int) (5)))) * (((int) (-30137)) * ((int) (49178)))))) && (((int) ((short) (struct_obj_8.member_4_5))) & ((~((int) (var_39))) ^ (((int) (var_48)) & ((int) (struct_obj_1.member_5_0)))))) >> ((int) ((unsigned short) (!(((int) ((signed char) (42511))) & (((int) (struct_obj_8.member_4_2)) >> (((int) (struct_obj_4.member_2_3.member_1_2)) + (83))))))); - short var_160 = ((int) (((int) (30759)) < (~((int) ((short) (((int) (var_34)) ^ ((int) (struct_obj_8.member_4_1.member_3_0)))))))) <= ((-((int) ((((int) (-24352)) && ((int) (struct_obj_8.member_4_9.member_1_0))) < ((int) ((signed char) (struct_obj_3.member_5_2)))))) | (((((int) (struct_obj_8.member_4_6)) && ((int) (struct_obj_9.member_2_1.member_1_0))) ^ (((int) (-3094)) & ((int) (var_1)))) / ((int) ((signed char) (+((int) (var_42))))))); - short var_161 = (short) ((-((int) ((signed char) (((int) (struct_obj_8.member_4_5)) ^ ((int) (var_36)))))) > (((((int) (var_54)) & ((int) (-24453))) | (~((int) (struct_obj_9.member_2_1.member_1_3)))) | ((((int) (struct_obj_8.member_4_7)) | ((int) (var_159))) & (((int) (var_63)) & ((int) (var_13)))))); - if (-((int) ((unsigned short) (!((int) (16141)))))) - { - var_162 = (signed char) ((short) (19938)); - var_38 = (signed char) (((int) ((signed char) ((((int) ((unsigned short) (struct_obj_4.member_2_3.member_1_3))) << ((((int) (var_16)) ^ ((int) (66))) - (7830))) & ((((int) (16)) << (((int) (28592)) - (28568))) ^ (((int) (14689)) ^ ((int) (-24415))))))) & ((int) (struct_obj_4.member_2_3.member_1_2))); - unsigned short var_163 = (signed char) (((~((int) ((unsigned short) (var_50)))) - ((((int) (55181)) >> (((int) (-105)) + (108))) | (((int) (50003)) << ((((int) (var_30)) - (42689)) - (15))))) & ((int) (struct_obj_8.member_4_0))); - unsigned short var_164 = struct_obj_10.member_1_3; - unsigned short var_165 = struct_obj_4.member_2_7; - unsigned short var_166 = ((int) (var_56)) >> ((int) (((~(((int) (var_33)) ^ ((int) (2184)))) & ((int) ((((int) (var_30)) ^ ((int) (13945))) != ((((int) (-25)) + (2147483647)) >> (((int) (struct_obj_1.member_5_1)) - (32568)))))) <= ((int) (struct_obj_4.member_2_7)))); - } - else - { - short var_167 = (short) (~(((((int) (-125)) & ((int) (var_55))) | (((int) (30445)) | ((int) (var_14)))) | ((((int) (struct_obj_4.member_2_6)) | ((int) (struct_obj_3.member_5_1))) | (((int) (struct_obj_4.member_2_1.member_1_3)) ^ ((int) (42952)))))); - unsigned short var_168 = (((int) ((unsigned short) ((~((int) (36216))) | ((int) (-29579))))) >> ((~((((int) (10544)) & ((int) (11868))) << ((((int) (26935)) | ((int) (struct_obj_8.member_4_1.member_3_0))) - (27566)))) + (5251073))) << ((((((~((int) (struct_obj_10.member_1_2))) ^ (((int) (77)) << (((int) (var_66)) - (65517)))) << ((((((int) (-78)) + (2147483647)) << (((int) (var_60)) - (21585))) << ((((int) ((signed char) (struct_obj_4.member_2_4))) + (15)) - (10))) - (2147483563))) | (~((int) ((signed char) (((int) (73)) >> (((int) (6327)) - (6305))))))) + (18)) - (13)); - short var_169 = ((((int) (var_23)) & ((((int) (var_54)) + (2147483647)) << (((((((int) (-6568)) + (2147483647)) >> (((int) (-25044)) + (25060))) - (32766)) - (0)) - (1)))) >> (((int) ((signed char) ((signed char) (~((int) (32011)))))) + (12))) && (((!(((int) (var_11)) || ((int) (struct_obj_9.member_2_6)))) || ((!((int) (struct_obj_9.member_2_0))) || (((int) (struct_obj_4.member_2_3.member_1_2)) || ((int) (struct_obj_2.member_5_2))))) || (!((int) ((short) (((int) (-29488)) && ((int) (struct_obj_4.member_2_3.member_1_2))))))); - signed char var_170 = (unsigned short) (var_26); - signed char var_171 = !(((int) ((signed char) ((((int) (struct_obj_6.member_5_3)) - ((int) (var_65))) - (((int) (struct_obj_8.member_4_9.member_1_0)) << (((int) (struct_obj_4.member_2_2)) - (30774)))))) || (((int) (var_158)) * ((int) ((short) (((int) (var_157)) && ((int) (var_27))))))); - unsigned short var_172 = (~((int) ((signed char) ((((int) (13)) % ((int) (struct_obj_8.member_4_7))) > ((int) ((unsigned short) (-112))))))) >= (~((((int) (struct_obj_8.member_4_3)) ^ (((int) (var_155)) << (((int) (struct_obj_7.member_1_2)) + (146)))) >> ((~(((int) (var_46)) >> (((int) (struct_obj_2.member_5_2)) - (41436)))) + (80)))); - short var_173 = -(-(-(-((int) (struct_obj_1.member_5_2))))); - } - - if (((int) (((int) (((int) (struct_obj_2.member_5_2)) >= ((((int) (var_45)) | ((int) (15962))) | (((int) (struct_obj_9.member_2_6)) ^ ((int) (64811)))))) <= ((int) ((unsigned short) (~(((int) (var_39)) || ((int) (struct_obj_4.member_2_7)))))))) >> ((int) ((signed char) (((int) ((~((int) (struct_obj_8.member_4_8))) <= (((int) (struct_obj_2.member_5_1)) * ((int) (var_43))))) == (-(+((int) (22055)))))))) - { - signed char var_174 = ((int) (var_47)) ^ (((((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_0)) >> (((int) (var_17)) - (32638))) % (((int) (var_3)) && ((int) (var_3)))))) * (((int) ((short) (!((int) (struct_obj_2.member_5_3))))) * ((((int) (var_12)) * ((int) (76))) / (((int) (struct_obj_2.member_5_3)) * ((int) (var_35)))))) + (~((int) (var_33)))) & ((int) (struct_obj_4.member_2_6))); - short var_175 = (~((((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_0)) >> (((int) (var_17)) - (32638))) % (((int) (var_3)) && ((int) (var_3)))))) * (((int) ((short) (!((int) (struct_obj_2.member_5_3))))) * ((((int) (var_12)) * ((int) (76))) / (((int) (struct_obj_2.member_5_3)) * ((int) (var_35)))))) + (~((int) (var_33))))) <= (((((int) (var_31)) & ((int) ((unsigned short) (43682)))) & ((int) ((short) (((int) (var_9)) | ((int) (var_18)))))) ^ (~(((int) (struct_obj_4.member_2_1.member_1_3)) ^ (~((int) (52103)))))); - short var_176 = (((((((int) (-75)) ^ ((int) (31369))) + (2147483647)) >> (((int) ((unsigned short) (-29))) - (65506))) & ((int) (2146))) << (((((int) (var_2)) * ((int) (struct_obj_3.member_5_3))) / ((((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_0)) >> (((int) (var_17)) - (32638))) % (((int) (var_3)) && ((int) (var_3)))))) * (((int) ((short) (!((int) (struct_obj_2.member_5_3))))) * ((((int) (var_12)) * ((int) (76))) / (((int) (struct_obj_2.member_5_3)) * ((int) (var_35)))))) + (~((int) (var_33))))) * ((((int) (var_24)) * ((int) (var_47))) / (((int) (var_5)) * ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)))))) * ((int) ((unsigned short) ((((int) (27537)) / (((int) (-15573)) * ((int) (struct_obj_9.member_2_0)))) * (!(((int) (12)) * ((int) (struct_obj_8.member_4_0))))))); - unsigned short var_177 = ((((((int) (40535)) * ((int) (var_30))) * (!((int) (struct_obj_6.member_5_1)))) * ((((int) (var_50)) / ((int) (58121))) * (((int) (54878)) * ((int) (struct_obj_8.member_4_0))))) * ((((int) ((short) (53))) * (((int) (32)) * ((int) (var_175)))) * (((int) ((signed char) (19151))) * (~((int) (16207)))))) * ((int) (var_16)); - var_178 = (short) ((~(~((int) ((signed char) (~((int) (4771))))))) >> ((((!(((int) (64904)) && ((int) (-98)))) * ((int) ((signed char) (~((int) (34931)))))) - (((int) (struct_obj_7.member_1_1)) & (((int) (((int) (struct_obj_9.member_2_0)) < ((int) (40)))) || (((int) (struct_obj_6.member_5_0)) % ((int) (struct_obj_5.member_1_1)))))) + (32))); - unsigned short var_179 = ~((int) ((unsigned short) (((((int) (var_174)) | ((int) (struct_obj_2.member_5_0))) | (((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)) ^ ((int) (struct_obj_8.member_4_7)))) ^ (~(~((int) (struct_obj_8.member_4_6))))))); - signed char var_180 = ((int) (((int) ((!((int) ((unsigned short) (47545)))) <= (~(~((int) (2410)))))) >= ((int) (((((int) (1)) ^ ((int) (13528))) | ((int) ((signed char) (var_65)))) == ((+((int) (var_175))) & ((int) ((unsigned short) (14219)))))))) <= (((int) ((signed char) (((int) (((int) (var_6)) <= ((int) (var_23)))) <= ((int) ((signed char) (var_58)))))) + (((((int) (struct_obj_4.member_2_1.member_1_1)) ^ ((int) (var_4))) ^ ((int) (struct_obj_9.member_2_1.member_1_3))) && ((((int) (-3265)) & ((int) (12497))) * ((int) (((int) (struct_obj_9.member_2_0)) == ((int) (struct_obj_9.member_2_1.member_1_1))))))); - signed char var_181 = (+((((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_0)) >> (((int) (var_17)) - (32638))) % (((int) (var_3)) && ((int) (var_3)))))) * (((int) ((short) (!((int) (struct_obj_2.member_5_3))))) * ((((int) (var_12)) * ((int) (76))) / (((int) (struct_obj_2.member_5_3)) * ((int) (var_35)))))) + (~((int) (var_33))))) + ((((~((int) (7403))) & (((int) (struct_obj_4.member_2_0)) ^ ((int) (var_58)))) & (((((int) ((signed char) ((((int) (struct_obj_4.member_2_3.member_1_0)) >> (((int) (var_17)) - (32638))) % (((int) (var_3)) && ((int) (var_3)))))) * (((int) ((short) (!((int) (struct_obj_2.member_5_3))))) * ((((int) (var_12)) * ((int) (76))) / (((int) (struct_obj_2.member_5_3)) * ((int) (var_35)))))) + (~((int) (var_33)))) & (((int) (struct_obj_8.member_4_5)) & ((int) (struct_obj_3.member_5_3))))) * (~((int) ((+((int) (struct_obj_8.member_4_7))) <= (((int) (-24292)) - ((int) (38418))))))); - var_46 = (unsigned short) (~(!((int) ((signed char) (((int) (((int) (55161)) < ((int) (var_36)))) + (+((int) (var_55)))))))); - } - else - { - signed char var_182 = (~(~((~((int) (struct_obj_1.member_5_1))) & (((int) (13831)) | ((int) (struct_obj_4.member_2_1.member_1_0)))))) | (~(((((int) (97)) | ((int) (struct_obj_4.member_2_3.member_1_3))) & ((int) ((signed char) (var_4)))) & ((((int) (119)) ^ ((int) (-1))) | ((int) (struct_obj_9.member_2_0))))); - signed char var_183 = ~(((!(!((int) (var_20)))) | ((int) ((short) (((int) (struct_obj_6.member_5_1)) >> (((int) (12242)) - (12212)))))) || (~((((int) (var_32)) & ((int) (var_63))) ^ (((int) (29262)) & ((int) (var_3)))))); - short var_184 = ((((int) ((signed char) ((unsigned short) (43)))) & (~(((int) (struct_obj_4.member_2_3.member_1_3)) ^ ((int) (52))))) ^ (~((int) (struct_obj_10.member_1_2)))) << (((int) (struct_obj_4.member_2_7)) + (9528)); - unsigned short var_185 = ~((int) (struct_obj_3.member_5_1)); - short var_186 = ((int) ((short) (-((((int) (struct_obj_8.member_4_5)) - ((int) (var_65))) - (((int) (28254)) - ((int) (struct_obj_6.member_5_3))))))) * ((+((-((int) (struct_obj_8.member_4_7))) + ((int) ((signed char) (struct_obj_4.member_2_3.member_1_3))))) + ((int) ((short) (struct_obj_4.member_2_1.member_1_3)))); - short var_187 = struct_obj_5.member_1_3; - } - - if (~((+(!((int) ((signed char) (struct_obj_9.member_2_1.member_1_0))))) * ((int) ((short) ((short) (~((int) (var_19)))))))) - { - unsigned short var_188 = (~(-((int) (((int) ((unsigned short) (-23))) <= (((int) (struct_obj_4.member_2_1.member_1_0)) || ((int) (24497))))))) | ((+(~(((int) (var_43)) * ((int) (struct_obj_4.member_2_1.member_1_1))))) + ((int) (struct_obj_8.member_4_3))); - unsigned short var_189 = (unsigned short) ((~((~((int) (97))) & (+((int) ((unsigned short) (+(((int) (((int) (var_21)) < ((int) (var_19)))) / (+((int) (-23249)))))))))) | (((int) ((short) (-15924))) ^ ((((int) (31)) ^ ((int) (var_7))) ^ (~((int) (struct_obj_6.member_5_1)))))); - signed char var_190 = ((((((int) (14001)) | ((int) (73))) & ((int) ((unsigned short) (12149)))) & ((((int) (-78)) | ((int) (39))) | (+((int) ((unsigned short) (+(((int) (((int) (var_21)) < ((int) (var_19)))) / (+((int) (-23249)))))))))) | ((int) (((int) (24297)) <= (+((int) ((unsigned short) (+(((int) (((int) (var_21)) < ((int) (var_19)))) / (+((int) (-23249))))))))))) != ((int) ((unsigned short) (18898))); - signed char var_191 = (~(((~((int) (-11939))) & (~((int) (var_26)))) >> (((((int) (struct_obj_4.member_2_6)) >> (((int) (10058)) - (10057))) & (((int) (struct_obj_9.member_2_1.member_1_3)) << (((int) (var_10)) - (21745)))) - (10531)))) | ((((~((int) (var_1))) | (((int) (struct_obj_6.member_5_2)) << (((int) (-15680)) + (15686)))) | (((int) ((signed char) (60447))) | (((int) (-11899)) & ((int) (var_15))))) & ((((int) (var_43)) >> ((~((int) (struct_obj_4.member_2_0))) + (7623))) ^ ((~((int) (struct_obj_7.member_1_0))) | (((int) (30163)) & ((int) (var_21)))))); - signed char var_192 = ((!((int) ((unsigned short) (((int) (28)) && ((int) (var_40)))))) || (!((int) ((signed char) (((int) (var_48)) || ((int) (struct_obj_9.member_2_0))))))) ^ ((int) (((int) (((int) (-113)) <= ((((int) (12)) || ((int) (52))) ^ (((int) (2031)) * ((int) (8257)))))) == ((int) ((signed char) ((((int) (struct_obj_3.member_5_1)) & ((int) (var_11))) & (((int) (var_2)) ^ ((int) (struct_obj_8.member_4_4)))))))); - signed char var_193 = 18614; - } - - short var_194 = ~((((int) (47259)) ^ (+((int) ((unsigned short) (+(((int) (((int) (var_21)) < ((int) (var_19)))) / (+((int) (-23249))))))))) & ((((int) (57390)) << ((((int) (25700)) << ((int) (14))) - (421068788))) << (((int) (var_27)) - (15318)))); - } - - signed char var_195 = ((~(~(~((int) (struct_obj_8.member_4_9.member_1_0))))) ^ ((~(((int) (struct_obj_8.member_4_3)) ^ ((int) (8)))) & (((int) (-23)) | ((int) (5564))))) ^ (+(~((int) ((-((int) (118))) != ((int) (((int) (-117)) != ((int) (34786)))))))); - if ((((~((((int) (struct_obj_8.member_4_2)) | ((int) (struct_obj_9.member_2_2))) & ((int) ((unsigned short) (var_11))))) + (2147483647)) >> (((!((int) (struct_obj_7.member_1_1))) && (((int) (-27411)) && ((int) (var_57)))) * (((int) (((int) (var_53)) > ((int) (struct_obj_8.member_4_0)))) * (-((int) (var_11)))))) & (((((int) (120)) & ((int) ((unsigned short) (struct_obj_8.member_4_1.member_3_0)))) & ((int) ((signed char) (-((int) (2523)))))) && (!((int) ((short) (((int) (var_1)) - ((int) (struct_obj_2.member_5_3)))))))) - { - if ((~((int) ((short) ((((int) (-7247)) ^ ((int) (96))) & (((int) (115)) | ((int) (42355))))))) & ((((int) (63543)) & ((int) ((unsigned short) (((int) (17803)) ^ ((int) (11828)))))) | (((int) (-29)) | ((int) ((short) (~((int) (10016)))))))) - { - short var_196 = var_1; - unsigned short var_197 = ((((int) ((unsigned short) (((int) (struct_obj_9.member_2_1.member_1_0)) ^ ((int) (struct_obj_7.member_1_1))))) | (((int) (struct_obj_9.member_2_1.member_1_0)) | (((int) (-51)) ^ ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))))) & (((((int) (110)) & ((int) (-28957))) | ((int) (struct_obj_9.member_2_1.member_1_0))) & ((~((int) (var_21))) & ((int) ((signed char) (-15740)))))) & ((~((~((int) (struct_obj_8.member_4_9.member_1_1))) & (((int) (var_38)) | ((int) (-4512))))) & (((int) ((signed char) (26344))) ^ (((int) (23010)) | ((int) (21555))))); - short var_198 = ((int) (((int) ((short) (-((int) (21555))))) <= ((int) (((int) ((((int) (59115)) || ((int) (73))) <= ((int) ((short) (var_1))))) <= (~(((int) (struct_obj_7.member_1_1)) * ((int) (var_15)))))))) <= ((int) ((((((int) (struct_obj_4.member_2_7)) || ((int) (var_42))) & ((int) (21555))) + ((int) ((unsigned short) (21555)))) <= ((int) (((int) ((unsigned short) (-((int) (var_57))))) != ((int) ((signed char) (~((int) (struct_obj_5.member_1_3))))))))); - var_39 = (unsigned short) (+((int) (21555))); - short var_199 = ((int) (((int) (struct_obj_6.member_5_3)) > (((((int) (55447)) - ((int) (121))) - (((int) (124)) + ((int) (23562)))) + ((int) (67))))) == ((int) (21555)); - var_46 = (unsigned short) (-((int) (var_196))); - short var_200 = (-((int) (struct_obj_3.member_5_0))) - (~((int) (var_55))); - unsigned short var_201 = ((int) ((((((int) (var_65)) && ((int) (var_7))) && ((int) ((unsigned short) (29456)))) && ((((int) (-11627)) || ((int) (var_62))) || ((int) ((unsigned short) (struct_obj_8.member_4_4))))) <= ((int) ((((int) (((int) (39895)) == ((int) (struct_obj_4.member_2_0)))) - ((int) (((int) (18541)) <= ((int) (var_197))))) == ((((int) (-6609)) | ((int) (-118))) * (((int) (var_195)) >> (((int) (50558)) - (50551)))))))) < (((int) ((short) (((int) ((unsigned short) (var_5))) || (((int) (struct_obj_2.member_5_1)) && ((int) (var_43)))))) || (((!((int) (51194))) && (!((int) (41084)))) && (((int) ((signed char) (struct_obj_4.member_2_0))) || (!((int) (var_42)))))); - signed char var_202 = ((~((int) ((short) (((int) (-6444)) | ((int) (17)))))) | ((int) ((signed char) ((((int) (var_49)) ^ ((int) (120))) | (((int) (struct_obj_2.member_5_2)) | ((int) (-10264))))))) ^ (((((int) ((short) (struct_obj_1.member_5_2))) & (((int) (var_34)) & ((int) (64379)))) | ((((int) (-20555)) & ((int) (struct_obj_8.member_4_3))) & (((int) (struct_obj_8.member_4_4)) & ((int) (20891))))) | (((((int) (struct_obj_2.member_5_3)) & ((int) (30905))) | ((int) (21555))) ^ (~(((int) (struct_obj_4.member_2_3.member_1_3)) & ((int) (var_52)))))); - short var_203 = (!((((int) ((signed char) (~((!(((int) (27437)) && ((int) (-123)))) / (~((int) (((int) (var_31)) <= ((int) (var_26))))))))) * (((int) (23332)) * ((int) (var_23)))) / ((int) ((short) (((int) (43615)) * ((int) (var_56))))))) != (-((int) ((unsigned short) (((int) ((short) (struct_obj_9.member_2_6))) & (((int) (var_36)) ^ ((int) (var_45))))))); - } - - var_49 = (signed char) (~(~(~(((~((int) (var_66))) + (2147483647)) << (((((int) (-6282)) | ((int) (var_4))) + (4231)) - (5)))))); - if (((int) ((signed char) (~((((int) (var_54)) ^ ((int) (struct_obj_8.member_4_0))) ^ (~((int) (var_54))))))) & ((int) ((short) (((~((int) (20559))) | (~((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)))) & ((int) (-27)))))) - { - signed char var_204 = ((~((int) (var_54))) ^ (((((int) (var_32)) & ((int) (var_11))) | (((int) (-113)) ^ ((int) (var_28)))) ^ (~(((int) (struct_obj_8.member_4_1.member_3_0)) & ((int) (var_51)))))) & ((int) ((unsigned short) ((unsigned short) (var_44)))); - short var_205 = (signed char) ((+((int) ((short) (((int) (-7851)) + ((int) (struct_obj_5.member_1_1)))))) + ((int) ((short) ((((int) (5103)) - ((int) (var_22))) - (((int) (var_7)) - ((int) (struct_obj_10.member_1_0))))))); - short var_206 = (~((int) ((unsigned short) (~((int) ((short) (43004))))))) > ((int) ((signed char) (((int) ((short) (((int) (-4829)) | ((int) (struct_obj_9.member_2_5))))) >= ((int) (((int) (struct_obj_10.member_1_3)) <= ((int) ((unsigned short) (-29121)))))))); - unsigned short var_207 = ~((int) (var_49)); - short var_208 = (short) (((int) ((unsigned short) (~((int) ((short) (((int) (struct_obj_3.member_5_2)) ^ ((int) (var_18)))))))) ^ ((((((int) (20589)) >> (((int) (-20937)) + (20947))) ^ ((int) (47282))) | (~(~((int) (23))))) & (((((int) (struct_obj_3.member_5_1)) << (((int) (var_7)) - (42))) << (((int) (var_33)) >> (((int) (struct_obj_2.member_5_1)) - (25738)))) << (((int) ((short) (var_34))) + (89))))); - } - - if (((int) (struct_obj_9.member_2_6)) << ((int) (((int) ((!((int) ((unsigned short) (var_43)))) <= ((int) (var_7)))) > (((int) (72)) ^ ((((int) (var_28)) & ((int) (24924))) | (~((int) (struct_obj_7.member_1_0)))))))) - { - unsigned short var_209 = ~((((~((int) (18314))) | ((int) ((unsigned short) (var_14)))) & ((((int) (struct_obj_9.member_2_2)) & ((int) (struct_obj_8.member_4_9.member_1_0))) ^ (~((int) (-31087))))) ^ (((int) (80)) | ((((int) (struct_obj_8.member_4_9.member_1_0)) & ((int) (struct_obj_4.member_2_5))) ^ (((int) (47697)) | ((int) (53)))))); - signed char var_210 = var_38; - unsigned short var_211 = ((int) ((unsigned short) ((~((int) (-10493))) < (!(-((int) (var_3))))))) <= (!(~((~((int) (var_36))) | (((int) (struct_obj_3.member_5_2)) | ((int) (struct_obj_4.member_2_3.member_1_3)))))); - signed char var_212 = ((((int) ((signed char) (((int) (16621)) ^ ((int) (17647))))) | ((((int) (var_7)) | ((int) (-95))) | (((int) (var_64)) & ((int) (struct_obj_1.member_5_0))))) | (((int) (struct_obj_8.member_4_4)) ^ ((~((int) (-19306))) | (((int) (-8522)) ^ ((int) (7284)))))) ^ ((~(((int) ((short) (struct_obj_10.member_1_3))) ^ (((int) (struct_obj_5.member_1_3)) ^ ((int) (struct_obj_9.member_2_0))))) ^ (((int) (var_5)) | ((~((int) (35989))) | (((int) (125)) ^ ((int) (struct_obj_4.member_2_1.member_1_1)))))); - signed char var_213 = (((int) (var_41)) & (((((int) (struct_obj_1.member_5_3)) ^ ((int) (6820))) ^ (~((int) (var_41)))) ^ (~(((int) (16070)) ^ ((int) (struct_obj_1.member_5_0)))))) ^ (~(((((int) (var_56)) << ((((int) (var_54)) + (24931)) - (19))) | (((int) (9)) & ((int) (46955)))) << (((~((int) ((signed char) (var_12)))) + (63)) - (19)))); - short var_214 = ((!((((int) (var_41)) || ((int) (var_4))) || (!((int) (var_1))))) && (!(((int) (struct_obj_10.member_1_3)) || (((int) (21126)) || ((int) (var_210)))))) && ((((int) ((unsigned short) (var_42))) || ((int) ((short) (struct_obj_4.member_2_1.member_1_1)))) && ((int) (struct_obj_5.member_1_1))); - unsigned short var_215 = (((int) (struct_obj_7.member_1_2)) + (2147483647)) >> ((~(((int) (((int) (-30700)) != ((int) (struct_obj_10.member_1_2)))) - ((int) (var_58)))) || (~(((int) ((short) (4835))) ^ ((int) (struct_obj_9.member_2_1.member_1_0))))); - } - - signed char var_216 = +((int) ((signed char) ((short) ((((int) (29926)) - ((int) (struct_obj_4.member_2_1.member_1_1))) + (-((int) (var_9))))))); - var_217 = (signed char) (~(~(-((~((int) (11848))) & (((int) (-110)) & ((int) (struct_obj_3.member_5_1))))))); - signed char var_218 = (~((~(~((int) (struct_obj_8.member_4_0)))) << ((((int) (5903)) ^ ((int) (var_10))) >> ((((int) (var_4)) & ((int) (-13690))) - (2545))))) > (-(-(~(~((int) (struct_obj_9.member_2_1.member_1_1)))))); - unsigned short var_219 = (~((int) ((short) (((int) (((int) (var_195)) <= ((int) (struct_obj_1.member_5_1)))) | ((int) (-70)))))) <= ((int) ((unsigned short) ((unsigned short) ((((int) (-126)) & ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))) ^ (((int) (struct_obj_9.member_2_0)) ^ ((int) (var_19))))))); - signed char var_220 = (unsigned short) ((((int) (-23)) ^ (((int) ((unsigned short) (var_42))) | ((int) (-27960)))) & (((~((int) (62588))) ^ (((int) (struct_obj_4.member_2_2)) | ((int) (struct_obj_4.member_2_3.member_1_3)))) & (~((int) (struct_obj_10.member_1_2))))); - if (((((((int) (3)) && ((int) (var_54))) && (((int) (struct_obj_10.member_1_3)) || ((int) (struct_obj_8.member_4_8)))) || (!(((int) (struct_obj_8.member_4_6)) && ((int) (struct_obj_3.member_5_2))))) && (((int) ((signed char) (!((int) (struct_obj_4.member_2_1.member_1_0))))) || ((int) (32382)))) <= (((~(((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))) ^ ((int) ((signed char) (-21650))))) + (2147483647)) >> ((int) (((int) (((int) (((int) (struct_obj_8.member_4_4)) <= ((int) (-601)))) != (!((int) (struct_obj_8.member_4_0))))) > ((int) (((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))) < (!((int) (9829))))))))) - { - short var_221 = ((((-((int) (var_17))) - (((int) (var_30)) + ((int) (struct_obj_4.member_2_2)))) / (((int) (struct_obj_8.member_4_3)) - (((int) (var_5)) * ((int) (var_3))))) * (((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))) + (-(((int) (14421)) + ((int) (23698)))))) + ((((((int) (struct_obj_9.member_2_2)) + ((int) (25482))) - (((int) (-46)) - ((int) (struct_obj_5.member_1_1)))) / ((-((int) (var_216))) + (+((int) (64628))))) - ((((int) ((signed char) (-7))) - (+((int) (var_54)))) - ((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)))); - var_65 = (short) ((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))); - unsigned short var_222 = ((int) ((unsigned short) (((int) (var_63)) ^ (~((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))))))) & ((((int) ((signed char) (~(((int) (var_12)) & ((int) (109)))))) + (2147483647)) << (((((int) ((unsigned short) (var_27))) - (15320)) - (0)) - (1))); - unsigned short var_223 = ((((int) (struct_obj_4.member_2_3.member_1_2)) + (2147483647)) >> (((~(~((int) (var_18)))) << (((((int) (68)) | ((int) (struct_obj_4.member_2_1.member_1_3))) & (((int) (struct_obj_1.member_5_2)) ^ ((int) (-16242)))) + (58826))) - (5046248))) || (((int) ((unsigned short) ((-((int) (9390))) / (((int) (31664)) * ((int) (-70)))))) << ((((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))) | ((int) ((unsigned short) ((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159)))))))))))) - (15329))); - unsigned short var_224 = ((int) (((int) (-11433)) > ((int) (-13855)))) || (~(((int) ((short) (((int) (struct_obj_6.member_5_3)) && ((int) (struct_obj_4.member_2_3.member_1_3))))) ^ (~((int) (((int) (32)) <= ((int) (11233))))))); - signed char var_225 = (((~(((int) (-26)) | ((int) (-117)))) & ((((int) (111)) & ((int) (22599))) ^ (((int) (10345)) << ((((int) (-66)) + (88)) - (12))))) >> (((int) (-3619)) + (3621))) >> ((~((int) (struct_obj_6.member_5_1))) + (44653)); - unsigned short var_226 = ((int) ((((~((int) (struct_obj_9.member_2_5))) | ((int) (22048))) & ((((int) (struct_obj_4.member_2_3.member_1_1)) & ((int) (var_4))) | (((int) (struct_obj_3.member_5_1)) | ((int) (27648))))) <= ((int) (((int) ((signed char) ((((int) (struct_obj_7.member_1_0)) + (2147483647)) >> (((int) (var_15)) - (38610))))) != ((int) ((signed char) ((short) (struct_obj_1.member_5_3)))))))) > (((int) (var_44)) >> ((int) ((unsigned short) (((int) (struct_obj_6.member_5_2)) >> ((~((int) (-18530))) - (18509)))))); - signed char var_227 = ((int) (18755)) * ((int) (((int) ((unsigned short) ((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))))) > ((~(~((int) (37454)))) & ((~((int) (-7983))) | (((int) (-31547)) & ((int) (22310))))))); - signed char var_228 = !(~((int) ((((int) (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) != ((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)))) || (-((int) (42)))) >= ((int) ((short) (((int) (var_195)) ^ ((int) (struct_obj_8.member_4_4)))))))); - unsigned short var_229 = (-(~(~(((int) (var_32)) & ((int) (-23)))))) && ((int) ((signed char) ((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))))); - } - else - { - short var_230 = (short) (struct_obj_4.member_2_5); - unsigned short var_231 = ((int) ((signed char) (((int) ((short) (((int) (struct_obj_9.member_2_1.member_1_3)) << (((int) (struct_obj_8.member_4_5)) + (1331))))) & ((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159)))))))))))) % ((int) ((short) ((unsigned short) (~((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))))))); - short var_232 = (unsigned short) ((((int) (49)) || ((!((int) (7))) || ((int) ((short) (struct_obj_3.member_5_1))))) && (!((int) (52603)))); - signed char var_233 = (~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159)))))))); - var_234 = (short) ((((int) ((signed char) ((unsigned short) (~((int) (var_50)))))) & (~((int) ((short) (((int) (6)) | ((int) (var_40))))))) <= (((-((((int) (struct_obj_8.member_4_4)) & ((int) (struct_obj_9.member_2_4))) | ((int) (61009)))) + (2147483647)) >> (!(((~((~(((int) (32286)) ^ ((int) (99)))) ^ (~(((int) (6)) ^ ((int) (-93)))))) & ((int) ((short) (((((int) (43755)) ^ ((int) (struct_obj_1.member_5_0))) & (((int) (var_29)) ^ ((int) (124)))) ^ ((int) ((signed char) (~((int) (12159))))))))) * (((int) (struct_obj_1.member_5_3)) * ((int) (-53))))))); - signed char var_235 = !(!((int) ((signed char) ((!((int) (var_23))) && (((int) (var_2)) && ((int) (-40))))))); - short var_236 = ((~((int) (((int) (-9)) != ((int) (((int) (-6685)) <= ((int) (-51))))))) || ((((int) (((int) (var_9)) >= ((int) (struct_obj_9.member_2_1.member_1_0)))) || (((int) (var_233)) - ((int) (var_28)))) && ((int) (15198)))) || (((-(((int) (8864)) - ((int) (struct_obj_4.member_2_3.member_1_3)))) - ((((int) (-81)) - ((int) (struct_obj_4.member_2_0))) - ((int) ((signed char) (67))))) && (-((int) (((int) ((unsigned short) (29545))) < (((int) (var_54)) / ((int) (23))))))); - } - - } - - } - - if ((((int) (-30504)) ^ (((int) (struct_obj_9.member_2_0)) & ((~((int) (16009))) & (((int) (59488)) ^ ((int) (-25101)))))) & ((int) ((unsigned short) ((signed char) ((((int) (-70)) ^ ((int) ((-127 - 1)))) ^ (~((int) (-18198)))))))) - { - short var_237 = ((int) ((unsigned short) (~(~(((int) (32724)) & ((int) (-57))))))) > (~((int) (((int) (var_15)) <= (((int) ((unsigned short) (var_65))) + (((int) (var_16)) && ((int) (var_37))))))); - short var_238 = ((int) (-1594)) <= (((int) (var_37)) + ((int) (var_237))); - signed char var_239 = (((~(((((int) (var_65)) ^ ((int) (56889))) + (2147483647)) >> ((((int) (var_37)) << (((int) (struct_obj_9.member_2_4)) - (13527))) - (15204328)))) + (2147483647)) << (((int) ((unsigned short) ((((int) (-29413)) | ((int) (struct_obj_1.member_5_3))) | (~((int) (var_61)))))) - (36863))) | ((((((int) (var_22)) & ((int) (-10107))) << ((((int) (-7266)) | ((int) (struct_obj_10.member_1_0))) + (7232))) << (((int) ((signed char) (var_28))) & (((int) (var_238)) >> (((int) (struct_obj_9.member_2_5)) - (26951))))) << (((((int) ((short) (((int) (31750)) ^ ((int) (struct_obj_8.member_4_8))))) + (2147483647)) << ((((((~((int) ((signed char) (struct_obj_4.member_2_5)))) + (139)) - (25)) - (0)) - (0)) - (1))) - (2147463623))); - var_49 = (signed char) ((~((~((int) (struct_obj_1.member_5_0))) | ((~((int) (var_38))) ^ (~((int) (var_18)))))) * (~(((int) ((short) ((((int) (-74)) + (2147483647)) << (((((int) (-7673)) + (7685)) - (11)) - (1))))) | ((int) ((short) ((unsigned short) (struct_obj_8.member_4_1.member_3_1.member_1_1))))))); - if (var_30) - { - if ((-(((((int) (struct_obj_10.member_1_0)) * ((int) (4200))) * (~((int) (-32)))) * (~(-((int) (var_40)))))) >= ((int) (((~(((int) (7439)) & ((int) (var_33)))) && ((int) (((int) (var_27)) != (((int) (struct_obj_9.member_2_6)) << (((int) (43587)) - (43579)))))) < ((int) ((!((int) ((signed char) (struct_obj_8.member_4_5)))) >= ((~((int) (9170))) & (((int) (18966)) & ((int) (var_36))))))))) - { - var_240 = (signed char) ((+(((((int) (39678)) + ((int) (-20537))) + (((int) (-20330)) - ((int) (-35)))) * ((+((int) (-32053))) + ((int) (-29363))))) >> ((((int) (var_8)) || ((!((int) (22))) || (((int) (53763)) || ((int) (11024))))) && (((((int) (struct_obj_9.member_2_2)) && ((int) (var_20))) || ((int) (62563))) || (((int) ((short) (-28548))) && ((int) (struct_obj_9.member_2_5)))))); - var_241 = (unsigned short) (-((int) ((((((int) (90)) / ((int) (var_14))) >> ((-((int) (-3575))) - (3547))) | ((int) ((((int) (var_10)) * ((int) (61679))) > (((int) (var_3)) % ((int) (-39)))))) < (((int) (((int) ((signed char) (21447))) <= ((int) (((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)) > ((int) (struct_obj_9.member_2_2)))))) / (~(((int) (5083)) | ((int) (var_62)))))))); - short var_242 = ((int) (((int) ((signed char) ((((int) (-123)) && ((int) (20950))) < ((int) (((int) (26747)) < ((int) (-37))))))) >= ((int) ((((int) (58514)) && ((int) (-20862))) != (!(!((int) (struct_obj_10.member_1_3)))))))) % (((((int) ((signed char) (var_55))) * (~((int) (var_40)))) % (~(((int) (struct_obj_5.member_1_3)) + ((int) (19833))))) ^ (~((((int) (6964)) || ((int) (struct_obj_5.member_1_0))) & ((int) ((short) (var_62)))))); - unsigned short var_243 = +((((int) ((unsigned short) (+((int) (struct_obj_4.member_2_7))))) / ((-((int) (struct_obj_9.member_2_1.member_1_0))) * (+((int) (struct_obj_9.member_2_1.member_1_1))))) * (+((int) ((short) (+((int) (23962))))))); - unsigned short var_244 = ((int) ((((int) ((unsigned short) (~((int) (var_54))))) ^ (~(((int) (var_38)) ^ ((int) (struct_obj_8.member_4_6))))) >= ((int) ((short) (((int) (25080)) >> ((((int) (var_21)) * ((int) (struct_obj_8.member_4_8))) + (3109978))))))) < ((int) (struct_obj_9.member_2_4)); - struct_obj_9.member_2_2 = (unsigned short) (((int) (((int) (((int) (var_33)) >= ((~((int) (27357))) | ((int) (58514))))) < ((((((int) (-24728)) + (2147483647)) >> ((((int) (-12450)) + (12482)) - (29))) >> ((((int) (57)) * ((int) (14104))) - (803923))) / ((int) (((int) (58514)) != ((int) (((int) (struct_obj_4.member_2_0)) != ((int) (struct_obj_8.member_4_5))))))))) != ((int) ((unsigned short) ((((int) ((signed char) (((int) (48)) | ((int) (var_59))))) + (2147483647)) << (((~(((int) (struct_obj_4.member_2_7)) & ((int) (var_239)))) + (102)) - (26)))))); - signed char var_245 = ((int) ((signed char) (-22439))) << ((((int) ((signed char) (((int) (var_22)) >> (((int) (var_33)) - (40281))))) / ((int) (25526))) || ((((int) ((short) (var_60))) / (((int) (-53)) * ((int) (24333)))) * ((((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)) * ((int) (struct_obj_6.member_5_0))) / (((int) (7947)) * ((int) (struct_obj_9.member_2_4)))))); - var_57 = (signed char) ((short) (~((((int) ((unsigned short) (struct_obj_8.member_4_1.member_3_1.member_1_0))) | (((int) (struct_obj_6.member_5_2)) | ((int) (-127)))) ^ ((~((int) (-18008))) & (((int) (var_7)) & ((int) (var_1))))))); - signed char var_246 = (((!(((int) (-31124)) && ((int) (42538)))) / ((((int) (-26184)) & ((int) (-6497))) | (((int) (1782)) & ((int) (111))))) ^ (-((int) ((unsigned short) (((int) (10177)) > ((int) (8727))))))) - (-((int) (((int) (-72)) < (((int) ((unsigned short) (63))) ^ (((int) (-13275)) & ((int) (-32755))))))); - signed char var_247 = ((int) (((int) ((signed char) ((~((int) (var_44))) || ((int) ((signed char) (59533)))))) < ((int) (((-((int) (var_11))) & (((int) (-951)) ^ ((int) (struct_obj_8.member_4_9.member_1_1)))) != ((((int) (37950)) >> (((int) (19587)) - (19587))) && ((int) (((int) (24323)) == ((int) (var_41))))))))) >> ((int) (((!((int) (struct_obj_9.member_2_4))) && ((!((int) (-25737))) && (((int) (var_59)) || ((int) (struct_obj_9.member_2_1.member_1_0))))) == ((int) (((((int) (var_40)) | ((int) (46921))) | ((int) (struct_obj_4.member_2_3.member_1_2))) <= ((int) ((!((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) <= (((int) (119)) & ((int) (-31))))))))); - } - - if ((-((int) ((short) ((signed char) ((short) (var_20)))))) <= (((int) (((((int) (struct_obj_8.member_4_1.member_3_0)) ^ ((int) (struct_obj_9.member_2_1.member_1_0))) << ((((int) (58)) ^ ((int) (var_45))) + (128))) == ((int) (var_31)))) ^ ((int) (((((int) (struct_obj_1.member_5_1)) | ((int) (37360))) | (~((int) (var_5)))) <= ((int) (8)))))) - { - unsigned short var_248 = (unsigned short) (((((int) (struct_obj_4.member_2_3.member_1_2)) * ((int) ((short) (26360)))) / (((int) ((signed char) (8410))) * (((int) (957)) * ((int) (16064))))) * (-((-((int) (1))) * ((int) ((unsigned short) (-15383)))))); - short var_249 = (signed char) (((((int) ((short) ((((int) (-15020)) + (2147483647)) << (((int) (var_12)) - (29985))))) + (2147483647)) << ((((((int) (var_25)) | ((int) (struct_obj_7.member_1_1))) ^ (((int) (var_7)) ^ ((int) (struct_obj_2.member_5_3)))) + (31452)) - (3))) << (((int) (106)) - (106))); - short var_250 = (signed char) ((~((((int) (var_249)) * ((int) (26))) * ((int) ((signed char) (var_44))))) * (~((int) (-6112)))); - short var_251 = ~((int) ((short) (((((int) (var_60)) * ((int) (var_14))) * ((int) ((signed char) (var_35)))) * (-(((int) (struct_obj_8.member_4_3)) / ((int) (var_44))))))); - short var_252 = (~((int) ((((int) ((unsigned short) (68))) ^ (~((int) (28040)))) >= ((int) ((signed char) ((signed char) (struct_obj_8.member_4_0))))))) * ((!((((int) (var_8)) || ((int) (struct_obj_9.member_2_1.member_1_3))) && ((int) ((short) (var_59))))) && (!((((int) (21061)) && ((int) (-24998))) && (((int) (var_51)) || ((int) (var_9)))))); - short var_253 = ((int) ((signed char) (var_48))) <= ((int) (struct_obj_8.member_4_6)); - } - else - { - unsigned short var_254 = ((((((int) (102)) * ((int) (15365))) / (-((int) (-17680)))) * (-(((int) (-27940)) * ((int) (-40))))) / (((int) ((short) (-63))) * (~(((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)) * ((int) (var_58)))))) & ((int) ((((int) (var_22)) + (((int) (31276)) & (~((int) (-102))))) < ((int) (((int) (struct_obj_4.member_2_6)) > ((int) ((short) (((int) (var_58)) && ((int) (struct_obj_8.member_4_1.member_3_1.member_1_1))))))))); - signed char var_255 = +((int) (var_52)); - short var_256 = var_7; - short var_257 = (((int) ((signed char) ((short) ((unsigned short) (struct_obj_9.member_2_5))))) >> ((int) ((((int) (35251)) / ((int) ((unsigned short) (var_255)))) <= ((int) ((unsigned short) (((int) (struct_obj_9.member_2_6)) > ((int) (var_42)))))))) < ((int) (var_52)); - struct_obj_9.member_2_6 = (unsigned short) (((((int) ((short) (((int) (struct_obj_4.member_2_7)) - ((int) (13943))))) + (-(-((int) (-16676))))) + (((int) (-38)) - ((-((int) (struct_obj_9.member_2_1.member_1_1))) + (-((int) (69)))))) ^ ((int) ((signed char) ((~(((int) (-28)) ^ ((int) (var_254)))) | ((int) ((unsigned short) (((int) (-28119)) ^ ((int) (-71))))))))); - unsigned short var_258 = (~((!((int) ((signed char) (11992)))) || ((((int) (15514)) && ((int) (-73))) || (((int) (26696)) && ((int) (-5402)))))) > ((((int) ((short) ((unsigned short) ((signed char) (var_63))))) + (2147483647)) << ((((((int) ((short) (~(~((int) (-81)))))) + (103)) - (21)) - (0)) - (1))); - signed char var_259 = (short) ((((((int) (struct_obj_8.member_4_9.member_1_0)) * ((int) (var_16))) - ((int) (var_7))) + (+(((int) (struct_obj_4.member_2_7)) - ((int) (struct_obj_5.member_1_3))))) * ((int) (15489))); - var_260 = (signed char) ((unsigned short) (((int) (((((int) (var_58)) >> (((int) (struct_obj_4.member_2_2)) - (30767))) >> ((((int) (var_16)) << ((int) (var_254))) - (7881))) > ((int) (-17)))) / (((int) (((int) ((unsigned short) (22400))) != (((int) (struct_obj_8.member_4_4)) & ((int) (-7838))))) ^ ((int) ((signed char) (~((int) (var_255)))))))); - } - - if ((signed char) ((short) (((((int) (-10196)) ^ ((int) (var_39))) ^ ((int) ((signed char) (19637)))) & ((int) ((unsigned short) (((int) (33)) ^ ((int) (var_14)))))))) - { - signed char var_261 = ((int) ((signed char) (~((int) ((short) (((int) (9625)) ^ ((int) (var_66)))))))) && (((int) (((~((int) (struct_obj_4.member_2_3.member_1_3))) ^ (((int) (var_14)) | ((int) (var_64)))) <= ((int) ((unsigned short) (-((int) (41740))))))) | ((int) (struct_obj_2.member_5_2))); - unsigned short var_262 = struct_obj_8.member_4_6; - short var_263 = struct_obj_8.member_4_9.member_1_2; - signed char var_264 = struct_obj_6.member_5_2; - signed char var_265 = (unsigned short) (~(-(-((int) (((int) (47121)) > ((int) (30366))))))); - unsigned short var_266 = -((int) ((signed char) (((((int) (-9)) * ((int) (struct_obj_6.member_5_1))) / (((int) (var_61)) * ((int) (var_11)))) * ((int) ((signed char) ((short) (48373))))))); - short var_267 = (((int) (var_46)) & (~((~((int) (struct_obj_8.member_4_3))) | ((int) ((unsigned short) (29846)))))) / (((int) ((short) (((int) ((unsigned short) (var_51))) || (((int) (struct_obj_8.member_4_4)) && ((int) (var_62)))))) && (((int) ((signed char) ((signed char) (-32)))) && ((((int) (var_8)) || ((int) (struct_obj_4.member_2_3.member_1_0))) && ((int) (-103))))); - var_268 = (signed char) (((int) (var_21)) - ((-((((int) (struct_obj_8.member_4_9.member_1_1)) - ((int) (var_14))) + (-((int) (var_17))))) + ((int) (struct_obj_9.member_2_5)))); - unsigned short var_269 = (~((int) ((~((int) ((unsigned short) (~((~((int) (var_27))) & (((int) (var_8)) & ((int) (-26607)))))))) != (+(!((int) (31000))))))) * (((int) (((int) (256)) >= ((int) (9376)))) % (((((int) (6933)) ^ ((int) (43243))) & (((int) (21486)) >> (((int) (-17065)) + (17068)))) << ((((int) ((short) (100))) & ((int) ((signed char) (-13)))) - (95)))); - signed char var_270 = (short) (((int) (((((int) (35227)) && ((int) (var_61))) && (!((int) (14283)))) > ((int) ((((int) (15621)) ^ ((int) (24148))) <= (((int) (struct_obj_8.member_4_9.member_1_2)) || ((int) (11653))))))) < (-((int) ((short) (((int) (struct_obj_5.member_1_3)) | ((int) (-10))))))); - } - else - { - unsigned short var_271 = (~((int) ((unsigned short) ((((int) (var_17)) & ((int) (var_4))) ^ (((int) (13016)) & ((int) (struct_obj_2.member_5_0))))))) & ((!(~(!((int) (var_17))))) / ((((int) ((signed char) (var_35))) ^ (~((int) (struct_obj_4.member_2_3.member_1_1)))) & ((~((int) (var_12))) | ((((int) (-29314)) + (2147483647)) << ((((int) (62)) - (61)) - (1)))))); - short var_272 = ((int) ((unsigned short) (((~((int) (84))) | (~((int) (110)))) & (~(((int) (115)) | ((int) (-76))))))) - ((int) (var_23)); - signed char var_273 = (signed char) ((((((int) (-16844)) | ((int) (17775))) ^ (((int) (7963)) | ((int) (12142)))) | ((~((int) (15627))) ^ (((int) (26739)) ^ ((int) (-125))))) && (((int) (((int) (((int) (var_24)) <= ((-((int) (var_16))) * ((int) ((short) (var_34)))))) < ((int) (struct_obj_3.member_5_3)))) | ((int) (((int) ((signed char) (~(((int) (var_4)) + ((int) (25973)))))) <= ((int) (-123)))))); - struct_obj_8.member_4_1.member_3_1.member_1_0 = (signed char) (~((int) ((unsigned short) (+((int) ((short) ((short) (var_62)))))))); - signed char var_274 = (-(((int) ((~((int) (var_15))) <= ((int) ((signed char) (var_271))))) % (~(~((int) (var_28)))))) * ((((int) (((int) (((int) (var_24)) <= ((-((int) (var_16))) * ((int) ((short) (var_34)))))) < ((int) (struct_obj_3.member_5_3)))) | ((int) (((int) ((signed char) (~(((int) (var_4)) + ((int) (25973)))))) <= ((int) (-123))))) ^ ((~(((int) (-19317)) & ((int) (65)))) & (!((int) (((int) (8677)) <= ((int) (12375))))))); - short var_275 = ((~(((int) (((((int) (var_65)) + (2147483647)) >> (((int) (-16890)) + (16891))) != (~((int) (17071))))) % ((int) ((unsigned short) (~((int) (var_38))))))) + (2147483647)) >> (((int) ((unsigned short) (-(((int) (struct_obj_9.member_2_1.member_1_3)) * ((int) (struct_obj_9.member_2_2)))))) && ((~(((int) (struct_obj_8.member_4_9.member_1_0)) * ((int) (var_46)))) & ((int) (struct_obj_4.member_2_0)))); - signed char var_276 = (((((int) (((int) (((int) (var_24)) <= ((-((int) (var_16))) * ((int) ((short) (var_34)))))) < ((int) (struct_obj_3.member_5_3)))) | ((int) (((int) ((signed char) (~(((int) (var_4)) + ((int) (25973)))))) <= ((int) (-123))))) || (-(~((int) (51098))))) % (((((int) (struct_obj_4.member_2_7)) & ((int) (-112))) & ((int) ((short) (25098)))) ^ ((~((int) (-101))) | (((int) (var_28)) & ((int) (-7003)))))) * ((int) ((short) (((int) ((-((int) (27204))) != (-((int) (63928))))) || ((((int) (-43)) * ((int) (-26382))) / (((int) (83)) * ((int) (14127))))))); - short var_277 = (~((int) ((short) (((int) (((int) (((int) (var_24)) <= ((-((int) (var_16))) * ((int) ((short) (var_34)))))) < ((int) (struct_obj_3.member_5_3)))) | ((int) (((int) ((signed char) (~(((int) (var_4)) + ((int) (25973)))))) <= ((int) (-123)))))))) || (~((int) (var_56))); - signed char var_278 = (~((int) ((signed char) ((((int) (var_56)) ^ ((int) (var_64))) ^ (((int) (struct_obj_1.member_5_2)) & ((int) (struct_obj_8.member_4_7))))))) >= (((int) (((int) (((int) (var_24)) <= ((-((int) (var_16))) * ((int) ((short) (var_34)))))) < ((int) (struct_obj_3.member_5_3)))) | ((int) (((int) ((signed char) (~(((int) (var_4)) + ((int) (25973)))))) <= ((int) (-123))))); - } - - short var_279 = (unsigned short) (((+((int) (var_1))) + ((int) ((signed char) (~((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)))))) / (((int) (struct_obj_9.member_2_5)) && (~((int) ((signed char) (struct_obj_7.member_1_1)))))); - if (~(~((int) ((unsigned short) (~(((int) (43)) >> (((int) (39844)) - (39841)))))))) - { - short var_280 = (-(-(!((int) (16816))))) > ((((((int) (-20572)) | ((int) (struct_obj_8.member_4_0))) & (((int) (struct_obj_9.member_2_1.member_1_3)) | ((int) (30439)))) & ((((int) (-98)) ^ ((int) (-27720))) | (((int) (struct_obj_2.member_5_2)) & ((int) (7077))))) << (((int) (var_28)) - (13388))); - signed char var_281 = (short) ((signed char) (!(!(((int) (17428)) || ((int) (27105)))))); - unsigned short var_282 = (((-(((int) (56239)) | ((int) (4)))) * ((int) (((int) (((int) (23297)) <= ((int) (-220)))) > (((int) (-17097)) * ((int) (-121)))))) || ((int) (((int) (-14340)) != ((int) (((int) (20335)) < (((int) (59459)) && ((int) (-107)))))))) - (((((int) (((~(-((int) (217)))) >> (((int) (-24993)) + (25001))) <= (!((int) ((~((int) (23529))) < (((int) (105)) + ((int) (-6170)))))))) >> ((((int) (-54)) ^ ((int) ((signed char) ((unsigned short) (((int) (-3615)) ^ ((int) (struct_obj_4.member_2_1.member_1_0))))))) - (115))) & ((int) ((unsigned short) (((int) (-87)) & ((int) (-83)))))) && ((int) (((int) (-2)) != (+(((int) (17715)) & ((int) (22))))))); - unsigned short var_283 = ((~(~((int) ((short) (40109))))) | ((int) (57193))) ^ (((~((int) ((signed char) (var_239)))) ^ ((((int) (1415)) & ((int) (13531))) | (((int) (struct_obj_3.member_5_2)) | ((int) (-7807))))) & (((~((int) (23824))) ^ (~((int) (-50)))) & ((int) (-23004)))); - var_284 = (short) (!((int) ((short) ((((int) (53609)) ^ ((int) (((int) (var_29)) != ((int) (var_26))))) >= ((((int) (var_48)) / ((int) (11584))) | (((int) (-96)) ^ ((int) (23703)))))))); - struct_obj_8.member_4_5 = (short) ((short) (((~(((int) ((unsigned short) ((~(((int) (((~(-((int) (217)))) >> (((int) (-24993)) + (25001))) <= (!((int) ((~((int) (23529))) < (((int) (105)) + ((int) (-6170)))))))) >> ((((int) (-54)) ^ ((int) ((signed char) ((unsigned short) (((int) (-3615)) ^ ((int) (struct_obj_4.member_2_1.member_1_0))))))) - (115)))) ^ ((int) ((short) (((int) ((signed char) (18462))) | (((int) (var_30)) & ((int) (var_5))))))))) & ((int) (-23)))) + (2147483647)) << (((((int) (struct_obj_9.member_2_1.member_1_3)) | (((int) (52011)) | ((int) (29618)))) >> (((((int) (-17)) ^ ((int) (struct_obj_8.member_4_6))) | (((int) (struct_obj_2.member_5_2)) & ((int) (46991)))) - (46995))) - (4091)))); - } - - unsigned short var_285 = (signed char) (~(((int) ((signed char) (((int) (48619)) * ((int) (struct_obj_9.member_2_2))))) * (((int) (((~(-((int) (217)))) >> (((int) (-24993)) + (25001))) <= (!((int) ((~((int) (23529))) < (((int) (105)) + ((int) (-6170)))))))) >> ((((int) (-54)) ^ ((int) ((signed char) ((unsigned short) (((int) (-3615)) ^ ((int) (struct_obj_4.member_2_1.member_1_0))))))) - (115))))); - } - else - { - struct_obj_8.member_4_0 = (unsigned short) (!(-(!((((int) (58592)) & ((int) (var_17))) ^ (((int) (32236)) ^ ((int) (struct_obj_8.member_4_5))))))); - if (-((int) (21770))) - { - unsigned short var_286 = (~((int) ((signed char) ((((int) (7)) & ((int) (struct_obj_4.member_2_4))) ^ ((int) ((signed char) (var_64))))))) <= (((~((int) (35976))) * ((((int) (struct_obj_2.member_5_1)) * ((int) (16694))) / (((int) (var_39)) * ((int) (struct_obj_2.member_5_1))))) * (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))); - unsigned short var_287 = var_237; - signed char var_288 = (((~(((int) (10329)) | ((int) (-70)))) << (((int) ((short) (((int) (struct_obj_8.member_4_3)) >> (((int) (var_41)) - (48528))))) - (431))) & ((((int) ((signed char) (((int) (21261)) | ((int) (41469))))) + (2147483647)) << (((((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (24)) - (14)) - (0)) - (1)))) ^ ((((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (2147483647)) << (((((int) ((signed char) (~((int) (18910))))) - (32)) - (0)) - (1))) ^ (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))); - signed char var_289 = ((int) (((int) ((unsigned short) ((((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)) ^ ((int) (var_238))) & (((int) (struct_obj_9.member_2_1.member_1_0)) & ((int) (-14985)))))) < (+(+((int) (struct_obj_4.member_2_6)))))) == (-((int) (((~((int) (var_26))) - ((int) ((short) (struct_obj_8.member_4_7)))) != ((((int) (var_52)) >> (((int) (var_9)) - (13476))) % ((int) (((int) (var_32)) > ((int) (struct_obj_9.member_2_6)))))))); - short var_290 = ~((int) (var_46)); - short var_291 = ((-(-(((int) (4132)) * ((int) (var_6))))) * (!(((int) (var_5)) / (((int) (struct_obj_4.member_2_5)) * ((int) (struct_obj_10.member_1_3)))))) / (((-(((int) (11642)) * ((int) (var_28)))) / ((((int) (var_30)) * ((int) (struct_obj_1.member_5_1))) / ((int) (108)))) * (+(-(((int) (36557)) * ((int) (-91)))))); - short var_292 = ((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))); - short var_293 = (((int) ((short) ((~((int) (43459))) & ((((int) (var_292)) + (2147483647)) >> (((int) (44780)) - (44767)))))) && ((int) ((!(((int) (var_44)) || ((int) (-117)))) < ((int) (14679))))) ^ (-((int) (11578))); - } - - if (~((int) ((unsigned short) ((unsigned short) (((int) ((signed char) (var_17))) & (((int) (struct_obj_8.member_4_9.member_1_0)) & ((int) (struct_obj_9.member_2_6)))))))) - { - short var_294 = (((((~((int) (47532))) + (2147483647)) >> (((int) ((short) (140))) - (114))) ^ (~((int) (10977)))) & (((int) ((signed char) (((int) (var_16)) & ((int) (var_58))))) | ((int) (-29488)))) && ((int) ((unsigned short) ((((int) ((short) (((int) (struct_obj_7.member_1_2)) | ((int) (31723))))) + (2147483647)) << (((int) (var_49)) >> (~((int) (var_61))))))); - signed char var_295 = (unsigned short) (var_58); - short var_296 = ((int) (((((int) (45)) ^ (((int) (-12922)) & ((int) (struct_obj_8.member_4_6)))) - (-(((int) (var_46)) % ((int) (var_66))))) > ((((int) ((unsigned short) (var_64))) || (((int) (struct_obj_4.member_2_3.member_1_3)) || ((int) (var_10)))) || (((int) (struct_obj_4.member_2_1.member_1_0)) && (((int) (9298)) || ((int) (var_43))))))) <= ((((int) ((signed char) (((int) (-1967)) * ((int) (var_32))))) / (-(((int) (var_1)) * ((int) (struct_obj_4.member_2_1.member_1_3))))) >> ((((((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) * ((int) (-27550))) / (((int) (var_31)) - ((int) (var_34)))) - ((((int) (23777)) * ((int) (-12271))) - ((int) (var_32)))) - (291814241))); - var_297 = (unsigned short) ((~(((int) ((signed char) ((signed char) (-27)))) & ((((int) (-12274)) ^ ((int) (50858))) | (((int) (-24967)) | ((int) (-117)))))) >> ((((int) (29155)) << (((((int) ((signed char) (32757))) + (2147483647)) >> ((~((int) (14434))) + (14457))) - (509))) >> ((~((int) (-118))) - (98)))); - short var_298 = -((int) ((~((((int) (var_63)) - ((int) (21024))) & (((int) (var_53)) || ((int) (var_21))))) != ((int) (struct_obj_2.member_5_1)))); - var_65 = (short) (var_42); - short var_299 = ((int) ((signed char) ((!(((int) (9107)) | ((int) (36489)))) != ((((int) ((((int) (var_6)) | (~((int) (var_15)))) > (((int) (-91)) ^ ((int) (var_8))))) && ((((int) (-53)) & (((int) (struct_obj_3.member_5_1)) * ((int) (struct_obj_3.member_5_1)))) * ((int) ((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) > (!((int) (62742))))))) * ((int) (((int) ((unsigned short) (-2983))) <= (((int) ((short) (((int) (44)) | ((int) (var_28))))) % ((((int) (22182)) & ((int) (77))) ^ (((int) (struct_obj_3.member_5_3)) ^ ((int) (var_5))))))))))) * ((((int) ((((int) (var_6)) | (~((int) (var_15)))) > (((int) (-91)) ^ ((int) (var_8))))) && ((((int) (-53)) & (((int) (struct_obj_3.member_5_1)) * ((int) (struct_obj_3.member_5_1)))) * ((int) ((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) > (!((int) (62742))))))) * ((int) (((int) ((unsigned short) (-2983))) <= (((int) ((short) (((int) (44)) | ((int) (var_28))))) % ((((int) (22182)) & ((int) (77))) ^ (((int) (struct_obj_3.member_5_3)) ^ ((int) (var_5)))))))); - unsigned short var_300 = ~(((int) ((short) ((~((int) (-2669))) ^ (~((int) (var_29)))))) | (((((int) (var_16)) | ((int) (struct_obj_8.member_4_5))) ^ (((int) (var_57)) & ((int) (var_33)))) | (~((int) (struct_obj_6.member_5_2))))); - } - else - { - short var_301 = (!((((int) (struct_obj_8.member_4_5)) || (!((int) (13152)))) && ((((int) (struct_obj_2.member_5_3)) && ((int) (var_20))) || (((int) (32258)) || ((int) (var_49)))))) || (!((!((int) ((signed char) (var_24)))) || (!(((int) (var_32)) && ((int) (var_23)))))); - signed char var_302 = ~((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + ((+((int) ((unsigned short) (-6620)))) + (+((int) ((signed char) (struct_obj_4.member_2_1.member_1_0)))))); - short var_303 = ((int) (((int) ((~(((int) (26)) | ((int) (38463)))) != ((int) ((short) (((int) (24326)) && ((int) (-59))))))) <= ((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) / (-(((int) (7532)) || ((int) (19696))))))) & ((int) ((signed char) (~(~(((int) (57632)) << (((int) (-7168)) + (7176))))))); - signed char var_304 = (unsigned short) ((unsigned short) ((((-((int) (54))) + (2147483647)) >> (((int) ((short) (-9386))) + (9392))) & ((int) (((int) ((short) (struct_obj_7.member_1_0))) <= (((int) (-25666)) & ((int) (var_27))))))); - short var_305 = (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) * (-(-(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))))); - short var_306 = ~((((~((((int) (var_302)) + (2147483647)) >> (((int) (var_61)) + (30)))) + (2147483647)) >> ((((int) (var_2)) << ((((int) ((short) (struct_obj_6.member_5_2))) + (19600)) - (29))) - (142254))) << (((((~((int) (29941))) | (~((int) (-12126)))) + (2147483647)) >> (((((int) (62210)) | ((int) (48372))) >> ((((int) (57460)) ^ ((int) (-31908))) + (40156))) - (4074))) - (1016))); - signed char var_307 = ~(((~((int) ((signed char) (-12247)))) | ((int) ((unsigned short) (~((int) (13491)))))) & ((int) ((short) ((((int) (var_54)) | ((int) (27838))) | (((((int) ((short) ((signed char) (((int) (var_33)) | ((int) (struct_obj_4.member_2_3.member_1_2)))))) + (2147483647)) >> (((~((int) (var_10))) | (~((int) (var_21)))) & (((((int) (-42)) + (2147483647)) >> ((((int) (var_32)) - (46768)) - (9))) >> ((~((int) (var_21))) - (48))))) / ((-(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) >> ((int) ((signed char) (((int) (struct_obj_4.member_2_3.member_1_1)) && (((int) (99)) || ((int) (var_9)))))))))))); - short var_308 = struct_obj_4.member_2_1.member_1_3; - signed char var_309 = (unsigned short) (((int) ((signed char) ((+((int) (-43))) - ((int) ((unsigned short) (21945)))))) + ((int) ((signed char) ((((int) (var_41)) - ((int) (77))) + (((((int) ((short) ((signed char) (((int) (var_33)) | ((int) (struct_obj_4.member_2_3.member_1_2)))))) + (2147483647)) >> (((~((int) (var_10))) | (~((int) (var_21)))) & (((((int) (-42)) + (2147483647)) >> ((((int) (var_32)) - (46768)) - (9))) >> ((~((int) (var_21))) - (48))))) / ((-(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) >> ((int) ((signed char) (((int) (struct_obj_4.member_2_3.member_1_1)) && (((int) (99)) || ((int) (var_9)))))))))))); - } - - if ((~(((~((int) (var_12))) & (((int) (struct_obj_6.member_5_0)) & ((int) (var_239)))) << (((~((int) (-74))) ^ (~((int) (114)))) + (75)))) && ((int) ((((((int) (13630)) ^ ((int) (19614))) >> (((int) (-34)) + (44))) | (((((int) (-65)) + (2147483647)) << (((int) (38398)) - (38398))) & (((int) (28940)) ^ ((int) (14947))))) > ((int) (((int) ((signed char) (((int) (var_48)) * ((int) (1346))))) != ((int) (var_239))))))) - { - signed char var_310 = ((((int) (struct_obj_10.member_1_2)) | ((~((int) (-28776))) & (~((int) (struct_obj_9.member_2_4))))) & ((~(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) & ((((int) (-84)) ^ ((int) (20424))) ^ ((int) ((unsigned short) (-14767)))))) ^ (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))); - unsigned short var_311 = (unsigned short) (var_28); - unsigned short var_312 = ((-((int) ((unsigned short) (54857)))) * ((int) (((~((int) (struct_obj_3.member_5_3))) & (((int) (var_7)) || ((int) (struct_obj_4.member_2_1.member_1_0)))) < (-((int) (var_1)))))) * (~(((int) (-38)) ^ ((((int) (0)) & ((int) (-104))) & (((int) (-110)) & ((int) (-92)))))); - signed char var_313 = (unsigned short) (~((int) ((short) ((~((int) (struct_obj_9.member_2_1.member_1_3))) ^ (~((int) (102))))))); - var_314 = (signed char) (!(((((int) ((signed char) (-18731))) * (((int) (struct_obj_4.member_2_3.member_1_0)) * ((int) (struct_obj_8.member_4_4)))) * ((((int) (struct_obj_6.member_5_0)) * ((int) (86))) / (((int) (45398)) * ((int) (1603))))) << ((~((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) & (((int) (37)) & ((int) (55829))))) + (30)))); - signed char var_315 = struct_obj_4.member_2_3.member_1_0; - signed char var_316 = (~((int) ((short) (((int) ((signed char) (struct_obj_7.member_1_1))) < (((int) (13)) || ((int) (struct_obj_8.member_4_6))))))) || (+((int) (((((int) (var_66)) >> (((int) (struct_obj_1.member_5_3)) - (710))) | (((int) (var_5)) & ((int) (8143)))) >= (-(((int) (5864)) & ((int) (var_63))))))); - unsigned short var_317 = ((int) ((unsigned short) (~(((~((int) (44320))) + (2147483647)) >> ((((int) (20877)) & ((int) (-14066))) - (16645)))))) || ((int) (struct_obj_5.member_1_3)); - short var_318 = !((int) ((~(~(((int) (var_25)) | ((int) (struct_obj_1.member_5_0))))) <= ((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) | (((int) ((unsigned short) (struct_obj_5.member_1_0))) << ((((int) (23789)) ^ ((int) (struct_obj_3.member_5_1))) - (56480)))))); - short var_319 = -(((int) ((unsigned short) ((((int) (-6974)) && ((int) (11892))) && (((int) (-3845)) || ((int) (-41)))))) || ((!(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) && ((int) (-19831)))); - } - else - { - short var_320 = struct_obj_4.member_2_5; - unsigned short var_321 = struct_obj_6.member_5_0; - unsigned short var_322 = ~((int) (struct_obj_8.member_4_4)); - unsigned short var_323 = ((int) (var_41)) >> ((int) (((int) (((int) (((int) ((short) (var_27))) == (~(~((int) (struct_obj_4.member_2_5)))))) < (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (2147483647)) << (((int) ((((int) (var_28)) || ((int) (struct_obj_2.member_5_0))) != (((int) (var_19)) & ((int) (struct_obj_4.member_2_1.member_1_1))))) >> (!((int) (struct_obj_2.member_5_3))))))) != ((int) (((int) ((signed char) (((int) (var_36)) - ((int) (struct_obj_2.member_5_1))))) != (!((int) (struct_obj_6.member_5_3))))))); - unsigned short var_324 = ((int) (((int) ((short) (var_27))) == (~(~((int) (struct_obj_4.member_2_5)))))) < (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (2147483647)) << (((int) ((((int) (var_28)) || ((int) (struct_obj_2.member_5_0))) != (((int) (var_19)) & ((int) (struct_obj_4.member_2_1.member_1_1))))) >> (!((int) (struct_obj_2.member_5_3))))); - short var_325 = ((((int) (((int) (((int) ((short) (var_27))) == (~(~((int) (struct_obj_4.member_2_5)))))) < (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (2147483647)) << (((int) ((((int) (var_28)) || ((int) (struct_obj_2.member_5_0))) != (((int) (var_19)) & ((int) (struct_obj_4.member_2_1.member_1_1))))) >> (!((int) (struct_obj_2.member_5_3))))))) ^ ((((int) (-122)) | ((int) (11927))) ^ (((int) (-62)) & ((int) (118))))) ^ (~((~((int) (25738))) & (~((int) (39921)))))) & ((int) ((signed char) (~(~((int) ((unsigned short) (struct_obj_3.member_5_0))))))); - signed char var_326 = (-((int) ((short) ((~((int) (-4583))) == (-((int) (var_36))))))) - ((int) (((((((int) (var_66)) >> (((int) (var_39)) - (28144))) ^ (~((int) (var_1)))) + (2147483647)) << (((((((int) (struct_obj_6.member_5_1)) << (((int) (var_8)) - (14653))) | (((int) (struct_obj_8.member_4_2)) | ((int) (101)))) - (22861934)) - (0)) - (1))) > (((int) (((int) (((int) (2)) >= ((int) (-8179)))) > (((int) (26581)) >> (((int) (-19231)) + (19234))))) >> ((int) (((int) (struct_obj_1.member_5_1)) <= (((int) (var_324)) << (((int) (var_22)) - (100)))))))); - unsigned short var_327 = ((int) ((short) (~((((int) (26866)) ^ ((int) (var_325))) & ((int) (struct_obj_3.member_5_3)))))) & ((int) ((signed char) (~((((int) (-5)) & ((int) (43))) & (((int) (var_51)) | ((int) (var_62))))))); - unsigned short var_328 = ((((((int) (var_58)) & ((int) (struct_obj_2.member_5_1))) ^ (~((int) (struct_obj_4.member_2_4)))) >> ((((int) (17357)) << (((~((int) (var_41))) + (48559)) - (8))) - (568754148))) | ((int) ((unsigned short) (((((int) (struct_obj_7.member_1_0)) + (2147483647)) >> (((int) (var_32)) - (46780))) & (((int) (var_9)) | ((int) (-22456))))))) <= (-(~((int) ((-((int) (var_43))) < (((int) (var_62)) | ((int) (struct_obj_3.member_5_1))))))); - } - - signed char var_329 = ((int) ((unsigned short) (!(!(!((int) (struct_obj_2.member_5_1))))))) != (-((int) (((int) ((((int) (9111)) * ((int) (45153))) <= (!((int) (17457))))) <= (~(((int) (77)) | ((int) (119))))))); - if (((int) ((unsigned short) (((((int) (var_12)) ^ ((int) (var_62))) | (((int) (struct_obj_10.member_1_3)) | ((int) (struct_obj_2.member_5_0)))) | (((int) ((signed char) (-7510))) ^ (((int) (-22547)) | ((int) (24754))))))) & (((~(((int) (struct_obj_3.member_5_3)) | ((int) (8)))) ^ (~(((int) (56)) ^ ((int) (3137))))) | (~((~((int) (12881))) & (((int) (var_8)) & ((int) (var_25))))))) - { - signed char var_330 = ((int) ((unsigned short) (~((((int) (39713)) * ((int) (var_65))) * ((int) ((signed char) (struct_obj_4.member_2_1.member_1_1))))))) <= (!(~((((int) (struct_obj_4.member_2_1.member_1_0)) + ((int) (var_50))) * ((int) ((short) (29769)))))); - short var_331 = ~(((~(((int) (4598)) & ((int) (2017)))) | (((int) ((signed char) (32350))) | (((int) (-20556)) & ((int) (-79))))) ^ (((~((int) (-515))) & (((int) (61)) & ((int) (43194)))) | (((int) ((unsigned short) (11581))) & (~((int) (13360)))))); - signed char var_332 = (+(-(!(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))))) <= (((~(((int) (var_28)) * ((int) (struct_obj_5.member_1_0)))) / ((((int) (var_24)) * ((int) (-103))) * (-((int) (var_58))))) * (~(((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))))); - unsigned short var_333 = (signed char) ((~((((int) (struct_obj_4.member_2_3.member_1_2)) | ((int) (var_10))) & (~((int) (var_31))))) & ((int) (((int) ((unsigned short) (((int) (-65)) * ((int) (-23009))))) < ((((int) (14)) >> (((int) (9306)) - (9299))) % ((int) (((int) (-1206)) != ((int) (96)))))))); - unsigned short var_334 = !(((~(((int) (-23006)) & ((int) (39022)))) ^ (~(((int) (14922)) | ((int) (-15058))))) | (((((int) (6629)) >> (((int) (35537)) - (35535))) & ((((int) (-16560)) + (2147483647)) >> (((int) (122)) - (118)))) >> (((((int) (16902)) >> ((int) (0))) ^ (~((int) (12194)))) + (28097)))); - short var_335 = ((((((int) (3251)) && ((int) (55))) || (((int) (49719)) && ((int) (-65)))) || (!(((int) (11)) || ((int) (1092))))) && ((int) (52871))) * (!((int) ((short) (struct_obj_3.member_5_1)))); - signed char var_336 = (((int) (((!((int) (20447))) || (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) < (((int) ((signed char) (var_49))) >> ((((int) (var_23)) % ((int) (var_331))) - (2293))))) % ((int) ((unsigned short) (~((int) (struct_obj_2.member_5_1)))))) <= (~((int) ((short) ((((int) (var_21)) && ((int) (29492))) && (!((int) (var_332))))))); - } - else - { - unsigned short var_337 = (signed char) ((-((((int) (struct_obj_8.member_4_3)) * ((int) (struct_obj_5.member_1_0))) * (~((int) (struct_obj_4.member_2_1.member_1_0))))) & ((int) ((unsigned short) ((((int) (var_7)) >> (((int) (struct_obj_4.member_2_5)) - (10080))) <= (((int) (70)) & ((int) (-14194))))))); - signed char var_338 = (-((int) (((((int) (struct_obj_8.member_4_6)) ^ ((int) (53070))) ^ (((int) (struct_obj_4.member_2_1.member_1_3)) | ((int) (var_59)))) < ((((int) (var_46)) & ((int) (-73))) && (((int) (var_39)) ^ ((int) (var_63))))))) <= ((int) (((((int) ((short) (struct_obj_8.member_4_1.member_3_0))) ^ (((int) (var_40)) % ((int) (var_22)))) && ((int) ((short) ((unsigned short) (var_19))))) < (((((int) (-62)) * ((int) (struct_obj_4.member_2_3.member_1_3))) * (!((int) (var_44)))) * (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))))); - unsigned short var_339 = (((~((int) (struct_obj_9.member_2_1.member_1_3))) ^ (~((int) ((short) (var_238))))) & (((int) ((signed char) (((int) (-12841)) | ((int) (var_37))))) ^ ((int) ((short) (~((int) (var_49))))))) | ((int) ((short) ((unsigned short) (var_4)))); - unsigned short var_340 = ((((int) (-11424)) | (~(~((int) (46432))))) & (((int) (-2781)) * ((((int) (64292)) & ((int) (-22641))) * ((int) (((int) (23837)) <= ((int) (61))))))) - ((int) (25957)); - short var_341 = ((int) ((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) > (((int) ((short) (((int) (struct_obj_4.member_2_0)) & ((int) (struct_obj_9.member_2_2))))) >> ((int) ((((int) (struct_obj_10.member_1_3)) * ((int) (4087))) <= (~((int) (var_13)))))))) + ((int) (struct_obj_8.member_4_2)); - } - - signed char var_342 = ~(((~((int) (struct_obj_3.member_5_3))) | ((((int) (struct_obj_9.member_2_1.member_1_1)) | ((int) (struct_obj_8.member_4_1.member_3_0))) | (((int) (854)) | ((int) (struct_obj_2.member_5_0))))) | (~((~((int) (var_21))) & ((int) (struct_obj_1.member_5_3))))); - if (!((int) ((((int) ((signed char) (-19215))) / ((!((int) (354))) | (((int) (10)) * ((int) (47875))))) > ((-(((int) (18345)) >> ((((int) (14143)) - (14111)) - (6)))) >> (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) - (((int) (12698)) + ((int) (20337)))) + (33070)))))) - { - signed char var_343 = (unsigned short) (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) * (!((int) (var_34)))); - unsigned short var_344 = (~(~((((int) (-7563)) ^ ((int) (19679))) & (((int) (var_51)) | ((int) (var_60)))))) < ((int) ((short) (!(!(((int) (var_41)) || ((int) (var_42))))))); - short var_345 = (signed char) ((signed char) (!(((int) (9488)) || (((int) (struct_obj_4.member_2_3.member_1_2)) && ((int) (struct_obj_1.member_5_2)))))); - signed char var_346 = var_20; - short var_347 = (((int) (28581)) / (~((((int) (-39)) ^ ((int) (66))) ^ (((int) (-11597)) & ((int) (58452)))))) >> ((int) ((-(~((int) (((int) (83)) <= ((int) (26306)))))) > ((int) (((int) ((!((int) (-99))) <= (((int) (12533)) * ((int) (7321))))) > ((~((int) (26337))) | ((int) ((short) (36444)))))))); - unsigned short var_348 = ((int) (struct_obj_4.member_2_6)) + ((int) (((((~((int) (struct_obj_8.member_4_1.member_3_0))) & (~((int) (struct_obj_9.member_2_6)))) + (2147483647)) >> ((~(((int) (-11)) ^ ((int) (var_52)))) - (9858))) < (!(!(((int) (struct_obj_1.member_5_3)) || ((int) (3))))))); - signed char var_349 = (~(((int) (2973)) ^ ((int) (57652)))) | (~(((int) ((short) (~((int) (46420))))) & ((int) ((signed char) (~((int) (5937))))))); - signed char var_350 = ((int) (((-(((int) (var_36)) * ((int) (struct_obj_9.member_2_1.member_1_0)))) / ((+((int) (var_5))) - ((int) (struct_obj_9.member_2_2)))) > (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))))) != (~((int) (((~((int) (var_30))) & (~((int) (13)))) == (~(((int) (struct_obj_10.member_1_3)) && ((int) (struct_obj_7.member_1_1))))))); - } - else - { - short var_351 = ((((int) ((short) (28973))) ^ ((((int) (5)) & ((int) (-25148))) & ((((int) (-4462)) + (2147483647)) << ((((int) (-95)) + (112)) - (17))))) | (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) + (2147483647)) >> ((((int) ((short) (-32))) | (((int) (58)) >> (((int) (83)) - (53)))) + (59)))) < ((int) (((((int) (-14523)) && (((int) (24739)) >> (((int) (6042)) - (6039)))) + ((int) (-9773))) >= (((!((int) (34844))) || (((int) (50)) && ((int) (108)))) && (((int) ((unsigned short) (52136))) && (((int) (63576)) || ((int) (-30405))))))); - unsigned short var_352 = (((int) (((int) ((signed char) ((unsigned short) (var_27)))) < ((int) ((((int) (-12442)) / ((int) (10549))) != (((int) (18542)) * ((int) (struct_obj_2.member_5_1))))))) / (-((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) * (((int) (7)) * ((int) (struct_obj_1.member_5_3)))))) | ((int) ((signed char) (((((int) (struct_obj_9.member_2_6)) * ((int) (var_17))) / ((int) (var_23))) / (((int) ((short) (var_32))) * (~((int) (struct_obj_1.member_5_3))))))); - short var_353 = (signed char) ((short) (((((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))) && (!((int) (31901)))) && (!(((int) (24490)) && ((int) (var_14)))))); - unsigned short var_354 = ~((((~((int) ((unsigned short) (struct_obj_7.member_1_2)))) + (2147483647)) >> (((((int) ((short) (-16611))) + (2147483647)) >> ((int) (((int) (var_237)) < ((int) (-59))))) - (2147467024))) & ((((int) (2632)) << ((~((int) (-70))) - (60))) | (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172)))))))); - short var_355 = ~(((int) ((signed char) ((((int) (var_238)) | ((int) (-28688))) | (~((int) (struct_obj_8.member_4_7)))))) & (-((int) (-18035)))); - unsigned short var_356 = -(~((-(((int) (var_239)) ^ ((int) (struct_obj_4.member_2_5)))) % (!(!((int) (struct_obj_3.member_5_3)))))); - } - - short var_357 = ((((int) ((short) (((int) (struct_obj_9.member_2_0)) & ((int) (15110))))) | ((~((int) (var_8))) ^ (((int) (struct_obj_8.member_4_7)) | ((int) (var_66))))) ^ ((((int) ((unsigned short) (-163))) & ((int) ((short) (-51)))) ^ ((~((int) (struct_obj_8.member_4_0))) ^ ((int) ((unsigned short) (var_5)))))) < ((((((int) (struct_obj_9.member_2_1.member_1_3)) ^ ((int) (var_43))) >> ((~((int) (-19756))) - (19725))) & (~(((int) (var_60)) << ((int) (var_237))))) & ((((((int) (-91)) & ((int) (-28291))) + (2147483647)) >> ((((int) (51254)) << ((((int) (var_53)) - (13724)) - (13))) - (410005))) & ((int) (var_45)))); - var_358 = (unsigned short) (((int) (((int) ((((int) (var_2)) ^ ((int) ((unsigned short) (var_16)))) < ((int) ((signed char) (((int) (40083)) & ((int) (var_16))))))) <= ((int) (14594)))) != ((int) ((signed char) (((int) (((int) ((((int) (-5)) & ((int) (-31721))) != ((int) ((signed char) (var_35))))) <= (((int) ((unsigned short) (55455))) / (((int) (struct_obj_4.member_2_3.member_1_0)) && ((int) (struct_obj_4.member_2_6)))))) >> (((-((int) ((signed char) (var_8)))) % (((int) (-9)) + (-(((-((int) (-23416))) - ((int) ((unsigned short) (55908)))) / ((((int) (-24160)) - ((int) (28547))) * ((int) (19172))))))) + (10)))))); - } - - var_359 = (short) (!((~((int) ((unsigned short) (((int) (8977)) ^ ((int) (-2109)))))) ^ ((int) ((signed char) ((unsigned short) (~((int) (22)))))))); - if ((((int) ((short) (~(~((int) (var_43)))))) | (((~((int) (struct_obj_4.member_2_2))) + (2147483647)) >> ((((((int) (struct_obj_2.member_5_0)) & ((int) (-15349))) + (2147483647)) << (((((((((int) (-4)) + (2147483647)) >> (((int) (var_66)) - (65529))) - (67108862)) - (0)) - (0)) - (0)) - (1))) - (2147451885)))) & (((((int) (var_7)) ^ (((int) (struct_obj_4.member_2_5)) << (((int) (36)) - (31)))) << ((((int) (38)) & ((int) (var_60))) << (((int) (struct_obj_9.member_2_2)) >> (((int) (var_50)) - (46957))))) & (~((((int) (struct_obj_8.member_4_9.member_1_0)) << (((int) (7420)) - (7409))) | (~((int) (76))))))) - { - short var_360 = (((int) (var_17)) ^ (~((int) (39)))) - (~(((((int) (struct_obj_1.member_5_3)) & ((int) (struct_obj_5.member_1_3))) >> ((((int) (var_58)) & ((int) (struct_obj_4.member_2_3.member_1_1))) - (25))) | (~(((int) (struct_obj_10.member_1_3)) ^ ((int) (var_40)))))); - unsigned short var_361 = (!(((((int) (-22027)) | ((int) (struct_obj_2.member_5_3))) | (((int) (-7382)) ^ ((int) (var_35)))) & ((int) ((signed char) (~((int) (var_6))))))) & ((int) (((int) (struct_obj_9.member_2_1.member_1_3)) > (~(((~((int) (var_41))) + (2147483647)) >> ((((int) (-5606)) + (2147483647)) >> (((int) (-10)) + (38))))))); - if (109) - { - signed char var_362 = (short) ((signed char) ((((int) (24460)) + ((int) (14314))) * ((((int) (54241)) - ((int) (18419))) + (((int) (struct_obj_10.member_1_3)) + ((int) (struct_obj_2.member_5_3)))))); - unsigned short var_363 = ((((((int) (3103)) | ((int) (var_60))) << ((((int) (var_22)) | ((int) (struct_obj_8.member_4_5))) - (1270))) >> ((~(~((int) (var_36)))) - (27384))) >> (((int) ((short) (struct_obj_8.member_4_5))) - (1174))) * ((((int) ((((int) (35729)) || ((int) (var_38))) <= (!((int) (var_26))))) - (!(((int) (20238)) << (((int) (struct_obj_9.member_2_2)) - (40620))))) ^ ((int) (var_361))); - unsigned short var_364 = ((~(((int) ((unsigned short) (-12425))) & ((int) ((short) (52122))))) ^ (((~((int) (22591))) ^ (((int) (-14345)) & ((int) (51874)))) ^ ((((int) (51549)) ^ ((int) (3763))) ^ (((int) (43867)) ^ ((int) (-14)))))) & ((int) ((signed char) (14314))); - signed char var_365 = ((int) ((short) (~((int) (14314))))) >= (-(+((int) ((short) (((int) (struct_obj_5.member_1_3)) - ((int) (struct_obj_10.member_1_2))))))); - short var_366 = ((int) ((unsigned short) ((short) ((((int) (26517)) || ((int) (-9710))) && (((int) (struct_obj_9.member_2_1.member_1_0)) || ((int) (var_60))))))) >> ((int) (((int) (14314)) != ((((int) ((short) (struct_obj_6.member_5_3))) & (((int) (struct_obj_9.member_2_5)) & ((int) (-37)))) ^ (~((int) ((signed char) (struct_obj_8.member_4_9.member_1_2))))))); - var_367 = (signed char) (((int) (18490)) << ((~(~((~((int) (var_56))) ^ (((int) (-35)) | ((int) (var_50)))))) - (20202))); - short var_368 = (~((int) ((short) ((-((int) (struct_obj_4.member_2_1.member_1_3))) || ((int) ((signed char) (40213))))))) <= ((int) ((~((int) ((signed char) (((int) (var_60)) & ((int) (43)))))) <= ((~(((int) (var_12)) | ((int) (var_6)))) | ((int) ((signed char) (((int) (var_42)) & ((int) (var_66)))))))); - short var_369 = ((int) (struct_obj_4.member_2_3.member_1_1)) & (~((int) ((unsigned short) (((int) (14314)) ^ (((int) (-90)) & ((int) (74))))))); - short var_370 = ((int) ((-((int) (var_11))) < (((int) (var_46)) >> ((((((int) (var_3)) ^ ((int) (struct_obj_3.member_5_0))) + (2147483647)) >> (((~((int) (var_54))) - (24876)) - (30))) - (536863949))))) >= (!(((int) (14314)) << ((int) ((~((int) (var_38))) == (((int) (var_8)) & ((int) (struct_obj_9.member_2_2))))))); - short var_371 = ((int) (14314)) % ((int) (122)); - } - - var_46 = (unsigned short) (((int) (((int) ((~(((int) (17)) << (((int) (var_56)) - (20181)))) > ((((int) (var_35)) || ((int) (struct_obj_4.member_2_3.member_1_3))) || (((int) (struct_obj_9.member_2_2)) || ((int) (struct_obj_5.member_1_0)))))) <= (((((int) (struct_obj_8.member_4_9.member_1_0)) ^ ((int) (struct_obj_1.member_5_3))) ^ (((int) (var_46)) ^ ((int) (-14806)))) && ((~((int) (struct_obj_5.member_1_3))) & (((int) (struct_obj_1.member_5_3)) & ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))))))) || ((int) (((((int) (((int) (42)) >= ((int) (43439)))) & ((int) ((unsigned short) (var_360)))) % ((int) ((unsigned short) (~((int) (var_239)))))) <= ((int) (14314))))); - signed char var_372 = !((int) ((signed char) (!(!(((int) (var_20)) || ((int) (struct_obj_9.member_2_0))))))); - short var_373 = (((int) (((int) (var_59)) != ((int) ((unsigned short) (-((int) (var_39))))))) & (!(~((int) (struct_obj_8.member_4_2))))) > (+(((((int) (13707)) & ((int) (7604))) | (((int) (-25846)) & ((int) (-16556)))) & (~(~((int) (-31893)))))); - signed char var_374 = (((int) ((unsigned short) ((((int) (var_24)) - ((int) (-19514))) + ((int) ((unsigned short) (struct_obj_8.member_4_6)))))) % (~((((int) (struct_obj_3.member_5_1)) & ((int) (24836))) ^ ((int) (14314))))) && (((((int) ((unsigned short) (var_22))) * ((int) ((signed char) (-16118)))) / ((+((int) (32053))) * (((int) (var_46)) * ((int) (struct_obj_9.member_2_5))))) * (!(((int) ((unsigned short) (-21342))) / (((int) (-24)) * ((int) (44779)))))); - } - - if (-((((int) ((~((int) (-2283))) > ((int) (30538)))) & ((~((int) (-122))) | (((int) (20509)) | ((int) (-30753))))) ^ ((int) (struct_obj_8.member_4_2)))) - { - short var_375 = (((int) ((signed char) ((((int) (-5376)) | ((int) (33396))) & (~((int) (52)))))) | (~(~((int) (struct_obj_8.member_4_1.member_3_0))))) & (~(((((int) (struct_obj_3.member_5_2)) | ((int) (51))) ^ (((int) (struct_obj_8.member_4_9.member_1_2)) | ((int) (5146)))) ^ ((((int) (var_47)) ^ ((int) (var_59))) ^ (((int) (var_53)) ^ ((int) (var_61)))))); - short var_376 = ((int) ((short) (((int) ((signed char) (~((int) (struct_obj_7.member_1_2))))) ^ (~(((int) (struct_obj_4.member_2_7)) | ((int) (53512))))))) ^ (~((int) (struct_obj_8.member_4_3))); - if (!((((((int) (18612)) * ((int) (11102))) / (((int) (-10215)) * ((int) (14601)))) * ((int) ((unsigned short) (((int) (9895)) * ((int) (37183)))))) * ((((int) ((signed char) (5985))) * ((int) (-79))) * ((((int) (29091)) * ((int) (54881))) * (!((int) (8671))))))) - { - unsigned short var_377 = ~((((((int) (-37)) ^ ((int) (struct_obj_2.member_5_1))) & (~((int) (107)))) & ((((int) (var_26)) | ((int) (4730))) & (((int) (-82)) & ((int) (22312))))) & (((int) (struct_obj_9.member_2_4)) | ((~((int) (121))) & (((int) (struct_obj_7.member_1_2)) & ((int) (struct_obj_8.member_4_5)))))); - signed char var_378 = ~(((((int) (var_239)) | (((int) (struct_obj_8.member_4_4)) | ((int) (var_54)))) & ((int) (var_31))) | (((int) ((unsigned short) (4132))) ^ ((((int) (var_239)) | ((int) (var_27))) & ((int) ((unsigned short) (36)))))); - short var_379 = (signed char) (var_23); - signed char var_380 = !((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))); - short var_381 = (short) (((int) (struct_obj_3.member_5_0)) * (~((((int) (var_50)) / ((int) (var_1))) * ((int) ((short) (var_34)))))); - unsigned short var_382 = !((int) ((((int) ((short) (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145))))))))))) * (~(~((int) (struct_obj_4.member_2_1.member_1_3))))) != ((int) (((((int) (32580)) - ((int) (var_19))) - (((int) (var_57)) - ((int) (20)))) > ((((int) (var_31)) * ((int) (var_21))) / (((int) (var_16)) * ((int) (var_24)))))))); - signed char var_383 = -(((~((int) (62))) || ((!((int) (struct_obj_10.member_1_0))) || ((int) (var_43)))) >> (((~(((int) (var_20)) ^ ((int) (struct_obj_4.member_2_7)))) | ((((int) (9112)) ^ ((int) (var_12))) | (~((int) (struct_obj_4.member_2_1.member_1_1))))) - (63223))); - } - else - { - signed char var_384 = +((!((int) (var_15))) || (((((int) (var_22)) || ((int) (var_30))) || (((int) (var_56)) || ((int) (var_25)))) && (((int) ((short) (var_46))) && (((int) (var_14)) && ((int) (var_1)))))); - signed char var_385 = (~((int) ((-(!((int) (var_10)))) > ((int) ((((int) (7176)) || ((int) (struct_obj_3.member_5_3))) < (((int) (var_9)) ^ ((int) (var_4)))))))) & ((((((int) (var_66)) ^ ((int) (struct_obj_8.member_4_6))) ^ ((int) (var_25))) & (((int) ((signed char) (var_63))) & (((int) (41306)) ^ ((int) (-112))))) | (~(~(((int) (struct_obj_6.member_5_1)) | ((int) (20554)))))); - signed char var_386 = ((int) ((short) (((((int) (struct_obj_8.member_4_7)) | ((int) (var_23))) << (((int) ((unsigned short) (struct_obj_4.member_2_3.member_1_0))) - (10))) & ((((int) (78)) | ((int) (struct_obj_8.member_4_2))) << (((~((int) (struct_obj_8.member_4_0))) + (17374)) - (3)))))) ^ ((((int) (var_43)) << ((~((int) (struct_obj_5.member_1_0))) & (((int) (33)) >> (((int) (90)) - (76))))) & ((int) (48))); - short var_387 = ((((int) ((short) (~((int) (37783))))) & ((int) ((unsigned short) (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))))) / ((int) (64))) * ((int) (((int) ((!((int) (((int) (66)) != ((int) (61361))))) <= ((int) ((((int) (var_4)) || ((int) (var_45))) >= ((int) (((int) (10596)) == ((int) (struct_obj_3.member_5_2)))))))) != (((((int) (var_54)) * ((int) (115))) - (((int) (struct_obj_4.member_2_2)) >> (((int) (struct_obj_5.member_1_3)) + (20999)))) * ((int) (((int) ((signed char) (-2450))) == ((int) (((int) (6285)) <= ((int) (struct_obj_10.member_1_2))))))))); - short var_388 = ((int) (struct_obj_4.member_2_3.member_1_0)) >> (((((~(~((int) (struct_obj_8.member_4_6)))) ^ (~(((int) (var_62)) ^ ((int) (-20398))))) + (2147483647)) << (((!((~((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) >> ((((int) (17689)) & ((int) (58630))) - (17642)))) - (0)) - (1))) - (2147436043)); - } - - signed char var_389 = (((~((~((int) (-13180))) % ((int) ((signed char) (982))))) + (2147483647)) >> ((int) ((unsigned short) (((int) (((int) (41013)) < ((int) (struct_obj_8.member_4_9.member_1_0)))) > (((int) (-114)) % ((int) (var_52))))))) >> ((((int) (var_48)) * (!(~((int) (struct_obj_4.member_2_3.member_1_2))))) & ((-((int) ((unsigned short) (struct_obj_8.member_4_6)))) * (+(((int) (6318)) + ((int) (var_8)))))); - short var_390 = ~(((~(!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))) + (2147483647)) << (((~(!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))) + (5)) - (3))); - signed char var_391 = (short) (((~((int) ((unsigned short) (-29)))) ^ ((int) (-21318))) != (((int) (var_52)) >> ((((int) ((signed char) (var_41))) ^ (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))) + (109)))); - var_392 = (unsigned short) (-(+((int) ((signed char) ((short) (~((int) (var_239)))))))); - if (~(((int) (-14799)) * ((~(((int) (struct_obj_5.member_1_3)) * ((int) (-23808)))) * ((!((int) (-20034))) * (((int) (struct_obj_9.member_2_0)) * ((int) (struct_obj_10.member_1_2))))))) - { - unsigned short var_393 = ~((int) (((int) (var_14)) != (((~((int) (var_16))) | ((~(((int) (var_28)) ^ ((int) (struct_obj_4.member_2_3.member_1_0)))) ^ ((((int) (8520)) | ((int) (struct_obj_4.member_2_7))) ^ ((int) ((signed char) (32145)))))) & (((int) ((short) (var_5))) * ((int) (((int) (struct_obj_3.member_5_3)) >= ((((int) (-80)) - ((int) (-145))) - (((int) (var_24)) * ((int) (var_26)))))))))); - unsigned short var_394 = (-(((((int) (-37)) | ((int) (struct_obj_9.member_2_4))) * (((int) (var_10)) || ((int) (118)))) & ((int) (-26136)))) / ((int) (((int) ((unsigned short) ((!((int) (struct_obj_9.member_2_2))) && (((int) (var_47)) || ((int) (var_20)))))) != ((~((((int) (-31043)) + (2147483647)) << (((int) (struct_obj_3.member_5_2)) - (59825)))) - ((((int) (struct_obj_4.member_2_3.member_1_2)) * ((int) (struct_obj_1.member_5_2))) ^ (((int) (var_65)) || ((int) (struct_obj_9.member_2_6))))))); - short var_395 = (!((int) ((((int) ((signed char) (var_61))) ^ ((int) ((short) (struct_obj_2.member_5_2)))) <= ((int) (struct_obj_6.member_5_1))))) % ((((-((int) (struct_obj_8.member_4_1.member_3_1.member_1_1))) + (-((int) (21146)))) * (-((int) (var_11)))) ^ (((int) ((unsigned short) (((int) (var_35)) >> (((int) (var_35)) - (14408))))) || ((int) (var_43)))); - signed char var_396 = ((((-((int) (114))) / (((int) (10051)) * ((int) (3676)))) * ((int) (10897))) * (~((((int) (52640)) / ((int) (57215))) * (((int) (126)) * ((int) (21)))))) * ((int) (-104)); - short var_397 = struct_obj_4.member_2_3.member_1_2; - unsigned short var_398 = +((int) ((short) (var_17))); - short var_399 = (((int) (39888)) || ((int) ((signed char) ((((int) (-25317)) | ((int) (5975))) | (((int) (struct_obj_7.member_1_2)) ^ ((int) (19725))))))) + ((int) ((~(~(((int) (var_52)) * ((int) (struct_obj_4.member_2_5))))) <= (((((int) (24622)) & ((int) (struct_obj_8.member_4_6))) >> ((((int) (-6)) ^ ((int) (struct_obj_8.member_4_9.member_1_1))) + (13903))) | ((((int) (struct_obj_4.member_2_1.member_1_1)) & ((int) (var_65))) | (~((int) (var_9))))))); - signed char var_400 = (~((int) (struct_obj_9.member_2_2))) & (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145))))))))); - short var_401 = (((int) (30788)) || (((((int) (struct_obj_4.member_2_1.member_1_1)) || ((int) (var_54))) && (((int) (struct_obj_9.member_2_5)) || ((int) (31866)))) && (!(((int) (-25)) || ((int) (var_25)))))) && ((((!((int) (-8773))) && (((int) (var_4)) || ((int) (struct_obj_6.member_5_2)))) || (((int) ((unsigned short) (struct_obj_10.member_1_0))) || (!((int) (var_390))))) || (((int) (var_63)) && ((((int) (var_14)) && ((int) (var_3))) && (((int) (46668)) && ((int) (var_376)))))); - short var_402 = -((+((((int) (struct_obj_6.member_5_1)) * ((int) (struct_obj_10.member_1_3))) / (((int) (41269)) * ((int) (4485))))) * ((+(((int) (71)) * ((int) (struct_obj_7.member_1_0)))) / ((((int) (85)) * ((int) (var_14))) * ((int) (struct_obj_3.member_5_2))))); - } - else - { - short var_403 = struct_obj_3.member_5_2; - var_40 = (signed char) (((int) ((((int) ((+((int) (struct_obj_8.member_4_6))) != ((int) ((unsigned short) (var_24))))) & (~(((int) (struct_obj_4.member_2_1.member_1_0)) >> (((int) (5468)) - (5438))))) >= ((int) ((short) ((unsigned short) (((int) (6863)) > ((int) (struct_obj_9.member_2_1.member_1_0)))))))) >> ((((((int) (89)) & ((int) (-26560))) ^ ((int) ((unsigned short) (61166)))) | ((((int) (struct_obj_3.member_5_1)) & ((int) (25315))) ^ (((int) (7697)) & ((int) (89))))) >> (((int) ((signed char) (-(((int) (struct_obj_3.member_5_3)) + ((int) (40803)))))) + (79)))); - short var_404 = ((int) (var_23)) >> ((((((int) (94)) | ((int) (63983))) >> ((((int) (var_52)) << ((((int) (-34)) + (64)) - (13))) - (1294204900))) & (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))) << (((~((int) ((signed char) (var_46)))) | (((int) (struct_obj_4.member_2_0)) | (~((int) (struct_obj_6.member_5_1))))) + (15))); - unsigned short var_405 = (short) (~((~(~((int) (-82)))) & (~(~((int) (var_21)))))); - unsigned short var_406 = (!((int) ((((((int) (-5843)) + (2147483647)) >> (((int) (9959)) - (9945))) || (((int) (65528)) % ((int) (18356)))) > ((int) (-82))))) & ((int) ((((((int) (16978)) << (((int) (55441)) - (55441))) & (~((int) (20123)))) << ((((((int) (-53)) & ((int) (-20160))) + (2147483647)) << ((((int) (63586)) ^ ((int) (48225))) - (17411))) - (2147463464))) <= (~(!(((int) (32938)) && ((int) (55062))))))); - short var_407 = (~(~((int) ((unsigned short) (~((int) (30575))))))) < (~((~((int) ((unsigned short) (var_24)))) % (~((int) (((int) (struct_obj_9.member_2_2)) != ((int) (struct_obj_10.member_1_2))))))); - var_37 = (signed char) (((int) ((unsigned short) (!((((int) (struct_obj_5.member_1_0)) * ((int) (4381))) / (((int) (struct_obj_9.member_2_0)) * ((int) (var_8))))))) & (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))); - unsigned short var_408 = ((int) ((!((((int) ((-127 - 1))) * ((int) (var_23))) * ((int) (var_405)))) <= ((int) ((unsigned short) ((!((int) (struct_obj_8.member_4_1.member_3_1.member_1_1))) != (~((int) (14031)))))))) << ((int) (((int) ((unsigned short) ((unsigned short) (+((int) (8559)))))) == ((((int) ((signed char) (-13521))) & ((int) (18645))) >> ((int) (((int) (((int) (115)) >= ((int) (24451)))) > ((int) (((int) (20299)) <= ((int) (-4935))))))))); - unsigned short var_409 = ~((~((int) ((unsigned short) (((int) (-5693)) | ((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)))))) | (!((int) (((int) (((int) ((short) (!((int) (45291))))) > ((int) (-24057)))) <= ((((int) (79)) | (((int) (7019)) * ((int) (-30489)))) + ((int) ((((int) (45)) || ((int) (19))) <= (~((int) (8145)))))))))); - signed char var_410 = (signed char) ((((int) ((signed char) (((int) (struct_obj_8.member_4_3)) - ((int) (2744))))) * (+((int) (struct_obj_8.member_4_9.member_1_2)))) > ((int) (struct_obj_4.member_2_1.member_1_0))); - } - - unsigned short var_411 = (signed char) (24176); - } - - if ((short) (((!(((int) (struct_obj_1.member_5_2)) && ((int) (50462)))) || ((!((int) (var_26))) && (!((int) (var_239))))) && (!((int) ((signed char) (((int) (-15398)) && ((int) (struct_obj_4.member_2_3.member_1_1)))))))) - { - if (~((int) ((signed char) (((((int) (-3658)) & ((int) (46399))) & (~((int) (var_6)))) & ((((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) & ((int) (struct_obj_8.member_4_2))) | (~((int) (var_55)))))))) - { - signed char var_412 = (((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) | ((!(!((int) (struct_obj_6.member_5_2)))) || ((((int) (-22401)) || ((int) (var_15))) || (((int) (73)) || ((int) (-31)))))) >> (((~(~((int) (77)))) & ((int) ((signed char) (~((int) ((unsigned short) (-3189))))))) - (66)); - unsigned short var_413 = ~((~(((int) ((unsigned short) (var_63))) ^ (((int) (struct_obj_4.member_2_3.member_1_3)) ^ ((int) (888))))) && ((int) ((signed char) (((int) ((short) (92))) >> (((int) ((signed char) (83))) - (81)))))); - signed char var_414 = ((int) ((short) (~((int) ((signed char) (!((int) (31724)))))))) != ((int) (((int) ((short) ((!((int) (var_61))) || (((int) (struct_obj_9.member_2_1.member_1_3)) && ((int) (var_15)))))) < ((int) (((((int) (struct_obj_6.member_5_3)) >> (((int) (42310)) - (42285))) && (~((int) ((short) (~(~((int) (-20)))))))) <= (~(((int) (25509)) || ((int) (var_26)))))))); - signed char var_415 = ~((int) ((short) (~(~((int) (-20)))))); - struct_obj_5.member_1_3 = (short) ((((int) (((((int) (1141)) >> (((int) (20167)) - (20155))) * (!((int) (7901)))) > (((int) ((unsigned short) (-12160))) || (((int) (6205)) || ((int) (-116)))))) >> ((int) (((!((int) (var_26))) && (((int) (-16178)) || ((int) (-93)))) < ((int) ((-((int) (struct_obj_4.member_2_3.member_1_1))) != ((int) ((signed char) (var_56)))))))) == ((((~((int) (-13334))) & (((int) (38790)) & ((int) (46)))) | (((int) ((short) (var_52))) ^ ((int) ((short) (6800))))) ^ ((int) ((signed char) ((signed char) (((int) (49)) ^ ((int) (-7974)))))))); - } - - if ((((int) ((signed char) ((((int) (var_16)) ^ ((int) (var_60))) ^ (~((int) (8171)))))) ^ (~((int) (var_63)))) || (((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) * ((((int) ((short) (35294))) * ((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14)))))))) * ((-((int) (-14699))) / (((int) (32201)) * ((int) (13800))))))) - { - unsigned short var_416 = -(!(+((((int) (var_11)) >> (((int) (62073)) - (62065))) - ((int) (((int) (26396)) > ((int) (var_23))))))); - signed char var_417 = (((~(((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))) & ((int) ((unsigned short) (var_239))))) + (2147483647)) >> ((((int) (struct_obj_6.member_5_2)) | (~(((int) (struct_obj_4.member_2_3.member_1_0)) | ((int) (48769))))) + (3079))) >> (((((~((int) (-24))) & (((int) (var_30)) >> (((int) (var_7)) - (32)))) << (((int) ((short) (((int) (struct_obj_2.member_5_0)) & ((int) (struct_obj_6.member_5_3))))) - (12279))) | ((int) ((signed char) (struct_obj_9.member_2_1.member_1_1)))) + (62)); - signed char var_418 = ((int) ((signed char) (-((int) ((unsigned short) ((short) (struct_obj_1.member_5_3))))))) == ((((((int) (14395)) ^ ((int) (28584))) ^ (((int) (struct_obj_8.member_4_9.member_1_0)) | ((int) (var_239)))) ^ (~(((int) (32)) ^ ((int) (struct_obj_3.member_5_3))))) ^ ((int) ((short) ((((int) (struct_obj_5.member_1_1)) & ((int) (var_13))) ^ (((int) (var_5)) | ((int) (-69))))))); - signed char var_419 = (~((~(((int) (28263)) ^ ((int) (115)))) ^ ((((int) (21)) & ((int) (71))) | ((int) (var_39))))) & ((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))); - signed char var_420 = (~(((((int) ((signed char) (-94))) ^ ((int) ((signed char) (struct_obj_7.member_1_1)))) + (2147483647)) >> ((~(~((int) (struct_obj_10.member_1_3)))) + (21785)))) != ((~((int) ((short) ((short) (-27))))) && (~(-((int) (var_37))))); - unsigned short var_421 = ~(((int) ((signed char) (+(!((int) (var_4)))))) & ((int) (((~((int) (var_30))) && (((int) (var_23)) && ((int) (struct_obj_8.member_4_9.member_1_0)))) != ((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2))))))); - } - - if ((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) - { - var_36 = (short) (25335); - unsigned short var_422 = (((int) ((signed char) ((-((int) (struct_obj_4.member_2_1.member_1_3))) <= ((int) (((int) (-14940)) < ((int) (52041))))))) * (((((int) (struct_obj_2.member_5_2)) ^ ((int) (57552))) >> (((int) (2460)) & ((int) (var_38)))) || ((int) (((int) ((unsigned short) (-2096))) <= (((int) (var_25)) - ((int) (var_66))))))) < ((((+((int) (struct_obj_6.member_5_3))) + (+((int) (46470)))) - ((+((int) (2855))) + (((int) (var_41)) - ((int) (-121))))) + (-((-((int) (var_58))) + ((int) ((short) (-127)))))); - unsigned short var_423 = 44; - short var_424 = -(-((int) ((!(~((int) (61500)))) <= ((~((int) (var_37))) || ((int) (((int) (var_21)) >= ((int) (var_7)))))))); - unsigned short var_425 = (short) ((~(~(((int) (-11932)) ^ ((int) (var_239))))) ^ (~(~(((int) (-7336)) ^ ((int) (5408)))))); - unsigned short var_426 = !(((int) (((int) (((int) (283)) <= ((int) (65)))) != ((int) ((signed char) (((int) (22882)) ^ ((int) (29567))))))) || (-(((int) ((signed char) (var_239))) | (((int) (struct_obj_4.member_2_3.member_1_3)) & ((int) (-27)))))); - unsigned short var_427 = (((((~((int) (struct_obj_3.member_5_3))) ^ (((int) (-24690)) | ((int) (91)))) + (2147483647)) >> ((int) ((((int) (-28477)) + ((int) (var_17))) == (~((int) (var_30)))))) / ((int) ((short) ((short) (((int) (-30015)) - ((int) (65016))))))) >= ((int) (struct_obj_6.member_5_2)); - short var_428 = (+((int) ((short) ((((int) (-99)) * ((int) (var_58))) + (((int) (-8669)) - ((int) (3621))))))) < ((int) ((signed char) (~(((((int) (var_64)) + (2147483647)) << ((int) (var_427))) << (((((int) ((unsigned short) (11))) - (10)) - (0)) - (1)))))); - signed char var_429 = ((((int) ((unsigned short) (~((int) (var_50))))) * (~((int) (var_5)))) * ((int) (var_47))) * ((~(((int) ((short) (64554))) * (((int) (68)) * ((int) (39))))) * (((+((int) (-19580))) / (((int) (-26334)) * ((int) (56761)))) * (((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))) * (((int) (struct_obj_9.member_2_1.member_1_0)) * ((int) (var_31)))))); - } - - if ((~((~(~((int) (var_56)))) | ((((int) (var_43)) >> (((int) (var_13)) + (23914))) >> ((((int) (struct_obj_4.member_2_3.member_1_1)) & ((int) (var_6))) - (35519))))) ^ ((~((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) & (~(~(((int) (struct_obj_8.member_4_0)) << ((((int) (struct_obj_9.member_2_1.member_1_1)) - (31950)) - (6))))))) - { - short var_430 = (!((~(((int) (var_57)) | ((int) (-5372)))) ^ ((((int) (var_20)) & ((int) (var_18))) | (~((int) (struct_obj_7.member_1_0)))))) && ((int) (struct_obj_4.member_2_6)); - signed char var_431 = (unsigned short) (~(((((int) (struct_obj_4.member_2_5)) ^ ((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) & (((int) (19)) & ((int) (7794)))) & ((~((int) (var_46))) ^ (~((int) (var_62)))))); - short var_432 = ((((int) (var_28)) - (((int) (-23906)) - (((int) (var_22)) + ((int) (struct_obj_4.member_2_3.member_1_3))))) - (((((int) (var_2)) + ((int) (struct_obj_10.member_1_0))) + (((int) (struct_obj_10.member_1_2)) - ((int) (55916)))) + (-(((int) (var_23)) - ((int) (29449)))))) || ((int) ((signed char) ((~(~((int) (var_48)))) | ((((int) (struct_obj_6.member_5_0)) ^ ((int) (struct_obj_6.member_5_0))) ^ (((int) (55178)) & ((int) (var_56))))))); - signed char var_433 = ((int) (struct_obj_9.member_2_5)) || ((((((int) (27241)) | ((int) (var_51))) & (((int) (84)) | ((int) (-11135)))) | ((int) (struct_obj_3.member_5_0))) | ((int) ((short) (~(((int) (var_17)) | ((int) (3828))))))); - short var_434 = !(((int) ((unsigned short) ((((int) (struct_obj_8.member_4_0)) & ((int) (-2293))) <= (((int) (34)) | ((int) (var_39)))))) << ((((((int) (-29164)) & ((int) (struct_obj_8.member_4_5))) ^ ((int) ((unsigned short) (struct_obj_6.member_5_2)))) >> ((((~((int) (struct_obj_8.member_4_5))) + (2147483647)) >> (((int) (var_2)) - (17779))) - (67108820))) - (364))); - signed char var_435 = ~(~((int) ((signed char) (-(((int) (struct_obj_9.member_2_2)) && ((int) (struct_obj_9.member_2_1.member_1_0))))))); - signed char var_436 = (signed char) ((-((((int) (48727)) << (((((int) (var_51)) + (11808)) - (5)) - (2))) << (((((int) (-23500)) + (2147483647)) >> (((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)) - (25280))) - (1048564)))) < ((int) (struct_obj_7.member_1_0))); - unsigned short var_437 = ((-(-((((int) (-8)) ^ ((int) (65))) & (~((int) (struct_obj_1.member_5_1)))))) + (2147483647)) >> ((int) ((short) (!(!(((int) (115)) && ((int) (14265))))))); - unsigned short var_438 = ~(((((int) ((short) ((short) (var_13)))) || (!((int) (var_48)))) || ((int) ((unsigned short) (!((int) (31752)))))) || ((int) ((short) ((short) (var_13))))); - unsigned short var_439 = ((int) ((unsigned short) ((((((int) (var_42)) + (2147483647)) >> (((int) (struct_obj_9.member_2_4)) - (13535))) & (~((int) (var_56)))) << ((((int) (-17065)) | ((int) ((signed char) (struct_obj_8.member_4_2)))) + (17025))))) & ((~((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14)))))))) ^ ((int) (var_40))); - } - - short var_440 = (+((int) (((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))) <= ((int) ((unsigned short) (!((int) (var_56)))))))) <= ((int) (((int) ((signed char) (((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) / (((int) (var_60)) * ((int) (-77)))))) == ((int) ((((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) % ((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2))))) >= ((int) ((((int) (var_66)) && ((int) (var_60))) >= (+((int) (var_2))))))))); - short var_441 = struct_obj_3.member_5_0; - if ((((~((int) (var_441))) * (+(((int) (struct_obj_6.member_5_2)) + ((int) (var_60))))) && ((int) ((((int) (struct_obj_6.member_5_0)) && (!((int) (25)))) <= ((int) ((signed char) ((signed char) (var_33))))))) || (((~(((int) (struct_obj_5.member_1_1)) & ((int) (11652)))) & ((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14)))))))) | (~((int) ((unsigned short) ((signed char) (var_60))))))) - { - signed char var_442 = ~((((+((int) (var_7))) / (((int) (18532)) * ((int) (var_28)))) * ((int) (struct_obj_1.member_5_3))) * (((((int) (var_18)) * ((int) (struct_obj_6.member_5_1))) / (~((int) (struct_obj_4.member_2_3.member_1_1)))) / ((((int) (64)) * ((int) (-16))) * (((int) (var_31)) * ((int) (65)))))); - signed char var_443 = var_18; - signed char var_444 = ~(~((~(((int) (var_30)) ^ ((int) (struct_obj_8.member_4_4)))) | ((int) ((unsigned short) (~((int) (struct_obj_9.member_2_1.member_1_0))))))); - short var_445 = ((+((((int) (struct_obj_4.member_2_1.member_1_1)) + ((int) (struct_obj_9.member_2_5))) + (((int) (13876)) * ((int) (26471))))) / (-((((int) (12947)) - ((int) (28265))) + (((int) (-30980)) - ((int) (40610)))))) << ((+((int) (((int) ((unsigned short) (var_11))) != ((int) ((signed char) (var_41)))))) >> (((int) ((unsigned short) ((short) (~((int) (struct_obj_4.member_2_0)))))) - (57920))); - short var_446 = ((int) ((~(((int) (31)) || (((int) (struct_obj_5.member_1_3)) && ((int) (var_14))))) > (~((int) (18166))))) > (((int) (((int) ((((int) (4507)) >> (((int) (60479)) - (60459))) > (((int) (14247)) * ((int) (var_44))))) < ((int) ((!((int) (var_15))) <= (+((int) (struct_obj_4.member_2_7))))))) | (~((((int) (15746)) | ((int) (struct_obj_9.member_2_2))) ^ ((int) ((unsigned short) (-5912)))))); - unsigned short var_447 = (+((int) (((int) ((unsigned short) (((int) (-119)) + ((int) (91))))) <= ((((int) (52)) | ((int) (-85))) ^ (((int) (36281)) ^ ((int) (11743))))))) & (~((int) ((short) (((int) ((unsigned short) (5509))) / (((int) (53477)) * ((int) (-1233))))))); - signed char var_448 = (~((int) ((short) (((int) ((short) (var_12))) ^ (~((int) (var_15))))))) | ((int) ((signed char) (~(~((int) ((unsigned short) (var_31))))))); - unsigned short var_449 = (short) ((((int) ((signed char) ((unsigned short) (-9779)))) || ((((int) (var_6)) - (-((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))))) % ((int) (var_4)))) && ((((int) ((unsigned short) (2615))) && ((int) ((unsigned short) (-127)))) && ((((int) (var_443)) && ((int) (var_56))) || (((int) (struct_obj_5.member_1_3)) || ((int) (struct_obj_1.member_5_1)))))); - } - else - { - unsigned short var_450 = ((int) ((short) (-(((int) (1)) >> ((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))))))) != ((int) ((signed char) ((((int) (var_6)) - (-((+(((int) ((unsigned short) (((int) (-7293)) * ((int) (5069))))) * ((int) ((signed char) (((int) (struct_obj_2.member_5_3)) * ((int) (var_16))))))) * (((int) (((int) (var_34)) < ((int) ((short) ((unsigned short) (var_24)))))) & ((~((int) ((short) (var_14)))) & (~(~((int) (var_14))))))))) % ((int) (var_4))))); - short var_451 = ~((((((int) (var_51)) & ((int) (var_64))) & ((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2))))) & (~(((int) (6939)) ^ ((int) (5312))))) & (~((((int) (62)) << (((int) (var_13)) + (23928))) & (((int) (var_3)) | ((int) (struct_obj_6.member_5_3)))))); - unsigned short var_452 = ((((((int) (struct_obj_4.member_2_5)) & ((int) (-26752))) || ((int) ((signed char) (-20709)))) - ((int) (((int) ((unsigned short) (45959))) <= (((int) (var_32)) / ((int) (-65)))))) && (+(((int) (struct_obj_3.member_5_3)) || ((int) ((((int) ((short) (struct_obj_2.member_5_0))) & (((int) (var_21)) | ((int) (var_3)))) != (((int) ((short) (6))) ^ (!((int) (var_26))))))))) >> ((int) (((int) (((int) ((((int) (var_28)) >> (((int) (-22)) + (23))) >= (((int) (var_51)) | ((int) (103))))) != (((int) ((signed char) (var_21))) | ((int) ((unsigned short) (var_60)))))) <= ((int) ((~(+((int) (53974)))) <= ((int) (((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) <= ((int) (((int) (19953)) >= ((int) (-25036)))))))))); - short var_453 = ~((int) ((unsigned short) (~((((int) (20)) << (((int) (var_3)) - (54))) << ((((~((int) (35514))) + (35541)) - (3)) - (21)))))); - signed char var_454 = ~(!((int) (((int) ((unsigned short) (((int) (17187)) >= ((int) (3599))))) < (((int) ((short) (var_12))) >> ((~((int) (struct_obj_2.member_5_1))) + (25779)))))); - short var_455 = (((int) ((signed char) ((signed char) (((int) (struct_obj_8.member_4_4)) ^ ((int) (var_452)))))) | (~((int) (struct_obj_4.member_2_3.member_1_3)))) >> ((((((int) ((unsigned short) (124))) & (~((int) (57361)))) << ((~(((int) (93)) ^ ((int) (59)))) + (110))) << ((~(~(~((int) (8))))) + (11))) - (55278)); - unsigned short var_456 = ((int) ((((((((~((int) (36437))) + (2147483647)) << ((((int) (struct_obj_1.member_5_3)) << (((int) (var_2)) - (17781))) - (5920))) & (~((int) ((signed char) (struct_obj_4.member_2_1.member_1_3))))) ^ (((((int) (var_33)) << (((int) (17994)) - (17983))) >> (((int) ((short) (var_20))) + (16020))) ^ (((~((int) (101))) + (2147483647)) >> ((((int) (-7863)) ^ ((int) (struct_obj_4.member_2_4))) - (21936))))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))) ^ ((int) ((signed char) (((int) (63815)) >> (((int) (-65)) + (94)))))) <= ((int) (99)))) & (!((int) ((signed char) ((unsigned short) (((int) (var_20)) >> (((int) (var_35)) - (14412))))))); - signed char var_457 = (!((int) ((signed char) ((((int) (11972)) || ((int) (struct_obj_7.member_1_0))) || (((int) (struct_obj_4.member_2_1.member_1_3)) || ((int) (91))))))) && ((((+(((int) (struct_obj_3.member_5_3)) || ((int) ((((int) ((short) (struct_obj_2.member_5_0))) & (((int) (var_21)) | ((int) (var_3)))) != (((int) ((short) (6))) ^ (!((int) (var_26)))))))) && (((int) (-24193)) || ((int) (struct_obj_4.member_2_1.member_1_0)))) || ((int) (69))) || (!((!((int) (36135))) && (!((int) (-42)))))); - signed char var_458 = ((int) ((signed char) (((((int) (var_441)) & ((int) (-251))) & (((int) (34879)) & ((int) (struct_obj_4.member_2_7)))) & ((((int) (48265)) * ((int) (var_56))) / (~((int) (-71))))))) & ((int) (((-(((int) (62323)) | ((int) (24633)))) & (~(+(((int) (struct_obj_3.member_5_3)) || ((int) ((((int) ((short) (struct_obj_2.member_5_0))) & (((int) (var_21)) | ((int) (var_3)))) != (((int) ((short) (6))) ^ (!((int) (var_26)))))))))) >= ((int) ((signed char) (~(((int) (-16927)) & ((int) (struct_obj_1.member_5_2)))))))); - } - - } - else - { - unsigned short var_459 = ((int) ((-((int) ((short) (((int) (-8)) < ((int) (18519)))))) != ((int) ((short) ((((int) (10757)) | ((int) (16517))) ^ (~((int) (8440)))))))) ^ ((int) (var_52)); - unsigned short var_460 = (-(~((int) (((int) (((int) (((int) (struct_obj_4.member_2_7)) > ((~((int) (struct_obj_4.member_2_0))) | ((int) ((short) (var_35)))))) > (~(~(((int) (39209)) ^ ((int) (struct_obj_4.member_2_1.member_1_3))))))) != ((int) (((int) ((short) (((int) (((int) (var_14)) == ((int) (struct_obj_3.member_5_2)))) * ((int) (((int) (struct_obj_4.member_2_3.member_1_3)) >= ((int) (56773))))))) <= (((((int) (var_13)) + (2147483647)) >> (((int) ((short) (-14702))) + (14731))) << (((int) (struct_obj_2.member_5_1)) - (25749))))))))) == ((int) (((int) ((signed char) ((((int) (var_20)) << (((int) (var_40)) - (63))) == ((((int) (struct_obj_5.member_1_0)) + (2147483647)) << (((int) (31224)) - (31224)))))) <= (!((((int) (struct_obj_10.member_1_2)) * ((int) (63260))) / (((int) (struct_obj_8.member_4_3)) * ((int) (23510))))))); - unsigned short var_461 = (((int) ((signed char) ((((int) (var_42)) ^ ((int) (var_55))) >> ((((int) (var_45)) & ((int) (25562))) - (25483))))) & ((int) (((int) (((int) (((int) (struct_obj_4.member_2_7)) > ((~((int) (struct_obj_4.member_2_0))) | ((int) ((short) (var_35)))))) > (~(~(((int) (39209)) ^ ((int) (struct_obj_4.member_2_1.member_1_3))))))) != ((int) (((int) ((short) (((int) (((int) (var_14)) == ((int) (struct_obj_3.member_5_2)))) * ((int) (((int) (struct_obj_4.member_2_3.member_1_3)) >= ((int) (56773))))))) <= (((((int) (var_13)) + (2147483647)) >> (((int) ((short) (-14702))) + (14731))) << (((int) (struct_obj_2.member_5_1)) - (25749)))))))) > (-((int) (struct_obj_1.member_5_3))); - unsigned short var_462 = ((int) (var_49)) * ((~(-(((int) (-125)) * ((int) (struct_obj_6.member_5_0))))) / ((int) ((unsigned short) ((short) (((int) (var_21)) * ((int) (var_2))))))); - if ((unsigned short) (~(~((int) (((int) (((int) (((int) (struct_obj_4.member_2_7)) > ((~((int) (struct_obj_4.member_2_0))) | ((int) ((short) (var_35)))))) > (~(~(((int) (39209)) ^ ((int) (struct_obj_4.member_2_1.member_1_3))))))) != ((int) (((int) ((short) (((int) (((int) (var_14)) == ((int) (struct_obj_3.member_5_2)))) * ((int) (((int) (struct_obj_4.member_2_3.member_1_3)) >= ((int) (56773))))))) <= (((((int) (var_13)) + (2147483647)) >> (((int) ((short) (-14702))) + (14731))) << (((int) (struct_obj_2.member_5_1)) - (25749)))))))))) - { - signed char var_463 = (short) (((int) ((short) (((int) (var_6)) != (~((int) (var_17)))))) > (((int) ((short) (((int) (125)) * ((int) (struct_obj_4.member_2_0))))) / (~(((int) (struct_obj_8.member_4_7)) * ((int) (struct_obj_9.member_2_1.member_1_0)))))); - signed char var_464 = (unsigned short) (((int) ((((int) (var_239)) || (((int) (7)) && ((int) (-32493)))) != (((int) ((signed char) (var_10))) && (-((int) (var_14)))))) & (((~((((int) (-16750)) + (2147483647)) << ((int) (var_49)))) + (2147483647)) >> (((((int) (struct_obj_1.member_5_2)) | ((int) (struct_obj_2.member_5_1))) | (((int) (var_38)) & ((int) (5832)))) - (65230)))); - short var_465 = (unsigned short) ((!((int) (struct_obj_4.member_2_1.member_1_3))) * ((-(((int) (-30177)) * ((int) (var_61)))) * ((~((int) (struct_obj_4.member_2_1.member_1_1))) / (((int) (5831)) * ((int) (var_40)))))); - var_53 = (short) (((int) (var_23)) < ((int) ((-(((((int) (-65)) + (2147483647)) >> (((int) (-13186)) + (13192))) || ((int) (((int) (((int) (((int) (struct_obj_4.member_2_7)) > ((~((int) (struct_obj_4.member_2_0))) | ((int) ((short) (var_35)))))) > (~(~(((int) (39209)) ^ ((int) (struct_obj_4.member_2_1.member_1_3))))))) != ((int) (((int) ((short) (((int) (((int) (var_14)) == ((int) (struct_obj_3.member_5_2)))) * ((int) (((int) (struct_obj_4.member_2_3.member_1_3)) >= ((int) (56773))))))) <= (((((int) (var_13)) + (2147483647)) >> (((int) ((short) (-14702))) + (14731))) << (((int) (struct_obj_2.member_5_1)) - (25749))))))))) < ((((int) (-21429)) + (2147483647)) >> ((!((int) (16614))) && ((int) (13925))))))); - signed char var_466 = (~(~(~(~((int) (8094)))))) ^ ((int) ((short) (~((int) ((signed char) (~((int) (-104)))))))); - signed char var_467 = ((int) ((signed char) (~((int) ((signed char) (~((int) (struct_obj_2.member_5_1)))))))) | (~((int) ((short) (-42)))); - var_468 = (signed char) (((!((int) (struct_obj_4.member_2_3.member_1_3))) * ((int) ((unsigned short) ((((int) (struct_obj_8.member_4_7)) * ((int) (65006))) / (-((int) (struct_obj_8.member_4_1.member_3_1.member_1_1))))))) < (~(((((int) (struct_obj_8.member_4_9.member_1_0)) ^ ((int) (struct_obj_5.member_1_0))) ^ (((int) (2436)) | ((int) (var_37)))) ^ (~(~((int) (var_467))))))); - } - - } - - } - - short var_469 = (~(((int) ((unsigned short) (var_36))) & (((int) ((unsigned short) (var_18))) & (~((int) (struct_obj_2.member_5_0)))))) ^ ((int) ((short) (~((((int) (var_10)) >> (((int) (struct_obj_2.member_5_1)) - (25743))) << ((~((int) (var_49))) + (31)))))); - signed char var_470 = (~(~((int) ((signed char) ((unsigned short) (var_9)))))) != ((((((int) (-2067)) ^ ((int) (struct_obj_8.member_4_4))) ^ (~((int) (var_49)))) | (((~((int) (28770))) + (2147483647)) << (((((((int) (var_45)) | ((int) (var_27))) + (29)) - (25)) - (0)) - (1)))) << ((((int) (var_65)) + (12873)) - (27))); - unsigned short var_471 = var_26; - unsigned short var_472 = -(-(((int) (59835)) + ((int) (15808)))); - if ((unsigned short) ((~((((int) (-18340)) ^ ((int) (-18253))) ^ (~((int) (-24880))))) | ((int) (-126)))) - { - unsigned short var_473 = ((~((((int) (struct_obj_1.member_5_2)) * ((int) (5330))) / (((int) (struct_obj_1.member_5_2)) * ((int) (101))))) * ((int) (struct_obj_8.member_4_3))) | (+(((int) (7754)) + ((((int) (struct_obj_2.member_5_3)) * ((int) (var_48))) - ((int) (struct_obj_3.member_5_2))))); - if ((~((int) ((unsigned short) ((unsigned short) (-((int) (15894))))))) >= (!(((!((int) (12826))) * (((int) (127)) * ((int) (var_36)))) * ((int) ((signed char) (((int) (-15438)) * ((int) (var_32)))))))) - { - unsigned short var_474 = ((int) (struct_obj_3.member_5_2)) ^ (!((int) (((int) ((signed char) (((int) (struct_obj_6.member_5_3)) * ((int) (var_4))))) <= ((int) (((int) ((signed char) (var_12))) < (((int) (46)) * ((int) (37)))))))); - short var_475 = (short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))); - unsigned short var_476 = ((int) (10092)) > ((int) ((((int) (((int) (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) <= ((int) (struct_obj_6.member_5_0)))) == (~((int) (17336))))) & (((((int) (-11297)) + (2147483647)) >> (((int) (var_52)) - (9862))) & ((int) (var_63)))) > ((~((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))) ^ ((~((int) (struct_obj_9.member_2_7))) | (((int) (-28444)) ^ ((int) (2438))))))); - unsigned short var_477 = ((int) (struct_obj_9.member_2_1.member_1_3)) << ((~(~((((int) (var_50)) | ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))) & ((int) ((signed char) (-123)))))) + (132)); - unsigned short var_478 = ((~((int) ((unsigned short) ((((int) (62522)) * ((int) (struct_obj_3.member_5_1))) - ((int) (124)))))) + (2147483647)) >> (((int) (struct_obj_3.member_5_2)) - (59812)); - unsigned short var_479 = ~((int) ((((int) (((int) ((signed char) (21844))) <= ((int) (((int) (var_18)) <= ((int) (var_24)))))) & ((~((int) (var_26))) % (((int) (46805)) && ((int) (var_469))))) != (((int) (struct_obj_3.member_5_2)) - (((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))))) - ((int) (struct_obj_9.member_2_1.member_1_1)))))); - short var_480 = ((+((((int) (8636)) - ((int) (-105))) + (((int) (-27878)) - ((int) (61359))))) && (~((~((int) (var_28))) | ((int) ((short) (18641)))))) && ((int) ((signed char) ((~(((int) (-99)) * ((int) (96)))) / (((int) (10930)) * ((int) (-99)))))); - if ((((int) (struct_obj_8.member_4_2)) && ((int) ((short) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))))))) || (!((int) ((short) ((!((int) (889))) && (((int) (var_29)) && ((int) (86)))))))) - { - signed char var_481 = ~(~(((((int) (struct_obj_4.member_2_3.member_1_0)) * ((int) (var_4))) * (~((int) (17223)))) / (~(((int) (545)) * ((int) (var_44)))))); - short var_482 = ((~(~(((int) (var_479)) >> (((int) (struct_obj_8.member_4_1.member_3_0)) - (649))))) | ((((~((int) (struct_obj_4.member_2_0))) + (2147483647)) >> ((((int) (var_481)) ^ ((int) (var_64))) + (63))) << (((~(((int) (struct_obj_9.member_2_1.member_1_0)) | ((int) (var_471)))) + (14662)) - (23)))) & (~(((((int) (-26622)) & ((int) (13554))) ^ ((int) (47104))) | ((((int) (12106)) ^ ((int) (29))) & (((int) (15902)) | ((int) (40455)))))); - signed char var_483 = -(((((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))))) - (((int) (struct_obj_8.member_4_2)) - ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)))) + (-((int) ((unsigned short) (struct_obj_1.member_5_3))))) - ((-(((int) (var_470)) - ((int) (-23)))) - ((((int) (-24447)) - ((int) (var_33))) - (((int) (struct_obj_7.member_1_2)) + ((int) (99)))))); - unsigned short var_484 = ~((((int) (var_469)) * ((int) ((signed char) (((int) (var_8)) * ((int) (var_17)))))) * (-((-((int) (-8))) / (((int) (struct_obj_8.member_4_6)) * ((int) (struct_obj_4.member_2_3.member_1_3)))))); - unsigned short var_485 = ((int) ((signed char) (!(!((int) ((unsigned short) (var_6))))))) % ((int) ((signed char) (struct_obj_3.member_5_2))); - short var_486 = (signed char) (!((((int) (struct_obj_3.member_5_2)) * ((int) ((short) (var_1)))) / (-(+((int) (-32650)))))); - var_41 = (unsigned short) (~((int) (struct_obj_3.member_5_2))); - unsigned short var_487 = !(((~((int) ((signed char) (var_48)))) + ((int) ((signed char) (!((((int) (struct_obj_3.member_5_2)) * ((int) ((short) (var_1)))) / (-(+((int) (-32650))))))))) & ((int) (((int) (var_61)) >= ((int) ((unsigned short) (var_28)))))); - signed char var_488 = ((((((int) (21529)) ^ ((int) (4132))) | ((int) ((signed char) (!((((int) (struct_obj_3.member_5_2)) * ((int) ((short) (var_1)))) / (-(+((int) (-32650))))))))) & (~(~((int) (var_49))))) ^ ((~(((int) (struct_obj_8.member_4_1.member_3_0)) | ((int) (-6)))) ^ (~(((int) (var_10)) | ((int) (var_55)))))) & ((((((int) (28)) ^ ((int) (34913))) | (((int) (27968)) & ((int) (-10524)))) & ((int) (-28484))) & ((int) ((unsigned short) (91)))); - signed char var_489 = -63; - } - else - { - short var_490 = (((((int) ((signed char) (var_41))) * ((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2))))))) * (!((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))))))) * (((int) ((((int) (-53)) * ((int) (var_46))) <= ((int) (var_51)))) & ((((int) (var_2)) ^ ((int) (var_60))) % (((int) (var_45)) || ((int) (18)))))) >= ((((int) (-108)) & (((int) ((unsigned short) (var_29))) / (((int) (-6368)) * ((int) (53451))))) & (((int) (((int) ((unsigned short) (var_48))) >= (((int) (64011)) + ((int) (struct_obj_4.member_2_3.member_1_3))))) ^ ((((int) (var_20)) + ((int) (-88))) + (((int) (var_61)) || ((int) (9688)))))); - unsigned short var_491 = ((int) (var_33)) >> ((int) ((((int) ((short) (+((int) (struct_obj_1.member_5_3))))) * (((-(((int) (var_28)) * ((int) (struct_obj_2.member_5_3)))) * (((int) ((short) (var_14))) / (((int) (16571)) * ((int) (59287))))) * ((int) (43731)))) < (((((int) (struct_obj_4.member_2_6)) / ((int) (var_66))) * ((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2))))))) & (~(~((int) (struct_obj_9.member_2_7))))))); - short var_492 = (((int) ((short) (~(((int) (-93)) || ((int) (-125)))))) || ((int) ((~(((int) (struct_obj_4.member_2_6)) >> (((int) (struct_obj_8.member_4_6)) + (13828)))) == ((int) (struct_obj_8.member_4_7))))) >> ((int) (((((int) (31254)) << (((((int) (-32124)) ^ ((int) (21005))) + (12173)) - (11))) >> ((int) (struct_obj_8.member_4_9.member_1_0))) > (-((int) ((((int) (var_59)) | ((int) (var_490))) <= (((int) (var_65)) & ((int) (var_19)))))))); - unsigned short var_493 = ((int) ((unsigned short) (!(((int) (((int) (var_490)) >= ((int) (-22338)))) && (~((int) (struct_obj_8.member_4_6))))))) > (((int) (((int) ((~((int) (-5961))) < ((int) (var_58)))) < ((((int) (27882)) + ((int) (-8226))) | (~((int) (var_22)))))) & (!((int) (var_7)))); - short var_494 = (unsigned short) (~((int) (((int) (15)) < ((~((int) (-9))) % ((int) ((short) (61065))))))); - } - - if (((((((int) (-6660)) & ((int) (11))) | (((int) (27466)) | ((int) (-98)))) & ((((int) (43475)) & ((int) (20006))) ^ ((int) ((signed char) (28278))))) ^ (~(((int) (-60)) ^ (~((int) (28567)))))) | ((((int) (struct_obj_3.member_5_1)) & (~((int) ((unsigned short) (var_476))))) | ((~(((int) (struct_obj_8.member_4_6)) ^ ((int) (struct_obj_10.member_1_3)))) ^ ((((int) (var_476)) ^ ((int) (struct_obj_8.member_4_9.member_1_0))) & ((int) ((signed char) (struct_obj_1.member_5_2))))))) - { - signed char var_495 = -(~(~(((int) (39754)) || ((int) ((unsigned short) (10557)))))); - unsigned short var_496 = (~(~((int) (((int) (((int) (40028)) < ((int) (46)))) >= (((int) (-9194)) || ((int) (-122))))))) != (((int) (19860)) % ((int) ((signed char) (-((int) (var_20)))))); - unsigned short var_497 = (-(((((int) (struct_obj_4.member_2_6)) / ((int) (var_479))) - (((int) (9407)) + ((int) (var_35)))) * (+((int) ((unsigned short) (25874)))))) && ((int) ((((int) ((short) (struct_obj_8.member_4_5))) & (~(((int) (struct_obj_1.member_5_3)) | ((int) (var_26))))) != (((int) ((short) ((((((int) (var_25)) | ((int) (-14169))) ^ (((int) (var_8)) ^ ((int) (4475)))) | ((((int) (var_28)) ^ ((int) (var_15))) & (~((int) (var_29))))) < ((((int) (var_11)) >> (((int) (var_13)) ^ ((int) (var_13)))) | ((int) (struct_obj_3.member_5_2)))))) * (((int) ((short) (var_17))) * ((int) ((signed char) (var_54))))))); - signed char var_498 = ((int) (((int) ((short) ((((int) (var_11)) && ((int) (struct_obj_10.member_1_2))) && (!((int) (12032)))))) < (((-((int) (struct_obj_9.member_2_4))) * ((int) ((signed char) (-((int) (var_20)))))) >> ((((int) (var_495)) & ((int) (var_29))) & (!((int) (struct_obj_4.member_2_1.member_1_3))))))) != (((int) ((unsigned short) (~((int) (var_51))))) ^ ((((int) ((short) (struct_obj_1.member_5_3))) ^ (~((int) (struct_obj_4.member_2_1.member_1_0)))) | (((int) ((short) (var_32))) ^ ((int) ((signed char) (struct_obj_4.member_2_1.member_1_1)))))); - signed char var_499 = ((int) (-23634)) >= (~((~(~((int) (struct_obj_3.member_5_2)))) & ((int) (var_58)))); - } - else - { - var_500 = (signed char) (-107); - short var_501 = (signed char) (((int) (((((int) (-24644)) * ((int) (-5259))) * (!((int) (-106)))) >= (~((int) ((short) (23525)))))) * (((int) (((int) ((short) (7351))) != ((int) ((short) (12121))))) * ((int) (-13473)))); - var_52 = (short) (~((int) (var_474))); - unsigned short var_502 = ((int) ((signed char) (-((int) (var_20))))) < ((int) ((short) ((+(((int) (var_66)) + ((int) (var_51)))) - (-(((int) (var_476)) + ((int) (var_16))))))); - short var_503 = struct_obj_3.member_5_2; - short var_504 = var_32; - unsigned short var_505 = ((int) ((unsigned short) (((((int) (var_43)) * ((int) (585))) / ((int) ((signed char) (struct_obj_5.member_1_0)))) * (((int) ((unsigned short) (struct_obj_2.member_5_3))) / (((int) (var_10)) * ((int) (22670))))))) * ((+((int) ((signed char) (((int) (61178)) / ((int) (63555)))))) * (!((!((int) (var_469))) * (-((int) (var_25)))))); - } - - } - - signed char var_506 = var_31; - unsigned short var_507 = (((int) (var_26)) | (~((int) (var_47)))) % ((~(-(((int) (var_43)) * ((int) (33232))))) & (((int) (((int) (((int) (27)) >= ((int) (-76)))) != ((int) (((int) (5702)) != ((int) (-95)))))) + ((int) (2753)))); - if (!((int) (((int) ((~(((int) (28215)) || ((int) (17957)))) <= ((((int) (51658)) ^ ((int) (23571))) & (((int) (53850)) ^ ((int) (-59)))))) >= ((int) ((signed char) ((((int) (struct_obj_10.member_1_2)) / ((int) (struct_obj_1.member_5_1))) % ((int) (var_29)))))))) - { - if (-((int) ((~((~((int) (123))) - (~((int) (var_33))))) == (((int) (((int) (((int) (var_16)) >= ((int) (struct_obj_6.member_5_1)))) != (((int) (var_3)) | ((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))))) & (~((int) (7351))))))) - { - signed char var_508 = (signed char) (((int) (struct_obj_3.member_5_2)) & ((int) (var_58))); - short var_509 = (+((!((int) ((unsigned short) (-21610)))) >> (((int) ((signed char) (((int) (struct_obj_8.member_4_5)) * ((int) (113))))) + (81)))) % ((((int) ((signed char) ((signed char) (((int) (37329)) | ((int) (93)))))) + (2147483647)) << ((((int) ((unsigned short) ((((int) (6310)) << (((int) (32576)) - (32569))) | (((int) (49981)) >> (((int) (-4570)) + (4580)))))) - (21295)) - (1))); - signed char var_510 = ((int) (var_26)) <= ((int) (((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))) <= ((int) (((!((int) (var_52))) - (((int) (var_31)) | ((int) (var_23)))) == ((int) ((signed char) (-((int) (-2995))))))))); - signed char var_511 = ~(((int) ((short) ((~((int) (-11638))) & (((int) (8453)) & ((int) (-22258)))))) ^ (~(~((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))))); - unsigned short var_512 = (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) >> (((int) (struct_obj_9.member_2_1.member_1_1)) - (31954))) != ((int) ((((int) (struct_obj_4.member_2_5)) || (!((int) ((signed char) (var_44))))) < ((int) ((unsigned short) (((int) (((int) (-26302)) == ((int) (20343)))) > ((int) ((short) (-28144)))))))); - short var_513 = ((int) ((unsigned short) (-16))) * ((int) (var_16)); - var_514 = (short) (~(((~((int) (struct_obj_3.member_5_2))) & (~(~((int) (var_20))))) ^ (((int) (struct_obj_4.member_2_3.member_1_2)) & ((int) (struct_obj_8.member_4_9.member_1_2))))); - short var_515 = ~((int) ((short) ((unsigned short) ((signed char) (((int) (var_19)) ^ ((int) (var_12))))))); - signed char var_516 = -((int) (var_66)); - unsigned short var_517 = struct_obj_1.member_5_0; - } - else - { - short var_518 = var_19; - unsigned short var_519 = (short) (((int) ((short) (+((int) ((unsigned short) (var_12)))))) & (((!((int) (var_35))) | ((int) (((int) (var_7)) < ((int) (struct_obj_4.member_2_1.member_1_3))))) || (~((int) (((int) (17060)) <= ((int) (10237))))))); - unsigned short var_520 = (((int) ((((((int) (-30670)) + (2147483647)) << (((((int) (-18058)) + (18075)) - (16)) - (1))) - (((int) (-4556)) & ((int) (-56)))) < ((((int) (struct_obj_6.member_5_3)) && ((int) (struct_obj_7.member_1_0))) || ((int) (var_27))))) + ((int) (struct_obj_8.member_4_5))) - (~((int) ((unsigned short) ((((int) (6497)) - ((int) (var_56))) & (-((int) (var_29))))))); - signed char var_521 = (unsigned short) (~((int) (struct_obj_3.member_5_2))); - var_522 = (signed char) ((((+(+(+((int) (45430))))) + (((int) (-2768)) * ((int) ((signed char) (((int) (24766)) * ((int) (6852))))))) + (2147483647)) << (((((((int) (-103)) + (108)) - (4)) - (0)) - (0)) - (1))); - short var_523 = ((~((int) ((!((int) (((int) (7275)) > ((int) (3644))))) == ((((int) (12413)) << (((int) (19590)) - (19580))) >> ((((int) (115)) & ((int) (55843))) - (26)))))) + (2147483647)) >> (((-(+(+((int) (var_507))))) - ((((int) ((short) (var_61))) + (((int) (42857)) + ((int) (var_1)))) - ((-((int) (var_7))) * ((int) (16))))) + (110426)); - short var_524 = (~(~((((int) (var_30)) ^ ((int) (struct_obj_8.member_4_4))) & (((int) (var_40)) ^ ((int) (struct_obj_4.member_2_6)))))) > (~((~(((int) (var_1)) * ((int) (var_520)))) / ((((int) (struct_obj_5.member_1_0)) * ((int) (struct_obj_8.member_4_6))) / ((int) ((short) (struct_obj_10.member_1_3)))))); - signed char var_525 = (((int) ((signed char) (!(((int) (126)) & ((int) (var_36)))))) & (((int) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) > ((int) ((~(+((int) (28029)))) <= ((int) ((unsigned short) (((int) (-1114)) ^ ((int) (struct_obj_4.member_2_6))))))))) - (((int) ((short) (((~((int) (1416))) + (2147483647)) >> (((int) (-93)) + (101))))) && (((((int) (24281)) & ((int) (struct_obj_4.member_2_1.member_1_1))) >> ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))) >> (((int) (var_30)) - (42699)))))) || (((int) (((((int) ((unsigned short) (~((int) (8))))) >> (((int) (25621)) - (25605))) | (((~((int) (var_31))) << (((((int) (struct_obj_4.member_2_4)) + (2147483647)) << ((((int) (-62)) + (71)) - (9))) - (2147464435))) >> (((int) (4111)) >> (((int) (19804)) - (19790))))) >= (((((int) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) > ((int) ((~(+((int) (28029)))) <= ((int) ((unsigned short) (((int) (-1114)) ^ ((int) (struct_obj_4.member_2_6))))))))) - (((int) ((short) (((~((int) (1416))) + (2147483647)) >> (((int) (-93)) + (101))))) && (((((int) (24281)) & ((int) (struct_obj_4.member_2_1.member_1_1))) >> ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))) >> (((int) (var_30)) - (42699))))) & ((int) (var_3))) & (!(!(((int) (struct_obj_4.member_2_4)) && ((int) (var_3)))))))) | ((~(~((int) (9)))) & ((((int) (16613)) ^ ((int) (-20))) ^ (~((int) (-10292)))))); - var_36 = (short) (((~((!((int) (-104))) * (((int) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) > ((int) ((~(+((int) (28029)))) <= ((int) ((unsigned short) (((int) (-1114)) ^ ((int) (struct_obj_4.member_2_6))))))))) - (((int) ((short) (((~((int) (1416))) + (2147483647)) >> (((int) (-93)) + (101))))) && (((((int) (24281)) & ((int) (struct_obj_4.member_2_1.member_1_1))) >> ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))) >> (((int) (var_30)) - (42699))))))) * (-((int) ((unsigned short) (((int) (struct_obj_1.member_5_1)) * ((int) (10162))))))) || ((int) (struct_obj_5.member_1_0))); - } - - signed char var_526 = (((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))) && ((int) (27198))) % ((((int) ((((int) (57392)) & ((int) (50780))) == ((int) ((short) (54035))))) & (+((int) (((int) (13979)) <= ((int) (5855)))))) || ((((int) (6763)) + ((int) (39071))) + ((int) (struct_obj_3.member_5_2)))); - var_64 = (signed char) ((signed char) (!(~((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))))); - if ((~(((((int) (struct_obj_4.member_2_3.member_1_0)) || ((int) (30335))) % (((int) (var_43)) || ((int) (25266)))) | (+(+((int) (var_52)))))) <= ((int) ((signed char) (((~((int) (struct_obj_8.member_4_7))) | (((int) (var_61)) | ((int) (var_5)))) | (((int) ((short) (struct_obj_6.member_5_3))) ^ (((int) (struct_obj_1.member_5_2)) & ((int) (struct_obj_6.member_5_1)))))))) - { - signed char var_527 = ((!((int) (struct_obj_3.member_5_2))) && ((int) (var_41))) >= ((((int) (struct_obj_3.member_5_2)) | ((int) ((((int) (struct_obj_4.member_2_1.member_1_3)) - ((int) (19837))) != (!((int) (struct_obj_10.member_1_3)))))) + (((~((int) (var_64))) ^ ((int) (var_37))) & (~(((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)) | ((int) (var_62)))))); - short var_528 = struct_obj_9.member_2_0; - signed char var_529 = (((int) (struct_obj_3.member_5_2)) || ((((int) ((signed char) (var_17))) || (((int) (var_38)) && ((int) (var_36)))) || ((int) ((short) (((int) (var_3)) && ((int) (var_15))))))) != (!((int) ((signed char) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))))); - short var_530 = !((int) ((signed char) ((short) (~(((int) (-6761)) * ((int) (var_527))))))); - unsigned short var_531 = (((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))); - } - - if ((-(((int) ((short) (((int) (var_507)) * ((int) (var_59))))) * (+(((int) (var_63)) * ((int) (var_526)))))) + (((+((int) ((unsigned short) (76)))) + ((int) ((unsigned short) (+((int) (11621)))))) * (((int) (95)) + ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))))) - { - unsigned short var_532 = ((int) (((int) ((short) ((((int) (23716)) << (((int) (var_38)) - (38))) || (~((int) (var_47)))))) < (((int) ((unsigned short) (25887))) | ((-((int) (41298))) - ((int) (((int) (-91)) > ((int) (35354)))))))) + ((int) ((((int) (((int) (((int) (-71)) == ((int) (struct_obj_6.member_5_3)))) < (~((int) (var_18))))) >> ((~(!((int) (struct_obj_3.member_5_1)))) + (27))) > ((-((int) (((int) (struct_obj_3.member_5_0)) <= ((int) (var_6))))) - ((int) ((signed char) (((int) (65033)) + ((int) (struct_obj_3.member_5_0)))))))); - short var_533 = (short) ((((((int) (struct_obj_9.member_2_1.member_1_3)) >> ((int) (var_470))) << (((int) (-34)) + (50))) || (((int) ((signed char) (30726))) / (((int) (struct_obj_8.member_4_4)) + ((int) (struct_obj_4.member_2_4))))) * ((int) (((int) (struct_obj_9.member_2_7)) != (((int) (var_27)) + (((int) (struct_obj_2.member_5_1)) || ((int) (struct_obj_8.member_4_6))))))); - short var_534 = ~((!((!((int) (-8725))) * (((int) (var_18)) * ((int) (var_24))))) * ((int) ((unsigned short) (12434)))); - unsigned short var_535 = (short) (((int) ((unsigned short) ((signed char) (((int) (var_27)) || ((int) (var_24)))))) && ((!(!((int) (var_17)))) && ((int) ((short) (((int) (-42)) || ((int) (32757))))))); - signed char var_536 = ~((int) (struct_obj_4.member_2_3.member_1_2)); - var_62 = (unsigned short) (var_10); - signed char var_537 = ((int) (((int) ((~(~((int) (49907)))) != (((int) (((int) (-19054)) <= ((int) (var_43)))) + ((int) ((signed char) (17511)))))) == ((int) (10634)))) < (((int) (struct_obj_6.member_5_3)) - ((int) (((int) ((((int) (var_64)) * ((int) (var_21))) >= (((int) (var_26)) || ((int) (struct_obj_9.member_2_2))))) < ((int) (var_53))))); - unsigned short var_538 = +((int) (var_470)); - signed char var_539 = var_27; - } - else - { - unsigned short var_540 = (signed char) (((int) ((signed char) (~(!((int) (-16)))))) | (~(-((int) (((int) (7587)) <= ((int) (var_45))))))); - unsigned short var_541 = !((((((int) ((signed char) (-121))) + (2147483647)) >> ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) || (~(((int) (struct_obj_4.member_2_3.member_1_1)) * ((int) (var_469))))) || (!((int) ((short) (((int) (-12)) * ((int) (18))))))); - short var_542 = -(+((int) (var_27))); - var_543 = (signed char) ((-(((((int) (64835)) >> (((int) (1187)) - (1187))) >> ((~((int) (var_25))) + (149))) >> (((int) ((short) (((int) (struct_obj_7.member_1_2)) | ((int) (struct_obj_4.member_2_1.member_1_1))))) + (128)))) / ((int) ((((~((int) (struct_obj_4.member_2_3.member_1_3))) | (~((int) (-17256)))) & ((int) (struct_obj_8.member_4_1.member_3_1.member_1_0))) != (~(-((int) ((signed char) (var_2)))))))); - var_544 = (unsigned short) ((((+(((int) (var_42)) * ((int) (struct_obj_4.member_2_3.member_1_3)))) - ((int) ((short) ((unsigned short) (117))))) + ((int) ((short) ((((int) (106)) * ((int) (12343))) - (((int) (6)) + ((int) (var_53))))))) > ((-((((int) (var_13)) * ((int) (19559))) * (((int) (var_469)) * ((int) (var_46))))) * ((((int) ((unsigned short) (-19))) / (((int) (20823)) * ((int) (var_4)))) * ((((int) (29348)) * ((int) (32247))) / ((int) ((signed char) (var_24))))))); - short var_545 = -((int) ((signed char) ((short) ((~((int) (1578))) ^ ((int) ((signed char) (26515))))))); - short var_546 = ((~(~((((int) (struct_obj_4.member_2_7)) + (2147483647)) << (((int) (var_14)) - (26))))) | ((int) ((short) (((int) ((short) (struct_obj_4.member_2_0))) ^ (((int) (var_66)) & ((int) (-119))))))) % ((int) ((signed char) ((unsigned short) (~(((int) (11516)) & ((int) (var_545))))))); - var_547 = (signed char) ((short) (var_25)); - var_59 = (unsigned short) (~(((int) (var_41)) << (((((~((int) (struct_obj_4.member_2_6))) | (((int) (var_16)) >> (((int) (struct_obj_7.member_1_0)) + (102)))) + (2147483647)) << (((((((((int) ((short) (struct_obj_8.member_4_1.member_3_1.member_1_2))) ^ ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) + (78)) - (2)) - (0)) - (0)) - (0)) - (1))) - (2147427589)))); - } - - short var_548 = !(((!(((int) (var_54)) && ((int) (var_11)))) || ((((int) (var_18)) || ((int) (var_7))) && (((int) (var_16)) || ((int) (struct_obj_9.member_2_2))))) >> ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))); - var_549 = (signed char) (~(~(~((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))))); - } - - if (struct_obj_4.member_2_5) - { - unsigned short var_550 = +((int) (((int) ((short) (((int) ((short) (21542))) & ((int) (((int) (var_17)) > ((int) (41361))))))) != ((int) (((int) ((((int) (struct_obj_5.member_1_1)) >> (((int) (var_11)) - (9751))) >= (~((int) (var_30))))) < ((int) ((signed char) ((signed char) (62686)))))))); - short var_551 = ~((((int) (struct_obj_3.member_5_2)) + (((int) (struct_obj_5.member_1_0)) + (((int) (2)) - ((int) (var_55))))) << ((((-(((int) (struct_obj_6.member_5_3)) || ((int) (var_48)))) / ((int) ((~((int) (var_7))) <= ((int) (((int) (56959)) == ((int) (struct_obj_8.member_4_8))))))) + (29)) - (24))); - unsigned short var_552 = (~(~((int) (var_13)))) * (!(!(((int) ((short) (29468))) && (!((int) (struct_obj_8.member_4_2)))))); - if ((((int) (var_18)) % (+((int) ((signed char) (((int) (11489)) * ((int) (9265))))))) > (((!((int) ((short) (var_40)))) && (((int) (var_471)) || (((int) (44877)) || ((int) (struct_obj_10.member_1_2))))) - ((((int) ((short) (var_47))) && ((int) (struct_obj_3.member_5_2))) || ((((int) (var_48)) || ((int) (3022))) && (!((int) (var_471))))))) - { - var_48 = (unsigned short) (((int) ((short) (((int) ((unsigned short) (((int) (var_24)) * ((int) (var_41))))) * (~((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))))))) & (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) & ((~((int) (((int) (21911)) >= ((int) (71))))) | (~(!((int) (var_21))))))); - signed char var_553 = ((+((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) / (~((((int) (struct_obj_6.member_5_3)) << (((int) (var_33)) - (40297))) | ((int) ((signed char) (struct_obj_2.member_5_0)))))) - ((!((!((int) (var_26))) && ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))))) * ((int) ((!((int) (((int) (var_63)) <= ((int) (var_550))))) >= ((+((int) (75))) + (((int) (-34)) + ((int) (var_28))))))); - unsigned short var_554 = (short) ((-((int) (((int) (((int) (var_48)) != ((int) (-19268)))) > (((int) (var_36)) << (((int) (var_29)) - (51738)))))) < (!(((int) (struct_obj_2.member_5_2)) << (((int) (struct_obj_9.member_2_7)) - (21083))))); - unsigned short var_555 = (((((int) (-7012)) ^ (((int) (var_34)) ^ ((int) (struct_obj_3.member_5_1)))) | (~((int) ((short) (366))))) | ((~(((int) (11695)) | ((int) (-51)))) | ((int) ((signed char) ((unsigned short) (var_17)))))) != ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))); - signed char var_556 = ((((((int) (struct_obj_4.member_2_3.member_1_1)) && ((int) (struct_obj_6.member_5_2))) || (((int) (var_60)) || ((int) (struct_obj_4.member_2_3.member_1_2)))) || ((int) (-11))) && (!((((int) (var_65)) && ((int) (struct_obj_9.member_2_4))) && (((int) (var_3)) && ((int) (var_51)))))) && (((int) ((unsigned short) ((short) (((int) (var_50)) && ((int) (struct_obj_7.member_1_0)))))) || (((int) ((unsigned short) (!((int) (8848))))) || ((((int) (var_45)) && ((int) (-14256))) || (((int) (var_19)) && ((int) (var_550)))))); - } - - var_52 = (short) (~((((((int) (var_24)) + ((int) (struct_obj_9.member_2_1.member_1_0))) + (((int) (struct_obj_2.member_5_0)) - ((int) (var_66)))) - (-(((int) (125)) - ((int) (var_40))))) * ((-(((int) (struct_obj_8.member_4_0)) - ((int) (var_6)))) * (+((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))))))); - if ((((int) (var_29)) >> (-((!((int) (var_57))) && (!((int) (var_39)))))) % ((~(~((int) (((int) (114)) <= ((int) (34964)))))) - (~((int) ((+((int) (-8064))) > (((int) (var_470)) | ((int) (var_507)))))))) - { - unsigned short var_557 = ((((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) & ((int) ((short) ((signed char) (struct_obj_4.member_2_5))))) >> ((int) ((short) (((int) (var_8)) / (((int) (10468)) * ((int) (-23532))))))) >> ((int) (((int) (struct_obj_5.member_1_0)) <= ((int) ((short) (-(((int) (-100)) * ((int) (var_19)))))))); - var_558 = (short) (!(~((~(((int) (var_31)) - ((int) (var_557)))) >> (((int) ((signed char) (((int) (-19435)) % ((int) (struct_obj_9.member_2_1.member_1_0))))) + (55))))); - signed char var_559 = -35; - var_64 = (signed char) (((((int) (var_473)) % (~(((int) (struct_obj_6.member_5_2)) && ((int) (struct_obj_4.member_2_1.member_1_0))))) && (!((((int) (-4)) || ((int) (3208))) && (!((int) (-40)))))) == ((int) (struct_obj_1.member_5_3))); - signed char var_560 = (((int) (var_13)) & (~((int) (11657)))) ^ ((~((((int) (var_25)) ^ ((int) (var_559))) ^ (((int) (struct_obj_8.member_4_1.member_3_1.member_1_2)) ^ ((int) (-22908))))) ^ ((~((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) & ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))))); - short var_561 = struct_obj_8.member_4_7; - signed char var_562 = ~((int) ((unsigned short) ((unsigned short) ((~((int) (var_561))) & (((int) (var_26)) ^ ((int) (var_469))))))); - short var_563 = struct_obj_3.member_5_2; - short var_564 = !((int) (((int) (((((int) (struct_obj_3.member_5_0)) & ((int) (struct_obj_9.member_2_1.member_1_0))) % (((int) (var_60)) && ((int) (var_470)))) > (!(+((int) (32834)))))) > (((~((int) (-117))) & (~((int) (struct_obj_3.member_5_2)))) || (-((int) ((signed char) (var_45))))))); - short var_565 = ((int) ((((int) ((((int) (-30333)) & ((int) (var_55))) <= ((int) (struct_obj_8.member_4_6)))) & ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))) < (!(~(~((int) (var_28))))))) > (-((int) (((~((int) (struct_obj_9.member_2_5))) - (((int) (struct_obj_5.member_1_1)) && ((int) (struct_obj_6.member_5_3)))) <= (-(~((int) (21443))))))); - } - - short var_566 = ~(((int) ((unsigned short) ((short) (struct_obj_3.member_5_2)))) >> ((~((int) ((unsigned short) (((int) (struct_obj_8.member_4_1.member_3_1.member_1_0)) ^ ((int) (56133)))))) + (9444))); - signed char var_567 = ((int) (-25334)) & ((int) ((signed char) (((int) ((((int) (var_46)) >> ((int) (var_46))) >= (+((int) (var_58))))) < ((int) (struct_obj_7.member_1_0))))); - if (~(((~(~((int) (var_1)))) ^ (~(((int) (16674)) & ((int) (-20))))) ^ ((int) (7212)))) - { - unsigned short var_568 = (!(+((((int) (8032)) >> (((int) (-71)) + (87))) * ((int) ((signed char) (66)))))) >> ((((int) (struct_obj_3.member_5_2)) << ((int) ((signed char) ((!((int) (-111))) >= ((int) (((int) (-21044)) == ((int) (11494)))))))) - (119619)); - short var_569 = (unsigned short) ((((((int) (12689)) & ((int) (struct_obj_9.member_2_0))) & (~((int) (29330)))) | ((int) (struct_obj_3.member_5_2))) & (~((int) ((short) (~((int) (struct_obj_8.member_4_4))))))); - unsigned short var_570 = ((+((int) ((short) (((int) (-55)) * ((int) (var_41)))))) * (!(-((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))))) && ((int) ((unsigned short) (((((int) (64)) || ((int) (struct_obj_4.member_2_3.member_1_2))) % ((int) (((int) (struct_obj_4.member_2_6)) != ((int) (struct_obj_2.member_5_1))))) * (((int) ((signed char) (-28985))) ^ ((int) (22407)))))); - unsigned short var_571 = (~((int) (-20282))) & ((int) ((signed char) (((~(((int) (-25685)) ^ ((int) (-111)))) + (2147483647)) << (((~((int) (var_13))) >> ((((int) (struct_obj_6.member_5_3)) << (((int) (22066)) - (22056))) - (12717046))) - (23))))); - short var_572 = ((int) ((~(~(((int) (22554)) | ((int) (var_42))))) < (~((((int) (var_12)) >> (((int) (var_36)) - (27368))) >> ((~((int) (680))) + (687)))))) <= (!(!((int) (((int) ((signed char) (struct_obj_10.member_1_3))) >= (+((int) (84))))))); - signed char var_573 = ((~(((int) ((signed char) (((int) (59675)) || ((int) (-27347))))) << ((-((int) (struct_obj_3.member_5_2))) + (59837)))) + (2147483647)) >> ((~((int) (struct_obj_3.member_5_2))) + (59829)); - signed char var_574 = ((~((int) (struct_obj_8.member_4_1.member_3_1.member_1_2))) & (((~((int) (struct_obj_5.member_1_1))) | (~((int) (struct_obj_8.member_4_9.member_1_1)))) | ((~((int) (49))) | ((int) ((short) (((int) (((int) ((signed char) (((int) (25082)) || ((int) (struct_obj_4.member_2_1.member_1_1))))) <= ((int) (69)))) << ((~((+((int) (var_2))) / ((int) (var_34)))) - (233)))))))) && ((int) ((unsigned short) ((~(((int) (var_472)) >> (((int) (35425)) - (35422)))) & ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475))))))))))))); - unsigned short var_575 = ~((int) ((~((int) ((unsigned short) (((int) (var_46)) | ((int) (var_20)))))) >= ((int) ((signed char) (((int) (((int) (-21055)) > ((int) (20469)))) % ((int) (55942))))))); - } - else - { - signed char var_576 = ((int) ((~(~((int) (((int) (struct_obj_10.member_1_3)) < ((int) (var_58)))))) <= ((int) (((int) ((((int) (-88)) * ((int) (28366))) != ((int) (struct_obj_3.member_5_2)))) < (~(((int) (var_7)) & ((int) (struct_obj_7.member_1_2)))))))) == ((int) ((short) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))); - var_51 = (short) (-(~((int) (54)))); - signed char var_577 = (unsigned short) ((signed char) ((((int) ((unsigned short) (var_12))) ^ (~((int) (var_38)))) | (~(~((int) (struct_obj_8.member_4_0)))))); - short var_578 = !(~((int) ((short) (((int) (((int) (var_34)) >= ((int) (var_577)))) & ((int) (((int) (var_63)) != ((int) (5719)))))))); - signed char var_579 = +((((+((int) (40951))) | (~((int) (var_506)))) / ((((int) (27014)) | ((int) (41639))) ^ (((int) (91)) | ((int) (struct_obj_8.member_4_4))))) << ((int) (((int) (struct_obj_9.member_2_5)) != ((int) (((int) ((short) (29451))) >= (+((int) (var_51)))))))); - unsigned short var_580 = (unsigned short) ((unsigned short) (var_65)); - short var_581 = ~((int) (struct_obj_3.member_5_2)); - short var_582 = ((int) (((int) (struct_obj_3.member_5_2)) < ((int) (((-((int) (var_45))) >> ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) >= ((int) ((short) (((int) (20524)) * ((int) (struct_obj_8.member_4_1.member_3_0))))))))) ^ ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))); - unsigned short var_583 = +((((int) ((short) (18))) | ((int) ((signed char) ((short) (var_58))))) | (((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))) & (~(~((int) (var_66)))))); - signed char var_584 = !((int) ((short) (((int) ((+((int) (var_25))) <= (~((int) (var_567))))) ^ ((int) ((signed char) ((signed char) (3847))))))); - } - - } - - if ((signed char) (((int) (var_62)) & ((int) (((int) (var_8)) <= (!((int) ((unsigned short) (1490)))))))) - { - short var_585 = (short) (((int) (-70)) | ((!((int) ((short) (struct_obj_1.member_5_0)))) && ((int) (struct_obj_3.member_5_2)))); - if (((int) ((signed char) (((int) ((signed char) (((int) (11726)) * ((int) (var_42))))) * (~(~((int) (struct_obj_1.member_5_1))))))) * (((((int) ((signed char) (var_469))) * ((int) (struct_obj_3.member_5_2))) * ((int) ((unsigned short) (~((int) (-20687)))))) * ((int) ((short) ((!((int) (-36))) * ((int) (48610))))))) - { - signed char var_586 = ~((!(((int) ((signed char) (42650))) / (((int) (struct_obj_9.member_2_2)) | ((int) (struct_obj_9.member_2_2))))) >> ((((int) ((signed char) (((int) (-63)) ^ ((int) (var_472))))) ^ ((~((int) (53084))) | (((int) (var_37)) & ((int) (var_10))))) - (53044))); - signed char var_587 = (short) (((int) (24145)) < (~((~((int) (-20377))) | (((int) (var_32)) & ((int) (var_25)))))); - short var_588 = (((int) ((short) (~((int) (var_15))))) * ((int) ((unsigned short) (~(((int) (var_27)) * ((int) (var_18))))))) / ((int) ((unsigned short) (var_37))); - signed char var_589 = (+(!((((int) (-93)) & ((int) (-2615))) | ((int) ((short) (-123)))))) & ((int) (struct_obj_4.member_2_3.member_1_3)); - signed char var_590 = ((((int) (17070)) << (((int) (19866)) - (19850))) | (((int) ((short) (((int) (var_26)) != ((int) (var_7))))) >> ((int) ((((int) (var_58)) & ((int) (var_53))) < ((int) (((int) (var_40)) <= ((int) (55455)))))))) / ((((int) ((short) (-((int) (var_46))))) + (2147483647)) >> (((int) (struct_obj_10.member_1_3)) + (21794))); - var_591 = (signed char) (((~((((int) (struct_obj_6.member_5_0)) << (((int) (var_506)) - (34))) << (((~((int) (var_60))) + (21611)) - (23)))) & ((int) (var_10))) | ((int) (49472))); - short var_592 = (unsigned short) ((short) ((signed char) ((!((int) (26965))) ^ (((int) (18006)) + ((int) (36)))))); - unsigned short var_593 = (short) ((((int) ((((int) (-29676)) * ((int) (25475))) >= ((int) ((unsigned short) (var_26))))) & ((int) ((((int) (struct_obj_8.member_4_6)) ^ ((int) (9575))) != (((int) (10136)) % ((int) (struct_obj_7.member_1_2)))))) <= ((int) (((int) ((((int) (40469)) & ((int) (7768))) == ((int) ((short) (-29505))))) <= (~(((int) (var_11)) | ((int) (struct_obj_3.member_5_0))))))); - unsigned short var_594 = (unsigned short) ((((int) ((((int) (-50)) || ((int) (-78))) > (-((int) (struct_obj_3.member_5_1))))) & (-((int) ((unsigned short) (var_18))))) % ((int) (((-((int) (-24452))) * (!((int) (struct_obj_1.member_5_3)))) != (((~((~((int) (12794))) & ((((int) (-15515)) + (2147483647)) >> (((int) (var_30)) - (42687))))) - ((int) ((short) ((((int) (var_32)) || ((int) (var_12))) >> ((~((int) (-11674))) - (11648)))))) && ((int) (struct_obj_4.member_2_3.member_1_1)))))); - } - - unsigned short var_595 = (unsigned short) (!((int) ((short) (struct_obj_4.member_2_4)))); - unsigned short var_596 = ((int) (((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) + (((int) (59094)) + ((int) (struct_obj_9.member_2_1.member_1_3)))))) > (((!((int) (var_27))) - ((int) (((int) (var_10)) <= ((int) (var_60))))) && ((((int) ((-127 - 1))) * ((int) (var_40))) * (-((int) (19780))))))) & ((int) ((-((int) (-43))) < (-((int) ((((int) (var_43)) + ((int) (struct_obj_5.member_1_3))) < (((int) (26468)) % ((int) (60870)))))))); - signed char var_597 = ~((int) ((short) (~((((int) (21151)) ^ ((int) (struct_obj_8.member_4_9.member_1_2))) & (((int) (var_8)) >> (((int) (var_506)) - (22))))))); - unsigned short var_598 = ((((int) (20683)) && ((((int) (76)) && ((int) (var_53))) || ((int) ((unsigned short) (var_61))))) || (((((int) (-10814)) && ((int) (22918))) && (((int) (79)) && ((int) (7990)))) || ((((int) (var_10)) || ((int) (var_44))) || (((int) (28091)) || ((int) (16480)))))) * ((((int) ((((int) (9562)) | ((int) (var_64))) < (-((int) (var_38))))) | ((int) (((int) ((unsigned short) (var_506))) < (((int) (struct_obj_4.member_2_2)) || ((int) (var_34)))))) + ((int) ((~((int) (struct_obj_8.member_4_3))) > (~((int) ((unsigned short) (struct_obj_4.member_2_2))))))); - struct_obj_10.member_1_2 = (signed char) (-(-(((~((int) (27631))) & (((int) (25634)) | ((int) (struct_obj_4.member_2_3.member_1_2)))) ^ ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))))); - if (((int) ((signed char) (((int) ((short) (((int) (var_43)) && ((int) (40250))))) || ((int) ((signed char) (var_25)))))) != ((int) ((+((int) ((~((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) == ((-((int) (var_7))) || (((int) (struct_obj_4.member_2_3.member_1_2)) || ((int) (var_12))))))) <= ((int) ((~(~(((int) (var_27)) & ((int) (-98))))) <= ((int) (((((int) (-10897)) || ((int) (struct_obj_4.member_2_3.member_1_3))) || ((int) (var_14))) != ((int) (struct_obj_3.member_5_2))))))))) - { - signed char var_599 = (((int) ((short) (struct_obj_9.member_2_0))) ^ (((((int) ((signed char) (var_2))) ^ (~((int) (23693)))) + (2147483647)) << ((((((int) (struct_obj_5.member_1_0)) + (127)) - (21)) - (0)) - (1)))) | ((((~((int) (var_48))) ^ (((int) (struct_obj_3.member_5_0)) & ((int) (55751)))) ^ (~(((int) (-60)) ^ ((int) (150))))) & (~(((int) ((unsigned short) (struct_obj_4.member_2_6))) ^ (((int) (5973)) << (((int) (36731)) - (36715)))))); - unsigned short var_600 = ~(+(((int) ((short) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) | ((((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)) & ((int) (struct_obj_9.member_2_2))) | (((int) (var_2)) | ((int) (var_506)))))); - short var_601 = (((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))); - unsigned short var_602 = ((int) ((short) ((((int) ((short) (15058))) - (((int) (13)) + ((int) (var_57)))) + (-(((int) (var_53)) + ((int) (var_53))))))) * ((int) (var_39)); - signed char var_603 = var_6; - unsigned short var_604 = ((int) (((int) (-22742)) > (~((((int) (var_24)) ^ ((int) (struct_obj_5.member_1_3))) ^ (((int) (28)) ^ ((int) (var_28))))))) * ((int) ((short) ((((int) (struct_obj_3.member_5_2)) && (!((int) (89)))) | (~((int) (struct_obj_4.member_2_3.member_1_2)))))); - short var_605 = (signed char) ((((~((int) (-124))) & (~((int) (4435)))) | ((((int) (46344)) & ((int) (48688))) | (((int) (-81)) ^ ((int) (22626))))) | (~(~(((int) (28400)) ^ ((int) (80)))))); - signed char var_606 = !(((int) ((~(((int) (var_595)) + ((int) (struct_obj_9.member_2_1.member_1_0)))) > (((int) (((int) (37904)) <= ((int) (struct_obj_8.member_4_3)))) & (!((int) (var_8)))))) & (+(((int) ((short) (var_14))) % ((int) ((signed char) (-120)))))); - unsigned short var_607 = ~((int) ((signed char) (struct_obj_3.member_5_2))); - short var_608 = (short) (((int) (((((int) (-67)) ^ ((int) (23314))) & (~((int) (2233)))) == ((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))))) + ((int) (-24744))); - } - else - { - signed char var_609 = ((int) ((~((((int) (var_596)) | ((int) (struct_obj_8.member_4_8))) || ((int) (var_22)))) != ((int) ((short) (((int) (((int) (-29)) != ((int) (36)))) & ((int) (((int) (30)) <= ((int) (struct_obj_4.member_2_1.member_1_0))))))))) && (+((int) (((int) ((unsigned short) (((int) (struct_obj_8.member_4_1.member_3_0)) / ((int) (struct_obj_10.member_1_3))))) < ((int) (((int) (((int) (struct_obj_4.member_2_3.member_1_0)) > ((int) (var_43)))) <= (~((int) (25446)))))))); - unsigned short var_610 = (short) ((+((((int) (var_49)) - ((int) (struct_obj_8.member_4_9.member_1_0))) + (-((int) (54566))))) * ((int) (var_34))); - short var_611 = ((int) ((signed char) (~((int) (struct_obj_2.member_5_1))))) ^ ((((int) ((short) ((signed char) (62)))) << ((((((int) (25)) ^ ((int) (-16))) + (2147483647)) << ((((int) (5683)) & ((int) (-10))) - (5682))) - (2147483607))) | (((int) ((signed char) (((int) (13434)) >> (((int) (-71)) + (97))))) << ((((int) (20025)) >> (((int) (-101)) + (122))) << ((int) ((signed char) (-4597)))))); - var_42 = (signed char) (((int) (((int) ((unsigned short) ((!((int) (var_21))) * (((int) (var_55)) * ((int) (var_473)))))) <= ((int) (((int) ((((int) (struct_obj_8.member_4_1.member_3_0)) || ((int) (var_38))) <= (((int) (var_56)) * ((int) (struct_obj_8.member_4_9.member_1_0))))) > ((((int) (var_57)) & ((int) (var_37))) || (~((int) (var_5)))))))) <= ((int) (var_62))); - short var_612 = (~((int) (((int) ((((int) (-86)) & ((int) (var_1))) >= ((int) (63479)))) != ((int) (var_50))))) % (((int) (((((int) (struct_obj_1.member_5_2)) ^ ((int) (struct_obj_8.member_4_5))) | (((int) (-7103)) ^ ((int) (96)))) < ((int) (var_39)))) | ((int) ((~((int) ((unsigned short) (var_53)))) != (((int) (((int) (struct_obj_3.member_5_0)) != ((int) (struct_obj_6.member_5_1)))) && ((int) ((signed char) (40))))))); - } - - if ((~((int) ((signed char) (~((int) (-2706)))))) <= (+(((((int) (struct_obj_9.member_2_1.member_1_3)) + ((int) (-38))) * ((int) ((unsigned short) (var_48)))) * (-(((int) (53)) + ((int) (42))))))) - { - short var_613 = ((int) ((unsigned short) (~((~((int) (35514))) | (((int) (-11248)) | ((int) (-11218))))))) & (~(~((int) ((short) ((unsigned short) (var_17)))))); - short var_614 = (((((int) ((signed char) (var_60))) & ((int) (struct_obj_8.member_4_9.member_1_1))) >> ((int) ((signed char) (((int) (var_60)) || ((int) (struct_obj_9.member_2_7)))))) || (((((int) (var_58)) * ((int) (41314))) / (((int) (struct_obj_9.member_2_0)) * ((int) (var_30)))) * ((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))))) * ((int) (((((int) (-2486)) ^ ((int) ((unsigned short) (112)))) % (-((int) ((short) (struct_obj_8.member_4_1.member_3_1.member_1_0))))) < (((int) ((((int) (struct_obj_9.member_2_1.member_1_3)) + ((int) (var_62))) >= (!((int) (struct_obj_2.member_5_0))))) || ((int) ((unsigned short) (+((int) (struct_obj_8.member_4_9.member_1_2)))))))); - unsigned short var_615 = (unsigned short) (((int) (-15187)) * (!((((int) (82)) * ((int) (7986))) * ((int) ((signed char) (-8101)))))); - unsigned short var_616 = ((int) (struct_obj_5.member_1_1)) > ((((int) ((+((int) ((~((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) == ((-((int) (var_7))) || (((int) (struct_obj_4.member_2_3.member_1_2)) || ((int) (var_12))))))) <= ((int) ((~(~(((int) (var_27)) & ((int) (-98))))) <= ((int) (((((int) (-10897)) || ((int) (struct_obj_4.member_2_3.member_1_3))) || ((int) (var_14))) != ((int) (struct_obj_3.member_5_2)))))))) & (((int) (struct_obj_3.member_5_2)) >> (((int) ((signed char) (struct_obj_6.member_5_1))) - (108)))) >> (((~(~((int) (struct_obj_10.member_1_0)))) ^ (((int) (var_507)) - (((int) (var_37)) && ((int) (var_47))))) - (2008))); - unsigned short var_617 = var_40; - unsigned short var_618 = ~(~((~(((int) (-49)) | ((int) (6)))) ^ (~(((int) (-101)) | ((int) (-118)))))); - var_52 = (short) (((int) ((~((((int) (58053)) * ((int) (-35))) / (((int) (-22)) * ((int) (4112))))) > (((((int) (-100)) & ((int) (34043))) ^ (((int) (10311)) | ((int) (-10654)))) & (~(((int) (-22199)) | ((int) (22289))))))) && (((int) (struct_obj_3.member_5_2)) >> (+((int) ((short) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467))))))))))))); - } - else - { - short var_619 = ((~(((int) ((short) (13900))) * ((int) ((signed char) (-20248))))) * (((((int) (-975)) * ((int) (struct_obj_9.member_2_1.member_1_0))) / (((int) (var_9)) * ((int) (struct_obj_3.member_5_0)))) * ((((int) (5)) * ((int) (28036))) * (!((int) (struct_obj_8.member_4_1.member_3_1.member_1_1)))))) || (((int) ((signed char) (((int) ((unsigned short) (struct_obj_4.member_2_1.member_1_0))) && ((int) ((unsigned short) (var_8)))))) & ((((int) ((unsigned short) (var_41))) ^ (((int) (var_35)) | ((int) (var_9)))) | (((int) ((unsigned short) (struct_obj_3.member_5_3))) ^ (((int) (17186)) >> (((int) (struct_obj_9.member_2_1.member_1_1)) - (31946)))))); - unsigned short var_620 = (~(((int) ((signed char) (~((int) (var_41))))) & ((int) ((unsigned short) (struct_obj_3.member_5_2))))) / ((int) (-5296)); - signed char var_621 = var_20; - short var_622 = (((int) (struct_obj_6.member_5_0)) | ((~((int) (2))) | (((int) ((signed char) (struct_obj_4.member_2_2))) ^ ((int) ((+((int) ((~((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) == ((-((int) (var_7))) || (((int) (struct_obj_4.member_2_3.member_1_2)) || ((int) (var_12))))))) <= ((int) ((~(~(((int) (var_27)) & ((int) (-98))))) <= ((int) (((((int) (-10897)) || ((int) (struct_obj_4.member_2_3.member_1_3))) || ((int) (var_14))) != ((int) (struct_obj_3.member_5_2))))))))))) ^ ((((int) ((signed char) (~((int) (var_31))))) | ((int) (struct_obj_3.member_5_2))) | ((int) ((unsigned short) ((unsigned short) (~((int) (var_2))))))); - short var_623 = ((((int) ((unsigned short) ((signed char) (var_18)))) || (((int) ((+((int) ((~((int) ((((int) ((-((int) ((short) (-4355)))) < (-((int) (struct_obj_3.member_5_2))))) - (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) || ((~((int) (-19743))) * (((int) (58561)) / ((int) (40662)))))) <= ((int) ((signed char) (((int) (((((int) (struct_obj_3.member_5_2)) ^ ((int) (-77))) & (((int) ((short) (~((int) (-10947))))) | ((((int) (var_30)) >> (((int) (145)) - (138))) | ((((int) (-11225)) + (2147483647)) >> (((int) (31473)) - (31471)))))) >= ((int) (((-(-((int) (struct_obj_2.member_5_0)))) * (-((int) ((unsigned short) (var_1))))) > ((int) (((int) ((unsigned short) (~((int) (-5))))) != (((int) (struct_obj_3.member_5_2)) && (((int) (var_17)) << (((int) (var_9)) - (13475)))))))))) <= ((((int) (49)) ^ ((int) (7553))) & ((int) ((signed char) (23467)))))))))) == ((-((int) (var_7))) || (((int) (struct_obj_4.member_2_3.member_1_2)) || ((int) (var_12))))))) <= ((int) ((~(~(((int) (var_27)) & ((int) (-98))))) <= ((int) (((((int) (-10897)) || ((int) (struct_obj_4.member_2_3.member_1_3))) || ((int) (var_14))) != ((int) (struct_obj_3.member_5_2)))))))) && (((int) (2844)) && ((int) (struct_obj_8.member_4_5))))) || (!((((int) (43906)) || ((int) (var_470))) || (((int) (var_27)) && ((int) (var_52)))))) && (((int) ((signed char) ((((int) (-26084)) || ((int) (struct_obj_8.member_4_4))) || (((int) (struct_obj_4.member_2_1.member_1_0)) || ((int) (var_12)))))) || (((int) (var_45)) && ((((int) (struct_obj_8.member_4_9.member_1_0)) || ((int) (var_23))) && ((int) (struct_obj_4.member_2_1.member_1_1))))); - signed char var_624 = +(~(((int) ((((int) (4004)) ^ ((int) (var_26))) <= (((int) (var_16)) << (((int) (struct_obj_4.member_2_0)) - (7592))))) << (!((int) (var_51))))); - short var_625 = ((int) ((signed char) ((signed char) ((((int) (58)) || ((int) (5530))) >> ((-((int) (var_472))) + (10129)))))) || (+(((((int) (var_624)) * ((int) (struct_obj_10.member_1_3))) * (~((int) (-13129)))) * ((((int) (-6837)) * ((int) (-86))) / (((int) (78)) * ((int) (-2058)))))); - unsigned short var_626 = -(~(~(~((int) (var_28))))); - } - - } - - short var_627 = (((~(((int) (21000)) & ((int) (61917)))) ^ ((((int) (30872)) ^ ((int) (struct_obj_3.member_5_2))) & (((int) (var_472)) & ((int) (var_46))))) | (((((int) (23969)) | ((int) (var_23))) & (((int) (var_38)) ^ ((int) (31735)))) & (~(~((int) (struct_obj_4.member_2_3.member_1_3)))))) & (((((int) (struct_obj_9.member_2_6)) & (~((int) (var_22)))) ^ (((int) (-36)) & (~((int) (var_15))))) | ((int) (struct_obj_4.member_2_4))); - } - -} diff --git a/multiple_labels_crash_test/func.ref.s b/multiple_labels_crash_test/func.ref.s deleted file mode 100644 index 3e08e447..00000000 --- a/multiple_labels_crash_test/func.ref.s +++ /dev/null @@ -1,5170 +0,0 @@ -// File generated by CompCert 3.7 -// Command line: -dmach -S tmp/func.c -o tmp/func.ref.s - .text - .balign 2 - .globl foo -foo: - mov x29, sp - sub sp, sp, #32 - str x29, [sp, #0] - str x30, [sp, #8] - str x19, [sp, #16] - str x20, [sp, #24] - adrp x16, var_47 - ldrsb w0, [x16, #:lo12:var_47] - movn w16, #5210, lsl #0 - and w0, w0, w16 - ubfiz w0, w0, 0, 16 - cmp w0, #1125 - cset x0, le - cbz w0, .L100 - adrp x16, var_24 - ldrsh w0, [x16, #:lo12:var_24] - movz w16, #16885, lsl #0 - eor w0, w0, w16 - movn w16, #103, lsl #0 - orr w15, w0, w16 - adrp x16, struct_obj_4 + 22 - ldrh w14, [x16, #:lo12:struct_obj_4 + 22] - sbfiz w17, w14, 0, 8 - cmp w15, w17 - cset x0, le - cmp w0, #1 - cset x0, ne - adrp x16, var_58 - strb w0, [x16, #:lo12:var_58] - orr w9, wzr, #1 - orr w11, wzr, #1 - adrp x16, struct_obj_4 + 12 - ldrsb w4, [x16, #:lo12:struct_obj_4 + 12] - sub w12, w9, w4 - adrp x16, var_15 - ldrh w3, [x16, #:lo12:var_15] - sub w7, wzr, w3 - sbfiz w13, w7, 0, 8 - sub w13, w13, #43 - lsl w11, w11, w13 - sub w0, w12, w11 - cbnz w0, .L101 - adrp x16, struct_obj_10 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_10 + 6] - sbfiz w5, w0, 0, 8 - adrp x16, var_31 - ldrsh w0, [x16, #:lo12:var_31] - sub w0, w5, w0 - add w0, w0, #24576 - add w0, w0, #2605 - sub w0, wzr, w0 - cmp w0, #0 - cset x0, ne - cbz w0, .L102 -.L101: - movz w0, #0, lsl #0 - movz w16, #51591, lsl #0 - cmp w0, w16 - cset x0, eq - adrp x16, var_27 - ldrsh w15, [x16, #:lo12:var_27] - adrp x16, struct_obj_6 + 4 - ldrh w29, [x16, #:lo12:struct_obj_6 + 4] - and w6, w15, w29 - orn w4, wzr, w6 - movz w16, #29499, lsl #0 - and w9, w4, w16 - adrp x16, var_23 - ldrh w17, [x16, #:lo12:var_23] - cmp w9, w17 - cset x17, le - lsl w0, w0, w17 - sbfiz w29, w0, 0, 16 - adrp x16, var_30 - ldrh w11, [x16, #:lo12:var_30] - adrp x16, var_3 - ldrsb w5, [x16, #:lo12:var_3] - sub w0, w5, #49 - lsl w10, w11, w0 - movn w16, #245, lsl #0 - eor w9, w10, w16 - cbnz w9, .L103 - adrp x16, var_9 - ldrh w14, [x16, #:lo12:var_9] - adrp x16, struct_obj_4 + 2 - ldrsb w17, [x16, #:lo12:struct_obj_4 + 2] - movz w16, #53547, lsl #0 - orr w15, w17, w16 - sub w12, w15, #53248 - sub w12, w12, #359 - asr w3, w14, w12 - cmp w3, #0 - cset x11, ne - b .L104 -.L103: - orr w11, wzr, #1 -.L104: - adrp x16, struct_obj_7 + 2 - ldrsh w4, [x16, #:lo12:struct_obj_7 + 2] - movz w13, #53518, lsl #0 - movk w13, #32767, lsl #16 - adrp x16, struct_obj_4 + 26 - ldrsh w5, [x16, #:lo12:struct_obj_4 + 26] - adrp x16, var_34 - ldrsb w12, [x16, #:lo12:var_34] - eor w10, w5, w12 - sub w5, w10, #8192 - sub w5, w5, #1378 - asr w6, w13, w5 - adrp x16, struct_obj_4 + 2 - ldrsb w5, [x16, #:lo12:struct_obj_4 + 2] - orn w1, wzr, w5 - adrp x16, var_1 - ldrh w3, [x16, #:lo12:var_1] - sbfiz w0, w3, 0, 8 - adrp x16, var_19 - ldrsb w7, [x16, #:lo12:var_19] - adrp x16, struct_obj_1 + 4 - ldrh w10, [x16, #:lo12:struct_obj_1 + 4] - and w12, w7, w10 - movz w16, #113, lsl #0 - and w12, w12, w16 - orr w0, w0, w12 - cmp w1, w0 - cset x0, ne - asr w14, w6, w0 - eor w10, w4, w14 - orr w16, wzr, #2147483647 - add w8, w10, w16 - adrp x16, var_29 - ldrh w6, [x16, #:lo12:var_29] - adrp x16, var_8 - ldrh w2, [x16, #:lo12:var_8] - and w14, w6, w2 - adrp x16, var_48 - ldrh w3, [x16, #:lo12:var_48] - orr w10, w14, w3 - adrp x16, struct_obj_8 + 18 - ldrsh w12, [x16, #:lo12:struct_obj_8 + 18] - orn w4, wzr, w12 - adrp x16, struct_obj_8 + 20 - ldrsh w3, [x16, #:lo12:struct_obj_8 + 20] - ubfiz w1, w3, 0, 16 - sub w3, w1, #49152 - sub w3, w3, #2540 - lsl w7, w4, w3 - and w10, w10, w7 - movz w4, #49144, lsl #0 - adrp x16, struct_obj_5 + 2 - ldrsh w1, [x16, #:lo12:struct_obj_5 + 2] - sub w13, w1, #28672 - sub w13, w13, #274 - lsl w17, w4, w13 - sub w13, wzr, w11 - add w15, w13, #5 - lsl w17, w17, w15 - adrp x16, struct_obj_2 + 2 - ldrh w11, [x16, #:lo12:struct_obj_2 + 2] - movz w16, #27896, lsl #0 - eor w14, w11, w16 - adrp x16, var_56 - ldrh w13, [x16, #:lo12:var_56] - orn w15, wzr, w13 - add w11, w15, #16384 - add w11, w11, #3806 - lsl w1, w14, w11 - eor w2, w17, w1 - movz w16, #33395, lsl #0 - movk w16, #1535, lsl #16 - sub w2, w2, w16 - lsl w14, w10, w2 - asr w14, w8, w14 - cbz w14, .L105 - adrp x16, struct_obj_3 + 2 - ldrh w10, [x16, #:lo12:struct_obj_3 + 2] - cbz w10, .L106 - adrp x16, var_18 - ldrsb w2, [x16, #:lo12:var_18] - cmp w2, #0 - cset x7, ne - b .L107 -.L106: - movz w7, #0, lsl #0 -.L107: - movz w6, #0, lsl #0 - cbz w6, .L108 - orr w8, wzr, #1 - b .L109 -.L108: - orr w8, wzr, #1 -.L109: - cmp w7, #0 - cset x6, lt - cmp w6, w0 - cset x17, ge - movn w2, #2717, lsl #0 - adrp x16, struct_obj_9 + 26 - ldrsh w4, [x16, #:lo12:struct_obj_9 + 26] - madd w12, w4, w2, wzr - orr w16, wzr, #2147483647 - add w11, w12, w16 - orr w3, wzr, w11, asr #3 - cmp w3, #0 - cset x10, eq - cmp w17, w10 - cset x10, ne - asr w8, w10, w8 - ubfiz w3, w8, 0, 16 - cbnz w9, .L110 - adrp x16, var_9 - ldrh w10, [x16, #:lo12:var_9] - movz w16, #53547, lsl #0 - orr w1, w5, w16 - sub w4, w1, #53248 - sub w4, w4, #359 - asr w9, w10, w4 - cmp w9, #0 - cset x1, ne - b .L111 -.L110: - orr w1, wzr, #1 -.L111: - movz w2, #34812, lsl #0 - adrp x16, var_13 - ldrsh w11, [x16, #:lo12:var_13] - madd w14, w11, w2, wzr - adrp x16, struct_obj_1 + 2 - ldrh w6, [x16, #:lo12:struct_obj_1 + 2] - adrp x16, var_65 - ldrsh w4, [x16, #:lo12:var_65] - madd w9, w6, w4, wzr - sdiv w9, w14, w9 - orr w8, wzr, #62 - adrp x16, var_35 - ldrh w2, [x16, #:lo12:var_35] - madd w14, w2, w8, wzr - cmp w14, #0 - cset x10, eq - madd w15, w9, w10, wzr - sub w2, wzr, w0 - madd w12, w15, w2, wzr - sub w1, wzr, w1 - eor w11, w12, w1 - adrp x16, var_70 - strb w11, [x16, #:lo12:var_70] - adrp x16, var_30 - ldrh w7, [x16, #:lo12:var_30] - adrp x16, var_3 - ldrsb w15, [x16, #:lo12:var_3] - sub w0, w15, #49 - lsl w0, w7, w0 - movn w16, #245, lsl #0 - eor w0, w0, w16 - cbnz w0, .L112 - adrp x16, var_9 - ldrh w15, [x16, #:lo12:var_9] - movz w16, #53547, lsl #0 - orr w2, w5, w16 - sub w1, w2, #53248 - sub w1, w1, #359 - asr w14, w15, w1 - cmp w14, #0 - cset x7, ne - b .L113 -.L112: - orr w7, wzr, #1 -.L113: - sub w10, wzr, w7 - movz w12, #20687, lsl #0 - movk w12, #32767, lsl #16 - adrp x16, var_4 - ldrh w6, [x16, #:lo12:var_4] - sbfiz w14, w6, 0, 16 - sub w13, w14, #3630 - asr w5, w12, w13 - eor w17, w10, w5 - orr w16, wzr, #2147483647 - add w15, w17, w16 - adrp x16, struct_obj_4 + 12 - ldrsb w12, [x16, #:lo12:struct_obj_4 + 12] - orn w2, wzr, w12 - adrp x16, struct_obj_2 + 2 - ldrh w11, [x16, #:lo12:struct_obj_2 + 2] - orn w2, w2, w11 - ubfiz w1, w2, 0, 16 - sub w0, w1, #61440 - sub w0, w0, #4095 - lsl w8, w15, w0 - adrp x16, var_41 - ldrh w7, [x16, #:lo12:var_41] - adrp x16, struct_obj_9 + 22 - ldrh w5, [x16, #:lo12:struct_obj_9 + 22] - adrp x16, struct_obj_9 + 20 - ldrsh w4, [x16, #:lo12:struct_obj_9 + 20] - sub w0, w4, #12288 - sub w0, w0, #1248 - lsl w17, w5, w0 - eor w13, w7, w17 - eor w0, w8, w13 - adrp x16, struct_obj_9 + 22 - strh w0, [x16, #:lo12:struct_obj_9 + 22] - movz w8, #35578, lsl #0 - adrp x16, struct_obj_5 - ldrsb w2, [x16, #:lo12:struct_obj_5] - madd w14, w2, w8, wzr - movz w11, #103, lsl #0 - madd w13, w3, w11, wzr - madd w8, w14, w13, wzr - adrp x16, var_26 - ldrh w12, [x16, #:lo12:var_26] - cbnz w12, .L105 - adrp x16, var_34 - ldrsb w11, [x16, #:lo12:var_34] - cmp w11, #0 - cset x7, ne -.L105: - adrp x16, var_61 - ldrsb w0, [x16, #:lo12:var_61] - adrp x16, var_15 - ldrh w14, [x16, #:lo12:var_15] - orr w10, w0, w14 - adrp x16, var_52 - ldrsh w8, [x16, #:lo12:var_52] - movz w16, #5914, lsl #0 - and w0, w8, w16 - orr w6, w10, w0 - adrp x16, struct_obj_2 - ldrsh w10, [x16, #:lo12:struct_obj_2] - bic w8, w6, w10 - adrp x16, var_24 - ldrsh w10, [x16, #:lo12:var_24] - movz w16, #31461, lsl #0 - orr w10, w10, w16 - orr w3, w8, w10 - movz w4, #0, lsl #0 - sbfiz w0, w4, 0, 8 - cmp w3, w0 - cset x3, ne - adrp x16, var_78 - strh w3, [x16, #:lo12:var_78] - adrp x16, struct_obj_8 - ldrh w13, [x16, #:lo12:struct_obj_8] - sub w10, wzr, w13 - cbz w10, .L114 - adrp x16, struct_obj_4 - ldrsh w11, [x16, #:lo12:struct_obj_4] - cbnz w11, .L115 - adrp x16, struct_obj_8 + 4 - ldrsb w6, [x16, #:lo12:struct_obj_8 + 4] - cbnz w6, .L115 - orr w8, wzr, #1 - cmp w29, #0 - cset x2, ne - adrp x16, struct_obj_1 + 2 - ldrh w9, [x16, #:lo12:struct_obj_1 + 2] - cmp w9, #0 - csel x0, x8, x2, ne -.L115: - adrp x16, var_54 - ldrsh w0, [x16, #:lo12:var_54] - orr w16, wzr, #2147483647 - add w17, w0, w16 - adrp x16, var_62 - ldrh w14, [x16, #:lo12:var_62] - adrp x16, struct_obj_2 + 4 - ldrh w7, [x16, #:lo12:struct_obj_2 + 4] - eor w12, w14, w7 - sbfiz w29, w12, 0, 16 - sub w6, w29, #24576 - sub w6, w6, #440 - asr w0, w17, w6 - adrp x16, var_54 - strh w0, [x16, #:lo12:var_54] - adrp x16, var_47 - ldrsb w0, [x16, #:lo12:var_47] - orn w12, wzr, w0 - adrp x16, struct_obj_7 + 2 - ldrsh w0, [x16, #:lo12:struct_obj_7 + 2] - orr w16, wzr, #2147483647 - add w13, w0, w16 - adrp x16, var_18 - ldrsb w11, [x16, #:lo12:var_18] - sub w14, w11, #75 - asr w3, w13, w14 - madd w0, w12, w3, wzr - cmp w0, #0 - cset x0, le - orn w12, wzr, w0 - movn w3, #21, lsl #0 - adrp x16, struct_obj_4 + 18 - ldrsh w14, [x16, #:lo12:struct_obj_4 + 18] - madd w15, w14, w3, wzr - movn w6, #32288, lsl #0 - adrp x16, var_6 - ldrh w29, [x16, #:lo12:var_6] - madd w7, w29, w6, wzr - sdiv w2, w15, w7 - orn w0, wzr, w2 - adrp x16, struct_obj_2 + 2 - ldrh w11, [x16, #:lo12:struct_obj_2 + 2] - adrp x16, var_4 - ldrh w7, [x16, #:lo12:var_4] - madd w14, w11, w7, wzr - adrp x16, var_7 - ldrsb w1, [x16, #:lo12:var_7] - cmp w1, #0 - cset x8, eq - madd w9, w14, w8, wzr - orn w7, wzr, w9 - madd w0, w0, w7, wzr - cmp w12, w0 - cset x0, gt - adrp x16, var_82 - strh w0, [x16, #:lo12:var_82] -.L114: - adrp x16, struct_obj_4 + 18 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 18] - cbz w0, .L102 - adrp x16, struct_obj_2 + 4 - ldrh w0, [x16, #:lo12:struct_obj_2 + 4] - cmp w0, #0 - cset x0, ne -.L102: - adrp x16, struct_obj_3 - ldrsh w0, [x16, #:lo12:struct_obj_3] - cbnz w0, .L116 - adrp x16, var_33 - ldrh w0, [x16, #:lo12:var_33] - cbnz w0, .L117 - adrp x16, var_28 - ldrsh w0, [x16, #:lo12:var_28] - cmp w0, #0 - cset x0, ne - b .L118 -.L117: - orr w0, wzr, #1 - b .L118 -.L116: - orr w0, wzr, #1 -.L118: - orn w12, wzr, w0 - adrp x16, var_2 - ldrh w1, [x16, #:lo12:var_2] - adrp x16, struct_obj_4 + 26 - ldrsh w29, [x16, #:lo12:struct_obj_4 + 26] - sub w0, w1, w29 - sbfiz w15, w0, 0, 8 - cmp w12, w15 - b.ge .L119 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - cbnz w7, .L120 - adrp x16, struct_obj_8 + 22 - ldrh w13, [x16, #:lo12:struct_obj_8 + 22] - cmp w13, #0 - cset x4, ne - b .L121 -.L120: - orr w4, wzr, #1 -.L121: - eor w15, w4, #1 - eor w9, w15, #1 - adrp x16, var_47 - ldrsb w3, [x16, #:lo12:var_47] - cmp w3, #0 - cset x8, ne - movz w16, #14251, lsl #0 - cmp w8, w16 - cset x3, le - cmp w3, w7 - cset x8, ne - ubfiz w12, w29, 0, 16 - cmp w8, w12 - cset x13, ge - adrp x16, struct_obj_1 - ldrsh w12, [x16, #:lo12:struct_obj_1] - ubfiz w17, w12, 0, 16 - orn w4, wzr, w17 - movz w16, #40329, lsl #0 - movk w16, #116, lsl #16 - eor w11, w4, w16 - eor w15, w13, w11 - cbz w15, .L122 - movz w4, #0, lsl #0 - adrp x16, struct_obj_5 - ldrsb w7, [x16, #:lo12:struct_obj_5] - movz w16, #12154, lsl #0 - eor w7, w7, w16 - adrp x16, var_1 - ldrh w1, [x16, #:lo12:var_1] - adrp x16, struct_obj_10 + 6 - ldrsh w4, [x16, #:lo12:struct_obj_10 + 6] - movn w16, #9, lsl #0 - orr w10, w4, w16 - eor w29, w1, w10 - eor w2, w7, w29 - adrp x16, struct_obj_8 + 26 - ldrsb w4, [x16, #:lo12:struct_obj_8 + 26] - orr w0, w4, w9 - and w0, w2, w0 - sbfiz w0, w0, 0, 8 - adrp x16, var_90 - strh w0, [x16, #:lo12:var_90] - adrp x16, var_16 - ldrh w0, [x16, #:lo12:var_16] - movz w16, #56567, lsl #0 - eor w12, w0, w16 - adrp x16, struct_obj_7 - ldrsb w8, [x16, #:lo12:struct_obj_7] - and w14, w12, w8 - adrp x16, var_8 - ldrh w11, [x16, #:lo12:var_8] - orr w12, w14, w11 - adrp x16, var_5 - ldrh w2, [x16, #:lo12:var_5] - adrp x16, var_32 - ldrh w3, [x16, #:lo12:var_32] - eon w1, w2, w3 - adrp x16, var_34 - ldrsb w4, [x16, #:lo12:var_34] - movz w16, #44163, lsl #0 - and w5, w4, w16 - sbfiz w9, w5, 0, 8 - orr w3, w1, w9 - bic w0, w12, w3 - adrp x16, var_94 - strh w0, [x16, #:lo12:var_94] - b .L123 -.L122: - adrp x16, struct_obj_6 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_6 + 6] - adrp x16, var_100 - strh w0, [x16, #:lo12:var_100] -.L123: - adrp x16, struct_obj_8 + 24 - ldrh w0, [x16, #:lo12:struct_obj_8 + 24] - sbfiz w0, w0, 0, 8 - adrp x16, var_106 - strh w0, [x16, #:lo12:var_106] - adrp x16, var_55 - ldrsb w4, [x16, #:lo12:var_55] - adrp x16, var_3 - ldrsb w6, [x16, #:lo12:var_3] - adrp x16, struct_obj_2 + 4 - ldrh w5, [x16, #:lo12:struct_obj_2 + 4] - movz w16, #19146, lsl #0 - orr w2, w5, w16 - eon w8, w2, w6 - ubfiz w6, w8, 0, 16 - adrp x16, struct_obj_8 + 16 - ldrsb w17, [x16, #:lo12:struct_obj_8 + 16] - adrp x16, var_2 - ldrh w1, [x16, #:lo12:var_2] - eon w10, w17, w1 - movz w16, #33293, lsl #0 - orr w15, w4, w16 - adrp x16, struct_obj_4 + 2 - ldrsb w29, [x16, #:lo12:struct_obj_4 + 2] - eon w17, w15, w29 - and w14, w10, w17 - and w0, w6, w14 - cmp w0, #0 - cset x0, eq - adrp x16, var_46 - strh w0, [x16, #:lo12:var_46] - orr w0, wzr, #1 - adrp x16, var_40 - strb w0, [x16, #:lo12:var_40] - adrp x16, var_7 - ldrsb w0, [x16, #:lo12:var_7] - ubfiz w0, w0, 0, 16 - cbz w0, .L124 - adrp x16, struct_obj_8 + 28 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 28] - cbz w0, .L124 - adrp x16, var_11 - ldrsh w0, [x16, #:lo12:var_11] - cmp w0, #0 - cset x0, ne - cbz w0, .L124 - adrp x16, struct_obj_7 + 2 - ldrsh w0, [x16, #:lo12:struct_obj_7 + 2] - cbnz w0, .L124 - adrp x16, var_17 - ldrsh w0, [x16, #:lo12:var_17] - cmp w0, #0 - cset x0, ne - cbnz w0, .L124 - adrp x16, var_10 - ldrh w0, [x16, #:lo12:var_10] - b .L124 -.L119: - adrp x16, struct_obj_8 + 28 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 28] - cbnz w0, .L125 - adrp x16, struct_obj_4 + 4 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 4] - cmp w0, #0 - cset x0, ne - b .L126 -.L125: - orr w0, wzr, #1 -.L126: - adrp x16, struct_obj_4 + 8 - ldrsh w12, [x16, #:lo12:struct_obj_4 + 8] - adrp x16, struct_obj_2 + 2 - ldrh w14, [x16, #:lo12:struct_obj_2 + 2] - sdiv w13, w12, w14 - msub w7, w13, w14, w12 - sbfiz w11, w7, 0, 8 - movz w16, #54823, lsl #0 - cmp w0, w16 - cset x8, le - orr w8, w11, w8 - adrp x16, var_9 - ldrh w6, [x16, #:lo12:var_9] - adrp x16, var_15 - ldrh w11, [x16, #:lo12:var_15] - adrp x16, struct_obj_2 + 6 - ldrsh w12, [x16, #:lo12:struct_obj_2 + 6] - eor w0, w11, w12 - adrp x16, struct_obj_4 - ldrsh w5, [x16, #:lo12:struct_obj_4] - movn w16, #116, lsl #0 - and w12, w5, w16 - orr w0, w0, w12 - bic w9, w6, w0 - adrp x16, struct_obj_4 + 2 - ldrsb w11, [x16, #:lo12:struct_obj_4 + 2] - orr w5, w9, w11 - ubfiz w10, w5, 0, 16 - adrp x16, struct_obj_4 + 18 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 18] - madd w5, w10, w0, wzr - cmp w8, w5 - cset x15, gt - adrp x16, var_21 - ldrsb w2, [x16, #:lo12:var_21] - orn w29, wzr, w2 - movn w16, #38, lsl #0 - orr w5, w29, w16 - adrp x16, var_23 - ldrh w4, [x16, #:lo12:var_23] - eon w8, w4, w2 - adrp x16, var_38 - ldrsb w17, [x16, #:lo12:var_38] - adrp x16, var_61 - ldrsb w3, [x16, #:lo12:var_61] - bic w29, w17, w3 - eor w1, w8, w29 - and w3, w5, w1 - and w14, w15, w3 - adrp x16, var_37 - strb w14, [x16, #:lo12:var_37] - sbfiz w0, w0, 0, 8 -.L124: - orr w0, wzr, #1 - cbz w0, .L127 - adrp x16, struct_obj_7 + 2 - ldrsh w0, [x16, #:lo12:struct_obj_7 + 2] - cbnz w0, .L128 - adrp x16, var_14 - ldrsb w0, [x16, #:lo12:var_14] - cmp w0, #0 - cset x0, ne - cbnz w0, .L128 - adrp x16, var_20 - ldrh w0, [x16, #:lo12:var_20] - adrp x16, var_129 - strh w0, [x16, #:lo12:var_129] - orr w0, wzr, #1 - cbnz w0, .L129 - orr w0, wzr, #1 - b .L129 -.L128: - adrp x16, struct_obj_4 + 24 - ldrh w29, [x16, #:lo12:struct_obj_4 + 24] - adrp x16, var_58 - ldrsb w5, [x16, #:lo12:var_58] - sdiv w13, w29, w5 - msub w3, w13, w5, w29 - adrp x16, var_27 - ldrsh w4, [x16, #:lo12:var_27] - orn w7, wzr, w4 - sdiv w2, w3, w7 - msub w0, w2, w7, w3 - ubfiz w0, w0, 0, 16 - adrp x16, struct_obj_9 - ldrsh w0, [x16, #:lo12:struct_obj_9] - adrp x16, var_123 - strh w0, [x16, #:lo12:var_123] - adrp x16, struct_obj_4 + 2 - ldrsb w0, [x16, #:lo12:struct_obj_4 + 2] - cbz w0, .L129 - orr w0, wzr, #1 - cbz w0, .L129 - orr w0, wzr, #1 -.L129: - adrp x16, struct_obj_9 + 20 - ldrsh w11, [x16, #:lo12:struct_obj_9 + 20] - adrp x16, var_48 - ldrh w13, [x16, #:lo12:var_48] - add w0, w11, w13 - orn w0, wzr, w0 - adrp x16, struct_obj_4 + 24 - ldrh w1, [x16, #:lo12:struct_obj_4 + 24] - adrp x16, var_9 - ldrh w13, [x16, #:lo12:var_9] - adrp x16, var_56 - ldrh w10, [x16, #:lo12:var_56] - and w29, w10, #-97 - eon w7, w13, w29 - cbz w7, .L130 - adrp x16, struct_obj_3 + 2 - ldrh w11, [x16, #:lo12:struct_obj_3 + 2] - cbz w11, .L131 - adrp x16, var_18 - ldrsb w13, [x16, #:lo12:var_18] -.L131: - orr w5, wzr, #1 - movz w15, #0, lsl #0 - adrp x16, var_64 - ldrsb w0, [x16, #:lo12:var_64] - cmp w0, #0 - csel x17, x5, x15, ne - cbnz w17, .L132 - adrp x16, var_28 - ldrsh w8, [x16, #:lo12:var_28] -.L132: - adrp x16, struct_obj_6 - ldrsh w7, [x16, #:lo12:struct_obj_6] - bic w0, w1, w7 - adrp x16, var_143 - strb w0, [x16, #:lo12:var_143] -.L130: - adrp x16, struct_obj_10 + 6 - ldrsh w10, [x16, #:lo12:struct_obj_10 + 6] - adrp x16, struct_obj_8 + 28 - ldrsh w15, [x16, #:lo12:struct_obj_8 + 28] - sub w4, w10, w15 - adrp x16, struct_obj_5 + 6 - ldrsh w5, [x16, #:lo12:struct_obj_5 + 6] - orr w16, wzr, #2147483647 - add w2, w5, w16 - cmp w4, w2, asr #11 - cset x0, lt - sub w15, wzr, w0 - movz w3, #21384, lsl #0 - adrp x16, struct_obj_4 + 12 - ldrsb w14, [x16, #:lo12:struct_obj_4 + 12] - adrp x16, struct_obj_4 + 8 - ldrsh w8, [x16, #:lo12:struct_obj_4 + 8] - madd w7, w14, w8, wzr - madd w5, w7, w3, wzr - bic w15, w15, w5 - adrp x16, var_11 - ldrsh w17, [x16, #:lo12:var_11] - movz w16, #28869, lsl #0 - orr w12, w17, w16 - adrp x16, struct_obj_10 + 4 - ldrsb w7, [x16, #:lo12:struct_obj_10 + 4] - adrp x16, struct_obj_7 + 4 - ldrsb w9, [x16, #:lo12:struct_obj_7 + 4] - adrp x16, var_31 - ldrsh w1, [x16, #:lo12:var_31] - and w11, w9, w1 - orn w17, w7, w11 - orr w13, w12, w17 - cmp w15, w13 - cset x0, eq - adrp x16, var_55 - strb w0, [x16, #:lo12:var_55] - adrp x16, var_50 - ldrh w29, [x16, #:lo12:var_50] - adrp x16, struct_obj_6 + 4 - ldrh w12, [x16, #:lo12:struct_obj_6 + 4] - adrp x16, var_51 - ldrsh w11, [x16, #:lo12:var_51] - movz w16, #58076, lsl #0 - eor w9, w29, w16 - adrp x16, struct_obj_2 + 2 - ldrh w10, [x16, #:lo12:struct_obj_2 + 2] - adrp x16, struct_obj_8 - ldrh w11, [x16, #:lo12:struct_obj_8] - sub w11, w11, #16384 - sub w11, w11, #954 - lsl w4, w10, w11 - eor w0, w9, w4 - adrp x16, var_8 - ldrh w1, [x16, #:lo12:var_8] - sub w15, w1, #12288 - sub w15, w15, #2352 - asr w29, w0, w15 - adrp x16, var_45 - ldrsb w5, [x16, #:lo12:var_45] - movz w16, #27168, lsl #0 - cmp w5, w16 - cset x12, gt - movz w16, #32858, lsl #0 - cmp w12, w16 - cset x9, lt - orr w0, wzr, w9, asr #3 - lsl w0, w29, w0 - sbfiz w0, w0, 0, 8 - cbz w0, .L127 - adrp x16, var_28 - ldrsh w0, [x16, #:lo12:var_28] - adrp x16, var_29 - ldrh w0, [x16, #:lo12:var_29] - cmp w0, #0 - cset x17, ne - movz w10, #0, lsl #0 - movz w1, #0, lsl #0 - cmp w17, #0 - csel x0, x10, x1, ne - eor w1, w0, #1 - adrp x16, var_47 - ldrsb w4, [x16, #:lo12:var_47] - orr w0, w1, w4 - adrp x16, var_152 - strh w0, [x16, #:lo12:var_152] -.L127: - adrp x16, struct_obj_4 - ldrsh w0, [x16, #:lo12:struct_obj_4] - cmp w0, #0 - cset x0, ne - adrp x16, struct_obj_1 + 2 - ldrh w7, [x16, #:lo12:struct_obj_1 + 2] - adrp x16, var_18 - ldrsb w29, [x16, #:lo12:var_18] - cmp w7, w29 - cset x29, le - adrp x16, var_7 - ldrsb w3, [x16, #:lo12:var_7] - movz w16, #7701, lsl #0 - cmp w3, w16 - cset x2, ne - and w0, w29, w2 - adrp x16, var_1 - ldrh w0, [x16, #:lo12:var_1] - cbnz w0, .L133 - adrp x16, struct_obj_8 + 8 - ldrsb w0, [x16, #:lo12:struct_obj_8 + 8] - cmp w0, #0 - cset x0, ne - cbnz w0, .L133 - adrp x16, struct_obj_8 + 20 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 20] - cbnz w0, .L133 - adrp x16, var_49 - ldrsb w0, [x16, #:lo12:var_49] - cmp w0, #0 - cset x0, ne - cbnz w0, .L133 - orr w0, wzr, #1 - orr w2, wzr, #1 - adrp x16, var_29 - ldrh w11, [x16, #:lo12:var_29] - cmp w11, #0 - csel x0, x0, x2, ne - cbnz w0, .L133 - adrp x16, struct_obj_6 + 2 - ldrh w0, [x16, #:lo12:struct_obj_6 + 2] - sbfiz w0, w0, 0, 16 - cmp w0, #0 - cset x0, eq - cbnz w0, .L134 -.L133: - adrp x16, var_48 - ldrh w0, [x16, #:lo12:var_48] - cbnz w0, .L135 - adrp x16, var_31 - ldrsh w0, [x16, #:lo12:var_31] - cmp w0, #0 - cset x0, ne - cbnz w0, .L135 - adrp x16, struct_obj_8 + 18 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 18] - ubfiz w0, w0, 0, 16 - cbz w0, .L136 - adrp x16, var_25 - ldrsb w0, [x16, #:lo12:var_25] - cmp w0, #0 - cset x0, eq - b .L137 -.L136: - movz w0, #0, lsl #0 - b .L137 -.L135: - movz w0, #0, lsl #0 -.L137: - eor w0, w0, #1 - cbz w0, .L138 -.L134: - adrp x16, struct_obj_4 + 10 - ldrh w15, [x16, #:lo12:struct_obj_4 + 10] - adrp x16, struct_obj_8 + 20 - ldrsh w6, [x16, #:lo12:struct_obj_8 + 20] - orn w2, wzr, w6 - ubfiz w3, w2, 0, 16 - orn w9, wzr, w3 - sdiv w0, w15, w9 - adrp x16, var_156 - strb w0, [x16, #:lo12:var_156] - adrp x16, var_15 - ldrh w2, [x16, #:lo12:var_15] - adrp x16, struct_obj_8 + 26 - ldrsb w11, [x16, #:lo12:struct_obj_8 + 26] - movz w16, #17017, lsl #0 - and w17, w11, w16 - sbfiz w29, w17, 0, 8 - adrp x16, struct_obj_1 + 2 - ldrh w14, [x16, #:lo12:struct_obj_1 + 2] - adrp x16, var_39 - ldrh w10, [x16, #:lo12:var_39] - sub w7, w10, #24576 - sub w7, w7, #3586 - lsl w1, w14, w7 - adrp x16, struct_obj_1 + 4 - ldrh w12, [x16, #:lo12:struct_obj_1 + 4] - and w17, w1, w12 - sub w3, w17, #53248 - sub w3, w3, #2127 - asr w14, w29, w3 - lsl w13, w2, w14 - sbfiz w12, w13, 0, 8 - adrp x16, var_14 - ldrsb w8, [x16, #:lo12:var_14] - adrp x16, struct_obj_4 + 12 - ldrsb w6, [x16, #:lo12:struct_obj_4 + 12] - lsl w3, w8, w6 - ubfiz w6, w3, 0, 16 - movz w2, #19254, lsl #0 - movk w2, #42921, lsl #16 - adrp x16, struct_obj_8 + 30 - ldrsb w29, [x16, #:lo12:struct_obj_8 + 30] - cmp w29, #5 - cset x14, gt - madd w7, w14, w2, wzr - adrp x16, struct_obj_4 + 16 - ldrsb w7, [x16, #:lo12:struct_obj_4 + 16] - adrp x16, struct_obj_8 + 20 - ldrsh w6, [x16, #:lo12:struct_obj_8 + 20] - adrp x16, var_54 - ldrsh w5, [x16, #:lo12:var_54] - adrp x16, var_23 - ldrh w3, [x16, #:lo12:var_23] - orr w16, wzr, #2147483647 - add w4, w5, w16 - and w3, w3, w4 - cbz w3, .L139 - adrp x16, var_11 - ldrsh w5, [x16, #:lo12:var_11] - cbnz w5, .L140 - adrp x16, struct_obj_9 + 24 - ldrh w13, [x16, #:lo12:struct_obj_9 + 24] - cmp w13, #0 - cset x13, ne - cbz w13, .L139 -.L140: - adrp x16, struct_obj_9 - ldrsh w9, [x16, #:lo12:struct_obj_9] - cbz w9, .L139 - cbnz w7, .L139 - adrp x16, struct_obj_2 + 4 - ldrh w17, [x16, #:lo12:struct_obj_2 + 4] - cmp w17, #0 - cset x17, ne -.L139: - adrp x16, struct_obj_6 + 6 - ldrsh w4, [x16, #:lo12:struct_obj_6 + 6] - adrp x16, var_65 - ldrsh w17, [x16, #:lo12:var_65] - sub w7, w4, w17 - adrp x16, struct_obj_4 + 10 - ldrh w3, [x16, #:lo12:struct_obj_4 + 10] - sub w14, w3, #28672 - sub w14, w14, #2102 - lsl w29, w11, w14 - sub w0, w7, w29 - sbfiz w2, w0, 0, 8 - cbz w2, .L141 -.L141: - adrp x16, struct_obj_2 + 4 - ldrh w29, [x16, #:lo12:struct_obj_2 + 4] - cbnz w10, .L142 - adrp x16, struct_obj_4 + 26 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 26] - cmp w0, #0 - cset x0, ne - b .L143 -.L142: - orr w0, wzr, #1 -.L143: - adrp x16, var_45 - ldrsb w1, [x16, #:lo12:var_45] - movz w16, #15962, lsl #0 - orr w14, w1, w16 - adrp x16, struct_obj_9 + 24 - ldrh w10, [x16, #:lo12:struct_obj_9 + 24] - movz w16, #64811, lsl #0 - eor w7, w10, w16 - orr w6, w14, w7 - cmp w29, w6 - cset x5, ge - orn w9, wzr, w0 - ubfiz w29, w9, 0, 16 - cmp w5, w29 - b.gt .L144 - adrp x16, var_3 - ldrsb w0, [x16, #:lo12:var_3] - adrp x16, struct_obj_9 - ldrsh w0, [x16, #:lo12:struct_obj_9] - cmp w0, #40 - b.lt .L145 - adrp x16, struct_obj_6 - ldrsh w14, [x16, #:lo12:struct_obj_6] - adrp x16, struct_obj_5 + 2 - ldrsh w13, [x16, #:lo12:struct_obj_5 + 2] - sdiv w8, w14, w13 - msub w0, w8, w13, w14 - cmp w0, #0 - cset x29, ne - b .L146 -.L145: - orr w29, wzr, #1 -.L146: - movz w6, #92, lsl #0 - movz w7, #0, lsl #0 - adrp x16, struct_obj_7 + 2 - ldrsh w17, [x16, #:lo12:struct_obj_7 + 2] - and w10, w17, w29 - sub w9, w7, w10 - add w4, w9, #32 - asr w0, w6, w4 - adrp x16, var_178 - strh w0, [x16, #:lo12:var_178] - adrp x16, struct_obj_4 + 4 - ldrsh w4, [x16, #:lo12:struct_obj_4 + 4] - adrp x16, var_4 - ldrh w0, [x16, #:lo12:var_4] - eor w4, w4, w0 - adrp x16, struct_obj_9 + 8 - ldrsh w29, [x16, #:lo12:struct_obj_9 + 8] - eor w0, w4, w29 - adrp x16, var_3 - ldrsb w0, [x16, #:lo12:var_3] - adrp x16, var_36 - ldrsh w0, [x16, #:lo12:var_36] - movz w16, #55161, lsl #0 - cmp w0, w16 - cset x8, gt - adrp x16, var_55 - ldrsb w13, [x16, #:lo12:var_55] - add w0, w8, w13 - sbfiz w0, w0, 0, 8 - cmp w0, #0 - cset x0, eq - orn w0, wzr, w0 - adrp x16, var_46 - strh w0, [x16, #:lo12:var_46] - b .L147 -.L144: - adrp x16, var_20 - ldrh w0, [x16, #:lo12:var_20] - cmp w0, #0 - cset x7, ne - adrp x16, struct_obj_6 + 2 - ldrh w17, [x16, #:lo12:struct_obj_6 + 2] - sbfx w5, w17, 30, 2 - orr w0, w7, w5 -.L147: - adrp x16, struct_obj_9 + 2 - ldrsb w0, [x16, #:lo12:struct_obj_9 + 2] - cmp w0, #0 - cset x17, eq - adrp x16, var_19 - ldrsb w10, [x16, #:lo12:var_19] - orn w4, wzr, w10 - madd w0, w17, w4, wzr - orn w0, wzr, w0 - cbz w0, .L138 - adrp x16, var_40 - ldrsb w0, [x16, #:lo12:var_40] - cmp w0, #0 - cset x0, ne - cbz w0, .L138 - adrp x16, var_48 - ldrh w0, [x16, #:lo12:var_48] -.L138: - adrp x16, struct_obj_7 + 2 - ldrsh w0, [x16, #:lo12:struct_obj_7 + 2] - cbnz w0, .L148 - adrp x16, var_57 - ldrsb w0, [x16, #:lo12:var_57] - cmp w0, #0 - cset x5, ne - b .L149 -.L148: - movz w5, #0, lsl #0 -.L149: - adrp x16, struct_obj_8 + 2 - ldrsh w10, [x16, #:lo12:struct_obj_8 + 2] - tbz w10, #5, .L150 - adrp x16, var_1 - ldrh w9, [x16, #:lo12:var_1] - adrp x16, struct_obj_2 + 6 - ldrsh w3, [x16, #:lo12:struct_obj_2 + 6] - sub w8, w9, w3 - sbfiz w9, w8, 0, 16 - cmp w9, #0 - cset x10, eq - b .L151 -.L150: - movz w10, #0, lsl #0 -.L151: - adrp x16, struct_obj_8 + 12 - ldrsb w9, [x16, #:lo12:struct_obj_8 + 12] - adrp x16, struct_obj_9 + 10 - ldrh w0, [x16, #:lo12:struct_obj_9 + 10] - orr w7, w9, w0 - adrp x16, var_11 - ldrsh w3, [x16, #:lo12:var_11] - ubfiz w0, w3, 0, 16 - and w11, w7, w0 - orn w14, wzr, w11 - orr w16, wzr, #2147483647 - add w4, w14, w16 - adrp x16, var_53 - ldrsh w6, [x16, #:lo12:var_53] - adrp x16, struct_obj_8 - ldrh w7, [x16, #:lo12:struct_obj_8] - cmp w6, w7 - cset x12, gt - sub w8, wzr, w3 - madd w0, w12, w8, wzr - madd w6, w5, w0, wzr - asr w0, w4, w6 - and w0, w0, w10 - cbz w0, .L100 - adrp x16, var_1 - ldrh w4, [x16, #:lo12:var_1] - adrp x16, struct_obj_4 + 26 - ldrsh w1, [x16, #:lo12:struct_obj_4 + 26] - movz w0, #21555, lsl #0 - adrp x16, var_39 - strh w0, [x16, #:lo12:var_39] - sub w0, wzr, w4 - adrp x16, var_46 - strh w0, [x16, #:lo12:var_46] - adrp x16, var_65 - ldrsh w0, [x16, #:lo12:var_65] - cbz w0, .L152 - adrp x16, var_7 - ldrsb w0, [x16, #:lo12:var_7] - cmp w0, #0 - cset x13, ne - b .L153 -.L152: - movz w13, #0, lsl #0 -.L153: - orr w3, wzr, #1 - movz w17, #0, lsl #0 - cmp w13, #0 - csel x0, x3, x17, ne - adrp x16, var_5 - ldrh w0, [x16, #:lo12:var_5] - cbnz w0, .L154 - adrp x16, struct_obj_2 + 2 - ldrh w0, [x16, #:lo12:struct_obj_2 + 2] - cbz w0, .L155 - adrp x16, var_43 - ldrh w0, [x16, #:lo12:var_43] - cmp w0, #0 - cset x0, ne - b .L156 -.L155: - movz w0, #0, lsl #0 - b .L156 -.L154: - orr w0, wzr, #1 -.L156: - cbnz w0, .L157 - movz w0, #0, lsl #0 - cbz w0, .L157 - adrp x16, struct_obj_4 - ldrsh w0, [x16, #:lo12:struct_obj_4] - sbfiz w0, w0, 0, 8 -.L157: - orr w3, wzr, #2147418112 - adrp x16, var_4 - ldrh w2, [x16, #:lo12:var_4] - movn w16, #6281, lsl #0 - orr w0, w2, w16 - add w15, w0, #4096 - add w15, w15, #130 - lsl w0, w3, w15 - orn w0, wzr, w0 - adrp x16, var_49 - strb w0, [x16, #:lo12:var_49] - adrp x16, var_54 - ldrsh w3, [x16, #:lo12:var_54] - adrp x16, struct_obj_8 - ldrh w8, [x16, #:lo12:struct_obj_8] - eor w5, w3, w8 - eor w0, w5, w3 - sbfiz w12, w0, 0, 8 - adrp x16, struct_obj_8 + 4 - ldrsb w13, [x16, #:lo12:struct_obj_8 + 4] - orn w13, wzr, w13 - movn w16, #20559, lsl #0 - orr w11, w13, w16 - movn w16, #26, lsl #0 - and w2, w11, w16 - sbfiz w13, w2, 0, 16 - and w0, w12, w13 - adrp x16, struct_obj_9 + 24 - ldrh w0, [x16, #:lo12:struct_obj_9 + 24] - adrp x16, var_43 - ldrh w2, [x16, #:lo12:var_43] - cmp w2, #0 - cset x1, eq - adrp x16, var_7 - ldrsb w17, [x16, #:lo12:var_7] - cmp w1, w17 - cset x17, le - adrp x16, var_28 - ldrsh w14, [x16, #:lo12:var_28] - movz w16, #24924, lsl #0 - and w13, w14, w16 - adrp x16, struct_obj_7 - ldrsb w5, [x16, #:lo12:struct_obj_7] - orn w3, w13, w5 - movz w16, #72, lsl #0 - eor w15, w3, w16 - cmp w17, w15 - cset x12, gt - lsl w0, w0, w12 - cbz w0, .L158 - adrp x16, struct_obj_10 + 6 - ldrsh w13, [x16, #:lo12:struct_obj_10 + 6] - adrp x16, struct_obj_4 + 4 - ldrsh w29, [x16, #:lo12:struct_obj_4 + 4] - adrp x16, var_41 - ldrh w12, [x16, #:lo12:var_41] - cbnz w12, .L159 - adrp x16, var_4 - ldrh w1, [x16, #:lo12:var_4] - cmp w1, #0 - cset x14, ne - cbnz w14, .L159 - adrp x16, var_1 - ldrh w1, [x16, #:lo12:var_1] - cmp w1, #0 - cset x7, eq - cbnz w7, .L159 - orr w15, wzr, #1 - orr w17, wzr, #1 - cmp w13, #0 - csel x3, x15, x17, ne - eor w8, w3, #1 - cbz w8, .L159 - adrp x16, var_42 - ldrsb w4, [x16, #:lo12:var_42] - ubfiz w7, w4, 0, 16 - cbnz w7, .L159 - cmp w29, #0 - cset x0, ne -.L159: - adrp x16, struct_obj_10 + 4 - ldrsb w0, [x16, #:lo12:struct_obj_10 + 4] - movn w16, #30699, lsl #0 - cmp w0, w16 - cset x14, ne - adrp x16, var_58 - ldrsb w5, [x16, #:lo12:var_58] - sub w0, w14, w5 - orn w0, wzr, w0 -.L158: - adrp x16, struct_obj_3 + 2 - ldrh w0, [x16, #:lo12:struct_obj_3 + 2] - movn w16, #11885, lsl #0 - and w0, w0, w16 - sub w0, wzr, w0 - adrp x16, var_217 - strb w0, [x16, #:lo12:var_217] - adrp x16, struct_obj_8 - ldrh w6, [x16, #:lo12:struct_obj_8] - adrp x16, var_54 - ldrsh w8, [x16, #:lo12:var_54] - cbz w8, .L160 - adrp x16, struct_obj_10 + 6 - ldrsh w2, [x16, #:lo12:struct_obj_10 + 6] - cbnz w2, .L161 - adrp x16, struct_obj_8 + 24 - ldrh w5, [x16, #:lo12:struct_obj_8 + 24] - cmp w5, #0 - cset x7, ne - cbnz w7, .L161 -.L160: - adrp x16, struct_obj_8 + 20 - ldrsh w8, [x16, #:lo12:struct_obj_8 + 20] - cbz w8, .L162 - adrp x16, struct_obj_3 + 4 - ldrh w13, [x16, #:lo12:struct_obj_3 + 4] - cmp w13, #0 - cset x11, ne - b .L163 -.L162: - movz w11, #0, lsl #0 -.L163: - eor w7, w11, #1 - cbz w7, .L164 -.L161: - adrp x16, struct_obj_4 + 2 - ldrsb w1, [x16, #:lo12:struct_obj_4 + 2] - cmp w1, #0 - cset x14, eq - cbnz w14, .L165 - orr w7, wzr, #1 - b .L166 -.L165: - orr w7, wzr, #1 - b .L166 -.L164: - movz w7, #0, lsl #0 -.L166: - adrp x16, struct_obj_1 - ldrsh w5, [x16, #:lo12:struct_obj_1] - movz w16, #43755, lsl #0 - eor w11, w5, w16 - adrp x16, var_29 - ldrh w4, [x16, #:lo12:var_29] - eor w3, w4, #124 - and w17, w11, w3 - eor w0, w17, #-128 - movz w16, #32295, lsl #0 - and w13, w0, w16 - movz w16, #110, lsl #0 - eor w0, w13, w16 - orn w2, wzr, w0 - orr w16, wzr, #2147483647 - add w4, w2, w16 - adrp x16, struct_obj_8 + 16 - ldrsb w2, [x16, #:lo12:struct_obj_8 + 16] - cmn w2, #601 - cset x11, le - cmp w6, #0 - cset x10, eq - cmp w11, w10 - cset x8, ne - cmp w13, #0 - cset x3, lt - cmp w8, w3 - cset x8, gt - asr w9, w4, w8 - cmp w7, w9 - b.gt .L167 - adrp x16, var_65 - strh w13, [x16, #:lo12:var_65] - adrp x16, struct_obj_4 + 16 - ldrsb w0, [x16, #:lo12:struct_obj_4 + 16] - orr w16, wzr, #2147483647 - add w15, w0, w16 - adrp x16, var_18 - ldrsb w13, [x16, #:lo12:var_18] - adrp x16, struct_obj_4 + 8 - ldrsh w1, [x16, #:lo12:struct_obj_4 + 8] - movz w16, #68, lsl #0 - orr w14, w1, w16 - adrp x16, struct_obj_1 + 4 - ldrh w1, [x16, #:lo12:struct_obj_1 + 4] - movn w16, #16241, lsl #0 - eor w5, w1, w16 - and w11, w14, w5 - add w9, w11, #57344 - add w9, w9, #1482 - lsl w13, w13, w9 - sub w10, w13, #5042176 - sub w10, w10, #4072 - asr w0, w15, w10 - adrp x16, var_32 - ldrh w0, [x16, #:lo12:var_32] - movn w16, #22, lsl #0 - and w0, w0, w16 - sub w0, wzr, w0 - b .L100 -.L167: - adrp x16, var_50 - ldrh w1, [x16, #:lo12:var_50] - orn w17, wzr, w1 - sbfiz w14, w17, 0, 8 - adrp x16, var_40 - ldrsb w17, [x16, #:lo12:var_40] - orr w4, w17, #6 - sbfiz w8, w4, 0, 16 - bic w10, w14, w8 - adrp x16, struct_obj_9 + 20 - ldrsh w1, [x16, #:lo12:struct_obj_9 + 20] - and w0, w2, w1 - movz w16, #61009, lsl #0 - orr w12, w0, w16 - sub w12, wzr, w12 - orr w16, wzr, #2147483647 - add w14, w12, w16 - movn w5, #52, lsl #0 - adrp x16, struct_obj_1 + 6 - ldrsh w11, [x16, #:lo12:struct_obj_1 + 6] - madd w3, w11, w5, wzr - madd w8, w13, w3, wzr - cmp w8, #0 - cset x29, eq - asr w1, w14, w29 - cmp w10, w1 - cset x0, le - adrp x16, var_234 - strh w0, [x16, #:lo12:var_234] - adrp x16, var_23 - ldrh w0, [x16, #:lo12:var_23] - cbnz w0, .L100 - adrp x16, var_2 - ldrh w0, [x16, #:lo12:var_2] -.L100: - adrp x16, struct_obj_9 - ldrsh w0, [x16, #:lo12:struct_obj_9] - movn w16, #48877, lsl #0 - and w0, w0, w16 - movn w16, #30503, lsl #0 - eor w0, w0, w16 - movz w16, #47, lsl #0 - tst w0, w16 - b.eq .L168 - adrp x16, var_16 - ldrh w0, [x16, #:lo12:var_16] - cbz w0, .L169 - adrp x16, var_37 - ldrsb w0, [x16, #:lo12:var_37] - cmp w0, #0 - cset x29, ne - b .L170 -.L169: - movz w29, #0, lsl #0 -.L170: - adrp x16, var_15 - ldrh w17, [x16, #:lo12:var_15] - adrp x16, var_65 - ldrsh w1, [x16, #:lo12:var_65] - ubfiz w0, w1, 0, 16 - add w10, w0, w29 - cmp w17, w10 - cset x6, le - orn w10, wzr, w6 - movz w16, #32708, lsl #0 - cmp w10, w16 - cset x6, lt - adrp x16, var_37 - ldrsb w0, [x16, #:lo12:var_37] - add w13, w0, w6 - cmn w13, #1594 - cset x4, ge - movz w16, #56889, lsl #0 - eor w8, w1, w16 - orr w16, wzr, #2147483647 - add w6, w8, w16 - adrp x16, struct_obj_9 + 20 - ldrsh w14, [x16, #:lo12:struct_obj_9 + 20] - sub w29, w14, #12288 - sub w29, w29, #1239 - lsl w15, w0, w29 - sub w8, w15, #15200256 - sub w8, w8, #4072 - asr w11, w6, w8 - orn w5, wzr, w11 - orr w16, wzr, #2147483647 - add w11, w5, w16 - adrp x16, struct_obj_1 + 6 - ldrsh w29, [x16, #:lo12:struct_obj_1 + 6] - movn w16, #29412, lsl #0 - orr w10, w29, w16 - adrp x16, var_61 - ldrsb w12, [x16, #:lo12:var_61] - orn w7, w10, w12 - ubfiz w2, w7, 0, 16 - sub w10, w2, #32768 - sub w10, w10, #4095 - lsl w9, w11, w10 - adrp x16, var_22 - ldrsb w5, [x16, #:lo12:var_22] - movn w16, #10106, lsl #0 - and w11, w5, w16 - adrp x16, struct_obj_10 - ldrsb w12, [x16, #:lo12:struct_obj_10] - movn w16, #7265, lsl #0 - orr w6, w12, w16 - add w10, w6, #4096 - add w10, w10, #3136 - lsl w12, w11, w10 - adrp x16, var_28 - ldrsh w3, [x16, #:lo12:var_28] - sbfiz w13, w3, 0, 8 - adrp x16, struct_obj_9 + 22 - ldrh w8, [x16, #:lo12:struct_obj_9 + 22] - sub w10, w8, #24576 - sub w10, w10, #2375 - asr w11, w4, w10 - and w5, w13, w11 - lsl w17, w12, w5 - adrp x16, struct_obj_8 + 24 - ldrh w8, [x16, #:lo12:struct_obj_8 + 24] - movz w16, #31750, lsl #0 - eor w15, w8, w16 - sbfiz w2, w15, 0, 16 - orr w16, wzr, #2147483647 - add w7, w2, w16 - adrp x16, struct_obj_4 + 22 - ldrh w11, [x16, #:lo12:struct_obj_4 + 22] - sbfiz w8, w11, 0, 8 - orn w6, wzr, w8 - add w14, w6, #113 - lsl w29, w7, w14 - movz w16, #45511, lsl #0 - movk w16, #32767, lsl #16 - sub w4, w29, w16 - lsl w2, w17, w4 - orr w0, w9, w2 - sbfiz w7, w0, 0, 8 - adrp x16, struct_obj_1 - ldrsh w5, [x16, #:lo12:struct_obj_1] - adrp x16, var_18 - ldrsb w6, [x16, #:lo12:var_18] - orn w8, wzr, w6 - adrp x16, var_38 - ldrsb w12, [x16, #:lo12:var_38] - eon w12, w8, w12 - bic w1, w5, w12 - adrp x16, struct_obj_8 + 6 - ldrsh w4, [x16, #:lo12:struct_obj_8 + 6] - movn w16, #74, lsl #0 - orr w15, w4, w16 - orn w29, wzr, w15 - madd w1, w1, w29, wzr - adrp x16, var_49 - strb w1, [x16, #:lo12:var_49] - adrp x16, var_30 - ldrh w9, [x16, #:lo12:var_30] - cbnz w9, .L171 - adrp x16, var_17 - ldrsh w8, [x16, #:lo12:var_17] - movz w16, #58592, lsl #0 - and w12, w8, w16 - adrp x16, struct_obj_8 + 18 - ldrsh w3, [x16, #:lo12:struct_obj_8 + 18] - movz w16, #32236, lsl #0 - eor w9, w3, w16 - eor w9, w12, w9 - cmp w9, #0 - cset x1, eq - sub w17, wzr, w1 - cmp w17, #0 - cset x13, eq - adrp x16, struct_obj_8 - strh w13, [x16, #:lo12:struct_obj_8] - adrp x16, var_64 - ldrsb w15, [x16, #:lo12:var_64] - adrp x16, var_32 - ldrh w29, [x16, #:lo12:var_32] - adrp x16, struct_obj_9 + 24 - ldrh w11, [x16, #:lo12:struct_obj_9 + 24] - adrp x16, var_17 - ldrsh w6, [x16, #:lo12:var_17] - sbfiz w8, w6, 0, 8 - adrp x16, struct_obj_8 + 26 - ldrsb w14, [x16, #:lo12:struct_obj_8 + 26] - and w6, w14, w11 - and w4, w8, w6 - orn w4, wzr, w4 - cbz w4, .L172 - adrp x16, var_16 - ldrh w13, [x16, #:lo12:var_16] - adrp x16, var_58 - ldrsb w2, [x16, #:lo12:var_58] - and w29, w13, w2 - sbfiz w17, w29, 0, 8 - movn w16, #29487, lsl #0 - orr w12, w17, w16 - ubfiz w10, w15, 0, 16 - cbnz w10, .L173 - adrp x16, struct_obj_4 + 18 - ldrsh w6, [x16, #:lo12:struct_obj_4 + 18] - cbnz w6, .L173 - adrp x16, var_10 - ldrh w14, [x16, #:lo12:var_10] - cmp w14, #0 - cset x8, ne - cbnz w8, .L173 - adrp x16, struct_obj_4 + 2 - ldrsb w0, [x16, #:lo12:struct_obj_4 + 2] -.L173: - movz w15, #26, lsl #0 - adrp x16, var_297 - strh w15, [x16, #:lo12:var_297] - adrp x16, var_53 - ldrsh w17, [x16, #:lo12:var_53] - adrp x16, var_42 - ldrsb w6, [x16, #:lo12:var_42] - adrp x16, var_65 - strh w6, [x16, #:lo12:var_65] - adrp x16, var_6 - ldrh w0, [x16, #:lo12:var_6] - adrp x16, var_15 - ldrh w1, [x16, #:lo12:var_15] - orn w12, w0, w1 - adrp x16, var_8 - ldrh w2, [x16, #:lo12:var_8] - movn w16, #90, lsl #0 - eor w1, w2, w16 - b .L174 -.L172: - orr w14, wzr, #1 - movz w13, #0, lsl #0 - adrp x16, struct_obj_8 + 18 - ldrsh w8, [x16, #:lo12:struct_obj_8 + 18] - cmp w8, #0 - csel x9, x14, x13, ne - cbz w9, .L174 - adrp x16, struct_obj_2 + 6 - ldrsh w5, [x16, #:lo12:struct_obj_2 + 6] - cbz w5, .L175 - adrp x16, var_20 - ldrh w8, [x16, #:lo12:var_20] - cmp w8, #0 - cset x3, ne -.L175: - adrp x16, var_24 - ldrsh w11, [x16, #:lo12:var_24] - sbfiz w8, w11, 0, 8 - cbnz w8, .L176 -.L176: -.L174: - adrp x16, struct_obj_6 - ldrsh w6, [x16, #:lo12:struct_obj_6] - and w3, w6, w7 - adrp x16, var_12 - ldrh w8, [x16, #:lo12:var_12] - bic w14, w3, w8 - orn w5, wzr, w14, lsl #15 - cbz w5, .L177 - movz w4, #1346, lsl #0 - adrp x16, var_48 - ldrh w12, [x16, #:lo12:var_48] - madd w5, w12, w4, wzr - sbfiz w15, w5, 0, 8 - cmp w15, w7 - cset x13, ne - movz w16, #19262, lsl #0 - cmp w13, w16 - cset x29, lt - cbz w29, .L177 - adrp x16, var_7 - ldrsb w15, [x16, #:lo12:var_7] - movn w13, #42, lsl #0 - adrp x16, struct_obj_4 + 12 - ldrsb w2, [x16, #:lo12:struct_obj_4 + 12] - adrp x16, struct_obj_8 + 16 - ldrsb w17, [x16, #:lo12:struct_obj_8 + 16] - madd w15, w2, w17, wzr - madd w29, w15, w13, wzr - movz w12, #86, lsl #0 - madd w5, w6, w12, wzr - orr w0, wzr, w5, lsr #31 - sxtw x13, w5 - movz x12, #51543, lsl #0 - movk x12, #15108, lsl #16 - madd x4, x13, x12, xzr - orr x1, xzr, x4, asr #32 - add w4, w0, w1, asr #24 - madd w10, w29, w4, wzr - orr w3, wzr, w10, lsl #24 - cmp w3, #0 - cset x8, eq - adrp x16, var_314 - strb w8, [x16, #:lo12:var_314] - adrp x16, struct_obj_7 + 2 - ldrsh w10, [x16, #:lo12:struct_obj_7 + 2] - sbfiz w14, w10, 0, 8 - cmp w14, #1 - cset x15, lt - orn w3, wzr, w15 - orr w14, wzr, #1 - cbz w14, .L178 - orr w29, wzr, #1 - b .L179 -.L178: - movz w29, #0, lsl #0 -.L179: - b .L180 -.L177: - adrp x16, var_28 - ldrsh w0, [x16, #:lo12:var_28] -.L180: - adrp x16, var_12 - ldrh w10, [x16, #:lo12:var_12] - adrp x16, var_62 - ldrh w1, [x16, #:lo12:var_62] - eor w5, w10, w1 - adrp x16, struct_obj_10 + 6 - ldrsh w12, [x16, #:lo12:struct_obj_10 + 6] - adrp x16, struct_obj_2 - ldrsh w8, [x16, #:lo12:struct_obj_2] - orr w14, w12, w8 - orr w1, w5, w14 - movz w16, #6229, lsl #0 - orr w17, w1, w16 - ubfiz w8, w17, 0, 16 - adrp x16, struct_obj_3 + 6 - ldrsh w11, [x16, #:lo12:struct_obj_3 + 6] - orr w2, w11, #8 - orn w2, wzr, w2 - movn w16, #3193, lsl #0 - eor w29, w2, w16 - adrp x16, var_8 - ldrh w0, [x16, #:lo12:var_8] - adrp x16, var_25 - ldrsb w9, [x16, #:lo12:var_25] - and w11, w0, w9 - movn w16, #12881, lsl #0 - and w13, w11, w16 - orn w15, w29, w13 - and w14, w8, w15 - cbnz w14, .L181 - adrp x16, var_46 - ldrh w5, [x16, #:lo12:var_46] - adrp x16, struct_obj_8 + 2 - ldrsh w10, [x16, #:lo12:struct_obj_8 + 2] - adrp x16, var_40 - ldrsb w5, [x16, #:lo12:var_40] - adrp x16, var_22 - ldrsb w6, [x16, #:lo12:var_22] - sdiv w29, w5, w6 - msub w3, w29, w6, w5 - eor w1, w10, w3 -.L181: - adrp x16, var_41 - ldrh w10, [x16, #:lo12:var_41] - adrp x16, struct_obj_4 + 24 - ldrh w3, [x16, #:lo12:struct_obj_4 + 24] - adrp x16, struct_obj_4 + 12 - ldrsb w4, [x16, #:lo12:struct_obj_4 + 12] - cbz w4, .L182 - cmp w3, #0 - cset x17, ne - b .L183 -.L182: - movz w17, #0, lsl #0 -.L183: - adrp x16, var_2 - ldrh w10, [x16, #:lo12:var_2] - adrp x16, var_16 - ldrh w1, [x16, #:lo12:var_16] - eor w2, w10, w1 - movz w16, #40083, lsl #0 - and w29, w1, w16 - sbfiz w5, w29, 0, 8 - cmp w2, w5 - cset x29, lt - movz w16, #14594, lsl #0 - cmp w29, w16 - cset x14, le - adrp x16, var_35 - ldrh w11, [x16, #:lo12:var_35] - sbfiz w29, w11, 0, 8 - movn w16, #31724, lsl #0 - cmp w29, w16 - cset x13, ne - movz w6, #55455, lsl #0 - sdiv w1, w6, w17 - cmp w13, w1 - cset x8, le - sbfiz w17, w0, 0, 8 - sub w6, wzr, w17 - orr w29, wzr, #-9 - sdiv w17, w6, w29 - msub w9, w17, w29, w6 - add w17, w9, #10 - asr w6, w8, w17 - sbfiz w11, w6, 0, 8 - cmp w14, w11 - cset x13, ne - adrp x16, var_358 - strh w13, [x16, #:lo12:var_358] - b .L184 -.L171: - adrp x16, var_33 - ldrh w8, [x16, #:lo12:var_33] - movz w16, #7439, lsl #0 - and w6, w8, w16 - orn w4, wzr, w6 - cbz w4, .L185 - adrp x16, var_27 - ldrsh w4, [x16, #:lo12:var_27] - adrp x16, struct_obj_9 + 24 - ldrh w15, [x16, #:lo12:struct_obj_9 + 24] - cmp w4, w15, lsl #8 - cset x4, ne - b .L186 -.L185: - movz w4, #0, lsl #0 -.L186: - orr w29, wzr, #31 - movz w15, #4200, lsl #0 - adrp x16, struct_obj_10 - ldrsb w13, [x16, #:lo12:struct_obj_10] - madd w15, w13, w15, wzr - madd w9, w15, w29, wzr - adrp x16, var_40 - ldrsb w15, [x16, #:lo12:var_40] - sub w10, wzr, w15 - orn w0, wzr, w10 - madd w15, w9, w0, wzr - sub w1, wzr, w15 - adrp x16, struct_obj_8 + 18 - ldrsh w2, [x16, #:lo12:struct_obj_8 + 18] - sbfiz w15, w2, 0, 8 - cmp w15, #0 - cset x14, eq - adrp x16, var_36 - ldrsh w5, [x16, #:lo12:var_36] - movz w16, #18436, lsl #0 - and w11, w5, w16 - cmp w14, w11 - cset x6, ge - cmp w4, w6 - cset x10, lt - cmp w1, w10 - b.lt .L187 - adrp x16, var_8 - ldrh w2, [x16, #:lo12:var_8] - adrp x16, struct_obj_9 + 10 - ldrh w12, [x16, #:lo12:struct_obj_9 + 10] - cbz w12, .L188 - adrp x16, var_20 - ldrh w9, [x16, #:lo12:var_20] - cmp w9, #0 - cset x1, ne - b .L189 -.L188: - movz w1, #0, lsl #0 -.L189: - orr w2, wzr, #1 - orr w0, wzr, #1 - cmp w1, #0 - csel x2, x2, x0, ne - cbnz w2, .L190 - adrp x16, struct_obj_9 + 22 - ldrh w3, [x16, #:lo12:struct_obj_9 + 22] - cmp w3, #0 - cset x11, ne - b .L191 -.L190: - orr w11, wzr, #1 -.L191: - movz w6, #29648, lsl #0 - movk w6, #1081, lsl #16 - asr w29, w6, w11 - adrp x16, var_240 - strb w29, [x16, #:lo12:var_240] - movz w5, #61679, lsl #0 - adrp x16, var_10 - ldrh w4, [x16, #:lo12:var_10] - madd w4, w4, w5, wzr - adrp x16, var_3 - ldrsb w3, [x16, #:lo12:var_3] - movn w12, #38, lsl #0 - sdiv w5, w3, w12 - msub w3, w5, w12, w3 - cmp w4, w3 - cset x15, gt - movz w2, #90, lsl #0 - adrp x16, var_14 - ldrsb w4, [x16, #:lo12:var_14] - sdiv w12, w2, w4 - orr w17, w15, w12, asr #28 - adrp x16, struct_obj_8 + 8 - ldrsb w8, [x16, #:lo12:struct_obj_8 + 8] - adrp x16, struct_obj_9 + 10 - ldrh w10, [x16, #:lo12:struct_obj_9 + 10] - cmp w8, w10 - cset x10, gt - cmn w10, #57 - cset x5, ge - adrp x16, var_62 - ldrh w6, [x16, #:lo12:var_62] - movz w16, #5083, lsl #0 - orr w15, w6, w16 - orn w3, wzr, w15 - sdiv w6, w5, w3 - cmp w17, w6 - cset x6, lt - sub w5, wzr, w6 - adrp x16, var_241 - strh w5, [x16, #:lo12:var_241] - adrp x16, struct_obj_4 + 26 - ldrsh w12, [x16, #:lo12:struct_obj_4 + 26] - adrp x16, var_33 - ldrh w9, [x16, #:lo12:var_33] - cmn w9, #2638 - cset x10, ge - movz w16, #65439, lsl #0 - movk w16, #127, lsl #16 - cmp w10, w16 - cset x17, lt - adrp x16, var_59 - ldrh w11, [x16, #:lo12:var_59] - orr w0, w11, #48 - sbfiz w8, w0, 0, 8 - orr w16, wzr, #2147483647 - add w29, w8, w16 - and w15, w12, w7 - orn w15, wzr, w15 - add w13, w15, #76 - lsl w4, w29, w13 - ubfiz w15, w4, 0, 16 - cmp w17, w15 - cset x29, ne - adrp x16, struct_obj_9 + 10 - strh w29, [x16, #:lo12:struct_obj_9 + 10] - adrp x16, var_22 - ldrsb w13, [x16, #:lo12:var_22] - sub w2, w9, #36864 - sub w2, w2, #3417 - asr w12, w13, w2 - sbfiz w3, w12, 0, 8 - orr w15, wzr, w3, lsr #31 - sxtw x5, w3 - movz x0, #20745, lsl #0 - movk x0, #21032, lsl #16 - madd x17, x5, x0, xzr - orr x4, xzr, x17, asr #32 - add w4, w15, w4, asr #13 - adrp x16, struct_obj_8 + 4 - ldrsb w1, [x16, #:lo12:struct_obj_8 + 4] - adrp x16, struct_obj_6 + 4 - ldrh w15, [x16, #:lo12:struct_obj_6 + 4] - orr w17, w15, #-127 - orr w14, w1, w17 - adrp x16, var_7 - ldrsb w6, [x16, #:lo12:var_7] - adrp x16, var_1 - ldrh w1, [x16, #:lo12:var_1] - and w5, w6, w1 - movz w16, #18007, lsl #0 - and w17, w5, w16 - eon w29, w14, w17 - adrp x16, var_57 - strb w29, [x16, #:lo12:var_57] - adrp x16, struct_obj_9 + 20 - ldrsh w9, [x16, #:lo12:struct_obj_9 + 20] -.L187: - adrp x16, var_20 - ldrh w29, [x16, #:lo12:var_20] - sbfiz w10, w29, 0, 8 - sub w3, wzr, w10 - adrp x16, struct_obj_8 + 2 - ldrsh w1, [x16, #:lo12:struct_obj_8 + 2] - adrp x16, struct_obj_9 + 2 - ldrsb w0, [x16, #:lo12:struct_obj_9 + 2] - eor w8, w1, w0 - adrp x16, var_45 - ldrsb w12, [x16, #:lo12:var_45] - movz w16, #58, lsl #0 - eor w0, w12, w16 - add w4, w0, #128 - lsl w29, w8, w4 - adrp x16, var_31 - ldrsh w9, [x16, #:lo12:var_31] - cmp w29, w9 - cset x11, eq - adrp x16, struct_obj_1 + 2 - ldrh w2, [x16, #:lo12:struct_obj_1 + 2] - movz w16, #37360, lsl #0 - orr w4, w2, w16 - adrp x16, var_5 - ldrh w8, [x16, #:lo12:var_5] - orn w8, w4, w8 - cmp w8, #8 - cset x17, le - eor w12, w11, w17 - cmp w3, w12 - b.le .L192 - adrp x16, var_58 - ldrsb w9, [x16, #:lo12:var_58] - cbz w9, .L193 - adrp x16, struct_obj_8 + 6 - ldrsh w8, [x16, #:lo12:struct_obj_8 + 6] - cmp w8, #0 - cset x12, ne - b .L194 -.L193: - movz w12, #0, lsl #0 -.L194: - movz w13, #20736, lsl #0 - movk w13, #64035, lsl #16 - orr w14, wzr, #-63 - adrp x16, struct_obj_8 + 8 - ldrsb w11, [x16, #:lo12:struct_obj_8 + 8] - madd w8, w11, w9, wzr - orn w10, wzr, w8 - madd w14, w10, w14, wzr - sdiv w1, w13, w14 - adrp x16, var_22 - ldrsb w10, [x16, #:lo12:var_22] - add w5, w10, #36 - adrp x16, struct_obj_4 + 24 - ldrh w15, [x16, #:lo12:struct_obj_4 + 24] - cmp w15, w12 - cset x15, gt - cmp w5, w15 - cset x14, lt - and w17, w1, w14 - adrp x16, var_52 - ldrsh w5, [x16, #:lo12:var_52] - sbfiz w29, w5, 0, 8 - adrp x16, struct_obj_4 + 26 - ldrsh w4, [x16, #:lo12:struct_obj_4 + 26] - sub w0, w4, #12288 - sub w0, w0, #1655 - movn w12, #37, lsl #0 - adrp x16, struct_obj_9 + 4 - ldrsh w15, [x16, #:lo12:struct_obj_9 + 4] - sub w8, wzr, w15 - sub w12, w12, w8 - add w15, w0, w12 - sub w15, w15, #16384 - sub w15, w15, #223 - movn w16, #27, lsl #0 - eor w6, w17, w16 - orn w13, wzr, w6 - movz w16, #28048, lsl #0 - orr w8, w13, w16 - sbfiz w10, w8, 0, 8 - eor w0, w15, w10 - adrp x16, struct_obj_9 + 24 - strh w0, [x16, #:lo12:struct_obj_9 + 24] - adrp x16, var_16 - ldrh w8, [x16, #:lo12:var_16] - adrp x16, var_58 - ldrsb w1, [x16, #:lo12:var_58] - adrp x16, struct_obj_4 + 10 - ldrh w6, [x16, #:lo12:struct_obj_4 + 10] - sub w11, w6, #28672 - sub w11, w11, #2095 - asr w9, w1, w11 - lsl w8, w8, w17 - sub w17, w8, #4096 - sub w17, w17, #3785 - asr w9, w9, w17 - cmn w9, #17 - cset x12, gt - adrp x16, struct_obj_8 + 16 - ldrsb w11, [x16, #:lo12:struct_obj_8 + 16] - movn w16, #7837, lsl #0 - and w10, w11, w16 - movz w16, #22400, lsl #0 - cmp w10, w16 - cset x13, ne - orn w1, wzr, w29 - eor w29, w13, w1 - sdiv w13, w12, w29 - adrp x16, var_260 - strb w13, [x16, #:lo12:var_260] - b .L195 -.L192: - adrp x16, var_8 - ldrh w10, [x16, #:lo12:var_8] - cbnz w10, .L196 - adrp x16, struct_obj_9 + 8 - ldrsh w2, [x16, #:lo12:struct_obj_9 + 8] - cmp w2, #0 - cset x5, ne - cbz w5, .L197 -.L196: - adrp x16, var_59 - ldrh w12, [x16, #:lo12:var_59] - sbfiz w0, w12, 0, 16 - cmp w0, #0 - cset x29, ne - cbnz w29, .L195 -.L197: - adrp x16, var_51 - ldrsh w17, [x16, #:lo12:var_51] -.L195: - adrp x16, var_39 - ldrh w13, [x16, #:lo12:var_39] - movz w16, #10137, lsl #0 - eor w14, w13, w16 - adrp x16, var_14 - ldrsb w29, [x16, #:lo12:var_14] - movz w16, #33, lsl #0 - eor w3, w29, w16 - and w11, w14, w3 - sbfiz w10, w11, 0, 8 - cbnz w10, .L198 - adrp x16, var_62 - ldrh w8, [x16, #:lo12:var_62] - orn w12, wzr, w8 - adrp x16, struct_obj_8 + 4 - strb w12, [x16, #:lo12:struct_obj_8 + 4] - adrp x16, var_24 - ldrsh w8, [x16, #:lo12:var_24] - adrp x16, var_16 - ldrh w17, [x16, #:lo12:var_16] - adrp x16, var_34 - ldrsb w15, [x16, #:lo12:var_34] - adrp x16, struct_obj_3 + 6 - ldrsh w5, [x16, #:lo12:struct_obj_3 + 6] - adrp x16, var_4 - ldrh w11, [x16, #:lo12:var_4] - adrp x16, struct_obj_9 + 8 - ldrsh w0, [x16, #:lo12:struct_obj_9 + 8] - adrp x16, struct_obj_9 + 10 - ldrh w6, [x16, #:lo12:struct_obj_9 + 10] - madd w29, w0, w6, wzr - sub w6, wzr, w29 - ubfiz w4, w6, 0, 16 - sub w17, wzr, w17 - madd w10, w17, w15, wzr - cmp w8, w10 - cset x0, le - cmp w0, w5 - cset x0, lt - add w8, w11, #24576 - add w8, w8, #1397 - orn w9, wzr, w8 - sbfiz w8, w9, 0, 8 - cmn w8, #123 - cset x13, le - orr w15, w0, w13 - orn w17, wzr, w15 - b .L199 -.L198: - adrp x16, var_51 - ldrsh w8, [x16, #:lo12:var_51] - ubfiz w4, w8, 0, 16 - cbnz w4, .L200 - adrp x16, struct_obj_8 + 16 - ldrsb w0, [x16, #:lo12:struct_obj_8 + 16] - cbz w0, .L201 - adrp x16, var_62 - ldrh w11, [x16, #:lo12:var_62] - cmp w11, #0 - cset x12, ne - b .L202 -.L201: - movz w12, #0, lsl #0 - b .L202 -.L200: - orr w12, wzr, #1 -.L202: - cbz w12, .L203 - adrp x16, var_8 - ldrh w0, [x16, #:lo12:var_8] - cbnz w0, .L203 - adrp x16, struct_obj_4 + 12 - ldrsb w0, [x16, #:lo12:struct_obj_4 + 12] - cmp w0, #0 - cset x0, ne -.L203: - adrp x16, var_21 - ldrsb w17, [x16, #:lo12:var_21] - adrp x16, struct_obj_8 + 28 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 28] - sub w14, w0, w29 - adrp x16, var_17 - ldrsh w0, [x16, #:lo12:var_17] - sub w2, wzr, w0 - add w29, w14, w2 - sub w4, wzr, w29 - adrp x16, struct_obj_9 + 22 - ldrh w3, [x16, #:lo12:struct_obj_9 + 22] - add w11, w4, w3 - sub w8, w17, w11 - adrp x16, var_268 - strb w8, [x16, #:lo12:var_268] -.L199: - adrp x16, struct_obj_9 + 22 - ldrh w3, [x16, #:lo12:struct_obj_9 + 22] - orr w29, wzr, #1 - adrp x16, struct_obj_4 + 2 - ldrsb w10, [x16, #:lo12:struct_obj_4 + 2] - movn w16, #3614, lsl #0 - eor w14, w10, w16 - sbfiz w13, w14, 0, 8 - movn w16, #53, lsl #0 - eor w17, w13, w16 - sub w1, w17, #115 - asr w12, w29, w1 - adrp x16, var_29 - ldrh w11, [x16, #:lo12:var_29] - adrp x16, var_26 - ldrh w15, [x16, #:lo12:var_26] - cmp w11, w15 - cset x1, ne - movz w16, #53609, lsl #0 - eor w17, w1, w16 - adrp x16, var_48 - ldrh w4, [x16, #:lo12:var_48] - orr w2, wzr, w4, lsr #31 - sxtw x0, w4 - movz x11, #31139, lsl #0 - movk x11, #11586, lsl #16 - madd x1, x0, x11, xzr - orr x8, xzr, x1, asr #32 - add w29, w2, w8, asr #11 - movn w16, #23752, lsl #0 - orr w9, w29, w16 - cmp w17, w9 - cset x9, ge - eor w2, w9, #1 - adrp x16, var_284 - strh w2, [x16, #:lo12:var_284] - adrp x16, var_30 - ldrh w13, [x16, #:lo12:var_30] - adrp x16, var_5 - ldrh w0, [x16, #:lo12:var_5] - and w13, w13, w0 - orr w0, w13, #30 - eon w0, w0, w12 - movz w16, #65513, lsl #0 - and w4, w0, w16 - orn w8, wzr, w4 - orr w16, wzr, #2147483647 - add w0, w8, w16 - adrp x16, struct_obj_9 + 8 - ldrsh w29, [x16, #:lo12:struct_obj_9 + 8] - movz w16, #64443, lsl #0 - orr w5, w29, w16 - adrp x16, struct_obj_8 + 20 - ldrsh w6, [x16, #:lo12:struct_obj_8 + 20] - eor w8, w6, #-17 - adrp x16, struct_obj_2 + 4 - ldrh w14, [x16, #:lo12:struct_obj_2 + 4] - movz w16, #46991, lsl #0 - and w1, w14, w16 - orr w6, w8, w1 - sub w1, w6, #45056 - sub w1, w1, #1939 - asr w12, w5, w1 - sub w10, w12, #4091 - lsl w1, w0, w10 - adrp x16, struct_obj_8 + 18 - strh w1, [x16, #:lo12:struct_obj_8 + 18] -.L184: - movz w6, #0, lsl #0 - adrp x16, var_359 - strh w6, [x16, #:lo12:var_359] - adrp x16, var_43 - ldrh w0, [x16, #:lo12:var_43] - sbfiz w2, w0, 0, 16 - adrp x16, struct_obj_4 + 10 - ldrh w9, [x16, #:lo12:struct_obj_4 + 10] - orn w12, wzr, w9 - orr w16, wzr, #2147483647 - add w14, w12, w16 - adrp x16, struct_obj_2 - ldrsh w8, [x16, #:lo12:struct_obj_2] - movn w16, #15348, lsl #0 - and w8, w8, w16 - orr w16, wzr, #2147483647 - add w6, w8, w16 - movz w16, #33773, lsl #0 - movk w16, #32767, lsl #16 - sub w13, w6, w16 - asr w3, w14, w13 - orr w6, w2, w3 - adrp x16, var_7 - ldrsb w3, [x16, #:lo12:var_7] - adrp x16, struct_obj_4 + 22 - ldrh w4, [x16, #:lo12:struct_obj_4 + 22] - eor w13, w3, w4, lsl #5 - adrp x16, var_60 - ldrsh w14, [x16, #:lo12:var_60] - movz w16, #38, lsl #0 - and w15, w14, w16 - adrp x16, struct_obj_9 + 10 - ldrh w0, [x16, #:lo12:struct_obj_9 + 10] - adrp x16, var_50 - ldrh w12, [x16, #:lo12:var_50] - sub w4, w12, #45056 - sub w4, w4, #1901 - asr w0, w0, w4 - lsl w9, w15, w0 - lsl w10, w13, w9 - movz w14, #0, lsl #0 - orr w5, wzr, w14, lsl #11 - movn w16, #76, lsl #0 - orr w15, w5, w16 - bic w8, w10, w15 - and w6, w6, w8 - cbz w6, .L204 - adrp x16, struct_obj_9 + 2 - ldrsb w6, [x16, #:lo12:struct_obj_9 + 2] - movz w6, #18490, lsl #0 - movn w16, #34, lsl #0 - orr w17, w12, w16 - adrp x16, var_56 - ldrh w4, [x16, #:lo12:var_56] - eon w2, w17, w4 - sub w29, w2, #16384 - sub w29, w29, #3818 - lsl w11, w6, w29 - adrp x16, var_367 - strb w11, [x16, #:lo12:var_367] - adrp x16, var_46 - ldrh w0, [x16, #:lo12:var_46] - adrp x16, struct_obj_9 + 10 - ldrh w3, [x16, #:lo12:struct_obj_9 + 10] - adrp x16, var_35 - ldrh w8, [x16, #:lo12:var_35] - cbnz w8, .L205 - adrp x16, struct_obj_4 + 18 - ldrsh w6, [x16, #:lo12:struct_obj_4 + 18] - cmp w6, #0 - cset x8, ne - cbnz w8, .L205 - cbnz w3, .L206 - adrp x16, struct_obj_5 - ldrsb w6, [x16, #:lo12:struct_obj_5] - cmp w6, #0 - cset x17, ne - b .L207 -.L206: - orr w17, wzr, #1 - b .L207 -.L205: - orr w17, wzr, #1 -.L207: - adrp x16, struct_obj_8 + 26 - ldrsb w14, [x16, #:lo12:struct_obj_8 + 26] - adrp x16, struct_obj_1 + 6 - ldrsh w8, [x16, #:lo12:struct_obj_1 + 6] - eor w9, w14, w8 - movn w16, #14805, lsl #0 - eor w0, w0, w16 - eor w9, w9, w0 - cbz w9, .L208 - adrp x16, struct_obj_8 + 4 - ldrsb w15, [x16, #:lo12:struct_obj_8 + 4] - and w29, w8, w15 - adrp x16, struct_obj_5 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_5 + 6] - bic w8, w29, w0 - cmp w8, #0 - cset x8, ne - b .L209 -.L208: - movz w8, #0, lsl #0 -.L209: - movz w14, #17, lsl #0 - adrp x16, var_56 - ldrh w1, [x16, #:lo12:var_56] - sub w3, w1, #16384 - sub w3, w3, #3797 - lsl w6, w14, w3 - orn w1, wzr, w6 - cmp w1, w17 - cset x17, gt - cmp w17, w8 - b.le .L210 - movz w17, #0, lsl #0 - orn w14, wzr, w7 - ubfiz w4, w14, 0, 16 - sdiv w15, w17, w4 - msub w13, w15, w4, w17 - movz w16, #14314, lsl #0 - cmp w13, w16 - cset x2, le - b .L211 -.L210: - orr w2, wzr, #1 -.L211: - adrp x16, var_46 - strh w2, [x16, #:lo12:var_46] - adrp x16, var_20 - ldrh w8, [x16, #:lo12:var_20] - adrp x16, var_24 - ldrsh w9, [x16, #:lo12:var_24] - adrp x16, struct_obj_8 + 20 - ldrsh w12, [x16, #:lo12:struct_obj_8 + 20] - add w3, w9, w12 - add w6, w3, #16384 - add w6, w6, #3130 - ubfiz w11, w6, 0, 16 - adrp x16, struct_obj_3 + 2 - ldrh w6, [x16, #:lo12:struct_obj_3 + 2] - movz w16, #24836, lsl #0 - and w1, w6, w16 - movz w16, #14314, lsl #0 - eor w5, w1, w16 - orn w15, wzr, w5 - sdiv w2, w11, w15 - msub w13, w2, w15, w11 -.L204: - adrp x16, struct_obj_8 + 12 - ldrsb w2, [x16, #:lo12:struct_obj_8 + 12] - sub w13, wzr, w2 - cbz w13, .L212 - orn w13, wzr, w7 - sub w2, wzr, w13 - adrp x16, var_392 - strh w2, [x16, #:lo12:var_392] - adrp x16, var_14 - ldrsb w6, [x16, #:lo12:var_14] - adrp x16, struct_obj_9 + 10 - ldrh w14, [x16, #:lo12:struct_obj_9 + 10] - cbnz w14, .L213 - adrp x16, var_47 - ldrsb w1, [x16, #:lo12:var_47] -.L213: - adrp x16, var_65 - ldrsh w29, [x16, #:lo12:var_65] - adrp x16, var_35 - ldrh w17, [x16, #:lo12:var_35] - sub w11, w17, #12288 - sub w11, w11, #2120 - asr w10, w17, w11 - ubfiz w17, w10, 0, 16 - adrp x16, struct_obj_10 - ldrsb w1, [x16, #:lo12:struct_obj_10] - ubfiz w29, w1, 0, 16 - cbnz w29, .L212 - adrp x16, var_63 - ldrsh w4, [x16, #:lo12:var_63] - cbz w4, .L212 - cbz w6, .L212 - adrp x16, var_3 - ldrsb w6, [x16, #:lo12:var_3] - cmp w6, #0 - cset x12, ne -.L212: - orr w10, wzr, #1 - movz w6, #0, lsl #0 - adrp x16, struct_obj_1 + 4 - ldrh w5, [x16, #:lo12:struct_obj_1 + 4] - cmp w5, #0 - csel x0, x10, x6, ne - cbz w0, .L214 - adrp x16, var_26 - ldrh w5, [x16, #:lo12:var_26] - cbnz w5, .L215 - cmp w7, #0 - cset x17, eq - cbnz w17, .L214 -.L215: - movz w1, #0, lsl #0 - b .L216 -.L214: - adrp x16, struct_obj_4 + 14 - ldrsh w3, [x16, #:lo12:struct_obj_4 + 14] - cmp w3, #0 - cset x8, ne - eor w1, w8, #1 -.L216: - cbz w1, .L217 - adrp x16, var_6 - ldrh w0, [x16, #:lo12:var_6] - orn w0, wzr, w0 - movz w16, #45366, lsl #0 - and w4, w0, w16 - adrp x16, struct_obj_8 + 4 - ldrsb w14, [x16, #:lo12:struct_obj_8 + 4] - adrp x16, struct_obj_8 + 12 - ldrsb w3, [x16, #:lo12:struct_obj_8 + 12] - and w3, w14, w3 - adrp x16, var_55 - ldrsb w13, [x16, #:lo12:var_55] - orn w0, w3, w13 - and w0, w4, w0 - sbfiz w0, w0, 0, 8 - orn w0, wzr, w0 - cbz w0, .L218 - adrp x16, struct_obj_6 + 4 - ldrh w0, [x16, #:lo12:struct_obj_6 + 4] - adrp x16, var_63 - ldrsh w0, [x16, #:lo12:var_63] - ubfiz w6, w0, 0, 16 - adrp x16, struct_obj_4 + 18 - ldrsh w11, [x16, #:lo12:struct_obj_4 + 18] - movz w16, #888, lsl #0 - eor w7, w11, w16 - eon w0, w6, w7 - adrp x16, var_61 - ldrsb w0, [x16, #:lo12:var_61] - cbz w0, .L219 - adrp x16, struct_obj_9 + 8 - ldrsh w0, [x16, #:lo12:struct_obj_9 + 8] -.L219: - orr w13, wzr, #1 - adrp x16, var_26 - ldrh w8, [x16, #:lo12:var_26] - cbnz w8, .L220 - orr w12, wzr, #1 - b .L221 -.L220: - movz w12, #0, lsl #0 -.L221: - cmp w13, #0 - cset x7, lt - adrp x16, struct_obj_4 + 14 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 14] - sub w8, wzr, w0 - adrp x16, var_56 - ldrh w4, [x16, #:lo12:var_56] - sbfiz w5, w4, 0, 8 - cmp w8, w5 - cset x10, ne - cmp w12, w10 - cset x4, lt - asr w2, w7, w4 - adrp x16, var_52 - ldrsh w3, [x16, #:lo12:var_52] - movz w16, #6800, lsl #0 - eor w12, w3, w16 - orr w4, w12, #4 - movn w16, #20, lsl #0 - eor w10, w4, w16 - cmp w2, w10 - cset x0, eq - adrp x16, struct_obj_5 + 6 - strh w0, [x16, #:lo12:struct_obj_5 + 6] -.L218: - adrp x16, var_16 - ldrh w9, [x16, #:lo12:var_16] - adrp x16, var_60 - ldrsh w1, [x16, #:lo12:var_60] - eor w0, w9, w1 - movn w16, #8171, lsl #0 - eor w0, w0, w16 - sbfiz w11, w0, 0, 8 - adrp x16, var_63 - ldrsh w2, [x16, #:lo12:var_63] - eon w0, w11, w2 - cbz w0, .L222 - adrp x16, var_23 - ldrh w14, [x16, #:lo12:var_23] - adrp x16, var_30 - ldrh w2, [x16, #:lo12:var_30] - orn w29, wzr, w2 - cbz w29, .L222 -.L222: - movz w5, #29097, lsl #0 - movk w5, #32767, lsl #16 - adrp x16, struct_obj_1 + 6 - ldrsh w10, [x16, #:lo12:struct_obj_1 + 6] - adrp x16, var_2 - ldrh w11, [x16, #:lo12:var_2] - sub w1, w11, #16384 - sub w1, w1, #1397 - lsl w6, w10, w1 - sub w0, w6, #4096 - sub w0, w0, #1824 - lsl w15, w5, w0 - adrp x16, struct_obj_4 + 8 - ldrsh w3, [x16, #:lo12:struct_obj_4 + 8] - sbfiz w17, w3, 0, 8 - bic w5, w15, w17 - adrp x16, var_33 - ldrh w15, [x16, #:lo12:var_33] - orr w2, wzr, w15, lsl #11 - adrp x16, var_20 - ldrh w6, [x16, #:lo12:var_20] - sbfiz w6, w6, 0, 16 - add w17, w6, #12288 - add w17, w17, #3732 - asr w29, w2, w17 - movz w17, #65433, lsl #0 - movk w17, #32767, lsl #16 - adrp x16, struct_obj_4 + 20 - ldrsh w14, [x16, #:lo12:struct_obj_4 + 20] - movn w16, #7862, lsl #0 - eor w0, w14, w16 - sub w7, w0, #20480 - sub w7, w7, #1456 - asr w0, w17, w7 - eor w11, w29, w0 - eor w29, w5, w11 - adrp x16, struct_obj_4 + 16 - ldrsb w4, [x16, #:lo12:struct_obj_4 + 16] - orn w0, w29, w4 - cbz w0, .L223 - movz w0, #25335, lsl #0 - adrp x16, var_36 - strh w0, [x16, #:lo12:var_36] - adrp x16, struct_obj_2 + 4 - ldrh w0, [x16, #:lo12:struct_obj_2 + 4] - movz w16, #57552, lsl #0 - eor w2, w0, w16 - adrp x16, var_38 - ldrsb w7, [x16, #:lo12:var_38] - movz w16, #2460, lsl #0 - and w13, w7, w16 - asr w0, w2, w13 - adrp x16, var_37 - ldrsb w0, [x16, #:lo12:var_37] - orn w0, wzr, w0 -.L223: - adrp x16, struct_obj_8 - ldrh w13, [x16, #:lo12:struct_obj_8] - adrp x16, struct_obj_9 + 4 - ldrsh w7, [x16, #:lo12:struct_obj_9 + 4] - sub w2, w7, #28672 - sub w2, w2, #3284 - lsl w8, w13, w2 - adrp x16, struct_obj_8 + 8 - ldrsb w6, [x16, #:lo12:struct_obj_8 + 8] - bic w3, w8, w6 - adrp x16, var_56 - ldrh w17, [x16, #:lo12:var_56] - adrp x16, var_43 - ldrh w29, [x16, #:lo12:var_43] - adrp x16, var_13 - ldrsh w15, [x16, #:lo12:var_13] - add w8, w15, #20480 - add w8, w8, #3434 - asr w6, w29, w8 - adrp x16, struct_obj_4 + 14 - ldrsh w12, [x16, #:lo12:struct_obj_4 + 14] - adrp x16, var_6 - ldrh w2, [x16, #:lo12:var_6] - and w11, w12, w2 - sub w4, w11, #32768 - sub w4, w4, #2751 - asr w4, w6, w4 - orr w8, w17, w4 - eon w14, w3, w8 - cbz w14, .L224 - adrp x16, var_20 - ldrh w6, [x16, #:lo12:var_20] - adrp x16, var_18 - ldrsb w3, [x16, #:lo12:var_18] - and w0, w6, w3 - adrp x16, struct_obj_7 - ldrsb w12, [x16, #:lo12:struct_obj_7] - orn w13, w0, w12 - adrp x16, var_57 - ldrsb w29, [x16, #:lo12:var_57] - movn w16, #5371, lsl #0 - orr w10, w29, w16 - eon w29, w13, w10 - adrp x16, var_28 - ldrsh w2, [x16, #:lo12:var_28] - movn w11, #23905, lsl #0 - adrp x16, var_22 - ldrsb w9, [x16, #:lo12:var_22] - adrp x16, struct_obj_4 + 18 - ldrsh w13, [x16, #:lo12:struct_obj_4 + 18] - add w1, w9, w13 - sub w5, w11, w1 - sub w7, w2, w5 - adrp x16, var_2 - ldrh w8, [x16, #:lo12:var_2] - adrp x16, struct_obj_10 - ldrsb w12, [x16, #:lo12:struct_obj_10] - add w9, w8, w12 - adrp x16, struct_obj_10 + 4 - ldrsb w5, [x16, #:lo12:struct_obj_10 + 4] - add w14, w9, w5 - adrp x16, var_23 - ldrh w1, [x16, #:lo12:var_23] - sub w12, w1, #28672 - sub w12, w12, #777 - sub w6, wzr, w12 - add w8, w14, w6 - sub w8, w7, w8 - add w3, w8, #53248 - add w3, w3, #2668 - adrp x16, struct_obj_9 + 22 - ldrh w13, [x16, #:lo12:struct_obj_9 + 22] - adrp x16, struct_obj_9 + 10 - ldrh w9, [x16, #:lo12:struct_obj_9 + 10] - cbnz w15, .L225 - adrp x16, var_48 - ldrh w10, [x16, #:lo12:var_48] - cmp w10, #0 - cset x6, eq - b .L226 -.L225: - orr w6, wzr, #1 -.L226: - orr w8, wzr, #1 - movz w29, #0, lsl #0 - cmp w6, #0 - csel x13, x8, x29, ne -.L224: - adrp x16, var_60 - ldrsh w4, [x16, #:lo12:var_60] - movz w29, #59623, lsl #0 - adrp x16, struct_obj_2 + 6 - ldrsh w13, [x16, #:lo12:struct_obj_2 + 6] - adrp x16, var_16 - ldrh w15, [x16, #:lo12:var_16] - madd w10, w13, w15, wzr - sbfiz w9, w10, 0, 8 - adrp x16, var_34 - ldrsb w15, [x16, #:lo12:var_34] - adrp x16, var_24 - ldrsh w14, [x16, #:lo12:var_24] - sbfiz w10, w14, 0, 16 - cmp w15, w10 - cset x15, lt - adrp x16, var_14 - ldrsb w11, [x16, #:lo12:var_14] - adrp x16, var_33 - ldrh w7, [x16, #:lo12:var_33] - adrp x16, struct_obj_3 - ldrsh w2, [x16, #:lo12:struct_obj_3] - orn w0, wzr, w2 - adrp x16, struct_obj_6 + 4 - ldrh w3, [x16, #:lo12:struct_obj_6 + 4] - add w8, w3, w4 - madd w2, w0, w8, wzr - cbz w2, .L227 - movz w2, #0, lsl #0 - movz w3, #0, lsl #0 - adrp x16, struct_obj_6 - ldrsh w8, [x16, #:lo12:struct_obj_6] - cmp w8, #0 - csel x0, x2, x3, ne - sbfiz w13, w7, 0, 8 - cmp w0, w13 - cset x1, le - cbnz w1, .L228 -.L227: - madd w5, w9, w29, wzr - bic w12, w11, w11 - and w12, w15, w12 - madd w3, w5, w12, wzr - adrp x16, struct_obj_5 + 2 - ldrsh w5, [x16, #:lo12:struct_obj_5 + 2] - movz w16, #11652, lsl #0 - and w10, w5, w16 - bic w15, w3, w10 - sbfiz w7, w4, 0, 8 - ubfiz w11, w7, 0, 16 - orn w7, w15, w11 - cmp w7, #0 - cset x15, ne - cbnz w15, .L228 - orr w13, wzr, #1 - orr w15, wzr, #1 - adrp x16, struct_obj_4 + 22 - ldrh w29, [x16, #:lo12:struct_obj_4 + 22] - movn w16, #26751, lsl #0 - tst w29, w16 - csel x0, x13, x15, ne - adrp x16, var_32 - ldrh w15, [x16, #:lo12:var_32] - orr w6, wzr, #-65 - sdiv w1, w15, w6 - movz w16, #45959, lsl #0 - cmp w1, w16 - cset x3, ge - sub w0, w0, w3 - cbz w0, .L229 - adrp x16, struct_obj_3 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_3 + 6] -.L229: - adrp x16, struct_obj_3 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_3 + 6] - b .L168 -.L228: - adrp x16, var_18 - ldrsb w0, [x16, #:lo12:var_18] - cbz w0, .L230 - cmp w17, #0 - cset x0, ne - cbnz w0, .L168 -.L230: - adrp x16, struct_obj_5 + 6 - ldrsh w0, [x16, #:lo12:struct_obj_5 + 6] - b .L168 -.L217: - adrp x16, struct_obj_4 + 26 - ldrsh w0, [x16, #:lo12:struct_obj_4 + 26] - adrp x16, var_35 - ldrh w1, [x16, #:lo12:var_35] - sbfiz w14, w1, 0, 16 - adrp x16, struct_obj_4 - ldrsh w2, [x16, #:lo12:struct_obj_4] - orn w17, w14, w2 - cmp w0, w17 - cset x8, gt - adrp x16, struct_obj_4 + 8 - ldrsh w1, [x16, #:lo12:struct_obj_4 + 8] - movz w16, #39209, lsl #0 - eor w0, w1, w16 - cmp w8, w0 - cset x0, gt - adrp x16, var_14 - ldrsb w14, [x16, #:lo12:var_14] - adrp x16, struct_obj_3 + 4 - ldrh w29, [x16, #:lo12:struct_obj_3 + 4] - cmp w14, w29 - cset x14, eq - adrp x16, struct_obj_4 + 18 - ldrsh w9, [x16, #:lo12:struct_obj_4 + 18] - movz w16, #56773, lsl #0 - cmp w9, w16 - cset x17, ge - madd w14, w14, w17, wzr - sbfiz w4, w14, 0, 16 - adrp x16, var_13 - ldrsh w14, [x16, #:lo12:var_13] - orr w16, wzr, #2147483647 - add w11, w14, w16 - orr w14, wzr, w11, asr #29 - adrp x16, struct_obj_2 + 2 - ldrh w29, [x16, #:lo12:struct_obj_2 + 2] - sub w5, w29, #24576 - sub w5, w5, #1173 - lsl w9, w14, w5 - cmp w4, w9 - cset x8, le - cmp w0, w8 - cset x14, ne - cbz w14, .L168 - adrp x16, var_10 - ldrh w0, [x16, #:lo12:var_10] - sbfiz w0, w0, 0, 8 - orr w5, wzr, #1 - movz w12, #0, lsl #0 - adrp x16, var_23 - ldrh w17, [x16, #:lo12:var_23] - sub w2, wzr, w5 - movz w1, #44106, lsl #0 - movk w1, #32767, lsl #16 - asr w1, w1, w12 - cmp w2, w1 - cset x8, lt - cmp w17, w8 - cset x0, lt - adrp x16, var_53 - strh w0, [x16, #:lo12:var_53] - adrp x16, struct_obj_2 + 2 - ldrh w0, [x16, #:lo12:struct_obj_2 + 2] - orn w0, wzr, w0 - orn w0, wzr, w0 - movz w16, #41, lsl #0 - orr w0, w0, w16 - sbfiz w3, w0, 0, 8 - adrp x16, struct_obj_4 + 18 - ldrsh w11, [x16, #:lo12:struct_obj_4 + 18] - cmp w11, #0 - cset x0, eq - movz w1, #65006, lsl #0 - adrp x16, struct_obj_8 + 22 - ldrh w2, [x16, #:lo12:struct_obj_8 + 22] - madd w11, w2, w1, wzr - adrp x16, struct_obj_8 + 6 - ldrsh w15, [x16, #:lo12:struct_obj_8 + 6] - sub w1, wzr, w15 - sdiv w6, w11, w1 - ubfiz w4, w6, 0, 16 - madd w15, w0, w4, wzr - adrp x16, struct_obj_8 + 26 - ldrsb w11, [x16, #:lo12:struct_obj_8 + 26] - adrp x16, struct_obj_5 - ldrsb w6, [x16, #:lo12:struct_obj_5] - eor w9, w11, w6 - adrp x16, var_37 - ldrsb w29, [x16, #:lo12:var_37] - movz w16, #2436, lsl #0 - orr w14, w29, w16 - eor w6, w9, w14 - eon w14, w6, w3 - cmp w15, w14 - cset x0, lt - adrp x16, var_468 - strb w0, [x16, #:lo12:var_468] -.L168: - adrp x16, var_10 - ldrh w4, [x16, #:lo12:var_10] - adrp x16, struct_obj_2 + 2 - ldrh w9, [x16, #:lo12:struct_obj_2 + 2] - sub w10, w9, #24576 - sub w10, w10, #1167 - asr w4, w4, w10 - adrp x16, var_49 - ldrsb w6, [x16, #:lo12:var_49] - orn w10, wzr, w6 - add w7, w10, #31 - lsl w1, w4, w7 - orn w13, wzr, w1 - adrp x16, var_36 - ldrsh w14, [x16, #:lo12:var_36] - adrp x16, var_18 - ldrsb w9, [x16, #:lo12:var_18] - adrp x16, struct_obj_2 - ldrsh w3, [x16, #:lo12:struct_obj_2] - bic w1, w9, w3 - and w9, w14, w1 - eon w4, w13, w9 - sbfiz w14, w4, 0, 16 - adrp x16, var_9 - ldrh w4, [x16, #:lo12:var_9] - sbfiz w5, w4, 0, 8 - adrp x16, struct_obj_8 + 16 - ldrsb w2, [x16, #:lo12:struct_obj_8 + 16] - movn w16, #2066, lsl #0 - eor w13, w2, w16 - eon w6, w13, w6 - movz w7, #36764, lsl #0 - movk w7, #32767, lsl #16 - adrp x16, var_45 - ldrsb w8, [x16, #:lo12:var_45] - adrp x16, var_27 - ldrsh w9, [x16, #:lo12:var_27] - orr w8, w8, w9 - add w1, w8, #3 - lsl w15, w7, w1 - orr w0, w6, w15 - adrp x16, var_65 - ldrsh w15, [x16, #:lo12:var_65] - add w29, w15, #12288 - add w29, w29, #558 - lsl w6, w0, w29 - cmp w5, w6 - cset x15, ne - adrp x16, var_26 - ldrh w10, [x16, #:lo12:var_26] - movz w11, #5330, lsl #0 - adrp x16, struct_obj_1 + 4 - ldrh w29, [x16, #:lo12:struct_obj_1 + 4] - madd w0, w29, w11, wzr - movz w1, #101, lsl #0 - madd w17, w29, w1, wzr - sdiv w13, w0, w17 - orn w9, wzr, w13 - adrp x16, struct_obj_8 + 14 - ldrh w7, [x16, #:lo12:struct_obj_8 + 14] - madd w7, w9, w7, wzr - adrp x16, struct_obj_2 + 6 - ldrsh w29, [x16, #:lo12:struct_obj_2 + 6] - adrp x16, var_48 - ldrh w2, [x16, #:lo12:var_48] - madd w5, w29, w2, wzr - adrp x16, struct_obj_3 + 4 - ldrh w17, [x16, #:lo12:struct_obj_3 + 4] - sub w6, w5, w17 - add w9, w6, #4096 - add w9, w9, #3658 - orr w2, w7, w9 - ubfiz w1, w2, 0, 16 - adrp x16, var_47 - ldrsb w11, [x16, #:lo12:var_47] - orn w5, w10, w11 - movz w29, #33232, lsl #0 - adrp x16, var_43 - ldrh w12, [x16, #:lo12:var_43] - madd w13, w12, w29, wzr - sub w29, wzr, w13 - orn w13, wzr, w29 - movz w16, #2753, lsl #0 - and w6, w13, w16 - sdiv w7, w5, w6 - msub w11, w7, w6, w5 - ubfiz w0, w11, 0, 16 - adrp x16, struct_obj_10 + 4 - ldrsb w9, [x16, #:lo12:struct_obj_10 + 4] - adrp x16, struct_obj_1 + 2 - ldrh w7, [x16, #:lo12:struct_obj_1 + 2] - sdiv w29, w9, w7 - adrp x16, var_29 - ldrh w7, [x16, #:lo12:var_29] - sdiv w11, w29, w7 - msub w13, w11, w7, w29 - sbfiz w11, w13, 0, 8 - cmp w11, #1 - b.le .L231 - movn w29, #123, lsl #0 - adrp x16, var_33 - ldrh w11, [x16, #:lo12:var_33] - orn w8, wzr, w11 - sub w11, w29, w8 - orn w13, wzr, w11 - adrp x16, var_16 - ldrh w5, [x16, #:lo12:var_16] - adrp x16, struct_obj_6 + 2 - ldrh w12, [x16, #:lo12:struct_obj_6 + 2] - cmp w5, w12 - cset x5, ge - adrp x16, var_3 - ldrsb w2, [x16, #:lo12:var_3] - adrp x16, struct_obj_8 + 8 - ldrsb w8, [x16, #:lo12:struct_obj_8 + 8] - orr w29, w2, w8 - cmp w5, w29 - cset x2, ne - movn w16, #7351, lsl #0 - and w11, w2, w16 - cmp w13, w11 - cset x6, eq - sub w2, wzr, w6 - cbnz w2, .L232 - adrp x16, struct_obj_6 + 6 - ldrsh w7, [x16, #:lo12:struct_obj_6 + 6] - cbz w7, .L233 - adrp x16, struct_obj_7 - ldrsb w7, [x16, #:lo12:struct_obj_7] - cmp w7, #0 - cset x11, ne -.L233: - movn w8, #10, lsl #0 - adrp x16, var_522 - strb w8, [x16, #:lo12:var_522] - adrp x16, var_1 - ldrh w3, [x16, #:lo12:var_1] - adrp x16, var_30 - ldrh w13, [x16, #:lo12:var_30] - adrp x16, struct_obj_4 + 24 - ldrh w19, [x16, #:lo12:struct_obj_4 + 24] - adrp x16, struct_obj_5 - ldrsb w7, [x16, #:lo12:struct_obj_5] - cbz w17, .L234 - adrp x16, var_17 - ldrsh w2, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w11, [x16, #:lo12:var_9] - sub w11, w11, #12288 - sub w11, w11, #1187 - lsl w4, w2, w11 - cmp w4, #0 - cset x20, ne - b .L235 -.L234: - movz w20, #0, lsl #0 -.L235: - adrp x16, struct_obj_3 + 4 - ldrh w9, [x16, #:lo12:struct_obj_3 + 4] - cbz w9, .L236 - adrp x16, var_17 - ldrsh w29, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w17, [x16, #:lo12:var_9] - sub w17, w17, #12288 - sub w17, w17, #1187 - lsl w12, w29, w17 - cmp w12, #0 - cset x29, ne - b .L237 -.L236: - movz w29, #0, lsl #0 -.L237: - adrp x16, struct_obj_4 + 4 - ldrsh w2, [x16, #:lo12:struct_obj_4 + 4] - movz w16, #24281, lsl #0 - and w17, w2, w16 - movn w16, #76, lsl #0 - eor w11, w9, w16 - orr w8, wzr, w13, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w6, w8, w16 - and w11, w11, w6 - adrp x16, struct_obj_2 - ldrsh w2, [x16, #:lo12:struct_obj_2] - sub w2, wzr, w2 - sub w12, wzr, w2 - sub w4, wzr, w3 - madd w2, w12, w4, wzr - cmp w29, #4 - cset x6, ne - cmp w2, w6 - cset x3, gt - cmp w11, w3 - cset x8, ge - asr w3, w17, w8 - sub w8, w13, #40960 - sub w8, w8, #1739 - asr w5, w3, w8 - cmp w5, #0 - cset x5, ne - adrp x16, var_36 - ldrsh w12, [x16, #:lo12:var_36] - tst w12, #126 - cset x13, eq - cmp w20, #4 - cset x6, ne - cmp w2, w6 - cset x2, gt - cmp w11, w2 - cset x29, ge - movn w16, #1113, lsl #0 - eor w2, w19, w16 - ubfiz w6, w2, 0, 16 - movn w16, #28029, lsl #0 - cmp w6, w16 - cset x17, ge - cmp w29, w17 - cset x29, gt - sub w29, w29, w5 - and w11, w13, w29 - cbnz w11, .L238 - adrp x16, struct_obj_4 + 20 - ldrsh w17, [x16, #:lo12:struct_obj_4 + 20] -.L238: - movn w9, #0, lsl #0 - movz w2, #10162, lsl #0 - adrp x16, struct_obj_1 + 2 - ldrh w17, [x16, #:lo12:struct_obj_1 + 2] - madd w29, w17, w2, wzr - ubfiz w6, w29, 0, 16 - sub w12, wzr, w6 - madd w2, w12, w9, wzr - cbnz w2, .L239 - cmp w7, #0 - cset x12, ne - b .L240 -.L239: - orr w12, wzr, #1 -.L240: - adrp x16, var_36 - strh w12, [x16, #:lo12:var_36] - b .L241 -.L232: - cbz w17, .L242 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - sub w29, w4, #12288 - sub w29, w29, #1187 - lsl w4, w7, w29 - cmp w4, #0 - cset x13, ne - b .L243 -.L242: - movz w13, #0, lsl #0 -.L243: - movn w16, #76, lsl #0 - eor w7, w17, w16 - adrp x16, var_30 - ldrh w5, [x16, #:lo12:var_30] - orr w29, wzr, w5, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w2, w29, w16 - and w12, w7, w2 - sub w11, wzr, w3 - sub w5, wzr, w11 - adrp x16, var_1 - ldrh w11, [x16, #:lo12:var_1] - sub w3, wzr, w11 - madd w6, w5, w3, wzr - cmp w13, #4 - cset x5, ne - cmp w6, w5 - cset x3, gt - adrp x16, struct_obj_4 + 22 - ldrh w9, [x16, #:lo12:struct_obj_4 + 22] - adrp x16, var_20 - ldrh w11, [x16, #:lo12:var_20] - bic w4, w11, w17 - adrp x16, struct_obj_4 + 16 - ldrsb w2, [x16, #:lo12:struct_obj_4 + 16] - adrp x16, struct_obj_8 + 30 - ldrsb w17, [x16, #:lo12:struct_obj_8 + 30] - and w13, w2, w17 - eon w17, w4, w13 - adrp x16, var_514 - strh w17, [x16, #:lo12:var_514] -.L241: - adrp x16, struct_obj_3 + 4 - ldrh w4, [x16, #:lo12:struct_obj_3 + 4] - cbz w4, .L244 - adrp x16, var_17 - ldrsh w17, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w12, w12, #12288 - sub w12, w12, #1187 - lsl w13, w17, w12 - cmp w13, #0 - cset x7, ne - b .L245 -.L244: - movz w7, #0, lsl #0 -.L245: - movn w16, #76, lsl #0 - eor w8, w4, w16 - adrp x16, var_30 - ldrh w17, [x16, #:lo12:var_30] - orr w9, wzr, w17, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w11, w9, w16 - and w11, w8, w11 - adrp x16, struct_obj_2 - ldrsh w17, [x16, #:lo12:struct_obj_2] - sub w6, wzr, w17 - sub w2, wzr, w6 - adrp x16, var_1 - ldrh w6, [x16, #:lo12:var_1] - sub w6, wzr, w6 - madd w19, w2, w6, wzr - cmp w7, #4 - cset x12, ne - cmp w19, w12 - cset x2, gt - cbz w4, .L246 - adrp x16, var_17 - ldrsh w5, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w17, w12, #12288 - sub w17, w17, #1187 - lsl w5, w5, w17 - cmp w5, #0 - cset x2, ne - b .L247 -.L246: - movz w2, #0, lsl #0 -.L247: - orr w3, wzr, #1 - movz w29, #0, lsl #0 - sub w6, wzr, w4 - movz w16, #4355, lsl #0 - cmp w6, w16 - cset x12, gt - sub w6, w12, #1 - cmp w2, #4 - cset x17, ne - cmp w19, w17 - cset x5, gt - cmp w11, w5 - cset x12, ge - movz w16, #7584, lsl #0 - cmp w12, w16 - cset x2, le - cmp w6, w2 - csel x17, x3, x29, le - add w12, w4, #45056 - add w12, w12, #778 - cmp w12, #0 - cset x6, ne - sdiv w2, w17, w6 - msub w3, w2, w6, w17 - sbfiz w13, w3, 0, 8 - cbz w4, .L248 - adrp x16, var_17 - ldrsh w2, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w8, [x16, #:lo12:var_9] - sub w9, w8, #12288 - sub w9, w9, #1187 - lsl w5, w2, w9 - cmp w5, #0 - cset x7, ne - b .L249 -.L248: - movz w7, #0, lsl #0 -.L249: - cmp w7, #4 - cset x9, ne - cmp w19, w9 - cset x8, gt - cmp w11, w8 - cset x2, ge - orn w3, wzr, w2 - cmp w3, #0 - cset x5, eq - adrp x16, var_64 - strb w5, [x16, #:lo12:var_64] - orr w12, wzr, #1 - orr w29, wzr, #1 - adrp x16, struct_obj_4 + 12 - ldrsb w11, [x16, #:lo12:struct_obj_4 + 12] - cmp w11, #0 - csel x17, x12, x29, ne - orr w7, wzr, #1 - orr w6, wzr, #1 - adrp x16, var_43 - ldrh w3, [x16, #:lo12:var_43] - cmp w3, #0 - csel x7, x7, x6, ne - sdiv w8, w17, w7 - msub w17, w8, w7, w17 - adrp x16, var_52 - ldrsh w2, [x16, #:lo12:var_52] - orr w12, w17, w2 - orn w5, wzr, w12 - adrp x16, var_61 - ldrsb w8, [x16, #:lo12:var_61] - adrp x16, var_5 - ldrh w11, [x16, #:lo12:var_5] - orr w2, w8, w11 - adrp x16, struct_obj_8 + 22 - ldrh w3, [x16, #:lo12:struct_obj_8 + 22] - orn w17, w2, w3 - adrp x16, struct_obj_6 + 6 - ldrsh w12, [x16, #:lo12:struct_obj_6 + 6] - adrp x16, struct_obj_1 + 4 - ldrh w2, [x16, #:lo12:struct_obj_1 + 4] - adrp x16, struct_obj_6 + 2 - ldrh w29, [x16, #:lo12:struct_obj_6 + 2] - and w11, w2, w29 - eor w2, w12, w11 - orr w2, w17, w2 - sbfiz w3, w2, 0, 8 - cmp w5, w3 - b.gt .L250 - adrp x16, struct_obj_3 + 4 - ldrh w8, [x16, #:lo12:struct_obj_3 + 4] - cbnz w8, .L251 - adrp x16, var_17 - ldrsh w17, [x16, #:lo12:var_17] - sbfiz w12, w17, 0, 8 - cbnz w12, .L251 - adrp x16, var_38 - ldrsb w4, [x16, #:lo12:var_38] - cbz w4, .L252 - adrp x16, var_36 - ldrsh w2, [x16, #:lo12:var_36] - cmp w2, #0 - cset x17, ne - cbnz w17, .L251 -.L252: - adrp x16, var_3 - ldrsb w2, [x16, #:lo12:var_3] -.L251: - movn w16, #76, lsl #0 - eor w17, w8, w16 - adrp x16, var_30 - ldrh w2, [x16, #:lo12:var_30] - orr w4, wzr, w2, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w12, w4, w16 - and w12, w17, w12 - adrp x16, struct_obj_2 - ldrsh w17, [x16, #:lo12:struct_obj_2] - sub w11, wzr, w17 - sub w3, wzr, w11 - adrp x16, var_1 - ldrh w5, [x16, #:lo12:var_1] - cbz w8, .L253 - adrp x16, var_17 - ldrsh w29, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w17, [x16, #:lo12:var_9] - sub w2, w17, #12288 - sub w2, w2, #1187 - lsl w17, w29, w2 - cmp w17, #0 - cset x11, ne - b .L254 -.L253: - movz w11, #0, lsl #0 -.L254: - sub w6, wzr, w5 - madd w17, w3, w6, wzr - cmp w11, #4 - cset x29, ne - cmp w17, w29 - cset x7, gt -.L250: - adrp x16, struct_obj_3 + 4 - ldrh w29, [x16, #:lo12:struct_obj_3 + 4] - cbz w29, .L255 - adrp x16, var_17 - ldrsh w5, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w9, [x16, #:lo12:var_9] - sub w17, w9, #12288 - sub w17, w17, #1187 - lsl w3, w5, w17 - cmp w3, #0 - cset x3, ne - b .L256 -.L255: - movz w3, #0, lsl #0 -.L256: - movn w16, #76, lsl #0 - eor w6, w29, w16 - adrp x16, var_30 - ldrh w17, [x16, #:lo12:var_30] - orr w2, wzr, w17, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w12, w2, w16 - and w4, w6, w12 - adrp x16, struct_obj_2 - ldrsh w17, [x16, #:lo12:struct_obj_2] - sub w2, wzr, w17 - sub w7, wzr, w2 - adrp x16, var_1 - ldrh w17, [x16, #:lo12:var_1] - sub w17, wzr, w17 - madd w5, w7, w17, wzr - cmp w3, #4 - cset x3, ne - cmp w5, w3 - cset x7, gt - cbz w29, .L257 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w17, [x16, #:lo12:var_9] - sub w8, w17, #12288 - sub w8, w8, #1187 - lsl w17, w7, w8 - cmp w17, #0 - cset x11, ne - b .L258 -.L257: - movz w11, #0, lsl #0 -.L258: - adrp x16, var_59 - ldrh w17, [x16, #:lo12:var_59] - madd w2, w0, w17, wzr - sbfiz w17, w2, 0, 16 - adrp x16, var_63 - ldrsh w2, [x16, #:lo12:var_63] - madd w13, w2, w13, wzr - madd w9, w17, w13, wzr - sub w8, wzr, w9 - movz w3, #11697, lsl #0 - sub w17, wzr, w29 - movz w16, #4355, lsl #0 - cmp w17, w16 - cset x7, gt - sub w9, w7, #1 - cmp w11, #4 - cset x2, ne - cmp w5, w2 - cset x17, gt - cmp w4, w17 - cset x7, ge - movz w16, #7584, lsl #0 - cmp w7, w16 - cset x7, le - cmp w9, w7 - cset x13, le - madd w17, w13, w3, wzr - add w8, w8, w17 - add w8, w8, #1110016 - add w8, w8, #1199 - cbnz w8, .L259 - cbz w29, .L260 - adrp x16, var_17 - ldrsh w17, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w2, [x16, #:lo12:var_9] - sub w7, w2, #12288 - sub w7, w7, #1187 - lsl w11, w17, w7 - cmp w11, #0 - cset x2, ne - b .L261 -.L260: - movz w2, #0, lsl #0 -.L261: - cmp w2, #4 - cset x8, ne - cmp w5, w8 - cset x13, gt - cbz w29, .L262 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w2, [x16, #:lo12:var_9] - sub w8, w2, #12288 - sub w8, w8, #1187 - lsl w17, w7, w8 - cmp w17, #0 - cset x8, ne - b .L263 -.L262: - movz w8, #0, lsl #0 -.L263: - movz w13, #65414, lsl #0 - movk w13, #32767, lsl #16 - and w11, w6, w12 - cmp w8, #4 - cset x12, ne - cmp w5, w12 - cset x7, gt - cmp w11, w7 - cset x2, ge - movz w16, #7584, lsl #0 - cmp w2, w16 - cset x17, le - cmp w9, w17 - cset x2, le - asr w6, w13, w2 - movz w11, #64835, lsl #0 - adrp x16, var_25 - ldrsb w12, [x16, #:lo12:var_25] - orn w5, wzr, w12 - add w6, w5, #149 - asr w29, w11, w6 - adrp x16, struct_obj_7 + 4 - ldrsb w11, [x16, #:lo12:struct_obj_7 + 4] - adrp x16, struct_obj_4 + 4 - ldrsh w2, [x16, #:lo12:struct_obj_4 + 4] - orr w9, w11, w2 - add w2, w9, #128 - asr w9, w29, w2 - sub w4, wzr, w9 - adrp x16, struct_obj_4 + 18 - ldrsh w3, [x16, #:lo12:struct_obj_4 + 18] - orn w9, wzr, w3 - movz w16, #17255, lsl #0 - orr w11, w9, w16 - adrp x16, struct_obj_8 + 4 - ldrsb w7, [x16, #:lo12:struct_obj_8 + 4] - and w17, w11, w7 - adrp x16, var_2 - ldrh w29, [x16, #:lo12:var_2] - sbfiz w11, w29, 0, 8 - sub w13, wzr, w11 - orn w11, wzr, w13 - cmp w17, w11 - cset x29, ne - sdiv w17, w4, w29 - adrp x16, var_543 - strb w17, [x16, #:lo12:var_543] - adrp x16, var_42 - ldrsb w17, [x16, #:lo12:var_42] - madd w13, w17, w3, wzr - movz w8, #63174, lsl #0 - movk w8, #19, lsl #16 - adrp x16, var_53 - ldrsh w3, [x16, #:lo12:var_53] - sub w9, w8, w3 - sub w11, w9, #6 - sbfiz w2, w11, 0, 16 - add w8, w13, w2 - sub w9, w8, #117 - movz w5, #19559, lsl #0 - adrp x16, var_13 - ldrsh w13, [x16, #:lo12:var_13] - madd w2, w13, w5, wzr - adrp x16, var_46 - ldrh w5, [x16, #:lo12:var_46] - madd w17, w14, w5, wzr - madd w2, w2, w17, wzr - sub w5, wzr, w2 - movz w14, #65517, lsl #0 - movz w6, #20823, lsl #0 - adrp x16, var_4 - ldrh w3, [x16, #:lo12:var_4] - madd w13, w3, w6, wzr - sdiv w6, w14, w13 - movz w29, #45116, lsl #0 - movk w29, #14440, lsl #16 - adrp x16, var_24 - ldrsh w4, [x16, #:lo12:var_24] - sbfiz w11, w4, 0, 8 - sdiv w2, w29, w11 - madd w6, w6, w2, wzr - madd w2, w5, w6, wzr - cmp w9, w2 - cset x7, gt - adrp x16, var_544 - strh w7, [x16, #:lo12:var_544] - adrp x16, var_547 - strb w12, [x16, #:lo12:var_547] - adrp x16, struct_obj_3 + 4 - ldrh w3, [x16, #:lo12:struct_obj_3 + 4] - cbz w3, .L264 - adrp x16, var_17 - ldrsh w6, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w13, [x16, #:lo12:var_9] - sub w4, w13, #12288 - sub w4, w4, #1187 - lsl w6, w6, w4 - cmp w6, #0 - cset x14, ne - b .L265 -.L264: - movz w14, #0, lsl #0 -.L265: - movn w16, #76, lsl #0 - eor w17, w3, w16 - adrp x16, var_30 - ldrh w6, [x16, #:lo12:var_30] - orr w12, wzr, w6, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w4, w12, w16 - and w13, w17, w4 - adrp x16, struct_obj_2 - ldrsh w2, [x16, #:lo12:struct_obj_2] - sub w11, wzr, w2 - sub w17, wzr, w11 - adrp x16, var_1 - ldrh w29, [x16, #:lo12:var_1] - sub w4, wzr, w29 - madd w17, w17, w4, wzr - cmp w14, #4 - cset x12, ne - cmp w17, w12 - cset x11, gt - cbz w3, .L266 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w2, w12, #12288 - sub w2, w2, #1187 - lsl w2, w9, w2 - cmp w2, #0 - cset x14, ne - b .L267 -.L266: - movz w14, #0, lsl #0 -.L267: - adrp x16, var_41 - ldrh w6, [x16, #:lo12:var_41] - adrp x16, var_16 - ldrh w2, [x16, #:lo12:var_16] - adrp x16, struct_obj_7 - ldrsb w29, [x16, #:lo12:struct_obj_7] - add w4, w29, #102 - asr w4, w2, w4 - adrp x16, struct_obj_4 + 24 - ldrh w8, [x16, #:lo12:struct_obj_4 + 24] - orn w9, w4, w8 - orr w16, wzr, #2147483647 - add w12, w9, w16 - adrp x16, struct_obj_8 + 8 - ldrsb w9, [x16, #:lo12:struct_obj_8 + 8] - sub w11, wzr, w3 - movz w16, #4355, lsl #0 - cmp w11, w16 - cset x29, gt - sub w29, w29, #1 - cmp w14, #4 - cset x11, ne - cmp w17, w11 - cset x17, gt - cmp w13, w17 - cset x14, ge - movz w16, #7584, lsl #0 - cmp w14, w16 - cset x2, le - cmp w29, w2 - cset x8, le - eor w3, w9, w8 - add w9, w3, #75 - lsl w8, w12, w9 - movz w16, #9477, lsl #0 - movk w16, #32767, lsl #16 - sub w5, w8, w16 - lsl w29, w6, w5 - orn w11, wzr, w29 - adrp x16, var_59 - strh w11, [x16, #:lo12:var_59] - b .L268 -.L259: - movz w17, #23716, lsl #0 - adrp x16, var_38 - ldrsb w3, [x16, #:lo12:var_38] - sub w8, w3, #38 - lsl w12, w17, w8 - adrp x16, struct_obj_9 + 8 - ldrsh w4, [x16, #:lo12:struct_obj_9 + 8] - asr w2, w4, w15 - orr w2, wzr, w2, lsl #16 - adrp x16, struct_obj_2 + 2 - ldrh w12, [x16, #:lo12:struct_obj_2 + 2] - adrp x16, var_27 - ldrsh w9, [x16, #:lo12:var_27] - cbnz w9, .L269 - adrp x16, var_24 - ldrsh w7, [x16, #:lo12:var_24] - cmp w7, #0 - cset x4, ne - b .L270 -.L269: - orr w4, wzr, #1 -.L270: - cbz w4, .L271 - adrp x16, var_17 - ldrsh w4, [x16, #:lo12:var_17] -.L271: - adrp x16, var_10 - ldrh w13, [x16, #:lo12:var_10] - adrp x16, var_62 - strh w13, [x16, #:lo12:var_62] - adrp x16, var_26 - ldrh w17, [x16, #:lo12:var_26] -.L268: - adrp x16, var_54 - ldrsh w14, [x16, #:lo12:var_54] - cbz w14, .L272 - adrp x16, var_11 - ldrsh w29, [x16, #:lo12:var_11] - cmp w29, #0 - cset x13, ne - cbz w13, .L272 - adrp x16, var_18 - ldrsb w8, [x16, #:lo12:var_18] - cbnz w8, .L273 - adrp x16, var_7 - ldrsb w2, [x16, #:lo12:var_7] - cmp w2, #0 - cset x4, ne - cbz w4, .L272 -.L273: - adrp x16, var_16 - ldrh w17, [x16, #:lo12:var_16] -.L272: - adrp x16, struct_obj_3 + 4 - ldrh w11, [x16, #:lo12:struct_obj_3 + 4] - cbz w11, .L274 - adrp x16, var_17 - ldrsh w17, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w12, w12, #12288 - sub w12, w12, #1187 - lsl w29, w17, w12 - cmp w29, #0 - cset x8, ne - b .L275 -.L274: - movz w8, #0, lsl #0 -.L275: - movn w16, #76, lsl #0 - eor w2, w11, w16 - adrp x16, var_30 - ldrh w12, [x16, #:lo12:var_30] - orr w12, wzr, w12, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w9, w12, w16 - and w13, w2, w9 - adrp x16, struct_obj_2 - ldrsh w6, [x16, #:lo12:struct_obj_2] - sub w29, wzr, w6 - sub w17, wzr, w29 - adrp x16, var_1 - ldrh w12, [x16, #:lo12:var_1] - sub w29, wzr, w12 - madd w3, w17, w29, wzr - cmp w8, #4 - cset x2, ne - cmp w3, w2 - cset x9, gt - cbz w11, .L276 - adrp x16, var_17 - ldrsh w2, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w14, [x16, #:lo12:var_9] - sub w17, w14, #12288 - sub w17, w17, #1187 - lsl w2, w2, w17 - cmp w2, #0 - cset x9, ne - b .L277 -.L276: - movz w9, #0, lsl #0 -.L277: - cmp w9, #4 - cset x7, ne - cmp w3, w7 - cset x2, gt - cmp w13, w2 - cset x3, ge - orn w14, wzr, w3 - adrp x16, var_549 - strb w14, [x16, #:lo12:var_549] -.L231: - adrp x16, struct_obj_4 + 22 - ldrh w2, [x16, #:lo12:struct_obj_4 + 22] - cbz w2, .L278 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_30 - ldrh w8, [x16, #:lo12:var_30] - adrp x16, struct_obj_6 + 6 - ldrsh w13, [x16, #:lo12:struct_obj_6 + 6] - adrp x16, struct_obj_3 + 4 - ldrh w5, [x16, #:lo12:struct_obj_3 + 4] - adrp x16, var_40 - ldrsb w11, [x16, #:lo12:var_40] - cbnz w11, .L279 - cbnz w10, .L280 - orr w2, wzr, #1 - b .L281 -.L280: - orr w2, wzr, #1 - b .L281 -.L279: - movz w2, #0, lsl #0 -.L281: - adrp x16, var_47 - ldrsb w6, [x16, #:lo12:var_47] - cbz w6, .L282 - cmp w5, #0 - cset x4, ne - cbz w4, .L282 - orr w12, wzr, #1 - b .L283 -.L282: - orr w7, wzr, #1 - orr w12, wzr, #1 - adrp x16, var_48 - ldrh w11, [x16, #:lo12:var_48] - cmp w11, #0 - csel x17, x7, x12, ne - cbz w17, .L284 - cmp w10, #0 - cset x12, eq - b .L283 -.L284: - movz w12, #0, lsl #0 -.L283: - adrp x16, var_18 - ldrsb w11, [x16, #:lo12:var_18] - orr w3, wzr, w11, lsr #31 - sxtw x29, w11 - movz x17, #30841, lsl #0 - movk x17, #30840, lsl #16 - madd x29, x29, x17, xzr - orr x10, xzr, x29, asr #32 - add w14, w3, w10, asr #3 - add w14, w14, w14, lsl #4 - sub w6, w11, w14 - sub w14, w2, w12 - cmp w6, w14 - b.le .L285 - cbz w5, .L286 - adrp x16, var_9 - ldrh w29, [x16, #:lo12:var_9] - sub w3, w29, #12288 - sub w3, w3, #1187 - lsl w2, w9, w3 - cmp w2, #0 - cset x2, ne - b .L287 -.L286: - movz w2, #0, lsl #0 -.L287: - cbz w5, .L288 - adrp x16, var_9 - ldrh w3, [x16, #:lo12:var_9] - sub w3, w3, #12288 - sub w3, w3, #1187 - lsl w3, w9, w3 - cmp w3, #0 - cset x10, ne - b .L289 -.L288: - movz w10, #0, lsl #0 -.L289: - adrp x16, var_24 - ldrsh w9, [x16, #:lo12:var_24] - adrp x16, var_41 - ldrh w14, [x16, #:lo12:var_41] - madd w4, w9, w14, wzr - movn w16, #76, lsl #0 - eor w7, w5, w16 - orr w17, wzr, w8, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w13, w17, w16 - and w29, w7, w13 - adrp x16, struct_obj_2 - ldrsh w14, [x16, #:lo12:struct_obj_2] - sub w9, wzr, w14 - sub w17, wzr, w9 - adrp x16, var_1 - ldrh w6, [x16, #:lo12:var_1] - sub w6, wzr, w6 - madd w7, w17, w6, wzr - cmp w2, #4 - cset x3, ne - cmp w7, w3 - cset x6, gt - cmp w29, w6 - cset x13, ge - orn w12, wzr, w13 - madd w6, w4, w12, wzr - cmp w10, #4 - cset x13, ne - cmp w7, w13 - cset x2, gt - cmp w29, w2 - cset x7, ge - adrp x16, var_21 - ldrsb w2, [x16, #:lo12:var_21] - cmp w2, #0 - cset x8, eq - orn w4, wzr, w8 - orr w3, w4, #-2 - and w7, w7, w3 - and w8, w6, w7 - adrp x16, var_48 - strh w8, [x16, #:lo12:var_48] - cbz w5, .L290 - adrp x16, var_17 - ldrsh w4, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w2, [x16, #:lo12:var_9] - sub w17, w2, #12288 - sub w17, w17, #1187 - lsl w6, w4, w17 - cmp w6, #0 - cset x13, ne - b .L291 -.L290: - movz w13, #0, lsl #0 -.L291: - adrp x16, struct_obj_3 + 4 - ldrh w17, [x16, #:lo12:struct_obj_3 + 4] - movn w16, #76, lsl #0 - eor w3, w17, w16 - adrp x16, var_30 - ldrh w2, [x16, #:lo12:var_30] - orr w4, wzr, w2, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w7, w4, w16 - and w4, w3, w7 - adrp x16, struct_obj_2 - ldrsh w29, [x16, #:lo12:struct_obj_2] - sub w2, wzr, w29 - sub w3, wzr, w2 - adrp x16, var_1 - ldrh w2, [x16, #:lo12:var_1] - sub w10, wzr, w2 - madd w14, w3, w10, wzr - cmp w13, #4 - cset x13, ne - cmp w14, w13 - cset x29, gt - adrp x16, var_26 - ldrh w7, [x16, #:lo12:var_26] - cbnz w7, .L292 -.L292: - cbz w17, .L293 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w29, w12, #12288 - sub w29, w29, #1187 - lsl w10, w9, w29 - cmp w10, #0 - cset x3, ne - b .L294 -.L293: - movz w3, #0, lsl #0 -.L294: - cmp w3, #4 - cset x9, ne - cmp w14, w9 - cset x7, gt - adrp x16, struct_obj_4 + 14 - ldrsh w17, [x16, #:lo12:struct_obj_4 + 14] - cbz w17, .L295 - adrp x16, struct_obj_6 + 4 - ldrh w2, [x16, #:lo12:struct_obj_6 + 4] - cmp w2, #0 - cset x17, ne - cbz w17, .L295 - orr w2, wzr, #1 - b .L296 -.L295: - adrp x16, var_60 - ldrsh w2, [x16, #:lo12:var_60] - cbnz w2, .L297 - adrp x16, struct_obj_4 + 16 - ldrsb w13, [x16, #:lo12:struct_obj_4 + 16] - cmp w13, #0 - cset x2, ne - b .L296 -.L297: - orr w2, wzr, #1 -.L296: - orr w3, wzr, #1 - orr w7, wzr, #1 - cmp w2, #0 - csel x3, x3, x7, ne - cbz w3, .L285 - adrp x16, var_65 - ldrsh w14, [x16, #:lo12:var_65] - cbz w14, .L298 - adrp x16, struct_obj_9 + 20 - ldrsh w5, [x16, #:lo12:struct_obj_9 + 20] - cmp w5, #0 - cset x9, ne - cbz w9, .L298 - adrp x16, var_3 - ldrsb w17, [x16, #:lo12:var_3] - cbz w17, .L299 - adrp x16, var_51 - ldrsh w7, [x16, #:lo12:var_51] - cmp w7, #0 - cset x14, ne - b .L300 -.L299: - movz w14, #0, lsl #0 - b .L300 -.L298: - movz w14, #0, lsl #0 -.L300: - eor w2, w14, #1 - cbz w2, .L285 - adrp x16, var_50 - ldrh w9, [x16, #:lo12:var_50] - cbz w9, .L301 - adrp x16, struct_obj_7 - ldrsb w14, [x16, #:lo12:struct_obj_7] - cmp w14, #0 - cset x5, ne - b .L302 -.L301: - movz w5, #0, lsl #0 -.L302: - cbnz w5, .L285 - orr w2, wzr, #1 - movz w11, #0, lsl #0 - adrp x16, var_45 - ldrsb w5, [x16, #:lo12:var_45] - cmp w5, #0 - csel x2, x2, x11, ne - cbnz w2, .L285 - adrp x16, var_19 - ldrsb w4, [x16, #:lo12:var_19] -.L285: - adrp x16, struct_obj_3 + 4 - ldrh w11, [x16, #:lo12:struct_obj_3 + 4] - cbz w11, .L303 - adrp x16, var_17 - ldrsh w29, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w5, w12, #12288 - sub w5, w5, #1187 - lsl w12, w29, w5 - cmp w12, #0 - cset x5, ne - b .L304 -.L303: - movz w5, #0, lsl #0 -.L304: - adrp x16, var_24 - ldrsh w12, [x16, #:lo12:var_24] - adrp x16, struct_obj_9 + 2 - ldrsb w29, [x16, #:lo12:struct_obj_9 + 2] - add w13, w12, w29 - adrp x16, struct_obj_2 - ldrsh w4, [x16, #:lo12:struct_obj_2] - sub w2, w4, #61440 - sub w2, w2, #4094 - add w3, w13, w2 - movz w14, #125, lsl #0 - adrp x16, var_40 - ldrsb w12, [x16, #:lo12:var_40] - sub w17, w14, w12 - sub w10, wzr, w17 - sub w13, w3, w10 - adrp x16, struct_obj_8 - ldrh w12, [x16, #:lo12:struct_obj_8] - adrp x16, var_6 - ldrh w8, [x16, #:lo12:var_6] - sub w10, w12, w8 - sub w9, wzr, w10 - movn w16, #76, lsl #0 - eor w17, w11, w16 - adrp x16, var_30 - ldrh w14, [x16, #:lo12:var_30] - orr w14, wzr, w14, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w2, w14, w16 - and w17, w17, w2 - sub w11, wzr, w4 - sub w3, wzr, w11 - adrp x16, var_1 - ldrh w29, [x16, #:lo12:var_1] - sub w4, wzr, w29 - madd w10, w3, w4, wzr - cmp w5, #4 - cset x11, ne - cmp w10, w11 - cset x6, gt - cmp w17, w6 - cset x11, ge - madd w2, w9, w11, wzr - madd w17, w13, w2, wzr - orn w11, wzr, w17 - adrp x16, var_52 - strh w11, [x16, #:lo12:var_52] - adrp x16, var_57 - ldrsb w8, [x16, #:lo12:var_57] - cbnz w8, .L305 - adrp x16, var_39 - ldrh w11, [x16, #:lo12:var_39] - cmp w11, #0 - cset x14, eq - b .L306 -.L305: - movz w14, #0, lsl #0 -.L306: - adrp x16, var_29 - ldrh w2, [x16, #:lo12:var_29] - sub w7, wzr, w14 - asr w14, w2, w7 - orr w11, wzr, #1 - orr w0, w15, w0 - movn w16, #8063, lsl #0 - cmp w0, w16 - cset x5, lt - orn w12, wzr, w5 - sub w17, w11, w12 - sdiv w6, w14, w17 - msub w4, w6, w17, w14 - cbz w4, .L307 - adrp x16, struct_obj_3 + 4 - ldrh w9, [x16, #:lo12:struct_obj_3 + 4] - cbz w9, .L308 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w3, [x16, #:lo12:var_9] - sub w4, w3, #12288 - sub w4, w4, #1187 - lsl w11, w7, w4 - cmp w11, #0 - cset x10, ne - b .L309 -.L308: - movz w10, #0, lsl #0 -.L309: - movn w16, #76, lsl #0 - eor w15, w9, w16 - adrp x16, var_30 - ldrh w7, [x16, #:lo12:var_30] - orr w2, wzr, w7, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w5, w2, w16 - and w3, w15, w5 - adrp x16, struct_obj_2 - ldrsh w8, [x16, #:lo12:struct_obj_2] - sub w5, wzr, w8 - sub w17, wzr, w5 - adrp x16, var_1 - ldrh w15, [x16, #:lo12:var_1] - sub w5, wzr, w15 - madd w7, w17, w5, wzr - cmp w10, #4 - cset x10, ne - cmp w7, w10 - cset x7, gt - cmp w3, w7 - cset x12, ge - adrp x16, struct_obj_4 + 22 - ldrh w8, [x16, #:lo12:struct_obj_4 + 22] - sbfiz w2, w8, 0, 8 - and w2, w12, w2 - adrp x16, var_8 - ldrh w9, [x16, #:lo12:var_8] - movz w0, #16848, lsl #0 - movk w0, #61777, lsl #16 - sdiv w12, w9, w0 - sbfiz w0, w12, 0, 16 - asr w11, w2, w0 - adrp x16, struct_obj_5 - ldrsb w13, [x16, #:lo12:struct_obj_5] - movn w7, #99, lsl #0 - adrp x16, var_19 - ldrsb w2, [x16, #:lo12:var_19] - madd w4, w2, w7, wzr - sub w7, wzr, w4 - sbfiz w17, w7, 0, 16 - cmp w13, w17 - cset x3, le - asr w9, w11, w3 - ubfiz w8, w9, 0, 16 - adrp x16, var_31 - ldrsh w7, [x16, #:lo12:var_31] - sub w2, w7, w8 - orn w4, wzr, w2 - movn w14, #19434, lsl #0 - adrp x16, struct_obj_9 + 2 - ldrsb w2, [x16, #:lo12:struct_obj_9 + 2] - sdiv w3, w14, w2 - msub w0, w3, w2, w14 - sbfiz w11, w0, 0, 8 - add w29, w11, #55 - asr w3, w4, w29 - orn w0, wzr, w3 - cmp w0, #0 - cset x9, eq - adrp x16, var_558 - strh w9, [x16, #:lo12:var_558] - adrp x16, struct_obj_6 + 4 - ldrh w2, [x16, #:lo12:struct_obj_6 + 4] - cbz w2, .L310 - adrp x16, struct_obj_4 + 2 - ldrsb w10, [x16, #:lo12:struct_obj_4 + 2] - cmp w10, #0 - cset x11, ne - b .L311 -.L310: - movz w11, #0, lsl #0 -.L311: - orn w6, wzr, w11 - sdiv w9, w1, w6 - msub w10, w9, w6, w1 - cbz w10, .L312 - orr w29, wzr, #1 - movz w10, #0, lsl #0 - movz w5, #0, lsl #0 - cmp w29, #0 - csel x11, x10, x5, ne - eor w15, w11, #1 - b .L313 -.L312: - movz w15, #0, lsl #0 -.L313: - adrp x16, struct_obj_1 + 6 - ldrsh w9, [x16, #:lo12:struct_obj_1 + 6] - cmp w15, w9 - cset x29, eq - adrp x16, var_64 - strb w29, [x16, #:lo12:var_64] - adrp x16, struct_obj_3 + 4 - ldrh w17, [x16, #:lo12:struct_obj_3 + 4] - cbz w17, .L314 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w14, [x16, #:lo12:var_9] - sub w0, w14, #12288 - sub w0, w0, #1187 - lsl w15, w9, w0 - cmp w15, #0 - cset x29, ne - b .L315 -.L314: - movz w29, #0, lsl #0 -.L315: - movn w16, #76, lsl #0 - eor w3, w17, w16 - adrp x16, var_30 - ldrh w8, [x16, #:lo12:var_30] - orr w5, wzr, w8, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w8, w5, w16 - and w12, w3, w8 - adrp x16, struct_obj_2 - ldrsh w11, [x16, #:lo12:struct_obj_2] - sub w10, wzr, w11 - sub w13, wzr, w10 - adrp x16, var_1 - ldrh w15, [x16, #:lo12:var_1] - sub w14, wzr, w15 - madd w7, w13, w14, wzr - cmp w29, #4 - cset x13, ne - cmp w7, w13 - cset x5, gt - cbz w17, .L316 - adrp x16, var_17 - ldrsh w5, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w4, [x16, #:lo12:var_9] - sub w10, w4, #12288 - sub w10, w10, #1187 - lsl w8, w5, w10 - cmp w8, #0 - cset x8, ne - b .L317 -.L316: - movz w8, #0, lsl #0 -.L317: - cmp w8, #4 - cset x2, ne - cmp w7, w2 - cset x8, gt - orn w13, wzr, w17 - adrp x16, struct_obj_5 + 2 - ldrsh w14, [x16, #:lo12:struct_obj_5 + 2] -.L307: - adrp x16, struct_obj_3 + 4 - ldrh w15, [x16, #:lo12:struct_obj_3 + 4] - adrp x16, var_1 - ldrh w11, [x16, #:lo12:var_1] - movn w16, #23820, lsl #0 - eor w0, w11, w16 - orn w8, wzr, w0 - cbnz w8, .L318 - cbz w15, .L319 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w6, [x16, #:lo12:var_9] - sub w12, w6, #12288 - sub w12, w12, #1187 - lsl w10, w7, w12 - cmp w10, #0 - cset x17, ne - b .L320 -.L319: - movz w17, #0, lsl #0 -.L320: - movn w16, #76, lsl #0 - eor w8, w15, w16 - adrp x16, var_30 - ldrh w29, [x16, #:lo12:var_30] - orr w9, wzr, w29, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w5, w9, w16 - and w9, w8, w5 - adrp x16, struct_obj_2 - ldrsh w7, [x16, #:lo12:struct_obj_2] - sub w29, wzr, w7 - sub w7, wzr, w29 - sub w8, wzr, w11 - madd w12, w7, w8, wzr - cmp w17, #4 - cset x17, ne - cmp w12, w17 - cset x8, gt - movz w13, #55, lsl #0 - adrp x16, var_51 - strh w13, [x16, #:lo12:var_51] - cbz w15, .L321 - adrp x16, var_17 - ldrsh w4, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w15, [x16, #:lo12:var_9] - sub w9, w15, #12288 - sub w9, w9, #1187 - lsl w17, w4, w9 - cmp w17, #0 - cset x12, ne - b .L322 -.L321: - movz w12, #0, lsl #0 -.L322: - adrp x16, struct_obj_3 + 4 - ldrh w13, [x16, #:lo12:struct_obj_3 + 4] - movn w16, #76, lsl #0 - eor w2, w13, w16 - adrp x16, var_30 - ldrh w5, [x16, #:lo12:var_30] - orr w3, wzr, w5, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w0, w3, w16 - and w17, w2, w0 - adrp x16, struct_obj_2 - ldrsh w9, [x16, #:lo12:struct_obj_2] - sub w15, wzr, w9 - sub w11, wzr, w15 - adrp x16, var_1 - ldrh w8, [x16, #:lo12:var_1] - sub w0, wzr, w8 - madd w3, w11, w0, wzr - cmp w12, #4 - cset x10, ne - cmp w3, w10 - cset x0, gt - cbz w13, .L323 - adrp x16, var_17 - ldrsh w14, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w0, [x16, #:lo12:var_9] - sub w8, w0, #12288 - sub w8, w8, #1187 - lsl w2, w14, w8 - cmp w2, #0 - cset x11, ne - b .L324 -.L323: - movz w11, #0, lsl #0 -.L324: - cmp w11, #4 - cset x29, ne - cmp w3, w29 - cset x5, gt - b .L278 -.L318: - cbz w15, .L325 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w8, [x16, #:lo12:var_9] - sub w10, w8, #12288 - sub w10, w10, #1187 - lsl w4, w9, w10 - cmp w4, #0 - cset x3, ne - b .L326 -.L325: - movz w3, #0, lsl #0 -.L326: - movn w16, #76, lsl #0 - eor w14, w15, w16 - adrp x16, var_30 - ldrh w2, [x16, #:lo12:var_30] - orr w10, wzr, w2, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w17, w10, w16 - and w7, w14, w17 - adrp x16, struct_obj_2 - ldrsh w6, [x16, #:lo12:struct_obj_2] - sub w12, wzr, w6 - sub w12, wzr, w12 - sub w4, wzr, w11 - madd w2, w12, w4, wzr - cmp w3, #4 - cset x12, ne - cmp w2, w12 - cset x13, gt - cbz w15, .L327 - adrp x16, var_17 - ldrsh w10, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w6, [x16, #:lo12:var_9] - sub w17, w6, #12288 - sub w17, w17, #1187 - lsl w8, w10, w17 - cmp w8, #0 - cset x6, ne - b .L328 -.L327: - movz w6, #0, lsl #0 -.L328: - movn w3, #54, lsl #0 - adrp x16, var_41 - ldrh w4, [x16, #:lo12:var_41] - madd w0, w4, w3, wzr - sbfiz w0, w0, 0, 16 - sub w3, wzr, w15 - movz w16, #4355, lsl #0 - cmp w3, w16 - cset x10, gt - sub w4, w10, #1 - cmp w6, #4 - cset x5, ne - cmp w2, w5 - cset x2, gt - cmp w7, w2 - cset x10, ge - movz w16, #7584, lsl #0 - cmp w10, w16 - cset x5, le - cmp w4, w5 - cset x14, le - sub w4, wzr, w14 - cmp w4, #0 - cset x11, eq - madd w10, w0, w11, wzr - adrp x16, struct_obj_8 + 28 - ldrsh w12, [x16, #:lo12:struct_obj_8 + 28] - orn w4, wzr, w12 - adrp x16, struct_obj_5 + 2 - ldrsh w12, [x16, #:lo12:struct_obj_5 + 2] - orn w0, w4, w12 - orr w10, wzr, #1 - adrp x16, var_2 - ldrh w17, [x16, #:lo12:var_2] - adrp x16, var_34 - ldrsb w11, [x16, #:lo12:var_34] - sdiv w17, w17, w11 - orn w13, wzr, w17 - sub w11, w13, #233 - lsl w10, w10, w11 - movn w16, #49, lsl #0 - orr w10, w10, w16 - orr w17, w0, w10 - adrp x16, struct_obj_8 + 8 - ldrsb w2, [x16, #:lo12:struct_obj_8 + 8] - bic w2, w17, w2 - cbz w2, .L278 -.L278: - adrp x16, var_62 - ldrh w17, [x16, #:lo12:var_62] - adrp x16, var_8 - ldrh w9, [x16, #:lo12:var_8] - cmp w9, #0 - cset x12, le - and w9, w17, w12 - cbz w9, .L329 - adrp x16, struct_obj_1 - ldrsh w4, [x16, #:lo12:struct_obj_1] - adrp x16, struct_obj_3 + 4 - ldrh w8, [x16, #:lo12:struct_obj_3 + 4] - cbz w8, .L330 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w12, [x16, #:lo12:var_9] - sub w7, w12, #12288 - sub w7, w7, #1187 - lsl w6, w9, w7 - cmp w6, #0 - cset x10, ne - b .L331 -.L330: - movz w10, #0, lsl #0 -.L331: - adrp x16, var_27 - ldrsh w6, [x16, #:lo12:var_27] - cmp w6, #0 - cset x2, eq - adrp x16, var_10 - ldrh w6, [x16, #:lo12:var_10] - adrp x16, var_60 - ldrsh w29, [x16, #:lo12:var_60] - cmp w6, w29 - cset x5, le - sub w17, w2, w5 - cbz w17, .L332 - movn w17, #19779, lsl #0 - orr w7, wzr, #-128 - adrp x16, var_40 - ldrsb w9, [x16, #:lo12:var_40] - madd w14, w9, w7, wzr - madd w29, w14, w17, wzr - cmp w29, #0 - cset x2, ne - b .L333 -.L332: - movz w2, #0, lsl #0 -.L333: - movn w16, #76, lsl #0 - eor w9, w8, w16 - adrp x16, var_30 - ldrh w12, [x16, #:lo12:var_30] - orr w5, wzr, w12, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w14, w5, w16 - and w0, w9, w14 - adrp x16, struct_obj_2 - ldrsh w3, [x16, #:lo12:struct_obj_2] - sub w11, wzr, w3 - sub w11, wzr, w11 - adrp x16, var_1 - ldrh w5, [x16, #:lo12:var_1] - sub w15, wzr, w5 - madd w11, w11, w15, wzr - cmp w10, #4 - cset x13, ne - cmp w11, w13 - cset x4, gt - cmp w0, w4 - cset x15, ge - adrp x16, struct_obj_9 + 8 - ldrsh w3, [x16, #:lo12:struct_obj_9 + 8] - add w12, w15, w3 - add w3, w12, #57344 - add w3, w3, #1750 - sbfiz w17, w3, 0, 8 - cmp w17, w2 - cset x15, gt - adrp x16, var_43 - ldrh w17, [x16, #:lo12:var_43] - adrp x16, struct_obj_5 + 6 - ldrsh w7, [x16, #:lo12:struct_obj_5 + 6] - add w12, w17, w7 - movz w16, #26468, lsl #0 - cmp w12, w16 - cset x10, lt - sub w2, wzr, w10 - cmp w2, #43 - cset x29, gt - and w15, w15, w29 - adrp x16, var_53 - ldrsh w12, [x16, #:lo12:var_53] - cbnz w12, .L334 - adrp x16, var_61 - ldrsb w13, [x16, #:lo12:var_61] - ubfiz w13, w13, 0, 16 - cmp w13, #0 - cset x13, ne - cbnz w13, .L334 - orr w2, wzr, #1 - cbnz w2, .L334 - cbnz w6, .L334 - adrp x16, var_44 - ldrh w10, [x16, #:lo12:var_44] - cmp w10, #0 - cset x4, ne -.L334: - adrp x16, struct_obj_4 + 10 - ldrh w7, [x16, #:lo12:struct_obj_4 + 10] - cbz w8, .L335 - adrp x16, var_17 - ldrsh w12, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w6, [x16, #:lo12:var_9] - sub w6, w6, #12288 - sub w6, w6, #1187 - lsl w13, w12, w6 - cmp w13, #0 - cset x10, ne - b .L336 -.L335: - movz w10, #0, lsl #0 -.L336: - cmp w10, #4 - cset x4, ne - cmp w11, w4 - cset x17, gt - cbz w8, .L337 - adrp x16, var_17 - ldrsh w12, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w3, [x16, #:lo12:var_9] - sub w0, w3, #12288 - sub w0, w0, #1187 - lsl w10, w12, w0 - cmp w10, #0 - cset x12, ne - b .L338 -.L337: - movz w12, #0, lsl #0 -.L338: - adrp x16, struct_obj_4 + 16 - ldrsb w2, [x16, #:lo12:struct_obj_4 + 16] - movn w16, #27631, lsl #0 - and w29, w2, w16 - sub w17, wzr, w8 - movz w16, #4355, lsl #0 - cmp w17, w16 - cset x5, gt - sub w10, w5, #1 - and w13, w9, w14 - cmp w12, #4 - cset x14, ne - cmp w11, w14 - cset x9, gt - cmp w13, w9 - cset x5, ge - movz w16, #7584, lsl #0 - cmp w5, w16 - cset x8, le - cmp w10, w8 - cset x6, le - eor w5, w29, w6 - sub w29, wzr, w5 - sub w9, wzr, w29 - adrp x16, struct_obj_10 + 4 - strb w9, [x16, #:lo12:struct_obj_10 + 4] - orr w2, wzr, #1 - movz w12, #0, lsl #0 - adrp x16, var_43 - ldrh w8, [x16, #:lo12:var_43] - cmp w8, #0 - csel x4, x2, x12, ne - cbnz w4, .L339 - adrp x16, var_25 - ldrsb w0, [x16, #:lo12:var_25] - cmp w0, #0 - cset x8, ne - b .L340 -.L339: - orr w8, wzr, #1 -.L340: - adrp x16, struct_obj_3 + 4 - ldrh w6, [x16, #:lo12:struct_obj_3 + 4] - cbz w6, .L341 - adrp x16, var_17 - ldrsh w17, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w7, [x16, #:lo12:var_9] - sub w2, w7, #12288 - sub w2, w2, #1187 - lsl w9, w17, w2 - cmp w9, #0 - cset x9, ne - b .L342 -.L341: - movz w9, #0, lsl #0 -.L342: - movn w16, #76, lsl #0 - eor w12, w6, w16 - adrp x16, var_30 - ldrh w3, [x16, #:lo12:var_30] - orr w3, wzr, w3, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w13, w3, w16 - and w0, w12, w13 - adrp x16, struct_obj_2 - ldrsh w7, [x16, #:lo12:struct_obj_2] - sub w13, wzr, w7 - sub w11, wzr, w13 - adrp x16, var_1 - ldrh w29, [x16, #:lo12:var_1] - sub w19, wzr, w29 - madd w7, w11, w19, wzr - cmp w9, #4 - cset x10, ne - cmp w7, w10 - cset x17, gt - cbz w6, .L343 - adrp x16, var_17 - ldrsh w4, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w17, [x16, #:lo12:var_9] - sub w13, w17, #12288 - sub w13, w13, #1187 - lsl w10, w4, w13 - cmp w10, #0 - cset x17, ne - b .L344 -.L343: - movz w17, #0, lsl #0 -.L344: - adrp x16, var_7 - ldrsb w4, [x16, #:lo12:var_7] - sub w2, wzr, w4 - cbnz w2, .L345 - adrp x16, struct_obj_4 + 16 - ldrsb w5, [x16, #:lo12:struct_obj_4 + 16] - cbnz w5, .L346 - adrp x16, var_12 - ldrh w5, [x16, #:lo12:var_12] - cmp w5, #0 - cset x10, ne - b .L347 -.L346: - orr w10, wzr, #1 - b .L347 -.L345: - orr w10, wzr, #1 -.L347: - orr w9, wzr, #1 - sub w13, wzr, w6 - movz w16, #4355, lsl #0 - cmp w13, w16 - cset x2, gt - sub w2, w2, #1 - cmp w17, #4 - cset x4, ne - cmp w7, w4 - cset x5, gt - cmp w0, w5 - cset x5, ge - movz w16, #7584, lsl #0 - cmp w5, w16 - cset x14, le - cmp w2, w14 - cset x13, le - orn w2, wzr, w13 - cmp w2, w10 - cset x2, eq - adrp x16, var_27 - ldrsh w17, [x16, #:lo12:var_27] - movn w16, #97, lsl #0 - and w13, w17, w16 - cmp w9, w6 - cset x29, ne - cmp w13, w29 - cset x9, le - cmp w2, w9 - cset x5, le - cmp w8, w5 - b.eq .L348 - cbz w6, .L349 - adrp x16, var_17 - ldrsh w9, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w8, [x16, #:lo12:var_9] - sub w4, w8, #12288 - sub w4, w4, #1187 - lsl w15, w9, w4 - cmp w15, #0 - cset x4, ne - b .L350 -.L349: - movz w4, #0, lsl #0 -.L350: - cmp w4, #4 - cset x9, ne - cmp w7, w9 - cset x15, gt - cbz w6, .L351 - adrp x16, var_17 - ldrsh w2, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w8, [x16, #:lo12:var_9] - sub w29, w8, #12288 - sub w29, w29, #1187 - lsl w29, w2, w29 - cmp w29, #0 - cset x14, ne - b .L352 -.L351: - movz w14, #0, lsl #0 -.L352: - cmp w14, #4 - cset x8, ne - cmp w7, w8 - cset x1, gt - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w13, w3, w16 - cbz w6, .L353 - adrp x16, var_17 - ldrsh w15, [x16, #:lo12:var_17] - adrp x16, var_9 - ldrh w1, [x16, #:lo12:var_9] - sub w1, w1, #12288 - sub w1, w1, #1187 - lsl w4, w15, w1 - cmp w4, #0 - cset x3, ne - b .L354 -.L353: - movz w3, #0, lsl #0 -.L354: - and w15, w12, w13 - madd w1, w11, w19, wzr - cmp w3, #4 - cset x17, ne - cmp w1, w17 - cset x9, gt - b .L355 -.L348: - adrp x16, struct_obj_8 + 24 - ldrh w12, [x16, #:lo12:struct_obj_8 + 24] - orr w8, w15, w12 - cbnz w8, .L356 - adrp x16, var_22 - ldrsb w6, [x16, #:lo12:var_22] - cmp w6, #0 - cset x5, ne - b .L357 -.L356: - orr w5, wzr, #1 -.L357: - orn w3, wzr, w5 - adrp x16, struct_obj_4 + 2 - ldrsb w14, [x16, #:lo12:struct_obj_4 + 2] - cmp w14, #30 - cset x4, ge - adrp x16, struct_obj_8 + 26 - ldrsb w9, [x16, #:lo12:struct_obj_8 + 26] - adrp x16, struct_obj_8 + 2 - ldrsh w8, [x16, #:lo12:struct_obj_8 + 2] - cbnz w8, .L358 - adrp x16, var_38 - ldrsb w5, [x16, #:lo12:var_38] - cmp w5, #0 - cset x4, ne - b .L359 -.L358: - orr w4, wzr, #1 -.L359: - adrp x16, var_57 - ldrsb w10, [x16, #:lo12:var_57] - adrp x16, var_37 - ldrsb w11, [x16, #:lo12:var_37] - and w7, w10, w11 - cbnz w7, .L360 - adrp x16, var_5 - ldrh w10, [x16, #:lo12:var_5] - orn w6, wzr, w10 - cmp w6, #0 - cset x8, ne - b .L361 -.L360: - orr w8, wzr, #1 -.L361: - adrp x16, var_21 - ldrsb w3, [x16, #:lo12:var_21] - cmp w3, #0 - cset x2, eq - adrp x16, var_55 - ldrsb w3, [x16, #:lo12:var_55] - madd w7, w3, w1, wzr - madd w2, w2, w7, wzr - ubfiz w11, w2, 0, 16 - adrp x16, var_56 - ldrh w10, [x16, #:lo12:var_56] - madd w1, w10, w9, wzr - cmp w4, w1 - cset x9, le - cmp w9, w8 - cset x12, gt - cmp w11, w12 - cset x4, le - adrp x16, var_62 - ldrh w14, [x16, #:lo12:var_62] - cmp w4, w14 - cset x0, le - adrp x16, var_42 - strb w0, [x16, #:lo12:var_42] -.L355: - movn w11, #94, lsl #0 - adrp x16, struct_obj_9 + 8 - ldrsh w2, [x16, #:lo12:struct_obj_9 + 8] - sub w17, w2, #38 - adrp x16, var_48 - ldrh w9, [x16, #:lo12:var_48] - madd w17, w17, w9, wzr - madd w7, w17, w11, wzr - cmp w7, #110 - b.ge .L362 - movz w10, #5919, lsl #0 - movk w10, #5, lsl #16 - movn w13, #974, lsl #0 - adrp x16, struct_obj_9 + 2 - ldrsb w8, [x16, #:lo12:struct_obj_9 + 2] - madd w12, w8, w13, wzr - adrp x16, var_9 - ldrh w15, [x16, #:lo12:var_9] - adrp x16, struct_obj_3 - ldrsh w3, [x16, #:lo12:struct_obj_3] - madd w2, w15, w3, wzr - sdiv w9, w12, w2 - movz w7, #9108, lsl #0 - movk w7, #2, lsl #16 - adrp x16, struct_obj_8 + 6 - ldrsh w6, [x16, #:lo12:struct_obj_8 + 6] - cmp w6, #0 - cset x13, eq - madd w17, w13, w7, wzr - madd w5, w9, w17, wzr - madd w5, w5, w10, wzr - cbnz w5, .L363 - adrp x16, struct_obj_4 + 2 - ldrsb w9, [x16, #:lo12:struct_obj_4 + 2] - ubfiz w3, w9, 0, 16 -.L363: - adrp x16, struct_obj_3 + 4 - ldrh w14, [x16, #:lo12:struct_obj_3 + 4] - cbz w14, .L364 - adrp x16, var_17 - ldrsh w7, [x16, #:lo12:var_17] - sub w12, w15, #12288 - sub w12, w12, #1187 - lsl w1, w7, w12 - cmp w1, #0 - cset x6, ne - b .L365 -.L364: - movz w6, #0, lsl #0 -.L365: - movn w16, #76, lsl #0 - eor w10, w14, w16 - adrp x16, var_30 - ldrh w13, [x16, #:lo12:var_30] - orr w11, wzr, w13, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w9, w11, w16 - and w5, w10, w9 - adrp x16, struct_obj_2 - ldrsh w3, [x16, #:lo12:struct_obj_2] - sub w12, wzr, w3 - sub w2, wzr, w12 - adrp x16, var_1 - ldrh w9, [x16, #:lo12:var_1] - sub w29, wzr, w9 - madd w2, w2, w29, wzr - cmp w6, #4 - cset x29, ne - cmp w2, w29 - cset x4, gt - adrp x16, var_7 - ldrsb w10, [x16, #:lo12:var_7] - sub w4, wzr, w10 - cbnz w4, .L366 - adrp x16, struct_obj_4 + 16 - ldrsb w7, [x16, #:lo12:struct_obj_4 + 16] -.L366: - sub w6, wzr, w14 - movz w16, #4355, lsl #0 - cmp w6, w16 - cset x7, gt - adrp x16, var_27 - ldrsh w3, [x16, #:lo12:var_27] - movn w16, #97, lsl #0 - and w0, w3, w16 - adrp x16, var_18 - ldrsb w12, [x16, #:lo12:var_18] - ubfiz w3, w12, 0, 16 - cbnz w3, .L367 - cbz w14, .L368 - adrp x16, var_17 - ldrsh w1, [x16, #:lo12:var_17] - sub w9, w15, #12288 - sub w9, w9, #1187 - lsl w8, w1, w9 - cmp w8, #0 - cset x29, ne - b .L369 -.L368: - movz w29, #0, lsl #0 -.L369: - cmp w29, #4 - cset x6, ne - cmp w2, w6 - cset x6, gt - cbz w14, .L370 - adrp x16, var_17 - ldrsh w6, [x16, #:lo12:var_17] - sub w3, w15, #12288 - sub w3, w3, #1187 - lsl w15, w6, w3 - cmp w15, #0 - cset x10, ne - b .L371 -.L370: - movz w10, #0, lsl #0 -.L371: - cbnz w4, .L372 - adrp x16, struct_obj_4 + 16 - ldrsb w13, [x16, #:lo12:struct_obj_4 + 16] - cbnz w13, .L373 - adrp x16, var_12 - ldrh w17, [x16, #:lo12:var_12] - cmp w17, #0 - cset x1, ne - b .L374 -.L373: - orr w1, wzr, #1 - b .L374 -.L372: - orr w1, wzr, #1 -.L374: - orr w11, wzr, #1 - sub w12, w7, #1 - cmp w10, #4 - cset x15, ne - cmp w2, w15 - cset x29, gt - cmp w5, w29 - cset x3, ge - movz w16, #7584, lsl #0 - cmp w3, w16 - cset x5, le - cmp w12, w5 - cset x29, le - orn w12, wzr, w29 - cmp w12, w1 - cset x8, eq - cmp w11, w14 - cset x17, ne - cmp w0, w17 - cset x15, le - cmp w8, w15 - b.gt .L375 - adrp x16, struct_obj_8 + 18 - ldrsh w0, [x16, #:lo12:struct_obj_8 + 18] - cmp w0, #0 - cset x0, ne - cbnz w0, .L367 -.L375: - orr w0, wzr, #1 - eor w0, w0, #1 - cbz w0, .L329 -.L367: - orr w0, wzr, #1 - cbnz w0, .L329 - adrp x16, var_45 - ldrsb w0, [x16, #:lo12:var_45] - cbz w0, .L329 - adrp x16, struct_obj_8 + 26 - ldrsb w0, [x16, #:lo12:struct_obj_8 + 26] - cbnz w0, .L329 - adrp x16, var_23 - ldrh w0, [x16, #:lo12:var_23] - cmp w0, #0 - cset x0, ne - b .L329 -.L362: - adrp x16, var_17 - ldrsh w12, [x16, #:lo12:var_17] - adrp x16, var_60 - ldrsh w3, [x16, #:lo12:var_60] - cbnz w3, .L376 - adrp x16, struct_obj_9 + 26 - ldrsh w11, [x16, #:lo12:struct_obj_9 + 26] - cmp w11, #0 - cset x7, ne - b .L377 -.L376: - orr w7, wzr, #1 -.L377: - sbfiz w9, w3, 0, 8 - adrp x16, struct_obj_8 + 28 - ldrsh w8, [x16, #:lo12:struct_obj_8 + 28] - and w5, w9, w8 - asr w7, w5, w7 - cbnz w7, .L378 - adrp x16, struct_obj_3 + 4 - ldrh w5, [x16, #:lo12:struct_obj_3 + 4] -.L378: - adrp x16, var_62 - ldrh w5, [x16, #:lo12:var_62] - add w6, w2, w5 - adrp x16, struct_obj_2 - ldrsh w5, [x16, #:lo12:struct_obj_2] - cmp w5, #0 - cset x15, eq - adrp x16, struct_obj_3 + 4 - ldrh w11, [x16, #:lo12:struct_obj_3 + 4] - cbz w11, .L379 - adrp x16, var_9 - ldrh w4, [x16, #:lo12:var_9] - sub w13, w4, #12288 - sub w13, w13, #1187 - lsl w9, w12, w13 - cmp w9, #0 - cset x12, ne - b .L380 -.L379: - movz w12, #0, lsl #0 -.L380: - movn w16, #76, lsl #0 - eor w14, w11, w16 - adrp x16, var_30 - ldrh w4, [x16, #:lo12:var_30] - orr w15, wzr, w4, asr #7 - movz w16, #65483, lsl #0 - movk w16, #8191, lsl #16 - orr w13, w15, w16 - and w13, w14, w13 - sub w15, wzr, w5 - sub w17, wzr, w15 - adrp x16, var_1 - ldrh w7, [x16, #:lo12:var_1] - sub w14, wzr, w7 - madd w3, w17, w14, wzr - cmp w12, #4 - cset x5, ne - cmp w3, w5 - cset x8, gt - adrp x16, var_7 - ldrsb w0, [x16, #:lo12:var_7] - sub w0, wzr, w0 - cbnz w0, .L381 - adrp x16, struct_obj_4 + 16 - ldrsb w0, [x16, #:lo12:struct_obj_4 + 16] -.L381: - adrp x16, var_37 - ldrsb w0, [x16, #:lo12:var_37] - movz w0, #0, lsl #0 - adrp x16, var_52 - strh w0, [x16, #:lo12:var_52] -.L329: - ldr x19, [sp, #16] - ldr x20, [sp, #24] - ldr x30, [sp, #8] - add sp, sp, #32 - ret x30 - .type foo, @function - .size foo, . - foo diff --git a/multiple_labels_crash_test/hash.c b/multiple_labels_crash_test/hash.c deleted file mode 100644 index a979bdc1..00000000 --- a/multiple_labels_crash_test/hash.c +++ /dev/null @@ -1,3 +0,0 @@ -void hash(unsigned long long int *seed, unsigned long long int const v) { - *seed ^= v + 0x9e3779b9 + ((*seed)<<6) + ((*seed)>>2); -} diff --git a/multiple_labels_crash_test/init.c b/multiple_labels_crash_test/init.c deleted file mode 100644 index d3c7cfcc..00000000 --- a/multiple_labels_crash_test/init.c +++ /dev/null @@ -1,209 +0,0 @@ -#include "init.h" - -const unsigned short var_1 = 64966; -const unsigned short var_2 = 17784; -signed char var_3 = 58; -const unsigned short var_4 = 3656; -unsigned short var_5 = 17583; -const unsigned short var_6 = 40663; -const signed char var_7 = 42; -unsigned short var_8 = 14662; -unsigned short var_9 = 13482; -unsigned short var_10 = 21751; -const short var_11 = 9782; -const unsigned short var_12 = 29985; -short var_13 = -23903; -const signed char var_14 = 26; -const unsigned short var_15 = 38613; -unsigned short var_16 = 7910; -short var_17 = 32667; -signed char var_18 = 77; -signed char var_19 = 69; -unsigned short var_20 = 49524; -const signed char var_21 = -59; -const signed char var_22 = 114; -const unsigned short var_23 = 43999; -short var_24 = -4596; -signed char var_25 = 127; -const unsigned short var_26 = 14598; -const short var_27 = 15321; -short var_28 = 13394; -const unsigned short var_29 = 51752; -const unsigned short var_30 = 42705; -const short var_31 = -23514; -unsigned short var_32 = 46800; -const unsigned short var_33 = 40302; -const signed char var_34 = -74; -unsigned short var_35 = 14428; - - -short var_36 = 27385; -signed char var_37 = 116; -signed char var_38 = 47; -unsigned short var_39 = 28164; -signed char var_40 = 68; -unsigned short var_41 = 48535; -signed char var_42 = -56; -unsigned short var_43 = 63272; -unsigned short var_44 = 53605; -signed char var_45 = -76; -unsigned short var_46 = 37656; -signed char var_47 = -2; -unsigned short var_48 = 20934; -signed char var_49 = -21; -unsigned short var_50 = 46979; -short var_51 = -11787; -short var_52 = 9874; -short var_53 = 13740; -short var_54 = -24909; -signed char var_55 = -12; -unsigned short var_56 = 20186; -signed char var_57 = -80; -signed char var_58 = 48; -unsigned short var_59 = 59812; -short var_60 = 21585; -signed char var_61 = -16; -unsigned short var_62 = 49246; -short var_63 = 21666; -signed char var_64 = -18; -short var_65 = -12846; - - -signed char var_70 = 63; -short var_78 = -3444; -unsigned short var_82 = 58294; -short var_90 = -25718; -unsigned short var_94 = 54118; -short var_100 = 16012; -short var_106 = 6394; -unsigned short var_123 = 42864; -short var_129 = 18229; -signed char var_143 = 92; -short var_152 = -25759; -signed char var_156 = -88; -signed char var_162 = 86; -short var_178 = -15567; -signed char var_217 = 37; -short var_234 = 29976; -signed char var_240 = 29; -unsigned short var_241 = 39297; -signed char var_260 = -30; -signed char var_268 = 13; -short var_284 = -4345; -unsigned short var_297 = 16067; -signed char var_314 = -126; -unsigned short var_358 = 48899; -short var_359 = 5585; -signed char var_367 = 57; -unsigned short var_392 = 6146; -signed char var_468 = -7; -signed char var_500 = 28; -short var_514 = -27356; -signed char var_522 = 67; -signed char var_543 = -115; -unsigned short var_544 = 38397; -signed char var_547 = 105; -signed char var_549 = 62; -short var_558 = -1976; -signed char var_591 = 78; - - -struct_5 struct_obj_1; -struct_5 struct_obj_2; -struct_5 struct_obj_3; -struct_2 struct_obj_4; - - -struct_1 struct_obj_5; -struct_5 struct_obj_6; -struct_1 struct_obj_7; -struct_4 struct_obj_8; -struct_2 struct_obj_9; -struct_1 struct_obj_10; - - - - - - - - - - - - -void init () { - struct_obj_1.member_5_0 = (short) (-13981); - struct_obj_1.member_5_1 = (unsigned short) (32569); - struct_obj_1.member_5_2 = (unsigned short) (55905); - struct_obj_1.member_5_3 = (short) (740); - struct_obj_2.member_5_0 = (short) (-16520); - struct_obj_2.member_5_1 = (unsigned short) (25768); - struct_obj_2.member_5_2 = (unsigned short) (41445); - struct_obj_2.member_5_3 = (short) (25458); - struct_obj_3.member_5_0 = (short) (-27814); - struct_obj_3.member_5_1 = (unsigned short) (32840); - struct_obj_3.member_5_2 = (unsigned short) (59825); - struct_obj_3.member_5_3 = (short) (-26656); - struct_obj_4.member_2_0 = (short) (7610); - struct_obj_4.member_2_1.member_1_0 = (signed char) (86); - struct_obj_4.member_2_1.member_1_1 = (short) (-29951); - struct_obj_4.member_2_1.member_1_2 = (signed char) (-57); - struct_obj_4.member_2_1.member_1_3 = (short) (-1514); - struct_obj_4.member_2_2 = (unsigned short) (30795); - struct_obj_4.member_2_3.member_1_0 = (signed char) (17); - struct_obj_4.member_2_3.member_1_1 = (short) (-21792); - struct_obj_4.member_2_3.member_1_2 = (signed char) (-78); - struct_obj_4.member_2_3.member_1_3 = (short) (-19417); - struct_obj_4.member_2_4 = (short) (-19205); - struct_obj_4.member_2_5 = (unsigned short) (10096); - struct_obj_4.member_2_6 = (unsigned short) (56048); - struct_obj_4.member_2_7 = (short) (-9525); - struct_obj_5.member_1_0 = (signed char) (-105); - struct_obj_5.member_1_1 = (short) (28953); - struct_obj_5.member_1_2 = (signed char) (-80); - struct_obj_5.member_1_3 = (short) (-20984); - struct_obj_6.member_5_0 = (short) (30730); - struct_obj_6.member_5_1 = (unsigned short) (44652); - struct_obj_6.member_5_2 = (unsigned short) (45968); - struct_obj_6.member_5_3 = (short) (12419); - struct_obj_7.member_1_0 = (signed char) (-74); - struct_obj_7.member_1_1 = (short) (-6639); - struct_obj_7.member_1_2 = (signed char) (-119); - struct_obj_7.member_1_3 = (short) (13879); - struct_obj_8.member_4_0 = (unsigned short) (17346); - struct_obj_8.member_4_1.member_3_0 = (short) (657); - struct_obj_8.member_4_1.member_3_1.member_1_0 = (signed char) (-103); - struct_obj_8.member_4_1.member_3_1.member_1_1 = (short) (25291); - struct_obj_8.member_4_1.member_3_1.member_1_2 = (signed char) (-76); - struct_obj_8.member_4_1.member_3_1.member_1_3 = (short) (-25024); - struct_obj_8.member_4_2 = (signed char) (42); - struct_obj_8.member_4_3 = (unsigned short) (57223); - struct_obj_8.member_4_4 = (signed char) (58); - struct_obj_8.member_4_5 = (short) (-1330); - struct_obj_8.member_4_6 = (short) (-13828); - struct_obj_8.member_4_7 = (unsigned short) (26678); - struct_obj_8.member_4_8 = (unsigned short) (52711); - struct_obj_8.member_4_9.member_1_0 = (signed char) (6); - struct_obj_8.member_4_9.member_1_1 = (short) (13897); - struct_obj_8.member_4_9.member_1_2 = (signed char) (-94); - struct_obj_8.member_4_9.member_1_3 = (short) (-30110); - struct_obj_9.member_2_0 = (short) (-24156); - struct_obj_9.member_2_1.member_1_0 = (signed char) (40); - struct_obj_9.member_2_1.member_1_1 = (short) (31967); - struct_obj_9.member_2_1.member_1_2 = (signed char) (-36); - struct_obj_9.member_2_1.member_1_3 = (short) (21679); - struct_obj_9.member_2_2 = (unsigned short) (40629); - struct_obj_9.member_2_3.member_1_0 = (signed char) (116); - struct_obj_9.member_2_3.member_1_1 = (short) (-741); - struct_obj_9.member_2_3.member_1_2 = (signed char) (101); - struct_obj_9.member_2_3.member_1_3 = (short) (24485); - struct_obj_9.member_2_4 = (short) (13544); - struct_obj_9.member_2_5 = (unsigned short) (26978); - struct_obj_9.member_2_6 = (unsigned short) (9057); - struct_obj_9.member_2_7 = (short) (21085); - struct_obj_10.member_1_0 = (signed char) (94); - struct_obj_10.member_1_1 = (short) (28577); - struct_obj_10.member_1_2 = (signed char) (-56); - struct_obj_10.member_1_3 = (short) (-21782); -}
\ No newline at end of file diff --git a/multiple_labels_crash_test/init.h b/multiple_labels_crash_test/init.h deleted file mode 100644 index d3b5b008..00000000 --- a/multiple_labels_crash_test/init.h +++ /dev/null @@ -1,181 +0,0 @@ -void hash(unsigned long long int *seed, unsigned long long int const v); - -extern const unsigned short var_1; -extern const unsigned short var_2; -extern signed char var_3; -extern const unsigned short var_4; -extern unsigned short var_5; -extern const unsigned short var_6; -extern const signed char var_7; -extern unsigned short var_8; -extern unsigned short var_9; -extern unsigned short var_10; -extern const short var_11; -extern const unsigned short var_12; -extern short var_13; -extern const signed char var_14; -extern const unsigned short var_15; -extern unsigned short var_16; -extern short var_17; -extern signed char var_18; -extern signed char var_19; -extern unsigned short var_20; -extern const signed char var_21; -extern const signed char var_22; -extern const unsigned short var_23; -extern short var_24; -extern signed char var_25; -extern const unsigned short var_26; -extern const short var_27; -extern short var_28; -extern const unsigned short var_29; -extern const unsigned short var_30; -extern const short var_31; -extern unsigned short var_32; -extern const unsigned short var_33; -extern const signed char var_34; -extern unsigned short var_35; - - -extern short var_36; -extern signed char var_37; -extern signed char var_38; -extern unsigned short var_39; -extern signed char var_40; -extern unsigned short var_41; -extern signed char var_42; -extern unsigned short var_43; -extern unsigned short var_44; -extern signed char var_45; -extern unsigned short var_46; -extern signed char var_47; -extern unsigned short var_48; -extern signed char var_49; -extern unsigned short var_50; -extern short var_51; -extern short var_52; -extern short var_53; -extern short var_54; -extern signed char var_55; -extern unsigned short var_56; -extern signed char var_57; -extern signed char var_58; -extern unsigned short var_59; -extern short var_60; -extern signed char var_61; -extern unsigned short var_62; -extern short var_63; -extern signed char var_64; -extern short var_65; - - -extern signed char var_70; -extern short var_78; -extern unsigned short var_82; -extern short var_90; -extern unsigned short var_94; -extern short var_100; -extern short var_106; -extern unsigned short var_123; -extern short var_129; -extern signed char var_143; -extern short var_152; -extern signed char var_156; -extern signed char var_162; -extern short var_178; -extern signed char var_217; -extern short var_234; -extern signed char var_240; -extern unsigned short var_241; -extern signed char var_260; -extern signed char var_268; -extern short var_284; -extern unsigned short var_297; -extern signed char var_314; -extern unsigned short var_358; -extern short var_359; -extern signed char var_367; -extern unsigned short var_392; -extern signed char var_468; -extern signed char var_500; -extern short var_514; -extern signed char var_522; -extern signed char var_543; -extern unsigned short var_544; -extern signed char var_547; -extern signed char var_549; -extern short var_558; -extern signed char var_591; - - -typedef struct { - signed char member_1_0; - short member_1_1; - signed char member_1_2; - short member_1_3; -} struct_1; - -typedef struct { - short member_2_0; - struct_1 member_2_1; - unsigned short member_2_2; - struct_1 member_2_3; - short member_2_4; - unsigned short member_2_5; - unsigned short member_2_6; - short member_2_7; -} struct_2; - -typedef struct { - short member_3_0; - struct_1 member_3_1; -} struct_3; - -typedef struct { - unsigned short member_4_0; - struct_3 member_4_1; - signed char member_4_2; - unsigned short member_4_3; - signed char member_4_4; - short member_4_5; - short member_4_6; - unsigned short member_4_7; - unsigned short member_4_8; - struct_1 member_4_9; -} struct_4; - -typedef struct { - short member_5_0; - unsigned short member_5_1; - unsigned short member_5_2; - short member_5_3; -} struct_5; - -typedef struct { - signed char member_6_0; - unsigned short member_6_1; - short member_6_2; - struct_3 member_6_3; - struct_3 member_6_4; - signed char member_6_5; - short member_6_6; -} struct_6; - - - -extern struct_5 struct_obj_1; -extern struct_5 struct_obj_2; -extern struct_5 struct_obj_3; -extern struct_2 struct_obj_4; - - -extern struct_1 struct_obj_5; -extern struct_5 struct_obj_6; -extern struct_1 struct_obj_7; -extern struct_4 struct_obj_8; -extern struct_2 struct_obj_9; -extern struct_1 struct_obj_10; - - - - diff --git a/scheduling/PseudoAsmblock.v b/scheduling/PseudoAsmblock.v deleted file mode 100644 index b33ea1bd..00000000 --- a/scheduling/PseudoAsmblock.v +++ /dev/null @@ -1,267 +0,0 @@ -Require Import Coqlib Maps AST Integers Values Memory Events Globalenvs Smallstep. -Require Import Op Machregs Locations Stacklayout Conventions. -Require Import Mach Machblock OptionMonad. - - -(** Registers and States *) - -Inductive preg: Type := - | PC: preg (* program counter *) - | RA: preg (* return-address *) - | SP: preg (* stack-pointer *) - | preg_of: mreg -> preg. -Coercion preg_of: mreg >-> preg. - -Lemma preg_eq: forall (x y: preg), {x=y} + {x<>y}. -Proof. - decide equality. - apply mreg_eq. -Defined. - -Module PregEq. - Definition t := preg. - Definition eq := preg_eq. -End PregEq. - -Module Pregmap := EMap(PregEq). - -Definition regset := Pregmap.t val. - -Module AsmNotations. - -(* Declare Scope asm. *) -Notation "a # b" := (a b) (at level 1, only parsing) : asm. -Notation "a # b <- c" := (Pregmap.set b c a) (at level 1, b at next level) : asm. -Open Scope asm. - -End AsmNotations. - -Import AsmNotations. - -Definition to_Machrs (rs: regset): Mach.regset := - fun (r:mreg) => rs r. -Coercion to_Machrs: regset >-> Mach.regset. - -Definition set_from_Machrs (mrs: Mach.regset) (rs: regset): regset := - fun (r:preg) => - match r with - | preg_of mr => mrs mr - | _ => rs r - end. - -Local Open Scope option_monad_scope. - -Record state: Type := State { _rs: regset; _m: mem }. -Definition outcome := option state. -Definition Next rs m: outcome := Some (State rs m). -Definition Stuck: outcome := None. - -(* Asm semantic on Mach *) - -Section RELSEM. - -(** "oracle" stating the successive position (ie offset) of each block in the final assembly function *) -Variable next: function -> Z -> Z. - -Inductive is_pos (f: function): Z -> code -> Prop := - | First_pos: is_pos f 0 (fn_code f) - | Next_pos pos b c: is_pos f pos (b::c) -> is_pos f (next f pos) c. - -Fixpoint label_pos (f: function) (lbl: label) (pos: Z) (c: code) {struct c} : option Z := - match c with - | nil => None - | b :: c' => - if is_label lbl b then Some pos else label_pos f lbl (next f pos) c' - end. - -Definition goto_label (f: function) (lbl: label) (rs: regset) : option val := - SOME pos <- label_pos f lbl 0 (fn_code f) IN - match rs#PC with - | Vptr b _ => Some (Vptr b (Ptrofs.repr pos)) - | _ => None - end. - -Definition next_addr (f: function) (rs: regset): option val := - match rs#PC with - | Vptr b ofs => Some (Vptr b (Ptrofs.repr (next f (Ptrofs.unsigned ofs)))) - | _ => None - end. - -Variable ge:genv. - -Inductive basic_step (f: function) (rs: regset) (m:mem): basic_inst -> regset -> mem -> Prop := - | exec_MBgetstack: - forall ofs ty dst v, - load_stack m (rs#SP) ty ofs = Some v -> - basic_step f rs m (MBgetstack ofs ty dst) (rs#dst <- v) m - | exec_MBsetstack: - forall (src: mreg) ofs ty m' rs', - store_stack m (rs#SP) ty ofs (rs src) = Some m' -> - rs' = set_from_Machrs (undef_regs (destroyed_by_setstack ty) rs) rs -> - basic_step f rs m (MBsetstack src ofs ty) rs' m' - | exec_MBgetparam: - forall ofs ty (dst: mreg) v rs' psp, - load_stack m (rs#SP) Tptr f.(fn_link_ofs) = Some psp -> - load_stack m psp ty ofs = Some v -> - rs' = (rs # temp_for_parent_frame <- Vundef # dst <- v) -> - basic_step f rs m (MBgetparam ofs ty dst) rs' m - | exec_MBop: - forall op args v rs' (res: mreg), - eval_operation ge (rs#SP) op (to_Machrs rs)##args m = Some v -> - rs' = (set_from_Machrs (undef_regs (destroyed_by_op op) rs) rs)#res <- v -> - basic_step f rs m (MBop op args res) rs' m - | exec_MBload: - forall addr args a v rs' trap chunk (dst: mreg), - eval_addressing ge (rs#SP) addr (to_Machrs rs)##args = Some a -> - Mem.loadv chunk m a = Some v -> - rs' = (set_from_Machrs (undef_regs (destroyed_by_load chunk addr) rs) rs)#dst <- v -> - basic_step f rs m (MBload trap chunk addr args dst) rs' m - | exec_MBload_notrap1: - forall addr args rs' chunk (dst: mreg), - eval_addressing ge (rs#SP) addr (to_Machrs rs)##args = None -> - rs' = (set_from_Machrs (undef_regs (destroyed_by_load chunk addr) rs) rs)#dst <- (default_notrap_load_value chunk) -> - basic_step f rs m (MBload NOTRAP chunk addr args dst) rs' m - | exec_MBload_notrap2: - forall addr args a rs' chunk (dst: mreg), - eval_addressing ge (rs#SP) addr (to_Machrs rs)##args = Some a -> - Mem.loadv chunk m a = None -> - rs' = (set_from_Machrs (undef_regs (destroyed_by_load chunk addr) rs) rs)#dst <- (default_notrap_load_value chunk) -> - basic_step f rs m (MBload NOTRAP chunk addr args dst) rs' m - | exec_MBstore: - forall chunk addr args (src: mreg) m' a rs', - eval_addressing ge (rs#SP) addr (to_Machrs rs)##args = Some a -> - Mem.storev chunk m a (rs src) = Some m' -> - rs' = set_from_Machrs (undef_regs (destroyed_by_store chunk addr) rs) rs -> - basic_step f rs m (MBstore chunk addr args src) rs' m' - . - - -Inductive body_step (f: function) : bblock_body -> regset -> mem -> regset -> mem -> Prop := - | exec_nil_body rs m: - body_step f nil rs m rs m - | exec_cons_body rs m bi p rs' m' rs'' m'': - basic_step f rs m bi rs' m' -> - body_step f p rs' m' rs'' m'' -> - body_step f (bi::p) rs m rs'' m'' - . - - -Definition find_function_ptr (ros: mreg + ident) (rs: regset) : option val := - match ros with - | inl r => Some (rs#r) - | inr symb => - SOME b <- Genv.find_symbol ge symb IN - Some (Vptr b Ptrofs.zero) - end. - -Definition exec_epilogue (f: function) (rs: regset) (m: mem) : outcome := - SOME sp <- load_stack m rs#SP Tptr f.(fn_link_ofs) IN - SOME ra <- load_stack m rs#SP Tptr f.(fn_retaddr_ofs) IN - match rs#SP with - | Vptr stk ofs => - SOME m' <- Mem.free m stk 0 f.(fn_stacksize) IN - Next (rs#SP <- sp #RA <- ra) m' - | _ => Stuck - end. - -Inductive cfi_step (f: function): control_flow_inst -> regset -> mem -> trace -> regset -> mem -> Prop := - | exec_MBcall sig ros rs m pc: - find_function_ptr ros rs = Some pc -> - cfi_step f (MBcall sig ros) rs m E0 ((rs#RA <- (rs#PC))#PC <- pc) m - | exec_MBtailcall sig ros rs m rs' m' pc: - find_function_ptr ros rs = Some pc -> - exec_epilogue f rs m = Next rs' m' -> - cfi_step f (MBtailcall sig ros) rs m E0 (rs'#PC <- pc) m' - | exec_MBreturn rs m rs' m': - exec_epilogue f rs m = Next rs' m' -> - cfi_step f MBreturn rs m E0 (rs'#PC <- (rs'#RA)) m' - | exec_MBgoto lbl rs m pc: - goto_label f lbl rs = Some pc -> - cfi_step f (MBgoto lbl) rs m E0 (rs#PC <- pc) m - | exec_MBcond_true cond args lbl rs m pc rs': - eval_condition cond (to_Machrs rs)##args m = Some true -> - goto_label f lbl rs = Some pc -> - rs' = set_from_Machrs (undef_regs (destroyed_by_cond cond) rs) rs -> - cfi_step f (MBcond cond args lbl) rs m E0 (rs'#PC <- pc) m - | exec_MBcond_false cond args lbl rs m rs': - eval_condition cond (to_Machrs rs)##args m = Some false -> - rs' = set_from_Machrs (undef_regs (destroyed_by_cond cond) rs) rs -> - cfi_step f (MBcond cond args lbl) rs m E0 rs' m - | exec_MBjumptable arg tbl rs m index lbl pc rs': - to_Machrs rs arg = Vint index -> - list_nth_z tbl (Int.unsigned index) = Some lbl -> - goto_label f lbl rs = Some pc -> - rs' = set_from_Machrs (undef_regs destroyed_by_jumptable rs) rs -> - cfi_step f (MBjumptable arg tbl) rs m E0 (rs'#PC <- pc) m - | exec_MBbuiltin rs m ef args res vargs t vres rs' m': - eval_builtin_args ge (to_Machrs rs) (rs#SP) m args vargs -> - external_call ef ge vargs m t vres m' -> - rs' = set_from_Machrs (set_res res vres (undef_regs (destroyed_by_builtin ef) rs)) rs -> - cfi_step f (MBbuiltin ef args res) rs m t rs' m' - . - -Inductive exit_step f : option control_flow_inst -> regset -> mem -> trace -> regset -> mem -> Prop := - | exec_Some_exit ctl rs m t rs' m': - cfi_step f ctl rs m t rs' m' -> - exit_step f (Some ctl) rs m t rs' m' - | exec_None_exit rs m: - exit_step f None rs m E0 rs m - . - -Inductive exec_bblock f: bblock -> regset -> mem -> trace -> regset -> mem -> Prop := - | exec_bblock_all (bb: bblock) rs0 m0 rs1 m1 pc t rs2 m2: - body_step f (body bb) rs0 m0 rs1 m1 -> - next_addr f rs1 = Some pc -> - exit_step f (exit bb) (rs1#PC <- pc) m1 t rs2 m2 -> - exec_bblock f bb rs0 m0 t rs2 m2. - -Definition exec_prologue f (pos:Z) (rs: regset) (m:mem) : option state := - if Z.eq_dec pos 0 then - let (m1, stk) := Mem.alloc m 0 f.(fn_stacksize) in - let sp := Vptr stk Ptrofs.zero in - SOME m2 <- store_stack m1 sp Tptr f.(fn_link_ofs) rs#SP IN - SOME m3 <- store_stack m2 sp Tptr f.(fn_retaddr_ofs) rs#RA IN - Next ((set_from_Machrs (undef_regs destroyed_at_function_entry rs) rs)#SP <- sp) m3 - else - Next rs m. - - -Inductive step: state -> trace -> state -> Prop := - | exec_step_internal b ofs f bb c rs0 m0 rs1 m1 t rs2 m2: - rs0 PC = Vptr b ofs -> - Genv.find_funct_ptr ge b = Some (Internal f) -> - is_pos f (Ptrofs.unsigned ofs) (bb::c) -> - exec_prologue f (Ptrofs.unsigned ofs) rs0 m0 = Next rs1 m1 -> - exec_bblock f bb rs1 m1 t rs2 m2 -> - step (State rs0 m0) t (State rs2 m2) - | exec_step_external: - forall b ef args res rs m t rs' m', - rs PC = Vptr b Ptrofs.zero -> - Genv.find_funct_ptr ge b = Some (External ef) -> - extcall_arguments (to_Machrs rs) m (rs#SP) (ef_sig ef) args -> - external_call ef ge args m t res m' -> - rs' = (set_from_Machrs (set_pair (loc_result (ef_sig ef)) res (undef_caller_save_regs rs)) rs) #PC <- (rs RA) -> - step (State rs m) t (State rs' m'). - -End RELSEM. - -Inductive initial_state (p: program): state -> Prop := - | initial_state_intro: forall m0, - let ge := Genv.globalenv p in - Genv.init_mem p = Some m0 -> - let rs0 := - (Pregmap.init Vundef) - # PC <- (Genv.symbol_address ge p.(prog_main) Ptrofs.zero) - # SP <- Vnullptr - # RA <- Vnullptr in - initial_state p (State rs0 m0). - -Inductive final_state: state -> int -> Prop := - | final_state_intro: forall rs m r retcode, - loc_result signature_main = One r -> - rs PC = Vnullptr -> - rs r = Vint retcode -> - final_state (State rs m) retcode. - -Definition semantics (next: function -> Z -> Z) (p: program) := - Semantics (step next) (initial_state p) final_state (Genv.globalenv p). diff --git a/scheduling/PseudoAsmblockproof.v b/scheduling/PseudoAsmblockproof.v deleted file mode 100644 index 67308278..00000000 --- a/scheduling/PseudoAsmblockproof.v +++ /dev/null @@ -1,1173 +0,0 @@ -Require Import Coqlib Maps AST Integers Values Memory Events Globalenvs Smallstep. -Require Import Op Machregs Locations Stacklayout Conventions. -Require Import Mach Machblock OptionMonad. -Require Import Errors Datatypes PseudoAsmblock IterList. - -(** Tiny translation from Machblock semantics to PseudoAsmblock semantics (needs additional checks) -*) - -Section TRANSLATION. - -(* In the actual Asmblock code, the prologue will be inserted in the first block of the function. - But, this block should have an empty header. -*) - -Definition has_header (c: code) : bool := - match c with - | nil => false - | bb::_ => match header bb with - | nil => false - | _ => true - end - end. - -Definition insert_implicit_prologue c := - if has_header c then {| header := nil; body := nil; exit := None |}::c else c. - -Definition transl_function (f: function) : function := - {| fn_sig:=fn_sig f; - fn_code:=insert_implicit_prologue (fn_code f); - fn_stacksize := fn_stacksize f; - fn_link_ofs := fn_link_ofs f; - fn_retaddr_ofs := fn_retaddr_ofs f - |}. - -Definition transf_function (f: function) : res function := - let tf := transl_function f in - (* removed because it is simpler or/and more efficient to perform this test in Asmblockgen ! - if zlt Ptrofs.max_unsigned (max_pos tf) - then Error (msg "code size exceeded") - else *) - OK tf. - -Definition transf_fundef (f: fundef) : res fundef := - transf_partial_fundef transf_function f. - -Definition transf_program (p: program) : res program := - transform_partial_program transf_fundef p. - -End TRANSLATION. - -(** Proof of the translation -*) - -Require Import Linking. -Import PseudoAsmblock.AsmNotations. - -Section PRESERVATION. - -Definition match_prog (p: program) (tp: program) := - match_program (fun _ f tf => transf_fundef f = OK tf) eq p tp. - -Lemma transf_program_match: - forall p tp, transf_program p = OK tp -> match_prog p tp. -Proof. - intros. eapply match_transform_partial_program; eauto. -Qed. - -Local Open Scope Z_scope. -Local Open Scope option_monad_scope. - -Variable prog: program. -Variable tprog: program. - -Hypothesis TRANSF: match_prog prog tprog. -Let ge := Genv.globalenv prog. -Let tge := Genv.globalenv tprog. - -Variable next: function -> Z -> Z. - -Hypothesis next_progress: forall (f:function) (pos:Z), (pos < (next f pos))%Z. - -Definition max_pos (f:function) := iter (S (length f.(fn_code))) (next f) 0. - -(* This hypothesis expresses that Asmgen checks for each tf - that (max_pos tf) represents a valid address -*) -Hypothesis functions_bound_max_pos: forall fb tf, - Genv.find_funct_ptr tge fb = Some (Internal tf) -> - (max_pos tf) <= Ptrofs.max_unsigned. - -(** * Agreement between Mach registers and PseudoAsm registers *) -Record agree (ms: Mach.regset) (sp: val) (rs: regset) : Prop := mkagree { - agree_sp: rs#SP = sp; - agree_sp_def: sp <> Vundef; - agree_mregs: forall r: mreg, (ms r)=(rs#r) -}. - -(** [transl_code_at_pc pc fb f tf c] holds if the code pointer [pc] points - within the code generated by Machblock function (originally [f] -- but translated as [tf]), - and [c] is the tail of the code at the position corresponding to the code pointer [pc]. -*) -Inductive transl_code_at_pc (b:block) (f:function) (tf:function) (c:code): val -> Prop := - transl_code_at_pc_intro ofs: - Genv.find_funct_ptr ge b = Some (Internal f) -> - transf_function f = OK tf -> - (* we have passed the first block containing the prologue *) - (0 < (Ptrofs.unsigned ofs))%Z -> - (* the code is identical in the two functions *) - is_pos next tf (Ptrofs.unsigned ofs) c -> - transl_code_at_pc b f tf c (Vptr b ofs). - -Inductive match_stack: list stackframe -> Prop := - | match_stack_nil: - match_stack nil - | match_stack_cons: forall fb sp ra c s f tf, - Genv.find_funct_ptr ge fb = Some (Internal f) -> - transl_code_at_pc fb f tf c ra -> - sp <> Vundef -> - match_stack s -> - match_stack (Stackframe fb sp ra c :: s). - -(** Semantic preservation is proved using simulation diagrams - of the following form. -<< - s1 ---------------- s2 - | | - t| *|t - | | - v v - s1'---------------- s2' ->> - The invariant is the [match_states] predicate below... - -*) - -Inductive match_states: Machblock.state -> state -> Prop := - | match_states_internal s fb sp c ms m rs f tf - (STACKS: match_stack s) - (FIND: Genv.find_funct_ptr ge fb = Some (Internal f)) - (AT: transl_code_at_pc fb f tf c (rs PC)) - (AG: agree ms sp rs): - match_states (Machblock.State s fb sp c ms m) - (State rs m) - | match_states_prologue s sp fb ms rs0 m0 f rs1 m1 - (STACKS: match_stack s) - (AG: agree ms sp rs1) - (ATPC: rs0 PC = Vptr fb Ptrofs.zero) - (ATLR: rs0 RA = parent_ra s) - (FIND: Genv.find_funct_ptr ge fb = Some (Internal f)) - (PROL: exec_prologue f 0 rs0 m0 = Next rs1 m1): - match_states (Machblock.State s fb sp (fn_code f) ms m1) - (State rs0 m0) - | match_states_call s fb ms m rs - (STACKS: match_stack s) - (AG: agree ms (parent_sp s) rs) - (ATPC: rs PC = Vptr fb Ptrofs.zero) - (ATLR: rs RA = parent_ra s): - match_states (Machblock.Callstate s fb ms m) - (State rs m) - | match_states_return s ms m rs - (STACKS: match_stack s) - (AG: agree ms (parent_sp s) rs) - (ATPC: rs PC = parent_ra s): - match_states (Machblock.Returnstate s ms m) - (State rs m). - -Definition measure (s: Machblock.state) : nat := - match s with - | Machblock.State _ _ _ _ _ _ => 0%nat - | Machblock.Callstate _ _ _ _ => 1%nat - | Machblock.Returnstate _ _ _ => 1%nat - end. - -Definition rao (f: function) (c: code) (ofs: ptrofs) : Prop := - forall tf, - transf_function f = OK tf -> - is_pos next tf (Ptrofs.unsigned ofs) c. - -Lemma symbols_preserved: - forall (s: ident), Genv.find_symbol tge s = Genv.find_symbol ge s. -Proof (Genv.find_symbol_match TRANSF). - -Lemma senv_preserved: - Senv.equiv ge tge. -Proof (Genv.senv_match TRANSF). - -Lemma functions_translated: - forall b f, - Genv.find_funct_ptr ge b = Some f -> - exists tf, - Genv.find_funct_ptr tge b = Some tf /\ transf_fundef f = OK tf. -Proof (Genv.find_funct_ptr_transf_partial TRANSF). - -Lemma functions_transl fb f tf: - Genv.find_funct_ptr ge fb = Some (Internal f) -> - transf_function f = OK tf -> - Genv.find_funct_ptr tge fb = Some (Internal tf). -Proof. - intros. exploit functions_translated; eauto. intros [tf' [A B]]. - monadInv B. inv H0; auto. -Qed. - -Lemma function_bound fb f tf: - Genv.find_funct_ptr ge fb = Some (Internal f) -> transf_function f = OK tf -> (max_pos tf) <= Ptrofs.max_unsigned. -Proof. - intros; eapply functions_bound_max_pos; eauto. - eapply functions_transl; eauto. -Qed. - -Lemma transf_function_def f tf: - transf_function f = OK tf -> tf.(fn_code) = insert_implicit_prologue f.(fn_code). -Proof. - unfold transf_function. - intros EQ; inv EQ. - auto. -Qed. - -Lemma stackinfo_preserved f tf: - transf_function f = OK tf -> - tf.(fn_stacksize) = f.(fn_stacksize) - /\ tf.(fn_retaddr_ofs) = f.(fn_retaddr_ofs) - /\ tf.(fn_link_ofs) = f.(fn_link_ofs). -Proof. - unfold transf_function. - intros EQ0; inv EQ0. simpl; intuition. -Qed. - -Lemma transf_initial_states st1: Machblock.initial_state prog st1 -> - exists st2, initial_state tprog st2 /\ match_states st1 st2. -Proof. - intro H. inversion H. unfold ge0 in *. - econstructor; split. - - econstructor. - eapply (Genv.init_mem_transf_partial TRANSF); eauto. - - replace (Genv.symbol_address (Genv.globalenv tprog) (prog_main tprog) Ptrofs.zero) - with (Vptr fb Ptrofs.zero). - + econstructor; eauto. - * constructor. - * split; auto; simpl; unfold Vnullptr; destruct Archi.ptr64; congruence. - + unfold Genv.symbol_address. - rewrite (match_program_main TRANSF). - rewrite symbols_preserved. - unfold ge. simplify_someHyp. auto. -Qed. - -Lemma transf_final_states st1 st2 r: - match_states st1 st2 -> Machblock.final_state st1 r -> final_state st2 r. -Proof. - intros H H0. inv H0. inv H. - econstructor; eauto. - exploit agree_mregs; eauto. - erewrite H2. intro H3; inversion H3. - auto. -Qed. - -(** Lemma on [is_pos]. *) - -Lemma is_pos_alt_def f pos code: is_pos next f pos code -> - exists n, (n <= List.length (fn_code f))%nat /\ pos = (iter n (next f) 0) /\ code = iter_tail n (fn_code f). -Proof. - induction 1. - - unfold iter_tail; exists O; simpl; intuition. - - destruct IHis_pos as (n & H0 & H1 & H2). - exists (S n). repeat split. - + rewrite (length_iter_tail n); eauto. - rewrite <- H2; simpl; omega. - + rewrite iter_S; congruence. - + unfold iter_tail in *; rewrite iter_S, <- H2; auto. -Qed. - -Local Hint Resolve First_pos Next_pos: core. - -Lemma is_pos_alt_def_recip f n: (n <= List.length (fn_code f))%nat -> - is_pos next f (iter n (next f) 0) (iter_tail n (fn_code f)). -Proof. - induction n. - - unfold iter_tail; simpl; eauto. - - intros H; destruct (iter_tail_S_ex n (fn_code f)) as (x & H1); try omega. - rewrite iter_S; lapply IHn; try omega. - rewrite H1; eauto. -Qed. - -Lemma is_pos_inject1 f pos1 pos2 code: - is_pos next f pos1 code -> is_pos next f pos2 code -> pos1=pos2. -Proof. - intros H1 H2. - destruct (is_pos_alt_def f pos1 code) as (n1 & B1 & POS1 & CODE1); eauto. - destruct (is_pos_alt_def f pos2 code) as (n2 & B2 & POS2 & CODE2); eauto. - clear H1 H2; subst. - erewrite (iter_tail_inject1 n1 n2); eauto. -Qed. - -Lemma iter_next_strict_monotonic f n m x: (n < m)%nat -> iter n (next f) x < iter m (next f) x. -Proof. - induction 1; rewrite iter_S; auto. - generalize (next_progress f (iter m (next f) x)). - omega. -Qed. - -Lemma iter_next_monotonic f n m x: (n <= m)%nat -> iter n (next f) x <= iter m (next f) x. -Proof. - destruct 1. - - omega. - - generalize (iter_next_strict_monotonic f n (S m) x). omega. -Qed. - -Lemma is_pos_bound_pos f pos code: - is_pos next f pos code -> 0 <= pos <= max_pos f. -Proof. - intros H; exploit is_pos_alt_def; eauto. - intros (n & H1 & H2 & H3). - rewrite H2. unfold max_pos. split. - - cutrewrite (0 = iter O (next f) 0); auto. - apply iter_next_monotonic; omega. - - apply iter_next_monotonic; omega. -Qed. - -Lemma is_pos_unsigned_repr f pos code: - is_pos next f pos code -> - max_pos f <= Ptrofs.max_unsigned -> - Ptrofs.unsigned (Ptrofs.repr pos) = pos. -Proof. - intros; eapply Ptrofs.unsigned_repr. - exploit is_pos_bound_pos; eauto. - omega. -Qed. - -Lemma is_pos_simplify f pos code: - is_pos next f pos code -> - max_pos f <= Ptrofs.max_unsigned -> - is_pos next f (Ptrofs.unsigned (Ptrofs.repr pos)) code. -Proof. - intros; erewrite is_pos_unsigned_repr; eauto. -Qed. - -Lemma find_label_label_pos f lbl c: forall pos c', - find_label lbl c = Some c' -> - exists n, - label_pos next f lbl pos c = Some (iter n (next f) pos) - /\ c' = iter_tail n c - /\ (n <= List.length c)%nat. -Proof. - induction c. - - simpl; intros. discriminate. - - simpl; intros pos c'. - destruct (is_label lbl a). - + intro EQ; injection EQ; intro; subst c'. - exists O; simpl; intuition. - + intros. generalize (IHc (next f pos) c' H). intros (n' & A & B & C). - exists (S n'). intuition. -Qed. - -Lemma find_label_insert_implicit_prologue lbl c: - find_label lbl c = find_label lbl (insert_implicit_prologue c). -Proof. - unfold insert_implicit_prologue. - destruct (has_header c); simpl; auto. - unfold is_label; simpl. - destruct (in_dec lbl nil); auto. - simpl in *. tauto. -Qed. - -Lemma no_header_insert_implicit_prologue c: - has_header (insert_implicit_prologue c) = false. -Proof. - unfold insert_implicit_prologue. - destruct (has_header c) eqn: H; simpl; auto. -Qed. - -Lemma find_label_has_header lbl c c': - find_label lbl c = Some c' -> - has_header c' = true. -Proof. - induction c; simpl; try congruence. - destruct (is_label lbl a) eqn:LAB; auto. - intros X; inv X; simpl. - unfold is_label in LAB. - destruct (in_dec lbl (header a)); try congruence. - destruct (header a); try congruence. - simpl in *; tauto. -Qed. - -Lemma find_label_label_pos_no_header f lbl c pos c': - (has_header c) = false -> - find_label lbl c = Some c' -> - exists n, - label_pos next f lbl pos c = Some (iter (S n) (next f) pos) - /\ c' = iter_tail (S n) c - /\ ((S n) <= List.length c)%nat. -Proof. - intros H H0; exploit find_label_label_pos; eauto. - intros ([|n] & H1 & H2 & H3); try (exists n; intuition eauto). - unfold iter_tail in *; simpl in *; subst. - erewrite find_label_has_header in H; eauto. - congruence. -Qed. - -Hint Resolve is_pos_simplify is_pos_alt_def_recip function_bound: core. - -Lemma find_label_goto_label f tf lbl rs c' b ofs: - Genv.find_funct_ptr ge b = Some (Internal f) -> - transf_function f = OK tf -> - Vptr b ofs = rs PC -> - find_label lbl f.(fn_code) = Some c' -> - exists pc, - goto_label next tf lbl rs = Some pc - /\ transl_code_at_pc b f tf c' pc. -Proof. - intros FINDF T HPC FINDL. - erewrite find_label_insert_implicit_prologue, <- transf_function_def in FINDL; eauto. - exploit find_label_label_pos_no_header; eauto. - { erewrite transf_function_def; eauto. - apply no_header_insert_implicit_prologue. - } - intros (n & LAB & CODE & BOUND); subst. - exists (Vptr b (Ptrofs.repr (iter (S n) (next tf) 0))). - unfold goto_label; intuition. - - simplify_someHyps; rewrite <- HPC. auto. - - econstructor; eauto. - erewrite is_pos_unsigned_repr; eauto. - generalize (iter_next_strict_monotonic tf O (S n) 0); simpl. - omega. -Qed. - -(** Preservation of register agreement under various assignments. *) - -Lemma agree_mregs_list ms sp rs: - agree ms sp rs -> - forall l, (ms##l)=(to_Machrs rs)##l. -Proof. - unfold to_Machrs. intros AG; induction l; simpl; eauto. - erewrite agree_mregs; eauto. - congruence. -Qed. - -Lemma agree_set_mreg ms sp rs r v rs': - agree ms sp rs -> - v=(rs'#(preg_of r)) -> - (forall r', r' <> preg_of r -> rs'#r' = rs#r') -> - agree (Regmap.set r v ms) sp rs'. -Proof. - intros H H0 H1. destruct H. split; auto. - - rewrite H1; auto. destruct r; simpl; congruence. - - intros. unfold Regmap.set. destruct (RegEq.eq r0 r). congruence. - rewrite H1; auto. destruct r; simpl; congruence. -Qed. - -Corollary agree_set_mreg_parallel: - forall ms sp rs r v, - agree ms sp rs -> - agree (Regmap.set r v ms) sp (Pregmap.set (preg_of r) v rs). -Proof. - intros. eapply agree_set_mreg; eauto. - - rewrite Pregmap.gss; auto. - - intros; apply Pregmap.gso; auto. -Qed. - -Corollary agree_set_mreg_parallel2: - forall ms sp rs r v ms', - agree ms sp (set_from_Machrs ms' rs)-> - agree (Regmap.set r v ms) sp (set_from_Machrs (Regmap.set r v ms') rs). -Proof. - intros. unfold set_from_Machrs in *. eapply agree_set_mreg; eauto. - - rewrite Regmap.gss; auto. - - intros r' X. destruct r'; try congruence. rewrite Regmap.gso; try congruence. -Qed. - -Definition data_preg (r: preg) : bool := - match r with - | preg_of _ | SP => true - | _ => false - end. - -Lemma agree_exten ms sp rs rs': - agree ms sp rs -> - (forall r, data_preg r = true -> rs'#r = rs#r) -> - agree ms sp rs'. -Proof. - intros H H0. destruct H. split; intros; try rewrite H0; auto. -Qed. - -Lemma agree_set_from_Machrs ms sp ms' rs: - agree ms sp rs -> - (forall (r:mreg), (ms' r) = rs#r) -> - agree ms sp (set_from_Machrs ms' rs). -Proof. - unfold set_from_Machrs; intros. - eapply agree_exten; eauto. - intros r; destruct r; simpl; try congruence. -Qed. - -Lemma agree_set_other ms sp rs r v: - agree ms sp rs -> - data_preg r = false -> - agree ms sp (rs#r <- v). -Proof. - intros; apply agree_exten with rs; auto. - intros. apply Pregmap.gso. congruence. -Qed. - - -Lemma agree_next_addr f ms sp b pos rs: - agree ms sp rs -> - agree ms sp (rs#PC <- (Vptr b (Ptrofs.repr (next f pos)))). -Proof. - intros. apply agree_set_other; auto. -Qed. - -Local Hint Resolve agree_set_mreg_parallel2: core. - -Lemma agree_set_pair sp p v ms ms' rs: - agree ms sp (set_from_Machrs ms' rs) -> - agree (set_pair p v ms) sp (set_from_Machrs (set_pair p v ms') rs). -Proof. - intros H; destruct p; simpl; auto. -Qed. - -Lemma agree_undef_caller_save_regs: - forall ms sp ms' rs, - agree ms sp (set_from_Machrs ms' rs) -> - agree (undef_caller_save_regs ms) sp (set_from_Machrs (undef_caller_save_regs ms') rs). -Proof. - intros. destruct H as [H0 H1 H2]. unfold undef_caller_save_regs. split; auto. - intros. - unfold set_from_Machrs in * |- *. - rewrite H2. auto. -Qed. - -Lemma agree_change_sp ms sp rs sp': - agree ms sp rs -> sp' <> Vundef -> - agree ms sp' (rs#SP <- sp'). -Proof. - intros H H0. inv H. split; auto. -Qed. - -Lemma agree_undef_regs ms sp rl ms' rs: - agree ms sp (set_from_Machrs ms' rs) -> - agree (Mach.undef_regs rl ms) sp (set_from_Machrs (Mach.undef_regs rl ms') rs). -Proof. - unfold set_from_Machrs; intros H. destruct H; subst. split; auto. - intros. destruct (In_dec mreg_eq r rl). - + rewrite! undef_regs_same; auto. - + rewrite! undef_regs_other; auto. -Qed. - -(** Translation of arguments and results to builtins. *) - -Remark builtin_arg_match: - forall ms rs sp m a v, - agree ms sp rs -> - eval_builtin_arg ge ms sp m a v -> - eval_builtin_arg ge (to_Machrs rs) sp m a v. -Proof. - induction 2; simpl; eauto with barg. - unfold to_Machrs; erewrite agree_mregs; eauto. - econstructor. -Qed. - -Lemma builtin_args_match: - forall ms sp rs m, - agree ms sp rs -> - forall al vl, eval_builtin_args ge ms sp m al vl -> - eval_builtin_args ge (to_Machrs rs) sp m al vl. -Proof. - induction 2; intros; simpl; try (constructor; auto). - eapply eval_builtin_arg_preserved; eauto. - eapply builtin_arg_match; eauto. -Qed. - -Lemma agree_set_res res: forall ms sp rs v ms', - agree ms sp (set_from_Machrs ms' rs) -> - agree (set_res res v ms) sp (set_from_Machrs (set_res res v ms') rs). -Proof. - induction res; simpl; auto. -Qed. - -Lemma find_function_ptr_agree ros ms rs sp b: - agree ms sp rs -> - Machblock.find_function_ptr ge ros ms = Some b -> - find_function_ptr tge ros rs = Some (Vptr b Ptrofs.zero). -Proof. - intros AG; unfold Mach.find_function_ptr; destruct ros as [r|s]; simpl; auto. - - generalize (agree_mregs _ _ _ AG r). destruct (ms r); simpl; try congruence. - intros H; inv H; try congruence. - inversion_ASSERT. intros H; rewrite (Ptrofs.same_if_eq _ _ H); eauto. - try_simplify_someHyps. - - intros H; rewrite symbols_preserved, H. auto. -Qed. - -Lemma parent_sp_def: forall s, match_stack s -> parent_sp s <> Vundef. -Proof. - induction 1; simpl. - unfold Vnullptr; destruct Archi.ptr64; congruence. - auto. -Qed. - -Lemma extcall_arg_match ms sp rs m l v: - agree ms sp rs -> - extcall_arg ms m sp l v -> - extcall_arg rs m (rs#SP) l v. -Proof. - destruct 2. - - erewrite agree_mregs; eauto. constructor. - - unfold load_stack in *. econstructor; eauto. - erewrite agree_sp; eauto. -Qed. - -Local Hint Resolve extcall_arg_match: core. - -Lemma extcall_arg_pair_match: - forall ms sp rs m p v, - agree ms sp rs -> - extcall_arg_pair ms m sp p v -> - extcall_arg_pair rs m (rs#SP) p v. -Proof. - destruct 2; constructor; eauto. -Qed. - -Local Hint Resolve extcall_arg_pair_match: core. - -Lemma extcall_args_match: - forall ms sp rs m, agree ms sp rs -> - forall ll vl, - list_forall2 (extcall_arg_pair ms m sp) ll vl -> - list_forall2 (extcall_arg_pair rs m rs#SP) ll vl. -Proof. - induction 2; constructor; eauto. -Qed. - -Lemma extcall_arguments_match: - forall ms m sp rs sg args, - agree ms sp rs -> - extcall_arguments ms m sp sg args -> - extcall_arguments rs m (rs#SP) sg args. -Proof. - unfold extcall_arguments, extcall_arguments; intros. - eapply extcall_args_match; eauto. -Qed. - -(** A few tactics *) - -Local Hint Resolve functions_transl symbols_preserved - agree_next_addr agree_mregs agree_set_mreg_parallel agree_undef_regs agree_set_other agree_change_sp - agree_sp_def agree_set_from_Machrs agree_set_pair agree_undef_caller_save_regs agree_set_res f_equal Ptrofs.repr_unsigned parent_sp_def - builtin_args_match external_call_symbols_preserved: core. - -Ltac simplify_regmap := - repeat (rewrite ?Pregmap.gss; try (rewrite Pregmap.gso; try congruence)). - -Ltac simplify_next_addr := - match goal with - | [ HPC: Vptr _ _ = _ PC |- _ ] => try (unfold next_addr, Val.offset_ptr); simplify_regmap; try (rewrite <- HPC) - end. - -Ltac discharge_match_states := - econstructor; eauto; try ( simplify_next_addr; econstructor; eauto ). - - -(** Instruction step simulation lemma: the simulation lemma for stepping one instruction - -<< - s1 ---------------- s2 - | | - t| +|t - | | - v v - s1'---------------- s2' ->> - -*) - -Lemma trivial_exec_prologue: - forall tf ofs rs m, - 0 < Ptrofs.unsigned ofs -> - exec_prologue tf (Ptrofs.unsigned ofs) rs m = Next rs m. -Proof. - unfold exec_prologue. intros. - destruct (Z.eq_dec); eauto. omega. -Qed. - -Lemma basic_step_simulation: forall ms sp rs s f tf fb ms' bi m m', - agree ms sp rs -> - match_stack s -> - transf_function f = OK tf -> - Genv.find_funct_ptr ge fb = Some (Internal f) -> - Machblock.basic_step ge s fb sp ms m bi ms' m' -> - exists rs', basic_step tge tf rs m bi rs' m' /\ agree ms' sp rs' /\ rs' PC = rs PC. -Proof. - destruct 5. - (* MBgetstack *) - - eexists; split. - + econstructor; eauto. erewrite agree_sp; eauto. - + eauto. - (* MBsetstack *) - - eexists; split. - + econstructor; eauto. - erewrite agree_sp; eauto. - erewrite <- agree_mregs; eauto. - + rewrite H4; split; eauto. - (* MBgetparam *) - - eexists; split. - + econstructor; eauto. - erewrite agree_sp; eauto. - assert (f = f0). { rewrite H2 in H3. inversion H3. reflexivity. } - assert (fn_link_ofs tf = fn_link_ofs f0). { - rewrite <- H7. - eapply stackinfo_preserved. eauto. - } - rewrite H8. eauto. - + rewrite H6; split; eauto. - (* MBop *) - - eexists; split. - + econstructor; eauto. - erewrite agree_sp; eauto. - erewrite agree_mregs_list in H3. - * erewrite <- H3. - eapply eval_operation_preserved; trivial. - * eauto. - + rewrite H4; split; eauto. - (* MBload *) - - eexists; split. - + econstructor; eauto. - erewrite agree_sp; eauto. erewrite <- agree_mregs_list; eauto. - erewrite <- H3. - eapply eval_addressing_preserved; trivial. - + rewrite H5; split; eauto. - (* MBload notrap1 *) - - eexists; split. - + eapply exec_MBload_notrap1; eauto. - erewrite agree_sp; eauto. - erewrite agree_mregs_list in H3; eauto. - * erewrite eval_addressing_preserved; eauto. - + rewrite H4; eauto. - (* MBload notrap2 *) - - eexists; split. - + eapply exec_MBload_notrap2; eauto. - erewrite agree_sp; eauto. - erewrite agree_mregs_list in H3; eauto. - * erewrite eval_addressing_preserved; eauto. - + rewrite H5; eauto. - (* MBstore *) - - eexists; split. - + econstructor; eauto. - * erewrite agree_sp; eauto. - erewrite agree_mregs_list in H3. - erewrite eval_addressing_preserved; eauto. - eauto. - * erewrite <- agree_mregs; eauto. - + rewrite H5; eauto. -Qed. - -Lemma body_step_simulation: forall ms sp s f tf fb ms' bb m m', - match_stack s -> - transf_function f = OK tf -> - Genv.find_funct_ptr ge fb = Some (Internal f) -> - Machblock.body_step ge s fb sp bb ms m ms' m' -> - forall rs, agree ms sp rs -> - exists rs', body_step tge tf bb rs m rs' m' /\ agree ms' sp rs' /\ rs' PC = rs PC. -Proof. - induction 4. - - repeat (econstructor; eauto). - - intros. exploit basic_step_simulation; eauto. - intros (rs'0 & BASIC & AG1' & AGPC1). - exploit IHbody_step; eauto. - intros (rs'1 & BODY & AG2' & AGPC2). - repeat (econstructor; eauto). - congruence. -Qed. - -Local Hint Resolve trivial_exec_prologue: core. - -Lemma exit_step_simulation s fb f sp c t bb ms m s1' tf rs pc - (STEP: Machblock.exit_step rao ge (exit bb) (Machblock.State s fb sp (bb :: c) ms m) t s1') - (STACKS: match_stack s) - (AG: agree ms sp rs) - (NXT: next_addr next tf rs = Some pc) - (AT: transl_code_at_pc fb f tf c pc): - exists rs' m', exit_step next tge tf (exit bb) (rs#PC <- pc) m t rs' m' /\ match_states s1' (State rs' m'). -Proof. - inv AT. - inv STEP. - (* cfi_step currently only defined for exec_MBcall, exec_MBreturn, and exec_MBgoto *) - - inversion H4; subst. clear H4. (* inversion_clear H4 does not work so well: it clears an important hypothesis about "sp" in the Mreturn case *) - (* MBcall *) - + eexists. eexists. split. - * apply exec_Some_exit. - apply exec_MBcall. - eapply find_function_ptr_agree; eauto. - * assert (f0 = f). { congruence. } subst. - assert (Ptrofs.unsigned ra = Ptrofs.unsigned ofs). { - eapply is_pos_inject1; eauto. - } - assert (ofs = ra). { - apply Ptrofs.same_if_eq. unfold Ptrofs.eq. - rewrite H4. rewrite zeq_true. reflexivity. - } - repeat econstructor; eauto. - -- unfold rao in *. congruence. - -- simpl. simplify_regmap. - erewrite agree_sp; eauto. - -- simpl. simplify_regmap. auto. - (* MBtailcall *) - + assert (f0 = f). { congruence. } subst. - eexists. eexists. split. - * repeat econstructor. - -- eapply find_function_ptr_agree; eauto. - -- unfold exec_epilogue. erewrite agree_sp; eauto. - apply stackinfo_preserved in H0 as ( SS & RA & LO ). - rewrite SS, RA, LO. - try_simplify_someHyps. - * repeat econstructor; eauto. - intros r. - eapply agree_mregs; eapply agree_set_other; eauto. - (* MBbuiltin *) - +eexists. eexists. split. - * repeat econstructor. - -- simplify_regmap. erewrite agree_sp; eauto. - eapply eval_builtin_args_preserved; eauto. - -- eapply external_call_symbols_preserved; eauto. - exact senv_preserved. - * repeat econstructor; eauto. - -- assert (transl_function f = tf). { - unfold transf_function in *. congruence. - } - erewrite H5. assumption. - -- eapply agree_sp. eapply agree_set_res. eapply agree_undef_regs. - eapply agree_set_from_Machrs; eauto. - -- intros; simpl. - eapply agree_set_res. eapply agree_undef_regs. - eapply agree_set_from_Machrs; eauto. - (* MBgoto *) - + simplify_someHyps. intros. - assert ((rs # PC <- (Vptr fb ofs)) PC = Vptr fb ofs). { - rewrite Pregmap.gss. reflexivity. - } - eassert (exists pc, goto_label next tf lbl rs # PC <- (Vptr fb ofs) = Some pc - /\ transl_code_at_pc fb f tf c' pc) as (pc & GOTO_LABEL & _). { - eapply find_label_goto_label; eauto. - } - eexists. eexists. split. - * apply exec_Some_exit. - apply exec_MBgoto. - rewrite GOTO_LABEL. trivial. - * repeat econstructor; eauto. - -- simplify_regmap. - exploit find_label_goto_label; eauto. intros (pc' & GOTO_LABEL' & TRANSL). - assert(pc' = pc). { congruence. } subst. eauto. - -- simplify_regmap. erewrite agree_sp; eauto. - (* MBcond true *) - (* Mostly copy and paste from MBgoto *) - + simplify_someHyps. intros. - assert ((rs # PC <- (Vptr fb ofs)) PC = Vptr fb ofs). { - rewrite Pregmap.gss. reflexivity. - } - eassert (exists pc, goto_label next tf lbl rs # PC <- (Vptr fb ofs) = Some pc - /\ transl_code_at_pc fb f tf c' pc) as (pc & GOTO_LABEL & _). { - eapply find_label_goto_label; eauto. - } - eexists. eexists. split. - * apply exec_Some_exit. eapply exec_MBcond_true; eauto. - erewrite agree_mregs_list in H14; eauto. - * repeat econstructor; eauto. - -- simplify_regmap. - exploit find_label_goto_label; eauto. intros (pc' & GOTO_LABEL' & TRANSL). - assert(pc' = pc). { congruence. } subst. eauto. - -- simplify_regmap. erewrite agree_sp; eauto. - (* MBcond false *) - + inv H0. eexists. eexists. split. - * apply exec_Some_exit. apply exec_MBcond_false. - -- erewrite agree_mregs_list in H15; eauto. - -- trivial. - * repeat econstructor; eauto. erewrite agree_sp; eauto. - (* MBjumptable *) - + simplify_someHyps. intros. - assert ((rs # PC <- (Vptr fb ofs)) PC = Vptr fb ofs). { - rewrite Pregmap.gss. reflexivity. - } - eassert (exists pc, goto_label next tf lbl rs # PC <- (Vptr fb ofs) = Some pc - /\ transl_code_at_pc fb f tf c' pc) as (pc & GOTO_LABEL & _). { - eapply find_label_goto_label; eauto. - } - eexists. eexists. split. - * repeat econstructor; eauto. - rewrite <- H14. - symmetry. eapply agree_mregs. eapply agree_set_other; eauto. - * repeat econstructor; eauto. - (* copy paste from MBgoto *) - -- simplify_regmap. - exploit find_label_goto_label; eauto. intros (pc' & GOTO_LABEL' & TRANSL). - assert(pc' = pc). { congruence. } subst. eauto. - -- simplify_regmap. erewrite agree_sp; eauto. - -- intros; simplify_regmap. eauto. - + (* MBreturn *) - try_simplify_someHyps. - eexists. eexists. split. - * apply exec_Some_exit. - apply exec_MBreturn. - unfold exec_epilogue. - erewrite agree_sp; eauto. - apply stackinfo_preserved in H0 as ( SS & RA & LO ). - rewrite SS, RA, LO. - try_simplify_someHyps. - * repeat econstructor; eauto. intros r. - simplify_regmap. eapply agree_mregs; eauto. - - inv H0; repeat econstructor; eauto. - erewrite agree_sp; eauto. -Qed. - -Lemma inst_step_simulation s fb f sp c t ms m s1' tf rs - (STEP: Machblock.step rao ge (Machblock.State s fb sp c ms m) t s1') - (STACKS: match_stack s) - (AT: transl_code_at_pc fb f tf c (rs PC)) - (AG: agree ms sp rs): - exists s2' : state, plus (step next) tge (State rs m) t s2' /\ match_states s1' s2'. -Proof. - inv STEP. - inv AT. - exploit body_step_simulation; eauto. intros (rs0' & BODY & AG0 & AGPC). - assert (NXT: next_addr next tf rs0' = Some (Vptr fb (Ptrofs.repr (next tf (Ptrofs.unsigned ofs))))). - { unfold next_addr; rewrite AGPC, <- H; simpl; eauto. } - exploit exit_step_simulation; eauto. - { econstructor; eauto. - erewrite is_pos_unsigned_repr; eauto. - generalize (next_progress tf (Ptrofs.unsigned ofs)); omega. } - intros (rs2 & m2 & STEP & MS). - eexists. - split; eauto. - eapply plus_one. - eapply exec_step_internal; eauto. - econstructor; eauto. -Qed. - -Lemma prologue_preserves_pc: forall f rs0 m0 rs1 m1, - exec_prologue f 0 rs0 m0 = Next rs1 m1 -> - rs1 PC = rs0 PC. -Proof. - unfold exec_prologue; simpl; - intros f rs0 m0 rs1 m1 H. - destruct (Mem.alloc m0 0 (fn_stacksize f)) in H; unfold Next in H. - simplify_someHyps; inversion_SOME ignored; inversion_SOME ignored'; - intros ? ? H'; inversion H'; trivial. -Qed. - -Lemma is_pos_next_zero bb c fb f - (FIND : Genv.find_funct_ptr ge fb = Some (Internal f)) - (FN_HEAD : bb :: c = fn_code f): - is_pos next (transl_function f) (next (transl_function f) (Ptrofs.unsigned Ptrofs.zero)) (if has_header (fn_code f) then bb::c else c). -Proof. - exploit (transf_function_def f). unfold transf_function; auto. - unfold insert_implicit_prologue. - intros fn_code_tf; destruct (has_header (fn_code f)); - eapply Next_pos; rewrite Ptrofs.unsigned_zero; - rewrite FN_HEAD; rewrite <- fn_code_tf; apply First_pos. -Qed. - -Lemma prologue_simulation_no_header_step t s1' s sp fb ms f m1 rs0 m0 rs1 - (STACKS : match_stack s) - (AG : agree ms sp rs1) - (ATPC : rs0 PC = Vptr fb Ptrofs.zero) - (ATLR : rs0 RA = parent_ra s) - (FIND : Genv.find_funct_ptr ge fb = Some (Internal f)) - (PROL : exec_prologue f 0 rs0 m0 = Next rs1 m1) - (STEP : Machblock.step rao ge (Machblock.State s fb sp (fn_code f) ms m1) t s1') - (NO_HEADER: has_header (fn_code f) = false): - exists s2' : state, step next tge {| _rs := rs0; _m := m0 |} t s2' /\ match_states s1' s2'. -Proof. - inv STEP. - - exploit functions_translated; eauto; - intros (tf & FINDtf & TRANSf); monadInv TRANSf. - assert (fn_code f = fn_code (transl_function f)) as TF_CODE. { - unfold transl_function; simpl; unfold insert_implicit_prologue; - rewrite NO_HEADER; trivial. - } - - exploit body_step_simulation; eauto; unfold transf_function; auto. - intros (rs0' & BODY & AG0 & AGPC). - - exploit prologue_preserves_pc; eauto. - intros AGPC'. - - exploit is_pos_next_zero; eauto; rewrite NO_HEADER. - intros IS_POS. - - exploit transl_code_at_pc_intro; eauto; unfold transf_function; auto. { - rewrite Ptrofs.unsigned_zero; erewrite is_pos_unsigned_repr; eauto. - } intros TRANSL_CODE. - - assert (next_addr next (transl_function f) rs0' = - Some (Vptr fb (Ptrofs.repr (next (transl_function f) - (Ptrofs.unsigned Ptrofs.zero))))) as NEXT_ADDR. { - unfold next_addr; rewrite AGPC; rewrite AGPC'; rewrite ATPC; reflexivity. - } - - exploit exit_step_simulation; eauto. - intros (? & ? & EXIT_STEP & MATCH_EXIT). - - exploit exec_bblock_all; eauto. - intros EXEC_BBLOCK. - - exploit exec_step_internal; eauto. - apply is_pos_simplify; eauto. rewrite H3; rewrite TF_CODE; apply First_pos. -Qed. - -Lemma prologue_simulation_header_step t s1' s sp fb ms f m1 rs0 m0 rs1 - (STACKS : match_stack s) - (AG : agree ms sp rs1) - (ATPC : rs0 PC = Vptr fb Ptrofs.zero) - (ATLR : rs0 RA = parent_ra s) - (FIND : Genv.find_funct_ptr ge fb = Some (Internal f)) - (PROL : exec_prologue f 0 rs0 m0 = Next rs1 m1) - (STEP : Machblock.step rao ge (Machblock.State s fb sp (fn_code f) ms m1) t s1') - (HEADER: has_header (fn_code f) = true): - exists s2' : state, plus (step next) tge {| _rs := rs0; _m := m0 |} t s2' /\ match_states s1' s2'. -Proof. - inv STEP. - - (* FIRST STEP *) - exploit functions_translated; eauto; - intros (tf & FINDtf & TRANSf); monadInv TRANSf. - exploit transf_function_def; eauto; unfold transf_function; auto; - unfold insert_implicit_prologue; rewrite HEADER; intros TF_CODE. - - exploit is_pos_next_zero; eauto; rewrite HEADER; rewrite H3; - intros IS_POS. - - exploit prologue_preserves_pc; eauto. - intros AGPC'. - - assert ( next_addr next (transl_function f) rs1 - = Some (Vptr fb (Ptrofs.repr (next (transl_function f) (Ptrofs.unsigned Ptrofs.zero)))) - ) as NEXT_ADDR0. { unfold next_addr; rewrite AGPC'; rewrite ATPC; trivial. } - - exploit exec_nil_body; intros BODY0. - assert ((body {| header := nil; body := nil; exit := None |}) = nil) as NIL; auto. - rewrite <- NIL in BODY0. - - exploit exec_None_exit; intros EXIT0. - assert ((exit {| header := nil; body := nil; exit := None |}) = None) as NONE; auto. - rewrite <- NONE in EXIT0. - - exploit exec_bblock_all; eauto; - intros BBLOCK0. - - exploit exec_step_internal; eauto. rewrite <- TF_CODE; apply First_pos. - intros STEP0. - - clear BODY0 BBLOCK0 EXIT0. - - (* SECOND step *) - - exploit (mkagree ms sp - (rs1 # PC <- (Vptr fb (Ptrofs.repr (next (transl_function f) - (Ptrofs.unsigned Ptrofs.zero)))))); eauto. - apply (agree_sp ms); apply agree_set_other; eauto. - intros AG'. - - exploit body_step_simulation; eauto; unfold transf_function; auto. - intros (rs1' & BODY1 & AGRS1' & AGPC). - - assert ( next_addr next (transl_function f) rs1' - = Some (Vptr fb (Ptrofs.repr (next (transl_function f) (Ptrofs.unsigned - (Ptrofs.repr (next (transl_function f) (Ptrofs.unsigned Ptrofs.zero))))))) - ) as NEXT_ADDR1. { unfold next_addr; rewrite AGPC; reflexivity. } - - assert (IS_POS' := IS_POS). - rewrite <- H3 in IS_POS'; apply Next_pos in IS_POS'. - exploit transl_code_at_pc_intro; eauto; unfold transf_function; auto. { - rewrite Ptrofs.unsigned_zero; erewrite is_pos_unsigned_repr; eauto. - assert (0 < next (transl_function f) 0) as Z0. { apply next_progress. } - assert ( next (transl_function f) 0 - < next (transl_function f) (next (transl_function f) 0) - ) as Z1. { apply next_progress. } - rewrite <- Z1. exact Z0. - } intros TRANSL_CODE1. - - exploit exit_step_simulation; eauto. - rewrite Ptrofs.unsigned_repr. - 2: { - assert(max_pos (transl_function f) <= Ptrofs.max_unsigned) as MAX_POS. { - eapply functions_bound_max_pos; eauto. - } - rewrite <- MAX_POS. - eapply is_pos_bound_pos; eauto. - } - exact TRANSL_CODE1. - intros (? & ? & EXIT_STEP & MATCH_EXIT). - - exploit (trivial_exec_prologue (transl_function f) (Ptrofs.repr (next (transl_function f) (Ptrofs.unsigned Ptrofs.zero)))). { - rewrite Ptrofs.unsigned_zero; erewrite is_pos_unsigned_repr; eauto. - } intros NO_PROL. - - exploit exec_bblock_all; eauto; intros BBLOCK1. - - clear AGPC. - rewrite <- H3 in IS_POS. - exploit (exec_step_internal next tge fb - (Ptrofs.repr (next (transl_function f) (Ptrofs.unsigned Ptrofs.zero))) - (transl_function f) - bb c); simplify_regmap; eauto. - - intros STEP1. - - eexists; split. - + eapply plus_two. - * exact STEP0. - * exact STEP1. - * trivial. - + assumption. -Qed. - -Lemma step_simulation s1 t s1': - Machblock.step rao ge s1 t s1' -> - forall s2, match_states s1 s2 -> - (exists s2', plus (step next) tge s2 t s2' /\ match_states s1' s2') \/ ((measure s1' < measure s1)%nat /\ t = E0 /\ match_states s1' s2). -Proof. - intros STEP s2 MATCH; destruct MATCH. - - exploit inst_step_simulation; eauto. - - left. - destruct (has_header (fn_code f)) eqn:NO_HEADER. - + eapply prologue_simulation_header_step; eauto. - + exploit prologue_simulation_no_header_step; eauto; - intros (s2' & NO_HEADER_STEP & MATCH_STATES). - eexists; split; eauto. - apply plus_one; eauto. - - inv STEP; simpl; exploit functions_translated; eauto; - intros (tf0 & FINDtf & TRANSf); - monadInv TRANSf. - * (* internal calls *) - right. - intuition. - econstructor; eauto. - -- exploit - (mkagree (undef_regs destroyed_at_function_entry ms) - sp - (set_from_Machrs (undef_regs destroyed_at_function_entry rs) rs) # SP <- sp - ); eauto. - ++ unfold sp; discriminate. - ++ intros mr; unfold undef_regs; - induction destroyed_at_function_entry as [ | ? ? IH]. - ** inversion AG as [_ _ AG_MREGS]; apply AG_MREGS. - ** fold undef_regs in *; - unfold Regmap.set; simpl; rewrite IH; reflexivity. - -- unfold exec_prologue; - inversion AG as (RS_SP & ?); rewrite RS_SP; fold sp; - rewrite H4; fold sp; rewrite H7; rewrite ATLR; rewrite H8; eauto. - * (* external calls *) - left. - exploit extcall_arguments_match; eauto. - eexists; split. - + eapply plus_one. - eapply exec_step_external; eauto. - eapply external_call_symbols_preserved; eauto. apply senv_preserved. - + econstructor; eauto. - - (* Returnstate *) - inv STEP; simpl; right. - inv STACKS; simpl in *; subst. - repeat (econstructor; eauto). -Qed. - -(** * The main simulation theorem *) - -Theorem transf_program_correct: - forward_simulation (Machblock.semantics rao prog) (semantics next tprog). -Proof. - eapply forward_simulation_star with (measure := measure). - apply senv_preserved. - - eexact transf_initial_states. - - eexact transf_final_states. - - eexact step_simulation. -Qed. - -End PRESERVATION. |