{"name": "crad_set_rds", "code": "__int64 __fastcall crad_set_rds ( __int64 @@a1@@ , int @@a2@@ ) { if ( ! @@a2@@ || * ( _DWORD * ) ( @@a1@@ + Number ) ) { if ( ! @@a2@@ ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; } } } else { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( pthread_mutex_init ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) , Number L ) ) { perror ( String ) ; return Number L ; } fwrite ( String , Number , Number , stderr ) ; if ( pthread_create ( ( pthread_t * ) ( @@a1@@ + Number ) , Number L , ( void * ( * ) ( void * ) ) rds_reader , ( void * ) @@a1@@ ) ) { perror ( String ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; return Number L ; } pthread_detach ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}]}
{"name": "rds_reader", "code": "void __fastcall __noreturn rds_reader ( void * @@a1@@ ) { __int64 v1 ; __int64 v2 ; char @@v3@@ [ Number ] ; int @@v4@@ ; __int64 @@v5@@ ; char * @@v6@@ ; int @@v7@@ ; int @@v8@@ ; int @@v9@@ ; int @@v10@@ ; int @@v11@@ ; @@v6@@ = ( char * ) @@a1@@ ; @@v5@@ = ( __int64 ) @@a1@@ + Number ; @@v11@@ = Number ; @@v8@@ = Number ; QND_RDSEnable ( Number L ) ; while ( * ( ( _DWORD * ) @@v6@@ + Number ) ) { @@v7@@ = Number ; while ( @@v10@@ == @@v11@@ ) { ++ @@v7@@ ; usleep ( Number ) ; @@v10@@ = QND_ReadReg ( Number L ) & Number ; if ( @@v7@@ == Number ) { pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; v1 = @@v5@@ ; * ( _QWORD * ) @@v5@@ = Number L ; * ( _QWORD * ) ( v1 + Number ) = Number L ; memset ( ( void * ) ( ( v1 + Number ) & Number ) , Number , Number L * ( ( ( ( _DWORD ) v1 - ( ( ( _DWORD ) v1 + Number ) & Number ) + Number ) & Number ) >> Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; @@v8@@ = Number ; } } @@v11@@ = @@v10@@ ; QND_RDSLoadData ( @@v3@@ , Number L ) ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; crad_decode_rds ( @@v5@@ , @@v3@@ ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; @@v4@@ = * ( _DWORD * ) ( @@v5@@ + Number ) ; if ( @@v4@@ != @@v9@@ ) ++ @@v8@@ ; if ( @@v8@@ > Number ) { pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; v2 = @@v5@@ ; * ( _QWORD * ) @@v5@@ = Number L ; * ( _QWORD * ) ( v2 + Number ) = Number L ; memset ( ( void * ) ( ( v2 + Number ) & Number ) , Number , Number L * ( ( ( ( _DWORD ) v2 - ( ( ( _DWORD ) v2 + Number ) & Number ) + Number ) & Number ) >> Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; @@v9@@ = @@v4@@ ; @@v8@@ = Number ; } } QND_RDSEnable ( Number L ) ; fwrite ( String , Number , Number , stderr ) ; pthread_exit ( Number L ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v6", "t": {"T": 3, "t": "char"}, "location": "s32"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v3", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s52"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "crad_set_power", "code": "__int64 __fastcall crad_set_power ( __int64 @@a1@@ , unsigned int @@a2@@ ) { if ( ! @@a1@@ ) return Number L ; if ( ! @@a2@@ || * ( _DWORD * ) ( @@a1@@ + Number ) ) { if ( @@a2@@ || ! * ( _DWORD * ) ( @@a1@@ + Number ) ) { fprintf ( stderr , String , @@a2@@ , * ( unsigned int * ) ( @@a1@@ + Number ) ) ; } else { fwrite ( String , Number , Number , stderr ) ; select_input ( Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; crad_set_rds ( @@a1@@ , Number L ) ; } } else { select_input ( Number ) ; system ( String ) ; fwrite ( String , Number , Number , stderr ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( pthread_create ( ( pthread_t * ) ( @@a1@@ + Number ) , Number L , ( void * ( * ) ( void * ) ) playback_thread , ( void * ) @@a1@@ ) ) { perror ( String ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return Number L ; } pthread_detach ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]}