{"name": "call_process", "code": "__int64 __fastcall call_process ( __int64 @@a1@@ , unsigned __int8 @@a2@@ , __int64 @@a3@@ ) { __int64 @@result@@ ; int @@v4@@ ; @@result@@ = * ( _BYTE * ) ( @@a1@@ + Number ) & Number ; if ( ( * ( _BYTE * ) ( @@a1@@ + Number ) & Number ) != Number ) { @@result@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( @@result@@ ) { process_current = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; @@v4@@ = ( * ( char ( __fastcall * * ) ( __int64 , _QWORD , __int64 ) ) ( @@a1@@ + Number ) ) ( @@a1@@ + Number , @@a2@@ , @@a3@@ ) ; if ( @@v4@@ == Number || @@v4@@ == Number || @@a2@@ == Number ) { @@result@@ = exit_process ( @@a1@@ , @@a1@@ ) ; } else { @@result@@ = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; } } } 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": "int", "s": 4}, "location": "s4"}]}
{"name": "exit_process", "code": "__int64 __fastcall exit_process ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; _QWORD * i ; _QWORD * j ; _QWORD * k ; __int64 @@v6@@ ; @@result@@ = process_current ; @@v6@@ = process_current ; for ( i = ( _QWORD * ) process_list ; i != ( _QWORD * ) @@a1@@ && i ; i = ( _QWORD * ) * i ) ; if ( i ) { if ( ( unsigned int ) process_is_running ( @@a1@@ ) ) { * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; for ( j = ( _QWORD * ) process_list ; j ; j = ( _QWORD * ) * j ) { if ( ( _QWORD * ) @@a1@@ != j ) call_process ( j , Number L , @@a1@@ ) ; } if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { if ( @@a1@@ != @@a2@@ ) { process_current = @@a1@@ ; ( * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@a1@@ + Number ) ) ( @@a1@@ + Number , Number L , Number L ) ; } } } if ( @@a1@@ == process_list ) { process_list = * ( _QWORD * ) process_list ; } else { for ( k = ( _QWORD * ) process_list ; k ; k = ( _QWORD * ) * k ) { if ( @@a1@@ == * k ) { * k = * ( _QWORD * ) @@a1@@ ; break ; } } } @@result@@ = @@v6@@ ; process_current = @@v6@@ ; } 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": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}]} {"name": "do_poll", "code": "__int64 do_poll ( ) { __int64 @@result@@ ; __int64 @@i@@ ; poll_requested = Number ; @@result@@ = process_list ; for ( @@i@@ = process_list ; @@i@@ ; @@i@@ = * ( _QWORD * ) @@i@@ ) { if ( * ( _BYTE * ) ( @@i@@ + Number ) ) { * ( _BYTE * ) ( @@i@@ + Number ) = Number ; * ( _BYTE * ) ( @@i@@ + Number ) = Number ; call_process ( @@i@@ , Number , Number L ) ; } @@result@@ = * ( _QWORD * ) @@i@@ ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "do_event", "code": "__int64 do_event ( ) { __int64 @@result@@ ; @@result@@ = ( unsigned __int8 ) nevents ; if ( nevents ) { ev_2523 = * ( ( _BYTE * ) & events + Number * ( unsigned __int8 ) fevent ) ; data_2524 = * ( ( _QWORD * ) & unk_420CC8 + Number * ( unsigned __int8 ) fevent ) ; receiver_2525 = qword_420CD0 [ Number * ( unsigned __int8 ) fevent ] ; fevent = ( ( unsigned __int8 ) fevent + Number ) % Number ; -- nevents ; if ( receiver_2525 ) { if ( ev_2523 == Number ) * ( _BYTE * ) ( receiver_2525 + Number ) = Number ; @@result@@ = call_process ( receiver_2525 , ev_2523 , data_2524 ) ; } else { for ( p_2526 = process_list ; ; p_2526 = * ( _QWORD * ) p_2526 ) { @@result@@ = p_2526 ; if ( ! p_2526 ) break ; if ( poll_requested ) do_poll ( ) ; call_process ( p_2526 , ev_2523 , data_2524 ) ; } } } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"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"}]}