{"name": "send_udp_packet", "code": "__int64 __fastcall send_udp_packet ( __int64 @@a1@@ ) { _QWORD * v1 ; char * v2 ; __int64 v3 ; int v4 ; int v5 ; _QWORD * v6 ; char * v7 ; __int64 v8 ; int v9 ; int v10 ; __int64 result ; char @@v12@@ [ Number ] ; __int64 @@i@@ ; int @@v14@@ ; unsigned int @@v15@@ ; @@v12@@ [ Number ] = Number ; @@v15@@ = Number ; @@v14@@ = Number ; for ( @@i@@ = list_head ( own_services ) ; @@v14@@ <= Number && @@i@@ ; @@i@@ = list_item_next ( @@i@@ ) ) { v1 = ( _QWORD * ) servreg_hack_item_address ( @@i@@ ) ; v2 = & @@v12@@ [ @@v14@@ ] ; v3 = v1 [ Number ] ; * ( _QWORD * ) v2 = * v1 ; * ( ( _QWORD * ) v2 + Number ) = v3 ; v4 = @@v14@@ + Number ; @@v12@@ [ v4 ] = servreg_hack_item_id ( @@i@@ ) ; v5 = @@v14@@ + Number ; @@v12@@ [ @@v14@@ + Number ] = Number ; @@v12@@ [ @@v14@@ + Number ] = @@v12@@ [ v5 ] ; @@v12@@ [ @@v14@@ + Number ] = * ( _BYTE * ) ( @@i@@ + Number ) ; @@v14@@ += Number ; ++ @@v15@@ ; } for ( @@i@@ = servreg_hack_list_head ( ) ; @@v14@@ <= Number && @@i@@ ; @@i@@ = list_item_next ( @@i@@ ) ) { v6 = ( _QWORD * ) servreg_hack_item_address ( @@i@@ ) ; v7 = & @@v12@@ [ @@v14@@ ] ; v8 = v6 [ Number ] ; * ( _QWORD * ) v7 = * v6 ; * ( ( _QWORD * ) v7 + Number ) = v8 ; v9 = @@v14@@ + Number ; @@v12@@ [ v9 ] = servreg_hack_item_id ( @@i@@ ) ; v10 = @@v14@@ + Number ; @@v12@@ [ @@v14@@ + Number ] = Number ; @@v12@@ [ @@v14@@ + Number ] = @@v12@@ [ v10 ] ; @@v12@@ [ @@v14@@ + Number ] = * ( _BYTE * ) ( @@i@@ + Number ) ; @@v14@@ += Number ; ++ @@v15@@ ; } result = @@v15@@ ; @@v12@@ [ Number ] = @@v15@@ ; if ( ( int ) @@v15@@ > Number ) result = uip_udp_packet_send ( @@a1@@ , @@v12@@ , ( unsigned int ) @@v14@@ ) ; return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v12", "t": {"T": 2, "n": 96, "s": 1, "t": "char"}, "location": "s128"}, {"n": "v15", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}
{"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": "process_thread_servreg_hack_process", "code": "__int64 __fastcall process_thread_servreg_hack_process ( _WORD * @@a1@@ , char @@a2@@ , void * @@a3@@ ) { unsigned __int16 v3 ; unsigned __int16 v4 ; __int64 result ; char @@v7@@ ; @@v7@@ = Number ; if ( ! * @@a1@@ ) { outconn_4485 = ( __int64 ) udp_broadcast_new ( Number , Number L ) ; * ( _WORD * ) ( outconn_4485 + Number ) = Number ; inconn_4486 = ( __int64 ) udp_new ( Number L , Number , Number L ) ; * ( _WORD * ) ( inconn_4486 + Number ) = Number ; etimer_set ( ( __int64 ) & periodic_4484 , Number L ) ; v3 = random_rand ( ) ; etimer_set ( ( __int64 ) & sendtimer , v3 % Number ) ; goto LABEL_5 ; } if ( * @@a1@@ == Number ) { while ( @@v7@@ ) { if ( @@a2@@ == Number && @@a3@@ == & periodic_4484 ) { etimer_reset ( ( __int64 ) & periodic_4484 ) ; v4 = random_rand ( ) ; etimer_set ( ( __int64 ) & sendtimer , v4 % Number ) ; } else if ( @@a2@@ == Number && @@a3@@ == & sendtimer ) { send_udp_packet ( outconn_4485 ) ; } else if ( @@a2@@ == tcpip_event ) { parse_incoming_packet ( ( unsigned __int8 * ) uip_appdata ) ; } LABEL_5 : @@v7@@ = Number ; * @@a1@@ = Number ; } result = Number L ; } else { * @@a1@@ = Number ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "void"}, "location": "r16"}, {"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"}]} {"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"}]} {"name": "uip_udp_packet_send", "code": "void __fastcall uip_udp_packet_send ( void * @@a1@@ , const void * @@a2@@ , int @@a3@@ ) { int @@v3@@ ; if ( @@a2@@ ) { uip_udp_conn = @@a1@@ ; uip_slen = @@a3@@ ; @@v3@@ = Number ; if ( @@a3@@ <= Number ) @@v3@@ = @@a3@@ ; memcpy ( & unk_4227B0 , @@a2@@ , @@v3@@ ) ; uip_process ( Number ) ; tcpip_ipv6_output ( ) ; } uip_slen = Number ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "send", "code": "__int64 __fastcall send ( __int64 @@a1@@ , unsigned __int16 @@a2@@ ) { prepare ( @@a1@@ , @@a2@@ ) ; return transmit ( @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r64"}]}