{"name": "ehci_register_companion", "code": "__int64 __fastcall ehci_register_companion ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ , unsigned int @@a4@@ ) { __int64 @@result@@ ; unsigned int i ; unsigned int j ; if ( @@a4@@ + @@a3@@ <= Number ) { for ( i = Number ; i < @@a3@@ ; ++ i ) { if ( * ( _QWORD * ) ( @@a1@@ + Number * ( i + @@a4@@ + Number L ) ) ) { qerror_report ( Number L , String , String , String ) ; error_printf_unless_qmp ( String , i + @@a4@@ , * ( const char * * ) ( @@a1@@ + Number ) ) ; return Number ; } } for ( j = Number ; j < @@a3@@ ; ++ j ) { * ( _QWORD * ) ( @@a1@@ + Number * ( j + @@a4@@ + Number L ) ) = * ( _QWORD * ) ( Number L * j + @@a2@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number L * ( @@a4@@ + j ) + Number ) |= Number ; * ( _DWORD * ) ( @@a1@@ + Number * ( j + @@a4@@ + Number L ) + Number ) = Number ; } ++ * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@a3@@ | ( Number * * ( _BYTE * ) ( @@a1@@ + Number ) ) ; @@result@@ = Number L ; } else { qerror_report ( Number L , String , String , String ) ; error_printf_unless_qmp ( String , @@a4@@ , @@a4@@ , @@a4@@ + @@a3@@ - Number , Number L ) ; @@result@@ = Number ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}