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
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 |