{"name": "cpu_halted", "code": "__int64 __fastcall cpu_halted ( __int64 @@a1@@ ) { if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) return Number L ; if ( ! ( unsigned int ) cpu_has_work ( @@a1@@ ) ) return Number L ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]}
{"name": "cpu_has_work", "code": "__int64 __fastcall cpu_has_work ( __int64 @@a1@@ ) { return * ( _DWORD * ) ( @@a1@@ + Number ) & Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "cpu_arm_exec", "code": "__int64 __fastcall cpu_arm_exec ( __int64 @@a1@@ ) { int @@v2@@ ; unsigned int @@v3@@ ; int v4 ; int v5 ; __int64 @@v6@@ ; int @@v7@@ ; __int64 @@v8@@ ; if ( ( unsigned int ) cpu_halted ( @@a1@@ ) == Number ) return Number L ; cpu_single_env = @@a1@@ ; env_to_regs ( ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; while ( setjmp ( ( struct __jmp_buf_tag * ) ( @@a1@@ + Number ) ) ) env_to_regs ( ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; if ( * ( int * ) ( @@a1@@ + Number ) < Number ) { LABEL_10 : @@v8@@ = Number L ; while ( Number ) { @@v7@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( @@v7@@ ) { if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) LOBYTE ( @@v7@@ ) = @@v7@@ & Number ; if ( ( @@v7@@ & Number ) != Number ) { @@v2@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; LOBYTE ( @@v2@@ ) = @@v2@@ & Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v2@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; cpu_loop_exit ( ) ; } if ( ( @@v7@@ & Number ) != Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) &= Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; cpu_loop_exit ( ) ; } if ( ( @@v7@@ & Number ) != Number && ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) == Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; do_interrupt ( @@a1@@ ) ; @@v8@@ = Number L ; } if ( ( @@v7@@ & Number ) != Number && ( arm_feature ( @@a1@@ , Number ) && * ( _DWORD * ) ( @@a1@@ + Number ) <= Number || ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) == Number ) ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; do_interrupt ( @@a1@@ ) ; @@v8@@ = Number L ; } if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) &= Number ; @@v8@@ = Number L ; } } if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; cpu_loop_exit ( ) ; } spin_lock ( ) ; @@v6@@ = tb_find_fast ( & tb_lock ) ; if ( tb_invalidated_flag ) { @@v8@@ = Number L ; tb_invalidated_flag = Number ; } if ( @@v8@@ && * ( _DWORD * ) ( @@v6@@ + Number ) == Number ) tb_add_jump ( @@v8@@ & Number , @@v8@@ & Number , @@v6@@ ) ; spin_unlock ( ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v6@@ ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; while ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { @@v8@@ = code_gen_prologue ( * ( _QWORD * ) ( @@v6@@ + Number ) ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; if ( ( @@v8@@ & Number ) == Number ) { @@v6@@ = @@v8@@ & Number ; cpu_pc_from_tb ( @@a1@@ , ( _DWORD * ) ( @@v8@@ & Number ) ) ; v4 = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) || v4 < Number ) { if ( v4 > Number ) cpu_exec_nocache ( v4 , ( unsigned int * ) @@v6@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; cpu_loop_exit ( ) ; } * ( _QWORD * ) ( @@a1@@ + Number ) += v4 ; if ( * ( __int64 * ) ( @@a1@@ + Number ) <= Number ) v5 = * ( _QWORD * ) ( @@a1@@ + Number ) ; else v5 = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) -= v5 ; * ( _WORD * ) ( @@a1@@ + Number ) = v5 ; } } } } if ( * ( int * ) ( @@a1@@ + Number ) <= Number ) { do_interrupt ( @@a1@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; goto LABEL_10 ; } @@v3@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( @@v3@@ == Number ) cpu_handle_debug_exception ( @@a1@@ ) ; cpu_single_env = Number L ; return @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s48"}]}