{"name": "new_dio_interval", "code": "__int64 __fastcall new_dio_interval ( __int64 @@a1@@ ) { unsigned __int64 v2 ; unsigned __int64 v3 ; v2 = Number * ( unsigned int ) ( Number L << * ( _BYTE * ) ( @@a1@@ + Number ) ) / Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = v2 ; v3 = ( v2 >> Number ) + ( v2 >> Number ) * ( unsigned __int16 ) random_rand ( ) / Number ; * ( _QWORD * ) ( @@a1@@ + Number ) -= v3 ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; return ctimer_set ( @@a1@@ + Number , v3 , handle_dio_timer , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]}
{"name": "handle_dio_timer", "code": "__int64 __fastcall handle_dio_timer ( __int64 @@a1@@ ) { __int64 @@result@@ ; if ( ! dio_send_ok ) { if ( ! uip_ds6_get_link_local ( Number ) ) return ctimer_set ( @@a1@@ + Number , Number L , handle_dio_timer , @@a1@@ ) ; dio_send_ok = Number ; } if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) { if ( * ( _BYTE * ) ( @@a1@@ + Number ) < * ( _BYTE * ) ( @@a1@@ + Number ) ) dio_output ( ( unsigned __int8 * ) @@a1@@ , Number L ) ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; @@result@@ = ctimer_set ( @@a1@@ + Number , * ( _QWORD * ) ( @@a1@@ + Number ) , handle_dio_timer , @@a1@@ ) ; } else { if ( * ( unsigned __int8 * ) ( @@a1@@ + Number ) < * ( unsigned __int8 * ) ( @@a1@@ + Number ) + * ( unsigned __int8 * ) ( @@a1@@ + Number ) ) ++ * ( _BYTE * ) ( @@a1@@ + Number ) ; @@result@@ = new_dio_interval ( @@a1@@ ) ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "rpl_reset_dio_timer", "code": "__int64 __fastcall rpl_reset_dio_timer ( unsigned __int8 * @@a1@@ ) { __int64 @@result@@ ; @@result@@ = @@a1@@ [ Number ] ; if ( @@a1@@ [ Number ] > ( unsigned __int8 ) @@result@@ ) { @@a1@@ [ Number ] = Number ; @@a1@@ [ Number ] = @@a1@@ [ Number ] ; @@result@@ = new_dio_interval ( ( __int64 ) @@a1@@ ) ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "timer_set", "code": "__time_t __fastcall timer_set ( __time_t * @@a1@@ , __time_t @@a2@@ ) { __time_t @@result@@ ; @@a1@@ [ Number ] = @@a2@@ ; @@result@@ = clock_time ( ) ; * @@a1@@ = @@result@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__time_t"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__time_t", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__time_t", "s": 8}, "location": "r8"}]} {"name": "ctimer_set", "code": "_QWORD * __fastcall ctimer_set ( _QWORD * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ ) { __int64 @@v5@@ ; @@a1@@ [ Number ] = process_current ; @@a1@@ [ Number ] = @@a3@@ ; @@a1@@ [ Number ] = @@a4@@ ; if ( initialized_0 ) { @@v5@@ = process_current ; process_current = ( __int64 ) & ctimer_process ; etimer_set ( ( __int64 ) ( @@a1@@ + Number ) , @@a2@@ ) ; process_current = @@v5@@ ; } else { @@a1@@ [ Number ] = @@a2@@ ; } list_remove ( ctimer_list , @@a1@@ ) ; return list_add ( ctimer_list , @@a1@@ ) ; }", "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": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}