You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
6.2 KiB
195 lines
6.2 KiB
; Copyright 2002-2019 Intel Corporation.
|
|
;
|
|
; This software is provided to you as Sample Source Code as defined in the accompanying
|
|
; End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
; section 1.L.
|
|
;
|
|
; This software and the related documents are provided as is, with no express or implied
|
|
; warranties, other than those that are expressly stated in the License.
|
|
|
|
PUBLIC Analysis_func
|
|
PUBLIC Analysis_func_immed
|
|
PUBLIC Analysis_func_reg_overwrite
|
|
|
|
|
|
|
|
.code
|
|
Analysis_func PROC
|
|
push rbx
|
|
push rsi
|
|
push rdi
|
|
sub rsp, 16
|
|
mov QWORD PTR[rsp], rbx
|
|
mov QWORD PTR[rsp+8], rcx
|
|
mov rbx, QWORD PTR [rsp+80]
|
|
mov ebx, DWORD PTR [rsp+80]
|
|
mov bx, WORD PTR [rsp+80]
|
|
mov bl, BYTE PTR [rsp+80]
|
|
cmp rbx, QWORD PTR [rsp+80]
|
|
cmp ebx, DWORD PTR [rsp+80]
|
|
cmp bx, WORD PTR [rsp+80]
|
|
cmp bl, BYTE PTR [rsp+80]
|
|
cmp QWORD PTR [rsp+80], rbx
|
|
cmp DWORD PTR [rsp+80], ebx
|
|
cmp WORD PTR [rsp+80], bx
|
|
cmp BYTE PTR [rsp+80], bl
|
|
add rbx, QWORD PTR [rsp+80]
|
|
add ebx, DWORD PTR [rsp+80]
|
|
add bx, WORD PTR [rsp+80]
|
|
add bl, BYTE PTR [rsp+80]
|
|
adc rbx, QWORD PTR [rsp+80]
|
|
adc ebx, DWORD PTR [rsp+80]
|
|
adc bx, WORD PTR [rsp+80]
|
|
adc bl, BYTE PTR [rsp+80]
|
|
sub rbx, QWORD PTR [rsp+80]
|
|
sub ebx, DWORD PTR [rsp+80]
|
|
sub bx, WORD PTR [rsp+80]
|
|
sub bl, BYTE PTR [rsp+80]
|
|
sbb rbx, QWORD PTR [rsp+80]
|
|
sbb ebx, DWORD PTR [rsp+80]
|
|
sbb bx, WORD PTR [rsp+80]
|
|
sbb bl, BYTE PTR [rsp+80]
|
|
xor rbx, QWORD PTR [rsp+80]
|
|
xor ebx, DWORD PTR [rsp+80]
|
|
xor bx, WORD PTR [rsp+80]
|
|
xor bl, BYTE PTR [rsp+80]
|
|
or rbx, QWORD PTR [rsp+80]
|
|
or ebx, DWORD PTR [rsp+80]
|
|
or bx, WORD PTR [rsp+80]
|
|
or bl, BYTE PTR [rsp+80]
|
|
movzx rbx, WORD PTR [rsp+80]
|
|
movzx rbx, BYTE PTR [rsp+80]
|
|
movzx ebx, BYTE PTR [rsp+80]
|
|
movzx bx, BYTE PTR [rsp+80]
|
|
movsx rbx, WORD PTR [rsp+80]
|
|
movsx rbx, BYTE PTR [rsp+80]
|
|
movsx ebx, BYTE PTR [rsp+80]
|
|
movsx bx, BYTE PTR [rsp+80]
|
|
mov rbx, QWORD PTR[rsp]
|
|
mov rcx, QWORD PTR[rsp+8]
|
|
add rsp, 16
|
|
pop rdi
|
|
pop rsi
|
|
pop rbx
|
|
ret
|
|
|
|
Analysis_func ENDP
|
|
|
|
Analysis_func_immed PROC
|
|
push rbx
|
|
mov rbx, QWORD PTR [rsp+48]
|
|
mov ebx, DWORD PTR [rsp+48]
|
|
mov bx, WORD PTR [rsp+48]
|
|
mov bl, BYTE PTR [rsp+48]
|
|
cmp rbx, QWORD PTR [rsp+48]
|
|
cmp ebx, DWORD PTR [rsp+48]
|
|
cmp bx, WORD PTR [rsp+48]
|
|
cmp bl, BYTE PTR [rsp+48]
|
|
cmp QWORD PTR [rsp+48], rbx
|
|
cmp DWORD PTR [rsp+48], ebx
|
|
cmp WORD PTR [rsp+48], bx
|
|
cmp BYTE PTR [rsp+48], bl
|
|
cmp QWORD PTR [rsp+48], 0baadf00dH
|
|
cmp DWORD PTR [rsp+48], 0baadf00dH
|
|
cmp WORD PTR [rsp+48], 0baadH
|
|
cmp BYTE PTR [rsp+48], 0baH
|
|
add rbx, QWORD PTR [rsp+48]
|
|
add ebx, DWORD PTR [rsp+48]
|
|
add bx, WORD PTR [rsp+48]
|
|
add bl, BYTE PTR [rsp+48]
|
|
adc rbx, QWORD PTR [rsp+48]
|
|
adc ebx, DWORD PTR [rsp+48]
|
|
adc bx, WORD PTR [rsp+48]
|
|
adc bl, BYTE PTR [rsp+48]
|
|
sub rbx, QWORD PTR [rsp+48]
|
|
sub ebx, DWORD PTR [rsp+48]
|
|
sub bx, WORD PTR [rsp+48]
|
|
sub bl, BYTE PTR [rsp+48]
|
|
sbb rbx, QWORD PTR [rsp+48]
|
|
sbb ebx, DWORD PTR [rsp+48]
|
|
sbb bx, WORD PTR [rsp+48]
|
|
sbb bl, BYTE PTR [rsp+48]
|
|
xor rbx, QWORD PTR [rsp+48]
|
|
xor ebx, DWORD PTR [rsp+48]
|
|
xor bx, WORD PTR [rsp+48]
|
|
xor bl, BYTE PTR [rsp+48]
|
|
or rbx, QWORD PTR [rsp+48]
|
|
or ebx, DWORD PTR [rsp+48]
|
|
or bx, WORD PTR [rsp+48]
|
|
or bl, BYTE PTR [rsp+48]
|
|
movzx rbx, WORD PTR [rsp+48]
|
|
movzx rbx, BYTE PTR [rsp+48]
|
|
movzx ebx, BYTE PTR [rsp+48]
|
|
movzx bx, BYTE PTR [rsp+48]
|
|
movsx rbx, WORD PTR [rsp+48]
|
|
movsx rbx, BYTE PTR [rsp+48]
|
|
movsx bx, BYTE PTR [rsp+48]
|
|
movsx ebx, BYTE PTR [rsp+48]
|
|
pop rbx
|
|
ret
|
|
|
|
Analysis_func_immed ENDP
|
|
|
|
Analysis_func_reg_overwrite PROC
|
|
push rbx
|
|
push rsi
|
|
push rdi
|
|
sub rsp, 16
|
|
mov esi, eax
|
|
mov QWORD PTR[rsp], rbx
|
|
mov QWORD PTR[rsp+8], rcx
|
|
mov rbx, QWORD PTR [rsp+80]
|
|
mov ebx, DWORD PTR [rsp+80]
|
|
mov bx, WORD PTR [rsp+80]
|
|
mov bl, BYTE PTR [rsp+80]
|
|
cmp rbx, QWORD PTR [rsp+80]
|
|
cmp ebx, DWORD PTR [rsp+80]
|
|
cmp bx, WORD PTR [rsp+80]
|
|
cmp bl, BYTE PTR [rsp+80]
|
|
cmp QWORD PTR [rsp+80], rbx
|
|
cmp DWORD PTR [rsp+80], ebx
|
|
cmp WORD PTR [rsp+80], bx
|
|
cmp BYTE PTR [rsp+80], bl
|
|
add rbx, QWORD PTR [rsp+80]
|
|
add ebx, DWORD PTR [rsp+80]
|
|
add bx, WORD PTR [rsp+80]
|
|
add bl, BYTE PTR [rsp+80]
|
|
adc rbx, QWORD PTR [rsp+80]
|
|
adc ebx, DWORD PTR [rsp+80]
|
|
adc bx, WORD PTR [rsp+80]
|
|
adc bl, BYTE PTR [rsp+80]
|
|
sub rbx, QWORD PTR [rsp+80]
|
|
sub ebx, DWORD PTR [rsp+80]
|
|
sub bx, WORD PTR [rsp+80]
|
|
sub bl, BYTE PTR [rsp+80]
|
|
sbb rbx, QWORD PTR [rsp+80]
|
|
sbb ebx, DWORD PTR [rsp+80]
|
|
sbb bx, WORD PTR [rsp+80]
|
|
sbb bl, BYTE PTR [rsp+80]
|
|
xor rbx, QWORD PTR [rsp+80]
|
|
xor ebx, DWORD PTR [rsp+80]
|
|
xor bx, WORD PTR [rsp+80]
|
|
xor bl, BYTE PTR [rsp+80]
|
|
or rbx, QWORD PTR [rsp+80]
|
|
or ebx, DWORD PTR [rsp+80]
|
|
or bx, WORD PTR [rsp+80]
|
|
or bl, BYTE PTR [rsp+80]
|
|
movzx rbx, WORD PTR [rsp+80]
|
|
movzx rbx, BYTE PTR [rsp+80]
|
|
movzx bx, BYTE PTR [rsp+80]
|
|
movzx ebx, BYTE PTR [rsp+80]
|
|
movsx rbx, WORD PTR [rsp+80]
|
|
movsx rbx, BYTE PTR [rsp+80]
|
|
movsx bx, BYTE PTR [rsp+80]
|
|
movsx ebx, BYTE PTR [rsp+80]
|
|
mov rbx, QWORD PTR[rsp]
|
|
mov rcx, QWORD PTR[rsp+8]
|
|
add rsp, 16
|
|
pop rdi
|
|
pop rsi
|
|
pop rbx
|
|
ret
|
|
|
|
Analysis_func_reg_overwrite ENDP
|
|
|
|
end |