(module $sha.wasm
  (type (;0;) (func (param i32 i32)))
  (type (;1;) (func))
  (type (;2;) (func (param i32)))
  (type (;3;) (func (param i32 i32 i32)))
  (type (;4;) (func (result i32)))
  (type (;5;) (func (param i32 i32 i32) (result i32)))
  (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
  (func $__wasm_apply_data_relocs (type 1))
  (func $sha_transform (type 2) (param i32)
    (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
    global.get $__stack_pointer
    i32.const 320
    i32.sub
    local.tee 1
    global.set $__stack_pointer
    i32.const 16
    i32.const 16
    call $__pragma_loopbound
    local.get 1
    local.get 0
    i32.load offset=28
    i32.store
    local.get 1
    local.get 0
    i64.load offset=32 align=4
    i64.store offset=4 align=4
    local.get 1
    local.get 0
    i64.load offset=40 align=4
    i64.store offset=12 align=4
    local.get 1
    local.get 0
    i64.load offset=48 align=4
    i64.store offset=20 align=4
    local.get 1
    local.get 0
    i64.load offset=56 align=4
    i64.store offset=28 align=4
    local.get 1
    local.get 0
    i64.load offset=64 align=4
    i64.store offset=36 align=4
    local.get 1
    local.get 0
    i64.load offset=72 align=4
    i64.store offset=44 align=4
    local.get 1
    local.get 0
    i64.load offset=80 align=4
    i64.store offset=52 align=4
    local.get 1
    local.get 0
    i32.load offset=88
    i32.store offset=60
    i32.const 64
    i32.const 64
    call $__pragma_loopbound
    i32.const 0
    local.set 2
    loop  ;; label = @1
      local.get 1
      local.get 2
      i32.add
      local.tee 3
      i32.const 64
      i32.add
      local.get 3
      i32.const 32
      i32.add
      i32.load
      local.get 3
      i32.const 52
      i32.add
      i32.load
      i32.xor
      local.get 3
      i32.const 8
      i32.add
      i32.load
      i32.xor
      local.get 3
      i32.load
      i32.xor
      i32.store
      local.get 2
      i32.const 4
      i32.add
      local.tee 2
      i32.const 256
      i32.ne
      br_if 0 (;@1;)
    end
    local.get 0
    i32.load offset=16
    local.set 4
    local.get 0
    i32.load offset=12
    local.set 5
    local.get 0
    i32.load offset=8
    local.set 3
    local.get 0
    i32.load offset=4
    local.set 6
    local.get 0
    i32.load
    local.set 2
    i32.const 20
    i32.const 20
    call $__pragma_loopbound
    i32.const 0
    local.set 7
    loop  ;; label = @1
      local.get 2
      local.tee 8
      i32.const 5
      i32.rotl
      local.get 4
      i32.add
      local.get 5
      local.tee 9
      local.get 6
      i32.const -1
      i32.xor
      i32.and
      local.get 3
      local.tee 10
      local.get 6
      i32.and
      i32.or
      i32.add
      local.get 1
      local.get 7
      i32.add
      i32.load
      i32.add
      i32.const 1518500249
      i32.add
      local.set 2
      local.get 6
      i32.const 30
      i32.rotl
      local.set 3
      local.get 9
      local.set 4
      local.get 10
      local.set 5
      local.get 8
      local.set 6
      local.get 7
      i32.const 4
      i32.add
      local.tee 7
      i32.const 80
      i32.ne
      br_if 0 (;@1;)
    end
    i32.const 20
    i32.const 20
    call $__pragma_loopbound
    i32.const 80
    local.set 5
    loop  ;; label = @1
      local.get 2
      local.tee 6
      i32.const 5
      i32.rotl
      local.get 3
      local.tee 7
      local.get 8
      i32.xor
      local.get 10
      local.tee 4
      i32.xor
      i32.add
      local.get 9
      i32.add
      local.get 1
      local.get 5
      i32.add
      i32.load
      i32.add
      i32.const 1859775393
      i32.add
      local.set 2
      local.get 8
      i32.const 30
      i32.rotl
      local.set 3
      local.get 4
      local.set 9
      local.get 7
      local.set 10
      local.get 6
      local.set 8
      local.get 5
      i32.const 4
      i32.add
      local.tee 5
      i32.const 160
      i32.ne
      br_if 0 (;@1;)
    end
    i32.const 20
    i32.const 20
    call $__pragma_loopbound
    i32.const 160
    local.set 5
    loop  ;; label = @1
      local.get 2
      local.tee 8
      i32.const 5
      i32.rotl
      local.get 4
      i32.add
      local.get 7
      local.tee 9
      local.get 3
      local.tee 10
      i32.or
      local.get 6
      i32.and
      local.get 9
      local.get 10
      i32.and
      i32.or
      i32.add
      local.get 1
      local.get 5
      i32.add
      i32.load
      i32.add
      i32.const -1894007588
      i32.add
      local.set 2
      local.get 6
      i32.const 30
      i32.rotl
      local.set 3
      local.get 9
      local.set 4
      local.get 10
      local.set 7
      local.get 8
      local.set 6
      local.get 5
      i32.const 4
      i32.add
      local.tee 5
      i32.const 240
      i32.ne
      br_if 0 (;@1;)
    end
    i32.const 20
    i32.const 20
    call $__pragma_loopbound
    i32.const 240
    local.set 6
    loop  ;; label = @1
      local.get 2
      local.tee 7
      i32.const 5
      i32.rotl
      local.get 3
      local.tee 4
      local.get 8
      i32.xor
      local.get 10
      local.tee 5
      i32.xor
      i32.add
      local.get 9
      i32.add
      local.get 1
      local.get 6
      i32.add
      i32.load
      i32.add
      i32.const -899497514
      i32.add
      local.set 2
      local.get 8
      i32.const 30
      i32.rotl
      local.set 3
      local.get 5
      local.set 9
      local.get 4
      local.set 10
      local.get 7
      local.set 8
      local.get 6
      i32.const 4
      i32.add
      local.tee 6
      i32.const 320
      i32.ne
      br_if 0 (;@1;)
    end
    local.get 0
    local.get 0
    i32.load
    local.get 2
    i32.add
    i32.store
    local.get 0
    local.get 0
    i32.load offset=4
    local.get 7
    i32.add
    i32.store offset=4
    local.get 0
    local.get 0
    i32.load offset=8
    local.get 3
    i32.add
    i32.store offset=8
    local.get 0
    local.get 0
    i32.load offset=12
    local.get 4
    i32.add
    i32.store offset=12
    local.get 0
    local.get 0
    i32.load offset=16
    local.get 5
    i32.add
    i32.store offset=16
    local.get 1
    i32.const 320
    i32.add
    global.set $__stack_pointer)
  (func $sha_update (type 3) (param i32 i32 i32)
    (local i32 i32 i32 i32)
    local.get 0
    local.get 0
    i32.load offset=20
    local.tee 3
    local.get 2
    i32.const 3
    i32.shl
    local.tee 4
    i32.add
    i32.store offset=20
    local.get 0
    local.get 0
    i32.load offset=24
    local.get 4
    local.get 3
    i32.const -1
    i32.xor
    i32.gt_u
    i32.add
    local.get 2
    i32.const 29
    i32.shr_u
    i32.add
    i32.store offset=24
    i32.const 8
    i32.const 128
    call $__pragma_loopbound
    block  ;; label = @1
      block  ;; label = @2
        local.get 2
        i32.const 64
        i32.ge_s
        br_if 0 (;@2;)
        local.get 2
        local.set 4
        br 1 (;@1;)
      end
      local.get 0
      i32.const 28
      i32.add
      local.set 5
      loop  ;; label = @2
        local.get 5
        local.get 1
        i32.const 64
        call $sha_glibc_memcpy
        drop
        i32.const 16
        i32.const 16
        call $__pragma_loopbound
        local.get 0
        i32.load8_u offset=31
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=28
        i32.store8 offset=31
        local.get 0
        i32.load8_u offset=30
        local.set 4
        local.get 0
        local.get 0
        i32.load8_u offset=29
        i32.store8 offset=30
        local.get 0
        local.get 4
        i32.store8 offset=29
        local.get 0
        local.get 3
        i32.store8 offset=28
        local.get 0
        i32.load8_u offset=32
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=35
        i32.store8 offset=32
        local.get 0
        i32.load8_u offset=33
        local.set 4
        local.get 0
        local.get 0
        i32.load8_u offset=34
        i32.store8 offset=33
        local.get 0
        local.get 4
        i32.store8 offset=34
        local.get 0
        local.get 3
        i32.store8 offset=35
        local.get 0
        i32.load8_u offset=36
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=39
        i32.store8 offset=36
        local.get 0
        i32.load8_u offset=38
        local.set 4
        local.get 0
        i32.load8_u offset=37
        local.set 6
        local.get 0
        local.get 3
        i32.store8 offset=39
        local.get 0
        local.get 6
        i32.store8 offset=38
        local.get 0
        local.get 4
        i32.store8 offset=37
        local.get 0
        i32.load8_u offset=43
        local.set 3
        local.get 0
        i32.load8_u offset=42
        local.set 4
        local.get 0
        i32.load8_u offset=41
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=40
        i32.store8 offset=43
        local.get 0
        local.get 6
        i32.store8 offset=42
        local.get 0
        local.get 4
        i32.store8 offset=41
        local.get 0
        local.get 3
        i32.store8 offset=40
        local.get 0
        i32.load8_u offset=47
        local.set 3
        local.get 0
        i32.load8_u offset=46
        local.set 4
        local.get 0
        i32.load8_u offset=45
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=44
        i32.store8 offset=47
        local.get 0
        local.get 6
        i32.store8 offset=46
        local.get 0
        local.get 4
        i32.store8 offset=45
        local.get 0
        local.get 3
        i32.store8 offset=44
        local.get 0
        i32.load8_u offset=51
        local.set 3
        local.get 0
        i32.load8_u offset=50
        local.set 4
        local.get 0
        i32.load8_u offset=49
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=48
        i32.store8 offset=51
        local.get 0
        local.get 6
        i32.store8 offset=50
        local.get 0
        local.get 4
        i32.store8 offset=49
        local.get 0
        local.get 3
        i32.store8 offset=48
        local.get 0
        i32.load8_u offset=55
        local.set 3
        local.get 0
        i32.load8_u offset=54
        local.set 4
        local.get 0
        i32.load8_u offset=53
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=52
        i32.store8 offset=55
        local.get 0
        local.get 6
        i32.store8 offset=54
        local.get 0
        local.get 4
        i32.store8 offset=53
        local.get 0
        local.get 3
        i32.store8 offset=52
        local.get 0
        i32.load8_u offset=59
        local.set 3
        local.get 0
        i32.load8_u offset=58
        local.set 4
        local.get 0
        i32.load8_u offset=57
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=56
        i32.store8 offset=59
        local.get 0
        local.get 6
        i32.store8 offset=58
        local.get 0
        local.get 4
        i32.store8 offset=57
        local.get 0
        local.get 3
        i32.store8 offset=56
        local.get 0
        i32.load8_u offset=63
        local.set 3
        local.get 0
        i32.load8_u offset=62
        local.set 4
        local.get 0
        i32.load8_u offset=61
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=60
        i32.store8 offset=63
        local.get 0
        local.get 6
        i32.store8 offset=62
        local.get 0
        local.get 4
        i32.store8 offset=61
        local.get 0
        local.get 3
        i32.store8 offset=60
        local.get 0
        i32.load8_u offset=67
        local.set 3
        local.get 0
        i32.load8_u offset=66
        local.set 4
        local.get 0
        i32.load8_u offset=65
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=64
        i32.store8 offset=67
        local.get 0
        local.get 6
        i32.store8 offset=66
        local.get 0
        local.get 4
        i32.store8 offset=65
        local.get 0
        local.get 3
        i32.store8 offset=64
        local.get 0
        i32.load8_u offset=71
        local.set 3
        local.get 0
        i32.load8_u offset=70
        local.set 4
        local.get 0
        i32.load8_u offset=69
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=68
        i32.store8 offset=71
        local.get 0
        local.get 6
        i32.store8 offset=70
        local.get 0
        local.get 4
        i32.store8 offset=69
        local.get 0
        local.get 3
        i32.store8 offset=68
        local.get 0
        i32.load8_u offset=75
        local.set 3
        local.get 0
        i32.load8_u offset=74
        local.set 4
        local.get 0
        i32.load8_u offset=73
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=72
        i32.store8 offset=75
        local.get 0
        local.get 6
        i32.store8 offset=74
        local.get 0
        local.get 4
        i32.store8 offset=73
        local.get 0
        local.get 3
        i32.store8 offset=72
        local.get 0
        i32.load8_u offset=79
        local.set 3
        local.get 0
        i32.load8_u offset=78
        local.set 4
        local.get 0
        i32.load8_u offset=77
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=76
        i32.store8 offset=79
        local.get 0
        local.get 6
        i32.store8 offset=78
        local.get 0
        local.get 4
        i32.store8 offset=77
        local.get 0
        local.get 3
        i32.store8 offset=76
        local.get 0
        i32.load8_u offset=83
        local.set 3
        local.get 0
        i32.load8_u offset=82
        local.set 4
        local.get 0
        i32.load8_u offset=81
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=80
        i32.store8 offset=83
        local.get 0
        local.get 6
        i32.store8 offset=82
        local.get 0
        local.get 4
        i32.store8 offset=81
        local.get 0
        local.get 3
        i32.store8 offset=80
        local.get 0
        i32.load8_u offset=87
        local.set 3
        local.get 0
        i32.load8_u offset=86
        local.set 4
        local.get 0
        i32.load8_u offset=85
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=84
        i32.store8 offset=87
        local.get 0
        local.get 6
        i32.store8 offset=86
        local.get 0
        local.get 4
        i32.store8 offset=85
        local.get 0
        local.get 3
        i32.store8 offset=84
        local.get 0
        i32.load8_u offset=91
        local.set 3
        local.get 0
        i32.load8_u offset=90
        local.set 4
        local.get 0
        i32.load8_u offset=89
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=88
        i32.store8 offset=91
        local.get 0
        local.get 6
        i32.store8 offset=90
        local.get 0
        local.get 4
        i32.store8 offset=89
        local.get 0
        local.get 3
        i32.store8 offset=88
        local.get 0
        call $sha_transform
        local.get 1
        i32.const 64
        i32.add
        local.set 1
        local.get 2
        i32.const 127
        i32.gt_u
        local.set 3
        local.get 2
        i32.const -64
        i32.add
        local.tee 4
        local.set 2
        local.get 3
        br_if 0 (;@2;)
      end
    end
    local.get 0
    i32.const 28
    i32.add
    local.get 1
    local.get 4
    call $sha_glibc_memcpy
    drop)
  (func $sha_final (type 2) (param i32)
    (local i32 i32 i32 i32 i32 i32)
    local.get 0
    i32.const 28
    i32.add
    local.tee 1
    local.get 0
    i32.load offset=20
    local.tee 2
    i32.const 3
    i32.shr_u
    i32.const 63
    i32.and
    local.tee 3
    i32.add
    local.tee 4
    i32.const 128
    i32.store8
    local.get 4
    i32.const 1
    i32.add
    local.set 4
    local.get 0
    i32.load offset=24
    local.set 5
    block  ;; label = @1
      block  ;; label = @2
        local.get 3
        i32.const 56
        i32.lt_u
        br_if 0 (;@2;)
        local.get 4
        i32.const 0
        local.get 3
        i32.const 63
        i32.xor
        call $sha_glibc_memset
        drop
        i32.const 16
        i32.const 16
        call $__pragma_loopbound
        local.get 0
        i32.load8_u offset=31
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=28
        i32.store8 offset=31
        local.get 0
        i32.load8_u offset=30
        local.set 4
        local.get 0
        local.get 0
        i32.load8_u offset=29
        i32.store8 offset=30
        local.get 0
        local.get 4
        i32.store8 offset=29
        local.get 0
        local.get 3
        i32.store8 offset=28
        local.get 0
        i32.load8_u offset=32
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=35
        i32.store8 offset=32
        local.get 0
        i32.load8_u offset=33
        local.set 4
        local.get 0
        local.get 0
        i32.load8_u offset=34
        i32.store8 offset=33
        local.get 0
        local.get 4
        i32.store8 offset=34
        local.get 0
        local.get 3
        i32.store8 offset=35
        local.get 0
        i32.load8_u offset=36
        local.set 3
        local.get 0
        local.get 0
        i32.load8_u offset=39
        i32.store8 offset=36
        local.get 0
        i32.load8_u offset=38
        local.set 4
        local.get 0
        i32.load8_u offset=37
        local.set 6
        local.get 0
        local.get 3
        i32.store8 offset=39
        local.get 0
        local.get 6
        i32.store8 offset=38
        local.get 0
        local.get 4
        i32.store8 offset=37
        local.get 0
        i32.load8_u offset=43
        local.set 3
        local.get 0
        i32.load8_u offset=42
        local.set 4
        local.get 0
        i32.load8_u offset=41
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=40
        i32.store8 offset=43
        local.get 0
        local.get 6
        i32.store8 offset=42
        local.get 0
        local.get 4
        i32.store8 offset=41
        local.get 0
        local.get 3
        i32.store8 offset=40
        local.get 0
        i32.load8_u offset=47
        local.set 3
        local.get 0
        i32.load8_u offset=46
        local.set 4
        local.get 0
        i32.load8_u offset=45
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=44
        i32.store8 offset=47
        local.get 0
        local.get 6
        i32.store8 offset=46
        local.get 0
        local.get 4
        i32.store8 offset=45
        local.get 0
        local.get 3
        i32.store8 offset=44
        local.get 0
        i32.load8_u offset=51
        local.set 3
        local.get 0
        i32.load8_u offset=50
        local.set 4
        local.get 0
        i32.load8_u offset=49
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=48
        i32.store8 offset=51
        local.get 0
        local.get 6
        i32.store8 offset=50
        local.get 0
        local.get 4
        i32.store8 offset=49
        local.get 0
        local.get 3
        i32.store8 offset=48
        local.get 0
        i32.load8_u offset=55
        local.set 3
        local.get 0
        i32.load8_u offset=54
        local.set 4
        local.get 0
        i32.load8_u offset=53
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=52
        i32.store8 offset=55
        local.get 0
        local.get 6
        i32.store8 offset=54
        local.get 0
        local.get 4
        i32.store8 offset=53
        local.get 0
        local.get 3
        i32.store8 offset=52
        local.get 0
        i32.load8_u offset=59
        local.set 3
        local.get 0
        i32.load8_u offset=58
        local.set 4
        local.get 0
        i32.load8_u offset=57
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=56
        i32.store8 offset=59
        local.get 0
        local.get 6
        i32.store8 offset=58
        local.get 0
        local.get 4
        i32.store8 offset=57
        local.get 0
        local.get 3
        i32.store8 offset=56
        local.get 0
        i32.load8_u offset=63
        local.set 3
        local.get 0
        i32.load8_u offset=62
        local.set 4
        local.get 0
        i32.load8_u offset=61
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=60
        i32.store8 offset=63
        local.get 0
        local.get 6
        i32.store8 offset=62
        local.get 0
        local.get 4
        i32.store8 offset=61
        local.get 0
        local.get 3
        i32.store8 offset=60
        local.get 0
        i32.load8_u offset=67
        local.set 3
        local.get 0
        i32.load8_u offset=66
        local.set 4
        local.get 0
        i32.load8_u offset=65
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=64
        i32.store8 offset=67
        local.get 0
        local.get 6
        i32.store8 offset=66
        local.get 0
        local.get 4
        i32.store8 offset=65
        local.get 0
        local.get 3
        i32.store8 offset=64
        local.get 0
        i32.load8_u offset=71
        local.set 3
        local.get 0
        i32.load8_u offset=70
        local.set 4
        local.get 0
        i32.load8_u offset=69
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=68
        i32.store8 offset=71
        local.get 0
        local.get 6
        i32.store8 offset=70
        local.get 0
        local.get 4
        i32.store8 offset=69
        local.get 0
        local.get 3
        i32.store8 offset=68
        local.get 0
        i32.load8_u offset=75
        local.set 3
        local.get 0
        i32.load8_u offset=74
        local.set 4
        local.get 0
        i32.load8_u offset=73
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=72
        i32.store8 offset=75
        local.get 0
        local.get 6
        i32.store8 offset=74
        local.get 0
        local.get 4
        i32.store8 offset=73
        local.get 0
        local.get 3
        i32.store8 offset=72
        local.get 0
        i32.load8_u offset=79
        local.set 3
        local.get 0
        i32.load8_u offset=78
        local.set 4
        local.get 0
        i32.load8_u offset=77
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=76
        i32.store8 offset=79
        local.get 0
        local.get 6
        i32.store8 offset=78
        local.get 0
        local.get 4
        i32.store8 offset=77
        local.get 0
        local.get 3
        i32.store8 offset=76
        local.get 0
        i32.load8_u offset=83
        local.set 3
        local.get 0
        i32.load8_u offset=82
        local.set 4
        local.get 0
        i32.load8_u offset=81
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=80
        i32.store8 offset=83
        local.get 0
        local.get 6
        i32.store8 offset=82
        local.get 0
        local.get 4
        i32.store8 offset=81
        local.get 0
        local.get 3
        i32.store8 offset=80
        local.get 0
        i32.load8_u offset=87
        local.set 3
        local.get 0
        i32.load8_u offset=86
        local.set 4
        local.get 0
        i32.load8_u offset=85
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=84
        i32.store8 offset=87
        local.get 0
        local.get 6
        i32.store8 offset=86
        local.get 0
        local.get 4
        i32.store8 offset=85
        local.get 0
        local.get 3
        i32.store8 offset=84
        local.get 0
        i32.load8_u offset=91
        local.set 3
        local.get 0
        i32.load8_u offset=90
        local.set 4
        local.get 0
        i32.load8_u offset=89
        local.set 6
        local.get 0
        local.get 0
        i32.load8_u offset=88
        i32.store8 offset=91
        local.get 0
        local.get 6
        i32.store8 offset=90
        local.get 0
        local.get 4
        i32.store8 offset=89
        local.get 0
        local.get 3
        i32.store8 offset=88
        local.get 0
        call $sha_transform
        local.get 1
        i32.const 0
        i32.const 56
        call $sha_glibc_memset
        drop
        br 1 (;@1;)
      end
      local.get 4
      i32.const 0
      i32.const 55
      local.get 3
      i32.sub
      call $sha_glibc_memset
      drop
    end
    i32.const 16
    i32.const 16
    call $__pragma_loopbound
    local.get 0
    i32.load8_u offset=31
    local.set 3
    local.get 0
    local.get 0
    i32.load8_u offset=28
    i32.store8 offset=31
    local.get 0
    i32.load8_u offset=30
    local.set 4
    local.get 0
    local.get 0
    i32.load8_u offset=29
    i32.store8 offset=30
    local.get 0
    local.get 4
    i32.store8 offset=29
    local.get 0
    local.get 3
    i32.store8 offset=28
    local.get 0
    i32.load8_u offset=32
    local.set 3
    local.get 0
    local.get 0
    i32.load8_u offset=35
    i32.store8 offset=32
    local.get 0
    i32.load8_u offset=33
    local.set 4
    local.get 0
    local.get 0
    i32.load8_u offset=34
    i32.store8 offset=33
    local.get 0
    local.get 4
    i32.store8 offset=34
    local.get 0
    local.get 3
    i32.store8 offset=35
    local.get 0
    i32.load8_u offset=36
    local.set 3
    local.get 0
    local.get 0
    i32.load8_u offset=39
    i32.store8 offset=36
    local.get 0
    i32.load8_u offset=38
    local.set 4
    local.get 0
    i32.load8_u offset=37
    local.set 1
    local.get 0
    local.get 3
    i32.store8 offset=39
    local.get 0
    local.get 1
    i32.store8 offset=38
    local.get 0
    local.get 4
    i32.store8 offset=37
    local.get 0
    i32.load8_u offset=43
    local.set 3
    local.get 0
    i32.load8_u offset=42
    local.set 4
    local.get 0
    i32.load8_u offset=41
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=40
    i32.store8 offset=43
    local.get 0
    local.get 1
    i32.store8 offset=42
    local.get 0
    local.get 4
    i32.store8 offset=41
    local.get 0
    local.get 3
    i32.store8 offset=40
    local.get 0
    i32.load8_u offset=47
    local.set 3
    local.get 0
    i32.load8_u offset=46
    local.set 4
    local.get 0
    i32.load8_u offset=45
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=44
    i32.store8 offset=47
    local.get 0
    local.get 1
    i32.store8 offset=46
    local.get 0
    local.get 4
    i32.store8 offset=45
    local.get 0
    local.get 3
    i32.store8 offset=44
    local.get 0
    i32.load8_u offset=51
    local.set 3
    local.get 0
    i32.load8_u offset=50
    local.set 4
    local.get 0
    i32.load8_u offset=49
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=48
    i32.store8 offset=51
    local.get 0
    local.get 1
    i32.store8 offset=50
    local.get 0
    local.get 4
    i32.store8 offset=49
    local.get 0
    local.get 3
    i32.store8 offset=48
    local.get 0
    i32.load8_u offset=55
    local.set 3
    local.get 0
    i32.load8_u offset=54
    local.set 4
    local.get 0
    i32.load8_u offset=53
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=52
    i32.store8 offset=55
    local.get 0
    local.get 1
    i32.store8 offset=54
    local.get 0
    local.get 4
    i32.store8 offset=53
    local.get 0
    local.get 3
    i32.store8 offset=52
    local.get 0
    i32.load8_u offset=59
    local.set 3
    local.get 0
    i32.load8_u offset=58
    local.set 4
    local.get 0
    i32.load8_u offset=57
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=56
    i32.store8 offset=59
    local.get 0
    local.get 1
    i32.store8 offset=58
    local.get 0
    local.get 4
    i32.store8 offset=57
    local.get 0
    local.get 3
    i32.store8 offset=56
    local.get 0
    i32.load8_u offset=63
    local.set 3
    local.get 0
    i32.load8_u offset=62
    local.set 4
    local.get 0
    i32.load8_u offset=61
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=60
    i32.store8 offset=63
    local.get 0
    local.get 1
    i32.store8 offset=62
    local.get 0
    local.get 4
    i32.store8 offset=61
    local.get 0
    local.get 3
    i32.store8 offset=60
    local.get 0
    i32.load8_u offset=67
    local.set 3
    local.get 0
    i32.load8_u offset=66
    local.set 4
    local.get 0
    i32.load8_u offset=65
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=64
    i32.store8 offset=67
    local.get 0
    local.get 1
    i32.store8 offset=66
    local.get 0
    local.get 4
    i32.store8 offset=65
    local.get 0
    local.get 3
    i32.store8 offset=64
    local.get 0
    i32.load8_u offset=71
    local.set 3
    local.get 0
    i32.load8_u offset=70
    local.set 4
    local.get 0
    i32.load8_u offset=69
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=68
    i32.store8 offset=71
    local.get 0
    local.get 1
    i32.store8 offset=70
    local.get 0
    local.get 4
    i32.store8 offset=69
    local.get 0
    local.get 3
    i32.store8 offset=68
    local.get 0
    i32.load8_u offset=75
    local.set 3
    local.get 0
    i32.load8_u offset=74
    local.set 4
    local.get 0
    i32.load8_u offset=73
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=72
    i32.store8 offset=75
    local.get 0
    local.get 1
    i32.store8 offset=74
    local.get 0
    local.get 4
    i32.store8 offset=73
    local.get 0
    local.get 3
    i32.store8 offset=72
    local.get 0
    i32.load8_u offset=79
    local.set 3
    local.get 0
    i32.load8_u offset=78
    local.set 4
    local.get 0
    i32.load8_u offset=77
    local.set 1
    local.get 0
    local.get 0
    i32.load8_u offset=76
    i32.store8 offset=79
    local.get 0
    local.get 1
    i32.store8 offset=78
    local.get 0
    local.get 4
    i32.store8 offset=77
    local.get 0
    local.get 3
    i32.store8 offset=76
    local.get 0
    i32.load8_u offset=83
    local.set 3
    local.get 0
    i32.load8_u offset=82
    local.set 4
    local.get 0
    i32.load8_u offset=81
    local.set 1
    local.get 0
    i32.load8_u offset=80
    local.set 6
    local.get 0
    local.get 2
    i32.store offset=88
    local.get 0
    local.get 5
    i32.store offset=84
    local.get 0
    local.get 6
    i32.store8 offset=83
    local.get 0
    local.get 1
    i32.store8 offset=82
    local.get 0
    local.get 4
    i32.store8 offset=81
    local.get 0
    local.get 3
    i32.store8 offset=80
    local.get 0
    call $sha_transform)
  (func $sha_main (type 1)
    (local i32 i32 i32 i32)
    global.get $__stack_pointer
    i32.const 8192
    i32.sub
    local.tee 0
    global.set $__stack_pointer
    i32.const 5
    i32.const 5
    call $__pragma_loopbound
    i32.const 0
    i32.const 8192
    call $__pragma_loopbound
    i32.const -8192
    local.set 1
    loop  ;; label = @1
      local.get 0
      local.get 1
      i32.add
      local.tee 2
      i32.const 8192
      i32.add
      i32.const 1024
      local.get 1
      i32.add
      local.tee 3
      i32.const 8192
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8193
      i32.add
      local.get 3
      i32.const 8193
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8194
      i32.add
      local.get 3
      i32.const 8194
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8195
      i32.add
      local.get 3
      i32.const 8195
      i32.add
      i32.load8_u
      i32.store8
      local.get 1
      i32.const 4
      i32.add
      local.tee 1
      br_if 0 (;@1;)
    end
    i32.const 33768
    local.get 0
    i32.const 8192
    call $sha_update
    i32.const 0
    i32.const 8192
    call $__pragma_loopbound
    i32.const -8192
    local.set 1
    loop  ;; label = @1
      local.get 0
      local.get 1
      i32.add
      local.tee 2
      i32.const 8192
      i32.add
      i32.const 1024
      local.get 1
      i32.add
      local.tee 3
      i32.const 16384
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8193
      i32.add
      local.get 3
      i32.const 16385
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8194
      i32.add
      local.get 3
      i32.const 16386
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8195
      i32.add
      local.get 3
      i32.const 16387
      i32.add
      i32.load8_u
      i32.store8
      local.get 1
      i32.const 4
      i32.add
      local.tee 1
      br_if 0 (;@1;)
    end
    i32.const 33768
    local.get 0
    i32.const 8192
    call $sha_update
    i32.const 0
    i32.const 8192
    call $__pragma_loopbound
    i32.const -8192
    local.set 1
    loop  ;; label = @1
      local.get 0
      local.get 1
      i32.add
      local.tee 2
      i32.const 8192
      i32.add
      i32.const 1024
      local.get 1
      i32.add
      local.tee 3
      i32.const 24576
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8193
      i32.add
      local.get 3
      i32.const 24577
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8194
      i32.add
      local.get 3
      i32.const 24578
      i32.add
      i32.load8_u
      i32.store8
      local.get 2
      i32.const 8195
      i32.add
      local.get 3
      i32.const 24579
      i32.add
      i32.load8_u
      i32.store8
      local.get 1
      i32.const 4
      i32.add
      local.tee 1
      br_if 0 (;@1;)
    end
    i32.const 33768
    local.get 0
    i32.const 8192
    call $sha_update
    i32.const 0
    i32.const 8192
    call $__pragma_loopbound
    i32.const -8164
    local.set 1
    block  ;; label = @1
      loop  ;; label = @2
        local.get 0
        local.get 1
        i32.add
        local.tee 2
        i32.const 8164
        i32.add
        i32.const 1024
        local.get 1
        i32.add
        local.tee 3
        i32.const 32740
        i32.add
        i32.load8_u
        i32.store8
        local.get 2
        i32.const 8165
        i32.add
        local.get 3
        i32.const 32741
        i32.add
        i32.load8_u
        i32.store8
        local.get 2
        i32.const 8166
        i32.add
        local.get 3
        i32.const 32742
        i32.add
        i32.load8_u
        i32.store8
        local.get 1
        i32.eqz
        br_if 1 (;@1;)
        local.get 2
        i32.const 8167
        i32.add
        local.get 3
        i32.const 32743
        i32.add
        i32.load8_u
        i32.store8
        local.get 1
        i32.const 4
        i32.add
        local.set 1
        br 0 (;@2;)
      end
    end
    i32.const 33768
    local.get 0
    i32.const 8167
    call $sha_update
    i32.const 0
    i32.const 8192
    call $__pragma_loopbound
    i32.const 33768
    call $sha_final
    local.get 0
    i32.const 8192
    i32.add
    global.set $__stack_pointer)
  (func $__original_main (type 4) (result i32)
    i32.const 0
    i64.const 0
    i64.store offset=33848 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33840 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33832 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33824 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33816 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33808 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33800 align=4
    i32.const 0
    i64.const 0
    i64.store offset=33792 align=4
    i32.const 0
    i64.const 3285377520
    i64.store offset=33784 align=4
    i32.const 0
    i64.const 1167088121787636990
    i64.store offset=33776 align=4
    i32.const 0
    i64.const -1167088121787636991
    i64.store offset=33768 align=4
    i32.const 0
    i32.const 0
    i32.store offset=33856
    call $sha_main
    i32.const 0
    i32.load offset=33856
    i32.const 0
    i32.load offset=33852
    i32.add
    i32.const 261944
    i32.ne)
  (func $sha_glibc_memcpy (type 5) (param i32 i32 i32) (result i32)
    (local i32 i32 i32)
    block  ;; label = @1
      block  ;; label = @2
        local.get 2
        i32.const 16
        i32.ge_u
        br_if 0 (;@2;)
        local.get 0
        local.set 3
        br 1 (;@1;)
      end
      i32.const 0
      i32.const 0
      call $__pragma_loopbound
      block  ;; label = @2
        block  ;; label = @3
          i32.const 0
          local.get 0
          i32.sub
          i32.const 3
          i32.and
          local.tee 3
          br_if 0 (;@3;)
          local.get 0
          local.set 4
          br 1 (;@2;)
        end
        local.get 0
        local.get 1
        i32.load8_u
        i32.store8
        block  ;; label = @3
          local.get 3
          i32.const 1
          i32.ne
          br_if 0 (;@3;)
          local.get 0
          i32.const 1
          i32.add
          local.set 4
          local.get 1
          i32.const 1
          i32.add
          local.set 1
          br 1 (;@2;)
        end
        local.get 0
        i32.const 1
        i32.add
        local.get 1
        i32.const 1
        i32.add
        i32.load8_u
        i32.store8
        block  ;; label = @3
          local.get 3
          i32.const 2
          i32.ne
          br_if 0 (;@3;)
          local.get 0
          i32.const 2
          i32.add
          local.set 4
          local.get 1
          i32.const 2
          i32.add
          local.set 1
          br 1 (;@2;)
        end
        local.get 0
        i32.const 2
        i32.add
        local.get 1
        i32.const 2
        i32.add
        i32.load8_u
        i32.store8
        local.get 0
        i32.const 3
        i32.add
        local.set 4
        local.get 1
        i32.const 3
        i32.add
        local.set 1
      end
      local.get 2
      local.get 3
      i32.sub
      local.set 3
      block  ;; label = @2
        block  ;; label = @3
          local.get 1
          i32.const 3
          i32.and
          br_if 0 (;@3;)
          local.get 4
          local.get 1
          local.get 3
          i32.const 2
          i32.shr_u
          call $sha_wordcopy_fwd_aligned
          local.get 3
          i32.const -4
          i32.and
          local.set 5
          br 1 (;@2;)
        end
        local.get 1
        local.get 3
        i32.const -4
        i32.and
        local.tee 5
        i32.add
        local.set 1
      end
      local.get 3
      i32.const 3
      i32.and
      local.set 2
      local.get 4
      local.get 5
      i32.add
      local.set 3
    end
    i32.const 0
    i32.const 7
    call $__pragma_loopbound
    block  ;; label = @1
      local.get 2
      i32.eqz
      br_if 0 (;@1;)
      block  ;; label = @2
        block  ;; label = @3
          local.get 2
          i32.const 3
          i32.and
          local.tee 4
          br_if 0 (;@3;)
          local.get 2
          local.set 5
          br 1 (;@2;)
        end
        local.get 2
        i32.const -4
        i32.and
        local.set 5
        loop  ;; label = @3
          local.get 3
          local.get 1
          i32.load8_u
          i32.store8
          local.get 3
          i32.const 1
          i32.add
          local.set 3
          local.get 1
          i32.const 1
          i32.add
          local.set 1
          local.get 4
          i32.const -1
          i32.add
          local.tee 4
          br_if 0 (;@3;)
        end
      end
      local.get 2
      i32.const 4
      i32.lt_u
      br_if 0 (;@1;)
      loop  ;; label = @2
        local.get 3
        local.get 1
        i32.load8_u
        i32.store8
        local.get 3
        i32.const 1
        i32.add
        local.get 1
        i32.const 1
        i32.add
        i32.load8_u
        i32.store8
        local.get 3
        i32.const 2
        i32.add
        local.get 1
        i32.const 2
        i32.add
        i32.load8_u
        i32.store8
        local.get 3
        i32.const 3
        i32.add
        local.get 1
        i32.const 3
        i32.add
        i32.load8_u
        i32.store8
        local.get 3
        i32.const 4
        i32.add
        local.set 3
        local.get 1
        i32.const 4
        i32.add
        local.set 1
        local.get 5
        i32.const -4
        i32.add
        local.tee 5
        br_if 0 (;@2;)
      end
    end
    local.get 0)
  (func $sha_wordcopy_fwd_aligned (type 3) (param i32 i32 i32)
    (local i32 i32)
    local.get 1
    i32.load
    local.set 3
    block  ;; label = @1
      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
                        local.get 2
                        i32.const 7
                        i32.and
                        br_table 6 (;@4;) 7 (;@3;) 0 (;@10;) 1 (;@9;) 2 (;@8;) 3 (;@7;) 4 (;@6;) 5 (;@5;) 6 (;@4;)
                      end
                      i32.const 1
                      i32.const 2
                      call $__pragma_loopbound
                      local.get 2
                      i32.const 6
                      i32.add
                      local.set 2
                      local.get 0
                      i32.const -28
                      i32.add
                      local.set 4
                      local.get 1
                      i32.const 4
                      i32.add
                      i32.load
                      local.set 1
                      br 8 (;@1;)
                    end
                    i32.const 1
                    i32.const 2
                    call $__pragma_loopbound
                    local.get 2
                    i32.const 5
                    i32.add
                    local.set 2
                    local.get 0
                    i32.const -24
                    i32.add
                    local.set 4
                    br 6 (;@2;)
                  end
                  i32.const 1
                  i32.const 2
                  call $__pragma_loopbound
                  local.get 2
                  i32.const 4
                  i32.add
                  local.set 2
                  local.get 0
                  i32.const -20
                  i32.add
                  local.set 4
                  local.get 1
                  i32.const 4
                  i32.add
                  i32.load
                  local.set 1
                  br 6 (;@1;)
                end
                i32.const 1
                i32.const 2
                call $__pragma_loopbound
                local.get 2
                i32.const 3
                i32.add
                local.set 2
                local.get 0
                i32.const -16
                i32.add
                local.set 4
                br 4 (;@2;)
              end
              i32.const 1
              i32.const 2
              call $__pragma_loopbound
              local.get 2
              i32.const 2
              i32.add
              local.set 2
              local.get 0
              i32.const -12
              i32.add
              local.set 4
              local.get 1
              i32.const 4
              i32.add
              i32.load
              local.set 1
              br 4 (;@1;)
            end
            i32.const 1
            i32.const 2
            call $__pragma_loopbound
            local.get 2
            i32.const 1
            i32.add
            local.set 2
            local.get 0
            i32.const -8
            i32.add
            local.set 4
            br 2 (;@2;)
          end
          i32.const 1
          i32.const 2
          call $__pragma_loopbound
          local.get 0
          i32.const -4
          i32.add
          local.set 4
          local.get 1
          i32.load offset=4
          local.set 1
          br 2 (;@1;)
        end
        i32.const 1
        i32.const 2
        call $__pragma_loopbound
        local.get 2
        i32.const -1
        i32.add
        local.set 2
        local.get 0
        local.set 4
      end
      local.get 3
      local.set 1
    end
    local.get 0
    local.get 3
    i32.store
    local.get 4
    i32.const 32
    i32.add
    local.set 0
    block  ;; label = @1
      local.get 2
      i32.const -8
      i32.add
      local.tee 2
      i32.eqz
      br_if 0 (;@1;)
      loop  ;; label = @2
        local.get 0
        local.get 1
        i32.store
        local.get 0
        i32.const 32
        i32.add
        local.set 0
        local.get 2
        i32.const -8
        i32.add
        local.tee 2
        br_if 0 (;@2;)
      end
    end
    local.get 0
    local.get 1
    i32.store)
  (func $sha_glibc_memset (type 5) (param i32 i32 i32) (result i32)
    (local i32 i32 i32 i32)
    block  ;; label = @1
      block  ;; label = @2
        local.get 2
        i32.const 8
        i32.ge_u
        br_if 0 (;@2;)
        local.get 0
        local.set 3
        br 1 (;@1;)
      end
      local.get 1
      i32.const 255
      i32.and
      local.set 4
      i32.const 3
      i32.const 3
      call $__pragma_loopbound
      block  ;; label = @2
        block  ;; label = @3
          local.get 0
          i32.const 3
          i32.and
          br_if 0 (;@3;)
          local.get 0
          local.set 3
          br 1 (;@2;)
        end
        local.get 0
        local.get 1
        i32.store8
        block  ;; label = @3
          local.get 0
          i32.const 1
          i32.add
          local.tee 3
          i32.const 3
          i32.and
          br_if 0 (;@3;)
          local.get 2
          i32.const -1
          i32.add
          local.set 2
          br 1 (;@2;)
        end
        local.get 0
        i32.const 1
        i32.add
        local.get 1
        i32.store8
        block  ;; label = @3
          local.get 0
          i32.const 2
          i32.add
          local.tee 3
          i32.const 3
          i32.and
          br_if 0 (;@3;)
          local.get 2
          i32.const -2
          i32.add
          local.set 2
          br 1 (;@2;)
        end
        local.get 0
        i32.const 2
        i32.add
        local.get 1
        i32.store8
        block  ;; label = @3
          local.get 0
          i32.const 3
          i32.add
          local.tee 3
          i32.const 3
          i32.and
          br_if 0 (;@3;)
          local.get 2
          i32.const -3
          i32.add
          local.set 2
          br 1 (;@2;)
        end
        local.get 0
        i32.const 3
        i32.add
        local.get 1
        i32.store8
        local.get 2
        i32.const -4
        i32.add
        local.set 2
        local.get 0
        i32.const 4
        i32.add
        local.set 3
      end
      local.get 4
      i32.const 16843009
      i32.mul
      local.set 4
      i32.const 0
      i32.const 1
      call $__pragma_loopbound
      block  ;; label = @2
        local.get 2
        i32.const 32
        i32.lt_u
        br_if 0 (;@2;)
        local.get 2
        i32.const 5
        i32.shr_u
        local.set 5
        block  ;; label = @3
          block  ;; label = @4
            local.get 2
            i32.const 32
            i32.and
            br_if 0 (;@4;)
            local.get 5
            local.set 6
            br 1 (;@3;)
          end
          local.get 3
          local.get 4
          i32.store offset=28
          local.get 3
          local.get 4
          i32.store offset=24
          local.get 3
          local.get 4
          i32.store offset=20
          local.get 3
          local.get 4
          i32.store offset=16
          local.get 3
          local.get 4
          i32.store offset=12
          local.get 3
          local.get 4
          i32.store offset=8
          local.get 3
          local.get 4
          i32.store offset=4
          local.get 3
          local.get 4
          i32.store
          local.get 5
          i32.const -1
          i32.add
          local.set 6
          local.get 3
          i32.const 32
          i32.add
          local.set 3
        end
        local.get 5
        i32.const 1
        i32.eq
        br_if 0 (;@2;)
        loop  ;; label = @3
          local.get 3
          local.get 4
          i32.store offset=28
          local.get 3
          local.get 4
          i32.store offset=24
          local.get 3
          local.get 4
          i32.store offset=20
          local.get 3
          local.get 4
          i32.store offset=16
          local.get 3
          local.get 4
          i32.store offset=12
          local.get 3
          local.get 4
          i32.store offset=8
          local.get 3
          local.get 4
          i32.store offset=4
          local.get 3
          local.get 4
          i32.store
          local.get 3
          i32.const 60
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 56
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 52
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 48
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 44
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 40
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 36
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 32
          i32.add
          local.get 4
          i32.store
          local.get 3
          i32.const 64
          i32.add
          local.set 3
          local.get 6
          i32.const -2
          i32.add
          local.tee 6
          br_if 0 (;@3;)
        end
      end
      i32.const 1
      i32.const 2
      call $__pragma_loopbound
      block  ;; label = @2
        local.get 2
        i32.const 2
        i32.shr_u
        i32.const 7
        i32.and
        local.tee 6
        i32.eqz
        br_if 0 (;@2;)
        local.get 3
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 1
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 4
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 4
        i32.add
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 2
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 8
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 8
        i32.add
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 3
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 12
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 12
        i32.add
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 4
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 16
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 16
        i32.add
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 5
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 20
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 20
        i32.add
        local.get 4
        i32.store
        block  ;; label = @3
          local.get 6
          i32.const 6
          i32.ne
          br_if 0 (;@3;)
          local.get 3
          i32.const 24
          i32.add
          local.set 3
          br 1 (;@2;)
        end
        local.get 3
        i32.const 24
        i32.add
        local.get 4
        i32.store
        local.get 3
        i32.const 28
        i32.add
        local.set 3
      end
      local.get 2
      i32.const 3
      i32.and
      local.set 2
    end
    i32.const 0
    i32.const 0
    call $__pragma_loopbound
    block  ;; label = @1
      local.get 2
      i32.eqz
      br_if 0 (;@1;)
      local.get 3
      local.get 1
      i32.store8
      local.get 2
      i32.const 1
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 1
      i32.add
      local.get 1
      i32.store8
      local.get 2
      i32.const 2
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 2
      i32.add
      local.get 1
      i32.store8
      local.get 2
      i32.const 3
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 3
      i32.add
      local.get 1
      i32.store8
      local.get 2
      i32.const 4
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 4
      i32.add
      local.get 1
      i32.store8
      local.get 2
      i32.const 5
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 5
      i32.add
      local.get 1
      i32.store8
      local.get 2
      i32.const 6
      i32.eq
      br_if 0 (;@1;)
      local.get 3
      i32.const 6
      i32.add
      local.get 1
      i32.store8
    end
    local.get 0)
  (table (;0;) 1 1 funcref)
  (memory (;0;) 1)
  (global $__stack_pointer (mut i32) (i32.const 37968))
  (global (;1;) i32 (i32.const 33860))
  (global (;2;) i32 (i32.const 37968))
  (export "memory" (memory 0))
  (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
  (export "entrypoint" (func $sha_main))
  (export "main" (func $__original_main))
  (export "__data_end" (global 1))
  (export "__heap_base" (global 2))
  (data $.data (i32.const 1024) "[encoded data, 19488 characters]\[encoded data, 13254 characters]\0a\00"))
