From 3979926b5feba12524454637c2cd7fc670afa1db Mon Sep 17 00:00:00 2001 From: Patrick Quist Date: Wed, 23 Oct 2024 22:50:55 +0200 Subject: [PATCH] Fix 4848 (#32) --- ...text_filter_tests.ce-bug-3963.approved.txt | 2 +- ...text_filter_tests.ce-bug-4848.approved.txt | 1 + ...text_filter_tests.ce-bug-7000.approved.txt | 2 +- ...r_tests.gcc12_bin_fmt_O2_flto.approved.txt | 4820 +---------------- resources/ce-bug-4848.asm | 125 + src/objdump/parser.cpp | 49 +- src/objdump/parser.hpp | 2 +- src/test/asmtext_filter_tests.cpp | 34 + 8 files changed, 207 insertions(+), 4828 deletions(-) create mode 100644 resources/asmtext_filter_tests.ce-bug-4848.approved.txt create mode 100644 resources/ce-bug-4848.asm diff --git a/resources/asmtext_filter_tests.ce-bug-3963.approved.txt b/resources/asmtext_filter_tests.ce-bug-3963.approved.txt index ecf1231..7febf5c 100644 --- a/resources/asmtext_filter_tests.ce-bug-3963.approved.txt +++ b/resources/asmtext_filter_tests.ce-bug-3963.approved.txt @@ -1 +1 @@ -{"asm": [{"labels": [], "source": null, "section": ".text", "text": "main:"},{"labels": [], "opcodes": ["55"], "address": 4198592, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " push rbp"},{"labels": [], "opcodes": ["ba", "0a", "00", "00", "00"], "address": 4198593, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edx,0xa"},{"labels": [], "opcodes": ["31", "f6"], "address": 4198598, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " xor esi,esi"},{"labels": [], "opcodes": ["bf", "04", "20", "40", "00"], "address": 4198600, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edi,0x402004"},{"labels": [], "opcodes": ["53"], "address": 4198605, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " push rbx"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4198606, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["e8", "a9", "ff", "ff", "ff"], "address": 4198610, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " call 401080 "},{"labels": [], "opcodes": ["bf", "80", "40", "40", "00"], "address": 4198615, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov edi,0x404080"},{"labels": [], "opcodes": ["89", "c6"], "address": 4198620, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov esi,eax"},{"labels": [], "opcodes": ["e8", "bd", "ff", "ff", "ff"], "address": 4198622, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " call 4010a0 "},{"labels": [], "opcodes": ["48", "89", "c3"], "address": 4198627, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov rbx,rax"},{"labels": [], "opcodes": ["48", "8b", "00"], "address": 4198630, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rax,QWORD PTR [rax]"},{"labels": [], "opcodes": ["48", "8b", "40", "e8"], "address": 4198633, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rax,QWORD PTR [rax-0x18]"},{"labels": [], "opcodes": ["48", "8b", "ac", "03", "f0", "00", "00", "00"], "address": 4198637, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rbp,QWORD PTR [rbx+rax*1+0xf0]"},{"labels": [], "opcodes": ["48", "85", "ed"], "address": 4198645, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 49}, "section": ".text", "text": " test rbp,rbp"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "4f"], "address": 4198648, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 49}, "section": ".text", "text": " je 401149 "},{"labels": [], "opcodes": ["80", "7d", "38", "00"], "address": 4198650, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 882}, "section": ".text", "text": " cmp BYTE PTR [rbp+0x38],0x0"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "1d"], "address": 4198654, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 882}, "section": ".text", "text": " je 40111d "},{"labels": [], "opcodes": ["0f", "be", "75", "43"], "address": 4198656, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 883}, "section": ".text", "text": " movsx esi,BYTE PTR [rbp+0x43]"},{"labels": [], "opcodes": ["48", "89", "df"], "address": 4198660, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rdi,rbx"},{"labels": [], "opcodes": ["e8", "24", "ff", "ff", "ff"], "address": 4198663, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " call 401030 "},{"labels": [], "opcodes": ["48", "89", "c7"], "address": 4198668, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rdi,rax"},{"labels": [], "opcodes": ["e8", "2c", "ff", "ff", "ff"], "address": 4198671, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 711}, "section": ".text", "text": " call 401040 "},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4198676, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["31", "c0"], "address": 4198680, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " xor eax,eax"},{"labels": [], "opcodes": ["5b"], "address": 4198682, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " pop rbx"},{"labels": [], "opcodes": ["5d"], "address": 4198683, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " pop rbp"},{"labels": [], "opcodes": ["c3"], "address": 4198684, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["48", "89", "ef"], "address": 4198685, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 884}, "section": ".text", "text": " mov rdi,rbp"},{"labels": [{"name": "char", "range": {"startCol": 28, "endCol": 32}}], "opcodes": ["e8", "3b", "ff", "ff", "ff"], "address": 4198688, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 884}, "section": ".text", "text": " call 401060 ::_M_widen_init() const@plt>"},{"labels": [], "opcodes": ["48", "8b", "45", "00"], "address": 4198693, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rax,QWORD PTR [rbp+0x0]"},{"labels": [], "opcodes": ["be", "0a", "00", "00", "00"], "address": 4198697, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov esi,0xa"},{"labels": [], "opcodes": ["48", "8b", "40", "30"], "address": 4198702, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rax,QWORD PTR [rax+0x30]"},{"labels": [], "opcodes": ["48", "3d", "c0", "12", "40", "00"], "address": 4198706, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " cmp rax,0x4012c0"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "ca"], "address": 4198712, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " je 401104 "},{"labels": [], "opcodes": ["be", "0a", "00", "00", "00"], "address": 4198714, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov esi,0xa"},{"labels": [], "opcodes": ["48", "89", "ef"], "address": 4198719, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rdi,rbp"},{"labels": [], "opcodes": ["ff", "d0"], "address": 4198722, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " call rax"},{"labels": [], "opcodes": ["0f", "be", "f0"], "address": 4198724, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " movsx esi,al"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["eb", "bb"], "address": 4198727, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " jmp 401104 "},{"labels": [], "opcodes": ["e8", "22", "ff", "ff", "ff"], "address": 4198729, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 50}, "section": ".text", "text": " call 401070 "},{"labels": [], "opcodes": ["66", "90"], "address": 4198734, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 50}, "section": ".text", "text": " xchg ax,ax"},{"labels": [], "address": 4198736, "source": null, "section": ".text", "text": "_GLOBAL__sub_I__Zli3_kmPKc:"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4198736, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["bf", "91", "41", "40", "00"], "address": 4198740, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edi,0x404191"},{"labels": [], "opcodes": ["e8", "32", "ff", "ff", "ff"], "address": 4198745, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " call 401090 "},{"labels": [], "opcodes": ["ba", "68", "40", "40", "00"], "address": 4198750, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edx,0x404068"},{"labels": [], "opcodes": ["be", "91", "41", "40", "00"], "address": 4198755, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov esi,0x404191"},{"labels": [], "opcodes": ["bf", "b0", "10", "40", "00"], "address": 4198760, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edi,0x4010b0"},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4198765, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["e9", "da", "fe", "ff", "ff"], "address": 4198769, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " jmp 401050 <__cxa_atexit@plt>"},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4198774, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "source": null, "section": ".text", "text": "operator\"\" _km(char const*):"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4199024, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["ba", "0a", "00", "00", "00"], "address": 4199028, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edx,0xa"},{"labels": [], "opcodes": ["31", "f6"], "address": 4199033, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " xor esi,esi"},{"labels": [], "opcodes": ["e8", "00", "fe", "ff", "ff"], "address": 4199035, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " call 401080 "},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4199040, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["c3"], "address": 4199044, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4199045, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " data16 cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "address": 4199056, "source": null, "section": ".text", "text": "operator\"\" _km(long double):"},{"labels": [], "opcodes": ["d9", "7c", "24", "f6"], "address": 4199056, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fnstcw WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["db", "6c", "24", "08"], "address": 4199060, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fld TBYTE PTR [rsp+0x8]"},{"labels": [], "opcodes": ["0f", "b7", "44", "24", "f6"], "address": 4199064, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " movzx eax,WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["80", "cc", "0c"], "address": 4199069, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " or ah,0xc"},{"labels": [], "opcodes": ["66", "89", "44", "24", "f4"], "address": 4199072, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " mov WORD PTR [rsp-0xc],ax"},{"labels": [], "opcodes": ["d9", "6c", "24", "f4"], "address": 4199077, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fldcw WORD PTR [rsp-0xc]"},{"labels": [], "opcodes": ["db", "5c", "24", "f0"], "address": 4199081, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fistp DWORD PTR [rsp-0x10]"},{"labels": [], "opcodes": ["d9", "6c", "24", "f6"], "address": 4199085, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fldcw WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["8b", "44", "24", "f0"], "address": 4199089, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " mov eax,DWORD PTR [rsp-0x10]"},{"labels": [], "opcodes": ["c3"], "address": 4199093, "source": {"file": null, "mainsource": "true", "line": 13}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4199094, "source": {"file": null, "mainsource": "true", "line": 13}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"}],"labelDefinitions": {"main": 1, "_GLOBAL__sub_I__Zli3_kmPKc": 44, "operator\"\" _km(char const*)": 54, "operator\"\" _km(long double)": 62}} +{"asm": [{"labels": [], "source": null, "section": ".text", "text": "main:"},{"labels": [], "opcodes": ["55"], "address": 4198592, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " push rbp"},{"labels": [], "opcodes": ["ba", "0a", "00", "00", "00"], "address": 4198593, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edx,0xa"},{"labels": [], "opcodes": ["31", "f6"], "address": 4198598, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " xor esi,esi"},{"labels": [], "opcodes": ["bf", "04", "20", "40", "00"], "address": 4198600, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edi,0x402004"},{"labels": [], "opcodes": ["53"], "address": 4198605, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " push rbx"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4198606, "source": {"file": null, "mainsource": "true", "line": 15}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["e8", "a9", "ff", "ff", "ff"], "address": 4198610, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " call 401080 "},{"labels": [], "opcodes": ["bf", "80", "40", "40", "00"], "address": 4198615, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov edi,0x404080"},{"labels": [], "opcodes": ["89", "c6"], "address": 4198620, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov esi,eax"},{"labels": [], "opcodes": ["e8", "bd", "ff", "ff", "ff"], "address": 4198622, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " call 4010a0 "},{"labels": [], "opcodes": ["48", "89", "c3"], "address": 4198627, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov rbx,rax"},{"labels": [], "opcodes": ["48", "8b", "00"], "address": 4198630, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rax,QWORD PTR [rax]"},{"labels": [], "opcodes": ["48", "8b", "40", "e8"], "address": 4198633, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rax,QWORD PTR [rax-0x18]"},{"labels": [], "opcodes": ["48", "8b", "ac", "03", "f0", "00", "00", "00"], "address": 4198637, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rbp,QWORD PTR [rbx+rax*1+0xf0]"},{"labels": [], "opcodes": ["48", "85", "ed"], "address": 4198645, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 49}, "section": ".text", "text": " test rbp,rbp"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "4f"], "address": 4198648, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 49}, "section": ".text", "text": " je 401149 "},{"labels": [], "opcodes": ["80", "7d", "38", "00"], "address": 4198650, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 882}, "section": ".text", "text": " cmp BYTE PTR [rbp+0x38],0x0"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "1d"], "address": 4198654, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 882}, "section": ".text", "text": " je 40111d "},{"labels": [], "opcodes": ["0f", "be", "75", "43"], "address": 4198656, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 883}, "section": ".text", "text": " movsx esi,BYTE PTR [rbp+0x43]"},{"labels": [], "opcodes": ["48", "89", "df"], "address": 4198660, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rdi,rbx"},{"labels": [], "opcodes": ["e8", "24", "ff", "ff", "ff"], "address": 4198663, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " call 401030 "},{"labels": [], "opcodes": ["48", "89", "c7"], "address": 4198668, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 689}, "section": ".text", "text": " mov rdi,rax"},{"labels": [], "opcodes": ["e8", "2c", "ff", "ff", "ff"], "address": 4198671, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/ostream", "mainsource": "false", "line": 711}, "section": ".text", "text": " call 401040 "},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4198676, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["31", "c0"], "address": 4198680, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " xor eax,eax"},{"labels": [], "opcodes": ["5b"], "address": 4198682, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " pop rbx"},{"labels": [], "opcodes": ["5d"], "address": 4198683, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " pop rbp"},{"labels": [], "opcodes": ["c3"], "address": 4198684, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["48", "89", "ef"], "address": 4198685, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 884}, "section": ".text", "text": " mov rdi,rbp"},{"labels": [{"name": "char", "range": {"startCol": 28, "endCol": 32}}], "opcodes": ["e8", "3b", "ff", "ff", "ff"], "address": 4198688, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 884}, "section": ".text", "text": " call 401060 ::_M_widen_init() const@plt>"},{"labels": [], "opcodes": ["48", "8b", "45", "00"], "address": 4198693, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rax,QWORD PTR [rbp+0x0]"},{"labels": [], "opcodes": ["be", "0a", "00", "00", "00"], "address": 4198697, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov esi,0xa"},{"labels": [], "opcodes": ["48", "8b", "40", "30"], "address": 4198702, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rax,QWORD PTR [rax+0x30]"},{"labels": [], "opcodes": ["48", "3d", "c0", "12", "40", "00"], "address": 4198706, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " cmp rax,0x4012c0"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["74", "ca"], "address": 4198712, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " je 401104 "},{"labels": [], "opcodes": ["be", "0a", "00", "00", "00"], "address": 4198714, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov esi,0xa"},{"labels": [], "opcodes": ["48", "89", "ef"], "address": 4198719, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " mov rdi,rbp"},{"labels": [], "opcodes": ["ff", "d0"], "address": 4198722, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " call rax"},{"labels": [], "opcodes": ["0f", "be", "f0"], "address": 4198724, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " movsx esi,al"},{"labels": [{"name": "main", "range": {"startCol": 17, "endCol": 21}}], "opcodes": ["eb", "bb"], "address": 4198727, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 885}, "section": ".text", "text": " jmp 401104 "},{"labels": [], "opcodes": ["e8", "22", "ff", "ff", "ff"], "address": 4198729, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 50}, "section": ".text", "text": " call 401070 "},{"labels": [], "opcodes": ["66", "90"], "address": 4198734, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/basic_ios.h", "mainsource": "false", "line": 50}, "section": ".text", "text": " xchg ax,ax"},{"labels": [], "address": 4198736, "source": null, "section": ".text", "text": "_GLOBAL__sub_I__Zli3_kmPKc:"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4198736, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["bf", "91", "41", "40", "00"], "address": 4198740, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edi,0x404191"},{"labels": [], "opcodes": ["e8", "32", "ff", "ff", "ff"], "address": 4198745, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " call 401090 "},{"labels": [], "opcodes": ["ba", "68", "40", "40", "00"], "address": 4198750, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edx,0x404068"},{"labels": [], "opcodes": ["be", "91", "41", "40", "00"], "address": 4198755, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov esi,0x404191"},{"labels": [], "opcodes": ["bf", "b0", "10", "40", "00"], "address": 4198760, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " mov edi,0x4010b0"},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4198765, "source": {"file": null, "mainsource": "true", "line": 18}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["e9", "da", "fe", "ff", "ff"], "address": 4198769, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " jmp 401050 <__cxa_atexit@plt>"},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4198774, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/iostream", "mainsource": "false", "line": 74}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "source": null, "section": ".text", "text": "operator\"\" _km(char const*):"},{"labels": [], "opcodes": ["48", "83", "ec", "08"], "address": 4199024, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " sub rsp,0x8"},{"labels": [], "opcodes": ["ba", "0a", "00", "00", "00"], "address": 4199028, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " mov edx,0xa"},{"labels": [], "opcodes": ["31", "f6"], "address": 4199033, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " xor esi,esi"},{"labels": [], "opcodes": ["e8", "00", "fe", "ff", "ff"], "address": 4199035, "source": {"file": "/usr/include/stdlib.h", "mainsource": "false", "line": 363}, "section": ".text", "text": " call 401080 "},{"labels": [], "opcodes": ["48", "83", "c4", "08"], "address": 4199040, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " add rsp,0x8"},{"labels": [], "opcodes": ["c3"], "address": 4199044, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4199045, "source": {"file": null, "mainsource": "true", "line": 9}, "section": ".text", "text": " data16 cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "address": 4199056, "source": null, "section": ".text", "text": "operator\"\" _km(long double):"},{"labels": [], "opcodes": ["d9", "7c", "24", "f6"], "address": 4199056, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fnstcw WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["db", "6c", "24", "08"], "address": 4199060, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fld TBYTE PTR [rsp+0x8]"},{"labels": [], "opcodes": ["0f", "b7", "44", "24", "f6"], "address": 4199064, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " movzx eax,WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["80", "cc", "0c"], "address": 4199069, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " or ah,0xc"},{"labels": [], "opcodes": ["66", "89", "44", "24", "f4"], "address": 4199072, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " mov WORD PTR [rsp-0xc],ax"},{"labels": [], "opcodes": ["d9", "6c", "24", "f4"], "address": 4199077, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fldcw WORD PTR [rsp-0xc]"},{"labels": [], "opcodes": ["db", "5c", "24", "f0"], "address": 4199081, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fistp DWORD PTR [rsp-0x10]"},{"labels": [], "opcodes": ["d9", "6c", "24", "f6"], "address": 4199085, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " fldcw WORD PTR [rsp-0xa]"},{"labels": [], "opcodes": ["8b", "44", "24", "f0"], "address": 4199089, "source": {"file": null, "mainsource": "true", "line": 12}, "section": ".text", "text": " mov eax,DWORD PTR [rsp-0x10]"},{"labels": [], "opcodes": ["c3"], "address": 4199093, "source": {"file": null, "mainsource": "true", "line": 13}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4199094, "source": {"file": null, "mainsource": "true", "line": 13}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "address": 4199104, "source": null, "section": ".text", "text": "std::ctype::do_widen(char) const:"},{"labels": [], "opcodes": ["89", "f0"], "address": 4199104, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 1092}, "section": ".text", "text": " mov eax,esi"},{"labels": [], "opcodes": ["c3"], "address": 4199106, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 1093}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4199107, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 1093}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "opcodes": ["0f", "1f", "00"], "address": 4199117, "source": {"file": "/opt/compiler-explorer/gcc-trunk-20220526/include/c++/13.0.0/bits/locale_facets.h", "mainsource": "false", "line": 1093}, "section": ".text", "text": " nop DWORD PTR [rax]"}],"labelDefinitions": {"main": 1, "_GLOBAL__sub_I__Zli3_kmPKc": 44, "operator\"\" _km(char const*)": 54, "operator\"\" _km(long double)": 62, "std::ctype::do_widen(char) const": 74}} diff --git a/resources/asmtext_filter_tests.ce-bug-4848.approved.txt b/resources/asmtext_filter_tests.ce-bug-4848.approved.txt new file mode 100644 index 0000000..c686e34 --- /dev/null +++ b/resources/asmtext_filter_tests.ce-bug-4848.approved.txt @@ -0,0 +1 @@ +{"asm": [{"labels": [], "source": null, "section": ".text", "text": "_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0:"},{"labels": [], "opcodes": ["0f", "31"], "address": 4198432, "source": {"file": "/opt/compiler-explorer/gcc-12.2.0/lib/gcc/x86_64-linux-gnu/12.2.0/include/ia32intrin.h", "mainsource": "false", "line": 114}, "section": ".text", "text": " rdtsc "},{"labels": [], "opcodes": ["ff", "c0"], "address": 4198434, "source": {"file": null, "mainsource": "true", "line": 14}, "section": ".text", "text": " inc eax"},{"labels": [], "opcodes": ["89", "05", "02", "30", "00", "00"], "address": 4198436, "source": {"file": null, "mainsource": "true", "line": 14}, "section": ".text", "text": " mov DWORD PTR [rip+0x3002],eax # 40402c "},{"labels": [], "opcodes": ["c3"], "address": 4198442, "source": {"file": null, "mainsource": "true", "line": 10}, "section": ".text", "text": " ret "},{"labels": [], "address": 4198443, "source": null, "section": ".text", "text": "main:"},{"labels": [{"name": "_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0", "range": {"startCol": 17, "endCol": 59}}], "opcodes": ["e8", "f0", "ff", "ff", "ff"], "address": 4198443, "source": {"file": null, "mainsource": "true", "line": 13}, "section": ".text", "text": " call 401020 <_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0>"},{"labels": [], "opcodes": ["8b", "05", "f6", "2f", "00", "00"], "address": 4198448, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " mov eax,DWORD PTR [rip+0x2ff6] # 40402c "},{"labels": [], "opcodes": ["c3"], "address": 4198454, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " ret "},{"labels": [], "opcodes": ["66", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4198455, "source": {"file": null, "mainsource": "true", "line": 17}, "section": ".text", "text": " nop WORD PTR [rax+rax*1+0x0]"}],"labelDefinitions": {"_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0": 1, "main": 6}} diff --git a/resources/asmtext_filter_tests.ce-bug-7000.approved.txt b/resources/asmtext_filter_tests.ce-bug-7000.approved.txt index 6056fe0..5bf5876 100644 --- a/resources/asmtext_filter_tests.ce-bug-7000.approved.txt +++ b/resources/asmtext_filter_tests.ce-bug-7000.approved.txt @@ -1 +1 @@ -{"asm": [{"labels": [], "source": null, "section": ".text", "text": "main:"},{"labels": [], "opcodes": ["31", "c0"], "address": 4198432, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " xor eax,eax"},{"labels": [], "opcodes": ["c3"], "address": 4198434, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " ret"},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4198435, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "opcodes": ["0f", "1f", "00"], "address": 4198445, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " nop DWORD PTR [rax]"}],"labelDefinitions": {"main": 1}} +{"asm": [{"labels": [], "source": null, "section": ".text", "text": "main:"},{"labels": [], "opcodes": ["31", "c0"], "address": 4198432, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " xor eax,eax"},{"labels": [], "opcodes": ["c3"], "address": 4198434, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " ret"},{"labels": [], "opcodes": ["66", "2e", "0f", "1f", "84", "00", "00", "00", "00", "00"], "address": 4198435, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " cs nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "opcodes": ["0f", "1f", "00"], "address": 4198445, "source": {"file": null, "mainsource": "true", "line": 7}, "section": ".text", "text": " nop DWORD PTR [rax]"},{"labels": [], "source": null, "section": ".text", "text": "_Z3fooNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:"},{"labels": [], "opcodes": ["31", "c0"], "address": 4198688, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/dir with spaces/basic_string.h", "mainsource": "false", "line": 3776}, "section": ".text", "text": " xor eax,eax"},{"labels": [], "opcodes": ["48", "83", "7f", "08", "04"], "address": 4198690, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/basic_string.h", "mainsource": "false", "line": 3776}, "section": ".text", "text": " cmp QWORD PTR [rdi+0x8],0x4"},{"labels": [{"name": "_Z3fooNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "range": {"startCol": 17, "endCol": 75}}], "opcodes": ["74", "07"], "address": 4198695, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/basic_string.h", "mainsource": "false", "line": 3776}, "section": ".text", "text": " je 401130 <_Z3fooNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x10>"},{"labels": [], "opcodes": ["c3"], "address": 4198697, "source": {"file": null, "mainsource": "true", "line": 5}, "section": ".text", "text": " ret"},{"labels": [], "opcodes": ["66", "0f", "1f", "44", "00", "00"], "address": 4198698, "source": {"file": null, "mainsource": "true", "line": 5}, "section": ".text", "text": " nop WORD PTR [rax+rax*1+0x0]"},{"labels": [], "opcodes": ["48", "8b", "07"], "address": 4198704, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/char_traits.h", "mainsource": "false", "line": 381}, "section": ".text", "text": " mov rax,QWORD PTR [rdi]"},{"labels": [], "opcodes": ["81", "38", "6f", "6b", "61", "79"], "address": 4198707, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/char_traits.h", "mainsource": "false", "line": 381}, "section": ".text", "text": " cmp DWORD PTR [rax],0x79616b6f"},{"labels": [], "opcodes": ["0f", "94", "c0"], "address": 4198713, "source": {"file": "/opt/compiler-explorer/gcc-14.1.0/include/c++/14.1.0/bits/char_traits.h", "mainsource": "false", "line": 381}, "section": ".text", "text": " sete al"},{"labels": [], "opcodes": ["c3"], "address": 4198716, "source": {"file": null, "mainsource": "true", "line": 5}, "section": ".text", "text": " ret"}],"labelDefinitions": {"main": 1, "_Z3fooNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE": 6}} diff --git a/resources/asmtext_filter_tests.gcc12_bin_fmt_O2_flto.approved.txt b/resources/asmtext_filter_tests.gcc12_bin_fmt_O2_flto.approved.txt index 4ee0976..61280c5 100644 --- a/resources/asmtext_filter_tests.gcc12_bin_fmt_O2_flto.approved.txt +++ b/resources/asmtext_filter_tests.gcc12_bin_fmt_O2_flto.approved.txt @@ -1,3 +1,17 @@ +_Z8get_dataB5cxx11v.cold: + mov BYTE PTR [rdx+rbx*1],0xff + mov rax,QWORD PTR ds:0x10 + ud2 + mov BYTE PTR [r12+rbx*1+0x10],0xff + mov rax,QWORD PTR ds:0x10 + ud2 + mov rdi,r12 + call 403710 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv> + lea rdi,[rsp+0x10] + call 403060 <_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@plt> + mov rdi,rbx + call 403460 <_Unwind_Resume@plt> + nop DWORD PTR [rax+rax*1+0x0] main: push rbx sub rsp,0x30 @@ -193,4810 +207,4 @@ _Z8get_dataB5cxx11v: jmp 403526 <_Z8get_dataB5cxx11v.cold+0x26> mov rbx,rax jmp 40351e <_Z8get_dataB5cxx11v.cold+0x1e> -_ZN3fmt2v76detail11assert_failEPKciS3_: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov QWORD PTR [rbp-0x18],rdx - mov rax,QWORD PTR [rip+0x455ba] # 448fa0 - mov rsi,QWORD PTR [rbp-0x18] - mov ecx,DWORD PTR [rbp-0xc] - mov rdx,QWORD PTR [rbp-0x8] - mov r8,rsi - mov esi,0x43605b - mov rdi,rax - mov eax,0x0 - call 4033a0 - call 403080 <_ZSt9terminatev@plt> -_ZN3fmt2v76detail17format_error_codeERNS1_6bufferIcEEiNS0_17basic_string_viewIcEE: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov QWORD PTR [rbp-0x28],rdi - mov DWORD PTR [rbp-0x2c],esi - mov QWORD PTR [rbp-0x40],rdx - mov QWORD PTR [rbp-0x38],rcx - mov rax,QWORD PTR [rbp-0x28] - mov esi,0x0 - mov rdi,rax - call 40b568 <_ZN3fmt2v76detail6bufferIcE10try_resizeEm> - mov QWORD PTR [rbp-0x8],0x8 - mov eax,DWORD PTR [rbp-0x2c] - mov DWORD PTR [rbp-0xc],eax - mov eax,DWORD PTR [rbp-0x2c] - mov edi,eax - call 40b5b2 <_ZN3fmt2v76detail11is_negativeIiLi0EEEbT_> - test al,al - je 403a57 <_ZN3fmt2v76detail17format_error_codeERNS1_6bufferIcEEiNS0_17basic_string_viewIcEE+0x4c> - neg DWORD PTR [rbp-0xc] - add QWORD PTR [rbp-0x8],0x1 - mov eax,DWORD PTR [rbp-0xc] - mov edi,eax - call 405333 <_ZN3fmt2v76detail12count_digitsEj> - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov eax,eax - add QWORD PTR [rbp-0x8],rax - mov rdx,QWORD PTR [rbp-0x28] - lea rax,[rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40b5ec <_ZN3fmt2v76detail15buffer_appenderIcEC1ERNS1_6bufferIcEE> - lea rax,[rbp-0x40] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - mov edx,0x1f4 - sub rdx,QWORD PTR [rbp-0x8] - cmp rdx,rax - setae al - test al,al - je 403aba <_ZN3fmt2v76detail17format_error_codeERNS1_6bufferIcEEiNS0_17basic_string_viewIcEE+0xaf> - lea rdx,[rbp-0x40] - mov rax,QWORD PTR [rbp-0x18] - mov ecx,0x4360c7 - mov esi,0x4360d1 - mov rdi,rax - call 40b612 <_ZN3fmt2v79format_toINS0_6detail15buffer_appenderIcEEA5_cJRNS0_17basic_string_viewIcEERA3_KcELb1EEENSt9enable_ifIXT2_ET_E4typeESD_RKT0_DpOT1_> - lea rdx,[rbp-0x2c] - mov rax,QWORD PTR [rbp-0x18] - mov rcx,rdx - mov edx,0x4360ca - mov esi,0x4360d1 - mov rdi,rax - call 40b6a1 <_ZN3fmt2v79format_toINS0_6detail15buffer_appenderIcEEA5_cJRA7_KcRiELb1EEENSt9enable_ifIXT2_ET_E4typeESB_RKT0_DpOT1_> - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 40b730 <_ZNK3fmt2v76detail6bufferIcE4sizeEv> - cmp rax,0x1f4 - jbe 403b04 <_ZN3fmt2v76detail17format_error_codeERNS1_6bufferIcEEiNS0_17basic_string_viewIcEE+0xf9> - mov ecx,0x4360d8 - mov edx,0x96 - mov esi,0x436088 - mov edi,0x436130 - call 4031f0 <__assert_fail@plt> - nop - leave - ret -_ZN3fmt2v76detail12report_errorEPFvRNS1_6bufferIcEEiNS0_17basic_string_viewIcEEEiS6_: - push rbp - mov rbp,rsp - push r12 - push rbx - sub rsp,0x240 - mov QWORD PTR [rbp-0x238],rdi - mov DWORD PTR [rbp-0x23c],esi - mov QWORD PTR [rbp-0x250],rdx - mov QWORD PTR [rbp-0x248],rcx - lea rax,[rbp-0x11] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x11] - lea rax,[rbp-0x230] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x11] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - mov rax,QWORD PTR [rbp-0x250] - mov rdx,QWORD PTR [rbp-0x248] - mov esi,DWORD PTR [rbp-0x23c] - lea rdi,[rbp-0x230] - mov r8,QWORD PTR [rbp-0x238] - mov rcx,rdx - mov rdx,rax - call r8 - mov rbx,QWORD PTR [rip+0x45410] # 448fa0 - lea rax,[rbp-0x230] - mov rdi,rax - call 40b730 <_ZNK3fmt2v76detail6bufferIcE4sizeEv> - mov r12,rax - lea rax,[rbp-0x230] - mov rdi,rax - call 40b7ec <_ZN3fmt2v76detail6bufferIcE4dataEv> - mov rcx,rbx - mov edx,0x1 - mov rsi,r12 - mov rdi,rax - call 4034c0 - mov rax,QWORD PTR [rip+0x453d5] # 448fa0 - mov rsi,rax - mov edi,0xa - call 403320 - lea rax,[rbp-0x230] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - add rsp,0x240 - pop rbx - pop r12 - pop rbp - ret - nop -_ZN3fmt2v712format_errorD1Ev: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov edx,0x437d88 - mov rax,QWORD PTR [rbp-0x8] - mov QWORD PTR [rax],rdx - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 4032f0 <_ZNSt13runtime_errorD2Ev@plt> - nop - leave - ret - nop -_ZN3fmt2v712format_errorD0Ev: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 403bf4 <_ZN3fmt2v712format_errorD1Ev> - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 403280 <_ZdlPv@plt> - leave - ret -_ZN3fmt2v712system_errorD1Ev: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov edx,0x437d60 - mov rax,QWORD PTR [rbp-0x8] - mov QWORD PTR [rax],rdx - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 4032f0 <_ZNSt13runtime_errorD2Ev@plt> - nop - leave - ret - nop -_ZN3fmt2v712system_errorD0Ev: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 403c42 <_ZN3fmt2v712system_errorD1Ev> - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 403280 <_ZdlPv@plt> - leave - ret -_ZN3fmt2v712system_error4initEiNS0_17basic_string_viewIcEENS0_11format_argsE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x2e8 - mov QWORD PTR [rbp-0x2c8],rdi - mov DWORD PTR [rbp-0x2cc],esi - mov QWORD PTR [rbp-0x2e0],rdx - mov QWORD PTR [rbp-0x2d8],rcx - mov QWORD PTR [rbp-0x2f0],r8 - mov QWORD PTR [rbp-0x2e8],r9 - mov rax,QWORD PTR [rbp-0x2c8] - mov edx,DWORD PTR [rbp-0x2cc] - mov DWORD PTR [rax+0x10],edx - lea rax,[rbp-0x91] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x91] - lea rax,[rbp-0x2b0] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x91] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - mov rax,QWORD PTR [rbp-0x2f0] - mov rdx,QWORD PTR [rbp-0x2e8] - mov QWORD PTR [rbp-0x2c0],rax - mov QWORD PTR [rbp-0x2b8],rdx - lea rbx,[rbp-0x80] - mov rax,QWORD PTR [rbp-0x2c0] - mov rdx,QWORD PTR [rbp-0x2b8] - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - nop - mov rdx,QWORD PTR [rbp-0x2e0] - mov rax,QWORD PTR [rbp-0x2d8] - mov rdi,rdx - mov rsi,rax - call 40c7d9 <_ZN3fmt2v714to_string_viewIcEENS0_17basic_string_viewIT_EES4_> - mov rcx,QWORD PTR [rbp-0x30] - mov r8,QWORD PTR [rbp-0x28] - mov rsi,rax - mov rdi,rdx - mov rax,rdx - mov rdx,rax - mov rdi,rbx - call 40438c <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE> - nop - lea rdx,[rbp-0x80] - lea rax,[rbp-0x90] - mov rsi,rdx - mov rdi,rax - call 40b8ec <_ZN3fmt2v717basic_string_viewIcEC1ISt11char_traitsIcESaIcEEERKNSt7__cxx1112basic_stringIcT_T0_EE> - mov rax,QWORD PTR [rbp-0x90] - mov rdx,QWORD PTR [rbp-0x88] - mov esi,DWORD PTR [rbp-0x2cc] - lea rdi,[rbp-0x2b0] - mov rcx,rdx - mov rdx,rax - call 404170 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE> - lea rax,[rbp-0x80] - mov rdi,rax - call 4031d0 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@plt> - mov rax,QWORD PTR [rbp-0x2c8] - mov QWORD PTR [rbp-0x18],rax - lea rax,[rbp-0x50] - lea rdx,[rbp-0x2b0] - mov rsi,rdx - mov rdi,rax - call 40b926 <_ZN3fmt2v79to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE> - lea rdx,[rbp-0x50] - lea rax,[rbp-0x60] - mov rsi,rdx - mov rdi,rax - call 4033f0 <_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@plt> - lea rdx,[rbp-0x60] - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 403160 <_ZNSt13runtime_erroraSEOS_@plt> - lea rax,[rbp-0x60] - mov rdi,rax - call 4032b0 <_ZNSt13runtime_errorD1Ev@plt> - lea rax,[rbp-0x50] - mov rdi,rax - call 4031d0 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@plt> - lea rax,[rbp-0x2b0] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - jmp 403e5f <_ZN3fmt2v712system_error4initEiNS0_17basic_string_viewIcEENS0_11format_argsE+0x1cf> - mov rbx,rax - lea rax,[rbp-0x50] - mov rdi,rax - call 4031d0 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@plt> - jmp 403e45 <_ZN3fmt2v712system_error4initEiNS0_17basic_string_viewIcEENS0_11format_argsE+0x1b5> - mov rbx,rax - lea rax,[rbp-0x2b0] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x28 - mov QWORD PTR [rbp-0x28],rdi - mov DWORD PTR [rbp-0x14],0x7 - jmp 403e7f <_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_+0x1a> - sub DWORD PTR [rbp-0x14],0x1 - cmp DWORD PTR [rbp-0x14],0x0 - jle 403e93 <_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_+0x2e> - mov eax,DWORD PTR [rbp-0x14] - cdqe - movzx eax,BYTE PTR [rbp+rax*1-0x28] - test al,al - je 403e7b <_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_+0x16> - mov DWORD PTR [rbp-0x18],0x2 - cmp DWORD PTR [rbp-0x14],0x0 - js 403ec1 <_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_+0x5c> - mov eax,DWORD PTR [rbp-0x14] - imul eax,DWORD PTR [rbp-0x18] - mov ebx,eax - mov eax,DWORD PTR [rbp-0x14] - cdqe - movzx eax,BYTE PTR [rbp+rax*1-0x28] - movzx eax,al - mov edi,eax - call 40b9de <_ZN3fmt2v76detail12count_digitsILj4EjEEiT0_> - add eax,ebx - jmp 403ec6 <_ZN3fmt2v76detail12count_digitsILj4ENS1_16fallback_uintptrEEEiT0_+0x61> - mov eax,0x1 - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_: - push rbp - mov rbp,rsp - push r12 - push rbx - sub rsp,0x30 - mov QWORD PTR [rbp-0x38],rdi - mov QWORD PTR [rbp-0x40],rsi - mov DWORD PTR [rbp-0x20],0x0 - mov DWORD PTR [rbp-0x24],0x0 - lea rdx,[rbp-0x24] - lea rcx,[rbp-0x20] - mov rax,QWORD PTR [rbp-0x40] - mov rsi,rcx - mov rdi,rax - call 40755e <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi> - mov QWORD PTR [rbp-0x40],rax - mov eax,DWORD PTR [rbp-0x24] - test eax,eax - je 403f3b <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_+0x6f> - mov edi,0x10 - call 403150 <__cxa_allocate_exception@plt> - mov rbx,rax - mov esi,0x436296 - mov rdi,rbx - call 4030d0 <_ZNSt13runtime_errorC1EPKc@plt> - mov edx,0x4032b0 - mov esi,0x447da0 - mov rdi,rbx - call 403450 <__cxa_throw@plt> - mov eax,DWORD PTR [rbp-0x20] - cmp eax,0xffff - ja 403f66 <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_+0x9a> - mov rax,QWORD PTR [rbp-0x38] - mov rax,QWORD PTR [rax] - mov rdx,rax - mov eax,DWORD PTR [rbp-0x20] - mov DWORD PTR [rbp-0x1c],eax - lea rax,[rbp-0x1c] - mov rsi,rax - mov rdi,rdx - call 40bfd6 <_ZN3fmt2v76detail6bufferIwE9push_backERKw> - jmp 403fc1 <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_+0xf5> - mov eax,DWORD PTR [rbp-0x20] - sub eax,0x10000 - mov DWORD PTR [rbp-0x20],eax - mov rax,QWORD PTR [rbp-0x38] - mov rax,QWORD PTR [rax] - mov rdx,rax - mov eax,DWORD PTR [rbp-0x20] - shr eax,0xa - add eax,0xd800 - mov DWORD PTR [rbp-0x18],eax - lea rax,[rbp-0x18] - mov rsi,rax - mov rdi,rdx - call 40bfd6 <_ZN3fmt2v76detail6bufferIwE9push_backERKw> - mov rax,QWORD PTR [rbp-0x38] - mov rax,QWORD PTR [rax] - mov rdx,rax - mov eax,DWORD PTR [rbp-0x20] - and eax,0x3ff - add eax,0xdc00 - mov DWORD PTR [rbp-0x14],eax - lea rax,[rbp-0x14] - mov rsi,rax - mov rdi,rdx - call 40bfd6 <_ZN3fmt2v76detail6bufferIwE9push_backERKw> - mov rax,QWORD PTR [rbp-0x40] - jmp 403fdd <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_+0x111> - mov r12,rax - mov rdi,rbx - call 403230 <__cxa_free_exception@plt> - mov rax,r12 - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - add rsp,0x30 - pop rbx - pop r12 - pop rbp - ret -_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x68 - mov QWORD PTR [rbp-0x58],rdi - mov rcx,rdx - mov rax,rsi - mov rdx,rdi - mov rdx,rcx - mov QWORD PTR [rbp-0x70],rax - mov QWORD PTR [rbp-0x68],rdx - mov rbx,QWORD PTR [rbp-0x58] - lea rax,[rbp-0x35] - mov rdi,rax - call 403140 <_ZNSaIwEC1Ev@plt> - lea rax,[rbp-0x35] - mov rsi,rax - mov rdi,rbx - call 40bf2c <_ZN3fmt2v719basic_memory_bufferIwLm500ESaIwEEC1ERKS2_> - lea rax,[rbp-0x35] - mov rdi,rax - call 403480 <_ZNSaIwED1Ev@plt> - mov rax,QWORD PTR [rbp-0x58] - mov QWORD PTR [rbp-0x40],rax - lea rax,[rbp-0x70] - mov rdi,rax - call 405042 <_ZNK3fmt2v717basic_string_viewIcE4dataEv> - mov QWORD PTR [rbp-0x18],rax - mov QWORD PTR [rbp-0x20],0x4 - lea rax,[rbp-0x70] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - cmp rax,0x3 - seta al - test al,al - je 4040a7 <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0xc1> - lea rax,[rbp-0x70] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - lea rdx,[rax-0x3] - mov rax,QWORD PTR [rbp-0x18] - add rax,rdx - mov QWORD PTR [rbp-0x28],rax - jmp 40409d <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0xb7> - mov rdx,QWORD PTR [rbp-0x18] - lea rax,[rbp-0x40] - mov rsi,rdx - mov rdi,rax - call 403ecc <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_> - mov QWORD PTR [rbp-0x18],rax - mov rax,QWORD PTR [rbp-0x18] - cmp rax,QWORD PTR [rbp-0x28] - jb 404086 <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0xa0> - lea rax,[rbp-0x70] - mov rdi,rax - call 405042 <_ZNK3fmt2v717basic_string_viewIcE4dataEv> - mov rbx,rax - lea rax,[rbp-0x70] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - add rax,rbx - sub rax,QWORD PTR [rbp-0x18] - mov QWORD PTR [rbp-0x30],rax - cmp QWORD PTR [rbp-0x30],0x0 - je 404134 <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0x14e> - mov DWORD PTR [rbp-0x47],0x0 - mov DWORD PTR [rbp-0x44],0x0 - mov rax,QWORD PTR [rbp-0x30] - mov rdi,rax - call 40b524 <_ZN3fmt2v76detail11to_unsignedIlEENSt13make_unsignedIT_E4typeES4_> - mov rdx,rax - mov rcx,QWORD PTR [rbp-0x18] - lea rax,[rbp-0x47] - mov rsi,rcx - mov rdi,rax - call 403260 - lea rax,[rbp-0x47] - mov QWORD PTR [rbp-0x18],rax - mov rdx,QWORD PTR [rbp-0x18] - lea rax,[rbp-0x40] - mov rsi,rdx - mov rdi,rax - call 403ecc <_ZZN3fmt2v76detail13utf8_to_utf16C4ENS0_17basic_string_viewIcEEENKUlPKcE_clES6_> - mov QWORD PTR [rbp-0x18],rax - lea rax,[rbp-0x47] - mov rdx,QWORD PTR [rbp-0x18] - sub rdx,rax - cmp QWORD PTR [rbp-0x30],rdx - jg 40410c <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0x126> - mov rax,QWORD PTR [rbp-0x58] - mov DWORD PTR [rbp-0x34],0x0 - lea rdx,[rbp-0x34] - mov rsi,rdx - mov rdi,rax - call 40bfd6 <_ZN3fmt2v76detail6bufferIwE9push_backERKw> - jmp 40416a <_ZN3fmt2v76detail13utf8_to_utf16C1ENS0_17basic_string_viewIcEE+0x184> - mov rbx,rax - mov rax,QWORD PTR [rbp-0x58] - mov rdi,rax - call 40bf9c <_ZN3fmt2v719basic_memory_bufferIwLm500ESaIwEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x268 - mov QWORD PTR [rbp-0x258],rdi - mov DWORD PTR [rbp-0x25c],esi - mov QWORD PTR [rbp-0x270],rdx - mov QWORD PTR [rbp-0x268],rcx - lea rax,[rbp-0x21] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x21] - lea rax,[rbp-0x250] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x21] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - lea rax,[rbp-0x250] - mov esi,0x1f4 - mov rdi,rax - call 40c030 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEE6resizeEm> - lea rax,[rbp-0x250] - mov esi,0x0 - mov rdi,rax - call 40c056 <_ZN3fmt2v76detail6bufferIcEixIiEERcT_> - mov QWORD PTR [rbp-0x30],rax - lea rax,[rbp-0x250] - mov rdi,rax - call 40b730 <_ZNK3fmt2v76detail6bufferIcE4sizeEv> - mov rdx,rax - lea rcx,[rbp-0x30] - mov eax,DWORD PTR [rbp-0x25c] - mov rsi,rcx - mov edi,eax - call 405517 <_ZN3fmt2v76detail13safe_strerrorEiRPcm> - mov DWORD PTR [rbp-0x14],eax - cmp DWORD PTR [rbp-0x14],0x0 - jne 404259 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0xe9> - mov rdx,QWORD PTR [rbp-0x258] - lea rax,[rbp-0x20] - mov rsi,rdx - mov rdi,rax - call 40b5ec <_ZN3fmt2v76detail15buffer_appenderIcEC1ERNS1_6bufferIcEE> - lea rcx,[rbp-0x30] - lea rdx,[rbp-0x270] - mov rax,QWORD PTR [rbp-0x20] - mov esi,0x4362a3 - mov rdi,rax - call 40c073 <_ZN3fmt2v79format_toINS0_6detail15buffer_appenderIcEEA7_cJRNS0_17basic_string_viewIcEERPcELb1EEENSt9enable_ifIXT2_ET_E4typeESC_RKT0_DpOT1_> - mov ebx,0x0 - jmp 404290 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x120> - cmp DWORD PTR [rbp-0x14],0x22 - je 404266 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0xf6> - mov ebx,0x1 - jmp 404290 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x120> - lea rax,[rbp-0x250] - mov rdi,rax - call 40b730 <_ZNK3fmt2v76detail6bufferIcE4sizeEv> - lea rdx,[rax+rax*1] - lea rax,[rbp-0x250] - mov rsi,rdx - mov rdi,rax - call 40c030 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEE6resizeEm> - jmp 4041d9 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x69> - lea rax,[rbp-0x250] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - cmp ebx,0x1 - jne 4042f0 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x180> - mov rax,QWORD PTR [rbp-0x270] - mov rdx,QWORD PTR [rbp-0x268] - mov esi,DWORD PTR [rbp-0x25c] - mov rdi,QWORD PTR [rbp-0x258] - mov rcx,rdx - mov rdx,rax - call 403a0b <_ZN3fmt2v76detail17format_error_codeERNS1_6bufferIcEEiNS0_17basic_string_viewIcEE> - jmp 4042f1 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x181> - mov rbx,rax - lea rax,[rbp-0x250] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - mov rax,rbx - mov rdi,rax - call 4030e0 <__cxa_begin_catch@plt> - call 403410 <__cxa_end_catch@plt> - jmp 4042a4 <_ZN3fmt2v719format_system_errorERNS0_6detail6bufferIcEEiNS0_17basic_string_viewIcEE+0x134> - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail13error_handler8on_errorEPKc: - push rbp - mov rbp,rsp - push r12 - push rbx - sub rsp,0x10 - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov edi,0x10 - call 403150 <__cxa_allocate_exception@plt> - mov rbx,rax - mov rax,QWORD PTR [rbp-0x20] - mov rsi,rax - mov rdi,rbx - call 4050e8 <_ZN3fmt2v712format_errorC1EPKc> - mov edx,0x403bf4 - mov esi,0x437fa0 - mov rdi,rbx - call 403450 <__cxa_throw@plt> - mov r12,rax - mov rdi,rbx - call 403230 <__cxa_free_exception@plt> - mov rax,r12 - mov rdi,rax - call 403460 <_Unwind_Resume@plt> -_ZN3fmt2v719report_system_errorEiNS0_17basic_string_viewIcEE: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov DWORD PTR [rbp-0x4],edi - mov rcx,rdx - mov rax,rsi - mov rdx,rdi - mov rdx,rcx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov esi,DWORD PTR [rbp-0x4] - mov rcx,rdx - mov rdx,rax - mov edi,0x404170 - call 403b07 <_ZN3fmt2v76detail12report_errorEPFvRNS1_6bufferIcEEiNS0_17basic_string_viewIcEEEiS6_> - nop - leave - ret -_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x3d8 - mov QWORD PTR [rbp-0x3b8],rdi - mov rax,rsi - mov rsi,rdx - mov rdx,rsi - mov QWORD PTR [rbp-0x3d0],rax - mov QWORD PTR [rbp-0x3c8],rdx - mov rax,rcx - mov rcx,r8 - mov rdx,rcx - mov QWORD PTR [rbp-0x3e0],rax - mov QWORD PTR [rbp-0x3d8],rdx - lea rax,[rbp-0x3d0] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - cmp rax,0x2 - jne 404409 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x7d> - lea rax,[rbp-0x3d0] - mov rdi,rax - call 405042 <_ZNK3fmt2v717basic_string_viewIcE4dataEv> - mov esi,0x4362aa - mov rdi,rax - call 40537d <_ZN3fmt2v76detail6equal2EPKcS3_> - test al,al - je 404409 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x7d> - mov eax,0x1 - jmp 40440e <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x82> - mov eax,0x0 - test al,al - je 4047e1 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x455> - lea rax,[rbp-0x3b0] - lea rcx,[rbp-0x3e0] - mov edx,0x0 - mov rsi,rcx - mov rdi,rax - call 40c132 <_ZNK3fmt2v717basic_format_argsINS0_20basic_format_contextINS0_6detail15buffer_appenderIcEEcEEE3getEi> - lea rax,[rbp-0x3b0] - mov rdi,rax - call 40c210 <_ZNK3fmt2v716basic_format_argINS0_20basic_format_contextINS0_6detail15buffer_appenderIcEEcEEEcvbEv> - xor eax,0x1 - test al,al - je 40445e <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0xd2> - lea rax,[rbp-0x11b] - mov esi,0x4362ad - mov rdi,rax - call 4042f8 <_ZN3fmt2v76detail13error_handler8on_errorEPKc> - mov rbx,QWORD PTR [rbp-0x3b8] - mov eax,DWORD PTR [rbp-0x3a0] - cmp eax,0xf - ja 4047bb <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x42f> - mov eax,eax - mov rax,QWORD PTR [rax*8+0x4362c0] - jmp rax - mov eax,DWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0x18],rdx - mov DWORD PTR [rbp-0x1c],eax - mov eax,DWORD PTR [rbp-0x1c] - mov esi,eax - mov rdi,rbx - call 40ede8 <_ZN3fmt2v79to_stringIiLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov eax,DWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0x28],rdx - mov DWORD PTR [rbp-0x2c],eax - mov eax,DWORD PTR [rbp-0x2c] - mov esi,eax - mov rdi,rbx - call 40ee73 <_ZN3fmt2v79to_stringIjLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0x38],rdx - mov QWORD PTR [rbp-0x40],rax - mov rax,QWORD PTR [rbp-0x40] - mov rsi,rax - mov rdi,rbx - call 40eefe <_ZN3fmt2v79to_stringIxLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0x48],rdx - mov QWORD PTR [rbp-0x50],rax - mov rax,QWORD PTR [rbp-0x50] - mov rsi,rax - mov rdi,rbx - call 40ef8c <_ZN3fmt2v79to_stringIyLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - mov rdx,QWORD PTR [rbp-0x3a8] - lea rcx,[rbp-0x11a] - mov QWORD PTR [rbp-0x58],rcx - mov QWORD PTR [rbp-0x70],rax - mov QWORD PTR [rbp-0x68],rdx - mov rdx,QWORD PTR [rbp-0x70] - mov rax,QWORD PTR [rbp-0x68] - mov rsi,rdx - mov rdx,rax - mov rdi,rbx - call 40f01a <_ZN3fmt2v79to_stringInLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - mov rdx,QWORD PTR [rbp-0x3a8] - lea rcx,[rbp-0x11a] - mov QWORD PTR [rbp-0x78],rcx - mov QWORD PTR [rbp-0x90],rax - mov QWORD PTR [rbp-0x88],rdx - mov rdx,QWORD PTR [rbp-0x90] - mov rax,QWORD PTR [rbp-0x88] - mov rsi,rdx - mov rdx,rax - mov rdi,rbx - call 40f0bc <_ZN3fmt2v79to_stringIoLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - movzx eax,BYTE PTR [rbp-0x3b0] - movzx eax,al - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0x98],rdx - mov BYTE PTR [rbp-0x99],al - and BYTE PTR [rbp-0x99],0x1 - movzx eax,BYTE PTR [rbp-0x99] - mov esi,eax - mov rdi,rbx - call 40f15e <_ZN3fmt2v79to_stringIbLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - movzx eax,BYTE PTR [rbp-0x3b0] - movsx eax,al - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0xa8],rdx - mov BYTE PTR [rbp-0xa9],al - movsx eax,BYTE PTR [rbp-0xa9] - mov esi,eax - mov rdi,rbx - call 40f1ec <_ZN3fmt2v79to_stringIcLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - movss xmm0,DWORD PTR [rbp-0x3b0] - lea rax,[rbp-0x11a] - mov QWORD PTR [rbp-0xb8],rax - movss DWORD PTR [rbp-0x38c],xmm0 - lea rax,[rbp-0x38c] - mov rsi,rax - mov rdi,rbx - call 40f27a <_ZN3fmt2v79to_stringIfLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - movsd xmm0,QWORD PTR [rbp-0x3b0] - lea rax,[rbp-0x11a] - mov QWORD PTR [rbp-0xc0],rax - movsd QWORD PTR [rbp-0x388],xmm0 - lea rax,[rbp-0x388] - mov rsi,rax - mov rdi,rbx - call 40f2db <_ZN3fmt2v79to_stringIdLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - fld TBYTE PTR [rbp-0x3b0] - lea rax,[rbp-0x11a] - mov QWORD PTR [rbp-0xc8],rax - fstp TBYTE PTR [rbp-0x380] - lea rax,[rbp-0x380] - mov rsi,rax - mov rdi,rbx - call 40f33e <_ZN3fmt2v79to_stringIeLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0xd0],rdx - mov QWORD PTR [rbp-0x368],rax - lea rax,[rbp-0x368] - mov rsi,rax - mov rdi,rbx - call 40f3a8 <_ZN3fmt2v79to_stringIPKcLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rdx,QWORD PTR [rbp-0x3a8] - mov rcx,QWORD PTR [rbp-0x3b0] - lea rax,[rbp-0x100] - mov rsi,rcx - mov rdi,rax - call 40b4e8 <_ZN3fmt2v717basic_string_viewIcEC1EPKcm> - lea rax,[rbp-0x11a] - mov QWORD PTR [rbp-0xd8],rax - mov rax,QWORD PTR [rbp-0x100] - mov rdx,QWORD PTR [rbp-0xf8] - mov QWORD PTR [rbp-0x360],rax - mov QWORD PTR [rbp-0x358],rdx - lea rax,[rbp-0x360] - mov rsi,rax - mov rdi,rbx - call 40f409 <_ZN3fmt2v79to_stringINS0_17basic_string_viewIcEELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rax,QWORD PTR [rbp-0x3b0] - lea rdx,[rbp-0x11a] - mov QWORD PTR [rbp-0xe0],rdx - mov QWORD PTR [rbp-0x350],rax - lea rax,[rbp-0x350] - mov rsi,rax - mov rdi,rbx - call 40f474 <_ZN3fmt2v79to_stringIPKvLi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - jmp 4047dc <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x450> - mov rcx,QWORD PTR [rbp-0x3b0] - mov rdx,QWORD PTR [rbp-0x3a8] - lea rax,[rbp-0x110] - mov rsi,rcx - mov rdi,rax - call 40cd20 <_ZN3fmt2v716basic_format_argINS0_20basic_format_contextINS0_6detail15buffer_appenderIcEEcEEE6handleC1ENS3_12custom_valueIS6_EE> - mov rax,QWORD PTR [rbp-0x110] - mov rdx,QWORD PTR [rbp-0x108] - lea rsi,[rbp-0x11a] - mov rcx,rdx - mov rdx,rax - mov rdi,rbx - call 40778c <_ZNK3fmt2v76detail11stringifierclB5cxx11ENS0_16basic_format_argINS0_20basic_format_contextINS1_15buffer_appenderIcEEcEEE6handleE> - jmp 4048a7 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x51b> - nop - lea rax,[rbp-0x11a] - mov QWORD PTR [rbp-0xe8],rax - lea rax,[rbp-0x341] - mov rsi,rax - mov rdi,rbx - call 40f4d5 <_ZN3fmt2v79to_stringINS0_9monostateELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_> - nop - jmp 4048a7 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x51b> - lea rax,[rbp-0x119] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x119] - lea rax,[rbp-0x340] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x119] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - lea rax,[rbp-0x118] - mov rdi,rax - call 405012 <_ZN3fmt2v76detail10locale_refC1Ev> - mov r8,QWORD PTR [rbp-0x118] - mov rcx,QWORD PTR [rbp-0x3e0] - mov rdi,QWORD PTR [rbp-0x3d8] - mov rsi,QWORD PTR [rbp-0x3d0] - mov rdx,QWORD PTR [rbp-0x3c8] - lea rax,[rbp-0x340] - mov r9,r8 - mov r8,rdi - mov rdi,rax - call 4091c8 <_ZN3fmt2v76detail10vformat_toIcEEvRNS1_6bufferIT_EENS0_17basic_string_viewIS4_EENS0_17basic_format_argsINS0_20basic_format_contextINS1_15buffer_appenderINS0_13type_identityIS4_E4typeEEESE_EEEENS1_10locale_refE> - mov rax,QWORD PTR [rbp-0x3b8] - lea rdx,[rbp-0x340] - mov rsi,rdx - mov rdi,rax - call 40b926 <_ZN3fmt2v79to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE> - nop - lea rax,[rbp-0x340] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - jmp 4048a7 <_ZN3fmt2v76detail7vformatB5cxx11ENS0_17basic_string_viewIcEENS0_11format_argsE+0x51b> - mov rbx,rax - lea rax,[rbp-0x340] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - mov rax,QWORD PTR [rbp-0x3b8] - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76vprintEP8_IO_FILENS0_17basic_string_viewIcEENS0_11format_argsE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x268 - mov QWORD PTR [rbp-0x248],rdi - mov rax,rsi - mov rsi,rdx - mov rdx,rsi - mov QWORD PTR [rbp-0x260],rax - mov QWORD PTR [rbp-0x258],rdx - mov rax,rcx - mov rcx,r8 - mov rdx,rcx - mov QWORD PTR [rbp-0x270],rax - mov QWORD PTR [rbp-0x268],rdx - lea rax,[rbp-0x19] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x19] - lea rax,[rbp-0x240] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x19] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - lea rax,[rbp-0x18] - mov rdi,rax - call 405012 <_ZN3fmt2v76detail10locale_refC1Ev> - mov r8,QWORD PTR [rbp-0x18] - mov rcx,QWORD PTR [rbp-0x270] - mov rdi,QWORD PTR [rbp-0x268] - mov rsi,QWORD PTR [rbp-0x260] - mov rdx,QWORD PTR [rbp-0x258] - lea rax,[rbp-0x240] - mov r9,r8 - mov r8,rdi - mov rdi,rax - call 4091c8 <_ZN3fmt2v76detail10vformat_toIcEEvRNS1_6bufferIT_EENS0_17basic_string_viewIS4_EENS0_17basic_format_argsINS0_20basic_format_contextINS1_15buffer_appenderINS0_13type_identityIS4_E4typeEEESE_EEEENS1_10locale_refE> - lea rax,[rbp-0x240] - mov rdi,rax - call 40b730 <_ZNK3fmt2v76detail6bufferIcE4sizeEv> - mov rbx,rax - lea rax,[rbp-0x240] - mov rdi,rax - call 40b7ec <_ZN3fmt2v76detail6bufferIcE4dataEv> - mov rdi,rax - mov rax,QWORD PTR [rbp-0x248] - mov rcx,rax - mov rdx,rbx - mov esi,0x1 - call 405576 <_ZN3fmt2v76detail12fwrite_fullyEPKvmmP8_IO_FILE> - lea rax,[rbp-0x240] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - jmp 4049cd <_ZN3fmt2v76vprintEP8_IO_FILENS0_17basic_string_viewIcEENS0_11format_argsE+0x119> - mov rbx,rax - lea rax,[rbp-0x240] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76vprintENS0_17basic_string_viewIcEENS0_11format_argsE: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov rax,rsi - mov r9,rdi - mov rsi,r9 - mov rdi,r10 - mov rdi,rax - mov QWORD PTR [rbp-0x10],rsi - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x20],rdx - mov QWORD PTR [rbp-0x18],rcx - mov rax,QWORD PTR [rip+0x4457f] # 448f80 - mov rcx,QWORD PTR [rbp-0x20] - mov rdi,QWORD PTR [rbp-0x18] - mov rsi,QWORD PTR [rbp-0x10] - mov rdx,QWORD PTR [rbp-0x8] - mov r8,rdi - mov rdi,rax - call 4048b4 <_ZN3fmt2v76vprintEP8_IO_FILENS0_17basic_string_viewIcEENS0_11format_argsE> - nop - leave - ret -_Z41__static_initialization_and_destruction_0ii: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x18 - mov DWORD PTR [rbp-0x14],edi - mov DWORD PTR [rbp-0x18],esi - cmp DWORD PTR [rbp-0x14],0x1 - jne 404dbd <_Z41__static_initialization_and_destruction_0ii+0x39e> - cmp DWORD PTR [rbp-0x18],0xffff - jne 404dbd <_Z41__static_initialization_and_destruction_0ii+0x39e> - mov eax,0x449130 - movzx eax,BYTE PTR [rax] - test al,al - jne 404dbd <_Z41__static_initialization_and_destruction_0ii+0x39e> - mov eax,0x449130 - mov BYTE PTR [rax],0x1 - mov ebx,0x448fc0 - movabs rax,0x25e8e89c13bb0f7b - mov rdx,rax - movabs rax,0xff77b1fcbebcdc4f - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xfb0a3d212dc81290 - mov rdx,rax - movabs rax,0xce5d73ff402d98e3 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xf42faa48c0ea481f - mov rdx,rax - movabs rax,0xa6b34ad8c9dfc06f - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xae5dff9c02033198 - mov rdx,rax - movabs rax,0x86a8d39ef77164bc - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x3badd624dd9b0958 - mov rdx,rax - movabs rax,0xd98ddaee19068c76 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xe5d1929ef90898fb - mov rdx,rax - movabs rax,0xafbd2350644eeacf - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xca8d3ffa1ef463c2 - mov rdx,rax - movabs rax,0x8df5efabc5979c8f - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xcc420a6a101d0516 - mov rdx,rax - movabs rax,0xe55990879ddcaabd - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xf808e40e8d5b3e6a - mov rdx,rax - movabs rax,0xb94470938fa89bce - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xdde7001379a44aa9 - mov rdx,rax - movabs rax,0x95a8637627989aad - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x5324c68b12dd6339 - mov rdx,rax - movabs rax,0xf1c90080baf72cb1 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - mov edx,0x0 - movabs rax,0xc350000000000000 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xf020000000000000 - mov rdx,rax - movabs rax,0x9dc5ada82b70b59d - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x2f236d04753d5b4 - mov rdx,rax - movabs rax,0xfee50b7025c36a08 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xed4c0226b55e6f86 - mov rdx,rax - movabs rax,0xcde6fd5e09abcf26 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x84db8346b786151c - mov rdx,rax - movabs rax,0xa6539930bf6bff45 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xb8a2392ba45a9b2 - mov rdx,rax - movabs rax,0x865b86925b9bc5c2 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x1b2ba1518094da04 - mov rdx,rax - movabs rax,0xd910f7ff28069da4 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x387ac8d1970027b2 - mov rdx,rax - movabs rax,0xaf58416654a6babb - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x5ceaecfed289e5d2 - mov rdx,rax - movabs rax,0x8da471a9de737e24 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0xfabaf3feaa5334a - mov rdx,rax - movabs rax,0xe4d5e82392a40515 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - add rbx,0x10 - movabs rax,0x3d6a751f3b936243 - mov rdx,rax - movabs rax,0xb8da1662e7b00a17 - mov rsi,rax - mov rdi,rbx - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - lea rax,[rbx+0x10] - movabs rdx,0xf37801e0c43ebc8 - movabs rcx,0x95527a5202df0ccb - mov rsi,rcx - mov rdi,rax - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_GLOBAL__sub_I__ZN3fmt2v76detail11assert_failEPKciS3_: - push rbp - mov rbp,rsp - mov esi,0xffff - mov edi,0x1 - call 404a1f <_Z41__static_initialization_and_destruction_0ii> - pop rbp - ret -_ZSt8isfinitef: - push rbp - mov rbp,rsp - movss DWORD PTR [rbp-0x4],xmm0 - movss xmm0,DWORD PTR [rbp-0x4] - movss xmm1,DWORD PTR [rip+0x31a51] # 436840 - andps xmm1,xmm0 - movss xmm0,DWORD PTR [rip+0x31a56] # 436850 - ucomiss xmm0,xmm1 - setb al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt8isfinited: - push rbp - mov rbp,rsp - movsd QWORD PTR [rbp-0x8],xmm0 - movsd xmm0,QWORD PTR [rbp-0x8] - movq xmm1,QWORD PTR [rip+0x31a3d] # 436860 - andpd xmm1,xmm0 - movsd xmm0,QWORD PTR [rip+0x31a41] # 436870 - ucomisd xmm0,xmm1 - setb al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt8isfinitee: - push rbp - mov rbp,rsp - fld TBYTE PTR [rbp+0x10] - fabs - fld TBYTE PTR [rip+0x31a2e] # 436880 - fucomip st,st(1) - fstp st(0) - setb al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt5isinff: - push rbp - mov rbp,rsp - movss DWORD PTR [rbp-0x4],xmm0 - movss xmm0,DWORD PTR [rbp-0x4] - movss xmm1,DWORD PTR [rip+0x319c4] # 436840 - andps xmm0,xmm1 - ucomiss xmm0,DWORD PTR [rip+0x319ca] # 436850 - setbe al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt5isinfd: - push rbp - mov rbp,rsp - movsd QWORD PTR [rbp-0x8],xmm0 - movsd xmm0,QWORD PTR [rbp-0x8] - movq xmm1,QWORD PTR [rip+0x319b4] # 436860 - andpd xmm0,xmm1 - ucomisd xmm0,QWORD PTR [rip+0x319b8] # 436870 - setbe al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt5isinfe: - push rbp - mov rbp,rsp - fld TBYTE PTR [rbp+0x10] - fabs - fld TBYTE PTR [rip+0x319a9] # 436880 - fxch st(1) - fucomip st,st(1) - fstp st(0) - setbe al - xor eax,0x1 - movzx eax,al - test eax,eax - setne al - pop rbp - ret -_ZSt7signbitf: - push rbp - mov rbp,rsp - movss DWORD PTR [rbp-0x4],xmm0 - mov eax,DWORD PTR [rbp-0x4] - and eax,0x80000000 - test eax,eax - setne al - pop rbp - ret -_ZSt7signbitd: - push rbp - mov rbp,rsp - movsd QWORD PTR [rbp-0x8],xmm0 - movsd xmm0,QWORD PTR [rbp-0x8] - movmskpd eax,xmm0 - and eax,0x1 - test eax,eax - setne al - pop rbp - ret -_ZSt7signbite: - push rbp - mov rbp,rsp - fld TBYTE PTR [rbp+0x10] - fxam - fnstsw ax - fstp st(0) - and eax,0x200 - test eax,eax - setne al - pop rbp - ret -_ZNSt11char_traitsIcE7compareEPKcS2_m: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov QWORD PTR [rbp-0x18],rdx - cmp QWORD PTR [rbp-0x18],0x0 - jne 404f5c <_ZNSt11char_traitsIcE7compareEPKcS2_m+0x22> - mov eax,0x0 - jmp 404f74 <_ZNSt11char_traitsIcE7compareEPKcS2_m+0x3a> - mov rdx,QWORD PTR [rbp-0x18] - mov rcx,QWORD PTR [rbp-0x10] - mov rax,QWORD PTR [rbp-0x8] - mov rsi,rcx - mov rdi,rax - call 403120 - nop - leave - ret -_ZNSt11char_traitsIcE6lengthEPKc: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 403100 - leave - ret -_ZSt17__size_to_integeri: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x4],edi - mov eax,DWORD PTR [rbp-0x4] - pop rbp - ret -_ZSt17__size_to_integerm: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - pop rbp - ret -_ZNKSt17integral_constantIbLb1EEcvbEv: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov eax,0x1 - pop rbp - ret -_ZNSt14numeric_limitsIcE3maxEv: - push rbp - mov rbp,rsp - mov eax,0x7f - pop rbp - ret -_ZNSt14numeric_limitsIiE3maxEv: - push rbp - mov rbp,rsp - mov eax,0x7fffffff - pop rbp - ret -_ZN3fmt2v76detail16is_integral_typeENS1_4typeE: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x4],edi - cmp DWORD PTR [rbp-0x4],0x0 - jle 404fe9 <_ZN3fmt2v76detail16is_integral_typeENS1_4typeE+0x1a> - cmp DWORD PTR [rbp-0x4],0x8 - jg 404fe9 <_ZN3fmt2v76detail16is_integral_typeENS1_4typeE+0x1a> - mov eax,0x1 - jmp 404fee <_ZN3fmt2v76detail16is_integral_typeENS1_4typeE+0x1f> - mov eax,0x0 - pop rbp - ret -_ZN3fmt2v76detail18is_arithmetic_typeENS1_4typeE: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x4],edi - cmp DWORD PTR [rbp-0x4],0x0 - jle 40500a <_ZN3fmt2v76detail18is_arithmetic_typeENS1_4typeE+0x1a> - cmp DWORD PTR [rbp-0x4],0xb - jg 40500a <_ZN3fmt2v76detail18is_arithmetic_typeENS1_4typeE+0x1a> - mov eax,0x1 - jmp 40500f <_ZN3fmt2v76detail18is_arithmetic_typeENS1_4typeE+0x1f> - mov eax,0x0 - pop rbp - ret - nop -_ZN3fmt2v76detail10locale_refC1Ev: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov QWORD PTR [rax],0x0 - nop - pop rbp - ret -_ZN3fmt2v76detail10to_uintptrEPKv: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - lea rax,[rbp-0x8] - mov rdi,rax - call 40b4cf <_ZN3fmt2v76detail8bit_castImPKvEET_RKT0_> - leave - ret -_ZNK3fmt2v717basic_string_viewIcE4dataEv: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax] - pop rbp - ret - nop -_ZNK3fmt2v717basic_string_viewIcE4sizeEv: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax+0x8] - pop rbp - ret -_ZN3fmt2v76detail17count_code_pointsENS0_17basic_string_viewIcEE: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov rax,rdi - mov rcx,rsi - mov rdx,rcx - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - lea rax,[rbp-0x30] - mov rdi,rax - call 405042 <_ZNK3fmt2v717basic_string_viewIcE4dataEv> - mov QWORD PTR [rbp-0x18],rax - mov QWORD PTR [rbp-0x8],0x0 - mov QWORD PTR [rbp-0x10],0x0 - lea rax,[rbp-0x30] - mov rdi,rax - call 405054 <_ZNK3fmt2v717basic_string_viewIcE4sizeEv> - mov QWORD PTR [rbp-0x20],rax - jmp 4050d8 <_ZN3fmt2v76detail17count_code_pointsENS0_17basic_string_viewIcEE+0x72> - mov rdx,QWORD PTR [rbp-0x18] - mov rax,QWORD PTR [rbp-0x10] - add rax,rdx - movzx eax,BYTE PTR [rax] - movsx eax,al - and eax,0xc0 - cmp eax,0x80 - je 4050d3 <_ZN3fmt2v76detail17count_code_pointsENS0_17basic_string_viewIcEE+0x6d> - add QWORD PTR [rbp-0x8],0x1 - add QWORD PTR [rbp-0x10],0x1 - mov rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x20] - jne 4050b1 <_ZN3fmt2v76detail17count_code_pointsENS0_17basic_string_viewIcEE+0x4b> - mov rax,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v712format_errorC1EPKc: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 4034a0 <_ZNSt13runtime_errorC2EPKc@plt> - mov edx,0x437d88 - mov rax,QWORD PTR [rbp-0x8] - mov QWORD PTR [rax],rdx - nop - leave - ret -_ZN3fmt2v76detail15uint128_wrapperC1Emm: - push rbp - mov rbp,rsp - push rbx - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov QWORD PTR [rbp-0x28],rdx - mov rax,QWORD PTR [rbp-0x28] - mov rcx,rax - mov ebx,0x0 - mov rax,QWORD PTR [rbp-0x20] - mov r10,rax - mov r11d,0x0 - mov rax,r10 - mov rdx,r11 - mov rdx,rax - mov eax,0x0 - mov rsi,rcx - or rsi,rax - mov r8,rsi - or rbx,rdx - mov r9,rbx - mov rax,QWORD PTR [rbp-0x18] - mov QWORD PTR [rax],r8 - mov QWORD PTR [rax+0x8],r9 - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail15uint128_wrapperC1Eo: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rcx,rdx - mov rax,rsi - mov rdx,rdi - mov rdx,rcx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov rcx,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov QWORD PTR [rcx],rax - mov QWORD PTR [rcx+0x8],rdx - nop - pop rbp - ret -_ZNK3fmt2v76detail15uint128_wrapper4highEv: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - mov rax,rdx - xor edx,edx - pop rbp - ret -_ZNK3fmt2v76detail15uint128_wrapper3lowEv: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - pop rbp - ret - nop -_ZN3fmt2v76detail15uint128_wrapperpLEm: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - mov rcx,QWORD PTR [rbp-0x10] - mov r8,rcx - mov r9d,0x0 - add rax,r8 - adc rdx,r9 - mov rcx,QWORD PTR [rbp-0x8] - mov QWORD PTR [rcx],rax - mov QWORD PTR [rcx+0x8],rdx - mov rax,QWORD PTR [rbp-0x8] - pop rbp - ret -_ZN3fmt2v76detail12count_digitsEm: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x18],rdi - mov rax,QWORD PTR [rbp-0x18] - or rax,0x1 - bsr rax,rax - xor rax,0x3f - xor eax,0x3f - mov DWORD PTR [rbp-0x8],eax - mov eax,DWORD PTR [rbp-0x8] - cdqe - movzx eax,WORD PTR [rax+rax*1+0x4368c0] - mov WORD PTR [rbp-0x2],ax - movzx edx,WORD PTR [rbp-0x2] - movzx eax,WORD PTR [rbp-0x2] - cdqe - mov rax,QWORD PTR [rax*8+0x448380] - cmp QWORD PTR [rbp-0x18],rax - setb al - movzx eax,al - sub edx,eax - mov eax,edx - pop rbp - ret -_ZN3fmt2v76detail12count_digitsEo: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x28 - mov rax,rdi - mov rcx,rsi - mov rdx,rcx - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - mov DWORD PTR [rbp-0x14],0x1 - mov edx,0x9 - mov eax,0x0 - cmp rdx,QWORD PTR [rbp-0x30] - sbb rax,QWORD PTR [rbp-0x28] - jb 40529f <_ZN3fmt2v76detail12count_digitsEo+0x3d> - mov eax,DWORD PTR [rbp-0x14] - jmp 40532d <_ZN3fmt2v76detail12count_digitsEo+0xcb> - mov edx,0x63 - mov eax,0x0 - cmp rdx,QWORD PTR [rbp-0x30] - sbb rax,QWORD PTR [rbp-0x28] - jb 4052bb <_ZN3fmt2v76detail12count_digitsEo+0x59> - mov eax,DWORD PTR [rbp-0x14] - add eax,0x1 - jmp 40532d <_ZN3fmt2v76detail12count_digitsEo+0xcb> - mov edx,0x3e7 - mov eax,0x0 - cmp rdx,QWORD PTR [rbp-0x30] - sbb rax,QWORD PTR [rbp-0x28] - jb 4052d7 <_ZN3fmt2v76detail12count_digitsEo+0x75> - mov eax,DWORD PTR [rbp-0x14] - add eax,0x2 - jmp 40532d <_ZN3fmt2v76detail12count_digitsEo+0xcb> - mov edx,0x270f - mov eax,0x0 - cmp rdx,QWORD PTR [rbp-0x30] - sbb rax,QWORD PTR [rbp-0x28] - jb 4052f3 <_ZN3fmt2v76detail12count_digitsEo+0x91> - mov eax,DWORD PTR [rbp-0x14] - add eax,0x3 - jmp 40532d <_ZN3fmt2v76detail12count_digitsEo+0xcb> - mov rax,QWORD PTR [rbp-0x30] - mov rdx,QWORD PTR [rbp-0x28] - mov rcx,rax - mov rbx,rdx - mov rsi,rcx - mov rax,rdx - mov edx,0x2710 - mov ecx,0x0 - mov rdi,rsi - mov rsi,rax - call 4030a0 <__udivti3@plt> - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - add DWORD PTR [rbp-0x14],0x4 - jmp 405283 <_ZN3fmt2v76detail12count_digitsEo+0x21> - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail12count_digitsEj: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x14],edi - mov eax,DWORD PTR [rbp-0x14] - or eax,0x1 - bsr eax,eax - xor eax,0x1f - xor eax,0x1f - mov DWORD PTR [rbp-0x8],eax - mov eax,DWORD PTR [rbp-0x8] - cdqe - movzx eax,WORD PTR [rax+rax*1+0x4368c0] - mov WORD PTR [rbp-0x2],ax - movzx edx,WORD PTR [rbp-0x2] - movzx eax,WORD PTR [rbp-0x2] - cdqe - mov eax,DWORD PTR [rax*4+0x448340] - cmp DWORD PTR [rbp-0x14],eax - setb al - movzx eax,al - sub edx,eax - mov eax,edx - pop rbp - ret -_ZN3fmt2v76detail6equal2EPKcS3_: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov rcx,QWORD PTR [rbp-0x10] - mov rax,QWORD PTR [rbp-0x8] - mov edx,0x2 - mov rsi,rcx - mov rdi,rax - call 403120 - test eax,eax - sete al - leave - ret -_ZN3fmt2v76detail13promote_floatEf: - push rbp - mov rbp,rsp - movss DWORD PTR [rbp-0x4],xmm0 - pxor xmm0,xmm0 - cvtss2sd xmm0,DWORD PTR [rbp-0x4] - movq rax,xmm0 - movq xmm0,rax - pop rbp - ret -_ZN3fmt2v76detail20get_significand_sizeERKNS1_14big_decimal_fpE: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov eax,DWORD PTR [rax+0x8] - pop rbp - ret -_ZN3fmt2v76detail9max_valueIiEET_v: - push rbp - mov rbp,rsp - call 404fc4 <_ZNSt14numeric_limitsIiE3maxEv> - pop rbp - ret -_ZN3fmt2v76detail4findILb0EcPKcEEbT1_S5_T0_RS5_: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov eax,edx - mov QWORD PTR [rbp-0x20],rcx - mov BYTE PTR [rbp-0x14],al - mov rax,QWORD PTR [rbp-0x10] - sub rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 40b524 <_ZN3fmt2v76detail11to_unsignedIlEENSt13make_unsignedIT_E4typeES4_> - mov rdx,rax - movsx ecx,BYTE PTR [rbp-0x14] - mov rax,QWORD PTR [rbp-0x8] - mov esi,ecx - mov rdi,rax - call 403300 - mov rdx,QWORD PTR [rbp-0x20] - mov QWORD PTR [rdx],rax - mov rax,QWORD PTR [rbp-0x20] - mov rax,QWORD PTR [rax] - test rax,rax - setne al - leave - ret -_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher6handleES2_: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - cmp QWORD PTR [rbp-0x10],rax - jne 405486 <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher6handleES2_+0x4c> - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - mov rdi,rax - call 403100 - mov rdx,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rdx+0x10] - sub rdx,0x1 - cmp rax,rdx - jne 405486 <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher6handleES2_+0x4c> - mov eax,0x22 - jmp 40549a <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher6handleES2_+0x60> - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax+0x8] - mov rdx,QWORD PTR [rbp-0x10] - mov QWORD PTR [rax],rdx - mov eax,0x0 - leave - ret -_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcherC1EiS3_m: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov QWORD PTR [rbp-0x18],rdx - mov QWORD PTR [rbp-0x20],rcx - mov rax,QWORD PTR [rbp-0x8] - mov edx,DWORD PTR [rbp-0xc] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rbp-0x18] - mov QWORD PTR [rax+0x8],rdx - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rbp-0x20] - mov QWORD PTR [rax+0x10],rdx - nop - pop rbp - ret - nop -_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher3runEv: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax+0x10] - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax+0x8] - mov rcx,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x8] - mov eax,DWORD PTR [rax] - mov rsi,rcx - mov edi,eax - call 403070 - mov rdx,rax - mov rax,QWORD PTR [rbp-0x8] - mov rsi,rdx - mov rdi,rax - call 40543a <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher6handleES2_> - leave - ret -_ZN3fmt2v76detail13safe_strerrorEiRPcm: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov DWORD PTR [rbp-0x24],edi - mov QWORD PTR [rbp-0x30],rsi - mov QWORD PTR [rbp-0x38],rdx - mov rax,QWORD PTR [rbp-0x30] - mov rax,QWORD PTR [rax] - test rax,rax - je 40553d <_ZN3fmt2v76detail13safe_strerrorEiRPcm+0x26> - cmp QWORD PTR [rbp-0x38],0x0 - jne 405551 <_ZN3fmt2v76detail13safe_strerrorEiRPcm+0x3a> - mov edx,0x436077 - mov esi,0x47 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rcx,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x30] - mov esi,DWORD PTR [rbp-0x24] - lea rax,[rbp-0x20] - mov rdi,rax - call 40549c <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcherC1EiS3_m> - lea rax,[rbp-0x20] - mov rdi,rax - call 4054d4 <_ZZN3fmt2v76detail13safe_strerrorEiRPcmEN10dispatcher3runEv> - leave - ret -_ZN3fmt2v76detail12fwrite_fullyEPKvmmP8_IO_FILE: - push rbp - mov rbp,rsp - push r12 - push rbx - sub rsp,0x40 - mov QWORD PTR [rbp-0x38],rdi - mov QWORD PTR [rbp-0x40],rsi - mov QWORD PTR [rbp-0x48],rdx - mov QWORD PTR [rbp-0x50],rcx - mov rcx,QWORD PTR [rbp-0x50] - mov rdx,QWORD PTR [rbp-0x48] - mov rsi,QWORD PTR [rbp-0x40] - mov rax,QWORD PTR [rbp-0x38] - mov rdi,rax - call 4034c0 - mov QWORD PTR [rbp-0x18],rax - mov rax,QWORD PTR [rbp-0x18] - cmp rax,QWORD PTR [rbp-0x48] - jae 40561a <_ZN3fmt2v76detail12fwrite_fullyEPKvmmP8_IO_FILE+0xa4> - mov edi,0x18 - call 403150 <__cxa_allocate_exception@plt> - mov rbx,rax - lea rax,[rbp-0x30] - mov esi,0x436151 - mov rdi,rax - call 40b7fe <_ZN3fmt2v717basic_string_viewIcEC1EPKc> - call 403030 <__errno_location@plt> - mov esi,DWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x30] - mov rdx,QWORD PTR [rbp-0x28] - mov rcx,rdx - mov rdx,rax - mov rdi,rbx - call 40b830 <_ZN3fmt2v712system_errorC1IJEEEiNS0_17basic_string_viewIcEEDpRKT_> - mov edx,0x403c42 - mov esi,0x437e80 - mov rdi,rbx - call 403450 <__cxa_throw@plt> - mov r12,rax - mov rdi,rbx - call 403230 <__cxa_free_exception@plt> - mov rax,r12 - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - nop - add rsp,0x40 - pop rbx - pop r12 - pop rbp - ret -_ZN3fmt2v76detail2fpC1Ev: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov QWORD PTR [rax],0x0 - mov rax,QWORD PTR [rbp-0x8] - mov DWORD PTR [rax+0x8],0x0 - nop - pop rbp - ret - nop -_ZN3fmt2v76detail2fpC1Emi: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov DWORD PTR [rbp-0x14],edx - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rbp-0x10] - mov QWORD PTR [rax],rdx - mov rax,QWORD PTR [rbp-0x8] - mov edx,DWORD PTR [rbp-0x14] - mov DWORD PTR [rax+0x8],edx - nop - pop rbp - ret -_ZN3fmt2v76detail8multiplyEmm: - push rbp - mov rbp,rsp - push rbx - mov QWORD PTR [rbp-0x38],rdi - mov QWORD PTR [rbp-0x40],rsi - mov rsi,QWORD PTR [rbp-0x38] - mov rcx,rsi - mov ebx,0x0 - mov rsi,QWORD PTR [rbp-0x40] - mov rax,rsi - mov edx,0x0 - mov rdi,rbx - imul rdi,rax - mov rsi,rdx - imul rsi,rcx - add rsi,rdi - mul rcx - lea rcx,[rsi+rdx*1] - mov rdx,rcx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov rax,rdx - xor edx,edx - mov QWORD PTR [rbp-0x28],rax - mov rax,QWORD PTR [rbp-0x20] - test rax,rax - jns 4056e1 <_ZN3fmt2v76detail8multiplyEmm+0x74> - mov rax,QWORD PTR [rbp-0x28] - add rax,0x1 - jmp 4056e5 <_ZN3fmt2v76detail8multiplyEmm+0x78> - mov rax,QWORD PTR [rbp-0x28] - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detailmlENS1_2fpES2_: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov rax,rsi - mov r8,rdi - mov rsi,r8 - mov rdi,r9 - mov rdi,rax - mov QWORD PTR [rbp-0x20],rsi - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x30],rdx - mov QWORD PTR [rbp-0x28],rcx - mov rdx,QWORD PTR [rbp-0x30] - mov rax,QWORD PTR [rbp-0x20] - mov rsi,rdx - mov rdi,rax - call 40566d <_ZN3fmt2v76detail8multiplyEmm> - mov rcx,rax - mov edx,DWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rbp-0x28] - add eax,edx - lea edx,[rax+0x40] - lea rax,[rbp-0x10] - mov rsi,rcx - mov rdi,rax - call 405646 <_ZN3fmt2v76detail2fpC1Emi> - mov rax,QWORD PTR [rbp-0x10] - mov rdx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail16get_cached_powerEiRi: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov DWORD PTR [rbp-0x34],edi - mov QWORD PTR [rbp-0x40],rsi - mov DWORD PTR [rbp-0x4],0x20 - movabs rax,0x4d104d427de7fbcc - mov QWORD PTR [rbp-0x10],rax - mov eax,DWORD PTR [rbp-0x34] - add eax,0x3f - cdqe - imul rax,rax,0x4d104d42 - mov edx,0xffffffff - add rax,rdx - sar rax,0x20 - mov DWORD PTR [rbp-0x14],eax - mov DWORD PTR [rbp-0x18],0xfffffea4 - mov DWORD PTR [rbp-0x1c],0x8 - mov eax,DWORD PTR [rbp-0x14] - add eax,0x15b - lea edx,[rax+0x7] - test eax,eax - cmovs eax,edx - sar eax,0x3 - add eax,0x1 - mov DWORD PTR [rbp-0x14],eax - mov eax,DWORD PTR [rbp-0x14] - shl eax,0x3 - lea edx,[rax-0x15c] - mov rax,QWORD PTR [rbp-0x40] - mov DWORD PTR [rax],edx - mov eax,DWORD PTR [rbp-0x14] - cdqe - mov rcx,QWORD PTR [rax*8+0x448440] - mov eax,DWORD PTR [rbp-0x14] - cdqe - movzx eax,WORD PTR [rax+rax*1+0x448700] - movsx edx,ax - lea rax,[rbp-0x30] - mov rsi,rcx - mov rdi,rax - call 405646 <_ZN3fmt2v76detail2fpC1Emi> - mov rax,QWORD PTR [rbp-0x30] - mov rdx,QWORD PTR [rbp-0x28] - leave - ret - nop -_ZNK3fmt2v76detail6bigintixEi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov eax,DWORD PTR [rbp-0xc] - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov edx,eax - mov rax,QWORD PTR [rbp-0x8] - mov esi,edx - mov rdi,rax - call 40ba04 <_ZNK3fmt2v76detail6bufferIjEixIjEERKjT_> - mov eax,DWORD PTR [rax] - leave - ret - nop -_ZN3fmt2v76detail6bigintixEi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov eax,DWORD PTR [rbp-0xc] - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov edx,eax - mov rax,QWORD PTR [rbp-0x8] - mov esi,edx - mov rdi,rax - call 40ba24 <_ZN3fmt2v76detail6bufferIjEixIjEERjT_> - leave - ret - nop -_ZN3fmt2v76detail6bigint15subtract_bigitsEijRj: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov QWORD PTR [rbp-0x18],rdi - mov DWORD PTR [rbp-0x1c],esi - mov DWORD PTR [rbp-0x20],edx - mov QWORD PTR [rbp-0x28],rcx - mov edx,DWORD PTR [rbp-0x1c] - mov rax,QWORD PTR [rbp-0x18] - mov esi,edx - mov rdi,rax - call 40582c <_ZN3fmt2v76detail6bigintixEi> - mov eax,DWORD PTR [rax] - mov edx,eax - mov eax,DWORD PTR [rbp-0x20] - sub rdx,rax - mov rax,QWORD PTR [rbp-0x28] - mov eax,DWORD PTR [rax] - mov ecx,eax - mov rax,rdx - sub rax,rcx - mov QWORD PTR [rbp-0x8],rax - mov edx,DWORD PTR [rbp-0x1c] - mov rax,QWORD PTR [rbp-0x18] - mov esi,edx - mov rdi,rax - call 40582c <_ZN3fmt2v76detail6bigintixEi> - mov rdx,QWORD PTR [rbp-0x8] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x8] - shr rax,0x3f - mov edx,eax - mov rax,QWORD PTR [rbp-0x28] - mov DWORD PTR [rax],edx - nop - leave - ret - nop -_ZN3fmt2v76detail6bigint20remove_leading_zerosEv: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x28 - mov QWORD PTR [rbp-0x28],rdi - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - sub eax,0x1 - mov DWORD PTR [rbp-0x14],eax - jmp 4058eb <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv+0x25> - sub DWORD PTR [rbp-0x14],0x1 - cmp DWORD PTR [rbp-0x14],0x0 - jle 40590f <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv+0x49> - mov edx,DWORD PTR [rbp-0x14] - mov rax,QWORD PTR [rbp-0x28] - mov esi,edx - mov rdi,rax - call 40582c <_ZN3fmt2v76detail6bigintixEi> - mov eax,DWORD PTR [rax] - test eax,eax - jne 40590f <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv+0x49> - mov eax,0x1 - jmp 405914 <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv+0x4e> - mov eax,0x0 - test al,al - jne 4058e7 <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv+0x21> - mov rbx,QWORD PTR [rbp-0x28] - mov eax,DWORD PTR [rbp-0x14] - add eax,0x1 - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov eax,eax - mov rsi,rax - mov rdi,rbx - call 40ba56 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEE6resizeEm> - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov QWORD PTR [rbp-0x28],rdi - mov QWORD PTR [rbp-0x30],rsi - mov rax,QWORD PTR [rbp-0x30] - mov edx,DWORD PTR [rax+0xa8] - mov rax,QWORD PTR [rbp-0x28] - mov eax,DWORD PTR [rax+0xa8] - cmp edx,eax - jge 40597a <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0x3c> - mov edx,0x436166 - mov esi,0x4f5 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rdx,QWORD PTR [rbp-0x30] - mov rax,QWORD PTR [rbp-0x28] - mov rsi,rdx - mov rdi,rax - call 405eff <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_> - test eax,eax - jns 4059a5 <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0x67> - mov edx,0x436178 - mov esi,0x4f6 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov DWORD PTR [rbp-0x1c],0x0 - mov rax,QWORD PTR [rbp-0x30] - mov edx,DWORD PTR [rax+0xa8] - mov rax,QWORD PTR [rbp-0x28] - mov eax,DWORD PTR [rax+0xa8] - sub edx,eax - mov DWORD PTR [rbp-0x4],edx - mov QWORD PTR [rbp-0x10],0x0 - mov rax,QWORD PTR [rbp-0x30] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov QWORD PTR [rbp-0x18],rax - jmp 405a10 <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0xd2> - mov rax,QWORD PTR [rbp-0x30] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 40ba7c <_ZNK3fmt2v76detail6bufferIjEixImEERKjT_> - mov edx,DWORD PTR [rax] - lea rcx,[rbp-0x1c] - mov esi,DWORD PTR [rbp-0x4] - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 405858 <_ZN3fmt2v76detail6bigint15subtract_bigitsEijRj> - add DWORD PTR [rbp-0x4],0x1 - add QWORD PTR [rbp-0x10],0x1 - mov rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x18] - jne 4059df <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0xa1> - jmp 405a37 <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0xf9> - lea rdx,[rbp-0x1c] - mov esi,DWORD PTR [rbp-0x4] - mov rax,QWORD PTR [rbp-0x28] - mov rcx,rdx - mov edx,0x0 - mov rdi,rax - call 405858 <_ZN3fmt2v76detail6bigint15subtract_bigitsEijRj> - mov eax,DWORD PTR [rbp-0x1c] - test eax,eax - jne 405a1c <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_+0xde> - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 4058c6 <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv> - nop - leave - ret - nop -_ZN3fmt2v76detail6bigint8multiplyEj: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov QWORD PTR [rbp-0x38],rdi - mov DWORD PTR [rbp-0x3c],esi - mov eax,DWORD PTR [rbp-0x3c] - mov QWORD PTR [rbp-0x10],rax - mov DWORD PTR [rbp-0x24],0x0 - mov QWORD PTR [rbp-0x8],0x0 - mov rax,QWORD PTR [rbp-0x38] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov QWORD PTR [rbp-0x18],rax - jmp 405ad6 <_ZN3fmt2v76detail6bigint8multiplyEj+0x88> - mov rax,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x8] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov eax,DWORD PTR [rax] - mov eax,eax - imul rax,QWORD PTR [rbp-0x10] - mov edx,DWORD PTR [rbp-0x24] - mov edx,edx - add rax,rdx - mov QWORD PTR [rbp-0x20],rax - mov rax,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x8] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov rdx,QWORD PTR [rbp-0x20] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x20] - shr rax,0x20 - mov DWORD PTR [rbp-0x24],eax - add QWORD PTR [rbp-0x8],0x1 - mov rax,QWORD PTR [rbp-0x8] - cmp rax,QWORD PTR [rbp-0x18] - jb 405a85 <_ZN3fmt2v76detail6bigint8multiplyEj+0x37> - mov eax,DWORD PTR [rbp-0x24] - test eax,eax - je 405afa <_ZN3fmt2v76detail6bigint8multiplyEj+0xac> - mov rax,QWORD PTR [rbp-0x38] - lea rdx,[rbp-0x24] - mov rsi,rdx - mov rdi,rax - call 40bac0 <_ZN3fmt2v76detail6bufferIjE9push_backERKj> - nop - leave - ret - nop -_ZN3fmt2v76detail6bigint8multiplyEm: - push rbp - mov rbp,rsp - sub rsp,0x50 - mov QWORD PTR [rbp-0x48],rdi - mov QWORD PTR [rbp-0x50],rsi - mov DWORD PTR [rbp-0x14],0xffffffff - mov rax,QWORD PTR [rbp-0x50] - mov eax,eax - mov QWORD PTR [rbp-0x20],rax - mov rax,QWORD PTR [rbp-0x50] - shr rax,0x20 - mov QWORD PTR [rbp-0x28],rax - mov QWORD PTR [rbp-0x8],0x0 - mov QWORD PTR [rbp-0x10],0x0 - mov rax,QWORD PTR [rbp-0x48] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov QWORD PTR [rbp-0x30],rax - jmp 405bca <_ZN3fmt2v76detail6bigint8multiplyEm+0xcc> - mov rax,QWORD PTR [rbp-0x48] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov eax,DWORD PTR [rax] - mov eax,eax - imul rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x8] - mov edx,edx - add rax,rdx - mov QWORD PTR [rbp-0x38],rax - mov rax,QWORD PTR [rbp-0x48] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov eax,DWORD PTR [rax] - mov eax,eax - imul rax,QWORD PTR [rbp-0x28] - mov rdx,QWORD PTR [rbp-0x38] - shr rdx,0x20 - add rdx,rax - mov rax,QWORD PTR [rbp-0x8] - shr rax,0x20 - add rax,rdx - mov QWORD PTR [rbp-0x8],rax - mov rax,QWORD PTR [rbp-0x48] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov rdx,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - add QWORD PTR [rbp-0x10],0x1 - mov rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x30] - jb 405b4d <_ZN3fmt2v76detail6bigint8multiplyEm+0x4f> - jmp 405bf9 <_ZN3fmt2v76detail6bigint8multiplyEm+0xfb> - mov rax,QWORD PTR [rbp-0x48] - mov rdx,QWORD PTR [rbp-0x8] - mov DWORD PTR [rbp-0x3c],edx - lea rdx,[rbp-0x3c] - mov rsi,rdx - mov rdi,rax - call 40bac0 <_ZN3fmt2v76detail6bufferIjE9push_backERKj> - shr QWORD PTR [rbp-0x8],0x20 - cmp QWORD PTR [rbp-0x8],0x0 - jne 405bda <_ZN3fmt2v76detail6bigint8multiplyEm+0xdc> - nop - nop - leave - ret -_ZN3fmt2v76detail6bigintC1Ev: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x28 - mov QWORD PTR [rbp-0x28],rdi - mov rbx,QWORD PTR [rbp-0x28] - lea rax,[rbp-0x11] - mov rdi,rax - call 40bb1a <_ZNSaIjEC1Ev> - lea rax,[rbp-0x11] - mov rsi,rax - mov rdi,rbx - call 40bb52 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEEC1ERKS2_> - lea rax,[rbp-0x11] - mov rdi,rax - call 40bb36 <_ZNSaIjED1Ev> - mov rax,QWORD PTR [rbp-0x28] - mov DWORD PTR [rax+0xa8],0x0 - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail6bigintD1Ev: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 40bbfc <_ZNK3fmt2v76detail6bufferIjE8capacityEv> - cmp rax,0x20 - jbe 405c89 <_ZN3fmt2v76detail6bigintD1Ev+0x37> - mov ecx,0x436180 - mov edx,0x51e - mov esi,0x436088 - mov edi,0x4361a8 - call 4031f0 <__assert_fail@plt> - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 40bbc2 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEED1Ev> - nop - leave - ret -_ZN3fmt2v76detail6bigint6assignERKS2_: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov rax,QWORD PTR [rbp-0x20] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov QWORD PTR [rbp-0x8],rax - mov rax,QWORD PTR [rbp-0x18] - mov rdx,QWORD PTR [rbp-0x8] - mov rsi,rdx - mov rdi,rax - call 40ba56 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEE6resizeEm> - mov rax,QWORD PTR [rbp-0x20] - mov rdi,rax - call 40bc0e <_ZNK3fmt2v76detail6bufferIjE4dataEv> - mov QWORD PTR [rbp-0x10],rax - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 40bc20 <_ZN3fmt2v76detail6bufferIjE4dataEv> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x8] - mov rsi,rax - mov rdi,rdx - call 40bc32 <_ZN3fmt2v76detail12make_checkedIjEEPT_S4_m> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x8] - lea rcx,[rax*4+0x0] - mov rax,QWORD PTR [rbp-0x10] - add rcx,rax - mov rax,QWORD PTR [rbp-0x10] - mov rsi,rcx - mov rdi,rax - call 40bc44 <_ZSt4copyIPKjPjET0_T_S4_S3_> - mov rax,QWORD PTR [rbp-0x20] - mov edx,DWORD PTR [rax+0xa8] - mov rax,QWORD PTR [rbp-0x18] - mov DWORD PTR [rax+0xa8],edx - nop - leave - ret - nop -_ZN3fmt2v76detail6bigint6assignEm: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov QWORD PTR [rbp-0x8],0x0 - mov rax,QWORD PTR [rbp-0x8] - lea rdx,[rax+0x1] - mov QWORD PTR [rbp-0x8],rdx - mov rdx,QWORD PTR [rbp-0x18] - mov rsi,rax - mov rdi,rdx - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov rdx,QWORD PTR [rbp-0x20] - mov DWORD PTR [rax],edx - shr QWORD PTR [rbp-0x20],0x20 - cmp QWORD PTR [rbp-0x20],0x0 - jne 405d4e <_ZN3fmt2v76detail6bigint6assignEm+0x18> - mov rax,QWORD PTR [rbp-0x18] - mov rdx,QWORD PTR [rbp-0x8] - mov rsi,rdx - mov rdi,rax - call 40ba56 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEE6resizeEm> - mov rax,QWORD PTR [rbp-0x18] - mov DWORD PTR [rax+0xa8],0x0 - nop - leave - ret - nop -_ZNK3fmt2v76detail6bigint10num_bigitsEv: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov edx,eax - mov rax,QWORD PTR [rbp-0x8] - mov eax,DWORD PTR [rax+0xa8] - add eax,edx - leave - ret -_ZN3fmt2v76detail6bigintlSEi: - push rbp - mov rbp,rsp - push r12 - push rbx - sub rsp,0x30 - mov QWORD PTR [rbp-0x38],rdi - mov DWORD PTR [rbp-0x3c],esi - cmp DWORD PTR [rbp-0x3c],0x0 - jns 405df9 <_ZN3fmt2v76detail6bigintlSEi+0x31> - mov ecx,0x4361d0 - mov edx,0x538 - mov esi,0x436088 - mov edi,0x436213 - call 4031f0 <__assert_fail@plt> - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax+0xa8] - mov eax,DWORD PTR [rbp-0x3c] - lea ecx,[rax+0x1f] - test eax,eax - cmovs eax,ecx - sar eax,0x5 - add edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax+0xa8],edx - mov edx,DWORD PTR [rbp-0x3c] - mov eax,edx - sar eax,0x1f - shr eax,0x1b - add edx,eax - and edx,0x1f - sub edx,eax - mov DWORD PTR [rbp-0x3c],edx - cmp DWORD PTR [rbp-0x3c],0x0 - jne 405e41 <_ZN3fmt2v76detail6bigintlSEi+0x79> - mov rax,QWORD PTR [rbp-0x38] - jmp 405ef6 <_ZN3fmt2v76detail6bigintlSEi+0x12e> - mov DWORD PTR [rbp-0x28],0x0 - mov QWORD PTR [rbp-0x18],0x0 - mov rax,QWORD PTR [rbp-0x38] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov QWORD PTR [rbp-0x20],rax - jmp 405ece <_ZN3fmt2v76detail6bigintlSEi+0x106> - mov rax,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov edx,DWORD PTR [rax] - mov eax,0x20 - sub eax,DWORD PTR [rbp-0x3c] - mov ecx,eax - shr edx,cl - mov eax,edx - mov DWORD PTR [rbp-0x24],eax - mov rax,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - mov edx,DWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x3c] - mov ecx,eax - shl edx,cl - mov r12d,edx - mov ebx,DWORD PTR [rbp-0x28] - mov rax,QWORD PTR [rbp-0x38] - mov rdx,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40ba9e <_ZN3fmt2v76detail6bufferIjEixImEERjT_> - lea edx,[r12+rbx*1] - mov DWORD PTR [rax],edx - mov eax,DWORD PTR [rbp-0x24] - mov DWORD PTR [rbp-0x28],eax - add QWORD PTR [rbp-0x18],0x1 - mov rax,QWORD PTR [rbp-0x18] - cmp rax,QWORD PTR [rbp-0x20] - jb 405e62 <_ZN3fmt2v76detail6bigintlSEi+0x9a> - mov eax,DWORD PTR [rbp-0x28] - test eax,eax - je 405ef2 <_ZN3fmt2v76detail6bigintlSEi+0x12a> - mov rax,QWORD PTR [rbp-0x38] - lea rdx,[rbp-0x28] - mov rsi,rdx - mov rdi,rax - call 40bac0 <_ZN3fmt2v76detail6bufferIjE9push_backERKj> - mov rax,QWORD PTR [rbp-0x38] - add rsp,0x30 - pop rbx - pop r12 - pop rbp - ret -_ZN3fmt2v76detail7compareERKNS1_6bigintES4_: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov QWORD PTR [rbp-0x28],rdi - mov QWORD PTR [rbp-0x30],rsi - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - mov DWORD PTR [rbp-0x10],eax - mov rax,QWORD PTR [rbp-0x30] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - mov DWORD PTR [rbp-0x14],eax - mov eax,DWORD PTR [rbp-0x10] - cmp eax,DWORD PTR [rbp-0x14] - je 405f51 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x52> - mov eax,DWORD PTR [rbp-0x10] - cmp eax,DWORD PTR [rbp-0x14] - jle 405f47 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x48> - mov eax,0x1 - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - mov eax,0xffffffff - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - sub eax,0x1 - mov DWORD PTR [rbp-0x4],eax - mov rax,QWORD PTR [rbp-0x30] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - sub eax,0x1 - mov DWORD PTR [rbp-0x8],eax - mov eax,DWORD PTR [rbp-0x4] - sub eax,DWORD PTR [rbp-0x8] - mov DWORD PTR [rbp-0xc],eax - cmp DWORD PTR [rbp-0xc],0x0 - jns 405fdb <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0xdc> - mov DWORD PTR [rbp-0xc],0x0 - jmp 405fdb <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0xdc> - mov edx,DWORD PTR [rbp-0x4] - mov rax,QWORD PTR [rbp-0x28] - mov esi,edx - mov rdi,rax - call 4057fe <_ZNK3fmt2v76detail6bigintixEi> - mov DWORD PTR [rbp-0x18],eax - mov edx,DWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rbp-0x30] - mov esi,edx - mov rdi,rax - call 4057fe <_ZNK3fmt2v76detail6bigintixEi> - mov DWORD PTR [rbp-0x1c],eax - mov eax,DWORD PTR [rbp-0x18] - cmp eax,DWORD PTR [rbp-0x1c] - je 405fd3 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0xd4> - mov eax,DWORD PTR [rbp-0x18] - cmp DWORD PTR [rbp-0x1c],eax - jae 405fcc <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0xcd> - mov eax,0x1 - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - mov eax,0xffffffff - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - sub DWORD PTR [rbp-0x4],0x1 - sub DWORD PTR [rbp-0x8],0x1 - mov eax,DWORD PTR [rbp-0x4] - cmp eax,DWORD PTR [rbp-0xc] - jge 405f8d <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x8e> - mov eax,DWORD PTR [rbp-0x4] - cmp eax,DWORD PTR [rbp-0x8] - je 406001 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x102> - mov eax,DWORD PTR [rbp-0x4] - cmp eax,DWORD PTR [rbp-0x8] - jle 405ffa <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0xfb> - mov eax,0x1 - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - mov eax,0xffffffff - jmp 406006 <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_+0x107> - mov eax,0x0 - leave - ret -_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov DWORD PTR [rbp-0x14],edx - mov rax,QWORD PTR [rbp-0x10] - mov eax,DWORD PTR [rax+0xa8] - cmp DWORD PTR [rbp-0x14],eax - jl 40605a <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i+0x52> - mov rax,QWORD PTR [rbp-0x10] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - cmp DWORD PTR [rbp-0x14],eax - jge 40605a <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i+0x52> - mov rax,QWORD PTR [rbp-0x10] - mov eax,DWORD PTR [rax+0xa8] - mov edx,DWORD PTR [rbp-0x14] - sub edx,eax - mov rax,QWORD PTR [rbp-0x10] - mov esi,edx - mov rdi,rax - call 4057fe <_ZNK3fmt2v76detail6bigintixEi> - jmp 40605f <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i+0x57> - mov eax,0x0 - leave - ret -_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x58 - mov QWORD PTR [rbp-0x48],rdi - mov QWORD PTR [rbp-0x50],rsi - mov QWORD PTR [rbp-0x58],rdx - mov rax,QWORD PTR [rbp-0x50] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - mov DWORD PTR [rbp-0x3c],eax - mov rax,QWORD PTR [rbp-0x48] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - mov DWORD PTR [rbp-0x38],eax - lea rdx,[rbp-0x3c] - lea rax,[rbp-0x38] - mov rsi,rdx - mov rdi,rax - call 40bc8f <_ZSt3maxIiERKT_S2_S2_> - mov eax,DWORD PTR [rax] - mov DWORD PTR [rbp-0x20],eax - mov rax,QWORD PTR [rbp-0x58] - mov rdi,rax - call 405da0 <_ZNK3fmt2v76detail6bigint10num_bigitsEv> - mov DWORD PTR [rbp-0x24],eax - mov eax,DWORD PTR [rbp-0x20] - add eax,0x1 - cmp DWORD PTR [rbp-0x24],eax - jle 4060d0 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x6f> - mov eax,0xffffffff - jmp 4061e3 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x182> - mov eax,DWORD PTR [rbp-0x20] - cmp eax,DWORD PTR [rbp-0x24] - jle 4060e2 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x81> - mov eax,0x1 - jmp 4061e3 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x182> - mov QWORD PTR [rbp-0x18],0x0 - mov rax,QWORD PTR [rbp-0x58] - lea rbx,[rax+0xa8] - mov rax,QWORD PTR [rbp-0x50] - lea rdx,[rax+0xa8] - mov rax,QWORD PTR [rbp-0x48] - add rax,0xa8 - mov rsi,rdx - mov rdi,rax - call 40bcb7 <_ZSt3minIiERKT_S2_S2_> - mov rsi,rbx - mov rdi,rax - call 40bcb7 <_ZSt3minIiERKT_S2_S2_> - mov eax,DWORD PTR [rax] - mov DWORD PTR [rbp-0x28],eax - mov eax,DWORD PTR [rbp-0x24] - sub eax,0x1 - mov DWORD PTR [rbp-0x1c],eax - jmp 4061c3 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x162> - mov edx,DWORD PTR [rbp-0x1c] - mov rcx,QWORD PTR [rbp-0x48] - lea rax,[rbp-0x3d] - mov rsi,rcx - mov rdi,rax - call 406008 <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i> - mov ebx,eax - mov edx,DWORD PTR [rbp-0x1c] - mov rcx,QWORD PTR [rbp-0x50] - lea rax,[rbp-0x3d] - mov rsi,rcx - mov rdi,rax - call 406008 <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i> - mov eax,eax - add rax,rbx - mov QWORD PTR [rbp-0x30],rax - mov edx,DWORD PTR [rbp-0x1c] - mov rcx,QWORD PTR [rbp-0x58] - lea rax,[rbp-0x3d] - mov rsi,rcx - mov rdi,rax - call 406008 <_ZZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_ENKUlS4_iE_clES4_i> - mov DWORD PTR [rbp-0x34],eax - mov edx,DWORD PTR [rbp-0x34] - mov rax,QWORD PTR [rbp-0x18] - add rax,rdx - cmp rax,QWORD PTR [rbp-0x30] - jae 40619a <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x139> - mov eax,0x1 - jmp 4061e3 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x182> - mov edx,DWORD PTR [rbp-0x34] - mov rax,QWORD PTR [rbp-0x18] - add rax,rdx - sub rax,QWORD PTR [rbp-0x30] - mov QWORD PTR [rbp-0x18],rax - cmp QWORD PTR [rbp-0x18],0x1 - jbe 4061ba <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x159> - mov eax,0xffffffff - jmp 4061e3 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x182> - shl QWORD PTR [rbp-0x18],0x20 - sub DWORD PTR [rbp-0x1c],0x1 - mov eax,DWORD PTR [rbp-0x1c] - cmp eax,DWORD PTR [rbp-0x28] - jge 406133 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0xd2> - cmp QWORD PTR [rbp-0x18],0x0 - je 4061dd <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x17c> - mov eax,0xffffffff - jmp 4061e2 <_ZN3fmt2v76detail11add_compareERKNS1_6bigintES4_S4_+0x181> - mov eax,0x0 - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail6bigint12assign_pow10Ei: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x18],rdi - mov DWORD PTR [rbp-0x1c],esi - cmp DWORD PTR [rbp-0x1c],0x0 - jns 406218 <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x2e> - mov ecx,0x436220 - mov edx,0x576 - mov esi,0x436088 - mov edi,0x436250 - call 4031f0 <__assert_fail@plt> - cmp DWORD PTR [rbp-0x1c],0x0 - jne 406231 <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x47> - mov rax,QWORD PTR [rbp-0x18] - mov esi,0x1 - mov rdi,rax - call 405d36 <_ZN3fmt2v76detail6bigint6assignEm> - jmp 40629f <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0xb5> - mov DWORD PTR [rbp-0x4],0x1 - jmp 40623d <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x53> - shl DWORD PTR [rbp-0x4],1 - mov eax,DWORD PTR [rbp-0x1c] - cmp eax,DWORD PTR [rbp-0x4] - jge 40623a <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x50> - sar DWORD PTR [rbp-0x4],1 - mov rax,QWORD PTR [rbp-0x18] - mov esi,0x5 - mov rdi,rax - call 405d36 <_ZN3fmt2v76detail6bigint6assignEm> - sar DWORD PTR [rbp-0x4],1 - jmp 406288 <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x9e> - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 4062a2 <_ZN3fmt2v76detail6bigint6squareEv> - mov eax,DWORD PTR [rbp-0x1c] - and eax,DWORD PTR [rbp-0x4] - test eax,eax - je 406285 <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x9b> - mov rax,QWORD PTR [rbp-0x18] - mov esi,0x5 - mov rdi,rax - call 40bce0 <_ZN3fmt2v76detail6bigintmLIiEERS2_T_> - sar DWORD PTR [rbp-0x4],1 - cmp DWORD PTR [rbp-0x4],0x0 - jne 40625e <_ZN3fmt2v76detail6bigint12assign_pow10Ei+0x74> - mov edx,DWORD PTR [rbp-0x1c] - mov rax,QWORD PTR [rbp-0x18] - mov esi,edx - mov rdi,rax - call 405dc8 <_ZN3fmt2v76detail6bigintlSEi> - leave - ret - nop -_ZN3fmt2v76detail6bigint6squareEv: - push rbp - mov rbp,rsp - push r15 - push r14 - push r13 - push r12 - push rbx - sub rsp,0xf8 - mov QWORD PTR [rbp-0x118],rdi - mov rax,QWORD PTR [rbp-0x118] - mov rdi,rax - call 40bd20 <_ZSt4moveIRN3fmt2v719basic_memory_bufferIjLm32ESaIjEEEEONSt16remove_referenceIT_E4typeEOS7_> - mov rdx,rax - lea rax,[rbp-0x110] - mov rsi,rdx - mov rdi,rax - call 40bd2e <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEEC1EOS3_> - mov rax,QWORD PTR [rbp-0x118] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov DWORD PTR [rbp-0x5c],eax - mov eax,DWORD PTR [rbp-0x5c] - add eax,eax - mov DWORD PTR [rbp-0x60],eax - mov rbx,QWORD PTR [rbp-0x118] - mov eax,DWORD PTR [rbp-0x60] - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov eax,eax - mov rsi,rax - mov rdi,rbx - call 40ba56 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEE6resizeEm> - mov QWORD PTR [rbp-0x40],0x0 - mov QWORD PTR [rbp-0x38],0x0 - mov DWORD PTR [rbp-0x44],0x0 - jmp 4063ce <_ZN3fmt2v76detail6bigint6squareEv+0x12c> - mov DWORD PTR [rbp-0x48],0x0 - mov eax,DWORD PTR [rbp-0x44] - mov DWORD PTR [rbp-0x4c],eax - jmp 406391 <_ZN3fmt2v76detail6bigint6squareEv+0xef> - mov edx,DWORD PTR [rbp-0x48] - lea rax,[rbp-0x110] - mov esi,edx - mov rdi,rax - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov eax,DWORD PTR [rax] - mov ebx,eax - mov edx,DWORD PTR [rbp-0x4c] - lea rax,[rbp-0x110] - mov esi,edx - mov rdi,rax - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov eax,DWORD PTR [rax] - mov eax,eax - imul rax,rbx - mov r14,rax - mov r15d,0x0 - add QWORD PTR [rbp-0x40],r14 - adc QWORD PTR [rbp-0x38],r15 - add DWORD PTR [rbp-0x48],0x1 - sub DWORD PTR [rbp-0x4c],0x1 - cmp DWORD PTR [rbp-0x4c],0x0 - jns 406344 <_ZN3fmt2v76detail6bigint6squareEv+0xa2> - mov edx,DWORD PTR [rbp-0x44] - mov rax,QWORD PTR [rbp-0x118] - mov esi,edx - mov rdi,rax - call 40582c <_ZN3fmt2v76detail6bigintixEi> - mov rdx,QWORD PTR [rbp-0x40] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x40] - mov rdx,QWORD PTR [rbp-0x38] - shrd rax,rdx,0x20 - shr rdx,0x20 - mov QWORD PTR [rbp-0x40],rax - mov QWORD PTR [rbp-0x38],rdx - add DWORD PTR [rbp-0x44],0x1 - mov eax,DWORD PTR [rbp-0x44] - cmp eax,DWORD PTR [rbp-0x5c] - jl 406335 <_ZN3fmt2v76detail6bigint6squareEv+0x93> - mov eax,DWORD PTR [rbp-0x5c] - mov DWORD PTR [rbp-0x50],eax - jmp 406489 <_ZN3fmt2v76detail6bigint6squareEv+0x1e7> - mov eax,DWORD PTR [rbp-0x5c] - sub eax,0x1 - mov DWORD PTR [rbp-0x54],eax - mov eax,DWORD PTR [rbp-0x50] - sub eax,DWORD PTR [rbp-0x54] - mov DWORD PTR [rbp-0x58],eax - jmp 40644a <_ZN3fmt2v76detail6bigint6squareEv+0x1a8> - mov eax,DWORD PTR [rbp-0x58] - lea edx,[rax+0x1] - mov DWORD PTR [rbp-0x58],edx - lea rdx,[rbp-0x110] - mov esi,eax - mov rdi,rdx - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov eax,DWORD PTR [rax] - mov ebx,eax - mov eax,DWORD PTR [rbp-0x54] - lea edx,[rax-0x1] - mov DWORD PTR [rbp-0x54],edx - lea rdx,[rbp-0x110] - mov esi,eax - mov rdi,rdx - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov eax,DWORD PTR [rax] - mov eax,eax - imul rax,rbx - mov r12,rax - mov r13d,0x0 - add QWORD PTR [rbp-0x40],r12 - adc QWORD PTR [rbp-0x38],r13 - mov eax,DWORD PTR [rbp-0x58] - cmp eax,DWORD PTR [rbp-0x5c] - jl 4063f9 <_ZN3fmt2v76detail6bigint6squareEv+0x157> - mov edx,DWORD PTR [rbp-0x50] - mov rax,QWORD PTR [rbp-0x118] - mov esi,edx - mov rdi,rax - call 40582c <_ZN3fmt2v76detail6bigintixEi> - mov rdx,QWORD PTR [rbp-0x40] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x40] - mov rdx,QWORD PTR [rbp-0x38] - shrd rax,rdx,0x20 - shr rdx,0x20 - mov QWORD PTR [rbp-0x40],rax - mov QWORD PTR [rbp-0x38],rdx - add DWORD PTR [rbp-0x50],0x1 - mov eax,DWORD PTR [rbp-0x50] - cmp eax,DWORD PTR [rbp-0x60] - jl 4063e5 <_ZN3fmt2v76detail6bigint6squareEv+0x143> - sub DWORD PTR [rbp-0x60],0x1 - mov rax,QWORD PTR [rbp-0x118] - mov rdi,rax - call 4058c6 <_ZN3fmt2v76detail6bigint20remove_leading_zerosEv> - mov rax,QWORD PTR [rbp-0x118] - mov eax,DWORD PTR [rax+0xa8] - lea edx,[rax+rax*1] - mov rax,QWORD PTR [rbp-0x118] - mov DWORD PTR [rax+0xa8],edx - lea rax,[rbp-0x110] - mov rdi,rax - call 40bbc2 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEED1Ev> - jmp 4064f3 <_ZN3fmt2v76detail6bigint6squareEv+0x251> - mov rbx,rax - lea rax,[rbp-0x110] - mov rdi,rax - call 40bbc2 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - add rsp,0xf8 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - nop -_ZN3fmt2v76detail6bigint5alignERKS2_: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x38 - mov QWORD PTR [rbp-0x38],rdi - mov QWORD PTR [rbp-0x40],rsi - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax+0xa8] - mov rax,QWORD PTR [rbp-0x40] - mov eax,DWORD PTR [rax+0xa8] - sub edx,eax - mov DWORD PTR [rbp-0x1c],edx - cmp DWORD PTR [rbp-0x1c],0x0 - jle 4065f8 <_ZN3fmt2v76detail6bigint5alignERKS2_+0xf2> - mov rax,QWORD PTR [rbp-0x38] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - mov DWORD PTR [rbp-0x20],eax - mov rbx,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rbp-0x20] - mov eax,DWORD PTR [rbp-0x1c] - add eax,edx - mov edi,eax - call 40b5c1 <_ZN3fmt2v76detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_> - mov eax,eax - mov rsi,rax - mov rdi,rbx - call 40ba56 <_ZN3fmt2v719basic_memory_bufferIjLm32ESaIjEE6resizeEm> - mov eax,DWORD PTR [rbp-0x20] - sub eax,0x1 - mov DWORD PTR [rbp-0x14],eax - mov edx,DWORD PTR [rbp-0x14] - mov eax,DWORD PTR [rbp-0x1c] - add eax,edx - mov DWORD PTR [rbp-0x18],eax - jmp 4065b0 <_ZN3fmt2v76detail6bigint5alignERKS2_+0xaa> - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rbp-0x14] - mov esi,edx - mov rdi,rax - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov rbx,rax - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rbp-0x18] - mov esi,edx - mov rdi,rax - call 40bd8e <_ZN3fmt2v76detail6bufferIjEixIiEERjT_> - mov edx,DWORD PTR [rbx] - mov DWORD PTR [rax],edx - sub DWORD PTR [rbp-0x14],0x1 - sub DWORD PTR [rbp-0x18],0x1 - cmp DWORD PTR [rbp-0x14],0x0 - jns 40657f <_ZN3fmt2v76detail6bigint5alignERKS2_+0x79> - mov DWORD PTR [rbp-0x24],0x0 - mov rax,QWORD PTR [rbp-0x38] - mov rdi,rax - call 40bc20 <_ZN3fmt2v76detail6bufferIjE4dataEv> - mov rcx,rax - lea rdx,[rbp-0x24] - mov eax,DWORD PTR [rbp-0x1c] - mov esi,eax - mov rdi,rcx - call 40bdb0 <_ZSt20uninitialized_fill_nIPjiiET_S1_T0_RKT1_> - mov rax,QWORD PTR [rbp-0x38] - mov eax,DWORD PTR [rax+0xa8] - sub eax,DWORD PTR [rbp-0x1c] - mov edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax+0xa8],edx - jmp 4065f9 <_ZN3fmt2v76detail6bigint5alignERKS2_+0xf3> - nop - mov rbx,QWORD PTR [rbp-0x8] - leave - ret - nop -_ZN3fmt2v76detail6bigint13divmod_assignERKS2_: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov rax,QWORD PTR [rbp-0x18] - cmp rax,QWORD PTR [rbp-0x20] - jne 40662e <_ZN3fmt2v76detail6bigint13divmod_assignERKS2_+0x2e> - mov edx,0x436178 - mov esi,0x5b6 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rdx,QWORD PTR [rbp-0x20] - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 405eff <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_> - shr eax,0x1f - test al,al - je 406652 <_ZN3fmt2v76detail6bigint13divmod_assignERKS2_+0x52> - mov eax,0x0 - jmp 4066db <_ZN3fmt2v76detail6bigint13divmod_assignERKS2_+0xdb> - mov rax,QWORD PTR [rbp-0x20] - mov rdi,rax - call 40ba44 <_ZNK3fmt2v76detail6bufferIjE4sizeEv> - lea rdx,[rax-0x1] - mov rax,QWORD PTR [rbp-0x20] - mov rsi,rdx - mov rdi,rax - call 40ba7c <_ZNK3fmt2v76detail6bufferIjEixImEERKjT_> - mov eax,DWORD PTR [rax] - test eax,eax - jne 40668b <_ZN3fmt2v76detail6bigint13divmod_assignERKS2_+0x8b> - mov edx,0x436178 - mov esi,0x5b8 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rdx,QWORD PTR [rbp-0x20] - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 406506 <_ZN3fmt2v76detail6bigint5alignERKS2_> - mov DWORD PTR [rbp-0x4],0x0 - mov rdx,QWORD PTR [rbp-0x20] - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40593e <_ZN3fmt2v76detail6bigint16subtract_alignedERKS2_> - add DWORD PTR [rbp-0x4],0x1 - mov rdx,QWORD PTR [rbp-0x20] - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 405eff <_ZN3fmt2v76detail7compareERKNS1_6bigintES4_> - not eax - shr eax,0x1f - test al,al - jne 4066a5 <_ZN3fmt2v76detail6bigint13divmod_assignERKS2_+0xa5> - mov eax,DWORD PTR [rbp-0x4] - leave - ret -_ZN3fmt2v76detail19get_round_directionEmmm: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov QWORD PTR [rbp-0x18],rdx - mov rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x8] - jb 40670f <_ZN3fmt2v76detail19get_round_directionEmmm+0x32> - mov edx,0x436178 - mov esi,0x5cb - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x18] - cmp rax,QWORD PTR [rbp-0x8] - jb 40672d <_ZN3fmt2v76detail19get_round_directionEmmm+0x50> - mov edx,0x436178 - mov esi,0x5cc - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x8] - sub rax,QWORD PTR [rbp-0x18] - cmp QWORD PTR [rbp-0x18],rax - jb 40674f <_ZN3fmt2v76detail19get_round_directionEmmm+0x72> - mov edx,0x436178 - mov esi,0x5cd - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x8] - sub rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x10] - jb 40677e <_ZN3fmt2v76detail19get_round_directionEmmm+0xa1> - mov rax,QWORD PTR [rbp-0x18] - add rax,rax - mov rdx,QWORD PTR [rbp-0x10] - add rdx,rdx - mov rcx,QWORD PTR [rbp-0x8] - sub rcx,rdx - cmp rcx,rax - jb 40677e <_ZN3fmt2v76detail19get_round_directionEmmm+0xa1> - mov eax,0x2 - jmp 4067b6 <_ZN3fmt2v76detail19get_round_directionEmmm+0xd9> - mov rax,QWORD PTR [rbp-0x10] - cmp rax,QWORD PTR [rbp-0x18] - jb 4067b1 <_ZN3fmt2v76detail19get_round_directionEmmm+0xd4> - mov rax,QWORD PTR [rbp-0x10] - sub rax,QWORD PTR [rbp-0x18] - mov rdx,rax - mov rax,QWORD PTR [rbp-0x18] - sub rax,QWORD PTR [rbp-0x10] - mov rcx,rax - mov rax,QWORD PTR [rbp-0x8] - add rax,rcx - cmp rdx,rax - jb 4067b1 <_ZN3fmt2v76detail19get_round_directionEmmm+0xd4> - mov eax,0x1 - jmp 4067b6 <_ZN3fmt2v76detail19get_round_directionEmmm+0xd9> - mov eax,0x0 - leave - ret -_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov QWORD PTR [rbp-0x18],rdi - mov QWORD PTR [rbp-0x20],rsi - mov QWORD PTR [rbp-0x28],rdx - mov QWORD PTR [rbp-0x30],rcx - mov QWORD PTR [rbp-0x38],r8 - mov rax,QWORD PTR [rbp-0x18] - movzx eax,BYTE PTR [rax+0x14] - xor eax,0x1 - test al,al - je 4067ed <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0x35> - mov eax,0x0 - jmp 40688e <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xd6> - mov rax,QWORD PTR [rbp-0x18] - mov edx,DWORD PTR [rax+0xc] - mov rax,QWORD PTR [rbp-0x38] - mov ecx,DWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x10] - add eax,ecx - add edx,eax - mov rax,QWORD PTR [rbp-0x18] - mov DWORD PTR [rax+0xc],edx - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0xc] - test eax,eax - jle 40681e <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0x66> - mov eax,0x0 - jmp 40688e <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xd6> - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0xc] - test eax,eax - jns 406830 <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0x78> - mov eax,0x1 - jmp 40688e <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xd6> - mov rdx,QWORD PTR [rbp-0x30] - mov rcx,QWORD PTR [rbp-0x28] - mov rax,QWORD PTR [rbp-0x20] - mov rsi,rcx - mov rdi,rax - call 4066dd <_ZN3fmt2v76detail19get_round_directionEmmm> - mov DWORD PTR [rbp-0x4],eax - cmp DWORD PTR [rbp-0x4],0x0 - jne 406857 <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0x9f> - mov eax,0x2 - jmp 40688e <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xd6> - cmp DWORD PTR [rbp-0x4],0x1 - jne 406864 <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xac> - mov edi,0x31 - jmp 406869 <_ZN3fmt2v76detail13fixed_handler8on_startEmmmRi+0xb1> - mov edi,0x30 - mov rax,QWORD PTR [rbp-0x18] - mov rsi,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x8] - lea ecx,[rax+0x1] - mov rdx,QWORD PTR [rbp-0x18] - mov DWORD PTR [rdx+0x8],ecx - cdqe - add rax,rsi - mov BYTE PTR [rax],dil - mov eax,0x1 - leave - ret -_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov QWORD PTR [rbp-0x18],rdi - mov eax,esi - mov QWORD PTR [rbp-0x28],rdx - mov QWORD PTR [rbp-0x30],rcx - mov QWORD PTR [rbp-0x38],r8 - mov DWORD PTR [rbp-0x20],r9d - mov edx,DWORD PTR [rbp+0x10] - mov BYTE PTR [rbp-0x1c],al - mov eax,edx - mov BYTE PTR [rbp-0x3c],al - mov rax,QWORD PTR [rbp-0x30] - cmp rax,QWORD PTR [rbp-0x28] - jb 4068d7 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x47> - mov edx,0x436178 - mov esi,0x64f - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x18] - mov rsi,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x8] - lea ecx,[rax+0x1] - mov rdx,QWORD PTR [rbp-0x18] - mov DWORD PTR [rdx+0x8],ecx - cdqe - lea rdx,[rsi+rax*1] - movzx eax,BYTE PTR [rbp-0x1c] - mov BYTE PTR [rdx],al - movzx eax,BYTE PTR [rbp-0x3c] - xor eax,0x1 - test al,al - je 40691a <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x8a> - mov rax,QWORD PTR [rbp-0x38] - cmp rax,QWORD PTR [rbp-0x30] - jb 40691a <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x8a> - mov eax,0x2 - jmp 406a97 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x207> - mov rax,QWORD PTR [rbp-0x18] - mov edx,DWORD PTR [rax+0x8] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0xc] - cmp edx,eax - jge 406936 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xa6> - mov eax,0x0 - jmp 406a97 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x207> - movzx eax,BYTE PTR [rbp-0x3c] - xor eax,0x1 - test al,al - je 406963 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xd3> - mov rax,QWORD PTR [rbp-0x38] - cmp rax,QWORD PTR [rbp-0x28] - jae 406959 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xc9> - mov rax,QWORD PTR [rbp-0x28] - sub rax,QWORD PTR [rbp-0x38] - cmp QWORD PTR [rbp-0x38],rax - jb 406985 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xf5> - mov eax,0x2 - jmp 406a97 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x207> - cmp QWORD PTR [rbp-0x38],0x1 - jne 406971 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xe1> - cmp QWORD PTR [rbp-0x28],0x2 - ja 406985 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0xf5> - mov edx,0x436178 - mov esi,0x659 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rdx,QWORD PTR [rbp-0x38] - mov rcx,QWORD PTR [rbp-0x30] - mov rax,QWORD PTR [rbp-0x28] - mov rsi,rcx - mov rdi,rax - call 4066dd <_ZN3fmt2v76detail19get_round_directionEmmm> - mov DWORD PTR [rbp-0x8],eax - cmp DWORD PTR [rbp-0x8],0x1 - je 4069bf <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x12f> - cmp DWORD PTR [rbp-0x8],0x2 - jne 4069b5 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x125> - mov eax,0x1 - jmp 406a97 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x207> - mov eax,0x2 - jmp 406a97 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x207> - mov rax,QWORD PTR [rbp-0x18] - mov rdx,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x8] - cdqe - sub rax,0x1 - add rax,rdx - movzx edx,BYTE PTR [rax] - add edx,0x1 - mov BYTE PTR [rax],dl - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x8] - sub eax,0x1 - mov DWORD PTR [rbp-0x4],eax - jmp 406a1f <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x18f> - mov rax,QWORD PTR [rbp-0x18] - mov rdx,QWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - cdqe - add rax,rdx - mov BYTE PTR [rax],0x30 - mov rax,QWORD PTR [rbp-0x18] - mov rax,QWORD PTR [rax] - mov edx,DWORD PTR [rbp-0x4] - movsxd rdx,edx - sub rdx,0x1 - add rax,rdx - movzx edx,BYTE PTR [rax] - add edx,0x1 - mov BYTE PTR [rax],dl - sub DWORD PTR [rbp-0x4],0x1 - cmp DWORD PTR [rbp-0x4],0x0 - jle 406a3b <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x1ab> - mov rax,QWORD PTR [rbp-0x18] - mov rdx,QWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - cdqe - add rax,rdx - movzx eax,BYTE PTR [rax] - cmp al,0x39 - jg 4069ed <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x15d> - mov rax,QWORD PTR [rbp-0x18] - mov rax,QWORD PTR [rax] - movzx eax,BYTE PTR [rax] - cmp al,0x39 - jle 406a92 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x202> - mov rax,QWORD PTR [rbp-0x18] - mov rax,QWORD PTR [rax] - mov BYTE PTR [rax],0x31 - mov rax,QWORD PTR [rbp-0x18] - movzx eax,BYTE PTR [rax+0x14] - test al,al - je 406a81 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x1f1> - mov rax,QWORD PTR [rbp-0x18] - mov rsi,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x8] - lea ecx,[rax+0x1] - mov rdx,QWORD PTR [rbp-0x18] - mov DWORD PTR [rdx+0x8],ecx - cdqe - add rax,rsi - mov BYTE PTR [rax],0x30 - jmp 406a92 <_ZN3fmt2v76detail13fixed_handler8on_digitEcmmmib+0x202> - mov rax,QWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rax+0x10] - lea edx,[rax+0x1] - mov rax,QWORD PTR [rbp-0x18] - mov DWORD PTR [rax+0x10],edx - mov eax,0x1 - leave - ret -_ZN3fmt2v76detail9dragonbox7umul128Emm: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x28 - mov QWORD PTR [rbp-0x28],rdi - mov QWORD PTR [rbp-0x30],rsi - mov rsi,QWORD PTR [rbp-0x28] - mov rcx,rsi - mov ebx,0x0 - mov rsi,QWORD PTR [rbp-0x30] - mov rax,rsi - mov edx,0x0 - mov rdi,rbx - imul rdi,rax - mov rsi,rdx - imul rsi,rcx - add rsi,rdi - mul rcx - lea rcx,[rsi+rdx*1] - mov rdx,rcx - mov rcx,rax - mov rbx,rdx - lea rax,[rbp-0x20] - mov rsi,rcx - mov rdi,rax - call 405174 <_ZN3fmt2v76detail15uint128_wrapperC1Eo> - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox15umul128_upper64Emm: - push rbp - mov rbp,rsp - push rbx - mov QWORD PTR [rbp-0x28],rdi - mov QWORD PTR [rbp-0x30],rsi - mov rsi,QWORD PTR [rbp-0x28] - mov rcx,rsi - mov ebx,0x0 - mov rsi,QWORD PTR [rbp-0x30] - mov rax,rsi - mov edx,0x0 - mov rdi,rbx - imul rdi,rax - mov rsi,rdx - imul rsi,rcx - add rsi,rdi - mul rcx - lea rcx,[rsi+rdx*1] - mov rdx,rcx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov rax,rdx - xor edx,edx - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox15umul192_upper64EmNS1_15uint128_wrapperE: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov QWORD PTR [rbp-0x18],rdi - mov rcx,rdx - mov rax,rsi - mov rdx,rdi - mov rdx,rcx - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - lea rax,[rbp-0x30] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 406a99 <_ZN3fmt2v76detail9dragonbox7umul128Emm> - mov QWORD PTR [rbp-0x10],rax - mov QWORD PTR [rbp-0x8],rdx - lea rax,[rbp-0x30] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 406b00 <_ZN3fmt2v76detail9dragonbox15umul128_upper64Emm> - mov rdx,rax - lea rax,[rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 4051d6 <_ZN3fmt2v76detail15uint128_wrapperpLEm> - lea rax,[rbp-0x10] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - leave - ret -_ZN3fmt2v76detail9dragonbox14umul96_upper32Ejm: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - mov QWORD PTR [rbp-0x10],rsi - mov eax,DWORD PTR [rbp-0x4] - mov rdx,QWORD PTR [rbp-0x10] - mov rsi,rdx - mov rdi,rax - call 406b00 <_ZN3fmt2v76detail9dragonbox15umul128_upper64Emm> - leave - ret -_ZN3fmt2v76detail9dragonbox16umul192_middle64EmNS1_15uint128_wrapperE: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov QWORD PTR [rbp-0x18],rdi - mov rcx,rdx - mov rax,rsi - mov rdx,rdi - mov rdx,rcx - mov QWORD PTR [rbp-0x30],rax - mov QWORD PTR [rbp-0x28],rdx - lea rax,[rbp-0x30] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,QWORD PTR [rbp-0x18] - imul rax,rdx - mov QWORD PTR [rbp-0x8],rax - lea rax,[rbp-0x30] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 406b00 <_ZN3fmt2v76detail9dragonbox15umul128_upper64Emm> - mov QWORD PTR [rbp-0x10],rax - mov rdx,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rbp-0x10] - add rax,rdx - leave - ret -_ZN3fmt2v76detail9dragonbox14umul96_lower64Ejm: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x4],edi - mov QWORD PTR [rbp-0x10],rsi - mov eax,DWORD PTR [rbp-0x4] - imul rax,QWORD PTR [rbp-0x10] - pop rbp - ret -_ZN3fmt2v76detail9dragonbox16floor_log10_pow2Ei: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov DWORD PTR [rbp-0x14],edi - cmp DWORD PTR [rbp-0x14],0x6a4 - jg 406ca3 <_ZN3fmt2v76detail9dragonbox16floor_log10_pow2Ei+0x1d> - cmp DWORD PTR [rbp-0x14],0xfffff95c - jge 406cb7 <_ZN3fmt2v76detail9dragonbox16floor_log10_pow2Ei+0x31> - mov edx,0x436259 - mov esi,0x6bb - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov DWORD PTR [rbp-0x4],0x16 - mov eax,DWORD PTR [rbp-0x14] - imul eax,eax,0x134413 - sar eax,0x16 - leave - ret -_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei: - push rbp - mov rbp,rsp - sub rsp,0x30 - mov DWORD PTR [rbp-0x24],edi - cmp DWORD PTR [rbp-0x24],0x4d1 - jg 406ce9 <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei+0x1d> - cmp DWORD PTR [rbp-0x24],0xfffffb2f - jge 406cfd <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei+0x31> - mov edx,0x436259 - mov esi,0x6c3 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov QWORD PTR [rbp-0x8],0x3 - movabs rax,0x5269e12f346e2bf9 - mov QWORD PTR [rbp-0x10],rax - mov DWORD PTR [rbp-0x14],0x13 - mov eax,DWORD PTR [rbp-0x24] - imul eax,eax,0x1a934f - sar eax,0x13 - leave - ret -_ZN3fmt2v76detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov DWORD PTR [rbp-0x14],edi - cmp DWORD PTR [rbp-0x14],0x6a4 - jg 406d45 <_ZN3fmt2v76detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei+0x1d> - cmp DWORD PTR [rbp-0x14],0xfffff95c - jge 406d59 <_ZN3fmt2v76detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei+0x31> - mov edx,0x436259 - mov esi,0x6cd - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - movabs rax,0x1ffbfc2bbc780375 - mov QWORD PTR [rbp-0x8],rax - mov DWORD PTR [rbp-0xc],0x16 - mov eax,DWORD PTR [rbp-0x14] - imul eax,eax,0x134413 - sub eax,0x7feff - sar eax,0x16 - leave - ret -_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Eji: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - mov DWORD PTR [rbp-0x8],esi - cmp DWORD PTR [rbp-0x8],0x0 - jg 406da9 <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Eji+0x28> - mov edx,0x436178 - mov esi,0x6d9 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - cmp DWORD PTR [rbp-0x4],0x0 - jne 406dc3 <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Eji+0x42> - mov edx,0x436178 - mov esi,0x6da - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - xor eax,eax - tzcnt eax,DWORD PTR [rbp-0x4] - cmp DWORD PTR [rbp-0x8],eax - setle al - leave - ret -_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Emi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - cmp DWORD PTR [rbp-0xc],0x0 - jg 406dfb <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Emi+0x29> - mov edx,0x436178 - mov esi,0x6e2 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - cmp QWORD PTR [rbp-0x8],0x0 - jne 406e16 <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_2Emi+0x44> - mov edx,0x436178 - mov esi,0x6e3 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - xor eax,eax - tzcnt rax,QWORD PTR [rbp-0x8] - cmp DWORD PTR [rbp-0xc],eax - setle al - leave - ret -_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_5Eji: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - mov DWORD PTR [rbp-0x8],esi - cmp DWORD PTR [rbp-0x8],0xa - jle 406e4e <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_5Eji+0x28> - mov edx,0x436259 - mov esi,0x6ed - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov eax,DWORD PTR [rbp-0x8] - cdqe - mov eax,DWORD PTR [rax*8+0x4487c0] - imul eax,DWORD PTR [rbp-0x4] - mov edx,DWORD PTR [rbp-0x8] - movsxd rdx,edx - mov edx,DWORD PTR [rdx*8+0x4487c4] - cmp edx,eax - setae al - leave - ret -_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_5Emi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - cmp DWORD PTR [rbp-0xc],0x17 - jle 406e9b <_ZN3fmt2v76detail9dragonbox23divisible_by_power_of_5Emi+0x29> - mov edx,0x436259 - mov esi,0x6f2 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov eax,DWORD PTR [rbp-0xc] - cdqe - shl rax,0x4 - add rax,0x448820 - mov rax,QWORD PTR [rax] - imul rax,QWORD PTR [rbp-0x8] - mov edx,DWORD PTR [rbp-0xc] - movsxd rdx,edx - shl rdx,0x4 - add rdx,0x448828 - mov rdx,QWORD PTR [rdx] - cmp rdx,rax - setae al - leave - ret -_ZN3fmt2v76detail9dragonbox28divide_by_10_to_kappa_plus_1Ej: - push rbp - mov rbp,rsp - mov DWORD PTR [rbp-0x4],edi - mov eax,DWORD PTR [rbp-0x4] - mov eax,eax - imul rax,rax,0x51eb851f - shr rax,0x20 - shr eax,0x5 - pop rbp - ret -_ZN3fmt2v76detail9dragonbox28divide_by_10_to_kappa_plus_1Em: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov rax,QWORD PTR [rbp-0x8] - movabs rdx,0x83126e978d4fdf3c - mov rsi,rdx - mov rdi,rax - call 406b00 <_ZN3fmt2v76detail9dragonbox15umul128_upper64Emm> - shr rax,0x9 - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE16get_cached_powerEi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - cmp DWORD PTR [rbp-0x4],0xffffffe1 - jl 406f2c <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE16get_cached_powerEi+0x17> - cmp DWORD PTR [rbp-0x4],0x2e - jle 406f40 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE16get_cached_powerEi+0x2b> - mov edx,0x43626c - mov esi,0x728 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov eax,DWORD PTR [rbp-0x4] - add eax,0x1f - cdqe - mov rax,QWORD PTR [rax*8+0x4489a0] - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE11compute_mulEjRKm: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - mov QWORD PTR [rbp-0x10],rsi - mov rax,QWORD PTR [rbp-0x10] - mov rdx,QWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - mov rsi,rdx - mov edi,eax - call 406be7 <_ZN3fmt2v76detail9dragonbox14umul96_upper32Ejm> - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE13compute_deltaERKmi: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax] - mov eax,0x3f - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - pop rbp - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE18compute_mul_parityEjRKmi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov DWORD PTR [rbp-0x4],edi - mov QWORD PTR [rbp-0x10],rsi - mov DWORD PTR [rbp-0x8],edx - cmp DWORD PTR [rbp-0x8],0x0 - jg 406fc7 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE18compute_mul_parityEjRKmi+0x2c> - mov edx,0x436178 - mov esi,0x73a - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - cmp DWORD PTR [rbp-0x8],0x3f - jle 406fe1 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE18compute_mul_parityEjRKmi+0x46> - mov edx,0x436178 - mov esi,0x73b - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x10] - mov rdx,QWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - mov rsi,rdx - mov edi,eax - call 406c71 <_ZN3fmt2v76detail9dragonbox14umul96_lower64Ejm> - mov rdx,rax - mov eax,0x40 - sub eax,DWORD PTR [rbp-0x8] - mov ecx,eax - shr rdx,cl - mov rax,rdx - and eax,0x1 - test rax,rax - setne al - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE47compute_left_endpoint_for_shorter_interval_caseERKmi: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax] - shr rax,0x19 - sub rdx,rax - mov eax,0x28 - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - pop rbp - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE48compute_right_endpoint_for_shorter_interval_caseERKmi: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rax] - shr rax,0x18 - add rdx,rax - mov eax,0x28 - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - pop rbp - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIfE42compute_round_up_for_shorter_interval_caseERKmi: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdx,QWORD PTR [rax] - mov eax,0x27 - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - add eax,0x1 - shr eax,1 - pop rbp - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x98 - mov DWORD PTR [rbp-0x94],edi - cmp DWORD PTR [rbp-0x94],0xfffffedc - jl 4070ca <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x2a> - cmp DWORD PTR [rbp-0x94],0x146 - jle 4070de <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x3e> - mov edx,0x43626c - mov esi,0x75d - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov eax,DWORD PTR [rbp-0x94] - add eax,0x124 - movsxd rdx,eax - imul rdx,rdx,0x4bda12f7 - shr rdx,0x20 - mov ecx,edx - sar ecx,0x3 - cdq - mov eax,ecx - sub eax,edx - mov DWORD PTR [rbp-0x14],eax - mov edx,DWORD PTR [rbp-0x14] - mov eax,edx - add eax,eax - add eax,edx - lea edx,[rax*8+0x0] - add eax,edx - sub eax,0x124 - mov DWORD PTR [rbp-0x18],eax - mov eax,DWORD PTR [rbp-0x94] - sub eax,DWORD PTR [rbp-0x18] - mov DWORD PTR [rbp-0x1c],eax - mov eax,DWORD PTR [rbp-0x14] - cdqe - shl rax,0x4 - add rax,0x448fc0 - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rax] - mov QWORD PTR [rbp-0x70],rax - mov QWORD PTR [rbp-0x68],rdx - cmp DWORD PTR [rbp-0x1c],0x0 - jne 40715b <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0xbb> - mov rax,QWORD PTR [rbp-0x70] - mov rdx,QWORD PTR [rbp-0x68] - jmp 4073b2 <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x312> - mov edx,DWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rbp-0x1c] - add eax,edx - mov edi,eax - call 406ccc <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei> - mov ebx,eax - mov eax,DWORD PTR [rbp-0x18] - mov edi,eax - call 406ccc <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei> - sub ebx,eax - mov edx,ebx - mov eax,edx - sub eax,DWORD PTR [rbp-0x1c] - mov DWORD PTR [rbp-0x20],eax - cmp DWORD PTR [rbp-0x20],0x0 - jle 40718e <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0xee> - cmp DWORD PTR [rbp-0x20],0x3f - jle 4071a2 <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x102> - mov edx,0x43627e - mov esi,0x772 - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov eax,DWORD PTR [rbp-0x1c] - cdqe - mov rax,QWORD PTR [rax*8+0x448c20] - mov QWORD PTR [rbp-0x28],rax - lea rax,[rbp-0x70] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - mov rax,QWORD PTR [rbp-0x28] - mov rsi,rax - mov rdi,rdx - call 406a99 <_ZN3fmt2v76detail9dragonbox7umul128Emm> - mov QWORD PTR [rbp-0x80],rax - mov QWORD PTR [rbp-0x78],rdx - lea rax,[rbp-0x70] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov edx,DWORD PTR [rbp-0x18] - shr edx,0x1f - mov ecx,edx - sub rax,rcx - mov rdx,rax - mov rax,QWORD PTR [rbp-0x28] - mov rsi,rax - mov rdi,rdx - call 406a99 <_ZN3fmt2v76detail9dragonbox7umul128Emm> - mov QWORD PTR [rbp-0x90],rax - mov QWORD PTR [rbp-0x88],rdx - lea rax,[rbp-0x90] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - lea rax,[rbp-0x80] - mov rsi,rdx - mov rdi,rax - call 4051d6 <_ZN3fmt2v76detail15uint128_wrapperpLEm> - lea rax,[rbp-0x80] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - mov eax,0x40 - sub eax,DWORD PTR [rbp-0x20] - mov ecx,eax - shl rdx,cl - mov rax,rdx - mov QWORD PTR [rbp-0x30],rax - lea rax,[rbp-0x80] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov rdx,rax - mov eax,0x40 - sub eax,DWORD PTR [rbp-0x20] - mov ecx,eax - shl rdx,cl - mov rax,rdx - mov QWORD PTR [rbp-0x38],rax - lea rax,[rbp-0x80] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov rdx,rax - mov eax,DWORD PTR [rbp-0x20] - mov ecx,eax - shr rdx,cl - mov rax,rdx - or rax,QWORD PTR [rbp-0x30] - mov rbx,rax - lea rax,[rbp-0x90] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov rdx,rax - mov eax,DWORD PTR [rbp-0x20] - mov ecx,eax - shr rdx,cl - mov rax,rdx - or rax,QWORD PTR [rbp-0x38] - mov rdx,rax - lea rax,[rbp-0x60] - mov rsi,rbx - mov rdi,rax - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - mov rax,QWORD PTR [rbp-0x60] - mov rdx,QWORD PTR [rbp-0x58] - mov QWORD PTR [rbp-0x80],rax - mov QWORD PTR [rbp-0x78],rdx - cmp DWORD PTR [rbp-0x18],0x0 - jns 4072f2 <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x252> - lea rax,[rbp-0x80] - mov esi,0x1 - mov rdi,rax - call 4051d6 <_ZN3fmt2v76detail15uint128_wrapperpLEm> - mov eax,DWORD PTR [rbp-0x94] - add eax,0x124 - lea edx,[rax+0xf] - test eax,eax - cmovs eax,edx - sar eax,0x4 - mov DWORD PTR [rbp-0x3c],eax - mov eax,DWORD PTR [rbp-0x3c] - cdqe - mov esi,DWORD PTR [rax*4+0x448d00] - mov eax,DWORD PTR [rbp-0x94] - lea edx,[rax+0x124] - mov eax,edx - sar eax,0x1f - shr eax,0x1c - add edx,eax - and edx,0xf - sub edx,eax - mov eax,edx - add eax,eax - mov ecx,eax - shr esi,cl - mov eax,esi - and eax,0x3 - mov DWORD PTR [rbp-0x40],eax - lea rax,[rbp-0x80] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov edx,DWORD PTR [rbp-0x40] - lea rbx,[rax+rdx*1] - lea rax,[rbp-0x80] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - cmp rbx,rax - jae 40737a <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE16get_cached_powerEi+0x2da> - mov edx,0x436178 - mov esi,0x78c - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - lea rax,[rbp-0x80] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rbx,rax - lea rax,[rbp-0x80] - mov rdi,rax - call 4051c0 <_ZNK3fmt2v76detail15uint128_wrapper3lowEv> - mov edx,DWORD PTR [rbp-0x40] - add rdx,rax - lea rax,[rbp-0x50] - mov rsi,rbx - mov rdi,rax - call 40511a <_ZN3fmt2v76detail15uint128_wrapperC1Emm> - mov rax,QWORD PTR [rbp-0x50] - mov rdx,QWORD PTR [rbp-0x48] - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE11compute_mulEmRKNS1_15uint128_wrapperE: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov rax,QWORD PTR [rbp-0x10] - mov rcx,QWORD PTR [rax] - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rbp-0x8] - mov rsi,rcx - mov rdi,rax - call 406b63 <_ZN3fmt2v76detail9dragonbox15umul192_upper64EmNS1_15uint128_wrapperE> - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE13compute_deltaERKNS1_15uint128_wrapperEi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - mov eax,0x3f - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE18compute_mul_parityEmRKNS1_15uint128_wrapperEi: - push rbp - mov rbp,rsp - sub rsp,0x20 - mov QWORD PTR [rbp-0x8],rdi - mov QWORD PTR [rbp-0x10],rsi - mov DWORD PTR [rbp-0x14],edx - cmp DWORD PTR [rbp-0x14],0x0 - jg 407441 <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE18compute_mul_parityEmRKNS1_15uint128_wrapperEi+0x2d> - mov edx,0x436178 - mov esi,0x79e - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - cmp DWORD PTR [rbp-0x14],0x3f - jle 40745b <_ZN3fmt2v76detail9dragonbox14cache_accessorIdE18compute_mul_parityEmRKNS1_15uint128_wrapperEi+0x47> - mov edx,0x436178 - mov esi,0x79f - mov edi,0x436088 - call 4039cc <_ZN3fmt2v76detail11assert_failEPKciS3_> - mov rax,QWORD PTR [rbp-0x10] - mov rcx,QWORD PTR [rax] - mov rdx,QWORD PTR [rax+0x8] - mov rax,QWORD PTR [rbp-0x8] - mov rsi,rcx - mov rdi,rax - call 406c0a <_ZN3fmt2v76detail9dragonbox16umul192_middle64EmNS1_15uint128_wrapperE> - mov rdx,rax - mov eax,0x40 - sub eax,DWORD PTR [rbp-0x14] - mov ecx,eax - shr rdx,cl - mov rax,rdx - and eax,0x1 - test rax,rax - setne al - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE47compute_left_endpoint_for_shorter_interval_caseERKNS1_15uint128_wrapperEi: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x18 - mov QWORD PTR [rbp-0x18],rdi - mov DWORD PTR [rbp-0x1c],esi - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rbx,rax - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - shr rax,0x36 - mov rdx,rbx - sub rdx,rax - mov eax,0xb - sub eax,DWORD PTR [rbp-0x1c] - mov ecx,eax - shr rdx,cl - mov rax,rdx - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE48compute_right_endpoint_for_shorter_interval_caseERKNS1_15uint128_wrapperEi: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x18 - mov QWORD PTR [rbp-0x18],rdi - mov DWORD PTR [rbp-0x1c],esi - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rbx,rax - mov rax,QWORD PTR [rbp-0x18] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - shr rax,0x35 - lea rdx,[rbx+rax*1] - mov eax,0xb - sub eax,DWORD PTR [rbp-0x1c] - mov ecx,eax - shr rdx,cl - mov rax,rdx - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox14cache_accessorIdE42compute_round_up_for_shorter_interval_caseERKNS1_15uint128_wrapperEi: - push rbp - mov rbp,rsp - sub rsp,0x10 - mov QWORD PTR [rbp-0x8],rdi - mov DWORD PTR [rbp-0xc],esi - mov rax,QWORD PTR [rbp-0x8] - mov rdi,rax - call 4051a6 <_ZNK3fmt2v76detail15uint128_wrapper4highEv> - mov rdx,rax - mov eax,0xa - sub eax,DWORD PTR [rbp-0xc] - mov ecx,eax - shr rdx,cl - mov rax,rdx - add rax,0x1 - shr rax,1 - leave - ret -_ZN3fmt2v76detail11utf8_decodeEPKcPjPi: - push rbp - mov rbp,rsp - sub rsp,0x40 - mov QWORD PTR [rbp-0x28],rdi - mov QWORD PTR [rbp-0x30],rsi - mov QWORD PTR [rbp-0x38],rdx - mov rax,QWORD PTR [rbp-0x28] - mov rdi,rax - call 40bded <_ZN3fmt2v76detail17code_point_lengthIcEEiPKT_> - mov DWORD PTR [rbp-0x4],eax - mov eax,DWORD PTR [rbp-0x4] - movsxd rdx,eax - mov rax,QWORD PTR [rbp-0x28] - add rax,rdx - mov QWORD PTR [rbp-0x10],rax - mov rax,QWORD PTR [rbp-0x28] - mov QWORD PTR [rbp-0x18],rax - mov rax,QWORD PTR [rbp-0x18] - movzx eax,BYTE PTR [rax] - movzx edx,al - mov eax,DWORD PTR [rbp-0x4] - cdqe - mov eax,DWORD PTR [rax*4+0x436940] - and eax,edx - shl eax,0x12 - mov edx,eax - mov rax,QWORD PTR [rbp-0x30] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x30] - mov eax,DWORD PTR [rax] - mov rdx,QWORD PTR [rbp-0x18] - add rdx,0x1 - movzx edx,BYTE PTR [rdx] - movzx edx,dl - shl edx,0xc - and edx,0x3f000 - or edx,eax - mov rax,QWORD PTR [rbp-0x30] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x30] - mov eax,DWORD PTR [rax] - mov rdx,QWORD PTR [rbp-0x18] - add rdx,0x2 - movzx edx,BYTE PTR [rdx] - movzx edx,dl - shl edx,0x6 - and edx,0xfc0 - or edx,eax - mov rax,QWORD PTR [rbp-0x30] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x30] - mov eax,DWORD PTR [rax] - mov rdx,QWORD PTR [rbp-0x18] - add rdx,0x3 - movzx edx,BYTE PTR [rdx] - movzx edx,dl - and edx,0x3f - or edx,eax - mov rax,QWORD PTR [rbp-0x30] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x30] - mov edx,DWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - cdqe - mov eax,DWORD PTR [rax*4+0x436980] - mov ecx,eax - shr edx,cl - mov rax,QWORD PTR [rbp-0x30] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x30] - mov edx,DWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - cdqe - mov eax,DWORD PTR [rax*4+0x436960] - cmp edx,eax - jae 40765f <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x101> - mov edx,0x40 - jmp 407664 <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x106> - mov edx,0x0 - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x30] - mov eax,DWORD PTR [rax] - shr eax,0xb - cmp eax,0x1b - jne 407685 <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x127> - mov eax,0x80 - jmp 40768a <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x12c> - mov eax,0x0 - or edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x30] - mov eax,DWORD PTR [rax] - cmp eax,0x10ffff - jbe 4076ac <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x14e> - mov eax,0x100 - jmp 4076b1 <_ZN3fmt2v76detail11utf8_decodeEPKcPjPi+0x153> - mov eax,0x0 - or edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov eax,DWORD PTR [rax] - mov rdx,QWORD PTR [rbp-0x18] - add rdx,0x1 - movzx edx,BYTE PTR [rdx] - shr dl,0x2 - movzx edx,dl - and edx,0x30 - or edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov eax,DWORD PTR [rax] - mov rdx,QWORD PTR [rbp-0x18] - add rdx,0x2 - movzx edx,BYTE PTR [rdx] - shr dl,0x4 - movzx edx,dl - and edx,0xc - or edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax] - mov rax,QWORD PTR [rbp-0x18] - add rax,0x3 - movzx eax,BYTE PTR [rax] - shr al,0x6 - movzx eax,al - or edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov eax,DWORD PTR [rax] - xor eax,0x2a - mov edx,eax - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x38] - mov edx,DWORD PTR [rax] - mov eax,DWORD PTR [rbp-0x4] - cdqe - mov eax,DWORD PTR [rax*4+0x4369a0] - mov ecx,eax - sar edx,cl - mov rax,QWORD PTR [rbp-0x38] - mov DWORD PTR [rax],edx - mov rax,QWORD PTR [rbp-0x10] - leave - ret - nop -_ZN3fmt2v726basic_format_parse_contextIcNS0_6detail13error_handlerEEC1ENS0_17basic_string_viewIcEES3_i: - push rbp - mov rbp,rsp - mov QWORD PTR [rbp-0x8],rdi - mov rax,rsi - mov rsi,rdx - mov rdx,rsi - mov QWORD PTR [rbp-0x20],rax - mov QWORD PTR [rbp-0x18],rdx - mov DWORD PTR [rbp-0x10],ecx - mov rcx,QWORD PTR [rbp-0x8] - mov rax,QWORD PTR [rbp-0x20] - mov rdx,QWORD PTR [rbp-0x18] - mov QWORD PTR [rcx],rax - mov QWORD PTR [rcx+0x8],rdx - mov rax,QWORD PTR [rbp-0x8] - mov edx,DWORD PTR [rbp-0x10] - mov DWORD PTR [rax+0x10],edx - nop - pop rbp - ret -_ZNK3fmt2v76detail11stringifierclB5cxx11ENS0_16basic_format_argINS0_20basic_format_contextINS1_15buffer_appenderIcEEcEEE6handleE: - push rbp - mov rbp,rsp - push rbx - sub rsp,0x2b8 - mov QWORD PTR [rbp-0x2a8],rdi - mov QWORD PTR [rbp-0x2b0],rsi - mov QWORD PTR [rbp-0x2c0],rdx - mov QWORD PTR [rbp-0x2b8],rcx - lea rax,[rbp-0x39] - mov rdi,rax - call 403470 <_ZNSaIcEC1Ev@plt> - lea rdx,[rbp-0x39] - lea rax,[rbp-0x260] - mov rsi,rdx - mov rdi,rax - call 40b742 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEEC1ERKS2_> - lea rax,[rbp-0x39] - mov rdi,rax - call 4032d0 <_ZNSaIcED1Ev@plt> - mov QWORD PTR [rbp-0x280],0x0 - mov QWORD PTR [rbp-0x278],0x0 - mov DWORD PTR [rbp-0x270],0x0 - lea rax,[rbp-0x38] - mov rdi,rax - call 405012 <_ZN3fmt2v76detail10locale_refC1Ev> - lea rax,[rbp-0x30] - mov rdi,rax - call 40be6c <_ZN3fmt2v717basic_format_argsINS0_20basic_format_contextINS0_6detail15buffer_appenderIcEEcEEEC1Ev> - lea rdx,[rbp-0x260] - lea rax,[rbp-0x18] - mov rsi,rdx - mov rdi,rax - call 40b5ec <_ZN3fmt2v76detail15buffer_appenderIcEC1ERNS1_6bufferIcEE> - mov rcx,QWORD PTR [rbp-0x38] - mov rax,QWORD PTR [rbp-0x30] - mov rdx,QWORD PTR [rbp-0x28] - mov rsi,QWORD PTR [rbp-0x18] - lea rdi,[rbp-0x2a0] - mov r8,rcx - mov rcx,rdx - mov rdx,rax - call 40be82 <_ZN3fmt2v720basic_format_contextINS0_6detail15buffer_appenderIcEEcEC1ES4_NS0_17basic_format_argsIS5_EENS2_10locale_refE> - lea rdx,[rbp-0x2a0] - lea rcx,[rbp-0x280] - lea rax,[rbp-0x2c0] - mov rsi,rcx - mov rdi,rax - call 40bec8 <_ZNK3fmt2v716basic_format_argINS0_20basic_format_contextINS0_6detail15buffer_appenderIcEEcEEE6handle6formatERNS0_26basic_format_parse_contextIcNS3_13error_handlerEEERS6_> - mov rax,QWORD PTR [rbp-0x2a8] - lea rdx,[rbp-0x260] - mov rsi,rdx - mov rdi,rax - call 40b926 <_ZN3fmt2v79to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE> - nop - lea rax,[rbp-0x260] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - jmp 4078bd <_ZNK3fmt2v76detail11stringifierclB5cxx11ENS0_16basic_format_argINS0_20basic_format_contextINS1_15buffer_appenderIcEEcEEE6handleE+0x131> - mov rbx,rax - lea rax,[rbp-0x260] - mov rdi,rax - call 40b7b2 <_ZN3fmt2v719basic_memory_bufferIcLm500ESaIcEED1Ev> - mov rax,rbx - mov rdi,rax - call 403460 <_Unwind_Resume@plt> - mov rax,QWORD PTR [rbp-0x2a8] - mov rbx,QWORD PTR [rbp-0x8] - leave - ret -_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_: - push rbp - mov rbp,rsp - push rbx - sub rsp,0xc8 - movss DWORD PTR [rbp-0xc4],xmm0 - lea rax,[rbp-0xc4] - mov rdi,rax - call 40cd52 <_ZN3fmt2v76detail8bit_castIjfEET_RKT0_> - mov DWORD PTR [rbp-0x20],eax - mov DWORD PTR [rbp-0x24],0x7fffff - mov eax,DWORD PTR [rbp-0x20] - and eax,0x7fffff - mov DWORD PTR [rbp-0x14],eax - call 40cd68 <_ZN3fmt2v76detail13exponent_maskIfEENS1_9dragonbox10float_infoIT_E12carrier_uintEv> - and eax,DWORD PTR [rbp-0x20] - shr eax,0x17 - mov DWORD PTR [rbp-0x18],eax - cmp DWORD PTR [rbp-0x18],0x0 - je 407b44 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x27a> - sub DWORD PTR [rbp-0x18],0x96 - cmp DWORD PTR [rbp-0x14],0x0 - jne 407b3b <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x271> - mov eax,DWORD PTR [rbp-0x18] - mov DWORD PTR [rbp-0x50],eax - mov eax,DWORD PTR [rbp-0x50] - mov edi,eax - call 406d28 <_ZN3fmt2v76detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei> - mov DWORD PTR [rbp-0x54],eax - mov eax,DWORD PTR [rbp-0x54] - neg eax - mov edi,eax - call 406ccc <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei> - mov edx,DWORD PTR [rbp-0x50] - add eax,edx - mov DWORD PTR [rbp-0x58],eax - mov eax,DWORD PTR [rbp-0x54] - neg eax - mov edi,eax - call 406f15 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE16get_cached_powerEi> - mov QWORD PTR [rbp-0xb8],rax - mov edx,DWORD PTR [rbp-0x58] - lea rax,[rbp-0xb8] - mov esi,edx - mov rdi,rax - call 407013 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE47compute_left_endpoint_for_shorter_interval_caseERKmi> - mov DWORD PTR [rbp-0x5c],eax - mov edx,DWORD PTR [rbp-0x58] - lea rax,[rbp-0xb8] - mov esi,edx - mov rdi,rax - call 407045 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE48compute_right_endpoint_for_shorter_interval_caseERKmi> - mov DWORD PTR [rbp-0x60],eax - mov eax,DWORD PTR [rbp-0x50] - mov edi,eax - call 40f52c <_ZN3fmt2v76detail9dragonbox41is_left_endpoint_integer_shorter_intervalIfEEbi> - xor eax,0x1 - test al,al - je 4079a8 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0xde> - add DWORD PTR [rbp-0x5c],0x1 - mov eax,DWORD PTR [rbp-0x60] - mov edx,eax - mov eax,0xcccccccd - imul rax,rdx - shr rax,0x20 - shr eax,0x3 - mov DWORD PTR [rbp-0xac],eax - mov edx,DWORD PTR [rbp-0xac] - mov eax,edx - shl eax,0x2 - add eax,edx - add eax,eax - cmp eax,DWORD PTR [rbp-0x5c] - jb 407abd <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x1f3> - mov eax,DWORD PTR [rbp-0x54] - add eax,0x1 - mov DWORD PTR [rbp-0xa8],eax - mov eax,DWORD PTR [rbp-0xac] - tzcnt eax,eax - mov DWORD PTR [rbp-0x64],eax - cmp DWORD PTR [rbp-0x64],0x7 - jle 407a01 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x137> - mov DWORD PTR [rbp-0x64],0x7 - mov DWORD PTR [rbp-0x68],0xcccccccd - mov DWORD PTR [rbp-0x6c],0x33333333 - mov DWORD PTR [rbp-0x70],0xc28f5c29 - mov DWORD PTR [rbp-0x74],0xa3d70a3 - mov DWORD PTR [rbp-0x78],0x0 - jmp 407a4f <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x185> - mov eax,DWORD PTR [rbp-0xac] - imul eax,eax,0xc28f5c29 - cmp eax,0xa3d70a3 - ja 407a5c <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x192> - mov eax,DWORD PTR [rbp-0xac] - imul eax,eax,0xc28f5c29 - mov DWORD PTR [rbp-0xac],eax - add DWORD PTR [rbp-0x78],0x2 - mov eax,DWORD PTR [rbp-0x64] - sub eax,0x1 - cmp DWORD PTR [rbp-0x78],eax - jl 407a26 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x15c> - jmp 407a5d <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x193> - nop - mov eax,DWORD PTR [rbp-0x78] - cmp eax,DWORD PTR [rbp-0x64] - jge 407a8e <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x1c4> - mov eax,DWORD PTR [rbp-0xac] - imul eax,eax,0xcccccccd - cmp eax,0x33333333 - ja 407a8e <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x1c4> - mov eax,DWORD PTR [rbp-0xac] - imul eax,eax,0xcccccccd - mov DWORD PTR [rbp-0xac],eax - add DWORD PTR [rbp-0x78],0x1 - mov edx,DWORD PTR [rbp-0xac] - mov eax,DWORD PTR [rbp-0x78] - mov ecx,eax - shr edx,cl - mov eax,edx - mov DWORD PTR [rbp-0xac],eax - mov edx,DWORD PTR [rbp-0x78] - mov eax,DWORD PTR [rbp-0xa8] - add eax,edx - mov DWORD PTR [rbp-0xa8],eax - mov rax,QWORD PTR [rbp-0xac] - jmp 407b33 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x269> - mov edx,DWORD PTR [rbp-0x58] - lea rax,[rbp-0xb8] - mov esi,edx - mov rdi,rax - call 407077 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE42compute_round_up_for_shorter_interval_caseERKmi> - mov DWORD PTR [rbp-0xac],eax - mov eax,DWORD PTR [rbp-0x54] - mov DWORD PTR [rbp-0xa8],eax - cmp DWORD PTR [rbp-0x50],0xffffffdd - jl 407b12 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x248> - cmp DWORD PTR [rbp-0x50],0xffffffde - jge 407b12 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x248> - mov eax,DWORD PTR [rbp-0xac] - and eax,0x1 - test eax,eax - jne 407b01 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x237> - mov eax,DWORD PTR [rbp-0xac] - jmp 407b0a <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x240> - mov eax,DWORD PTR [rbp-0xac] - sub eax,0x1 - mov DWORD PTR [rbp-0xac],eax - jmp 407b2c <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x262> - mov eax,DWORD PTR [rbp-0xac] - cmp eax,DWORD PTR [rbp-0x5c] - jae 407b2c <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x262> - mov eax,DWORD PTR [rbp-0xac] - add eax,0x1 - mov DWORD PTR [rbp-0xac],eax - mov rax,QWORD PTR [rbp-0xac] - mov rbx,rax - jmp 407f29 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x65f> - or DWORD PTR [rbp-0x14],0x800000 - jmp 407b6b <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x2a1> - cmp DWORD PTR [rbp-0x14],0x0 - jne 407b64 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x29a> - movabs rax,0xffffffff00000000 - and rax,rbx - mov rbx,rax - mov eax,ebx - mov rbx,rax - jmp 407f29 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x65f> - mov DWORD PTR [rbp-0x18],0xffffff6b - mov eax,DWORD PTR [rbp-0x14] - and eax,0x1 - test eax,eax - sete al - mov BYTE PTR [rbp-0x25],al - movzx eax,BYTE PTR [rbp-0x25] - mov BYTE PTR [rbp-0x26],al - mov eax,DWORD PTR [rbp-0x18] - mov edi,eax - call 406c86 <_ZN3fmt2v76detail9dragonbox16floor_log10_pow2Ei> - sub eax,0x1 - mov DWORD PTR [rbp-0x2c],eax - mov eax,DWORD PTR [rbp-0x2c] - neg eax - mov edi,eax - call 406f15 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE16get_cached_powerEi> - mov QWORD PTR [rbp-0x98],rax - mov eax,DWORD PTR [rbp-0x2c] - neg eax - mov edi,eax - call 406ccc <_ZN3fmt2v76detail9dragonbox16floor_log2_pow10Ei> - mov edx,DWORD PTR [rbp-0x18] - add eax,edx - mov DWORD PTR [rbp-0x30],eax - mov edx,DWORD PTR [rbp-0x30] - lea rax,[rbp-0x98] - mov esi,edx - mov rdi,rax - call 406f77 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE13compute_deltaERKmi> - mov DWORD PTR [rbp-0x34],eax - mov eax,DWORD PTR [rbp-0x14] - add eax,eax - mov DWORD PTR [rbp-0x38],eax - mov eax,DWORD PTR [rbp-0x38] - or eax,0x1 - mov DWORD PTR [rbp-0x3c],eax - mov eax,DWORD PTR [rbp-0x30] - mov edx,DWORD PTR [rbp-0x3c] - mov ecx,eax - shl edx,cl - lea rax,[rbp-0x98] - mov rsi,rax - mov edi,edx - call 406f52 <_ZN3fmt2v76detail9dragonbox14cache_accessorIfE11compute_mulEjRKm> - mov DWORD PTR [rbp-0x40],eax - mov eax,DWORD PTR [rbp-0x40] - mov edi,eax - call 406ece <_ZN3fmt2v76detail9dragonbox28divide_by_10_to_kappa_plus_1Ej> - mov DWORD PTR [rbp-0xa0],eax - mov eax,DWORD PTR [rbp-0xa0] - imul eax,eax,0x64 - mov edx,DWORD PTR [rbp-0x40] - sub edx,eax - mov DWORD PTR [rbp-0x1c],edx - mov eax,DWORD PTR [rbp-0x1c] - cmp DWORD PTR [rbp-0x34],eax - jb 407de6 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x51c> - mov eax,DWORD PTR [rbp-0x1c] - cmp eax,DWORD PTR [rbp-0x34] - jae 407c84 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x3ba> - cmp DWORD PTR [rbp-0x1c],0x0 - jne 407c60 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x396> - movzx eax,BYTE PTR [rbp-0x26] - xor eax,0x1 - test al,al - je 407c60 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x396> - mov edx,DWORD PTR [rbp-0x2c] - mov ecx,DWORD PTR [rbp-0x18] - mov eax,DWORD PTR [rbp-0x3c] - mov esi,ecx - mov edi,eax - call 40cd73 <_ZN3fmt2v76detail9dragonbox19is_endpoint_integerIfEEbNS2_10float_infoIT_E12carrier_uintEii> - test al,al - je 407c60 <_ZN3fmt2v76detail9dragonbox10to_decimalIfEENS2_10decimal_fpIT_EES5_+0x396> -[truncated; too many lines] diff --git a/resources/ce-bug-4848.asm b/resources/ce-bug-4848.asm new file mode 100644 index 0000000..fae370d --- /dev/null +++ b/resources/ce-bug-4848.asm @@ -0,0 +1,125 @@ +example: file format elf64-x86-64 + + +Disassembly of section .init: + +0000000000401000 <_init>: +_init(): + 401000: f3 0f 1e fa endbr64 + 401004: 48 83 ec 08 sub rsp,0x8 + 401008: 48 8b 05 e9 2f 00 00 mov rax,QWORD PTR [rip+0x2fe9] # 403ff8 <__gmon_start__@Base> + 40100f: 48 85 c0 test rax,rax + 401012: 74 02 je 401016 <_init+0x16> + 401014: ff d0 call rax + 401016: 48 83 c4 08 add rsp,0x8 + 40101a: c3 ret + +Disassembly of section .text: + +0000000000401020 <_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0>: +_Z7__rdtscv(): +/opt/compiler-explorer/gcc-12.2.0/lib/gcc/x86_64-linux-gnu/12.2.0/include/ia32intrin.h:114 + 401020: 0f 31 rdtsc +_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0(): +/app/example.cpp:14 + 401022: ff c0 inc eax + 401024: 89 05 02 30 00 00 mov DWORD PTR [rip+0x3002],eax # 40402c +/app/example.cpp:10 + 40102a: c3 ret + +000000000040102b
: +main(): +/app/example.cpp:13 + 40102b: e8 f0 ff ff ff call 401020 <_Z9call_coldIZ4mainEUlvE_EvOT_.constprop.0> +/app/example.cpp:17 + 401030: 8b 05 f6 2f 00 00 mov eax,DWORD PTR [rip+0x2ff6] # 40402c + 401036: c3 ret + 401037: 66 0f 1f 84 00 00 00 00 00 nop WORD PTR [rax+rax*1+0x0] + +0000000000401040 <_start>: +_start(): + 401040: f3 0f 1e fa endbr64 + 401044: 31 ed xor ebp,ebp + 401046: 49 89 d1 mov r9,rdx + 401049: 5e pop rsi + 40104a: 48 89 e2 mov rdx,rsp + 40104d: 48 83 e4 f0 and rsp,0xfffffffffffffff0 + 401051: 50 push rax + 401052: 54 push rsp + 401053: 45 31 c0 xor r8d,r8d + 401056: 31 c9 xor ecx,ecx + 401058: 48 c7 c7 2b 10 40 00 mov rdi,0x40102b + 40105f: ff 15 8b 2f 00 00 call QWORD PTR [rip+0x2f8b] # 403ff0 <__libc_start_main@GLIBC_2.34> + 401065: f4 hlt + 401066: 66 2e 0f 1f 84 00 00 00 00 00 cs nop WORD PTR [rax+rax*1+0x0] + +0000000000401070 <_dl_relocate_static_pie>: +_dl_relocate_static_pie(): + 401070: f3 0f 1e fa endbr64 + 401074: c3 ret + 401075: 66 2e 0f 1f 84 00 00 00 00 00 cs nop WORD PTR [rax+rax*1+0x0] + 40107f: 90 nop + +0000000000401080 : +deregister_tm_clones(): + 401080: b8 28 40 40 00 mov eax,0x404028 + 401085: 48 3d 28 40 40 00 cmp rax,0x404028 + 40108b: 74 13 je 4010a0 + 40108d: b8 00 00 00 00 mov eax,0x0 + 401092: 48 85 c0 test rax,rax + 401095: 74 09 je 4010a0 + 401097: bf 28 40 40 00 mov edi,0x404028 + 40109c: ff e0 jmp rax + 40109e: 66 90 xchg ax,ax + 4010a0: c3 ret + 4010a1: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nop WORD PTR [rax+rax*1+0x0] + 4010ac: 0f 1f 40 00 nop DWORD PTR [rax+0x0] + +00000000004010b0 : +register_tm_clones(): + 4010b0: be 28 40 40 00 mov esi,0x404028 + 4010b5: 48 81 ee 28 40 40 00 sub rsi,0x404028 + 4010bc: 48 89 f0 mov rax,rsi + 4010bf: 48 c1 ee 3f shr rsi,0x3f + 4010c3: 48 c1 f8 03 sar rax,0x3 + 4010c7: 48 01 c6 add rsi,rax + 4010ca: 48 d1 fe sar rsi,1 + 4010cd: 74 11 je 4010e0 + 4010cf: b8 00 00 00 00 mov eax,0x0 + 4010d4: 48 85 c0 test rax,rax + 4010d7: 74 07 je 4010e0 + 4010d9: bf 28 40 40 00 mov edi,0x404028 + 4010de: ff e0 jmp rax + 4010e0: c3 ret + 4010e1: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nop WORD PTR [rax+rax*1+0x0] + 4010ec: 0f 1f 40 00 nop DWORD PTR [rax+0x0] + +00000000004010f0 <__do_global_dtors_aux>: +__do_global_dtors_aux(): + 4010f0: f3 0f 1e fa endbr64 + 4010f4: 80 3d 2d 2f 00 00 00 cmp BYTE PTR [rip+0x2f2d],0x0 # 404028 <__TMC_END__> + 4010fb: 75 13 jne 401110 <__do_global_dtors_aux+0x20> + 4010fd: 55 push rbp + 4010fe: 48 89 e5 mov rbp,rsp + 401101: e8 7a ff ff ff call 401080 + 401106: c6 05 1b 2f 00 00 01 mov BYTE PTR [rip+0x2f1b],0x1 # 404028 <__TMC_END__> + 40110d: 5d pop rbp + 40110e: c3 ret + 40110f: 90 nop + 401110: c3 ret + 401111: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nop WORD PTR [rax+rax*1+0x0] + 40111c: 0f 1f 40 00 nop DWORD PTR [rax+0x0] + +0000000000401120 : +frame_dummy(): + 401120: f3 0f 1e fa endbr64 + 401124: eb 8a jmp 4010b0 + +Disassembly of section .fini: + +0000000000401128 <_fini>: +_fini(): + 401128: f3 0f 1e fa endbr64 + 40112c: 48 83 ec 08 sub rsp,0x8 + 401130: 48 83 c4 08 add rsp,0x8 + 401134: c3 ret diff --git a/src/objdump/parser.cpp b/src/objdump/parser.cpp index 4ee388f..bdcb05b 100644 --- a/src/objdump/parser.cpp +++ b/src/objdump/parser.cpp @@ -91,6 +91,29 @@ void AsmParser::ObjDumpParser::eol() this->state.commonReset(); } +void AsmParser::ObjDumpParser::maybe_remove_last_function() +{ + if (!this->labels.empty()) + { + auto previousFunc = this->labels.back(); + + bool hasUserCode = false; + + for (size_t lineIdx = previousFunc.second - 1; lineIdx < this->lines.size(); lineIdx++) { + auto line = this->lines[lineIdx]; + if (line.source.is_usercode) { + hasUserCode = true; + break; + } + } + + if (!hasUserCode) { + this->lines.erase(this->lines.begin() + previousFunc.second - 1, this->lines.end()); + this->labels.pop_back(); + } + } +} + void AsmParser::ObjDumpParser::label() { if (this->state.text.empty()) @@ -101,15 +124,17 @@ void AsmParser::ObjDumpParser::label() auto label = AssemblyTextParserUtils::getLabelFromObjdumpLabel(this->state.text); if (label) - { this->state.text = label.value(); - } + + if (this->filter.library_functions) + this->maybe_remove_last_function(); this->state.ignoreUntilNextLabel = AssemblyTextParserUtils::shouldIgnoreFunction(this->state.text, this->filter); if (this->state.ignoreUntilNextLabel) return; - this->state.checkNextFileForLibraryCode = true; + if (this->filter.library_functions) + this->state.checkNextFileForLibraryCode = true; this->state.previousLabel = this->state.text; this->state.currentLine.label = this->state.text; @@ -117,7 +142,7 @@ void AsmParser::ObjDumpParser::label() this->state.text = this->state.text + ":"; this->state.currentLine.is_label = true; - labels.push_back({ this->state.previousLabel, static_cast(lines.size() + 1) }); + this->labels.push_back({ this->state.previousLabel, static_cast(lines.size() + 1) }); } void AsmParser::ObjDumpParser::labelref() @@ -230,21 +255,7 @@ void AsmParser::ObjDumpParser::undo_last_line_if_label() void AsmParser::ObjDumpParser::do_file_check(std::string_view filename) { - if (this->state.checkNextFileForLibraryCode) - { - this->state.checkNextFileForLibraryCode = false; - - - if (this->lib_detection.file_in_library(filename)) - { - if (this->lines.size() > 0) - { - undo_last_line_if_label(); - } - - this->state.ignoreUntilNextLabel = true; - } - } + this->state.currentSourceRef.is_usercode = !this->lib_detection.file_in_library(filename); } void AsmParser::ObjDumpParser::actually_filename() diff --git a/src/objdump/parser.hpp b/src/objdump/parser.hpp index 90ca766..32f48a0 100644 --- a/src/objdump/parser.hpp +++ b/src/objdump/parser.hpp @@ -57,7 +57,7 @@ class ObjDumpParser : public IParser void actually_filename(); void do_file_check(std::string_view filename); void undo_last_line_if_label(); - + void maybe_remove_last_function(); void updateSourceRefLineNumber(); bool shouldIgnoreFunction(std::string_view name) const; void eol(); diff --git a/src/test/asmtext_filter_tests.cpp b/src/test/asmtext_filter_tests.cpp index 81c55c7..cce8676 100644 --- a/src/test/asmtext_filter_tests.cpp +++ b/src/test/asmtext_filter_tests.cpp @@ -202,3 +202,37 @@ TEST_CASE("ce-bug-7000") ApprovalTests::Approvals::verify(ss.str()); } + +TEST_CASE("ce-bug-4848") +{ + AsmParser::Filter filter; + filter.binary = true; + filter.plt = true; + filter.library_functions = true; + filter.unused_labels = true; + filter.code_only = true; + + std::string asmpath; + if (std::filesystem::current_path().string().ends_with("test")) + { + asmpath = "../../../resources/ce-bug-4848.asm"; + } + else + { + asmpath = "../../resources/ce-bug-4848.asm"; + } + + AsmParser::ObjDumpParser parser(filter); + parser.setReproducible(); + + std::fstream fs; + fs.open(asmpath, std::fstream::in); + REQUIRE(fs.is_open() == true); + + parser.fromStream(fs); + + std::stringstream ss; + parser.outputJson(ss); + + ApprovalTests::Approvals::verify(ss.str()); +}