(module
 (type $0 (func (param i32) (result i32)))
 (type $1 (func (param i32 i32)))
 (type $2 (func (result i32)))
 (type $3 (func (param i32)))
 (type $4 (func))
 (import "env" "memory" (memory $mimport$0 256 256))
 (import "env" "table" (table $timport$0 0 0 funcref))
 (import "env" "DYNAMICTOP_PTR" (global $gimport$0 i32))
 (import "env" "tempDoublePtr" (global $gimport$1 i32))
 (import "env" "ABORT" (global $gimport$2 i32))
 (import "env" "STACKTOP" (global $gimport$3 i32))
 (import "env" "STACK_MAX" (global $gimport$4 i32))
 (import "env" "gb" (global $gimport$5 i32))
 (import "env" "fb" (global $gimport$6 i32))
 (import "global" "NaN" (global $gimport$7 f64))
 (import "global" "Infinity" (global $gimport$8 f64))
 (import "env" "memoryBase" (global $gimport$9 i32))
 (import "env" "tableBase" (global $gimport$10 i32))
 (global $global$0 (mut i32) (global.get $gimport$0))
 (global $global$1 (mut i32) (global.get $gimport$1))
 (global $global$2 (mut i32) (global.get $gimport$2))
 (global $global$3 (mut i32) (global.get $gimport$3))
 (global $global$4 (mut i32) (global.get $gimport$4))
 (global $global$5 (mut i32) (global.get $gimport$5))
 (global $global$6 (mut i32) (global.get $gimport$6))
 (global $global$7 (mut i32) (i32.const 0))
 (global $global$8 (mut i32) (i32.const 0))
 (global $global$9 (mut i32) (i32.const 0))
 (global $global$10 (mut i32) (i32.const 0))
 (global $global$11 (mut f64) (global.get $gimport$7))
 (global $global$12 (mut f64) (global.get $gimport$8))
 (global $global$13 (mut i32) (i32.const 0))
 (global $global$14 (mut i32) (i32.const 0))
 (global $global$15 (mut i32) (i32.const 0))
 (global $global$16 (mut i32) (i32.const 0))
 (global $global$17 (mut f64) (f64.const 0))
 (global $global$18 (mut i32) (i32.const 0))
 (global $global$19 (mut i32) (i32.const 0))
 (global $global$20 (mut i32) (i32.const 0))
 (global $global$21 (mut f64) (f64.const 0))
 (global $global$22 (mut i32) (i32.const 0))
 (global $global$23 (mut f64) (f64.const 0))
 (export "setThrew" (func $setThrew))
 (export "runPostSets" (func $runPostSets))
 (export "establishStackSpace" (func $establishStackSpace))
 (export "stackSave" (func $stackSave))
 (export "stackRestore" (func $stackRestore))
 (export "_fib" (func $_fib))
 (export "stackAlloc" (func $stackAlloc))
 (func $stackAlloc (param $0 i32) (result i32)
  (local $1 i32)
  (block
   (local.set $1
    (global.get $global$3)
   )
   (global.set $global$3
    (i32.add
     (global.get $global$3)
     (local.get $0)
    )
   )
   (global.set $global$3
    (i32.and
     (i32.add
      (global.get $global$3)
      (i32.const 15)
     )
     (i32.const -16)
    )
   )
   (return
    (local.get $1)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $stackSave (result i32)
  (return
   (global.get $global$3)
  )
 )
 (func $stackRestore (param $0 i32)
  (global.set $global$3
   (local.get $0)
  )
 )
 (func $establishStackSpace (param $0 i32) (param $1 i32)
  (global.set $global$3
   (local.get $0)
  )
  (global.set $global$4
   (local.get $1)
  )
 )
 (func $setThrew (param $0 i32) (param $1 i32)
  (if
   (i32.eq
    (global.get $global$7)
    (i32.const 0)
   )
   (then
    (global.set $global$7
     (local.get $0)
    )
    (global.set $global$8
     (local.get $1)
    )
   )
  )
 )
 (func $_fib (param $0 i32) (result i32)
  (local $1 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)
  (block
   (local.set $11
    (global.get $global$3)
   )
   ;;@ fib.c:3:0
   (local.set $6
    (i32.gt_s
     (local.get $0)
     (i32.const 0)
    )
   )
   ;;@ fib.c:3:0
   (if
    (local.get $6)
    (then
     (local.set $1
      (i32.const 0)
     )
     (local.set $5
      (i32.const 1)
     )
     (local.set $8
      (i32.const 0)
     )
    )
    (else
     (local.set $4
      (i32.const 1)
     )
     ;;@ fib.c:8:0
     (return
      (local.get $4)
     )
    )
   )
   ;;@ fib.c:8:0
   (loop $label
    (block $block
     ;;@ fib.c:4:0
     (local.set $3
      (i32.add
       (local.get $5)
       (local.get $1)
      )
     )
     ;;@ fib.c:3:0
     (local.set $9
      (i32.add
       (local.get $8)
       (i32.const 1)
      )
     )
     ;;@ fib.c:3:0
     (local.set $7
      (i32.eq
       (local.get $9)
       (local.get $0)
      )
     )
     ;;@ fib.c:3:0
     (if
      (local.get $7)
      (then
       (local.set $4
        (local.get $3)
       )
       (br $block)
      )
      (else
       (local.set $2
        (local.get $5)
       )
       (local.set $5
        (local.get $3)
       )
       (local.set $8
        (local.get $9)
       )
       (local.set $1
        (local.get $2)
       )
      )
     )
     ;;@ fib.c:3:0
     (br $label)
    )
   )
   ;;@ fib.c:8:0
   (return
    (local.get $4)
   )
   ;;@ fib.c:8:0
   (unreachable)
   ;;@ fib.c:8:0
   (unreachable)
  )
  ;;@ fib.c:8:0
  (unreachable)
  ;;@ fib.c:8:0
 )
 (func $runPostSets
  (local $0 i32)
  (nop)
 )
 ;; custom section "sourceMappingURL", size 35, contents: "\"http://localhost:8000/fib.wasm.map"
)

