(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<set>} {<-x>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:THERE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_Number '$0')}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s|[^/]*$||'>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) ) <..> ) } spids: [24] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ (${ Id.VSub_Name THERE))} {<Id.Lit_RBracket ']'>}) (C {<exec>} {(DQ ($ Id.VSub_At '$@'))}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBCRYPTOSO) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <'/libcrypto.so'>)} spids: [76] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-h>} {(DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBCRYPTOSO) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name THERE) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<ls>} {<-l>} {(DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO'))}) (C {<sed>} {<-e>} {(SQ <'s|.*\\-> ||'>)}) ] negated: F ) ) ) } spids: [116] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOSUFFIX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(${ Id.VSub_Name LIBCRYPTOSO)}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s|.*\\.so||'>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) ) } spids: [151] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBSSLSO) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <'/libssl.so'> (${ Id.VSub_Name SOSUFFIX))} spids: [178] ) ] ) ] spids: [84 97] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYSNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Subshell child: (C {<uname>} {<-s>}) redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] ) ) } spids: [192] ) ] ) terminator: <Id.Op_Semi _> ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$SYSNAME'))} arms: [ (case_arm pat_list: [{<SunOS>} {<IRIX> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rld_var) op: assign_op.Equal rhs: {<LD_LIBRARY_PATH>} spids: [230] ) ] ) (command.Case to_match: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Subshell child: (C {<'/usr/bin/file'>} {(DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO'))}) redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] ) ) ) } arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <64> <Id.Lit_Star '*'> <SPARC> <Id.Lit_Star '*'> } {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <64> <Id.Lit_Star '*'> <AMD64> <Id.Lit_Star '*'> } ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LD_LIBRARY_PATH_64'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rld_var) op: assign_op.Equal rhs: {<LD_LIBRARY_PATH_64>} spids: [286] ) ] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LD_PRELOAD_64) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <' '> ($ Id.VSub_DollarName '$LIBSSLSO') ) } spids: [290] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<LD_PRELOAD_64>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:preload_var) op: assign_op.Equal rhs: {<LD_PRELOAD_64>} spids: [303] ) ] ) ] spids: [256 271 307 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <32> <Id.Lit_Star '*'> <SPARC> <Id.Lit_Star '*'> } {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <32> <Id.Lit_Star '*'> <80386> <Id.Lit_Star '*'> } ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/lib/64/ld.so.1'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LD_LIBRARY_PATH_32'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rld_var) op: assign_op.Equal rhs: {<LD_LIBRARY_PATH_32>} spids: [362] ) ] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LD_PRELOAD_32) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <' '> ($ Id.VSub_DollarName '$LIBSSLSO') ) } spids: [366] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<LD_PRELOAD_32>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:preload_var) op: assign_op.Equal rhs: {<LD_PRELOAD_32>} spids: [379] ) ] ) ] spids: [336 347] ) ] ) ] spids: [310 325 386 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <32> <Id.Lit_Star '*'> <MIPS> <Id.Lit_Star '*'> } ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_RLD_ROOT) op: assign_op.Equal rhs: {<'/no/such/dir'>} spids: [427] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<_RLD_ROOT>}) (C {<eval>} {($ Id.VSub_DollarName '$rld_var') <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'/usr/lib'> (SQ <'${'>) ($ Id.VSub_DollarName '$rld_var') (SQ <':+:$'>) ($ Id.VSub_DollarName '$rld_var') (SQ <'}'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:preload_var) op: assign_op.Equal rhs: {<_RLD_LIST>} spids: [456] ) ] ) ] spids: [413 420 460 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <N32> <Id.Lit_Star '*'> <MIPS> <Id.Lit_Star '*'> } ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LD_LIBRARYN32_PATH'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rld_var) op: assign_op.Equal rhs: {<LD_LIBRARYN32_PATH>} spids: [485] ) ] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_RLDN32_ROOT) op: assign_op.Equal rhs: {<'/no/such/dir'>} spids: [493] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<_RLDN32_ROOT>}) (C {<eval>} {($ Id.VSub_DollarName '$rld_var') <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'/usr/lib32'> (SQ <'${'>) ($ Id.VSub_DollarName '$rld_var') (SQ <':+:$'>) ($ Id.VSub_DollarName '$rld_var') (SQ <'}'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:preload_var) op: assign_op.Equal rhs: {<_RLDN32_LIST>} spids: [522] ) ] ) ] spids: [463 470 526 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <ELF> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <64> <Id.Lit_Star '*'> <MIPS> <Id.Lit_Star '*'> } ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LD_LIBRARY64_PATH'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rld_var) op: assign_op.Equal rhs: {<LD_LIBRARY64_PATH>} spids: [551] ) ] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_RLD64_ROOT) op: assign_op.Equal rhs: {<'/no/such/dir'>} spids: [559] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<_RLD64_ROOT>}) (C {<eval>} {($ Id.VSub_DollarName '$rld_var') <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'/usr/lib64'> (SQ <'${'>) ($ Id.VSub_DollarName '$rld_var') (SQ <':+:$'>) ($ Id.VSub_DollarName '$rld_var') (SQ <'}'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:preload_var) op: assign_op.Equal rhs: {<_RLD64_LIST>} spids: [588] ) ] ) ] spids: [529 536 592 -1] ) ] ) (command.Sentence child: (C {<eval>} {($ Id.VSub_DollarName '$rld_var') <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name THERE) (SQ <'${'>) ($ Id.VSub_DollarName '$rld_var') (SQ <':+:$'>) ($ Id.VSub_DollarName '$rld_var') (SQ <'}'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ) terminator: <Id.Op_Semi _> ) (C {<export>} {($ Id.VSub_DollarName '$rld_var')}) (C {<unset>} {<rld_var>}) ] spids: [215 219 630 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LD_LIBRARY_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <':'> ($ Id.VSub_DollarName '$LD_LIBRARY_PATH'))} spids: [635] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DYLD_LIBRARY_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <':'> ($ Id.VSub_DollarName '$DYLD_LIBRARY_PATH'))} spids: [648] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SHLIB_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <':'> ($ Id.VSub_DollarName '$SHLIB_PATH'))} spids: [661] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBPATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <':'> ($ Id.VSub_DollarName '$LIBPATH'))} spids: [674] ) ] ) (C {<export>} {<LD_LIBRARY_PATH>} {<DYLD_LIBRARY_PATH>} {<SHLIB_PATH>} {<LIBPATH>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OSTYPE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<msdosdjgpp>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THERE) <':'> ($ Id.VSub_DollarName '$PATH'))} spids: [733] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<PATH>}) ] spids: [714 730] ) ] ) ] spids: [632 633 751 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO'))} {<-a>} {<-z>} {(DQ ($ Id.VSub_DollarName '$preload_var'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$SYSNAME'))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <BSD>} {<QNX>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LD_PRELOAD) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <':'> ($ Id.VSub_DollarName '$LIBSSLSO') ) } spids: [819] ) ] ) ] spids: [813 817 826 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LD_PRELOAD) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <' '> ($ Id.VSub_DollarName '$LIBSSLSO') ) } spids: [835] ) ] ) ] spids: [832 833 842 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_RLD_LIST) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <':'> ($ Id.VSub_DollarName '$LIBSSLSO') <':DEFAULT'> ) } spids: [851] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DYLD_INSERT_LIBRARIES) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$LIBCRYPTOSO') <':'> ($ Id.VSub_DollarName '$LIBSSLSO') ) } spids: [863] ) ] ) (C {<export>} {<LD_PRELOAD>} {<_RLD_LIST>} {<DYLD_INSERT_LIBRARIES>}) ] spids: [756 777] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cmd) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1') (${ Id.VSub_Name EXE_EXT))} spids: [885] ) ] ) (C {<shift>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<exec>} {(DQ ($ Id.VSub_DollarName '$cmd'))})] spids: [895 908] ) ] else_action: [(C {<exec>} {(DQ ($ Id.VSub_DollarName '$cmd'))} {(DQ ($ Id.VSub_At '$@'))})] ) ] )