|  | ; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26504.0 | 
|  |  | 
|  | TITLE	C:\Source\compiler-explorer\test\cases\vc-regex-example.cpp | 
|  | .686P | 
|  | .XMM | 
|  | include listing.inc | 
|  | .model	flat | 
|  |  | 
|  | INCLUDELIB LIBCMT | 
|  | INCLUDELIB OLDNAMES | 
|  |  | 
|  | CONST	SEGMENT | 
|  | $SG39290 DB	'Some people,  when confronted with a problem, think "I k' | 
|  | DB	'now, I''ll use regular expressions." Now they have two proble' | 
|  | DB	'ms.', 00H | 
|  | $SG39291 DB	'REGULAR EXPRESSIONS', 00H | 
|  | CONST	ENDS | 
|  | PUBLIC	?regexTest@@YAXXZ				; regexTest | 
|  | xdata$x	SEGMENT | 
|  | __unwindtable$?regexTest@@YAXXZ DD 0ffffffffH | 
|  | DD	FLAT:__unwindfunclet$?regexTest@@YAXXZ$0 | 
|  | __ehfuncinfo$?regexTest@@YAXXZ DD 019930522H | 
|  | DD	01H | 
|  | DD	FLAT:__unwindtable$?regexTest@@YAXXZ | 
|  | DD	2 DUP(00H) | 
|  | DD	2 DUP(00H) | 
|  | DD	00H | 
|  | DD	01H | 
|  | xdata$x	ENDS | 
|  | ; Function compile flags: /Odtp | 
|  | _TEXT	SEGMENT | 
|  | _self_regex$ = -60					; size = 20 | 
|  | _s$ = -40						; size = 24 | 
|  | __$ArrayPad$ = -16					; size = 4 | 
|  | __$EHRec$ = -12						; size = 12 | 
|  | ?regexTest@@YAXXZ PROC					; regexTest | 
|  | ; File c:\source\compiler-explorer\test\cases\vc-regex-example.cpp | 
|  | ; Line 7 | 
|  | push	ebp | 
|  | mov	ebp, esp | 
|  | push	-1 | 
|  | push	__ehhandler$?regexTest@@YAXXZ | 
|  | mov	eax, DWORD PTR fs:0 | 
|  | push	eax | 
|  | sub	esp, 48					; 00000030H | 
|  | mov	eax, DWORD PTR ___security_cookie | 
|  | xor	eax, ebp | 
|  | mov	DWORD PTR __$ArrayPad$[ebp], eax | 
|  | push	eax | 
|  | lea	eax, DWORD PTR __$EHRec$[ebp] | 
|  | mov	DWORD PTR fs:0, eax | 
|  | ; Line 8 | 
|  | push	OFFSET $SG39290 | 
|  | lea	ecx, DWORD PTR _s$[ebp] | 
|  | call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@QBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> > | 
|  | mov	DWORD PTR __$EHRec$[ebp+8], 0 | 
|  | ; Line 11 | 
|  | push	256					; 00000100H | 
|  | push	1 | 
|  | call	??Uregex_constants@std@@YA?AW4syntax_option_type@01@W4201@0@Z ; std::regex_constants::operator| | 
|  | add	esp, 8 | 
|  | push	eax | 
|  | push	OFFSET $SG39291 | 
|  | lea	ecx, DWORD PTR _self_regex$[ebp] | 
|  | call	??0?$basic_regex@DV?$regex_traits@D@std@@@std@@QAE@PBDW4syntax_option_type@regex_constants@1@@Z ; std::basic_regex<char,std::regex_traits<char> >::basic_regex<char,std::regex_traits<char> > | 
|  | ; Line 13 | 
|  | lea	ecx, DWORD PTR _self_regex$[ebp] | 
|  | call	??1?$basic_regex@DV?$regex_traits@D@std@@@std@@QAE@XZ ; std::basic_regex<char,std::regex_traits<char> >::~basic_regex<char,std::regex_traits<char> > | 
|  | mov	DWORD PTR __$EHRec$[ebp+8], -1 | 
|  | lea	ecx, DWORD PTR _s$[ebp] | 
|  | call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> > | 
|  | mov	ecx, DWORD PTR __$EHRec$[ebp] | 
|  | mov	DWORD PTR fs:0, ecx | 
|  | pop	ecx | 
|  | mov	ecx, DWORD PTR __$ArrayPad$[ebp] | 
|  | xor	ecx, ebp | 
|  | call	@__security_check_cookie@4 | 
|  | mov	esp, ebp | 
|  | pop	ebp | 
|  | ret	0 | 
|  | _TEXT	ENDS | 
|  | text$x	SEGMENT | 
|  | __unwindfunclet$?regexTest@@YAXXZ$0: | 
|  | lea	ecx, DWORD PTR _s$[ebp] | 
|  | jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> > | 
|  | __ehhandler$?regexTest@@YAXXZ: | 
|  | mov	edx, DWORD PTR [esp+8] | 
|  | lea	eax, DWORD PTR [edx+12] | 
|  | mov	ecx, DWORD PTR [edx-52] | 
|  | xor	ecx, eax | 
|  | call	@__security_check_cookie@4 | 
|  | mov	ecx, DWORD PTR [edx-4] | 
|  | xor	ecx, eax | 
|  | call	@__security_check_cookie@4 | 
|  | mov	eax, OFFSET __ehfuncinfo$?regexTest@@YAXXZ | 
|  | jmp	___CxxFrameHandler3 | 
|  | text$x	ENDS | 
|  | ?regexTest@@YAXXZ ENDP					; regexTest | 
|  | END |