{"name": "rpl_find_parent", "code": "_QWORD * __fastcall rpl_find_parent ( __int64 @@a1@@ , const void * @@a2@@ ) { _QWORD * @@i@@ ; for ( @@i@@ = ( _QWORD * ) list_head ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@i@@ ; @@i@@ = ( _QWORD * ) * @@i@@ ) { if ( ! memcmp ( @@i@@ + Number , @@a2@@ , Number ) ) return @@i@@ ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "i", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]}
{"name": "rpl_link_neighbor_callback", "code": "void * __fastcall rpl_link_neighbor_callback ( _QWORD * @@a1@@ , unsigned int @@a2@@ , unsigned int @@a3@@ ) { void * @@result@@ ; __int16 @@v5@@ [ Number ] ; __int64 @@v6@@ ; unsigned __int64 @@v7@@ ; char * @@v8@@ ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; uip_ds6_set_addr_iid ( ( __int64 ) @@v5@@ , @@a1@@ ) ; @@v8@@ = ( char * ) & instance_table ; @@v7@@ = ( unsigned __int64 ) & instance_table + Number ; while ( Number ) { @@result@@ = @@v8@@ ; if ( ( unsigned __int64 ) @@v8@@ >= @@v7@@ ) break ; if ( @@v8@@ [ Number ] == Number ) { @@v6@@ = rpl_find_parent_any_dag ( @@v8@@ , @@v5@@ ) ; if ( @@v6@@ ) { * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; * ( _BYTE * ) ( @@v6@@ + Number ) = @@a3@@ ; if ( * ( _QWORD * ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( * ( void ( __fastcall * * ) ( __int64 , _QWORD , _QWORD ) ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( @@v6@@ , @@a2@@ , @@a3@@ ) ; if ( ! @@a2@@ ) * ( _WORD * ) ( @@v6@@ + Number ) = Number ; } } @@v8@@ += Number ; } if ( ! @@a2@@ ) @@result@@ = ( void * ) uip_ds6_route_rm_by_nexthop ( @@v5@@ ) ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "void"}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 2, "n": 12, "s": 2, "t": "__int16"}, "location": "s48"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "rpl_ipv6_neighbor_callback", "code": "char * __fastcall rpl_ipv6_neighbor_callback ( unsigned __int8 * @@a1@@ ) { char * @@result@@ ; __int64 @@v2@@ ; char * @@i@@ ; @@result@@ = ( char * ) * @@a1@@ ; if ( ! ( _BYTE ) @@result@@ ) { for ( @@i@@ = ( char * ) & instance_table ; ; @@i@@ += Number ) { @@result@@ = @@i@@ ; if ( @@i@@ >= ( char * ) & instance_table + Number ) break ; if ( @@i@@ [ Number ] == Number ) { @@v2@@ = rpl_find_parent_any_dag ( @@i@@ , @@a1@@ + Number ) ; if ( @@v2@@ ) { * ( _WORD * ) ( @@v2@@ + Number ) = Number ; * ( _BYTE * ) ( @@v2@@ + Number ) = Number ; } } } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r56"}, {"n": "result", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "i", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "rpl_find_parent_any_dag", "code": "_QWORD * __fastcall rpl_find_parent_any_dag ( __int64 @@a1@@ , const void * @@a2@@ ) { unsigned __int64 @@i@@ ; _QWORD * @@j@@ ; for ( @@i@@ = @@a1@@ + Number ; @@i@@ < @@a1@@ + Number ; @@i@@ += Number L ) { if ( * ( _BYTE * ) ( @@i@@ + Number ) ) { for ( @@j@@ = ( _QWORD * ) list_head ( * ( _QWORD * ) ( @@i@@ + Number ) ) ; @@j@@ ; @@j@@ = ( _QWORD * ) * @@j@@ ) { if ( ! memcmp ( @@j@@ + Number , @@a2@@ , Number ) ) return @@j@@ ; } } } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "j", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "rpl_add_dag", "code": "char * __fastcall rpl_add_dag ( _QWORD * @@a1@@ , __int64 @@a2@@ ) { char * @@result@@ ; __int64 @@v3@@ ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; @@result@@ = rpl_alloc_dag ( * ( _BYTE * ) ( @@a2@@ + Number ) ) ; @@v6@@ = ( __int64 ) @@result@@ ; if ( @@result@@ ) { @@v5@@ = * ( ( _QWORD * ) @@result@@ + Number ) ; @@v4@@ = find_parent_dag ( @@v5@@ , @@a1@@ ) ; if ( @@v4@@ ) { @@v7@@ = ( __int64 ) rpl_find_parent ( @@v4@@ , @@a1@@ ) ; if ( @@v7@@ ) rpl_move_parent ( @@v4@@ , @@v6@@ , @@v7@@ ) ; } else { @@v7@@ = rpl_add_parent ( @@v6@@ , @@a2@@ , @@a1@@ ) ; if ( ! @@v7@@ ) { @@result@@ = ( char * ) @@v6@@ ; * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; return @@result@@ ; } } if ( rpl_find_of ( * ( _WORD * ) ( @@a2@@ + Number ) ) == * ( __int64 ( __fastcall * * * ) ( ) ) ( @@v5@@ + Number ) && * ( _BYTE * ) ( @@v5@@ + Number ) == * ( _BYTE * ) ( @@a2@@ + Number ) && * ( _WORD * ) ( @@v5@@ + Number ) == * ( _WORD * ) ( @@a2@@ + Number ) && * ( _WORD * ) ( @@v5@@ + Number ) == * ( _WORD * ) ( @@a2@@ + Number ) && * ( _BYTE * ) ( @@v5@@ + Number ) == * ( _BYTE * ) ( @@a2@@ + Number ) && * ( _BYTE * ) ( @@v5@@ + Number ) == * ( _BYTE * ) ( @@a2@@ + Number ) && * ( _BYTE * ) ( @@v5@@ + Number ) == * ( _BYTE * ) ( @@a2@@ + Number ) && * ( _BYTE * ) ( @@v5@@ + Number ) == * ( _BYTE * ) ( @@a2@@ + Number ) && * ( _WORD * ) ( @@v5@@ + Number ) == * ( _WORD * ) ( @@a2@@ + Number ) ) { * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; * ( _BYTE * ) ( @@v6@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; * ( _BYTE * ) ( @@v6@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; * ( _BYTE * ) ( @@v6@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; @@v3@@ = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) @@v6@@ = * ( _QWORD * ) @@a2@@ ; * ( _QWORD * ) ( @@v6@@ + Number ) = @@v3@@ ; memcpy ( ( void * ) ( @@v6@@ + Number ) , ( const void * ) ( @@a2@@ + Number ) , Number ) ; * ( _QWORD * ) ( @@v6@@ + Number ) = @@v7@@ ; * ( _WORD * ) ( @@v6@@ + Number ) = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( * ( _QWORD * ) ( @@v5@@ + Number ) + Number L ) ) ( @@v7@@ , Number L ) ; * ( _WORD * ) ( @@v6@@ + Number ) = * ( _WORD * ) ( @@v6@@ + Number ) ; rpl_process_parent_event ( @@v5@@ , @@v7@@ ) ; @@result@@ = ( char * ) @@v7@@ ; * ( _BYTE * ) ( @@v7@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; } else { rpl_remove_parent ( @@v6@@ , @@v7@@ ) ; @@result@@ = ( char * ) @@v6@@ ; * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; } } return @@result@@ ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "rpl_process_dio", "code": "__int64 __fastcall rpl_process_dio ( _QWORD * @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; __int64 @@v3@@ ; __int64 @@v4@@ ; _WORD * @@v5@@ ; _QWORD * @@v6@@ ; @@result@@ = * ( unsigned __int8 * ) ( @@a2@@ + Number ) ; if ( ( _BYTE ) @@result@@ == Number ) { @@v5@@ = get_dag ( * ( _BYTE * ) ( @@a2@@ + Number ) , ( const void * ) @@a2@@ ) ; @@v4@@ = rpl_get_instance ( * ( _BYTE * ) ( @@a2@@ + Number ) ) ; if ( @@v5@@ && @@v4@@ ) { if ( lollipop_greater_than ( * ( unsigned __int8 * ) ( @@a2@@ + Number ) , * ( ( unsigned __int8 * ) @@v5@@ + Number ) ) ) { if ( @@v5@@ [ Number ] != * ( _WORD * ) ( @@v4@@ + Number ) ) return global_repair ( @@a1@@ , ( __int64 ) @@v5@@ , @@a2@@ ) ; * ( ( _BYTE * ) @@v5@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; ++ * ( ( _BYTE * ) @@v5@@ + Number ) ; return rpl_reset_dio_timer ( @@v4@@ ) ; } if ( lollipop_greater_than ( * ( ( unsigned __int8 * ) @@v5@@ + Number ) , * ( unsigned __int8 * ) ( @@a2@@ + Number ) ) && * ( ( _BYTE * ) @@v5@@ + Number ) ) return rpl_reset_dio_timer ( @@v4@@ ) ; } @@result@@ = * ( unsigned __int16 * ) ( @@a2@@ + Number ) ; if ( ( _WORD ) @@result@@ == Number ) return @@result@@ ; if ( ! @@v4@@ ) return rpl_join_instance ( @@a1@@ , @@a2@@ ) ; if ( ! @@v5@@ ) return ( __int64 ) rpl_add_dag ( @@a1@@ , @@a2@@ ) ; @@result@@ = * ( unsigned __int16 * ) ( @@v4@@ + Number ) ; if ( * ( _WORD * ) ( @@a2@@ + Number ) >= ( unsigned __int16 ) @@result@@ ) { if ( * ( _WORD * ) ( @@a2@@ + Number ) == Number && * ( ( _BYTE * ) @@v5@@ + Number ) ) rpl_reset_dio_timer ( @@v4@@ ) ; if ( @@v5@@ [ Number ] == * ( _WORD * ) ( @@v4@@ + Number ) ) { @@result@@ = * ( unsigned __int16 * ) ( @@a2@@ + Number ) ; if ( ( _WORD ) @@result@@ != Number ) { @@result@@ = @@v4@@ ; ++ * ( _BYTE * ) ( @@v4@@ + Number ) ; } return @@result@@ ; } @@v6@@ = rpl_find_parent ( ( __int64 ) @@v5@@ , @@a1@@ ) ; if ( @@v6@@ ) { if ( * ( ( _WORD * ) @@v6@@ + Number ) == * ( _WORD * ) ( @@a2@@ + Number ) ) { if ( * ( ( _BYTE * ) @@v5@@ + Number ) ) ++ * ( _BYTE * ) ( @@v4@@ + Number ) ; } else { * ( ( _WORD * ) @@v6@@ + Number ) = * ( _WORD * ) ( @@a2@@ + Number ) ; } } else { @@v3@@ = find_parent_dag ( @@v4@@ , @@a1@@ ) ; if ( @@v3@@ ) { @@v6@@ = rpl_find_parent ( @@v3@@ , @@a1@@ ) ; if ( @@v6@@ ) rpl_move_parent ( @@v3@@ , ( __int64 ) @@v5@@ , ( __int64 ) @@v6@@ ) ; } else { if ( ( unsigned int ) list_length ( * ( ( _QWORD * ) @@v5@@ + Number ) ) == Number ) remove_worst_parent ( ( __int64 ) @@v5@@ , * ( _WORD * ) ( @@a2@@ + Number ) ) ; @@result@@ = rpl_add_parent ( ( __int64 ) @@v5@@ , @@a2@@ , @@a1@@ ) ; @@v6@@ = ( _QWORD * ) @@result@@ ; if ( ! @@result@@ ) return @@result@@ ; } } @@v6@@ [ Number ] = * ( _QWORD * ) ( @@a2@@ + Number ) ; @@result@@ = rpl_process_parent_event ( @@v4@@ , ( __int64 ) @@v6@@ ) ; if ( ( _DWORD ) @@result@@ ) { if ( * ( ( _BYTE * ) @@v5@@ + Number ) && @@v6@@ == * ( ( _QWORD * * ) @@v5@@ + Number ) && should_send_dao ( @@v4@@ , @@a2@@ , ( __int64 ) @@v6@@ ) ) { ++ * ( _BYTE * ) ( @@v4@@ + Number ) ; rpl_schedule_dao ( @@v4@@ ) ; } @@result@@ = ( __int64 ) @@v6@@ ; * ( ( _BYTE * ) @@v6@@ + Number ) = * ( _BYTE * ) ( @@a2@@ + Number ) ; } return @@result@@ ; } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "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": "v5", "t": {"T": 3, "t": "_WORD"}, "location": "s16"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v6", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "dao_input", "code": "int dao_input ( ) { __int64 @@v0@@ ; __int64 v1 ; int v2 ; int v3 ; int v4 ; int v5 ; _QWORD @@s@@ [ Number ] ; __int64 @@v8@@ [ Number ] ; char @@v9@@ ; char @@v10@@ ; char @@v11@@ ; _QWORD * @@v12@@ ; int @@v13@@ ; __int64 @@v14@@ ; void * @@s1@@ ; __int16 @@v16@@ ; unsigned __int8 @@v17@@ ; __int64 @@v18@@ ; char @@v19@@ ; unsigned __int8 @@v20@@ ; __int64 @@v21@@ ; int @@i@@ ; int @@v23@@ ; int @@v24@@ ; unsigned __int8 @@v25@@ ; unsigned __int8 @@v26@@ ; @@v25@@ = Number ; @@v0@@ = * ( _QWORD * ) & byte_422788 [ Number ] ; @@v8@@ [ Number ] = * ( _QWORD * ) byte_422788 ; @@v8@@ [ Number ] = @@v0@@ ; @@v21@@ = ( unsigned __int8 ) uip_ext_len + Number + Number L ; @@v20@@ = uip_len - uip_ext_len - Number ; @@v24@@ = Number ; @@v19@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; v1 = rpl_get_instance ( @@v19@@ ) ; @@v18@@ = v1 ; if ( v1 ) { @@v26@@ = * ( _BYTE * ) ( @@v18@@ + Number ) ; v2 = @@v24@@ ++ ; @@v17@@ = * ( _BYTE * ) ( v2 + @@v21@@ ) ; v3 = @@v24@@ + Number ; @@v24@@ += Number ; @@v16@@ = * ( unsigned __int8 * ) ( v3 + @@v21@@ ) ; @@s1@@ = * ( void * * ) ( @@v18@@ + Number ) ; if ( ( @@v17@@ & Number ) != Number ) { LODWORD ( v1 ) = memcmp ( @@s1@@ , ( const void * ) ( @@v24@@ + @@v21@@ ) , Number ) ; if ( ( _DWORD ) v1 ) return v1 ; @@v24@@ += Number ; } for ( @@i@@ = @@v24@@ ; @@i@@ < @@v20@@ ; @@i@@ += @@v23@@ ) { @@v11@@ = * ( _BYTE * ) ( @@i@@ + @@v21@@ ) ; if ( @@v11@@ ) @@v23@@ = * ( unsigned __int8 * ) ( @@i@@ + Number L + @@v21@@ ) + Number ; else @@v23@@ = Number ; if ( @@v11@@ == Number ) { @@v25@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; v4 = @@v25@@ + Number ; if ( v4 < Number ) v4 = @@v25@@ + Number ; memcpy ( @@s@@ , ( const void * ) ( @@v21@@ + @@i@@ + Number L ) , v4 >> Number ) ; } else if ( @@v11@@ == Number ) { @@v10@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; @@v9@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; @@v26@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; } } v1 = uip_ds6_route_lookup ( @@s@@ ) ; @@v14@@ = v1 ; if ( @@v26@@ ) { if ( LOBYTE ( @@v8@@ [ Number ] ) == Number ) v5 = Number ; else v5 = Number ; @@v13@@ = v5 ; if ( v5 == Number && ( @@v12@@ = rpl_find_parent ( ( __int64 ) @@s1@@ , @@v8@@ ) ) != Number L && ( unsigned __int16 ) ( * ( ( _WORD * ) @@v12@@ + Number ) / * ( _WORD * ) ( @@v18@@ + Number ) ) < ( unsigned __int16 ) ( * ( ( _WORD * ) @@s1@@ + Number ) / * ( _WORD * ) ( @@v18@@ + Number ) ) ) { * ( ( _WORD * ) @@v12@@ + Number ) = Number ; LODWORD ( v1 ) = ( _DWORD ) @@v12@@ ; * ( ( _BYTE * ) @@v12@@ + Number ) = Number ; } else { v1 = rpl_add_route ( ( __int64 ) @@s1@@ , @@s@@ , @@v25@@ , @@v8@@ ) ; @@v14@@ = v1 ; if ( v1 ) { * ( _DWORD * ) ( @@v14@@ + Number ) = @@v26@@ * * ( unsigned __int16 * ) ( @@v18@@ + Number ) ; LODWORD ( v1 ) = @@v14@@ ; * ( _BYTE * ) ( @@v14@@ + Number ) = @@v13@@ ; if ( @@v13@@ == Number ) { if ( * ( ( _QWORD * ) @@s1@@ + Number ) ) uip_icmp6_send ( ( _QWORD * ) ( * ( ( _QWORD * ) @@s1@@ + Number ) + Number L ) , Number , Number , @@v20@@ ) ; LODWORD ( v1 ) = @@v17@@ ; if ( ( @@v17@@ & Number ) != Number ) LODWORD ( v1 ) = dao_ack_output ( @@v18@@ , @@v8@@ , ( unsigned __int8 ) @@v16@@ ) ; } } } } else if ( @@v14@@ ) { LODWORD ( v1 ) = * ( _DWORD * ) ( @@v14@@ + Number ) ; if ( ! ( _DWORD ) v1 ) { LODWORD ( v1 ) = * ( unsigned __int8 * ) ( @@v14@@ + Number ) ; if ( @@v25@@ == ( _BYTE ) v1 ) { * ( _DWORD * ) ( @@v14@@ + Number ) = * ( _DWORD * ) ( @@v14@@ + Number ) ; LODWORD ( v1 ) = @@v14@@ ; * ( _DWORD * ) ( @@v14@@ + Number ) = Number ; } } } } return v1 ; }", "source": [{"n": "v0", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "v26", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s1"}, {"n": "v8", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s112"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "s", "t": {"T": 2, "n": 2, "s": 8, "t": "_QWORD"}, "location": "s128"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v25", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s2"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s25"}, {"n": "v19", "t": {"T": 1, "n": "char", "s": 1}, "location": "s26"}, {"n": "v18", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v17", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s41"}, {"n": "v16", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s44"}, {"n": "s1", "t": {"T": 3, "t": "void"}, "location": "s56"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}, {"n": "v12", "t": {"T": 3, "t": "_QWORD"}, "location": "s80"}, {"n": "v11", "t": {"T": 1, "n": "char", "s": 1}, "location": "s81"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s82"}, {"n": "v9", "t": {"T": 1, "n": "char", "s": 1}, "location": "s83"}]} {"name": "rpl_update_header_final", "code": "__int64 __fastcall rpl_update_header_final ( const void * @@a1@@ ) { _QWORD * @@v2@@ ; char @@v3@@ ; @@v3@@ = uip_ext_len ; uip_ext_len = Number ; if ( ! * ( ( _BYTE * ) & uip_aligned_buf + Number ) ) { if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ) { uip_ext_len = @@v3@@ ; return Number L ; } if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) == Number && ! * ( _WORD * ) ( ( char * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) ) { if ( ! default_instance || ! * ( _BYTE * ) ( default_instance + Number ) || ! * ( _BYTE * ) ( * ( _QWORD * ) ( default_instance + Number ) + Number L ) ) { return Number L ; } @@v2@@ = rpl_find_parent ( * ( _QWORD * ) ( default_instance + Number ) , @@a1@@ ) ; if ( ! @@v2@@ || @@v2@@ != * ( _QWORD * * ) ( @@v2@@ [ Number ] + Number L ) ) * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = * ( _BYTE * ) ( default_instance + Number ) ; * ( _WORD * ) ( ( char * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) = * ( _WORD * ) ( * ( _QWORD * ) ( default_instance + Number ) + Number L ) ; uip_ext_len = @@v3@@ ; } } return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const void"}, "location": "r56"}, {"n": "v2", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "char", "s": 1}, "location": "s4"}]} {"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"}]}