pub fn call_virtual(&mut self, offset: u32) {
        // mov rdi,[rsp]
        self.emit(&[0x48, 0x8B, 0x3C, 0x24]);
        // mov rax,[rdi], assumed OBJECT_PROTOTYPE_OFFSET = 0
        self.emit(&[0x48, 0x8B, 0x07]);
        // call [rax+{}]
        self.emit(&[0xFF, 0x90]);
        self.emit(&offset.to_le_bytes());
    }
// Call a class method. Offset is into the prototype
Call a class method. Offset is into the prototype
Call a class method . Offset is into the prototype
pub fn call_virtual(&mut self, offset: u32) {
        // mov rdi,[rsp]
        self.emit(&[0x48, 0x8B, 0x3C, 0x24]);
        // mov rax,[rdi], assumed OBJECT_PROTOTYPE_OFFSET = 0
        self.emit(&[0x48, 0x8B, 0x07]);
        // call [rax+{}]
        self.emit(&[0xFF, 0x90]);
        self.emit(&offset.to_le_bytes());
    }
pub fn call_virtual ( & mut self , offset : u32 ) { // mov rdi,[rsp] self . emit ( & [ 0x48 , 0x8B , 0x3C , 0x24 ] ) ; // mov rax,[rdi], assumed OBJECT_PROTOTYPE_OFFSET = 0 self . emit ( & [ 0x48 , 0x8B , 0x07 ] ) ; // call [rax+{}] self . emit ( & [ 0xFF , 0x90 ] ) ; self . emit ( & offset . to_le_bytes ( ) ) ; }
Call a class method.
Call a class method .
&mut self
offset
u32