(module
 (type $FUNCSIG$j (func (result i64)))
 (type $legaltype$illegalImportResult (func (result i32)))
 (import "env" "illegalImportResult" (func $illegalImportResult (result i64)))
 (import "env" "illegalImportResult" (func $legalimport$illegalImportResult (result i32)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 0 0 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (global $tempRet0 (mut i32) (i32.const 0))
 (data (get_global $memoryBase) "i64-setTempRet0.asm.js")
 (export "illegalResult" (func $legalstub$illegalResult))
 (export "imports" (func $imports))
 (func $illegalResult (result i64)
  (i64.const 8589934593)
 )
 (func $imports (result i32)
  (i32.wrap/i64
   (call $legalfunc$illegalImportResult)
  )
 )
 (func $legalstub$illegalResult (result i32)
  (local $0 i64)
  (set_local $0
   (call $illegalResult)
  )
  (set_global $tempRet0
   (i32.wrap/i64
    (i64.shr_u
     (get_local $0)
     (i64.const 32)
    )
   )
  )
  (i32.wrap/i64
   (get_local $0)
  )
 )
 (func $legalfunc$illegalImportResult (result i64)
  (i64.or
   (i64.extend_u/i32
    (call $legalimport$illegalImportResult)
   )
   (i64.shl
    (i64.extend_u/i32
     (get_global $tempRet0)
    )
    (i64.const 32)
   )
  )
 )
)
