My first compiler

2sort

Source Code

// MyCC code example
// Gabriel Capella
class Test {
    public void main() {
        Array a;
        int total;
        int tmp;
        total = 50;

        a = new Array();
        a.create(total);

        tmp = total;
        while (0 < tmp) {
            a.set(((tmp-1)*269)%total, tmp);
            tmp = tmp - 1;
        }

        a.show();
        print(10);

        a.sort();
        a.show();
        print(10);
    }
}

class Array {
    Element head;
    Array sort_helper;
    public void create(int n) {
        int i;
        Element p;
        i = n;
        while (0 < i) {
            Element p;
            p = new Element();
            p.setValue(0);
            if (i < n) {
                p.setNext(head);
                p.setEnd(false);
            } else {
                p.setEnd(true);
            }
            head = p;
            i = i - 1;
        }
    }

    public int get(int n) {
        Element old;
        int count;
        old = head;
        count = 0;
        while (true) {
            if  (n-1 < count) {
                return old.value();
            }
            if(old.isEnd()) {
                print(64);
                return 0;
            }
            old = old.getNext();
            count = count + 1;
        }
    }

    public void set(int n, int v) {
        Element old;
        int count;
        old = head;
        count = 0;
        while (true) {
            if  (n-1 < count) {
                old.setValue(v);
                return;
            }
            if(old.isEnd()) {
                print(64);
                return;
            }
            old = old.getNext();
            count = count + 1;
        }
    }

    public void show() {
        Element old;
        int count;
        old = head;
        count = 0;
        while (true) {
            old.show();
            if(old.isEnd()) {
                return;
            }
            print(44);
            old = old.getNext();
        }
    }

    public void merge(int p, int m, int q) {
        int k;
        k = p;
        // copy to tmp
        while (k < q + 1) {
            sort_helper.set(k, get(k));
            k = k + 1;
        }

        int n1;
        int n2;
        n1 = m;
        n2 = q;
        k = p;
        m = m + 1;
        while ((p < n1+1) && (m < n2+1)) { 
            int tmp1;
            int tmp2;
            tmp1 = sort_helper.get(p);
            tmp2 = sort_helper.get(m);

            if (tmp1 < tmp2) { 
                set(k, tmp1);
                p = p + 1; 
            } else { 
                set(k, tmp2);
                m = m + 1; 
            } 
            k = k + 1;
        } 

        while (p < n1 + 1) { 
            set(k, sort_helper.get(p));
            p = p + 1;
            k = k + 1;
        } 
      
        while (m < n2 + 1) { 
            set(k, sort_helper.get(m));
            m = m + 1;
            k = k + 1;
        } 
    }
    public void sort_internal(int p, int q) {
        if (p < q) {
            int m;
            m = p+(q-p)/2;
            sort_internal(p, m);
            sort_internal(m+1, q);
            merge(p, m, q);
        }

    }

    public void sort() {
        Element old;
        int count;
        boolean x;
        x = true;
        old = head;
        count = 0;
        while (x) {
            if(old.isEnd()) {
                x = false;
            } else {
                old = old.getNext();
            }
            count = count + 1;
        }
        sort_helper = new Array();
        sort_helper.create(count);
        sort_internal(0, count-1);
    }
}

class Element {
    int i;
    boolean end;
    Element e;
    public void setValue(int k) {
        i = k;
    }
    public void setEnd(boolean k) {
        end = k;
    }
    public void setNext(Element k) {
        e = k;
    }
    public Element getNext() {
        return e;
    }
    public int value() {
        return i;
    }
    public boolean isEnd() {
        return end;
    }
    public void show() {
        Print pp;
        pp = new Print();
        pp.Integer(i);
    }
}

class Print {
    int v;
        public void Integer(int i) {
            int tmp;
            int c;
            tmp = 0;
            c = 0;

            if ( (i < 1) && (0-1 < i)) {
                print(48);
                return;
            }

            if (i < 1) {
                i = (0-1)*i;
                print(45);
            }

            while (0 < i) {
                tmp = tmp * 10 + i % 10; 
                i = i /10;
                c = c + 1;
            }

            while (0 < tmp) {
                print(tmp % 10 + 48);
                tmp = tmp /10;
                c = c - 1;
            }
            while (0 < c) {
                print(48);
                c = c - 1;
        }
    }
}

preview

preview

preview

preview

preview

preview

preview

preview

Results

Assembly

# SPILL %173
# SPILL %212
# SPILL %207
# SPILL %9
# SPILL %93
# SPILL %574
# SPILL %40
# SPILL %91
# SPILL %420
# SPILL %1
# SPILL %45
# SPILL %3
# SPILL %257
# SPILL %324
# SPILL %365
# SPILL %14
# SPILL %448
# SPILL %189
# SPILL %326
# SPILL %367
# SPILL %462
# SPILL %272
# SPILL %407
# SPILL %435
# SPILL %233
# SPILL %453
# SPILL %580
# SPILL %191
# SPILL %424
# SPILL %502
# SPILL %279
# SPILL %61
# SPILL %74
# SPILL %174
# SPILL %296
# SPILL %482
# SPILL %512
# SPILL %522
# SPILL %532
# SPILL %563
# SPILL %617
# SPILL %229
# SPILL %237
# SPILL %50
# SPILL %135
# SPILL %222
# SPILL %250
# SPILL %265
# SPILL %289
# SPILL %306
# SPILL %316
# SPILL %334
# SPILL %347
# SPILL %357
# SPILL %375
# SPILL %388
# SPILL %398
# SPILL %411
# SPILL %439
# SPILL %455
# SPILL %504
# SPILL %583
# SPILL %599
# SPILL %604
# SPILL %609
# SPILL %630
.globl main

main:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP

   movq    $0, %rax
   movq    %rax, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   pushq   %rax

   callq   __LABEL0
   popq   %rax

   movq %rbp, %rsp            # Restore ESP
   popq %rbp                  # Restore EBP
   retq

__LABEL0:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MovL %0 <- 50
   movq   $50, %rax
   ##MoMo %1 <- %0
   movq   %rax, %rbx
   ##MovL %667 <- -80
   movq   $-80, %rax
   ##MoOp %667 <- %667,%-1
   addq   %rbp, %rax
   ##RToM #667 <- %1
   movq   %rbx, (%rax)
   ##MoMa 2
   pushq  %rbx                  ## prepare malloc
   movq    $16, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rbx
   ##MoMo %3 <- %2
   movq   %rax, %rbx
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##RToM #669 <- %3
   movq   %rbx, (%rax)
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##MToR %669 <- #669
   movq   (%rax), %rax
   ##MoMo %4 <- %669
   ##MoMo %5 <- %4
   movq   %rax, %rbx
   ##MovL %667 <- -80
   movq   $-80, %rax
   ##MoOp %667 <- %667,%-1
   addq   %rbp, %rax
   ##MToR %667 <- #667
   movq   (%rax), %rax
   ##MoMo %6 <- %667
   ##MoMo %7 <- %6
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %7
   pushq  %rax
   ##Push %5
   pushq  %rbx
   ##Call (#997205875)
   call   __LABEL7
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %667 <- -80
   movq   $-80, %rax
   ##MoOp %667 <- %667,%-1
   addq   %rbp, %rax
   ##MToR %667 <- #667
   movq   (%rax), %rax
   ##MoMo %8 <- %667
   ##MoMo %9 <- %8
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##RToM #661 <- %9
   movq   %rbx, (%rax)

__LABEL1:

__LABEL2:
   ##MovL %10 <- 0
   movq   $0, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %11 <- %661
   ##MoOp %12 <- %10,%11
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %12
   testq   %rax, %rax
   jnz     __LABEL3

__LABEL4:
   ##Jump 5
   jmp    __LABEL5

__LABEL5:
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##MToR %669 <- #669
   movq   (%rax), %rax
   ##MoMo %28 <- %669
   ##MoMo %29 <- %28
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %29
   pushq  %rax
   ##Call (#1743355921)
   call   __LABEL49
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %30 <- 10
   movq   $10, %rax
   ##Prin %30
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##MToR %669 <- #669
   movq   (%rax), %rax
   ##MoMo %31 <- %669
   ##MoMo %32 <- %31
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %32
   pushq  %rax
   ##Call (#1526056698)
   call   __LABEL95
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##MToR %669 <- #669
   movq   (%rax), %rax
   ##MoMo %33 <- %669
   ##MoMo %34 <- %33
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %34
   pushq  %rax
   ##Call (#1743355921)
   call   __LABEL49
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %35 <- 10
   movq   $10, %rax
   ##Prin %35
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL3:

__LABEL6:
   ##MovL %669 <- -96
   movq   $-96, %rax
   ##MoOp %669 <- %669,%-1
   addq   %rbp, %rax
   ##MToR %669 <- #669
   movq   (%rax), %rax
   ##MoMo %13 <- %669
   ##MoMo %14 <- %13
   movq   %rax, %rbx
   ##MovL %673 <- -128
   movq   $-128, %rax
   ##MoOp %673 <- %673,%-1
   addq   %rbp, %rax
   ##RToM #673 <- %14
   movq   %rbx, (%rax)
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %15 <- %661
   movq   %rax, %rbx
   ##MovL %16 <- 1
   movq   $1, %rax
   ##MoOp %17 <- %15,%16
   subq   %rax, %rbx
   ##MovL %18 <- 269
   movq   $269, %rax
   ##MoOp %19 <- %17,%18
   imul   %rax, %rbx
   ##MovL %667 <- -80
   movq   $-80, %rax
   ##MoOp %667 <- %667,%-1
   addq   %rbp, %rax
   ##MToR %667 <- #667
   movq   (%rax), %rax
   ##MoMo %20 <- %667
   ##MoOp %21 <- %19,%20
#%rax A:%rbx 		 B:%rax
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   movq    %rdx, %rax
   popq    %rdx
   ##MoMo %22 <- %21
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %23 <- %661
   ##MoMo %24 <- %23
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %24
   pushq  %rax
   ##Push %22
   pushq  %rbx
   ##MovL %673 <- -128
   movq   $-128, %rax
   ##MoOp %673 <- %673,%-1
   addq   %rbp, %rax
   ##MToR %673 <- #673
   movq   (%rax), %rax
   ##Push %673
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %25 <- %661
   movq   %rax, %rbx
   ##MovL %26 <- 1
   movq   $1, %rax
   ##MoOp %27 <- %25,%26
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %9 <- %27
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##RToM #661 <- %9
   movq   %rbx, (%rax)
   ##Jump 2
   jmp    __LABEL2

__LABEL7:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %36 <- %-1
   movq   %rbp, %rbx
   ##MovL %37 <- 24
   movq   $24, %rax
   ##MoOp %38 <- %36,%37
   addq   %rbx, %rax
   ##MToR %39 <- #38
   movq   (%rax), %rax
   ##MoMo %40 <- %39
   ##MovL %664 <- -56
   movq   $-56, %rbx
   ##MoOp %664 <- %664,%-1
   addq   %rbp, %rbx
   ##RToM #664 <- %40
   movq   %rax, (%rbx)

__LABEL8:

__LABEL9:
   ##MovL %41 <- 0
   movq   $0, %rax
   ##MovL %664 <- -56
   movq   $-56, %rbx
   ##MoOp %664 <- %664,%-1
   addq   %rbp, %rbx
   ##MToR %664 <- #664
   movq   (%rbx), %rbx
   ##MoMo %42 <- %664
   ##MoOp %43 <- %41,%42
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %43
   testq   %rax, %rax
   jnz     __LABEL10

__LABEL11:
   ##Jump 12
   jmp    __LABEL12

__LABEL12:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL10:

__LABEL13:
   ##MoMa 44
   pushq  %rbx                  ## prepare malloc
   movq    $24, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rbx
   ##MoMo %45 <- %44
   movq   %rax, %rbx
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##RToM #668 <- %45
   movq   %rbx, (%rax)
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##MToR %668 <- #668
   movq   (%rax), %rax
   ##MoMo %46 <- %668
   ##MoMo %47 <- %46
   ##MovL %48 <- 0
   movq   $0, %rbx
   ##MoMo %49 <- %48
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %49
   pushq  %rbx
   ##Push %47
   pushq  %rax
   ##Call (#1755579204)
   call   __LABEL107
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %664 <- -56
   movq   $-56, %rbx
   ##MoOp %664 <- %664,%-1
   addq   %rbp, %rbx
   ##MToR %664 <- #664
   movq   (%rbx), %rbx
   ##MoMo %50 <- %664
   ##MovL %701 <- -352
   movq   $-352, %rax
   ##MoOp %701 <- %701,%-1
   addq   %rbp, %rax
   ##RToM #701 <- %50
   movq   %rbx, (%rax)
   ##MoMo %51 <- %-1
   movq   %rbp, %rbx
   ##MovL %52 <- 24
   movq   $24, %rax
   ##MoOp %53 <- %51,%52
   addq   %rbx, %rax
   ##MToR %54 <- #53
   movq   (%rax), %rbx
   ##MovL %701 <- -352
   movq   $-352, %rax
   ##MoOp %701 <- %701,%-1
   addq   %rbp, %rax
   ##MToR %701 <- #701
   movq   (%rax), %rax
   ##MoOp %55 <- %701,%54
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %55
   testq   %rax, %rax
   jnz     __LABEL14

__LABEL15:

__LABEL16:
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##MToR %668 <- #668
   movq   (%rax), %rax
   ##MoMo %56 <- %668
   ##MoMo %57 <- %56
   ##MovL %58 <- 1
   movq   $1, %rbx
   ##MoMo %59 <- %58
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %59
   pushq  %rbx
   ##Push %57
   pushq  %rax
   ##Call (#7967052)
   call   __LABEL108
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##Jump 17
   jmp    __LABEL17

__LABEL17:
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##MToR %668 <- #668
   movq   (%rax), %rax
   ##MoMo %74 <- %668
   movq   %rax, %rbx
   ##MovL %690 <- -264
   movq   $-264, %rax
   ##MoOp %690 <- %690,%-1
   addq   %rbp, %rax
   ##RToM #690 <- %74
   movq   %rbx, (%rax)
   ##MoMo %75 <- %-1
   movq   %rbp, %rbx
   ##MovL %76 <- 16
   movq   $16, %rax
   ##MoOp %77 <- %75,%76
   addq   %rbx, %rax
   ##MToR %78 <- #77
   movq   (%rax), %rbx
   ##MovL %79 <- 8
   movq   $8, %rax
   ##MoOp %80 <- %78,%79
   addq   %rax, %rbx
   ##MovL %690 <- -264
   movq   $-264, %rax
   ##MoOp %690 <- %690,%-1
   addq   %rbp, %rax
   ##MToR %690 <- #690
   movq   (%rax), %rax
   ##RToM #80 <- %690
   movq   %rax, (%rbx)
   ##MovL %664 <- -56
   movq   $-56, %rbx
   ##MoOp %664 <- %664,%-1
   addq   %rbp, %rbx
   ##MToR %664 <- #664
   movq   (%rbx), %rbx
   ##MoMo %81 <- %664
   ##MovL %82 <- 1
   movq   $1, %rax
   ##MoOp %83 <- %81,%82
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %40 <- %83
   ##MovL %664 <- -56
   movq   $-56, %rbx
   ##MoOp %664 <- %664,%-1
   addq   %rbp, %rbx
   ##RToM #664 <- %40
   movq   %rax, (%rbx)
   ##Jump 9
   jmp    __LABEL9

__LABEL14:

__LABEL18:
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##MToR %668 <- #668
   movq   (%rax), %rax
   ##MoMo %60 <- %668
   ##MoMo %61 <- %60
   movq   %rax, %rbx
   ##MovL %689 <- -256
   movq   $-256, %rax
   ##MoOp %689 <- %689,%-1
   addq   %rbp, %rax
   ##RToM #689 <- %61
   movq   %rbx, (%rax)
   ##MoMo %62 <- %-1
   movq   %rbp, %rbx
   ##MovL %63 <- 16
   movq   $16, %rax
   ##MoOp %64 <- %62,%63
   addq   %rbx, %rax
   ##MToR %65 <- #64
   movq   (%rax), %rbx
   ##MovL %66 <- 8
   movq   $8, %rax
   ##MoOp %67 <- %65,%66
   addq   %rbx, %rax
   ##MToR %68 <- #67
   movq   (%rax), %rax
   ##MoMo %69 <- %68
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %69
   pushq  %rax
   ##MovL %689 <- -256
   movq   $-256, %rax
   ##MoOp %689 <- %689,%-1
   addq   %rbp, %rax
   ##MToR %689 <- #689
   movq   (%rax), %rax
   ##Push %689
   pushq  %rax
   ##Call (#1570585491)
   call   __LABEL109
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %668 <- -88
   movq   $-88, %rax
   ##MoOp %668 <- %668,%-1
   addq   %rbp, %rax
   ##MToR %668 <- #668
   movq   (%rax), %rax
   ##MoMo %70 <- %668
   ##MoMo %71 <- %70
   ##MovL %72 <- 0
   movq   $0, %rbx
   ##MoMo %73 <- %72
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %73
   pushq  %rbx
   ##Push %71
   pushq  %rax
   ##Call (#7967052)
   call   __LABEL108
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##Jump 17
   jmp    __LABEL17

__LABEL34:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %117 <- %-1
   movq   %rbp, %rbx
   ##MovL %118 <- 16
   movq   $16, %rax
   ##MoOp %119 <- %117,%118
   addq   %rbx, %rax
   ##MToR %120 <- #119
   movq   (%rax), %rbx
   ##MovL %121 <- 8
   movq   $8, %rax
   ##MoOp %122 <- %120,%121
   addq   %rbx, %rax
   ##MToR %123 <- #122
   movq   (%rax), %rax
   ##MoMo %91 <- %123
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %124 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %124
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)

__LABEL35:

__LABEL36:
   ##MovL %125 <- 1
   movq   $1, %rax
   ##JuCo %125
   testq   %rax, %rax
   jnz     __LABEL37

__LABEL38:
   ##Jump 39
   jmp    __LABEL39

__LABEL39:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL37:

__LABEL40:
   ##MoMo %126 <- %-1
   movq   %rbp, %rbx
   ##MovL %127 <- 24
   movq   $24, %rax
   ##MoOp %128 <- %126,%127
   addq   %rbx, %rax
   ##MToR %129 <- #128
   movq   (%rax), %rbx
   ##MovL %130 <- 1
   movq   $1, %rax
   ##MoOp %131 <- %129,%130
   subq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %132 <- %662
   ##MoOp %133 <- %131,%132
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %133
   testq   %rax, %rax
   jnz     __LABEL41

__LABEL42:
   ##Jump 43
   jmp    __LABEL43

__LABEL43:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %141 <- %665
   ##MoMo %142 <- %141
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %142
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##JuCo %143
   testq   %rax, %rax
   jnz     __LABEL45

__LABEL46:
   ##Jump 47
   jmp    __LABEL47

__LABEL47:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %145 <- %665
   ##MoMo %146 <- %145
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %146
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %147
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %148 <- %662
   movq   %rax, %rbx
   ##MovL %149 <- 1
   movq   $1, %rax
   ##MoOp %150 <- %148,%149
   addq   %rbx, %rax
   ##MoMo %93 <- %150
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)
   ##Jump 36
   jmp    __LABEL36

__LABEL45:

__LABEL48:
   ##MovL %144 <- 64
   movq   $64, %rax
   ##Prin %144
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##SRet
   movq  %rbp, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 47
   jmp    __LABEL47

__LABEL41:

__LABEL44:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %134 <- %665
   ##MoMo %135 <- %134
   movq   %rax, %rbx
   ##MovL %702 <- -360
   movq   $-360, %rax
   ##MoOp %702 <- %702,%-1
   addq   %rbp, %rax
   ##RToM #702 <- %135
   movq   %rbx, (%rax)
   ##MoMo %136 <- %-1
   movq   %rbp, %rbx
   ##MovL %137 <- 32
   movq   $32, %rax
   ##MoOp %138 <- %136,%137
   addq   %rbx, %rax
   ##MToR %139 <- #138
   movq   (%rax), %rax
   ##MoMo %140 <- %139
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %140
   pushq  %rax
   ##MovL %702 <- -360
   movq   $-360, %rax
   ##MoOp %702 <- %702,%-1
   addq   %rbp, %rax
   ##MToR %702 <- #702
   movq   (%rax), %rax
   ##Push %702
   pushq  %rax
   ##Call (#1755579204)
   call   __LABEL107
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##SRet
   movq  %rbp, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 43
   jmp    __LABEL43

__LABEL19:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %84 <- %-1
   movq   %rbp, %rbx
   ##MovL %85 <- 16
   movq   $16, %rax
   ##MoOp %86 <- %84,%85
   addq   %rbx, %rax
   ##MToR %87 <- #86
   movq   (%rax), %rbx
   ##MovL %88 <- 8
   movq   $8, %rax
   ##MoOp %89 <- %87,%88
   addq   %rbx, %rax
   ##MToR %90 <- #89
   movq   (%rax), %rax
   ##MoMo %91 <- %90
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %92 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %92
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)

__LABEL20:

__LABEL21:
   ##MovL %94 <- 1
   movq   $1, %rax
   ##JuCo %94
   testq   %rax, %rax
   jnz     __LABEL22

__LABEL23:
   ##Jump 24
   jmp    __LABEL24

__LABEL24:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL22:

__LABEL25:
   ##MoMo %95 <- %-1
   movq   %rbp, %rbx
   ##MovL %96 <- 24
   movq   $24, %rax
   ##MoOp %97 <- %95,%96
   addq   %rbx, %rax
   ##MToR %98 <- #97
   movq   (%rax), %rbx
   ##MovL %99 <- 1
   movq   $1, %rax
   ##MoOp %100 <- %98,%99
   subq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %101 <- %662
   ##MoOp %102 <- %100,%101
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %102
   testq   %rax, %rax
   jnz     __LABEL26

__LABEL27:
   ##Jump 28
   jmp    __LABEL28

__LABEL28:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %106 <- %665
   ##MoMo %107 <- %106
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %107
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##JuCo %108
   testq   %rax, %rax
   jnz     __LABEL30

__LABEL31:
   ##Jump 32
   jmp    __LABEL32

__LABEL32:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %111 <- %665
   ##MoMo %112 <- %111
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %112
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %113
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %114 <- %662
   movq   %rax, %rbx
   ##MovL %115 <- 1
   movq   $1, %rax
   ##MoOp %116 <- %114,%115
   addq   %rbx, %rax
   ##MoMo %93 <- %116
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)
   ##Jump 21
   jmp    __LABEL21

__LABEL30:

__LABEL33:
   ##MovL %109 <- 64
   movq   $64, %rax
   ##Prin %109
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##MovL %110 <- 0
   movq   $0, %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 32
   jmp    __LABEL32

__LABEL26:

__LABEL29:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %103 <- %665
   ##MoMo %104 <- %103
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %104
   pushq  %rax
   ##Call (#1758956387)
   call   __LABEL111
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 28
   jmp    __LABEL28

__LABEL60:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %169 <- %-1
   movq   %rbp, %rbx
   ##MovL %170 <- 24
   movq   $24, %rax
   ##MoOp %171 <- %169,%170
   addq   %rbx, %rax
   ##MToR %172 <- #171
   movq   (%rax), %rax
   ##MoMo %173 <- %172
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)

__LABEL61:

__LABEL62:
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %174 <- %658
   ##MovL %691 <- -272
   movq   $-272, %rax
   ##MoOp %691 <- %691,%-1
   addq   %rbp, %rax
   ##RToM #691 <- %174
   movq   %rbx, (%rax)
   ##MoMo %175 <- %-1
   movq   %rbp, %rbx
   ##MovL %176 <- 40
   movq   $40, %rax
   ##MoOp %177 <- %175,%176
   addq   %rbx, %rax
   ##MToR %178 <- #177
   movq   (%rax), %rbx
   ##MovL %179 <- 1
   movq   $1, %rax
   ##MoOp %180 <- %178,%179
   addq   %rax, %rbx
   ##MovL %691 <- -272
   movq   $-272, %rax
   ##MoOp %691 <- %691,%-1
   addq   %rbp, %rax
   ##MToR %691 <- #691
   movq   (%rax), %rax
   ##MoOp %181 <- %691,%180
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %181
   testq   %rax, %rax
   jnz     __LABEL63

__LABEL64:
   ##Jump 65
   jmp    __LABEL65

__LABEL65:
   ##MoMo %203 <- %-1
   movq   %rbp, %rbx
   ##MovL %204 <- 32
   movq   $32, %rax
   ##MoOp %205 <- %203,%204
   addq   %rbx, %rax
   ##MToR %206 <- #205
   movq   (%rax), %rax
   ##MoMo %207 <- %206
   movq   %rax, %rbx
   ##MovL %660 <- -24
   movq   $-24, %rax
   ##MoOp %660 <- %660,%-1
   addq   %rbp, %rax
   ##RToM #660 <- %207
   movq   %rbx, (%rax)
   ##MoMo %208 <- %-1
   movq   %rbp, %rbx
   ##MovL %209 <- 40
   movq   $40, %rax
   ##MoOp %210 <- %208,%209
   addq   %rbx, %rax
   ##MToR %211 <- #210
   movq   (%rax), %rax
   ##MoMo %212 <- %211
   movq   %rax, %rbx
   ##MovL %659 <- -16
   movq   $-16, %rax
   ##MoOp %659 <- %659,%-1
   addq   %rbp, %rax
   ##RToM #659 <- %212
   movq   %rbx, (%rax)
   ##MoMo %213 <- %-1
   movq   %rbp, %rbx
   ##MovL %214 <- 24
   movq   $24, %rax
   ##MoOp %215 <- %213,%214
   addq   %rbx, %rax
   ##MToR %216 <- #215
   movq   (%rax), %rax
   ##MoMo %173 <- %216
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)
   ##MoMo %217 <- %-1
   movq   %rbp, %rbx
   ##MovL %218 <- 32
   movq   $32, %rax
   ##MoOp %219 <- %217,%218
   addq   %rbx, %rax
   ##MToR %220 <- #219
   movq   (%rax), %rbx
   ##MovL %221 <- 1
   movq   $1, %rax
   ##MoOp %222 <- %220,%221
   addq   %rax, %rbx
   ##MovL %703 <- -368
   movq   $-368, %rax
   ##MoOp %703 <- %703,%-1
   addq   %rbp, %rax
   ##RToM #703 <- %222
   movq   %rbx, (%rax)
   ##MoMo %223 <- %-1
   movq   %rbp, %rbx
   ##MovL %224 <- 32
   movq   $32, %rax
   ##MoOp %225 <- %223,%224
   addq   %rax, %rbx
   ##MovL %703 <- -368
   movq   $-368, %rax
   ##MoOp %703 <- %703,%-1
   addq   %rbp, %rax
   ##MToR %703 <- #703
   movq   (%rax), %rax
   ##RToM #225 <- %703
   movq   %rax, (%rbx)

__LABEL67:

__LABEL68:
   ##MoMo %226 <- %-1
   movq   %rbp, %rbx
   ##MovL %227 <- 24
   movq   $24, %rax
   ##MoOp %228 <- %226,%227
   addq   %rbx, %rax
   ##MToR %229 <- #228
   movq   (%rax), %rbx
   ##MovL %699 <- -336
   movq   $-336, %rax
   ##MoOp %699 <- %699,%-1
   addq   %rbp, %rax
   ##RToM #699 <- %229
   movq   %rbx, (%rax)
   ##MovL %660 <- -24
   movq   $-24, %rax
   ##MoOp %660 <- %660,%-1
   addq   %rbp, %rax
   ##MToR %660 <- #660
   movq   (%rax), %rax
   ##MoMo %230 <- %660
   movq   %rax, %rbx
   ##MovL %231 <- 1
   movq   $1, %rax
   ##MoOp %232 <- %230,%231
   addq   %rax, %rbx
   ##MovL %699 <- -336
   movq   $-336, %rax
   ##MoOp %699 <- %699,%-1
   addq   %rbp, %rax
   ##MToR %699 <- #699
   movq   (%rax), %rax
   ##MoOp %233 <- %699,%232
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rbx
   ##MovL %682 <- -200
   movq   $-200, %rax
   ##MoOp %682 <- %682,%-1
   addq   %rbp, %rax
   ##RToM #682 <- %233
   movq   %rbx, (%rax)
   ##MoMo %234 <- %-1
   movq   %rbp, %rbx
   ##MovL %235 <- 32
   movq   $32, %rax
   ##MoOp %236 <- %234,%235
   addq   %rbx, %rax
   ##MToR %237 <- #236
   movq   (%rax), %rbx
   ##MovL %700 <- -344
   movq   $-344, %rax
   ##MoOp %700 <- %700,%-1
   addq   %rbp, %rax
   ##RToM #700 <- %237
   movq   %rbx, (%rax)
   ##MovL %659 <- -16
   movq   $-16, %rax
   ##MoOp %659 <- %659,%-1
   addq   %rbp, %rax
   ##MToR %659 <- #659
   movq   (%rax), %rax
   ##MoMo %238 <- %659
   movq   %rax, %rbx
   ##MovL %239 <- 1
   movq   $1, %rax
   ##MoOp %240 <- %238,%239
   addq   %rax, %rbx
   ##MovL %700 <- -344
   movq   $-344, %rax
   ##MoOp %700 <- %700,%-1
   addq   %rbp, %rax
   ##MToR %700 <- #700
   movq   (%rax), %rax
   ##MoOp %241 <- %700,%240
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rbx
   ##MovL %682 <- -200
   movq   $-200, %rax
   ##MoOp %682 <- %682,%-1
   addq   %rbp, %rax
   ##MToR %682 <- #682
   movq   (%rax), %rax
   ##MoOp %242 <- %682,%241
   andq   %rbx, %rax
   andq   $1, %rax
   ##JuCo %242
   testq   %rax, %rax
   jnz     __LABEL69

__LABEL70:
   ##Jump 71
   jmp    __LABEL71

__LABEL71:

__LABEL78:

__LABEL79:
   ##MoMo %313 <- %-1
   movq   %rbp, %rbx
   ##MovL %314 <- 24
   movq   $24, %rax
   ##MoOp %315 <- %313,%314
   addq   %rbx, %rax
   ##MToR %316 <- #315
   movq   (%rax), %rbx
   ##MovL %708 <- -408
   movq   $-408, %rax
   ##MoOp %708 <- %708,%-1
   addq   %rbp, %rax
   ##RToM #708 <- %316
   movq   %rbx, (%rax)
   ##MovL %660 <- -24
   movq   $-24, %rax
   ##MoOp %660 <- %660,%-1
   addq   %rbp, %rax
   ##MToR %660 <- #660
   movq   (%rax), %rax
   ##MoMo %317 <- %660
   movq   %rax, %rbx
   ##MovL %318 <- 1
   movq   $1, %rax
   ##MoOp %319 <- %317,%318
   addq   %rax, %rbx
   ##MovL %708 <- -408
   movq   $-408, %rax
   ##MoOp %708 <- %708,%-1
   addq   %rbp, %rax
   ##MToR %708 <- #708
   movq   (%rax), %rax
   ##MoOp %320 <- %708,%319
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %320
   testq   %rax, %rax
   jnz     __LABEL80

__LABEL81:
   ##Jump 82
   jmp    __LABEL82

__LABEL82:

__LABEL84:

__LABEL85:
   ##MoMo %354 <- %-1
   movq   %rbp, %rbx
   ##MovL %355 <- 32
   movq   $32, %rax
   ##MoOp %356 <- %354,%355
   addq   %rbx, %rax
   ##MToR %357 <- #356
   movq   (%rax), %rbx
   ##MovL %711 <- -432
   movq   $-432, %rax
   ##MoOp %711 <- %711,%-1
   addq   %rbp, %rax
   ##RToM #711 <- %357
   movq   %rbx, (%rax)
   ##MovL %659 <- -16
   movq   $-16, %rax
   ##MoOp %659 <- %659,%-1
   addq   %rbp, %rax
   ##MToR %659 <- #659
   movq   (%rax), %rax
   ##MoMo %358 <- %659
   movq   %rax, %rbx
   ##MovL %359 <- 1
   movq   $1, %rax
   ##MoOp %360 <- %358,%359
   addq   %rax, %rbx
   ##MovL %711 <- -432
   movq   $-432, %rax
   ##MoOp %711 <- %711,%-1
   addq   %rbp, %rax
   ##MToR %711 <- #711
   movq   (%rax), %rax
   ##MoOp %361 <- %711,%360
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %361
   testq   %rax, %rax
   jnz     __LABEL86

__LABEL87:
   ##Jump 88
   jmp    __LABEL88

__LABEL88:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL86:

__LABEL89:
   ##MoMo %362 <- %-1
   movq   %rbp, %rbx
   ##MovL %363 <- 16
   movq   $16, %rax
   ##MoOp %364 <- %362,%363
   addq   %rbx, %rax
   ##MToR %365 <- #364
   movq   (%rax), %rbx
   ##MovL %672 <- -120
   movq   $-120, %rax
   ##MoOp %672 <- %672,%-1
   addq   %rbp, %rax
   ##RToM #672 <- %365
   movq   %rbx, (%rax)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %366 <- %658
   movq   %rbx, %rax
   ##MoMo %367 <- %366
   movq   %rax, %rbx
   ##MovL %677 <- -160
   movq   $-160, %rax
   ##MoOp %677 <- %677,%-1
   addq   %rbp, %rax
   ##RToM #677 <- %367
   movq   %rbx, (%rax)
   ##MoMo %368 <- %-1
   movq   %rbp, %rbx
   ##MovL %369 <- 16
   movq   $16, %rax
   ##MoOp %370 <- %368,%369
   addq   %rbx, %rax
   ##MToR %371 <- #370
   movq   (%rax), %rbx
   ##MovL %372 <- 0
   movq   $0, %rax
   ##MoOp %373 <- %371,%372
   addq   %rbx, %rax
   ##MToR %374 <- #373
   movq   (%rax), %rax
   ##MoMo %375 <- %374
   movq   %rax, %rbx
   ##MovL %712 <- -440
   movq   $-440, %rax
   ##MoOp %712 <- %712,%-1
   addq   %rbp, %rax
   ##RToM #712 <- %375
   movq   %rbx, (%rax)
   ##MoMo %376 <- %-1
   movq   %rbp, %rbx
   ##MovL %377 <- 32
   movq   $32, %rax
   ##MoOp %378 <- %376,%377
   addq   %rbx, %rax
   ##MToR %379 <- #378
   movq   (%rax), %rax
   ##MoMo %380 <- %379
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %380
   pushq  %rax
   ##MovL %712 <- -440
   movq   $-440, %rax
   ##MoOp %712 <- %712,%-1
   addq   %rbp, %rax
   ##MToR %712 <- #712
   movq   (%rax), %rax
   ##Push %712
   pushq  %rax
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %382 <- %381
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %382
   pushq  %rax
   ##MovL %677 <- -160
   movq   $-160, %rax
   ##MoOp %677 <- %677,%-1
   addq   %rbp, %rax
   ##MToR %677 <- #677
   movq   (%rax), %rax
   ##Push %677
   pushq  %rax
   ##MovL %672 <- -120
   movq   $-120, %rax
   ##MoOp %672 <- %672,%-1
   addq   %rbp, %rax
   ##MToR %672 <- #672
   movq   (%rax), %rax
   ##Push %672
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %383 <- %-1
   movq   %rbp, %rbx
   ##MovL %384 <- 32
   movq   $32, %rax
   ##MoOp %385 <- %383,%384
   addq   %rbx, %rax
   ##MToR %386 <- #385
   movq   (%rax), %rbx
   ##MovL %387 <- 1
   movq   $1, %rax
   ##MoOp %388 <- %386,%387
   addq   %rax, %rbx
   ##MovL %713 <- -448
   movq   $-448, %rax
   ##MoOp %713 <- %713,%-1
   addq   %rbp, %rax
   ##RToM #713 <- %388
   movq   %rbx, (%rax)
   ##MoMo %389 <- %-1
   movq   %rbp, %rbx
   ##MovL %390 <- 32
   movq   $32, %rax
   ##MoOp %391 <- %389,%390
   addq   %rax, %rbx
   ##MovL %713 <- -448
   movq   $-448, %rax
   ##MoOp %713 <- %713,%-1
   addq   %rbp, %rax
   ##MToR %713 <- #713
   movq   (%rax), %rax
   ##RToM #391 <- %713
   movq   %rax, (%rbx)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %392 <- %658
   ##MovL %393 <- 1
   movq   $1, %rax
   ##MoOp %394 <- %392,%393
   addq   %rbx, %rax
   ##MoMo %173 <- %394
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)
   ##Jump 85
   jmp    __LABEL85

__LABEL80:

__LABEL83:
   ##MoMo %321 <- %-1
   movq   %rbp, %rbx
   ##MovL %322 <- 16
   movq   $16, %rax
   ##MoOp %323 <- %321,%322
   addq   %rbx, %rax
   ##MToR %324 <- #323
   movq   (%rax), %rbx
   ##MovL %671 <- -112
   movq   $-112, %rax
   ##MoOp %671 <- %671,%-1
   addq   %rbp, %rax
   ##RToM #671 <- %324
   movq   %rbx, (%rax)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %325 <- %658
   movq   %rbx, %rax
   ##MoMo %326 <- %325
   movq   %rax, %rbx
   ##MovL %676 <- -152
   movq   $-152, %rax
   ##MoOp %676 <- %676,%-1
   addq   %rbp, %rax
   ##RToM #676 <- %326
   movq   %rbx, (%rax)
   ##MoMo %327 <- %-1
   movq   %rbp, %rbx
   ##MovL %328 <- 16
   movq   $16, %rax
   ##MoOp %329 <- %327,%328
   addq   %rbx, %rax
   ##MToR %330 <- #329
   movq   (%rax), %rbx
   ##MovL %331 <- 0
   movq   $0, %rax
   ##MoOp %332 <- %330,%331
   addq   %rbx, %rax
   ##MToR %333 <- #332
   movq   (%rax), %rax
   ##MoMo %334 <- %333
   movq   %rax, %rbx
   ##MovL %709 <- -416
   movq   $-416, %rax
   ##MoOp %709 <- %709,%-1
   addq   %rbp, %rax
   ##RToM #709 <- %334
   movq   %rbx, (%rax)
   ##MoMo %335 <- %-1
   movq   %rbp, %rbx
   ##MovL %336 <- 24
   movq   $24, %rax
   ##MoOp %337 <- %335,%336
   addq   %rbx, %rax
   ##MToR %338 <- #337
   movq   (%rax), %rax
   ##MoMo %339 <- %338
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %339
   pushq  %rax
   ##MovL %709 <- -416
   movq   $-416, %rax
   ##MoOp %709 <- %709,%-1
   addq   %rbp, %rax
   ##MToR %709 <- #709
   movq   (%rax), %rax
   ##Push %709
   pushq  %rax
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %341 <- %340
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %341
   pushq  %rax
   ##MovL %676 <- -152
   movq   $-152, %rax
   ##MoOp %676 <- %676,%-1
   addq   %rbp, %rax
   ##MToR %676 <- #676
   movq   (%rax), %rax
   ##Push %676
   pushq  %rax
   ##MovL %671 <- -112
   movq   $-112, %rax
   ##MoOp %671 <- %671,%-1
   addq   %rbp, %rax
   ##MToR %671 <- #671
   movq   (%rax), %rax
   ##Push %671
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %342 <- %-1
   movq   %rbp, %rbx
   ##MovL %343 <- 24
   movq   $24, %rax
   ##MoOp %344 <- %342,%343
   addq   %rbx, %rax
   ##MToR %345 <- #344
   movq   (%rax), %rbx
   ##MovL %346 <- 1
   movq   $1, %rax
   ##MoOp %347 <- %345,%346
   addq   %rax, %rbx
   ##MovL %710 <- -424
   movq   $-424, %rax
   ##MoOp %710 <- %710,%-1
   addq   %rbp, %rax
   ##RToM #710 <- %347
   movq   %rbx, (%rax)
   ##MoMo %348 <- %-1
   movq   %rbp, %rbx
   ##MovL %349 <- 24
   movq   $24, %rax
   ##MoOp %350 <- %348,%349
   addq   %rax, %rbx
   ##MovL %710 <- -424
   movq   $-424, %rax
   ##MoOp %710 <- %710,%-1
   addq   %rbp, %rax
   ##MToR %710 <- #710
   movq   (%rax), %rax
   ##RToM #350 <- %710
   movq   %rax, (%rbx)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %351 <- %658
   ##MovL %352 <- 1
   movq   $1, %rax
   ##MoOp %353 <- %351,%352
   addq   %rbx, %rax
   ##MoMo %173 <- %353
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)
   ##Jump 79
   jmp    __LABEL79

__LABEL69:

__LABEL72:
   ##MoMo %243 <- %-1
   movq   %rbp, %rbx
   ##MovL %244 <- 16
   movq   $16, %rax
   ##MoOp %245 <- %243,%244
   addq   %rbx, %rax
   ##MToR %246 <- #245
   movq   (%rax), %rbx
   ##MovL %247 <- 0
   movq   $0, %rax
   ##MoOp %248 <- %246,%247
   addq   %rbx, %rax
   ##MToR %249 <- #248
   movq   (%rax), %rax
   ##MoMo %250 <- %249
   movq   %rax, %rbx
   ##MovL %704 <- -376
   movq   $-376, %rax
   ##MoOp %704 <- %704,%-1
   addq   %rbp, %rax
   ##RToM #704 <- %250
   movq   %rbx, (%rax)
   ##MoMo %251 <- %-1
   movq   %rbp, %rbx
   ##MovL %252 <- 24
   movq   $24, %rax
   ##MoOp %253 <- %251,%252
   addq   %rbx, %rax
   ##MToR %254 <- #253
   movq   (%rax), %rax
   ##MoMo %255 <- %254
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %255
   pushq  %rax
   ##MovL %704 <- -376
   movq   $-376, %rax
   ##MoOp %704 <- %704,%-1
   addq   %rbp, %rax
   ##MToR %704 <- #704
   movq   (%rax), %rax
   ##Push %704
   pushq  %rax
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %257 <- %256
   ##MovL %670 <- -104
   movq   $-104, %rbx
   ##MoOp %670 <- %670,%-1
   addq   %rbp, %rbx
   ##RToM #670 <- %257
   movq   %rax, (%rbx)
   ##MoMo %258 <- %-1
   movq   %rbp, %rbx
   ##MovL %259 <- 16
   movq   $16, %rax
   ##MoOp %260 <- %258,%259
   addq   %rbx, %rax
   ##MToR %261 <- #260
   movq   (%rax), %rbx
   ##MovL %262 <- 0
   movq   $0, %rax
   ##MoOp %263 <- %261,%262
   addq   %rbx, %rax
   ##MToR %264 <- #263
   movq   (%rax), %rax
   ##MoMo %265 <- %264
   movq   %rax, %rbx
   ##MovL %705 <- -384
   movq   $-384, %rax
   ##MoOp %705 <- %705,%-1
   addq   %rbp, %rax
   ##RToM #705 <- %265
   movq   %rbx, (%rax)
   ##MoMo %266 <- %-1
   movq   %rbp, %rbx
   ##MovL %267 <- 32
   movq   $32, %rax
   ##MoOp %268 <- %266,%267
   addq   %rbx, %rax
   ##MToR %269 <- #268
   movq   (%rax), %rax
   ##MoMo %270 <- %269
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %270
   pushq  %rax
   ##MovL %705 <- -384
   movq   $-384, %rax
   ##MoOp %705 <- %705,%-1
   addq   %rbp, %rax
   ##MToR %705 <- #705
   movq   (%rax), %rax
   ##Push %705
   pushq  %rax
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %272 <- %271
   movq   %rax, %rbx
   ##MovL %679 <- -176
   movq   $-176, %rax
   ##MoOp %679 <- %679,%-1
   addq   %rbp, %rax
   ##RToM #679 <- %272
   movq   %rbx, (%rax)
   ##MovL %670 <- -104
   movq   $-104, %rbx
   ##MoOp %670 <- %670,%-1
   addq   %rbp, %rbx
   ##MToR %670 <- #670
   movq   (%rbx), %rbx
   ##MoMo %273 <- %670
   ##MovL %679 <- -176
   movq   $-176, %rax
   ##MoOp %679 <- %679,%-1
   addq   %rbp, %rax
   ##MToR %679 <- #679
   movq   (%rax), %rax
   ##MoMo %274 <- %679
   ##MoOp %275 <- %273,%274
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %275
   testq   %rax, %rax
   jnz     __LABEL73

__LABEL74:

__LABEL75:
   ##MoMo %276 <- %-1
   movq   %rbp, %rbx
   ##MovL %277 <- 16
   movq   $16, %rax
   ##MoOp %278 <- %276,%277
   addq   %rbx, %rax
   ##MToR %279 <- #278
   movq   (%rax), %rbx
   ##MovL %688 <- -248
   movq   $-248, %rax
   ##MoOp %688 <- %688,%-1
   addq   %rbp, %rax
   ##RToM #688 <- %279
   movq   %rbx, (%rax)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %280 <- %658
   movq   %rbx, %rax
   ##MoMo %281 <- %280
   movq   %rax, %rbx
   ##MovL %679 <- -176
   movq   $-176, %rax
   ##MoOp %679 <- %679,%-1
   addq   %rbp, %rax
   ##MToR %679 <- #679
   movq   (%rax), %rax
   ##MoMo %282 <- %679
   ##MoMo %283 <- %282
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %283
   pushq  %rax
   ##Push %281
   pushq  %rbx
   ##MovL %688 <- -248
   movq   $-248, %rax
   ##MoOp %688 <- %688,%-1
   addq   %rbp, %rax
   ##MToR %688 <- #688
   movq   (%rax), %rax
   ##Push %688
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %284 <- %-1
   movq   %rbp, %rbx
   ##MovL %285 <- 32
   movq   $32, %rax
   ##MoOp %286 <- %284,%285
   addq   %rbx, %rax
   ##MToR %287 <- #286
   movq   (%rax), %rbx
   ##MovL %288 <- 1
   movq   $1, %rax
   ##MoOp %289 <- %287,%288
   addq   %rax, %rbx
   ##MovL %706 <- -392
   movq   $-392, %rax
   ##MoOp %706 <- %706,%-1
   addq   %rbp, %rax
   ##RToM #706 <- %289
   movq   %rbx, (%rax)
   ##MoMo %290 <- %-1
   movq   %rbp, %rbx
   ##MovL %291 <- 32
   movq   $32, %rax
   ##MoOp %292 <- %290,%291
   addq   %rax, %rbx
   ##MovL %706 <- -392
   movq   $-392, %rax
   ##MoOp %706 <- %706,%-1
   addq   %rbp, %rax
   ##MToR %706 <- #706
   movq   (%rax), %rax
   ##RToM #292 <- %706
   movq   %rax, (%rbx)
   ##Jump 76
   jmp    __LABEL76

__LABEL76:
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %310 <- %658
   ##MovL %311 <- 1
   movq   $1, %rax
   ##MoOp %312 <- %310,%311
   addq   %rbx, %rax
   ##MoMo %173 <- %312
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)
   ##Jump 68
   jmp    __LABEL68

__LABEL73:

__LABEL77:
   ##MoMo %293 <- %-1
   movq   %rbp, %rbx
   ##MovL %294 <- 16
   movq   $16, %rax
   ##MoOp %295 <- %293,%294
   addq   %rbx, %rax
   ##MToR %296 <- #295
   movq   (%rax), %rbx
   ##MovL %692 <- -280
   movq   $-280, %rax
   ##MoOp %692 <- %692,%-1
   addq   %rbp, %rax
   ##RToM #692 <- %296
   movq   %rbx, (%rax)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %297 <- %658
   movq   %rbx, %rax
   ##MoMo %298 <- %297
   ##MovL %670 <- -104
   movq   $-104, %rbx
   ##MoOp %670 <- %670,%-1
   addq   %rbp, %rbx
   ##MToR %670 <- #670
   movq   (%rbx), %rbx
   ##MoMo %299 <- %670
   ##MoMo %300 <- %299
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %300
   pushq  %rbx
   ##Push %298
   pushq  %rax
   ##MovL %692 <- -280
   movq   $-280, %rax
   ##MoOp %692 <- %692,%-1
   addq   %rbp, %rax
   ##MToR %692 <- #692
   movq   (%rax), %rax
   ##Push %692
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %301 <- %-1
   movq   %rbp, %rbx
   ##MovL %302 <- 24
   movq   $24, %rax
   ##MoOp %303 <- %301,%302
   addq   %rbx, %rax
   ##MToR %304 <- #303
   movq   (%rax), %rbx
   ##MovL %305 <- 1
   movq   $1, %rax
   ##MoOp %306 <- %304,%305
   addq   %rax, %rbx
   ##MovL %707 <- -400
   movq   $-400, %rax
   ##MoOp %707 <- %707,%-1
   addq   %rbp, %rax
   ##RToM #707 <- %306
   movq   %rbx, (%rax)
   ##MoMo %307 <- %-1
   movq   %rbp, %rbx
   ##MovL %308 <- 24
   movq   $24, %rax
   ##MoOp %309 <- %307,%308
   addq   %rax, %rbx
   ##MovL %707 <- -400
   movq   $-400, %rax
   ##MoOp %707 <- %707,%-1
   addq   %rbp, %rax
   ##MToR %707 <- #707
   movq   (%rax), %rax
   ##RToM #309 <- %707
   movq   %rax, (%rbx)
   ##Jump 76
   jmp    __LABEL76

__LABEL63:

__LABEL66:
   ##MoMo %182 <- %-1
   movq   %rbp, %rbx
   ##MovL %183 <- 16
   movq   $16, %rax
   ##MoOp %184 <- %182,%183
   addq   %rbx, %rax
   ##MToR %185 <- #184
   movq   (%rax), %rbx
   ##MovL %186 <- 0
   movq   $0, %rax
   ##MoOp %187 <- %185,%186
   addq   %rbx, %rax
   ##MToR %188 <- #187
   movq   (%rax), %rax
   ##MoMo %189 <- %188
   movq   %rax, %rbx
   ##MovL %675 <- -144
   movq   $-144, %rax
   ##MoOp %675 <- %675,%-1
   addq   %rbp, %rax
   ##RToM #675 <- %189
   movq   %rbx, (%rax)
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %190 <- %658
   movq   %rbx, %rax
   ##MoMo %191 <- %190
   movq   %rax, %rbx
   ##MovL %685 <- -224
   movq   $-224, %rax
   ##MoOp %685 <- %685,%-1
   addq   %rbp, %rax
   ##RToM #685 <- %191
   movq   %rbx, (%rax)
   ##MoMo %192 <- %-1
   movq   %rbp, %rbx
   ##MovL %193 <- 16
   movq   $16, %rax
   ##MoOp %194 <- %192,%193
   addq   %rbx, %rax
   ##MToR %195 <- #194
   movq   (%rax), %rax
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %196 <- %658
   ##MoMo %197 <- %196
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %197
   pushq  %rbx
   ##Push %195
   pushq  %rax
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %199 <- %198
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %199
   pushq  %rax
   ##MovL %685 <- -224
   movq   $-224, %rax
   ##MoOp %685 <- %685,%-1
   addq   %rbp, %rax
   ##MToR %685 <- #685
   movq   (%rax), %rax
   ##Push %685
   pushq  %rax
   ##MovL %675 <- -144
   movq   $-144, %rax
   ##MoOp %675 <- %675,%-1
   addq   %rbp, %rax
   ##MToR %675 <- #675
   movq   (%rax), %rax
   ##Push %675
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##MToR %658 <- #658
   movq   (%rbx), %rbx
   ##MoMo %200 <- %658
   ##MovL %201 <- 1
   movq   $1, %rax
   ##MoOp %202 <- %200,%201
   addq   %rbx, %rax
   ##MoMo %173 <- %202
   ##MovL %658 <- -8
   movq   $-8, %rbx
   ##MoOp %658 <- %658,%-1
   addq   %rbp, %rbx
   ##RToM #658 <- %173
   movq   %rax, (%rbx)
   ##Jump 62
   jmp    __LABEL62

__LABEL49:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %151 <- %-1
   movq   %rbp, %rbx
   ##MovL %152 <- 16
   movq   $16, %rax
   ##MoOp %153 <- %151,%152
   addq   %rbx, %rax
   ##MToR %154 <- #153
   movq   (%rax), %rbx
   ##MovL %155 <- 8
   movq   $8, %rax
   ##MoOp %156 <- %154,%155
   addq   %rbx, %rax
   ##MToR %157 <- #156
   movq   (%rax), %rax
   ##MoMo %91 <- %157
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %158 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %158
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)

__LABEL50:

__LABEL51:
   ##MovL %159 <- 1
   movq   $1, %rax
   ##JuCo %159
   testq   %rax, %rax
   jnz     __LABEL52

__LABEL53:
   ##Jump 54
   jmp    __LABEL54

__LABEL54:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL52:

__LABEL55:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %160 <- %665
   ##MoMo %161 <- %160
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %161
   pushq  %rax
   ##Call (#199422015)
   call   __LABEL113
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %162 <- %665
   ##MoMo %163 <- %162
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %163
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##JuCo %164
   testq   %rax, %rax
   jnz     __LABEL56

__LABEL57:
   ##Jump 58
   jmp    __LABEL58

__LABEL58:
   ##MovL %165 <- 44
   movq   $44, %rax
   ##Prin %165
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %166 <- %665
   ##MoMo %167 <- %166
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %167
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %168
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##Jump 51
   jmp    __LABEL51

__LABEL56:

__LABEL59:
   ##SRet
   movq  %rbp, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 58
   jmp    __LABEL58

__LABEL110:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %539 <- %-1
   movq   %rbp, %rbx
   ##MovL %540 <- 16
   movq   $16, %rax
   ##MoOp %541 <- %539,%540
   addq   %rbx, %rax
   ##MToR %542 <- #541
   movq   (%rax), %rbx
   ##MovL %543 <- 0
   movq   $0, %rax
   ##MoOp %544 <- %542,%543
   addq   %rbx, %rax
   ##MToR %545 <- #544
   movq   (%rax), %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL109:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %529 <- %-1
   movq   %rbp, %rbx
   ##MovL %530 <- 24
   movq   $24, %rax
   ##MoOp %531 <- %529,%530
   addq   %rbx, %rax
   ##MToR %532 <- #531
   movq   (%rax), %rbx
   ##MovL %696 <- -312
   movq   $-312, %rax
   ##MoOp %696 <- %696,%-1
   addq   %rbp, %rax
   ##RToM #696 <- %532
   movq   %rbx, (%rax)
   ##MoMo %533 <- %-1
   movq   %rbp, %rbx
   ##MovL %534 <- 16
   movq   $16, %rax
   ##MoOp %535 <- %533,%534
   addq   %rbx, %rax
   ##MToR %536 <- #535
   movq   (%rax), %rbx
   ##MovL %537 <- 0
   movq   $0, %rax
   ##MoOp %538 <- %536,%537
   addq   %rax, %rbx
   ##MovL %696 <- -312
   movq   $-312, %rax
   ##MoOp %696 <- %696,%-1
   addq   %rbp, %rax
   ##MToR %696 <- #696
   movq   (%rax), %rax
   ##RToM #538 <- %696
   movq   %rax, (%rbx)

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL108:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %519 <- %-1
   movq   %rbp, %rbx
   ##MovL %520 <- 24
   movq   $24, %rax
   ##MoOp %521 <- %519,%520
   addq   %rbx, %rax
   ##MToR %522 <- #521
   movq   (%rax), %rbx
   ##MovL %695 <- -304
   movq   $-304, %rax
   ##MoOp %695 <- %695,%-1
   addq   %rbp, %rax
   ##RToM #695 <- %522
   movq   %rbx, (%rax)
   ##MoMo %523 <- %-1
   movq   %rbp, %rbx
   ##MovL %524 <- 16
   movq   $16, %rax
   ##MoOp %525 <- %523,%524
   addq   %rbx, %rax
   ##MToR %526 <- #525
   movq   (%rax), %rbx
   ##MovL %527 <- 8
   movq   $8, %rax
   ##MoOp %528 <- %526,%527
   addq   %rax, %rbx
   ##MovL %695 <- -304
   movq   $-304, %rax
   ##MoOp %695 <- %695,%-1
   addq   %rbp, %rax
   ##MToR %695 <- #695
   movq   (%rax), %rax
   ##RToM #528 <- %695
   movq   %rax, (%rbx)

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL107:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %509 <- %-1
   movq   %rbp, %rbx
   ##MovL %510 <- 24
   movq   $24, %rax
   ##MoOp %511 <- %509,%510
   addq   %rbx, %rax
   ##MToR %512 <- #511
   movq   (%rax), %rbx
   ##MovL %694 <- -296
   movq   $-296, %rax
   ##MoOp %694 <- %694,%-1
   addq   %rbp, %rax
   ##RToM #694 <- %512
   movq   %rbx, (%rax)
   ##MoMo %513 <- %-1
   movq   %rbp, %rbx
   ##MovL %514 <- 16
   movq   $16, %rax
   ##MoOp %515 <- %513,%514
   addq   %rbx, %rax
   ##MToR %516 <- #515
   movq   (%rax), %rbx
   ##MovL %517 <- 16
   movq   $16, %rax
   ##MoOp %518 <- %516,%517
   addq   %rax, %rbx
   ##MovL %694 <- -296
   movq   $-296, %rax
   ##MoOp %694 <- %694,%-1
   addq   %rbp, %rax
   ##MToR %694 <- #694
   movq   (%rax), %rax
   ##RToM #518 <- %694
   movq   %rax, (%rbx)

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL95:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MovL %461 <- 1
   movq   $1, %rax
   ##MoMo %462 <- %461
   movq   %rax, %rbx
   ##MovL %678 <- -168
   movq   $-168, %rax
   ##MoOp %678 <- %678,%-1
   addq   %rbp, %rax
   ##RToM #678 <- %462
   movq   %rbx, (%rax)
   ##MoMo %463 <- %-1
   movq   %rbp, %rbx
   ##MovL %464 <- 16
   movq   $16, %rax
   ##MoOp %465 <- %463,%464
   addq   %rbx, %rax
   ##MToR %466 <- #465
   movq   (%rax), %rbx
   ##MovL %467 <- 8
   movq   $8, %rax
   ##MoOp %468 <- %466,%467
   addq   %rbx, %rax
   ##MToR %469 <- #468
   movq   (%rax), %rax
   ##MoMo %91 <- %469
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##MovL %470 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %470
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)

__LABEL96:

__LABEL97:
   ##MovL %678 <- -168
   movq   $-168, %rax
   ##MoOp %678 <- %678,%-1
   addq   %rbp, %rax
   ##MToR %678 <- #678
   movq   (%rax), %rax
   ##MoMo %471 <- %678
   ##JuCo %471
   testq   %rax, %rax
   jnz     __LABEL98

__LABEL99:
   ##Jump 100
   jmp    __LABEL100

__LABEL100:
   ##MoMa 482
   pushq  %rax                  ## prepare malloc
   movq    $16, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rbx
   popq   %rax
   ##MovL %693 <- -288
   movq   $-288, %rax
   ##MoOp %693 <- %693,%-1
   addq   %rbp, %rax
   ##RToM #693 <- %482
   movq   %rbx, (%rax)
   ##MoMo %483 <- %-1
   movq   %rbp, %rbx
   ##MovL %484 <- 16
   movq   $16, %rax
   ##MoOp %485 <- %483,%484
   addq   %rbx, %rax
   ##MToR %486 <- #485
   movq   (%rax), %rbx
   ##MovL %487 <- 0
   movq   $0, %rax
   ##MoOp %488 <- %486,%487
   addq   %rax, %rbx
   ##MovL %693 <- -288
   movq   $-288, %rax
   ##MoOp %693 <- %693,%-1
   addq   %rbp, %rax
   ##MToR %693 <- #693
   movq   (%rax), %rax
   ##RToM #488 <- %693
   movq   %rax, (%rbx)
   ##MoMo %489 <- %-1
   movq   %rbp, %rbx
   ##MovL %490 <- 16
   movq   $16, %rax
   ##MoOp %491 <- %489,%490
   addq   %rbx, %rax
   ##MToR %492 <- #491
   movq   (%rax), %rbx
   ##MovL %493 <- 0
   movq   $0, %rax
   ##MoOp %494 <- %492,%493
   addq   %rbx, %rax
   ##MToR %495 <- #494
   movq   (%rax), %rax
   ##MoMo %496 <- %495
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %497 <- %662
   ##MoMo %498 <- %497
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %498
   pushq  %rax
   ##Push %496
   pushq  %rbx
   ##Call (#997205875)
   call   __LABEL7
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %499 <- %-1
   movq   %rbp, %rbx
   ##MovL %500 <- 16
   movq   $16, %rax
   ##MoOp %501 <- %499,%500
   addq   %rbx, %rax
   ##MToR %502 <- #501
   movq   (%rax), %rbx
   ##MovL %687 <- -240
   movq   $-240, %rax
   ##MoOp %687 <- %687,%-1
   addq   %rbp, %rax
   ##RToM #687 <- %502
   movq   %rbx, (%rax)
   ##MovL %503 <- 0
   movq   $0, %rax
   ##MoMo %504 <- %503
   movq   %rax, %rbx
   ##MovL %718 <- -488
   movq   $-488, %rax
   ##MoOp %718 <- %718,%-1
   addq   %rbp, %rax
   ##RToM #718 <- %504
   movq   %rbx, (%rax)
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %505 <- %662
   movq   %rax, %rbx
   ##MovL %506 <- 1
   movq   $1, %rax
   ##MoOp %507 <- %505,%506
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %508 <- %507
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %508
   pushq  %rax
   ##MovL %718 <- -488
   movq   $-488, %rax
   ##MoOp %718 <- %718,%-1
   addq   %rbp, %rax
   ##MToR %718 <- #718
   movq   (%rax), %rax
   ##Push %718
   pushq  %rax
   ##MovL %687 <- -240
   movq   $-240, %rax
   ##MoOp %687 <- %687,%-1
   addq   %rbp, %rax
   ##MToR %687 <- #687
   movq   (%rax), %rax
   ##Push %687
   pushq  %rax
   ##Call (#341668702)
   call   __LABEL90
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL98:

__LABEL101:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %472 <- %665
   ##MoMo %473 <- %472
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %473
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##JuCo %474
   testq   %rax, %rax
   jnz     __LABEL102

__LABEL103:

__LABEL104:
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##MToR %665 <- #665
   movq   (%rax), %rax
   ##MoMo %475 <- %665
   ##MoMo %476 <- %475
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %476
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %477
   movq   %rax, %rbx
   ##MovL %665 <- -64
   movq   $-64, %rax
   ##MoOp %665 <- %665,%-1
   addq   %rbp, %rax
   ##RToM #665 <- %91
   movq   %rbx, (%rax)
   ##Jump 105
   jmp    __LABEL105

__LABEL105:
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##MToR %662 <- #662
   movq   (%rax), %rax
   ##MoMo %479 <- %662
   movq   %rax, %rbx
   ##MovL %480 <- 1
   movq   $1, %rax
   ##MoOp %481 <- %479,%480
   addq   %rbx, %rax
   ##MoMo %93 <- %481
   movq   %rax, %rbx
   ##MovL %662 <- -40
   movq   $-40, %rax
   ##MoOp %662 <- %662,%-1
   addq   %rbp, %rax
   ##RToM #662 <- %93
   movq   %rbx, (%rax)
   ##Jump 97
   jmp    __LABEL97

__LABEL102:

__LABEL106:
   ##MovL %478 <- 0
   movq   $0, %rax
   ##MoMo %462 <- %478
   movq   %rax, %rbx
   ##MovL %678 <- -168
   movq   $-168, %rax
   ##MoOp %678 <- %678,%-1
   addq   %rbp, %rax
   ##RToM #678 <- %462
   movq   %rbx, (%rax)
   ##Jump 105
   jmp    __LABEL105

__LABEL90:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %395 <- %-1
   movq   %rbp, %rbx
   ##MovL %396 <- 24
   movq   $24, %rax
   ##MoOp %397 <- %395,%396
   addq   %rbx, %rax
   ##MToR %398 <- #397
   movq   (%rax), %rbx
   ##MovL %714 <- -456
   movq   $-456, %rax
   ##MoOp %714 <- %714,%-1
   addq   %rbp, %rax
   ##RToM #714 <- %398
   movq   %rbx, (%rax)
   ##MoMo %399 <- %-1
   movq   %rbp, %rbx
   ##MovL %400 <- 32
   movq   $32, %rax
   ##MoOp %401 <- %399,%400
   addq   %rbx, %rax
   ##MToR %402 <- #401
   movq   (%rax), %rbx
   ##MovL %714 <- -456
   movq   $-456, %rax
   ##MoOp %714 <- %714,%-1
   addq   %rbp, %rax
   ##MToR %714 <- #714
   movq   (%rax), %rax
   ##MoOp %403 <- %714,%402
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %403
   testq   %rax, %rax
   jnz     __LABEL91

__LABEL92:
   ##Jump 93
   jmp    __LABEL93

__LABEL93:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL91:

__LABEL94:
   ##MoMo %404 <- %-1
   movq   %rbp, %rbx
   ##MovL %405 <- 24
   movq   $24, %rax
   ##MoOp %406 <- %404,%405
   addq   %rbx, %rax
   ##MToR %407 <- #406
   movq   (%rax), %rbx
   ##MovL %680 <- -184
   movq   $-184, %rax
   ##MoOp %680 <- %680,%-1
   addq   %rbp, %rax
   ##RToM #680 <- %407
   movq   %rbx, (%rax)
   ##MoMo %408 <- %-1
   movq   %rbp, %rbx
   ##MovL %409 <- 32
   movq   $32, %rax
   ##MoOp %410 <- %408,%409
   addq   %rbx, %rax
   ##MToR %411 <- #410
   movq   (%rax), %rbx
   ##MovL %715 <- -464
   movq   $-464, %rax
   ##MoOp %715 <- %715,%-1
   addq   %rbp, %rax
   ##RToM #715 <- %411
   movq   %rbx, (%rax)
   ##MoMo %412 <- %-1
   movq   %rbp, %rbx
   ##MovL %413 <- 24
   movq   $24, %rax
   ##MoOp %414 <- %412,%413
   addq   %rbx, %rax
   ##MToR %415 <- #414
   movq   (%rax), %rbx
   ##MovL %715 <- -464
   movq   $-464, %rax
   ##MoOp %715 <- %715,%-1
   addq   %rbp, %rax
   ##MToR %715 <- #715
   movq   (%rax), %rax
   ##MoOp %416 <- %715,%415
   imulq   $-1, %rbx
   addq   %rax, %rbx
   ##MovL %417 <- 2
   movq   $2, %rax
   ##MoOp %418 <- %416,%417
   pushq   %rax
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   movq    %rax, %rbx
   popq    %rdx
   popq    %rax
   ##MovL %680 <- -184
   movq   $-184, %rax
   ##MoOp %680 <- %680,%-1
   addq   %rbp, %rax
   ##MToR %680 <- #680
   movq   (%rax), %rax
   ##MoOp %419 <- %680,%418
   addq   %rbx, %rax
   ##MoMo %420 <- %419
   ##MovL %666 <- -72
   movq   $-72, %rbx
   ##MoOp %666 <- %666,%-1
   addq   %rbp, %rbx
   ##RToM #666 <- %420
   movq   %rax, (%rbx)
   ##MoMo %421 <- %-1
   movq   %rbp, %rbx
   ##MovL %422 <- 16
   movq   $16, %rax
   ##MoOp %423 <- %421,%422
   addq   %rbx, %rax
   ##MToR %424 <- #423
   movq   (%rax), %rbx
   ##MovL %686 <- -232
   movq   $-232, %rax
   ##MoOp %686 <- %686,%-1
   addq   %rbp, %rax
   ##RToM #686 <- %424
   movq   %rbx, (%rax)
   ##MoMo %425 <- %-1
   movq   %rbp, %rbx
   ##MovL %426 <- 24
   movq   $24, %rax
   ##MoOp %427 <- %425,%426
   addq   %rbx, %rax
   ##MToR %428 <- #427
   movq   (%rax), %rax
   ##MoMo %429 <- %428
   ##MovL %666 <- -72
   movq   $-72, %rbx
   ##MoOp %666 <- %666,%-1
   addq   %rbp, %rbx
   ##MToR %666 <- #666
   movq   (%rbx), %rbx
   ##MoMo %430 <- %666
   ##MoMo %431 <- %430
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %431
   pushq  %rbx
   ##Push %429
   pushq  %rax
   ##MovL %686 <- -232
   movq   $-232, %rax
   ##MoOp %686 <- %686,%-1
   addq   %rbp, %rax
   ##MToR %686 <- #686
   movq   (%rax), %rax
   ##Push %686
   pushq  %rax
   ##Call (#341668702)
   call   __LABEL90
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %432 <- %-1
   movq   %rbp, %rbx
   ##MovL %433 <- 16
   movq   $16, %rax
   ##MoOp %434 <- %432,%433
   addq   %rbx, %rax
   ##MToR %435 <- #434
   movq   (%rax), %rbx
   ##MovL %681 <- -192
   movq   $-192, %rax
   ##MoOp %681 <- %681,%-1
   addq   %rbp, %rax
   ##RToM #681 <- %435
   movq   %rbx, (%rax)
   ##MovL %666 <- -72
   movq   $-72, %rbx
   ##MoOp %666 <- %666,%-1
   addq   %rbp, %rbx
   ##MToR %666 <- #666
   movq   (%rbx), %rbx
   ##MoMo %436 <- %666
   ##MovL %437 <- 1
   movq   $1, %rax
   ##MoOp %438 <- %436,%437
   addq   %rbx, %rax
   ##MoMo %439 <- %438
   movq   %rax, %rbx
   ##MovL %716 <- -472
   movq   $-472, %rax
   ##MoOp %716 <- %716,%-1
   addq   %rbp, %rax
   ##RToM #716 <- %439
   movq   %rbx, (%rax)
   ##MoMo %440 <- %-1
   movq   %rbp, %rbx
   ##MovL %441 <- 32
   movq   $32, %rax
   ##MoOp %442 <- %440,%441
   addq   %rbx, %rax
   ##MToR %443 <- #442
   movq   (%rax), %rax
   ##MoMo %444 <- %443
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %444
   pushq  %rax
   ##MovL %716 <- -472
   movq   $-472, %rax
   ##MoOp %716 <- %716,%-1
   addq   %rbp, %rax
   ##MToR %716 <- #716
   movq   (%rax), %rax
   ##Push %716
   pushq  %rax
   ##MovL %681 <- -192
   movq   $-192, %rax
   ##MoOp %681 <- %681,%-1
   addq   %rbp, %rax
   ##MToR %681 <- #681
   movq   (%rax), %rax
   ##Push %681
   pushq  %rax
   ##Call (#341668702)
   call   __LABEL90
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##MoMo %445 <- %-1
   movq   %rbp, %rbx
   ##MovL %446 <- 16
   movq   $16, %rax
   ##MoOp %447 <- %445,%446
   addq   %rbx, %rax
   ##MToR %448 <- #447
   movq   (%rax), %rbx
   ##MovL %674 <- -136
   movq   $-136, %rax
   ##MoOp %674 <- %674,%-1
   addq   %rbp, %rax
   ##RToM #674 <- %448
   movq   %rbx, (%rax)
   ##MoMo %449 <- %-1
   movq   %rbp, %rbx
   ##MovL %450 <- 24
   movq   $24, %rax
   ##MoOp %451 <- %449,%450
   addq   %rbx, %rax
   ##MToR %452 <- #451
   movq   (%rax), %rax
   ##MoMo %453 <- %452
   movq   %rax, %rbx
   ##MovL %683 <- -208
   movq   $-208, %rax
   ##MoOp %683 <- %683,%-1
   addq   %rbp, %rax
   ##RToM #683 <- %453
   movq   %rbx, (%rax)
   ##MovL %666 <- -72
   movq   $-72, %rbx
   ##MoOp %666 <- %666,%-1
   addq   %rbp, %rbx
   ##MToR %666 <- #666
   movq   (%rbx), %rbx
   ##MoMo %454 <- %666
   movq   %rbx, %rax
   ##MoMo %455 <- %454
   movq   %rax, %rbx
   ##MovL %717 <- -480
   movq   $-480, %rax
   ##MoOp %717 <- %717,%-1
   addq   %rbp, %rax
   ##RToM #717 <- %455
   movq   %rbx, (%rax)
   ##MoMo %456 <- %-1
   movq   %rbp, %rbx
   ##MovL %457 <- 32
   movq   $32, %rax
   ##MoOp %458 <- %456,%457
   addq   %rbx, %rax
   ##MToR %459 <- #458
   movq   (%rax), %rax
   ##MoMo %460 <- %459
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %460
   pushq  %rax
   ##MovL %717 <- -480
   movq   $-480, %rax
   ##MoOp %717 <- %717,%-1
   addq   %rbp, %rax
   ##MToR %717 <- #717
   movq   (%rax), %rax
   ##Push %717
   pushq  %rax
   ##MovL %683 <- -208
   movq   $-208, %rax
   ##MoOp %683 <- %683,%-1
   addq   %rbp, %rax
   ##MToR %683 <- #683
   movq   (%rax), %rax
   ##Push %683
   pushq  %rax
   ##MovL %674 <- -136
   movq   $-136, %rax
   ##MoOp %674 <- %674,%-1
   addq   %rbp, %rax
   ##MToR %674 <- #674
   movq   (%rax), %rax
   ##Push %674
   pushq  %rax
   ##Call (#475828359)
   call   __LABEL60
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax
   ##Jump 93
   jmp    __LABEL93

__LABEL114:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MovL %572 <- 0
   movq   $0, %rax
   ##MoMo %9 <- %572
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##RToM #661 <- %9
   movq   %rbx, (%rax)
   ##MovL %573 <- 0
   movq   $0, %rax
   ##MoMo %574 <- %573
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##RToM #663 <- %574
   movq   %rax, (%rbx)
   ##MoMo %575 <- %-1
   movq   %rbp, %rbx
   ##MovL %576 <- 24
   movq   $24, %rax
   ##MoOp %577 <- %575,%576
   addq   %rbx, %rax
   ##MToR %578 <- #577
   movq   (%rax), %rbx
   ##MovL %579 <- 1
   movq   $1, %rax
   ##MoOp %580 <- %578,%579
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rbx
   ##MovL %684 <- -216
   movq   $-216, %rax
   ##MoOp %684 <- %684,%-1
   addq   %rbp, %rax
   ##RToM #684 <- %580
   movq   %rbx, (%rax)
   ##MovL %581 <- 0
   movq   $0, %rbx
   ##MovL %582 <- 1
   movq   $1, %rax
   ##MoOp %583 <- %581,%582
   subq   %rax, %rbx
   ##MovL %719 <- -496
   movq   $-496, %rax
   ##MoOp %719 <- %719,%-1
   addq   %rbp, %rax
   ##RToM #719 <- %583
   movq   %rbx, (%rax)
   ##MoMo %584 <- %-1
   movq   %rbp, %rbx
   ##MovL %585 <- 24
   movq   $24, %rax
   ##MoOp %586 <- %584,%585
   addq   %rbx, %rax
   ##MToR %587 <- #586
   movq   (%rax), %rbx
   ##MovL %719 <- -496
   movq   $-496, %rax
   ##MoOp %719 <- %719,%-1
   addq   %rbp, %rax
   ##MToR %719 <- #719
   movq   (%rax), %rax
   ##MoOp %588 <- %719,%587
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rbx
   ##MovL %684 <- -216
   movq   $-216, %rax
   ##MoOp %684 <- %684,%-1
   addq   %rbp, %rax
   ##MToR %684 <- #684
   movq   (%rax), %rax
   ##MoOp %589 <- %684,%588
   andq   %rbx, %rax
   andq   $1, %rax
   ##JuCo %589
   testq   %rax, %rax
   jnz     __LABEL115

__LABEL116:
   ##Jump 117
   jmp    __LABEL117

__LABEL117:
   ##MoMo %591 <- %-1
   movq   %rbp, %rbx
   ##MovL %592 <- 24
   movq   $24, %rax
   ##MoOp %593 <- %591,%592
   addq   %rbx, %rax
   ##MToR %594 <- #593
   movq   (%rax), %rbx
   ##MovL %595 <- 1
   movq   $1, %rax
   ##MoOp %596 <- %594,%595
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %596
   testq   %rax, %rax
   jnz     __LABEL119

__LABEL120:
   ##Jump 121
   jmp    __LABEL121

__LABEL121:

__LABEL123:

__LABEL124:
   ##MovL %609 <- 0
   movq   $0, %rbx
   ##MovL %722 <- -520
   movq   $-520, %rax
   ##MoOp %722 <- %722,%-1
   addq   %rbp, %rax
   ##RToM #722 <- %609
   movq   %rbx, (%rax)
   ##MoMo %610 <- %-1
   movq   %rbp, %rbx
   ##MovL %611 <- 24
   movq   $24, %rax
   ##MoOp %612 <- %610,%611
   addq   %rbx, %rax
   ##MToR %613 <- #612
   movq   (%rax), %rbx
   ##MovL %722 <- -520
   movq   $-520, %rax
   ##MoOp %722 <- %722,%-1
   addq   %rbp, %rax
   ##MToR %722 <- #722
   movq   (%rax), %rax
   ##MoOp %614 <- %722,%613
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %614
   testq   %rax, %rax
   jnz     __LABEL125

__LABEL126:
   ##Jump 127
   jmp    __LABEL127

__LABEL127:

__LABEL129:

__LABEL130:
   ##MovL %637 <- 0
   movq   $0, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %638 <- %661
   ##MoOp %639 <- %637,%638
   cmpq   %rbx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %639
   testq   %rax, %rax
   jnz     __LABEL131

__LABEL132:
   ##Jump 133
   jmp    __LABEL133

__LABEL133:

__LABEL135:

__LABEL136:
   ##MovL %651 <- 0
   movq   $0, %rax
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##MToR %663 <- #663
   movq   (%rbx), %rbx
   ##MoMo %652 <- %663
   ##MoOp %653 <- %651,%652
   cmpq   %rax, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %653
   testq   %rax, %rax
   jnz     __LABEL137

__LABEL138:
   ##Jump 139
   jmp    __LABEL139

__LABEL139:

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL137:

__LABEL140:
   ##MovL %654 <- 48
   movq   $48, %rax
   ##Prin %654
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##MToR %663 <- #663
   movq   (%rbx), %rbx
   ##MoMo %655 <- %663
   ##MovL %656 <- 1
   movq   $1, %rax
   ##MoOp %657 <- %655,%656
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %574 <- %657
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##RToM #663 <- %574
   movq   %rax, (%rbx)
   ##Jump 136
   jmp    __LABEL136

__LABEL131:

__LABEL134:
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %640 <- %661
   movq   %rax, %rbx
   ##MovL %641 <- 10
   movq   $10, %rax
   ##MoOp %642 <- %640,%641
#%rbx A:%rbx 		 B:%rax
   pushq   %rax
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   movq    %rdx, %rbx
   popq    %rdx
   popq    %rax
   ##MovL %643 <- 48
   movq   $48, %rax
   ##MoOp %644 <- %642,%643
   addq   %rbx, %rax
   ##Prin %644
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %645 <- %661
   movq   %rax, %rbx
   ##MovL %646 <- 10
   movq   $10, %rax
   ##MoOp %647 <- %645,%646
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   popq    %rdx
   ##MoMo %9 <- %647
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##RToM #661 <- %9
   movq   %rbx, (%rax)
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##MToR %663 <- #663
   movq   (%rbx), %rbx
   ##MoMo %648 <- %663
   ##MovL %649 <- 1
   movq   $1, %rax
   ##MoOp %650 <- %648,%649
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %574 <- %650
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##RToM #663 <- %574
   movq   %rax, (%rbx)
   ##Jump 130
   jmp    __LABEL130

__LABEL125:

__LABEL128:
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##MToR %661 <- #661
   movq   (%rax), %rax
   ##MoMo %615 <- %661
   movq   %rax, %rbx
   ##MovL %616 <- 10
   movq   $10, %rax
   ##MoOp %617 <- %615,%616
   imul   %rax, %rbx
   ##MovL %698 <- -328
   movq   $-328, %rax
   ##MoOp %698 <- %698,%-1
   addq   %rbp, %rax
   ##RToM #698 <- %617
   movq   %rbx, (%rax)
   ##MoMo %618 <- %-1
   movq   %rbp, %rbx
   ##MovL %619 <- 24
   movq   $24, %rax
   ##MoOp %620 <- %618,%619
   addq   %rbx, %rax
   ##MToR %621 <- #620
   movq   (%rax), %rbx
   ##MovL %622 <- 10
   movq   $10, %rax
   ##MoOp %623 <- %621,%622
#%rbx A:%rbx 		 B:%rax
   pushq   %rax
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   movq    %rdx, %rbx
   popq    %rdx
   popq    %rax
   ##MovL %698 <- -328
   movq   $-328, %rax
   ##MoOp %698 <- %698,%-1
   addq   %rbp, %rax
   ##MToR %698 <- #698
   movq   (%rax), %rax
   ##MoOp %624 <- %698,%623
   addq   %rbx, %rax
   ##MoMo %9 <- %624
   movq   %rax, %rbx
   ##MovL %661 <- -32
   movq   $-32, %rax
   ##MoOp %661 <- %661,%-1
   addq   %rbp, %rax
   ##RToM #661 <- %9
   movq   %rbx, (%rax)
   ##MoMo %625 <- %-1
   movq   %rbp, %rbx
   ##MovL %626 <- 24
   movq   $24, %rax
   ##MoOp %627 <- %625,%626
   addq   %rbx, %rax
   ##MToR %628 <- #627
   movq   (%rax), %rbx
   ##MovL %629 <- 10
   movq   $10, %rax
   ##MoOp %630 <- %628,%629
   pushq   %rax
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   movq    %rax, %rbx
   popq    %rdx
   popq    %rax
   ##MovL %723 <- -528
   movq   $-528, %rax
   ##MoOp %723 <- %723,%-1
   addq   %rbp, %rax
   ##RToM #723 <- %630
   movq   %rbx, (%rax)
   ##MoMo %631 <- %-1
   movq   %rbp, %rbx
   ##MovL %632 <- 24
   movq   $24, %rax
   ##MoOp %633 <- %631,%632
   addq   %rax, %rbx
   ##MovL %723 <- -528
   movq   $-528, %rax
   ##MoOp %723 <- %723,%-1
   addq   %rbp, %rax
   ##MToR %723 <- #723
   movq   (%rax), %rax
   ##RToM #633 <- %723
   movq   %rax, (%rbx)
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##MToR %663 <- #663
   movq   (%rbx), %rbx
   ##MoMo %634 <- %663
   ##MovL %635 <- 1
   movq   $1, %rax
   ##MoOp %636 <- %634,%635
   addq   %rbx, %rax
   ##MoMo %574 <- %636
   ##MovL %663 <- -48
   movq   $-48, %rbx
   ##MoOp %663 <- %663,%-1
   addq   %rbp, %rbx
   ##RToM #663 <- %574
   movq   %rax, (%rbx)
   ##Jump 124
   jmp    __LABEL124

__LABEL119:

__LABEL122:
   ##MovL %597 <- 0
   movq   $0, %rbx
   ##MovL %598 <- 1
   movq   $1, %rax
   ##MoOp %599 <- %597,%598
   subq   %rax, %rbx
   ##MovL %720 <- -504
   movq   $-504, %rax
   ##MoOp %720 <- %720,%-1
   addq   %rbp, %rax
   ##RToM #720 <- %599
   movq   %rbx, (%rax)
   ##MoMo %600 <- %-1
   movq   %rbp, %rbx
   ##MovL %601 <- 24
   movq   $24, %rax
   ##MoOp %602 <- %600,%601
   addq   %rbx, %rax
   ##MToR %603 <- #602
   movq   (%rax), %rbx
   ##MovL %720 <- -504
   movq   $-504, %rax
   ##MoOp %720 <- %720,%-1
   addq   %rbp, %rax
   ##MToR %720 <- #720
   movq   (%rax), %rax
   ##MoOp %604 <- %720,%603
   imul   %rax, %rbx
   ##MovL %721 <- -512
   movq   $-512, %rax
   ##MoOp %721 <- %721,%-1
   addq   %rbp, %rax
   ##RToM #721 <- %604
   movq   %rbx, (%rax)
   ##MoMo %605 <- %-1
   movq   %rbp, %rbx
   ##MovL %606 <- 24
   movq   $24, %rax
   ##MoOp %607 <- %605,%606
   addq   %rax, %rbx
   ##MovL %721 <- -512
   movq   $-512, %rax
   ##MoOp %721 <- %721,%-1
   addq   %rbp, %rax
   ##MToR %721 <- #721
   movq   (%rax), %rax
   ##RToM #607 <- %721
   movq   %rax, (%rbx)
   ##MovL %608 <- 45
   movq   $45, %rax
   ##Prin %608
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##Jump 121
   jmp    __LABEL121

__LABEL115:

__LABEL118:
   ##MovL %590 <- 48
   movq   $48, %rax
   ##Prin %590
   pushq  %rax                   ## prepare print call
   pushq  %rbx                   ## prepare print call
   pushq  %rax                  ## print
   movq   $1,%rax               ## sys_write
   movq   $1,%rdi               ## fd stdout
   movq   %rsp,%rsi             ## string pointer
   movq   $1,%rdx               ## size
   syscall                      ## syscall
   popq   %rsi                  ##
   popq   %rbx
   popq   %rax
   ##SRet
   movq  %rbp, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 117
   jmp    __LABEL117

__LABEL113:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMa 560
   pushq  %rbx                  ## prepare malloc
   movq    $8, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rbx
   ##MoMo %561 <- %560
   ##MoMo %562 <- %561
   ##MoMo %563 <- %562
   movq   %rax, %rbx
   ##MovL %697 <- -320
   movq   $-320, %rax
   ##MoOp %697 <- %697,%-1
   addq   %rbp, %rax
   ##RToM #697 <- %563
   movq   %rbx, (%rax)
   ##MoMo %564 <- %-1
   movq   %rbp, %rbx
   ##MovL %565 <- 16
   movq   $16, %rax
   ##MoOp %566 <- %564,%565
   addq   %rbx, %rax
   ##MToR %567 <- #566
   movq   (%rax), %rbx
   ##MovL %568 <- 16
   movq   $16, %rax
   ##MoOp %569 <- %567,%568
   addq   %rbx, %rax
   ##MToR %570 <- #569
   movq   (%rax), %rax
   ##MoMo %571 <- %570
   ##PuAl
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   ##Push %571
   pushq  %rax
   ##MovL %697 <- -320
   movq   $-320, %rax
   ##MoOp %697 <- %697,%-1
   addq   %rbp, %rax
   ##MToR %697 <- #697
   movq   (%rax), %rax
   ##Push %697
   pushq  %rax
   ##Call (#700213972)
   call   __LABEL114
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rbx
   popq   %rax

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL112:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %553 <- %-1
   movq   %rbp, %rbx
   ##MovL %554 <- 16
   movq   $16, %rax
   ##MoOp %555 <- %553,%554
   addq   %rbx, %rax
   ##MToR %556 <- #555
   movq   (%rax), %rbx
   ##MovL %557 <- 8
   movq   $8, %rax
   ##MoOp %558 <- %556,%557
   addq   %rbx, %rax
   ##MToR %559 <- #558
   movq   (%rax), %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

__LABEL111:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-536, %rsp

   ##MoMo %546 <- %-1
   movq   %rbp, %rbx
   ##MovL %547 <- 16
   movq   $16, %rax
   ##MoOp %548 <- %546,%547
   addq   %rbx, %rax
   ##MToR %549 <- #548
   movq   (%rax), %rbx
   ##MovL %550 <- 16
   movq   $16, %rax
   ##MoOp %551 <- %549,%550
   addq   %rbx, %rax
   ##MToR %552 <- #551
   movq   (%rax), %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq

   movq    %rbp, %rsp            # Restore ESP
   popq    %rbp                  # Restore EBP
   retq

fail_exit:
   movl   $1, %eax
   popq   %rbp
   retq
Expected
1,30,9,38,17,46,25,4,33,12,41,20,49,28,7,36,15,44,23,2,31,10,39,18,47,26,5,34,13,42,21,50,29,8,37,16,45,24,3,32,11,40,19,48,27,6,35,14,43,22
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
Got
./scripts/buildhugo.sh: line 31:  5111 Segmentation fault      (core dumped) /tmp/mycc_$hash