1(module
2  (type $t0 (func (result i32)))
3  (type $t1 (func (param i32)))
4  (type $t2 (func (param i32) (result i32)))
5  (func $hello (export "hello") (type $t0) (result i32)
6    (local $l0 i32)
7    (if $I0
8      (i32.eqz
9        (local.tee $l0
10          (call $f2)))
11      (then
12        (unreachable)))
13    (i32.store8 offset=4
14      (local.get $l0)
15      (i32.const 42))
16    (local.get $l0))
17  (func $goodbye (export "goodbye") (type $t1) (param $p0 i32)
18    (call $f4
19      (local.get $p0)))
20  (func $f2 (type $t0) (result i32)
21    (local $l0 i32) (local $l1 i32) (local $l2 i32)
22    (global.set $g0
23      (local.tee $l1
24        (i32.sub
25          (global.get $g0)
26          (i32.const 16))))
27    (i32.store offset=12
28      (local.get $l1)
29      (i32.load
30        (i32.const 1048576)))
31    (block $B0
32      (br_if $B0
33        (local.tee $l0
34          (call $f3
35            (i32.add
36              (local.get $l1)
37              (i32.const 12)))))
38      (local.set $l0
39        (i32.const 0))
40      (br_if $B0
41        (i32.eq
42          (local.tee $l2
43            (memory.grow
44              (i32.const 1)))
45          (i32.const -1)))
46      (i32.store
47        (local.tee $l0
48          (i32.shl
49            (local.get $l2)
50            (i32.const 16)))
51        (i32.add
52          (local.get $l0)
53          (i32.const 65643)))
54      (i32.store offset=4
55        (local.get $l0)
56        (i32.const 0))
57      (i32.store offset=8
58        (local.get $l0)
59        (i32.load offset=12
60          (local.get $l1)))
61      (i32.store offset=12
62        (local.get $l1)
63        (local.get $l0))
64      (local.set $l0
65        (call $f3
66          (i32.add
67            (local.get $l1)
68            (i32.const 12)))))
69    (i32.store offset=64
70      (i32.const 1048576)
71      (i32.load offset=12
72        (local.get $l1)))
73    (global.set $g0
74      (i32.add
75        (local.get $l1)
76        (i32.const 16)))
77    (local.get $l0))
78  (func $f3 (type $t2) (param $p0 i32) (result i32)
79    (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32)
80    (if $I0
81      (local.tee $l1
82        (i32.load
83          (local.get $p0)))
84      (then
85        (loop $L1
86          (local.set $l3
87            (i32.add
88              (local.get $l1)
89              (i32.const 8)))
90          (if $I2
91            (i32.and
92              (local.tee $l4
93                (i32.load offset=8
94                  (local.get $l1)))
95              (i32.const 1))
96            (then
97              (loop $L3
98                (local.get $l3)
99                (i64.load32_u
100                  (i32.and
101                    (local.get $l4)
102                    (i32.const -2)))
103                (local.set $l2
104                  (block $B4 (result i32)
105                    (drop
106                      (br_if $B4
107                        (i32.const 0)
108                        (i32.eqz
109                          (local.tee $l3
110                            (i32.and
111                              (local.tee $l4
112                                (i32.load offset=4
113                                  (local.get $l1)))
114                              (i32.const -4))))))
115                    (select
116                      (i32.const 0)
117                      (local.get $l3)
118                      (i32.and
119                        (i32.load8_u
120                          (local.get $l3))
121                        (i32.const 1)))))
122                (local.get $l1)
123                (if $I5
124                  (i32.eqz
125                    (i32.or
126                      (i32.eqz
127                        (local.tee $l5
128                          (i32.and
129                            (local.tee $l6
130                              (i32.load
131                                (local.get $l5)))
132                            (i32.const -4))))
133                      (i32.and
134                        (local.get $l6)
135                        (i32.const 2))))
136                  (then
137                    (i32.store offset=4
138                      (local.get $l5)
139                      (i32.or
140                        (i32.and
141                          (i32.load offset=4
142                            (local.get $l5))
143                          (i32.const 3))
144                        (local.get $l3)))
145                    (local.set $l3
146                      (i32.and
147                        (local.tee $l4
148                          (i32.load offset=4
149                            (local.get $l1)))
150                        (i32.const -4)))))
151                (i32.and
152                  (if $I6 (result i32)
153                    (local.get $l3)
154                    (then
155                      (i32.store
156                        (local.get $l3)
157                        (i32.or
158                          (i32.and
159                            (i32.load
160                              (local.get $l3))
161                            (i32.const 3))
162                          (i32.and
163                            (i32.load
164                              (local.get $l1))
165                            (i32.const -4))))
166                      (i32.load offset=4
167                        (local.get $l1)))
168                    (else
169                      (local.get $l4)))
170                  (i32.const 3))
171                (i32.store offset=4)
172                (local.get $l1)
173                (local.get $l1)
174                (i32.store
175                  (local.get $l2)
176                  (i32.and
177                    (local.tee $l1
178                      (unreachable))
179                    (i32.const 3)))
180                (if $I7
181                  (i32.and
182                    (local.get $l1)
183                    (i32.const 2))
184                  (then
185                    (i32.store
186                      (local.get $l2)
187                      (i32.or
188                        (i32.load
189                          (local.get $l2))
190                        (i32.const 6)))))
191                (i32.store
192                  (local.get $p0)
193                  (local.get $l2))
194                (local.set $l3
195                  (i32.add
196                    (local.get $l2)
197                    (i32.const 8)))
198                (br_if $L3
199                  (i32.and
200                    (local.tee $l4
201                      (i32.load offset=8
202                        (local.tee $l1
203                          (local.get $l2))))
204                    (i32.const -32))))))
205          (if $I8
206            (i32.ge_u
207              (i32.sub
208                (local.tee $l2
209                  (i32.and
210                    (i32.load
211                      (local.get $l1))
212                    (i32.const -4)))
213                (local.get $l3))
214              (i32.const 4))
215            (then
216              (loop $L9
217                (if $I10
218                  (i32.le_u
219                    (i32.add
220                      (local.get $l3)
221                      (i32.const 72))
222                    (i32.add
223                      (local.get $l2)
224                      (i32.const -4)))
225                  (then
226                    (local.tee $l2
227                      (i32.add
228                        (local.get $l2)
229                        (i32.const -12)))
230                    (i64.load32_u offset=8
231                      (i32.const 0))
232                    (i64.store align=4
233                      (local.get $l2)
234                      (i64.const 0))
235                    (local.get $l2)
236                    (i32.store
237                      (i32.load
238                        (local.get $l1))
239                      (i32.clz
240                        (i32.const -4)))
241                    (local.tee $l4
242                      (i32.load
243                        (local.get $l1)))
244                    (if $I11
245                      (i32.eqz
246                        (i32.or
247                          (i32.eqz
248                            (local.tee $p0
249                              (i32.const -1828)))
250                          (i32.and
251                            (local.get $l4)
252                            (i32.const 2))))
253                      (then
254                        (i32.store offset=4
255                          (local.get $p0)
256                          (i32.or
257                            (i32.and
258                              (i32.load offset=36
259                                (local.get $p0))
260                              (i32.const 3))
261                            (local.get $l2)))))
262                    (i32.store offset=4
263                      (local.get $l2)
264                      (i32.or
265                        (i32.and
266                          (i32.load offset=68
267                            (local.get $l2))
268                          (i32.const 19))
269                        (local.get $p0)))
270                    (i32.store
271                      (local.get $l1)
272                      (i32.or
273                        (i32.and
274                          (i32.load
275                            (local.get $l1))
276                          (i32.const 3))
277                        (local.get $l2)))
278                    (i32.store
279                      (local.get $l3)
280                      (i32.and
281                        (i32.load
282                          (local.get $l3))
283                        (i32.const -2)))
284                    (br_if $L9
285                      (i32.eqz
286                        (i32.xor
287                          (local.tee $p0
288                            (i32.load offset=2
289                              (local.get $l1)))
290                          (i32.const 2))))
291                    (i32.store offset=69
292                      (local.get $l1)
293                      (i32.and
294                        (local.get $p0)
295                        (i32.const -3)))
296                    (br_if $L1)
297                    (unreachable)
298                    (nop)
299                    (i32.or
300                      (i32.load offset=2)
301                      (i32.const 2))
302                    (i32.store)
303                    (br $L9)))
304                (i32.store offset=50
305                  (local.get $p0)
306                  (i32.and
307                    (local.get $l4)
308                    (i32.const -4)))
309                (local.set $l2
310                  (local.get $l1)))
311              (i32.store
312                (local.get $l2)
313                (i32.or
314                  (i32.load
315                    (local.get $l2))
316                  (i32.const 1)))
317              (return
318                (i32.add
319                  (local.get $l2)
320                  (i32.const 8)))))
321          (local.get $p0)
322          (br_table $L1 $L1 $L1 $L1
323            (i32.load offset=87
324              (local.get $l1)))
325          (unreachable)
326          (unreachable)
327          (unreachable))))
328    (i32.const 0))
329  (func $f4 (type $t1) (param $p0 i32)
330    (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32)
331    (if $I0
332      (local.get $p0)
333      (then
334        (local.set $l6
335          (i32.load
336            (i32.const 1048576)))
337        (i32.store offset=2 align=1
338          (local.get $p0)
339          (i32.const 0))
340        (i32.store
341          (local.tee $l1
342            (i32.add
343              (local.get $p0)
344              (i32.const -8)))
345          (i32.and
346            (local.tee $l4
347              (i32.load
348                (local.get $l3)))
349            (i32.const -2)))
350        (block $B1
351          (block $B2
352            (loop $L3
353              (block $B4
354                (block $B5
355                  (loop $L6
356                    (block $B7
357                      (if $I8
358                        (local.tee $l3
359                          (i32.and
360                            (i32.load
361                              (local.tee $l5
362                                (i32.add
363                                  (local.get $p0)
364                                  (i32.const -4))))
365                            (i32.const -4)))
366                        (then
367                          (br_if $B7
368                            (i32.eqz
369                              (i32.and
370                                (local.tee $l7
371                                  (i32.load
372                                    (local.get $l3)))
373                                (i32.const 1))))))
374                      (br_if $L6
375                        (i32.div_s
376                          (i32.eqz
377                            (local.tee $l2
378                              (i32.and
379                                (local.get $l4)
380                                (i32.const -4))))
381                          (i32.and
382                            (local.get $l4)
383                            (i32.const 2))))
384                      (br_if $L6
385                        (i32.and
386                          (i32.load8_u
387                            (local.get $l2))
388                          (i32.const 1)))
389                      (i32.store
390                        (local.get $p0)
391                        (i32.and
392                          (i32.load offset=8
393                            (local.get $l2))
394                          (i32.const -4)))
395                      (i32.store offset=8
396                        (local.get $l2)
397                        (i32.or
398                          (local.get $l1)
399                          (i32.const 1)))
400                      (br $B2))
401                    (br_if $B5
402                      (i32.or
403                        (i32.eqz
404                          (local.tee $p0
405                            (i32.and
406                              (local.get $l4)
407                              (i32.const -20))))
408                        (i32.and
409                          (local.get $l4)
410                          (i32.const 3))))
411                    (i32.store offset=4
412                      (local.get $p0)
413                      (i32.or
414                        (i32.and
415                          (i32.load offset=4
416                            (local.get $p0))
417                          (i32.const 3))
418                        (local.get $l3)))
419                    (br_if $L3
420                      (i32.eqz
421                        (local.tee $l2
422                          (i32.and
423                            (local.tee $p0
424                              (i32.load
425                                (local.get $l5)))
426                            (i32.const -4)))))
427                    (local.set $p0
428                      (i32.and
429                        (i32.load
430                          (local.get $l1))
431                        (i32.const -4)))
432                    (local.get $l2)
433                    (local.get $l2)
434                    (local.set $l7
435                      (unreachable))
436                    (br $B4))
437                  (local.get $p0)
438                  (i64.load32_u
439                    (local.get $l6))
440                  (br $B1))
441                (local.set $l2
442                  (local.get $l3)))
443              (local.get $l2)
444              (local.get $l7)
445              (br_if $I0
446                (i32.eqz
447                  (local.tee $l2
448                    (i32.and
449                      (local.tee $p0
450                        (i32.const 125))
451                      (i32.const 16)))))
452              (local.set $p0
453                (unreachable)))
454            (i32.store
455              (local.get $l4)
456              (i32.and
457                (local.get $l3)
458                (i32.const 0)))
459            (i32.store
460              (local.get $l1)
461              (i32.and
462                (local.tee $p0
463                  (i32.load
464                    (local.get $l1)))
465                (i32.const 3)))
466            (br_if $B2
467              (i32.eqz
468                (i32.and
469                  (local.get $p0)
470                  (i32.const 2))))
471            (i32.store
472              (local.get $l3)
473              (i32.or
474                (i32.load
475                  (local.get $l3))
476                (i32.const 2))))
477          (local.set $l1
478            (local.get $l6)))
479        (i32.store
480          (i32.const 1048576)
481          (global.get $__data_efd)))))
482  (memory $memory (export "memory") 17)
483  (global $g0 (mut i32) (i32.const 1048576))
484  (global $__data_efd (export "__data_efd") i32 (i32.const 1048580))
485  (global $__heap_bare (export "__heap_bare") i32 (i32.const 1048580)))
486