{"name": "client_thread", "code": "void * __fastcall client_thread ( void * @@a1@@ ) { __int64 @@v1@@ ; void * result ; int v3 ; int v4 ; char @@v5@@ [ Number ] ; __int64 @@v6@@ ; char @@v7@@ [ Number ] ; char @@nptr@@ [ Number ] ; __int64 @@v9@@ ; int @@fd@@ [ Number ] ; void * @@v11@@ ; char * @@dest@@ ; void * @@v13@@ ; char * @@s2@@ ; _DWORD @@v15@@ [ Number ] ; __int64 @@s@@ [ Number ] ; char * @@v17@@ ; int @@v18@@ ; int @@v19@@ ; int @@v20@@ ; char * @@src@@ ; unsigned int @@v22@@ ; char @@v23@@ ; @@v23@@ = Number ; @@v22@@ = Number ; @@s@@ [ Number ] = Number L ; @@s@@ [ Number ] = Number L ; memset ( & @@s@@ [ Number ] , Number , Number ) ; @@src@@ = ( char * ) @@s@@ ; if ( ! @@a1@@ ) return Number L ; @@v1@@ = * ( ( _QWORD * ) @@a1@@ + Number ) ; @@v9@@ = * ( _QWORD * ) @@a1@@ ; * ( _QWORD * ) @@fd@@ = @@v1@@ ; free ( @@a1@@ ) ; init_iobuffer ( @@v15@@ ) ; init_request ( ( __int64 ) & @@v11@@ ) ; memset ( @@s@@ , Number , Number ) ; @@v20@@ = readline ( @@fd@@ [ Number ] , @@v15@@ , @@s@@ , Number ) ; if ( @@v20@@ == Number ) { close ( @@fd@@ [ Number ] ) ; return Number L ; } if ( strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@v23@@ = Number ; goto LABEL_40 ; } if ( strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@v23@@ = Number ; goto LABEL_40 ; } if ( strstr ( ( const char * ) @@s@@ , String ) && strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@v23@@ = Number ; goto LABEL_40 ; } if ( strstr ( ( const char * ) @@s@@ , String ) && strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@v23@@ = Number ; goto LABEL_40 ; } if ( strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@v23@@ = Number ; goto LABEL_40 ; } if ( strstr ( ( const char * ) @@s@@ , String ) ) { LODWORD ( @@v11@@ ) = Number ; @@src@@ = strstr ( ( const char * ) @@s@@ , String ) ; if ( ! @@src@@ ) { LABEL_19 : send_error ( @@fd@@ [ Number ] , Number , String ) ; close ( @@fd@@ [ Number ] ) ; return Number L ; } @@src@@ += Number ; if ( strspn ( @@src@@ , String ) && strspn ( @@src@@ , String ) > Number ) { v3 = Number ; } else if ( strspn ( @@src@@ , String ) ) { v3 = strspn ( @@src@@ , String ) ; } else { v3 = Number ; } @@v18@@ = v3 ; @@dest@@ = ( char * ) malloc ( v3 + Number ) ; if ( ! @@dest@@ ) exit ( Number ) ; memset ( @@dest@@ , Number , @@v18@@ + Number ) ; strncpy ( @@dest@@ , @@src@@ , @@v18@@ ) ; if ( ( unsigned int ) unescape ( @@dest@@ ) == Number ) { free ( @@dest@@ ) ; send_error ( @@fd@@ [ Number ] , Number , String ) ; * ( _QWORD * ) @@v5@@ = Number L ; @@v6@@ = Number L ; memset ( @@v7@@ , Number , sizeof ( @@v7@@ ) ) ; snprintf ( @@v5@@ , Number , String ) ; fputs ( @@v5@@ , stderr ) ; syslog ( Number , String , @@v5@@ ) ; close ( @@fd@@ [ Number ] ) ; return Number L ; } } else { LODWORD ( @@v11@@ ) = Number ; @@src@@ = strstr ( ( const char * ) @@s@@ , String ) ; if ( ! @@src@@ ) goto LABEL_19 ; @@src@@ += Number ; if ( strspn ( @@src@@ , String ) && strspn ( @@src@@ , String ) > Number ) { v4 = Number ; } else if ( strspn ( @@src@@ , String ) ) { v4 = strspn ( @@src@@ , String ) ; } else { v4 = Number ; } @@v19@@ = v4 ; @@dest@@ = ( char * ) malloc ( v4 + Number ) ; if ( ! @@dest@@ ) exit ( Number ) ; memset ( @@dest@@ , Number , @@v19@@ + Number ) ; strncpy ( @@dest@@ , @@src@@ , @@v19@@ ) ; } LABEL_40 : if ( @@v23@@ ) { @@v17@@ = strchr ( ( const char * ) @@s@@ , Number ) ; if ( @@v17@@ ) { memset ( @@nptr@@ , Number , sizeof ( @@nptr@@ ) ) ; strncpy ( @@nptr@@ , @@v17@@ + Number , Number ) ; @@v22@@ = atoi ( @@nptr@@ ) ; } } do { memset ( @@s@@ , Number , Number ) ; @@v20@@ = readline ( @@fd@@ [ Number ] , @@v15@@ , @@s@@ , Number ) ; if ( @@v20@@ == Number ) { free_request ( & @@v11@@ ) ; close ( @@fd@@ [ Number ] ) ; return Number L ; } if ( strstr ( ( const char * ) @@s@@ , String ) ) { @@v13@@ = strdup ( ( const char * ) & @@s@@ [ Number ] + Number ) ; } else if ( strstr ( ( const char * ) @@s@@ , String ) ) { @@s2@@ = strdup ( ( const char * ) & @@s@@ [ Number ] + Number ) ; decodeBase64 ( @@s2@@ ) ; } } while ( @@v20@@ > Number && LOWORD ( @@s@@ [ Number ] ) != Number ) ; if ( ! * ( _QWORD * ) ( @@v9@@ + Number ) || @@s2@@ && ! strcmp ( * ( const char * * ) ( @@v9@@ + Number ) , @@s2@@ ) ) { if ( ( signed int ) @@v22@@ >= * ( _DWORD * ) ( pglobal + Number ) ) { send_error ( @@fd@@ [ Number ] , Number , String ) ; LODWORD ( @@v11@@ ) = Number ; } switch ( ( int ) @@v11@@ ) { case Number : send_snapshot ( @@fd@@ [ Number ] , @@v22@@ ) ; break ; case Number : send_stream ( @@fd@@ [ Number ] , @@v22@@ ) ; break ; case Number : if ( * ( _BYTE * ) ( @@v9@@ + Number ) ) send_error ( @@fd@@ [ Number ] , Number , String ) ; else command ( * ( unsigned int * ) ( @@v9@@ + Number ) , @@fd@@ [ Number ] , @@dest@@ ) ; break ; case Number : if ( * ( _QWORD * ) ( @@v9@@ + Number ) ) send_file ( * ( _DWORD * ) ( @@v9@@ + Number ) , @@fd@@ [ Number ] , @@dest@@ ) ; else send_error ( @@fd@@ [ Number ] , Number , String ) ; break ; case Number : send_Input_JSON ( ( unsigned int ) @@fd@@ [ Number ] , @@v22@@ ) ; break ; case Number : send_Output_JSON ( ( unsigned int ) @@fd@@ [ Number ] , @@v22@@ ) ; break ; case Number : send_Program_JSON ( ( unsigned int ) @@fd@@ [ Number ] ) ; break ; default : break ; } close ( @@fd@@ [ Number ] ) ; free_request ( & @@v11@@ ) ; result = Number L ; } else { send_error ( @@fd@@ [ Number ] , Number , String ) ; close ( @@fd@@ [ Number ] ) ; if ( @@dest@@ ) free ( @@dest@@ ) ; if ( @@v13@@ ) free ( @@v13@@ ) ; if ( @@s2@@ ) free ( @@s2@@ ) ; result = Number L ; } return result ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "v23", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "s", "t": {"T": 2, "n": 129, "s": 8, "t": "__int64"}, "location": "s1072"}, {"n": "v15", "t": {"T": 2, "n": 68, "s": 4, "t": "_DWORD"}, "location": "s1344"}, {"n": "s2", "t": {"T": 3, "t": "char"}, "location": "s1352"}, {"n": "v13", "t": {"T": 3, "t": "void"}, "location": "s1360"}, {"n": "dest", "t": {"T": 3, "t": "char"}, "location": "s1368"}, {"n": "v11", "t": {"T": 3, "t": "void"}, "location": "s1376"}, {"n": "fd", "t": {"T": 2, "n": 2, "s": 4, "t": "int"}, "location": "s1384"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1392"}, {"n": "nptr", "t": {"T": 2, "n": 3, "s": 1, "t": "char"}, "location": "s1395"}, {"n": "src", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v20", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v7", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s2416"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s2424"}, {"n": "v5", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s2432"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v17", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v22", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}
{"name": "init_iobuffer", "code": "_DWORD * __fastcall init_iobuffer ( _DWORD * @@a1@@ ) { _DWORD * @@result@@ ; memset ( @@a1@@ + Number , Number , Number ) ; @@result@@ = @@a1@@ ; * @@a1@@ = Number ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "result", "t": {"T": 3, "t": "_DWORD"}, "location": "r8"}]} {"name": "init_request", "code": "__int64 __fastcall init_request ( __int64 @@a1@@ ) { __int64 @@result@@ ; * ( _DWORD * ) @@a1@@ = Number ; * ( _DWORD * ) @@a1@@ = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; @@result@@ = @@a1@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "free_request", "code": "void __fastcall free_request ( void * * @@a1@@ ) { if ( @@a1@@ [ Number ] ) free ( @@a1@@ [ Number ] ) ; if ( @@a1@@ [ Number ] ) free ( @@a1@@ [ Number ] ) ; if ( @@a1@@ [ Number ] ) free ( @@a1@@ [ Number ] ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "void *"}, "location": "r56"}]} {"name": "decodeBase64", "code": "_BYTE * __fastcall decodeBase64 ( _BYTE * @@a1@@ ) { unsigned __int8 * v1 ; _BYTE * v2 ; _BYTE * result ; _BYTE * @@v4@@ ; unsigned int v5 ; int v6 ; int @@v7@@ ; int @@v8@@ ; unsigned __int8 * @@v9@@ ; @@v4@@ = @@a1@@ ; @@v9@@ = @@a1@@ ; @@v8@@ = Number ; @@v7@@ = Number ; while ( * @@v9@@ ) { v1 = @@v9@@ ++ ; v5 = * v1 ; if ( v5 <= Number || * v1 > Number ) { if ( * v1 > Number && * v1 <= Number ) { v6 = v5 - Number ; goto LABEL_17 ; } if ( * v1 > Number && * v1 <= Number ) { v6 = v5 - Number ; goto LABEL_17 ; } switch ( v5 ) { case String : v6 = Number ; goto LABEL_17 ; case String : v6 = Number ; goto LABEL_17 ; case String : v6 = Number ; goto LABEL_17 ; } } else { v6 = v5 + Number ; LABEL_17 : @@v8@@ = ( @@v8@@ << Number ) | v6 ; if ( ++ @@v7@@ == Number ) { * @@v4@@ = BYTE2 ( @@v8@@ ) ; @@v4@@ [ Number ] = BYTE1 ( @@v8@@ ) ; v2 = @@v4@@ + Number ; @@v4@@ += Number ; * v2 = @@v8@@ ; @@v7@@ = Number ; } } } result = @@v4@@ ; * @@v4@@ = Number ; return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v4", "t": {"T": 3, "t": "_BYTE"}, "location": "s40"}, {"n": "v9", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s8"}]} {"name": "unescape", "code": "__int64 __fastcall unescape ( const char * @@a1@@ ) { int v2 ; int v3 ; int @@v4@@ ; int @@v5@@ ; int @@i@@ ; @@v4@@ = strlen ( @@a1@@ ) ; @@v5@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v4@@ ; ++ @@i@@ ) { if ( @@a1@@ [ @@i@@ ] == Number ) { if ( @@v4@@ <= @@i@@ + Number ) return Number ; v2 = hex_char_to_int ( @@a1@@ [ @@i@@ + Number ] ) ; if ( v2 == Number ) return Number ; @@a1@@ [ @@v5@@ ] = Number * v2 ; v3 = hex_char_to_int ( @@a1@@ [ @@i@@ + Number ] ) ; if ( v3 == Number ) return Number ; @@a1@@ [ @@v5@@ ++ ] += v3 ; @@i@@ += Number ; } else { @@a1@@ [ @@v5@@ ++ ] = @@a1@@ [ @@i@@ ] ; } } @@a1@@ [ @@v5@@ ] = Number ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "send_snapshot", "code": "void __fastcall send_snapshot ( unsigned int @@a1@@ , int @@a2@@ ) { size_t @@v2@@ ; __int64 @@v3@@ ; __int64 @@v4@@ ; char @@s@@ [ Number ] ; __int64 @@v6@@ ; char @@v7@@ [ Number ] ; int @@v8@@ ; void * @@ptr@@ ; @@ptr@@ = Number L ; @@v8@@ = Number ; * ( _QWORD * ) @@s@@ = Number L ; @@v6@@ = Number L ; memset ( @@v7@@ , Number , sizeof ( @@v7@@ ) ) ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; pthread_cond_wait ( ( pthread_cond_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) , ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; @@v8@@ = * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; @@ptr@@ = malloc ( @@v8@@ + Number ) ; if ( @@ptr@@ ) { @@v3@@ = * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; @@v4@@ = * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; memcpy ( @@ptr@@ , * ( const void * * ) ( pglobal + Number L * @@a2@@ + Number ) , @@v8@@ ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; sprintf ( @@s@@ , String String String String String String String String String , ( unsigned int ) @@v3@@ , ( unsigned int ) @@v4@@ ) ; @@v2@@ = strlen ( @@s@@ ) ; if ( write ( @@a1@@ , @@s@@ , @@v2@@ ) >= Number ) write ( @@a1@@ , @@ptr@@ , @@v8@@ ) ; free ( @@ptr@@ ) ; } else { free ( Number L ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; send_error ( @@a1@@ , Number L , String ) ; } }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r8"}, {"n": "v7", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s1024"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1032"}, {"n": "s", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s1040"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1048"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1056"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s8"}]} {"name": "send_stream", "code": "void __fastcall send_stream ( unsigned int @@a1@@ , int @@a2@@ ) { size_t v2 ; size_t v3 ; size_t v4 ; __int64 @@v5@@ ; __int64 @@v6@@ ; char @@s@@ [ Number ] ; __int64 @@v8@@ ; char @@v9@@ [ Number ] ; unsigned int @@v10@@ ; void * @@v11@@ ; int @@v12@@ ; void * @@ptr@@ ; @@ptr@@ = Number L ; @@v11@@ = Number L ; @@v10@@ = Number ; @@v12@@ = Number ; * ( _QWORD * ) @@s@@ = Number L ; @@v8@@ = Number L ; memset ( @@v9@@ , Number , Number ) ; sprintf ( @@s@@ , String String String String String String String String String , @@v9@@ ) ; v2 = strlen ( @@s@@ ) ; if ( write ( @@a1@@ , @@s@@ , v2 ) >= Number ) { while ( ! * ( _DWORD * ) pglobal ) { pthread_mutex_lock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; pthread_cond_wait ( ( pthread_cond_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) , ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; @@v10@@ = * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; if ( ( int ) @@v10@@ > @@v12@@ ) { @@v12@@ = @@v10@@ + Number ; @@v11@@ = realloc ( @@ptr@@ , ( int ) ( @@v10@@ + Number ) ) ; if ( ! @@v11@@ ) { free ( @@ptr@@ ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; send_error ( @@a1@@ , Number L , String ) ; return ; } @@ptr@@ = @@v11@@ ; } @@v5@@ = * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; @@v6@@ = * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; memcpy ( @@ptr@@ , * ( const void * * ) ( pglobal + Number L * @@a2@@ + Number ) , ( int ) @@v10@@ ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( Number L * @@a2@@ + Number + pglobal + Number ) ) ; sprintf ( @@s@@ , String , @@v10@@ , ( unsigned int ) @@v5@@ , ( unsigned int ) @@v6@@ ) ; v3 = strlen ( @@s@@ ) ; if ( write ( @@a1@@ , @@s@@ , v3 ) >= Number && write ( @@a1@@ , @@ptr@@ , ( int ) @@v10@@ ) >= Number ) { sprintf ( @@s@@ , String ) ; v4 = strlen ( @@s@@ ) ; if ( write ( @@a1@@ , @@s@@ , v4 ) >= Number ) continue ; } break ; } } free ( @@ptr@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v9", "t": {"T": 2, "n": 1012, "s": 1, "t": "char"}, "location": "s1040"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1048"}, {"n": "s", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s1056"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1064"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1072"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v11", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s8"}]} {"name": "send_error", "code": "ssize_t __fastcall send_error ( int @@a1@@ , int @@a2@@ , const char * @@a3@@ ) { size_t @@v3@@ ; char @@s@@ [ Number ] ; __int64 @@v6@@ ; char @@v7@@ [ Number ] ; * ( _QWORD * ) @@s@@ = Number L ; @@v6@@ = Number L ; memset ( @@v7@@ , Number , sizeof ( @@v7@@ ) ) ; switch ( @@a2@@ ) { case Number : sprintf ( @@s@@ , String String String String String String String String String String String , @@a3@@ ) ; break ; case Number : sprintf ( @@s@@ , String String String String String String String String String String , @@a3@@ ) ; break ; case Number : sprintf ( @@s@@ , String String String String String String String String String String , @@a3@@ ) ; break ; case Number : sprintf ( @@s@@ , String String String String String String String String String String , @@a3@@ ) ; break ; default : sprintf ( @@s@@ , String String String String String String String String String String , @@a3@@ ) ; break ; } @@v3@@ = strlen ( @@s@@ ) ; return write ( @@a1@@ , @@s@@ , @@v3@@ ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r8"}, {"n": "v7", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s1008"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1016"}, {"n": "s", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s1024"}]} {"name": "send_file", "code": "int __fastcall send_file ( int @@a1@@ , int @@a2@@ , char * @@a3@@ ) { size_t @@v4@@ ; char * @@s@@ ; char * @@src@@ ; char @@dest@@ [ Number ] ; __int64 @@v8@@ ; char @@v9@@ [ Number ] ; int @@v10@@ ; char * @@s2@@ ; int @@v12@@ ; char * @@v13@@ ; unsigned int @@i@@ ; char * @@v15@@ ; @@s@@ = @@a3@@ ; * ( _QWORD * ) @@dest@@ = Number L ; @@v8@@ = Number L ; memset ( @@v9@@ , Number , sizeof ( @@v9@@ ) ) ; @@v15@@ = Number L ; @@src@@ = ( char * ) servers [ Number * ( __int64 ) @@a1@@ + Number ] ; if ( ! @@a3@@ || ! * @@a3@@ ) @@s@@ = String ; @@v13@@ = strchr ( @@s@@ , Number ) ; @@v12@@ = Number ; while ( @@v13@@ ) { @@v12@@ = ( _DWORD ) @@v13@@ - ( _DWORD ) @@s@@ ; @@v13@@ = strchr ( @@v13@@ + Number , Number ) ; } if ( ! @@v12@@ ) return send_error ( @@a2@@ , Number , String ) ; @@s2@@ = & @@s@@ [ @@v12@@ ] ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( ! strcmp ( mimetypes [ Number * ( int ) @@i@@ ] , @@s2@@ ) ) { @@v15@@ = off_5828 [ Number * ( int ) @@i@@ ] ; break ; } } if ( ! @@v15@@ ) return send_error ( @@a2@@ , Number , String ) ; strncat ( @@dest@@ , @@src@@ , Number ) ; @@v4@@ = strlen ( @@dest@@ ) ; strncat ( @@dest@@ , @@s@@ , Number - @@v4@@ ) ; @@v10@@ = open ( @@dest@@ , Number ) ; if ( @@v10@@ < Number ) return send_error ( @@a2@@ , Number , String ) ; sprintf ( @@dest@@ , String String String String String String String String , @@v15@@ ) ; @@i@@ = strlen ( @@dest@@ ) ; do { if ( write ( @@a2@@ , @@dest@@ , ( int ) @@i@@ ) < Number ) break ; @@i@@ = read ( @@v10@@ , @@dest@@ , Number ) ; } while ( ( int ) @@i@@ > Number ) ; return close ( @@v10@@ ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "char"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r8"}, {"n": "v9", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s1056"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1064"}, {"n": "dest", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s1072"}, {"n": "src", "t": {"T": 3, "t": "char"}, "location": "s1088"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s1120"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v13", "t": {"T": 3, "t": "char"}, "location": "s24"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "s2", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v15", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "command", "code": "void __fastcall command ( __int64 @@a1@@ , int @@a2@@ , const char * @@a3@@ ) { unsigned int v3 ; unsigned int v4 ; unsigned int v5 ; unsigned int v6 ; unsigned int v7 ; size_t v8 ; char @@v10@@ [ Number ] ; __int64 @@v11@@ ; char @@v12@@ [ Number ] ; char @@buf@@ [ Number ] ; __int64 @@v14@@ ; char @@v15@@ [ Number ] ; char * @@v16@@ ; char * @@v17@@ ; int @@v18@@ ; unsigned int @@v19@@ ; char * @@string@@ ; unsigned int @@v21@@ ; unsigned int @@v22@@ ; unsigned int @@v23@@ ; unsigned int @@v24@@ ; unsigned int @@v25@@ ; char * @@nptr@@ ; * ( _QWORD * ) @@buf@@ = Number L ; @@v14@@ = Number L ; memset ( @@v15@@ , Number , sizeof ( @@v15@@ ) ) ; @@string@@ = Number L ; @@nptr@@ = Number L ; @@v25@@ = Number ; @@v24@@ = Number ; @@v19@@ = Number ; @@v18@@ = Number ; if ( ! @@a3@@ || strlen ( @@a3@@ ) > Number || ! * @@a3@@ ) { send_error ( @@a2@@ , Number , String ) ; return ; } @@string@@ = strstr ( @@a3@@ , String ) ; if ( ! @@string@@ ) { send_error ( @@a2@@ , Number , String ) ; return ; } @@string@@ += Number ; @@v18@@ = strspn ( @@string@@ , String ) ; @@string@@ = strndup ( @@string@@ , @@v18@@ ) ; if ( ! @@string@@ ) goto LABEL_58 ; @@v17@@ = @@string@@ ; @@v18@@ = strspn ( @@string@@ , String ) ; @@nptr@@ = strndup ( @@v17@@ , @@v18@@ ) ; if ( ! @@nptr@@ ) { if ( @@string@@ ) free ( @@string@@ ) ; LABEL_58 : send_error ( @@a2@@ , Number , String ) ; * ( _QWORD * ) @@v10@@ = Number L ; @@v11@@ = Number L ; memset ( @@v12@@ , Number , sizeof ( @@v12@@ ) ) ; snprintf ( @@v10@@ , Number , String ) ; fputs ( @@v10@@ , stderr ) ; syslog ( Number , String , @@v10@@ ) ; return ; } if ( strtol ( @@nptr@@ , Number L , Number ) <= Number && strtol ( @@nptr@@ , Number L , Number ) < Number ) { v3 = Number ; } else if ( strtol ( @@nptr@@ , Number L , Number ) > Number ) { v3 = Number ; } else { v3 = strtol ( @@nptr@@ , Number L , Number ) ; } @@v19@@ = v3 ; @@v16@@ = strstr ( @@a3@@ , String ) ; if ( @@v16@@ ) { @@v16@@ += Number ; @@v18@@ = strspn ( @@v16@@ , String ) ; @@nptr@@ = strndup ( @@v16@@ , @@v18@@ ) ; if ( ! @@nptr@@ ) { if ( @@string@@ ) free ( @@string@@ ) ; goto LABEL_58 ; } if ( strtol ( @@nptr@@ , Number L , Number ) <= Number && strtol ( @@nptr@@ , Number L , Number ) < Number ) { v4 = Number ; } else if ( strtol ( @@nptr@@ , Number L , Number ) > Number ) { v4 = Number ; } else { v4 = strtol ( @@nptr@@ , Number L , Number ) ; } @@v24@@ = v4 ; } @@v23@@ = Number ; @@v16@@ = strstr ( @@a3@@ , String ) ; if ( @@v16@@ ) { @@v16@@ += Number ; @@v18@@ = strspn ( @@v16@@ , String ) ; @@nptr@@ = strndup ( @@v16@@ , @@v18@@ ) ; if ( ! @@nptr@@ ) { if ( @@string@@ ) free ( @@string@@ ) ; goto LABEL_58 ; } if ( strtol ( @@nptr@@ , Number L , Number ) <= Number && strtol ( @@nptr@@ , Number L , Number ) < Number ) { v5 = Number ; } else if ( strtol ( @@nptr@@ , Number L , Number ) > Number ) { v5 = Number ; } else { v5 = strtol ( @@nptr@@ , Number L , Number ) ; } @@v23@@ = v5 ; } @@v22@@ = Number ; @@v16@@ = strstr ( @@a3@@ , String ) ; if ( @@v16@@ ) { @@v16@@ += Number ; @@v18@@ = strspn ( @@v16@@ , String ) ; @@nptr@@ = strndup ( @@v16@@ , @@v18@@ ) ; if ( ! @@nptr@@ ) { if ( @@string@@ ) free ( @@string@@ ) ; goto LABEL_58 ; } if ( strtol ( @@nptr@@ , Number L , Number ) <= Number && strtol ( @@nptr@@ , Number L , Number ) < Number ) { v6 = Number ; } else if ( strtol ( @@nptr@@ , Number L , Number ) > Number ) { v6 = Number ; } else { v6 = strtol ( @@nptr@@ , Number L , Number ) ; } @@v22@@ = v6 ; } @@v21@@ = Number ; @@v16@@ = strstr ( @@a3@@ , String ) ; if ( @@v16@@ ) { @@v16@@ += Number ; @@v18@@ = strspn ( @@v16@@ , String ) ; @@nptr@@ = strndup ( @@v16@@ , @@v18@@ ) ; if ( ! @@nptr@@ ) { if ( @@string@@ ) free ( @@string@@ ) ; goto LABEL_58 ; } if ( strtol ( @@nptr@@ , Number L , Number ) <= Number && strtol ( @@nptr@@ , Number L , Number ) < Number ) { v7 = Number ; } else if ( strtol ( @@nptr@@ , Number L , Number ) > Number ) { v7 = Number ; } else { v7 = strtol ( @@nptr@@ , Number L , Number ) ; } @@v21@@ = v7 ; } if ( @@v22@@ != Number ) { if ( ( int ) @@v22@@ > Number ) goto LABEL_75 ; if ( ! @@v22@@ ) { if ( ( signed int ) @@v21@@ < * ( _DWORD * ) ( pglobal + Number ) ) @@v25@@ = ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , _QWORD , _QWORD ) ) ( pglobal + Number L * ( int ) @@v21@@ + Number ) ) ( @@v21@@ , @@v19@@ , @@v23@@ , @@v24@@ ) ; goto LABEL_76 ; } if ( @@v22@@ == Number ) { if ( ( signed int ) @@v21@@ < * ( _DWORD * ) ( pglobal + Number ) ) @@v25@@ = ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , _QWORD , _QWORD ) ) ( pglobal + Number L * ( int ) @@v21@@ + Number ) ) ( @@v21@@ , @@v19@@ , @@v23@@ , @@v24@@ ) ; } else { LABEL_75 : fprintf ( stderr , String , @@v22@@ ) ; } } LABEL_76 : sprintf ( @@buf@@ , String String String String String String String String String , @@string@@ , @@v25@@ ) ; v8 = strlen ( @@buf@@ ) ; write ( @@a2@@ , @@buf@@ , v8 ) ; if ( @@string@@ ) free ( @@string@@ ) ; if ( @@nptr@@ ) free ( @@nptr@@ ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v15", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s1072"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s1080"}, {"n": "buf", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s1088"}, {"n": "v25", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v24", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v23", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s2096"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s2104"}, {"n": "v10", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s2112"}, {"n": "v22", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "string", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v17", "t": {"T": 3, "t": "char"}, "location": "s56"}, {"n": "v16", "t": {"T": 3, "t": "char"}, "location": "s64"}, {"n": "nptr", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "server_thread", "code": "__int64 __fastcall server_thread ( __int64 @@a1@@ ) { uint16_t v1 ; const char * v2 ; int v3 ; uint16_t v4 ; int @@v5@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; int v8 ; struct __jmp_buf_tag @@env@@ ; char @@v11@@ [ Number ] ; __int64 @@v12@@ ; char @@v13@@ [ Number ] ; char @@s@@ [ Number ] ; fd_set @@readfds@@ ; __int64 @@v16@@ ; socklen_t @@addr_len@@ ; struct sockaddr @@addr@@ ; struct addrinfo @@req@@ ; struct addrinfo * @@pai@@ ; pthread_t @@newthread@@ ; int @@optval@@ [ Number ] ; void * @@arg@@ ; int @@ecode@@ ; __int64 @@v26@@ ; void ( __fastcall * @@v27@@ ) ( __int64 ) ; __int64 @@v28@@ ; int @@i@@ ; int @@v30@@ ; struct addrinfo * @@j@@ ; @@addr_len@@ = Number ; @@v30@@ = Number ; @@v28@@ = @@a1@@ ; pglobal = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v27@@ = server_cleanup ; @@v26@@ = @@a1@@ ; if ( _sigsetjmp ( & @@env@@ , Number ) ) { @@v27@@ ( @@v26@@ ) ; _pthread_unwind_next ( ( __pthread_unwind_buf_t * ) & @@env@@ ) ; } _pthread_register_cancel ( ( __pthread_unwind_buf_t * ) & @@env@@ ) ; @@req@@ . ai_protocol = Number ; * ( _QWORD * ) & @@req@@ . ai_addrlen = Number L ; @@req@@ . ai_addr = Number L ; @@req@@ . ai_canonname = Number L ; @@req@@ . ai_next = Number L ; @@req@@ . ai_family = Number ; @@req@@ . ai_flags = Number ; @@req@@ . ai_socktype = Number ; v1 = ntohs ( * ( _DWORD * ) ( @@v28@@ + Number ) ) ; snprintf ( @@s@@ , Number , String , v1 ) ; @@ecode@@ = getaddrinfo ( Number L , @@s@@ , & @@req@@ , & @@pai@@ ) ; if ( @@ecode@@ ) { v2 = gai_strerror ( @@ecode@@ ) ; perror ( v2 ) ; exit ( Number ) ; } for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) = Number ; @@i@@ = Number ; for ( @@j@@ = @@pai@@ ; @@j@@ ; @@j@@ = @@j@@ -> ai_next ) { v3 = socket ( @@j@@ -> ai_family , @@j@@ -> ai_socktype , Number ) ; * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) = v3 ; if ( * ( int * ) ( @@v28@@ + Number L * @@i@@ ) >= Number ) { @@optval@@ [ Number ] = Number ; if ( setsockopt ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) , Number , Number , @@optval@@ , Number ) < Number ) perror ( String ) ; @@optval@@ [ Number ] = Number ; if ( @@j@@ -> ai_family == Number && setsockopt ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) , Number , Number , @@optval@@ , Number ) < Number ) perror ( String ) ; if ( bind ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) , @@j@@ -> ai_addr , @@j@@ -> ai_addrlen ) >= Number ) { if ( listen ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) , Number ) >= Number ) { if ( ++ @@i@@ > Number ) { @@env@@ . __saved_mask . __val [ Number ] = Number L ; @@env@@ . __saved_mask . __val [ Number ] = Number L ; memset ( & @@env@@ . __saved_mask . __val [ Number ] , Number , Number ) ; snprintf ( ( char * ) & @@env@@ . __saved_mask . __val [ Number ] , Number , String , String ) ; fwrite ( String , Number , Number , stderr ) ; fputs ( ( const char * ) & @@env@@ . __saved_mask . __val [ Number ] , stderr ) ; syslog ( Number , String , ( const char * ) & @@env@@ . __saved_mask . __val [ Number ] ) ; -- @@i@@ ; break ; } } else { perror ( String ) ; * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) = Number ; } } else { perror ( String ) ; * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) = Number ; } } } * ( _DWORD * ) ( @@v28@@ + Number ) = @@i@@ ; if ( * ( int * ) ( @@v28@@ + Number ) <= Number ) { * ( _QWORD * ) @@v11@@ = Number L ; @@v12@@ = Number L ; memset ( @@v13@@ , Number , sizeof ( @@v13@@ ) ) ; v4 = htons ( * ( _DWORD * ) ( @@v28@@ + Number ) ) ; snprintf ( @@v11@@ , Number , String , String , v4 ) ; fwrite ( String , Number , Number , stderr ) ; fputs ( @@v11@@ , stderr ) ; syslog ( Number , String , @@v11@@ ) ; closelog ( ) ; exit ( Number ) ; } while ( ! * ( _DWORD * ) pglobal ) { @@arg@@ = malloc ( Number ) ; if ( ! @@arg@@ ) { fwrite ( String , Number , Number , stderr ) ; exit ( Number ) ; } do { memset ( & @@readfds@@ , Number , sizeof ( @@readfds@@ ) ) ; @@optval@@ [ Number ] = Number ; @@optval@@ [ Number ] = ( unsigned int ) & @@v16@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) != Number ) { @@v5@@ = * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) / Number ; @@v6@@ = * ( int * ) ( @@v28@@ + Number L * @@i@@ ) ; @@readfds@@ . fds_bits [ @@v5@@ ] |= Number L << ( ( ( ( HIDWORD ( @@v6@@ ) >> Number ) + @@v6@@ ) & Number ) - ( HIDWORD ( @@v6@@ ) >> Number ) ) ; if ( @@v30@@ < * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) ) @@v30@@ = * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) ; } } @@ecode@@ = select ( @@v30@@ + Number , & @@readfds@@ , Number L , Number L , Number L ) ; if ( @@ecode@@ < Number && * _errno_location ( ) != Number ) { perror ( String ) ; exit ( Number ) ; } } while ( @@ecode@@ <= Number ) ; for ( @@i@@ = Number ; @@v30@@ >= @@i@@ ; ++ @@i@@ ) { if ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) != Number ) { @@v7@@ = * ( int * ) ( @@v28@@ + Number L * @@i@@ ) ; if ( ( @@readfds@@ . fds_bits [ * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) / Number ] & ( Number L << ( ( ( ( HIDWORD ( @@v7@@ ) >> Number ) + @@v7@@ ) & Number ) - ( HIDWORD ( @@v7@@ ) >> Number ) ) ) ) != Number ) { v8 = accept ( * ( _DWORD * ) ( @@v28@@ + Number L * @@i@@ ) , & @@addr@@ , & @@addr_len@@ ) ; * ( ( _DWORD * ) @@arg@@ + Number ) = v8 ; * ( _QWORD * ) @@arg@@ = @@v28@@ ; if ( pthread_create ( & @@newthread@@ , Number L , client_thread , @@arg@@ ) ) { close ( * ( ( _DWORD * ) @@arg@@ + Number ) ) ; free ( @@arg@@ ) ; } else { pthread_detach ( @@newthread@@ ) ; } } } } } _pthread_unregister_cancel ( ( __pthread_unwind_buf_t * ) & @@env@@ ) ; @@v27@@ ( @@v26@@ ) ; return Number L ; }", "source": [{"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r1280"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r1288"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "req", "t": {"T": 6, "n": "struct addrinfo", "l": [{"T": 4, "n": "ai_flags", "t": "int", "s": 4}, {"T": 4, "n": "ai_family", "t": "int", "s": 4}, {"T": 4, "n": "ai_socktype", "t": "int", "s": 4}, {"T": 4, "n": "ai_protocol", "t": "int", "s": 4}, {"T": 4, "n": "ai_addrlen", "t": "socklen_t", "s": 4}, {"T": 5, "s": 4}, {"T": 4, "n": "ai_addr", "t": "sockaddr *", "s": 8}, {"T": 4, "n": "ai_canonname", "t": "char *", "s": 8}, {"T": 4, "n": "ai_next", "t": "addrinfo *", "s": 8}]}, "location": "s144"}, {"n": "s", "t": {"T": 2, "n": 1040, "s": 1, "t": "char"}, "location": "s1456"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v28", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v13", "t": {"T": 2, "n": 1008, "s": 1, "t": "char"}, "location": "s2464"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s2472"}, {"n": "v11", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s2480"}, {"n": "addr", "t": {"T": 6, "n": "struct sockaddr", "l": [{"T": 4, "n": "sa_family", "t": "sa_family_t", "s": 2}, {"T": 4, "n": "sa_data", "t": "char[14]", "s": 14}]}, "location": "s272"}, {"n": "addr_len", "t": {"T": 1, "n": "socklen_t", "s": 4}, "location": "s276"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s288"}, {"n": "v27", "t": {"T": 9, "n": "void (__fastcall *)(__int64 a1)"}, "location": "s32"}, {"n": "env", "t": {"T": 6, "n": "struct __jmp_buf_tag", "l": [{"T": 4, "n": "__jmpbuf", "t": "__jmp_buf", "s": 64}, {"T": 4, "n": "__mask_was_saved", "t": "int", "s": 4}, {"T": 5, "s": 4}, {"T": 4, "n": "__saved_mask", "t": "__sigset_t", "s": 128}]}, "location": "s3616"}, {"n": "v26", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "readfds", "t": {"T": 6, "n": "fd_set", "l": [{"T": 4, "n": "fds_bits", "t": "__fd_mask[16]", "s": 128}]}, "location": "s416"}, {"n": "ecode", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "arg", "t": {"T": 3, "t": "void"}, "location": "s56"}, {"n": "optval", "t": {"T": 2, "n": 3, "s": 4, "t": "int"}, "location": "s68"}, {"n": "j", "t": {"T": 3, "t": "struct addrinfo"}, "location": "s8"}, {"n": "newthread", "t": {"T": 1, "n": "pthread_t", "s": 8}, "location": "s80"}, {"n": "pai", "t": {"T": 3, "t": "struct addrinfo"}, "location": "s88"}]} {"name": "send_Input_JSON", "code": "char * __fastcall send_Input_JSON ( int @@a1@@ , int @@a2@@ ) { size_t v2 ; char * result ; size_t v4 ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; unsigned int @@v8@@ ; const char * @@v9@@ ; size_t v10 ; size_t v11 ; size_t v12 ; size_t v13 ; size_t v14 ; unsigned int @@v15@@ ; unsigned int @@v16@@ ; unsigned int @@v17@@ ; unsigned int @@v18@@ ; unsigned int @@v19@@ ; char @@buf@@ [ Number ] ; __int64 @@v21@@ ; char @@s@@ [ Number ] ; int @@v23@@ ; int @@v24@@ ; int @@v25@@ ; unsigned int @@j@@ ; char * @@v27@@ ; int @@i@@ ; * ( _QWORD * ) @@buf@@ = Number L ; @@v21@@ = Number L ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; sprintf ( @@buf@@ , String String String String String String String String , String ) ; v2 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v2 ] , String ) ; if ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ) { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; ++ @@i@@ ) { @@v27@@ = Number L ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) == Number && * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ) { @@v25@@ = Number ; for ( @@j@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; ( signed int ) @@j@@ <= * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; ++ @@j@@ ) { @@v24@@ = Number ; @@v23@@ = strlen ( ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) + Number ; if ( @@v27@@ ) { v4 = strlen ( @@v27@@ ) ; result = ( char * ) realloc ( @@v27@@ , @@v23@@ + v4 + Number ) ; } else { result = ( char * ) calloc ( @@v23@@ + Number , Number ) ; } @@v27@@ = result ; if ( ! result ) return result ; @@v24@@ = strlen ( @@v27@@ ) ; if ( @@j@@ == * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ) sprintf ( & @@v27@@ [ @@v24@@ ] , String , @@j@@ , ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) ; else sprintf ( & @@v27@@ [ @@v24@@ ] , String , @@j@@ , ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) ; ++ @@v25@@ ; } } @@v19@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v18@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v17@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v5@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v6@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v7@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v16@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v15@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v8@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ ) ; @@v9@@ = ( const char * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; v10 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v10 ] , String String String String String String String String String String String String , @@v9@@ , @@v8@@ , @@v15@@ , @@v16@@ , @@v7@@ , @@v6@@ , @@v5@@ , @@v17@@ , @@v18@@ , @@v19@@ ) ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) == Number ) { v11 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v11 ] , String , @@v27@@ ) ; } else { v12 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v12 ] , String ) ; } if ( @@i@@ != * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) - Number ) { v13 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v13 ] , String ) ; } free ( @@v27@@ ) ; } } v14 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v14 ] , String ) ; @@i@@ = strlen ( @@buf@@ ) ; return ( char * ) write ( @@a1@@ , @@buf@@ , @@i@@ ) ; }", "source": [{"n": "v9", "t": {"T": 3, "t": "const char"}, "location": "r104"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r112"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r120"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r128"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "s", "t": {"T": 2, "n": 16368, "s": 1, "t": "char"}, "location": "s16448"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16456"}, {"n": "buf", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s16464"}, {"n": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16476"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16480"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16484"}, {"n": "v16", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16488"}, {"n": "v15", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16492"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v27", "t": {"T": 3, "t": "char"}, "location": "s64"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s68"}, {"n": "v25", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s80"}]} {"name": "send_Program_JSON", "code": "ssize_t __fastcall send_Program_JSON ( int @@a1@@ ) { size_t v1 ; const char * v2 ; const char * v3 ; unsigned int v4 ; size_t v5 ; size_t v6 ; size_t v7 ; size_t v8 ; size_t v9 ; const char * v10 ; const char * v11 ; unsigned int v12 ; size_t v13 ; size_t v14 ; size_t v15 ; size_t v16 ; char @@buf@@ [ Number ] ; __int64 @@v19@@ ; char @@s@@ [ Number ] ; int @@v21@@ ; int @@i@@ ; * ( _QWORD * ) @@buf@@ = Number L ; @@v19@@ = Number L ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; sprintf ( @@buf@@ , String String String String String String String String , String ) ; v1 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v1 ] , String ) ; for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( pglobal + Number ) ; ++ @@i@@ ) { v2 = * ( const char * * ) ( pglobal + Number L * @@i@@ + Number ) ; v3 = * ( const char * * ) ( pglobal + Number L * @@i@@ + Number ) ; v4 = * ( _DWORD * ) ( pglobal + Number L * @@i@@ + Number ) ; v5 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v5 ] , String , v4 , v3 , v2 ) ; if ( @@i@@ == * ( _DWORD * ) ( pglobal + Number ) - Number ) { v7 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v7 ] , String ) ; } else { v6 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v6 ] , String ) ; } } v8 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v8 ] , String ) ; v9 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v9 ] , String ) ; for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( pglobal + Number ) ; ++ @@i@@ ) { v10 = * ( const char * * ) ( pglobal + Number L * @@i@@ + Number ) ; v11 = * ( const char * * ) ( pglobal + Number L * @@i@@ + Number ) ; v12 = * ( _DWORD * ) ( pglobal + Number L * @@i@@ + Number ) ; v13 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v13 ] , String , v12 , v11 , v10 ) ; if ( @@i@@ == * ( _DWORD * ) ( pglobal + Number ) - Number ) { v15 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v15 ] , String ) ; } else { v14 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v14 ] , String ) ; } } v16 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v16 ] , String ) ; @@v21@@ = strlen ( @@buf@@ ) ; return write ( @@a1@@ , @@buf@@ , @@v21@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "s", "t": {"T": 2, "n": 16368, "s": 1, "t": "char"}, "location": "s16416"}, {"n": "v19", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16424"}, {"n": "buf", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s16432"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}]} {"name": "send_Output_JSON", "code": "char * __fastcall send_Output_JSON ( int @@a1@@ , int @@a2@@ ) { size_t v2 ; char * result ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; unsigned int @@v7@@ ; const char * @@v8@@ ; size_t v9 ; size_t v10 ; size_t v11 ; size_t v12 ; size_t v13 ; size_t v14 ; unsigned int @@v15@@ ; unsigned int @@v16@@ ; unsigned int @@v17@@ ; unsigned int @@v18@@ ; unsigned int @@v19@@ ; char @@buf@@ [ Number ] ; __int64 @@v21@@ ; char @@s@@ [ Number ] ; int @@v23@@ ; int @@v24@@ ; int @@v25@@ ; unsigned int @@j@@ ; char * @@v27@@ ; int @@i@@ ; * ( _QWORD * ) @@buf@@ = Number L ; @@v21@@ = Number L ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; sprintf ( @@buf@@ , String String String String String String String String , String ) ; v2 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v2 ] , String ) ; if ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ) { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) ; ++ @@i@@ ) { @@v27@@ = Number L ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) == Number && * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ) { @@v25@@ = Number ; for ( @@j@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; ( signed int ) @@j@@ <= * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; ++ @@j@@ ) { @@v24@@ = strlen ( @@v27@@ ) ; @@v23@@ = strlen ( ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) + Number ; if ( @@v27@@ ) result = ( char * ) realloc ( @@v27@@ , @@v24@@ + @@v23@@ + Number ) ; else result = ( char * ) calloc ( @@v23@@ + Number , Number ) ; @@v27@@ = result ; if ( ! result ) return result ; if ( @@j@@ == * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ) sprintf ( & @@v27@@ [ @@v24@@ ] , String , @@j@@ , ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) ; else sprintf ( & @@v27@@ [ @@v24@@ ] , String , @@j@@ , ( const char * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) + Number L * ( int ) @@j@@ + Number ) ) ; ++ @@v25@@ ; } } @@v19@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v18@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v17@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v4@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v5@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v6@@ = * ( unsigned int * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v16@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v15@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; @@v7@@ = * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ ) ; @@v8@@ = ( const char * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) ; v9 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v9 ] , String String String String String String String String String String String String , @@v8@@ , @@v7@@ , @@v15@@ , @@v16@@ , @@v6@@ , @@v5@@ , @@v4@@ , @@v17@@ , @@v18@@ , @@v19@@ ) ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( pglobal + Number L * @@a2@@ + Number ) + Number L * @@i@@ + Number ) == Number ) { v10 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v10 ] , String , @@v27@@ ) ; } else { v11 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v11 ] , String ) ; } if ( @@i@@ != * ( _DWORD * ) ( pglobal + Number L * @@a2@@ + Number ) - Number ) { v12 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v12 ] , String ) ; } free ( @@v27@@ ) ; } } v13 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v13 ] , String ) ; v14 = strlen ( @@buf@@ ) ; sprintf ( & @@buf@@ [ v14 ] , String ) ; @@i@@ = strlen ( @@buf@@ ) ; return ( char * ) write ( @@a1@@ , @@buf@@ , @@i@@ ) ; }", "source": [{"n": "v8", "t": {"T": 3, "t": "const char"}, "location": "r104"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r112"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r120"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r128"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "s", "t": {"T": 2, "n": 16368, "s": 1, "t": "char"}, "location": "s16448"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16456"}, {"n": "buf", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s16464"}, {"n": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16476"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16480"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16484"}, {"n": "v16", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16488"}, {"n": "v15", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16492"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v27", "t": {"T": 3, "t": "char"}, "location": "s64"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s68"}, {"n": "v25", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s80"}]}