(CommandList children: [ (FuncDef name: check body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Pipeline children: [ (C {(grep)} {(-q)} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$1'))}) ] negated: T ) ] action: [ (C {(echo)} {(DQ ('Did not find expected segment in ') ($ VSub_Number '$1') (':'))}) (C {(echo)} {(DQ (' ') ($ VSub_Number '$2'))}) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('Actual output below:'))}) (C {(cat)} {(DQ ($ VSub_Number '$1'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 92] ) ] spids: [16777215 137] ) ] spids: [72] ) spids: [68 71] ) (FuncDef name: check_count body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-c)} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$1'))} ) ] ) left_token: <Left_Backtick '`'> spids: [154 166] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$3'))} ) ] action: [ (C {(echo)} {(DQ ('Did not find expected segment in ') ($ VSub_Number '$1') (':'))}) (C {(echo)} {(DQ (' ') ($ VSub_Number '$2'))}) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('Actual output below:'))}) (C {(cat)} {(DQ ($ VSub_Number '$1'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 177] ) ] spids: [16777215 222] ) ] spids: [146] ) spids: [142 145] ) (C {(check_count)} {(script_test_3.stdout)} {(DQ ('^ INTERP'))} {(1)}) (C {(check_count)} {(script_test_3.stdout)} {(DQ ('^ LOAD'))} {(3)}) (C {(check_count)} {(script_test_3.stdout)} {(DQ ('^ DYNAMIC'))} {(1)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:section) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(fgrep)} {(.interp)} {(script_test_3.stdout)}) (C {(grep)} {(PROGBITS)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [265 277] ) } spids: [264] ) ] spids: [264] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$section'))} {(Lit_Other '=')} {(DQ )}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Did not find .interp section'))}) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('Actual output below:'))}) (C {(cat)} {(script_test_3.stdout)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 293] ) ] spids: [16777215 325] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:section) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$section'))}) (C {(sed)} {(-e)} {(SQ <'s/[][]*//g'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [334 350] ) } spids: [333] ) ] spids: [333] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:section_size) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$section'))}) (C {(awk)} {(SQ <'{ print $6; }'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [353 367] ) } spids: [352] ) ] spids: [352] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:segment) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(grep)} {(SQ <'^ INTERP'>)} {(script_test_3.stdout)})] ) left_token: <Left_Backtick '`'> spids: [371 379] ) } spids: [370] ) ] spids: [370] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:segment_size) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$segment'))}) (C {(awk)} {(SQ <'{ print $5; }'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [385 399] ) } spids: [384] ) ] spids: [384] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:section_size) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$section_size'))}) (C {(sed)} {(-e)} {(SQ <'s/^0*//'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [409 425] ) } spids: [408] ) ] spids: [408] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:segment_size) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$segment_size'))}) (C {(sed)} {(-e)} {(SQ <'s/^0x//'>)} {(-e)} {(SQ <'s/^0*//'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [428 450] ) } spids: [427] ) ] spids: [427] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$section_size'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$segment_size'))} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('.interp size ') ($ VSub_Name '$section_size') (' != PT_INTERP size ') ($ VSub_Name '$segment_size') ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 469] ) ] spids: [16777215 486] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(no)} spids:[492])] spids: [492] ) (ForEach iter_name: a iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(LOAD)} {(script_test_3.stdout)}) (C {(sed)} {(-e)} {(SQ <'s/^.* 0x/0x/'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [501 517] ) } ] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script) op: Equal rhs: { (DQ ('BEGIN { if (') ($ VSub_Name '$a') (' >= 0x100000) { print ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (true) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' } else { print ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (false) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' } }') ) } spids: [523] ) ] spids: [523] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(awk)} {(DQ ($ VSub_Name '$script'))}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(/dev/null)} spids: [547] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [540 550] ) } spids: [539] ) ] spids: [539] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$x'))} {(Lit_Other '=')} {(DQ (true))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(yes)} spids:[571])] spids: [571] ) ] spids: [16777215 568] ) ] spids: [16777215 575] ) ] spids: [520 577] ) spids: [500 518] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$found'))} {(Lit_Other '=')} {(DQ (no))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('no LOAD segment has required alignment'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 594] ) ] spids: [16777215 608] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )