{
  "asm": [
    {
      "source": null,
      "text": "; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26504.0 "
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tTITLE\tC:\\Source\\compiler-explorer\\test\\cases\\vc-regex-example.cpp"
    },
    {
      "source": null,
      "text": "\t.686P"
    },
    {
      "source": null,
      "text": "\t.XMM"
    },
    {
      "source": null,
      "text": "\tinclude listing.inc"
    },
    {
      "source": null,
      "text": "\t.model\tflat"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "INCLUDELIB LIBCMT"
    },
    {
      "source": null,
      "text": "INCLUDELIB OLDNAMES"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "CONST\tSEGMENT"
    },
    {
      "source": null,
      "text": "$SG39290 DB\t'Some people,  when confronted with a problem, think \"I k'"
    },
    {
      "source": null,
      "text": "\tDB\t'now, I''ll use regular expressions.\" Now they have two proble'"
    },
    {
      "source": null,
      "text": "\tDB\t'ms.', 00H"
    },
    {
      "source": null,
      "text": "$SG39291 DB\t'REGULAR EXPRESSIONS', 00H"
    },
    {
      "source": null,
      "text": "CONST\tENDS"
    },
    {
      "source": null,
      "text": "PUBLIC\t?regexTest@@YAXXZ\t\t\t\t; regexTest"
    },
    {
      "source": null,
      "text": "xdata$x\tSEGMENT"
    },
    {
      "source": null,
      "text": "__unwindtable$?regexTest@@YAXXZ DD 0ffffffffH"
    },
    {
      "source": null,
      "text": "\tDD\tFLAT:__unwindfunclet$?regexTest@@YAXXZ$0"
    },
    {
      "source": null,
      "text": "__ehfuncinfo$?regexTest@@YAXXZ DD 019930522H"
    },
    {
      "source": null,
      "text": "\tDD\t01H"
    },
    {
      "source": null,
      "text": "\tDD\tFLAT:__unwindtable$?regexTest@@YAXXZ"
    },
    {
      "source": null,
      "text": "\tDD\t2 DUP(00H)"
    },
    {
      "source": null,
      "text": "\tDD\t2 DUP(00H)"
    },
    {
      "source": null,
      "text": "\tDD\t00H"
    },
    {
      "source": null,
      "text": "\tDD\t01H"
    },
    {
      "source": null,
      "text": "xdata$x\tENDS"
    },
    {
      "source": null,
      "text": "; Function compile flags: /Odtp"
    },
    {
      "source": null,
      "text": "_TEXT\tSEGMENT"
    },
    {
      "source": null,
      "text": "_self_regex$ = -60\t\t\t\t\t; size = 20"
    },
    {
      "source": null,
      "text": "_s$ = -40\t\t\t\t\t\t; size = 24"
    },
    {
      "source": null,
      "text": "__$ArrayPad$ = -16\t\t\t\t\t; size = 4"
    },
    {
      "source": null,
      "text": "__$EHRec$ = -12\t\t\t\t\t\t; size = 12"
    },
    {
      "source": null,
      "text": "?regexTest@@YAXXZ PROC\t\t\t\t\t; regexTest"
    },
    {
      "source": null,
      "text": "; File c:\\source\\compiler-explorer\\test\\cases\\vc-regex-example.cpp"
    },
    {
      "source": null,
      "text": "; Line 7"
    },
    {
      "source": null,
      "text": "\tpush\tebp"
    },
    {
      "source": null,
      "text": "\tmov\tebp, esp"
    },
    {
      "source": null,
      "text": "\tpush\t-1"
    },
    {
      "source": null,
      "text": "\tpush\t__ehhandler$?regexTest@@YAXXZ"
    },
    {
      "source": null,
      "text": "\tmov\teax, DWORD PTR fs:0"
    },
    {
      "source": null,
      "text": "\tpush\teax"
    },
    {
      "source": null,
      "text": "\tsub\tesp, 48\t\t\t\t\t; 00000030H"
    },
    {
      "source": null,
      "text": "\tmov\teax, DWORD PTR ___security_cookie"
    },
    {
      "source": null,
      "text": "\txor\teax, ebp"
    },
    {
      "source": null,
      "text": "\tmov\tDWORD PTR __$ArrayPad$[ebp], eax"
    },
    {
      "source": null,
      "text": "\tpush\teax"
    },
    {
      "source": null,
      "text": "\tlea\teax, DWORD PTR __$EHRec$[ebp]"
    },
    {
      "source": null,
      "text": "\tmov\tDWORD PTR fs:0, eax"
    },
    {
      "source": null,
      "text": "; Line 8"
    },
    {
      "source": null,
      "text": "\tpush\tOFFSET $SG39290"
    },
    {
      "source": null,
      "text": "\tlea\tecx, DWORD PTR _s$[ebp]"
    },
    {
      "source": null,
      "text": "\tcall\t??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> >"
    },
    {
      "source": null,
      "text": "\tmov\tDWORD PTR __$EHRec$[ebp+8], 0"
    },
    {
      "source": null,
      "text": "; Line 11"
    },
    {
      "source": null,
      "text": "\tpush\t256\t\t\t\t\t; 00000100H"
    },
    {
      "source": null,
      "text": "\tpush\t1"
    },
    {
      "source": null,
      "text": "\tcall\t??Uregex_constants@std@@YA?AW4syntax_option_type@01@W4201@0@Z ; std::regex_constants::operator|"
    },
    {
      "source": null,
      "text": "\tadd\tesp, 8"
    },
    {
      "source": null,
      "text": "\tpush\teax"
    },
    {
      "source": null,
      "text": "\tpush\tOFFSET $SG39291"
    },
    {
      "source": null,
      "text": "\tlea\tecx, DWORD PTR _self_regex$[ebp]"
    },
    {
      "source": null,
      "text": "\tcall\t??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> >"
    },
    {
      "source": null,
      "text": "; Line 13"
    },
    {
      "source": null,
      "text": "\tlea\tecx, DWORD PTR _self_regex$[ebp]"
    },
    {
      "source": null,
      "text": "\tcall\t??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> >"
    },
    {
      "source": null,
      "text": "\tmov\tDWORD PTR __$EHRec$[ebp+8], -1"
    },
    {
      "source": null,
      "text": "\tlea\tecx, DWORD PTR _s$[ebp]"
    },
    {
      "source": null,
      "text": "\tcall\t??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> >"
    },
    {
      "source": null,
      "text": "\tmov\tecx, DWORD PTR __$EHRec$[ebp]"
    },
    {
      "source": null,
      "text": "\tmov\tDWORD PTR fs:0, ecx"
    },
    {
      "source": null,
      "text": "\tpop\tecx"
    },
    {
      "source": null,
      "text": "\tmov\tecx, DWORD PTR __$ArrayPad$[ebp]"
    },
    {
      "source": null,
      "text": "\txor\tecx, ebp"
    },
    {
      "source": null,
      "text": "\tcall\t@__security_check_cookie@4"
    },
    {
      "source": null,
      "text": "\tmov\tesp, ebp"
    },
    {
      "source": null,
      "text": "\tpop\tebp"
    },
    {
      "source": null,
      "text": "\tret\t0"
    },
    {
      "source": null,
      "text": "_TEXT\tENDS"
    },
    {
      "source": null,
      "text": "text$x\tSEGMENT"
    },
    {
      "source": null,
      "text": "__unwindfunclet$?regexTest@@YAXXZ$0:"
    },
    {
      "source": null,
      "text": "\tlea\tecx, DWORD PTR _s$[ebp]"
    },
    {
      "source": null,
      "text": "\tjmp\t??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> >"
    },
    {
      "source": null,
      "text": "__ehhandler$?regexTest@@YAXXZ:"
    },
    {
      "source": null,
      "text": "\tmov\tedx, DWORD PTR [esp+8]"
    },
    {
      "source": null,
      "text": "\tlea\teax, DWORD PTR [edx+12]"
    },
    {
      "source": null,
      "text": "\tmov\tecx, DWORD PTR [edx-52]"
    },
    {
      "source": null,
      "text": "\txor\tecx, eax"
    },
    {
      "source": null,
      "text": "\tcall\t@__security_check_cookie@4"
    },
    {
      "source": null,
      "text": "\tmov\tecx, DWORD PTR [edx-4]"
    },
    {
      "source": null,
      "text": "\txor\tecx, eax"
    },
    {
      "source": null,
      "text": "\tcall\t@__security_check_cookie@4"
    },
    {
      "source": null,
      "text": "\tmov\teax, OFFSET __ehfuncinfo$?regexTest@@YAXXZ"
    },
    {
      "source": null,
      "text": "\tjmp\t___CxxFrameHandler3"
    },
    {
      "source": null,
      "text": "text$x\tENDS"
    },
    {
      "source": null,
      "text": "?regexTest@@YAXXZ ENDP\t\t\t\t\t; regexTest"
    },
    {
      "source": null,
      "text": "END"
    },
    {
      "source": null,
      "text": ""
    }
  ]
}
