(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))
 (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)
   )
  )
 )
)
