{"name": "jsonrpc_send", "code": "__int64 __fastcall jsonrpc_send ( _QWORD * @@a1@@ ) { __int64 v2 ; __int64 v3 ; __int64 v4 ; const char * v5 ; int v6 ; const char * v7 ; unsigned int v8 ; const char * v9 ; unsigned int v10 ; void ( * v11 ) ( _QWORD , const char * , ... ) ; __int64 v12 ; unsigned int v13 ; __int64 v14 ; int v15 ; unsigned int v16 ; void ( * v17 ) ( _QWORD , const char * , ... ) ; const char * v18 ; int v19 ; unsigned int v20 ; unsigned int v21 ; __int64 v22 ; __int64 v23 ; unsigned int v24 ; __int64 v25 ; __int64 v26 ; const char * v27 ; int v28 ; __int64 v29 ; const void * v30 ; const char * v31 ; unsigned int v32 ; const char * v33 ; int v34 ; __int64 v35 ; const void * v36 ; const char * v37 ; unsigned int v38 ; void ( * v39 ) ( _QWORD , const char * , ... ) ; __int64 v40 ; __int64 v41 ; unsigned int v42 ; __int64 v43 ; unsigned int v44 ; void ( * v45 ) ( _QWORD , const char * , ... ) ; const char * v46 ; int v47 ; __int64 v48 ; const char * v49 ; unsigned int v50 ; const char * v51 ; int v52 ; __int64 v53 ; const void * v54 ; const char * v55 ; unsigned int v56 ; const char * v57 ; int v58 ; __int64 v59 ; const void * v60 ; const char * v61 ; unsigned int v62 ; void ( * v63 ) ( _QWORD , const char * , ... ) ; __int64 v64 ; __int64 v65 ; unsigned int v66 ; __int64 v67 ; unsigned int v68 ; void ( * v69 ) ( _QWORD , const char * , ... ) ; const char * v70 ; int v71 ; __int64 v72 ; const char * v73 ; unsigned int v74 ; int v75 ; int v76 ; __int64 v77 ; __int64 v78 ; const char * v79 ; unsigned int v80 ; int v81 ; const char * v82 ; unsigned int v83 ; int v84 ; int v85 ; __int64 v86 ; const void * v87 ; int v88 ; __int64 v89 ; const void * v90 ; char * @@s@@ ; int @@v92@@ ; unsigned int @@v93@@ ; unsigned int @@v94@@ ; unsigned int @@v95@@ ; __int64 @@v96@@ ; int @@i@@ ; @@v96@@ = Number L ; if ( * ( ( _DWORD * ) @@a1@@ + Number ) ) return Number L ; * ( ( _DWORD * ) @@a1@@ + Number ) = Number ; if ( * ( ( _DWORD * ) @@a1@@ + Number ) ) { @@v96@@ = srjson_CreateObject ( @@a1@@ [ Number ] ) ; if ( @@v96@@ ) { v2 = srjson_CreateNumber ( @@a1@@ [ Number ] , ( double ) * ( ( int * ) @@a1@@ + Number ) ) ; srjson_AddItemToObject ( @@a1@@ [ Number ] , @@v96@@ , String , v2 ) ; for ( @@i@@ = Number ; * ( ( _DWORD * ) & jsonrpc_error_table + Number * @@i@@ ) && * ( ( _DWORD * ) & jsonrpc_error_table + Number * @@i@@ ) != * ( ( _DWORD * ) @@a1@@ + Number ) ; ++ @@i@@ ) { ; } if ( * ( ( _DWORD * ) & jsonrpc_error_table + Number * @@i@@ ) ) { v3 = srjson_CreateStr ( @@a1@@ [ Number ] , ( & off_16208 ) [ Number * @@i@@ ] , * ( ( unsigned int * ) & unk_16210 + Number * @@i@@ ) ) ; srjson_AddStrItemToObject ( @@a1@@ [ Number ] , @@v96@@ , String , Number L , v3 ) ; } else { if ( * ( ( int * ) @@a1@@ + Number ) <= Number ) v4 = srjson_CreateStr ( @@a1@@ [ Number ] , String , Number L ) ; else v4 = srjson_CreateStr ( @@a1@@ [ Number ] , @@a1@@ [ Number ] , * ( ( unsigned int * ) @@a1@@ + Number ) ) ; srjson_AddStrItemToObject ( @@a1@@ [ Number ] , @@v96@@ , String , Number L , v4 ) ; } srjson_AddItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , @@v96@@ ) ; } } else { @@v96@@ = srjson_GetObjectItem ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String ) ; if ( ! @@v96@@ ) { if ( ! @@a1@@ [ Number ] ) { @@a1@@ [ Number ] = ( @@a1@@ [ Number ] & Number ) != Number ? srjson_CreateArray ( @@a1@@ [ Number ] ) : srjson_CreateObject ( @@a1@@ [ Number ] ) ; if ( ! @@a1@@ [ Number ] && ( int ) get_debug_level ( String , Number L ) >= Number && ! dprint_crit ) { @@v95@@ = Number ; ++ dprint_crit ; if ( log_stderr ) { if ( log_color ) dprint_color ( @@v95@@ ) ; if ( log_prefix_val ) { v5 = ( const char * ) * log_prefix_val ; v6 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v7 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) ) ; v8 = my_pid ( ) ; fprintf ( stderr , String , process_no , v8 , v7 , v6 , v5 , String , String ) ; } else { v9 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) ) ; v10 = my_pid ( ) ; fprintf ( stderr , String , process_no , v10 , v9 , String , String ) ; } if ( log_color ) dprint_color_reset ( ) ; } else if ( log_prefix_val ) { v11 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v12 = * log_prefix_val ; v13 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v14 = * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) ) ; v15 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) + Number ) ; v16 = get_debug_facility ( String , Number L ) ; v11 ( v15 | v16 , String , v14 , v13 , v12 , String , String ) ; } else { v17 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v18 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) ) ; v19 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v95@@ + Number ) + Number ) ; v20 = get_debug_facility ( String , Number L ) ; v17 ( v19 | v20 , String , v18 , String , String ) ; } -- dprint_crit ; } } srjson_AddItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , @@a1@@ [ Number ] ) ; @@a1@@ [ Number ] = Number L ; } } if ( @@a1@@ [ Number ] && * ( _QWORD * ) @@a1@@ [ Number ] ) { @@v96@@ = srjson_GetObjectItem ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String ) ; if ( @@v96@@ ) { if ( * ( _QWORD * ) ( @@v96@@ + Number ) ) { v21 = strlen ( * ( const char * * ) ( @@v96@@ + Number ) ) ; v22 = srjson_CreateStr ( @@a1@@ [ Number ] , * ( _QWORD * ) ( @@v96@@ + Number ) , v21 ) ; srjson_AddStrItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , Number L , v22 ) ; } else { v23 = srjson_CreateNumber ( @@a1@@ [ Number ] , * ( double * ) ( @@v96@@ + Number ) ) ; srjson_AddItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , v23 ) ; } } } else if ( * ( ( _DWORD * ) @@a1@@ + Number ) == Number ) { v24 = strlen ( ( const char * ) @@a1@@ + Number ) ; v25 = srjson_CreateStr ( @@a1@@ [ Number ] , @@a1@@ + Number , v24 ) ; srjson_AddStrItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , Number L , v25 ) ; } else if ( * ( ( _DWORD * ) @@a1@@ + Number ) == Number ) { v26 = srjson_CreateNumber ( @@a1@@ [ Number ] , ( double ) ( int ) @@a1@@ [ Number ] ) ; srjson_AddItemToObject ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] , String , v26 ) ; } if ( jsonrpc_pretty_format ) @@s@@ = ( char * ) srjson_Print ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] ) ; else @@s@@ = ( char * ) srjson_PrintUnformatted ( @@a1@@ [ Number ] , * ( _QWORD * ) @@a1@@ [ Number ] ) ; if ( @@s@@ ) @@v92@@ = strlen ( @@s@@ ) ; if ( @@s@@ ) { if ( ( int ) get_debug_level ( String , Number L ) > Number && ! dprint_crit ) { @@v93@@ = Number ; ++ dprint_crit ; if ( log_stderr ) { if ( log_color ) dprint_color ( @@v93@@ ) ; if ( log_prefix_val ) { v27 = ( const char * ) @@a1@@ [ Number ] ; v28 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v29 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v30 = ( const void * ) * @@a1@@ ; v31 = ( const char * ) * log_prefix_val ; v85 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v79 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) ) ; v32 = my_pid ( ) ; fprintf ( stderr , String , process_no , v32 , v79 , v85 , v31 , String , String , v30 , v29 , v28 , v27 ) ; } else { v33 = ( const char * ) @@a1@@ [ Number ] ; v34 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v35 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v36 = ( const void * ) * @@a1@@ ; v37 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) ) ; v38 = my_pid ( ) ; fprintf ( stderr , String , process_no , v38 , v37 , String , String , v36 , v35 , v34 , v33 ) ; } if ( log_color ) dprint_color_reset ( ) ; } else if ( log_prefix_val ) { v39 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v86 = @@a1@@ [ Number ] ; v80 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v40 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v41 = * @@a1@@ ; v77 = * log_prefix_val ; v42 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v43 = * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) ) ; v75 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) + Number ) ; v44 = get_debug_facility ( String , Number L ) ; v39 ( v75 | v44 , String , v43 , v42 , v77 , String , String , v41 , v40 , v80 , v86 ) ; } else { v45 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v46 = ( const char * ) @@a1@@ [ Number ] ; v47 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v48 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v87 = ( const void * ) * @@a1@@ ; v49 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) ) ; v81 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v93@@ + Number ) + Number ) ; v50 = get_debug_facility ( String , Number L ) ; v45 ( v81 | v50 , String , v49 , String , String , v87 , v48 , v47 , v46 ) ; } -- dprint_crit ; } if ( * @@a1@@ ) { xhttp_api ( * @@a1@@ , * ( ( unsigned int * ) @@a1@@ + Number ) , @@a1@@ + Number , & JSONRPC_CONTENT_TYPE_HTML , & @@s@@ ) ; } else { jsonrpc_set_plain_reply ( * ( ( _DWORD * ) @@a1@@ + Number ) , @@a1@@ + Number , ( __int64 * ) & @@s@@ , * ( void ( __fastcall * * ) ( __int64 ) ) ( @@a1@@ [ Number ] + Number L ) ) ; @@s@@ = Number L ; } } else { if ( ( int ) get_debug_level ( String , Number L ) > Number && ! dprint_crit ) { @@v94@@ = Number ; ++ dprint_crit ; if ( log_stderr ) { if ( log_color ) dprint_color ( @@v94@@ ) ; if ( log_prefix_val ) { v51 = ( const char * ) @@a1@@ [ Number ] ; v52 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v53 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v54 = ( const void * ) * @@a1@@ ; v55 = ( const char * ) * log_prefix_val ; v88 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v82 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) ) ; v56 = my_pid ( ) ; fprintf ( stderr , String , process_no , v56 , v82 , v88 , v55 , String , String , v54 , v53 , v52 , v51 ) ; } else { v57 = ( const char * ) @@a1@@ [ Number ] ; v58 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v59 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v60 = ( const void * ) * @@a1@@ ; v61 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) ) ; v62 = my_pid ( ) ; fprintf ( stderr , String , process_no , v62 , v61 , String , String , v60 , v59 , v58 , v57 ) ; } if ( log_color ) dprint_color_reset ( ) ; } else if ( log_prefix_val ) { v63 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v89 = @@a1@@ [ Number ] ; v83 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v64 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v65 = * @@a1@@ ; v78 = * log_prefix_val ; v66 = * ( ( _DWORD * ) log_prefix_val + Number ) ; v67 = * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) ) ; v76 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) + Number ) ; v68 = get_debug_facility ( String , Number L ) ; v63 ( v76 | v68 , String , v67 , v66 , v78 , String , String , v65 , v64 , v83 , v89 ) ; } else { v69 = ( void ( * ) ( _QWORD , const char * , ... ) ) km_log_func ; v70 = ( const char * ) @@a1@@ [ Number ] ; v71 = * ( ( _DWORD * ) @@a1@@ + Number ) ; v72 = * ( ( unsigned int * ) @@a1@@ + Number ) ; v90 = ( const void * ) * @@a1@@ ; v73 = ( const char * ) * ( ( _QWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) ) ; v84 = * ( ( _DWORD * ) & log_level_info + Number * ( int ) ( @@v94@@ + Number ) + Number ) ; v74 = get_debug_facility ( String , Number L ) ; v69 ( v84 | v74 , String , v73 , String , String , v90 , v72 , v71 , v70 ) ; } -- dprint_crit ; } if ( * @@a1@@ ) xhttp_api ( * @@a1@@ , * ( ( unsigned int * ) @@a1@@ + Number ) , @@a1@@ + Number , Number L , Number L ) ; else jsonrpc_set_plain_reply ( * ( ( _DWORD * ) @@a1@@ + Number ) , @@a1@@ + Number , Number L , * ( void ( __fastcall * * ) ( __int64 ) ) ( @@a1@@ [ Number ] + Number L ) ) ; } if ( @@s@@ ) ( * ( void ( __fastcall * * ) ( char * ) ) ( @@a1@@ [ Number ] + Number L ) ) ( @@s@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v96", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v95", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s68"}, {"n": "v94", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s72"}, {"n": "v93", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s76"}, {"n": "v92", "t": {"T": 1, "n": "int", "s": 4}, "location": "s88"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s96"}]}