{"name": "tb_jmp_cache_hash_func", "code": "__int64 __fastcall tb_jmp_cache_hash_func ( unsigned int @@a1@@ ) { return ( ( @@a1@@ ^ ( @@a1@@ >> Number ) ) >> Number ) & Number | ( ( unsigned __int8 ) @@a1@@ ^ ( unsigned __int8 ) ( @@a1@@ >> Number ) ) & Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}]}
{"name": "tb_find_slow", "code": "__int64 __fastcall tb_find_slow ( unsigned int @@a1@@ , unsigned int @@a2@@ , __int64 @@a3@@ ) { __int64 @@v3@@ ; int @@v6@@ ; __int64 * @@i@@ ; __int64 @@v8@@ ; tb_invalidated_flag = Number ; regs_to_env ( ) ; @@v6@@ = get_phys_addr_code ( @@v3@@ , @@a1@@ ) ; for ( @@i@@ = ( __int64 * ) ( ( char * ) & tb_phys_hash + Number * ( unsigned int ) tb_phys_hash_func ( @@v6@@ ) ) ; ; @@i@@ = ( __int64 * ) ( @@v8@@ + Number ) ) { @@v8@@ = * @@i@@ ; if ( ! * @@i@@ ) break ; if ( @@a1@@ == * ( _DWORD * ) @@v8@@ && ( @@v6@@ & Number ) == * ( _DWORD * ) ( @@v8@@ + Number ) && @@a2@@ == * ( _DWORD * ) ( @@v8@@ + Number ) && @@a3@@ == * ( _QWORD * ) ( @@v8@@ + Number ) && ( * ( _DWORD * ) ( @@v8@@ + Number ) == Number || ( unsigned int ) get_phys_addr_code ( @@v3@@ , ( @@a1@@ & Number ) + Number ) == * ( _DWORD * ) ( @@v8@@ + Number ) ) ) { goto LABEL_11 ; } } @@v8@@ = tb_gen_code ( @@v3@@ , @@a1@@ , @@a2@@ , ( unsigned int ) @@a3@@ , Number L ) ; LABEL_11 : * ( _QWORD * ) ( @@v3@@ + Number * ( ( unsigned int ) tb_jmp_cache_hash_func ( @@a1@@ ) + Number L ) + Number ) = @@v8@@ ; return @@v8@@ ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r120"}, {"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "i", "t": {"T": 3, "t": "__int64"}, "location": "s32"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}]} {"name": "tb_find_fast", "code": "__int64 __fastcall tb_find_fast ( ) { _DWORD * @@v0@@ ; _BOOL4 v1 ; _BOOL4 v2 ; int @@v4@@ ; unsigned int @@v5@@ ; unsigned int @@v6@@ ; __int64 @@v7@@ ; cpu_get_tb_cpu_state ( @@v0@@ , & @@v5@@ , & @@v6@@ , & @@v4@@ ) ; @@v7@@ = * ( _QWORD * ) & @@v0@@ [ Number * ( unsigned int ) tb_jmp_cache_hash_func ( @@v5@@ ) + Number ] ; v1 = ! @@v7@@ || * ( _DWORD * ) @@v7@@ != @@v5@@ ; v2 = v1 || * ( _DWORD * ) ( @@v7@@ + Number ) != @@v6@@ ; if ( v2 || * ( _QWORD * ) ( @@v7@@ + Number ) != @@v4@@ ) @@v7@@ = tb_find_slow ( @@v5@@ , @@v6@@ , @@v4@@ ) ; return @@v7@@ ; }", "source": [{"n": "v0", "t": {"T": 3, "t": "_DWORD"}, "location": "r120"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}]}