From d6404016211029b5328c3ecd1aaa63d2785e6b5f Mon Sep 17 00:00:00 2001
From: JamieRWright <jwright8@sheffield.ac.uk>
Date: Tue, 20 Jun 2023 17:07:04 +0100
Subject: [PATCH] new dll

---
 BCB/Paul Kocher/Example 2/msvc/ex02.cod |  91 ++++++++++++------------
 BCB/Paul Kocher/Example 2/msvc/ex02.dll | Bin 32768 -> 32768 bytes
 2 files changed, 44 insertions(+), 47 deletions(-)

diff --git a/BCB/Paul Kocher/Example 2/msvc/ex02.cod b/BCB/Paul Kocher/Example 2/msvc/ex02.cod
index c955fff..ed5ea0d 100644
--- a/BCB/Paul Kocher/Example 2/msvc/ex02.cod	
+++ b/BCB/Paul Kocher/Example 2/msvc/ex02.cod	
@@ -1,75 +1,72 @@
-; Listing generated by Microsoft (R) Optimizing Compiler Version 19.35.32216.1 
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.32.31332.0 
 
 include listing.inc
 
 INCLUDELIB MSVCRT
 INCLUDELIB OLDNAMES
 
+PUBLIC	leakByteLocalFunction_v02
 PUBLIC	victim_function_v02
 EXTRN	array1_size:QWORD
 EXTRN	array1:BYTE
 EXTRN	array2:BYTE
 EXTRN	temp:BYTE
-pdata	SEGMENT
-$pdata$victim_function_v02 DD imagerel $LN6
-	DD	imagerel $LN6+90
-	DD	imagerel $unwind$victim_function_v02
-pdata	ENDS
-xdata	SEGMENT
-$unwind$victim_function_v02 DD 010901H
-	DD	02209H
-xdata	ENDS
-; Function compile flags: /Odtp
-; File B:\Users\Matt\Documents\scratch\spectre-db\BCB\Paul Kocher\Example 2\ex02.c
+EXTRN	__ImageBase:BYTE
+; Function compile flags: /Ogtpy
+; File C:\Users\piano\Documents\PhD\hyperproperties\spectre-db\BCB\Paul Kocher\Example 2\ex02.c
+;	COMDAT victim_function_v02
 _TEXT	SEGMENT
-k$ = 0
-x$ = 32
-victim_function_v02 PROC
-
-; 8    : void victim_function_v02(size_t x) {
-
-$LN6:
-  00000	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
-  00005	48 83 ec 18	 sub	 rsp, 24
+x$ = 8
+victim_function_v02 PROC				; COMDAT
 
 ; 9    :     if (x < array1_size) {
 
-  00009	48 8b 05 00 00
-	00 00		 mov	 rax, QWORD PTR array1_size
-  00010	48 39 44 24 20	 cmp	 QWORD PTR x$[rsp], rax
-  00015	73 3e		 jae	 SHORT $LN2@victim_fun
+  00000	48 3b 0d 00 00
+	00 00		 cmp	 rcx, QWORD PTR array1_size
+  00007	73 21		 jae	 SHORT $LN4@victim_fun
 
 ; 10   :         leakByteLocalFunction_v02(array1[x]);
 
-  00017	0f ae e8	 lfence
-  0001a	48 8d 05 00 00
-	00 00		 lea	 rax, OFFSET FLAT:array1
-  00021	48 8b 4c 24 20	 mov	 rcx, QWORD PTR x$[rsp]
-  00026	0f b6 04 08	 movzx	 eax, BYTE PTR [rax+rcx]
-  0002a	88 04 24	 mov	 BYTE PTR k$[rsp], al
+  00009	48 8d 15 00 00
+	00 00		 lea	 rdx, OFFSET FLAT:__ImageBase
 
 ; 4    :     temp &= array2[(k)* 512];
 
-  0002d	0f b6 04 24	 movzx	 eax, BYTE PTR k$[rsp]
-  00031	69 c0 00 02 00
-	00		 imul	 eax, eax, 512		; 00000200H
-  00037	48 98		 cdqe
-  00039	48 8d 0d 00 00
-	00 00		 lea	 rcx, OFFSET FLAT:array2
-  00040	0f b6 04 01	 movzx	 eax, BYTE PTR [rcx+rax]
-  00044	0f b6 0d 00 00
-	00 00		 movzx	 ecx, BYTE PTR temp
-  0004b	23 c8		 and	 ecx, eax
-  0004d	8b c1		 mov	 eax, ecx
-  0004f	88 05 00 00 00
-	00		 mov	 BYTE PTR temp, al
-$LN2@victim_fun:
+  00010	0f b6 84 0a 00
+	00 00 00	 movzx	 eax, BYTE PTR array1[rdx+rcx]
+  00018	48 c1 e0 09	 shl	 rax, 9
+  0001c	0f b6 84 10 00
+	00 00 00	 movzx	 eax, BYTE PTR array2[rax+rdx]
+  00024	20 05 00 00 00
+	00		 and	 BYTE PTR temp, al
+$LN4@victim_fun:
 
 ; 11   :     }
 ; 12   : }
 
-  00055	48 83 c4 18	 add	 rsp, 24
-  00059	c3		 ret	 0
+  0002a	c3		 ret	 0
 victim_function_v02 ENDP
 _TEXT	ENDS
+; Function compile flags: /Ogtpy
+; File C:\Users\piano\Documents\PhD\hyperproperties\spectre-db\BCB\Paul Kocher\Example 2\ex02.c
+;	COMDAT leakByteLocalFunction_v02
+_TEXT	SEGMENT
+k$ = 8
+leakByteLocalFunction_v02 PROC				; COMDAT
+
+; 4    :     temp &= array2[(k)* 512];
+
+  00000	0f b6 c9	 movzx	 ecx, cl
+  00003	48 8d 05 00 00
+	00 00		 lea	 rax, OFFSET FLAT:array2
+  0000a	c1 e1 09	 shl	 ecx, 9
+  0000d	0f b6 04 01	 movzx	 eax, BYTE PTR [rcx+rax]
+  00011	20 05 00 00 00
+	00		 and	 BYTE PTR temp, al
+
+; 5    : }
+
+  00017	c3		 ret	 0
+leakByteLocalFunction_v02 ENDP
+_TEXT	ENDS
 END
diff --git a/BCB/Paul Kocher/Example 2/msvc/ex02.dll b/BCB/Paul Kocher/Example 2/msvc/ex02.dll
index 3d5e15906cf4d06f453ff71fc521e05642c02eb3..ca4d6cb717c2c21ab28be7472631c604270c871a 100644
GIT binary patch
delta 3864
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

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

-- 
GitLab