(List (If (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -ne]} {[LIT_CHARS 2]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: bad_path.sh "]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('dir', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('key', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('name', {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub dir]]})]})]) (= scope= flags=0 words=[] bindings=[('crx', {[DQ [VarSub name][LIT_CHARS .crx]]})]) (= scope= flags=0 words=[] bindings=[('pub', {[DQ [VarSub name][LIT_CHARS .pub]]})]) (= scope= flags=0 words=[] bindings=[('sig', {[DQ [VarSub name][LIT_CHARS .sig]]})]) (= scope= flags=0 words=[] bindings=[('zip', {[DQ [VarSub name][LIT_CHARS .zip]]})]) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS EXIT]}) (= scope= flags=0 words=[] bindings=[('cwd', {[ComSub (Com {[LIT_CHARS pwd]} {[LIT_CHARS -P]})]})]) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub dir]]}) (Com {[LIT_CHARS zip]} {[LIT_CHARS -qr]} {[LIT_CHARS -9]} {[LIT_CHARS -X]} {[DQ [VarSub cwd][LIT_CHARS /][VarSub zip]]} {[LIT_CHARS .]}) ) ) (Com {[LIT_CHARS openssl]} {[LIT_CHARS sha1]} {[LIT_CHARS -sha1]} {[LIT_CHARS -binary]} {[LIT_CHARS -sign]} {[DQ [VarSub key]]} < (FilenameRedirectNode filename={[DQ [VarSub zip]]} 0), (FilenameRedirectNode filename={[DQ [VarSub sig]]} "> 1), > ) (Com {[LIT_CHARS openssl]} {[LIT_CHARS rsa]} {[LIT_CHARS -pubout]} {[LIT_CHARS -outform]} {[LIT_CHARS DER]} < (FilenameRedirectNode filename={[DQ [VarSub key]]} 0), (FilenameRedirectNode filename={[DQ [VarSub pub]]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (FunctionDef byte_swap [] (Com {[LIT_CHARS echo]} {[DQ [VarSub 1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 6]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}]][VarSub 1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 4]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}]][VarSub 1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}]][VarSub 1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}]]]}) ) (= scope= flags=0 words=[] bindings=[('crmagic_hex', {[DQ [LIT_CHARS "4372 3234"]]})]) (= scope= flags=0 words=[] bindings=[('version_hex', {[DQ [LIT_CHARS "0200 0000"]]})]) (= scope= flags=0 words=[] bindings=[('pub_len_hex', {[ComSub (Com {[LIT_CHARS byte_swap]} {[ComSub (Com {[LIT_CHARS printf]} {[SQ ]} {[ComSub (Pipeline (Com {[LIT_CHARS ls]} {[LIT_CHARS -l]} {[DQ [VarSub pub]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]})]})]) (= scope= flags=0 words=[] bindings=[('sig_len_hex', {[ComSub (Com {[LIT_CHARS byte_swap]} {[ComSub (Com {[LIT_CHARS printf]} {[SQ ]} {[ComSub (Pipeline (Com {[LIT_CHARS ls]} {[LIT_CHARS -l]} {[DQ [VarSub sig]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]})]})]) (Subshell (List (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub crmagic_hex][LIT_CHARS " "][VarSub version_hex][LIT_CHARS " "][VarSub pub_len_hex][LIT_CHARS " "][VarSub sig_len_hex]]}) (Com {[LIT_CHARS xxd]} {[LIT_CHARS -r]} {[LIT_CHARS -p]}) ) (Com {[LIT_CHARS cat]} {[DQ [VarSub pub]]} {[DQ [VarSub sig]]} {[DQ [VarSub zip]]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Wrote "][VarSub crx][LIT_CHARS " with possibly invalid path"]]}) )