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.

162 lines
5.0 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
.686
.model flat, c
.code
Analysis_func PROC
push ebx
push esi
push edi
sub esp, 8
mov DWORD PTR[esp], ebx
mov DWORD PTR[esp+4], ecx
mov ebx, DWORD PTR [esp+18H]
mov bx, WORD PTR [esp+18H]
mov bl, BYTE PTR [esp+18H]
cmp ebx, DWORD PTR [esp+18H]
cmp bx, WORD PTR [esp+18H]
cmp bl, BYTE PTR [esp+18H]
cmp DWORD PTR [esp+18H], ebx
cmp WORD PTR [esp+18H], bx
cmp BYTE PTR [esp+18H], bl
add ebx, DWORD PTR [esp+18H]
add bx, WORD PTR [esp+18H]
add bl, BYTE PTR [esp+18H]
adc ebx, DWORD PTR [esp+18H]
adc bx, WORD PTR [esp+18H]
adc bl, BYTE PTR [esp+18H]
sub ebx, DWORD PTR [esp+18H]
sub bx, WORD PTR [esp+18H]
sub bl, BYTE PTR [esp+18H]
sbb ebx, DWORD PTR [esp+18H]
sbb bx, WORD PTR [esp+18H]
sbb bl, BYTE PTR [esp+18H]
xor ebx, DWORD PTR [esp+18H]
xor bx, WORD PTR [esp+18H]
xor bl, BYTE PTR [esp+18H]
or ebx, DWORD PTR [esp+18H]
or bx, WORD PTR [esp+18H]
or bl, BYTE PTR [esp+18H]
movzx ebx, WORD PTR [esp+18H]
movzx ebx, BYTE PTR [esp+18H]
movzx bx, BYTE PTR [esp+18H]
movsx ebx, WORD PTR [esp+18H]
movsx ebx, BYTE PTR [esp+18H]
movsx bx, BYTE PTR [esp+18H]
mov ebx, DWORD PTR[esp]
mov ecx, DWORD PTR[esp+4]
add esp, 8
pop edi
pop esi
pop ebx
ret
Analysis_func ENDP
Analysis_func_immed PROC
push ebx
mov ebx, DWORD PTR [esp+8]
mov bx, WORD PTR [esp+8]
mov bl, BYTE PTR [esp+8]
cmp ebx, DWORD PTR [esp+8]
cmp bx, WORD PTR [esp+8]
cmp bl, BYTE PTR [esp+8]
cmp DWORD PTR [esp+8], ebx
cmp WORD PTR [esp+8], bx
cmp BYTE PTR [esp+8], bl
cmp DWORD PTR [esp+8], 0baadf00dH
cmp WORD PTR [esp+8], 0baadH
cmp BYTE PTR [esp+8], 0baH
add ebx, DWORD PTR [esp+8]
add bx, WORD PTR [esp+8]
add bl, BYTE PTR [esp+8]
adc ebx, DWORD PTR [esp+8]
adc bx, WORD PTR [esp+8]
adc bl, BYTE PTR [esp+8]
sub ebx, DWORD PTR [esp+8]
sub bx, WORD PTR [esp+8]
sub bl, BYTE PTR [esp+8]
sbb ebx, DWORD PTR [esp+8]
sbb bx, WORD PTR [esp+8]
sbb bl, BYTE PTR [esp+8]
xor ebx, DWORD PTR [esp+8]
xor bx, WORD PTR [esp+8]
xor bl, BYTE PTR [esp+8]
or ebx, DWORD PTR [esp+8]
or bx, WORD PTR [esp+8]
or bl, BYTE PTR [esp+8]
movzx ebx, WORD PTR [esp+8]
movzx ebx, BYTE PTR [esp+8]
movzx bx, BYTE PTR [esp+8]
movsx ebx, WORD PTR [esp+8]
movsx ebx, BYTE PTR [esp+8]
movsx bx, BYTE PTR [esp+8]
pop ebx
ret
Analysis_func_immed ENDP
Analysis_func_reg_overwrite PROC
push ebx
push esi
push edi
sub esp, 8
mov esi, eax
mov DWORD PTR[esp], ebx
mov DWORD PTR[esp+4], ecx
mov ebx, DWORD PTR [esp+18H]
mov bx, WORD PTR [esp+18H]
mov bl, BYTE PTR [esp+18H]
cmp ebx, DWORD PTR [esp+18H]
cmp bx, WORD PTR [esp+18H]
cmp bl, BYTE PTR [esp+18H]
cmp DWORD PTR [esp+18H], ebx
cmp WORD PTR [esp+18H], bx
cmp BYTE PTR [esp+18H], bl
add ebx, DWORD PTR [esp+18H]
add bx, WORD PTR [esp+18H]
add bl, BYTE PTR [esp+18H]
adc ebx, DWORD PTR [esp+18H]
adc bx, WORD PTR [esp+18H]
adc bl, BYTE PTR [esp+18H]
sub ebx, DWORD PTR [esp+18H]
sub bx, WORD PTR [esp+18H]
sub bl, BYTE PTR [esp+18H]
sbb ebx, DWORD PTR [esp+18H]
sbb bx, WORD PTR [esp+18H]
sbb bl, BYTE PTR [esp+18H]
xor ebx, DWORD PTR [esp+18H]
xor bx, WORD PTR [esp+18H]
xor bl, BYTE PTR [esp+18H]
or ebx, DWORD PTR [esp+18H]
or bx, WORD PTR [esp+18H]
or bl, BYTE PTR [esp+18H]
movzx ebx, WORD PTR [esp+18H]
movzx ebx, BYTE PTR [esp+18H]
movzx bx, BYTE PTR [esp+18H]
movsx ebx, WORD PTR [esp+18H]
movsx ebx, BYTE PTR [esp+18H]
movsx bx, BYTE PTR [esp+18H]
mov ebx, DWORD PTR[esp]
mov ecx, DWORD PTR[esp+4]
add esp, 8
pop edi
pop esi
pop ebx
ret
Analysis_func_reg_overwrite ENDP
end