digraph call {
  rankdir = LR;
  subgraph cluster_key {
    node [shape=box, fontname=courier, fontsize=10];
    edge [fontname=courier, fontsize=10];
    label = "Key";
    "Import" [style="filled", fillcolor="turquoise"];
    "Export" [style="filled", fillcolor="gray"];
    "Indirect Target" [style="filled, rounded", fillcolor="white"];
    "A" -> "B" [style="filled, rounded", label = "Direct Call"];
  }

  node [shape=box, fontname=courier, fontsize=10];
  "$stackAlloc" [style="filled", fillcolor="white"];
  "$stackSave" [style="filled", fillcolor="white"];
  "$stackRestore" [style="filled", fillcolor="white"];
  "$establishStackSpace" [style="filled", fillcolor="white"];
  "$setThrew" [style="filled", fillcolor="white"];
  "$setTempRet0" [style="filled", fillcolor="white"];
  "$getTempRet0" [style="filled", fillcolor="white"];
  "$_malloc" [style="filled", fillcolor="white"];
  "$_free" [style="filled", fillcolor="white"];
  "$_main" [style="filled", fillcolor="white"];
  "$___stdio_close" [style="filled", fillcolor="white"];
  "$___stdio_write" [style="filled", fillcolor="white"];
  "$___stdio_seek" [style="filled", fillcolor="white"];
  "$___syscall_ret" [style="filled", fillcolor="white"];
  "$___errno_location" [style="filled", fillcolor="white"];
  "$_cleanup_387" [style="filled", fillcolor="white"];
  "$___stdout_write" [style="filled", fillcolor="white"];
  "$_fflush" [style="filled", fillcolor="white"];
  "$___fflush_unlocked" [style="filled", fillcolor="white"];
  "$__Znwj" [style="filled", fillcolor="white"];
  "$__ZSt15get_new_handlerv" [style="filled", fillcolor="white"];
  "$runPostSets" [style="filled", fillcolor="white"];
  "$_memset" [style="filled", fillcolor="white"];
  "$_memcpy" [style="filled", fillcolor="white"];
  "$_pthread_self" [style="filled", fillcolor="white"];
  "$dynCall_ii" [style="filled", fillcolor="white"];
  "$dynCall_iiii" [style="filled", fillcolor="white"];
  "$dynCall_vi" [style="filled", fillcolor="white"];
  "$dynCall_v" [style="filled", fillcolor="white"];
  "$b0" [style="filled", fillcolor="white"];
  "$b1" [style="filled", fillcolor="white"];
  "$b2" [style="filled", fillcolor="white"];
  "$b3" [style="filled", fillcolor="white"];
  "$abort" [style="filled", fillcolor="turquoise"];
  "$_pthread_cleanup_pop" [style="filled", fillcolor="turquoise"];
  "$___lock" [style="filled", fillcolor="turquoise"];
  "$___syscall6" [style="filled", fillcolor="turquoise"];
  "$_pthread_cleanup_push" [style="filled", fillcolor="turquoise"];
  "$___syscall140" [style="filled", fillcolor="turquoise"];
  "$_emscripten_memcpy_big" [style="filled", fillcolor="turquoise"];
  "$___syscall54" [style="filled", fillcolor="turquoise"];
  "$___unlock" [style="filled", fillcolor="turquoise"];
  "$___syscall146" [style="filled", fillcolor="turquoise"];
  "$_fflush" [style="filled", fillcolor="gray"];
  "$_main" [style="filled", fillcolor="gray"];
  "$_pthread_self" [style="filled", fillcolor="gray"];
  "$_memset" [style="filled", fillcolor="gray"];
  "$_malloc" [style="filled", fillcolor="gray"];
  "$_memcpy" [style="filled", fillcolor="gray"];
  "$_free" [style="filled", fillcolor="gray"];
  "$___errno_location" [style="filled", fillcolor="gray"];
  "$runPostSets" [style="filled", fillcolor="gray"];
  "$stackAlloc" [style="filled", fillcolor="gray"];
  "$stackSave" [style="filled", fillcolor="gray"];
  "$stackRestore" [style="filled", fillcolor="gray"];
  "$establishStackSpace" [style="filled", fillcolor="gray"];
  "$setThrew" [style="filled", fillcolor="gray"];
  "$setTempRet0" [style="filled", fillcolor="gray"];
  "$getTempRet0" [style="filled", fillcolor="gray"];
  "$dynCall_ii" [style="filled", fillcolor="gray"];
  "$dynCall_iiii" [style="filled", fillcolor="gray"];
  "$dynCall_vi" [style="filled", fillcolor="gray"];
  "$dynCall_v" [style="filled", fillcolor="gray"];
  "$_main" -> "$__Znwj"; // call
  "$___stdio_close" -> "$___syscall6"; // callImport
  "$___stdio_close" -> "$___syscall_ret"; // call
  "$___stdio_write" -> "$_pthread_cleanup_push"; // callImport
  "$___stdio_write" -> "$___syscall146"; // callImport
  "$___stdio_write" -> "$___syscall_ret"; // call
  "$___stdio_write" -> "$_pthread_cleanup_pop"; // callImport
  "$___stdio_seek" -> "$___syscall140"; // callImport
  "$___stdio_seek" -> "$___syscall_ret"; // call
  "$___syscall_ret" -> "$___errno_location"; // call
  "$___errno_location" -> "$_pthread_self"; // call
  "$_cleanup_387" -> "$_free"; // call
  "$___stdout_write" -> "$___syscall54"; // callImport
  "$___stdout_write" -> "$___stdio_write"; // call
  "$_fflush" -> "$___fflush_unlocked"; // call
  "$_fflush" -> "$_malloc"; // call
  "$_fflush" -> "$_free"; // call
  "$_fflush" -> "$_fflush"; // call
  "$_fflush" -> "$___lock"; // callImport
  "$_fflush" -> "$___unlock"; // callImport
  "$__Znwj" -> "$_malloc"; // call
  "$__Znwj" -> "$__ZSt15get_new_handlerv"; // call
  "$_memcpy" -> "$_emscripten_memcpy_big"; // callImport
  "$b0" -> "$abort"; // callImport
  "$b1" -> "$abort"; // callImport
  "$b2" -> "$abort"; // callImport
  "$b3" -> "$abort"; // callImport
  "$b0" [style="filled, rounded"];
  "$___stdio_close" [style="filled, rounded"];
  "$b1" [style="filled, rounded"];
  "$___stdout_write" [style="filled, rounded"];
  "$___stdio_seek" [style="filled, rounded"];
  "$___stdio_write" [style="filled, rounded"];
  "$b2" [style="filled, rounded"];
  "$_cleanup_387" [style="filled, rounded"];
  "$b3" [style="filled, rounded"];
}
(module
 (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
 (type $FUNCSIG$v (func))
 (type $FUNCSIG$ii (func (param i32) (result i32)))
 (type $FUNCSIG$vi (func (param i32)))
 (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
 (type $FUNCSIG$vii (func (param i32 i32)))
 (type $6 (func (result i32)))
 (type $7 (func (param i32 i32 i32 i32) (result i32)))
 (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32))
 (import "env" "STACK_MAX" (global $STACK_MAX$asm2wasm$import i32))
 (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR$asm2wasm$import i32))
 (import "env" "tempDoublePtr" (global $tempDoublePtr$asm2wasm$import i32))
 (import "env" "ABORT" (global $ABORT$asm2wasm$import i32))
 (import "global" "NaN" (global $nan$asm2wasm$import f64))
 (import "global" "Infinity" (global $inf$asm2wasm$import f64))
 (import "env" "abort" (func $abort (param i32)))
 (import "env" "_pthread_cleanup_pop" (func $_pthread_cleanup_pop (param i32)))
 (import "env" "___lock" (func $___lock (param i32)))
 (import "env" "___syscall6" (func $___syscall6 (param i32 i32) (result i32)))
 (import "env" "_pthread_cleanup_push" (func $_pthread_cleanup_push (param i32 i32)))
 (import "env" "___syscall140" (func $___syscall140 (param i32 i32) (result i32)))
 (import "env" "_emscripten_memcpy_big" (func $_emscripten_memcpy_big (param i32 i32 i32) (result i32)))
 (import "env" "___syscall54" (func $___syscall54 (param i32 i32) (result i32)))
 (import "env" "___unlock" (func $___unlock (param i32)))
 (import "env" "___syscall146" (func $___syscall146 (param i32 i32) (result i32)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 9 9 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (global $STACKTOP (mut i32) (get_global $STACKTOP$asm2wasm$import))
 (global $STACK_MAX (mut i32) (get_global $STACK_MAX$asm2wasm$import))
 (global $DYNAMICTOP_PTR (mut i32) (get_global $DYNAMICTOP_PTR$asm2wasm$import))
 (global $tempDoublePtr (mut i32) (get_global $tempDoublePtr$asm2wasm$import))
 (global $ABORT (mut i32) (get_global $ABORT$asm2wasm$import))
 (global $__THREW__ (mut i32) (i32.const 0))
 (global $threwValue (mut i32) (i32.const 0))
 (global $setjmpId (mut i32) (i32.const 0))
 (global $undef (mut i32) (i32.const 0))
 (global $nan (mut f64) (get_global $nan$asm2wasm$import))
 (global $inf (mut f64) (get_global $inf$asm2wasm$import))
 (global $tempInt (mut i32) (i32.const 0))
 (global $tempBigInt (mut i32) (i32.const 0))
 (global $tempBigIntP (mut i32) (i32.const 0))
 (global $tempBigIntS (mut i32) (i32.const 0))
 (global $tempBigIntR (mut f64) (f64.const 0))
 (global $tempBigIntI (mut i32) (i32.const 0))
 (global $tempBigIntD (mut i32) (i32.const 0))
 (global $tempValue (mut i32) (i32.const 0))
 (global $tempDouble (mut f64) (f64.const 0))
 (global $tempRet0 (mut i32) (i32.const 0))
 (global $tempFloat (mut f32) (f32.const 0))
 (global $f0 (mut f32) (f32.const 0))
 (elem (i32.const 0) $b0 $___stdio_close $b1 $___stdout_write $___stdio_seek $___stdio_write $b2 $_cleanup_387 $b3)
 (data (get_global $memoryBase) "\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\01\00\00\00\02\00\00\00\b0\04\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\04")
 (export "_fflush" (func $_fflush))
 (export "_main" (func $_main))
 (export "_pthread_self" (func $_pthread_self))
 (export "_memset" (func $_memset))
 (export "_malloc" (func $_malloc))
 (export "_memcpy" (func $_memcpy))
 (export "_free" (func $_free))
 (export "___errno_location" (func $___errno_location))
 (export "runPostSets" (func $runPostSets))
 (export "stackAlloc" (func $stackAlloc))
 (export "stackSave" (func $stackSave))
 (export "stackRestore" (func $stackRestore))
 (export "establishStackSpace" (func $establishStackSpace))
 (export "setThrew" (func $setThrew))
 (export "setTempRet0" (func $setTempRet0))
 (export "getTempRet0" (func $getTempRet0))
 (export "dynCall_ii" (func $dynCall_ii))
 (export "dynCall_iiii" (func $dynCall_iiii))
 (export "dynCall_vi" (func $dynCall_vi))
 (export "dynCall_v" (func $dynCall_v))
 (func $stackAlloc (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (local $1 i32)
  (set_local $1
   (get_global $STACKTOP)
  )
  (set_global $STACKTOP
   (i32.add
    (get_global $STACKTOP)
    (get_local $0)
   )
  )
  (set_global $STACKTOP
   (i32.and
    (i32.add
     (get_global $STACKTOP)
     (i32.const 15)
    )
    (i32.const -16)
   )
  )
  (get_local $1)
 )
 (func $stackSave (type $6) (result i32)
  (get_global $STACKTOP)
 )
 (func $stackRestore (type $FUNCSIG$vi) (param $0 i32)
  (set_global $STACKTOP
   (get_local $0)
  )
 )
 (func $establishStackSpace (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  (set_global $STACKTOP
   (get_local $0)
  )
  (set_global $STACK_MAX
   (get_local $1)
  )
 )
 (func $setThrew (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  (if
   (i32.eqz
    (get_global $__THREW__)
   )
   (block $block
    (set_global $__THREW__
     (get_local $0)
    )
    (set_global $threwValue
     (get_local $1)
    )
   )
  )
 )
 (func $setTempRet0 (type $FUNCSIG$vi) (param $0 i32)
  (set_global $tempRet0
   (get_local $0)
  )
 )
 (func $getTempRet0 (type $6) (result i32)
  (get_global $tempRet0)
 )
 (func $_malloc (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (i32.const 0)
 )
 (func $_free (type $FUNCSIG$vi) (param $0 i32)
  (nop)
 )
 (func $_main (type $6) (result i32)
  (local $0 i32)
  (i64.store align=4
   (tee_local $0
    (call $__Znwj
     (i32.const 8)
    )
   )
   (i64.const 0)
  )
  (get_local $0)
 )
 (func $___stdio_close (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (set_local $1
   (get_global $STACKTOP)
  )
  (set_global $STACKTOP
   (i32.add
    (get_global $STACKTOP)
    (i32.const 16)
   )
  )
  (i32.store
   (tee_local $2
    (get_local $1)
   )
   (i32.load offset=60
    (get_local $0)
   )
  )
  (set_local $0
   (call $___syscall_ret
    (call $___syscall6
     (i32.const 6)
     (get_local $2)
    )
   )
  )
  (set_global $STACKTOP
   (get_local $1)
  )
  (get_local $0)
 )
 (func $___stdio_write (type $FUNCSIG$iiii) (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)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (set_local $7
   (get_global $STACKTOP)
  )
  (set_global $STACKTOP
   (i32.add
    (get_global $STACKTOP)
    (i32.const 48)
   )
  )
  (set_local $8
   (i32.add
    (get_local $7)
    (i32.const 16)
   )
  )
  (set_local $9
   (get_local $7)
  )
  (i32.store
   (tee_local $3
    (i32.add
     (get_local $7)
     (i32.const 32)
    )
   )
   (tee_local $5
    (i32.load
     (tee_local $6
      (i32.add
       (get_local $0)
       (i32.const 28)
      )
     )
    )
   )
  )
  (i32.store offset=4
   (get_local $3)
   (tee_local $4
    (i32.sub
     (i32.load
      (tee_local $10
       (i32.add
        (get_local $0)
        (i32.const 20)
       )
      )
     )
     (get_local $5)
    )
   )
  )
  (i32.store offset=8
   (get_local $3)
   (get_local $1)
  )
  (i32.store offset=12
   (get_local $3)
   (get_local $2)
  )
  (set_local $13
   (i32.add
    (get_local $0)
    (i32.const 60)
   )
  )
  (set_local $14
   (i32.add
    (get_local $0)
    (i32.const 44)
   )
  )
  (set_local $1
   (get_local $3)
  )
  (set_local $5
   (i32.const 2)
  )
  (set_local $11
   (i32.add
    (get_local $4)
    (get_local $2)
   )
  )
  (set_local $0
   (block $jumpthreading$outer$1 i32
    (block $jumpthreading$inner$1
     (block $jumpthreading$inner$0
      (loop $while-in
       (br_if $jumpthreading$inner$0
        (i32.eq
         (get_local $11)
         (tee_local $4
          (if i32
           (i32.load
            (i32.const 1140)
           )
           (block $block i32
            (call $_pthread_cleanup_push
             (i32.const 1)
             (get_local $0)
            )
            (i32.store
             (get_local $9)
             (i32.load
              (get_local $13)
             )
            )
            (i32.store offset=4
             (get_local $9)
             (get_local $1)
            )
            (i32.store offset=8
             (get_local $9)
             (get_local $5)
            )
            (set_local $3
             (call $___syscall_ret
              (call $___syscall146
               (i32.const 146)
               (get_local $9)
              )
             )
            )
            (call $_pthread_cleanup_pop
             (i32.const 0)
            )
            (get_local $3)
           )
           (block $block0 i32
            (i32.store
             (get_local $8)
             (i32.load
              (get_local $13)
             )
            )
            (i32.store offset=4
             (get_local $8)
             (get_local $1)
            )
            (i32.store offset=8
             (get_local $8)
             (get_local $5)
            )
            (call $___syscall_ret
             (call $___syscall146
              (i32.const 146)
              (get_local $8)
             )
            )
           )
          )
         )
        )
       )
       (br_if $jumpthreading$inner$1
        (i32.lt_s
         (get_local $4)
         (i32.const 0)
        )
       )
       (set_local $11
        (i32.sub
         (get_local $11)
         (get_local $4)
        )
       )
       (set_local $1
        (if i32
         (i32.gt_u
          (get_local $4)
          (tee_local $12
           (i32.load offset=4
            (get_local $1)
           )
          )
         )
         (block $block2 i32
          (i32.store
           (get_local $6)
           (tee_local $3
            (i32.load
             (get_local $14)
            )
           )
          )
          (i32.store
           (get_local $10)
           (get_local $3)
          )
          (set_local $4
           (i32.sub
            (get_local $4)
            (get_local $12)
           )
          )
          (set_local $3
           (i32.add
            (get_local $1)
            (i32.const 8)
           )
          )
          (set_local $5
           (i32.add
            (get_local $5)
            (i32.const -1)
           )
          )
          (i32.load offset=12
           (get_local $1)
          )
         )
         (if i32
          (i32.eq
           (get_local $5)
           (i32.const 2)
          )
          (block $block4 i32
           (i32.store
            (get_local $6)
            (i32.add
             (i32.load
              (get_local $6)
             )
             (get_local $4)
            )
           )
           (set_local $3
            (get_local $1)
           )
           (set_local $5
            (i32.const 2)
           )
           (get_local $12)
          )
          (block $block5 i32
           (set_local $3
            (get_local $1)
           )
           (get_local $12)
          )
         )
        )
       )
       (i32.store
        (get_local $3)
        (i32.add
         (i32.load
          (get_local $3)
         )
         (get_local $4)
        )
       )
       (i32.store offset=4
        (get_local $3)
        (i32.sub
         (get_local $1)
         (get_local $4)
        )
       )
       (set_local $1
        (get_local $3)
       )
       (br $while-in)
      )
     )
     (i32.store offset=16
      (get_local $0)
      (i32.add
       (tee_local $1
        (i32.load
         (get_local $14)
        )
       )
       (i32.load offset=48
        (get_local $0)
       )
      )
     )
     (i32.store
      (get_local $6)
      (tee_local $0
       (get_local $1)
      )
     )
     (i32.store
      (get_local $10)
      (get_local $0)
     )
     (br $jumpthreading$outer$1
      (get_local $2)
     )
    )
    (i32.store offset=16
     (get_local $0)
     (i32.const 0)
    )
    (i32.store
     (get_local $6)
     (i32.const 0)
    )
    (i32.store
     (get_local $10)
     (i32.const 0)
    )
    (i32.store
     (get_local $0)
     (i32.or
      (i32.load
       (get_local $0)
      )
      (i32.const 32)
     )
    )
    (select
     (i32.const 0)
     (i32.sub
      (get_local $2)
      (i32.load offset=4
       (get_local $1)
      )
     )
     (i32.eq
      (get_local $5)
      (i32.const 2)
     )
    )
   )
  )
  (set_global $STACKTOP
   (get_local $7)
  )
  (get_local $0)
 )
 (func $___stdio_seek (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (set_local $4
   (get_global $STACKTOP)
  )
  (set_global $STACKTOP
   (i32.add
    (get_global $STACKTOP)
    (i32.const 32)
   )
  )
  (i32.store
   (tee_local $3
    (get_local $4)
   )
   (i32.load offset=60
    (get_local $0)
   )
  )
  (i32.store offset=4
   (get_local $3)
   (i32.const 0)
  )
  (i32.store offset=8
   (get_local $3)
   (get_local $1)
  )
  (i32.store offset=12
   (get_local $3)
   (tee_local $0
    (i32.add
     (get_local $4)
     (i32.const 20)
    )
   )
  )
  (i32.store offset=16
   (get_local $3)
   (get_local $2)
  )
  (set_local $0
   (if i32
    (i32.lt_s
     (call $___syscall_ret
      (call $___syscall140
       (i32.const 140)
       (get_local $3)
      )
     )
     (i32.const 0)
    )
    (block $block i32
     (i32.store
      (get_local $0)
      (i32.const -1)
     )
     (i32.const -1)
    )
    (i32.load
     (get_local $0)
    )
   )
  )
  (set_global $STACKTOP
   (get_local $4)
  )
  (get_local $0)
 )
 (func $___syscall_ret (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (if i32
   (i32.gt_u
    (get_local $0)
    (i32.const -4096)
   )
   (block $block i32
    (i32.store
     (call $___errno_location)
     (i32.sub
      (i32.const 0)
      (get_local $0)
     )
    )
    (i32.const -1)
   )
   (get_local $0)
  )
 )
 (func $___errno_location (type $6) (result i32)
  (if i32
   (i32.load
    (i32.const 1140)
   )
   (i32.load offset=64
    (call $_pthread_self)
   )
   (i32.const 1184)
  )
 )
 (func $_cleanup_387 (type $FUNCSIG$vi) (param $0 i32)
  (if
   (i32.eqz
    (i32.load offset=68
     (get_local $0)
    )
   )
   (call $_free
    (get_local $0)
   )
  )
 )
 (func $___stdout_write (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (set_local $4
   (get_global $STACKTOP)
  )
  (set_global $STACKTOP
   (i32.add
    (get_global $STACKTOP)
    (i32.const 80)
   )
  )
  (set_local $3
   (get_local $4)
  )
  (set_local $5
   (i32.add
    (get_local $4)
    (i32.const 12)
   )
  )
  (i32.store offset=36
   (get_local $0)
   (i32.const 3)
  )
  (if
   (i32.eqz
    (i32.and
     (i32.load
      (get_local $0)
     )
     (i32.const 64)
    )
   )
   (block $block
    (i32.store
     (get_local $3)
     (i32.load offset=60
      (get_local $0)
     )
    )
    (i32.store offset=4
     (get_local $3)
     (i32.const 21505)
    )
    (i32.store offset=8
     (get_local $3)
     (get_local $5)
    )
    (if
     (call $___syscall54
      (i32.const 54)
      (get_local $3)
     )
     (i32.store8 offset=75
      (get_local $0)
      (i32.const -1)
     )
    )
   )
  )
  (set_local $0
   (call $___stdio_write
    (get_local $0)
    (get_local $1)
    (get_local $2)
   )
  )
  (set_global $STACKTOP
   (get_local $4)
  )
  (get_local $0)
 )
 (func $_fflush (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (block $do-once i32
   (if i32
    (get_local $0)
    (block $block i32
     (if
      (i32.le_s
       (i32.load offset=76
        (get_local $0)
       )
       (i32.const -1)
      )
      (br $do-once
       (call $___fflush_unlocked
        (get_local $0)
       )
      )
     )
     (set_local $2
      (i32.eqz
       (call $_malloc
        (get_local $0)
       )
      )
     )
     (set_local $1
      (call $___fflush_unlocked
       (get_local $0)
      )
     )
     (if i32
      (get_local $2)
      (get_local $1)
      (block $block9 i32
       (call $_free
        (get_local $0)
       )
       (get_local $1)
      )
     )
    )
    (block $block10 i32
     (set_local $0
      (if i32
       (i32.load
        (i32.const 1136)
       )
       (call $_fflush
        (i32.load
         (i32.const 1136)
        )
       )
       (i32.const 0)
      )
     )
     (call $___lock
      (i32.const 1168)
     )
     (if
      (tee_local $1
       (i32.load
        (i32.const 1164)
       )
      )
      (loop $while-in
       (set_local $2
        (if i32
         (i32.gt_s
          (i32.load offset=76
           (get_local $1)
          )
          (i32.const -1)
         )
         (call $_malloc
          (get_local $1)
         )
         (i32.const 0)
        )
       )
       (set_local $0
        (if i32
         (i32.gt_u
          (i32.load offset=20
           (get_local $1)
          )
          (i32.load offset=28
           (get_local $1)
          )
         )
         (i32.or
          (call $___fflush_unlocked
           (get_local $1)
          )
          (get_local $0)
         )
         (get_local $0)
        )
       )
       (if
        (get_local $2)
        (call $_free
         (get_local $1)
        )
       )
       (br_if $while-in
        (tee_local $1
         (i32.load offset=56
          (get_local $1)
         )
        )
       )
      )
     )
     (call $___unlock
      (i32.const 1168)
     )
     (get_local $0)
    )
   )
  )
 )
 (func $___fflush_unlocked (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block $jumpthreading$outer$0 i32
   (block $jumpthreading$inner$0
    (br_if $jumpthreading$inner$0
     (i32.le_u
      (i32.load
       (tee_local $1
        (i32.add
         (get_local $0)
         (i32.const 20)
        )
       )
      )
      (i32.load
       (tee_local $2
        (i32.add
         (get_local $0)
         (i32.const 28)
        )
       )
      )
     )
    )
    (drop
     (call_indirect $FUNCSIG$iiii
      (get_local $0)
      (i32.const 0)
      (i32.const 0)
      (i32.add
       (i32.and
        (i32.load offset=36
         (get_local $0)
        )
        (i32.const 3)
       )
       (i32.const 2)
      )
     )
    )
    (br_if $jumpthreading$inner$0
     (i32.load
      (get_local $1)
     )
    )
    (br $jumpthreading$outer$0
     (i32.const -1)
    )
   )
   (if
    (i32.lt_u
     (tee_local $4
      (i32.load
       (tee_local $3
        (i32.add
         (get_local $0)
         (i32.const 4)
        )
       )
      )
     )
     (tee_local $6
      (i32.load
       (tee_local $5
        (i32.add
         (get_local $0)
         (i32.const 8)
        )
       )
      )
     )
    )
    (drop
     (call_indirect $FUNCSIG$iiii
      (get_local $0)
      (i32.sub
       (get_local $4)
       (get_local $6)
      )
      (i32.const 1)
      (i32.add
       (i32.and
        (i32.load offset=40
         (get_local $0)
        )
        (i32.const 3)
       )
       (i32.const 2)
      )
     )
    )
   )
   (i32.store offset=16
    (get_local $0)
    (i32.const 0)
   )
   (i32.store
    (get_local $2)
    (i32.const 0)
   )
   (i32.store
    (get_local $1)
    (i32.const 0)
   )
   (i32.store
    (get_local $5)
    (i32.const 0)
   )
   (i32.store
    (get_local $3)
    (i32.const 0)
   )
   (i32.const 0)
  )
 )
 (func $__Znwj (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (local $1 i32)
  (set_local $1
   (select
    (get_local $0)
    (i32.const 1)
    (get_local $0)
   )
  )
  (loop $while-in
   (block $while-out
    (br_if $while-out
     (tee_local $0
      (call $_malloc
       (get_local $1)
      )
     )
    )
    (if
     (tee_local $0
      (call $__ZSt15get_new_handlerv)
     )
     (block $block
      (call_indirect $FUNCSIG$v
       (i32.add
        (i32.and
         (get_local $0)
         (i32.const 0)
        )
        (i32.const 8)
       )
      )
      (br $while-in)
     )
     (set_local $0
      (i32.const 0)
     )
    )
   )
  )
  (get_local $0)
 )
 (func $__ZSt15get_new_handlerv (type $6) (result i32)
  (local $0 i32)
  (i32.store
   (i32.const 1188)
   (i32.add
    (tee_local $0
     (i32.load
      (i32.const 1188)
     )
    )
    (i32.const 0)
   )
  )
  (get_local $0)
 )
 (func $runPostSets (type $FUNCSIG$v)
  (nop)
 )
 (func $_memset (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (set_local $4
   (i32.add
    (get_local $0)
    (get_local $2)
   )
  )
  (if
   (i32.ge_s
    (get_local $2)
    (i32.const 20)
   )
   (block $block
    (set_local $5
     (i32.or
      (i32.or
       (i32.or
        (tee_local $1
         (i32.and
          (get_local $1)
          (i32.const 255)
         )
        )
        (i32.shl
         (get_local $1)
         (i32.const 8)
        )
       )
       (i32.shl
        (get_local $1)
        (i32.const 16)
       )
      )
      (i32.shl
       (get_local $1)
       (i32.const 24)
      )
     )
    )
    (set_local $6
     (i32.and
      (get_local $4)
      (i32.const -4)
     )
    )
    (if
     (tee_local $3
      (i32.and
       (get_local $0)
       (i32.const 3)
      )
     )
     (block $block17
      (set_local $3
       (i32.sub
        (i32.add
         (get_local $0)
         (i32.const 4)
        )
        (get_local $3)
       )
      )
      (loop $while-in
       (if
        (i32.lt_s
         (get_local $0)
         (get_local $3)
        )
        (block $block19
         (i32.store8
          (get_local $0)
          (get_local $1)
         )
         (set_local $0
          (i32.add
           (get_local $0)
           (i32.const 1)
          )
         )
         (br $while-in)
        )
       )
      )
     )
    )
    (loop $while-in1
     (if
      (i32.lt_s
       (get_local $0)
       (get_local $6)
      )
      (block $block21
       (i32.store
        (get_local $0)
        (get_local $5)
       )
       (set_local $0
        (i32.add
         (get_local $0)
         (i32.const 4)
        )
       )
       (br $while-in1)
      )
     )
    )
   )
  )
  (loop $while-in3
   (if
    (i32.lt_s
     (get_local $0)
     (get_local $4)
    )
    (block $block23
     (i32.store8
      (get_local $0)
      (get_local $1)
     )
     (set_local $0
      (i32.add
       (get_local $0)
       (i32.const 1)
      )
     )
     (br $while-in3)
    )
   )
  )
  (i32.sub
   (get_local $0)
   (get_local $2)
  )
 )
 (func $_memcpy (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local $3 i32)
  (if
   (i32.ge_s
    (get_local $2)
    (i32.const 4096)
   )
   (return
    (call $_emscripten_memcpy_big
     (get_local $0)
     (get_local $1)
     (get_local $2)
    )
   )
  )
  (set_local $3
   (get_local $0)
  )
  (if
   (i32.eq
    (i32.and
     (get_local $0)
     (i32.const 3)
    )
    (i32.and
     (get_local $1)
     (i32.const 3)
    )
   )
   (block $block
    (loop $while-in
     (block $while-out
      (br_if $while-out
       (i32.eqz
        (i32.and
         (get_local $0)
         (i32.const 3)
        )
       )
      )
      (if
       (i32.eqz
        (get_local $2)
       )
       (return
        (get_local $3)
       )
      )
      (i32.store8
       (get_local $0)
       (i32.load8_s
        (get_local $1)
       )
      )
      (set_local $0
       (i32.add
        (get_local $0)
        (i32.const 1)
       )
      )
      (set_local $1
       (i32.add
        (get_local $1)
        (i32.const 1)
       )
      )
      (set_local $2
       (i32.sub
        (get_local $2)
        (i32.const 1)
       )
      )
      (br $while-in)
     )
    )
    (loop $while-in1
     (if
      (i32.ge_s
       (get_local $2)
       (i32.const 4)
      )
      (block $block27
       (i32.store
        (get_local $0)
        (i32.load
         (get_local $1)
        )
       )
       (set_local $0
        (i32.add
         (get_local $0)
         (i32.const 4)
        )
       )
       (set_local $1
        (i32.add
         (get_local $1)
         (i32.const 4)
        )
       )
       (set_local $2
        (i32.sub
         (get_local $2)
         (i32.const 4)
        )
       )
       (br $while-in1)
      )
     )
    )
   )
  )
  (loop $while-in3
   (if
    (i32.gt_s
     (get_local $2)
     (i32.const 0)
    )
    (block $block29
     (i32.store8
      (get_local $0)
      (i32.load8_s
       (get_local $1)
      )
     )
     (set_local $0
      (i32.add
       (get_local $0)
       (i32.const 1)
      )
     )
     (set_local $1
      (i32.add
       (get_local $1)
       (i32.const 1)
      )
     )
     (set_local $2
      (i32.sub
       (get_local $2)
       (i32.const 1)
      )
     )
     (br $while-in3)
    )
   )
  )
  (get_local $3)
 )
 (func $_pthread_self (type $6) (result i32)
  (i32.const 0)
 )
 (func $dynCall_ii (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
  (call_indirect $FUNCSIG$ii
   (get_local $1)
   (i32.add
    (i32.and
     (get_local $0)
     (i32.const 1)
    )
    (i32.const 0)
   )
  )
 )
 (func $dynCall_iiii (type $7) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
  (call_indirect $FUNCSIG$iiii
   (get_local $1)
   (get_local $2)
   (get_local $3)
   (i32.add
    (i32.and
     (get_local $0)
     (i32.const 3)
    )
    (i32.const 2)
   )
  )
 )
 (func $dynCall_vi (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
  (call_indirect $FUNCSIG$vi
   (get_local $1)
   (i32.add
    (i32.and
     (get_local $0)
     (i32.const 1)
    )
    (i32.const 6)
   )
  )
 )
 (func $dynCall_v (type $FUNCSIG$vi) (param $0 i32)
  (call_indirect $FUNCSIG$v
   (i32.add
    (i32.and
     (get_local $0)
     (i32.const 0)
    )
    (i32.const 8)
   )
  )
 )
 (func $b0 (type $FUNCSIG$ii) (param $0 i32) (result i32)
  (call $abort
   (i32.const 0)
  )
  (i32.const 0)
 )
 (func $b1 (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (call $abort
   (i32.const 1)
  )
  (i32.const 0)
 )
 (func $b2 (type $FUNCSIG$vi) (param $0 i32)
  (call $abort
   (i32.const 2)
  )
 )
 (func $b3 (type $FUNCSIG$v)
  (call $abort
   (i32.const 3)
  )
 )
)
