0x0 | 00 61 73 6d | version 13 (Component)
| 0d 00 01 00
0x8 | 07 30 | component type section
0xa | 01 | 1 count
0xb | 42 06 01 70 | [type 0] Instance([Type(Defined(List(Primitive(U8)))), Type(Func(ComponentFuncType { async_: false, params: [("len", Primitive(U32))], result: Some(Type(0)) })), Export { name: ComponentExportName("read"), ty: Func(1) }, Type(Defined(List(Primitive(U8)))), Type(Func(ComponentFuncType { async_: false, params: [("buf", Type(2))], result: Some(Primitive(U32)) })), Export { name: ComponentExportName("write"), ty: Func(3) }])
| 7d 01 40 01
| 03 6c 65 6e
| 79 00 00 04
| 00 04 72 65
| 61 64 01 01
| 01 70 7d 01
| 40 01 03 62
| 75 66 02 00
| 79 04 00 05
| 77 72 69 74
| 65 01 03
0x3a | 0a 0e | component import section
0x3c | 01 | 1 count
0x3d | 00 09 77 61 | [instance 0] ComponentImport { name: ComponentImportName("wasi-file"), ty: Instance(0) }
| 73 69 2d 66
| 69 6c 65 05
| 00
0x4a | 01 44 | [core module 0] inline size
0x4c | 00 61 73 6d | version 1 (Module)
| 01 00 00 00
0x54 | 01 09 | type section
0x56 | 01 | 1 count
0x57 | 60 04 7f 7f | [type 0] SubType { is_final: true, supertype_idx: None, composite_type: CompositeType { inner: Func(FuncType { params: [I32, I32, I32, I32], results: [I32] }), shared: false, descriptor_idx: None, describes_idx: None } }
| 7f 7f 01 7f
0x5f | 03 02 | func section
0x61 | 01 | 1 count
0x62 | 00 | [func 0] type 0
0x63 | 05 03 | memory section
0x65 | 01 | 1 count
0x66 | 00 00 | [memory 0] MemoryType { memory64: false, shared: false, initial: 0, maximum: None, page_size_log2: None }
0x68 | 07 11 | export section
0x6a | 02 | 2 count
0x6b | 03 6d 65 6d | export Export { name: "mem", kind: Memory, index: 0 }
| 02 00
0x71 | 07 72 65 61 | export Export { name: "realloc", kind: Func, index: 0 }
| 6c 6c 6f 63
| 00 00
0x7b | 0a 05 | code section
0x7d | 01 | 1 count
============== func 0 ====================
0x7e | 03 | size of function
0x7f | 00 | 0 local blocks
0x80 | 00 | unreachable
0x81 | 0b | end
0x82 | 00 0c | custom section
0x84 | 04 6e 61 6d | name: "name"
| 65
0x89 | 00 05 | module name
0x8b | 04 6c 69 62 | "libc"
| 63
0x90 | 02 04 | core instance section
0x92 | 01 | 1 count
0x93 | 00 00 00 | [core instance 0] Instantiate { module_index: 0, args: [] }
0x96 | 01 5f | [core module 1] inline size
0x98 | 00 61 73 6d | version 1 (Module)
| 01 00 00 00
0xa0 | 01 09 | type section
0xa2 | 02 | 2 count
0xa3 | 60 02 7f 7f | [type 0] SubType { is_final: true, supertype_idx: None, composite_type: CompositeType { inner: Func(FuncType { params: [I32, I32], results: [] }), shared: false, descriptor_idx: None, describes_idx: None } }
| 00
0xa8 | 60 00 00 | [type 1] SubType { is_final: true, supertype_idx: None, composite_type: CompositeType { inner: Func(FuncType { params: [], results: [] }), shared: false, descriptor_idx: None, describes_idx: None } }
0xab | 02 12 | import section
0xad | 01 | 1 count
0xae | 09 77 61 73 | import [func 0] Import { module: "wasi-file", name: "read", ty: Func(0) }
| 69 2d 66 69
| 6c 65 04 72
| 65 61 64 00
| 00
0xbf | 03 02 | func section
0xc1 | 01 | 1 count
0xc2 | 01 | [func 1] type 1
0xc3 | 07 08 | export section
0xc5 | 01 | 1 count
0xc6 | 04 70 6c 61 | export Export { name: "play", kind: Func, index: 1 }
| 79 00 01
0xcd | 0a 05 | code section
0xcf | 01 | 1 count
============== func 1 ====================
0xd0 | 03 | size of function
0xd1 | 00 | 0 local blocks
0xd2 | 00 | unreachable
0xd3 | 0b | end
0xd4 | 00 21 | custom section
0xd6 | 04 6e 61 6d | name: "name"
| 65
0xdb | 00 06 | module name
0xdd | 05 43 48 49 | "CHILD"
| 4c 44
0xe3 | 01 12 | function name section
0xe5 | 02 | 2 count
0xe6 | 00 09 77 61 | Naming { index: 0, name: "wasi-file" }
| 73 69 2d 66
| 69 6c 65
0xf1 | 01 04 70 6c | Naming { index: 1, name: "play" }
| 61 79
0xf7 | 01 60 | [core module 2] inline size
0xf9 | 00 61 73 6d | version 1 (Module)
| 01 00 00 00
0x101 | 01 0c | type section
0x103 | 02 | 2 count
0x104 | 60 02 7f 7f | [type 0] SubType { is_final: true, supertype_idx: None, composite_type: CompositeType { inner: Func(FuncType { params: [I32, I32], results: [] }), shared: false, descriptor_idx: None, describes_idx: None } }
| 00
0x109 | 60 03 7f 7f | [type 1] SubType { is_final: true, supertype_idx: None, composite_type: CompositeType { inner: Func(FuncType { params: [I32, I32, I32], results: [] }), shared: false, descriptor_idx: None, describes_idx: None } }
| 7f 00
0x10f | 02 12 | import section
0x111 | 01 | 1 count
0x112 | 09 77 61 73 | import [func 0] Import { module: "wasi-file", name: "read", ty: Func(0) }
| 69 2d 66 69
| 6c 65 04 72
| 65 61 64 00
| 00
0x123 | 03 03 | func section
0x125 | 02 | 2 count
0x126 | 00 | [func 1] type 0
0x127 | 01 | [func 2] type 1
0x128 | 07 10 | export section
0x12a | 02 | 2 count
0x12b | 04 72 65 61 | export Export { name: "read", kind: Func, index: 1 }
| 64 00 01
0x132 | 05 77 72 69 | export Export { name: "write", kind: Func, index: 2 }
| 74 65 00 02
0x13a | 0a 09 | code section
0x13c | 02 | 2 count
============== func 1 ====================
0x13d | 03 | size of function
0x13e | 00 | 0 local blocks
0x13f | 00 | unreachable
0x140 | 0b | end
============== func 2 ====================
0x141 | 03 | size of function
0x142 | 00 | 0 local blocks
0x143 | 00 | unreachable
0x144 | 0b | end
0x145 | 00 12 | custom section
0x147 | 04 6e 61 6d | name: "name"
| 65
0x14c | 00 0b | module name
0x14e | 0a 56 49 52 | "VIRTUALIZE"
| 54 55 41 4c
| 49 5a 45
0x159 | 06 1d | component alias section
0x15b | 03 | 3 count
0x15c | 01 00 00 04 | alias [func 0] InstanceExport { kind: Func, instance_index: 0, name: "read" }
| 72 65 61 64
0x164 | 00 02 01 00 | alias [core memory 0] CoreInstanceExport { kind: Memory, instance_index: 0, name: "mem" }
| 03 6d 65 6d
0x16c | 00 00 01 00 | alias [core func 0] CoreInstanceExport { kind: Func, instance_index: 0, name: "realloc" }
| 07 72 65 61
| 6c 6c 6f 63
0x178 | 08 09 | canonical function section
0x17a | 01 | 1 count
0x17b | 01 00 00 02 | [core func 1] Lower { func_index: 0, options: [Memory(0), Realloc(0)] }
| 03 00 04 00
0x183 | 02 28 | core instance section
0x185 | 03 | 3 count
0x186 | 01 01 04 72 | [core instance 1] FromExports([Export { name: "read", kind: Func, index: 1 }])
| 65 61 64 00
| 01
0x18f | 00 02 01 09 | [core instance 2] Instantiate { module_index: 2, args: [InstantiationArg { name: "wasi-file", kind: Instance, index: 1 }] }
| 77 61 73 69
| 2d 66 69 6c
| 65 12 01
0x19e | 00 01 01 09 | [core instance 3] Instantiate { module_index: 1, args: [InstantiationArg { name: "wasi-file", kind: Instance, index: 2 }] }
| 77 61 73 69
| 2d 66 69 6c
| 65 12 02
0x1ad | 07 05 | component type section
0x1af | 01 | 1 count
0x1b0 | 40 00 01 00 | [type 1] Func(ComponentFuncType { async_: false, params: [], result: None })
0x1b4 | 06 1e | component alias section
0x1b6 | 03 | 3 count
0x1b7 | 00 00 01 03 | alias [core func 2] CoreInstanceExport { kind: Func, instance_index: 3, name: "play" }
| 04 70 6c 61
| 79
0x1c0 | 00 02 01 00 | alias [core memory 1] CoreInstanceExport { kind: Memory, instance_index: 0, name: "mem" }
| 03 6d 65 6d
0x1c8 | 00 00 01 00 | alias [core func 3] CoreInstanceExport { kind: Func, instance_index: 0, name: "realloc" }
| 07 72 65 61
| 6c 6c 6f 63
0x1d4 | 08 0a | canonical function section
0x1d6 | 01 | 1 count
0x1d7 | 00 00 02 02 | [func 1] Lift { core_func_index: 2, type_index: 1, options: [Memory(1), Realloc(3)] }
| 03 01 04 03
| 01
0x1e0 | 0b 0a | component export section
0x1e2 | 01 | 1 count
0x1e3 | 00 04 77 6f | export ComponentExport { name: ComponentExportName("work"), kind: Func, index: 1, ty: None }
| 72 6b 01 01
| 00
0x1ec | 00 7c | custom section
0x1ee | 0e 63 6f 6d | name: "component-name"
| 70 6f 6e 65
| 6e 74 2d 6e
| 61 6d 65
0x1fd | 01 13 00 00 | core func name section
0x201 | 01 | 1 count
0x202 | 01 0e 72 65 | Naming { index: 1, name: "real-wasi-read" }
| 61 6c 2d 77
| 61 73 69 2d
| 72 65 61 64
0x212 | 01 1c 00 11 | core module name section
0x216 | 03 | 3 count
0x217 | 00 04 6c 69 | Naming { index: 0, name: "libc" }
| 62 63
0x21d | 01 05 43 48 | Naming { index: 1, name: "CHILD" }
| 49 4c 44
0x224 | 02 0a 56 49 | Naming { index: 2, name: "VIRTUALIZE" }
| 52 54 55 41
| 4c 49 5a 45
0x230 | 01 1b 00 12 | core instance name section
0x234 | 03 | 3 count
0x235 | 00 04 6c 69 | Naming { index: 0, name: "libc" }
| 62 63
0x23b | 02 09 76 69 | Naming { index: 2, name: "virt-wasi" }
| 72 74 2d 77
| 61 73 69
0x246 | 03 05 63 68 | Naming { index: 3, name: "child" }
| 69 6c 64
0x24d | 01 0c 03 | type name section
0x250 | 01 | 1 count
0x251 | 00 08 57 61 | Naming { index: 0, name: "WasiFile" }
| 73 69 46 69
| 6c 65
0x25b | 01 0d 05 | instance name section
0x25e | 01 | 1 count
0x25f | 00 09 72 65 | Naming { index: 0, name: "real-wasi" }
| 61 6c 2d 77
| 61 73 69