{"name": "tcg_gen_addi_i64", "code": "unsigned __int64 __fastcall tcg_gen_addi_i64 ( int @@a1@@ , int @@a2@@ , __int64 @@a3@@ ) { unsigned int @@v4@@ ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; if ( @@a3@@ ) { @@v4@@ = tcg_const_i64 ( @@a3@@ ) ; tcg_gen_add_i64 ( @@a1@@ , @@a2@@ , @@v4@@ ) ; tcg_temp_free_i64 ( @@v4@@ ) ; } else { tcg_gen_mov_i64 ( @@a1@@ , @@a2@@ ) ; } return __readfsqword ( Number ) ^ @@v5@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "tcg_gen_mov_i64", "code": "unsigned __int64 __fastcall tcg_gen_mov_i64 ( int @@a1@@ , int @@a2@@ ) { unsigned __int64 @@v3@@ ; @@v3@@ = __readfsqword ( Number ) ; if ( @@a1@@ != @@a2@@ ) tcg_gen_op2_i64 ( Number , @@a1@@ , @@a2@@ ) ; return __readfsqword ( Number ) ^ @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "tcg_gen_add_i64", "code": "unsigned __int64 __fastcall tcg_gen_add_i64 ( int @@a1@@ , int @@a2@@ , int @@a3@@ ) { unsigned __int64 @@v4@@ ; @@v4@@ = __readfsqword ( Number ) ; tcg_gen_op3_i64 ( Number , @@a1@@ , @@a2@@ , @@a3@@ ) ; return __readfsqword ( Number ) ^ @@v4@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_op_addl_A0_im", "code": "unsigned __int64 __fastcall gen_op_addl_A0_im ( int @@a1@@ ) { unsigned __int64 @@v2@@ ; @@v2@@ = __readfsqword ( Number ) ; tcg_gen_addi_i64 ( cpu_A0 , cpu_A0 , @@a1@@ ) ; tcg_gen_andi_i64 ( cpu_A0 , cpu_A0 , Number ) ; return __readfsqword ( Number ) ^ @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_op_addq_A0_im", "code": "unsigned __int64 __fastcall gen_op_addq_A0_im ( __int64 @@a1@@ ) { unsigned __int64 @@v2@@ ; @@v2@@ = __readfsqword ( Number ) ; tcg_gen_addi_i64 ( cpu_A0 , cpu_A0 , @@a1@@ ) ; return __readfsqword ( Number ) ^ @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_op_add_reg_im", "code": "unsigned __int64 __fastcall gen_op_add_reg_im ( int @@a1@@ , int @@a2@@ , int @@a3@@ ) { unsigned __int64 @@v4@@ ; @@v4@@ = __readfsqword ( Number ) ; if ( @@a1@@ == Number ) { tcg_gen_addi_i64 ( cpu_regs [ @@a2@@ ] , cpu_regs [ @@a2@@ ] , @@a3@@ ) ; } else if ( @@a1@@ <= Number ) { if ( @@a1@@ ) { if ( @@a1@@ == Number ) { tcg_gen_addi_i64 ( cpu_tmp0 , cpu_regs [ @@a2@@ ] , @@a3@@ ) ; tcg_gen_ext32u_i64 ( cpu_tmp0 , cpu_tmp0 ) ; tcg_gen_mov_i64 ( cpu_regs [ @@a2@@ ] , cpu_tmp0 ) ; } } else { tcg_gen_addi_i64 ( cpu_tmp0 , cpu_regs [ @@a2@@ ] , @@a3@@ ) ; tcg_gen_ext16u_i64 ( cpu_tmp0 , cpu_tmp0 ) ; tcg_gen_andi_i64 ( cpu_regs [ @@a2@@ ] , cpu_regs [ @@a2@@ ] , Number ) ; tcg_gen_or_i64 ( cpu_regs [ @@a2@@ ] , cpu_regs [ @@a2@@ ] , cpu_tmp0 ) ; } } return __readfsqword ( Number ) ^ @@v4@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_inc", "code": "unsigned __int64 __fastcall gen_inc ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { unsigned __int64 @@v7@@ ; @@v7@@ = __readfsqword ( Number ) ; if ( @@a3@@ == Number ) gen_op_ld_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ ) ; else gen_op_mov_TN_reg ( @@a2@@ , Number , @@a3@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_set_cc_op ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; if ( @@a4@@ <= Number ) { tcg_gen_addi_i64 ( cpu_T [ Number ] , cpu_T [ Number ] , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ + Number ; } else { tcg_gen_addi_i64 ( cpu_T [ Number ] , cpu_T [ Number ] , Number L ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ + Number ; } if ( @@a3@@ == Number ) gen_op_st_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ ) ; else gen_op_mov_reg_T0 ( @@a2@@ , @@a3@@ ) ; gen_compute_eflags_c ( cpu_cc_src ) ; tcg_gen_mov_i64 ( cpu_cc_dst , cpu_T [ Number ] ) ; return __readfsqword ( Number ) ^ @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_shift_rm_T1", "code": "unsigned __int64 __fastcall gen_shift_rm_T1 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ ) { unsigned int @@v9@@ ; unsigned int @@v10@@ ; int @@v11@@ ; __int64 @@v12@@ ; unsigned __int64 @@v13@@ ; @@v13@@ = __readfsqword ( Number ) ; if ( @@a2@@ == Number ) @@v12@@ = Number L ; else @@v12@@ = Number L ; if ( @@a3@@ == Number ) gen_op_ld_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ ) ; else gen_op_mov_TN_reg ( @@a2@@ , Number , @@a3@@ ) ; tcg_gen_andi_i64 ( dword_2E2A4 , dword_2E2A4 , @@v12@@ ) ; tcg_gen_addi_i64 ( cpu_tmp5 , dword_2E2A4 , Number ) ; if ( @@a4@@ ) { if ( @@a5@@ ) { gen_exts ( @@a2@@ , cpu_T [ Number ] ) ; tcg_gen_sar_i64 ( cpu_T3 , cpu_T [ Number ] , cpu_tmp5 ) ; tcg_gen_sar_i64 ( cpu_T [ Number ] , cpu_T [ Number ] , dword_2E2A4 ) ; } else { gen_extu ( @@a2@@ , cpu_T [ Number ] ) ; tcg_gen_shr_i64 ( cpu_T3 , cpu_T [ Number ] , cpu_tmp5 ) ; tcg_gen_shr_i64 ( cpu_T [ Number ] , cpu_T [ Number ] , dword_2E2A4 ) ; } } else { tcg_gen_shl_i64 ( cpu_T3 , cpu_T [ Number ] , cpu_tmp5 ) ; tcg_gen_shl_i64 ( cpu_T [ Number ] , cpu_T [ Number ] , dword_2E2A4 ) ; } if ( @@a3@@ == Number ) gen_op_st_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ ) ; else gen_op_mov_reg_T0 ( @@a2@@ , @@a3@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_set_cc_op ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; @@v9@@ = tcg_temp_local_new_i64 ( ) ; @@v10@@ = tcg_temp_local_new_i64 ( ) ; tcg_gen_mov_i64 ( @@v9@@ , cpu_T [ Number ] ) ; tcg_gen_mov_i64 ( @@v10@@ , cpu_T3 ) ; @@v11@@ = gen_new_label ( ) ; tcg_gen_brcondi_i64 ( Number , dword_2E2A4 , Number L , @@v11@@ ) ; tcg_gen_mov_i64 ( cpu_cc_src , @@v10@@ ) ; tcg_gen_mov_i64 ( cpu_cc_dst , @@v9@@ ) ; if ( @@a4@@ ) tcg_gen_movi_i32 ( cpu_cc_op , @@a2@@ + Number ) ; else tcg_gen_movi_i32 ( cpu_cc_op , @@a2@@ + Number ) ; gen_set_label ( @@v11@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; tcg_temp_free_i64 ( @@v9@@ ) ; tcg_temp_free_i64 ( @@v10@@ ) ; return __readfsqword ( Number ) ^ @@v13@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_shiftd_rm_T1_T3", "code": "unsigned __int64 __fastcall gen_shiftd_rm_T1_T3 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { unsigned int @@v7@@ ; unsigned int @@v8@@ ; unsigned int @@v9@@ ; unsigned int @@v10@@ ; int @@v11@@ ; int @@v12@@ ; int @@v13@@ ; __int64 @@v14@@ ; unsigned __int64 @@v15@@ ; @@v15@@ = __readfsqword ( Number ) ; @@v7@@ = tcg_temp_local_new_i64 ( ) ; @@v8@@ = tcg_temp_local_new_i64 ( ) ; @@v9@@ = tcg_temp_local_new_i64 ( ) ; @@v10@@ = tcg_temp_local_new_i64 ( ) ; if ( @@a2@@ == Number ) @@v14@@ = Number L ; else @@v14@@ = Number L ; if ( @@a3@@ == Number ) { tcg_gen_mov_i64 ( @@v10@@ , cpu_A0 ) ; gen_op_ld_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v7@@ , @@v10@@ ) ; } else { gen_op_mov_v_reg ( @@a2@@ , @@v7@@ , @@a3@@ ) ; } tcg_gen_andi_i64 ( cpu_T3 , cpu_T3 , @@v14@@ ) ; tcg_gen_mov_i64 ( @@v8@@ , dword_2E2A4 ) ; tcg_gen_mov_i64 ( @@v9@@ , cpu_T3 ) ; @@v11@@ = gen_new_label ( ) ; tcg_gen_brcondi_i64 ( Number , @@v9@@ , Number L , @@v11@@ ) ; tcg_gen_addi_i64 ( cpu_tmp5 , @@v9@@ , Number ) ; if ( @@a2@@ == Number ) { tcg_gen_andi_i64 ( @@v7@@ , @@v7@@ , Number ) ; if ( @@a4@@ ) { tcg_gen_shli_i64 ( cpu_tmp0 , @@v8@@ , Number L ) ; tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , cpu_tmp0 ) ; tcg_gen_ext32u_i64 ( @@v7@@ , @@v7@@ ) ; tcg_gen_shr_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp5 ) ; tcg_gen_subfi_i64 ( cpu_tmp5 , Number L , @@v9@@ ) ; tcg_gen_shl_i64 ( cpu_tmp0 , @@v7@@ , cpu_tmp5 ) ; tcg_gen_shr_i64 ( @@v7@@ , @@v7@@ , @@v9@@ ) ; tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , cpu_tmp0 ) ; } else { tcg_gen_shli_i64 ( @@v8@@ , @@v8@@ , Number L ) ; tcg_gen_or_i64 ( @@v8@@ , @@v8@@ , @@v7@@ ) ; tcg_gen_ext32u_i64 ( @@v8@@ , @@v8@@ ) ; tcg_gen_shl_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp5 ) ; tcg_gen_subfi_i64 ( cpu_tmp0 , Number L , cpu_tmp5 ) ; tcg_gen_shr_i64 ( cpu_tmp5 , @@v8@@ , cpu_tmp0 ) ; tcg_gen_or_i64 ( cpu_tmp4 , cpu_tmp4 , cpu_tmp5 ) ; tcg_gen_shl_i64 ( @@v7@@ , @@v7@@ , @@v9@@ ) ; tcg_gen_subfi_i64 ( cpu_tmp5 , Number L , @@v9@@ ) ; tcg_gen_shr_i64 ( @@v8@@ , @@v8@@ , cpu_tmp5 ) ; tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , @@v8@@ ) ; } } else { @@v12@@ = Number << @@a2@@ ; if ( @@a4@@ ) { if ( @@a2@@ == Number ) tcg_gen_ext32u_i64 ( @@v7@@ , @@v7@@ ) ; tcg_gen_shr_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp5 ) ; tcg_gen_shr_i64 ( @@v7@@ , @@v7@@ , @@v9@@ ) ; tcg_gen_subfi_i64 ( cpu_tmp5 , @@v12@@ , @@v9@@ ) ; tcg_gen_shl_i64 ( @@v8@@ , @@v8@@ , cpu_tmp5 ) ; tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , @@v8@@ ) ; } else { if ( @@a2@@ == Number ) tcg_gen_ext32u_i64 ( @@v8@@ , @@v8@@ ) ; tcg_gen_shl_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp5 ) ; tcg_gen_shl_i64 ( @@v7@@ , @@v7@@ , @@v9@@ ) ; tcg_gen_subfi_i64 ( cpu_tmp5 , @@v12@@ , @@v9@@ ) ; tcg_gen_shr_i64 ( @@v8@@ , @@v8@@ , cpu_tmp5 ) ; tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , @@v8@@ ) ; } } tcg_gen_mov_i64 ( @@v8@@ , cpu_tmp4 ) ; gen_set_label ( @@v11@@ ) ; if ( @@a3@@ == Number ) gen_op_st_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v7@@ , @@v10@@ ) ; else gen_op_mov_reg_v ( @@a2@@ , @@a3@@ , @@v7@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_set_cc_op ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; @@v13@@ = gen_new_label ( ) ; tcg_gen_brcondi_i64 ( Number , @@v9@@ , Number L , @@v13@@ ) ; tcg_gen_mov_i64 ( cpu_cc_src , @@v8@@ ) ; tcg_gen_mov_i64 ( cpu_cc_dst , @@v7@@ ) ; if ( @@a4@@ ) tcg_gen_movi_i32 ( cpu_cc_op , @@a2@@ + Number ) ; else tcg_gen_movi_i32 ( cpu_cc_op , @@a2@@ + Number ) ; gen_set_label ( @@v13@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; tcg_temp_free_i64 ( @@v7@@ ) ; tcg_temp_free_i64 ( @@v8@@ ) ; tcg_temp_free_i64 ( @@v9@@ ) ; tcg_temp_free_i64 ( @@v10@@ ) ; return __readfsqword ( Number ) ^ @@v15@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v15", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_popa", "code": "unsigned __int64 __fastcall gen_popa ( _DWORD * @@a1@@ ) { int @@i@@ ; unsigned __int64 @@v3@@ ; @@v3@@ = __readfsqword ( Number ) ; gen_op_movl_A0_reg ( Number ) ; if ( ! @@a1@@ [ Number ] ) gen_op_andl_A0_ffff ( ) ; tcg_gen_mov_i64 ( dword_2E2A4 , cpu_A0 ) ; tcg_gen_addi_i64 ( dword_2E2A4 , dword_2E2A4 , Number << @@a1@@ [ Number ] ) ; if ( @@a1@@ [ Number ] ) gen_op_addl_A0_seg ( Number ) ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( @@i@@ != Number ) { gen_op_ld_T0_A0 ( @@a1@@ [ Number ] + Number + @@a1@@ [ Number ] ) ; gen_op_mov_reg_T0 ( @@a1@@ [ Number ] + Number , Number - @@i@@ ) ; } gen_op_addl_A0_im ( Number << @@a1@@ [ Number ] ) ; } gen_op_mov_reg_T1 ( @@a1@@ [ Number ] + Number , Number ) ; return __readfsqword ( Number ) ^ @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_enter", "code": "unsigned __int64 __fastcall gen_enter ( _DWORD * @@a1@@ , int @@a2@@ , char @@a3@@ ) { int v3 ; int v4 ; int v5 ; int v6 ; int v7 ; int v8 ; int v9 ; unsigned int @@v11@@ ; int v12 ; int v13 ; int v14 ; int v15 ; unsigned __int64 @@v16@@ ; @@v16@@ = __readfsqword ( Number ) ; @@v11@@ = @@a3@@ & Number ; if ( @@a1@@ [ Number ] ) { if ( @@a1@@ [ Number ] ) v3 = Number ; else v3 = Number ; v12 = v3 ; v14 = Number << v3 ; gen_op_movl_A0_reg ( Number ) ; gen_op_addq_A0_im ( - v14 ) ; tcg_gen_mov_i64 ( dword_2E2A4 , cpu_A0 ) ; gen_op_mov_TN_reg ( Number , Number , Number ) ; gen_op_st_T0_A0 ( @@a1@@ [ Number ] + v12 ) ; if ( @@v11@@ ) { v4 = dword_2E2A4 ; v5 = tcg_const_i32 ( v12 == Number ) ; v6 = tcg_const_i32 ( @@v11@@ ) ; gen_helper_enter64_level ( v6 , v5 , v4 ) ; } gen_op_mov_reg_T1 ( v12 , Number ) ; tcg_gen_addi_i64 ( dword_2E2A4 , dword_2E2A4 , ( int ) ( @@v11@@ * - v14 - @@a2@@ ) ) ; gen_op_mov_reg_T1 ( Number , Number ) ; } else { v13 = @@a1@@ [ Number ] + Number ; v15 = Number << @@a1@@ [ Number ] ; gen_op_movl_A0_reg ( Number ) ; gen_op_addl_A0_im ( - v15 ) ; if ( ! @@a1@@ [ Number ] ) gen_op_andl_A0_ffff ( ) ; tcg_gen_mov_i64 ( dword_2E2A4 , cpu_A0 ) ; if ( @@a1@@ [ Number ] ) gen_op_addl_A0_seg ( Number ) ; gen_op_mov_TN_reg ( Number , Number , Number ) ; gen_op_st_T0_A0 ( @@a1@@ [ Number ] + v13 ) ; if ( @@v11@@ ) { v7 = dword_2E2A4 ; v8 = tcg_const_i32 ( ( unsigned int ) @@a1@@ [ Number ] ) ; v9 = tcg_const_i32 ( @@v11@@ ) ; gen_helper_enter_level ( v9 , v8 , v7 ) ; } gen_op_mov_reg_T1 ( v13 , Number ) ; tcg_gen_addi_i64 ( dword_2E2A4 , dword_2E2A4 , ( int ) ( @@v11@@ * - v15 - @@a2@@ ) ) ; gen_op_mov_reg_T1 ( @@a1@@ [ Number ] + Number , Number ) ; } return __readfsqword ( Number ) ^ @@v16@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "char", "s": 1}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v16", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s48"}]} {"name": "gen_ldo_env_A0", "code": "unsigned __int64 __fastcall gen_ldo_env_A0 ( int @@a1@@ , int @@a2@@ ) { unsigned __int64 @@v3@@ ; @@v3@@ = __readfsqword ( Number ) ; tcg_gen_qemu_ld64 ( cpu_tmp1_i64 , cpu_A0 , ( @@a1@@ >> Number ) - Number ) ; tcg_gen_st_i64 ( cpu_tmp1_i64 , cpu_env , @@a2@@ ) ; tcg_gen_addi_i64 ( cpu_tmp0 , cpu_A0 , Number L ) ; tcg_gen_qemu_ld64 ( cpu_tmp1_i64 , cpu_tmp0 , ( @@a1@@ >> Number ) - Number ) ; tcg_gen_st_i64 ( cpu_tmp1_i64 , cpu_env , @@a2@@ + Number L ) ; return __readfsqword ( Number ) ^ @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_sto_env_A0", "code": "unsigned __int64 __fastcall gen_sto_env_A0 ( int @@a1@@ , int @@a2@@ ) { int @@v3@@ ; unsigned __int64 @@v4@@ ; @@v4@@ = __readfsqword ( Number ) ; @@v3@@ = ( @@a1@@ >> Number ) - Number ; tcg_gen_ld_i64 ( cpu_tmp1_i64 , cpu_env , @@a2@@ ) ; tcg_gen_qemu_st64 ( cpu_tmp1_i64 , cpu_A0 , @@v3@@ ) ; tcg_gen_addi_i64 ( cpu_tmp0 , cpu_A0 , Number L ) ; tcg_gen_ld_i64 ( cpu_tmp1_i64 , cpu_env , @@a2@@ + Number L ) ; tcg_gen_qemu_st64 ( cpu_tmp1_i64 , cpu_tmp0 , @@v3@@ ) ; return __readfsqword ( Number ) ^ @@v4@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_sse", "code": "unsigned __int64 __fastcall gen_sse ( __int64 @@a1@@ , unsigned __int8 @@a2@@ , __int64 @@a3@@ , int @@a4@@ ) { __int64 v4 ; __int64 v5 ; __int64 v6 ; int v7 ; int v8 ; __int64 v9 ; int v10 ; int v11 ; int v12 ; int v13 ; __int64 v14 ; int v15 ; __int64 v16 ; __int64 v17 ; __int64 v18 ; int v19 ; int v20 ; __int64 v21 ; int v22 ; __int64 v23 ; __int64 v24 ; int v25 ; int v26 ; __int64 v27 ; int v28 ; int v29 ; __int64 v30 ; int v31 ; int v32 ; __int64 v33 ; int v34 ; int v35 ; __int64 v36 ; void ( __fastcall * v37 ) ( int , int ) ; unsigned int v38 ; __int64 v39 ; __int64 v40 ; void ( __fastcall * v41 ) ( int , int ) ; unsigned int v42 ; __int64 v43 ; int v47 ; int v48 ; int v49 ; int v50 ; int @@v51@@ ; int @@v52@@ ; int @@v53@@ ; int @@v54@@ ; int @@v55@@ ; _BOOL4 @@v56@@ ; int @@v57@@ ; int @@v58@@ ; int @@v59@@ ; int @@v60@@ ; int @@v61@@ ; int @@v62@@ ; unsigned int @@v63@@ ; unsigned int @@v64@@ ; void ( __fastcall * @@v65@@ ) ( int , int ) ; unsigned __int64 @@v66@@ ; @@v66@@ = __readfsqword ( Number ) ; if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { @@v53@@ = Number ; } else if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { @@v53@@ = Number ; } else if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { @@v53@@ = Number ; } else { @@v53@@ = Number ; } @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) sse_op_table1 [ Number * @@a2@@ + @@v53@@ ] ; if ( ! @@v65@@ ) goto LABEL_18 ; if ( @@a2@@ <= Number && @@a2@@ > Number || @@a2@@ == Number || @@a2@@ == Number ) @@v56@@ = Number ; else @@v56@@ = @@v53@@ != Number ; if ( ( * ( _QWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { gen_exception ( @@a1@@ , Number , @@a3@@ - * ( _QWORD * ) ( @@a1@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( ( * ( _QWORD * ) ( @@a1@@ + Number ) & Number ) != Number || @@v56@@ && ( * ( _QWORD * ) ( @@a1@@ + Number ) & Number ) == Number && ( @@a2@@ != Number && @@a2@@ != Number || ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) ) { goto LABEL_18 ; } if ( @@a2@@ == Number ) { if ( * ( int * ) ( @@a1@@ + Number ) < Number ) { LABEL_26 : gen_helper_emms ( ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } LABEL_18 : gen_exception ( @@a1@@ , Number , @@a3@@ - * ( _QWORD * ) ( @@a1@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( @@a2@@ == Number ) goto LABEL_26 ; if ( ! @@v56@@ ) gen_helper_enter_mmx ( ) ; v4 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v4 + Number ; @@v60@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v4 ) ) ; @@v59@@ = ( @@v60@@ >> Number ) & Number ; if ( @@v56@@ ) @@v59@@ |= @@a4@@ ; @@v61@@ = ( @@v60@@ >> Number ) & Number ; if ( @@v65@@ != ( void ( __fastcall * ) ( int , int ) ) & loc_1 ) { if ( @@a2@@ == Number || @@a2@@ <= Number && ( @@a2@@ == Number || @@a2@@ == Number ) ) * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( @@v56@@ ) { @@v54@@ = Number * @@v59@@ + Number ; if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v55@@ = Number * @@v62@@ + Number ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; @@v55@@ = Number ; if ( @@v53@@ <= Number || ( @@a2@@ <= Number || @@a2@@ > Number || @@a2@@ == Number ) && @@a2@@ != Number ) { gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; } else if ( @@v53@@ == Number ) { gen_op_ld_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; } else { gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; } } } else { @@v54@@ = Number * ( @@v59@@ + Number ) ; if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number ; @@v55@@ = Number * ( @@v62@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; @@v55@@ = Number ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; } } if ( @@a2@@ == Number ) { if ( @@v61@@ != Number ) goto LABEL_18 ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { gen_op_movq_A0_reg ( Number ) ; } else { gen_op_movl_A0_reg ( Number ) ; if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_andl_A0_ffff ( ) ; } gen_add_A0_ds_seg ( ( int * ) @@a1@@ ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; ( ( void ( __fastcall * ) ( _QWORD , _QWORD , _QWORD ) ) @@v65@@ ) ( ( unsigned int ) cpu_ptr0 , ( unsigned int ) cpu_ptr1 , ( unsigned int ) cpu_A0 ) ; goto LABEL_345 ; } if ( @@a2@@ > Number ) goto LABEL_344 ; if ( @@a2@@ != Number ) { if ( @@a2@@ > Number ) goto LABEL_344 ; if ( @@a2@@ == Number ) { v43 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v43 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v43 ) ) ; if ( @@v57@@ > Number ) goto LABEL_18 ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) * ( & sse_op_table4 [ Number * @@v57@@ ] + @@v53@@ ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; @@v65@@ ( cpu_ptr0 , cpu_ptr1 ) ; goto LABEL_345 ; } if ( @@a2@@ > Number ) goto LABEL_344 ; if ( @@a2@@ == Number ) { if ( * ( int * ) ( @@a1@@ + Number ) >= Number ) goto LABEL_18 ; v39 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v39 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v39 ) ) ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) sse_op_table5 [ @@v57@@ ] ; if ( ! @@v65@@ ) goto LABEL_18 ; goto LABEL_344 ; } if ( @@a2@@ != Number ) { LABEL_344 : tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; @@v65@@ ( cpu_ptr0 , cpu_ptr1 ) ; goto LABEL_345 ; } } v40 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v40 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v40 ) ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; v41 = @@v65@@ ; v42 = tcg_const_i32 ( ( unsigned int ) @@v57@@ ) ; ( ( void ( __fastcall * ) ( _QWORD , _QWORD , _QWORD ) ) v41 ) ( ( unsigned int ) cpu_ptr0 , ( unsigned int ) cpu_ptr1 , v42 ) ; LABEL_345 : if ( @@a2@@ == Number || @@a2@@ == Number ) * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return __readfsqword ( Number ) ^ @@v66@@ ; } v47 = ( @@v53@@ << Number ) | @@a2@@ ; if ( v47 == Number ) { if ( @@v61@@ == Number ) goto LABEL_18 ; LABEL_65 : gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 > Number ) goto LABEL_18 ; if ( v47 == Number ) { gen_helper_enter_mmx ( ) ; gen_op_movq ( Number * ( ( @@v59@@ & Number ) + Number ) , Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 > Number ) goto LABEL_18 ; if ( v47 == Number ) { LABEL_105 : if ( @@v53@@ == Number && @@v59@@ ) goto LABEL_18 ; v5 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v5 + Number ; @@v63@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v5 ) ) & Number ; v6 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v6 + Number ; @@v64@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v6 ) ) & Number ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * @@v59@@ + Number ) ; v7 = tcg_const_i32 ( @@v63@@ ) ; v8 = tcg_const_i32 ( @@v64@@ ) ; if ( @@v53@@ == Number ) gen_helper_extrq_i ( cpu_ptr0 , v8 , v7 ) ; else gen_helper_insertq_i ( cpu_ptr0 , v8 , v7 ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 > Number || v47 > Number ) goto LABEL_18 ; if ( v47 >= Number ) { switch ( v47 ) { case Number : if ( @@v61@@ == Number ) { gen_op_movq ( Number * @@v59@@ + Number , Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; gen_op_movl_T0_0 ( ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number * ( @@v59@@ + Number L ) ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; } break ; case Number : if ( @@v61@@ == Number ) { gen_op_movq ( Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number , Number * @@v59@@ + Number ) ; } else { LABEL_200 : gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_stq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } break ; case Number : if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; gen_op_movq ( Number * @@v59@@ + Number , Number * @@v62@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } gen_op_movq ( Number * ( @@v59@@ + Number ) , Number * @@v59@@ + Number ) ; break ; case Number : LABEL_150 : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v10 = Number ; else v10 = Number ; @@v58@@ = v10 ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , v10 , Number , Number ) ; @@v54@@ = Number * @@v59@@ + Number ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v11 = Number ; else v11 = Number ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) * ( & sse_op_table3 [ v11 - Number ] + ( v47 >> Number ) ) ; if ( @@v58@@ == Number ) { tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_T [ Number ] ) ; @@v65@@ ( cpu_ptr0 , cpu_tmp2_i32 ) ; } else { @@v65@@ ( cpu_ptr0 , cpu_T [ Number ] ) ; } break ; case Number : LABEL_66 : if ( @@v61@@ == Number ) goto LABEL_18 ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; if ( ( @@v53@@ & Number ) != Number ) { gen_stq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } else { tcg_gen_ld32u_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; gen_op_st_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ; } break ; case Number : case Number : LABEL_172 : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v12 = Number ; else v12 = Number ; @@v58@@ = v12 ; if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v55@@ = Number * @@v62@@ + Number ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; if ( ( v47 & Number ) != Number ) { gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; } else { gen_op_ld_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; } @@v55@@ = Number ; } if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v13 = Number ; else v13 = Number ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) * ( & sse_op_table3 [ Number * ( v47 & Number ) + Number ] + v13 + ( v47 >> Number ) ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v55@@ ) ; if ( @@v58@@ == Number ) { @@v65@@ ( cpu_tmp2_i32 , cpu_ptr0 ) ; tcg_gen_extu_i32_i64 ( cpu_T [ Number ] , cpu_tmp2_i32 ) ; } else { @@v65@@ ( cpu_T [ Number ] , cpu_ptr0 ) ; } gen_op_mov_reg_T0 ( @@v58@@ , @@v59@@ ) ; break ; case Number : LABEL_228 : v49 = @@v60@@ ; v18 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v18 + Number ; @@v60@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v18 ) ) ; @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; if ( v49 != Number && v49 != Number || ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) == Number ) goto LABEL_18 ; if ( v49 == Number ) { @@v58@@ = Number ; } else if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { @@v58@@ = Number ; } else if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { @@v58@@ = Number ; } else { @@v58@@ = Number ; } gen_op_mov_TN_reg ( Number , Number , @@v59@@ ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_T [ Number ] ) ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , @@v58@@ , Number , Number ) ; v19 = tcg_const_i32 ( ( unsigned int ) ( Number << @@v58@@ ) ) ; gen_helper_crc32 ( cpu_T [ Number ] , cpu_tmp2_i32 , cpu_T [ Number ] , v19 ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v20 = Number ; else v20 = Number ; @@v58@@ = v20 ; gen_op_mov_reg_T0 ( v20 , @@v59@@ ) ; break ; default : goto LABEL_18 ; } return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 == Number ) { gen_helper_enter_mmx ( ) ; @@v62@@ = @@v60@@ & Number ; gen_op_movq ( Number * @@v59@@ + Number , Number * ( @@v62@@ + Number ) ) ; gen_op_movq_env_0 ( Number * ( @@v59@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 > Number ) goto LABEL_18 ; if ( v47 == Number ) { LABEL_122 : if ( @@v61@@ == Number ) { gen_op_movo ( Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number , Number * @@v59@@ + Number ) ; } else { LABEL_63 : gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_sto_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 > Number ) goto LABEL_18 ; if ( v47 == Number ) { if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; gen_op_movq ( Number * @@v59@@ + Number , Number * @@v62@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } gen_op_movq_env_0 ( Number * ( @@v59@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } if ( v47 == Number ) { LABEL_79 : if ( @@v61@@ == Number ) { gen_op_movo ( Number * @@v59@@ + Number , Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; return __readfsqword ( Number ) ^ @@v66@@ ; } goto LABEL_65 ; } if ( v47 > Number || v47 > Number ) goto LABEL_18 ; if ( v47 >= Number ) { switch ( v47 ) { case Number : if ( @@v61@@ == Number ) { gen_op_movl ( Number * @@v59@@ + Number , Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_op_ld_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; gen_op_movl_T0_0 ( ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number * ( @@v59@@ + Number L ) ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; } break ; case Number : if ( @@v61@@ == Number ) { gen_op_movl ( Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number , Number * @@v59@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; tcg_gen_ld32u_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; gen_op_st_T0_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ; } break ; case Number : if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; gen_op_movl ( Number * @@v59@@ + Number , Number * @@v62@@ + Number ) ; gen_op_movl ( Number * ( @@v59@@ + Number ) , Number * ( @@v62@@ + Number ) ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } gen_op_movl ( Number * @@v59@@ + Number , Number * @@v59@@ + Number ) ; gen_op_movl ( Number * @@v59@@ + Number , Number * ( @@v59@@ + Number ) ) ; break ; case Number : if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; gen_op_movl ( Number * @@v59@@ + Number , Number * @@v62@@ + Number ) ; gen_op_movl ( Number * @@v59@@ + Number , Number * @@v62@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } gen_op_movl ( Number * @@v59@@ + Number , Number * @@v59@@ + Number ) ; gen_op_movl ( Number * ( @@v59@@ + Number ) , Number * @@v59@@ + Number ) ; break ; case Number : goto LABEL_150 ; case Number : goto LABEL_66 ; case Number : case Number : goto LABEL_172 ; default : goto LABEL_18 ; } } else if ( v47 > Number ) { if ( v47 > Number || v47 < Number ) goto LABEL_18 ; switch ( v47 ) { case Number : LABEL_188 : * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; v14 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v14 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v14 ) ) ; if ( @@v53@@ ) tcg_gen_st16_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; else tcg_gen_st16_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number * ( @@v59@@ + Number L ) + ( @@v57@@ & Number ) ) ) ; break ; case Number : LABEL_191 : if ( @@v61@@ != Number ) goto LABEL_18 ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v15 = Number ; else v15 = Number ; @@v58@@ = v15 ; v16 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v16 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v16 ) ) ; if ( @@v53@@ ) { tcg_gen_ld16u_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number L * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + ( @@v57@@ & Number ) + Number ) ) ; } else { @@v62@@ = @@v60@@ & Number ; tcg_gen_ld16u_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number * ( ( @@v60@@ & Number ) + Number L ) + ( @@v57@@ & Number ) ) ) ; } @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; gen_op_mov_reg_T0 ( @@v58@@ , @@v59@@ ) ; break ; case Number : if ( @@v61@@ != Number ) goto LABEL_200 ; @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; gen_op_movq ( Number * @@v62@@ + Number , Number * @@v59@@ + Number ) ; gen_op_movq_env_0 ( Number * ( @@v62@@ + Number ) ) ; break ; case Number : LABEL_204 : if ( @@v61@@ != Number ) goto LABEL_18 ; if ( @@v53@@ ) { tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; gen_helper_pmovmskb_xmm ( cpu_tmp2_i32 , cpu_ptr0 ) ; } else { @@v62@@ = @@v60@@ & Number ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number * ( ( @@v60@@ & Number ) + Number L ) ) ; gen_helper_pmovmskb_mmx ( cpu_tmp2_i32 , cpu_ptr0 ) ; } tcg_gen_extu_i32_i64 ( cpu_T [ Number ] , cpu_tmp2_i32 ) ; @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; gen_op_mov_reg_T0 ( Number , @@v59@@ ) ; break ; case Number : LABEL_62 : if ( @@v61@@ != Number ) goto LABEL_63 ; goto LABEL_18 ; default : goto LABEL_18 ; } } else { if ( v47 < Number ) goto LABEL_18 ; switch ( v47 ) { case Number : case Number : case Number : case Number : case Number : goto LABEL_79 ; case Number : case Number : case Number : case Number : case Number : goto LABEL_122 ; case Number : case Number : if ( @@v61@@ == Number ) { gen_op_movq ( Number * @@v59@@ + Number , Number * ( ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * @@v59@@ + Number ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : case Number : if ( @@v61@@ != Number ) goto LABEL_200 ; goto LABEL_18 ; case Number : case Number : if ( @@v61@@ == Number ) { gen_op_movq ( Number * ( @@v59@@ + Number ) , Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * ( @@v59@@ + Number ) ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : case Number : if ( @@v61@@ == Number ) goto LABEL_18 ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_stq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * ( @@v59@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : case Number : gen_helper_enter_mmx ( ) ; if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number ; @@v55@@ = Number * ( @@v62@@ + Number ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; @@v55@@ = Number ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; } @@v54@@ = Number * @@v59@@ + Number ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; if ( v47 >> Number ) gen_helper_cvtpi2pd ( cpu_ptr0 , cpu_ptr1 ) ; else gen_helper_cvtpi2ps ( cpu_ptr0 , cpu_ptr1 ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : case Number : goto LABEL_62 ; case Number : case Number : case Number : case Number : gen_helper_enter_mmx ( ) ; if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v55@@ = Number * @@v62@@ + Number ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; @@v55@@ = Number ; gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; } @@v54@@ = Number * ( ( @@v59@@ & Number ) + Number ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; if ( v47 == Number ) { gen_helper_cvtpd2pi ( cpu_ptr0 , cpu_ptr1 ) ; } else if ( v47 <= Number ) { switch ( v47 ) { case Number : gen_helper_cvttpd2pi ( cpu_ptr0 , cpu_ptr1 ) ; break ; case Number : gen_helper_cvttps2pi ( cpu_ptr0 , cpu_ptr1 ) ; break ; case Number : gen_helper_cvtps2pi ( cpu_ptr0 , cpu_ptr1 ) ; break ; } } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : goto LABEL_210 ; case Number : case Number : v50 = @@v60@@ ; v21 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v21 + Number ; @@v60@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v21 ) ) ; @@v62@@ = @@v60@@ & Number ; @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; @@v61@@ = ( @@v60@@ >> Number ) & Number ; if ( @@v53@@ > Number ) goto LABEL_18 ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) sse_op_table7 [ Number * v50 + @@v53@@ ] ; if ( ! @@v65@@ || ( * ( _DWORD * ) ( @@a1@@ + Number ) & dword_2CA50 [ Number * v50 ] ) == Number ) goto LABEL_18 ; if ( @@v65@@ == ( void ( __fastcall * ) ( int , int ) ) & loc_1 ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) v22 = Number ; else v22 = Number ; @@v58@@ = v22 ; @@v62@@ = @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( @@v61@@ != Number ) gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; v23 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v23 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v23 ) ) ; switch ( v50 ) { case Number : tcg_gen_ld8u_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ; if ( @@v61@@ == Number ) goto LABEL_265 ; tcg_gen_qemu_st8 ( cpu_T [ Number ] , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; break ; case Number : tcg_gen_ld16u_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; if ( @@v61@@ == Number ) goto LABEL_265 ; tcg_gen_qemu_st16 ( cpu_T [ Number ] , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; break ; case Number : if ( @@v58@@ == Number ) { tcg_gen_ld_i32 ( cpu_tmp2_i32 , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; tcg_gen_extu_i32_i64 ( cpu_T [ Number ] , cpu_tmp2_i32 ) ; if ( @@v61@@ != Number ) goto LABEL_260 ; gen_op_mov_reg_v ( @@v58@@ , @@v62@@ , cpu_T [ Number ] ) ; } else { tcg_gen_ld_i64 ( cpu_tmp1_i64 , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; if ( @@v61@@ == Number ) gen_op_mov_reg_v ( @@v58@@ , @@v62@@ , cpu_tmp1_i64 ) ; else tcg_gen_qemu_st64 ( cpu_tmp1_i64 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; } break ; case Number : tcg_gen_ld32u_i64 ( cpu_T [ Number ] , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; if ( @@v61@@ == Number ) LABEL_265 : gen_op_mov_reg_T0 ( @@v58@@ , @@v62@@ ) ; else LABEL_260 : tcg_gen_qemu_st32 ( cpu_T [ Number ] , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; break ; case Number : if ( @@v61@@ == Number ) gen_op_mov_TN_reg ( Number , Number , @@v62@@ ) ; else tcg_gen_qemu_ld8u ( cpu_tmp0 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_st8_i64 ( cpu_tmp0 , cpu_env , Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ; break ; case Number : if ( @@v61@@ == Number ) { tcg_gen_ld_i32 ( cpu_tmp2_i32 , cpu_env , Number * ( Number L * @@v62@@ + ( ( @@v57@@ >> Number ) & Number ) + Number ) ) ; } else { tcg_gen_qemu_ld32u ( cpu_tmp0 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_tmp0 ) ; } tcg_gen_st_i32 ( cpu_tmp2_i32 , cpu_env , Number * ( Number L * @@v59@@ + ( ( @@v57@@ >> Number ) & Number ) + Number ) ) ; if ( ( @@v57@@ & Number ) != Number ) { v24 = Number L * @@v59@@ + Number ; v25 = cpu_env ; v26 = tcg_const_i32 ( Number L ) ; tcg_gen_st_i32 ( v26 , v25 , v24 ) ; } if ( ( @@v57@@ & Number ) != Number ) { v27 = Number L * @@v59@@ + Number ; v28 = cpu_env ; v29 = tcg_const_i32 ( Number L ) ; tcg_gen_st_i32 ( v29 , v28 , v27 ) ; } if ( ( @@v57@@ & Number ) != Number ) { v30 = Number * ( @@v59@@ + Number L ) ; v31 = cpu_env ; v32 = tcg_const_i32 ( Number L ) ; tcg_gen_st_i32 ( v32 , v31 , v30 ) ; } if ( ( @@v57@@ & Number ) != Number ) { v33 = Number L * @@v59@@ + Number ; v34 = cpu_env ; v35 = tcg_const_i32 ( Number L ) ; tcg_gen_st_i32 ( v35 , v34 , v33 ) ; } break ; case Number : if ( @@v58@@ == Number ) { if ( @@v61@@ == Number ) gen_op_mov_v_reg ( @@v58@@ , cpu_tmp0 , @@v62@@ ) ; else tcg_gen_qemu_ld32u ( cpu_tmp0 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_tmp0 ) ; tcg_gen_st_i32 ( cpu_tmp2_i32 , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; } else { if ( @@v61@@ == Number ) gen_op_mov_v_reg ( @@v58@@ , cpu_tmp1_i64 , @@v62@@ ) ; else tcg_gen_qemu_ld64 ( cpu_tmp1_i64 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_st_i64 ( cpu_tmp1_i64 , cpu_env , Number * ( Number L * @@v59@@ + ( @@v57@@ & Number ) + Number ) ) ; } break ; default : return __readfsqword ( Number ) ^ @@v66@@ ; } } else { if ( @@v53@@ ) { @@v54@@ = Number * @@v59@@ + Number ; if ( @@v61@@ == Number ) { @@v55@@ = Number * ( @@v62@@ | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ; } else { @@v55@@ = Number ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; } } else { @@v54@@ = Number * ( @@v59@@ + Number ) ; if ( @@v61@@ == Number ) { @@v55@@ = Number * ( @@v62@@ + Number ) ; } else { @@v55@@ = Number ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; } } v36 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v36 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v36 ) ) ; if ( ( v50 & Number ) == Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) @@v57@@ |= Number ; } tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; v37 = @@v65@@ ; v38 = tcg_const_i32 ( ( unsigned int ) @@v57@@ ) ; ( ( void ( __fastcall * ) ( _QWORD , _QWORD , _QWORD ) ) v37 ) ( ( unsigned int ) cpu_ptr0 , ( unsigned int ) cpu_ptr1 , v38 ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; gen_helper_movmskps ( cpu_tmp2_i32 , cpu_ptr0 ) ; tcg_gen_extu_i32_i64 ( cpu_T [ Number ] , cpu_tmp2_i32 ) ; gen_op_mov_reg_T0 ( Number , @@v59@@ ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; tcg_gen_st_i64 ( cpu_T [ Number ] , cpu_env , Number * ( @@v59@@ + Number L ) ) ; } else { gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number * ( @@v59@@ + Number L ) ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_T [ Number ] ) ; gen_helper_movl_mm_T0_mmx ( cpu_ptr0 , cpu_tmp2_i32 ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( @@v61@@ == Number ) { @@v62@@ = @@v60@@ & Number ; tcg_gen_ld_i64 ( cpu_tmp1_i64 , cpu_env , Number * ( ( @@v60@@ & Number ) + Number L ) ) ; tcg_gen_st_i64 ( cpu_tmp1_i64 , cpu_env , Number * ( @@v59@@ + Number L ) ) ; } else { gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * ( @@v59@@ + Number ) ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : case Number : case Number : case Number : case Number : case Number : if ( @@v53@@ > Number ) goto LABEL_18 ; v9 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v9 + Number ; @@v57@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v9 ) ) ; gen_op_movl_T0_im ( @@v57@@ ) ; if ( @@v56@@ ) { tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; gen_op_movl_T0_0 ( ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; @@v54@@ = Number ; } else { tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; gen_op_movl_T0_0 ( ) ; tcg_gen_st32_i64 ( cpu_T [ Number ] , cpu_env , Number L ) ; @@v54@@ = Number ; } @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) sse_op_table2 [ Number * ( ( ( unsigned __int8 ) v47 - Number ) & Number ) + Number * ( ( @@v60@@ >> Number ) & Number ) + @@v53@@ ] ; if ( ! @@v65@@ ) goto LABEL_18 ; if ( @@v56@@ ) { @@v55@@ = Number * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ; } else { @@v62@@ = @@v60@@ & Number ; @@v55@@ = Number * ( @@v62@@ + Number ) ; } tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v55@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v54@@ ) ; @@v65@@ ( cpu_ptr0 , cpu_ptr1 ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { tcg_gen_ld_i64 ( cpu_T [ Number ] , cpu_env , Number * ( @@v59@@ + Number L ) ) ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; } else { tcg_gen_ld32u_i64 ( cpu_T [ Number ] , cpu_env , Number * ( @@v59@@ + Number L ) ) ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( @@v61@@ != Number ) goto LABEL_61 ; @@v62@@ = @@v60@@ & Number ; gen_op_movq ( Number * ( @@v62@@ + Number ) , Number * ( @@v59@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : goto LABEL_188 ; case Number : goto LABEL_191 ; case Number : goto LABEL_204 ; case Number : if ( @@v61@@ == Number ) goto LABEL_18 ; LABEL_61 : gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_stq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , Number * ( @@v59@@ + Number ) ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) goto LABEL_228 ; LABEL_210 : v48 = @@v60@@ ; v17 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = v17 + Number ; @@v60@@ = ldub_p ( ( unsigned __int8 * ) ( guest_base + v17 ) ) ; @@v62@@ = @@v60@@ & Number ; @@v59@@ = @@a4@@ | ( @@v60@@ >> Number ) & Number ; @@v61@@ = ( @@v60@@ >> Number ) & Number ; if ( @@v53@@ > Number ) goto LABEL_18 ; @@v65@@ = ( void ( __fastcall * ) ( int , int ) ) * ( & sse_op_table6 [ Number * v48 ] + @@v53@@ ) ; if ( ! @@v65@@ || ( * ( _DWORD * ) ( @@a1@@ + Number ) & * ( ( _DWORD * ) & unk_2B250 + Number * v48 ) ) == Number ) goto LABEL_18 ; if ( @@v53@@ ) { @@v54@@ = Number * @@v59@@ + Number ; if ( @@v61@@ != Number ) { @@v55@@ = Number ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; switch ( v48 ) { case String : case String : case String : case String : case String : case String : gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; goto LABEL_225 ; case String : case String : case String : case String : tcg_gen_qemu_ld32u ( cpu_tmp0 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_tmp0 ) ; tcg_gen_st_i32 ( cpu_tmp2_i32 , cpu_env , @@v55@@ ) ; goto LABEL_225 ; case String : case String : tcg_gen_qemu_ld16u ( cpu_tmp0 , cpu_A0 , ( * ( int * ) ( @@a1@@ + Number ) >> Number ) - Number ) ; tcg_gen_st16_i64 ( cpu_tmp0 , cpu_env , @@v55@@ ) ; goto LABEL_225 ; case String : gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v54@@ ) ; break ; default : gen_ldo_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; goto LABEL_225 ; } return __readfsqword ( Number ) ^ @@v66@@ ; } @@v55@@ = Number * ( @@v62@@ | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ; } else { @@v54@@ = Number * ( @@v59@@ + Number ) ; if ( @@v61@@ == Number ) { @@v55@@ = Number * ( @@v62@@ + Number ) ; } else { @@v55@@ = Number ; gen_lea_modrm ( @@a1@@ , @@v60@@ , & @@v51@@ , & @@v52@@ ) ; gen_ldq_env_A0 ( * ( _DWORD * ) ( @@a1@@ + Number ) , @@v55@@ ) ; } } LABEL_225 : if ( @@v65@@ == ( void ( __fastcall * ) ( int , int ) ) & loc_1 ) goto LABEL_18 ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , @@v54@@ ) ; tcg_gen_addi_i64 ( cpu_ptr1 , cpu_env , @@v55@@ ) ; @@v65@@ ( cpu_ptr0 , cpu_ptr1 ) ; if ( v48 == Number ) * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; break ; case Number : tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * ( @@v60@@ & Number | * ( _DWORD * ) ( @@a1@@ + Number ) ) + Number ) ; gen_helper_movmskpd ( cpu_tmp2_i32 , cpu_ptr0 ) ; tcg_gen_extu_i32_i64 ( cpu_T [ Number ] , cpu_tmp2_i32 ) ; gen_op_mov_reg_T0 ( Number , @@v59@@ ) ; return __readfsqword ( Number ) ^ @@v66@@ ; case Number : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * @@v59@@ + Number ) ; gen_helper_movq_mm_T0_xmm ( cpu_ptr0 , cpu_T [ Number ] ) ; } else { gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; tcg_gen_addi_i64 ( cpu_ptr0 , cpu_env , Number L * @@v59@@ + Number ) ; tcg_gen_trunc_i64_i32 ( cpu_tmp2_i32 , cpu_T [ Number ] ) ; gen_helper_movl_mm_T0_xmm ( cpu_ptr0 , cpu_tmp2_i32 ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; case Number : goto LABEL_105 ; case Number : if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { tcg_gen_ld_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; } else { tcg_gen_ld32u_i64 ( cpu_T [ Number ] , cpu_env , Number L * @@v59@@ + Number ) ; gen_ldst_modrm ( @@a1@@ , @@v60@@ , Number , Number , Number ) ; } return __readfsqword ( Number ) ^ @@v66@@ ; default : goto LABEL_18 ; } } return __readfsqword ( Number ) ^ @@v66@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r64"}, {"n": "v66", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v65", "t": {"T": 9, "n": "void (__fastcall *)(int a1, int a2)"}, "location": "s32"}, {"n": "v64", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v63", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v62", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v61", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v60", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v59", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v58", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v57", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}, {"n": "v56", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s68"}, {"n": "v55", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v54", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "v53", "t": {"T": 1, "n": "int", "s": 4}, "location": "s80"}, {"n": "v52", "t": {"T": 1, "n": "int", "s": 4}, "location": "s84"}, {"n": "v51", "t": {"T": 1, "n": "int", "s": 4}, "location": "s88"}]}