{"name": "drive_gpio", "code": "__int64 __fastcall drive_gpio ( unsigned int @@a1@@ , int @@a2@@ , _QWORD * @@a3@@ ) { const char * v4 ; struct stat @@v6@@ ; char @@s@@ [ Number ] ; char @@v8@@ [ Number ] ; _DWORD * @@v9@@ ; int @@v10@@ ; sprintf ( @@s@@ , String , @@a1@@ ) ; @@v10@@ = stat ( @@s@@ , & @@v6@@ ) ; if ( @@v10@@ ) { sprintf ( @@v8@@ , String , @@a1@@ ) ; @@v10@@ = write_to ( String , @@v8@@ ) ; if ( ! @@v10@@ ) return Number L ; @@v10@@ = stat ( @@s@@ , & @@v6@@ ) ; if ( @@v10@@ ) { fprintf ( stderr , String , @@a1@@ ) ; return Number L ; } @@v9@@ = malloc ( Number ) ; if ( ! @@v9@@ ) { fwrite ( String , Number , Number , stderr ) ; return Number L ; } @@v9@@ [ Number ] = @@a1@@ ; * ( _QWORD * ) @@v9@@ = * @@a3@@ ; * @@a3@@ = @@v9@@ ; } if ( @@a2@@ ) v4 = String ; else v4 = String ; return write_to ( @@s@@ , v4 ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_QWORD"}, "location": "r16"}, {"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": 3, "t": "_DWORD"}, "location": "s16"}, {"n": "v6", "t": {"T": 6, "n": "struct stat", "l": [{"T": 4, "n": "st_dev", "t": "__dev_t", "s": 8}, {"T": 4, "n": "st_ino", "t": "__ino_t", "s": 8}, {"T": 4, "n": "st_nlink", "t": "__nlink_t", "s": 8}, {"T": 4, "n": "st_mode", "t": "__mode_t", "s": 4}, {"T": 4, "n": "st_uid", "t": "__uid_t", "s": 4}, {"T": 4, "n": "st_gid", "t": "__gid_t", "s": 4}, {"T": 4, "n": "__pad0", "t": "int", "s": 4}, {"T": 4, "n": "st_rdev", "t": "__dev_t", "s": 8}, {"T": 4, "n": "st_size", "t": "__off_t", "s": 8}, {"T": 4, "n": "st_blksize", "t": "__blksize_t", "s": 8}, {"T": 4, "n": "st_blocks", "t": "__blkcnt_t", "s": 8}, {"T": 4, "n": "st_atim", "t": "timespec", "s": 16}, {"T": 4, "n": "st_mtim", "t": "timespec", "s": 16}, {"T": 4, "n": "st_ctim", "t": "timespec", "s": 16}, {"T": 4, "n": "__unused", "t": "__syscall_slong_t[3]", "s": 24}]}, "location": "s224"}, {"n": "v8", "t": {"T": 2, "n": 16, "s": 1, "t": "char"}, "location": "s32"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "s", "t": {"T": 2, "n": 48, "s": 1, "t": "char"}, "location": "s80"}]}
{"name": "write_to", "code": "__int64 __fastcall write_to ( const char * @@a1@@ , const char * @@a2@@ ) { __int64 result ; size_t v3 ; int @@fd@@ ; @@fd@@ = open ( @@a1@@ , Number ) ; if ( @@fd@@ >= Number ) { v3 = strlen ( @@a2@@ ) ; if ( ( int ) write ( @@fd@@ , @@a2@@ , v3 ) >= Number ) { close ( @@fd@@ ) ; result = Number L ; } else { fprintf ( stderr , String , @@a1@@ ) ; close ( @@fd@@ ) ; result = Number L ; } } else { fprintf ( stderr , String , @@a1@@ ) ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "fd", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"name": "gpio_sequence", "code": "__int64 __fastcall gpio_sequence ( __int64 @@a1@@ , const char * @@a2@@ , __int64 @@a3@@ ) { unsigned int * @@v6@@ ; void * @@ptr@@ ; int @@v8@@ ; unsigned int @@v9@@ ; unsigned int @@v10@@ ; @@v6@@ = Number L ; @@v10@@ = Number ; while ( @@v10@@ == Number && * @@a2@@ && @@a3@@ ) { if ( * @@a2@@ == Number ) { @@v9@@ = Number ; ++ @@a2@@ ; -- @@a3@@ ; } else { @@v9@@ = Number ; } if ( ( ( * _ctype_b_loc ( ) ) [ * @@a2@@ ] & Number ) != Number ) { @@v8@@ = atoi ( @@a2@@ ) ; while ( ( ( * _ctype_b_loc ( ) ) [ * @@a2@@ ] & Number ) != Number ) { ++ @@a2@@ ; -- @@a3@@ ; } } else if ( ! strncmp ( @@a2@@ , String , Number ) ) { @@v8@@ = Number ; @@a2@@ += Number ; @@a3@@ -= Number L ; } else if ( ! strncmp ( @@a2@@ , String , Number ) ) { @@v8@@ = Number ; @@a2@@ += Number ; @@a3@@ -= Number L ; } else { if ( strncmp ( @@a2@@ , String , Number ) ) { fprintf ( stderr , String , ( unsigned int ) * @@a2@@ ) ; @@v10@@ = Number ; break ; } @@v8@@ = Number ; @@a2@@ += Number ; @@a3@@ -= Number L ; } if ( * @@a2@@ && @@a3@@ ) { if ( * @@a2@@ != Number ) { fprintf ( stderr , String , ( unsigned int ) * @@a2@@ ) ; @@v10@@ = Number ; break ; } ++ @@a2@@ ; -- @@a3@@ ; } if ( @@v8@@ >= Number ) @@v10@@ = drive_gpio ( @@v8@@ , @@v9@@ , & @@v6@@ ) ; else @@v10@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD , _QWORD ) ) ( @@a1@@ + Number ) ) ( @@a1@@ , ( unsigned int ) - @@v8@@ , @@v9@@ ) == Number ; usleep ( Number ) ; } while ( @@v6@@ ) { release_gpio ( @@v6@@ [ Number ] ) ; @@ptr@@ = @@v6@@ ; @@v6@@ = * ( unsigned int * * ) @@v6@@ ; free ( @@ptr@@ ) ; } usleep ( Number ) ; return @@v10@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v6", "t": {"T": 3, "t": "unsigned int"}, "location": "s32"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}