{"name": "process_post", "code": "__int64 __fastcall process_post ( __int64 @@a1@@ , char @@a2@@ , __int64 @@a3@@ ) { if ( nevents == Number ) return Number L ; snum_2541 = ( fevent + nevents ) & Number ; * ( ( _BYTE * ) & events + Number * ( ( fevent + nevents ) & Number ) ) = @@a2@@ ; * ( ( _QWORD * ) & unk_420CC8 + Number * ( unsigned __int8 ) snum_2541 ) = @@a3@@ ; qword_420CD0 [ Number * ( unsigned __int8 ) snum_2541 ] = @@a1@@ ; ++ nevents ; return Number L ; }", "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": 1, "n": "char", "s": 1}, "location": "r64"}]}
{"name": "process_thread_etimer_process", "code": "__int64 __fastcall process_thread_etimer_process ( _WORD * @@a1@@ , char @@a2@@ , __int64 @@a3@@ ) { __int64 @@result@@ ; char @@v5@@ ; __int64 @@v6@@ ; __int64 v7 ; __int64 i ; @@v5@@ = Number ; if ( ! * @@a1@@ ) { timerlist = Number L ; goto LABEL_5 ; } if ( * @@a1@@ == Number ) { while ( @@v5@@ ) { if ( @@a2@@ == Number ) { while ( timerlist && @@a3@@ == * ( _QWORD * ) ( timerlist + Number ) ) timerlist = * ( _QWORD * ) ( timerlist + Number ) ; if ( timerlist ) { v7 = timerlist ; while ( * ( _QWORD * ) ( v7 + Number ) ) { if ( @@a3@@ == * ( _QWORD * ) ( * ( _QWORD * ) ( v7 + Number ) + Number L ) ) * ( _QWORD * ) ( v7 + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( v7 + Number ) + Number L ) ; else v7 = * ( _QWORD * ) ( v7 + Number ) ; } } } else if ( @@a2@@ == Number ) { LABEL_21 : @@v6@@ = Number L ; for ( i = timerlist ; i ; i = * ( _QWORD * ) ( i + Number ) ) { if ( ( unsigned int ) timer_expired ( i ) ) { if ( ! ( unsigned int ) process_post ( * ( _QWORD * ) ( i + Number ) , Number L , i ) ) { * ( _QWORD * ) ( i + Number ) = Number L ; if ( @@v6@@ ) * ( _QWORD * ) ( @@v6@@ + Number ) = * ( _QWORD * ) ( i + Number ) ; else timerlist = * ( _QWORD * ) ( i + Number ) ; * ( _QWORD * ) ( i + Number ) = Number L ; update_time ( ) ; goto LABEL_21 ; } etimer_request_poll ( ) ; } @@v6@@ = i ; } } LABEL_5 : @@v5@@ = Number ; * @@a1@@ = Number ; } @@result@@ = Number L ; } else { * @@a1@@ = Number ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "char", "s": 1}, "location": "s17"}]} {"name": "tcpip_icmp6_call", "code": "__int64 __fastcall tcpip_icmp6_call ( char @@a1@@ ) { __int64 @@result@@ ; char @@v2@@ [ Number ] ; @@v2@@ [ Number ] = @@a1@@ ; @@result@@ = uip_icmp6_conns ; if ( uip_icmp6_conns ) @@result@@ = process_post_synch ( uip_icmp6_conns , ( unsigned __int8 ) tcpip_icmp6_event , @@v2@@ ) ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 2, "n": 4, "s": 1, "t": "char"}, "location": "s4"}]} {"name": "tcpip_input", "code": "__int64 tcpip_input ( ) { __int64 @@result@@ ; @@result@@ = process_post_synch ( & tcpip_process , Number L , Number L ) ; uip_len = Number ; uip_ext_len = Number ; return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "tcpip_poll_udp", "code": "__int64 __fastcall tcpip_poll_udp ( __int64 @@a1@@ ) { return process_post ( & tcpip_process , Number L , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "tcpip_poll_tcp", "code": "__int64 __fastcall tcpip_poll_tcp ( __int64 @@a1@@ ) { return process_post ( & tcpip_process , Number L , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "tcpip_uipcall", "code": "__int64 tcpip_uipcall ( ) { __int64 * @@v0@@ ; _QWORD * @@v1@@ ; __int64 @@result@@ ; if ( uip_conn ) @@v0@@ = ( __int64 * ) ( uip_conn + Number ) ; else @@v0@@ = ( __int64 * ) ( ( char * ) uip_udp_conn + Number ) ; if ( ( uip_flags & Number ) != Number ) { @@v1@@ = & s ; for ( i_4815 = Number ; ( unsigned __int8 ) i_4815 <= Number ; ++ i_4815 ) { if ( * ( _WORD * ) @@v1@@ == * ( _WORD * ) ( uip_conn + Number ) && @@v1@@ [ Number ] ) { * @@v0@@ = @@v1@@ [ Number ] ; @@v0@@ [ Number ] = Number L ; break ; } @@v1@@ += Number ; } start_periodic_tcp_timer ( ) ; } @@result@@ = * @@v0@@ ; if ( * @@v0@@ ) @@result@@ = process_post_synch ( * @@v0@@ , ( unsigned __int8 ) tcpip_event , @@v0@@ [ Number ] ) ; return @@result@@ ; }", "source": [{"n": "v1", "t": {"T": 3, "t": "_QWORD"}, "location": "r104"}, {"n": "v0", "t": {"T": 3, "t": "__int64"}, "location": "r32"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "process_thread_sensors_process", "code": "__int64 __fastcall process_thread_sensors_process ( _WORD * @@a1@@ , char @@a2@@ ) { int v2 ; __int64 result ; char @@v4@@ ; @@v4@@ = Number ; v2 = ( unsigned __int16 ) * @@a1@@ ; if ( v2 == Number ) goto LABEL_17 ; if ( ( unsigned __int16 ) * @@a1@@ > Number ) goto LABEL_25 ; if ( ! * @@a1@@ ) { sensors_event = process_alloc_event ( ) ; for ( i_2499 = Number ; ( & sensors ) [ i_2499 ] ; ++ i_2499 ) { sensors_flags [ i_2499 ] = Number ; ( ( void ( __fastcall * ) ( __int64 , _QWORD ) ) ( & sensors ) [ i_2499 ] [ Number ] ) ( Number L , Number L ) ; } num_sensors = i_2499 ; goto LABEL_10 ; } if ( v2 == Number ) { while ( @@v4@@ ) { do { events_2500 = Number ; for ( i_2499 = Number ; ( unsigned __int8 ) num_sensors > i_2499 ; ++ i_2499 ) { if ( sensors_flags [ i_2499 ] < Number ) { if ( ! ( unsigned int ) process_post ( Number L , ( unsigned __int8 ) sensors_event , ( & sensors ) [ i_2499 ] ) ) { @@v4@@ = Number ; * @@a1@@ = Number ; LABEL_17 : if ( ! @@v4@@ || @@a2@@ != sensors_event ) return Number L ; } sensors_flags [ i_2499 ] &= Number ; ++ events_2500 ; } } } while ( events_2500 ) ; LABEL_10 : @@v4@@ = Number ; * @@a1@@ = Number ; } result = Number L ; } else { LABEL_25 : * @@a1@@ = Number ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}]} {"name": "process_start", "code": "__int64 __fastcall process_start ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; _QWORD * @@i@@ ; for ( @@i@@ = ( _QWORD * ) process_list ; @@i@@ != ( _QWORD * ) @@a1@@ && @@i@@ ; @@i@@ = ( _QWORD * ) * @@i@@ ) ; @@result@@ = ( __int64 ) @@i@@ ; if ( @@i@@ != ( _QWORD * ) @@a1@@ ) { * ( _QWORD * ) @@a1@@ = process_list ; process_list = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; @@result@@ = process_post_synch ( @@a1@@ , Number L , @@a2@@ ) ; } return @@result@@ ; }", "source": [{"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"}, {"n": "i", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "process_post_synch", "code": "__int64 __fastcall process_post_synch ( __int64 @@a1@@ , unsigned __int8 @@a2@@ , __int64 @@a3@@ ) { __int64 @@result@@ ; __int64 @@v4@@ ; @@v4@@ = process_current ; call_process ( @@a1@@ , @@a2@@ , @@a3@@ ) ; @@result@@ = @@v4@@ ; process_current = @@v4@@ ; return @@result@@ ; }", "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": 1, "n": "unsigned __int8", "s": 1}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "process_thread_serial_line_process", "code": "__int64 __fastcall process_thread_serial_line_process ( _WORD * @@a1@@ , char @@a2@@ ) { int v2 ; __int64 result ; int v4 ; int v5 ; int @@v6@@ ; char @@v7@@ ; @@v7@@ = Number ; v2 = ( unsigned __int16 ) * @@a1@@ ; if ( v2 == Number ) goto LABEL_16 ; if ( ( unsigned __int16 ) * @@a1@@ > Number ) goto LABEL_20 ; if ( ! * @@a1@@ ) { serial_line_event_message = process_alloc_event ( ) ; ptr_2484 = Number ; goto LABEL_7 ; } if ( v2 == Number ) { LABEL_9 : if ( @@v7@@ ) { while ( Number ) { while ( Number ) { LABEL_7 : @@v6@@ = ringbuf_get ( & rxbuf ) ; if ( @@v6@@ == Number ) { @@v7@@ = Number ; * @@a1@@ = Number ; goto LABEL_9 ; } if ( @@v6@@ == Number ) break ; if ( ptr_2484 <= Number ) { v4 = ptr_2484 ++ ; buf_2483 [ v4 ] = @@v6@@ ; } } v5 = ptr_2484 ++ ; buf_2483 [ v5 ] = Number ; process_post ( Number L , serial_line_event_message , ( __int64 ) buf_2483 ) ; if ( ! ( unsigned int ) process_post ( process_current , Number , Number L ) ) { @@v7@@ = Number ; * @@a1@@ = Number ; LABEL_16 : if ( ! @@v7@@ || @@a2@@ != Number ) break ; } ptr_2484 = Number ; } result = Number L ; } else { result = Number L ; } } else { LABEL_20 : * @@a1@@ = Number ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}