{"name": "_ZL18trvmadns_banking_wP13address_spacejh", "code": "__int64 __fastcall trvmadns_banking_w ( address_space * @@a1@@ , unsigned int @@a2@@ , unsigned __int8 @@a3@@ ) { __int64 v3 ; __int64 result ; running_machine * v5 ; memory_region * v6 ; running_machine * v7 ; running_machine * v8 ; running_machine * v9 ; memory_region * v10 ; int v11 ; running_machine * v12 ; __int64 v14 ; __int64 v15 ; __int64 @@v16@@ ; int v17 ; int v18 ; v3 = address_space machine ( @@a1@@ ) ; @@v16@@ = running_machine driver_data < trvmadns_state > ( v3 ) ; v17 = Number ; result = @@a3@@ & Number ; if ( ( _DWORD ) result != Number ) { if ( ( @@a3@@ & Number ) == Number || ( @@a3@@ & Number ) == Number ) { v5 = ( running_machine * ) address_space machine ( @@a1@@ ) ; v6 = ( memory_region * ) running_machine region ( v5 , String ) ; v14 = memory_region base ( v6 ) ; switch ( @@a3@@ & Number ) { case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; case Number : v17 = Number ; break ; default : break ; } v18 = ( @@a3@@ << Number ) & Number | v17 ; v7 = ( running_machine * ) address_space machine ( @@a1@@ ) ; memory_set_bankptr ( v7 , String , ( void * ) ( v18 + v14 ) ) ; v8 = ( running_machine * ) address_space machine ( @@a1@@ ) ; result = memory_set_bankptr ( v8 , String , ( void * ) ( v18 + Number L + v14 ) ) ; } else { if ( @@a3@@ != * ( _DWORD * ) ( @@v16@@ + Number ) ) { * ( _DWORD * ) ( @@v16@@ + Number ) = @@a3@@ ; logerror ( String , @@a3@@ ) ; } v9 = ( running_machine * ) address_space machine ( @@a1@@ ) ; v10 = ( memory_region * ) running_machine region ( v9 , String ) ; v15 = memory_region base ( v10 ) ; v11 = @@a3@@ & Number ; if ( v11 == Number ) { v17 = Number ; } else if ( ( @@a3@@ & Number ) <= Number ) { if ( v11 == Number ) { v17 = Number ; } else if ( ( @@a3@@ & Number ) != Number ) { if ( v11 == Number ) v17 = Number ; } else { v17 = Number ; } } v12 = ( running_machine * ) address_space machine ( @@a1@@ ) ; result = memory_set_bankptr ( v12 , String , ( void * ) ( ( ( ( ( ( int ) @@a3@@ >> Number ) & Number ) << Number ) | v17 ) + v15 ) ) ; } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "address_space"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}