diff --git a/crypto/fipsmodule/aes/aes_test.cc b/crypto/fipsmodule/aes/aes_test.cc
index 75a5aed..d4a458b 100644
--- a/crypto/fipsmodule/aes/aes_test.cc
+++ b/crypto/fipsmodule/aes/aes_test.cc
@@ -333,7 +333,7 @@
     }
 
     if (hwaes_capable()) {
-      ASSERT_EQ(CHECK_ABI(aes_hw_set_encrypt_key, kKey, bits, &key), 0);
+      ASSERT_EQ(CHECK_ABI_SEH(aes_hw_set_encrypt_key, kKey, bits, &key), 0);
       CHECK_ABI(aes_hw_encrypt, block, block, &key);
       for (size_t blocks : block_counts) {
         SCOPED_TRACE(blocks);
@@ -346,7 +346,7 @@
 #endif
       }
 
-      ASSERT_EQ(CHECK_ABI(aes_hw_set_decrypt_key, kKey, bits, &key), 0);
+      ASSERT_EQ(CHECK_ABI_SEH(aes_hw_set_decrypt_key, kKey, bits, &key), 0);
       CHECK_ABI(aes_hw_decrypt, block, block, &key);
       for (size_t blocks : block_counts) {
         SCOPED_TRACE(blocks);
diff --git a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
index a8abb4d..6a85862 100644
--- a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
+++ b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
@@ -3190,9 +3190,12 @@
 .align	16
 ${PREFIX}_set_decrypt_key:
 .cfi_startproc
+.seh_startproc
 	_CET_ENDBR
-	.byte	0x48,0x83,0xEC,0x08	# sub rsp,8
+	sub	\$8,%rsp
 .cfi_adjust_cfa_offset	8
+.seh_stackalloc	8
+.seh_endprologue
 	call	__aesni_set_encrypt_key
 	shl	\$4,$bits		# rounds-1 after _aesni_set_encrypt_key
 	test	%eax,%eax
@@ -3228,7 +3231,7 @@
 .cfi_adjust_cfa_offset	-8
 	ret
 .cfi_endproc
-.LSEH_end_set_decrypt_key:
+.seh_endproc
 .size	${PREFIX}_set_decrypt_key,.-${PREFIX}_set_decrypt_key
 ___
 
@@ -3263,12 +3266,15 @@
 ${PREFIX}_set_encrypt_key:
 __aesni_set_encrypt_key:
 .cfi_startproc
+.seh_startproc
 	_CET_ENDBR
 #ifdef BORINGSSL_DISPATCH_TEST
 	movb \$1,BORINGSSL_function_hit+3(%rip)
 #endif
-	.byte	0x48,0x83,0xEC,0x08	# sub rsp,8
+	sub	\$8,%rsp
 .cfi_adjust_cfa_offset	8
+.seh_stackalloc	8
+.seh_endprologue
 	mov	\$-1,%rax
 	test	$inp,$inp
 	jz	.Lenc_key_ret
@@ -3565,7 +3571,7 @@
 .cfi_adjust_cfa_offset	-8
 	ret
 .cfi_endproc
-.LSEH_end_set_encrypt_key:
+.seh_endproc
 
 .align	16
 .Lkey_expansion_128:
@@ -3926,14 +3932,6 @@
 	.rva	.LSEH_begin_${PREFIX}_cbc_encrypt
 	.rva	.LSEH_end_${PREFIX}_cbc_encrypt
 	.rva	.LSEH_info_cbc
-
-	.rva	${PREFIX}_set_decrypt_key
-	.rva	.LSEH_end_set_decrypt_key
-	.rva	.LSEH_info_key
-
-	.rva	${PREFIX}_set_encrypt_key
-	.rva	.LSEH_end_set_encrypt_key
-	.rva	.LSEH_info_key
 .section	.xdata
 .align	8
 ___
@@ -3951,9 +3949,6 @@
 .LSEH_info_cbc:
 	.byte	9,0,0,0
 	.rva	cbc_se_handler
-.LSEH_info_key:
-	.byte	0x01,0x04,0x01,0x00
-	.byte	0x04,0x02,0x00,0x00	# sub rsp,8
 ___
 }
 
diff --git a/gen/bcm/aesni-x86_64-apple.S b/gen/bcm/aesni-x86_64-apple.S
index f3505b9..c5c862d 100644
--- a/gen/bcm/aesni-x86_64-apple.S
+++ b/gen/bcm/aesni-x86_64-apple.S
@@ -1911,8 +1911,11 @@
 .p2align	4
 _aes_hw_set_decrypt_key:
 
+
 _CET_ENDBR
-.byte	0x48,0x83,0xEC,0x08
+	subq	$8,%rsp
+
+
 
 	call	__aesni_set_encrypt_key
 	shll	$4,%esi
@@ -1949,7 +1952,7 @@
 
 	ret
 
-L$SEH_end_set_decrypt_key:
+
 
 .globl	_aes_hw_set_encrypt_key
 .private_extern _aes_hw_set_encrypt_key
@@ -1958,11 +1961,14 @@
 _aes_hw_set_encrypt_key:
 __aesni_set_encrypt_key:
 
+
 _CET_ENDBR
 #ifdef BORINGSSL_DISPATCH_TEST
 	movb	$1,_BORINGSSL_function_hit+3(%rip)
 #endif
-.byte	0x48,0x83,0xEC,0x08
+	subq	$8,%rsp
+
+
 
 	movq	$-1,%rax
 	testq	%rdi,%rdi
@@ -2260,7 +2266,7 @@
 
 	ret
 
-L$SEH_end_set_encrypt_key:
+
 
 .p2align	4
 L$key_expansion_128:
diff --git a/gen/bcm/aesni-x86_64-linux.S b/gen/bcm/aesni-x86_64-linux.S
index 68742fb..87c1a13 100644
--- a/gen/bcm/aesni-x86_64-linux.S
+++ b/gen/bcm/aesni-x86_64-linux.S
@@ -1913,9 +1913,12 @@
 .align	16
 aes_hw_set_decrypt_key:
 .cfi_startproc	
+
 _CET_ENDBR
-.byte	0x48,0x83,0xEC,0x08
+	subq	$8,%rsp
 .cfi_adjust_cfa_offset	8
+
+
 	call	__aesni_set_encrypt_key
 	shll	$4,%esi
 	testl	%eax,%eax
@@ -1951,7 +1954,7 @@
 .cfi_adjust_cfa_offset	-8
 	ret
 .cfi_endproc	
-.LSEH_end_set_decrypt_key:
+
 .size	aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key
 .globl	aes_hw_set_encrypt_key
 .hidden aes_hw_set_encrypt_key
@@ -1960,12 +1963,15 @@
 aes_hw_set_encrypt_key:
 __aesni_set_encrypt_key:
 .cfi_startproc	
+
 _CET_ENDBR
 #ifdef BORINGSSL_DISPATCH_TEST
 	movb	$1,BORINGSSL_function_hit+3(%rip)
 #endif
-.byte	0x48,0x83,0xEC,0x08
+	subq	$8,%rsp
 .cfi_adjust_cfa_offset	8
+
+
 	movq	$-1,%rax
 	testq	%rdi,%rdi
 	jz	.Lenc_key_ret
@@ -2262,7 +2268,7 @@
 .cfi_adjust_cfa_offset	-8
 	ret
 .cfi_endproc	
-.LSEH_end_set_encrypt_key:
+
 
 .align	16
 .Lkey_expansion_128:
diff --git a/gen/bcm/aesni-x86_64-win.asm b/gen/bcm/aesni-x86_64-win.asm
index 6c5d9ad..9e12312 100644
--- a/gen/bcm/aesni-x86_64-win.asm
+++ b/gen/bcm/aesni-x86_64-win.asm
@@ -2017,9 +2017,12 @@
 ALIGN	16
 aes_hw_set_decrypt_key:
 
+$L$SEH_begin_aes_hw_set_decrypt_key_1:
 _CET_ENDBR
-	DB	0x48,0x83,0xEC,0x08
+	sub	rsp,8
 
+$L$SEH_prologue_aes_hw_set_decrypt_key_2:
+$L$SEH_endprologue_aes_hw_set_decrypt_key_3:
 	call	__aesni_set_encrypt_key
 	shl	edx,4
 	test	eax,eax
@@ -2055,7 +2058,7 @@
 
 	ret
 
-$L$SEH_end_set_decrypt_key:
+$L$SEH_end_aes_hw_set_decrypt_key_4:
 
 global	aes_hw_set_encrypt_key
 
@@ -2063,12 +2066,15 @@
 aes_hw_set_encrypt_key:
 __aesni_set_encrypt_key:
 
+$L$SEH_begin_aes_hw_set_encrypt_key_1:
 _CET_ENDBR
 %ifdef BORINGSSL_DISPATCH_TEST
 	mov	BYTE[((BORINGSSL_function_hit+3))],1
 %endif
-	DB	0x48,0x83,0xEC,0x08
+	sub	rsp,8
 
+$L$SEH_prologue_aes_hw_set_encrypt_key_2:
+$L$SEH_endprologue_aes_hw_set_encrypt_key_3:
 	mov	rax,-1
 	test	rcx,rcx
 	jz	NEAR $L$enc_key_ret
@@ -2365,7 +2371,7 @@
 
 	ret
 
-$L$SEH_end_set_encrypt_key:
+$L$SEH_end_aes_hw_set_encrypt_key_4:
 
 ALIGN	16
 $L$key_expansion_128:
@@ -2646,14 +2652,6 @@
 	DD	$L$SEH_begin_aes_hw_cbc_encrypt wrt ..imagebase
 	DD	$L$SEH_end_aes_hw_cbc_encrypt wrt ..imagebase
 	DD	$L$SEH_info_cbc wrt ..imagebase
-
-	DD	aes_hw_set_decrypt_key wrt ..imagebase
-	DD	$L$SEH_end_set_decrypt_key wrt ..imagebase
-	DD	$L$SEH_info_key wrt ..imagebase
-
-	DD	aes_hw_set_encrypt_key wrt ..imagebase
-	DD	$L$SEH_end_set_encrypt_key wrt ..imagebase
-	DD	$L$SEH_info_key wrt ..imagebase
 section	.xdata rdata align=8
 ALIGN	8
 $L$SEH_info_ecb:
@@ -2667,9 +2665,37 @@
 $L$SEH_info_cbc:
 	DB	9,0,0,0
 	DD	cbc_se_handler wrt ..imagebase
-$L$SEH_info_key:
-	DB	0x01,0x04,0x01,0x00
-	DB	0x04,0x02,0x00,0x00
+section	.pdata
+ALIGN	4
+	DD	$L$SEH_begin_aes_hw_set_decrypt_key_1 wrt ..imagebase
+	DD	$L$SEH_end_aes_hw_set_decrypt_key_4 wrt ..imagebase
+	DD	$L$SEH_info_aes_hw_set_decrypt_key_0 wrt ..imagebase
+
+	DD	$L$SEH_begin_aes_hw_set_encrypt_key_1 wrt ..imagebase
+	DD	$L$SEH_end_aes_hw_set_encrypt_key_4 wrt ..imagebase
+	DD	$L$SEH_info_aes_hw_set_encrypt_key_0 wrt ..imagebase
+
+
+section	.xdata
+ALIGN	4
+$L$SEH_info_aes_hw_set_decrypt_key_0:
+	DB	1
+	DB	$L$SEH_endprologue_aes_hw_set_decrypt_key_3-$L$SEH_begin_aes_hw_set_decrypt_key_1
+	DB	1
+	DB	0
+	DB	$L$SEH_prologue_aes_hw_set_decrypt_key_2-$L$SEH_begin_aes_hw_set_decrypt_key_1
+	DB	2
+
+	DW	0
+$L$SEH_info_aes_hw_set_encrypt_key_0:
+	DB	1
+	DB	$L$SEH_endprologue_aes_hw_set_encrypt_key_3-$L$SEH_begin_aes_hw_set_encrypt_key_1
+	DB	1
+	DB	0
+	DB	$L$SEH_prologue_aes_hw_set_encrypt_key_2-$L$SEH_begin_aes_hw_set_encrypt_key_1
+	DB	2
+
+	DW	0
 %else
 ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
 ret
