{"name": "jsonrpc_scan", "code": "__int64 jsonrpc_scan ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ , ... ) { __int64 result ; _DWORD * * v7 ; _DWORD * * v8 ; _DWORD * * v9 ; _DWORD * * v10 ; _QWORD * * v11 ; __int64 * * v12 ; double v13 ; unsigned __int64 v14 ; __int64 v15 ; __int64 * v16 ; int v17 ; double v18 ; unsigned __int64 v19 ; __int64 v20 ; __int64 v21 ; __int64 v22 ; __int64 v23 ; __int64 v24 ; const char * v25 ; int v26 ; const char * v27 ; unsigned int v28 ; __int64 v29 ; const char * v30 ; unsigned int v31 ; void ( * v32 ) ( _QWORD , const char * , ... ) ; __int64 v33 ; unsigned int v34 ; __int64 v35 ; int v36 ; unsigned int v37 ; void ( * v38 ) ( _QWORD , const char * , ... ) ; unsigned int v39 ; const char * v40 ; int v41 ; unsigned int v42 ; __int64 v43 ; __int64 v44 ; __int64 v45 ; __int64 v46 ; const char * v47 ; int v48 ; const char * v49 ; unsigned int v50 ; __int64 v51 ; const char * v52 ; unsigned int v53 ; void ( * v54 ) ( _QWORD , const char * , ... ) ; __int64 v55 ; unsigned int v56 ; __int64 v57 ; int v58 ; unsigned int v59 ; void ( * v60 ) ( _QWORD , const char * , ... ) ; unsigned int v61 ; const char * v62 ; int v63 ; unsigned int v64 ; __int64 v65 ; __int64 v66 ; _BYTE * @@v67@@ ; int @@v68@@ [ Number ] ; gcc_va_list @@va@@ ; unsigned int @@v70@@ ; __int64 @@v71@@ ; unsigned int @@v72@@ ; _DWORD * @@v73@@ ; _QWORD * @@v74@@ ; __int64 * @@v75@@ ; _DWORD * @@v76@@ ; __int64 @@v77@@ ; int @@v78@@ ; int @@v79@@ ; int @@v80@@ ; __int64 @@v81@@ ; __int64 @@v82@@ ; __int64 @@v83@@ ; __int64 @@v84@@ ; @@v67@@ = ( _BYTE * ) @@a2@@ ; @@v81@@ = @@a3@@ ; @@v82@@ = @@a4@@ ; @@v83@@ = @@a5@@ ; @@v84@@ = @@a6@@ ; @@v80@@ = Number ; @@v79@@ = Number ; @@v78@@ = Number ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) return Number L ; @@v77@@ = @@a2@@ ; @@va@@ [ Number ] . gp_offset = Number ; va_start ( @@va@@ , @@a6@@ ) ; LABEL_84 : while ( * @@v67@@ && * ( _QWORD * ) ( @@a1@@ + Number ) ) { switch ( * @@v67@@ ) { case String : @@v80@@ = Number ; ++ @@v79@@ ; ++ @@v67@@ ; goto LABEL_84 ; case String : ++ @@v79@@ ; ++ @@v67@@ ; @@v78@@ = Number ; goto LABEL_84 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v16 = ( __int64 * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v16 = ( __int64 * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v71@@ = * v16 ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) == Number ) { * ( _QWORD * ) @@v71@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; v17 = strlen ( * ( const char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; * ( _DWORD * ) ( @@v71@@ + Number ) = v17 ; } else { if ( @@v78@@ != Number ) { * ( _QWORD * ) @@v71@@ = Number L ; * ( _DWORD * ) ( @@v71@@ + Number ) = Number ; goto LABEL_90 ; } if ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != Number ) { * ( _QWORD * ) @@v71@@ = Number L ; * ( _DWORD * ) ( @@v71@@ + Number ) = Number ; goto LABEL_90 ; } v18 = * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; if ( v18 >= Number ) v19 = ( unsigned int ) ( int ) ( v18 - Number ) ^ Number ; else v19 = ( unsigned int ) ( int ) v18 ; v20 = int2str ( v19 , ( _DWORD * ) ( @@v71@@ + Number ) ) ; * ( _QWORD * ) @@v71@@ = v20 ; } LABEL_83 : ++ @@v67@@ ; @@v78@@ = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; break ; case String : case String : if ( ( int ) get_debug_level ( String , Number L ) >= Number && ! dprint_crit ) { @@v72@@ = Number ; ++ dprint_crit ; if ( log_stderr ) { if ( log_color ) dprint_color ( @@v72@@ ) ; if ( log_prefix_val ) { v24 = ( unsigned int ) ( char ) * @@v67@@ ; v25 = ( const char * ) * log_prefix_val ; v26 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v27 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) ) ; v28 = my_pid ( ) ; fprintf ( stderr , String , process_no , v28 , v27 , v26 , v25 , String , String , v24 ) ; } else { v29 = ( unsigned int ) ( char ) * @@v67@@ ; v30 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) ) ; v31 = my_pid ( ) ; fprintf ( stderr , String , process_no , v31 , v30 , String , String , v29 ) ; } if ( log_color ) dprint_color_reset ( ) ; } else if ( log_prefix_val ) { v32 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v33 = ( unsigned int ) ( char ) * @@v67@@ ; v65 = * log_prefix_val ; v34 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v35 = * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) ) ; v36 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) + Number ) ; v37 = get_debug_facility ( String , Number L ) ; v32 ( v36 | v37 , String , v35 , v34 , v65 , String , String , v33 ) ; } else { v38 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v39 = ( char ) * @@v67@@ ; v40 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) ) ; v41 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v72@@ + Number ) + Number ) ; v42 = get_debug_facility ( String , Number L ) ; v38 ( v41 | v42 , String , v40 , String , String , v39 ) ; } -- dprint_crit ; } jsonrpc_fault ( @@a1@@ , Number , String , v21 , v22 , v23 ) ; goto LABEL_90 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v7 = ( _DWORD * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v7 = ( _DWORD * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v76@@ = * v7 ; * @@v76@@ = ( int ) * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; goto LABEL_83 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v9 = ( _DWORD * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v9 = ( _DWORD * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v73@@ = * v9 ; * @@v73@@ = ( int ) * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; goto LABEL_83 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v11 = ( _QWORD * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v11 = ( _QWORD * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v74@@ = * v11 ; * @@v74@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; goto LABEL_83 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v12 = ( __int64 * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v12 = ( __int64 * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v75@@ = * v12 ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) == Number ) { * @@v75@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } else { if ( @@v78@@ != Number ) { * @@v75@@ = Number L ; goto LABEL_90 ; } if ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != Number ) { * @@v75@@ = Number L ; goto LABEL_90 ; } v13 = * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; if ( v13 >= Number ) v14 = ( unsigned int ) ( int ) ( v13 - Number ) ^ Number ; else v14 = ( unsigned int ) ( int ) v13 ; v15 = int2str ( v14 , @@v68@@ ) ; * @@v75@@ = v15 ; } goto LABEL_83 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v8 = ( _DWORD * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v8 = ( _DWORD * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v76@@ = * v8 ; * @@v76@@ = ( int ) * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; goto LABEL_83 ; case String : if ( @@va@@ [ Number ] . gp_offset > Number ) { v10 = ( _DWORD * * ) @@va@@ [ Number ] . overflow_arg_area ; @@va@@ [ Number ] . overflow_arg_area = ( char * ) @@va@@ [ Number ] . overflow_arg_area + Number ; } else { v10 = ( _DWORD * * ) ( ( char * ) @@va@@ [ Number ] . reg_save_area + @@va@@ [ Number ] . gp_offset ) ; @@va@@ [ Number ] . gp_offset += Number ; } @@v76@@ = * v10 ; * @@v76@@ = ( int ) * ( double * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; goto LABEL_83 ; default : if ( ( int ) get_debug_level ( String , Number L ) >= Number && ! dprint_crit ) { @@v70@@ = Number ; ++ dprint_crit ; if ( log_stderr ) { if ( log_color ) dprint_color ( @@v70@@ ) ; if ( log_prefix_val ) { v46 = ( unsigned int ) ( char ) * @@v67@@ ; v47 = ( const char * ) * log_prefix_val ; v48 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v49 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) ) ; v50 = my_pid ( ) ; fprintf ( stderr , String , process_no , v50 , v49 , v48 , v47 , String , String , v46 ) ; } else { v51 = ( unsigned int ) ( char ) * @@v67@@ ; v52 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) ) ; v53 = my_pid ( ) ; fprintf ( stderr , String , process_no , v53 , v52 , String , String , v51 ) ; } if ( log_color ) dprint_color_reset ( ) ; } else if ( log_prefix_val ) { v54 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v55 = ( unsigned int ) ( char ) * @@v67@@ ; v66 = * log_prefix_val ; v56 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v57 = * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) ) ; v58 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) + Number ) ; v59 = get_debug_facility ( String , Number L ) ; v54 ( v58 | v59 , String , v57 , v56 , v66 , String , String , v55 ) ; } else { v60 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v61 = ( char ) * @@v67@@ ; v62 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) ) ; v63 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v70@@ + Number ) + Number ) ; v64 = get_debug_facility ( String , Number L ) ; v60 ( v63 | v64 , String , v62 , String , String , v61 ) ; } -- dprint_crit ; } jsonrpc_fault ( @@a1@@ , Number , String , v43 , v44 , v45 ) ; goto LABEL_90 ; } } if ( * @@v67@@ && * @@v67@@ != Number && @@v80@@ == Number ) LABEL_90 : result = ( unsigned int ) ( @@v79@@ - ( ( _DWORD ) @@v67@@ - @@v77@@ ) ) ; else result = ( unsigned int ) ( ( _DWORD ) @@v67@@ - @@v77@@ - @@v79@@ ) ; return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v84", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s184"}, {"n": "v83", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s192"}, {"n": "v82", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s200"}, {"n": "v81", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s208"}, {"n": "v80", "t": {"T": 1, "n": "int", "s": 4}, "location": "s228"}, {"n": "v79", "t": {"T": 1, "n": "int", "s": 4}, "location": "s232"}, {"n": "v78", "t": {"T": 1, "n": "int", "s": 4}, "location": "s236"}, {"n": "v77", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s248"}, {"n": "v76", "t": {"T": 3, "t": "_DWORD"}, "location": "s256"}, {"n": "v75", "t": {"T": 3, "t": "__int64"}, "location": "s264"}, {"n": "v74", "t": {"T": 3, "t": "_QWORD"}, "location": "s272"}, {"n": "v73", "t": {"T": 3, "t": "_DWORD"}, "location": "s280"}, {"n": "v72", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s284"}, {"n": "v71", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s296"}, {"n": "v70", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s300"}, {"n": "va", "t": {"T": 2, "n": 1, "s": 24, "t": "__va_list_tag"}, "location": "s328"}, {"n": "v68", "t": {"T": 2, "n": 4, "s": 4, "t": "int"}, "location": "s344"}, {"n": "v67", "t": {"T": 3, "t": "_BYTE"}, "location": "s368"}]}