{"name": "servreg_hack_lookup", "code": "__int64 __fastcall servreg_hack_lookup ( char @@a1@@ ) { __int64 @@i@@ ; servreg_hack_init ( ) ; purge_registrations ( ) ; for ( @@i@@ = servreg_hack_list_head ( ) ; @@i@@ ; @@i@@ = list_item_next ( @@i@@ ) ) { if ( @@a1@@ == ( unsigned __int8 ) servreg_hack_item_id ( @@i@@ ) ) return servreg_hack_item_address ( @@i@@ ) ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}
{"name": "purge_registrations", "code": "__int64 purge_registrations ( ) { __int64 @@result@@ ; __int64 i ; __int64 j ; for ( i = list_head ( own_services ) ; i ; i = list_item_next ( i ) ) { if ( ( unsigned int ) timer_expired ( i + Number ) ) { ++ * ( _BYTE * ) ( i + Number ) ; timer_set ( i + Number , Number L ) ; } } @@result@@ = list_head ( others_services ) ; for ( j = @@result@@ ; j ; j = @@result@@ ) { if ( ( unsigned int ) timer_expired ( j + Number ) ) { list_remove ( others_services , j ) ; memb_free ( & registrations , j ) ; j = list_head ( others_services ) ; } @@result@@ = list_item_next ( j ) ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "servreg_hack_init", "code": "__int64 servreg_hack_init ( ) { __int64 @@result@@ ; @@result@@ = ( unsigned __int8 ) started ; if ( ! started ) { list_init ( others_services ) ; list_init ( own_services ) ; memb_init ( & registrations ) ; @@result@@ = process_start ( & servreg_hack_process , Number L ) ; started = Number ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "servreg_hack_item_id", "code": "__int64 __fastcall servreg_hack_item_id ( __int64 @@a1@@ ) { return * ( unsigned __int8 * ) ( @@a1@@ + Number ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "servreg_hack_item_address", "code": "__int64 __fastcall servreg_hack_item_address ( __int64 @@a1@@ ) { return @@a1@@ + Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "list_head", "code": "__int64 __fastcall list_head ( __int64 @@a1@@ ) { return * ( _QWORD * ) @@a1@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "list_item_next", "code": "__int64 __fastcall list_item_next ( __int64 * @@a1@@ ) { __int64 @@result@@ ; if ( @@a1@@ ) @@result@@ = * @@a1@@ ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}