DWARF debug info
================

Contains section .debug_info (79 bytes)
Contains section .debug_abbrev (64 bytes)
Contains section .debug_line (53 bytes)
Contains section .debug_str (206 bytes)

.debug_abbrev contents:
Abbrev table for offset: 0x00000000
[1] DW_TAG_base_type	DW_CHILDREN_no
	DW_AT_name	DW_FORM_strp
	DW_AT_encoding	DW_FORM_data1
	DW_AT_byte_size	DW_FORM_data1

[2] DW_TAG_GNU_call_site	DW_CHILDREN_no
	DW_AT_low_pc	DW_FORM_addr

[3] DW_TAG_subprogram	DW_CHILDREN_yes
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4
	DW_AT_frame_base	DW_FORM_exprloc
	DW_AT_GNU_all_call_sites	DW_FORM_flag_present
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present

[4] DW_TAG_compile_unit	DW_CHILDREN_yes
	DW_AT_producer	DW_FORM_strp
	DW_AT_language	DW_FORM_data2
	DW_AT_name	DW_FORM_strp
	DW_AT_stmt_list	DW_FORM_sec_offset
	DW_AT_comp_dir	DW_FORM_strp
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4


.debug_info contents:
0x00000000: Compile Unit: length = 0x0000004b version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000004f)

0x0000000b: DW_TAG_compile_unit [4] *
              DW_AT_producer [DW_FORM_strp]	( .debug_str[0x00000000] = "clang version 12.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 576bd52f778405de08f309678e4fe4f7523bf7c4)")
              DW_AT_language [DW_FORM_data2]	(DW_LANG_C99)
              DW_AT_name [DW_FORM_strp]	( .debug_str[0x00000095] = "tests/hello_world.c")
              DW_AT_stmt_list [DW_FORM_sec_offset]	(0x00000000)
              DW_AT_comp_dir [DW_FORM_strp]	( .debug_str[0x000000a9] = "/home/azakai/Dev/emscripten")
              DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
              DW_AT_high_pc [DW_FORM_data4]	(0x00000000)

0x00000026:   DW_TAG_subprogram [3] *
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
                DW_AT_high_pc [DW_FORM_data4]	(0x00000000)
                DW_AT_frame_base [DW_FORM_exprloc]	(DW_OP_WASM_location 0x3 +0, <decoding error> 00 00 9f)
                DW_AT_GNU_all_call_sites [DW_FORM_flag_present]	(true)
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000c5] = "main")
                DW_AT_decl_file [DW_FORM_data1]	("/home/azakai/Dev/emscripten/tests/hello_world.c")
                DW_AT_decl_line [DW_FORM_data1]	(10)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0047 => {0x00000047} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x00000041:     DW_TAG_GNU_call_site [2]  
                  DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)

0x00000046:     NULL

0x00000047:   DW_TAG_base_type [1]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000ca] = "int")
                DW_AT_encoding [DW_FORM_data1]	(DW_ATE_signed)
                DW_AT_byte_size [DW_FORM_data1]	(0x04)

0x0000004e:   NULL

.debug_line contents:
debug_line[0x00000000]
Line table prologue:
    total_length: 0x00000031
         version: 4
 prologue_length: 0x0000002b
 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
include_directories[  1] = "tests"
file_names[  1]:
           name: "hello_world.c"
      dir_index: 1
       mod_time: 0x00000000
         length: 0x00000000

.debug_str contents:
0x00000000: "clang version 12.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 576bd52f778405de08f309678e4fe4f7523bf7c4)"
0x00000095: "tests/hello_world.c"
0x000000a9: "/home/azakai/Dev/emscripten"
0x000000c5: "main"
0x000000ca: "int"
(module
 (type $0 (func (param i32) (result i32)))
 (type $1 (func (param i32 i32 i32) (result i32)))
 (type $2 (func (param i32)))
 (type $3 (func (result i32)))
 (type $4 (func (param i32 i32) (result i32)))
 (type $5 (func (param i32 i32 i32 i32) (result i32)))
 (type $6 (func (param i32 i64 i32) (result i64)))
 (type $7 (func))
 (type $8 (func (param i32 i32 i64 i32) (result i64)))
 (type $9 (func (param i32 i32 i32 i32 i32) (result i32)))
 (import "env" "memory" (memory $mimport$0 256 256))
 (import "env" "__indirect_function_table" (table $timport$0 4 funcref))
 (import "wasi_snapshot_preview1" "fd_write" (func $fimport$0 (param i32 i32 i32 i32) (result i32)))
 (import "env" "emscripten_memcpy_big" (func $fimport$1 (param i32 i32 i32) (result i32)))
 (import "env" "setTempRet0" (func $fimport$2 (param i32)))
 (global $global$0 (mut i32) (i32.const 5245136))
 (global $global$1 i32 (i32.const 2248))
 (data $0 (i32.const 1024) "hello, world!\00\00\00\18\04")
 (data $1 (i32.const 1048) "\05")
 (data $2 (i32.const 1060) "\01")
 (data $3 (i32.const 1084) "\02\00\00\00\03\00\00\00\c8\04\00\00\00\04")
 (data $4 (i32.const 1108) "\01")
 (data $5 (i32.const 1123) "\n\ff\ff\ff\ff")
 (elem $0 (i32.const 1) $6 $5 $7)
 (export "__wasm_call_ctors" (func $0))
 (export "main" (func $2))
 (export "__errno_location" (func $3))
 (export "stackSave" (func $18))
 (export "stackRestore" (func $19))
 (export "stackAlloc" (func $20))
 (export "__data_end" (global $global$1))
 (export "dynCall_jiji" (func $22))
 (export "__growWasmMemory" (func $23))
 (func $0
  ;; code offset: 0x3
  (nop)
 )
 (func $1 (result i32)
  ;; code offset: 0xc
  (drop
   ;; code offset: 0xa
   (call $14
    ;; code offset: 0x7
    (i32.const 1024)
   )
  )
  ;; code offset: 0xd
  (i32.const 0)
 )
 (func $2 (param $0 i32) (param $1 i32) (result i32)
  ;; code offset: 0x12
  (call $1)
 )
 (func $3 (result i32)
  ;; code offset: 0x17
  (i32.const 1200)
 )
 (func $4 (param $0 i32) (result i32)
  ;; code offset: 0x20
  (if
   ;; code offset: 0x1f
   (i32.eqz
    ;; code offset: 0x1d
    (local.get $0)
   )
   (then
    ;; code offset: 0x24
    (return
     ;; code offset: 0x22
     (i32.const 0)
    )
   )
  )
  ;; code offset: 0x2a
  (i32.store
   ;; code offset: 0x26
   (call $3)
   ;; code offset: 0x28
   (local.get $0)
  )
  ;; code offset: 0x2d
  (i32.const -1)
 )
 (func $5 (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: 0x48
  (global.set $global$0
   ;; code offset: 0x46
   (local.tee $3
    ;; code offset: 0x45
    (i32.sub
     ;; code offset: 0x41
     (global.get $global$0)
     ;; code offset: 0x43
     (i32.const 32)
    )
   )
  )
  ;; code offset: 0x53
  (i32.store offset=16
   ;; code offset: 0x4a
   (local.get $3)
   ;; code offset: 0x51
   (local.tee $4
    ;; code offset: 0x4e
    (i32.load offset=28
     ;; code offset: 0x4c
     (local.get $0)
    )
   )
  )
  ;; code offset: 0x5b
  (local.set $5
   ;; code offset: 0x58
   (i32.load offset=20
    ;; code offset: 0x56
    (local.get $0)
   )
  )
  ;; code offset: 0x61
  (i32.store offset=28
   ;; code offset: 0x5d
   (local.get $3)
   ;; code offset: 0x5f
   (local.get $2)
  )
  ;; code offset: 0x68
  (i32.store offset=24
   ;; code offset: 0x64
   (local.get $3)
   ;; code offset: 0x66
   (local.get $1)
  )
  ;; code offset: 0x74
  (i32.store offset=20
   ;; code offset: 0x6b
   (local.get $3)
   ;; code offset: 0x72
   (local.tee $1
    ;; code offset: 0x71
    (i32.sub
     ;; code offset: 0x6d
     (local.get $5)
     ;; code offset: 0x6f
     (local.get $4)
    )
   )
  )
  ;; code offset: 0x7c
  (local.set $6
   ;; code offset: 0x7b
   (i32.add
    ;; code offset: 0x77
    (local.get $1)
    ;; code offset: 0x79
    (local.get $2)
   )
  )
  ;; code offset: 0x80
  (local.set $7
   ;; code offset: 0x7e
   (i32.const 2)
  )
  ;; code offset: 0x87
  (local.set $1
   ;; code offset: 0x86
   (i32.add
    ;; code offset: 0x82
    (local.get $3)
    ;; code offset: 0x84
    (i32.const 16)
   )
  )
  ;; code offset: 0x18d
  (local.set $4
   ;; code offset: 0x89
   (block $block2 (result i32)
    ;; code offset: 0x8b
    (block $block1
     ;; code offset: 0x8d
     (block $block
      ;; code offset: 0xa5
      (if
       ;; code offset: 0xa4
       (i32.eqz
        ;; code offset: 0xa2
        (call $4
         ;; code offset: 0xa0
         (call $fimport$0
          ;; code offset: 0x91
          (i32.load offset=60
           ;; code offset: 0x8f
           (local.get $0)
          )
          ;; code offset: 0x98
          (i32.add
           ;; code offset: 0x94
           (local.get $3)
           ;; code offset: 0x96
           (i32.const 16)
          )
          ;; code offset: 0x99
          (i32.const 2)
          ;; code offset: 0x9f
          (i32.add
           ;; code offset: 0x9b
           (local.get $3)
           ;; code offset: 0x9d
           (i32.const 12)
          )
         )
        )
       )
       (then
        ;; code offset: 0xa7
        (loop $label
         ;; code offset: 0xb3
         (br_if $block
          ;; code offset: 0xb2
          (i32.eq
           ;; code offset: 0xa9
           (local.get $6)
           ;; code offset: 0xb0
           (local.tee $4
            ;; code offset: 0xad
            (i32.load offset=12
             ;; code offset: 0xab
             (local.get $3)
            )
           )
          )
         )
         ;; code offset: 0xba
         (br_if $block1
          ;; code offset: 0xb9
          (i32.le_s
           ;; code offset: 0xb5
           (local.get $4)
           ;; code offset: 0xb7
           (i32.const -1)
          )
         )
         ;; code offset: 0xe2
         (i32.store
          ;; code offset: 0xce
          (local.tee $9
           ;; code offset: 0xcd
           (i32.add
            ;; code offset: 0xbc
            (local.get $1)
            ;; code offset: 0xcc
            (i32.shl
             ;; code offset: 0xc8
             (local.tee $5
              ;; code offset: 0xc7
              (i32.gt_u
               ;; code offset: 0xbe
               (local.get $4)
               ;; code offset: 0xc5
               (local.tee $8
                ;; code offset: 0xc2
                (i32.load offset=4
                 ;; code offset: 0xc0
                 (local.get $1)
                )
               )
              )
             )
             ;; code offset: 0xca
             (i32.const 3)
            )
           )
          )
          ;; code offset: 0xe1
          (i32.add
           ;; code offset: 0xda
           (local.tee $8
            ;; code offset: 0xd9
            (i32.sub
             ;; code offset: 0xd0
             (local.get $4)
             ;; code offset: 0xd8
             (select
              ;; code offset: 0xd2
              (local.get $8)
              ;; code offset: 0xd4
              (i32.const 0)
              ;; code offset: 0xd6
              (local.get $5)
             )
            )
           )
           ;; code offset: 0xde
           (i32.load
            ;; code offset: 0xdc
            (local.get $9)
           )
          )
         )
         ;; code offset: 0xf9
         (i32.store
          ;; code offset: 0xef
          (local.tee $9
           ;; code offset: 0xee
           (i32.add
            ;; code offset: 0xe5
            (local.get $1)
            ;; code offset: 0xed
            (select
             ;; code offset: 0xe7
             (i32.const 12)
             ;; code offset: 0xe9
             (i32.const 4)
             ;; code offset: 0xeb
             (local.get $5)
            )
           )
          )
          ;; code offset: 0xf8
          (i32.sub
           ;; code offset: 0xf3
           (i32.load
            ;; code offset: 0xf1
            (local.get $9)
           )
           ;; code offset: 0xf6
           (local.get $8)
          )
         )
         ;; code offset: 0x101
         (local.set $6
          ;; code offset: 0x100
          (i32.sub
           ;; code offset: 0xfc
           (local.get $6)
           ;; code offset: 0xfe
           (local.get $4)
          )
         )
         ;; code offset: 0x125
         (br_if $label
          ;; code offset: 0x124
          (i32.eqz
           ;; code offset: 0x122
           (call $4
            ;; code offset: 0x120
            (call $fimport$0
             ;; code offset: 0x105
             (i32.load offset=60
              ;; code offset: 0x103
              (local.get $0)
             )
             ;; code offset: 0x112
             (local.tee $1
              ;; code offset: 0x111
              (select
               ;; code offset: 0x10c
               (i32.add
                ;; code offset: 0x108
                (local.get $1)
                ;; code offset: 0x10a
                (i32.const 8)
               )
               ;; code offset: 0x10d
               (local.get $1)
               ;; code offset: 0x10f
               (local.get $5)
              )
             )
             ;; code offset: 0x119
             (local.tee $7
              ;; code offset: 0x118
              (i32.sub
               ;; code offset: 0x114
               (local.get $7)
               ;; code offset: 0x116
               (local.get $5)
              )
             )
             ;; code offset: 0x11f
             (i32.add
              ;; code offset: 0x11b
              (local.get $3)
              ;; code offset: 0x11d
              (i32.const 12)
             )
            )
           )
          )
         )
        )
       )
      )
      ;; code offset: 0x12d
      (i32.store offset=12
       ;; code offset: 0x129
       (local.get $3)
       ;; code offset: 0x12b
       (i32.const -1)
      )
      ;; code offset: 0x135
      (br_if $block1
       ;; code offset: 0x134
       (i32.ne
        ;; code offset: 0x130
        (local.get $6)
        ;; code offset: 0x132
        (i32.const -1)
       )
      )
     )
     ;; code offset: 0x141
     (i32.store offset=28
      ;; code offset: 0x138
      (local.get $0)
      ;; code offset: 0x13f
      (local.tee $1
       ;; code offset: 0x13c
       (i32.load offset=44
        ;; code offset: 0x13a
        (local.get $0)
       )
      )
     )
     ;; code offset: 0x148
     (i32.store offset=20
      ;; code offset: 0x144
      (local.get $0)
      ;; code offset: 0x146
      (local.get $1)
     )
     ;; code offset: 0x155
     (i32.store offset=16
      ;; code offset: 0x14b
      (local.get $0)
      ;; code offset: 0x154
      (i32.add
       ;; code offset: 0x14d
       (local.get $1)
       ;; code offset: 0x151
       (i32.load offset=48
        ;; code offset: 0x14f
        (local.get $0)
       )
      )
     )
     ;; code offset: 0x15a
     (br $block2
      ;; code offset: 0x158
      (local.get $2)
     )
    )
    ;; code offset: 0x161
    (i32.store offset=28
     ;; code offset: 0x15d
     (local.get $0)
     ;; code offset: 0x15f
     (i32.const 0)
    )
    ;; code offset: 0x168
    (i64.store offset=16
     ;; code offset: 0x164
     (local.get $0)
     ;; code offset: 0x166
     (i64.const 0)
    )
    ;; code offset: 0x175
    (i32.store
     ;; code offset: 0x16b
     (local.get $0)
     ;; code offset: 0x174
     (i32.or
      ;; code offset: 0x16f
      (i32.load
       ;; code offset: 0x16d
       (local.get $0)
      )
      ;; code offset: 0x172
      (i32.const 32)
     )
    )
    ;; code offset: 0x183
    (drop
     ;; code offset: 0x181
     (br_if $block2
      ;; code offset: 0x17a
      (local.tee $4
       ;; code offset: 0x178
       (i32.const 0)
      )
      ;; code offset: 0x180
      (i32.eq
       ;; code offset: 0x17c
       (local.get $7)
       ;; code offset: 0x17e
       (i32.const 2)
      )
     )
    )
    ;; code offset: 0x18b
    (i32.sub
     ;; code offset: 0x184
     (local.get $2)
     ;; code offset: 0x188
     (i32.load offset=4
      ;; code offset: 0x186
      (local.get $1)
     )
    )
   )
  )
  ;; code offset: 0x194
  (global.set $global$0
   ;; code offset: 0x193
   (i32.add
    ;; code offset: 0x18f
    (local.get $3)
    ;; code offset: 0x191
    (i32.const 32)
   )
  )
  ;; code offset: 0x196
  (local.get $4)
 )
 (func $6 (param $0 i32) (result i32)
  ;; code offset: 0x19b
  (i32.const 0)
 )
 (func $7 (param $0 i32) (param $1 i64) (param $2 i32) (result i64)
  ;; code offset: 0x1a0
  (i64.const 0)
 )
 (func $8 (param $0 i32) (result i32)
  (local $1 i32)
  ;; code offset: 0x1b6
  (i32.store8 offset=74
   ;; code offset: 0x1a7
   (local.get $0)
   ;; code offset: 0x1b5
   (i32.or
    ;; code offset: 0x1b2
    (i32.add
     ;; code offset: 0x1ae
     (local.tee $1
      ;; code offset: 0x1ab
      (i32.load8_u offset=74
       ;; code offset: 0x1a9
       (local.get $0)
      )
     )
     ;; code offset: 0x1b0
     (i32.const -1)
    )
    ;; code offset: 0x1b3
    (local.get $1)
   )
  )
  ;; code offset: 0x1c3
  (if
   ;; code offset: 0x1c2
   (i32.and
    ;; code offset: 0x1be
    (local.tee $1
     ;; code offset: 0x1bb
     (i32.load
      ;; code offset: 0x1b9
      (local.get $0)
     )
    )
    ;; code offset: 0x1c0
    (i32.const 8)
   )
   (then
    ;; code offset: 0x1cc
    (i32.store
     ;; code offset: 0x1c5
     (local.get $0)
     ;; code offset: 0x1cb
     (i32.or
      ;; code offset: 0x1c7
      (local.get $1)
      ;; code offset: 0x1c9
      (i32.const 32)
     )
    )
    ;; code offset: 0x1d1
    (return
     ;; code offset: 0x1cf
     (i32.const -1)
    )
   )
  )
  ;; code offset: 0x1d7
  (i64.store offset=4 align=4
   ;; code offset: 0x1d3
   (local.get $0)
   ;; code offset: 0x1d5
   (i64.const 0)
  )
  ;; code offset: 0x1e3
  (i32.store offset=28
   ;; code offset: 0x1da
   (local.get $0)
   ;; code offset: 0x1e1
   (local.tee $1
    ;; code offset: 0x1de
    (i32.load offset=44
     ;; code offset: 0x1dc
     (local.get $0)
    )
   )
  )
  ;; code offset: 0x1ea
  (i32.store offset=20
   ;; code offset: 0x1e6
   (local.get $0)
   ;; code offset: 0x1e8
   (local.get $1)
  )
  ;; code offset: 0x1f7
  (i32.store offset=16
   ;; code offset: 0x1ed
   (local.get $0)
   ;; code offset: 0x1f6
   (i32.add
    ;; code offset: 0x1ef
    (local.get $1)
    ;; code offset: 0x1f3
    (i32.load offset=48
     ;; code offset: 0x1f1
     (local.get $0)
    )
   )
  )
  ;; code offset: 0x1fa
  (i32.const 0)
 )
 (func $9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  ;; code offset: 0x20c
  (if
   ;; code offset: 0x20b
   (i32.ge_u
    ;; code offset: 0x206
    (local.get $2)
    ;; code offset: 0x208
    (i32.const 512)
   )
   (then
    ;; code offset: 0x216
    (drop
     ;; code offset: 0x214
     (call $fimport$1
      ;; code offset: 0x20e
      (local.get $0)
      ;; code offset: 0x210
      (local.get $1)
      ;; code offset: 0x212
      (local.get $2)
     )
    )
    ;; code offset: 0x219
    (return
     ;; code offset: 0x217
     (local.get $0)
    )
   )
  )
  ;; code offset: 0x220
  (local.set $3
   ;; code offset: 0x21f
   (i32.add
    ;; code offset: 0x21b
    (local.get $0)
    ;; code offset: 0x21d
    (local.get $2)
   )
  )
  ;; code offset: 0x222
  (block $block2
   ;; code offset: 0x22d
   (if
    ;; code offset: 0x22c
    (i32.eqz
     ;; code offset: 0x22b
     (i32.and
      ;; code offset: 0x228
      (i32.xor
       ;; code offset: 0x224
       (local.get $0)
       ;; code offset: 0x226
       (local.get $1)
      )
      ;; code offset: 0x229
      (i32.const 3)
     )
    )
    (then
     ;; code offset: 0x22f
     (block $block
      ;; code offset: 0x236
      (if
       ;; code offset: 0x235
       (i32.lt_s
        ;; code offset: 0x231
        (local.get $2)
        ;; code offset: 0x233
        (i32.const 1)
       )
       (then
        ;; code offset: 0x23a
        (local.set $2
         ;; code offset: 0x238
         (local.get $0)
        )
        ;; code offset: 0x23c
        (br $block)
       )
      )
      ;; code offset: 0x245
      (if
       ;; code offset: 0x244
       (i32.eqz
        ;; code offset: 0x243
        (i32.and
         ;; code offset: 0x23f
         (local.get $0)
         ;; code offset: 0x241
         (i32.const 3)
        )
       )
       (then
        ;; code offset: 0x249
        (local.set $2
         ;; code offset: 0x247
         (local.get $0)
        )
        ;; code offset: 0x24b
        (br $block)
       )
      )
      ;; code offset: 0x250
      (local.set $2
       ;; code offset: 0x24e
       (local.get $0)
      )
      ;; code offset: 0x252
      (loop $label
       ;; code offset: 0x25b
       (i32.store8
        ;; code offset: 0x254
        (local.get $2)
        ;; code offset: 0x258
        (i32.load8_u
         ;; code offset: 0x256
         (local.get $1)
        )
       )
       ;; code offset: 0x263
       (local.set $1
        ;; code offset: 0x262
        (i32.add
         ;; code offset: 0x25e
         (local.get $1)
         ;; code offset: 0x260
         (i32.const 1)
        )
       )
       ;; code offset: 0x26f
       (br_if $block
        ;; code offset: 0x26e
        (i32.ge_u
         ;; code offset: 0x26a
         (local.tee $2
          ;; code offset: 0x269
          (i32.add
           ;; code offset: 0x265
           (local.get $2)
           ;; code offset: 0x267
           (i32.const 1)
          )
         )
         ;; code offset: 0x26c
         (local.get $3)
        )
       )
       ;; code offset: 0x276
       (br_if $label
        ;; code offset: 0x275
        (i32.and
         ;; code offset: 0x271
         (local.get $2)
         ;; code offset: 0x273
         (i32.const 3)
        )
       )
      )
     )
     ;; code offset: 0x27a
     (block $block1
      ;; code offset: 0x287
      (br_if $block1
       ;; code offset: 0x286
       (i32.lt_u
        ;; code offset: 0x281
        (local.tee $4
         ;; code offset: 0x280
         (i32.and
          ;; code offset: 0x27c
          (local.get $3)
          ;; code offset: 0x27e
          (i32.const -4)
         )
        )
        ;; code offset: 0x283
        (i32.const 64)
       )
      )
      ;; code offset: 0x293
      (br_if $block1
       ;; code offset: 0x292
       (i32.gt_u
        ;; code offset: 0x289
        (local.get $2)
        ;; code offset: 0x290
        (local.tee $5
         ;; code offset: 0x28f
         (i32.add
          ;; code offset: 0x28b
          (local.get $4)
          ;; code offset: 0x28d
          (i32.const -64)
         )
        )
       )
      )
      ;; code offset: 0x295
      (loop $label1
       ;; code offset: 0x29e
       (i32.store
        ;; code offset: 0x297
        (local.get $2)
        ;; code offset: 0x29b
        (i32.load
         ;; code offset: 0x299
         (local.get $1)
        )
       )
       ;; code offset: 0x2a8
       (i32.store offset=4
        ;; code offset: 0x2a1
        (local.get $2)
        ;; code offset: 0x2a5
        (i32.load offset=4
         ;; code offset: 0x2a3
         (local.get $1)
        )
       )
       ;; code offset: 0x2b2
       (i32.store offset=8
        ;; code offset: 0x2ab
        (local.get $2)
        ;; code offset: 0x2af
        (i32.load offset=8
         ;; code offset: 0x2ad
         (local.get $1)
        )
       )
       ;; code offset: 0x2bc
       (i32.store offset=12
        ;; code offset: 0x2b5
        (local.get $2)
        ;; code offset: 0x2b9
        (i32.load offset=12
         ;; code offset: 0x2b7
         (local.get $1)
        )
       )
       ;; code offset: 0x2c6
       (i32.store offset=16
        ;; code offset: 0x2bf
        (local.get $2)
        ;; code offset: 0x2c3
        (i32.load offset=16
         ;; code offset: 0x2c1
         (local.get $1)
        )
       )
       ;; code offset: 0x2d0
       (i32.store offset=20
        ;; code offset: 0x2c9
        (local.get $2)
        ;; code offset: 0x2cd
        (i32.load offset=20
         ;; code offset: 0x2cb
         (local.get $1)
        )
       )
       ;; code offset: 0x2da
       (i32.store offset=24
        ;; code offset: 0x2d3
        (local.get $2)
        ;; code offset: 0x2d7
        (i32.load offset=24
         ;; code offset: 0x2d5
         (local.get $1)
        )
       )
       ;; code offset: 0x2e4
       (i32.store offset=28
        ;; code offset: 0x2dd
        (local.get $2)
        ;; code offset: 0x2e1
        (i32.load offset=28
         ;; code offset: 0x2df
         (local.get $1)
        )
       )
       ;; code offset: 0x2ee
       (i32.store offset=32
        ;; code offset: 0x2e7
        (local.get $2)
        ;; code offset: 0x2eb
        (i32.load offset=32
         ;; code offset: 0x2e9
         (local.get $1)
        )
       )
       ;; code offset: 0x2f8
       (i32.store offset=36
        ;; code offset: 0x2f1
        (local.get $2)
        ;; code offset: 0x2f5
        (i32.load offset=36
         ;; code offset: 0x2f3
         (local.get $1)
        )
       )
       ;; code offset: 0x302
       (i32.store offset=40
        ;; code offset: 0x2fb
        (local.get $2)
        ;; code offset: 0x2ff
        (i32.load offset=40
         ;; code offset: 0x2fd
         (local.get $1)
        )
       )
       ;; code offset: 0x30c
       (i32.store offset=44
        ;; code offset: 0x305
        (local.get $2)
        ;; code offset: 0x309
        (i32.load offset=44
         ;; code offset: 0x307
         (local.get $1)
        )
       )
       ;; code offset: 0x316
       (i32.store offset=48
        ;; code offset: 0x30f
        (local.get $2)
        ;; code offset: 0x313
        (i32.load offset=48
         ;; code offset: 0x311
         (local.get $1)
        )
       )
       ;; code offset: 0x320
       (i32.store offset=52
        ;; code offset: 0x319
        (local.get $2)
        ;; code offset: 0x31d
        (i32.load offset=52
         ;; code offset: 0x31b
         (local.get $1)
        )
       )
       ;; code offset: 0x32a
       (i32.store offset=56
        ;; code offset: 0x323
        (local.get $2)
        ;; code offset: 0x327
        (i32.load offset=56
         ;; code offset: 0x325
         (local.get $1)
        )
       )
       ;; code offset: 0x334
       (i32.store offset=60
        ;; code offset: 0x32d
        (local.get $2)
        ;; code offset: 0x331
        (i32.load offset=60
         ;; code offset: 0x32f
         (local.get $1)
        )
       )
       ;; code offset: 0x33c
       (local.set $1
        ;; code offset: 0x33b
        (i32.sub
         ;; code offset: 0x337
         (local.get $1)
         ;; code offset: 0x339
         (i32.const -64)
        )
       )
       ;; code offset: 0x348
       (br_if $label1
        ;; code offset: 0x347
        (i32.le_u
         ;; code offset: 0x343
         (local.tee $2
          ;; code offset: 0x342
          (i32.sub
           ;; code offset: 0x33e
           (local.get $2)
           ;; code offset: 0x340
           (i32.const -64)
          )
         )
         ;; code offset: 0x345
         (local.get $5)
        )
       )
      )
     )
     ;; code offset: 0x351
     (br_if $block2
      ;; code offset: 0x350
      (i32.ge_u
       ;; code offset: 0x34c
       (local.get $2)
       ;; code offset: 0x34e
       (local.get $4)
      )
     )
     ;; code offset: 0x353
     (loop $label2
      ;; code offset: 0x35c
      (i32.store
       ;; code offset: 0x355
       (local.get $2)
       ;; code offset: 0x359
       (i32.load
        ;; code offset: 0x357
        (local.get $1)
       )
      )
      ;; code offset: 0x364
      (local.set $1
       ;; code offset: 0x363
       (i32.add
        ;; code offset: 0x35f
        (local.get $1)
        ;; code offset: 0x361
        (i32.const 4)
       )
      )
      ;; code offset: 0x370
      (br_if $label2
       ;; code offset: 0x36f
       (i32.lt_u
        ;; code offset: 0x36b
        (local.tee $2
         ;; code offset: 0x36a
         (i32.add
          ;; code offset: 0x366
          (local.get $2)
          ;; code offset: 0x368
          (i32.const 4)
         )
        )
        ;; code offset: 0x36d
        (local.get $4)
       )
      )
     )
     ;; code offset: 0x373
     (br $block2)
    )
   )
   ;; code offset: 0x37b
   (if
    ;; code offset: 0x37a
    (i32.lt_u
     ;; code offset: 0x376
     (local.get $3)
     ;; code offset: 0x378
     (i32.const 4)
    )
    (then
     ;; code offset: 0x37f
     (local.set $2
      ;; code offset: 0x37d
      (local.get $0)
     )
     ;; code offset: 0x381
     (br $block2)
    )
   )
   ;; code offset: 0x38e
   (if
    ;; code offset: 0x38d
    (i32.lt_u
     ;; code offset: 0x389
     (local.tee $4
      ;; code offset: 0x388
      (i32.add
       ;; code offset: 0x384
       (local.get $3)
       ;; code offset: 0x386
       (i32.const -4)
      )
     )
     ;; code offset: 0x38b
     (local.get $0)
    )
    (then
     ;; code offset: 0x392
     (local.set $2
      ;; code offset: 0x390
      (local.get $0)
     )
     ;; code offset: 0x394
     (br $block2)
    )
   )
   ;; code offset: 0x399
   (local.set $2
    ;; code offset: 0x397
    (local.get $0)
   )
   ;; code offset: 0x39b
   (loop $label3
    ;; code offset: 0x3a4
    (i32.store8
     ;; code offset: 0x39d
     (local.get $2)
     ;; code offset: 0x3a1
     (i32.load8_u
      ;; code offset: 0x39f
      (local.get $1)
     )
    )
    ;; code offset: 0x3ae
    (i32.store8 offset=1
     ;; code offset: 0x3a7
     (local.get $2)
     ;; code offset: 0x3ab
     (i32.load8_u offset=1
      ;; code offset: 0x3a9
      (local.get $1)
     )
    )
    ;; code offset: 0x3b8
    (i32.store8 offset=2
     ;; code offset: 0x3b1
     (local.get $2)
     ;; code offset: 0x3b5
     (i32.load8_u offset=2
      ;; code offset: 0x3b3
      (local.get $1)
     )
    )
    ;; code offset: 0x3c2
    (i32.store8 offset=3
     ;; code offset: 0x3bb
     (local.get $2)
     ;; code offset: 0x3bf
     (i32.load8_u offset=3
      ;; code offset: 0x3bd
      (local.get $1)
     )
    )
    ;; code offset: 0x3ca
    (local.set $1
     ;; code offset: 0x3c9
     (i32.add
      ;; code offset: 0x3c5
      (local.get $1)
      ;; code offset: 0x3c7
      (i32.const 4)
     )
    )
    ;; code offset: 0x3d6
    (br_if $label3
     ;; code offset: 0x3d5
     (i32.le_u
      ;; code offset: 0x3d1
      (local.tee $2
       ;; code offset: 0x3d0
       (i32.add
        ;; code offset: 0x3cc
        (local.get $2)
        ;; code offset: 0x3ce
        (i32.const 4)
       )
      )
      ;; code offset: 0x3d3
      (local.get $4)
     )
    )
   )
  )
  ;; code offset: 0x3df
  (if
   ;; code offset: 0x3de
   (i32.lt_u
    ;; code offset: 0x3da
    (local.get $2)
    ;; code offset: 0x3dc
    (local.get $3)
   )
   (then
    ;; code offset: 0x3e1
    (loop $label4
     ;; code offset: 0x3ea
     (i32.store8
      ;; code offset: 0x3e3
      (local.get $2)
      ;; code offset: 0x3e7
      (i32.load8_u
       ;; code offset: 0x3e5
       (local.get $1)
      )
     )
     ;; code offset: 0x3f2
     (local.set $1
      ;; code offset: 0x3f1
      (i32.add
       ;; code offset: 0x3ed
       (local.get $1)
       ;; code offset: 0x3ef
       (i32.const 1)
      )
     )
     ;; code offset: 0x3fe
     (br_if $label4
      ;; code offset: 0x3fd
      (i32.ne
       ;; code offset: 0x3f9
       (local.tee $2
        ;; code offset: 0x3f8
        (i32.add
         ;; code offset: 0x3f4
         (local.get $2)
         ;; code offset: 0x3f6
         (i32.const 1)
        )
       )
       ;; code offset: 0x3fb
       (local.get $3)
      )
     )
    )
   )
  )
  ;; code offset: 0x402
  (local.get $0)
 )
 (func $10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  ;; code offset: 0x410
  (block $block
   ;; code offset: 0x41a
   (if
    ;; code offset: 0x419
    (i32.eqz
     ;; code offset: 0x417
     (local.tee $3
      ;; code offset: 0x414
      (i32.load offset=16
       ;; code offset: 0x412
       (local.get $2)
      )
     )
    )
    (then
     ;; code offset: 0x420
     (br_if $block
      ;; code offset: 0x41e
      (call $8
       ;; code offset: 0x41c
       (local.get $2)
      )
     )
     ;; code offset: 0x427
     (local.set $3
      ;; code offset: 0x424
      (i32.load offset=16
       ;; code offset: 0x422
       (local.get $2)
      )
     )
    )
   )
   ;; code offset: 0x437
   (if
    ;; code offset: 0x436
    (i32.lt_u
     ;; code offset: 0x433
     (i32.sub
      ;; code offset: 0x42a
      (local.get $3)
      ;; code offset: 0x431
      (local.tee $5
       ;; code offset: 0x42e
       (i32.load offset=20
        ;; code offset: 0x42c
        (local.get $2)
       )
      )
     )
     ;; code offset: 0x434
     (local.get $1)
    )
    (then
     ;; code offset: 0x447
     (return
      ;; code offset: 0x444
      (call_indirect (type $1)
       ;; code offset: 0x439
       (local.get $2)
       ;; code offset: 0x43b
       (local.get $0)
       ;; code offset: 0x43d
       (local.get $1)
       ;; code offset: 0x441
       (i32.load offset=36
        ;; code offset: 0x43f
        (local.get $2)
       )
      )
     )
    )
   )
   ;; code offset: 0x449
   (block $block1
    ;; code offset: 0x453
    (br_if $block1
     ;; code offset: 0x452
     (i32.lt_s
      ;; code offset: 0x44d
      (i32.load8_s offset=75
       ;; code offset: 0x44b
       (local.get $2)
      )
      ;; code offset: 0x450
      (i32.const 0)
     )
    )
    ;; code offset: 0x457
    (local.set $4
     ;; code offset: 0x455
     (local.get $1)
    )
    ;; code offset: 0x459
    (loop $label
     ;; code offset: 0x460
     (br_if $block1
      ;; code offset: 0x45f
      (i32.eqz
       ;; code offset: 0x45d
       (local.tee $3
        ;; code offset: 0x45b
        (local.get $4)
       )
      )
     )
     ;; code offset: 0x472
     (br_if $label
      ;; code offset: 0x471
      (i32.ne
       ;; code offset: 0x46c
       (i32.load8_u
        ;; code offset: 0x46b
        (i32.add
         ;; code offset: 0x462
         (local.get $0)
         ;; code offset: 0x469
         (local.tee $4
          ;; code offset: 0x468
          (i32.add
           ;; code offset: 0x464
           (local.get $3)
           ;; code offset: 0x466
           (i32.const -1)
          )
         )
        )
       )
       ;; code offset: 0x46f
       (i32.const 10)
      )
     )
    )
    ;; code offset: 0x488
    (br_if $block
     ;; code offset: 0x487
     (i32.lt_u
      ;; code offset: 0x483
      (local.tee $4
       ;; code offset: 0x480
       (call_indirect (type $1)
        ;; code offset: 0x475
        (local.get $2)
        ;; code offset: 0x477
        (local.get $0)
        ;; code offset: 0x479
        (local.get $3)
        ;; code offset: 0x47d
        (i32.load offset=36
         ;; code offset: 0x47b
         (local.get $2)
        )
       )
      )
      ;; code offset: 0x485
      (local.get $3)
     )
    )
    ;; code offset: 0x48f
    (local.set $0
     ;; code offset: 0x48e
     (i32.add
      ;; code offset: 0x48a
      (local.get $0)
      ;; code offset: 0x48c
      (local.get $3)
     )
    )
    ;; code offset: 0x496
    (local.set $1
     ;; code offset: 0x495
     (i32.sub
      ;; code offset: 0x491
      (local.get $1)
      ;; code offset: 0x493
      (local.get $3)
     )
    )
    ;; code offset: 0x49d
    (local.set $5
     ;; code offset: 0x49a
     (i32.load offset=20
      ;; code offset: 0x498
      (local.get $2)
     )
    )
    ;; code offset: 0x4a1
    (local.set $6
     ;; code offset: 0x49f
     (local.get $3)
    )
   )
   ;; code offset: 0x4ac
   (drop
    ;; code offset: 0x4aa
    (call $9
     ;; code offset: 0x4a4
     (local.get $5)
     ;; code offset: 0x4a6
     (local.get $0)
     ;; code offset: 0x4a8
     (local.get $1)
    )
   )
   ;; code offset: 0x4b7
   (i32.store offset=20
    ;; code offset: 0x4ad
    (local.get $2)
    ;; code offset: 0x4b6
    (i32.add
     ;; code offset: 0x4b1
     (i32.load offset=20
      ;; code offset: 0x4af
      (local.get $2)
     )
     ;; code offset: 0x4b4
     (local.get $1)
    )
   )
   ;; code offset: 0x4bf
   (local.set $4
    ;; code offset: 0x4be
    (i32.add
     ;; code offset: 0x4ba
     (local.get $1)
     ;; code offset: 0x4bc
     (local.get $6)
    )
   )
  )
  ;; code offset: 0x4c2
  (local.get $4)
 )
 (func $11 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
  (local $4 i32)
  (local $5 i32)
  ;; code offset: 0x4d0
  (local.set $4
   ;; code offset: 0x4cf
   (i32.mul
    ;; code offset: 0x4cb
    (local.get $1)
    ;; code offset: 0x4cd
    (local.get $2)
   )
  )
  ;; code offset: 0x4d2
  (block $block
   ;; code offset: 0x4dc
   (if
    ;; code offset: 0x4db
    (i32.le_s
     ;; code offset: 0x4d6
     (i32.load offset=76
      ;; code offset: 0x4d4
      (local.get $3)
     )
     ;; code offset: 0x4d9
     (i32.const -1)
    )
    (then
     ;; code offset: 0x4e6
     (local.set $0
      ;; code offset: 0x4e4
      (call $10
       ;; code offset: 0x4de
       (local.get $0)
       ;; code offset: 0x4e0
       (local.get $4)
       ;; code offset: 0x4e2
       (local.get $3)
      )
     )
     ;; code offset: 0x4e8
     (br $block)
    )
   )
   ;; code offset: 0x4ef
   (local.set $5
    ;; code offset: 0x4ed
    (call $15
     ;; code offset: 0x4eb
     (local.get $3)
    )
   )
   ;; code offset: 0x4f9
   (local.set $0
    ;; code offset: 0x4f7
    (call $10
     ;; code offset: 0x4f1
     (local.get $0)
     ;; code offset: 0x4f3
     (local.get $4)
     ;; code offset: 0x4f5
     (local.get $3)
    )
   )
   ;; code offset: 0x4fe
   (br_if $block
    ;; code offset: 0x4fd
    (i32.eqz
     ;; code offset: 0x4fb
     (local.get $5)
    )
   )
   ;; code offset: 0x502
   (call $16
    ;; code offset: 0x500
    (local.get $3)
   )
  )
  ;; code offset: 0x50a
  (if
   ;; code offset: 0x509
   (i32.eq
    ;; code offset: 0x505
    (local.get $0)
    ;; code offset: 0x507
    (local.get $4)
   )
   (then
    ;; code offset: 0x513
    (return
     ;; code offset: 0x512
     (select
      ;; code offset: 0x50c
      (local.get $2)
      ;; code offset: 0x50e
      (i32.const 0)
      ;; code offset: 0x510
      (local.get $1)
     )
    )
   )
  )
  ;; code offset: 0x519
  (i32.div_u
   ;; code offset: 0x515
   (local.get $0)
   ;; code offset: 0x517
   (local.get $1)
  )
 )
 (func $12 (param $0 i32) (param $1 i32) (result i32)
  (local $2 i32)
  ;; code offset: 0x534
  (select
   ;; code offset: 0x51f
   (i32.const -1)
   ;; code offset: 0x521
   (i32.const 0)
   ;; code offset: 0x533
   (i32.ne
    ;; code offset: 0x52f
    (call $11
     ;; code offset: 0x523
     (local.get $0)
     ;; code offset: 0x525
     (i32.const 1)
     ;; code offset: 0x52b
     (local.tee $2
      ;; code offset: 0x529
      (call $17
       ;; code offset: 0x527
       (local.get $0)
      )
     )
     ;; code offset: 0x52d
     (local.get $1)
    )
    ;; code offset: 0x531
    (local.get $2)
   )
  )
 )
 (func $13 (param $0 i32) (param $1 i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  ;; code offset: 0x546
  (global.set $global$0
   ;; code offset: 0x544
   (local.tee $3
    ;; code offset: 0x543
    (i32.sub
     ;; code offset: 0x53f
     (global.get $global$0)
     ;; code offset: 0x541
     (i32.const 16)
    )
   )
  )
  ;; code offset: 0x54c
  (i32.store8 offset=15
   ;; code offset: 0x548
   (local.get $3)
   ;; code offset: 0x54a
   (local.get $1)
  )
  ;; code offset: 0x54f
  (block $block
   ;; code offset: 0x559
   (if
    ;; code offset: 0x558
    (i32.eqz
     ;; code offset: 0x556
     (local.tee $2
      ;; code offset: 0x553
      (i32.load offset=16
       ;; code offset: 0x551
       (local.get $0)
      )
     )
    )
    (then
     ;; code offset: 0x55d
     (local.set $2
      ;; code offset: 0x55b
      (i32.const -1)
     )
     ;; code offset: 0x563
     (br_if $block
      ;; code offset: 0x561
      (call $8
       ;; code offset: 0x55f
       (local.get $0)
      )
     )
     ;; code offset: 0x56a
     (local.set $2
      ;; code offset: 0x567
      (i32.load offset=16
       ;; code offset: 0x565
       (local.get $0)
      )
     )
    )
   )
   ;; code offset: 0x56d
   (block $block1
    ;; code offset: 0x579
    (br_if $block1
     ;; code offset: 0x578
     (i32.ge_u
      ;; code offset: 0x574
      (local.tee $4
       ;; code offset: 0x571
       (i32.load offset=20
        ;; code offset: 0x56f
        (local.get $0)
       )
      )
      ;; code offset: 0x576
      (local.get $2)
     )
    )
    ;; code offset: 0x589
    (br_if $block1
     ;; code offset: 0x588
     (i32.eq
      ;; code offset: 0x581
      (local.tee $2
       ;; code offset: 0x580
       (i32.and
        ;; code offset: 0x57b
        (local.get $1)
        ;; code offset: 0x57d
        (i32.const 255)
       )
      )
      ;; code offset: 0x585
      (i32.load8_s offset=75
       ;; code offset: 0x583
       (local.get $0)
      )
     )
    )
    ;; code offset: 0x592
    (i32.store offset=20
     ;; code offset: 0x58b
     (local.get $0)
     ;; code offset: 0x591
     (i32.add
      ;; code offset: 0x58d
      (local.get $4)
      ;; code offset: 0x58f
      (i32.const 1)
     )
    )
    ;; code offset: 0x599
    (i32.store8
     ;; code offset: 0x595
     (local.get $4)
     ;; code offset: 0x597
     (local.get $1)
    )
    ;; code offset: 0x59c
    (br $block)
   )
   ;; code offset: 0x5a1
   (local.set $2
    ;; code offset: 0x59f
    (i32.const -1)
   )
   ;; code offset: 0x5b7
   (br_if $block
    ;; code offset: 0x5b6
    (i32.ne
     ;; code offset: 0x5b1
     (call_indirect (type $1)
      ;; code offset: 0x5a3
      (local.get $0)
      ;; code offset: 0x5a9
      (i32.add
       ;; code offset: 0x5a5
       (local.get $3)
       ;; code offset: 0x5a7
       (i32.const 15)
      )
      ;; code offset: 0x5aa
      (i32.const 1)
      ;; code offset: 0x5ae
      (i32.load offset=36
       ;; code offset: 0x5ac
       (local.get $0)
      )
     )
     ;; code offset: 0x5b4
     (i32.const 1)
    )
   )
   ;; code offset: 0x5be
   (local.set $2
    ;; code offset: 0x5bb
    (i32.load8_u offset=15
     ;; code offset: 0x5b9
     (local.get $3)
    )
   )
  )
  ;; code offset: 0x5c6
  (global.set $global$0
   ;; code offset: 0x5c5
   (i32.add
    ;; code offset: 0x5c1
    (local.get $3)
    ;; code offset: 0x5c3
    (i32.const 16)
   )
  )
  ;; code offset: 0x5c8
  (local.get $2)
 )
 (func $14 (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  ;; code offset: 0x5df
  (if
   ;; code offset: 0x5de
   (i32.ge_s
    ;; code offset: 0x5d9
    (i32.load offset=76
     ;; code offset: 0x5d7
     (local.tee $1
      ;; code offset: 0x5d4
      (i32.load
       ;; code offset: 0x5d1
       (i32.const 1040)
      )
     )
    )
    ;; code offset: 0x5dc
    (i32.const 0)
   )
   (then
    ;; code offset: 0x5e5
    (local.set $2
     ;; code offset: 0x5e3
     (call $15
      ;; code offset: 0x5e1
      (local.get $1)
     )
    )
   )
  )
  ;; code offset: 0x633
  (local.set $0
   ;; code offset: 0x5e8
   (block $block (result i32)
    ;; code offset: 0x5f7
    (drop
     ;; code offset: 0x5f5
     (br_if $block
      ;; code offset: 0x5ea
      (i32.const -1)
      ;; code offset: 0x5f4
      (i32.lt_s
       ;; code offset: 0x5f0
       (call $12
        ;; code offset: 0x5ec
        (local.get $0)
        ;; code offset: 0x5ee
        (local.get $1)
       )
       ;; code offset: 0x5f2
       (i32.const 0)
      )
     )
    )
    ;; code offset: 0x5f8
    (block $block1
     ;; code offset: 0x602
     (br_if $block1
      ;; code offset: 0x601
      (i32.eq
       ;; code offset: 0x5fc
       (i32.load8_u offset=75
        ;; code offset: 0x5fa
        (local.get $1)
       )
       ;; code offset: 0x5ff
       (i32.const 10)
      )
     )
     ;; code offset: 0x611
     (br_if $block1
      ;; code offset: 0x610
      (i32.ge_u
       ;; code offset: 0x609
       (local.tee $0
        ;; code offset: 0x606
        (i32.load offset=20
         ;; code offset: 0x604
         (local.get $1)
        )
       )
       ;; code offset: 0x60d
       (i32.load offset=16
        ;; code offset: 0x60b
        (local.get $1)
       )
      )
     )
     ;; code offset: 0x61a
     (i32.store offset=20
      ;; code offset: 0x613
      (local.get $1)
      ;; code offset: 0x619
      (i32.add
       ;; code offset: 0x615
       (local.get $0)
       ;; code offset: 0x617
       (i32.const 1)
      )
     )
     ;; code offset: 0x621
     (i32.store8
      ;; code offset: 0x61d
      (local.get $0)
      ;; code offset: 0x61f
      (i32.const 10)
     )
     ;; code offset: 0x626
     (br $block
      ;; code offset: 0x624
      (i32.const 0)
     )
    )
    ;; code offset: 0x631
    (i32.shr_s
     ;; code offset: 0x62d
     (call $13
      ;; code offset: 0x629
      (local.get $1)
      ;; code offset: 0x62b
      (i32.const 10)
     )
     ;; code offset: 0x62f
     (i32.const 31)
    )
   )
  )
  ;; code offset: 0x637
  (if
   ;; code offset: 0x635
   (local.get $2)
   (then
    ;; code offset: 0x63b
    (call $16
     ;; code offset: 0x639
     (local.get $1)
    )
   )
  )
  ;; code offset: 0x63e
  (local.get $0)
 )
 (func $15 (param $0 i32) (result i32)
  ;; code offset: 0x643
  (i32.const 1)
 )
 (func $16 (param $0 i32)
  ;; code offset: 0x648
  (nop)
 )
 (func $17 (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  ;; code offset: 0x655
  (local.set $1
   ;; code offset: 0x653
   (local.get $0)
  )
  ;; code offset: 0x657
  (block $block1
   ;; code offset: 0x659
   (block $block
    ;; code offset: 0x661
    (br_if $block
     ;; code offset: 0x660
     (i32.eqz
      ;; code offset: 0x65f
      (i32.and
       ;; code offset: 0x65b
       (local.get $0)
       ;; code offset: 0x65d
       (i32.const 3)
      )
     )
    )
    ;; code offset: 0x669
    (if
     ;; code offset: 0x668
     (i32.eqz
      ;; code offset: 0x665
      (i32.load8_u
       ;; code offset: 0x663
       (local.get $0)
      )
     )
     (then
      ;; code offset: 0x66d
      (return
       ;; code offset: 0x66b
       (i32.const 0)
      )
     )
    )
    ;; code offset: 0x66f
    (loop $label
     ;; code offset: 0x67c
     (br_if $block
      ;; code offset: 0x67b
      (i32.eqz
       ;; code offset: 0x67a
       (i32.and
        ;; code offset: 0x676
        (local.tee $1
         ;; code offset: 0x675
         (i32.add
          ;; code offset: 0x671
          (local.get $1)
          ;; code offset: 0x673
          (i32.const 1)
         )
        )
        ;; code offset: 0x678
        (i32.const 3)
       )
      )
     )
     ;; code offset: 0x683
     (br_if $label
      ;; code offset: 0x680
      (i32.load8_u
       ;; code offset: 0x67e
       (local.get $1)
      )
     )
    )
    ;; code offset: 0x686
    (br $block1)
   )
   ;; code offset: 0x689
   (loop $label1
    ;; code offset: 0x692
    (local.set $1
     ;; code offset: 0x691
     (i32.add
      ;; code offset: 0x68d
      (local.tee $2
       ;; code offset: 0x68b
       (local.get $1)
      )
      ;; code offset: 0x68f
      (i32.const 4)
     )
    )
    ;; code offset: 0x6af
    (br_if $label1
     ;; code offset: 0x6ae
     (i32.eqz
      ;; code offset: 0x6ad
      (i32.and
       ;; code offset: 0x6a6
       (i32.and
        ;; code offset: 0x69d
        (i32.xor
         ;; code offset: 0x699
         (local.tee $3
          ;; code offset: 0x696
          (i32.load
           ;; code offset: 0x694
           (local.get $2)
          )
         )
         ;; code offset: 0x69b
         (i32.const -1)
        )
        ;; code offset: 0x6a5
        (i32.add
         ;; code offset: 0x69e
         (local.get $3)
         ;; code offset: 0x6a0
         (i32.const -16843009)
        )
       )
       ;; code offset: 0x6a7
       (i32.const -2139062144)
      )
     )
    )
   )
   ;; code offset: 0x6b9
   (if
    ;; code offset: 0x6b8
    (i32.eqz
     ;; code offset: 0x6b7
     (i32.and
      ;; code offset: 0x6b2
      (local.get $3)
      ;; code offset: 0x6b4
      (i32.const 255)
     )
    )
    (then
     ;; code offset: 0x6c0
     (return
      ;; code offset: 0x6bf
      (i32.sub
       ;; code offset: 0x6bb
       (local.get $2)
       ;; code offset: 0x6bd
       (local.get $0)
      )
     )
    )
   )
   ;; code offset: 0x6c2
   (loop $label2
    ;; code offset: 0x6c9
    (local.set $3
     ;; code offset: 0x6c6
     (i32.load8_u offset=1
      ;; code offset: 0x6c4
      (local.get $2)
     )
    )
    ;; code offset: 0x6d2
    (local.set $2
     ;; code offset: 0x6d0
     (local.tee $1
      ;; code offset: 0x6cf
      (i32.add
       ;; code offset: 0x6cb
       (local.get $2)
       ;; code offset: 0x6cd
       (i32.const 1)
      )
     )
    )
    ;; code offset: 0x6d6
    (br_if $label2
     ;; code offset: 0x6d4
     (local.get $3)
    )
   )
  )
  ;; code offset: 0x6de
  (i32.sub
   ;; code offset: 0x6da
   (local.get $1)
   ;; code offset: 0x6dc
   (local.get $0)
  )
 )
 (func $18 (result i32)
  ;; code offset: 0x6e2
  (global.get $global$0)
 )
 (func $19 (param $0 i32)
  ;; code offset: 0x6e9
  (global.set $global$0
   ;; code offset: 0x6e7
   (local.get $0)
  )
 )
 (func $20 (param $0 i32) (result i32)
  (local $1 i32)
  ;; code offset: 0x6fa
  (global.set $global$0
   ;; code offset: 0x6f8
   (local.tee $1
    ;; code offset: 0x6f7
    (i32.and
     ;; code offset: 0x6f4
     (i32.sub
      ;; code offset: 0x6f0
      (global.get $global$0)
      ;; code offset: 0x6f2
      (local.get $0)
     )
     ;; code offset: 0x6f5
     (i32.const -16)
    )
   )
  )
  ;; code offset: 0x6fc
  (local.get $1)
 )
 (func $21 (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) (result i64)
  ;; code offset: 0x709
  (call_indirect (type $6)
   ;; code offset: 0x701
   (local.get $1)
   ;; code offset: 0x703
   (local.get $2)
   ;; code offset: 0x705
   (local.get $3)
   ;; code offset: 0x707
   (local.get $0)
  )
 )
 (func $22 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
  (local $5 i64)
  ;; code offset: 0x729
  (call $fimport$2
   ;; code offset: 0x728
   (i32.wrap_i64
    ;; code offset: 0x727
    (i64.shr_u
     ;; code offset: 0x723
     (local.tee $5
      ;; code offset: 0x721
      (call $21
       ;; code offset: 0x711
       (local.get $0)
       ;; code offset: 0x713
       (local.get $1)
       ;; code offset: 0x71e
       (i64.or
        ;; code offset: 0x717
        (i64.extend_i32_u
         ;; code offset: 0x715
         (local.get $2)
        )
        ;; code offset: 0x71d
        (i64.shl
         ;; code offset: 0x71a
         (i64.extend_i32_u
          ;; code offset: 0x718
          (local.get $3)
         )
         ;; code offset: 0x71b
         (i64.const 32)
        )
       )
       ;; code offset: 0x71f
       (local.get $4)
      )
     )
     ;; code offset: 0x725
     (i64.const 32)
    )
   )
  )
  ;; code offset: 0x72d
  (i32.wrap_i64
   ;; code offset: 0x72b
   (local.get $5)
  )
 )
 (func $23 (param $0 i32) (result i32)
  ;; code offset: 0x733
  (memory.grow
   ;; code offset: 0x731
   (local.get $0)
  )
 )
 ;; custom section ".debug_info", size 79
 ;; custom section ".debug_abbrev", size 64
 ;; custom section ".debug_line", size 53
 ;; custom section ".debug_str", size 206
)
