Initial (manual) import
This commit is contained in:
1 parent
f39611c506
commit
895fe109de
661 files changed
+245862
No files matched your search
@@ -0,0 +1,471 @@
|
||||
asm {
|
||||
_MEMSET::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
REP_STOSB
|
||||
MOV RAX,RDI
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_MEMSET_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
REP_STOSW
|
||||
MOV RAX,RDI
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_MEMSET_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
REP_STOSD
|
||||
MOV RAX,RDI
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_MEMSET_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
REP_STOSQ
|
||||
MOV RAX,RDI
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_MEMCPY::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RSI,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
REP_MOVSB
|
||||
MOV RAX,RDI
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_MEMCMP::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
CLD
|
||||
MOV RSI,U64 SF_ARG1[RBP]
|
||||
MOV RDI,U64 SF_ARG2[RBP]
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
XOR RAX,RAX
|
||||
REPE_CMPSB
|
||||
JZ @@05
|
||||
MOV AL,1
|
||||
JA @@05
|
||||
MOV RAX,-1
|
||||
@@05: POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_BEQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
XOR RAX,RAX
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RBX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
TEST RDX,RDX
|
||||
JZ @@5
|
||||
BTS U64 [RBX],RCX
|
||||
JMP @@10
|
||||
@@5: BTR U64 [RBX],RCX
|
||||
@@10: ADC AL,0
|
||||
POP RBP
|
||||
RET1 24
|
||||
_LBEQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
XOR RAX,RAX
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RBX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
TEST RDX,RDX
|
||||
JZ @@5
|
||||
LOCK
|
||||
BTS U64 [RBX],RCX
|
||||
JMP @@10
|
||||
@@5: LOCK
|
||||
BTR U64 [RBX],RCX
|
||||
@@10: ADC AL,0
|
||||
POP RBP
|
||||
RET1 24
|
||||
_CLAMP_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
CMP RAX,RCX
|
||||
CMOVL RAX,RCX
|
||||
CMP RAX,RDX
|
||||
CMOVG RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
_CLAMP_U64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
CMP RAX,RCX
|
||||
CMOVB RAX,RCX
|
||||
CMP RAX,RDX
|
||||
CMOVA RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
_CALL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
TEST RAX,RAX
|
||||
JZ @@05
|
||||
CALL RAX
|
||||
@@05: POP RBP
|
||||
RET1 8
|
||||
_BIT_FIELD_OR_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
SHR RBX,3
|
||||
ADD RBX,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
AND CL,7
|
||||
SHL RAX,CL
|
||||
OR U64 [RBX],RAX
|
||||
POP RBP
|
||||
RET1 24
|
||||
_BIT_FIELD_EXT_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
MOV RCX,RBX
|
||||
SHR RBX,3
|
||||
ADD RBX,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 [RBX]
|
||||
AND CL,7
|
||||
SHR RDX,CL
|
||||
MOV RCX,U64 SF_ARG3[RBP]
|
||||
MOV RAX,1
|
||||
SHL RAX,CL
|
||||
DEC RAX
|
||||
AND RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
_XCHG_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
XCHG U64 [RDX],RAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_XCHG_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV EAX,U32 SF_ARG2[RBP]
|
||||
XCHG U32 [RDX],EAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_XCHG_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOVZX RAX,U16 SF_ARG2[RBP]
|
||||
XCHG U16 [RDX],AX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_XCHG_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOVZX RAX,U8 SF_ARG2[RBP]
|
||||
XCHG U8 [RDX],AL
|
||||
POP RBP
|
||||
RET1 16
|
||||
|
||||
_LXCHG_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
LOCK
|
||||
XCHG U64 [RDX],RAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_LXCHG_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV EAX,U32 SF_ARG2[RBP]
|
||||
LOCK
|
||||
XCHG U32 [RDX],EAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_LXCHG_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOVZX RAX,U16 SF_ARG2[RBP]
|
||||
LOCK
|
||||
XCHG U16 [RDX],AX
|
||||
POP RBP
|
||||
RET1 16
|
||||
_LXCHG_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOVZX RAX,U8 SF_ARG2[RBP]
|
||||
LOCK
|
||||
XCHG U8 [RDX],AL
|
||||
POP RBP
|
||||
RET1 16
|
||||
_REP_IN_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_INSD
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_REP_IN_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_INSW
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_REP_IN_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RDI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_INSB
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_REP_OUT_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
MOV RSI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_OUTSD
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_REP_OUT_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
MOV RSI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_OUTSW
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_REP_OUT_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
MOV RSI,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP]
|
||||
REP_OUTSB
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
_CPUID::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
CPUID
|
||||
MOV RSI,U64 SF_ARG2[RBP]
|
||||
MOV U64 [RSI],RAX
|
||||
MOV U64 8[RSI],RBX
|
||||
MOV U64 16[RSI],RCX
|
||||
MOV U64 24[RSI],RDX
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET1 16
|
||||
_CALL_IND:: //See $LK,"_LAST_FUN",A="MN:_LAST_FUN"$
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
REP_MOVSB
|
||||
TEST RDX,RDX
|
||||
JZ @@05
|
||||
|
||||
CALL RDX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
XOR RAX,RAX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
_CALLEXTNUM::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
REP_MOVSB
|
||||
MOV RAX,U64 [SYS_EXTERN_TABLE]
|
||||
MOV RAX,U64 [RAX+RDX*8]
|
||||
TEST RAX,RAX
|
||||
JZ @@05
|
||||
|
||||
CALL RAX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
_CALLEXTSTR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
REP_MOVSB
|
||||
MOV RSI,U64 SF_ARG1[RBP]
|
||||
|
||||
MOV RCX,1
|
||||
XOR RAX,RAX
|
||||
MOV RDI,U64 FS:CTask.hash_table[RAX]
|
||||
MOV RBX,HTT_FUN|HTT_EXPORT_SYS_SYM
|
||||
CALL SYS_HASH_FIND
|
||||
JZ @@15
|
||||
|
||||
TEST U32 CHash.type[RAX],HTT_FUN
|
||||
JZ @@05
|
||||
MOV RAX,U64 CHashFun.exe_addr[RAX]
|
||||
JMP @@10
|
||||
@@05: MOV RAX,U64 CHashExport.val[RAX]
|
||||
@@10: TEST RAX,RAX
|
||||
JZ @@15
|
||||
|
||||
CALL RAX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
@@15: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
SET_GS_BASE::
|
||||
PUSH RAX
|
||||
PUSH RCX
|
||||
PUSH RDX
|
||||
MOV RDX,RAX
|
||||
SHR RDX,32
|
||||
MOV ECX,IA32_GS_BASE
|
||||
WRMSR
|
||||
POP RDX
|
||||
POP RCX
|
||||
POP RAX
|
||||
RET
|
||||
SET_FS_BASE::
|
||||
PUSH RAX
|
||||
PUSH RCX
|
||||
PUSH RDX
|
||||
MOV RDX,RAX
|
||||
SHR RDX,32
|
||||
MOV ECX,IA32_FS_BASE
|
||||
WRMSR
|
||||
POP RDX
|
||||
POP RCX
|
||||
POP RAX
|
||||
_RET::
|
||||
RET
|
||||
_SET_MSR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,SF_ARG2[RBP]
|
||||
MOV RDX,RAX
|
||||
SHR RDX,32
|
||||
MOV RCX,SF_ARG1[RBP]
|
||||
WRMSR
|
||||
POP RBP
|
||||
RET1 16
|
||||
_SYS_HLT::
|
||||
CLI
|
||||
@@05: HLT
|
||||
JMP @@05
|
||||
}
|
||||
Reference in new issue
Block a user