XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
; Windows x64 ABI bridge. No game offsets, policy or managed callbacks live here.
; Arguments are mirrored into GP and XMM registers to support fixed scalar ABIs.
; The C++ caller pads twelve slots and contains the SEH fault boundary.
OPTION CASEMAP:NONE
.code
XfeInvokeAsm PROC FRAME
    push rbx
    .pushreg rbx
    push rsi
    .pushreg rsi
    push rdi
    .pushreg rdi
    push r12
    .pushreg r12
    sub rsp, 88h
    .allocstack 88h
    .endprolog
    mov rbx, rcx
    mov rsi, rdx
    mov rdi, r9
    mov rax, [rsi+20h]
    mov [rsp+20h], rax
    mov rax, [rsi+28h]
    mov [rsp+28h], rax
    mov rax, [rsi+30h]
    mov [rsp+30h], rax
    mov rax, [rsi+38h]
    mov [rsp+38h], rax
    mov rax, [rsi+40h]
    mov [rsp+40h], rax
    mov rax, [rsi+48h]
    mov [rsp+48h], rax
    mov rax, [rsi+50h]
    mov [rsp+50h], rax
    mov rax, [rsi+58h]
    mov [rsp+58h], rax
    mov rcx, [rsi]
    mov rdx, [rsi+8]
    mov r8, [rsi+10h]
    mov r9, [rsi+18h]
    movq xmm0, rcx
    movq xmm1, rdx
    movq xmm2, r8
    movq xmm3, r9
    call rbx
    mov [rdi], rax
    movsd qword ptr [rdi+8], xmm0
    add rsp, 88h
    pop r12
    pop rdi
    pop rsi
    pop rbx
    ret
XfeInvokeAsm ENDP
END