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

; 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