My first compiler

12sort

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

.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

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

   ##MovL %572 <- 0
   movq   $0, %rax
   ##MoMo %9 <- %572
   movq   %rax, %rbx
   ##MovL %573 <- 0
   movq   $0, %rax
   ##MoMo %574 <- %573
   ##MoMo %575 <- %-1
   movq   %rbp, %rdx
   ##MovL %576 <- 24
   movq   $24, %rcx
   ##MoOp %577 <- %575,%576
   addq   %rdx, %rcx
   ##MToR %578 <- #577
   movq   (%rcx), %rdx
   ##MovL %579 <- 1
   movq   $1, %rcx
   ##MoOp %580 <- %578,%579
   cmpq   %rdx, %rcx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %r9
   ##MovL %581 <- 0
   movq   $0, %rdx
   ##MovL %582 <- 1
   movq   $1, %rcx
   ##MoOp %583 <- %581,%582
   movq   %rdx, %r8
   subq   %rcx, %r8
   ##MoMo %584 <- %-1
   movq   %rbp, %rdx
   ##MovL %585 <- 24
   movq   $24, %rcx
   ##MoOp %586 <- %584,%585
   addq   %rdx, %rcx
   ##MToR %587 <- #586
   movq   (%rcx), %rcx
   ##MoOp %588 <- %583,%587
   cmpq   %r8, %rcx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rcx
   ##MoOp %589 <- %580,%588
   andq   %r9, %rcx
   andq   $1, %rcx
   ##JuCo %589
   testq   %rcx, %rcx
   jnz     __LABEL115

__LABEL116:
   ##Jump 117
   jmp    __LABEL117

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

__LABEL120:
   ##Jump 121
   jmp    __LABEL121

__LABEL121:

__LABEL123:

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

__LABEL126:
   ##Jump 127
   jmp    __LABEL127

__LABEL127:

__LABEL129:

__LABEL130:
   ##MovL %637 <- 0
   movq   $0, %rdx
   ##MoMo %638 <- %9
   movq   %rbx, %rcx
   ##MoOp %639 <- %637,%638
   cmpq   %rdx, %rcx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rcx
   ##JuCo %639
   testq   %rcx, %rcx
   jnz     __LABEL131

__LABEL132:
   ##Jump 133
   jmp    __LABEL133

__LABEL133:

__LABEL135:

__LABEL136:
   ##MovL %651 <- 0
   movq   $0, %rcx
   ##MoMo %652 <- %574
   movq   %rax, %rbx
   ##MoOp %653 <- %651,%652
   cmpq   %rcx, %rbx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rbx
   ##JuCo %653
   testq   %rbx, %rbx
   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, %rbx
   ##Prin %654
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rbx, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %655 <- %574
   movq   %rax, %rbx
   ##MovL %656 <- 1
   movq   $1, %rax
   ##MoOp %657 <- %655,%656
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %574 <- %657
   ##Jump 136
   jmp    __LABEL136

__LABEL131:

__LABEL134:
   ##MoMo %640 <- %9
   movq   %rbx, %rdx
   ##MovL %641 <- 10
   movq   $10, %rcx
   ##MoOp %642 <- %640,%641
#%rdx A:%rdx 		 B:%rcx
   pushq   %rax
   movq    %rcx, %rdi
   movq    %rdx, %rax
   cqto
   idiv    %rdi
   popq    %rax
   ##MovL %643 <- 48
   movq   $48, %rcx
   ##MoOp %644 <- %642,%643
   addq   %rdx, %rcx
   ##Prin %644
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rcx, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %645 <- %9
   movq   %rbx, %rcx
   ##MovL %646 <- 10
   movq   $10, %rbx
   ##MoOp %647 <- %645,%646
   pushq   %rax
   pushq   %rdx
   movq    %rcx, %rax
   cqto
   idiv    %rbx
   movq    %rax, %rbx
   popq    %rdx
   popq    %rax
   ##MoMo %9 <- %647
   ##MoMo %648 <- %574
   movq   %rax, %rcx
   ##MovL %649 <- 1
   movq   $1, %rax
   ##MoOp %650 <- %648,%649
   imulq   $-1, %rax
   addq   %rcx, %rax
   ##MoMo %574 <- %650
   ##Jump 130
   jmp    __LABEL130

__LABEL125:

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

__LABEL119:

__LABEL122:
   ##MovL %597 <- 0
   movq   $0, %rdx
   ##MovL %598 <- 1
   movq   $1, %rcx
   ##MoOp %599 <- %597,%598
   movq   %rdx, %r8
   subq   %rcx, %r8
   ##MoMo %600 <- %-1
   movq   %rbp, %rdx
   ##MovL %601 <- 24
   movq   $24, %rcx
   ##MoOp %602 <- %600,%601
   addq   %rdx, %rcx
   ##MToR %603 <- #602
   movq   (%rcx), %rcx
   ##MoOp %604 <- %599,%603
   imul   %rcx, %r8
   ##MoMo %605 <- %-1
   movq   %rbp, %rdx
   ##MovL %606 <- 24
   movq   $24, %rcx
   ##MoOp %607 <- %605,%606
   addq   %rdx, %rcx
   ##RToM #607 <- %604
   movq   %r8, (%rcx)
   ##MovL %608 <- 45
   movq   $45, %rcx
   ##Prin %608
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rcx, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##Jump 121
   jmp    __LABEL121

__LABEL115:

__LABEL118:
   ##MovL %590 <- 48
   movq   $48, %rcx
   ##Prin %590
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rcx, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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    $-8, %rsp

   ##MoMa 560
   pushq  %r10                  ## prepare malloc
   pushq  %r11                  ## prepare malloc
   pushq  %r8                  ## prepare malloc
   pushq  %r9                  ## prepare malloc
   pushq  %rbx                  ## prepare malloc
   pushq  %rcx                  ## prepare malloc
   pushq  %rdx                  ## prepare malloc
   movq    $8, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %561 <- %560
   ##MoMo %562 <- %561
   ##MoMo %563 <- %562
   movq   %rax, %rcx
   ##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  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %571
   pushq  %rax
   ##Push %563
   pushq  %rcx
   ##Call (#700213972)
   call   __LABEL114
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10

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

__LABEL112:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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    $-8, %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

__LABEL110:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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    $-8, %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), %rcx
   ##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   %rbx, %rax
   ##RToM #538 <- %532
   movq   %rcx, (%rax)

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

__LABEL107:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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), %rcx
   ##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   %rbx, %rax
   ##RToM #518 <- %512
   movq   %rcx, (%rax)

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

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

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

__LABEL96:

__LABEL97:
   ##MoMo %471 <- %462
   movq   %rax, %rdx
   ##JuCo %471
   testq   %rdx, %rdx
   jnz     __LABEL98

__LABEL99:
   ##Jump 100
   jmp    __LABEL100

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

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

__LABEL98:

__LABEL101:
   ##MoMo %472 <- %91
   movq   %rcx, %rdx
   ##MoMo %473 <- %472
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %473
   pushq  %rdx
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rdx
   ##JuCo %474
   testq   %rdx, %rdx
   jnz     __LABEL102

__LABEL103:

__LABEL104:
   ##MoMo %475 <- %91
   ##MoMo %476 <- %475
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %476
   pushq  %rcx
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rcx
   ##MoMo %91 <- %477
   ##Jump 105
   jmp    __LABEL105

__LABEL105:
   ##MoMo %479 <- %93
   movq   %rbx, %rdx
   ##MovL %480 <- 1
   movq   $1, %rbx
   ##MoOp %481 <- %479,%480
   addq   %rdx, %rbx
   ##MoMo %93 <- %481
   ##Jump 97
   jmp    __LABEL97

__LABEL102:

__LABEL106:
   ##MovL %478 <- 0
   movq   $0, %rax
   ##MoMo %462 <- %478
   ##Jump 105
   jmp    __LABEL105

__LABEL90:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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), %rcx
   ##MoMo %399 <- %-1
   movq   %rbp, %rbx
   ##MovL %400 <- 32
   movq   $32, %rax
   ##MoOp %401 <- %399,%400
   addq   %rbx, %rax
   ##MToR %402 <- #401
   movq   (%rax), %rax
   ##MoOp %403 <- %398,%402
   cmpq   %rcx, %rax
   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), %rdx
   ##MoMo %408 <- %-1
   movq   %rbp, %rbx
   ##MovL %409 <- 32
   movq   $32, %rax
   ##MoOp %410 <- %408,%409
   addq   %rbx, %rax
   ##MToR %411 <- #410
   movq   (%rax), %rcx
   ##MoMo %412 <- %-1
   movq   %rbp, %rbx
   ##MovL %413 <- 24
   movq   $24, %rax
   ##MoOp %414 <- %412,%413
   addq   %rbx, %rax
   ##MToR %415 <- #414
   movq   (%rax), %rax
   ##MoOp %416 <- %411,%415
   movq   %rcx, %rbx
   subq   %rax, %rbx
   ##MovL %417 <- 2
   movq   $2, %rax
   ##MoOp %418 <- %416,%417
   pushq   %rdx
   movq    %rax, %rdi
   movq    %rbx, %rax
   cqto
   idiv    %rdi
   popq    %rdx
   ##MoOp %419 <- %407,%418
   addq   %rdx, %rax
   ##MoMo %420 <- %419
   movq   %rax, %rbx
   ##MoMo %421 <- %-1
   movq   %rbp, %rcx
   ##MovL %422 <- 16
   movq   $16, %rax
   ##MoOp %423 <- %421,%422
   addq   %rcx, %rax
   ##MToR %424 <- #423
   movq   (%rax), %rdx
   ##MoMo %425 <- %-1
   movq   %rbp, %rcx
   ##MovL %426 <- 24
   movq   $24, %rax
   ##MoOp %427 <- %425,%426
   addq   %rcx, %rax
   ##MToR %428 <- #427
   movq   (%rax), %rax
   ##MoMo %429 <- %428
   movq   %rax, %rcx
   ##MoMo %430 <- %420
   movq   %rbx, %rax
   ##MoMo %431 <- %430
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %431
   pushq  %rax
   ##Push %429
   pushq  %rcx
   ##Push %424
   pushq  %rdx
   ##Call (#341668702)
   call   __LABEL90
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %432 <- %-1
   movq   %rbp, %rcx
   ##MovL %433 <- 16
   movq   $16, %rax
   ##MoOp %434 <- %432,%433
   addq   %rcx, %rax
   ##MToR %435 <- #434
   movq   (%rax), %r8
   ##MoMo %436 <- %420
   movq   %rbx, %rcx
   ##MovL %437 <- 1
   movq   $1, %rax
   ##MoOp %438 <- %436,%437
   addq   %rcx, %rax
   ##MoMo %439 <- %438
   movq   %rax, %rdx
   ##MoMo %440 <- %-1
   movq   %rbp, %rcx
   ##MovL %441 <- 32
   movq   $32, %rax
   ##MoOp %442 <- %440,%441
   addq   %rcx, %rax
   ##MToR %443 <- #442
   movq   (%rax), %rax
   ##MoMo %444 <- %443
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %444
   pushq  %rax
   ##Push %439
   pushq  %rdx
   ##Push %435
   pushq  %r8
   ##Call (#341668702)
   call   __LABEL90
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %445 <- %-1
   movq   %rbp, %rcx
   ##MovL %446 <- 16
   movq   $16, %rax
   ##MoOp %447 <- %445,%446
   addq   %rcx, %rax
   ##MToR %448 <- #447
   movq   (%rax), %rax
   ##MoMo %449 <- %-1
   movq   %rbp, %rdx
   ##MovL %450 <- 24
   movq   $24, %rcx
   ##MoOp %451 <- %449,%450
   addq   %rdx, %rcx
   ##MToR %452 <- #451
   movq   (%rcx), %rcx
   ##MoMo %453 <- %452
   movq   %rcx, %r8
   ##MoMo %454 <- %420
   ##MoMo %455 <- %454
   movq   %rbx, %rdx
   ##MoMo %456 <- %-1
   movq   %rbp, %rcx
   ##MovL %457 <- 32
   movq   $32, %rbx
   ##MoOp %458 <- %456,%457
   addq   %rcx, %rbx
   ##MToR %459 <- #458
   movq   (%rbx), %rbx
   ##MoMo %460 <- %459
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %460
   pushq  %rbx
   ##Push %455
   pushq  %rdx
   ##Push %453
   pushq  %r8
   ##Push %448
   pushq  %rax
   ##Call (#475828359)
   call   __LABEL60
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##Jump 93
   jmp    __LABEL93

__LABEL108:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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), %rcx
   ##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   %rbx, %rax
   ##RToM #528 <- %522
   movq   %rcx, (%rax)

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

__LABEL60:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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
   movq   %rax, %r8

__LABEL61:

__LABEL62:
   ##MoMo %174 <- %173
   movq   %r8, %rcx
   ##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   %rbx, %rax
   ##MoOp %181 <- %174,%180
   cmpq   %rcx, %rax
   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, %rdx
   ##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, %rcx
   ##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
   movq   %rax, %r8
   ##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
   movq   %rbx, %r9
   addq   %rax, %r9
   ##MoMo %223 <- %-1
   movq   %rbp, %rbx
   ##MovL %224 <- 32
   movq   $32, %rax
   ##MoOp %225 <- %223,%224
   addq   %rbx, %rax
   ##RToM #225 <- %222
   movq   %r9, (%rax)

__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), %r9
   ##MoMo %230 <- %207
   movq   %rdx, %rbx
   ##MovL %231 <- 1
   movq   $1, %rax
   ##MoOp %232 <- %230,%231
   addq   %rbx, %rax
   ##MoOp %233 <- %229,%232
   cmpq   %r9, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %r10
   ##MoMo %234 <- %-1
   movq   %rbp, %rbx
   ##MovL %235 <- 32
   movq   $32, %rax
   ##MoOp %236 <- %234,%235
   addq   %rbx, %rax
   ##MToR %237 <- #236
   movq   (%rax), %r9
   ##MoMo %238 <- %212
   movq   %rcx, %rbx
   ##MovL %239 <- 1
   movq   $1, %rax
   ##MoOp %240 <- %238,%239
   addq   %rbx, %rax
   ##MoOp %241 <- %237,%240
   cmpq   %r9, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##MoOp %242 <- %233,%241
   andq   %r10, %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), %r9
   ##MoMo %317 <- %207
   movq   %rdx, %rbx
   ##MovL %318 <- 1
   movq   $1, %rax
   ##MoOp %319 <- %317,%318
   addq   %rbx, %rax
   ##MoOp %320 <- %316,%319
   cmpq   %r9, %rax
   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), %rdx
   ##MoMo %358 <- %212
   movq   %rcx, %rbx
   ##MovL %359 <- 1
   movq   $1, %rax
   ##MoOp %360 <- %358,%359
   addq   %rbx, %rax
   ##MoOp %361 <- %357,%360
   cmpq   %rdx, %rax
   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
   ##MoMo %366 <- %173
   movq   %r8, %rax
   ##MoMo %367 <- %366
   ##MoMo %368 <- %-1
   movq   %rbp, %r9
   ##MovL %369 <- 16
   movq   $16, %rdx
   ##MoOp %370 <- %368,%369
   addq   %r9, %rdx
   ##MToR %371 <- #370
   movq   (%rdx), %r9
   ##MovL %372 <- 0
   movq   $0, %rdx
   ##MoOp %373 <- %371,%372
   addq   %r9, %rdx
   ##MToR %374 <- #373
   movq   (%rdx), %rdx
   ##MoMo %375 <- %374
   movq   %rdx, %r10
   ##MoMo %376 <- %-1
   movq   %rbp, %r9
   ##MovL %377 <- 32
   movq   $32, %rdx
   ##MoOp %378 <- %376,%377
   addq   %r9, %rdx
   ##MToR %379 <- #378
   movq   (%rdx), %rdx
   ##MoMo %380 <- %379
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %380
   pushq  %rdx
   ##Push %375
   pushq  %r10
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rdx
   ##MoMo %382 <- %381
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %382
   pushq  %rdx
   ##Push %367
   pushq  %rax
   ##Push %365
   pushq  %rbx
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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
   movq   %rbx, %rdx
   addq   %rax, %rdx
   ##MoMo %389 <- %-1
   movq   %rbp, %rbx
   ##MovL %390 <- 32
   movq   $32, %rax
   ##MoOp %391 <- %389,%390
   addq   %rbx, %rax
   ##RToM #391 <- %388
   movq   %rdx, (%rax)
   ##MoMo %392 <- %173
   movq   %r8, %rbx
   ##MovL %393 <- 1
   movq   $1, %rax
   ##MoOp %394 <- %392,%393
   addq   %rbx, %rax
   ##MoMo %173 <- %394
   movq   %rax, %r8
   ##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
   ##MoMo %325 <- %173
   movq   %r8, %rax
   ##MoMo %326 <- %325
   ##MoMo %327 <- %-1
   movq   %rbp, %r10
   ##MovL %328 <- 16
   movq   $16, %r9
   ##MoOp %329 <- %327,%328
   addq   %r10, %r9
   ##MToR %330 <- #329
   movq   (%r9), %r10
   ##MovL %331 <- 0
   movq   $0, %r9
   ##MoOp %332 <- %330,%331
   addq   %r10, %r9
   ##MToR %333 <- #332
   movq   (%r9), %r9
   ##MoMo %334 <- %333
   movq   %r9, %r11
   ##MoMo %335 <- %-1
   movq   %rbp, %r10
   ##MovL %336 <- 24
   movq   $24, %r9
   ##MoOp %337 <- %335,%336
   addq   %r10, %r9
   ##MToR %338 <- #337
   movq   (%r9), %r9
   ##MoMo %339 <- %338
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %339
   pushq  %r9
   ##Push %334
   pushq  %r11
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %r9
   ##MoMo %341 <- %340
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %341
   pushq  %r9
   ##Push %326
   pushq  %rax
   ##Push %324
   pushq  %rbx
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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
   movq   %rbx, %r9
   addq   %rax, %r9
   ##MoMo %348 <- %-1
   movq   %rbp, %rbx
   ##MovL %349 <- 24
   movq   $24, %rax
   ##MoOp %350 <- %348,%349
   addq   %rbx, %rax
   ##RToM #350 <- %347
   movq   %r9, (%rax)
   ##MoMo %351 <- %173
   movq   %r8, %rbx
   ##MovL %352 <- 1
   movq   $1, %rax
   ##MoOp %353 <- %351,%352
   addq   %rbx, %rax
   ##MoMo %173 <- %353
   movq   %rax, %r8
   ##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, %r9
   ##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  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %255
   pushq  %rax
   ##Push %250
   pushq  %r9
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %257 <- %256
   movq   %rax, %rbx
   ##MoMo %258 <- %-1
   movq   %rbp, %r9
   ##MovL %259 <- 16
   movq   $16, %rax
   ##MoOp %260 <- %258,%259
   addq   %r9, %rax
   ##MToR %261 <- #260
   movq   (%rax), %r9
   ##MovL %262 <- 0
   movq   $0, %rax
   ##MoOp %263 <- %261,%262
   addq   %r9, %rax
   ##MToR %264 <- #263
   movq   (%rax), %rax
   ##MoMo %265 <- %264
   movq   %rax, %r10
   ##MoMo %266 <- %-1
   movq   %rbp, %r9
   ##MovL %267 <- 32
   movq   $32, %rax
   ##MoOp %268 <- %266,%267
   addq   %r9, %rax
   ##MToR %269 <- #268
   movq   (%rax), %rax
   ##MoMo %270 <- %269
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %270
   pushq  %rax
   ##Push %265
   pushq  %r10
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %272 <- %271
   ##MoMo %273 <- %257
   movq   %rbx, %r10
   ##MoMo %274 <- %272
   movq   %rax, %r9
   ##MoOp %275 <- %273,%274
   cmpq   %r10, %r9
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %r9
   ##JuCo %275
   testq   %r9, %r9
   jnz     __LABEL73

__LABEL74:

__LABEL75:
   ##MoMo %276 <- %-1
   movq   %rbp, %r9
   ##MovL %277 <- 16
   movq   $16, %rbx
   ##MoOp %278 <- %276,%277
   addq   %r9, %rbx
   ##MToR %279 <- #278
   movq   (%rbx), %r9
   ##MoMo %280 <- %173
   movq   %r8, %rbx
   ##MoMo %281 <- %280
   ##MoMo %282 <- %272
   ##MoMo %283 <- %282
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %283
   pushq  %rax
   ##Push %281
   pushq  %rbx
   ##Push %279
   pushq  %r9
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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
   movq   %rbx, %r9
   addq   %rax, %r9
   ##MoMo %290 <- %-1
   movq   %rbp, %rbx
   ##MovL %291 <- 32
   movq   $32, %rax
   ##MoOp %292 <- %290,%291
   addq   %rbx, %rax
   ##RToM #292 <- %289
   movq   %r9, (%rax)
   ##Jump 76
   jmp    __LABEL76

__LABEL76:
   ##MoMo %310 <- %173
   movq   %r8, %rbx
   ##MovL %311 <- 1
   movq   $1, %rax
   ##MoOp %312 <- %310,%311
   addq   %rbx, %rax
   ##MoMo %173 <- %312
   movq   %rax, %r8
   ##Jump 68
   jmp    __LABEL68

__LABEL73:

__LABEL77:
   ##MoMo %293 <- %-1
   movq   %rbp, %r9
   ##MovL %294 <- 16
   movq   $16, %rax
   ##MoOp %295 <- %293,%294
   addq   %r9, %rax
   ##MToR %296 <- #295
   movq   (%rax), %r10
   ##MoMo %297 <- %173
   movq   %r8, %rax
   ##MoMo %298 <- %297
   movq   %rax, %r9
   ##MoMo %299 <- %257
   movq   %rbx, %rax
   ##MoMo %300 <- %299
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %300
   pushq  %rax
   ##Push %298
   pushq  %r9
   ##Push %296
   pushq  %r10
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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
   movq   %rbx, %r9
   addq   %rax, %r9
   ##MoMo %307 <- %-1
   movq   %rbp, %rbx
   ##MovL %308 <- 24
   movq   $24, %rax
   ##MoOp %309 <- %307,%308
   addq   %rbx, %rax
   ##RToM #309 <- %306
   movq   %r9, (%rax)
   ##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, %rdx
   ##MoMo %190 <- %173
   movq   %r8, %rax
   ##MoMo %191 <- %190
   movq   %rax, %rcx
   ##MoMo %192 <- %-1
   movq   %rbp, %rbx
   ##MovL %193 <- 16
   movq   $16, %rax
   ##MoOp %194 <- %192,%193
   addq   %rbx, %rax
   ##MToR %195 <- #194
   movq   (%rax), %rbx
   ##MoMo %196 <- %173
   movq   %r8, %rax
   ##MoMo %197 <- %196
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %197
   pushq  %rax
   ##Push %195
   pushq  %rbx
   ##Call (#365051812)
   call   __LABEL19
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %199 <- %198
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %199
   pushq  %rax
   ##Push %191
   pushq  %rcx
   ##Push %189
   pushq  %rdx
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %200 <- %173
   movq   %r8, %rbx
   ##MovL %201 <- 1
   movq   $1, %rax
   ##MoOp %202 <- %200,%201
   addq   %rbx, %rax
   ##MoMo %173 <- %202
   movq   %rax, %r8
   ##Jump 62
   jmp    __LABEL62

__LABEL49:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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, %rcx
   ##MovL %158 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %158
   movq   %rax, %rbx

__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:
   ##MoMo %160 <- %91
   movq   %rcx, %rax
   ##MoMo %161 <- %160
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %161
   pushq  %rax
   ##Call (#199422015)
   call   __LABEL113
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %162 <- %91
   movq   %rcx, %rax
   ##MoMo %163 <- %162
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %163
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rax, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %166 <- %91
   movq   %rcx, %rax
   ##MoMo %167 <- %166
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %167
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %168
   movq   %rax, %rcx
   ##Jump 51
   jmp    __LABEL51

__LABEL56:

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

__LABEL34:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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, %rcx
   ##MovL %124 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %124
   movq   %rax, %rbx

__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, %rdx
   ##MovL %127 <- 24
   movq   $24, %rax
   ##MoOp %128 <- %126,%127
   addq   %rdx, %rax
   ##MToR %129 <- #128
   movq   (%rax), %rdx
   ##MovL %130 <- 1
   movq   $1, %rax
   ##MoOp %131 <- %129,%130
   subq   %rax, %rdx
   ##MoMo %132 <- %93
   movq   %rbx, %rax
   ##MoOp %133 <- %131,%132
   cmpq   %rdx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %133
   testq   %rax, %rax
   jnz     __LABEL41

__LABEL42:
   ##Jump 43
   jmp    __LABEL43

__LABEL43:
   ##MoMo %141 <- %91
   movq   %rcx, %rax
   ##MoMo %142 <- %141
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %142
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##JuCo %143
   testq   %rax, %rax
   jnz     __LABEL45

__LABEL46:
   ##Jump 47
   jmp    __LABEL47

__LABEL47:
   ##MoMo %145 <- %91
   movq   %rcx, %rax
   ##MoMo %146 <- %145
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %146
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %147
   movq   %rax, %rcx
   ##MoMo %148 <- %93
   ##MovL %149 <- 1
   movq   $1, %rax
   ##MoOp %150 <- %148,%149
   addq   %rbx, %rax
   ##MoMo %93 <- %150
   movq   %rax, %rbx
   ##Jump 36
   jmp    __LABEL36

__LABEL45:

__LABEL48:
   ##MovL %144 <- 64
   movq   $64, %rax
   ##Prin %144
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rax, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##SRet
   movq  %rbp, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 47
   jmp    __LABEL47

__LABEL41:

__LABEL44:
   ##MoMo %134 <- %91
   movq   %rcx, %rax
   ##MoMo %135 <- %134
   movq   %rax, %r8
   ##MoMo %136 <- %-1
   movq   %rbp, %rdx
   ##MovL %137 <- 32
   movq   $32, %rax
   ##MoOp %138 <- %136,%137
   addq   %rdx, %rax
   ##MToR %139 <- #138
   movq   (%rax), %rax
   ##MoMo %140 <- %139
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %140
   pushq  %rax
   ##Push %135
   pushq  %r8
   ##Call (#1755579204)
   call   __LABEL107
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##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    $-8, %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, %rcx
   ##MovL %92 <- 0
   movq   $0, %rax
   ##MoMo %93 <- %92
   movq   %rax, %rbx

__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, %rdx
   ##MovL %96 <- 24
   movq   $24, %rax
   ##MoOp %97 <- %95,%96
   addq   %rdx, %rax
   ##MToR %98 <- #97
   movq   (%rax), %rdx
   ##MovL %99 <- 1
   movq   $1, %rax
   ##MoOp %100 <- %98,%99
   subq   %rax, %rdx
   ##MoMo %101 <- %93
   movq   %rbx, %rax
   ##MoOp %102 <- %100,%101
   cmpq   %rdx, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %102
   testq   %rax, %rax
   jnz     __LABEL26

__LABEL27:
   ##Jump 28
   jmp    __LABEL28

__LABEL28:
   ##MoMo %106 <- %91
   movq   %rcx, %rax
   ##MoMo %107 <- %106
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %107
   pushq  %rax
   ##Call (#92626363)
   call   __LABEL112
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##JuCo %108
   testq   %rax, %rax
   jnz     __LABEL30

__LABEL31:
   ##Jump 32
   jmp    __LABEL32

__LABEL32:
   ##MoMo %111 <- %91
   movq   %rcx, %rax
   ##MoMo %112 <- %111
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %112
   pushq  %rax
   ##Call (#251070871)
   call   __LABEL110
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##MoMo %91 <- %113
   movq   %rax, %rcx
   ##MoMo %114 <- %93
   ##MovL %115 <- 1
   movq   $1, %rax
   ##MoOp %116 <- %114,%115
   addq   %rbx, %rax
   ##MoMo %93 <- %116
   movq   %rax, %rbx
   ##Jump 21
   jmp    __LABEL21

__LABEL30:

__LABEL33:
   ##MovL %109 <- 64
   movq   $64, %rax
   ##Prin %109
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rax, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MovL %110 <- 0
   movq   $0, %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 32
   jmp    __LABEL32

__LABEL26:

__LABEL29:
   ##MoMo %103 <- %91
   movq   %rcx, %rax
   ##MoMo %104 <- %103
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %104
   pushq  %rax
   ##Call (#1758956387)
   call   __LABEL111
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##GRet
   movq  %rdi, %rax
   ##SRet
   movq  %rax, %rdi
   movq    %rbp, %rsp 
   popq    %rbp
   retq
   ##Jump 28
   jmp    __LABEL28

__LABEL7:
   pushq  %rbp                # Save old EBP
   movq    %rsp, %rbp         # Save old ESP
   addq    $-8, %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
   movq   %rax, %rbx

__LABEL8:

__LABEL9:
   ##MovL %41 <- 0
   movq   $0, %rcx
   ##MoMo %42 <- %40
   movq   %rbx, %rax
   ##MoOp %43 <- %41,%42
   cmpq   %rcx, %rax
   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  %r10                  ## prepare malloc
   pushq  %r11                  ## prepare malloc
   pushq  %r8                  ## prepare malloc
   pushq  %r9                  ## prepare malloc
   pushq  %rbx                  ## prepare malloc
   pushq  %rcx                  ## prepare malloc
   pushq  %rdx                  ## prepare malloc
   movq    $24, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %45 <- %44
   ##MoMo %46 <- %45
   movq   %rax, %rcx
   ##MoMo %47 <- %46
   movq   %rcx, %rdx
   ##MovL %48 <- 0
   movq   $0, %rcx
   ##MoMo %49 <- %48
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %49
   pushq  %rcx
   ##Push %47
   pushq  %rdx
   ##Call (#1755579204)
   call   __LABEL107
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %50 <- %40
   movq   %rbx, %r8
   ##MoMo %51 <- %-1
   movq   %rbp, %rdx
   ##MovL %52 <- 24
   movq   $24, %rcx
   ##MoOp %53 <- %51,%52
   addq   %rdx, %rcx
   ##MToR %54 <- #53
   movq   (%rcx), %rcx
   ##MoOp %55 <- %50,%54
   cmpq   %r8, %rcx
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rcx
   ##JuCo %55
   testq   %rcx, %rcx
   jnz     __LABEL14

__LABEL15:

__LABEL16:
   ##MoMo %56 <- %45
   movq   %rax, %rcx
   ##MoMo %57 <- %56
   movq   %rcx, %rdx
   ##MovL %58 <- 1
   movq   $1, %rcx
   ##MoMo %59 <- %58
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %59
   pushq  %rcx
   ##Push %57
   pushq  %rdx
   ##Call (#7967052)
   call   __LABEL108
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##Jump 17
   jmp    __LABEL17

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

__LABEL14:

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

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

   ##MovL %0 <- 50
   movq   $50, %rax
   ##MoMo %1 <- %0
   movq   %rax, %rdx
   ##MoMa 2
   pushq  %r10                  ## prepare malloc
   pushq  %r11                  ## prepare malloc
   pushq  %r8                  ## prepare malloc
   pushq  %r9                  ## prepare malloc
   pushq  %rbx                  ## prepare malloc
   pushq  %rcx                  ## prepare malloc
   pushq  %rdx                  ## prepare malloc
   movq    $16, %rdi
   callq   malloc@PLT
   testq   %rax, %rax
   jz      fail_exit
   movq   %rax, %rax
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %3 <- %2
   movq   %rax, %rcx
   ##MoMo %4 <- %3
   movq   %rcx, %rax
   ##MoMo %5 <- %4
   movq   %rax, %rbx
   ##MoMo %6 <- %1
   movq   %rdx, %rax
   ##MoMo %7 <- %6
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %7
   pushq  %rax
   ##Push %5
   pushq  %rbx
   ##Call (#997205875)
   call   __LABEL7
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %8 <- %1
   movq   %rdx, %rax
   ##MoMo %9 <- %8
   movq   %rax, %rbx

__LABEL1:

__LABEL2:
   ##MovL %10 <- 0
   movq   $0, %r8
   ##MoMo %11 <- %9
   movq   %rbx, %rax
   ##MoOp %12 <- %10,%11
   cmpq   %r8, %rax
   setle   %dil
   xorb   $1, %dil
   movzbq %dil, %rax
   ##JuCo %12
   testq   %rax, %rax
   jnz     __LABEL3

__LABEL4:
   ##Jump 5
   jmp    __LABEL5

__LABEL5:
   ##MoMo %28 <- %3
   movq   %rcx, %rax
   ##MoMo %29 <- %28
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %29
   pushq  %rax
   ##Call (#1743355921)
   call   __LABEL49
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MovL %30 <- 10
   movq   $10, %rax
   ##Prin %30
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rax, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %31 <- %3
   movq   %rcx, %rax
   ##MoMo %32 <- %31
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %32
   pushq  %rax
   ##Call (#1526056698)
   call   __LABEL95
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %33 <- %3
   movq   %rcx, %rax
   ##MoMo %34 <- %33
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %34
   pushq  %rax
   ##Call (#1743355921)
   call   __LABEL49
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MovL %35 <- 10
   movq   $10, %rax
   ##Prin %35
   pushq  %r10                  ## prepare print call
   pushq  %r11                  ## prepare print call
   pushq  %r8                  ## prepare print call
   pushq  %r9                  ## prepare print call
   pushq  %rax                  ## prepare print call
   pushq  %rbx                  ## prepare print call
   pushq  %rcx                  ## prepare print call
   pushq  %rdx                  ## prepare print call
   movq   %rax, %rdi            ## print
   callq   putchar@PLT
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10

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

__LABEL3:

__LABEL6:
   ##MoMo %13 <- %3
   movq   %rcx, %rax
   ##MoMo %14 <- %13
   ##MoMo %15 <- %9
   movq   %rbx, %r9
   ##MovL %16 <- 1
   movq   $1, %r8
   ##MoOp %17 <- %15,%16
   subq   %r8, %r9
   ##MovL %18 <- 269
   movq   $269, %r8
   ##MoOp %19 <- %17,%18
   imul   %r8, %r9
   ##MoMo %20 <- %1
   movq   %rdx, %r8
   ##MoOp %21 <- %19,%20
#%r8 A:%r9 		 B:%r8
   pushq   %rax
   pushq   %rdx
   movq    %r9, %rax
   cqto
   idiv    %r8
   movq    %rdx, %r8
   popq    %rdx
   popq    %rax
   ##MoMo %22 <- %21
   movq   %r8, %r9
   ##MoMo %23 <- %9
   movq   %rbx, %r8
   ##MoMo %24 <- %23
   ##PuAl
   pushq  %r10                  ## prepare call
   pushq  %r11                  ## prepare call
   pushq  %r8                  ## prepare call
   pushq  %r9                  ## prepare call
   pushq  %rax                  ## prepare call
   pushq  %rbx                  ## prepare call
   pushq  %rcx                  ## prepare call
   pushq  %rdx                  ## prepare call
   ##Push %24
   pushq  %r8
   ##Push %22
   pushq  %r9
   ##Push %14
   pushq  %rax
   ##Call (#1441344930)
   call   __LABEL34
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PopD
   add   $8, %rsp
   ##PoAl
   popq   %rdx
   popq   %rcx
   popq   %rbx
   popq   %rax
   popq   %r9
   popq   %r8
   popq   %r11
   popq   %r10
   ##MoMo %25 <- %9
   ##MovL %26 <- 1
   movq   $1, %rax
   ##MoOp %27 <- %25,%26
   imulq   $-1, %rax
   addq   %rbx, %rax
   ##MoMo %9 <- %27
   movq   %rax, %rbx
   ##Jump 2
   jmp    __LABEL2

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