{"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": "_start", "code": "void __fastcall __noreturn start ( __int64 @@a1@@ , __int64 @@a2@@ , void ( * @@a3@@ ) ( void ) ) { __int64 @@v3@@ ; int v4 ; __int64 @@v5@@ ; char * @@retaddr@@ ; v4 = @@v5@@ ; @@v5@@ = @@v3@@ ; _libc_start_main ( ( int ( __fastcall * ) ( int , char * * , char * * ) ) main , v4 , & @@retaddr@@ , _libc_csu_init , _libc_csu_fini , @@a3@@ , & @@v5@@ ) ; __halt ( ) ; }", "source": [{"n": "a3", "t": {"T": 9, "n": "void (*)(void)"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "retaddr", "t": {"T": 3, "t": "char"}, "location": "s0"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "process_thread_example_servreg_client_process", "code": "__int64 __fastcall process_thread_example_servreg_client_process ( _WORD * @@a1@@ ) { unsigned __int8 v1 ; __int64 v2 ; __int64 result ; __int64 @@v4@@ ; char @@v5@@ ; @@v5@@ = Number ; if ( ! * @@a1@@ ) { servreg_hack_init ( ) ; set_global_address ( ) ; goto LABEL_5 ; } if ( * @@a1@@ == Number ) { while ( Number ) { if ( ! @@v5@@ || ! ( unsigned int ) etimer_expired ( & et_3297 ) ) return Number L ; @@v4@@ = servreg_hack_list_head ( ) ; if ( @@v4@@ ) break ; LABEL_5 : etimer_set ( & et_3297 , Number L ) ; @@v5@@ = Number ; * @@a1@@ = Number ; } v1 = servreg_hack_item_id ( @@v4@@ ) ; printf ( String , v1 ) ; v2 = servreg_hack_item_address ( @@v4@@ ) ; uip_debug_ipaddr_print ( v2 ) ; putchar ( Number ) ; * @@a1@@ = Number ; result = Number L ; } else { * @@a1@@ = Number ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "v5", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}]} {"name": "servreg_hack_register", "code": "int __fastcall servreg_hack_register ( char @@a1@@ , _QWORD * @@a2@@ ) { int result ; __int64 @@v3@@ ; unsigned __int16 v4 ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 @@i@@ ; servreg_hack_init ( ) ; for ( @@i@@ = list_head ( own_services ) ; @@i@@ ; @@i@@ = list_item_next ( @@i@@ ) ) { result = servreg_hack_item_id ( @@i@@ ) ; if ( @@a1@@ == ( _BYTE ) result ) return result ; } @@v6@@ = memb_alloc ( & registrations ) ; if ( ! @@v6@@ ) return puts ( String String ) ; * ( _BYTE * ) ( @@v6@@ + Number ) = @@a1@@ ; * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; @@v3@@ = @@a2@@ [ Number ] ; * ( _QWORD * ) ( @@v6@@ + Number ) = * @@a2@@ ; * ( _QWORD * ) ( @@v6@@ + Number ) = @@v3@@ ; timer_set ( @@v6@@ + Number , Number L ) ; list_push ( own_services , @@v6@@ ) ; @@v5@@ = process_current ; process_current = ( __int64 ) & servreg_hack_process ; v4 = random_rand ( ) ; etimer_set ( ( __int64 ) & sendtimer , v4 % Number ) ; result = @@v5@@ ; process_current = @@v5@@ ; return result ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"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": "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": "memb_init", "code": "void * __fastcall memb_init ( unsigned __int16 * @@a1@@ ) { memset ( * ( ( void * * ) @@a1@@ + Number ) , Number , @@a1@@ [ Number ] ) ; return memset ( * ( ( void * * ) @@a1@@ + Number ) , Number , * @@a1@@ * @@a1@@ [ Number ] ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int16"}, "location": "r56"}]} {"name": "list_init", "code": "_QWORD * __fastcall list_init ( _QWORD * @@a1@@ ) { _QWORD * @@result@@ ; @@result@@ = @@a1@@ ; * @@a1@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}]}