5 section .text code
align=64
7 EXTERN OPENSSL_ia32cap_P
13 mov QWORD[8+rsp
],rdi
;WIN64 prologue
16 $L$
SEH_begin_gcm_gmult_4bit:
34 mov r8
,QWORD[8+rax
*1+rsi
]
35 mov r9
,QWORD[rax
*1+rsi
]
45 mov al,BYTE[rcx
*1+rdi
]
47 xor r8
,QWORD[8+rbx
*1+rsi
]
49 xor r9
,QWORD[rbx
*1+rsi
]
51 xor r9
,QWORD[rdx
*8+r11
]
62 xor r8
,QWORD[8+rax
*1+rsi
]
64 xor r9
,QWORD[rax
*1+rsi
]
66 xor r9
,QWORD[rdx
*8+r11
]
77 xor r8
,QWORD[8+rax
*1+rsi
]
79 xor r9
,QWORD[rax
*1+rsi
]
81 xor r9
,QWORD[rdx
*8+r11
]
89 xor r8
,QWORD[8+rbx
*1+rsi
]
91 xor r9
,QWORD[rbx
*1+rsi
]
93 xor r9
,QWORD[rdx
*8+r11
]
100 mov rbx
,QWORD[16+rsp
]
103 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
104 mov rsi
,QWORD[16+rsp
]
106 $L$
SEH_end_gcm_gmult_4bit:
107 global gcm_ghash_4bit
111 mov QWORD[8+rsp
],rdi
;WIN64 prologue
112 mov QWORD[16+rsp
],rsi
114 $L$
SEH_begin_gcm_ghash_4bit:
132 lea rbp
,[((16+128))+rsp
]
134 mov r8
,QWORD[((0+0-128))+rsi
]
135 mov rax
,QWORD[((0+8-128))+rsi
]
140 mov r9
,QWORD[((16+0-128))+rsi
]
142 mov rbx
,QWORD[((16+8-128))+rsi
]
151 mov r8
,QWORD[((32+0-128))+rsi
]
153 mov QWORD[((0-128))+rbp
],rax
154 mov rax
,QWORD[((32+8-128))+rsi
]
163 mov r9
,QWORD[((48+0-128))+rsi
]
165 mov QWORD[((8-128))+rbp
],rbx
166 mov rbx
,QWORD[((48+8-128))+rsi
]
175 mov r8
,QWORD[((64+0-128))+rsi
]
177 mov QWORD[((16-128))+rbp
],rax
178 mov rax
,QWORD[((64+8-128))+rsi
]
187 mov r9
,QWORD[((80+0-128))+rsi
]
189 mov QWORD[((24-128))+rbp
],rbx
190 mov rbx
,QWORD[((80+8-128))+rsi
]
199 mov r8
,QWORD[((96+0-128))+rsi
]
201 mov QWORD[((32-128))+rbp
],rax
202 mov rax
,QWORD[((96+8-128))+rsi
]
211 mov r9
,QWORD[((112+0-128))+rsi
]
213 mov QWORD[((40-128))+rbp
],rbx
214 mov rbx
,QWORD[((112+8-128))+rsi
]
223 mov r8
,QWORD[((128+0-128))+rsi
]
225 mov QWORD[((48-128))+rbp
],rax
226 mov rax
,QWORD[((128+8-128))+rsi
]
235 mov r9
,QWORD[((144+0-128))+rsi
]
237 mov QWORD[((56-128))+rbp
],rbx
238 mov rbx
,QWORD[((144+8-128))+rsi
]
247 mov r8
,QWORD[((160+0-128))+rsi
]
249 mov QWORD[((64-128))+rbp
],rax
250 mov rax
,QWORD[((160+8-128))+rsi
]
259 mov r9
,QWORD[((176+0-128))+rsi
]
261 mov QWORD[((72-128))+rbp
],rbx
262 mov rbx
,QWORD[((176+8-128))+rsi
]
271 mov r8
,QWORD[((192+0-128))+rsi
]
273 mov QWORD[((80-128))+rbp
],rax
274 mov rax
,QWORD[((192+8-128))+rsi
]
283 mov r9
,QWORD[((208+0-128))+rsi
]
285 mov QWORD[((88-128))+rbp
],rbx
286 mov rbx
,QWORD[((208+8-128))+rsi
]
295 mov r8
,QWORD[((224+0-128))+rsi
]
297 mov QWORD[((96-128))+rbp
],rax
298 mov rax
,QWORD[((224+8-128))+rsi
]
306 mov QWORD[104+rbp
],r9
307 mov r9
,QWORD[((240+0-128))+rsi
]
309 mov QWORD[((104-128))+rbp
],rbx
310 mov rbx
,QWORD[((240+8-128))+rsi
]
318 mov QWORD[112+rbp
],r8
320 mov QWORD[((112-128))+rbp
],rax
324 mov QWORD[120+rbp
],r9
325 mov QWORD[((120-128))+rbp
],rbx
330 lea r11
,[$L$rem_8bit
]
331 jmp NEAR $L$outer_loop
348 mov r8
,QWORD[8+rax
*1+rsi
]
349 mov r9
,QWORD[rax
*1+rsi
]
353 movzx r12
,BYTE[rbx
*1+rsp
]
360 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
362 xor r9
,QWORD[rbx
*8+rbp
]
364 xor r8
,QWORD[8+rax
*1+rsi
]
365 xor r9
,QWORD[rax
*1+rsi
]
368 movzx r12
,WORD[r12
*2+r11
]
371 movzx r13
,BYTE[rcx
*1+rsp
]
380 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
382 xor r9
,QWORD[rcx
*8+rbp
]
384 xor r8
,QWORD[8+rax
*1+rsi
]
385 xor r9
,QWORD[rax
*1+rsi
]
388 movzx r13
,WORD[r13
*2+r11
]
391 movzx r12
,BYTE[rbx
*1+rsp
]
401 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
403 xor r9
,QWORD[rbx
*8+rbp
]
405 xor r8
,QWORD[8+rax
*1+rsi
]
406 xor r9
,QWORD[rax
*1+rsi
]
409 movzx r12
,WORD[r12
*2+r11
]
412 movzx r13
,BYTE[rcx
*1+rsp
]
421 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
423 xor r9
,QWORD[rcx
*8+rbp
]
425 xor r8
,QWORD[8+rax
*1+rsi
]
426 xor r9
,QWORD[rax
*1+rsi
]
429 movzx r13
,WORD[r13
*2+r11
]
432 movzx r12
,BYTE[rbx
*1+rsp
]
441 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
443 xor r9
,QWORD[rbx
*8+rbp
]
445 xor r8
,QWORD[8+rax
*1+rsi
]
446 xor r9
,QWORD[rax
*1+rsi
]
449 movzx r12
,WORD[r12
*2+r11
]
452 movzx r13
,BYTE[rcx
*1+rsp
]
461 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
463 xor r9
,QWORD[rcx
*8+rbp
]
465 xor r8
,QWORD[8+rax
*1+rsi
]
466 xor r9
,QWORD[rax
*1+rsi
]
469 movzx r13
,WORD[r13
*2+r11
]
472 movzx r12
,BYTE[rbx
*1+rsp
]
482 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
484 xor r9
,QWORD[rbx
*8+rbp
]
486 xor r8
,QWORD[8+rax
*1+rsi
]
487 xor r9
,QWORD[rax
*1+rsi
]
490 movzx r12
,WORD[r12
*2+r11
]
493 movzx r13
,BYTE[rcx
*1+rsp
]
502 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
504 xor r9
,QWORD[rcx
*8+rbp
]
506 xor r8
,QWORD[8+rax
*1+rsi
]
507 xor r9
,QWORD[rax
*1+rsi
]
510 movzx r13
,WORD[r13
*2+r11
]
513 movzx r12
,BYTE[rbx
*1+rsp
]
522 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
524 xor r9
,QWORD[rbx
*8+rbp
]
526 xor r8
,QWORD[8+rax
*1+rsi
]
527 xor r9
,QWORD[rax
*1+rsi
]
530 movzx r12
,WORD[r12
*2+r11
]
533 movzx r13
,BYTE[rcx
*1+rsp
]
542 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
544 xor r9
,QWORD[rcx
*8+rbp
]
546 xor r8
,QWORD[8+rax
*1+rsi
]
547 xor r9
,QWORD[rax
*1+rsi
]
550 movzx r13
,WORD[r13
*2+r11
]
553 movzx r12
,BYTE[rbx
*1+rsp
]
563 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
565 xor r9
,QWORD[rbx
*8+rbp
]
567 xor r8
,QWORD[8+rax
*1+rsi
]
568 xor r9
,QWORD[rax
*1+rsi
]
571 movzx r12
,WORD[r12
*2+r11
]
574 movzx r13
,BYTE[rcx
*1+rsp
]
583 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
585 xor r9
,QWORD[rcx
*8+rbp
]
587 xor r8
,QWORD[8+rax
*1+rsi
]
588 xor r9
,QWORD[rax
*1+rsi
]
591 movzx r13
,WORD[r13
*2+r11
]
594 movzx r12
,BYTE[rbx
*1+rsp
]
603 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
605 xor r9
,QWORD[rbx
*8+rbp
]
607 xor r8
,QWORD[8+rax
*1+rsi
]
608 xor r9
,QWORD[rax
*1+rsi
]
611 movzx r12
,WORD[r12
*2+r11
]
614 movzx r13
,BYTE[rcx
*1+rsp
]
623 xor r8
,QWORD[((-128))+rcx
*8+rbp
]
625 xor r9
,QWORD[rcx
*8+rbp
]
627 xor r8
,QWORD[8+rax
*1+rsi
]
628 xor r9
,QWORD[rax
*1+rsi
]
631 movzx r13
,WORD[r13
*2+r11
]
634 movzx r12
,BYTE[rbx
*1+rsp
]
642 mov edx,DWORD[((-4))+rdi
]
644 xor r8
,QWORD[((-128))+rbx
*8+rbp
]
646 xor r9
,QWORD[rbx
*8+rbp
]
647 movzx r12
,WORD[r12
*2+r11
]
648 xor r8
,QWORD[8+rax
*1+rsi
]
649 xor r9
,QWORD[rax
*1+rsi
]
658 xor r8
,QWORD[8+rcx
*1+rsi
]
659 movzx r13
,WORD[r13
*2+r11
]
661 xor r9
,QWORD[rcx
*1+rsi
]
668 jb NEAR $L$outer_loop
675 mov r13
,QWORD[16+rsi
]
676 mov r12
,QWORD[24+rsi
]
677 mov rbp
,QWORD[32+rsi
]
678 mov rbx
,QWORD[40+rsi
]
681 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
682 mov rsi
,QWORD[16+rsp
]
684 $L$
SEH_end_gcm_ghash_4bit:
685 global gcm_init_clmul
690 $L$
SEH_begin_gcm_init_clmul:
692 DB 0x48,0x83,0xec,0x18
693 DB 0x0f,0x29,0x34,0x24
694 movdqu xmm2
,XMMWORD
[rdx
]
708 pand xmm5
,XMMWORD
[$L
$0x1c2_polynomial
]
718 DB 102,15,58,68,194,0
719 DB 102,15,58,68,202,17
720 DB 102,15,58,68,222,0
755 movdqu XMMWORD
[rcx
],xmm2
757 movdqu XMMWORD
[16+rcx
],xmm0
758 DB 102,15,58,15,227,8
759 movdqu XMMWORD
[32+rcx
],xmm4
763 DB 102,15,58,68,194,0
764 DB 102,15,58,68,202,17
765 DB 102,15,58,68,222,0
801 DB 102,15,58,68,194,0
802 DB 102,15,58,68,202,17
803 DB 102,15,58,68,222,0
838 movdqu XMMWORD
[48+rcx
],xmm5
840 movdqu XMMWORD
[64+rcx
],xmm0
841 DB 102,15,58,15,227,8
842 movdqu XMMWORD
[80+rcx
],xmm4
843 movaps xmm6
,XMMWORD
[rsp
]
845 $L$
SEH_end_gcm_init_clmul:
848 global gcm_gmult_clmul
853 movdqu xmm0
,XMMWORD
[rcx
]
854 movdqa xmm5
,XMMWORD
[$L
$bswap_mask
]
855 movdqu xmm2
,XMMWORD
[rdx
]
856 movdqu xmm4
,XMMWORD
[32+rdx
]
861 DB 102,15,58,68,194,0
862 DB 102,15,58,68,202,17
863 DB 102,15,58,68,220,0
896 movdqu XMMWORD
[rcx
],xmm0
899 global gcm_ghash_clmul
904 lea rax
,[((-136))+rsp
]
905 $L$
SEH_begin_gcm_ghash_clmul:
907 DB 0x48,0x8d,0x60,0xe0
908 DB 0x0f,0x29,0x70,0xe0
909 DB 0x0f,0x29,0x78,0xf0
910 DB 0x44,0x0f,0x29,0x00
911 DB 0x44,0x0f,0x29,0x48,0x10
912 DB 0x44,0x0f,0x29,0x50,0x20
913 DB 0x44,0x0f,0x29,0x58,0x30
914 DB 0x44,0x0f,0x29,0x60,0x40
915 DB 0x44,0x0f,0x29,0x68,0x50
916 DB 0x44,0x0f,0x29,0x70,0x60
917 DB 0x44,0x0f,0x29,0x78,0x70
918 movdqa xmm10
,XMMWORD
[$L
$bswap_mask
]
920 movdqu xmm0
,XMMWORD
[rcx
]
921 movdqu xmm2
,XMMWORD
[rdx
]
922 movdqu xmm7
,XMMWORD
[32+rdx
]
923 DB 102,65,15,56,0,194
928 movdqu xmm6
,XMMWORD
[16+rdx
]
929 mov eax,DWORD[((OPENSSL_ia32cap_P
+4))]
938 mov rax
,0xA040608020C0E000
939 movdqu xmm14
,XMMWORD
[48+rdx
]
940 movdqu xmm15
,XMMWORD
[64+rdx
]
945 movdqu xmm3
,XMMWORD
[48+r8
]
946 movdqu xmm11
,XMMWORD
[32+r8
]
947 DB 102,65,15,56,0,218
948 DB 102,69,15,56,0,218
952 DB 102,15,58,68,218,0
953 DB 102,15,58,68,234,17
954 DB 102,15,58,68,231,0
957 pshufd xmm12
,xmm11
,78
959 DB 102,68,15,58,68,222,0
960 DB 102,68,15,58,68,238,17
961 DB 102,68,15,58,68,231,16
964 movups xmm7
,XMMWORD
[80+rdx
]
967 movdqu xmm11
,XMMWORD
[16+r8
]
968 movdqu xmm8
,XMMWORD
[r8
]
969 DB 102,69,15,56,0,218
970 DB 102,69,15,56,0,194
972 pshufd xmm12
,xmm11
,78
975 DB 102,69,15,58,68,222,0
979 DB 102,69,15,58,68,238,17
980 DB 102,68,15,58,68,231,0
988 jmp NEAR $L$mod4_loop
991 DB 102,65,15,58,68,199,0
993 movdqu xmm11
,XMMWORD
[48+r8
]
994 DB 102,69,15,56,0,218
995 DB 102,65,15,58,68,207,17
997 movdqu xmm3
,XMMWORD
[32+r8
]
999 DB 102,68,15,58,68,199,16
1000 pshufd xmm12
,xmm11
,78
1003 DB 102,65,15,56,0,218
1004 movups xmm7
,XMMWORD
[32+rdx
]
1006 DB 102,68,15,58,68,218,0
1014 DB 102,68,15,58,68,234,17
1018 movdqa xmm8
,XMMWORD
[$L
$7_mask
]
1020 DB 102,76,15,110,200
1023 DB 102,69,15,56,0,200
1025 DB 102,68,15,58,68,231,0
1029 DB 102,15,58,68,222,0
1033 movdqu xmm8
,XMMWORD
[r8
]
1037 DB 102,15,58,68,238,17
1039 movdqu xmm11
,XMMWORD
[16+r8
]
1040 DB 102,69,15,56,0,218
1041 DB 102,15,58,68,231,16
1043 movups xmm7
,XMMWORD
[80+rdx
]
1044 DB 102,69,15,56,0,194
1051 pshufd xmm12
,xmm11
,78
1055 DB 102,69,15,58,68,222,0
1059 DB 102,69,15,58,68,238,17
1064 DB 102,68,15,58,68,231,0
1069 jnc NEAR $L$mod4_loop
1072 DB 102,65,15,58,68,199,0
1073 DB 102,65,15,58,68,207,17
1074 DB 102,68,15,58,68,199,16
1114 movdqu xmm7
,XMMWORD
[32+rdx
]
1123 movdqu xmm8
,XMMWORD
[r8
]
1124 movdqu xmm3
,XMMWORD
[16+r8
]
1125 DB 102,69,15,56,0,194
1126 DB 102,65,15,56,0,218
1132 DB 102,15,58,68,218,0
1133 DB 102,15,58,68,234,17
1134 DB 102,15,58,68,231,0
1139 jbe NEAR $L
$even_tail
1141 jmp NEAR $L$mod_loop
1150 DB 102,15,58,68,198,0
1151 DB 102,15,58,68,206,17
1152 DB 102,15,58,68,231,16
1156 movdqu xmm9
,XMMWORD
[r8
]
1158 DB 102,69,15,56,0,202
1159 movdqu xmm3
,XMMWORD
[16+r8
]
1164 DB 102,65,15,56,0,218
1177 DB 102,15,58,68,218,0
1191 DB 102,15,58,68,234,17
1198 DB 102,15,58,68,231,0
1210 DB 102,15,58,68,198,0
1211 DB 102,15,58,68,206,17
1212 DB 102,15,58,68,231,16
1251 movdqu xmm8
,XMMWORD
[r8
]
1252 DB 102,69,15,56,0,194
1257 DB 102,15,58,68,194,0
1258 DB 102,15,58,68,202,17
1259 DB 102,15,58,68,223,0
1292 DB 102,65,15,56,0,194
1293 movdqu XMMWORD
[rcx
],xmm0
1294 movaps xmm6
,XMMWORD
[rsp
]
1295 movaps xmm7
,XMMWORD
[16+rsp
]
1296 movaps xmm8
,XMMWORD
[32+rsp
]
1297 movaps xmm9
,XMMWORD
[48+rsp
]
1298 movaps xmm10
,XMMWORD
[64+rsp
]
1299 movaps xmm11
,XMMWORD
[80+rsp
]
1300 movaps xmm12
,XMMWORD
[96+rsp
]
1301 movaps xmm13
,XMMWORD
[112+rsp
]
1302 movaps xmm14
,XMMWORD
[128+rsp
]
1303 movaps xmm15
,XMMWORD
[144+rsp
]
1305 $L$
SEH_end_gcm_ghash_clmul:
1306 DB 0F3h
,0C3h
;repret
1312 jmp NEAR $L$_init_clmul
1314 global gcm_gmult_avx
1318 jmp NEAR $L$_gmult_clmul
1320 global gcm_ghash_avx
1324 jmp NEAR $L$_ghash_clmul
1328 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
1329 $L
$0x1c2_polynomial
:
1330 DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
1338 DD 0,0,0,471859200,0,943718400,0,610271232
1339 DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208
1340 DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008
1341 DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160
1344 DW 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
1345 DW 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
1346 DW 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
1347 DW 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
1348 DW 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
1349 DW 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
1350 DW 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
1351 DW 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
1352 DW 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
1353 DW 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
1354 DW 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
1355 DW 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
1356 DW 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
1357 DW 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
1358 DW 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
1359 DW 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
1360 DW 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
1361 DW 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
1362 DW 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
1363 DW 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
1364 DW 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
1365 DW 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
1366 DW 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
1367 DW 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
1368 DW 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
1369 DW 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
1370 DW 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
1371 DW 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
1372 DW 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
1373 DW 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
1374 DW 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
1375 DW 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
1377 DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52
1378 DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
1379 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
1382 EXTERN __imp_RtlVirtualUnwind
1397 mov rax
,QWORD[120+r8
]
1398 mov rbx
,QWORD[248+r8
]
1401 mov r11
,QWORD[56+r9
]
1406 jb NEAR $L$in_prologue
1408 mov rax
,QWORD[152+r8
]
1410 mov r10d
,DWORD[4+r11
]
1413 jae NEAR $L$in_prologue
1417 mov rbx
,QWORD[((-8))+rax
]
1418 mov rbp
,QWORD[((-16))+rax
]
1419 mov r12
,QWORD[((-24))+rax
]
1420 mov QWORD[144+r8
],rbx
1421 mov QWORD[160+r8
],rbp
1422 mov QWORD[216+r8
],r12
1425 mov rdi
,QWORD[8+rax
]
1426 mov rsi
,QWORD[16+rax
]
1427 mov QWORD[152+r8
],rax
1428 mov QWORD[168+r8
],rsi
1429 mov QWORD[176+r8
],rdi
1431 mov rdi
,QWORD[40+r9
]
1438 mov rdx
,QWORD[8+rsi
]
1440 mov r9
,QWORD[16+rsi
]
1441 mov r10
,QWORD[40+rsi
]
1444 mov QWORD[32+rsp
],r10
1445 mov QWORD[40+rsp
],r11
1446 mov QWORD[48+rsp
],r12
1447 mov QWORD[56+rsp
],rcx
1448 call QWORD[__imp_RtlVirtualUnwind
]
1461 DB 0F3h
,0C3h
;repret
1464 section .pdata rdata
align=4
1466 DD $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase
1467 DD $L$SEH_end_gcm_gmult_4bit wrt ..imagebase
1468 DD $L$SEH_info_gcm_gmult_4bit wrt ..imagebase
1470 DD $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase
1471 DD $L$SEH_end_gcm_ghash_4bit wrt ..imagebase
1472 DD $L$SEH_info_gcm_ghash_4bit wrt ..imagebase
1474 DD $L$SEH_begin_gcm_init_clmul wrt ..imagebase
1475 DD $L$SEH_end_gcm_init_clmul wrt ..imagebase
1476 DD $L$SEH_info_gcm_init_clmul wrt ..imagebase
1478 DD $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase
1479 DD $L$SEH_end_gcm_ghash_clmul wrt ..imagebase
1480 DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase
1481 section .xdata rdata
align=8
1483 $L$
SEH_info_gcm_gmult_4bit:
1485 DD se_handler wrt ..imagebase
1486 DD $L$gmult_prologue wrt ..imagebase
,$L$gmult_epilogue wrt ..imagebase
1487 $L$
SEH_info_gcm_ghash_4bit:
1489 DD se_handler wrt ..imagebase
1490 DD $L$ghash_prologue wrt ..imagebase
,$L$ghash_epilogue wrt ..imagebase
1491 $L$
SEH_info_gcm_init_clmul:
1492 DB 0x01,0x08,0x03,0x00
1493 DB 0x08,0x68,0x00,0x00
1494 DB 0x04,0x22,0x00,0x00
1495 $L$
SEH_info_gcm_ghash_clmul:
1496 DB 0x01,0x33,0x16,0x00
1497 DB 0x33,0xf8,0x09,0x00
1498 DB 0x2e,0xe8,0x08,0x00
1499 DB 0x29,0xd8,0x07,0x00
1500 DB 0x24,0xc8,0x06,0x00
1501 DB 0x1f,0xb8,0x05,0x00
1502 DB 0x1a,0xa8,0x04,0x00
1503 DB 0x15,0x98,0x03,0x00
1504 DB 0x10,0x88,0x02,0x00
1505 DB 0x0c,0x78,0x01,0x00
1506 DB 0x08,0x68,0x00,0x00
1507 DB 0x04,0x01,0x15,0x00