{"name": "get_phys_addr_code", "code": "__int64 __fastcall get_phys_addr_code ( __int64 @@a1@@ , unsigned int @@a2@@ ) { _BOOL4 @@v3@@ ; @@v3@@ = cpu_mmu_index ( @@a1@@ ) ; if ( * ( _DWORD * ) ( Number * ( ( ( __int64 ) @@v3@@ << Number ) + ( unsigned __int8 ) ( @@a2@@ >> Number ) ) + @@a1@@ + Number ) != ( @@a2@@ & Number ) ) ldub_code ( @@a2@@ ) ; if ( ( * ( _DWORD * ) ( Number * ( ( ( __int64 ) @@v3@@ << Number ) + ( unsigned __int8 ) ( @@a2@@ >> Number ) ) + @@a1@@ + Number ) & Number ) > Number && ( * ( _BYTE * ) ( Number * ( ( ( __int64 ) @@v3@@ << Number ) + ( unsigned __int8 ) ( @@a2@@ >> Number ) ) + @@a1@@ + Number ) & Number ) == Number ) { cpu_abort ( @@a1@@ , String , @@a2@@ ) ; } return qemu_ram_addr_from_host ( * ( _QWORD * ) ( Number * ( ( ( __int64 ) @@v3@@ << Number ) + ( unsigned __int8 ) ( @@a2@@ >> Number ) + Number ) + @@a1@@ + Number ) + @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s8"}]}
{"name": "cpu_mmu_index", "code": "_BOOL8 __fastcall cpu_mmu_index ( __int64 @@a1@@ ) { return ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) == Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "ldub_code", "code": "__int64 __fastcall ldub_code ( unsigned int @@a1@@ ) { _BOOL4 @@v2@@ ; unsigned int @@v3@@ ; @@v2@@ = cpu_mmu_index ( cpu_single_env ) ; if ( * ( _DWORD * ) ( Number * ( ( ( __int64 ) @@v2@@ << Number ) + ( unsigned __int8 ) ( @@a1@@ >> Number ) ) + cpu_single_env + Number ) == ( @@a1@@ & Number ) ) @@v3@@ = ldub_p ( ( unsigned __int8 * ) ( @@a1@@ + * ( _QWORD * ) ( Number * ( ( ( __int64 ) @@v2@@ << Number ) + ( unsigned __int8 ) ( @@a1@@ >> Number ) + Number ) + cpu_single_env + Number ) ) ) ; else @@v3@@ = ( unsigned __int8 ) _ldb_cmmu ( @@a1@@ , @@v2@@ ) ; return @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]} {"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"}]}