From 5ca145c129fae21c6237dcf6ae878951ee4b2982 Mon Sep 17 00:00:00 2001 From: Benedikt Meurer Date: Tue, 22 Dec 2020 15:48:53 +0100 Subject: [PATCH] [DWARF] Correctly update .debug_addr DWARF section. This is a minimal patch to add support for also updating the addresses stored in the .debug_addr DWARF section, which is used to perform address resolution at debug time with debug fission. This is minimal in the sence that it only supports the pre-DWARFv5 .debug_addr format that is emitted by Emscripten currently, and which only consists of a simple list of addresses. Ideally the copy of DWARFYAML in the Binaryen tree should be updated with LLVM ToT at some point, which will provide full support for DWARFv5 index tables, including the new .debug_addr format. Ref: WebAssembly/binaryen#3460 Ref: emscripten-core/emscripten#13099 Bug: https://crbug.com/1161422 --- CHANGELOG.md | 2 + src/wasm/wasm-debug.cpp | 15 + test/passes/dwarf-debug_addr.bin.txt | 13103 ++++++++++++++++ test/passes/dwarf-debug_addr.passes | 1 + test/passes/dwarf-debug_addr.wasm | Bin 0 -> 14151 bytes third_party/llvm-project/DWARFEmitter.cpp | 13 + third_party/llvm-project/dwarf2yaml.cpp | 27 + .../llvm/DebugInfo/DWARF/DWARFDebugAddr.h | 3 + .../include/llvm/ObjectYAML/DWARFEmitter.h | 1 + .../include/llvm/ObjectYAML/DWARFYAML.h | 10 + 10 files changed, 13175 insertions(+) create mode 100644 test/passes/dwarf-debug_addr.bin.txt create mode 100644 test/passes/dwarf-debug_addr.passes create mode 100644 test/passes/dwarf-debug_addr.wasm diff --git a/CHANGELOG.md b/CHANGELOG.md index 27a097a7627..cd994232d0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ full changeset diff at the end of each section. Current Trunk ------------- +- `.debug_addr` sections (pre-DWARFv5) are now updated correctly when + DWARF mode is enabled. - `RefFunc` C and JS API constructors (`BinaryenRefFunc` and `ref.func` respectively) now take an extra `type` parameter, similar to `RefNull`. This is necessary for typed function references support. diff --git a/src/wasm/wasm-debug.cpp b/src/wasm/wasm-debug.cpp index 52baaf24d9d..a927f7f8115 100644 --- a/src/wasm/wasm-debug.cpp +++ b/src/wasm/wasm-debug.cpp @@ -1045,6 +1045,19 @@ static void updateLoc(llvm::DWARFYAML::Data& yaml, } } +static void updateAddr(llvm::DWARFYAML::Data& yaml, + const LocationUpdater& locationUpdater) { + for (auto& addrTable : yaml.DebugAddr) { + for (auto& addr : addrTable.Addrs) { + BinaryLocation start = addr, newStart = 0; + if (!isTombstone(start)) { + newStart = locationUpdater.getNewStart(start); + } + addr = newStart; + } + } +} + void writeDWARFSections(Module& wasm, const BinaryLocations& newLocations) { BinaryenDWARFInfo info(wasm); @@ -1064,6 +1077,8 @@ void writeDWARFSections(Module& wasm, const BinaryLocations& newLocations) { updateLoc(data, locationUpdater); + updateAddr(data, locationUpdater); + // Convert to binary sections. auto newSections = EmitDebugSections(data, false /* EmitFixups for debug_info */); diff --git a/test/passes/dwarf-debug_addr.bin.txt b/test/passes/dwarf-debug_addr.bin.txt new file mode 100644 index 00000000000..c22239a71ae --- /dev/null +++ b/test/passes/dwarf-debug_addr.bin.txt @@ -0,0 +1,13103 @@ +DWARF debug info +================ + +Contains section .debug_info (132 bytes) +Contains section .debug_abbrev (78 bytes) +Contains section .debug_gnu_pubnames (82 bytes) +Contains section .debug_gnu_pubtypes (91 bytes) +Contains section .debug_line (218 bytes) +Contains section .debug_str (31 bytes) +Contains section .debug_addr (12 bytes) + +.debug_abbrev contents: +Abbrev table for offset: 0x00000000 +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + +Abbrev table for offset: 0x0000001a +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + +Abbrev table for offset: 0x00000034 +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + + +.debug_info contents: +0x00000000: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000002c) + +0x0000000b: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x00000000] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x00000002] = "bar.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0x3db10264a7030703) + DW_AT_low_pc [DW_FORM_addr] (0x0000000000000007) + DW_AT_high_pc [DW_FORM_data4] (0x0000006c) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000000) +0x0000002c: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x001a addr_size = 0x04 (next unit at 0x00000058) + +0x00000037: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000004a) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000000a] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x0000000c] = "foo.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0x15bb0ddb32a29998) + DW_AT_low_pc [DW_FORM_addr] (0x0000000000000074) + DW_AT_high_pc [DW_FORM_data4] (0x00000033) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000004) +0x00000058: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x0034 addr_size = 0x04 (next unit at 0x00000084) + +0x00000063: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000008a) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x00000014] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x00000016] = "main.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0xd99ab4ade587775d) + DW_AT_low_pc [DW_FORM_addr] (0x00000000000000a9) + DW_AT_high_pc [DW_FORM_data4] (0x00000094) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000008) + +.debug_line contents: +debug_line[0x00000000] +Line table prologue: + total_length: 0x00000046 + version: 4 + prologue_length: 0x0000001d + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "bar.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x00000027: 00 DW_LNE_set_address (0x0000000000000007) +0x0000002e: 14 address += 0, line += 2 + 0x0000000000000007 3 0 1 0 0 is_stmt + +0x0000002f: 05 DW_LNS_set_column (14) +0x00000031: 0a DW_LNS_set_prologue_end +0x00000032: 02 DW_LNS_advance_pc (44) +0x00000034: 13 address += 0, line += 1 + 0x0000000000000033 4 14 1 0 0 is_stmt prologue_end + +0x00000035: 05 DW_LNS_set_column (10) +0x00000037: 06 DW_LNS_negate_stmt +0x00000038: 74 address += 7, line += 0 + 0x000000000000003a 4 10 1 0 0 + +0x00000039: 05 DW_LNS_set_column (23) +0x0000003b: 9e address += 10, line += 0 + 0x0000000000000044 4 23 1 0 0 + +0x0000003c: 05 DW_LNS_set_column (19) +0x0000003e: 74 address += 7, line += 0 + 0x000000000000004b 4 19 1 0 0 + +0x0000003f: 05 DW_LNS_set_column (17) +0x00000041: 9e address += 10, line += 0 + 0x0000000000000055 4 17 1 0 0 + +0x00000042: 05 DW_LNS_set_column (3) +0x00000044: 74 address += 7, line += 0 + 0x000000000000005c 4 3 1 0 0 + +0x00000045: 02 DW_LNS_advance_pc (23) +0x00000047: 00 DW_LNE_end_sequence + 0x0000000000000073 4 3 1 0 0 end_sequence + +debug_line[0x0000004a] +Line table prologue: + total_length: 0x0000003c + version: 4 + prologue_length: 0x0000001d + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "foo.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x00000071: 00 DW_LNE_set_address (0x0000000000000074) +0x00000078: 01 DW_LNS_copy + 0x0000000000000074 1 0 1 0 0 is_stmt + + +0x00000079: 05 DW_LNS_set_column (10) +0x0000007b: 0a DW_LNS_set_prologue_end +0x0000007c: 08 DW_LNS_const_add_pc (0x0000000000000011) +0x0000007d: bb address += 12, line += 1 + 0x0000000000000091 2 10 1 0 0 is_stmt prologue_end + +0x0000007e: 05 DW_LNS_set_column (12) +0x00000080: 06 DW_LNS_negate_stmt +0x00000081: 74 address += 7, line += 0 + 0x0000000000000098 2 12 1 0 0 + +0x00000082: 05 DW_LNS_set_column (3) +0x00000084: ac address += 11, line += 0 + 0x00000000000000a3 2 3 1 0 0 + +0x00000085: 02 DW_LNS_advance_pc (4) +0x00000087: 00 DW_LNE_end_sequence + 0x00000000000000a7 2 3 1 0 0 end_sequence + +debug_line[0x0000008a] +Line table prologue: + total_length: 0x0000004c + version: 4 + prologue_length: 0x0000001e + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "main.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x000000b2: 00 DW_LNE_set_address (0x00000000000000a9) +0x000000b9: 16 address += 0, line += 4 + 0x00000000000000a9 5 0 1 0 0 is_stmt + +0x000000ba: 05 DW_LNS_set_column (14) +0x000000bc: 0a DW_LNS_set_prologue_end +0x000000bd: 02 DW_LNS_advance_pc (55) +0x000000bf: 13 address += 0, line += 1 + 0x00000000000000e0 6 14 1 0 0 is_stmt prologue_end + +0x000000c0: 05 DW_LNS_set_column (20) +0x000000c2: 06 DW_LNS_negate_stmt +0x000000c3: 74 address += 7, line += 0 + 0x00000000000000e7 6 20 1 0 0 + +0x000000c4: 05 DW_LNS_set_column (10) +0x000000c6: 74 address += 7, line += 0 + 0x00000000000000ee 6 10 1 0 0 + +0x000000c7: 05 DW_LNS_set_column (8) +0x000000c9: ba address += 12, line += 0 + 0x00000000000000fa 6 8 1 0 0 + +0x000000ca: 05 DW_LNS_set_column (24) +0x000000cc: 06 DW_LNS_negate_stmt +0x000000cd: 75 address += 7, line += 1 + 0x0000000000000101 7 24 1 0 0 is_stmt + +0x000000ce: 05 DW_LNS_set_column (3) +0x000000d0: 06 DW_LNS_negate_stmt +0x000000d1: 74 address += 7, line += 0 + 0x0000000000000108 7 3 1 0 0 + +0x000000d2: 06 DW_LNS_negate_stmt +0x000000d3: 08 DW_LNS_const_add_pc (0x0000000000000011) +0x000000d4: c9 address += 13, line += 1 + 0x0000000000000126 8 3 1 0 0 is_stmt + +0x000000d5: 02 DW_LNS_advance_pc (23) +0x000000d7: 00 DW_LNE_end_sequence + 0x000000000000013d 8 3 1 0 0 is_stmt end_sequence + + +.debug_str contents: +0x00000000: "." +0x00000002: "bar.dwo" +0x0000000a: "." +0x0000000c: "foo.dwo" +0x00000014: "." +0x00000016: "main.dwo" + +.debug_addr contents: +0x00000000: Addr Section: length = 0x00000000, version = 0x0004, addr_size = 0x04, seg_size = 0x00 +Addrs: [ +0x00000007 +0x00000074 +0x000000a9 +] + +.debug_gnu_pubnames contents: +length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "bar" +length = 0x00000017 version = 0x0002 unit_offset = 0x0000002c unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "foo" +length = 0x00000018 version = 0x0002 unit_offset = 0x00000058 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "main" + +.debug_gnu_pubtypes contents: +length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000042 STATIC TYPE "int" +length = 0x00000017 version = 0x0002 unit_offset = 0x0000002c unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000037 STATIC TYPE "int" +length = 0x00000021 version = 0x0002 unit_offset = 0x00000058 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000042 STATIC TYPE "int" +0x00000050 STATIC TYPE "char" +DWARF debug info +================ + +Contains section .debug_info (132 bytes) +Contains section .debug_abbrev (78 bytes) +Contains section .debug_gnu_pubnames (82 bytes) +Contains section .debug_gnu_pubtypes (91 bytes) +Contains section .debug_line (353 bytes) +Contains section .debug_str (31 bytes) +Contains section .debug_addr (12 bytes) + +.debug_abbrev contents: +Abbrev table for offset: 0x00000000 +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + +Abbrev table for offset: 0x0000001a +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + +Abbrev table for offset: 0x00000034 +[1] DW_TAG_compile_unit DW_CHILDREN_no + DW_AT_stmt_list DW_FORM_sec_offset + DW_AT_comp_dir DW_FORM_strp + DW_AT_GNU_pubnames DW_FORM_flag_present + DW_AT_GNU_dwo_name DW_FORM_strp + DW_AT_GNU_dwo_id DW_FORM_data8 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_data4 + DW_AT_GNU_addr_base DW_FORM_sec_offset + + +.debug_info contents: +0x00000000: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000002c) + +0x0000000b: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x00000000] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x00000002] = "bar.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0x3db10264a7030703) + DW_AT_low_pc [DW_FORM_addr] (0x0000000000000007) + DW_AT_high_pc [DW_FORM_data4] (0x0000006a) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000000) +0x0000002c: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x001a addr_size = 0x04 (next unit at 0x00000058) + +0x00000037: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000007b) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000000a] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x0000000c] = "foo.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0x15bb0ddb32a29998) + DW_AT_low_pc [DW_FORM_addr] (0x0000000000000072) + DW_AT_high_pc [DW_FORM_data4] (0x00000039) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000004) +0x00000058: Compile Unit: length = 0x00000028 version = 0x0004 abbr_offset = 0x0034 addr_size = 0x04 (next unit at 0x00000084) + +0x00000063: DW_TAG_compile_unit [1] + DW_AT_stmt_list [DW_FORM_sec_offset] (0x000000d6) + DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x00000014] = ".") + DW_AT_GNU_pubnames [DW_FORM_flag_present] (true) + DW_AT_GNU_dwo_name [DW_FORM_strp] ( .debug_str[0x00000016] = "main.dwo") + DW_AT_GNU_dwo_id [DW_FORM_data8] (0xd99ab4ade587775d) + DW_AT_low_pc [DW_FORM_addr] (0x00000000000000ad) + DW_AT_high_pc [DW_FORM_data4] (0x00000093) + DW_AT_GNU_addr_base [DW_FORM_sec_offset] (0x00000008) + +.debug_line contents: +debug_line[0x00000000] +Line table prologue: + total_length: 0x00000077 + version: 4 + prologue_length: 0x0000001d + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "bar.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x00000027: 00 DW_LNE_set_address (0x0000000000000007) +0x0000002e: 03 DW_LNS_advance_line (3) +0x00000030: 01 DW_LNS_copy + 0x0000000000000007 3 0 1 0 0 is_stmt + + +0x00000031: 00 DW_LNE_set_address (0x000000000000003d) +0x00000038: 03 DW_LNS_advance_line (4) +0x0000003a: 05 DW_LNS_set_column (14) +0x0000003c: 0a DW_LNS_set_prologue_end +0x0000003d: 01 DW_LNS_copy + 0x000000000000003d 4 14 1 0 0 is_stmt prologue_end + + +0x0000003e: 00 DW_LNE_set_address (0x0000000000000044) +0x00000045: 05 DW_LNS_set_column (10) +0x00000047: 06 DW_LNS_negate_stmt +0x00000048: 01 DW_LNS_copy + 0x0000000000000044 4 10 1 0 0 + + +0x00000049: 00 DW_LNE_set_address (0x000000000000004a) +0x00000050: 05 DW_LNS_set_column (23) +0x00000052: 01 DW_LNS_copy + 0x000000000000004a 4 23 1 0 0 + + +0x00000053: 00 DW_LNE_set_address (0x0000000000000051) +0x0000005a: 05 DW_LNS_set_column (19) +0x0000005c: 01 DW_LNS_copy + 0x0000000000000051 4 19 1 0 0 + + +0x0000005d: 00 DW_LNE_set_address (0x0000000000000057) +0x00000064: 05 DW_LNS_set_column (17) +0x00000066: 01 DW_LNS_copy + 0x0000000000000057 4 17 1 0 0 + + +0x00000067: 00 DW_LNE_set_address (0x000000000000005e) +0x0000006e: 05 DW_LNS_set_column (3) +0x00000070: 01 DW_LNS_copy + 0x000000000000005e 4 3 1 0 0 + + +0x00000071: 00 DW_LNE_set_address (0x0000000000000071) +0x00000078: 00 DW_LNE_end_sequence + 0x0000000000000071 4 3 1 0 0 end_sequence + +debug_line[0x0000007b] +Line table prologue: + total_length: 0x00000057 + version: 4 + prologue_length: 0x0000001d + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "foo.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x000000a2: 00 DW_LNE_set_address (0x0000000000000072) +0x000000a9: 01 DW_LNS_copy + 0x0000000000000072 1 0 1 0 0 is_stmt + + +0x000000aa: 00 DW_LNE_set_address (0x0000000000000095) +0x000000b1: 03 DW_LNS_advance_line (2) +0x000000b3: 05 DW_LNS_set_column (10) +0x000000b5: 0a DW_LNS_set_prologue_end +0x000000b6: 01 DW_LNS_copy + 0x0000000000000095 2 10 1 0 0 is_stmt prologue_end + + +0x000000b7: 00 DW_LNE_set_address (0x000000000000009c) +0x000000be: 05 DW_LNS_set_column (12) +0x000000c0: 06 DW_LNS_negate_stmt +0x000000c1: 01 DW_LNS_copy + 0x000000000000009c 2 12 1 0 0 + + +0x000000c2: 00 DW_LNE_set_address (0x00000000000000a7) +0x000000c9: 05 DW_LNS_set_column (3) +0x000000cb: 01 DW_LNS_copy + 0x00000000000000a7 2 3 1 0 0 + + +0x000000cc: 00 DW_LNE_set_address (0x00000000000000ab) +0x000000d3: 00 DW_LNE_end_sequence + 0x00000000000000ab 2 3 1 0 0 end_sequence + +debug_line[0x000000d6] +Line table prologue: + total_length: 0x00000087 + version: 4 + prologue_length: 0x0000001e + min_inst_length: 1 +max_ops_per_inst: 1 + default_is_stmt: 1 + line_base: -5 + line_range: 14 + opcode_base: 13 +standard_opcode_lengths[DW_LNS_copy] = 0 +standard_opcode_lengths[DW_LNS_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_advance_line] = 1 +standard_opcode_lengths[DW_LNS_set_file] = 1 +standard_opcode_lengths[DW_LNS_set_column] = 1 +standard_opcode_lengths[DW_LNS_negate_stmt] = 0 +standard_opcode_lengths[DW_LNS_set_basic_block] = 0 +standard_opcode_lengths[DW_LNS_const_add_pc] = 0 +standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 +standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 +standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 +standard_opcode_lengths[DW_LNS_set_isa] = 1 +file_names[ 1]: + name: "main.c" + dir_index: 0 + mod_time: 0x00000000 + length: 0x00000000 +0x000000fe: 00 DW_LNE_set_address (0x00000000000000ad) +0x00000105: 03 DW_LNS_advance_line (5) +0x00000107: 01 DW_LNS_copy + 0x00000000000000ad 5 0 1 0 0 is_stmt + + +0x00000108: 00 DW_LNE_set_address (0x00000000000000f2) +0x0000010f: 03 DW_LNS_advance_line (6) +0x00000111: 05 DW_LNS_set_column (14) +0x00000113: 0a DW_LNS_set_prologue_end +0x00000114: 01 DW_LNS_copy + 0x00000000000000f2 6 14 1 0 0 is_stmt prologue_end + + +0x00000115: 00 DW_LNE_set_address (0x00000000000000f9) +0x0000011c: 05 DW_LNS_set_column (20) +0x0000011e: 06 DW_LNS_negate_stmt +0x0000011f: 01 DW_LNS_copy + 0x00000000000000f9 6 20 1 0 0 + + +0x00000120: 00 DW_LNE_set_address (0x0000000000000100) +0x00000127: 05 DW_LNS_set_column (10) +0x00000129: 01 DW_LNS_copy + 0x0000000000000100 6 10 1 0 0 + + +0x0000012a: 00 DW_LNE_set_address (0x0000000000000108) +0x00000131: 05 DW_LNS_set_column (8) +0x00000133: 01 DW_LNS_copy + 0x0000000000000108 6 8 1 0 0 + + +0x00000134: 00 DW_LNE_set_address (0x000000000000010f) +0x0000013b: 03 DW_LNS_advance_line (7) +0x0000013d: 05 DW_LNS_set_column (24) +0x0000013f: 06 DW_LNS_negate_stmt +0x00000140: 01 DW_LNS_copy + 0x000000000000010f 7 24 1 0 0 is_stmt + + +0x00000141: 00 DW_LNE_set_address (0x0000000000000116) +0x00000148: 05 DW_LNS_set_column (3) +0x0000014a: 06 DW_LNS_negate_stmt +0x0000014b: 01 DW_LNS_copy + 0x0000000000000116 7 3 1 0 0 + + +0x0000014c: 00 DW_LNE_set_address (0x000000000000012d) +0x00000153: 03 DW_LNS_advance_line (8) +0x00000155: 06 DW_LNS_negate_stmt +0x00000156: 01 DW_LNS_copy + 0x000000000000012d 8 3 1 0 0 is_stmt + + +0x00000157: 00 DW_LNE_set_address (0x0000000000000140) +0x0000015e: 00 DW_LNE_end_sequence + 0x0000000000000140 8 3 1 0 0 is_stmt end_sequence + + +.debug_str contents: +0x00000000: "." +0x00000002: "bar.dwo" +0x0000000a: "." +0x0000000c: "foo.dwo" +0x00000014: "." +0x00000016: "main.dwo" + +.debug_addr contents: +0x00000000: Addr Section: length = 0x00000000, version = 0x0004, addr_size = 0x04, seg_size = 0x00 +Addrs: [ +0x00000007 +0x00000072 +0x000000ad +] + +.debug_gnu_pubnames contents: +length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "bar" +length = 0x00000017 version = 0x0002 unit_offset = 0x0000002c unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "foo" +length = 0x00000018 version = 0x0002 unit_offset = 0x00000058 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000019 EXTERNAL FUNCTION "main" + +.debug_gnu_pubtypes contents: +length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000042 STATIC TYPE "int" +length = 0x00000017 version = 0x0002 unit_offset = 0x0000002c unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000037 STATIC TYPE "int" +length = 0x00000021 version = 0x0002 unit_offset = 0x00000058 unit_size = 0x0000002c +Offset Linkage Kind Name +0x00000042 STATIC TYPE "int" +0x00000050 STATIC TYPE "char" +(module + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i64_i64_i32_=>_none (func (param i32 i64 i64 i32))) + (type $i32_f64_i32_i32_i32_i32_=>_i32 (func (param i32 f64 i32 i32 i32 i32) (result i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_=>_i64 (func (param i32 i64 i32) (result i64))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32 i32 i32) (result i32))) + (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $f64_=>_i64 (func (param f64) (result i64))) + (type $i64_i64_=>_f64 (func (param i64 i64) (result f64))) + (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) + (import "wasi_snapshot_preview1" "fd_write" (func $__wasi_fd_write (param i32 i32 i32 i32) (result i32))) + (import "env" "emscripten_memcpy_big" (func $emscripten_memcpy_big (param i32 i32 i32) (result i32))) + (memory $0 256 256) + (data $.rodata (i32.const 1024) "bar = %d\n\00\00\008\06\00\00-+ 0X0x\00(null)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\11\00\n\00\11\11\11\00\00\00\00\05\00\00\00\00\00\00\t\00\00\00\00\0b\00\00\00\00\00\00\00\00\11\00\0f\n\11\11\11\03\n\07\00\01\00\t\0b\0b\00\00\t\06\0b\00\00\0b\00\06\11\00\00\00\11\11\11\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\00\00\00\00\00\11\00\n\n\11\11\11\00\n\00\00\02\00\t\0b\00\00\00\t\00\0b\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\0c\00\00\00\00\t\0c\00\00\00\00\00\0c\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\04\0d\00\00\00\00\t\0e\00\00\00\00\00\0e\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\00\0f\00\00\00\00\t\10\00\00\00\00\00\10\00\00\10\00\00\12\00\00\00\12\12\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\12\12\12\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\00\n\00\00\00\00\t\0b\00\00\00\00\00\0b\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\0c\00\00\00\00\t\0c\00\00\00\00\00\0c\00\00\0c\00\000123456789ABCDEF-0X+0X 0X-0x+0x 0x\00inf\00INF\00nan\00NAN\00.\00") + (data $.data (i32.const 1592) "\05\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\03\00\00\00\c8\07\00\00\00\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\008\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 6 6 funcref) + (elem (i32.const 1) $__emscripten_stdout_close $__stdio_write $__emscripten_stdout_seek $fmt_fp $pop_arg_long_double) + (global $__stack_pointer (mut i32) (i32.const 5245984)) + (global $__stack_end (mut i32) (i32.const 0)) + (global $__stack_base (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (export "__indirect_function_table" (table $0)) + (export "__wasm_call_ctors" (func $__wasm_call_ctors)) + (export "main" (func $main)) + (export "__errno_location" (func $__errno_location)) + (export "fflush" (func $fflush)) + (export "stackSave" (func $stackSave)) + (export "stackRestore" (func $stackRestore)) + (export "stackAlloc" (func $stackAlloc)) + (export "emscripten_stack_init" (func $emscripten_stack_init)) + (export "emscripten_stack_get_free" (func $emscripten_stack_get_free)) + (export "emscripten_stack_get_end" (func $emscripten_stack_get_end)) + (func $__wasm_call_ctors + ;; code offset: 0x3 + (call $emscripten_stack_init) + ) + (func $bar (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + ;; code offset: 0x1e + (local.set $2 + ;; code offset: 0x1c + (global.get $__stack_pointer) + ) + ;; code offset: 0x22 + (local.set $3 + ;; code offset: 0x20 + (i32.const 16) + ) + ;; code offset: 0x29 + (local.set $4 + ;; code offset: 0x28 + (i32.sub + ;; code offset: 0x24 + (local.get $2) + ;; code offset: 0x26 + (local.get $3) + ) + ) + ;; code offset: 0x2d + (global.set $__stack_pointer + ;; code offset: 0x2b + (local.get $4) + ) + ;; code offset: 0x33 + (i32.store offset=12 + ;; code offset: 0x2f + (local.get $4) + ;; code offset: 0x31 + (local.get $0) + ) + ;; code offset: 0x3a + (i32.store offset=8 + ;; code offset: 0x36 + (local.get $4) + ;; code offset: 0x38 + (local.get $1) + ) + ;; code offset: 0x42 + (local.set $5 + ;; code offset: 0x3f + (i32.load offset=12 + ;; code offset: 0x3d + (local.get $4) + ) + ) + ;; code offset: 0x48 + (local.set $6 + ;; code offset: 0x46 + (call $foo + ;; code offset: 0x44 + (local.get $5) + ) + ) + ;; code offset: 0x4f + (local.set $7 + ;; code offset: 0x4c + (i32.load offset=8 + ;; code offset: 0x4a + (local.get $4) + ) + ) + ;; code offset: 0x55 + (local.set $8 + ;; code offset: 0x53 + (call $foo + ;; code offset: 0x51 + (local.get $7) + ) + ) + ;; code offset: 0x5c + (local.set $9 + ;; code offset: 0x5b + (i32.add + ;; code offset: 0x57 + (local.get $6) + ;; code offset: 0x59 + (local.get $8) + ) + ) + ;; code offset: 0x60 + (local.set $10 + ;; code offset: 0x5e + (i32.const 16) + ) + ;; code offset: 0x67 + (local.set $11 + ;; code offset: 0x66 + (i32.add + ;; code offset: 0x62 + (local.get $4) + ;; code offset: 0x64 + (local.get $10) + ) + ) + ;; code offset: 0x6b + (global.set $__stack_pointer + ;; code offset: 0x69 + (local.get $11) + ) + ;; code offset: 0x6f + (return + ;; code offset: 0x6d + (local.get $9) + ) + ) + (func $foo (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + ;; code offset: 0x81 + (local.set $1 + ;; code offset: 0x7f + (global.get $__stack_pointer) + ) + ;; code offset: 0x85 + (local.set $2 + ;; code offset: 0x83 + (i32.const 16) + ) + ;; code offset: 0x8c + (local.set $3 + ;; code offset: 0x8b + (i32.sub + ;; code offset: 0x87 + (local.get $1) + ;; code offset: 0x89 + (local.get $2) + ) + ) + ;; code offset: 0x92 + (i32.store offset=12 + ;; code offset: 0x8e + (local.get $3) + ;; code offset: 0x90 + (local.get $0) + ) + ;; code offset: 0x9a + (local.set $4 + ;; code offset: 0x97 + (i32.load offset=12 + ;; code offset: 0x95 + (local.get $3) + ) + ) + ;; code offset: 0x9e + (local.set $5 + ;; code offset: 0x9c + (i32.const 1) + ) + ;; code offset: 0xa5 + (local.set $6 + ;; code offset: 0xa4 + (i32.add + ;; code offset: 0xa0 + (local.get $4) + ;; code offset: 0xa2 + (local.get $5) + ) + ) + ;; code offset: 0xa9 + (return + ;; code offset: 0xa7 + (local.get $6) + ) + ) + (func $main (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + ;; code offset: 0xc8 + (local.set $2 + ;; code offset: 0xc6 + (global.get $__stack_pointer) + ) + ;; code offset: 0xcc + (local.set $3 + ;; code offset: 0xca + (i32.const 16) + ) + ;; code offset: 0xd3 + (local.set $4 + ;; code offset: 0xd2 + (i32.sub + ;; code offset: 0xce + (local.get $2) + ;; code offset: 0xd0 + (local.get $3) + ) + ) + ;; code offset: 0xd7 + (global.set $__stack_pointer + ;; code offset: 0xd5 + (local.get $4) + ) + ;; code offset: 0xdb + (local.set $5 + ;; code offset: 0xd9 + (i32.const 0) + ) + ;; code offset: 0xe1 + (i32.store offset=12 + ;; code offset: 0xdd + (local.get $4) + ;; code offset: 0xdf + (local.get $5) + ) + ;; code offset: 0xe8 + (i32.store offset=8 + ;; code offset: 0xe4 + (local.get $4) + ;; code offset: 0xe6 + (local.get $0) + ) + ;; code offset: 0xef + (i32.store offset=4 + ;; code offset: 0xeb + (local.get $4) + ;; code offset: 0xed + (local.get $1) + ) + ;; code offset: 0xf7 + (local.set $6 + ;; code offset: 0xf4 + (i32.load offset=8 + ;; code offset: 0xf2 + (local.get $4) + ) + ) + ;; code offset: 0xfe + (local.set $7 + ;; code offset: 0xfb + (i32.load offset=8 + ;; code offset: 0xf9 + (local.get $4) + ) + ) + ;; code offset: 0x106 + (local.set $8 + ;; code offset: 0x104 + (call $bar + ;; code offset: 0x100 + (local.get $6) + ;; code offset: 0x102 + (local.get $7) + ) + ) + ;; code offset: 0x10c + (i32.store offset=8 + ;; code offset: 0x108 + (local.get $4) + ;; code offset: 0x10a + (local.get $8) + ) + ;; code offset: 0x114 + (local.set $9 + ;; code offset: 0x111 + (i32.load offset=8 + ;; code offset: 0x10f + (local.get $4) + ) + ) + ;; code offset: 0x11a + (i32.store + ;; code offset: 0x116 + (local.get $4) + ;; code offset: 0x118 + (local.get $9) + ) + ;; code offset: 0x120 + (local.set $10 + ;; code offset: 0x11d + (i32.const 1024) + ) + ;; code offset: 0x128 + (drop + ;; code offset: 0x126 + (call $printf + ;; code offset: 0x122 + (local.get $10) + ;; code offset: 0x124 + (local.get $4) + ) + ) + ;; code offset: 0x12b + (local.set $11 + ;; code offset: 0x129 + (i32.const 0) + ) + ;; code offset: 0x12f + (local.set $12 + ;; code offset: 0x12d + (i32.const 16) + ) + ;; code offset: 0x136 + (local.set $13 + ;; code offset: 0x135 + (i32.add + ;; code offset: 0x131 + (local.get $4) + ;; code offset: 0x133 + (local.get $12) + ) + ) + ;; code offset: 0x13a + (global.set $__stack_pointer + ;; code offset: 0x138 + (local.get $13) + ) + ;; code offset: 0x13e + (return + ;; code offset: 0x13c + (local.get $11) + ) + ) + (func $__errno_location (result i32) + ;; code offset: 0x142 + (i32.const 1968) + ) + (func $__wasi_syscall_ret (param $0 i32) (result i32) + ;; code offset: 0x148 + (block $label$1 + ;; code offset: 0x14c + (br_if $label$1 + ;; code offset: 0x14a + (local.get $0) + ) + ;; code offset: 0x150 + (return + ;; code offset: 0x14e + (i32.const 0) + ) + ) + ;; code offset: 0x156 + (i32.store + ;; code offset: 0x152 + (call $__errno_location) + ;; code offset: 0x154 + (local.get $0) + ) + ;; code offset: 0x159 + (i32.const -1) + ) + (func $__stdio_write (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + ;; code offset: 0x174 + (global.set $__stack_pointer + ;; code offset: 0x172 + (local.tee $3 + ;; code offset: 0x171 + (i32.sub + ;; code offset: 0x16d + (global.get $__stack_pointer) + ;; code offset: 0x16f + (i32.const 32) + ) + ) + ) + ;; code offset: 0x17f + (i32.store offset=16 + ;; code offset: 0x176 + (local.get $3) + ;; code offset: 0x17d + (local.tee $4 + ;; code offset: 0x17a + (i32.load offset=28 + ;; code offset: 0x178 + (local.get $0) + ) + ) + ) + ;; code offset: 0x187 + (local.set $5 + ;; code offset: 0x184 + (i32.load offset=20 + ;; code offset: 0x182 + (local.get $0) + ) + ) + ;; code offset: 0x18d + (i32.store offset=28 + ;; code offset: 0x189 + (local.get $3) + ;; code offset: 0x18b + (local.get $2) + ) + ;; code offset: 0x194 + (i32.store offset=24 + ;; code offset: 0x190 + (local.get $3) + ;; code offset: 0x192 + (local.get $1) + ) + ;; code offset: 0x1a0 + (i32.store offset=20 + ;; code offset: 0x197 + (local.get $3) + ;; code offset: 0x19e + (local.tee $1 + ;; code offset: 0x19d + (i32.sub + ;; code offset: 0x199 + (local.get $5) + ;; code offset: 0x19b + (local.get $4) + ) + ) + ) + ;; code offset: 0x1a8 + (local.set $6 + ;; code offset: 0x1a7 + (i32.add + ;; code offset: 0x1a3 + (local.get $1) + ;; code offset: 0x1a5 + (local.get $2) + ) + ) + ;; code offset: 0x1ac + (local.set $7 + ;; code offset: 0x1aa + (i32.const 2) + ) + ;; code offset: 0x1b3 + (local.set $1 + ;; code offset: 0x1b2 + (i32.add + ;; code offset: 0x1ae + (local.get $3) + ;; code offset: 0x1b0 + (i32.const 16) + ) + ) + ;; code offset: 0x1b5 + (block $label$1 + (block $label$2 + (block $label$3 + (block $label$4 + ;; code offset: 0x1d2 + (br_if $label$4 + ;; code offset: 0x1d0 + (call $__wasi_syscall_ret + ;; code offset: 0x1ce + (call $__wasi_fd_write + ;; code offset: 0x1bf + (i32.load offset=60 + ;; code offset: 0x1bd + (local.get $0) + ) + ;; code offset: 0x1c6 + (i32.add + ;; code offset: 0x1c2 + (local.get $3) + ;; code offset: 0x1c4 + (i32.const 16) + ) + ;; code offset: 0x1c7 + (i32.const 2) + ;; code offset: 0x1cd + (i32.add + ;; code offset: 0x1c9 + (local.get $3) + ;; code offset: 0x1cb + (i32.const 12) + ) + ) + ) + ) + ;; code offset: 0x1d4 + (loop $label$5 + ;; code offset: 0x1e0 + (br_if $label$3 + ;; code offset: 0x1df + (i32.eq + ;; code offset: 0x1d6 + (local.get $6) + ;; code offset: 0x1dd + (local.tee $4 + ;; code offset: 0x1da + (i32.load offset=12 + ;; code offset: 0x1d8 + (local.get $3) + ) + ) + ) + ) + ;; code offset: 0x1e7 + (br_if $label$2 + ;; code offset: 0x1e6 + (i32.le_s + ;; code offset: 0x1e2 + (local.get $4) + ;; code offset: 0x1e4 + (i32.const -1) + ) + ) + ;; code offset: 0x20f + (i32.store + ;; code offset: 0x1fb + (local.tee $9 + ;; code offset: 0x1fa + (i32.add + ;; code offset: 0x1e9 + (local.get $1) + ;; code offset: 0x1f9 + (i32.shl + ;; code offset: 0x1f5 + (local.tee $5 + ;; code offset: 0x1f4 + (i32.gt_u + ;; code offset: 0x1eb + (local.get $4) + ;; code offset: 0x1f2 + (local.tee $8 + ;; code offset: 0x1ef + (i32.load offset=4 + ;; code offset: 0x1ed + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x1f7 + (i32.const 3) + ) + ) + ) + ;; code offset: 0x20e + (i32.add + ;; code offset: 0x1ff + (i32.load + ;; code offset: 0x1fd + (local.get $9) + ) + ;; code offset: 0x20c + (local.tee $8 + ;; code offset: 0x20b + (i32.sub + ;; code offset: 0x202 + (local.get $4) + ;; code offset: 0x20a + (select + ;; code offset: 0x204 + (local.get $8) + ;; code offset: 0x206 + (i32.const 0) + ;; code offset: 0x208 + (local.get $5) + ) + ) + ) + ) + ) + ;; code offset: 0x226 + (i32.store + ;; code offset: 0x21c + (local.tee $9 + ;; code offset: 0x21b + (i32.add + ;; code offset: 0x212 + (local.get $1) + ;; code offset: 0x21a + (select + ;; code offset: 0x214 + (i32.const 12) + ;; code offset: 0x216 + (i32.const 4) + ;; code offset: 0x218 + (local.get $5) + ) + ) + ) + ;; code offset: 0x225 + (i32.sub + ;; code offset: 0x220 + (i32.load + ;; code offset: 0x21e + (local.get $9) + ) + ;; code offset: 0x223 + (local.get $8) + ) + ) + ;; code offset: 0x22e + (local.set $6 + ;; code offset: 0x22d + (i32.sub + ;; code offset: 0x229 + (local.get $6) + ;; code offset: 0x22b + (local.get $4) + ) + ) + ;; code offset: 0x252 + (br_if $label$5 + ;; code offset: 0x251 + (i32.eqz + ;; code offset: 0x24f + (call $__wasi_syscall_ret + ;; code offset: 0x24d + (call $__wasi_fd_write + ;; code offset: 0x232 + (i32.load offset=60 + ;; code offset: 0x230 + (local.get $0) + ) + ;; code offset: 0x23f + (local.tee $1 + ;; code offset: 0x23e + (select + ;; code offset: 0x239 + (i32.add + ;; code offset: 0x235 + (local.get $1) + ;; code offset: 0x237 + (i32.const 8) + ) + ;; code offset: 0x23a + (local.get $1) + ;; code offset: 0x23c + (local.get $5) + ) + ) + ;; code offset: 0x246 + (local.tee $7 + ;; code offset: 0x245 + (i32.sub + ;; code offset: 0x241 + (local.get $7) + ;; code offset: 0x243 + (local.get $5) + ) + ) + ;; code offset: 0x24c + (i32.add + ;; code offset: 0x248 + (local.get $3) + ;; code offset: 0x24a + (i32.const 12) + ) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x25b + (br_if $label$2 + ;; code offset: 0x25a + (i32.ne + ;; code offset: 0x256 + (local.get $6) + ;; code offset: 0x258 + (i32.const -1) + ) + ) + ) + ;; code offset: 0x267 + (i32.store offset=28 + ;; code offset: 0x25e + (local.get $0) + ;; code offset: 0x265 + (local.tee $1 + ;; code offset: 0x262 + (i32.load offset=44 + ;; code offset: 0x260 + (local.get $0) + ) + ) + ) + ;; code offset: 0x26e + (i32.store offset=20 + ;; code offset: 0x26a + (local.get $0) + ;; code offset: 0x26c + (local.get $1) + ) + ;; code offset: 0x27b + (i32.store offset=16 + ;; code offset: 0x271 + (local.get $0) + ;; code offset: 0x27a + (i32.add + ;; code offset: 0x273 + (local.get $1) + ;; code offset: 0x277 + (i32.load offset=48 + ;; code offset: 0x275 + (local.get $0) + ) + ) + ) + ;; code offset: 0x280 + (local.set $4 + ;; code offset: 0x27e + (local.get $2) + ) + ;; code offset: 0x282 + (br $label$1) + ) + ;; code offset: 0x287 + (local.set $4 + ;; code offset: 0x285 + (i32.const 0) + ) + ;; code offset: 0x28d + (i32.store offset=28 + ;; code offset: 0x289 + (local.get $0) + ;; code offset: 0x28b + (i32.const 0) + ) + ;; code offset: 0x294 + (i64.store offset=16 + ;; code offset: 0x290 + (local.get $0) + ;; code offset: 0x292 + (i64.const 0) + ) + ;; code offset: 0x2a1 + (i32.store + ;; code offset: 0x297 + (local.get $0) + ;; code offset: 0x2a0 + (i32.or + ;; code offset: 0x29b + (i32.load + ;; code offset: 0x299 + (local.get $0) + ) + ;; code offset: 0x29e + (i32.const 32) + ) + ) + ;; code offset: 0x2a9 + (br_if $label$1 + ;; code offset: 0x2a8 + (i32.eq + ;; code offset: 0x2a4 + (local.get $7) + ;; code offset: 0x2a6 + (i32.const 2) + ) + ) + ;; code offset: 0x2b3 + (local.set $4 + ;; code offset: 0x2b2 + (i32.sub + ;; code offset: 0x2ab + (local.get $2) + ;; code offset: 0x2af + (i32.load offset=4 + ;; code offset: 0x2ad + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x2bb + (global.set $__stack_pointer + ;; code offset: 0x2ba + (i32.add + ;; code offset: 0x2b6 + (local.get $3) + ;; code offset: 0x2b8 + (i32.const 32) + ) + ) + ;; code offset: 0x2bd + (local.get $4) + ) + (func $__emscripten_stdout_close (param $0 i32) (result i32) + ;; code offset: 0x2c2 + (i32.const 0) + ) + (func $__emscripten_stdout_seek (param $0 i32) (param $1 i64) (param $2 i32) (result i64) + ;; code offset: 0x2c7 + (i64.const 0) + ) + (func $memset (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + ;; code offset: 0x2d5 + (block $label$1 + ;; code offset: 0x2da + (br_if $label$1 + ;; code offset: 0x2d9 + (i32.eqz + ;; code offset: 0x2d7 + (local.get $2) + ) + ) + ;; code offset: 0x2e8 + (i32.store8 + ;; code offset: 0x2e5 + (i32.add + ;; code offset: 0x2e1 + (local.tee $3 + ;; code offset: 0x2e0 + (i32.add + ;; code offset: 0x2dc + (local.get $2) + ;; code offset: 0x2de + (local.get $0) + ) + ) + ;; code offset: 0x2e3 + (i32.const -1) + ) + ;; code offset: 0x2e6 + (local.get $1) + ) + ;; code offset: 0x2ef + (i32.store8 + ;; code offset: 0x2eb + (local.get $0) + ;; code offset: 0x2ed + (local.get $1) + ) + ;; code offset: 0x2f7 + (br_if $label$1 + ;; code offset: 0x2f6 + (i32.lt_u + ;; code offset: 0x2f2 + (local.get $2) + ;; code offset: 0x2f4 + (i32.const 3) + ) + ) + ;; code offset: 0x300 + (i32.store8 + ;; code offset: 0x2fd + (i32.add + ;; code offset: 0x2f9 + (local.get $3) + ;; code offset: 0x2fb + (i32.const -2) + ) + ;; code offset: 0x2fe + (local.get $1) + ) + ;; code offset: 0x307 + (i32.store8 offset=1 + ;; code offset: 0x303 + (local.get $0) + ;; code offset: 0x305 + (local.get $1) + ) + ;; code offset: 0x311 + (i32.store8 + ;; code offset: 0x30e + (i32.add + ;; code offset: 0x30a + (local.get $3) + ;; code offset: 0x30c + (i32.const -3) + ) + ;; code offset: 0x30f + (local.get $1) + ) + ;; code offset: 0x318 + (i32.store8 offset=2 + ;; code offset: 0x314 + (local.get $0) + ;; code offset: 0x316 + (local.get $1) + ) + ;; code offset: 0x320 + (br_if $label$1 + ;; code offset: 0x31f + (i32.lt_u + ;; code offset: 0x31b + (local.get $2) + ;; code offset: 0x31d + (i32.const 7) + ) + ) + ;; code offset: 0x329 + (i32.store8 + ;; code offset: 0x326 + (i32.add + ;; code offset: 0x322 + (local.get $3) + ;; code offset: 0x324 + (i32.const -4) + ) + ;; code offset: 0x327 + (local.get $1) + ) + ;; code offset: 0x330 + (i32.store8 offset=3 + ;; code offset: 0x32c + (local.get $0) + ;; code offset: 0x32e + (local.get $1) + ) + ;; code offset: 0x338 + (br_if $label$1 + ;; code offset: 0x337 + (i32.lt_u + ;; code offset: 0x333 + (local.get $2) + ;; code offset: 0x335 + (i32.const 9) + ) + ) + ;; code offset: 0x357 + (i32.store + ;; code offset: 0x347 + (local.tee $3 + ;; code offset: 0x346 + (i32.add + ;; code offset: 0x33a + (local.get $0) + ;; code offset: 0x344 + (local.tee $4 + ;; code offset: 0x343 + (i32.and + ;; code offset: 0x340 + (i32.sub + ;; code offset: 0x33c + (i32.const 0) + ;; code offset: 0x33e + (local.get $0) + ) + ;; code offset: 0x341 + (i32.const 3) + ) + ) + ) + ) + ;; code offset: 0x355 + (local.tee $1 + ;; code offset: 0x354 + (i32.mul + ;; code offset: 0x34e + (i32.and + ;; code offset: 0x349 + (local.get $1) + ;; code offset: 0x34b + (i32.const 255) + ) + ;; code offset: 0x34f + (i32.const 16843009) + ) + ) + ) + ;; code offset: 0x36e + (i32.store + ;; code offset: 0x36b + (i32.add + ;; code offset: 0x367 + (local.tee $2 + ;; code offset: 0x366 + (i32.add + ;; code offset: 0x35a + (local.get $3) + ;; code offset: 0x364 + (local.tee $4 + ;; code offset: 0x363 + (i32.and + ;; code offset: 0x360 + (i32.sub + ;; code offset: 0x35c + (local.get $2) + ;; code offset: 0x35e + (local.get $4) + ) + ;; code offset: 0x361 + (i32.const -4) + ) + ) + ) + ) + ;; code offset: 0x369 + (i32.const -4) + ) + ;; code offset: 0x36c + (local.get $1) + ) + ;; code offset: 0x376 + (br_if $label$1 + ;; code offset: 0x375 + (i32.lt_u + ;; code offset: 0x371 + (local.get $4) + ;; code offset: 0x373 + (i32.const 9) + ) + ) + ;; code offset: 0x37c + (i32.store offset=8 + ;; code offset: 0x378 + (local.get $3) + ;; code offset: 0x37a + (local.get $1) + ) + ;; code offset: 0x383 + (i32.store offset=4 + ;; code offset: 0x37f + (local.get $3) + ;; code offset: 0x381 + (local.get $1) + ) + ;; code offset: 0x38d + (i32.store + ;; code offset: 0x38a + (i32.add + ;; code offset: 0x386 + (local.get $2) + ;; code offset: 0x388 + (i32.const -8) + ) + ;; code offset: 0x38b + (local.get $1) + ) + ;; code offset: 0x397 + (i32.store + ;; code offset: 0x394 + (i32.add + ;; code offset: 0x390 + (local.get $2) + ;; code offset: 0x392 + (i32.const -12) + ) + ;; code offset: 0x395 + (local.get $1) + ) + ;; code offset: 0x39f + (br_if $label$1 + ;; code offset: 0x39e + (i32.lt_u + ;; code offset: 0x39a + (local.get $4) + ;; code offset: 0x39c + (i32.const 25) + ) + ) + ;; code offset: 0x3a5 + (i32.store offset=24 + ;; code offset: 0x3a1 + (local.get $3) + ;; code offset: 0x3a3 + (local.get $1) + ) + ;; code offset: 0x3ac + (i32.store offset=20 + ;; code offset: 0x3a8 + (local.get $3) + ;; code offset: 0x3aa + (local.get $1) + ) + ;; code offset: 0x3b3 + (i32.store offset=16 + ;; code offset: 0x3af + (local.get $3) + ;; code offset: 0x3b1 + (local.get $1) + ) + ;; code offset: 0x3ba + (i32.store offset=12 + ;; code offset: 0x3b6 + (local.get $3) + ;; code offset: 0x3b8 + (local.get $1) + ) + ;; code offset: 0x3c4 + (i32.store + ;; code offset: 0x3c1 + (i32.add + ;; code offset: 0x3bd + (local.get $2) + ;; code offset: 0x3bf + (i32.const -16) + ) + ;; code offset: 0x3c2 + (local.get $1) + ) + ;; code offset: 0x3ce + (i32.store + ;; code offset: 0x3cb + (i32.add + ;; code offset: 0x3c7 + (local.get $2) + ;; code offset: 0x3c9 + (i32.const -20) + ) + ;; code offset: 0x3cc + (local.get $1) + ) + ;; code offset: 0x3d8 + (i32.store + ;; code offset: 0x3d5 + (i32.add + ;; code offset: 0x3d1 + (local.get $2) + ;; code offset: 0x3d3 + (i32.const -24) + ) + ;; code offset: 0x3d6 + (local.get $1) + ) + ;; code offset: 0x3e2 + (i32.store + ;; code offset: 0x3df + (i32.add + ;; code offset: 0x3db + (local.get $2) + ;; code offset: 0x3dd + (i32.const -28) + ) + ;; code offset: 0x3e0 + (local.get $1) + ) + ;; code offset: 0x3f7 + (br_if $label$1 + ;; code offset: 0x3f6 + (i32.lt_u + ;; code offset: 0x3f2 + (local.tee $2 + ;; code offset: 0x3f1 + (i32.sub + ;; code offset: 0x3e5 + (local.get $4) + ;; code offset: 0x3ef + (local.tee $5 + ;; code offset: 0x3ee + (i32.or + ;; code offset: 0x3eb + (i32.and + ;; code offset: 0x3e7 + (local.get $3) + ;; code offset: 0x3e9 + (i32.const 4) + ) + ;; code offset: 0x3ec + (i32.const 24) + ) + ) + ) + ) + ;; code offset: 0x3f4 + (i32.const 32) + ) + ) + ;; code offset: 0x404 + (local.set $6 + ;; code offset: 0x403 + (i64.or + ;; code offset: 0x400 + (i64.shl + ;; code offset: 0x3fc + (local.tee $6 + ;; code offset: 0x3fb + (i64.extend_i32_u + ;; code offset: 0x3f9 + (local.get $1) + ) + ) + ;; code offset: 0x3fe + (i64.const 32) + ) + ;; code offset: 0x401 + (local.get $6) + ) + ) + ;; code offset: 0x40b + (local.set $1 + ;; code offset: 0x40a + (i32.add + ;; code offset: 0x406 + (local.get $3) + ;; code offset: 0x408 + (local.get $5) + ) + ) + ;; code offset: 0x40d + (loop $label$2 + ;; code offset: 0x413 + (i64.store offset=24 + ;; code offset: 0x40f + (local.get $1) + ;; code offset: 0x411 + (local.get $6) + ) + ;; code offset: 0x41a + (i64.store offset=16 + ;; code offset: 0x416 + (local.get $1) + ;; code offset: 0x418 + (local.get $6) + ) + ;; code offset: 0x421 + (i64.store offset=8 + ;; code offset: 0x41d + (local.get $1) + ;; code offset: 0x41f + (local.get $6) + ) + ;; code offset: 0x428 + (i64.store + ;; code offset: 0x424 + (local.get $1) + ;; code offset: 0x426 + (local.get $6) + ) + ;; code offset: 0x430 + (local.set $1 + ;; code offset: 0x42f + (i32.add + ;; code offset: 0x42b + (local.get $1) + ;; code offset: 0x42d + (i32.const 32) + ) + ) + ;; code offset: 0x43c + (br_if $label$2 + ;; code offset: 0x43b + (i32.gt_u + ;; code offset: 0x437 + (local.tee $2 + ;; code offset: 0x436 + (i32.add + ;; code offset: 0x432 + (local.get $2) + ;; code offset: 0x434 + (i32.const -32) + ) + ) + ;; code offset: 0x439 + (i32.const 31) + ) + ) + ) + ) + ;; code offset: 0x440 + (local.get $0) + ) + (func $isdigit (param $0 i32) (result i32) + ;; code offset: 0x44c + (i32.lt_u + ;; code offset: 0x449 + (i32.add + ;; code offset: 0x445 + (local.get $0) + ;; code offset: 0x447 + (i32.const -48) + ) + ;; code offset: 0x44a + (i32.const 10) + ) + ) + (func $memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + ;; code offset: 0x45a + (local.set $3 + ;; code offset: 0x459 + (i32.ne + ;; code offset: 0x455 + (local.get $2) + ;; code offset: 0x457 + (i32.const 0) + ) + ) + ;; code offset: 0x45c + (block $label$1 + (block $label$2 + (block $label$3 + ;; code offset: 0x465 + (br_if $label$3 + ;; code offset: 0x464 + (i32.eqz + ;; code offset: 0x462 + (local.get $2) + ) + ) + ;; code offset: 0x46d + (br_if $label$3 + ;; code offset: 0x46c + (i32.eqz + ;; code offset: 0x46b + (i32.and + ;; code offset: 0x467 + (local.get $0) + ;; code offset: 0x469 + (i32.const 3) + ) + ) + ) + ;; code offset: 0x475 + (local.set $4 + ;; code offset: 0x474 + (i32.and + ;; code offset: 0x46f + (local.get $1) + ;; code offset: 0x471 + (i32.const 255) + ) + ) + ;; code offset: 0x477 + (loop $label$4 + ;; code offset: 0x481 + (br_if $label$2 + ;; code offset: 0x480 + (i32.eq + ;; code offset: 0x47b + (i32.load8_u + ;; code offset: 0x479 + (local.get $0) + ) + ;; code offset: 0x47e + (local.get $4) + ) + ) + ;; code offset: 0x488 + (local.set $0 + ;; code offset: 0x487 + (i32.add + ;; code offset: 0x483 + (local.get $0) + ;; code offset: 0x485 + (i32.const 1) + ) + ) + ;; code offset: 0x494 + (local.set $3 + ;; code offset: 0x493 + (i32.ne + ;; code offset: 0x48f + (local.tee $2 + ;; code offset: 0x48e + (i32.add + ;; code offset: 0x48a + (local.get $2) + ;; code offset: 0x48c + (i32.const -1) + ) + ) + ;; code offset: 0x491 + (i32.const 0) + ) + ) + ;; code offset: 0x499 + (br_if $label$3 + ;; code offset: 0x498 + (i32.eqz + ;; code offset: 0x496 + (local.get $2) + ) + ) + ;; code offset: 0x4a0 + (br_if $label$4 + ;; code offset: 0x49f + (i32.and + ;; code offset: 0x49b + (local.get $0) + ;; code offset: 0x49d + (i32.const 3) + ) + ) + ) + ) + ;; code offset: 0x4a7 + (br_if $label$1 + ;; code offset: 0x4a6 + (i32.eqz + ;; code offset: 0x4a4 + (local.get $3) + ) + ) + ) + ;; code offset: 0x4aa + (block $label$5 + ;; code offset: 0x4b8 + (br_if $label$5 + ;; code offset: 0x4b7 + (i32.eq + ;; code offset: 0x4ae + (i32.load8_u + ;; code offset: 0x4ac + (local.get $0) + ) + ;; code offset: 0x4b6 + (i32.and + ;; code offset: 0x4b1 + (local.get $1) + ;; code offset: 0x4b3 + (i32.const 255) + ) + ) + ) + ;; code offset: 0x4bf + (br_if $label$5 + ;; code offset: 0x4be + (i32.lt_u + ;; code offset: 0x4ba + (local.get $2) + ;; code offset: 0x4bc + (i32.const 4) + ) + ) + ;; code offset: 0x4cd + (local.set $4 + ;; code offset: 0x4cc + (i32.mul + ;; code offset: 0x4c6 + (i32.and + ;; code offset: 0x4c1 + (local.get $1) + ;; code offset: 0x4c3 + (i32.const 255) + ) + ;; code offset: 0x4c7 + (i32.const 16843009) + ) + ) + ;; code offset: 0x4cf + (loop $label$6 + ;; code offset: 0x4ee + (br_if $label$5 + ;; code offset: 0x4ed + (i32.and + ;; code offset: 0x4e6 + (i32.and + ;; code offset: 0x4dd + (i32.xor + ;; code offset: 0x4d9 + (local.tee $3 + ;; code offset: 0x4d8 + (i32.xor + ;; code offset: 0x4d3 + (i32.load + ;; code offset: 0x4d1 + (local.get $0) + ) + ;; code offset: 0x4d6 + (local.get $4) + ) + ) + ;; code offset: 0x4db + (i32.const -1) + ) + ;; code offset: 0x4e5 + (i32.add + ;; code offset: 0x4de + (local.get $3) + ;; code offset: 0x4e0 + (i32.const -16843009) + ) + ) + ;; code offset: 0x4e7 + (i32.const -2139062144) + ) + ) + ;; code offset: 0x4f5 + (local.set $0 + ;; code offset: 0x4f4 + (i32.add + ;; code offset: 0x4f0 + (local.get $0) + ;; code offset: 0x4f2 + (i32.const 4) + ) + ) + ;; code offset: 0x501 + (br_if $label$6 + ;; code offset: 0x500 + (i32.gt_u + ;; code offset: 0x4fc + (local.tee $2 + ;; code offset: 0x4fb + (i32.add + ;; code offset: 0x4f7 + (local.get $2) + ;; code offset: 0x4f9 + (i32.const -4) + ) + ) + ;; code offset: 0x4fe + (i32.const 3) + ) + ) + ) + ) + ;; code offset: 0x508 + (br_if $label$1 + ;; code offset: 0x507 + (i32.eqz + ;; code offset: 0x505 + (local.get $2) + ) + ) + ;; code offset: 0x510 + (local.set $3 + ;; code offset: 0x50f + (i32.and + ;; code offset: 0x50a + (local.get $1) + ;; code offset: 0x50c + (i32.const 255) + ) + ) + ;; code offset: 0x512 + (loop $label$7 + ;; code offset: 0x514 + (block $label$8 + ;; code offset: 0x51e + (br_if $label$8 + ;; code offset: 0x51d + (i32.ne + ;; code offset: 0x518 + (i32.load8_u + ;; code offset: 0x516 + (local.get $0) + ) + ;; code offset: 0x51b + (local.get $3) + ) + ) + ;; code offset: 0x522 + (return + ;; code offset: 0x520 + (local.get $0) + ) + ) + ;; code offset: 0x529 + (local.set $0 + ;; code offset: 0x528 + (i32.add + ;; code offset: 0x524 + (local.get $0) + ;; code offset: 0x526 + (i32.const 1) + ) + ) + ;; code offset: 0x532 + (br_if $label$7 + ;; code offset: 0x530 + (local.tee $2 + ;; code offset: 0x52f + (i32.add + ;; code offset: 0x52b + (local.get $2) + ;; code offset: 0x52d + (i32.const -1) + ) + ) + ) + ) + ) + ;; code offset: 0x536 + (i32.const 0) + ) + (func $__pthread_self (result i32) + ;; code offset: 0x53b + (i32.const 1740) + ) + (func $wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + ;; code offset: 0x546 + (local.set $3 + ;; code offset: 0x544 + (i32.const 1) + ) + ;; code offset: 0x548 + (block $label$1 + (block $label$2 + ;; code offset: 0x54f + (br_if $label$2 + ;; code offset: 0x54e + (i32.eqz + ;; code offset: 0x54c + (local.get $0) + ) + ) + ;; code offset: 0x557 + (br_if $label$1 + ;; code offset: 0x556 + (i32.le_u + ;; code offset: 0x551 + (local.get $1) + ;; code offset: 0x553 + (i32.const 127) + ) + ) + ;; code offset: 0x559 + (block $label$3 + (block $label$4 + ;; code offset: 0x566 + (br_if $label$4 + ;; code offset: 0x563 + (i32.load + ;; code offset: 0x55f + (i32.load offset=172 + ;; code offset: 0x55d + (call $__pthread_self) + ) + ) + ) + ;; code offset: 0x573 + (br_if $label$1 + ;; code offset: 0x572 + (i32.eq + ;; code offset: 0x56d + (i32.and + ;; code offset: 0x568 + (local.get $1) + ;; code offset: 0x56a + (i32.const -128) + ) + ;; code offset: 0x56e + (i32.const 57216) + ) + ) + ;; code offset: 0x579 + (i32.store + ;; code offset: 0x575 + (call $__errno_location) + ;; code offset: 0x577 + (i32.const 25) + ) + ;; code offset: 0x57c + (br $label$3) + ) + ;; code offset: 0x57f + (block $label$5 + ;; code offset: 0x587 + (br_if $label$5 + ;; code offset: 0x586 + (i32.gt_u + ;; code offset: 0x581 + (local.get $1) + ;; code offset: 0x583 + (i32.const 2047) + ) + ) + ;; code offset: 0x594 + (i32.store8 offset=1 + ;; code offset: 0x589 + (local.get $0) + ;; code offset: 0x593 + (i32.or + ;; code offset: 0x58f + (i32.and + ;; code offset: 0x58b + (local.get $1) + ;; code offset: 0x58d + (i32.const 63) + ) + ;; code offset: 0x590 + (i32.const 128) + ) + ) + ;; code offset: 0x5a2 + (i32.store8 + ;; code offset: 0x597 + (local.get $0) + ;; code offset: 0x5a1 + (i32.or + ;; code offset: 0x59d + (i32.shr_u + ;; code offset: 0x599 + (local.get $1) + ;; code offset: 0x59b + (i32.const 6) + ) + ;; code offset: 0x59e + (i32.const 192) + ) + ) + ;; code offset: 0x5a7 + (return + ;; code offset: 0x5a5 + (i32.const 2) + ) + ) + ;; code offset: 0x5a9 + (block $label$6 + (block $label$7 + ;; code offset: 0x5b4 + (br_if $label$7 + ;; code offset: 0x5b3 + (i32.lt_u + ;; code offset: 0x5ad + (local.get $1) + ;; code offset: 0x5af + (i32.const 55296) + ) + ) + ;; code offset: 0x5c1 + (br_if $label$6 + ;; code offset: 0x5c0 + (i32.ne + ;; code offset: 0x5bb + (i32.and + ;; code offset: 0x5b6 + (local.get $1) + ;; code offset: 0x5b8 + (i32.const -8192) + ) + ;; code offset: 0x5bc + (i32.const 57344) + ) + ) + ) + ;; code offset: 0x5cf + (i32.store8 offset=2 + ;; code offset: 0x5c4 + (local.get $0) + ;; code offset: 0x5ce + (i32.or + ;; code offset: 0x5ca + (i32.and + ;; code offset: 0x5c6 + (local.get $1) + ;; code offset: 0x5c8 + (i32.const 63) + ) + ;; code offset: 0x5cb + (i32.const 128) + ) + ) + ;; code offset: 0x5dd + (i32.store8 + ;; code offset: 0x5d2 + (local.get $0) + ;; code offset: 0x5dc + (i32.or + ;; code offset: 0x5d8 + (i32.shr_u + ;; code offset: 0x5d4 + (local.get $1) + ;; code offset: 0x5d6 + (i32.const 12) + ) + ;; code offset: 0x5d9 + (i32.const 224) + ) + ) + ;; code offset: 0x5ee + (i32.store8 offset=1 + ;; code offset: 0x5e0 + (local.get $0) + ;; code offset: 0x5ed + (i32.or + ;; code offset: 0x5e9 + (i32.and + ;; code offset: 0x5e6 + (i32.shr_u + ;; code offset: 0x5e2 + (local.get $1) + ;; code offset: 0x5e4 + (i32.const 6) + ) + ;; code offset: 0x5e7 + (i32.const 63) + ) + ;; code offset: 0x5ea + (i32.const 128) + ) + ) + ;; code offset: 0x5f3 + (return + ;; code offset: 0x5f1 + (i32.const 3) + ) + ) + ;; code offset: 0x5f5 + (block $label$8 + ;; code offset: 0x603 + (br_if $label$8 + ;; code offset: 0x602 + (i32.gt_u + ;; code offset: 0x5fd + (i32.add + ;; code offset: 0x5f7 + (local.get $1) + ;; code offset: 0x5f9 + (i32.const -65536) + ) + ;; code offset: 0x5fe + (i32.const 1048575) + ) + ) + ;; code offset: 0x610 + (i32.store8 offset=3 + ;; code offset: 0x605 + (local.get $0) + ;; code offset: 0x60f + (i32.or + ;; code offset: 0x60b + (i32.and + ;; code offset: 0x607 + (local.get $1) + ;; code offset: 0x609 + (i32.const 63) + ) + ;; code offset: 0x60c + (i32.const 128) + ) + ) + ;; code offset: 0x61e + (i32.store8 + ;; code offset: 0x613 + (local.get $0) + ;; code offset: 0x61d + (i32.or + ;; code offset: 0x619 + (i32.shr_u + ;; code offset: 0x615 + (local.get $1) + ;; code offset: 0x617 + (i32.const 18) + ) + ;; code offset: 0x61a + (i32.const 240) + ) + ) + ;; code offset: 0x62f + (i32.store8 offset=2 + ;; code offset: 0x621 + (local.get $0) + ;; code offset: 0x62e + (i32.or + ;; code offset: 0x62a + (i32.and + ;; code offset: 0x627 + (i32.shr_u + ;; code offset: 0x623 + (local.get $1) + ;; code offset: 0x625 + (i32.const 6) + ) + ;; code offset: 0x628 + (i32.const 63) + ) + ;; code offset: 0x62b + (i32.const 128) + ) + ) + ;; code offset: 0x640 + (i32.store8 offset=1 + ;; code offset: 0x632 + (local.get $0) + ;; code offset: 0x63f + (i32.or + ;; code offset: 0x63b + (i32.and + ;; code offset: 0x638 + (i32.shr_u + ;; code offset: 0x634 + (local.get $1) + ;; code offset: 0x636 + (i32.const 12) + ) + ;; code offset: 0x639 + (i32.const 63) + ) + ;; code offset: 0x63c + (i32.const 128) + ) + ) + ;; code offset: 0x645 + (return + ;; code offset: 0x643 + (i32.const 4) + ) + ) + ;; code offset: 0x64b + (i32.store + ;; code offset: 0x647 + (call $__errno_location) + ;; code offset: 0x649 + (i32.const 25) + ) + ) + ;; code offset: 0x651 + (local.set $3 + ;; code offset: 0x64f + (i32.const -1) + ) + ) + ;; code offset: 0x656 + (return + ;; code offset: 0x654 + (local.get $3) + ) + ) + ;; code offset: 0x65c + (i32.store8 + ;; code offset: 0x658 + (local.get $0) + ;; code offset: 0x65a + (local.get $1) + ) + ;; code offset: 0x65f + (i32.const 1) + ) + (func $wctomb (param $0 i32) (param $1 i32) (result i32) + ;; code offset: 0x664 + (block $label$1 + ;; code offset: 0x668 + (br_if $label$1 + ;; code offset: 0x666 + (local.get $0) + ) + ;; code offset: 0x66c + (return + ;; code offset: 0x66a + (i32.const 0) + ) + ) + ;; code offset: 0x674 + (call $wcrtomb + ;; code offset: 0x66e + (local.get $0) + ;; code offset: 0x670 + (local.get $1) + ;; code offset: 0x672 + (i32.const 0) + ) + ) + (func $frexp (param $0 f64) (param $1 i32) (result f64) + (local $2 i64) + (local $3 i32) + ;; code offset: 0x67e + (block $label$1 + ;; code offset: 0x693 + (br_if $label$1 + ;; code offset: 0x692 + (i32.eq + ;; code offset: 0x68d + (local.tee $3 + ;; code offset: 0x68c + (i32.and + ;; code offset: 0x688 + (i32.wrap_i64 + ;; code offset: 0x687 + (i64.shr_u + ;; code offset: 0x683 + (local.tee $2 + ;; code offset: 0x682 + (i64.reinterpret_f64 + ;; code offset: 0x680 + (local.get $0) + ) + ) + ;; code offset: 0x685 + (i64.const 52) + ) + ) + ;; code offset: 0x689 + (i32.const 2047) + ) + ) + ;; code offset: 0x68f + (i32.const 2047) + ) + ) + ;; code offset: 0x695 + (block $label$2 + ;; code offset: 0x699 + (br_if $label$2 + ;; code offset: 0x697 + (local.get $3) + ) + ;; code offset: 0x69b + (block $label$3 + (block $label$4 + ;; code offset: 0x6ab + (br_if $label$4 + ;; code offset: 0x6aa + (f64.ne + ;; code offset: 0x69f + (local.get $0) + ;; code offset: 0x6a1 + (f64.const 0) + ) + ) + ;; code offset: 0x6af + (local.set $3 + ;; code offset: 0x6ad + (i32.const 0) + ) + ;; code offset: 0x6b1 + (br $label$3) + ) + ;; code offset: 0x6c4 + (local.set $0 + ;; code offset: 0x6c2 + (call $frexp + ;; code offset: 0x6bf + (f64.mul + ;; code offset: 0x6b4 + (local.get $0) + ;; code offset: 0x6b6 + (f64.const 18446744073709551615) + ) + ;; code offset: 0x6c0 + (local.get $1) + ) + ) + ;; code offset: 0x6ce + (local.set $3 + ;; code offset: 0x6cd + (i32.add + ;; code offset: 0x6c8 + (i32.load + ;; code offset: 0x6c6 + (local.get $1) + ) + ;; code offset: 0x6cb + (i32.const -64) + ) + ) + ) + ;; code offset: 0x6d5 + (i32.store + ;; code offset: 0x6d1 + (local.get $1) + ;; code offset: 0x6d3 + (local.get $3) + ) + ;; code offset: 0x6da + (return + ;; code offset: 0x6d8 + (local.get $0) + ) + ) + ;; code offset: 0x6e4 + (i32.store + ;; code offset: 0x6dc + (local.get $1) + ;; code offset: 0x6e3 + (i32.add + ;; code offset: 0x6de + (local.get $3) + ;; code offset: 0x6e0 + (i32.const -1022) + ) + ) + ;; code offset: 0x701 + (local.set $0 + ;; code offset: 0x700 + (f64.reinterpret_i64 + ;; code offset: 0x6ff + (i64.or + ;; code offset: 0x6f4 + (i64.and + ;; code offset: 0x6e7 + (local.get $2) + ;; code offset: 0x6e9 + (i64.const -9218868437227405313) + ) + ;; code offset: 0x6f5 + (i64.const 4602678819172646912) + ) + ) + ) + ) + ;; code offset: 0x704 + (local.get $0) + ) + (func $__ashlti3 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) + (local $4 i64) + ;; code offset: 0x70b + (block $label$1 + (block $label$2 + ;; code offset: 0x716 + (br_if $label$2 + ;; code offset: 0x715 + (i32.eqz + ;; code offset: 0x714 + (i32.and + ;; code offset: 0x70f + (local.get $3) + ;; code offset: 0x711 + (i32.const 64) + ) + ) + ) + ;; code offset: 0x721 + (local.set $2 + ;; code offset: 0x720 + (i64.shl + ;; code offset: 0x718 + (local.get $1) + ;; code offset: 0x71f + (i64.extend_i32_u + ;; code offset: 0x71e + (i32.add + ;; code offset: 0x71a + (local.get $3) + ;; code offset: 0x71c + (i32.const -64) + ) + ) + ) + ) + ;; code offset: 0x725 + (local.set $1 + ;; code offset: 0x723 + (i64.const 0) + ) + ;; code offset: 0x727 + (br $label$1) + ) + ;; code offset: 0x72d + (br_if $label$1 + ;; code offset: 0x72c + (i32.eqz + ;; code offset: 0x72a + (local.get $3) + ) + ) + ;; code offset: 0x742 + (local.set $2 + ;; code offset: 0x741 + (i64.or + ;; code offset: 0x738 + (i64.shr_u + ;; code offset: 0x72f + (local.get $1) + ;; code offset: 0x737 + (i64.extend_i32_u + ;; code offset: 0x736 + (i32.sub + ;; code offset: 0x731 + (i32.const 64) + ;; code offset: 0x734 + (local.get $3) + ) + ) + ) + ;; code offset: 0x740 + (i64.shl + ;; code offset: 0x739 + (local.get $2) + ;; code offset: 0x73e + (local.tee $4 + ;; code offset: 0x73d + (i64.extend_i32_u + ;; code offset: 0x73b + (local.get $3) + ) + ) + ) + ) + ) + ;; code offset: 0x749 + (local.set $1 + ;; code offset: 0x748 + (i64.shl + ;; code offset: 0x744 + (local.get $1) + ;; code offset: 0x746 + (local.get $4) + ) + ) + ) + ;; code offset: 0x750 + (i64.store + ;; code offset: 0x74c + (local.get $0) + ;; code offset: 0x74e + (local.get $1) + ) + ;; code offset: 0x757 + (i64.store offset=8 + ;; code offset: 0x753 + (local.get $0) + ;; code offset: 0x755 + (local.get $2) + ) + ) + (func $__lshrti3 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) + (local $4 i64) + ;; code offset: 0x75f + (block $label$1 + (block $label$2 + ;; code offset: 0x76a + (br_if $label$2 + ;; code offset: 0x769 + (i32.eqz + ;; code offset: 0x768 + (i32.and + ;; code offset: 0x763 + (local.get $3) + ;; code offset: 0x765 + (i32.const 64) + ) + ) + ) + ;; code offset: 0x775 + (local.set $1 + ;; code offset: 0x774 + (i64.shr_u + ;; code offset: 0x76c + (local.get $2) + ;; code offset: 0x773 + (i64.extend_i32_u + ;; code offset: 0x772 + (i32.add + ;; code offset: 0x76e + (local.get $3) + ;; code offset: 0x770 + (i32.const -64) + ) + ) + ) + ) + ;; code offset: 0x779 + (local.set $2 + ;; code offset: 0x777 + (i64.const 0) + ) + ;; code offset: 0x77b + (br $label$1) + ) + ;; code offset: 0x781 + (br_if $label$1 + ;; code offset: 0x780 + (i32.eqz + ;; code offset: 0x77e + (local.get $3) + ) + ) + ;; code offset: 0x796 + (local.set $1 + ;; code offset: 0x795 + (i64.or + ;; code offset: 0x78c + (i64.shl + ;; code offset: 0x783 + (local.get $2) + ;; code offset: 0x78b + (i64.extend_i32_u + ;; code offset: 0x78a + (i32.sub + ;; code offset: 0x785 + (i32.const 64) + ;; code offset: 0x788 + (local.get $3) + ) + ) + ) + ;; code offset: 0x794 + (i64.shr_u + ;; code offset: 0x78d + (local.get $1) + ;; code offset: 0x792 + (local.tee $4 + ;; code offset: 0x791 + (i64.extend_i32_u + ;; code offset: 0x78f + (local.get $3) + ) + ) + ) + ) + ) + ;; code offset: 0x79d + (local.set $2 + ;; code offset: 0x79c + (i64.shr_u + ;; code offset: 0x798 + (local.get $2) + ;; code offset: 0x79a + (local.get $4) + ) + ) + ) + ;; code offset: 0x7a4 + (i64.store + ;; code offset: 0x7a0 + (local.get $0) + ;; code offset: 0x7a2 + (local.get $1) + ) + ;; code offset: 0x7ab + (i64.store offset=8 + ;; code offset: 0x7a7 + (local.get $0) + ;; code offset: 0x7a9 + (local.get $2) + ) + ) + (func $__trunctfdf2 (param $0 i64) (param $1 i64) (result f64) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + ;; code offset: 0x7c1 + (global.set $__stack_pointer + ;; code offset: 0x7bf + (local.tee $2 + ;; code offset: 0x7be + (i32.sub + ;; code offset: 0x7ba + (global.get $__stack_pointer) + ;; code offset: 0x7bc + (i32.const 32) + ) + ) + ) + ;; code offset: 0x7c3 + (block $label$1 + (block $label$2 + ;; code offset: 0x7f1 + (br_if $label$2 + ;; code offset: 0x7f0 + (i64.ge_u + ;; code offset: 0x7e1 + (i64.add + ;; code offset: 0x7d5 + (local.tee $3 + ;; code offset: 0x7d4 + (i64.and + ;; code offset: 0x7c7 + (local.get $1) + ;; code offset: 0x7c9 + (i64.const 9223372036854775807) + ) + ) + ;; code offset: 0x7d7 + (i64.const -4323737117252386816) + ) + ;; code offset: 0x7ef + (i64.add + ;; code offset: 0x7e2 + (local.get $3) + ;; code offset: 0x7e4 + (i64.const -4899634919602388992) + ) + ) + ) + ;; code offset: 0x7fe + (local.set $3 + ;; code offset: 0x7fd + (i64.or + ;; code offset: 0x7f7 + (i64.shr_u + ;; code offset: 0x7f3 + (local.get $0) + ;; code offset: 0x7f5 + (i64.const 60) + ) + ;; code offset: 0x7fc + (i64.shl + ;; code offset: 0x7f8 + (local.get $1) + ;; code offset: 0x7fa + (i64.const 4) + ) + ) + ) + ;; code offset: 0x800 + (block $label$3 + ;; code offset: 0x81c + (br_if $label$3 + ;; code offset: 0x81b + (i64.lt_u + ;; code offset: 0x80f + (local.tee $0 + ;; code offset: 0x80e + (i64.and + ;; code offset: 0x802 + (local.get $0) + ;; code offset: 0x804 + (i64.const 1152921504606846975) + ) + ) + ;; code offset: 0x811 + (i64.const 576460752303423489) + ) + ) + ;; code offset: 0x82c + (local.set $4 + ;; code offset: 0x82b + (i64.add + ;; code offset: 0x81e + (local.get $3) + ;; code offset: 0x820 + (i64.const 4611686018427387905) + ) + ) + ;; code offset: 0x82e + (br $label$1) + ) + ;; code offset: 0x83f + (local.set $4 + ;; code offset: 0x83e + (i64.add + ;; code offset: 0x831 + (local.get $3) + ;; code offset: 0x833 + (i64.const 4611686018427387904) + ) + ) + ;; code offset: 0x851 + (br_if $label$1 + ;; code offset: 0x850 + (i64.ne + ;; code offset: 0x84d + (i64.xor + ;; code offset: 0x841 + (local.get $0) + ;; code offset: 0x843 + (i64.const 576460752303423488) + ) + ;; code offset: 0x84e + (i64.const 0) + ) + ) + ;; code offset: 0x85b + (local.set $4 + ;; code offset: 0x85a + (i64.add + ;; code offset: 0x853 + (local.get $4) + ;; code offset: 0x859 + (i64.and + ;; code offset: 0x855 + (local.get $3) + ;; code offset: 0x857 + (i64.const 1) + ) + ) + ) + ;; code offset: 0x85d + (br $label$1) + ) + ;; code offset: 0x860 + (block $label$4 + ;; code offset: 0x882 + (br_if $label$4 + ;; code offset: 0x881 + (select + ;; code offset: 0x864 + (i64.eqz + ;; code offset: 0x862 + (local.get $0) + ) + ;; code offset: 0x872 + (i64.lt_u + ;; code offset: 0x865 + (local.get $3) + ;; code offset: 0x867 + (i64.const 9223090561878065152) + ) + ;; code offset: 0x880 + (i64.eq + ;; code offset: 0x873 + (local.get $3) + ;; code offset: 0x875 + (i64.const 9223090561878065152) + ) + ) + ) + ;; code offset: 0x8a5 + (local.set $4 + ;; code offset: 0x8a4 + (i64.or + ;; code offset: 0x898 + (i64.and + ;; code offset: 0x88e + (i64.or + ;; code offset: 0x888 + (i64.shr_u + ;; code offset: 0x884 + (local.get $0) + ;; code offset: 0x886 + (i64.const 60) + ) + ;; code offset: 0x88d + (i64.shl + ;; code offset: 0x889 + (local.get $1) + ;; code offset: 0x88b + (i64.const 4) + ) + ) + ;; code offset: 0x88f + (i64.const 2251799813685247) + ) + ;; code offset: 0x899 + (i64.const 9221120237041090560) + ) + ) + ;; code offset: 0x8a7 + (br $label$1) + ) + ;; code offset: 0x8b5 + (local.set $4 + ;; code offset: 0x8aa + (i64.const 9218868437227405312) + ) + ;; code offset: 0x8c5 + (br_if $label$1 + ;; code offset: 0x8c4 + (i64.gt_u + ;; code offset: 0x8b7 + (local.get $3) + ;; code offset: 0x8b9 + (i64.const 4899634919602388991) + ) + ) + ;; code offset: 0x8c9 + (local.set $4 + ;; code offset: 0x8c7 + (i64.const 0) + ) + ;; code offset: 0x8d8 + (br_if $label$1 + ;; code offset: 0x8d7 + (i32.lt_u + ;; code offset: 0x8d1 + (local.tee $5 + ;; code offset: 0x8d0 + (i32.wrap_i64 + ;; code offset: 0x8cf + (i64.shr_u + ;; code offset: 0x8cb + (local.get $3) + ;; code offset: 0x8cd + (i64.const 48) + ) + ) + ) + ;; code offset: 0x8d3 + (i32.const 15249) + ) + ) + ;; code offset: 0x8ff + (call $__ashlti3 + ;; code offset: 0x8de + (i32.add + ;; code offset: 0x8da + (local.get $2) + ;; code offset: 0x8dc + (i32.const 16) + ) + ;; code offset: 0x8df + (local.get $0) + ;; code offset: 0x8f6 + (local.tee $3 + ;; code offset: 0x8f5 + (i64.or + ;; code offset: 0x8eb + (i64.and + ;; code offset: 0x8e1 + (local.get $1) + ;; code offset: 0x8e3 + (i64.const 281474976710655) + ) + ;; code offset: 0x8ec + (i64.const 281474976710656) + ) + ) + ;; code offset: 0x8fe + (i32.add + ;; code offset: 0x8f8 + (local.get $5) + ;; code offset: 0x8fa + (i32.const -15233) + ) + ) + ;; code offset: 0x90e + (call $__lshrti3 + ;; code offset: 0x901 + (local.get $2) + ;; code offset: 0x903 + (local.get $0) + ;; code offset: 0x905 + (local.get $3) + ;; code offset: 0x90d + (i32.sub + ;; code offset: 0x907 + (i32.const 15361) + ;; code offset: 0x90b + (local.get $5) + ) + ) + ;; code offset: 0x926 + (local.set $4 + ;; code offset: 0x925 + (i64.or + ;; code offset: 0x919 + (i64.shr_u + ;; code offset: 0x915 + (local.tee $3 + ;; code offset: 0x912 + (i64.load + ;; code offset: 0x910 + (local.get $2) + ) + ) + ;; code offset: 0x917 + (i64.const 60) + ) + ;; code offset: 0x924 + (i64.shl + ;; code offset: 0x91f + (i64.load + ;; code offset: 0x91e + (i32.add + ;; code offset: 0x91a + (local.get $2) + ;; code offset: 0x91c + (i32.const 8) + ) + ) + ;; code offset: 0x922 + (i64.const 4) + ) + ) + ) + ;; code offset: 0x928 + (block $label$5 + ;; code offset: 0x95a + (br_if $label$5 + ;; code offset: 0x959 + (i64.lt_u + ;; code offset: 0x94d + (local.tee $3 + ;; code offset: 0x94c + (i64.or + ;; code offset: 0x936 + (i64.and + ;; code offset: 0x92a + (local.get $3) + ;; code offset: 0x92c + (i64.const 1152921504606846975) + ) + ;; code offset: 0x94b + (i64.extend_i32_u + ;; code offset: 0x94a + (i64.ne + ;; code offset: 0x947 + (i64.or + ;; code offset: 0x939 + (i64.load offset=16 + ;; code offset: 0x937 + (local.get $2) + ) + ;; code offset: 0x944 + (i64.load + ;; code offset: 0x943 + (i32.add + ;; code offset: 0x940 + (i32.add + ;; code offset: 0x93c + (local.get $2) + ;; code offset: 0x93e + (i32.const 16) + ) + ;; code offset: 0x941 + (i32.const 8) + ) + ) + ) + ;; code offset: 0x948 + (i64.const 0) + ) + ) + ) + ) + ;; code offset: 0x94f + (i64.const 576460752303423489) + ) + ) + ;; code offset: 0x961 + (local.set $4 + ;; code offset: 0x960 + (i64.add + ;; code offset: 0x95c + (local.get $4) + ;; code offset: 0x95e + (i64.const 1) + ) + ) + ;; code offset: 0x963 + (br $label$1) + ) + ;; code offset: 0x976 + (br_if $label$1 + ;; code offset: 0x975 + (i64.ne + ;; code offset: 0x972 + (i64.xor + ;; code offset: 0x966 + (local.get $3) + ;; code offset: 0x968 + (i64.const 576460752303423488) + ) + ;; code offset: 0x973 + (i64.const 0) + ) + ) + ;; code offset: 0x980 + (local.set $4 + ;; code offset: 0x97f + (i64.add + ;; code offset: 0x97c + (i64.and + ;; code offset: 0x978 + (local.get $4) + ;; code offset: 0x97a + (i64.const 1) + ) + ;; code offset: 0x97d + (local.get $4) + ) + ) + ) + ;; code offset: 0x988 + (global.set $__stack_pointer + ;; code offset: 0x987 + (i32.add + ;; code offset: 0x983 + (local.get $2) + ;; code offset: 0x985 + (i32.const 32) + ) + ) + ;; code offset: 0x99b + (f64.reinterpret_i64 + ;; code offset: 0x99a + (i64.or + ;; code offset: 0x98a + (local.get $4) + ;; code offset: 0x999 + (i64.and + ;; code offset: 0x98c + (local.get $1) + ;; code offset: 0x98e + (i64.const -9223372036854775808) + ) + ) + ) + ) + (func $__lock (param $0 i32) + ) + (func $__unlock (param $0 i32) + ) + (func $__ofl_lock (result i32) + ;; code offset: 0x9a8 + (call $__lock + ;; code offset: 0x9a5 + (i32.const 3080) + ) + ;; code offset: 0x9aa + (i32.const 3088) + ) + (func $__ofl_unlock + ;; code offset: 0x9b3 + (call $__unlock + ;; code offset: 0x9b0 + (i32.const 3080) + ) + ) + (func $__towrite (param $0 i32) (result i32) + (local $1 i32) + ;; code offset: 0x9c9 + (i32.store8 offset=74 + ;; code offset: 0x9ba + (local.get $0) + ;; code offset: 0x9c8 + (i32.or + ;; code offset: 0x9c5 + (i32.add + ;; code offset: 0x9c1 + (local.tee $1 + ;; code offset: 0x9be + (i32.load8_u offset=74 + ;; code offset: 0x9bc + (local.get $0) + ) + ) + ;; code offset: 0x9c3 + (i32.const -1) + ) + ;; code offset: 0x9c6 + (local.get $1) + ) + ) + ;; code offset: 0x9cc + (block $label$1 + ;; code offset: 0x9d9 + (br_if $label$1 + ;; code offset: 0x9d8 + (i32.eqz + ;; code offset: 0x9d7 + (i32.and + ;; code offset: 0x9d3 + (local.tee $1 + ;; code offset: 0x9d0 + (i32.load + ;; code offset: 0x9ce + (local.get $0) + ) + ) + ;; code offset: 0x9d5 + (i32.const 8) + ) + ) + ) + ;; code offset: 0x9e2 + (i32.store + ;; code offset: 0x9db + (local.get $0) + ;; code offset: 0x9e1 + (i32.or + ;; code offset: 0x9dd + (local.get $1) + ;; code offset: 0x9df + (i32.const 32) + ) + ) + ;; code offset: 0x9e7 + (return + ;; code offset: 0x9e5 + (i32.const -1) + ) + ) + ;; code offset: 0x9ed + (i64.store offset=4 align=4 + ;; code offset: 0x9e9 + (local.get $0) + ;; code offset: 0x9eb + (i64.const 0) + ) + ;; code offset: 0x9f9 + (i32.store offset=28 + ;; code offset: 0x9f0 + (local.get $0) + ;; code offset: 0x9f7 + (local.tee $1 + ;; code offset: 0x9f4 + (i32.load offset=44 + ;; code offset: 0x9f2 + (local.get $0) + ) + ) + ) + ;; code offset: 0xa00 + (i32.store offset=20 + ;; code offset: 0x9fc + (local.get $0) + ;; code offset: 0x9fe + (local.get $1) + ) + ;; code offset: 0xa0d + (i32.store offset=16 + ;; code offset: 0xa03 + (local.get $0) + ;; code offset: 0xa0c + (i32.add + ;; code offset: 0xa05 + (local.get $1) + ;; code offset: 0xa09 + (i32.load offset=48 + ;; code offset: 0xa07 + (local.get $0) + ) + ) + ) + ;; code offset: 0xa10 + (i32.const 0) + ) + (func $memcpy (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + ;; code offset: 0xa1c + (block $label$1 + ;; code offset: 0xa24 + (br_if $label$1 + ;; code offset: 0xa23 + (i32.lt_u + ;; code offset: 0xa1e + (local.get $2) + ;; code offset: 0xa20 + (i32.const 512) + ) + ) + ;; code offset: 0xa2e + (drop + ;; code offset: 0xa2c + (call $emscripten_memcpy_big + ;; code offset: 0xa26 + (local.get $0) + ;; code offset: 0xa28 + (local.get $1) + ;; code offset: 0xa2a + (local.get $2) + ) + ) + ;; code offset: 0xa31 + (return + ;; code offset: 0xa2f + (local.get $0) + ) + ) + ;; code offset: 0xa38 + (local.set $3 + ;; code offset: 0xa37 + (i32.add + ;; code offset: 0xa33 + (local.get $0) + ;; code offset: 0xa35 + (local.get $2) + ) + ) + ;; code offset: 0xa3a + (block $label$2 + (block $label$3 + ;; code offset: 0xa46 + (br_if $label$3 + ;; code offset: 0xa45 + (i32.and + ;; code offset: 0xa42 + (i32.xor + ;; code offset: 0xa3e + (local.get $1) + ;; code offset: 0xa40 + (local.get $0) + ) + ;; code offset: 0xa43 + (i32.const 3) + ) + ) + ;; code offset: 0xa48 + (block $label$4 + (block $label$5 + ;; code offset: 0xa51 + (br_if $label$5 + ;; code offset: 0xa50 + (i32.ge_s + ;; code offset: 0xa4c + (local.get $2) + ;; code offset: 0xa4e + (i32.const 1) + ) + ) + ;; code offset: 0xa55 + (local.set $2 + ;; code offset: 0xa53 + (local.get $0) + ) + ;; code offset: 0xa57 + (br $label$4) + ) + ;; code offset: 0xa5a + (block $label$6 + ;; code offset: 0xa61 + (br_if $label$6 + ;; code offset: 0xa60 + (i32.and + ;; code offset: 0xa5c + (local.get $0) + ;; code offset: 0xa5e + (i32.const 3) + ) + ) + ;; code offset: 0xa65 + (local.set $2 + ;; code offset: 0xa63 + (local.get $0) + ) + ;; code offset: 0xa67 + (br $label$4) + ) + ;; code offset: 0xa6c + (local.set $2 + ;; code offset: 0xa6a + (local.get $0) + ) + ;; code offset: 0xa6e + (loop $label$7 + ;; code offset: 0xa77 + (i32.store8 + ;; code offset: 0xa70 + (local.get $2) + ;; code offset: 0xa74 + (i32.load8_u + ;; code offset: 0xa72 + (local.get $1) + ) + ) + ;; code offset: 0xa7f + (local.set $1 + ;; code offset: 0xa7e + (i32.add + ;; code offset: 0xa7a + (local.get $1) + ;; code offset: 0xa7c + (i32.const 1) + ) + ) + ;; code offset: 0xa8b + (br_if $label$4 + ;; code offset: 0xa8a + (i32.ge_u + ;; code offset: 0xa86 + (local.tee $2 + ;; code offset: 0xa85 + (i32.add + ;; code offset: 0xa81 + (local.get $2) + ;; code offset: 0xa83 + (i32.const 1) + ) + ) + ;; code offset: 0xa88 + (local.get $3) + ) + ) + ;; code offset: 0xa92 + (br_if $label$7 + ;; code offset: 0xa91 + (i32.and + ;; code offset: 0xa8d + (local.get $2) + ;; code offset: 0xa8f + (i32.const 3) + ) + ) + ) + ) + ;; code offset: 0xa96 + (block $label$8 + ;; code offset: 0xaa3 + (br_if $label$8 + ;; code offset: 0xaa2 + (i32.lt_u + ;; code offset: 0xa9d + (local.tee $4 + ;; code offset: 0xa9c + (i32.and + ;; code offset: 0xa98 + (local.get $3) + ;; code offset: 0xa9a + (i32.const -4) + ) + ) + ;; code offset: 0xa9f + (i32.const 64) + ) + ) + ;; code offset: 0xaaf + (br_if $label$8 + ;; code offset: 0xaae + (i32.gt_u + ;; code offset: 0xaa5 + (local.get $2) + ;; code offset: 0xaac + (local.tee $5 + ;; code offset: 0xaab + (i32.add + ;; code offset: 0xaa7 + (local.get $4) + ;; code offset: 0xaa9 + (i32.const -64) + ) + ) + ) + ) + ;; code offset: 0xab1 + (loop $label$9 + ;; code offset: 0xaba + (i32.store + ;; code offset: 0xab3 + (local.get $2) + ;; code offset: 0xab7 + (i32.load + ;; code offset: 0xab5 + (local.get $1) + ) + ) + ;; code offset: 0xac4 + (i32.store offset=4 + ;; code offset: 0xabd + (local.get $2) + ;; code offset: 0xac1 + (i32.load offset=4 + ;; code offset: 0xabf + (local.get $1) + ) + ) + ;; code offset: 0xace + (i32.store offset=8 + ;; code offset: 0xac7 + (local.get $2) + ;; code offset: 0xacb + (i32.load offset=8 + ;; code offset: 0xac9 + (local.get $1) + ) + ) + ;; code offset: 0xad8 + (i32.store offset=12 + ;; code offset: 0xad1 + (local.get $2) + ;; code offset: 0xad5 + (i32.load offset=12 + ;; code offset: 0xad3 + (local.get $1) + ) + ) + ;; code offset: 0xae2 + (i32.store offset=16 + ;; code offset: 0xadb + (local.get $2) + ;; code offset: 0xadf + (i32.load offset=16 + ;; code offset: 0xadd + (local.get $1) + ) + ) + ;; code offset: 0xaec + (i32.store offset=20 + ;; code offset: 0xae5 + (local.get $2) + ;; code offset: 0xae9 + (i32.load offset=20 + ;; code offset: 0xae7 + (local.get $1) + ) + ) + ;; code offset: 0xaf6 + (i32.store offset=24 + ;; code offset: 0xaef + (local.get $2) + ;; code offset: 0xaf3 + (i32.load offset=24 + ;; code offset: 0xaf1 + (local.get $1) + ) + ) + ;; code offset: 0xb00 + (i32.store offset=28 + ;; code offset: 0xaf9 + (local.get $2) + ;; code offset: 0xafd + (i32.load offset=28 + ;; code offset: 0xafb + (local.get $1) + ) + ) + ;; code offset: 0xb0a + (i32.store offset=32 + ;; code offset: 0xb03 + (local.get $2) + ;; code offset: 0xb07 + (i32.load offset=32 + ;; code offset: 0xb05 + (local.get $1) + ) + ) + ;; code offset: 0xb14 + (i32.store offset=36 + ;; code offset: 0xb0d + (local.get $2) + ;; code offset: 0xb11 + (i32.load offset=36 + ;; code offset: 0xb0f + (local.get $1) + ) + ) + ;; code offset: 0xb1e + (i32.store offset=40 + ;; code offset: 0xb17 + (local.get $2) + ;; code offset: 0xb1b + (i32.load offset=40 + ;; code offset: 0xb19 + (local.get $1) + ) + ) + ;; code offset: 0xb28 + (i32.store offset=44 + ;; code offset: 0xb21 + (local.get $2) + ;; code offset: 0xb25 + (i32.load offset=44 + ;; code offset: 0xb23 + (local.get $1) + ) + ) + ;; code offset: 0xb32 + (i32.store offset=48 + ;; code offset: 0xb2b + (local.get $2) + ;; code offset: 0xb2f + (i32.load offset=48 + ;; code offset: 0xb2d + (local.get $1) + ) + ) + ;; code offset: 0xb3c + (i32.store offset=52 + ;; code offset: 0xb35 + (local.get $2) + ;; code offset: 0xb39 + (i32.load offset=52 + ;; code offset: 0xb37 + (local.get $1) + ) + ) + ;; code offset: 0xb46 + (i32.store offset=56 + ;; code offset: 0xb3f + (local.get $2) + ;; code offset: 0xb43 + (i32.load offset=56 + ;; code offset: 0xb41 + (local.get $1) + ) + ) + ;; code offset: 0xb50 + (i32.store offset=60 + ;; code offset: 0xb49 + (local.get $2) + ;; code offset: 0xb4d + (i32.load offset=60 + ;; code offset: 0xb4b + (local.get $1) + ) + ) + ;; code offset: 0xb59 + (local.set $1 + ;; code offset: 0xb58 + (i32.add + ;; code offset: 0xb53 + (local.get $1) + ;; code offset: 0xb55 + (i32.const 64) + ) + ) + ;; code offset: 0xb66 + (br_if $label$9 + ;; code offset: 0xb65 + (i32.le_u + ;; code offset: 0xb61 + (local.tee $2 + ;; code offset: 0xb60 + (i32.add + ;; code offset: 0xb5b + (local.get $2) + ;; code offset: 0xb5d + (i32.const 64) + ) + ) + ;; code offset: 0xb63 + (local.get $5) + ) + ) + ) + ) + ;; code offset: 0xb6f + (br_if $label$2 + ;; code offset: 0xb6e + (i32.ge_u + ;; code offset: 0xb6a + (local.get $2) + ;; code offset: 0xb6c + (local.get $4) + ) + ) + ;; code offset: 0xb71 + (loop $label$10 + ;; code offset: 0xb7a + (i32.store + ;; code offset: 0xb73 + (local.get $2) + ;; code offset: 0xb77 + (i32.load + ;; code offset: 0xb75 + (local.get $1) + ) + ) + ;; code offset: 0xb82 + (local.set $1 + ;; code offset: 0xb81 + (i32.add + ;; code offset: 0xb7d + (local.get $1) + ;; code offset: 0xb7f + (i32.const 4) + ) + ) + ;; code offset: 0xb8e + (br_if $label$10 + ;; code offset: 0xb8d + (i32.lt_u + ;; code offset: 0xb89 + (local.tee $2 + ;; code offset: 0xb88 + (i32.add + ;; code offset: 0xb84 + (local.get $2) + ;; code offset: 0xb86 + (i32.const 4) + ) + ) + ;; code offset: 0xb8b + (local.get $4) + ) + ) + ;; code offset: 0xb90 + (br $label$2) + ) + ) + ;; code offset: 0xb95 + (block $label$11 + ;; code offset: 0xb9c + (br_if $label$11 + ;; code offset: 0xb9b + (i32.ge_u + ;; code offset: 0xb97 + (local.get $3) + ;; code offset: 0xb99 + (i32.const 4) + ) + ) + ;; code offset: 0xba0 + (local.set $2 + ;; code offset: 0xb9e + (local.get $0) + ) + ;; code offset: 0xba2 + (br $label$2) + ) + ;; code offset: 0xba5 + (block $label$12 + ;; code offset: 0xbb1 + (br_if $label$12 + ;; code offset: 0xbb0 + (i32.ge_u + ;; code offset: 0xbac + (local.tee $4 + ;; code offset: 0xbab + (i32.add + ;; code offset: 0xba7 + (local.get $3) + ;; code offset: 0xba9 + (i32.const -4) + ) + ) + ;; code offset: 0xbae + (local.get $0) + ) + ) + ;; code offset: 0xbb5 + (local.set $2 + ;; code offset: 0xbb3 + (local.get $0) + ) + ;; code offset: 0xbb7 + (br $label$2) + ) + ;; code offset: 0xbbc + (local.set $2 + ;; code offset: 0xbba + (local.get $0) + ) + ;; code offset: 0xbbe + (loop $label$13 + ;; code offset: 0xbc7 + (i32.store8 + ;; code offset: 0xbc0 + (local.get $2) + ;; code offset: 0xbc4 + (i32.load8_u + ;; code offset: 0xbc2 + (local.get $1) + ) + ) + ;; code offset: 0xbd1 + (i32.store8 offset=1 + ;; code offset: 0xbca + (local.get $2) + ;; code offset: 0xbce + (i32.load8_u offset=1 + ;; code offset: 0xbcc + (local.get $1) + ) + ) + ;; code offset: 0xbdb + (i32.store8 offset=2 + ;; code offset: 0xbd4 + (local.get $2) + ;; code offset: 0xbd8 + (i32.load8_u offset=2 + ;; code offset: 0xbd6 + (local.get $1) + ) + ) + ;; code offset: 0xbe5 + (i32.store8 offset=3 + ;; code offset: 0xbde + (local.get $2) + ;; code offset: 0xbe2 + (i32.load8_u offset=3 + ;; code offset: 0xbe0 + (local.get $1) + ) + ) + ;; code offset: 0xbed + (local.set $1 + ;; code offset: 0xbec + (i32.add + ;; code offset: 0xbe8 + (local.get $1) + ;; code offset: 0xbea + (i32.const 4) + ) + ) + ;; code offset: 0xbf9 + (br_if $label$13 + ;; code offset: 0xbf8 + (i32.le_u + ;; code offset: 0xbf4 + (local.tee $2 + ;; code offset: 0xbf3 + (i32.add + ;; code offset: 0xbef + (local.get $2) + ;; code offset: 0xbf1 + (i32.const 4) + ) + ) + ;; code offset: 0xbf6 + (local.get $4) + ) + ) + ) + ) + ;; code offset: 0xbfd + (block $label$14 + ;; code offset: 0xc04 + (br_if $label$14 + ;; code offset: 0xc03 + (i32.ge_u + ;; code offset: 0xbff + (local.get $2) + ;; code offset: 0xc01 + (local.get $3) + ) + ) + ;; code offset: 0xc06 + (loop $label$15 + ;; code offset: 0xc0f + (i32.store8 + ;; code offset: 0xc08 + (local.get $2) + ;; code offset: 0xc0c + (i32.load8_u + ;; code offset: 0xc0a + (local.get $1) + ) + ) + ;; code offset: 0xc17 + (local.set $1 + ;; code offset: 0xc16 + (i32.add + ;; code offset: 0xc12 + (local.get $1) + ;; code offset: 0xc14 + (i32.const 1) + ) + ) + ;; code offset: 0xc23 + (br_if $label$15 + ;; code offset: 0xc22 + (i32.ne + ;; code offset: 0xc1e + (local.tee $2 + ;; code offset: 0xc1d + (i32.add + ;; code offset: 0xc19 + (local.get $2) + ;; code offset: 0xc1b + (i32.const 1) + ) + ) + ;; code offset: 0xc20 + (local.get $3) + ) + ) + ) + ) + ;; code offset: 0xc27 + (local.get $0) + ) + (func $__fwritex (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + ;; code offset: 0xc33 + (block $label$1 + (block $label$2 + ;; code offset: 0xc3e + (br_if $label$2 + ;; code offset: 0xc3c + (local.tee $3 + ;; code offset: 0xc39 + (i32.load offset=16 + ;; code offset: 0xc37 + (local.get $2) + ) + ) + ) + ;; code offset: 0xc42 + (local.set $4 + ;; code offset: 0xc40 + (i32.const 0) + ) + ;; code offset: 0xc48 + (br_if $label$1 + ;; code offset: 0xc46 + (call $__towrite + ;; code offset: 0xc44 + (local.get $2) + ) + ) + ;; code offset: 0xc4f + (local.set $3 + ;; code offset: 0xc4c + (i32.load offset=16 + ;; code offset: 0xc4a + (local.get $2) + ) + ) + ) + ;; code offset: 0xc52 + (block $label$3 + ;; code offset: 0xc61 + (br_if $label$3 + ;; code offset: 0xc60 + (i32.ge_u + ;; code offset: 0xc5d + (i32.sub + ;; code offset: 0xc54 + (local.get $3) + ;; code offset: 0xc5b + (local.tee $5 + ;; code offset: 0xc58 + (i32.load offset=20 + ;; code offset: 0xc56 + (local.get $2) + ) + ) + ) + ;; code offset: 0xc5e + (local.get $1) + ) + ) + ;; code offset: 0xc71 + (return + ;; code offset: 0xc6e + (call_indirect (type $i32_i32_i32_=>_i32) + ;; code offset: 0xc63 + (local.get $2) + ;; code offset: 0xc65 + (local.get $0) + ;; code offset: 0xc67 + (local.get $1) + ;; code offset: 0xc6b + (i32.load offset=36 + ;; code offset: 0xc69 + (local.get $2) + ) + ) + ) + ) + ;; code offset: 0xc73 + (block $label$4 + (block $label$5 + ;; code offset: 0xc7f + (br_if $label$5 + ;; code offset: 0xc7e + (i32.ge_s + ;; code offset: 0xc79 + (i32.load8_s offset=75 + ;; code offset: 0xc77 + (local.get $2) + ) + ;; code offset: 0xc7c + (i32.const 0) + ) + ) + ;; code offset: 0xc83 + (local.set $3 + ;; code offset: 0xc81 + (i32.const 0) + ) + ;; code offset: 0xc85 + (br $label$4) + ) + ;; code offset: 0xc8a + (local.set $4 + ;; code offset: 0xc88 + (local.get $1) + ) + ;; code offset: 0xc8c + (loop $label$6 + ;; code offset: 0xc8e + (block $label$7 + ;; code offset: 0xc94 + (br_if $label$7 + ;; code offset: 0xc92 + (local.tee $3 + ;; code offset: 0xc90 + (local.get $4) + ) + ) + ;; code offset: 0xc98 + (local.set $3 + ;; code offset: 0xc96 + (i32.const 0) + ) + ;; code offset: 0xc9a + (br $label$4) + ) + ;; code offset: 0xcad + (br_if $label$6 + ;; code offset: 0xcac + (i32.ne + ;; code offset: 0xca7 + (i32.load8_u + ;; code offset: 0xca6 + (i32.add + ;; code offset: 0xc9d + (local.get $0) + ;; code offset: 0xca4 + (local.tee $4 + ;; code offset: 0xca3 + (i32.add + ;; code offset: 0xc9f + (local.get $3) + ;; code offset: 0xca1 + (i32.const -1) + ) + ) + ) + ) + ;; code offset: 0xcaa + (i32.const 10) + ) + ) + ) + ;; code offset: 0xcc3 + (br_if $label$1 + ;; code offset: 0xcc2 + (i32.lt_u + ;; code offset: 0xcbe + (local.tee $4 + ;; code offset: 0xcbb + (call_indirect (type $i32_i32_i32_=>_i32) + ;; code offset: 0xcb0 + (local.get $2) + ;; code offset: 0xcb2 + (local.get $0) + ;; code offset: 0xcb4 + (local.get $3) + ;; code offset: 0xcb8 + (i32.load offset=36 + ;; code offset: 0xcb6 + (local.get $2) + ) + ) + ) + ;; code offset: 0xcc0 + (local.get $3) + ) + ) + ;; code offset: 0xcca + (local.set $0 + ;; code offset: 0xcc9 + (i32.add + ;; code offset: 0xcc5 + (local.get $0) + ;; code offset: 0xcc7 + (local.get $3) + ) + ) + ;; code offset: 0xcd1 + (local.set $1 + ;; code offset: 0xcd0 + (i32.sub + ;; code offset: 0xccc + (local.get $1) + ;; code offset: 0xcce + (local.get $3) + ) + ) + ;; code offset: 0xcd8 + (local.set $5 + ;; code offset: 0xcd5 + (i32.load offset=20 + ;; code offset: 0xcd3 + (local.get $2) + ) + ) + ) + ;; code offset: 0xce3 + (drop + ;; code offset: 0xce1 + (call $memcpy + ;; code offset: 0xcdb + (local.get $5) + ;; code offset: 0xcdd + (local.get $0) + ;; code offset: 0xcdf + (local.get $1) + ) + ) + ;; code offset: 0xcee + (i32.store offset=20 + ;; code offset: 0xce4 + (local.get $2) + ;; code offset: 0xced + (i32.add + ;; code offset: 0xce8 + (i32.load offset=20 + ;; code offset: 0xce6 + (local.get $2) + ) + ;; code offset: 0xceb + (local.get $1) + ) + ) + ;; code offset: 0xcf6 + (local.set $4 + ;; code offset: 0xcf5 + (i32.add + ;; code offset: 0xcf1 + (local.get $3) + ;; code offset: 0xcf3 + (local.get $1) + ) + ) + ) + ;; code offset: 0xcf9 + (local.get $4) + ) + (func $__vfprintf_internal (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + ;; code offset: 0xd0d + (global.set $__stack_pointer + ;; code offset: 0xd0b + (local.tee $5 + ;; code offset: 0xd0a + (i32.sub + ;; code offset: 0xd05 + (global.get $__stack_pointer) + ;; code offset: 0xd07 + (i32.const 208) + ) + ) + ) + ;; code offset: 0xd13 + (i32.store offset=204 + ;; code offset: 0xd0f + (local.get $5) + ;; code offset: 0xd11 + (local.get $2) + ) + ;; code offset: 0xd19 + (local.set $2 + ;; code offset: 0xd17 + (i32.const 0) + ) + ;; code offset: 0xd27 + (drop + ;; code offset: 0xd25 + (call $memset + ;; code offset: 0xd20 + (i32.add + ;; code offset: 0xd1b + (local.get $5) + ;; code offset: 0xd1d + (i32.const 160) + ) + ;; code offset: 0xd21 + (i32.const 0) + ;; code offset: 0xd23 + (i32.const 40) + ) + ) + ;; code offset: 0xd30 + (i32.store offset=200 + ;; code offset: 0xd28 + (local.get $5) + ;; code offset: 0xd2c + (i32.load offset=204 + ;; code offset: 0xd2a + (local.get $5) + ) + ) + ;; code offset: 0xd34 + (block $label$1 + (block $label$2 + ;; code offset: 0xd57 + (br_if $label$2 + ;; code offset: 0xd56 + (i32.ge_s + ;; code offset: 0xd52 + (call $printf_core + ;; code offset: 0xd38 + (i32.const 0) + ;; code offset: 0xd3a + (local.get $1) + ;; code offset: 0xd41 + (i32.add + ;; code offset: 0xd3c + (local.get $5) + ;; code offset: 0xd3e + (i32.const 200) + ) + ;; code offset: 0xd47 + (i32.add + ;; code offset: 0xd42 + (local.get $5) + ;; code offset: 0xd44 + (i32.const 80) + ) + ;; code offset: 0xd4d + (i32.add + ;; code offset: 0xd48 + (local.get $5) + ;; code offset: 0xd4a + (i32.const 160) + ) + ;; code offset: 0xd4e + (local.get $3) + ;; code offset: 0xd50 + (local.get $4) + ) + ;; code offset: 0xd54 + (i32.const 0) + ) + ) + ;; code offset: 0xd5b + (local.set $1 + ;; code offset: 0xd59 + (i32.const -1) + ) + ;; code offset: 0xd5d + (br $label$1) + ) + ;; code offset: 0xd60 + (block $label$3 + ;; code offset: 0xd6a + (br_if $label$3 + ;; code offset: 0xd69 + (i32.lt_s + ;; code offset: 0xd64 + (i32.load offset=76 + ;; code offset: 0xd62 + (local.get $0) + ) + ;; code offset: 0xd67 + (i32.const 0) + ) + ) + ;; code offset: 0xd70 + (local.set $2 + ;; code offset: 0xd6e + (call $__lockfile + ;; code offset: 0xd6c + (local.get $0) + ) + ) + ) + ;; code offset: 0xd78 + (local.set $6 + ;; code offset: 0xd75 + (i32.load + ;; code offset: 0xd73 + (local.get $0) + ) + ) + ;; code offset: 0xd7a + (block $label$4 + ;; code offset: 0xd84 + (br_if $label$4 + ;; code offset: 0xd83 + (i32.gt_s + ;; code offset: 0xd7e + (i32.load8_s offset=74 + ;; code offset: 0xd7c + (local.get $0) + ) + ;; code offset: 0xd81 + (i32.const 0) + ) + ) + ;; code offset: 0xd8d + (i32.store + ;; code offset: 0xd86 + (local.get $0) + ;; code offset: 0xd8c + (i32.and + ;; code offset: 0xd88 + (local.get $6) + ;; code offset: 0xd8a + (i32.const -33) + ) + ) + ) + ;; code offset: 0xd96 + (local.set $6 + ;; code offset: 0xd95 + (i32.and + ;; code offset: 0xd91 + (local.get $6) + ;; code offset: 0xd93 + (i32.const 32) + ) + ) + ;; code offset: 0xd98 + (block $label$5 + (block $label$6 + ;; code offset: 0xda2 + (br_if $label$6 + ;; code offset: 0xda1 + (i32.eqz + ;; code offset: 0xd9e + (i32.load offset=48 + ;; code offset: 0xd9c + (local.get $0) + ) + ) + ) + ;; code offset: 0xdc0 + (local.set $1 + ;; code offset: 0xdbe + (call $printf_core + ;; code offset: 0xda4 + (local.get $0) + ;; code offset: 0xda6 + (local.get $1) + ;; code offset: 0xdad + (i32.add + ;; code offset: 0xda8 + (local.get $5) + ;; code offset: 0xdaa + (i32.const 200) + ) + ;; code offset: 0xdb3 + (i32.add + ;; code offset: 0xdae + (local.get $5) + ;; code offset: 0xdb0 + (i32.const 80) + ) + ;; code offset: 0xdb9 + (i32.add + ;; code offset: 0xdb4 + (local.get $5) + ;; code offset: 0xdb6 + (i32.const 160) + ) + ;; code offset: 0xdba + (local.get $3) + ;; code offset: 0xdbc + (local.get $4) + ) + ) + ;; code offset: 0xdc2 + (br $label$5) + ) + ;; code offset: 0xdca + (i32.store offset=48 + ;; code offset: 0xdc5 + (local.get $0) + ;; code offset: 0xdc7 + (i32.const 80) + ) + ;; code offset: 0xdd5 + (i32.store offset=16 + ;; code offset: 0xdcd + (local.get $0) + ;; code offset: 0xdd4 + (i32.add + ;; code offset: 0xdcf + (local.get $5) + ;; code offset: 0xdd1 + (i32.const 80) + ) + ) + ;; code offset: 0xddc + (i32.store offset=28 + ;; code offset: 0xdd8 + (local.get $0) + ;; code offset: 0xdda + (local.get $5) + ) + ;; code offset: 0xde3 + (i32.store offset=20 + ;; code offset: 0xddf + (local.get $0) + ;; code offset: 0xde1 + (local.get $5) + ) + ;; code offset: 0xdeb + (local.set $7 + ;; code offset: 0xde8 + (i32.load offset=44 + ;; code offset: 0xde6 + (local.get $0) + ) + ) + ;; code offset: 0xdf1 + (i32.store offset=44 + ;; code offset: 0xded + (local.get $0) + ;; code offset: 0xdef + (local.get $5) + ) + ;; code offset: 0xe10 + (local.set $1 + ;; code offset: 0xe0e + (call $printf_core + ;; code offset: 0xdf4 + (local.get $0) + ;; code offset: 0xdf6 + (local.get $1) + ;; code offset: 0xdfd + (i32.add + ;; code offset: 0xdf8 + (local.get $5) + ;; code offset: 0xdfa + (i32.const 200) + ) + ;; code offset: 0xe03 + (i32.add + ;; code offset: 0xdfe + (local.get $5) + ;; code offset: 0xe00 + (i32.const 80) + ) + ;; code offset: 0xe09 + (i32.add + ;; code offset: 0xe04 + (local.get $5) + ;; code offset: 0xe06 + (i32.const 160) + ) + ;; code offset: 0xe0a + (local.get $3) + ;; code offset: 0xe0c + (local.get $4) + ) + ) + ;; code offset: 0xe15 + (br_if $label$5 + ;; code offset: 0xe14 + (i32.eqz + ;; code offset: 0xe12 + (local.get $7) + ) + ) + ;; code offset: 0xe25 + (drop + ;; code offset: 0xe22 + (call_indirect (type $i32_i32_i32_=>_i32) + ;; code offset: 0xe17 + (local.get $0) + ;; code offset: 0xe19 + (i32.const 0) + ;; code offset: 0xe1b + (i32.const 0) + ;; code offset: 0xe1f + (i32.load offset=36 + ;; code offset: 0xe1d + (local.get $0) + ) + ) + ) + ;; code offset: 0xe2a + (i32.store offset=48 + ;; code offset: 0xe26 + (local.get $0) + ;; code offset: 0xe28 + (i32.const 0) + ) + ;; code offset: 0xe31 + (i32.store offset=44 + ;; code offset: 0xe2d + (local.get $0) + ;; code offset: 0xe2f + (local.get $7) + ) + ;; code offset: 0xe38 + (i32.store offset=28 + ;; code offset: 0xe34 + (local.get $0) + ;; code offset: 0xe36 + (i32.const 0) + ) + ;; code offset: 0xe3f + (i32.store offset=16 + ;; code offset: 0xe3b + (local.get $0) + ;; code offset: 0xe3d + (i32.const 0) + ) + ;; code offset: 0xe47 + (local.set $3 + ;; code offset: 0xe44 + (i32.load offset=20 + ;; code offset: 0xe42 + (local.get $0) + ) + ) + ;; code offset: 0xe4d + (i32.store offset=20 + ;; code offset: 0xe49 + (local.get $0) + ;; code offset: 0xe4b + (i32.const 0) + ) + ;; code offset: 0xe57 + (local.set $1 + ;; code offset: 0xe56 + (select + ;; code offset: 0xe50 + (local.get $1) + ;; code offset: 0xe52 + (i32.const -1) + ;; code offset: 0xe54 + (local.get $3) + ) + ) + ) + ;; code offset: 0xe66 + (i32.store + ;; code offset: 0xe5a + (local.get $0) + ;; code offset: 0xe65 + (i32.or + ;; code offset: 0xe61 + (local.tee $3 + ;; code offset: 0xe5e + (i32.load + ;; code offset: 0xe5c + (local.get $0) + ) + ) + ;; code offset: 0xe63 + (local.get $6) + ) + ) + ;; code offset: 0xe73 + (local.set $1 + ;; code offset: 0xe72 + (select + ;; code offset: 0xe69 + (i32.const -1) + ;; code offset: 0xe6b + (local.get $1) + ;; code offset: 0xe71 + (i32.and + ;; code offset: 0xe6d + (local.get $3) + ;; code offset: 0xe6f + (i32.const 32) + ) + ) + ) + ;; code offset: 0xe78 + (br_if $label$1 + ;; code offset: 0xe77 + (i32.eqz + ;; code offset: 0xe75 + (local.get $2) + ) + ) + ;; code offset: 0xe7c + (call $__unlockfile + ;; code offset: 0xe7a + (local.get $0) + ) + ) + ;; code offset: 0xe85 + (global.set $__stack_pointer + ;; code offset: 0xe84 + (i32.add + ;; code offset: 0xe7f + (local.get $5) + ;; code offset: 0xe81 + (i32.const 208) + ) + ) + ;; code offset: 0xe87 + (local.get $1) + ) + (func $printf_core (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i64) + ;; code offset: 0xeb5 + (global.set $__stack_pointer + ;; code offset: 0xeb3 + (local.tee $7 + ;; code offset: 0xeb2 + (i32.sub + ;; code offset: 0xead + (global.get $__stack_pointer) + ;; code offset: 0xeaf + (i32.const 80) + ) + ) + ) + ;; code offset: 0xebb + (i32.store offset=76 + ;; code offset: 0xeb7 + (local.get $7) + ;; code offset: 0xeb9 + (local.get $1) + ) + ;; code offset: 0xec3 + (local.set $8 + ;; code offset: 0xec2 + (i32.add + ;; code offset: 0xebe + (local.get $7) + ;; code offset: 0xec0 + (i32.const 55) + ) + ) + ;; code offset: 0xeca + (local.set $9 + ;; code offset: 0xec9 + (i32.add + ;; code offset: 0xec5 + (local.get $7) + ;; code offset: 0xec7 + (i32.const 56) + ) + ) + ;; code offset: 0xece + (local.set $10 + ;; code offset: 0xecc + (i32.const 0) + ) + ;; code offset: 0xed2 + (local.set $11 + ;; code offset: 0xed0 + (i32.const 0) + ) + ;; code offset: 0xed6 + (local.set $1 + ;; code offset: 0xed4 + (i32.const 0) + ) + ;; code offset: 0xed8 + (block $label$1 + ;; code offset: 0xeda + (loop $label$2 + ;; code offset: 0xedc + (block $label$3 + ;; code offset: 0xee3 + (br_if $label$3 + ;; code offset: 0xee2 + (i32.lt_s + ;; code offset: 0xede + (local.get $11) + ;; code offset: 0xee0 + (i32.const 0) + ) + ) + ;; code offset: 0xee5 + (block $label$4 + ;; code offset: 0xef3 + (br_if $label$4 + ;; code offset: 0xef2 + (i32.le_s + ;; code offset: 0xee7 + (local.get $1) + ;; code offset: 0xef1 + (i32.sub + ;; code offset: 0xee9 + (i32.const 2147483647) + ;; code offset: 0xeef + (local.get $11) + ) + ) + ) + ;; code offset: 0xef9 + (i32.store + ;; code offset: 0xef5 + (call $__errno_location) + ;; code offset: 0xef7 + (i32.const 61) + ) + ;; code offset: 0xefe + (local.set $11 + ;; code offset: 0xefc + (i32.const -1) + ) + ;; code offset: 0xf00 + (br $label$3) + ) + ;; code offset: 0xf08 + (local.set $11 + ;; code offset: 0xf07 + (i32.add + ;; code offset: 0xf03 + (local.get $1) + ;; code offset: 0xf05 + (local.get $11) + ) + ) + ) + ;; code offset: 0xf12 + (local.set $1 + ;; code offset: 0xf10 + (local.tee $12 + ;; code offset: 0xf0d + (i32.load offset=76 + ;; code offset: 0xf0b + (local.get $7) + ) + ) + ) + ;; code offset: 0xf14 + (block $label$5 + (block $label$6 + (block $label$7 + (block $label$8 + (block $label$9 + ;; code offset: 0xf26 + (br_if $label$9 + ;; code offset: 0xf25 + (i32.eqz + ;; code offset: 0xf23 + (local.tee $13 + ;; code offset: 0xf20 + (i32.load8_u + ;; code offset: 0xf1e + (local.get $12) + ) + ) + ) + ) + ;; code offset: 0xf28 + (loop $label$10 + ;; code offset: 0xf2a + (block $label$11 + (block $label$12 + (block $label$13 + ;; code offset: 0xf38 + (br_if $label$13 + ;; code offset: 0xf36 + (local.tee $13 + ;; code offset: 0xf35 + (i32.and + ;; code offset: 0xf30 + (local.get $13) + ;; code offset: 0xf32 + (i32.const 255) + ) + ) + ) + ;; code offset: 0xf3c + (local.set $13 + ;; code offset: 0xf3a + (local.get $1) + ) + ;; code offset: 0xf3e + (br $label$12) + ) + ;; code offset: 0xf46 + (br_if $label$11 + ;; code offset: 0xf45 + (i32.ne + ;; code offset: 0xf41 + (local.get $13) + ;; code offset: 0xf43 + (i32.const 37) + ) + ) + ;; code offset: 0xf4a + (local.set $13 + ;; code offset: 0xf48 + (local.get $1) + ) + ;; code offset: 0xf4c + (loop $label$14 + ;; code offset: 0xf56 + (br_if $label$12 + ;; code offset: 0xf55 + (i32.ne + ;; code offset: 0xf50 + (i32.load8_u offset=1 + ;; code offset: 0xf4e + (local.get $1) + ) + ;; code offset: 0xf53 + (i32.const 37) + ) + ) + ;; code offset: 0xf61 + (i32.store offset=76 + ;; code offset: 0xf58 + (local.get $7) + ;; code offset: 0xf5f + (local.tee $14 + ;; code offset: 0xf5e + (i32.add + ;; code offset: 0xf5a + (local.get $1) + ;; code offset: 0xf5c + (i32.const 2) + ) + ) + ) + ;; code offset: 0xf69 + (local.set $13 + ;; code offset: 0xf68 + (i32.add + ;; code offset: 0xf64 + (local.get $13) + ;; code offset: 0xf66 + (i32.const 1) + ) + ) + ;; code offset: 0xf70 + (local.set $15 + ;; code offset: 0xf6d + (i32.load8_u offset=2 + ;; code offset: 0xf6b + (local.get $1) + ) + ) + ;; code offset: 0xf74 + (local.set $1 + ;; code offset: 0xf72 + (local.get $14) + ) + ;; code offset: 0xf7b + (br_if $label$14 + ;; code offset: 0xf7a + (i32.eq + ;; code offset: 0xf76 + (local.get $15) + ;; code offset: 0xf78 + (i32.const 37) + ) + ) + ) + ) + ;; code offset: 0xf84 + (local.set $1 + ;; code offset: 0xf83 + (i32.sub + ;; code offset: 0xf7f + (local.get $13) + ;; code offset: 0xf81 + (local.get $12) + ) + ) + ;; code offset: 0xf86 + (block $label$15 + ;; code offset: 0xf8b + (br_if $label$15 + ;; code offset: 0xf8a + (i32.eqz + ;; code offset: 0xf88 + (local.get $0) + ) + ) + ;; code offset: 0xf93 + (call $out + ;; code offset: 0xf8d + (local.get $0) + ;; code offset: 0xf8f + (local.get $12) + ;; code offset: 0xf91 + (local.get $1) + ) + ) + ;; code offset: 0xf98 + (br_if $label$2 + ;; code offset: 0xf96 + (local.get $1) + ) + ;; code offset: 0xfa4 + (local.set $1 + ;; code offset: 0xfa2 + (call $isdigit + ;; code offset: 0xf9f + (i32.load8_s offset=1 + ;; code offset: 0xf9c + (i32.load offset=76 + ;; code offset: 0xf9a + (local.get $7) + ) + ) + ) + ) + ;; code offset: 0xfab + (local.set $13 + ;; code offset: 0xfa8 + (i32.load offset=76 + ;; code offset: 0xfa6 + (local.get $7) + ) + ) + ;; code offset: 0xfad + (block $label$16 + (block $label$17 + ;; code offset: 0xfb4 + (br_if $label$17 + ;; code offset: 0xfb3 + (i32.eqz + ;; code offset: 0xfb1 + (local.get $1) + ) + ) + ;; code offset: 0xfbe + (br_if $label$17 + ;; code offset: 0xfbd + (i32.ne + ;; code offset: 0xfb8 + (i32.load8_u offset=2 + ;; code offset: 0xfb6 + (local.get $13) + ) + ;; code offset: 0xfbb + (i32.const 36) + ) + ) + ;; code offset: 0xfc5 + (local.set $1 + ;; code offset: 0xfc4 + (i32.add + ;; code offset: 0xfc0 + (local.get $13) + ;; code offset: 0xfc2 + (i32.const 3) + ) + ) + ;; code offset: 0xfcf + (local.set $16 + ;; code offset: 0xfce + (i32.add + ;; code offset: 0xfc9 + (i32.load8_s offset=1 + ;; code offset: 0xfc7 + (local.get $13) + ) + ;; code offset: 0xfcc + (i32.const -48) + ) + ) + ;; code offset: 0xfd3 + (local.set $10 + ;; code offset: 0xfd1 + (i32.const 1) + ) + ;; code offset: 0xfd5 + (br $label$16) + ) + ;; code offset: 0xfdd + (local.set $1 + ;; code offset: 0xfdc + (i32.add + ;; code offset: 0xfd8 + (local.get $13) + ;; code offset: 0xfda + (i32.const 1) + ) + ) + ;; code offset: 0xfe1 + (local.set $16 + ;; code offset: 0xfdf + (i32.const -1) + ) + ) + ;; code offset: 0xfe8 + (i32.store offset=76 + ;; code offset: 0xfe4 + (local.get $7) + ;; code offset: 0xfe6 + (local.get $1) + ) + ;; code offset: 0xfed + (local.set $17 + ;; code offset: 0xfeb + (i32.const 0) + ) + ;; code offset: 0xfef + (block $label$18 + (block $label$19 + ;; code offset: 0x1002 + (br_if $label$19 + ;; code offset: 0x1001 + (i32.le_u + ;; code offset: 0xffd + (local.tee $14 + ;; code offset: 0xffc + (i32.add + ;; code offset: 0xff8 + (local.tee $15 + ;; code offset: 0xff5 + (i32.load8_s + ;; code offset: 0xff3 + (local.get $1) + ) + ) + ;; code offset: 0xffa + (i32.const -32) + ) + ) + ;; code offset: 0xfff + (i32.const 31) + ) + ) + ;; code offset: 0x1006 + (local.set $13 + ;; code offset: 0x1004 + (local.get $1) + ) + ;; code offset: 0x1008 + (br $label$18) + ) + ;; code offset: 0x100d + (local.set $17 + ;; code offset: 0x100b + (i32.const 0) + ) + ;; code offset: 0x1011 + (local.set $13 + ;; code offset: 0x100f + (local.get $1) + ) + ;; code offset: 0x1020 + (br_if $label$18 + ;; code offset: 0x101f + (i32.eqz + ;; code offset: 0x101e + (i32.and + ;; code offset: 0x1018 + (local.tee $14 + ;; code offset: 0x1017 + (i32.shl + ;; code offset: 0x1013 + (i32.const 1) + ;; code offset: 0x1015 + (local.get $14) + ) + ) + ;; code offset: 0x101a + (i32.const 75913) + ) + ) + ) + ;; code offset: 0x1022 + (loop $label$20 + ;; code offset: 0x102d + (i32.store offset=76 + ;; code offset: 0x1024 + (local.get $7) + ;; code offset: 0x102b + (local.tee $13 + ;; code offset: 0x102a + (i32.add + ;; code offset: 0x1026 + (local.get $1) + ;; code offset: 0x1028 + (i32.const 1) + ) + ) + ) + ;; code offset: 0x1035 + (local.set $17 + ;; code offset: 0x1034 + (i32.or + ;; code offset: 0x1030 + (local.get $14) + ;; code offset: 0x1032 + (local.get $17) + ) + ) + ;; code offset: 0x1046 + (br_if $label$18 + ;; code offset: 0x1045 + (i32.ge_u + ;; code offset: 0x1041 + (local.tee $14 + ;; code offset: 0x1040 + (i32.add + ;; code offset: 0x103c + (local.tee $15 + ;; code offset: 0x1039 + (i32.load8_s offset=1 + ;; code offset: 0x1037 + (local.get $1) + ) + ) + ;; code offset: 0x103e + (i32.const -32) + ) + ) + ;; code offset: 0x1043 + (i32.const 32) + ) + ) + ;; code offset: 0x104a + (local.set $1 + ;; code offset: 0x1048 + (local.get $13) + ) + ;; code offset: 0x1058 + (br_if $label$20 + ;; code offset: 0x1057 + (i32.and + ;; code offset: 0x1051 + (local.tee $14 + ;; code offset: 0x1050 + (i32.shl + ;; code offset: 0x104c + (i32.const 1) + ;; code offset: 0x104e + (local.get $14) + ) + ) + ;; code offset: 0x1053 + (i32.const 75913) + ) + ) + ) + ) + ;; code offset: 0x105c + (block $label$21 + (block $label$22 + ;; code offset: 0x1065 + (br_if $label$22 + ;; code offset: 0x1064 + (i32.ne + ;; code offset: 0x1060 + (local.get $15) + ;; code offset: 0x1062 + (i32.const 42) + ) + ) + ;; code offset: 0x1067 + (block $label$23 + (block $label$24 + ;; code offset: 0x1073 + (br_if $label$24 + ;; code offset: 0x1072 + (i32.eqz + ;; code offset: 0x1070 + (call $isdigit + ;; code offset: 0x106d + (i32.load8_s offset=1 + ;; code offset: 0x106b + (local.get $13) + ) + ) + ) + ) + ;; code offset: 0x1082 + (br_if $label$24 + ;; code offset: 0x1081 + (i32.ne + ;; code offset: 0x107c + (i32.load8_u offset=2 + ;; code offset: 0x107a + (local.tee $13 + ;; code offset: 0x1077 + (i32.load offset=76 + ;; code offset: 0x1075 + (local.get $7) + ) + ) + ) + ;; code offset: 0x107f + (i32.const 36) + ) + ) + ;; code offset: 0x1095 + (i32.store + ;; code offset: 0x1092 + (i32.add + ;; code offset: 0x108e + (i32.add + ;; code offset: 0x108b + (i32.shl + ;; code offset: 0x1086 + (i32.load8_s offset=1 + ;; code offset: 0x1084 + (local.get $13) + ) + ;; code offset: 0x1089 + (i32.const 2) + ) + ;; code offset: 0x108c + (local.get $4) + ) + ;; code offset: 0x108f + (i32.const -192) + ) + ;; code offset: 0x1093 + (i32.const 10) + ) + ;; code offset: 0x109d + (local.set $1 + ;; code offset: 0x109c + (i32.add + ;; code offset: 0x1098 + (local.get $13) + ;; code offset: 0x109a + (i32.const 3) + ) + ) + ;; code offset: 0x10b1 + (local.set $18 + ;; code offset: 0x10ae + (i32.load + ;; code offset: 0x10ad + (i32.add + ;; code offset: 0x10a9 + (i32.add + ;; code offset: 0x10a6 + (i32.shl + ;; code offset: 0x10a1 + (i32.load8_s offset=1 + ;; code offset: 0x109f + (local.get $13) + ) + ;; code offset: 0x10a4 + (i32.const 3) + ) + ;; code offset: 0x10a7 + (local.get $3) + ) + ;; code offset: 0x10aa + (i32.const -384) + ) + ) + ) + ;; code offset: 0x10b5 + (local.set $10 + ;; code offset: 0x10b3 + (i32.const 1) + ) + ;; code offset: 0x10b7 + (br $label$23) + ) + ;; code offset: 0x10bc + (br_if $label$8 + ;; code offset: 0x10ba + (local.get $10) + ) + ;; code offset: 0x10c0 + (local.set $10 + ;; code offset: 0x10be + (i32.const 0) + ) + ;; code offset: 0x10c4 + (local.set $18 + ;; code offset: 0x10c2 + (i32.const 0) + ) + ;; code offset: 0x10c6 + (block $label$25 + ;; code offset: 0x10cb + (br_if $label$25 + ;; code offset: 0x10ca + (i32.eqz + ;; code offset: 0x10c8 + (local.get $0) + ) + ) + ;; code offset: 0x10d9 + (i32.store + ;; code offset: 0x10cd + (local.get $2) + ;; code offset: 0x10d8 + (i32.add + ;; code offset: 0x10d4 + (local.tee $1 + ;; code offset: 0x10d1 + (i32.load + ;; code offset: 0x10cf + (local.get $2) + ) + ) + ;; code offset: 0x10d6 + (i32.const 4) + ) + ) + ;; code offset: 0x10e1 + (local.set $18 + ;; code offset: 0x10de + (i32.load + ;; code offset: 0x10dc + (local.get $1) + ) + ) + ) + ;; code offset: 0x10ec + (local.set $1 + ;; code offset: 0x10eb + (i32.add + ;; code offset: 0x10e6 + (i32.load offset=76 + ;; code offset: 0x10e4 + (local.get $7) + ) + ;; code offset: 0x10e9 + (i32.const 1) + ) + ) + ) + ;; code offset: 0x10f3 + (i32.store offset=76 + ;; code offset: 0x10ef + (local.get $7) + ;; code offset: 0x10f1 + (local.get $1) + ) + ;; code offset: 0x10fb + (br_if $label$21 + ;; code offset: 0x10fa + (i32.gt_s + ;; code offset: 0x10f6 + (local.get $18) + ;; code offset: 0x10f8 + (i32.const -1) + ) + ) + ;; code offset: 0x1102 + (local.set $18 + ;; code offset: 0x1101 + (i32.sub + ;; code offset: 0x10fd + (i32.const 0) + ;; code offset: 0x10ff + (local.get $18) + ) + ) + ;; code offset: 0x110b + (local.set $17 + ;; code offset: 0x110a + (i32.or + ;; code offset: 0x1104 + (local.get $17) + ;; code offset: 0x1106 + (i32.const 8192) + ) + ) + ;; code offset: 0x110d + (br $label$21) + ) + ;; code offset: 0x111d + (br_if $label$8 + ;; code offset: 0x111c + (i32.lt_s + ;; code offset: 0x1118 + (local.tee $18 + ;; code offset: 0x1116 + (call $getint + ;; code offset: 0x1115 + (i32.add + ;; code offset: 0x1110 + (local.get $7) + ;; code offset: 0x1112 + (i32.const 76) + ) + ) + ) + ;; code offset: 0x111a + (i32.const 0) + ) + ) + ;; code offset: 0x1124 + (local.set $1 + ;; code offset: 0x1121 + (i32.load offset=76 + ;; code offset: 0x111f + (local.get $7) + ) + ) + ) + ;; code offset: 0x1129 + (local.set $19 + ;; code offset: 0x1127 + (i32.const -1) + ) + ;; code offset: 0x112b + (block $label$26 + ;; code offset: 0x1135 + (br_if $label$26 + ;; code offset: 0x1134 + (i32.ne + ;; code offset: 0x112f + (i32.load8_u + ;; code offset: 0x112d + (local.get $1) + ) + ;; code offset: 0x1132 + (i32.const 46) + ) + ) + ;; code offset: 0x1137 + (block $label$27 + ;; code offset: 0x1141 + (br_if $label$27 + ;; code offset: 0x1140 + (i32.ne + ;; code offset: 0x113b + (i32.load8_u offset=1 + ;; code offset: 0x1139 + (local.get $1) + ) + ;; code offset: 0x113e + (i32.const 42) + ) + ) + ;; code offset: 0x1143 + (block $label$28 + ;; code offset: 0x114d + (br_if $label$28 + ;; code offset: 0x114c + (i32.eqz + ;; code offset: 0x114a + (call $isdigit + ;; code offset: 0x1147 + (i32.load8_s offset=2 + ;; code offset: 0x1145 + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x115c + (br_if $label$28 + ;; code offset: 0x115b + (i32.ne + ;; code offset: 0x1156 + (i32.load8_u offset=3 + ;; code offset: 0x1154 + (local.tee $1 + ;; code offset: 0x1151 + (i32.load offset=76 + ;; code offset: 0x114f + (local.get $7) + ) + ) + ) + ;; code offset: 0x1159 + (i32.const 36) + ) + ) + ;; code offset: 0x116f + (i32.store + ;; code offset: 0x116c + (i32.add + ;; code offset: 0x1168 + (i32.add + ;; code offset: 0x1165 + (i32.shl + ;; code offset: 0x1160 + (i32.load8_s offset=2 + ;; code offset: 0x115e + (local.get $1) + ) + ;; code offset: 0x1163 + (i32.const 2) + ) + ;; code offset: 0x1166 + (local.get $4) + ) + ;; code offset: 0x1169 + (i32.const -192) + ) + ;; code offset: 0x116d + (i32.const 10) + ) + ;; code offset: 0x1184 + (local.set $19 + ;; code offset: 0x1181 + (i32.load + ;; code offset: 0x1180 + (i32.add + ;; code offset: 0x117c + (i32.add + ;; code offset: 0x1179 + (i32.shl + ;; code offset: 0x1174 + (i32.load8_s offset=2 + ;; code offset: 0x1172 + (local.get $1) + ) + ;; code offset: 0x1177 + (i32.const 3) + ) + ;; code offset: 0x117a + (local.get $3) + ) + ;; code offset: 0x117d + (i32.const -384) + ) + ) + ) + ;; code offset: 0x118f + (i32.store offset=76 + ;; code offset: 0x1186 + (local.get $7) + ;; code offset: 0x118d + (local.tee $1 + ;; code offset: 0x118c + (i32.add + ;; code offset: 0x1188 + (local.get $1) + ;; code offset: 0x118a + (i32.const 4) + ) + ) + ) + ;; code offset: 0x1192 + (br $label$26) + ) + ;; code offset: 0x1197 + (br_if $label$8 + ;; code offset: 0x1195 + (local.get $10) + ) + ;; code offset: 0x1199 + (block $label$29 + (block $label$30 + ;; code offset: 0x119f + (br_if $label$30 + ;; code offset: 0x119d + (local.get $0) + ) + ;; code offset: 0x11a3 + (local.set $19 + ;; code offset: 0x11a1 + (i32.const 0) + ) + ;; code offset: 0x11a5 + (br $label$29) + ) + ;; code offset: 0x11b4 + (i32.store + ;; code offset: 0x11a8 + (local.get $2) + ;; code offset: 0x11b3 + (i32.add + ;; code offset: 0x11af + (local.tee $1 + ;; code offset: 0x11ac + (i32.load + ;; code offset: 0x11aa + (local.get $2) + ) + ) + ;; code offset: 0x11b1 + (i32.const 4) + ) + ) + ;; code offset: 0x11bc + (local.set $19 + ;; code offset: 0x11b9 + (i32.load + ;; code offset: 0x11b7 + (local.get $1) + ) + ) + ) + ;; code offset: 0x11cb + (i32.store offset=76 + ;; code offset: 0x11bf + (local.get $7) + ;; code offset: 0x11c9 + (local.tee $1 + ;; code offset: 0x11c8 + (i32.add + ;; code offset: 0x11c3 + (i32.load offset=76 + ;; code offset: 0x11c1 + (local.get $7) + ) + ;; code offset: 0x11c6 + (i32.const 2) + ) + ) + ) + ;; code offset: 0x11ce + (br $label$26) + ) + ;; code offset: 0x11d8 + (i32.store offset=76 + ;; code offset: 0x11d1 + (local.get $7) + ;; code offset: 0x11d7 + (i32.add + ;; code offset: 0x11d3 + (local.get $1) + ;; code offset: 0x11d5 + (i32.const 1) + ) + ) + ;; code offset: 0x11e3 + (local.set $19 + ;; code offset: 0x11e1 + (call $getint + ;; code offset: 0x11e0 + (i32.add + ;; code offset: 0x11db + (local.get $7) + ;; code offset: 0x11dd + (i32.const 76) + ) + ) + ) + ;; code offset: 0x11ea + (local.set $1 + ;; code offset: 0x11e7 + (i32.load offset=76 + ;; code offset: 0x11e5 + (local.get $7) + ) + ) + ) + ;; code offset: 0x11ef + (local.set $13 + ;; code offset: 0x11ed + (i32.const 0) + ) + ;; code offset: 0x11f1 + (loop $label$31 + ;; code offset: 0x11f5 + (local.set $14 + ;; code offset: 0x11f3 + (local.get $13) + ) + ;; code offset: 0x11f9 + (local.set $20 + ;; code offset: 0x11f7 + (i32.const -1) + ) + ;; code offset: 0x1207 + (br_if $label$1 + ;; code offset: 0x1206 + (i32.gt_u + ;; code offset: 0x1203 + (i32.add + ;; code offset: 0x11fd + (i32.load8_s + ;; code offset: 0x11fb + (local.get $1) + ) + ;; code offset: 0x1200 + (i32.const -65) + ) + ;; code offset: 0x1204 + (i32.const 57) + ) + ) + ;; code offset: 0x1212 + (i32.store offset=76 + ;; code offset: 0x1209 + (local.get $7) + ;; code offset: 0x1210 + (local.tee $15 + ;; code offset: 0x120f + (i32.add + ;; code offset: 0x120b + (local.get $1) + ;; code offset: 0x120d + (i32.const 1) + ) + ) + ) + ;; code offset: 0x121a + (local.set $13 + ;; code offset: 0x1217 + (i32.load8_s + ;; code offset: 0x1215 + (local.get $1) + ) + ) + ;; code offset: 0x121e + (local.set $1 + ;; code offset: 0x121c + (local.get $15) + ) + ;; code offset: 0x1237 + (br_if $label$31 + ;; code offset: 0x1236 + (i32.lt_u + ;; code offset: 0x1233 + (i32.add + ;; code offset: 0x122f + (local.tee $13 + ;; code offset: 0x122c + (i32.load8_u + ;; code offset: 0x122b + (i32.add + ;; code offset: 0x1227 + (i32.add + ;; code offset: 0x1220 + (local.get $13) + ;; code offset: 0x1226 + (i32.mul + ;; code offset: 0x1222 + (local.get $14) + ;; code offset: 0x1224 + (i32.const 58) + ) + ) + ;; code offset: 0x1228 + (i32.const 1007) + ) + ) + ) + ;; code offset: 0x1231 + (i32.const -1) + ) + ;; code offset: 0x1234 + (i32.const 8) + ) + ) + ) + ;; code offset: 0x123a + (block $label$32 + (block $label$33 + (block $label$34 + ;; code offset: 0x1245 + (br_if $label$34 + ;; code offset: 0x1244 + (i32.eq + ;; code offset: 0x1240 + (local.get $13) + ;; code offset: 0x1242 + (i32.const 19) + ) + ) + ;; code offset: 0x124a + (br_if $label$1 + ;; code offset: 0x1249 + (i32.eqz + ;; code offset: 0x1247 + (local.get $13) + ) + ) + ;; code offset: 0x124c + (block $label$35 + ;; code offset: 0x1253 + (br_if $label$35 + ;; code offset: 0x1252 + (i32.lt_s + ;; code offset: 0x124e + (local.get $16) + ;; code offset: 0x1250 + (i32.const 0) + ) + ) + ;; code offset: 0x125f + (i32.store + ;; code offset: 0x125c + (i32.add + ;; code offset: 0x1255 + (local.get $4) + ;; code offset: 0x125b + (i32.shl + ;; code offset: 0x1257 + (local.get $16) + ;; code offset: 0x1259 + (i32.const 2) + ) + ) + ;; code offset: 0x125d + (local.get $13) + ) + ;; code offset: 0x126f + (i64.store offset=64 + ;; code offset: 0x1262 + (local.get $7) + ;; code offset: 0x126c + (i64.load + ;; code offset: 0x126b + (i32.add + ;; code offset: 0x1264 + (local.get $3) + ;; code offset: 0x126a + (i32.shl + ;; code offset: 0x1266 + (local.get $16) + ;; code offset: 0x1268 + (i32.const 3) + ) + ) + ) + ) + ;; code offset: 0x1272 + (br $label$33) + ) + ;; code offset: 0x1278 + (br_if $label$5 + ;; code offset: 0x1277 + (i32.eqz + ;; code offset: 0x1275 + (local.get $0) + ) + ) + ;; code offset: 0x1286 + (call $pop_arg + ;; code offset: 0x127f + (i32.add + ;; code offset: 0x127a + (local.get $7) + ;; code offset: 0x127c + (i32.const 64) + ) + ;; code offset: 0x1280 + (local.get $13) + ;; code offset: 0x1282 + (local.get $2) + ;; code offset: 0x1284 + (local.get $6) + ) + ;; code offset: 0x128d + (local.set $15 + ;; code offset: 0x128a + (i32.load offset=76 + ;; code offset: 0x1288 + (local.get $7) + ) + ) + ;; code offset: 0x128f + (br $label$32) + ) + ;; code offset: 0x1294 + (local.set $20 + ;; code offset: 0x1292 + (i32.const -1) + ) + ;; code offset: 0x129b + (br_if $label$1 + ;; code offset: 0x129a + (i32.gt_s + ;; code offset: 0x1296 + (local.get $16) + ;; code offset: 0x1298 + (i32.const -1) + ) + ) + ) + ;; code offset: 0x12a0 + (local.set $1 + ;; code offset: 0x129e + (i32.const 0) + ) + ;; code offset: 0x12a5 + (br_if $label$2 + ;; code offset: 0x12a4 + (i32.eqz + ;; code offset: 0x12a2 + (local.get $0) + ) + ) + ) + ;; code offset: 0x12bb + (local.set $13 + ;; code offset: 0x12ba + (select + ;; code offset: 0x12af + (local.tee $21 + ;; code offset: 0x12ae + (i32.and + ;; code offset: 0x12a8 + (local.get $17) + ;; code offset: 0x12aa + (i32.const -65537) + ) + ) + ;; code offset: 0x12b1 + (local.get $17) + ;; code offset: 0x12b9 + (i32.and + ;; code offset: 0x12b3 + (local.get $17) + ;; code offset: 0x12b5 + (i32.const 8192) + ) + ) + ) + ;; code offset: 0x12bf + (local.set $20 + ;; code offset: 0x12bd + (i32.const 0) + ) + ;; code offset: 0x12c4 + (local.set $16 + ;; code offset: 0x12c1 + (i32.const 1040) + ) + ;; code offset: 0x12c8 + (local.set $17 + ;; code offset: 0x12c6 + (local.get $9) + ) + ;; code offset: 0x12ca + (block $label$36 + (block $label$37 + (block $label$38 + (block $label$39 + (block $label$40 + (block $label$41 + (block $label$42 + (block $label$43 + (block $label$44 + (block $label$45 + (block $label$46 + (block $label$47 + (block $label$48 + (block $label$49 + (block $label$50 + (block $label$51 + ;; code offset: 0x130d + (br_table $label$47 $label$6 $label$6 $label$6 $label$6 $label$6 $label$6 $label$6 $label$6 $label$37 $label$6 $label$36 $label$45 $label$37 $label$37 $label$37 $label$6 $label$45 $label$6 $label$6 $label$6 $label$6 $label$49 $label$46 $label$48 $label$6 $label$6 $label$42 $label$6 $label$50 $label$6 $label$6 $label$47 $label$51 + ;; code offset: 0x130c + (i32.add + ;; code offset: 0x1307 + (local.tee $1 + ;; code offset: 0x1306 + (select + ;; code offset: 0x1301 + (select + ;; code offset: 0x12f6 + (i32.and + ;; code offset: 0x12f2 + (local.tee $1 + ;; code offset: 0x12ef + (i32.load8_s + ;; code offset: 0x12ee + (i32.add + ;; code offset: 0x12ea + (local.get $15) + ;; code offset: 0x12ec + (i32.const -1) + ) + ) + ) + ;; code offset: 0x12f4 + (i32.const -33) + ) + ;; code offset: 0x12f7 + (local.get $1) + ;; code offset: 0x1300 + (i32.eq + ;; code offset: 0x12fd + (i32.and + ;; code offset: 0x12f9 + (local.get $1) + ;; code offset: 0x12fb + (i32.const 15) + ) + ;; code offset: 0x12fe + (i32.const 3) + ) + ) + ;; code offset: 0x1302 + (local.get $1) + ;; code offset: 0x1304 + (local.get $14) + ) + ) + ;; code offset: 0x1309 + (i32.const -88) + ) + ) + ) + ;; code offset: 0x1334 + (local.set $17 + ;; code offset: 0x1332 + (local.get $9) + ) + ;; code offset: 0x1336 + (block $label$52 + ;; code offset: 0x133e + (br_table $label$37 $label$6 $label$40 $label$6 $label$37 $label$37 $label$37 $label$52 + ;; code offset: 0x133d + (i32.add + ;; code offset: 0x1338 + (local.get $1) + ;; code offset: 0x133a + (i32.const -65) + ) + ) + ) + ;; code offset: 0x134f + (br_if $label$41 + ;; code offset: 0x134e + (i32.eq + ;; code offset: 0x1349 + (local.get $1) + ;; code offset: 0x134b + (i32.const 83) + ) + ) + ;; code offset: 0x1351 + (br $label$7) + ) + ;; code offset: 0x1356 + (local.set $20 + ;; code offset: 0x1354 + (i32.const 0) + ) + ;; code offset: 0x135b + (local.set $16 + ;; code offset: 0x1358 + (i32.const 1040) + ) + ;; code offset: 0x1362 + (local.set $22 + ;; code offset: 0x135f + (i64.load offset=64 + ;; code offset: 0x135d + (local.get $7) + ) + ) + ;; code offset: 0x1364 + (br $label$44) + ) + ;; code offset: 0x1369 + (local.set $1 + ;; code offset: 0x1367 + (i32.const 0) + ) + ;; code offset: 0x136b + (block $label$53 + (block $label$54 + (block $label$55 + (block $label$56 + (block $label$57 + (block $label$58 + (block $label$59 + ;; code offset: 0x137f + (br_table $label$59 $label$58 $label$57 $label$56 $label$55 $label$2 $label$54 $label$53 $label$2 + ;; code offset: 0x137e + (i32.and + ;; code offset: 0x1379 + (local.get $14) + ;; code offset: 0x137b + (i32.const 255) + ) + ) + ) + ;; code offset: 0x1392 + (i32.store + ;; code offset: 0x138d + (i32.load offset=64 + ;; code offset: 0x138b + (local.get $7) + ) + ;; code offset: 0x1390 + (local.get $11) + ) + ;; code offset: 0x1395 + (br $label$2) + ) + ;; code offset: 0x139f + (i32.store + ;; code offset: 0x139a + (i32.load offset=64 + ;; code offset: 0x1398 + (local.get $7) + ) + ;; code offset: 0x139d + (local.get $11) + ) + ;; code offset: 0x13a2 + (br $label$2) + ) + ;; code offset: 0x13ad + (i64.store + ;; code offset: 0x13a7 + (i32.load offset=64 + ;; code offset: 0x13a5 + (local.get $7) + ) + ;; code offset: 0x13ac + (i64.extend_i32_s + ;; code offset: 0x13aa + (local.get $11) + ) + ) + ;; code offset: 0x13b0 + (br $label$2) + ) + ;; code offset: 0x13ba + (i32.store16 + ;; code offset: 0x13b5 + (i32.load offset=64 + ;; code offset: 0x13b3 + (local.get $7) + ) + ;; code offset: 0x13b8 + (local.get $11) + ) + ;; code offset: 0x13bd + (br $label$2) + ) + ;; code offset: 0x13c7 + (i32.store8 + ;; code offset: 0x13c2 + (i32.load offset=64 + ;; code offset: 0x13c0 + (local.get $7) + ) + ;; code offset: 0x13c5 + (local.get $11) + ) + ;; code offset: 0x13ca + (br $label$2) + ) + ;; code offset: 0x13d4 + (i32.store + ;; code offset: 0x13cf + (i32.load offset=64 + ;; code offset: 0x13cd + (local.get $7) + ) + ;; code offset: 0x13d2 + (local.get $11) + ) + ;; code offset: 0x13d7 + (br $label$2) + ) + ;; code offset: 0x13e2 + (i64.store + ;; code offset: 0x13dc + (i32.load offset=64 + ;; code offset: 0x13da + (local.get $7) + ) + ;; code offset: 0x13e1 + (i64.extend_i32_s + ;; code offset: 0x13df + (local.get $11) + ) + ) + ;; code offset: 0x13e5 + (br $label$2) + ) + ;; code offset: 0x13f2 + (local.set $19 + ;; code offset: 0x13f1 + (select + ;; code offset: 0x13e8 + (local.get $19) + ;; code offset: 0x13ea + (i32.const 8) + ;; code offset: 0x13f0 + (i32.gt_u + ;; code offset: 0x13ec + (local.get $19) + ;; code offset: 0x13ee + (i32.const 8) + ) + ) + ) + ;; code offset: 0x13f9 + (local.set $13 + ;; code offset: 0x13f8 + (i32.or + ;; code offset: 0x13f4 + (local.get $13) + ;; code offset: 0x13f6 + (i32.const 8) + ) + ) + ;; code offset: 0x13fe + (local.set $1 + ;; code offset: 0x13fb + (i32.const 120) + ) + ) + ;; code offset: 0x1403 + (local.set $20 + ;; code offset: 0x1401 + (i32.const 0) + ) + ;; code offset: 0x1408 + (local.set $16 + ;; code offset: 0x1405 + (i32.const 1040) + ) + ;; code offset: 0x1418 + (local.set $12 + ;; code offset: 0x1416 + (call $fmt_x + ;; code offset: 0x140c + (i64.load offset=64 + ;; code offset: 0x140a + (local.get $7) + ) + ;; code offset: 0x140f + (local.get $9) + ;; code offset: 0x1415 + (i32.and + ;; code offset: 0x1411 + (local.get $1) + ;; code offset: 0x1413 + (i32.const 32) + ) + ) + ) + ;; code offset: 0x1420 + (br_if $label$43 + ;; code offset: 0x141f + (i32.eqz + ;; code offset: 0x141e + (i32.and + ;; code offset: 0x141a + (local.get $13) + ;; code offset: 0x141c + (i32.const 8) + ) + ) + ) + ;; code offset: 0x1428 + (br_if $label$43 + ;; code offset: 0x1427 + (i64.eqz + ;; code offset: 0x1424 + (i64.load offset=64 + ;; code offset: 0x1422 + (local.get $7) + ) + ) + ) + ;; code offset: 0x1433 + (local.set $16 + ;; code offset: 0x1432 + (i32.add + ;; code offset: 0x142e + (i32.shr_u + ;; code offset: 0x142a + (local.get $1) + ;; code offset: 0x142c + (i32.const 4) + ) + ;; code offset: 0x142f + (i32.const 1040) + ) + ) + ;; code offset: 0x1437 + (local.set $20 + ;; code offset: 0x1435 + (i32.const 2) + ) + ;; code offset: 0x1439 + (br $label$43) + ) + ;; code offset: 0x143e + (local.set $20 + ;; code offset: 0x143c + (i32.const 0) + ) + ;; code offset: 0x1443 + (local.set $16 + ;; code offset: 0x1440 + (i32.const 1040) + ) + ;; code offset: 0x144e + (local.set $12 + ;; code offset: 0x144c + (call $fmt_o + ;; code offset: 0x1447 + (i64.load offset=64 + ;; code offset: 0x1445 + (local.get $7) + ) + ;; code offset: 0x144a + (local.get $9) + ) + ) + ;; code offset: 0x1456 + (br_if $label$43 + ;; code offset: 0x1455 + (i32.eqz + ;; code offset: 0x1454 + (i32.and + ;; code offset: 0x1450 + (local.get $13) + ;; code offset: 0x1452 + (i32.const 8) + ) + ) + ) + ;; code offset: 0x146a + (local.set $19 + ;; code offset: 0x1469 + (select + ;; code offset: 0x1458 + (local.get $19) + ;; code offset: 0x1463 + (i32.add + ;; code offset: 0x145f + (local.tee $1 + ;; code offset: 0x145e + (i32.sub + ;; code offset: 0x145a + (local.get $9) + ;; code offset: 0x145c + (local.get $12) + ) + ) + ;; code offset: 0x1461 + (i32.const 1) + ) + ;; code offset: 0x1468 + (i32.gt_s + ;; code offset: 0x1464 + (local.get $19) + ;; code offset: 0x1466 + (local.get $1) + ) + ) + ) + ;; code offset: 0x146c + (br $label$43) + ) + ;; code offset: 0x146f + (block $label$60 + ;; code offset: 0x147b + (br_if $label$60 + ;; code offset: 0x147a + (i64.gt_s + ;; code offset: 0x1476 + (local.tee $22 + ;; code offset: 0x1473 + (i64.load offset=64 + ;; code offset: 0x1471 + (local.get $7) + ) + ) + ;; code offset: 0x1478 + (i64.const -1) + ) + ) + ;; code offset: 0x1486 + (i64.store offset=64 + ;; code offset: 0x147d + (local.get $7) + ;; code offset: 0x1484 + (local.tee $22 + ;; code offset: 0x1483 + (i64.sub + ;; code offset: 0x147f + (i64.const 0) + ;; code offset: 0x1481 + (local.get $22) + ) + ) + ) + ;; code offset: 0x148b + (local.set $20 + ;; code offset: 0x1489 + (i32.const 1) + ) + ;; code offset: 0x1490 + (local.set $16 + ;; code offset: 0x148d + (i32.const 1040) + ) + ;; code offset: 0x1492 + (br $label$44) + ) + ;; code offset: 0x1495 + (block $label$61 + ;; code offset: 0x149e + (br_if $label$61 + ;; code offset: 0x149d + (i32.eqz + ;; code offset: 0x149c + (i32.and + ;; code offset: 0x1497 + (local.get $13) + ;; code offset: 0x1499 + (i32.const 2048) + ) + ) + ) + ;; code offset: 0x14a2 + (local.set $20 + ;; code offset: 0x14a0 + (i32.const 1) + ) + ;; code offset: 0x14a7 + (local.set $16 + ;; code offset: 0x14a4 + (i32.const 1041) + ) + ;; code offset: 0x14a9 + (br $label$44) + ) + ;; code offset: 0x14ba + (local.set $16 + ;; code offset: 0x14b9 + (select + ;; code offset: 0x14ac + (i32.const 1042) + ;; code offset: 0x14af + (i32.const 1040) + ;; code offset: 0x14b7 + (local.tee $20 + ;; code offset: 0x14b6 + (i32.and + ;; code offset: 0x14b2 + (local.get $13) + ;; code offset: 0x14b4 + (i32.const 1) + ) + ) + ) + ) + ) + ;; code offset: 0x14c3 + (local.set $12 + ;; code offset: 0x14c1 + (call $fmt_u + ;; code offset: 0x14bd + (local.get $22) + ;; code offset: 0x14bf + (local.get $9) + ) + ) + ) + ;; code offset: 0x14d5 + (local.set $13 + ;; code offset: 0x14d4 + (select + ;; code offset: 0x14cc + (i32.and + ;; code offset: 0x14c6 + (local.get $13) + ;; code offset: 0x14c8 + (i32.const -65537) + ) + ;; code offset: 0x14cd + (local.get $13) + ;; code offset: 0x14d3 + (i32.gt_s + ;; code offset: 0x14cf + (local.get $19) + ;; code offset: 0x14d1 + (i32.const -1) + ) + ) + ) + ;; code offset: 0x14dc + (local.set $22 + ;; code offset: 0x14d9 + (i64.load offset=64 + ;; code offset: 0x14d7 + (local.get $7) + ) + ) + ;; code offset: 0x14de + (block $label$62 + ;; code offset: 0x14e2 + (br_if $label$62 + ;; code offset: 0x14e0 + (local.get $19) + ) + ;; code offset: 0x14e8 + (br_if $label$62 + ;; code offset: 0x14e7 + (i32.eqz + ;; code offset: 0x14e6 + (i64.eqz + ;; code offset: 0x14e4 + (local.get $22) + ) + ) + ) + ;; code offset: 0x14ec + (local.set $19 + ;; code offset: 0x14ea + (i32.const 0) + ) + ;; code offset: 0x14f0 + (local.set $12 + ;; code offset: 0x14ee + (local.get $9) + ) + ;; code offset: 0x14f2 + (br $label$7) + ) + ;; code offset: 0x1508 + (local.set $19 + ;; code offset: 0x1507 + (select + ;; code offset: 0x14f5 + (local.get $19) + ;; code offset: 0x1500 + (local.tee $1 + ;; code offset: 0x14ff + (i32.add + ;; code offset: 0x14fb + (i32.sub + ;; code offset: 0x14f7 + (local.get $9) + ;; code offset: 0x14f9 + (local.get $12) + ) + ;; code offset: 0x14fe + (i64.eqz + ;; code offset: 0x14fc + (local.get $22) + ) + ) + ) + ;; code offset: 0x1506 + (i32.gt_s + ;; code offset: 0x1502 + (local.get $19) + ;; code offset: 0x1504 + (local.get $1) + ) + ) + ) + ;; code offset: 0x150a + (br $label$7) + ) + ;; code offset: 0x150f + (local.set $20 + ;; code offset: 0x150d + (i32.const 0) + ) + ;; code offset: 0x1530 + (local.set $17 + ;; code offset: 0x152f + (select + ;; code offset: 0x1526 + (local.tee $1 + ;; code offset: 0x1524 + (call $memchr + ;; code offset: 0x151e + (local.tee $12 + ;; code offset: 0x151d + (select + ;; code offset: 0x1516 + (local.tee $1 + ;; code offset: 0x1513 + (i32.load offset=64 + ;; code offset: 0x1511 + (local.get $7) + ) + ) + ;; code offset: 0x1518 + (i32.const 1050) + ;; code offset: 0x151b + (local.get $1) + ) + ) + ;; code offset: 0x1520 + (i32.const 0) + ;; code offset: 0x1522 + (local.get $19) + ) + ) + ;; code offset: 0x152c + (i32.add + ;; code offset: 0x1528 + (local.get $12) + ;; code offset: 0x152a + (local.get $19) + ) + ;; code offset: 0x152d + (local.get $1) + ) + ) + ;; code offset: 0x1534 + (local.set $13 + ;; code offset: 0x1532 + (local.get $21) + ) + ;; code offset: 0x1540 + (local.set $19 + ;; code offset: 0x153f + (select + ;; code offset: 0x153a + (i32.sub + ;; code offset: 0x1536 + (local.get $1) + ;; code offset: 0x1538 + (local.get $12) + ) + ;; code offset: 0x153b + (local.get $19) + ;; code offset: 0x153d + (local.get $1) + ) + ) + ;; code offset: 0x1542 + (br $label$6) + ) + ;; code offset: 0x1545 + (block $label$63 + ;; code offset: 0x154a + (br_if $label$63 + ;; code offset: 0x1549 + (i32.eqz + ;; code offset: 0x1547 + (local.get $19) + ) + ) + ;; code offset: 0x1551 + (local.set $14 + ;; code offset: 0x154e + (i32.load offset=64 + ;; code offset: 0x154c + (local.get $7) + ) + ) + ;; code offset: 0x1553 + (br $label$39) + ) + ;; code offset: 0x1558 + (local.set $1 + ;; code offset: 0x1556 + (i32.const 0) + ) + ;; code offset: 0x1564 + (call $pad + ;; code offset: 0x155a + (local.get $0) + ;; code offset: 0x155c + (i32.const 32) + ;; code offset: 0x155e + (local.get $18) + ;; code offset: 0x1560 + (i32.const 0) + ;; code offset: 0x1562 + (local.get $13) + ) + ;; code offset: 0x1566 + (br $label$38) + ) + ;; code offset: 0x156d + (i32.store offset=12 + ;; code offset: 0x1569 + (local.get $7) + ;; code offset: 0x156b + (i32.const 0) + ) + ;; code offset: 0x1577 + (i64.store32 offset=8 + ;; code offset: 0x1570 + (local.get $7) + ;; code offset: 0x1574 + (i64.load offset=64 + ;; code offset: 0x1572 + (local.get $7) + ) + ) + ;; code offset: 0x1581 + (i32.store offset=64 + ;; code offset: 0x157a + (local.get $7) + ;; code offset: 0x1580 + (i32.add + ;; code offset: 0x157c + (local.get $7) + ;; code offset: 0x157e + (i32.const 8) + ) + ) + ;; code offset: 0x1586 + (local.set $19 + ;; code offset: 0x1584 + (i32.const -1) + ) + ;; code offset: 0x158d + (local.set $14 + ;; code offset: 0x158c + (i32.add + ;; code offset: 0x1588 + (local.get $7) + ;; code offset: 0x158a + (i32.const 8) + ) + ) + ) + ;; code offset: 0x1592 + (local.set $1 + ;; code offset: 0x1590 + (i32.const 0) + ) + ;; code offset: 0x1594 + (block $label$64 + ;; code offset: 0x1596 + (loop $label$65 + ;; code offset: 0x15a0 + (br_if $label$64 + ;; code offset: 0x159f + (i32.eqz + ;; code offset: 0x159d + (local.tee $15 + ;; code offset: 0x159a + (i32.load + ;; code offset: 0x1598 + (local.get $14) + ) + ) + ) + ) + ;; code offset: 0x15a2 + (block $label$66 + ;; code offset: 0x15b4 + (br_if $label$66 + ;; code offset: 0x15b2 + (local.tee $12 + ;; code offset: 0x15b1 + (i32.lt_s + ;; code offset: 0x15ad + (local.tee $15 + ;; code offset: 0x15ab + (call $wctomb + ;; code offset: 0x15a8 + (i32.add + ;; code offset: 0x15a4 + (local.get $7) + ;; code offset: 0x15a6 + (i32.const 4) + ) + ;; code offset: 0x15a9 + (local.get $15) + ) + ) + ;; code offset: 0x15af + (i32.const 0) + ) + ) + ) + ;; code offset: 0x15be + (br_if $label$66 + ;; code offset: 0x15bd + (i32.gt_u + ;; code offset: 0x15b6 + (local.get $15) + ;; code offset: 0x15bc + (i32.sub + ;; code offset: 0x15b8 + (local.get $19) + ;; code offset: 0x15ba + (local.get $1) + ) + ) + ) + ;; code offset: 0x15c5 + (local.set $14 + ;; code offset: 0x15c4 + (i32.add + ;; code offset: 0x15c0 + (local.get $14) + ;; code offset: 0x15c2 + (i32.const 4) + ) + ) + ;; code offset: 0x15d1 + (br_if $label$65 + ;; code offset: 0x15d0 + (i32.gt_u + ;; code offset: 0x15c7 + (local.get $19) + ;; code offset: 0x15ce + (local.tee $1 + ;; code offset: 0x15cd + (i32.add + ;; code offset: 0x15c9 + (local.get $15) + ;; code offset: 0x15cb + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x15d3 + (br $label$64) + ) + ) + ;; code offset: 0x15d9 + (local.set $20 + ;; code offset: 0x15d7 + (i32.const -1) + ) + ;; code offset: 0x15dd + (br_if $label$1 + ;; code offset: 0x15db + (local.get $12) + ) + ) + ;; code offset: 0x15ea + (call $pad + ;; code offset: 0x15e0 + (local.get $0) + ;; code offset: 0x15e2 + (i32.const 32) + ;; code offset: 0x15e4 + (local.get $18) + ;; code offset: 0x15e6 + (local.get $1) + ;; code offset: 0x15e8 + (local.get $13) + ) + ;; code offset: 0x15ec + (block $label$67 + ;; code offset: 0x15f0 + (br_if $label$67 + ;; code offset: 0x15ee + (local.get $1) + ) + ;; code offset: 0x15f4 + (local.set $1 + ;; code offset: 0x15f2 + (i32.const 0) + ) + ;; code offset: 0x15f6 + (br $label$38) + ) + ;; code offset: 0x15fb + (local.set $15 + ;; code offset: 0x15f9 + (i32.const 0) + ) + ;; code offset: 0x1602 + (local.set $14 + ;; code offset: 0x15ff + (i32.load offset=64 + ;; code offset: 0x15fd + (local.get $7) + ) + ) + ;; code offset: 0x1604 + (loop $label$68 + ;; code offset: 0x160e + (br_if $label$38 + ;; code offset: 0x160d + (i32.eqz + ;; code offset: 0x160b + (local.tee $12 + ;; code offset: 0x1608 + (i32.load + ;; code offset: 0x1606 + (local.get $14) + ) + ) + ) + ) + ;; code offset: 0x1623 + (br_if $label$38 + ;; code offset: 0x1622 + (i32.gt_s + ;; code offset: 0x161e + (local.tee $15 + ;; code offset: 0x161d + (i32.add + ;; code offset: 0x1619 + (local.tee $12 + ;; code offset: 0x1617 + (call $wctomb + ;; code offset: 0x1614 + (i32.add + ;; code offset: 0x1610 + (local.get $7) + ;; code offset: 0x1612 + (i32.const 4) + ) + ;; code offset: 0x1615 + (local.get $12) + ) + ) + ;; code offset: 0x161b + (local.get $15) + ) + ) + ;; code offset: 0x1620 + (local.get $1) + ) + ) + ;; code offset: 0x162e + (call $out + ;; code offset: 0x1625 + (local.get $0) + ;; code offset: 0x162b + (i32.add + ;; code offset: 0x1627 + (local.get $7) + ;; code offset: 0x1629 + (i32.const 4) + ) + ;; code offset: 0x162c + (local.get $12) + ) + ;; code offset: 0x1635 + (local.set $14 + ;; code offset: 0x1634 + (i32.add + ;; code offset: 0x1630 + (local.get $14) + ;; code offset: 0x1632 + (i32.const 4) + ) + ) + ;; code offset: 0x163c + (br_if $label$68 + ;; code offset: 0x163b + (i32.lt_u + ;; code offset: 0x1637 + (local.get $15) + ;; code offset: 0x1639 + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x164f + (call $pad + ;; code offset: 0x1640 + (local.get $0) + ;; code offset: 0x1642 + (i32.const 32) + ;; code offset: 0x1644 + (local.get $18) + ;; code offset: 0x1646 + (local.get $1) + ;; code offset: 0x164e + (i32.xor + ;; code offset: 0x1648 + (local.get $13) + ;; code offset: 0x164a + (i32.const 8192) + ) + ) + ;; code offset: 0x165b + (local.set $1 + ;; code offset: 0x165a + (select + ;; code offset: 0x1651 + (local.get $18) + ;; code offset: 0x1653 + (local.get $1) + ;; code offset: 0x1659 + (i32.gt_s + ;; code offset: 0x1655 + (local.get $18) + ;; code offset: 0x1657 + (local.get $1) + ) + ) + ) + ;; code offset: 0x165d + (br $label$2) + ) + ;; code offset: 0x1674 + (local.set $1 + ;; code offset: 0x1671 + (call_indirect (type $i32_f64_i32_i32_i32_i32_=>_i32) + ;; code offset: 0x1660 + (local.get $0) + ;; code offset: 0x1664 + (f64.load offset=64 + ;; code offset: 0x1662 + (local.get $7) + ) + ;; code offset: 0x1667 + (local.get $18) + ;; code offset: 0x1669 + (local.get $19) + ;; code offset: 0x166b + (local.get $13) + ;; code offset: 0x166d + (local.get $1) + ;; code offset: 0x166f + (local.get $5) + ) + ) + ;; code offset: 0x1676 + (br $label$2) + ) + ;; code offset: 0x1680 + (i64.store8 offset=55 + ;; code offset: 0x1679 + (local.get $7) + ;; code offset: 0x167d + (i64.load offset=64 + ;; code offset: 0x167b + (local.get $7) + ) + ) + ;; code offset: 0x1685 + (local.set $19 + ;; code offset: 0x1683 + (i32.const 1) + ) + ;; code offset: 0x1689 + (local.set $12 + ;; code offset: 0x1687 + (local.get $8) + ) + ;; code offset: 0x168d + (local.set $17 + ;; code offset: 0x168b + (local.get $9) + ) + ;; code offset: 0x1691 + (local.set $13 + ;; code offset: 0x168f + (local.get $21) + ) + ;; code offset: 0x1693 + (br $label$6) + ) + ;; code offset: 0x169f + (i32.store offset=76 + ;; code offset: 0x1696 + (local.get $7) + ;; code offset: 0x169d + (local.tee $14 + ;; code offset: 0x169c + (i32.add + ;; code offset: 0x1698 + (local.get $1) + ;; code offset: 0x169a + (i32.const 1) + ) + ) + ) + ;; code offset: 0x16a7 + (local.set $13 + ;; code offset: 0x16a4 + (i32.load8_u offset=1 + ;; code offset: 0x16a2 + (local.get $1) + ) + ) + ;; code offset: 0x16ab + (local.set $1 + ;; code offset: 0x16a9 + (local.get $14) + ) + ;; code offset: 0x16ad + (br $label$10) + ) + ) + ;; code offset: 0x16b4 + (local.set $20 + ;; code offset: 0x16b2 + (local.get $11) + ) + ;; code offset: 0x16b8 + (br_if $label$1 + ;; code offset: 0x16b6 + (local.get $0) + ) + ;; code offset: 0x16bd + (br_if $label$5 + ;; code offset: 0x16bc + (i32.eqz + ;; code offset: 0x16ba + (local.get $10) + ) + ) + ;; code offset: 0x16c1 + (local.set $1 + ;; code offset: 0x16bf + (i32.const 1) + ) + ;; code offset: 0x16c3 + (block $label$69 + ;; code offset: 0x16c5 + (loop $label$70 + ;; code offset: 0x16d5 + (br_if $label$69 + ;; code offset: 0x16d4 + (i32.eqz + ;; code offset: 0x16d2 + (local.tee $13 + ;; code offset: 0x16cf + (i32.load + ;; code offset: 0x16ce + (i32.add + ;; code offset: 0x16c7 + (local.get $4) + ;; code offset: 0x16cd + (i32.shl + ;; code offset: 0x16c9 + (local.get $1) + ;; code offset: 0x16cb + (i32.const 2) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x16e5 + (call $pop_arg + ;; code offset: 0x16de + (i32.add + ;; code offset: 0x16d7 + (local.get $3) + ;; code offset: 0x16dd + (i32.shl + ;; code offset: 0x16d9 + (local.get $1) + ;; code offset: 0x16db + (i32.const 3) + ) + ) + ;; code offset: 0x16df + (local.get $13) + ;; code offset: 0x16e1 + (local.get $2) + ;; code offset: 0x16e3 + (local.get $6) + ) + ;; code offset: 0x16e9 + (local.set $20 + ;; code offset: 0x16e7 + (i32.const 1) + ) + ;; code offset: 0x16f5 + (br_if $label$70 + ;; code offset: 0x16f4 + (i32.ne + ;; code offset: 0x16f0 + (local.tee $1 + ;; code offset: 0x16ef + (i32.add + ;; code offset: 0x16eb + (local.get $1) + ;; code offset: 0x16ed + (i32.const 1) + ) + ) + ;; code offset: 0x16f2 + (i32.const 10) + ) + ) + ;; code offset: 0x16f7 + (br $label$1) + ) + ) + ;; code offset: 0x16fe + (local.set $20 + ;; code offset: 0x16fc + (i32.const 1) + ) + ;; code offset: 0x1705 + (br_if $label$1 + ;; code offset: 0x1704 + (i32.ge_u + ;; code offset: 0x1700 + (local.get $1) + ;; code offset: 0x1702 + (i32.const 10) + ) + ) + ;; code offset: 0x1707 + (loop $label$71 + ;; code offset: 0x1714 + (br_if $label$8 + ;; code offset: 0x1711 + (i32.load + ;; code offset: 0x1710 + (i32.add + ;; code offset: 0x1709 + (local.get $4) + ;; code offset: 0x170f + (i32.shl + ;; code offset: 0x170b + (local.get $1) + ;; code offset: 0x170d + (i32.const 2) + ) + ) + ) + ) + ;; code offset: 0x1718 + (local.set $20 + ;; code offset: 0x1716 + (i32.const 1) + ) + ;; code offset: 0x1724 + (br_if $label$1 + ;; code offset: 0x1723 + (i32.eq + ;; code offset: 0x171f + (local.tee $1 + ;; code offset: 0x171e + (i32.add + ;; code offset: 0x171a + (local.get $1) + ;; code offset: 0x171c + (i32.const 1) + ) + ) + ;; code offset: 0x1721 + (i32.const 10) + ) + ) + ;; code offset: 0x1726 + (br $label$71) + ) + ) + ;; code offset: 0x172d + (local.set $20 + ;; code offset: 0x172b + (i32.const -1) + ) + ;; code offset: 0x172f + (br $label$1) + ) + ;; code offset: 0x1734 + (local.set $17 + ;; code offset: 0x1732 + (local.get $9) + ) + ) + ;; code offset: 0x175f + (call $pad + ;; code offset: 0x1737 + (local.get $0) + ;; code offset: 0x1739 + (i32.const 32) + ;; code offset: 0x1759 + (local.tee $1 + ;; code offset: 0x1758 + (select + ;; code offset: 0x174f + (local.tee $14 + ;; code offset: 0x174e + (i32.add + ;; code offset: 0x173b + (local.get $20) + ;; code offset: 0x174c + (local.tee $17 + ;; code offset: 0x174b + (select + ;; code offset: 0x1742 + (local.tee $15 + ;; code offset: 0x1741 + (i32.sub + ;; code offset: 0x173d + (local.get $17) + ;; code offset: 0x173f + (local.get $12) + ) + ) + ;; code offset: 0x1744 + (local.get $19) + ;; code offset: 0x174a + (i32.lt_s + ;; code offset: 0x1746 + (local.get $19) + ;; code offset: 0x1748 + (local.get $15) + ) + ) + ) + ) + ) + ;; code offset: 0x1751 + (local.get $18) + ;; code offset: 0x1757 + (i32.lt_s + ;; code offset: 0x1753 + (local.get $18) + ;; code offset: 0x1755 + (local.get $14) + ) + ) + ) + ;; code offset: 0x175b + (local.get $14) + ;; code offset: 0x175d + (local.get $13) + ) + ;; code offset: 0x1767 + (call $out + ;; code offset: 0x1761 + (local.get $0) + ;; code offset: 0x1763 + (local.get $16) + ;; code offset: 0x1765 + (local.get $20) + ) + ;; code offset: 0x1778 + (call $pad + ;; code offset: 0x1769 + (local.get $0) + ;; code offset: 0x176b + (i32.const 48) + ;; code offset: 0x176d + (local.get $1) + ;; code offset: 0x176f + (local.get $14) + ;; code offset: 0x1777 + (i32.xor + ;; code offset: 0x1771 + (local.get $13) + ;; code offset: 0x1773 + (i32.const 65536) + ) + ) + ;; code offset: 0x1784 + (call $pad + ;; code offset: 0x177a + (local.get $0) + ;; code offset: 0x177c + (i32.const 48) + ;; code offset: 0x177e + (local.get $17) + ;; code offset: 0x1780 + (local.get $15) + ;; code offset: 0x1782 + (i32.const 0) + ) + ;; code offset: 0x178c + (call $out + ;; code offset: 0x1786 + (local.get $0) + ;; code offset: 0x1788 + (local.get $12) + ;; code offset: 0x178a + (local.get $15) + ) + ;; code offset: 0x179d + (call $pad + ;; code offset: 0x178e + (local.get $0) + ;; code offset: 0x1790 + (i32.const 32) + ;; code offset: 0x1792 + (local.get $1) + ;; code offset: 0x1794 + (local.get $14) + ;; code offset: 0x179c + (i32.xor + ;; code offset: 0x1796 + (local.get $13) + ;; code offset: 0x1798 + (i32.const 8192) + ) + ) + ;; code offset: 0x179f + (br $label$2) + ) + ) + ;; code offset: 0x17a5 + (local.set $20 + ;; code offset: 0x17a3 + (i32.const 0) + ) + ) + ;; code offset: 0x17ae + (global.set $__stack_pointer + ;; code offset: 0x17ad + (i32.add + ;; code offset: 0x17a8 + (local.get $7) + ;; code offset: 0x17aa + (i32.const 80) + ) + ) + ;; code offset: 0x17b0 + (local.get $20) + ) + (func $out (param $0 i32) (param $1 i32) (param $2 i32) + ;; code offset: 0x17b5 + (block $label$1 + ;; code offset: 0x17bf + (br_if $label$1 + ;; code offset: 0x17be + (i32.and + ;; code offset: 0x17b9 + (i32.load8_u + ;; code offset: 0x17b7 + (local.get $0) + ) + ;; code offset: 0x17bc + (i32.const 32) + ) + ) + ;; code offset: 0x17c9 + (drop + ;; code offset: 0x17c7 + (call $__fwritex + ;; code offset: 0x17c1 + (local.get $1) + ;; code offset: 0x17c3 + (local.get $2) + ;; code offset: 0x17c5 + (local.get $0) + ) + ) + ) + ) + (func $getint (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + ;; code offset: 0x17d6 + (local.set $1 + ;; code offset: 0x17d4 + (i32.const 0) + ) + ;; code offset: 0x17d8 + (block $label$1 + ;; code offset: 0x17e5 + (br_if $label$1 + ;; code offset: 0x17e4 + (i32.eqz + ;; code offset: 0x17e2 + (call $isdigit + ;; code offset: 0x17df + (i32.load8_s + ;; code offset: 0x17dc + (i32.load + ;; code offset: 0x17da + (local.get $0) + ) + ) + ) + ) + ) + ;; code offset: 0x17e7 + (loop $label$2 + ;; code offset: 0x17f3 + (local.set $3 + ;; code offset: 0x17f0 + (i32.load8_s + ;; code offset: 0x17ee + (local.tee $2 + ;; code offset: 0x17eb + (i32.load + ;; code offset: 0x17e9 + (local.get $0) + ) + ) + ) + ) + ;; code offset: 0x17fc + (i32.store + ;; code offset: 0x17f5 + (local.get $0) + ;; code offset: 0x17fb + (i32.add + ;; code offset: 0x17f7 + (local.get $2) + ;; code offset: 0x17f9 + (i32.const 1) + ) + ) + ;; code offset: 0x180a + (local.set $1 + ;; code offset: 0x1809 + (i32.add + ;; code offset: 0x1806 + (i32.add + ;; code offset: 0x17ff + (local.get $3) + ;; code offset: 0x1805 + (i32.mul + ;; code offset: 0x1801 + (local.get $1) + ;; code offset: 0x1803 + (i32.const 10) + ) + ) + ;; code offset: 0x1807 + (i32.const -48) + ) + ) + ;; code offset: 0x1813 + (br_if $label$2 + ;; code offset: 0x1811 + (call $isdigit + ;; code offset: 0x180e + (i32.load8_s offset=1 + ;; code offset: 0x180c + (local.get $2) + ) + ) + ) + ) + ) + ;; code offset: 0x1817 + (local.get $1) + ) + (func $pop_arg (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + ;; code offset: 0x181d + (block $label$1 + ;; code offset: 0x1824 + (br_if $label$1 + ;; code offset: 0x1823 + (i32.gt_u + ;; code offset: 0x181f + (local.get $1) + ;; code offset: 0x1821 + (i32.const 20) + ) + ) + ;; code offset: 0x1826 + (block $label$2 + (block $label$3 + (block $label$4 + (block $label$5 + (block $label$6 + (block $label$7 + (block $label$8 + (block $label$9 + (block $label$10 + (block $label$11 + ;; code offset: 0x183f + (br_table $label$11 $label$10 $label$9 $label$8 $label$7 $label$6 $label$5 $label$4 $label$3 $label$2 $label$1 + ;; code offset: 0x183e + (i32.add + ;; code offset: 0x183a + (local.get $1) + ;; code offset: 0x183c + (i32.const -9) + ) + ) + ) + ;; code offset: 0x1859 + (i32.store + ;; code offset: 0x184d + (local.get $2) + ;; code offset: 0x1858 + (i32.add + ;; code offset: 0x1854 + (local.tee $1 + ;; code offset: 0x1851 + (i32.load + ;; code offset: 0x184f + (local.get $2) + ) + ) + ;; code offset: 0x1856 + (i32.const 4) + ) + ) + ;; code offset: 0x1863 + (i32.store + ;; code offset: 0x185c + (local.get $0) + ;; code offset: 0x1860 + (i32.load + ;; code offset: 0x185e + (local.get $1) + ) + ) + ;; code offset: 0x1866 + (return) + ) + ;; code offset: 0x1874 + (i32.store + ;; code offset: 0x1868 + (local.get $2) + ;; code offset: 0x1873 + (i32.add + ;; code offset: 0x186f + (local.tee $1 + ;; code offset: 0x186c + (i32.load + ;; code offset: 0x186a + (local.get $2) + ) + ) + ;; code offset: 0x1871 + (i32.const 4) + ) + ) + ;; code offset: 0x187e + (i64.store + ;; code offset: 0x1877 + (local.get $0) + ;; code offset: 0x187b + (i64.load32_s + ;; code offset: 0x1879 + (local.get $1) + ) + ) + ;; code offset: 0x1881 + (return) + ) + ;; code offset: 0x188f + (i32.store + ;; code offset: 0x1883 + (local.get $2) + ;; code offset: 0x188e + (i32.add + ;; code offset: 0x188a + (local.tee $1 + ;; code offset: 0x1887 + (i32.load + ;; code offset: 0x1885 + (local.get $2) + ) + ) + ;; code offset: 0x188c + (i32.const 4) + ) + ) + ;; code offset: 0x1899 + (i64.store + ;; code offset: 0x1892 + (local.get $0) + ;; code offset: 0x1896 + (i64.load32_u + ;; code offset: 0x1894 + (local.get $1) + ) + ) + ;; code offset: 0x189c + (return) + ) + ;; code offset: 0x18b0 + (i32.store + ;; code offset: 0x189e + (local.get $2) + ;; code offset: 0x18af + (i32.add + ;; code offset: 0x18ab + (local.tee $1 + ;; code offset: 0x18aa + (i32.and + ;; code offset: 0x18a7 + (i32.add + ;; code offset: 0x18a2 + (i32.load + ;; code offset: 0x18a0 + (local.get $2) + ) + ;; code offset: 0x18a5 + (i32.const 7) + ) + ;; code offset: 0x18a8 + (i32.const -8) + ) + ) + ;; code offset: 0x18ad + (i32.const 8) + ) + ) + ;; code offset: 0x18ba + (i64.store + ;; code offset: 0x18b3 + (local.get $0) + ;; code offset: 0x18b7 + (i64.load + ;; code offset: 0x18b5 + (local.get $1) + ) + ) + ;; code offset: 0x18bd + (return) + ) + ;; code offset: 0x18cb + (i32.store + ;; code offset: 0x18bf + (local.get $2) + ;; code offset: 0x18ca + (i32.add + ;; code offset: 0x18c6 + (local.tee $1 + ;; code offset: 0x18c3 + (i32.load + ;; code offset: 0x18c1 + (local.get $2) + ) + ) + ;; code offset: 0x18c8 + (i32.const 4) + ) + ) + ;; code offset: 0x18d5 + (i64.store + ;; code offset: 0x18ce + (local.get $0) + ;; code offset: 0x18d2 + (i64.load16_s + ;; code offset: 0x18d0 + (local.get $1) + ) + ) + ;; code offset: 0x18d8 + (return) + ) + ;; code offset: 0x18e6 + (i32.store + ;; code offset: 0x18da + (local.get $2) + ;; code offset: 0x18e5 + (i32.add + ;; code offset: 0x18e1 + (local.tee $1 + ;; code offset: 0x18de + (i32.load + ;; code offset: 0x18dc + (local.get $2) + ) + ) + ;; code offset: 0x18e3 + (i32.const 4) + ) + ) + ;; code offset: 0x18f0 + (i64.store + ;; code offset: 0x18e9 + (local.get $0) + ;; code offset: 0x18ed + (i64.load16_u + ;; code offset: 0x18eb + (local.get $1) + ) + ) + ;; code offset: 0x18f3 + (return) + ) + ;; code offset: 0x1901 + (i32.store + ;; code offset: 0x18f5 + (local.get $2) + ;; code offset: 0x1900 + (i32.add + ;; code offset: 0x18fc + (local.tee $1 + ;; code offset: 0x18f9 + (i32.load + ;; code offset: 0x18f7 + (local.get $2) + ) + ) + ;; code offset: 0x18fe + (i32.const 4) + ) + ) + ;; code offset: 0x190b + (i64.store + ;; code offset: 0x1904 + (local.get $0) + ;; code offset: 0x1908 + (i64.load8_s + ;; code offset: 0x1906 + (local.get $1) + ) + ) + ;; code offset: 0x190e + (return) + ) + ;; code offset: 0x191c + (i32.store + ;; code offset: 0x1910 + (local.get $2) + ;; code offset: 0x191b + (i32.add + ;; code offset: 0x1917 + (local.tee $1 + ;; code offset: 0x1914 + (i32.load + ;; code offset: 0x1912 + (local.get $2) + ) + ) + ;; code offset: 0x1919 + (i32.const 4) + ) + ) + ;; code offset: 0x1926 + (i64.store + ;; code offset: 0x191f + (local.get $0) + ;; code offset: 0x1923 + (i64.load8_u + ;; code offset: 0x1921 + (local.get $1) + ) + ) + ;; code offset: 0x1929 + (return) + ) + ;; code offset: 0x193d + (i32.store + ;; code offset: 0x192b + (local.get $2) + ;; code offset: 0x193c + (i32.add + ;; code offset: 0x1938 + (local.tee $1 + ;; code offset: 0x1937 + (i32.and + ;; code offset: 0x1934 + (i32.add + ;; code offset: 0x192f + (i32.load + ;; code offset: 0x192d + (local.get $2) + ) + ;; code offset: 0x1932 + (i32.const 7) + ) + ;; code offset: 0x1935 + (i32.const -8) + ) + ) + ;; code offset: 0x193a + (i32.const 8) + ) + ) + ;; code offset: 0x1947 + (f64.store + ;; code offset: 0x1940 + (local.get $0) + ;; code offset: 0x1944 + (f64.load + ;; code offset: 0x1942 + (local.get $1) + ) + ) + ;; code offset: 0x194a + (return) + ) + ;; code offset: 0x1952 + (call_indirect (type $i32_i32_=>_none) + ;; code offset: 0x194c + (local.get $0) + ;; code offset: 0x194e + (local.get $2) + ;; code offset: 0x1950 + (local.get $3) + ) + ) + ) + (func $fmt_x (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + ;; code offset: 0x1959 + (block $label$1 + ;; code offset: 0x195e + (br_if $label$1 + ;; code offset: 0x195d + (i64.eqz + ;; code offset: 0x195b + (local.get $0) + ) + ) + ;; code offset: 0x1960 + (loop $label$2 + ;; code offset: 0x1979 + (i32.store8 + ;; code offset: 0x1967 + (local.tee $1 + ;; code offset: 0x1966 + (i32.add + ;; code offset: 0x1962 + (local.get $1) + ;; code offset: 0x1964 + (i32.const -1) + ) + ) + ;; code offset: 0x1978 + (i32.or + ;; code offset: 0x1973 + (i32.load8_u + ;; code offset: 0x1972 + (i32.add + ;; code offset: 0x196e + (i32.and + ;; code offset: 0x196b + (i32.wrap_i64 + ;; code offset: 0x1969 + (local.get $0) + ) + ;; code offset: 0x196c + (i32.const 15) + ) + ;; code offset: 0x196f + (i32.const 1536) + ) + ) + ;; code offset: 0x1976 + (local.get $2) + ) + ) + ;; code offset: 0x1986 + (br_if $label$2 + ;; code offset: 0x1985 + (i64.ne + ;; code offset: 0x1981 + (local.tee $0 + ;; code offset: 0x1980 + (i64.shr_u + ;; code offset: 0x197c + (local.get $0) + ;; code offset: 0x197e + (i64.const 4) + ) + ) + ;; code offset: 0x1983 + (i64.const 0) + ) + ) + ) + ) + ;; code offset: 0x198a + (local.get $1) + ) + (func $fmt_o (param $0 i64) (param $1 i32) (result i32) + ;; code offset: 0x198f + (block $label$1 + ;; code offset: 0x1994 + (br_if $label$1 + ;; code offset: 0x1993 + (i64.eqz + ;; code offset: 0x1991 + (local.get $0) + ) + ) + ;; code offset: 0x1996 + (loop $label$2 + ;; code offset: 0x19a8 + (i32.store8 + ;; code offset: 0x199d + (local.tee $1 + ;; code offset: 0x199c + (i32.add + ;; code offset: 0x1998 + (local.get $1) + ;; code offset: 0x199a + (i32.const -1) + ) + ) + ;; code offset: 0x19a7 + (i32.or + ;; code offset: 0x19a4 + (i32.and + ;; code offset: 0x19a1 + (i32.wrap_i64 + ;; code offset: 0x199f + (local.get $0) + ) + ;; code offset: 0x19a2 + (i32.const 7) + ) + ;; code offset: 0x19a5 + (i32.const 48) + ) + ) + ;; code offset: 0x19b5 + (br_if $label$2 + ;; code offset: 0x19b4 + (i64.ne + ;; code offset: 0x19b0 + (local.tee $0 + ;; code offset: 0x19af + (i64.shr_u + ;; code offset: 0x19ab + (local.get $0) + ;; code offset: 0x19ad + (i64.const 3) + ) + ) + ;; code offset: 0x19b2 + (i64.const 0) + ) + ) + ) + ) + ;; code offset: 0x19b9 + (local.get $1) + ) + (func $fmt_u (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + ;; code offset: 0x19c7 + (block $label$1 + (block $label$2 + ;; code offset: 0x19d4 + (br_if $label$2 + ;; code offset: 0x19d3 + (i64.ge_u + ;; code offset: 0x19cb + (local.get $0) + ;; code offset: 0x19cd + (i64.const 4294967296) + ) + ) + ;; code offset: 0x19d8 + (local.set $2 + ;; code offset: 0x19d6 + (local.get $0) + ) + ;; code offset: 0x19da + (br $label$1) + ) + ;; code offset: 0x19dd + (loop $label$3 + ;; code offset: 0x19f7 + (i32.store8 + ;; code offset: 0x19e4 + (local.tee $1 + ;; code offset: 0x19e3 + (i32.add + ;; code offset: 0x19df + (local.get $1) + ;; code offset: 0x19e1 + (i32.const -1) + ) + ) + ;; code offset: 0x19f6 + (i32.or + ;; code offset: 0x19f3 + (i32.wrap_i64 + ;; code offset: 0x19f2 + (i64.sub + ;; code offset: 0x19e6 + (local.get $0) + ;; code offset: 0x19f1 + (i64.mul + ;; code offset: 0x19ed + (local.tee $2 + ;; code offset: 0x19ec + (i64.div_u + ;; code offset: 0x19e8 + (local.get $0) + ;; code offset: 0x19ea + (i64.const 10) + ) + ) + ;; code offset: 0x19ef + (i64.const 10) + ) + ) + ) + ;; code offset: 0x19f4 + (i32.const 48) + ) + ) + ;; code offset: 0x1a04 + (local.set $3 + ;; code offset: 0x1a03 + (i64.gt_u + ;; code offset: 0x19fa + (local.get $0) + ;; code offset: 0x19fc + (i64.const 42949672959) + ) + ) + ;; code offset: 0x1a08 + (local.set $0 + ;; code offset: 0x1a06 + (local.get $2) + ) + ;; code offset: 0x1a0c + (br_if $label$3 + ;; code offset: 0x1a0a + (local.get $3) + ) + ) + ) + ;; code offset: 0x1a10 + (block $label$4 + ;; code offset: 0x1a18 + (br_if $label$4 + ;; code offset: 0x1a17 + (i32.eqz + ;; code offset: 0x1a15 + (local.tee $3 + ;; code offset: 0x1a14 + (i32.wrap_i64 + ;; code offset: 0x1a12 + (local.get $2) + ) + ) + ) + ) + ;; code offset: 0x1a1a + (loop $label$5 + ;; code offset: 0x1a33 + (i32.store8 + ;; code offset: 0x1a21 + (local.tee $1 + ;; code offset: 0x1a20 + (i32.add + ;; code offset: 0x1a1c + (local.get $1) + ;; code offset: 0x1a1e + (i32.const -1) + ) + ) + ;; code offset: 0x1a32 + (i32.or + ;; code offset: 0x1a2f + (i32.sub + ;; code offset: 0x1a23 + (local.get $3) + ;; code offset: 0x1a2e + (i32.mul + ;; code offset: 0x1a2a + (local.tee $4 + ;; code offset: 0x1a29 + (i32.div_u + ;; code offset: 0x1a25 + (local.get $3) + ;; code offset: 0x1a27 + (i32.const 10) + ) + ) + ;; code offset: 0x1a2c + (i32.const 10) + ) + ) + ;; code offset: 0x1a30 + (i32.const 48) + ) + ) + ;; code offset: 0x1a3b + (local.set $5 + ;; code offset: 0x1a3a + (i32.gt_u + ;; code offset: 0x1a36 + (local.get $3) + ;; code offset: 0x1a38 + (i32.const 9) + ) + ) + ;; code offset: 0x1a3f + (local.set $3 + ;; code offset: 0x1a3d + (local.get $4) + ) + ;; code offset: 0x1a43 + (br_if $label$5 + ;; code offset: 0x1a41 + (local.get $5) + ) + ) + ) + ;; code offset: 0x1a47 + (local.get $1) + ) + (func $pad (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + ;; code offset: 0x1a56 + (global.set $__stack_pointer + ;; code offset: 0x1a54 + (local.tee $5 + ;; code offset: 0x1a53 + (i32.sub + ;; code offset: 0x1a4e + (global.get $__stack_pointer) + ;; code offset: 0x1a50 + (i32.const 256) + ) + ) + ) + ;; code offset: 0x1a58 + (block $label$1 + ;; code offset: 0x1a5f + (br_if $label$1 + ;; code offset: 0x1a5e + (i32.le_s + ;; code offset: 0x1a5a + (local.get $2) + ;; code offset: 0x1a5c + (local.get $3) + ) + ) + ;; code offset: 0x1a68 + (br_if $label$1 + ;; code offset: 0x1a67 + (i32.and + ;; code offset: 0x1a61 + (local.get $4) + ;; code offset: 0x1a63 + (i32.const 73728) + ) + ) + ;; code offset: 0x1a87 + (drop + ;; code offset: 0x1a85 + (call $memset + ;; code offset: 0x1a6a + (local.get $5) + ;; code offset: 0x1a71 + (i32.and + ;; code offset: 0x1a6c + (local.get $1) + ;; code offset: 0x1a6e + (i32.const 255) + ) + ;; code offset: 0x1a84 + (select + ;; code offset: 0x1a77 + (local.tee $2 + ;; code offset: 0x1a76 + (i32.sub + ;; code offset: 0x1a72 + (local.get $2) + ;; code offset: 0x1a74 + (local.get $3) + ) + ) + ;; code offset: 0x1a79 + (i32.const 256) + ;; code offset: 0x1a82 + (local.tee $3 + ;; code offset: 0x1a81 + (i32.lt_u + ;; code offset: 0x1a7c + (local.get $2) + ;; code offset: 0x1a7e + (i32.const 256) + ) + ) + ) + ) + ) + ;; code offset: 0x1a88 + (block $label$2 + ;; code offset: 0x1a8c + (br_if $label$2 + ;; code offset: 0x1a8a + (local.get $3) + ) + ;; code offset: 0x1a8e + (loop $label$3 + ;; code offset: 0x1a97 + (call $out + ;; code offset: 0x1a90 + (local.get $0) + ;; code offset: 0x1a92 + (local.get $5) + ;; code offset: 0x1a94 + (i32.const 256) + ) + ;; code offset: 0x1aa5 + (br_if $label$3 + ;; code offset: 0x1aa4 + (i32.gt_u + ;; code offset: 0x1a9f + (local.tee $2 + ;; code offset: 0x1a9e + (i32.add + ;; code offset: 0x1a99 + (local.get $2) + ;; code offset: 0x1a9b + (i32.const -256) + ) + ) + ;; code offset: 0x1aa1 + (i32.const 255) + ) + ) + ) + ) + ;; code offset: 0x1aaf + (call $out + ;; code offset: 0x1aa9 + (local.get $0) + ;; code offset: 0x1aab + (local.get $5) + ;; code offset: 0x1aad + (local.get $2) + ) + ) + ;; code offset: 0x1ab8 + (global.set $__stack_pointer + ;; code offset: 0x1ab7 + (i32.add + ;; code offset: 0x1ab2 + (local.get $5) + ;; code offset: 0x1ab4 + (i32.const 256) + ) + ) + ) + (func $vfprintf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + ;; code offset: 0x1ac7 + (call $__vfprintf_internal + ;; code offset: 0x1abd + (local.get $0) + ;; code offset: 0x1abf + (local.get $1) + ;; code offset: 0x1ac1 + (local.get $2) + ;; code offset: 0x1ac3 + (i32.const 4) + ;; code offset: 0x1ac5 + (i32.const 5) + ) + ) + (func $fmt_fp (param $0 i32) (param $1 f64) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i64) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 f64) + ;; code offset: 0x1aff + (global.set $__stack_pointer + ;; code offset: 0x1afd + (local.tee $6 + ;; code offset: 0x1afc + (i32.sub + ;; code offset: 0x1af7 + (global.get $__stack_pointer) + ;; code offset: 0x1af9 + (i32.const 560) + ) + ) + ) + ;; code offset: 0x1b03 + (local.set $7 + ;; code offset: 0x1b01 + (i32.const 0) + ) + ;; code offset: 0x1b09 + (i32.store offset=44 + ;; code offset: 0x1b05 + (local.get $6) + ;; code offset: 0x1b07 + (i32.const 0) + ) + ;; code offset: 0x1b0c + (block $label$1 + (block $label$2 + ;; code offset: 0x1b19 + (br_if $label$2 + ;; code offset: 0x1b18 + (i64.gt_s + ;; code offset: 0x1b14 + (local.tee $8 + ;; code offset: 0x1b12 + (call $__DOUBLE_BITS + ;; code offset: 0x1b10 + (local.get $1) + ) + ) + ;; code offset: 0x1b16 + (i64.const -1) + ) + ) + ;; code offset: 0x1b1d + (local.set $9 + ;; code offset: 0x1b1b + (i32.const 1) + ) + ;; code offset: 0x1b22 + (local.set $10 + ;; code offset: 0x1b1f + (i32.const 1552) + ) + ;; code offset: 0x1b2b + (local.set $8 + ;; code offset: 0x1b29 + (call $__DOUBLE_BITS + ;; code offset: 0x1b27 + (local.tee $1 + ;; code offset: 0x1b26 + (f64.neg + ;; code offset: 0x1b24 + (local.get $1) + ) + ) + ) + ) + ;; code offset: 0x1b2d + (br $label$1) + ) + ;; code offset: 0x1b32 + (local.set $9 + ;; code offset: 0x1b30 + (i32.const 1) + ) + ;; code offset: 0x1b34 + (block $label$3 + ;; code offset: 0x1b3d + (br_if $label$3 + ;; code offset: 0x1b3c + (i32.eqz + ;; code offset: 0x1b3b + (i32.and + ;; code offset: 0x1b36 + (local.get $4) + ;; code offset: 0x1b38 + (i32.const 2048) + ) + ) + ) + ;; code offset: 0x1b42 + (local.set $10 + ;; code offset: 0x1b3f + (i32.const 1555) + ) + ;; code offset: 0x1b44 + (br $label$1) + ) + ;; code offset: 0x1b4a + (local.set $10 + ;; code offset: 0x1b47 + (i32.const 1558) + ) + ;; code offset: 0x1b51 + (br_if $label$1 + ;; code offset: 0x1b50 + (i32.and + ;; code offset: 0x1b4c + (local.get $4) + ;; code offset: 0x1b4e + (i32.const 1) + ) + ) + ;; code offset: 0x1b55 + (local.set $9 + ;; code offset: 0x1b53 + (i32.const 0) + ) + ;; code offset: 0x1b59 + (local.set $7 + ;; code offset: 0x1b57 + (i32.const 1) + ) + ;; code offset: 0x1b5e + (local.set $10 + ;; code offset: 0x1b5b + (i32.const 1553) + ) + ) + ;; code offset: 0x1b61 + (block $label$4 + (block $label$5 + ;; code offset: 0x1b7f + (br_if $label$5 + ;; code offset: 0x1b7e + (i64.ne + ;; code offset: 0x1b72 + (i64.and + ;; code offset: 0x1b65 + (local.get $8) + ;; code offset: 0x1b67 + (i64.const 9218868437227405312) + ) + ;; code offset: 0x1b73 + (i64.const 9218868437227405312) + ) + ) + ;; code offset: 0x1b95 + (call $pad + ;; code offset: 0x1b81 + (local.get $0) + ;; code offset: 0x1b83 + (i32.const 32) + ;; code offset: 0x1b85 + (local.get $2) + ;; code offset: 0x1b8c + (local.tee $11 + ;; code offset: 0x1b8b + (i32.add + ;; code offset: 0x1b87 + (local.get $9) + ;; code offset: 0x1b89 + (i32.const 3) + ) + ) + ;; code offset: 0x1b94 + (i32.and + ;; code offset: 0x1b8e + (local.get $4) + ;; code offset: 0x1b90 + (i32.const -65537) + ) + ) + ;; code offset: 0x1b9d + (call $out + ;; code offset: 0x1b97 + (local.get $0) + ;; code offset: 0x1b99 + (local.get $10) + ;; code offset: 0x1b9b + (local.get $9) + ) + ;; code offset: 0x1bc0 + (call $out + ;; code offset: 0x1b9f + (local.get $0) + ;; code offset: 0x1bbd + (select + ;; code offset: 0x1bae + (select + ;; code offset: 0x1ba1 + (i32.const 1579) + ;; code offset: 0x1ba4 + (i32.const 1583) + ;; code offset: 0x1bac + (local.tee $12 + ;; code offset: 0x1bab + (i32.and + ;; code offset: 0x1ba7 + (local.get $5) + ;; code offset: 0x1ba9 + (i32.const 32) + ) + ) + ) + ;; code offset: 0x1bb7 + (select + ;; code offset: 0x1baf + (i32.const 1571) + ;; code offset: 0x1bb2 + (i32.const 1575) + ;; code offset: 0x1bb5 + (local.get $12) + ) + ;; code offset: 0x1bbc + (f64.ne + ;; code offset: 0x1bb8 + (local.get $1) + ;; code offset: 0x1bba + (local.get $1) + ) + ) + ;; code offset: 0x1bbe + (i32.const 3) + ) + ;; code offset: 0x1bd1 + (call $pad + ;; code offset: 0x1bc2 + (local.get $0) + ;; code offset: 0x1bc4 + (i32.const 32) + ;; code offset: 0x1bc6 + (local.get $2) + ;; code offset: 0x1bc8 + (local.get $11) + ;; code offset: 0x1bd0 + (i32.xor + ;; code offset: 0x1bca + (local.get $4) + ;; code offset: 0x1bcc + (i32.const 8192) + ) + ) + ;; code offset: 0x1bd3 + (br $label$4) + ) + ;; code offset: 0x1bdb + (local.set $13 + ;; code offset: 0x1bda + (i32.add + ;; code offset: 0x1bd6 + (local.get $6) + ;; code offset: 0x1bd8 + (i32.const 16) + ) + ) + ;; code offset: 0x1bdd + (block $label$6 + (block $label$7 + (block $label$8 + (block $label$9 + ;; code offset: 0x1bff + (br_if $label$9 + ;; code offset: 0x1bfe + (f64.eq + ;; code offset: 0x1bf3 + (local.tee $1 + ;; code offset: 0x1bf2 + (f64.add + ;; code offset: 0x1bee + (local.tee $1 + ;; code offset: 0x1bec + (call $frexp + ;; code offset: 0x1be5 + (local.get $1) + ;; code offset: 0x1beb + (i32.add + ;; code offset: 0x1be7 + (local.get $6) + ;; code offset: 0x1be9 + (i32.const 44) + ) + ) + ) + ;; code offset: 0x1bf0 + (local.get $1) + ) + ) + ;; code offset: 0x1bf5 + (f64.const 0) + ) + ) + ;; code offset: 0x1c0d + (i32.store offset=44 + ;; code offset: 0x1c01 + (local.get $6) + ;; code offset: 0x1c0c + (i32.add + ;; code offset: 0x1c08 + (local.tee $12 + ;; code offset: 0x1c05 + (i32.load offset=44 + ;; code offset: 0x1c03 + (local.get $6) + ) + ) + ;; code offset: 0x1c0a + (i32.const -1) + ) + ) + ;; code offset: 0x1c1b + (br_if $label$8 + ;; code offset: 0x1c1a + (i32.ne + ;; code offset: 0x1c15 + (local.tee $14 + ;; code offset: 0x1c14 + (i32.or + ;; code offset: 0x1c10 + (local.get $5) + ;; code offset: 0x1c12 + (i32.const 32) + ) + ) + ;; code offset: 0x1c17 + (i32.const 97) + ) + ) + ;; code offset: 0x1c1d + (br $label$6) + ) + ;; code offset: 0x1c2b + (br_if $label$6 + ;; code offset: 0x1c2a + (i32.eq + ;; code offset: 0x1c25 + (local.tee $14 + ;; code offset: 0x1c24 + (i32.or + ;; code offset: 0x1c20 + (local.get $5) + ;; code offset: 0x1c22 + (i32.const 32) + ) + ) + ;; code offset: 0x1c27 + (i32.const 97) + ) + ) + ;; code offset: 0x1c37 + (local.set $15 + ;; code offset: 0x1c36 + (select + ;; code offset: 0x1c2d + (i32.const 6) + ;; code offset: 0x1c2f + (local.get $3) + ;; code offset: 0x1c35 + (i32.lt_s + ;; code offset: 0x1c31 + (local.get $3) + ;; code offset: 0x1c33 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x1c3e + (local.set $16 + ;; code offset: 0x1c3b + (i32.load offset=44 + ;; code offset: 0x1c39 + (local.get $6) + ) + ) + ;; code offset: 0x1c40 + (br $label$7) + ) + ;; code offset: 0x1c4c + (i32.store offset=44 + ;; code offset: 0x1c43 + (local.get $6) + ;; code offset: 0x1c4a + (local.tee $16 + ;; code offset: 0x1c49 + (i32.add + ;; code offset: 0x1c45 + (local.get $12) + ;; code offset: 0x1c47 + (i32.const -29) + ) + ) + ) + ;; code offset: 0x1c59 + (local.set $15 + ;; code offset: 0x1c58 + (select + ;; code offset: 0x1c4f + (i32.const 6) + ;; code offset: 0x1c51 + (local.get $3) + ;; code offset: 0x1c57 + (i32.lt_s + ;; code offset: 0x1c53 + (local.get $3) + ;; code offset: 0x1c55 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x1c67 + (local.set $1 + ;; code offset: 0x1c66 + (f64.mul + ;; code offset: 0x1c5b + (local.get $1) + ;; code offset: 0x1c5d + (f64.const 268435456) + ) + ) + ) + ;; code offset: 0x1c7d + (local.set $18 + ;; code offset: 0x1c7b + (local.tee $17 + ;; code offset: 0x1c7a + (select + ;; code offset: 0x1c6e + (i32.add + ;; code offset: 0x1c6a + (local.get $6) + ;; code offset: 0x1c6c + (i32.const 48) + ) + ;; code offset: 0x1c74 + (i32.add + ;; code offset: 0x1c6f + (local.get $6) + ;; code offset: 0x1c71 + (i32.const 336) + ) + ;; code offset: 0x1c79 + (i32.lt_s + ;; code offset: 0x1c75 + (local.get $16) + ;; code offset: 0x1c77 + (i32.const 0) + ) + ) + ) + ) + ;; code offset: 0x1c7f + (loop $label$10 + ;; code offset: 0x1c81 + (block $label$11 + (block $label$12 + ;; code offset: 0x1c9f + (br_if $label$12 + ;; code offset: 0x1c9e + (i32.eqz + ;; code offset: 0x1c9d + (i32.and + ;; code offset: 0x1c90 + (f64.lt + ;; code offset: 0x1c85 + (local.get $1) + ;; code offset: 0x1c87 + (f64.const 4294967296) + ) + ;; code offset: 0x1c9c + (f64.ge + ;; code offset: 0x1c91 + (local.get $1) + ;; code offset: 0x1c93 + (f64.const 0) + ) + ) + ) + ) + ;; code offset: 0x1ca4 + (local.set $12 + ;; code offset: 0x1ca3 + (i32.trunc_f64_u + ;; code offset: 0x1ca1 + (local.get $1) + ) + ) + ;; code offset: 0x1ca6 + (br $label$11) + ) + ;; code offset: 0x1cab + (local.set $12 + ;; code offset: 0x1ca9 + (i32.const 0) + ) + ) + ;; code offset: 0x1cb2 + (i32.store + ;; code offset: 0x1cae + (local.get $18) + ;; code offset: 0x1cb0 + (local.get $12) + ) + ;; code offset: 0x1cba + (local.set $18 + ;; code offset: 0x1cb9 + (i32.add + ;; code offset: 0x1cb5 + (local.get $18) + ;; code offset: 0x1cb7 + (i32.const 4) + ) + ) + ;; code offset: 0x1cd8 + (br_if $label$10 + ;; code offset: 0x1cd7 + (f64.ne + ;; code offset: 0x1ccc + (local.tee $1 + ;; code offset: 0x1ccb + (f64.mul + ;; code offset: 0x1cc1 + (f64.sub + ;; code offset: 0x1cbc + (local.get $1) + ;; code offset: 0x1cc0 + (f64.convert_i32_u + ;; code offset: 0x1cbe + (local.get $12) + ) + ) + ;; code offset: 0x1cc2 + (f64.const 1e9) + ) + ) + ;; code offset: 0x1cce + (f64.const 0) + ) + ) + ) + ;; code offset: 0x1cdb + (block $label$13 + (block $label$14 + ;; code offset: 0x1ce4 + (br_if $label$14 + ;; code offset: 0x1ce3 + (i32.ge_s + ;; code offset: 0x1cdf + (local.get $16) + ;; code offset: 0x1ce1 + (i32.const 1) + ) + ) + ;; code offset: 0x1ce8 + (local.set $3 + ;; code offset: 0x1ce6 + (local.get $16) + ) + ;; code offset: 0x1cec + (local.set $12 + ;; code offset: 0x1cea + (local.get $18) + ) + ;; code offset: 0x1cf0 + (local.set $19 + ;; code offset: 0x1cee + (local.get $17) + ) + ;; code offset: 0x1cf2 + (br $label$13) + ) + ;; code offset: 0x1cf7 + (local.set $19 + ;; code offset: 0x1cf5 + (local.get $17) + ) + ;; code offset: 0x1cfb + (local.set $3 + ;; code offset: 0x1cf9 + (local.get $16) + ) + ;; code offset: 0x1cfd + (loop $label$15 + ;; code offset: 0x1d09 + (local.set $3 + ;; code offset: 0x1d08 + (select + ;; code offset: 0x1cff + (local.get $3) + ;; code offset: 0x1d01 + (i32.const 29) + ;; code offset: 0x1d07 + (i32.lt_s + ;; code offset: 0x1d03 + (local.get $3) + ;; code offset: 0x1d05 + (i32.const 29) + ) + ) + ) + ;; code offset: 0x1d0b + (block $label$16 + ;; code offset: 0x1d17 + (br_if $label$16 + ;; code offset: 0x1d16 + (i32.lt_u + ;; code offset: 0x1d12 + (local.tee $12 + ;; code offset: 0x1d11 + (i32.add + ;; code offset: 0x1d0d + (local.get $18) + ;; code offset: 0x1d0f + (i32.const -4) + ) + ) + ;; code offset: 0x1d14 + (local.get $19) + ) + ) + ;; code offset: 0x1d1c + (local.set $20 + ;; code offset: 0x1d1b + (i64.extend_i32_u + ;; code offset: 0x1d19 + (local.get $3) + ) + ) + ;; code offset: 0x1d20 + (local.set $8 + ;; code offset: 0x1d1e + (i64.const 0) + ) + ;; code offset: 0x1d22 + (loop $label$17 + ;; code offset: 0x1d4d + (i64.store32 + ;; code offset: 0x1d24 + (local.get $12) + ;; code offset: 0x1d4c + (i64.sub + ;; code offset: 0x1d38 + (local.tee $8 + ;; code offset: 0x1d37 + (i64.add + ;; code offset: 0x1d2d + (i64.shl + ;; code offset: 0x1d28 + (i64.load32_u + ;; code offset: 0x1d26 + (local.get $12) + ) + ;; code offset: 0x1d2b + (local.get $20) + ) + ;; code offset: 0x1d36 + (i64.and + ;; code offset: 0x1d2e + (local.get $8) + ;; code offset: 0x1d30 + (i64.const 4294967295) + ) + ) + ) + ;; code offset: 0x1d4b + (i64.mul + ;; code offset: 0x1d43 + (local.tee $8 + ;; code offset: 0x1d42 + (i64.div_u + ;; code offset: 0x1d3a + (local.get $8) + ;; code offset: 0x1d3c + (i64.const 1000000000) + ) + ) + ;; code offset: 0x1d45 + (i64.const 1000000000) + ) + ) + ) + ;; code offset: 0x1d5a + (br_if $label$17 + ;; code offset: 0x1d59 + (i32.ge_u + ;; code offset: 0x1d55 + (local.tee $12 + ;; code offset: 0x1d54 + (i32.add + ;; code offset: 0x1d50 + (local.get $12) + ;; code offset: 0x1d52 + (i32.const -4) + ) + ) + ;; code offset: 0x1d57 + (local.get $19) + ) + ) + ) + ;; code offset: 0x1d63 + (br_if $label$16 + ;; code offset: 0x1d62 + (i32.eqz + ;; code offset: 0x1d60 + (local.tee $12 + ;; code offset: 0x1d5f + (i32.wrap_i64 + ;; code offset: 0x1d5d + (local.get $8) + ) + ) + ) + ) + ;; code offset: 0x1d6e + (i32.store + ;; code offset: 0x1d6a + (local.tee $19 + ;; code offset: 0x1d69 + (i32.add + ;; code offset: 0x1d65 + (local.get $19) + ;; code offset: 0x1d67 + (i32.const -4) + ) + ) + ;; code offset: 0x1d6c + (local.get $12) + ) + ) + ;; code offset: 0x1d72 + (block $label$18 + ;; code offset: 0x1d74 + (loop $label$19 + ;; code offset: 0x1d7d + (br_if $label$18 + ;; code offset: 0x1d7c + (i32.le_u + ;; code offset: 0x1d78 + (local.tee $12 + ;; code offset: 0x1d76 + (local.get $18) + ) + ;; code offset: 0x1d7a + (local.get $19) + ) + ) + ;; code offset: 0x1d8a + (br_if $label$19 + ;; code offset: 0x1d89 + (i32.eqz + ;; code offset: 0x1d86 + (i32.load + ;; code offset: 0x1d84 + (local.tee $18 + ;; code offset: 0x1d83 + (i32.add + ;; code offset: 0x1d7f + (local.get $12) + ;; code offset: 0x1d81 + (i32.const -4) + ) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x1d9a + (i32.store offset=44 + ;; code offset: 0x1d8e + (local.get $6) + ;; code offset: 0x1d98 + (local.tee $3 + ;; code offset: 0x1d97 + (i32.sub + ;; code offset: 0x1d92 + (i32.load offset=44 + ;; code offset: 0x1d90 + (local.get $6) + ) + ;; code offset: 0x1d95 + (local.get $3) + ) + ) + ) + ;; code offset: 0x1d9f + (local.set $18 + ;; code offset: 0x1d9d + (local.get $12) + ) + ;; code offset: 0x1da6 + (br_if $label$15 + ;; code offset: 0x1da5 + (i32.gt_s + ;; code offset: 0x1da1 + (local.get $3) + ;; code offset: 0x1da3 + (i32.const 0) + ) + ) + ) + ) + ;; code offset: 0x1daa + (block $label$20 + ;; code offset: 0x1db1 + (br_if $label$20 + ;; code offset: 0x1db0 + (i32.gt_s + ;; code offset: 0x1dac + (local.get $3) + ;; code offset: 0x1dae + (i32.const -1) + ) + ) + ;; code offset: 0x1dbe + (local.set $21 + ;; code offset: 0x1dbd + (i32.add + ;; code offset: 0x1dba + (i32.div_s + ;; code offset: 0x1db7 + (i32.add + ;; code offset: 0x1db3 + (local.get $15) + ;; code offset: 0x1db5 + (i32.const 25) + ) + ;; code offset: 0x1db8 + (i32.const 9) + ) + ;; code offset: 0x1dbb + (i32.const 1) + ) + ) + ;; code offset: 0x1dc6 + (local.set $22 + ;; code offset: 0x1dc5 + (i32.eq + ;; code offset: 0x1dc0 + (local.get $14) + ;; code offset: 0x1dc2 + (i32.const 102) + ) + ) + ;; code offset: 0x1dc8 + (loop $label$21 + ;; code offset: 0x1dd7 + (local.set $11 + ;; code offset: 0x1dd6 + (select + ;; code offset: 0x1dca + (i32.const 9) + ;; code offset: 0x1dd0 + (i32.sub + ;; code offset: 0x1dcc + (i32.const 0) + ;; code offset: 0x1dce + (local.get $3) + ) + ;; code offset: 0x1dd5 + (i32.lt_s + ;; code offset: 0x1dd1 + (local.get $3) + ;; code offset: 0x1dd3 + (i32.const -9) + ) + ) + ) + ;; code offset: 0x1dd9 + (block $label$22 + (block $label$23 + ;; code offset: 0x1de2 + (br_if $label$23 + ;; code offset: 0x1de1 + (i32.lt_u + ;; code offset: 0x1ddd + (local.get $19) + ;; code offset: 0x1ddf + (local.get $12) + ) + ) + ;; code offset: 0x1df1 + (local.set $19 + ;; code offset: 0x1df0 + (select + ;; code offset: 0x1de4 + (local.get $19) + ;; code offset: 0x1dea + (i32.add + ;; code offset: 0x1de6 + (local.get $19) + ;; code offset: 0x1de8 + (i32.const 4) + ) + ;; code offset: 0x1ded + (i32.load + ;; code offset: 0x1deb + (local.get $19) + ) + ) + ) + ;; code offset: 0x1df3 + (br $label$22) + ) + ;; code offset: 0x1dff + (local.set $23 + ;; code offset: 0x1dfe + (i32.shr_u + ;; code offset: 0x1df6 + (i32.const 1000000000) + ;; code offset: 0x1dfc + (local.get $11) + ) + ) + ;; code offset: 0x1e09 + (local.set $24 + ;; code offset: 0x1e08 + (i32.xor + ;; code offset: 0x1e05 + (i32.shl + ;; code offset: 0x1e01 + (i32.const -1) + ;; code offset: 0x1e03 + (local.get $11) + ) + ;; code offset: 0x1e06 + (i32.const -1) + ) + ) + ;; code offset: 0x1e0d + (local.set $3 + ;; code offset: 0x1e0b + (i32.const 0) + ) + ;; code offset: 0x1e11 + (local.set $18 + ;; code offset: 0x1e0f + (local.get $19) + ) + ;; code offset: 0x1e13 + (loop $label$24 + ;; code offset: 0x1e24 + (i32.store + ;; code offset: 0x1e15 + (local.get $18) + ;; code offset: 0x1e23 + (i32.add + ;; code offset: 0x1e20 + (i32.shr_u + ;; code offset: 0x1e1c + (local.tee $25 + ;; code offset: 0x1e19 + (i32.load + ;; code offset: 0x1e17 + (local.get $18) + ) + ) + ;; code offset: 0x1e1e + (local.get $11) + ) + ;; code offset: 0x1e21 + (local.get $3) + ) + ) + ;; code offset: 0x1e2f + (local.set $3 + ;; code offset: 0x1e2e + (i32.mul + ;; code offset: 0x1e2b + (i32.and + ;; code offset: 0x1e27 + (local.get $25) + ;; code offset: 0x1e29 + (local.get $24) + ) + ;; code offset: 0x1e2c + (local.get $23) + ) + ) + ;; code offset: 0x1e3b + (br_if $label$24 + ;; code offset: 0x1e3a + (i32.lt_u + ;; code offset: 0x1e36 + (local.tee $18 + ;; code offset: 0x1e35 + (i32.add + ;; code offset: 0x1e31 + (local.get $18) + ;; code offset: 0x1e33 + (i32.const 4) + ) + ) + ;; code offset: 0x1e38 + (local.get $12) + ) + ) + ) + ;; code offset: 0x1e4b + (local.set $19 + ;; code offset: 0x1e4a + (select + ;; code offset: 0x1e3e + (local.get $19) + ;; code offset: 0x1e44 + (i32.add + ;; code offset: 0x1e40 + (local.get $19) + ;; code offset: 0x1e42 + (i32.const 4) + ) + ;; code offset: 0x1e47 + (i32.load + ;; code offset: 0x1e45 + (local.get $19) + ) + ) + ) + ;; code offset: 0x1e50 + (br_if $label$22 + ;; code offset: 0x1e4f + (i32.eqz + ;; code offset: 0x1e4d + (local.get $3) + ) + ) + ;; code offset: 0x1e56 + (i32.store + ;; code offset: 0x1e52 + (local.get $12) + ;; code offset: 0x1e54 + (local.get $3) + ) + ;; code offset: 0x1e5e + (local.set $12 + ;; code offset: 0x1e5d + (i32.add + ;; code offset: 0x1e59 + (local.get $12) + ;; code offset: 0x1e5b + (i32.const 4) + ) + ) + ) + ;; code offset: 0x1e6d + (i32.store offset=44 + ;; code offset: 0x1e61 + (local.get $6) + ;; code offset: 0x1e6b + (local.tee $3 + ;; code offset: 0x1e6a + (i32.add + ;; code offset: 0x1e65 + (i32.load offset=44 + ;; code offset: 0x1e63 + (local.get $6) + ) + ;; code offset: 0x1e68 + (local.get $11) + ) + ) + ) + ;; code offset: 0x1e8d + (local.set $12 + ;; code offset: 0x1e8c + (select + ;; code offset: 0x1e7e + (i32.add + ;; code offset: 0x1e77 + (local.tee $18 + ;; code offset: 0x1e76 + (select + ;; code offset: 0x1e70 + (local.get $17) + ;; code offset: 0x1e72 + (local.get $19) + ;; code offset: 0x1e74 + (local.get $22) + ) + ) + ;; code offset: 0x1e7d + (i32.shl + ;; code offset: 0x1e79 + (local.get $21) + ;; code offset: 0x1e7b + (i32.const 2) + ) + ) + ;; code offset: 0x1e7f + (local.get $12) + ;; code offset: 0x1e8b + (i32.gt_s + ;; code offset: 0x1e88 + (i32.shr_s + ;; code offset: 0x1e85 + (i32.sub + ;; code offset: 0x1e81 + (local.get $12) + ;; code offset: 0x1e83 + (local.get $18) + ) + ;; code offset: 0x1e86 + (i32.const 2) + ) + ;; code offset: 0x1e89 + (local.get $21) + ) + ) + ) + ;; code offset: 0x1e94 + (br_if $label$21 + ;; code offset: 0x1e93 + (i32.lt_s + ;; code offset: 0x1e8f + (local.get $3) + ;; code offset: 0x1e91 + (i32.const 0) + ) + ) + ) + ) + ;; code offset: 0x1e9a + (local.set $18 + ;; code offset: 0x1e98 + (i32.const 0) + ) + ;; code offset: 0x1e9c + (block $label$25 + ;; code offset: 0x1ea3 + (br_if $label$25 + ;; code offset: 0x1ea2 + (i32.ge_u + ;; code offset: 0x1e9e + (local.get $19) + ;; code offset: 0x1ea0 + (local.get $12) + ) + ) + ;; code offset: 0x1eb0 + (local.set $18 + ;; code offset: 0x1eaf + (i32.mul + ;; code offset: 0x1eac + (i32.shr_s + ;; code offset: 0x1ea9 + (i32.sub + ;; code offset: 0x1ea5 + (local.get $17) + ;; code offset: 0x1ea7 + (local.get $19) + ) + ;; code offset: 0x1eaa + (i32.const 2) + ) + ;; code offset: 0x1ead + (i32.const 9) + ) + ) + ;; code offset: 0x1eb4 + (local.set $3 + ;; code offset: 0x1eb2 + (i32.const 10) + ) + ;; code offset: 0x1ec0 + (br_if $label$25 + ;; code offset: 0x1ebf + (i32.lt_u + ;; code offset: 0x1ebb + (local.tee $25 + ;; code offset: 0x1eb8 + (i32.load + ;; code offset: 0x1eb6 + (local.get $19) + ) + ) + ;; code offset: 0x1ebd + (i32.const 10) + ) + ) + ;; code offset: 0x1ec2 + (loop $label$26 + ;; code offset: 0x1ec9 + (local.set $18 + ;; code offset: 0x1ec8 + (i32.add + ;; code offset: 0x1ec4 + (local.get $18) + ;; code offset: 0x1ec6 + (i32.const 1) + ) + ) + ;; code offset: 0x1ed5 + (br_if $label$26 + ;; code offset: 0x1ed4 + (i32.ge_u + ;; code offset: 0x1ecb + (local.get $25) + ;; code offset: 0x1ed2 + (local.tee $3 + ;; code offset: 0x1ed1 + (i32.mul + ;; code offset: 0x1ecd + (local.get $3) + ;; code offset: 0x1ecf + (i32.const 10) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x1ed9 + (block $label$27 + ;; code offset: 0x1f07 + (br_if $label$27 + ;; code offset: 0x1f06 + (i32.ge_s + ;; code offset: 0x1ef6 + (local.tee $3 + ;; code offset: 0x1ef5 + (i32.sub + ;; code offset: 0x1ee8 + (i32.sub + ;; code offset: 0x1edb + (local.get $15) + ;; code offset: 0x1ee7 + (select + ;; code offset: 0x1edd + (i32.const 0) + ;; code offset: 0x1edf + (local.get $18) + ;; code offset: 0x1ee6 + (i32.eq + ;; code offset: 0x1ee1 + (local.get $14) + ;; code offset: 0x1ee3 + (i32.const 102) + ) + ) + ) + ;; code offset: 0x1ef4 + (i32.and + ;; code offset: 0x1eed + (i32.ne + ;; code offset: 0x1ee9 + (local.get $15) + ;; code offset: 0x1eeb + (i32.const 0) + ) + ;; code offset: 0x1ef3 + (i32.eq + ;; code offset: 0x1eee + (local.get $14) + ;; code offset: 0x1ef0 + (i32.const 103) + ) + ) + ) + ) + ;; code offset: 0x1f05 + (i32.add + ;; code offset: 0x1f02 + (i32.mul + ;; code offset: 0x1eff + (i32.shr_s + ;; code offset: 0x1efc + (i32.sub + ;; code offset: 0x1ef8 + (local.get $12) + ;; code offset: 0x1efa + (local.get $17) + ) + ;; code offset: 0x1efd + (i32.const 2) + ) + ;; code offset: 0x1f00 + (i32.const 9) + ) + ;; code offset: 0x1f03 + (i32.const -9) + ) + ) + ) + ;; code offset: 0x1f33 + (local.set $11 + ;; code offset: 0x1f32 + (i32.add + ;; code offset: 0x1f2e + (i32.add + ;; code offset: 0x1f19 + (i32.shl + ;; code offset: 0x1f15 + (local.tee $23 + ;; code offset: 0x1f14 + (i32.div_s + ;; code offset: 0x1f10 + (local.tee $25 + ;; code offset: 0x1f0f + (i32.add + ;; code offset: 0x1f09 + (local.get $3) + ;; code offset: 0x1f0b + (i32.const 9216) + ) + ) + ;; code offset: 0x1f12 + (i32.const 9) + ) + ) + ;; code offset: 0x1f17 + (i32.const 2) + ) + ;; code offset: 0x1f2d + (select + ;; code offset: 0x1f21 + (i32.or + ;; code offset: 0x1f1e + (i32.add + ;; code offset: 0x1f1a + (local.get $6) + ;; code offset: 0x1f1c + (i32.const 48) + ) + ;; code offset: 0x1f1f + (i32.const 4) + ) + ;; code offset: 0x1f27 + (i32.add + ;; code offset: 0x1f22 + (local.get $6) + ;; code offset: 0x1f24 + (i32.const 340) + ) + ;; code offset: 0x1f2c + (i32.lt_s + ;; code offset: 0x1f28 + (local.get $16) + ;; code offset: 0x1f2a + (i32.const 0) + ) + ) + ) + ;; code offset: 0x1f2f + (i32.const -4096) + ) + ) + ;; code offset: 0x1f37 + (local.set $3 + ;; code offset: 0x1f35 + (i32.const 10) + ) + ;; code offset: 0x1f39 + (block $label$28 + ;; code offset: 0x1f48 + (br_if $label$28 + ;; code offset: 0x1f47 + (i32.gt_s + ;; code offset: 0x1f43 + (local.tee $25 + ;; code offset: 0x1f42 + (i32.sub + ;; code offset: 0x1f3b + (local.get $25) + ;; code offset: 0x1f41 + (i32.mul + ;; code offset: 0x1f3d + (local.get $23) + ;; code offset: 0x1f3f + (i32.const 9) + ) + ) + ) + ;; code offset: 0x1f45 + (i32.const 7) + ) + ) + ;; code offset: 0x1f4a + (loop $label$29 + ;; code offset: 0x1f51 + (local.set $3 + ;; code offset: 0x1f50 + (i32.mul + ;; code offset: 0x1f4c + (local.get $3) + ;; code offset: 0x1f4e + (i32.const 10) + ) + ) + ;; code offset: 0x1f5d + (br_if $label$29 + ;; code offset: 0x1f5c + (i32.ne + ;; code offset: 0x1f58 + (local.tee $25 + ;; code offset: 0x1f57 + (i32.add + ;; code offset: 0x1f53 + (local.get $25) + ;; code offset: 0x1f55 + (i32.const 1) + ) + ) + ;; code offset: 0x1f5a + (i32.const 8) + ) + ) + ) + ) + ;; code offset: 0x1f73 + (local.set $25 + ;; code offset: 0x1f72 + (i32.sub + ;; code offset: 0x1f66 + (local.tee $23 + ;; code offset: 0x1f63 + (i32.load + ;; code offset: 0x1f61 + (local.get $11) + ) + ) + ;; code offset: 0x1f71 + (i32.mul + ;; code offset: 0x1f6d + (local.tee $24 + ;; code offset: 0x1f6c + (i32.div_u + ;; code offset: 0x1f68 + (local.get $23) + ;; code offset: 0x1f6a + (local.get $3) + ) + ) + ;; code offset: 0x1f6f + (local.get $3) + ) + ) + ) + ;; code offset: 0x1f75 + (block $label$30 + (block $label$31 + ;; code offset: 0x1f83 + (br_if $label$31 + ;; code offset: 0x1f82 + (i32.ne + ;; code offset: 0x1f7e + (local.tee $21 + ;; code offset: 0x1f7d + (i32.add + ;; code offset: 0x1f79 + (local.get $11) + ;; code offset: 0x1f7b + (i32.const 4) + ) + ) + ;; code offset: 0x1f80 + (local.get $12) + ) + ) + ;; code offset: 0x1f88 + (br_if $label$30 + ;; code offset: 0x1f87 + (i32.eqz + ;; code offset: 0x1f85 + (local.get $25) + ) + ) + ) + ;; code offset: 0x1fc6 + (local.set $26 + ;; code offset: 0x1fc5 + (select + ;; code offset: 0x1f8b + (f64.const 0.5) + ;; code offset: 0x1fbf + (select + ;; code offset: 0x1fb0 + (select + ;; code offset: 0x1f94 + (f64.const 1) + ;; code offset: 0x1f9d + (f64.const 1.5) + ;; code offset: 0x1faf + (i32.eq + ;; code offset: 0x1fa6 + (local.get $25) + ;; code offset: 0x1fad + (local.tee $22 + ;; code offset: 0x1fac + (i32.shr_u + ;; code offset: 0x1fa8 + (local.get $3) + ;; code offset: 0x1faa + (i32.const 1) + ) + ) + ) + ) + ;; code offset: 0x1fb1 + (f64.const 1.5) + ;; code offset: 0x1fbe + (i32.eq + ;; code offset: 0x1fba + (local.get $21) + ;; code offset: 0x1fbc + (local.get $12) + ) + ) + ;; code offset: 0x1fc4 + (i32.lt_u + ;; code offset: 0x1fc0 + (local.get $25) + ;; code offset: 0x1fc2 + (local.get $22) + ) + ) + ) + ;; code offset: 0x1fe0 + (local.set $1 + ;; code offset: 0x1fdf + (select + ;; code offset: 0x1fc8 + (f64.const 9007199254740994) + ;; code offset: 0x1fd1 + (f64.const 9007199254740992) + ;; code offset: 0x1fde + (i32.and + ;; code offset: 0x1fda + (local.get $24) + ;; code offset: 0x1fdc + (i32.const 1) + ) + ) + ) + ;; code offset: 0x1fe2 + (block $label$32 + ;; code offset: 0x1fe6 + (br_if $label$32 + ;; code offset: 0x1fe4 + (local.get $7) + ) + ;; code offset: 0x1ff0 + (br_if $label$32 + ;; code offset: 0x1fef + (i32.ne + ;; code offset: 0x1fea + (i32.load8_u + ;; code offset: 0x1fe8 + (local.get $10) + ) + ;; code offset: 0x1fed + (i32.const 45) + ) + ) + ;; code offset: 0x1ff5 + (local.set $26 + ;; code offset: 0x1ff4 + (f64.neg + ;; code offset: 0x1ff2 + (local.get $26) + ) + ) + ;; code offset: 0x1ffa + (local.set $1 + ;; code offset: 0x1ff9 + (f64.neg + ;; code offset: 0x1ff7 + (local.get $1) + ) + ) + ) + ;; code offset: 0x2006 + (i32.store + ;; code offset: 0x1ffd + (local.get $11) + ;; code offset: 0x2004 + (local.tee $25 + ;; code offset: 0x2003 + (i32.sub + ;; code offset: 0x1fff + (local.get $23) + ;; code offset: 0x2001 + (local.get $25) + ) + ) + ) + ;; code offset: 0x2011 + (br_if $label$30 + ;; code offset: 0x2010 + (f64.eq + ;; code offset: 0x200d + (f64.add + ;; code offset: 0x2009 + (local.get $1) + ;; code offset: 0x200b + (local.get $26) + ) + ;; code offset: 0x200e + (local.get $1) + ) + ) + ;; code offset: 0x201c + (i32.store + ;; code offset: 0x2013 + (local.get $11) + ;; code offset: 0x201a + (local.tee $18 + ;; code offset: 0x2019 + (i32.add + ;; code offset: 0x2015 + (local.get $25) + ;; code offset: 0x2017 + (local.get $3) + ) + ) + ) + ;; code offset: 0x201f + (block $label$33 + ;; code offset: 0x202a + (br_if $label$33 + ;; code offset: 0x2029 + (i32.lt_u + ;; code offset: 0x2021 + (local.get $18) + ;; code offset: 0x2023 + (i32.const 1000000000) + ) + ) + ;; code offset: 0x202c + (loop $label$34 + ;; code offset: 0x2032 + (i32.store + ;; code offset: 0x202e + (local.get $11) + ;; code offset: 0x2030 + (i32.const 0) + ) + ;; code offset: 0x2035 + (block $label$35 + ;; code offset: 0x2041 + (br_if $label$35 + ;; code offset: 0x2040 + (i32.ge_u + ;; code offset: 0x203c + (local.tee $11 + ;; code offset: 0x203b + (i32.add + ;; code offset: 0x2037 + (local.get $11) + ;; code offset: 0x2039 + (i32.const -4) + ) + ) + ;; code offset: 0x203e + (local.get $19) + ) + ) + ;; code offset: 0x204c + (i32.store + ;; code offset: 0x2048 + (local.tee $19 + ;; code offset: 0x2047 + (i32.add + ;; code offset: 0x2043 + (local.get $19) + ;; code offset: 0x2045 + (i32.const -4) + ) + ) + ;; code offset: 0x204a + (i32.const 0) + ) + ) + ;; code offset: 0x205c + (i32.store + ;; code offset: 0x2050 + (local.get $11) + ;; code offset: 0x205a + (local.tee $18 + ;; code offset: 0x2059 + (i32.add + ;; code offset: 0x2054 + (i32.load + ;; code offset: 0x2052 + (local.get $11) + ) + ;; code offset: 0x2057 + (i32.const 1) + ) + ) + ) + ;; code offset: 0x2068 + (br_if $label$34 + ;; code offset: 0x2067 + (i32.gt_u + ;; code offset: 0x205f + (local.get $18) + ;; code offset: 0x2061 + (i32.const 999999999) + ) + ) + ) + ) + ;; code offset: 0x2077 + (local.set $18 + ;; code offset: 0x2076 + (i32.mul + ;; code offset: 0x2073 + (i32.shr_s + ;; code offset: 0x2070 + (i32.sub + ;; code offset: 0x206c + (local.get $17) + ;; code offset: 0x206e + (local.get $19) + ) + ;; code offset: 0x2071 + (i32.const 2) + ) + ;; code offset: 0x2074 + (i32.const 9) + ) + ) + ;; code offset: 0x207b + (local.set $3 + ;; code offset: 0x2079 + (i32.const 10) + ) + ;; code offset: 0x2087 + (br_if $label$30 + ;; code offset: 0x2086 + (i32.lt_u + ;; code offset: 0x2082 + (local.tee $25 + ;; code offset: 0x207f + (i32.load + ;; code offset: 0x207d + (local.get $19) + ) + ) + ;; code offset: 0x2084 + (i32.const 10) + ) + ) + ;; code offset: 0x2089 + (loop $label$36 + ;; code offset: 0x2090 + (local.set $18 + ;; code offset: 0x208f + (i32.add + ;; code offset: 0x208b + (local.get $18) + ;; code offset: 0x208d + (i32.const 1) + ) + ) + ;; code offset: 0x209c + (br_if $label$36 + ;; code offset: 0x209b + (i32.ge_u + ;; code offset: 0x2092 + (local.get $25) + ;; code offset: 0x2099 + (local.tee $3 + ;; code offset: 0x2098 + (i32.mul + ;; code offset: 0x2094 + (local.get $3) + ;; code offset: 0x2096 + (i32.const 10) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x20af + (local.set $12 + ;; code offset: 0x20ae + (select + ;; code offset: 0x20a5 + (local.tee $3 + ;; code offset: 0x20a4 + (i32.add + ;; code offset: 0x20a0 + (local.get $11) + ;; code offset: 0x20a2 + (i32.const 4) + ) + ) + ;; code offset: 0x20a7 + (local.get $12) + ;; code offset: 0x20ad + (i32.gt_u + ;; code offset: 0x20a9 + (local.get $12) + ;; code offset: 0x20ab + (local.get $3) + ) + ) + ) + ) + ;; code offset: 0x20b2 + (block $label$37 + ;; code offset: 0x20b4 + (loop $label$38 + ;; code offset: 0x20bf + (br_if $label$37 + ;; code offset: 0x20bd + (local.tee $25 + ;; code offset: 0x20bc + (i32.le_u + ;; code offset: 0x20b8 + (local.tee $3 + ;; code offset: 0x20b6 + (local.get $12) + ) + ;; code offset: 0x20ba + (local.get $19) + ) + ) + ) + ;; code offset: 0x20cc + (br_if $label$38 + ;; code offset: 0x20cb + (i32.eqz + ;; code offset: 0x20c8 + (i32.load + ;; code offset: 0x20c6 + (local.tee $12 + ;; code offset: 0x20c5 + (i32.add + ;; code offset: 0x20c1 + (local.get $3) + ;; code offset: 0x20c3 + (i32.const -4) + ) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x20d0 + (block $label$39 + (block $label$40 + ;; code offset: 0x20da + (br_if $label$40 + ;; code offset: 0x20d9 + (i32.eq + ;; code offset: 0x20d4 + (local.get $14) + ;; code offset: 0x20d6 + (i32.const 103) + ) + ) + ;; code offset: 0x20e1 + (local.set $24 + ;; code offset: 0x20e0 + (i32.and + ;; code offset: 0x20dc + (local.get $4) + ;; code offset: 0x20de + (i32.const 8) + ) + ) + ;; code offset: 0x20e3 + (br $label$39) + ) + ;; code offset: 0x2105 + (local.set $15 + ;; code offset: 0x2104 + (i32.add + ;; code offset: 0x2101 + (select + ;; code offset: 0x20ea + (i32.xor + ;; code offset: 0x20e6 + (local.get $18) + ;; code offset: 0x20e8 + (i32.const -1) + ) + ;; code offset: 0x20eb + (i32.const -1) + ;; code offset: 0x20ff + (local.tee $11 + ;; code offset: 0x20fe + (i32.and + ;; code offset: 0x20f8 + (i32.gt_s + ;; code offset: 0x20f4 + (local.tee $12 + ;; code offset: 0x20f3 + (select + ;; code offset: 0x20ed + (local.get $15) + ;; code offset: 0x20ef + (i32.const 1) + ;; code offset: 0x20f1 + (local.get $15) + ) + ) + ;; code offset: 0x20f6 + (local.get $18) + ) + ;; code offset: 0x20fd + (i32.gt_s + ;; code offset: 0x20f9 + (local.get $18) + ;; code offset: 0x20fb + (i32.const -5) + ) + ) + ) + ) + ;; code offset: 0x2102 + (local.get $12) + ) + ) + ;; code offset: 0x2111 + (local.set $5 + ;; code offset: 0x2110 + (i32.add + ;; code offset: 0x210d + (select + ;; code offset: 0x2107 + (i32.const -1) + ;; code offset: 0x2109 + (i32.const -2) + ;; code offset: 0x210b + (local.get $11) + ) + ;; code offset: 0x210e + (local.get $5) + ) + ) + ;; code offset: 0x211a + (br_if $label$39 + ;; code offset: 0x2118 + (local.tee $24 + ;; code offset: 0x2117 + (i32.and + ;; code offset: 0x2113 + (local.get $4) + ;; code offset: 0x2115 + (i32.const 8) + ) + ) + ) + ;; code offset: 0x211e + (local.set $12 + ;; code offset: 0x211c + (i32.const -9) + ) + ;; code offset: 0x2120 + (block $label$41 + ;; code offset: 0x2124 + (br_if $label$41 + ;; code offset: 0x2122 + (local.get $25) + ) + ;; code offset: 0x2131 + (br_if $label$41 + ;; code offset: 0x2130 + (i32.eqz + ;; code offset: 0x212e + (local.tee $11 + ;; code offset: 0x212b + (i32.load + ;; code offset: 0x212a + (i32.add + ;; code offset: 0x2126 + (local.get $3) + ;; code offset: 0x2128 + (i32.const -4) + ) + ) + ) + ) + ) + ;; code offset: 0x2135 + (local.set $25 + ;; code offset: 0x2133 + (i32.const 10) + ) + ;; code offset: 0x2139 + (local.set $12 + ;; code offset: 0x2137 + (i32.const 0) + ) + ;; code offset: 0x2140 + (br_if $label$41 + ;; code offset: 0x213f + (i32.rem_u + ;; code offset: 0x213b + (local.get $11) + ;; code offset: 0x213d + (i32.const 10) + ) + ) + ;; code offset: 0x2142 + (loop $label$42 + ;; code offset: 0x214b + (local.set $12 + ;; code offset: 0x214a + (i32.add + ;; code offset: 0x2146 + (local.tee $23 + ;; code offset: 0x2144 + (local.get $12) + ) + ;; code offset: 0x2148 + (i32.const 1) + ) + ) + ;; code offset: 0x2158 + (br_if $label$42 + ;; code offset: 0x2157 + (i32.eqz + ;; code offset: 0x2156 + (i32.rem_u + ;; code offset: 0x214d + (local.get $11) + ;; code offset: 0x2154 + (local.tee $25 + ;; code offset: 0x2153 + (i32.mul + ;; code offset: 0x214f + (local.get $25) + ;; code offset: 0x2151 + (i32.const 10) + ) + ) + ) + ) + ) + ) + ;; code offset: 0x2160 + (local.set $12 + ;; code offset: 0x215f + (i32.xor + ;; code offset: 0x215b + (local.get $23) + ;; code offset: 0x215d + (i32.const -1) + ) + ) + ) + ;; code offset: 0x216e + (local.set $25 + ;; code offset: 0x216d + (i32.mul + ;; code offset: 0x216a + (i32.shr_s + ;; code offset: 0x2167 + (i32.sub + ;; code offset: 0x2163 + (local.get $3) + ;; code offset: 0x2165 + (local.get $17) + ) + ;; code offset: 0x2168 + (i32.const 2) + ) + ;; code offset: 0x216b + (i32.const 9) + ) + ) + ;; code offset: 0x2170 + (block $label$43 + ;; code offset: 0x217b + (br_if $label$43 + ;; code offset: 0x217a + (i32.ne + ;; code offset: 0x2176 + (i32.and + ;; code offset: 0x2172 + (local.get $5) + ;; code offset: 0x2174 + (i32.const -33) + ) + ;; code offset: 0x2177 + (i32.const 70) + ) + ) + ;; code offset: 0x217f + (local.set $24 + ;; code offset: 0x217d + (i32.const 0) + ) + ;; code offset: 0x219d + (local.set $15 + ;; code offset: 0x219c + (select + ;; code offset: 0x2181 + (local.get $15) + ;; code offset: 0x2195 + (local.tee $12 + ;; code offset: 0x2194 + (select + ;; code offset: 0x218b + (local.tee $12 + ;; code offset: 0x218a + (i32.add + ;; code offset: 0x2187 + (i32.add + ;; code offset: 0x2183 + (local.get $25) + ;; code offset: 0x2185 + (local.get $12) + ) + ;; code offset: 0x2188 + (i32.const -9) + ) + ) + ;; code offset: 0x218d + (i32.const 0) + ;; code offset: 0x2193 + (i32.gt_s + ;; code offset: 0x218f + (local.get $12) + ;; code offset: 0x2191 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x219b + (i32.lt_s + ;; code offset: 0x2197 + (local.get $15) + ;; code offset: 0x2199 + (local.get $12) + ) + ) + ) + ;; code offset: 0x219f + (br $label$39) + ) + ;; code offset: 0x21a4 + (local.set $24 + ;; code offset: 0x21a2 + (i32.const 0) + ) + ;; code offset: 0x21c5 + (local.set $15 + ;; code offset: 0x21c4 + (select + ;; code offset: 0x21a6 + (local.get $15) + ;; code offset: 0x21bd + (local.tee $12 + ;; code offset: 0x21bc + (select + ;; code offset: 0x21b3 + (local.tee $12 + ;; code offset: 0x21b2 + (i32.add + ;; code offset: 0x21af + (i32.add + ;; code offset: 0x21ac + (i32.add + ;; code offset: 0x21a8 + (local.get $18) + ;; code offset: 0x21aa + (local.get $25) + ) + ;; code offset: 0x21ad + (local.get $12) + ) + ;; code offset: 0x21b0 + (i32.const -9) + ) + ) + ;; code offset: 0x21b5 + (i32.const 0) + ;; code offset: 0x21bb + (i32.gt_s + ;; code offset: 0x21b7 + (local.get $12) + ;; code offset: 0x21b9 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x21c3 + (i32.lt_s + ;; code offset: 0x21bf + (local.get $15) + ;; code offset: 0x21c1 + (local.get $12) + ) + ) + ) + ) + ;; code offset: 0x21d2 + (local.set $25 + ;; code offset: 0x21d1 + (i32.ne + ;; code offset: 0x21cd + (local.tee $22 + ;; code offset: 0x21cc + (i32.or + ;; code offset: 0x21c8 + (local.get $15) + ;; code offset: 0x21ca + (local.get $24) + ) + ) + ;; code offset: 0x21cf + (i32.const 0) + ) + ) + ;; code offset: 0x21d4 + (block $label$44 + (block $label$45 + ;; code offset: 0x21e3 + (br_if $label$45 + ;; code offset: 0x21e2 + (i32.ne + ;; code offset: 0x21dd + (local.tee $23 + ;; code offset: 0x21dc + (i32.and + ;; code offset: 0x21d8 + (local.get $5) + ;; code offset: 0x21da + (i32.const -33) + ) + ) + ;; code offset: 0x21df + (i32.const 70) + ) + ) + ;; code offset: 0x21ef + (local.set $12 + ;; code offset: 0x21ee + (select + ;; code offset: 0x21e5 + (local.get $18) + ;; code offset: 0x21e7 + (i32.const 0) + ;; code offset: 0x21ed + (i32.gt_s + ;; code offset: 0x21e9 + (local.get $18) + ;; code offset: 0x21eb + (i32.const 0) + ) + ) + ) + ;; code offset: 0x21f1 + (br $label$44) + ) + ;; code offset: 0x21f4 + (block $label$46 + ;; code offset: 0x2210 + (br_if $label$46 + ;; code offset: 0x220f + (i32.gt_s + ;; code offset: 0x220c + (i32.sub + ;; code offset: 0x21f6 + (local.get $13) + ;; code offset: 0x220a + (local.tee $12 + ;; code offset: 0x2208 + (call $fmt_u + ;; code offset: 0x2205 + (i64.extend_i32_u + ;; code offset: 0x2204 + (i32.xor + ;; code offset: 0x2201 + (i32.add + ;; code offset: 0x21f8 + (local.get $18) + ;; code offset: 0x21ff + (local.tee $12 + ;; code offset: 0x21fe + (i32.shr_s + ;; code offset: 0x21fa + (local.get $18) + ;; code offset: 0x21fc + (i32.const 31) + ) + ) + ) + ;; code offset: 0x2202 + (local.get $12) + ) + ) + ;; code offset: 0x2206 + (local.get $13) + ) + ) + ) + ;; code offset: 0x220d + (i32.const 1) + ) + ) + ;; code offset: 0x2212 + (loop $label$47 + ;; code offset: 0x221d + (i32.store8 + ;; code offset: 0x2219 + (local.tee $12 + ;; code offset: 0x2218 + (i32.add + ;; code offset: 0x2214 + (local.get $12) + ;; code offset: 0x2216 + (i32.const -1) + ) + ) + ;; code offset: 0x221b + (i32.const 48) + ) + ;; code offset: 0x2228 + (br_if $label$47 + ;; code offset: 0x2227 + (i32.lt_s + ;; code offset: 0x2224 + (i32.sub + ;; code offset: 0x2220 + (local.get $13) + ;; code offset: 0x2222 + (local.get $12) + ) + ;; code offset: 0x2225 + (i32.const 2) + ) + ) + ) + ) + ;; code offset: 0x2235 + (i32.store8 + ;; code offset: 0x2231 + (local.tee $21 + ;; code offset: 0x2230 + (i32.add + ;; code offset: 0x222c + (local.get $12) + ;; code offset: 0x222e + (i32.const -2) + ) + ) + ;; code offset: 0x2233 + (local.get $5) + ) + ;; code offset: 0x2247 + (i32.store8 + ;; code offset: 0x223c + (i32.add + ;; code offset: 0x2238 + (local.get $12) + ;; code offset: 0x223a + (i32.const -1) + ) + ;; code offset: 0x2246 + (select + ;; code offset: 0x223d + (i32.const 45) + ;; code offset: 0x223f + (i32.const 43) + ;; code offset: 0x2245 + (i32.lt_s + ;; code offset: 0x2241 + (local.get $18) + ;; code offset: 0x2243 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x224f + (local.set $12 + ;; code offset: 0x224e + (i32.sub + ;; code offset: 0x224a + (local.get $13) + ;; code offset: 0x224c + (local.get $21) + ) + ) + ) + ;; code offset: 0x226a + (call $pad + ;; code offset: 0x2252 + (local.get $0) + ;; code offset: 0x2254 + (i32.const 32) + ;; code offset: 0x2256 + (local.get $2) + ;; code offset: 0x2266 + (local.tee $11 + ;; code offset: 0x2265 + (i32.add + ;; code offset: 0x2262 + (i32.add + ;; code offset: 0x225f + (i32.add + ;; code offset: 0x225c + (i32.add + ;; code offset: 0x2258 + (local.get $9) + ;; code offset: 0x225a + (local.get $15) + ) + ;; code offset: 0x225d + (local.get $25) + ) + ;; code offset: 0x2260 + (local.get $12) + ) + ;; code offset: 0x2263 + (i32.const 1) + ) + ) + ;; code offset: 0x2268 + (local.get $4) + ) + ;; code offset: 0x2272 + (call $out + ;; code offset: 0x226c + (local.get $0) + ;; code offset: 0x226e + (local.get $10) + ;; code offset: 0x2270 + (local.get $9) + ) + ;; code offset: 0x2283 + (call $pad + ;; code offset: 0x2274 + (local.get $0) + ;; code offset: 0x2276 + (i32.const 48) + ;; code offset: 0x2278 + (local.get $2) + ;; code offset: 0x227a + (local.get $11) + ;; code offset: 0x2282 + (i32.xor + ;; code offset: 0x227c + (local.get $4) + ;; code offset: 0x227e + (i32.const 65536) + ) + ) + ;; code offset: 0x2285 + (block $label$48 + (block $label$49 + (block $label$50 + (block $label$51 + ;; code offset: 0x2293 + (br_if $label$51 + ;; code offset: 0x2292 + (i32.ne + ;; code offset: 0x228d + (local.get $23) + ;; code offset: 0x228f + (i32.const 70) + ) + ) + ;; code offset: 0x229d + (local.set $23 + ;; code offset: 0x229c + (i32.or + ;; code offset: 0x2299 + (i32.add + ;; code offset: 0x2295 + (local.get $6) + ;; code offset: 0x2297 + (i32.const 16) + ) + ;; code offset: 0x229a + (i32.const 8) + ) + ) + ;; code offset: 0x22a7 + (local.set $18 + ;; code offset: 0x22a6 + (i32.or + ;; code offset: 0x22a3 + (i32.add + ;; code offset: 0x229f + (local.get $6) + ;; code offset: 0x22a1 + (i32.const 16) + ) + ;; code offset: 0x22a4 + (i32.const 9) + ) + ) + ;; code offset: 0x22b5 + (local.set $19 + ;; code offset: 0x22b3 + (local.tee $25 + ;; code offset: 0x22b2 + (select + ;; code offset: 0x22a9 + (local.get $17) + ;; code offset: 0x22ab + (local.get $19) + ;; code offset: 0x22b1 + (i32.gt_u + ;; code offset: 0x22ad + (local.get $19) + ;; code offset: 0x22af + (local.get $17) + ) + ) + ) + ) + ;; code offset: 0x22b7 + (loop $label$52 + ;; code offset: 0x22c2 + (local.set $12 + ;; code offset: 0x22c0 + (call $fmt_u + ;; code offset: 0x22bb + (i64.load32_u + ;; code offset: 0x22b9 + (local.get $19) + ) + ;; code offset: 0x22be + (local.get $18) + ) + ) + ;; code offset: 0x22c4 + (block $label$53 + (block $label$54 + ;; code offset: 0x22cd + (br_if $label$54 + ;; code offset: 0x22cc + (i32.eq + ;; code offset: 0x22c8 + (local.get $19) + ;; code offset: 0x22ca + (local.get $25) + ) + ) + ;; code offset: 0x22d7 + (br_if $label$53 + ;; code offset: 0x22d6 + (i32.le_u + ;; code offset: 0x22cf + (local.get $12) + ;; code offset: 0x22d5 + (i32.add + ;; code offset: 0x22d1 + (local.get $6) + ;; code offset: 0x22d3 + (i32.const 16) + ) + ) + ) + ;; code offset: 0x22d9 + (loop $label$55 + ;; code offset: 0x22e4 + (i32.store8 + ;; code offset: 0x22e0 + (local.tee $12 + ;; code offset: 0x22df + (i32.add + ;; code offset: 0x22db + (local.get $12) + ;; code offset: 0x22dd + (i32.const -1) + ) + ) + ;; code offset: 0x22e2 + (i32.const 48) + ) + ;; code offset: 0x22ef + (br_if $label$55 + ;; code offset: 0x22ee + (i32.gt_u + ;; code offset: 0x22e7 + (local.get $12) + ;; code offset: 0x22ed + (i32.add + ;; code offset: 0x22e9 + (local.get $6) + ;; code offset: 0x22eb + (i32.const 16) + ) + ) + ) + ;; code offset: 0x22f1 + (br $label$53) + ) + ) + ;; code offset: 0x22fb + (br_if $label$53 + ;; code offset: 0x22fa + (i32.ne + ;; code offset: 0x22f6 + (local.get $12) + ;; code offset: 0x22f8 + (local.get $18) + ) + ) + ;; code offset: 0x2301 + (i32.store8 offset=24 + ;; code offset: 0x22fd + (local.get $6) + ;; code offset: 0x22ff + (i32.const 48) + ) + ;; code offset: 0x2306 + (local.set $12 + ;; code offset: 0x2304 + (local.get $23) + ) + ) + ;; code offset: 0x2312 + (call $out + ;; code offset: 0x2309 + (local.get $0) + ;; code offset: 0x230b + (local.get $12) + ;; code offset: 0x2311 + (i32.sub + ;; code offset: 0x230d + (local.get $18) + ;; code offset: 0x230f + (local.get $12) + ) + ) + ;; code offset: 0x231e + (br_if $label$52 + ;; code offset: 0x231d + (i32.le_u + ;; code offset: 0x2319 + (local.tee $19 + ;; code offset: 0x2318 + (i32.add + ;; code offset: 0x2314 + (local.get $19) + ;; code offset: 0x2316 + (i32.const 4) + ) + ) + ;; code offset: 0x231b + (local.get $17) + ) + ) + ) + ;; code offset: 0x2321 + (block $label$56 + ;; code offset: 0x2326 + (br_if $label$56 + ;; code offset: 0x2325 + (i32.eqz + ;; code offset: 0x2323 + (local.get $22) + ) + ) + ;; code offset: 0x232f + (call $out + ;; code offset: 0x2328 + (local.get $0) + ;; code offset: 0x232a + (i32.const 1587) + ;; code offset: 0x232d + (i32.const 1) + ) + ) + ;; code offset: 0x2337 + (br_if $label$50 + ;; code offset: 0x2336 + (i32.ge_u + ;; code offset: 0x2332 + (local.get $19) + ;; code offset: 0x2334 + (local.get $3) + ) + ) + ;; code offset: 0x233e + (br_if $label$50 + ;; code offset: 0x233d + (i32.lt_s + ;; code offset: 0x2339 + (local.get $15) + ;; code offset: 0x233b + (i32.const 1) + ) + ) + ;; code offset: 0x2340 + (loop $label$57 + ;; code offset: 0x2342 + (block $label$58 + ;; code offset: 0x2355 + (br_if $label$58 + ;; code offset: 0x2354 + (i32.le_u + ;; code offset: 0x234d + (local.tee $12 + ;; code offset: 0x234b + (call $fmt_u + ;; code offset: 0x2346 + (i64.load32_u + ;; code offset: 0x2344 + (local.get $19) + ) + ;; code offset: 0x2349 + (local.get $18) + ) + ) + ;; code offset: 0x2353 + (i32.add + ;; code offset: 0x234f + (local.get $6) + ;; code offset: 0x2351 + (i32.const 16) + ) + ) + ) + ;; code offset: 0x2357 + (loop $label$59 + ;; code offset: 0x2362 + (i32.store8 + ;; code offset: 0x235e + (local.tee $12 + ;; code offset: 0x235d + (i32.add + ;; code offset: 0x2359 + (local.get $12) + ;; code offset: 0x235b + (i32.const -1) + ) + ) + ;; code offset: 0x2360 + (i32.const 48) + ) + ;; code offset: 0x236d + (br_if $label$59 + ;; code offset: 0x236c + (i32.gt_u + ;; code offset: 0x2365 + (local.get $12) + ;; code offset: 0x236b + (i32.add + ;; code offset: 0x2367 + (local.get $6) + ;; code offset: 0x2369 + (i32.const 16) + ) + ) + ) + ) + ) + ;; code offset: 0x237f + (call $out + ;; code offset: 0x2371 + (local.get $0) + ;; code offset: 0x2373 + (local.get $12) + ;; code offset: 0x237e + (select + ;; code offset: 0x2375 + (local.get $15) + ;; code offset: 0x2377 + (i32.const 9) + ;; code offset: 0x237d + (i32.lt_s + ;; code offset: 0x2379 + (local.get $15) + ;; code offset: 0x237b + (i32.const 9) + ) + ) + ) + ;; code offset: 0x2386 + (local.set $12 + ;; code offset: 0x2385 + (i32.add + ;; code offset: 0x2381 + (local.get $15) + ;; code offset: 0x2383 + (i32.const -9) + ) + ) + ;; code offset: 0x2392 + (br_if $label$49 + ;; code offset: 0x2391 + (i32.ge_u + ;; code offset: 0x238d + (local.tee $19 + ;; code offset: 0x238c + (i32.add + ;; code offset: 0x2388 + (local.get $19) + ;; code offset: 0x238a + (i32.const 4) + ) + ) + ;; code offset: 0x238f + (local.get $3) + ) + ) + ;; code offset: 0x2399 + (local.set $25 + ;; code offset: 0x2398 + (i32.gt_s + ;; code offset: 0x2394 + (local.get $15) + ;; code offset: 0x2396 + (i32.const 9) + ) + ) + ;; code offset: 0x239d + (local.set $15 + ;; code offset: 0x239b + (local.get $12) + ) + ;; code offset: 0x23a1 + (br_if $label$57 + ;; code offset: 0x239f + (local.get $25) + ) + ;; code offset: 0x23a3 + (br $label$49) + ) + ) + ;; code offset: 0x23a8 + (block $label$60 + ;; code offset: 0x23af + (br_if $label$60 + ;; code offset: 0x23ae + (i32.lt_s + ;; code offset: 0x23aa + (local.get $15) + ;; code offset: 0x23ac + (i32.const 0) + ) + ) + ;; code offset: 0x23be + (local.set $23 + ;; code offset: 0x23bd + (select + ;; code offset: 0x23b1 + (local.get $3) + ;; code offset: 0x23b7 + (i32.add + ;; code offset: 0x23b3 + (local.get $19) + ;; code offset: 0x23b5 + (i32.const 4) + ) + ;; code offset: 0x23bc + (i32.gt_u + ;; code offset: 0x23b8 + (local.get $3) + ;; code offset: 0x23ba + (local.get $19) + ) + ) + ) + ;; code offset: 0x23c8 + (local.set $17 + ;; code offset: 0x23c7 + (i32.or + ;; code offset: 0x23c4 + (i32.add + ;; code offset: 0x23c0 + (local.get $6) + ;; code offset: 0x23c2 + (i32.const 16) + ) + ;; code offset: 0x23c5 + (i32.const 8) + ) + ) + ;; code offset: 0x23d2 + (local.set $3 + ;; code offset: 0x23d1 + (i32.or + ;; code offset: 0x23ce + (i32.add + ;; code offset: 0x23ca + (local.get $6) + ;; code offset: 0x23cc + (i32.const 16) + ) + ;; code offset: 0x23cf + (i32.const 9) + ) + ) + ;; code offset: 0x23d6 + (local.set $18 + ;; code offset: 0x23d4 + (local.get $19) + ) + ;; code offset: 0x23d8 + (loop $label$61 + ;; code offset: 0x23da + (block $label$62 + ;; code offset: 0x23ea + (br_if $label$62 + ;; code offset: 0x23e9 + (i32.ne + ;; code offset: 0x23e5 + (local.tee $12 + ;; code offset: 0x23e3 + (call $fmt_u + ;; code offset: 0x23de + (i64.load32_u + ;; code offset: 0x23dc + (local.get $18) + ) + ;; code offset: 0x23e1 + (local.get $3) + ) + ) + ;; code offset: 0x23e7 + (local.get $3) + ) + ) + ;; code offset: 0x23f0 + (i32.store8 offset=24 + ;; code offset: 0x23ec + (local.get $6) + ;; code offset: 0x23ee + (i32.const 48) + ) + ;; code offset: 0x23f5 + (local.set $12 + ;; code offset: 0x23f3 + (local.get $17) + ) + ) + ;; code offset: 0x23f8 + (block $label$63 + (block $label$64 + ;; code offset: 0x2401 + (br_if $label$64 + ;; code offset: 0x2400 + (i32.eq + ;; code offset: 0x23fc + (local.get $18) + ;; code offset: 0x23fe + (local.get $19) + ) + ) + ;; code offset: 0x240b + (br_if $label$63 + ;; code offset: 0x240a + (i32.le_u + ;; code offset: 0x2403 + (local.get $12) + ;; code offset: 0x2409 + (i32.add + ;; code offset: 0x2405 + (local.get $6) + ;; code offset: 0x2407 + (i32.const 16) + ) + ) + ) + ;; code offset: 0x240d + (loop $label$65 + ;; code offset: 0x2418 + (i32.store8 + ;; code offset: 0x2414 + (local.tee $12 + ;; code offset: 0x2413 + (i32.add + ;; code offset: 0x240f + (local.get $12) + ;; code offset: 0x2411 + (i32.const -1) + ) + ) + ;; code offset: 0x2416 + (i32.const 48) + ) + ;; code offset: 0x2423 + (br_if $label$65 + ;; code offset: 0x2422 + (i32.gt_u + ;; code offset: 0x241b + (local.get $12) + ;; code offset: 0x2421 + (i32.add + ;; code offset: 0x241d + (local.get $6) + ;; code offset: 0x241f + (i32.const 16) + ) + ) + ) + ;; code offset: 0x2425 + (br $label$63) + ) + ) + ;; code offset: 0x2430 + (call $out + ;; code offset: 0x242a + (local.get $0) + ;; code offset: 0x242c + (local.get $12) + ;; code offset: 0x242e + (i32.const 1) + ) + ;; code offset: 0x2437 + (local.set $12 + ;; code offset: 0x2436 + (i32.add + ;; code offset: 0x2432 + (local.get $12) + ;; code offset: 0x2434 + (i32.const 1) + ) + ) + ;; code offset: 0x2439 + (block $label$66 + ;; code offset: 0x243d + (br_if $label$66 + ;; code offset: 0x243b + (local.get $24) + ) + ;; code offset: 0x2444 + (br_if $label$63 + ;; code offset: 0x2443 + (i32.lt_s + ;; code offset: 0x243f + (local.get $15) + ;; code offset: 0x2441 + (i32.const 1) + ) + ) + ) + ;; code offset: 0x244e + (call $out + ;; code offset: 0x2447 + (local.get $0) + ;; code offset: 0x2449 + (i32.const 1587) + ;; code offset: 0x244c + (i32.const 1) + ) + ) + ;; code offset: 0x2464 + (call $out + ;; code offset: 0x2451 + (local.get $0) + ;; code offset: 0x2453 + (local.get $12) + ;; code offset: 0x2463 + (select + ;; code offset: 0x245a + (local.tee $25 + ;; code offset: 0x2459 + (i32.sub + ;; code offset: 0x2455 + (local.get $3) + ;; code offset: 0x2457 + (local.get $12) + ) + ) + ;; code offset: 0x245c + (local.get $15) + ;; code offset: 0x2462 + (i32.gt_s + ;; code offset: 0x245e + (local.get $15) + ;; code offset: 0x2460 + (local.get $25) + ) + ) + ) + ;; code offset: 0x246b + (local.set $15 + ;; code offset: 0x246a + (i32.sub + ;; code offset: 0x2466 + (local.get $15) + ;; code offset: 0x2468 + (local.get $25) + ) + ) + ;; code offset: 0x2477 + (br_if $label$60 + ;; code offset: 0x2476 + (i32.ge_u + ;; code offset: 0x2472 + (local.tee $18 + ;; code offset: 0x2471 + (i32.add + ;; code offset: 0x246d + (local.get $18) + ;; code offset: 0x246f + (i32.const 4) + ) + ) + ;; code offset: 0x2474 + (local.get $23) + ) + ) + ;; code offset: 0x247e + (br_if $label$61 + ;; code offset: 0x247d + (i32.gt_s + ;; code offset: 0x2479 + (local.get $15) + ;; code offset: 0x247b + (i32.const -1) + ) + ) + ) + ) + ;; code offset: 0x248f + (call $pad + ;; code offset: 0x2482 + (local.get $0) + ;; code offset: 0x2484 + (i32.const 48) + ;; code offset: 0x248a + (i32.add + ;; code offset: 0x2486 + (local.get $15) + ;; code offset: 0x2488 + (i32.const 18) + ) + ;; code offset: 0x248b + (i32.const 18) + ;; code offset: 0x248d + (i32.const 0) + ) + ;; code offset: 0x249a + (call $out + ;; code offset: 0x2491 + (local.get $0) + ;; code offset: 0x2493 + (local.get $21) + ;; code offset: 0x2499 + (i32.sub + ;; code offset: 0x2495 + (local.get $13) + ;; code offset: 0x2497 + (local.get $21) + ) + ) + ;; code offset: 0x249c + (br $label$48) + ) + ;; code offset: 0x24a1 + (local.set $12 + ;; code offset: 0x249f + (local.get $15) + ) + ) + ;; code offset: 0x24b1 + (call $pad + ;; code offset: 0x24a4 + (local.get $0) + ;; code offset: 0x24a6 + (i32.const 48) + ;; code offset: 0x24ac + (i32.add + ;; code offset: 0x24a8 + (local.get $12) + ;; code offset: 0x24aa + (i32.const 9) + ) + ;; code offset: 0x24ad + (i32.const 9) + ;; code offset: 0x24af + (i32.const 0) + ) + ) + ;; code offset: 0x24c3 + (call $pad + ;; code offset: 0x24b4 + (local.get $0) + ;; code offset: 0x24b6 + (i32.const 32) + ;; code offset: 0x24b8 + (local.get $2) + ;; code offset: 0x24ba + (local.get $11) + ;; code offset: 0x24c2 + (i32.xor + ;; code offset: 0x24bc + (local.get $4) + ;; code offset: 0x24be + (i32.const 8192) + ) + ) + ;; code offset: 0x24c5 + (br $label$4) + ) + ;; code offset: 0x24d7 + (local.set $15 + ;; code offset: 0x24d6 + (select + ;; code offset: 0x24cc + (i32.add + ;; code offset: 0x24c8 + (local.get $10) + ;; code offset: 0x24ca + (i32.const 9) + ) + ;; code offset: 0x24cd + (local.get $10) + ;; code offset: 0x24d4 + (local.tee $18 + ;; code offset: 0x24d3 + (i32.and + ;; code offset: 0x24cf + (local.get $5) + ;; code offset: 0x24d1 + (i32.const 32) + ) + ) + ) + ) + ;; code offset: 0x24d9 + (block $label$67 + ;; code offset: 0x24e0 + (br_if $label$67 + ;; code offset: 0x24df + (i32.gt_u + ;; code offset: 0x24db + (local.get $3) + ;; code offset: 0x24dd + (i32.const 11) + ) + ) + ;; code offset: 0x24ea + (br_if $label$67 + ;; code offset: 0x24e9 + (i32.eqz + ;; code offset: 0x24e7 + (local.tee $12 + ;; code offset: 0x24e6 + (i32.sub + ;; code offset: 0x24e2 + (i32.const 12) + ;; code offset: 0x24e4 + (local.get $3) + ) + ) + ) + ) + ;; code offset: 0x24f5 + (local.set $26 + ;; code offset: 0x24ec + (f64.const 8) + ) + ;; code offset: 0x24f7 + (loop $label$68 + ;; code offset: 0x2505 + (local.set $26 + ;; code offset: 0x2504 + (f64.mul + ;; code offset: 0x24f9 + (local.get $26) + ;; code offset: 0x24fb + (f64.const 16) + ) + ) + ;; code offset: 0x250e + (br_if $label$68 + ;; code offset: 0x250c + (local.tee $12 + ;; code offset: 0x250b + (i32.add + ;; code offset: 0x2507 + (local.get $12) + ;; code offset: 0x2509 + (i32.const -1) + ) + ) + ) + ) + ;; code offset: 0x2511 + (block $label$69 + ;; code offset: 0x251b + (br_if $label$69 + ;; code offset: 0x251a + (i32.ne + ;; code offset: 0x2515 + (i32.load8_u + ;; code offset: 0x2513 + (local.get $15) + ) + ;; code offset: 0x2518 + (i32.const 45) + ) + ) + ;; code offset: 0x2527 + (local.set $1 + ;; code offset: 0x2526 + (f64.neg + ;; code offset: 0x2525 + (f64.add + ;; code offset: 0x251d + (local.get $26) + ;; code offset: 0x2524 + (f64.sub + ;; code offset: 0x2521 + (f64.neg + ;; code offset: 0x251f + (local.get $1) + ) + ;; code offset: 0x2522 + (local.get $26) + ) + ) + ) + ) + ;; code offset: 0x2529 + (br $label$67) + ) + ;; code offset: 0x2534 + (local.set $1 + ;; code offset: 0x2533 + (f64.sub + ;; code offset: 0x2530 + (f64.add + ;; code offset: 0x252c + (local.get $1) + ;; code offset: 0x252e + (local.get $26) + ) + ;; code offset: 0x2531 + (local.get $26) + ) + ) + ) + ;; code offset: 0x2537 + (block $label$70 + ;; code offset: 0x2555 + (br_if $label$70 + ;; code offset: 0x2554 + (i32.ne + ;; code offset: 0x2550 + (local.tee $12 + ;; code offset: 0x254e + (call $fmt_u + ;; code offset: 0x254b + (i64.extend_i32_u + ;; code offset: 0x254a + (i32.xor + ;; code offset: 0x2547 + (i32.add + ;; code offset: 0x253e + (local.tee $12 + ;; code offset: 0x253b + (i32.load offset=44 + ;; code offset: 0x2539 + (local.get $6) + ) + ) + ;; code offset: 0x2545 + (local.tee $12 + ;; code offset: 0x2544 + (i32.shr_s + ;; code offset: 0x2540 + (local.get $12) + ;; code offset: 0x2542 + (i32.const 31) + ) + ) + ) + ;; code offset: 0x2548 + (local.get $12) + ) + ) + ;; code offset: 0x254c + (local.get $13) + ) + ) + ;; code offset: 0x2552 + (local.get $13) + ) + ) + ;; code offset: 0x255b + (i32.store8 offset=15 + ;; code offset: 0x2557 + (local.get $6) + ;; code offset: 0x2559 + (i32.const 48) + ) + ;; code offset: 0x2563 + (local.set $12 + ;; code offset: 0x2562 + (i32.add + ;; code offset: 0x255e + (local.get $6) + ;; code offset: 0x2560 + (i32.const 15) + ) + ) + ) + ;; code offset: 0x256b + (local.set $24 + ;; code offset: 0x256a + (i32.or + ;; code offset: 0x2566 + (local.get $9) + ;; code offset: 0x2568 + (i32.const 2) + ) + ) + ;; code offset: 0x2572 + (local.set $19 + ;; code offset: 0x256f + (i32.load offset=44 + ;; code offset: 0x256d + (local.get $6) + ) + ) + ;; code offset: 0x2580 + (i32.store8 + ;; code offset: 0x2579 + (local.tee $23 + ;; code offset: 0x2578 + (i32.add + ;; code offset: 0x2574 + (local.get $12) + ;; code offset: 0x2576 + (i32.const -2) + ) + ) + ;; code offset: 0x257f + (i32.add + ;; code offset: 0x257b + (local.get $5) + ;; code offset: 0x257d + (i32.const 15) + ) + ) + ;; code offset: 0x2592 + (i32.store8 + ;; code offset: 0x2587 + (i32.add + ;; code offset: 0x2583 + (local.get $12) + ;; code offset: 0x2585 + (i32.const -1) + ) + ;; code offset: 0x2591 + (select + ;; code offset: 0x2588 + (i32.const 45) + ;; code offset: 0x258a + (i32.const 43) + ;; code offset: 0x2590 + (i32.lt_s + ;; code offset: 0x258c + (local.get $19) + ;; code offset: 0x258e + (i32.const 0) + ) + ) + ) + ;; code offset: 0x259a + (local.set $25 + ;; code offset: 0x2599 + (i32.and + ;; code offset: 0x2595 + (local.get $4) + ;; code offset: 0x2597 + (i32.const 8) + ) + ) + ;; code offset: 0x25a1 + (local.set $19 + ;; code offset: 0x25a0 + (i32.add + ;; code offset: 0x259c + (local.get $6) + ;; code offset: 0x259e + (i32.const 16) + ) + ) + ;; code offset: 0x25a3 + (loop $label$71 + ;; code offset: 0x25a7 + (local.set $12 + ;; code offset: 0x25a5 + (local.get $19) + ) + ;; code offset: 0x25a9 + (block $label$72 + (block $label$73 + ;; code offset: 0x25bb + (br_if $label$73 + ;; code offset: 0x25ba + (i32.eqz + ;; code offset: 0x25b9 + (f64.lt + ;; code offset: 0x25af + (f64.abs + ;; code offset: 0x25ad + (local.get $1) + ) + ;; code offset: 0x25b0 + (f64.const 2147483648) + ) + ) + ) + ;; code offset: 0x25c0 + (local.set $19 + ;; code offset: 0x25bf + (i32.trunc_f64_s + ;; code offset: 0x25bd + (local.get $1) + ) + ) + ;; code offset: 0x25c2 + (br $label$72) + ) + ;; code offset: 0x25cb + (local.set $19 + ;; code offset: 0x25c5 + (i32.const -2147483648) + ) + ) + ;; code offset: 0x25dc + (i32.store8 + ;; code offset: 0x25ce + (local.get $12) + ;; code offset: 0x25db + (i32.or + ;; code offset: 0x25d6 + (i32.load8_u + ;; code offset: 0x25d5 + (i32.add + ;; code offset: 0x25d0 + (local.get $19) + ;; code offset: 0x25d2 + (i32.const 1536) + ) + ) + ;; code offset: 0x25d9 + (local.get $18) + ) + ) + ;; code offset: 0x25ef + (local.set $1 + ;; code offset: 0x25ee + (f64.mul + ;; code offset: 0x25e4 + (f64.sub + ;; code offset: 0x25df + (local.get $1) + ;; code offset: 0x25e3 + (f64.convert_i32_s + ;; code offset: 0x25e1 + (local.get $19) + ) + ) + ;; code offset: 0x25e5 + (f64.const 16) + ) + ) + ;; code offset: 0x25f1 + (block $label$74 + ;; code offset: 0x2603 + (br_if $label$74 + ;; code offset: 0x2602 + (i32.ne + ;; code offset: 0x25ff + (i32.sub + ;; code offset: 0x25f8 + (local.tee $19 + ;; code offset: 0x25f7 + (i32.add + ;; code offset: 0x25f3 + (local.get $12) + ;; code offset: 0x25f5 + (i32.const 1) + ) + ) + ;; code offset: 0x25fe + (i32.add + ;; code offset: 0x25fa + (local.get $6) + ;; code offset: 0x25fc + (i32.const 16) + ) + ) + ;; code offset: 0x2600 + (i32.const 1) + ) + ) + ;; code offset: 0x2605 + (block $label$75 + ;; code offset: 0x2609 + (br_if $label$75 + ;; code offset: 0x2607 + (local.get $25) + ) + ;; code offset: 0x2610 + (br_if $label$75 + ;; code offset: 0x260f + (i32.gt_s + ;; code offset: 0x260b + (local.get $3) + ;; code offset: 0x260d + (i32.const 0) + ) + ) + ;; code offset: 0x261e + (br_if $label$74 + ;; code offset: 0x261d + (f64.eq + ;; code offset: 0x2612 + (local.get $1) + ;; code offset: 0x2614 + (f64.const 0) + ) + ) + ) + ;; code offset: 0x2625 + (i32.store8 offset=1 + ;; code offset: 0x2621 + (local.get $12) + ;; code offset: 0x2623 + (i32.const 46) + ) + ;; code offset: 0x262d + (local.set $19 + ;; code offset: 0x262c + (i32.add + ;; code offset: 0x2628 + (local.get $12) + ;; code offset: 0x262a + (i32.const 2) + ) + ) + ) + ;; code offset: 0x263c + (br_if $label$71 + ;; code offset: 0x263b + (f64.ne + ;; code offset: 0x2630 + (local.get $1) + ;; code offset: 0x2632 + (f64.const 0) + ) + ) + ) + ;; code offset: 0x263f + (block $label$76 + (block $label$77 + ;; code offset: 0x2646 + (br_if $label$77 + ;; code offset: 0x2645 + (i32.eqz + ;; code offset: 0x2643 + (local.get $3) + ) + ) + ;; code offset: 0x2656 + (br_if $label$77 + ;; code offset: 0x2655 + (i32.ge_s + ;; code offset: 0x2652 + (i32.add + ;; code offset: 0x264f + (i32.sub + ;; code offset: 0x2648 + (local.get $19) + ;; code offset: 0x264e + (i32.add + ;; code offset: 0x264a + (local.get $6) + ;; code offset: 0x264c + (i32.const 16) + ) + ) + ;; code offset: 0x2650 + (i32.const -2) + ) + ;; code offset: 0x2653 + (local.get $3) + ) + ) + ;; code offset: 0x2663 + (local.set $12 + ;; code offset: 0x2662 + (i32.add + ;; code offset: 0x265f + (i32.sub + ;; code offset: 0x265c + (i32.add + ;; code offset: 0x2658 + (local.get $3) + ;; code offset: 0x265a + (local.get $13) + ) + ;; code offset: 0x265d + (local.get $23) + ) + ;; code offset: 0x2660 + (i32.const 2) + ) + ) + ;; code offset: 0x2665 + (br $label$76) + ) + ;; code offset: 0x2676 + (local.set $12 + ;; code offset: 0x2675 + (i32.add + ;; code offset: 0x2672 + (i32.sub + ;; code offset: 0x266f + (i32.sub + ;; code offset: 0x2668 + (local.get $13) + ;; code offset: 0x266e + (i32.add + ;; code offset: 0x266a + (local.get $6) + ;; code offset: 0x266c + (i32.const 16) + ) + ) + ;; code offset: 0x2670 + (local.get $23) + ) + ;; code offset: 0x2673 + (local.get $19) + ) + ) + ) + ;; code offset: 0x2688 + (call $pad + ;; code offset: 0x2679 + (local.get $0) + ;; code offset: 0x267b + (i32.const 32) + ;; code offset: 0x267d + (local.get $2) + ;; code offset: 0x2684 + (local.tee $11 + ;; code offset: 0x2683 + (i32.add + ;; code offset: 0x267f + (local.get $12) + ;; code offset: 0x2681 + (local.get $24) + ) + ) + ;; code offset: 0x2686 + (local.get $4) + ) + ;; code offset: 0x2690 + (call $out + ;; code offset: 0x268a + (local.get $0) + ;; code offset: 0x268c + (local.get $15) + ;; code offset: 0x268e + (local.get $24) + ) + ;; code offset: 0x26a1 + (call $pad + ;; code offset: 0x2692 + (local.get $0) + ;; code offset: 0x2694 + (i32.const 48) + ;; code offset: 0x2696 + (local.get $2) + ;; code offset: 0x2698 + (local.get $11) + ;; code offset: 0x26a0 + (i32.xor + ;; code offset: 0x269a + (local.get $4) + ;; code offset: 0x269c + (i32.const 65536) + ) + ) + ;; code offset: 0x26b4 + (call $out + ;; code offset: 0x26a3 + (local.get $0) + ;; code offset: 0x26a9 + (i32.add + ;; code offset: 0x26a5 + (local.get $6) + ;; code offset: 0x26a7 + (i32.const 16) + ) + ;; code offset: 0x26b2 + (local.tee $19 + ;; code offset: 0x26b1 + (i32.sub + ;; code offset: 0x26aa + (local.get $19) + ;; code offset: 0x26b0 + (i32.add + ;; code offset: 0x26ac + (local.get $6) + ;; code offset: 0x26ae + (i32.const 16) + ) + ) + ) + ) + ;; code offset: 0x26cb + (call $pad + ;; code offset: 0x26b6 + (local.get $0) + ;; code offset: 0x26b8 + (i32.const 48) + ;; code offset: 0x26c6 + (i32.sub + ;; code offset: 0x26ba + (local.get $12) + ;; code offset: 0x26c5 + (i32.add + ;; code offset: 0x26bc + (local.get $19) + ;; code offset: 0x26c3 + (local.tee $18 + ;; code offset: 0x26c2 + (i32.sub + ;; code offset: 0x26be + (local.get $13) + ;; code offset: 0x26c0 + (local.get $23) + ) + ) + ) + ) + ;; code offset: 0x26c7 + (i32.const 0) + ;; code offset: 0x26c9 + (i32.const 0) + ) + ;; code offset: 0x26d3 + (call $out + ;; code offset: 0x26cd + (local.get $0) + ;; code offset: 0x26cf + (local.get $23) + ;; code offset: 0x26d1 + (local.get $18) + ) + ;; code offset: 0x26e4 + (call $pad + ;; code offset: 0x26d5 + (local.get $0) + ;; code offset: 0x26d7 + (i32.const 32) + ;; code offset: 0x26d9 + (local.get $2) + ;; code offset: 0x26db + (local.get $11) + ;; code offset: 0x26e3 + (i32.xor + ;; code offset: 0x26dd + (local.get $4) + ;; code offset: 0x26df + (i32.const 8192) + ) + ) + ) + ;; code offset: 0x26ed + (global.set $__stack_pointer + ;; code offset: 0x26ec + (i32.add + ;; code offset: 0x26e7 + (local.get $6) + ;; code offset: 0x26e9 + (i32.const 560) + ) + ) + ;; code offset: 0x26f8 + (select + ;; code offset: 0x26ef + (local.get $2) + ;; code offset: 0x26f1 + (local.get $11) + ;; code offset: 0x26f7 + (i32.lt_s + ;; code offset: 0x26f3 + (local.get $11) + ;; code offset: 0x26f5 + (local.get $2) + ) + ) + ) + (func $pop_arg_long_double (param $0 i32) (param $1 i32) + (local $2 i32) + ;; code offset: 0x2710 + (i32.store + ;; code offset: 0x26fe + (local.get $1) + ;; code offset: 0x270f + (i32.add + ;; code offset: 0x270b + (local.tee $2 + ;; code offset: 0x270a + (i32.and + ;; code offset: 0x2707 + (i32.add + ;; code offset: 0x2702 + (i32.load + ;; code offset: 0x2700 + (local.get $1) + ) + ;; code offset: 0x2705 + (i32.const 15) + ) + ;; code offset: 0x2708 + (i32.const -16) + ) + ) + ;; code offset: 0x270d + (i32.const 16) + ) + ) + ;; code offset: 0x2721 + (f64.store + ;; code offset: 0x2713 + (local.get $0) + ;; code offset: 0x271f + (call $__trunctfdf2 + ;; code offset: 0x2717 + (i64.load + ;; code offset: 0x2715 + (local.get $2) + ) + ;; code offset: 0x271c + (i64.load offset=8 + ;; code offset: 0x271a + (local.get $2) + ) + ) + ) + ) + (func $__DOUBLE_BITS (param $0 f64) (result i64) + ;; code offset: 0x2729 + (i64.reinterpret_f64 + ;; code offset: 0x2727 + (local.get $0) + ) + ) + (func $printf (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + ;; code offset: 0x2736 + (global.set $__stack_pointer + ;; code offset: 0x2734 + (local.tee $2 + ;; code offset: 0x2733 + (i32.sub + ;; code offset: 0x272f + (global.get $__stack_pointer) + ;; code offset: 0x2731 + (i32.const 16) + ) + ) + ) + ;; code offset: 0x273c + (i32.store offset=12 + ;; code offset: 0x2738 + (local.get $2) + ;; code offset: 0x273a + (local.get $1) + ) + ;; code offset: 0x274b + (local.set $1 + ;; code offset: 0x2749 + (call $vfprintf + ;; code offset: 0x2741 + (i32.load offset=1036 + ;; code offset: 0x273f + (i32.const 0) + ) + ;; code offset: 0x2745 + (local.get $0) + ;; code offset: 0x2747 + (local.get $1) + ) + ) + ;; code offset: 0x2752 + (global.set $__stack_pointer + ;; code offset: 0x2751 + (i32.add + ;; code offset: 0x274d + (local.get $2) + ;; code offset: 0x274f + (i32.const 16) + ) + ) + ;; code offset: 0x2754 + (local.get $1) + ) + (func $__lockfile (param $0 i32) (result i32) + ;; code offset: 0x2759 + (i32.const 1) + ) + (func $__unlockfile (param $0 i32) + ) + (func $emscripten_stack_init + ;; code offset: 0x2766 + (global.set $__stack_base + ;; code offset: 0x2761 + (i32.const 5245984) + ) + ;; code offset: 0x2771 + (global.set $__stack_end + ;; code offset: 0x2770 + (i32.and + ;; code offset: 0x276d + (i32.add + ;; code offset: 0x2768 + (i32.const 3092) + ;; code offset: 0x276b + (i32.const 15) + ) + ;; code offset: 0x276e + (i32.const -16) + ) + ) + ) + (func $emscripten_stack_get_free (result i32) + ;; code offset: 0x277a + (i32.sub + ;; code offset: 0x2776 + (global.get $__stack_pointer) + ;; code offset: 0x2778 + (global.get $__stack_end) + ) + ) + (func $emscripten_stack_get_end (result i32) + ;; code offset: 0x277e + (global.get $__stack_end) + ) + (func $stackSave (result i32) + ;; code offset: 0x2783 + (global.get $__stack_pointer) + ) + (func $stackRestore (param $0 i32) + ;; code offset: 0x278a + (global.set $__stack_pointer + ;; code offset: 0x2788 + (local.get $0) + ) + ) + (func $stackAlloc (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + ;; code offset: 0x279d + (global.set $__stack_pointer + ;; code offset: 0x279b + (local.tee $1 + ;; code offset: 0x279a + (i32.and + ;; code offset: 0x2797 + (i32.sub + ;; code offset: 0x2793 + (global.get $__stack_pointer) + ;; code offset: 0x2795 + (local.get $0) + ) + ;; code offset: 0x2798 + (i32.const -16) + ) + ) + ) + ;; code offset: 0x279f + (local.get $1) + ) + (func $fflush (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + ;; code offset: 0x27a9 + (block $label$1 + (block $label$2 + ;; code offset: 0x27b0 + (br_if $label$2 + ;; code offset: 0x27af + (i32.eqz + ;; code offset: 0x27ad + (local.get $0) + ) + ) + ;; code offset: 0x27b2 + (block $label$3 + ;; code offset: 0x27bc + (br_if $label$3 + ;; code offset: 0x27bb + (i32.gt_s + ;; code offset: 0x27b6 + (i32.load offset=76 + ;; code offset: 0x27b4 + (local.get $0) + ) + ;; code offset: 0x27b9 + (i32.const -1) + ) + ) + ;; code offset: 0x27c2 + (return + ;; code offset: 0x27c0 + (call $__fflush_unlocked + ;; code offset: 0x27be + (local.get $0) + ) + ) + ) + ;; code offset: 0x27c8 + (local.set $1 + ;; code offset: 0x27c6 + (call $__lockfile + ;; code offset: 0x27c4 + (local.get $0) + ) + ) + ;; code offset: 0x27ce + (local.set $2 + ;; code offset: 0x27cc + (call $__fflush_unlocked + ;; code offset: 0x27ca + (local.get $0) + ) + ) + ;; code offset: 0x27d3 + (br_if $label$1 + ;; code offset: 0x27d2 + (i32.eqz + ;; code offset: 0x27d0 + (local.get $1) + ) + ) + ;; code offset: 0x27d7 + (call $__unlockfile + ;; code offset: 0x27d5 + (local.get $0) + ) + ;; code offset: 0x27db + (return + ;; code offset: 0x27d9 + (local.get $2) + ) + ) + ;; code offset: 0x27df + (local.set $2 + ;; code offset: 0x27dd + (i32.const 0) + ) + ;; code offset: 0x27e1 + (block $label$4 + ;; code offset: 0x27ea + (br_if $label$4 + ;; code offset: 0x27e9 + (i32.eqz + ;; code offset: 0x27e5 + (i32.load offset=1736 + ;; code offset: 0x27e3 + (i32.const 0) + ) + ) + ) + ;; code offset: 0x27f4 + (local.set $2 + ;; code offset: 0x27f2 + (call $fflush + ;; code offset: 0x27ee + (i32.load offset=1736 + ;; code offset: 0x27ec + (i32.const 0) + ) + ) + ) + ) + ;; code offset: 0x27f7 + (block $label$5 + ;; code offset: 0x2801 + (br_if $label$5 + ;; code offset: 0x2800 + (i32.eqz + ;; code offset: 0x27fe + (local.tee $0 + ;; code offset: 0x27fb + (i32.load + ;; code offset: 0x27f9 + (call $__ofl_lock) + ) + ) + ) + ) + ;; code offset: 0x2803 + (loop $label$6 + ;; code offset: 0x2807 + (local.set $1 + ;; code offset: 0x2805 + (i32.const 0) + ) + ;; code offset: 0x2809 + (block $label$7 + ;; code offset: 0x2813 + (br_if $label$7 + ;; code offset: 0x2812 + (i32.lt_s + ;; code offset: 0x280d + (i32.load offset=76 + ;; code offset: 0x280b + (local.get $0) + ) + ;; code offset: 0x2810 + (i32.const 0) + ) + ) + ;; code offset: 0x2819 + (local.set $1 + ;; code offset: 0x2817 + (call $__lockfile + ;; code offset: 0x2815 + (local.get $0) + ) + ) + ) + ;; code offset: 0x281c + (block $label$8 + ;; code offset: 0x2829 + (br_if $label$8 + ;; code offset: 0x2828 + (i32.le_u + ;; code offset: 0x2820 + (i32.load offset=20 + ;; code offset: 0x281e + (local.get $0) + ) + ;; code offset: 0x2825 + (i32.load offset=28 + ;; code offset: 0x2823 + (local.get $0) + ) + ) + ) + ;; code offset: 0x2832 + (local.set $2 + ;; code offset: 0x2831 + (i32.or + ;; code offset: 0x282d + (call $__fflush_unlocked + ;; code offset: 0x282b + (local.get $0) + ) + ;; code offset: 0x282f + (local.get $2) + ) + ) + ) + ;; code offset: 0x2835 + (block $label$9 + ;; code offset: 0x283a + (br_if $label$9 + ;; code offset: 0x2839 + (i32.eqz + ;; code offset: 0x2837 + (local.get $1) + ) + ) + ;; code offset: 0x283e + (call $__unlockfile + ;; code offset: 0x283c + (local.get $0) + ) + ) + ;; code offset: 0x2848 + (br_if $label$6 + ;; code offset: 0x2846 + (local.tee $0 + ;; code offset: 0x2843 + (i32.load offset=56 + ;; code offset: 0x2841 + (local.get $0) + ) + ) + ) + ) + ) + ;; code offset: 0x284c + (call $__ofl_unlock) + ) + ;; code offset: 0x284f + (local.get $2) + ) + (func $__fflush_unlocked (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + ;; code offset: 0x2858 + (block $label$1 + ;; code offset: 0x2865 + (br_if $label$1 + ;; code offset: 0x2864 + (i32.le_u + ;; code offset: 0x285c + (i32.load offset=20 + ;; code offset: 0x285a + (local.get $0) + ) + ;; code offset: 0x2861 + (i32.load offset=28 + ;; code offset: 0x285f + (local.get $0) + ) + ) + ) + ;; code offset: 0x2875 + (drop + ;; code offset: 0x2872 + (call_indirect (type $i32_i32_i32_=>_i32) + ;; code offset: 0x2867 + (local.get $0) + ;; code offset: 0x2869 + (i32.const 0) + ;; code offset: 0x286b + (i32.const 0) + ;; code offset: 0x286f + (i32.load offset=36 + ;; code offset: 0x286d + (local.get $0) + ) + ) + ) + ;; code offset: 0x287b + (br_if $label$1 + ;; code offset: 0x2878 + (i32.load offset=20 + ;; code offset: 0x2876 + (local.get $0) + ) + ) + ;; code offset: 0x287f + (return + ;; code offset: 0x287d + (i32.const -1) + ) + ) + ;; code offset: 0x2881 + (block $label$2 + ;; code offset: 0x2892 + (br_if $label$2 + ;; code offset: 0x2891 + (i32.ge_u + ;; code offset: 0x2888 + (local.tee $1 + ;; code offset: 0x2885 + (i32.load offset=4 + ;; code offset: 0x2883 + (local.get $0) + ) + ) + ;; code offset: 0x288f + (local.tee $2 + ;; code offset: 0x288c + (i32.load offset=8 + ;; code offset: 0x288a + (local.get $0) + ) + ) + ) + ) + ;; code offset: 0x28a6 + (drop + ;; code offset: 0x28a3 + (call_indirect (type $i32_i64_i32_=>_i64) + ;; code offset: 0x2894 + (local.get $0) + ;; code offset: 0x289b + (i64.extend_i32_s + ;; code offset: 0x289a + (i32.sub + ;; code offset: 0x2896 + (local.get $1) + ;; code offset: 0x2898 + (local.get $2) + ) + ) + ;; code offset: 0x289c + (i32.const 1) + ;; code offset: 0x28a0 + (i32.load offset=40 + ;; code offset: 0x289e + (local.get $0) + ) + ) + ) + ) + ;; code offset: 0x28ac + (i32.store offset=28 + ;; code offset: 0x28a8 + (local.get $0) + ;; code offset: 0x28aa + (i32.const 0) + ) + ;; code offset: 0x28b3 + (i64.store offset=16 + ;; code offset: 0x28af + (local.get $0) + ;; code offset: 0x28b1 + (i64.const 0) + ) + ;; code offset: 0x28ba + (i64.store offset=4 align=4 + ;; code offset: 0x28b6 + (local.get $0) + ;; code offset: 0x28b8 + (i64.const 0) + ) + ;; code offset: 0x28bd + (i32.const 0) + ) + ;; custom section ".debug_info", size 132 + ;; custom section ".debug_abbrev", size 78 + ;; custom section ".debug_gnu_pubnames", size 82 + ;; custom section ".debug_gnu_pubtypes", size 91 + ;; custom section ".debug_line", size 353 + ;; custom section ".debug_str", size 31 + ;; custom section ".debug_addr", size 12 + ;; custom section "producers", size 172 +) diff --git a/test/passes/dwarf-debug_addr.passes b/test/passes/dwarf-debug_addr.passes new file mode 100644 index 00000000000..edbfb02ae1a --- /dev/null +++ b/test/passes/dwarf-debug_addr.passes @@ -0,0 +1 @@ +dwarfdump_roundtrip_dwarfdump_g diff --git a/test/passes/dwarf-debug_addr.wasm b/test/passes/dwarf-debug_addr.wasm new file mode 100644 index 0000000000000000000000000000000000000000..75304e61241f078cc3140f7fb84e2708402798d6 GIT binary patch literal 14151 zcmdU0S&SUVd9Ld2IlJfBnY~xGs@s&kvUn^HElEYTwpJ1)k+LM85CR9IJ!Z+BUG6b6 zOHwekGnQzYahyc56~~riTapvVhlt3rlNdfA0s#UAumJ_}Lk>SU54Ioj5FvSp04Lde zUsccSERQ&Gp0echR9Dr1|MmZWRZokV#%U>pke`qPkGZW@OST?Mw$7u$meXnp^lrA~ z=3`#mCj`4OD0vZ_b-pFfV|;THvz^UN+(@(%1mK*MX_zJ{2#X4cH!TsMZ^g64WAeP* zbnbEn&(1U!D~*+zwZ^H{W@W8jJ+oLnyFa}!UpZS}Y*vNmR#(mpR8KeN>Wgd5>PqEw z_4M4@wFSy|Xv znQJbtu2h;cv&&T}`YIJjaJn)#v%FlHYp&KC!tqYeEUt(|u~Mnl>np33<<+?v!iZ#Y zVPScraY`J>G@3JWOYfgKQx*FH(|%vI0qClj$eLTd3@EX`S8&r0P8OSD_ehUIZ2!qB zn5$Q-V$bk($EqvyVsFNmLQ6l9NoU{wj_lul@PH?ZyZvREZN06HKM^{*7`n<)?o#L} zZ2mrxLX=sgec%St)}K(DgXf!cMnbf?04$W+4K3>#~>x zlTR70IUyZOlMXYu%S<{#w=Yo%Sp~+6U**J6p!UHgr4MRhPUT`r{DPkr`jy|s9DhVO zQ%dB776rd}kzkZX=$8L4j!eajYqb=)F)(BucW#QjNvFtGKe&g|C!L${1-6Ir1@V_6 zwEL+as6jhWv8#)a7%G0d}b3jkc zj5}VGJ`p9f+pI+yl^J&g^`V7Ij4eg!8kkp72O1U_>rO~7u^YNvf0YCLYRn=nEdcFrxT&9Kpua1MIz3EIT2YdiP)FM~6!1Emf z810v%-3Kt}>doGMiH;|FI~?Wcl%06Kw;y)X8TNy!5=+`$k33L;`nKe{{^*kz(#w<= z1VG%qltvwo`p7cPh0bQKzS}6c675lam0}CIEc}n0V`Ut0AOofu;p&+RJS$X zK?UKwbv;~bwk0$o$tgT27_@1?HMVywQlhm&u-A_4G6vUAHO(TTi0!v<=nbK>RDpvNzAn( z7#1ySt~=GC(r%xx>8-81uBMHch0)R({l;|>bn$Ov z^g7YdNagER=whi-g=Xa;4-E^Dj02}ZFNz4L(Br41BR6G>qu-C5=|h)Zf;QG+#;pRZ zjc%7$4&Ninpk;ofzjuG7OxTE`*W+UJ#=%wxUAt|%03HLh(;u4_@5B1@Fh@Sc>2^s!(uKJK?mn>N z?!99>80xU%b}jYqTjGMj)FJcc788jZ&wO?3FT{s(NDHQK;?heaBly2x z=u4jk$Hm_xllp14{d}kMGwk#~j9>+M5PXkE(&R-%mE&NX$re3nC7SF?QD}-{BD*)@7gp0*v?2K$XRf`e`Z59Q@WE`-S1j|L! zGIgP81uQ5{t7ys-#*lv2WTtPJm6~bY#8Sny)TEAd)FK#fyYm`#LW(^C^%2mq<=i1q`LN~QAzbjZgOcG0bd26(onGH8$eySJh5ut| zyn-;}PBB6lH`Sg~{2U#FwnH~UG?{0+A0>*CY5%9HtZf zB{M$;ycoO7SR|keR1{tf?CC7IF$fKf4nk-KNmOz!s{#btC2G~w=ROK@bQPbo{tKO; zTS?@NelQ9T#H#fCS6oOJhuzoZQj~~`(gch9A7FEdM3B(W%bFH?y!cxd7q(L47@Txo zlN3mkazei*Yq-8Hcm)86c*QRez{=V(`36#A89u1R{j_rNYaBNT0gfFeIl5aM*Wx%w zQG{34;q9!()jCHl^aNAZFQI9Zn*cj>Tf{yxW;QP>VQYDO^_!3orZ`SN|D`xp%8-UG zz`(fEF$1ClYk$&789eb$fM4-;3AG6CU;y1x?wHN1CTO`T$vpzPnb_4j#%%E~ieIO8 zU`PGBti^Vb{ujzl0b7KQ%>?!^@mPw5_Ji1L9Il0Fd>!GI7JEZ{xI>Z7l<_jOp?qfw ztS~vIl)v;~PQ=yRy9_I#&onNTkDaiuQZQH)5We$I1#rqJ2W1c=|EV17*eD0f$S_Cf zoW2Dm9q+L6xkBwdnAA=!%9GO^17XfA+OVMV5WJvoLA3;$ITgT_f!9=|LIv>TFIsiT z9Cq$tX}6HYPa6NhUJmzR&M+crq8#FY-o*kqr?E7o%3(HY{IIBHn6>ON2&2L)LO`Q9 zsHo3k*bU(d+$7}n%?KE=L>y;ROODKWaB7iC_g(cO88eKp#>Mo^!AZo=gQTI`a z-sD*WU?bcL%OC`E3%%FK#kP!Pq*k1(B*d_5EycmBB{Y3IL@OI@BW=*v87H&3gwdWb z@w80-t|wxda#5%BJ_Bndh0J!*bVUk5g6?Ft^*NX~7v>=smM;84zuKzlqbG8ij?oK* z<_H|QKu1$~eaCW5|1-`s1Y>uULm1a-q&Q=6XeX!3+yG+vphp#LEcDQDuyckJ!S)EA zMILpaHaqN2nRIY3X)?irgrkzh=c#_nX#o=qheet!YZf~fPTGgrwzfX99u25IYe9sU z9K4}lKW)y9iYjBBo+`Z2Kdj1DjcY<89xDlFFRW|#*ch659Hi*4v}*a#8;Jk%1BGNh zpC3r_-buIv1DOFiFyJAO8Cn2`4)dw}fIonF=$86##Ial^D3kGR&QiC!Q{iBcFyidw z4LU}&$)|;MTyHFq95enqrFD;`G{YEg{x%)LKf}ze0YO-Lkb3+URof`wx z@2j#-^K)VhzLC@EI&}D^unw}5UzLG0YQ6Y^iAw<|BSyH2vOL1GEbX1Ks%I#2!v4U$ zR%n$ezPJP4QDqMOz*RBd|HVhlr!W>DC7sF{XtYd?Ffz$6)<;8N-S&PS-9n zT$zz)tno3TKgFhH3EU!t_m43o4uXjrQn}(E5(igGiitMhYKLy#je}LRu!EU&rWl<}JIotsCPbA- z0E`MaqJcOm1VvRSK5f`3U|~i91T2t=C7v$iSxn|}TR;I7$rCvVf_CWzIY@4}0pBq< zz$lGsxYGu^1tWf#?@$eROk`*VG0i{~Y7vkl@G2OT>;yLNb!cOdp`?cv19QWQuSy_} z4~!&(3~R{LZ6HO8fLS^CD0EON_0!OqAU(_Yy8Y&swBYyS9D$Hg1L&ceTHb_BrwlDi|F0lg% z@=ovUW4R#Yq=&BkPrAZMSQY34ve7WF}Ph&{-A<1;q=HbxQ=}1JZxhAw8-4 z;hsBVq`kw?*;+np0wtb1r8C)U(j%AzFNk~CD_@m4F?7g52D<*x?K_8bs;1Aa!?^Y| z9Q6jk>NuV#z-z=y zOmJ<~mL`EKhbNafM({4-2nnY^Tm;hJdtJcPx}J!qyE~>|k~kma@dC-2^N*rAuQEpl zFn)(N2D9zRna*xL@lqER>+~kBl7{ur;tKj78>&PdY1E(eb` zHxqb-8?*Zgo-iftQo}MzVP6Qp-EDL#i(esNls36gOKg3frUmh6Og%xz5*bWR>1S*=bPl+5=kN-Lb)93kHrntD6aO8R!ImS!=GtV< zZaB#zqnaHIW__Iq^&j&Jg{bu?7}H-ieJ`25fVGvJ9n)?XM8OKgxgG4mFcg5tYdP{| zm4J@jHG6&xN0!e=@*WZY&452Vn&cT+06*tG6{PFf$o!+gMh%6?_C21yX+BeNkpjn% zwg?p#4M7#?xmtw7rQJJbbm+XIU*r}dsV8cxmfV=fn4>rJoa#Ucv0x7F z2C#xJ zcEL$q{T6;85zg>{7bi<7IC#wFUJm=GMVQ8U@-@(VzXNAG>Y1 zmuYN1@or2CViY*+@m2bz2>Be<3_Ht)cd!MFB~roj6g$0ySc_>`7S|z)O6-FazQwN65wazSUBiTY3%C(i1}wBjg=lGDGD+ntA;Yjux^4f z4a3Sm6As~w!EfTZQaB9Pc2$`+VYbBFXaqB`gQUhs)bP3*TBaI-DuNwYaa@JjJ~#;M zV+lNWt%WdIERv7Mi4>_1FoR=2Fu>Y?s>NPXI~!^M1qwjnU6dBgaCZs;cxnb9&e54= zY-6)z)3Ar9b0*SYYfE<+0d#gb!r`e^R{;t^)~ABTmYBxx!_Cjdv2|z{Wcy;2NQQI~ zSGQlo3FQbh8x4UsCBh@|<)v`MtV^GI98dudBu4l&FkS;cxvR4nI*m8)GNQ>d(crPMco2Pn z#eQo<4L&dyj@~29lAgLd9-q2f4I^No<^!WCkjS$9*h6BY&xNCie_WD2*cyQVw6Ij8 z&nwA@;FBC|j9vhjtg~26!!EYhr$@v7w2t*|GeVRUm>M8FptnAaMPh^guV6-H)I@W^ zH?Y?V?D`2{!SZ{e5v(9{8XSP8SwTj%#>!yK!%iz4=7Pt$MFXB*&^S)Q21AvOqw6Eb z*CT(7KZw9)R&Oe_@xT~~5n$0UV*S}LpqYV*L}*7JL}2|9xMu*?vTMff0UQP%h#uG; z9yqc_Uf>;AR#*XU*VSlxMAXW<{!7GH0W8DVHjID;IHB41VDEFB3>H+tC~E^BC&9h3 zT5dGY#|%6OALOHE>t3V+whSG}N=pE<38mm6$0e?B-iQJqZCpl4Y&LdLu%xli5b$N@ z18_9KGKU9m+A-@A{mA13D#3ov(R=i5#C`vmojI^Xkx}U)H)XJMiP?rfAX8m8@$m_Q z$zt8Y+h#6j3L3QhGo^8hJ%q)GR;JFwCk7wYcVa9W3Cm!(%n)7bY*39Kl+_3iRRRNr zXnU1dwjZv^4I5^axH^!f?hwOj$VkCX$Q~zL22n)uK0Yr1bAvE41pTJT(cP2CvVC|1 zPrIK4F|U^~Se6n1!;N?`wGr&Ep*)?re=Me5fP=unVipkMTn--(;XBC1a8cxHGF33~ z6E0^WKEAMKVy!`ceO>)w#AaVrqTbw&{gwHJK&*s5v)q6co5laRBIy^gI@ki+z<}ih z-l!8g$5lF`iLk^Gh~UPM=6F|XL??(Br<@_4nPRD$bO*k0WC z7pyZ*fRPORrZcnSpw|{pSAuJ++08Z0iEY#v8gH5HD+h@01WK5_yXW{7Ng2_JrebnE|`3p(M}y%Io$^aGfxezC#bhhpNPRVRw zaCGzMw%`(i0yDYL#8?${YXlE4j6NGO%@dpLa&CsU5Al?${}Ba!XVS)(+-njar@ z@Zr}?u1U@+S5rd>LQnx!n6vcIh0~$!fD@?UopAsgFa8|L%H)sY*HE^X zKNN!?G8R_)e=jj+yo<>gwgit4n)QnFj&BkXAHBy9_++P#KP%z!Q2cC5;pad|jE*x! z5ntmEl7Ot+F8+xT)xp{+{yv*b%bbA<7#iph-SI5ZEHq5)Cqp;!=}pWIw()q-2pIE# zsQYjYvyMap4(S)6D~PWgzhOipf*ve%40iQA^usu~#cvEOCmzoZ@axUUVWk99;b)>R zYtuL0_Y{%i3RG45tlLW+!!{!9`VUnB_=Lv|+f zy9Y8$NZ=O^ATgBTV0XM1$h3o=9@93LjP1tNHhLy?oB3`_z#2k$yoikL#Vb*Z_2eu(Cw3lj~vz0 zci(gGu{{%y-Zt?lJYdhnx!WerDLBI7%7S>{p<`lYW<@-t9};_o(BBUHH=Wo4$PJ8r z{XYlYEiQZ=C)3PcMJ#xxf1=+Rx&X#z%ZO7jrZ-JBybTWS=Mwjpe^JJ@U$Q{u|S&K3PhB zb9x99f0YrjP>!*mT-m6sZOpFBoUS&AjdBW}ZHp0nCJ@bdFYFMzyF&}Bt7d2zS4TYB zJ7nHRFoUaC(P=)ub~T-8OniEAg^IeG&f(sn5I5U&x=@dB&fKY(Pw}&^C6^ahs>d+s ziMQY?rTj%c$1j=`A1NT)-Z|XhFX7Op{fT_m*`si| z5EE3fjfsNDL^hlLZXy68_hrWe{DTJmtsJ|S6Y6Ul0o`DbtQ;;U`hg+aOr*b)7*1{^ z++;JE{wu?ecxN`YV53>zYh;-}yNXakUTn)?Wm61yynAMTzD`NWBgu%LCOn#6em-$X z6wIq7iQJ}_OjzmlKIt*W@T=9wNcFuUvH>UtuFa|X{J$a2C2oy{Nl;QW{w?mr|S89 zrLxvMRjR~psjg+l7=T)nw^dbXH6i`QmO&-Nwo_R6`nQl?UwX`EVaE*>nSx!gEa zN3%buRGM|Zdb2RUa9|*bfz`RC!E~jvvBK6+wo+MLST?=Gn9H^u83B^!s(F=Y)UdMl z_!zntOwYNS%9YBQg|#}|eF34SS*@?kEWgE%JLd2{&RbnbeRC3T*I-zs)>hXlGxd{U zV&QbNaxOAot8X)38@t@KnfY7N9ei(3a?ZlqJIXN-xLY|{ffn)N&^UB`&%+;_e(>JP z^aCGw|E)<&@|}=_@+>SaS8szHRtDbf?lu1Qn?QSR{36ia8@>m$Z~N_|i5)K=?eBT_ z=s^6g(m}YFeQPP^raGV6gGWE~m6^Gv%G#>YoAf&!c+toK>vnW@rcurGIU=>UzB)hC zoRNvW{1SgAGi&JCn5)(sPI`G}<>bc9$*OekK6+FH7@4a!8rAtdvyaQf97iw8{Rj3= z?43~K`)2nw_MP3gSl>4{Gk2=G4?eaJ{QW1b=8nuBnK-!r$i&3$b2F3sXBVpTM`sUBRI5j; SlM@Gz?mv2H|LsR-Z~ZSAWX8Gx literal 0 HcmV?d00001 diff --git a/third_party/llvm-project/DWARFEmitter.cpp b/third_party/llvm-project/DWARFEmitter.cpp index aa0465d9b2b..41b5392bcdd 100644 --- a/third_party/llvm-project/DWARFEmitter.cpp +++ b/third_party/llvm-project/DWARFEmitter.cpp @@ -148,6 +148,17 @@ void DWARFYAML::EmitDebugLoc(raw_ostream &OS, const DWARFYAML::Data &DI) { } } +// XXX BINARYEN +void DWARFYAML::EmitDebugAddr(raw_ostream &OS, const DWARFYAML::Data &DI) { + // This is the legacy DWARF extension .debug_addr format, which is + // only a simple list of addresses. This doesn't support DWARF5. + for (auto AddrTable : DI.DebugAddr) { + for (auto Addr : AddrTable.Addrs) { + writeInteger((uint32_t)Addr, OS, DI.IsLittleEndian); + } + } +} + void DWARFYAML::EmitPubSection(raw_ostream &OS, const DWARFYAML::PubSection &Sect, bool IsLittleEndian) { @@ -485,6 +496,8 @@ EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups) { DebugSections); // XXX BINARYEN EmitDebugSectionImpl(DI, &DWARFYAML::EmitDebugLoc, "debug_loc", DebugSections); // XXX BINARYEN + EmitDebugSectionImpl(DI, &DWARFYAML::EmitDebugAddr, "debug_addr", + DebugSections); // XXX BINARYEN return std::move(DebugSections); } } // namespace DWARFYAML diff --git a/third_party/llvm-project/dwarf2yaml.cpp b/third_party/llvm-project/dwarf2yaml.cpp index 7f160f7e50c..0d40a58e559 100644 --- a/third_party/llvm-project/dwarf2yaml.cpp +++ b/third_party/llvm-project/dwarf2yaml.cpp @@ -8,6 +8,7 @@ #include "Error.h" #include "llvm/DebugInfo/DWARF/DWARFContext.h" +#include "llvm/DebugInfo/DWARF/DWARFDebugAddr.h" #include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" #include "llvm/DebugInfo/DWARF/DWARFFormValue.h" #include "llvm/ObjectYAML/DWARFYAML.h" @@ -89,6 +90,31 @@ void dumpDebugARanges(DWARFContext &DCtx, DWARFYAML::Data &Y) { } } +void dumpDebugAddr(DWARFContext &DCtx, DWARFYAML::Data &Y) { // XXX BINARYEN + DWARFDebugAddrTable AddrTable; + DWARFDataExtractor AddrData(DCtx.getDWARFObj(), + DCtx.getDWARFObj().getAddrSection(), + DCtx.isLittleEndian(), /*AddrSize=*/0); + std::vector AddrTables; + uint64_t Offset = 0; + while (AddrData.isValidOffset(Offset)) { + // We ignore any errors that don't prevent parsing the section, since we can + // still represent such sections. + if (Error E = AddrTable.extract(AddrData, &Offset, DCtx.getMaxVersion(), DCtx.getDWARFObj().getAddressSize(), consumeError)) { + errs() << toString(std::move(E)) << '\n'; + break; + } + AddrTables.emplace_back(); + for (uint64_t Addr : AddrTable.getAddressEntries()) { + // Currently, the parser doesn't support parsing an address table with non + // linear addresses (segment_selector_size != 0). The segment selectors + // are specified to be zero. + AddrTables.back().Addrs.push_back(Addr); + } + } + Y.DebugAddr = std::move(AddrTables); +} + void dumpDebugRanges(DWARFContext &DCtx, DWARFYAML::Data &Y) { // XXX BINARYEN uint8_t savedAddressByteSize = 4; DWARFDataExtractor rangesData(DCtx.getDWARFObj(), DCtx.getDWARFObj().getRangesSection(), @@ -427,6 +453,7 @@ std::error_code dwarf2yaml(DWARFContext &DCtx, DWARFYAML::Data &Y) { dumpDebugARanges(DCtx, Y); dumpDebugRanges(DCtx, Y); // XXX BINARYEN dumpDebugLoc(DCtx, Y); // XXX BINARYEN + dumpDebugAddr(DCtx, Y); // XXX BINARYEN dumpDebugPubSections(DCtx, Y); dumpDebugInfo(DCtx, Y); dumpDebugLines(DCtx, Y); diff --git a/third_party/llvm-project/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h b/third_party/llvm-project/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h index 4539b9c9d58..bf9fd869827 100644 --- a/third_party/llvm-project/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h +++ b/third_party/llvm-project/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h @@ -90,6 +90,9 @@ class DWARFDebugAddrTable { /// Returns the length of the array of addresses. uint32_t getDataSize() const; + + /// Return the parsed addresses of this table. + ArrayRef getAddressEntries() const { return Addrs; } }; } // end namespace llvm diff --git a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFEmitter.h b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFEmitter.h index 2be61867734..d8162a1bedd 100644 --- a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFEmitter.h +++ b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFEmitter.h @@ -34,6 +34,7 @@ void EmitDebugStr(raw_ostream &OS, const Data &DI); void EmitDebugAranges(raw_ostream &OS, const Data &DI); void EmitDebugRanges(raw_ostream &OS, const Data &DI); // XXX BINARYEN void EmitDebugLoc(raw_ostream &OS, const Data &DI); // XXX BINARYEN +void EmitDebugAddr(raw_ostream &OS, const Data &DI); // XXX BINARYEN void EmitPubSection(raw_ostream &OS, const PubSection &Sect, bool IsLittleEndian); void EmitDebugInfo(raw_ostream &OS, const Data &DI); diff --git a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h index 51061012369..48d10184fd3 100644 --- a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h +++ b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h @@ -94,6 +94,10 @@ struct Loc { std::vector Location; uint64_t CompileUnitOffset; }; + +struct AddrTable { + std::vector Addrs; +}; // XXX BINARYEN --> struct PubEntry { @@ -173,6 +177,7 @@ struct Data { std::vector ARanges; std::vector Ranges; // XXX BINARYEN std::vector Locs; // XXX BINARYEN + std::vector DebugAddr; // XXX BINARYEN PubSection PubNames; PubSection PubTypes; @@ -195,6 +200,7 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::ARangeDescriptor) LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::ARange) LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::Range) // XXX BINARYEN LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::Loc) // XXX BINARYEN +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::AddrTable) // XXX BINARYEN LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::PubEntry) LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::Unit) LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::FormValue) @@ -234,6 +240,10 @@ template <> struct MappingTraits { // XXX BINARYEN static void mapping(IO &IO, DWARFYAML::Loc &Loc); }; +template <> struct MappingTraits { // XXX BINARYEN + static void mapping(IO &IO, DWARFYAML::AddrTable &AddrTable); +}; + template <> struct MappingTraits { static void mapping(IO &IO, DWARFYAML::PubEntry &Entry); };