{"name": "close_pair", "code": "unsigned __int64 __fastcall close_pair ( int * @@a1@@ ) { unsigned __int64 @@v2@@ ; @@v2@@ = __readfsqword ( Number ) ; close ( * @@a1@@ ) ; close ( @@a1@@ [ Number ] ) ; return __readfsqword ( Number ) ^ @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "start_command", "code": "__int64 __fastcall start_command ( int * @@a1@@ ) { _BOOL4 v1 ; __int64 result ; _BOOL4 v3 ; _BOOL4 v4 ; int * v5 ; char * v6 ; _BOOL4 @@v7@@ ; _BOOL4 @@v8@@ ; _BOOL4 @@v9@@ ; int @@v10@@ ; int @@pipedes@@ [ Number ] ; int @@v12@@ [ Number ] ; int @@v13@@ [ Number ] ; unsigned __int64 @@v14@@ ; @@v14@@ = __readfsqword ( Number ) ; v1 = ( @@a1@@ [ Number ] & Number ) == Number && @@a1@@ [ Number ] < Number ; @@v7@@ = v1 ; if ( v1 ) { if ( pipe ( @@pipedes@@ ) < Number ) { if ( @@a1@@ [ Number ] > Number ) close ( @@a1@@ [ Number ] ) ; return Number L ; } @@a1@@ [ Number ] = @@pipedes@@ [ Number ] ; } v3 = ( @@a1@@ [ Number ] & Number ) == Number && ( @@a1@@ [ Number ] & Number ) == Number && @@a1@@ [ Number ] < Number ; @@v8@@ = v3 ; if ( v3 ) { if ( pipe ( @@v12@@ ) < Number ) { if ( @@v7@@ ) { close_pair ( @@pipedes@@ ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } return Number L ; } @@a1@@ [ Number ] = @@v12@@ [ Number ] ; } v4 = ( @@a1@@ [ Number ] & Number ) == Number && @@a1@@ [ Number ] < Number ; @@v9@@ = v4 ; if ( v4 ) { if ( pipe ( @@v13@@ ) < Number ) { if ( @@v7@@ ) { close_pair ( @@pipedes@@ ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } if ( @@v8@@ ) { close_pair ( @@v12@@ ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } return Number L ; } @@a1@@ [ Number ] = @@v13@@ [ Number ] ; } fflush ( Number L ) ; @@a1@@ [ Number ] = fork ( ) ; if ( ! @@a1@@ [ Number ] ) { if ( ( @@a1@@ [ Number ] & Number ) != Number ) { dup_devnull ( Number ) ; } else if ( @@v7@@ ) { dup2 ( @@pipedes@@ [ Number ] , Number ) ; close_pair ( @@pipedes@@ ) ; } else if ( @@a1@@ [ Number ] ) { dup2 ( @@a1@@ [ Number ] , Number ) ; close ( @@a1@@ [ Number ] ) ; } if ( ( @@a1@@ [ Number ] & Number ) != Number ) { dup_devnull ( Number ) ; } else if ( @@v9@@ ) { dup2 ( @@v13@@ [ Number ] , Number ) ; close_pair ( @@v13@@ ) ; } if ( ( @@a1@@ [ Number ] & Number ) != Number ) { dup_devnull ( Number ) ; } else if ( ( @@a1@@ [ Number ] & Number ) != Number ) { dup2 ( Number , Number ) ; } else if ( @@v8@@ ) { dup2 ( @@v12@@ [ Number ] , Number ) ; close_pair ( @@v12@@ ) ; } else if ( @@a1@@ [ Number ] > Number ) { dup2 ( @@a1@@ [ Number ] , Number ) ; close ( @@a1@@ [ Number ] ) ; } if ( * ( ( _QWORD * ) @@a1@@ + Number ) && chdir ( * ( ( const char * * ) @@a1@@ + Number ) ) ) { v5 = _errno_location ( ) ; v6 = strerror ( * v5 ) ; die ( String , * * ( const char * * * ) @@a1@@ , * ( ( const char * * ) @@a1@@ + Number ) , v6 ) ; } if ( * ( ( _QWORD * ) @@a1@@ + Number ) ) { while ( * * ( ( _QWORD * * ) @@a1@@ + Number ) ) { if ( strchr ( * * ( ( const char * * * ) @@a1@@ + Number ) , Number ) ) putenv ( * * ( ( char * * * ) @@a1@@ + Number ) ) ; else unsetenv ( * * ( ( const char * * * ) @@a1@@ + Number ) ) ; * ( ( _QWORD * ) @@a1@@ + Number ) += Number L ; } } if ( * ( ( _QWORD * ) @@a1@@ + Number ) ) ( * ( ( void ( * * ) ( void ) ) @@a1@@ + Number ) ) ( ) ; if ( ( @@a1@@ [ Number ] & Number ) != Number ) execv_perf_cmd ( * ( _QWORD * ) @@a1@@ ) ; else execvp ( * * ( const char * * * ) @@a1@@ , * ( char * const * * ) @@a1@@ ) ; exit ( Number ) ; } if ( @@a1@@ [ Number ] >= Number ) { if ( @@v7@@ ) { close ( @@pipedes@@ [ Number ] ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } if ( @@v8@@ ) { close ( @@v12@@ [ Number ] ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } if ( @@v9@@ ) close ( @@v13@@ [ Number ] ) ; result = Number L ; } else { @@v10@@ = * _errno_location ( ) ; if ( @@v7@@ ) { close_pair ( @@pipedes@@ ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } if ( @@v8@@ ) { close_pair ( @@v12@@ ) ; } else if ( @@a1@@ [ Number ] ) { close ( @@a1@@ [ Number ] ) ; } if ( @@v9@@ ) close_pair ( @@v13@@ ) ; if ( @@v10@@ == Number ) result = Number L ; else result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "v13", "t": {"T": 2, "n": 2, "s": 4, "t": "int"}, "location": "s16"}, {"n": "v12", "t": {"T": 2, "n": 2, "s": 4, "t": "int"}, "location": "s24"}, {"n": "pipedes", "t": {"T": 2, "n": 2, "s": 4, "t": "int"}, "location": "s32"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v9", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s44"}, {"n": "v7", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s48"}, {"n": "v14", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}