{"name": "gpio_bl_exit", "code": "__int64 __fastcall gpio_bl_exit ( __int64 @@a1@@ , const char * @@a2@@ ) { __int64 @@v3@@ ; char * @@v4@@ ; if ( ! @@a2@@ ) return Number L ; @@v4@@ = strchr ( @@a2@@ , Number ) ; if ( ! @@v4@@ || ! @@v4@@ [ Number ] ) return Number L ; @@v3@@ = strlen ( @@v4@@ + Number ) ; return gpio_sequence ( @@a1@@ , @@v4@@ + Number , @@v3@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v4", "t": {"T": 3, "t": "char"}, "location": "s8"}]}
{"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"}]} {"name": "init_bl_exit", "code": "__int64 __fastcall init_bl_exit ( __int64 @@a1@@ , __int64 @@a2@@ , const char * @@a3@@ ) { __int64 @@result@@ ; if ( @@a3@@ ) @@result@@ = gpio_bl_exit ( @@a2@@ , @@a3@@ ) ; else @@result@@ = ( unsigned int ) stm32_reset_device ( @@a1@@ ) == Number ; return @@result@@ ; }", "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": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}