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 00000000000..75304e61241 Binary files /dev/null and b/test/passes/dwarf-debug_addr.wasm differ 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); };