aboutsummaryrefslogtreecommitdiff
path: root/tools/test-js-optimizer-asm-outline2-output.js
blob: 2658fda05c62ba8f6f15b303900cf63e8fe08085 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
function linear() {
 var sp = 0;
 sp = STACKTOP;
 STACKTOP = STACKTOP + 152 | 0;
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 HEAP32[sp + 16 >> 2] = 0;
 HEAP32[sp + 20 >> 2] = 0;
 linear$1(sp);
 HEAP32[sp + 8 >> 2] = 0;
 HEAP32[sp + 12 >> 2] = 0;
 linear$0(sp);
 STACKTOP = sp;
}
function _free($mem) {
 $mem = $mem | 0;
 var $5 = 0, $10 = 0, $16 = 0, $21 = 0, $25 = 0, $26 = 0, $psize_0 = 0, $p_0 = 0, $189 = 0, $194 = 0, sp = 0, helper$0 = 0;
 sp = STACKTOP;
 if (($mem | 0) == 0) {
  STACKTOP = sp;
  return;
 }
 $5 = HEAP32[24] | 0;
 if (($mem - 8 | 0) >>> 0 < $5 >>> 0) {
  _abort();
 }
 $10 = HEAP32[$mem - 4 >> 2] | 0;
 if (($10 & 3 | 0) == 1) {
  _abort();
 }
 $16 = $mem + (($10 & -8) - 8) | 0;
 L621 : do {
  helper$0 = 1;
  if (helper$0) {
   helper$0 = 0;
   if (($10 & 1 | 0) == 0) {
    $21 = HEAP32[($mem - 8 | 0) >> 2] | 0;
    if (($10 & 3 | 0) == 0) {
     return;
    }
    $25 = $mem + (-8 - $21 | 0) | 0;
    $26 = $21 + ($10 & -8) | 0;
    if (($mem + (-8 - $21 | 0) | 0) >>> 0 < $5 >>> 0) {
     _abort();
    }
    if (($25 | 0) == (HEAP32[25] | 0)) {
     if ((HEAP32[($mem + (($10 & -8) - 4) | 0) >> 2] & 3 | 0) != 3) {
      $p_0 = $25;
      $psize_0 = $26;
      break;
     }
     HEAP32[22] = $26;
     HEAP32[($mem + (($10 & -8) - 4) | 0) >> 2] = HEAP32[($mem + (($10 & -8) - 4) | 0) >> 2] & -2;
     HEAP32[$mem + ((-8 - $21 | 0) + 4) >> 2] = $26 | 1;
     HEAP32[($mem + (($10 & -8) - 8) | 0) >> 2] = $26;
     return;
    }
    HEAP32[sp + 8 >> 2] = $mem;
    HEAP32[sp + 16 >> 2] = $5;
    HEAP32[sp + 40 >> 2] = $21;
    HEAP32[sp + 48 >> 2] = $25;
    HEAP32[sp + 56 >> 2] = $26;
    HEAP32[sp + 216 >> 2] = $psize_0;
    HEAP32[sp + 224 >> 2] = $p_0;
    HEAP32[sp + 696 >> 2] = 0;
    HEAP32[sp + 700 >> 2] = 0;
    _free$1(sp);
    $psize_0 = HEAP32[sp + 216 >> 2] | 0;
    $p_0 = HEAP32[sp + 224 >> 2] | 0;
    tempValue = HEAP32[sp + 696 >> 2] | 0;
    tempInt = HEAP32[sp + 700 >> 2] | 0;
    tempDouble = +HEAPF32[sp + 700 >> 2];
    HEAP32[sp + 696 >> 2] = 0;
    HEAP32[sp + 700 >> 2] = 0;
    if ((tempValue | 0) == 1) {
     break;
    }
    if ((tempValue | 0) == 2) {
     switch (tempInt | 0) {
     case 2:
      {
       break L621;
      }
     }
    }
   } else {
    helper$0 = 1;
   }
  }
  if (helper$0) {
   helper$0 = 0;
   if (1) {
    $p_0 = $mem - 8 | 0;
    $psize_0 = $10 & -8;
   } else {
    helper$0 = 1;
   }
  }
 } while (0);
 $189 = $p_0;
 if ($189 >>> 0 >= ($mem + (($10 & -8) - 8) | 0) >>> 0) {
  _abort();
 }
 $194 = HEAP32[($mem + (($10 & -8) - 4) | 0) >> 2] | 0;
 if (($194 & 1 | 0) == 0) {
  _abort();
 }
 HEAP32[sp + 8 >> 2] = $mem;
 HEAP32[sp + 24 >> 2] = $10;
 HEAP32[sp + 32 >> 2] = $16;
 HEAP32[sp + 216 >> 2] = $psize_0;
 HEAP32[sp + 224 >> 2] = $p_0;
 HEAP32[sp + 232 >> 2] = $189;
 HEAP32[sp + 240 >> 2] = $194;
 HEAP32[sp + 704 >> 2] = 0;
 HEAP32[sp + 708 >> 2] = 0;
 _free$2(sp);
 tempValue = HEAP32[sp + 704 >> 2] | 0;
 tempInt = HEAP32[sp + 708 >> 2] | 0;
 tempDouble = +HEAPF32[sp + 708 >> 2];
 HEAP32[sp + 704 >> 2] = 0;
 HEAP32[sp + 708 >> 2] = 0;
 if ((tempValue | 0) == 5) {
  return;
 }
}
function linear$0(sp) {
 sp = sp | 0;
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
}
function linear$1(sp) {
 sp = sp | 0;
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
 cheez(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
}
function _free$0(sp) {
 sp = sp | 0;
 var helper$3 = 0, $194 = 0, $233 = 0, $mem = 0, $10 = 0, $236 = 0, $16 = 0, $_pre_phi305 = 0, $267 = 0, $270 = 0, $273 = 0, helper$4 = 0, $294 = 0, $299 = 0, $R7_1 = 0, $R7_0 = 0, $RP9_0 = 0, $301 = 0, $302 = 0, $305 = 0, $306 = 0, $278 = 0, $320 = 0, $351 = 0, $364 = 0;
 $mem = HEAP32[sp + 8 >> 2] | 0;
 $10 = HEAP32[sp + 24 >> 2] | 0;
 $16 = HEAP32[sp + 32 >> 2] | 0;
 $194 = HEAP32[sp + 240 >> 2] | 0;
 helper$3 = HEAP32[sp + 664 >> 2] | 0;
 OL : do {
  if (helper$3) {
   helper$3 = 0;
   if ($194 >>> 0 < 256) {
    $233 = HEAP32[$mem + ($10 & -8) >> 2] | 0;
    $236 = HEAP32[$mem + ($10 & -8 | 4) >> 2] | 0;
    do {
     if (($233 | 0) != (120 + ($194 >>> 3 << 1 << 2) | 0 | 0)) {
      if ($233 >>> 0 < (HEAP32[24] | 0) >>> 0) {
       _abort();
      }
      if ((HEAP32[$233 + 12 >> 2] | 0) == ($16 | 0)) {
       break;
      }
      _abort();
     }
    } while (0);
    if (($236 | 0) == ($233 | 0)) {
     HEAP32[20] = HEAP32[20] & (1 << ($194 >>> 3) ^ -1);
     HEAP32[sp + 688 >> 2] = 1;
     break OL;
    }
    do {
     if (($236 | 0) == (120 + ($194 >>> 3 << 1 << 2) | 0 | 0)) {
      $_pre_phi305 = $236 + 8 | 0;
     } else {
      if ($236 >>> 0 < (HEAP32[24] | 0) >>> 0) {
       _abort();
      }
      if ((HEAP32[($236 + 8 | 0) >> 2] | 0) == ($16 | 0)) {
       $_pre_phi305 = $236 + 8 | 0;
       break;
      }
      _abort();
     }
    } while (0);
    HEAP32[$233 + 12 >> 2] = $236;
    HEAP32[$_pre_phi305 >> 2] = $233;
   } else {
    helper$3 = 1;
   }
  }
  if (helper$3) {
   helper$3 = 0;
   if (1) {
    $267 = $mem + (($10 & -8) - 8) | 0;
    $270 = HEAP32[$mem + (($10 & -8) + 16) >> 2] | 0;
    $273 = HEAP32[$mem + ($10 & -8 | 4) >> 2] | 0;
    do {
     helper$4 = 1;
     if (helper$4) {
      helper$4 = 0;
      if (($273 | 0) == ($267 | 0)) {
       $294 = HEAP32[($mem + (($10 & -8) + 12) | 0) >> 2] | 0;
       if (($294 | 0) == 0) {
        $299 = HEAP32[($mem + (($10 & -8) + 8) | 0) >> 2] | 0;
        if (($299 | 0) == 0) {
         $R7_1 = 0;
         break;
        } else {
         $R7_0 = $299;
         $RP9_0 = $mem + (($10 & -8) + 8) | 0;
        }
       } else {
        $R7_0 = $294;
        $RP9_0 = $mem + (($10 & -8) + 12) | 0;
       }
       while (1) {
        $301 = $R7_0 + 20 | 0;
        $302 = HEAP32[$301 >> 2] | 0;
        if (($302 | 0) != 0) {
         $R7_0 = $302;
         $RP9_0 = $301;
         continue;
        }
        $305 = $R7_0 + 16 | 0;
        $306 = HEAP32[$305 >> 2] | 0;
        if (($306 | 0) == 0) {
         break;
        } else {
         $R7_0 = $306;
         $RP9_0 = $305;
        }
       }
       if ($RP9_0 >>> 0 < (HEAP32[24] | 0) >>> 0) {
        _abort();
       } else {
        HEAP32[$RP9_0 >> 2] = 0;
        $R7_1 = $R7_0;
        break;
       }
      } else {
       helper$4 = 1;
      }
     }
     if (helper$4) {
      helper$4 = 0;
      if (1) {
       $278 = HEAP32[$mem + ($10 & -8) >> 2] | 0;
       if ($278 >>> 0 < (HEAP32[24] | 0) >>> 0) {
        _abort();
       }
       if ((HEAP32[($278 + 12 | 0) >> 2] | 0) != ($267 | 0)) {
        _abort();
       }
       if ((HEAP32[($273 + 8 | 0) >> 2] | 0) == ($267 | 0)) {
        HEAP32[($278 + 12 | 0) >> 2] = $273;
        HEAP32[($273 + 8 | 0) >> 2] = $278;
        $R7_1 = $273;
        break;
       } else {
        _abort();
       }
      } else {
       helper$4 = 1;
      }
     }
    } while (0);
    if (($270 | 0) == 0) {
     HEAP32[sp + 688 >> 2] = 1;
     break OL;
    }
    $320 = 384 + (HEAP32[($mem + (($10 & -8) + 20) | 0) >> 2] << 2) | 0;
    do {
     if (($267 | 0) == (HEAP32[$320 >> 2] | 0)) {
      HEAP32[$320 >> 2] = $R7_1;
      if (($R7_1 | 0) != 0) {
       break;
      }
      HEAP32[21] = HEAP32[21] & (1 << HEAP32[($mem + (($10 & -8) + 20) | 0) >> 2] ^ -1);
      HEAP32[sp + 688 >> 2] = 2;
      HEAP32[sp + 692 >> 2] = 2;
      break OL;
     } else {
      if ($270 >>> 0 < (HEAP32[24] | 0) >>> 0) {
       _abort();
      }
      if ((HEAP32[($270 + 16 | 0) >> 2] | 0) == ($267 | 0)) {
       HEAP32[($270 + 16 | 0) >> 2] = $R7_1;
      } else {
       HEAP32[$270 + 20 >> 2] = $R7_1;
      }
      if (($R7_1 | 0) == 0) {
       HEAP32[sp + 688 >> 2] = 2;
       HEAP32[sp + 692 >> 2] = 2;
       break OL;
      }
     }
    } while (0);
    if ($R7_1 >>> 0 < (HEAP32[24] | 0) >>> 0) {
     _abort();
    }
    HEAP32[$R7_1 + 24 >> 2] = $270;
    $351 = HEAP32[$mem + (($10 & -8) + 8) >> 2] | 0;
    do {
     if (($351 | 0) != 0) {
      if ($351 >>> 0 < (HEAP32[24] | 0) >>> 0) {
       _abort();
      } else {
       HEAP32[$R7_1 + 16 >> 2] = $351;
       HEAP32[$351 + 24 >> 2] = $R7_1;
       break;
      }
     }
    } while (0);
    $364 = HEAP32[$mem + (($10 & -8) + 12) >> 2] | 0;
    if (($364 | 0) == 0) {
     HEAP32[sp + 688 >> 2] = 1;
     break OL;
    }
    if ($364 >>> 0 < (HEAP32[24] | 0) >>> 0) {
     _abort();
    } else {
     HEAP32[$R7_1 + 20 >> 2] = $364;
     HEAP32[$364 + 24 >> 2] = $R7_1;
     HEAP32[sp + 688 >> 2] = 1;
     break OL;
    }
   } else {
    helper$3 = 1;
   }
  }
 } while (0);
 HEAP32[sp + 664 >> 2] = helper$3;
}
function _free$1(sp) {
 sp = sp | 0;
 var $21 = 0, $37 = 0, $mem = 0, $40 = 0, $5 = 0, $25 = 0, $26 = 0, $_pre_phi307 = 0, $69 = 0, $72 = 0, $75 = 0, helper$1 = 0, $95 = 0, $100 = 0, $R_1 = 0, $R_0 = 0, $RP_0 = 0, $102 = 0, $103 = 0, $106 = 0, $107 = 0, $80 = 0, $120 = 0, $151 = 0, $164 = 0, $p_0 = 0, $psize_0 = 0;
 $mem = HEAP32[sp + 8 >> 2] | 0;
 $5 = HEAP32[sp + 16 >> 2] | 0;
 $21 = HEAP32[sp + 40 >> 2] | 0;
 $25 = HEAP32[sp + 48 >> 2] | 0;
 $26 = HEAP32[sp + 56 >> 2] | 0;
 $psize_0 = HEAP32[sp + 216 >> 2] | 0;
 $p_0 = HEAP32[sp + 224 >> 2] | 0;
 OL : do {
  if ($21 >>> 0 < 256) {
   $37 = HEAP32[$mem + ((-8 - $21 | 0) + 8) >> 2] | 0;
   $40 = HEAP32[$mem + ((-8 - $21 | 0) + 12) >> 2] | 0;
   do {
    if (($37 | 0) != (120 + ($21 >>> 3 << 1 << 2) | 0 | 0)) {
     if ($37 >>> 0 < $5 >>> 0) {
      _abort();
     }
     if ((HEAP32[$37 + 12 >> 2] | 0) == ($25 | 0)) {
      break;
     }
     _abort();
    }
   } while (0);
   if (($40 | 0) == ($37 | 0)) {
    HEAP32[20] = HEAP32[20] & (1 << ($21 >>> 3) ^ -1);
    $p_0 = $25;
    $psize_0 = $26;
    HEAP32[sp + 696 >> 2] = 1;
    break OL;
   }
   do {
    if (($40 | 0) == (120 + ($21 >>> 3 << 1 << 2) | 0 | 0)) {
     $_pre_phi307 = $40 + 8 | 0;
    } else {
     if ($40 >>> 0 < $5 >>> 0) {
      _abort();
     }
     if ((HEAP32[($40 + 8 | 0) >> 2] | 0) == ($25 | 0)) {
      $_pre_phi307 = $40 + 8 | 0;
      break;
     }
     _abort();
    }
   } while (0);
   HEAP32[$37 + 12 >> 2] = $40;
   HEAP32[$_pre_phi307 >> 2] = $37;
   $p_0 = $25;
   $psize_0 = $26;
   HEAP32[sp + 696 >> 2] = 1;
   break OL;
  }
  $69 = $mem + (-8 - $21 | 0) | 0;
  $72 = HEAP32[$mem + ((-8 - $21 | 0) + 24) >> 2] | 0;
  $75 = HEAP32[$mem + ((-8 - $21 | 0) + 12) >> 2] | 0;
  do {
   helper$1 = 1;
   if (helper$1) {
    helper$1 = 0;
    if (($75 | 0) == ($69 | 0)) {
     $95 = HEAP32[($mem + ((-8 - $21 | 0) + 20) | 0) >> 2] | 0;
     if (($95 | 0) == 0) {
      $100 = HEAP32[($mem + ((-8 - $21 | 0) + 16) | 0) >> 2] | 0;
      if (($100 | 0) == 0) {
       $R_1 = 0;
       break;
      } else {
       $R_0 = $100;
       $RP_0 = $mem + ((-8 - $21 | 0) + 16) | 0;
      }
     } else {
      $R_0 = $95;
      $RP_0 = $mem + ((-8 - $21 | 0) + 20) | 0;
     }
     while (1) {
      $102 = $R_0 + 20 | 0;
      $103 = HEAP32[$102 >> 2] | 0;
      if (($103 | 0) != 0) {
       $R_0 = $103;
       $RP_0 = $102;
       continue;
      }
      $106 = $R_0 + 16 | 0;
      $107 = HEAP32[$106 >> 2] | 0;
      if (($107 | 0) == 0) {
       break;
      } else {
       $R_0 = $107;
       $RP_0 = $106;
      }
     }
     if ($RP_0 >>> 0 < $5 >>> 0) {
      _abort();
     } else {
      HEAP32[$RP_0 >> 2] = 0;
      $R_1 = $R_0;
      break;
     }
    } else {
     helper$1 = 1;
    }
   }
   if (helper$1) {
    helper$1 = 0;
    if (1) {
     $80 = HEAP32[$mem + ((-8 - $21 | 0) + 8) >> 2] | 0;
     if ($80 >>> 0 < $5 >>> 0) {
      _abort();
     }
     if ((HEAP32[($80 + 12 | 0) >> 2] | 0) != ($69 | 0)) {
      _abort();
     }
     if ((HEAP32[($75 + 8 | 0) >> 2] | 0) == ($69 | 0)) {
      HEAP32[($80 + 12 | 0) >> 2] = $75;
      HEAP32[($75 + 8 | 0) >> 2] = $80;
      $R_1 = $75;
      break;
     } else {
      _abort();
     }
    } else {
     helper$1 = 1;
    }
   }
  } while (0);
  if (($72 | 0) == 0) {
   $p_0 = $25;
   $psize_0 = $26;
   HEAP32[sp + 696 >> 2] = 1;
   break OL;
  }
  $120 = 384 + (HEAP32[($mem + ((-8 - $21 | 0) + 28) | 0) >> 2] << 2) | 0;
  do {
   if (($69 | 0) == (HEAP32[$120 >> 2] | 0)) {
    HEAP32[$120 >> 2] = $R_1;
    if (($R_1 | 0) != 0) {
     break;
    }
    HEAP32[21] = HEAP32[21] & (1 << HEAP32[($mem + ((-8 - $21 | 0) + 28) | 0) >> 2] ^ -1);
    $p_0 = $25;
    $psize_0 = $26;
    HEAP32[sp + 696 >> 2] = 2;
    HEAP32[sp + 700 >> 2] = 2;
    break OL;
   } else {
    if ($72 >>> 0 < (HEAP32[24] | 0) >>> 0) {
     _abort();
    }
    if ((HEAP32[($72 + 16 | 0) >> 2] | 0) == ($69 | 0)) {
     HEAP32[($72 + 16 | 0) >> 2] = $R_1;
    } else {
     HEAP32[$72 + 20 >> 2] = $R_1;
    }
    if (($R_1 | 0) == 0) {
     $p_0 = $25;
     $psize_0 = $26;
     HEAP32[sp + 696 >> 2] = 2;
     HEAP32[sp + 700 >> 2] = 2;
     break OL;
    }
   }
  } while (0);
  if ($R_1 >>> 0 < (HEAP32[24] | 0) >>> 0) {
   _abort();
  }
  HEAP32[$R_1 + 24 >> 2] = $72;
  $151 = HEAP32[$mem + ((-8 - $21 | 0) + 16) >> 2] | 0;
  do {
   if (($151 | 0) != 0) {
    if ($151 >>> 0 < (HEAP32[24] | 0) >>> 0) {
     _abort();
    } else {
     HEAP32[$R_1 + 16 >> 2] = $151;
     HEAP32[$151 + 24 >> 2] = $R_1;
     break;
    }
   }
  } while (0);
  $164 = HEAP32[$mem + ((-8 - $21 | 0) + 20) >> 2] | 0;
  if (($164 | 0) == 0) {
   $p_0 = $25;
   $psize_0 = $26;
   HEAP32[sp + 696 >> 2] = 1;
   break OL;
  }
  if ($164 >>> 0 < (HEAP32[24] | 0) >>> 0) {
   _abort();
  } else {
   HEAP32[$R_1 + 20 >> 2] = $164;
   HEAP32[$164 + 24 >> 2] = $R_1;
   $p_0 = $25;
   $psize_0 = $26;
   HEAP32[sp + 696 >> 2] = 1;
   break OL;
  }
 } while (0);
 HEAP32[sp + 216 >> 2] = $psize_0;
 HEAP32[sp + 224 >> 2] = $p_0;
}
function _free$2(sp) {
 sp = sp | 0;
 var helper$2 = 0, $194 = 0, $16 = 0, $204 = 0, $psize_0 = 0, $p_0 = 0, $220 = 0, $189 = 0, $227 = 0, helper$3 = 0, $mem = 0, $10 = 0, $psize_1 = 0, $390 = 0, $396 = 0, $F16_0 = 0, $_pre_phi = 0, $404 = 0, $414 = 0, $415 = 0, $I18_0 = 0, $428 = 0, $436 = 0, $443 = 0, $447 = 0, $448 = 0, helper$5 = 0, $463 = 0, $K19_0 = 0, $T_0 = 0, $472 = 0, $473 = 0, label = 0, $486 = 0, $487 = 0, $489 = 0, $501 = 0, $sp_0_in_i = 0, $sp_0_i = 0;
 $mem = HEAP32[sp + 8 >> 2] | 0;
 $10 = HEAP32[sp + 24 >> 2] | 0;
 $16 = HEAP32[sp + 32 >> 2] | 0;
 $psize_0 = HEAP32[sp + 216 >> 2] | 0;
 $p_0 = HEAP32[sp + 224 >> 2] | 0;
 $189 = HEAP32[sp + 232 >> 2] | 0;
 $194 = HEAP32[sp + 240 >> 2] | 0;
 OL : do {
  do {
   helper$2 = 1;
   if (helper$2) {
    helper$2 = 0;
    if (($194 & 2 | 0) == 0) {
     if (($16 | 0) == (HEAP32[26] | 0)) {
      $204 = (HEAP32[23] | 0) + $psize_0 | 0;
      HEAP32[23] = $204;
      HEAP32[26] = $p_0;
      HEAP32[$p_0 + 4 >> 2] = $204 | 1;
      if (($p_0 | 0) == (HEAP32[25] | 0)) {
       HEAP32[25] = 0;
       HEAP32[22] = 0;
      }
      if ($204 >>> 0 <= (HEAP32[27] | 0) >>> 0) {
       HEAP32[sp + 704 >> 2] = 5;
       break OL;
      }
      _sys_trim(0) | 0;
      HEAP32[sp + 704 >> 2] = 5;
      break OL;
     }
     if (($16 | 0) == (HEAP32[25] | 0)) {
      $220 = (HEAP32[22] | 0) + $psize_0 | 0;
      HEAP32[22] = $220;
      HEAP32[25] = $p_0;
      HEAP32[$p_0 + 4 >> 2] = $220 | 1;
      HEAP32[$189 + $220 >> 2] = $220;
      HEAP32[sp + 704 >> 2] = 5;
      break OL;
     }
     $227 = ($194 & -8) + $psize_0 | 0;
     L726 : do {
      helper$3 = 1;
      HEAP32[sp + 8 >> 2] = $mem;
      HEAP32[sp + 24 >> 2] = $10;
      HEAP32[sp + 32 >> 2] = $16;
      HEAP32[sp + 240 >> 2] = $194;
      HEAP32[sp + 664 >> 2] = helper$3;
      HEAP32[sp + 688 >> 2] = 0;
      HEAP32[sp + 692 >> 2] = 0;
      _free$0(sp);
      helper$3 = HEAP32[sp + 664 >> 2] | 0;
      tempValue = HEAP32[sp + 688 >> 2] | 0;
      tempInt = HEAP32[sp + 692 >> 2] | 0;
      tempDouble = +HEAPF32[sp + 692 >> 2];
      HEAP32[sp + 688 >> 2] = 0;
      HEAP32[sp + 692 >> 2] = 0;
      if ((tempValue | 0) == 1) {
       break;
      }
      if ((tempValue | 0) == 2) {
       switch (tempInt | 0) {
       case 2:
        {
         break L726;
        }
       }
      }
     } while (0);
     HEAP32[$p_0 + 4 >> 2] = $227 | 1;
     HEAP32[$189 + $227 >> 2] = $227;
     if (($p_0 | 0) != (HEAP32[25] | 0)) {
      $psize_1 = $227;
      break;
     }
     HEAP32[22] = $227;
     HEAP32[sp + 704 >> 2] = 5;
     break OL;
    } else {
     helper$2 = 1;
    }
   }
   if (helper$2) {
    helper$2 = 0;
    if (1) {
     HEAP32[($mem + (($10 & -8) - 4) | 0) >> 2] = $194 & -2;
     HEAP32[$p_0 + 4 >> 2] = $psize_0 | 1;
     HEAP32[$189 + $psize_0 >> 2] = $psize_0;
     $psize_1 = $psize_0;
    } else {
     helper$2 = 1;
    }
   }
  } while (0);
  $390 = $psize_1 >>> 3;
  if ($psize_1 >>> 0 < 256) {
   $396 = HEAP32[20] | 0;
   do {
    if (($396 & 1 << $390 | 0) == 0) {
     HEAP32[20] = $396 | 1 << $390;
     $F16_0 = 120 + ($390 << 1 << 2) | 0;
     $_pre_phi = 120 + (($390 << 1) + 2 << 2) | 0;
    } else {
     $404 = HEAP32[(120 + (($390 << 1) + 2 << 2) | 0) >> 2] | 0;
     if ($404 >>> 0 >= (HEAP32[24] | 0) >>> 0) {
      $F16_0 = $404;
      $_pre_phi = 120 + (($390 << 1) + 2 << 2) | 0;
      break;
     }
     _abort();
    }
   } while (0);
   HEAP32[$_pre_phi >> 2] = $p_0;
   HEAP32[$F16_0 + 12 >> 2] = $p_0;
   HEAP32[$p_0 + 8 >> 2] = $F16_0;
   HEAP32[$p_0 + 12 >> 2] = 120 + ($390 << 1 << 2) | 0;
   HEAP32[sp + 704 >> 2] = 5;
   break OL;
  }
  $414 = $p_0;
  $415 = $psize_1 >>> 8;
  do {
   if (($415 | 0) == 0) {
    $I18_0 = 0;
   } else {
    if ($psize_1 >>> 0 > 16777215) {
     $I18_0 = 31;
     break;
    }
    $428 = $415 << (($415 + 1048320 | 0) >>> 16 & 8) << ((($415 << (($415 + 1048320 | 0) >>> 16 & 8)) + 520192 | 0) >>> 16 & 4);
    $436 = 14 - ((($415 << (($415 + 1048320 | 0) >>> 16 & 8)) + 520192 | 0) >>> 16 & 4 | ($415 + 1048320 | 0) >>> 16 & 8 | ($428 + 245760 | 0) >>> 16 & 2) + ($428 << (($428 + 245760 | 0) >>> 16 & 2) >>> 15) | 0;
    $I18_0 = $psize_1 >>> (($436 + 7 | 0) >>> 0) & 1 | $436 << 1;
   }
  } while (0);
  $443 = 384 + ($I18_0 << 2) | 0;
  HEAP32[$p_0 + 28 >> 2] = $I18_0;
  HEAP32[$p_0 + 20 >> 2] = 0;
  HEAP32[$p_0 + 16 >> 2] = 0;
  $447 = HEAP32[21] | 0;
  $448 = 1 << $I18_0;
  do {
   helper$5 = 1;
   if (helper$5) {
    helper$5 = 0;
    if (($447 & $448 | 0) == 0) {
     HEAP32[21] = $447 | $448;
     HEAP32[$443 >> 2] = $414;
     HEAP32[$p_0 + 24 >> 2] = $443;
     HEAP32[$p_0 + 12 >> 2] = $p_0;
     HEAP32[$p_0 + 8 >> 2] = $p_0;
    } else {
     helper$5 = 1;
    }
   }
   if (helper$5) {
    helper$5 = 0;
    if (1) {
     if (($I18_0 | 0) == 31) {
      $463 = 0;
     } else {
      $463 = 25 - ($I18_0 >>> 1) | 0;
     }
     $K19_0 = $psize_1 << $463;
     $T_0 = HEAP32[$443 >> 2] | 0;
     while (1) {
      if ((HEAP32[$T_0 + 4 >> 2] & -8 | 0) == ($psize_1 | 0)) {
       break;
      }
      $472 = $T_0 + 16 + ($K19_0 >>> 31 << 2) | 0;
      $473 = HEAP32[$472 >> 2] | 0;
      if (($473 | 0) == 0) {
       label = 569;
       break;
      } else {
       $K19_0 = $K19_0 << 1;
       $T_0 = $473;
      }
     }
     if ((label | 0) == 569) {
      if ($472 >>> 0 < (HEAP32[24] | 0) >>> 0) {
       _abort();
      } else {
       HEAP32[$472 >> 2] = $414;
       HEAP32[$p_0 + 24 >> 2] = $T_0;
       HEAP32[$p_0 + 12 >> 2] = $p_0;
       HEAP32[$p_0 + 8 >> 2] = $p_0;
       break;
      }
     }
     $486 = $T_0 + 8 | 0;
     $487 = HEAP32[$486 >> 2] | 0;
     $489 = HEAP32[24] | 0;
     if ($T_0 >>> 0 < $489 >>> 0) {
      _abort();
     }
     if ($487 >>> 0 < $489 >>> 0) {
      _abort();
     } else {
      HEAP32[$487 + 12 >> 2] = $414;
      HEAP32[$486 >> 2] = $414;
      HEAP32[$p_0 + 8 >> 2] = $487;
      HEAP32[$p_0 + 12 >> 2] = $T_0;
      HEAP32[$p_0 + 24 >> 2] = 0;
      break;
     }
    } else {
     helper$5 = 1;
    }
   }
  } while (0);
  $501 = (HEAP32[28] | 0) - 1 | 0;
  HEAP32[28] = $501;
  if (($501 | 0) == 0) {
   $sp_0_in_i = 536;
  } else {
   HEAP32[sp + 704 >> 2] = 5;
   break OL;
  }
  while (1) {
   $sp_0_i = HEAP32[$sp_0_in_i >> 2] | 0;
   if (($sp_0_i | 0) == 0) {
    break;
   } else {
    $sp_0_in_i = $sp_0_i + 8 | 0;
   }
  }
  HEAP32[28] = -1;
  STACKTOP = sp;
  HEAP32[sp + 704 >> 2] = 5;
  break OL;
 } while (0);
}