// File: /workspace/github_c_makefile_star2_O1/pipde[P]deos-songlib/utils/fixpitch/fixpitch.c
// Function: main
int
main(int argc,char **argv)
    {
    int argIndex = 1;

    FILE *in,*out,*nfp;
    RRA *h;

    argIndex = processOptions(argc,argv);

    if (argc-argIndex == 1)
        {
        nfp = OpenFile(argv[argIndex],"r");
        in = stdin;
        out = stdout;
        }
    else if (argc-argIndex == 2)
        {
        nfp = OpenFile(argv[argIndex],"r");
        in = OpenFile(argv[argIndex+1],"r");
        out = stdout;
        }
    else if (argc-argIndex == 3)
        {
        nfp = OpenFile(argv[argIndex],"r");
        in = OpenFile(argv[argIndex+1],"r");
        out = OpenFile(argv[argIndex+2],"w");
        }
    else
        {
        printf("usage: %s\n [-h] NOTES_FILE [INPUT_RRA [OUTPUT_RRA]\n",argv[0]);
        exit(-1);
        }

    h = newRRAHeader();
    
    readRRAHeader(in,h,0);

    SampleRate = h->sampleRate;

    if (h->channels != 1)
        Fatal("%s requires a mono audio file\n",argv[0]);

    writeRRAHeader(out,h,"modifiedBy: correct",0);

    if (Report) ReportFP = OpenFile("changes.rpt","w");

    readLegalNotes(nfp);

    LongestCycle = SampleRate / 100 * OctavesAllowed;
    ShortestCycle = SampleRate / 1000;

    MinFactor = 1 / (1 + (ST - 1) * Reach * Bias);
    MaxFactor = 1 + (ST - 1) * Reach * Bias;

    WindowSize = (CycleCount + 1) * LongestCycle;

    if (AbsoluteThreshold == 0)
        AbsoluteThreshold = (int) (pow(2,h->bitsPerSample - 1) / 200);
    if (RelativeThreshold == 0.0)
        RelativeThreshold = 0.20;

    //printf("MinFactor is %f\n",MinFactor);
    //printf("MaxFactor is %f\n",MaxFactor);
    //printf("AbsoluteThreshold is %d\n",AbsoluteThreshold);
    //getchar();

    if ((Window = malloc(sizeof(int) * WindowSize)) == 0)
        Fatal("correct: out of memory\n");

    processData(in,out,h);

    fclose(out);
    fclose(in);
    fclose(nfp);

    if (Report)
        {
        fprintf(ReportFP,"%d samples read\n",SamplesRead);
        fprintf(ReportFP,"%d samples written\n",SamplesWritten);
        fprintf(ReportFP,"%.2f%% samples repitched\n",
            100.0 * SamplesRepitched / (double) SamplesRead);
        fprintf(ReportFP,"%d samples (%.3f seconds) %s\n",
            SampleDelta,SampleDelta / (double) SampleRate,
            SampleDelta < 0? "long" : "short");
        fclose(ReportFP);
        assert(SamplesStored == 0);
        }

    return 0;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %rbx
movl %edi, %r14d
movl $0x1, %r12d
cmpl $0x2, %edi
jl 0x26c2
movl $0x1, %r12d
movslq %r12d, %rax
movq (%rbx,%rax,8), %rsi
cmpb $0x2d, (%rsi)
jne 0x26c2
movb 0x2(%rsi), %r13b
testb %r13b, %r13b
je 0x260a
leaq 0x2(%rsi), %rdi
jmp 0x260f
movq 0x8(%rbx,%rax,8), %rdi
movzbl 0x1(%rsi), %eax
cmpl $0x6b, %eax
jle 0x2638
cmpl $0x71, %eax
jg 0x2651
cmpl $0x6c, %eax
je 0x2671
cmpl $0x6f, %eax
jne 0x26af
callq 0x2220
movl %eax, 0x72aa(%rip)      # 0x98e0
jmp 0x267c
cmpl $0x52, %eax
je 0x2665
cmpl $0x62, %eax
jne 0x269c
callq 0x2090
movsd %xmm0, 0x72a1(%rip)     # 0x98f0
jmp 0x267c
cmpl $0x72, %eax
jne 0x26a6
callq 0x2090
movsd %xmm0, 0x7285(%rip)     # 0x98e8
jmp 0x267c
movb $0x1, 0x72b8(%rip)      # 0x9924
xorl %r15d, %r15d
jmp 0x267f
callq 0x2220
movl %eax, 0x7280(%rip)      # 0x98fc
movb $0x1, %r15b
testb %r13b, %r13b
sete %al
andb %r15b, %al
movzbl %al, %eax
addl %eax, %r12d
incl %r12d
cmpl %r14d, %r12d
jl 0x25eb
jmp 0x26c2
cmpl $0x68, %eax
jne 0x26af
jmp 0x3568
cmpl $0x76, %eax
je 0x3547
xorl %r15d, %r15d
leaq 0x3fd4(%rip), %rdi      # 0x668d
xorl %eax, %eax
callq 0x38e4
jmp 0x267f
subl %r12d, %r14d
cmpl $0x3, %r14d
je 0x2732
cmpl $0x2, %r14d
je 0x26fd
cmpl $0x1, %r14d
jne 0x36fb
movslq %r12d, %rax
movq (%rbx,%rax,8), %rdi
leaq 0x4395(%rip), %rsi      # 0x6a7e
callq 0x397e
movq %rax, %r12
movq 0x68e0(%rip), %rax      # 0x8fd8
movq (%rax), %r14
jmp 0x2726
movslq %r12d, %r15
movq (%rbx,%r15,8), %rdi
leaq 0x4373(%rip), %r14      # 0x6a7e
movq %r14, %rsi
callq 0x397e
movq %rax, %r12
movq 0x8(%rbx,%r15,8), %rdi
movq %r14, %rsi
callq 0x397e
movq %rax, %r14
movq 0x68a3(%rip), %rax      # 0x8fd0
movq (%rax), %r15
jmp 0x276f
movslq %r12d, %r15
movq (%rbx,%r15,8), %rdi
leaq 0x433e(%rip), %r14      # 0x6a7e
movq %r14, %rsi
callq 0x397e
movq %rax, %r12
movq 0x8(%rbx,%r15,8), %rdi
movq %r14, %rsi
callq 0x397e
movq %rax, %r14
movq 0x10(%rbx,%r15,8), %rdi
leaq 0x3ad6(%rip), %rsi      # 0x623d
callq 0x397e
movq %rax, %r15
callq 0x3bfb
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x4008
movl 0x4(%r13), %eax
movl %eax, 0x7192(%rip)      # 0x9920
cmpl $0x1, (%r13)
movq %r13, -0x50(%rbp)
je 0x27ae
movq (%rbx), %rsi
leaq 0x3ad0(%rip), %rdi      # 0x6273
xorl %eax, %eax
callq 0x38e4
movq -0x50(%rbp), %r13
movq %r14, -0x78(%rbp)
leaq 0x3ad9(%rip), %rdx      # 0x6292
movq %r15, -0x58(%rbp)
movq %r15, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x4a59
cmpb $0x1, 0x7153(%rip)      # 0x9924
jne 0x27ed
leaq 0x3acc(%rip), %rdi      # 0x62a6
leaq 0x3a5c(%rip), %rsi      # 0x623d
callq 0x397e
movq %rax, 0x713b(%rip)      # 0x9928
leaq 0x3e39(%rip), %rsi      # 0x662d
leaq -0xa0(%rbp), %rdx
movq %r12, %rdi
xorl %eax, %eax
callq 0x2070
movl $0x0, 0x716d(%rip)      # 0x997c
movq %r12, %rdi
callq 0x2190
testl %eax, %eax
jne 0x2867
leaq 0x796e(%rip), %r15      # 0xa190
leaq 0x3e04(%rip), %rbx      # 0x662d
leaq -0xa0(%rbp), %r14
movq -0xa0(%rbp), %rax
movslq 0x713e(%rip), %rcx      # 0x997c
leal 0x1(%rcx), %edx
movl %edx, 0x7135(%rip)      # 0x997c
movq %rax, (%r15,%rcx,8)
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2070
movq %r12, %rdi
callq 0x2190
testl %eax, %eax
je 0x2830
movq %r12, -0x98(%rbp)
cmpl $0x0, 0x7107(%rip)      # 0x997c
jle 0x28e9
xorl %ebx, %ebx
leaq 0x7910(%rip), %rax      # 0xa190
movq (%rax,%rbx,8), %r14
leaq 0x6c35(%rip), %r12      # 0x94c0
xorl %r15d, %r15d
xorl %r13d, %r13d
movq (%r12), %rsi
movq %r14, %rdi
callq 0x2150
testl %eax, %eax
jne 0x28b2
leaq 0x70d8(%rip), %rax      # 0x9980
movl %r15d, (%rax,%rbx,4)
movl $0x1, %r13d
cmpq $0x6a, %r15
ja 0x28c4
incq %r15
addq $0x8, %r12
testl %r13d, %r13d
je 0x2891
testl %r13d, %r13d
jne 0x28da
leaq 0x3d61(%rip), %rdi      # 0x6631
movq %r14, %rsi
xorl %eax, %eax
callq 0x38e4
incq %rbx
movslq 0x7098(%rip), %rax      # 0x997c
cmpq %rax, %rbx
jl 0x2879
movslq 0x7030(%rip), %rcx      # 0x9920
imulq $0x51eb851f, %rcx, %rax # imm = 0x51EB851F
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rax
addl %edx, %eax
imull 0x6fd5(%rip), %eax      # 0x98e0
movl %eax, 0x701f(%rip)      # 0x9930
imulq $0x10624dd3, %rcx, %rcx # imm = 0x10624DD3
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x26, %rcx
addl %edx, %ecx
movsd 0x6fbb(%rip), %xmm0     # 0x98e8
mulsd 0x36d3(%rip), %xmm0     # 0x6008
mulsd 0x6fb3(%rip), %xmm0     # 0x98f0
movl %ecx, 0x6ff1(%rip)      # 0x9934
movsd 0x36c5(%rip), %xmm1     # 0x6010
addsd %xmm1, %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, 0x6fdd(%rip)     # 0x9938
movsd %xmm0, 0x6fdd(%rip)     # 0x9940
leal (%rax,%rax,4), %ecx
leal (%rax,%rcx,2), %eax
movl %eax, 0x6fd9(%rip)      # 0x9948
cmpl $0x0, 0x6fd6(%rip)      # 0x994c
jne 0x29a0
movq -0x50(%rbp), %rax
movl 0x8(%rax), %edi
decl %edi
movsd 0x3687(%rip), %xmm0     # 0x6010
callq 0x2050
divsd 0x3682(%rip), %xmm0     # 0x6018
cvttsd2si %xmm0, %eax
movl %eax, 0x6fac(%rip)      # 0x994c
movsd 0x6fa8(%rip), %xmm0     # 0x9950
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movq -0x98(%rbp), %r15
jne 0x29cc
jp 0x29cc
movabsq $0x3fc999999999999a, %rax # imm = 0x3FC999999999999A
movq %rax, 0x6f84(%rip)      # 0x9950
movslq 0x6f75(%rip), %rdi      # 0x9948
shlq $0x2, %rdi
callq 0x21b0
movq %rax, 0x6f75(%rip)      # 0x9958
testq %rax, %rax
jne 0x29f6
leaq 0x38c3(%rip), %rdi      # 0x62b2
xorl %eax, %eax
callq 0x38e4
cmpl $0x0, 0x6f4b(%rip)      # 0x9948
movq -0x50(%rbp), %rax
jle 0x2a71
xorl %r14d, %r14d
leaq 0x2318(%rip), %rbx      # 0x4d25
movq -0x78(%rbp), %r12
movl 0x8(%rax), %edx
movq %r12, %rdi
movq -0x58(%rbp), %rsi
movq %rbx, %rcx
callq 0x44f4
movq 0x6f2e(%rip), %rcx      # 0x9958
movslq 0x6f43(%rip), %rdx      # 0x9974
movl %eax, (%rcx,%rdx,4)
movq %r12, %rdi
callq 0x2190
testl %eax, %eax
jne 0x2a61
incl 0x6f1a(%rip)            # 0x9960
incl 0x6f24(%rip)            # 0x9970
movl 0x6f22(%rip), %eax      # 0x9974
incl %eax
cltd
idivl 0x6eed(%rip)            # 0x9948
movl %edx, 0x6f13(%rip)      # 0x9974
incl %r14d
cmpl 0x6edd(%rip), %r14d     # 0x9948
movq -0x50(%rbp), %rax
jl 0x2a11
movl 0x6ef9(%rip), %eax      # 0x9970
addl 0x6ee7(%rip), %eax      # 0x9964
addl 0x6ee9(%rip), %eax      # 0x996c
cmpl 0x6ed7(%rip), %eax      # 0x9960
jne 0x36bd
movq -0x78(%rbp), %rbx
movq %rbx, %rdi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x3716
movq %rbx, %rdi
callq 0x2190
testl %eax, %eax
jne 0x2acc
movl 0x6eaf(%rip), %ecx      # 0x9964
movl 0x6eb1(%rip), %eax      # 0x996c
leal (%rax,%rcx), %esi
movl 0x6e9c(%rip), %edx      # 0x9960
cmpl %edx, %esi
jne 0x2bd2
movq -0x58(%rbp), %rdi
callq 0x20b0
movq -0x78(%rbp), %rdi
callq 0x20b0
movq %r15, %rdi
callq 0x20b0
cmpb $0x1, 0x6e37(%rip)      # 0x9924
jne 0x2bbe
movq 0x6e2e(%rip), %rdi      # 0x9928
movl 0x6e60(%rip), %edx      # 0x9960
leaq 0x37c3(%rip), %rsi      # 0x62ca
xorl %eax, %eax
callq 0x2170
movq 0x6e13(%rip), %rdi      # 0x9928
movl 0x6e49(%rip), %edx      # 0x9964
leaq 0x37b9(%rip), %rsi      # 0x62db
xorl %eax, %eax
callq 0x2170
xorps %xmm0, %xmm0
cvtsi2sdl 0x6e34(%rip), %xmm0 # 0x9968
mulsd 0x3504(%rip), %xmm0     # 0x6040
movq 0x6de5(%rip), %rdi      # 0x9928
xorps %xmm1, %xmm1
cvtsi2sdl 0x6e12(%rip), %xmm1 # 0x9960
divsd %xmm1, %xmm0
leaq 0x3796(%rip), %rsi      # 0x62ef
movb $0x1, %al
callq 0x2170
movq 0x6dc1(%rip), %rdi      # 0x9928
movl 0x6dff(%rip), %edx      # 0x996c
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x6da1(%rip), %xmm1 # 0x9920
divsd %xmm1, %xmm0
testl %edx, %edx
leaq 0x379b(%rip), %rax      # 0x6327
leaq 0x3799(%rip), %rcx      # 0x632c
cmovsq %rax, %rcx
leaq 0x376b(%rip), %rsi      # 0x6309
movb $0x1, %al
callq 0x2170
movq 0x6d7c(%rip), %rdi      # 0x9928
callq 0x20b0
cmpl $0x0, 0x6db8(%rip)      # 0x9970
jne 0x36dc
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
addl %ecx, %eax
addl 0x6d96(%rip), %eax      # 0x9970
cmpl %edx, %eax
jne 0x3509
movq 0x6d6f(%rip), %rsi      # 0x9958
movl 0x6d89(%rip), %ecx      # 0x9978
movl 0x6d53(%rip), %edi      # 0x9948
movl %ecx, %eax
cltd
idivl %edi
movslq %edx, %rax
cmpl $0x0, (%rsi,%rax,4)
jne 0x34ea
incl %ecx
movl %ecx, %eax
cltd
idivl %edi
movslq %edx, %rax
cmpl $0x0, (%rsi,%rax,4)
jle 0x34ea
cmpb $0x1, 0x6d02(%rip)      # 0x9924
jne 0x2c3f
movl 0x6d0a(%rip), %edx      # 0x9934
movq 0x6cf7(%rip), %rdi      # 0x9928
leaq 0x3824(%rip), %rsi      # 0x645c
xorl %eax, %eax
callq 0x2170
xorpd %xmm5, %xmm5
movl $0x0, -0x44(%rbp)
movl -0x34(%rbp), %edi
xorl %eax, %eax
movl $0x0, -0x34(%rbp)
movsd 0x33c2(%rip), %xmm1     # 0x6020
leaq 0x64fb(%rip), %rdx      # 0x9160
movsd %xmm1, -0x90(%rbp)
movl %eax, -0x38(%rbp)
movl %eax, -0x30(%rbp)
movsd %xmm5, -0x40(%rbp)
movl -0x30(%rbp), %eax
movl %eax, %ecx
incl %ecx
movl 0x6cc3(%rip), %esi      # 0x9948
leal -0x1(%rsi), %eax
movl $0x0, -0x30(%rbp)
cmpl %ecx, %eax
jle 0x2d0c
movl %edi, %r14d
movq 0x6cbb(%rip), %rdi      # 0x9958
movl 0x6cd4(%rip), %r8d      # 0x9978
movl $0x2, %r9d
subl %esi, %r9d
movl -0x44(%rbp), %r10d
leal (%r8,%rcx), %eax
incl %eax
cltd
idivl %esi
movslq %edx, %rax
movl (%rdi,%rax,4), %ebx
movl %ebx, %r11d
negl %r11d
cmovsl %ebx, %r11d
cmpl %r10d, %r11d
movl -0x44(%rbp), %eax
cmovgl %r11d, %eax
movl %eax, -0x44(%rbp)
leal (%r8,%rcx), %eax
cltd
idivl %esi
movslq %edx, %rax
cmpl $0x0, (%rdi,%rax,4)
jne 0x2ceb
testl %ebx, %ebx
jg 0x2cff
incl %ecx
cmpl %r10d, %r11d
cmovgl %r11d, %r10d
leal (%r9,%rcx), %eax
cmpl $0x1, %eax
jne 0x2cb1
jmp 0x2d02
movl %ecx, -0x30(%rbp)
leaq 0x6457(%rip), %rdx      # 0x9160
movl %r14d, %edi
movb 0x6c12(%rip), %al       # 0x9924
cmpl $0x0, -0x30(%rbp)
je 0x3166
movl -0x44(%rbp), %ecx
cmpl 0x6c27(%rip), %ecx      # 0x994c
jl 0x3166
movl -0x30(%rbp), %ecx
cmpl 0x6bfc(%rip), %ecx      # 0x9930
jge 0x3166
testb $0x1, %al
je 0x2d66
movl %edi, %ebx
movq 0x6be1(%rip), %rdi      # 0x9928
leaq 0x372c(%rip), %rsi      # 0x647a
movl -0x30(%rbp), %edx
xorl %eax, %eax
callq 0x2170
movl %ebx, %edi
movsd -0x40(%rbp), %xmm5
leaq 0x63fa(%rip), %rdx      # 0x9160
cmpl $0x0, 0x6c0f(%rip)      # 0x997c
xorps %xmm0, %xmm0
cvtsi2sdl 0x6ba8(%rip), %xmm0 # 0x9920
xorps %xmm1, %xmm1
cvtsi2sdl -0x30(%rbp), %xmm1
movsd %xmm1, -0xa8(%rbp)
divsd %xmm1, %xmm0
jle 0x2ed3
xorl %eax, %eax
movsd %xmm0, -0x80(%rbp)
cmpl 0x6bdd(%rip), %eax      # 0x997c
jge 0x2f9e
cmpl $0x0, 0x6b34(%rip)      # 0x98e0
setle %r15b
movl %eax, -0x84(%rbp)
jle 0x2ead
cltq
leaq 0x6bbb(%rip), %rcx      # 0x9980
movl (%rcx,%rax,4), %r13d
movslq %r13d, %r12
movl $0x1, %r14d
xorl %r15d, %r15d
movsd (%rdx,%r12,8), %xmm4
xorps %xmm1, %xmm1
cvtsi2sd %r14d, %xmm1
mulsd %xmm0, %xmm1
divsd %xmm1, %xmm4
movsd 0x6b4d(%rip), %xmm3     # 0x9940
movapd %xmm4, %xmm1
cmpnltpd %xmm3, %xmm1
movsd 0x6b34(%rip), %xmm3     # 0x9938
cmpnltpd %xmm4, %xmm3
orpd %xmm1, %xmm3
movd %xmm3, %ebx
testb $0x1, %bl
jne 0x2e90
cmpb $0x1, 0x6b07(%rip)      # 0x9924
jne 0x2e89
cmpl $0x2, %r14d
movapd %xmm4, -0x70(%rbp)
jb 0x2e47
movq 0x6af7(%rip), %rdi      # 0x9928
leaq 0x36c1(%rip), %rsi      # 0x64f9
movl %r14d, %edx
xorl %eax, %eax
callq 0x2170
movapd -0x70(%rbp), %xmm4
movq 0x6ada(%rip), %rdi      # 0x9928
leaq 0x666b(%rip), %rax      # 0x94c0
movq (%rax,%r12,8), %rcx
leaq 0x36b9(%rip), %rsi      # 0x6519
movl -0x30(%rbp), %edx
movapd %xmm4, %xmm0
movb $0x1, %al
callq 0x2170
movl %r13d, %edi
movapd -0x70(%rbp), %xmm2
leaq 0x62e3(%rip), %rdx      # 0x9160
movsd -0x40(%rbp), %xmm5
movsd -0x80(%rbp), %xmm0
jmp 0x2e90
movl %r13d, %edi
movapd %xmm4, %xmm2
testb $0x1, %bl
je 0x2eb7
leal 0x1(%r14), %eax
cmpl 0x6a40(%rip), %r14d     # 0x98e0
setge %r15b
movl %eax, %r14d
jl 0x2dd5
movl -0x84(%rbp), %eax
incl %eax
jmp 0x2ebd
movl -0x84(%rbp), %eax
testb $0x1, %r15b
movq -0x98(%rbp), %r15
jne 0x2d99
jmp 0x2fe2
movsd 0x6a5d(%rip), %xmm6     # 0x9938
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movsd 0x6a58(%rip), %xmm1     # 0x9940
movq %rdx, %rax
xorl %ecx, %ecx
movsd 0x312b(%rip), %xmm2     # 0x6020
movsd (%rax), %xmm3
movapd %xmm3, %xmm4
divsd %xmm0, %xmm4
ucomisd %xmm6, %xmm4
jbe 0x2f2f
ucomisd %xmm4, %xmm1
jbe 0x2f2f
subsd %xmm0, %xmm3
andpd 0x3137(%rip), %xmm3     # 0x6050
xorpd %xmm4, %xmm4
ucomisd %xmm2, %xmm4
ja 0x2f29
ucomisd %xmm3, %xmm2
jbe 0x2f2f
movl %ecx, %ebx
movapd %xmm3, %xmm2
incq %rcx
addq $0x8, %rax
cmpq $0x6c, %rcx
jne 0x2ef5
testl %ebx, %ebx
js 0x2fde
movl %ebx, %eax
movsd (%rdx,%rax,8), %xmm1
movapd %xmm1, %xmm2
divsd %xmm0, %xmm2
cmpb $0x1, 0x69ca(%rip)      # 0x9924
jne 0x2f9a
movq 0x69c5(%rip), %rdi      # 0x9928
leaq 0x6556(%rip), %rcx      # 0x94c0
movq (%rcx,%rax,8), %rcx
leaq 0x35f3(%rip), %rsi      # 0x6568
movl -0x30(%rbp), %edx
movsd %xmm2, -0x70(%rbp)
movsd -0x70(%rbp), %xmm2
movb $0x3, %al
callq 0x2170
movsd -0x70(%rbp), %xmm2
movsd -0x40(%rbp), %xmm5
leaq 0x61c6(%rip), %rdx      # 0x9160
movl %ebx, %edi
jmp 0x2fe2
xorpd %xmm2, %xmm2
cmpb $0x1, 0x697b(%rip)      # 0x9924
jne 0x2fe2
movq 0x6976(%rip), %rcx      # 0x9928
movl $0x18, %esi
movl $0x1, %edx
movl %edi, %ebx
leaq 0x358a(%rip), %rdi      # 0x654f
callq 0x2240
xorpd %xmm2, %xmm2
movl %ebx, %edi
movsd -0x40(%rbp), %xmm5
leaq 0x6184(%rip), %rdx      # 0x9160
jmp 0x2fe2
xorpd %xmm2, %xmm2
ucomisd 0x305e(%rip), %xmm2     # 0x6048
jne 0x2ff2
jnp 0x2c78
movl %edi, %r14d
movq 0x695c(%rip), %rsi      # 0x9958
movl 0x6976(%rip), %edi      # 0x9978
movl $0x1, %r8d
xorpd %xmm0, %xmm0
movl 0x6935(%rip), %r9d      # 0x9948
movl -0x30(%rbp), %r11d
movl %r11d, %r10d
testl %r11d, %r11d
jle 0x3051
movl %edi, %ecx
leal (%r10,%rcx), %eax
cltd
idivl %r9d
movslq %edx, %rax
movl (%rsi,%rax,4), %ebx
movl %ecx, %eax
cltd
idivl %r9d
movslq %edx, %rax
subl (%rsi,%rax,4), %ebx
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm0
incl %ecx
decl %r11d
jne 0x3021
incl %r8d
movl -0x30(%rbp), %r11d
addl %r11d, %r10d
cmpl $0xb, %r8d
jne 0x301a
movsd %xmm2, -0x70(%rbp)
movsd -0xa8(%rbp), %xmm1
mulsd 0x2fba(%rip), %xmm1     # 0x6030
divsd %xmm1, %xmm0
movsd 0x2fa6(%rip), %xmm1     # 0x6028
callq 0x20a0
movapd %xmm0, %xmm1
divsd 0x2fa5(%rip), %xmm1     # 0x6038
movl %r14d, %edi
cmpl 0x685b(%rip), %r14d     # 0x98f8
je 0x30a3
movapd %xmm0, %xmm1
cmpb $0x1, 0x687a(%rip)      # 0x9924
jne 0x30d5
movq 0x6875(%rip), %rdi      # 0x9928
leaq 0x33db(%rip), %rsi      # 0x6495
movl -0x30(%rbp), %edx
movapd %xmm1, %xmm0
movb $0x1, %al
movsd %xmm1, -0x80(%rbp)
callq 0x2170
movsd -0x80(%rbp), %xmm1
movl %r14d, %edi
xorpd %xmm0, %xmm0
ucomisd -0x90(%rbp), %xmm0
leaq 0x6078(%rip), %rdx      # 0x9160
movsd -0x40(%rbp), %xmm5
movsd -0x70(%rbp), %xmm2
ja 0x3106
movsd -0x90(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x2c78
cmpb $0x1, 0x6817(%rip)      # 0x9924
movl -0x30(%rbp), %ebx
movl %ebx, %eax
movl %edi, -0x34(%rbp)
movapd %xmm2, %xmm5
jne 0x2c65
movq 0x6802(%rip), %rdi      # 0x9928
leaq 0x338e(%rip), %rsi      # 0x64bb
movl %ebx, %edx
movapd %xmm1, %xmm0
movsd %xmm1, -0x80(%rbp)
movsd -0x90(%rbp), %xmm1
movb $0x2, %al
callq 0x2170
movsd -0x80(%rbp), %xmm1
movl %r14d, %edi
leaq 0x600a(%rip), %rdx      # 0x9160
movl %ebx, %eax
movl %r14d, -0x34(%rbp)
movsd -0x70(%rbp), %xmm5
jmp 0x2c65
testb $0x1, %al
je 0x3187
movq 0x67b7(%rip), %rdi      # 0x9928
leaq 0x336f(%rip), %rsi      # 0x64e7
movl -0x38(%rbp), %edx
xorl %eax, %eax
callq 0x2170
movsd -0x40(%rbp), %xmm5
movl -0x38(%rbp), %edx
testl %edx, %edx
je 0x31bd
ucomisd 0x2eb2(%rip), %xmm5     # 0x6048
jne 0x3216
jp 0x3216
cmpb $0x1, 0x6783(%rip)      # 0x9924
jne 0x31e3
movq 0x677e(%rip), %rcx      # 0x9928
movl $0x20, %esi
movl $0x1, %edx
leaq 0x324c(%rip), %rdi      # 0x6407
jmp 0x31de
cmpb $0x1, 0x6760(%rip)      # 0x9924
jne 0x31e3
movq 0x675b(%rip), %rcx      # 0x9928
movl $0x1f, %esi
movl $0x1, %edx
leaq 0x3209(%rip), %rdi      # 0x63e7
callq 0x2240
movq -0x78(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x3716
movl 0x676a(%rip), %ecx      # 0x9964
movl 0x676c(%rip), %eax      # 0x996c
leal (%rax,%rcx), %esi
movl 0x6757(%rip), %edx      # 0x9960
cmpl %edx, %esi
jne 0x2bd2
jmp 0x2acc
movl 0x66dc(%rip), %ecx      # 0x98f8
testl %ecx, %ecx
je 0x3253
movl -0x34(%rbp), %edi
cmpl %edi, %ecx
sete %dl
movl 0x6f52(%rip), %eax      # 0xa180
testl %eax, %eax
setg %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x326b
decl %eax
movsd 0x2dc9(%rip), %xmm5     # 0x6010
leaq 0x3957(%rip), %rsi      # 0x6ba5
movl -0x38(%rbp), %edx
jmp 0x328d
movl -0x34(%rbp), %eax
movl %eax, 0x669c(%rip)      # 0x98f8
movl 0x669a(%rip), %eax      # 0x98fc
leaq 0x393c(%rip), %rsi      # 0x6ba5
jmp 0x328d
cmpl %edi, %ecx
leaq 0x3931(%rip), %rsi      # 0x6ba5
movl -0x38(%rbp), %edx
je 0x3293
movl %edi, 0x6679(%rip)      # 0x98f8
movl 0x6677(%rip), %eax      # 0x98fc
movsd 0x2d83(%rip), %xmm5     # 0x6010
movl %eax, 0x6eed(%rip)      # 0xa180
xorps %xmm1, %xmm1
cvtsi2sd %edx, %xmm1
movapd %xmm1, %xmm0
movsd %xmm5, -0x40(%rbp)
divsd %xmm5, %xmm0
addsd 0x2d79(%rip), %xmm0     # 0x6028
cvttsd2si %xmm0, %r12d
cmpb $0x1, 0x6669(%rip)      # 0x9924
jne 0x3307
movq 0x6664(%rip), %rdi      # 0x9928
movslq -0x34(%rbp), %rax
leaq 0x61f1(%rip), %rcx      # 0x94c0
movq (%rcx,%rax,8), %rdx
leaq 0x32d3(%rip), %rsi      # 0x65ad
movl -0x38(%rbp), %ecx
movl %r12d, %r8d
movapd %xmm0, -0x70(%rbp)
movsd -0x40(%rbp), %xmm0
movb $0x1, %al
movsd %xmm1, -0x30(%rbp)
callq 0x2170
movapd -0x70(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
leaq 0x389e(%rip), %rsi      # 0x6ba5
cvttpd2dq %xmm0, %xmm0
cvtdq2pd %xmm0, %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
movq -0x58(%rbp), %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2170
incl 0x6639(%rip)            # 0x9964
cmpl $0x2, %r12d
jl 0x33de
leal -0x1(%r12), %ebx
movsd -0x30(%rbp), %xmm1
movq -0x58(%rbp), %r14
leaq 0x385b(%rip), %r13      # 0x6ba5
movapd %xmm1, -0x70(%rbp)
cvttsd2si %xmm1, %ecx
movq 0x65fe(%rip), %rsi      # 0x9958
movl 0x6618(%rip), %edi      # 0x9978
leal (%rdi,%rcx), %eax
movl 0x65de(%rip), %r8d      # 0x9948
cltd
idivl %r8d
movslq %edx, %rax
movl (%rsi,%rax,4), %r9d
leal (%rdi,%rcx), %eax
incl %eax
cltd
idivl %r8d
movslq %edx, %rax
xorps %xmm0, %xmm0
cvtsi2sd %r9d, %xmm0
cvttpd2dq %xmm1, %xmm1
movl (%rsi,%rax,4), %eax
cvtdq2pd %xmm1, %xmm1
movapd -0x70(%rbp), %xmm2
subsd %xmm1, %xmm2
subl %r9d, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
cvttsd2si %xmm1, %edx
movq %r14, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x2170
movapd -0x70(%rbp), %xmm1
movsd -0x30(%rbp), %xmm0
incl 0x6594(%rip)            # 0x9964
addsd %xmm0, %xmm1
decl %ebx
jne 0x334a
jmp 0x33e3
movsd -0x30(%rbp), %xmm1
movsd -0x40(%rbp), %xmm0
ucomisd 0x2c20(%rip), %xmm0     # 0x6010
movl -0x38(%rbp), %ecx
jne 0x33f7
jnp 0x33fd
addl %ecx, 0x656b(%rip)      # 0x9968
movl %ecx, %eax
subl %r12d, %eax
addl %eax, 0x6564(%rip)      # 0x996c
addsd 0x2c18(%rip), %xmm1     # 0x6028
cvttsd2si %xmm1, %eax
cmpl %eax, %ecx
movq -0x50(%rbp), %r13
jne 0x3528
testl %ecx, %ecx
jle 0x34ad
movl %ecx, %r12d
movl 0x6547(%rip), %eax      # 0x9978
incl %eax
cltd
idivl 0x650e(%rip)            # 0x9948
movl %edx, 0x6538(%rip)      # 0x9978
decl 0x652a(%rip)            # 0x9970
movl 0x8(%r13), %edx
movq -0x78(%rbp), %rbx
movq %rbx, %rdi
movq -0x58(%rbp), %rsi
leaq 0x18c9(%rip), %rcx      # 0x4d25
callq 0x44f4
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2190
testl %eax, %eax
jne 0x349e
incl 0x64ea(%rip)            # 0x9960
incl 0x64f4(%rip)            # 0x9970
movq 0x64d5(%rip), %rax      # 0x9958
movslq 0x64ea(%rip), %rcx      # 0x9974
movl %r14d, (%rax,%rcx,4)
leal 0x1(%rcx), %eax
cltd
idivl 0x64b0(%rip)            # 0x9948
movl %edx, 0x64d6(%rip)      # 0x9974
movl %r12d, %ecx
decl %ecx
movq -0x50(%rbp), %r13
jne 0x3428
movq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x2190
testl %eax, %eax
movq -0x58(%rbp), %r12
je 0x31f4
movl 0x64a5(%rip), %ebx      # 0x9970
testl %ebx, %ebx
jle 0x31f4
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x3824
decl %ebx
jne 0x34d3
jmp 0x31f4
leaq 0x2eda(%rip), %rdi      # 0x63cb
leaq 0x2e4d(%rip), %rsi      # 0x6345
leaq 0x2ea4(%rip), %rcx      # 0x63a3
movl $0x14c, %edx            # imm = 0x14C
callq 0x20f0
leaq 0x2e57(%rip), %rdi      # 0x6367
leaq 0x2e2e(%rip), %rsi      # 0x6345
leaq 0x2e85(%rip), %rcx      # 0x63a3
movl $0x14b, %edx            # imm = 0x14B
callq 0x20f0
leaq 0x30be(%rip), %rdi      # 0x65ed
leaq 0x2e0f(%rip), %rsi      # 0x6345
leaq 0x30c9(%rip), %rcx      # 0x6606
movl $0x2aa, %edx            # imm = 0x2AA
callq 0x20f0
movq 0x5c02(%rip), %rsi      # 0x9150
movq 0x5c03(%rip), %rdx      # 0x9158
leaq 0x30f2(%rip), %rdi      # 0x664e
xorl %eax, %eax
callq 0x20d0
jmp 0x36b6
leaq 0x3138(%rip), %rdi      # 0x66a7
callq 0x2080
leaq 0x313f(%rip), %rdi      # 0x66ba
callq 0x2080
leaq 0x315f(%rip), %rdi      # 0x66e6
callq 0x2080
leaq 0x3168(%rip), %rdi      # 0x66fb
callq 0x2080
leaq 0x3179(%rip), %rdi      # 0x6718
callq 0x2080
leaq 0x31af(%rip), %rdi      # 0x675a
callq 0x2080
movsd 0x6338(%rip), %xmm0     # 0x98f0
leaq 0x309e(%rip), %rbx      # 0x665d
movq %rbx, %rdi
movb $0x1, %al
callq 0x20d0
leaq 0x31cb(%rip), %rdi      # 0x679b
callq 0x2080
leaq 0x31d9(%rip), %rdi      # 0x67b5
callq 0x2080
leaq 0x3211(%rip), %rdi      # 0x67f9
callq 0x2080
leaq 0x3238(%rip), %rdi      # 0x682c
callq 0x2080
movl 0x62fd(%rip), %esi      # 0x98fc
leaq 0x306f(%rip), %r14      # 0x6675
movq %r14, %rdi
xorl %eax, %eax
callq 0x20d0
leaq 0x3252(%rip), %rdi      # 0x6869
callq 0x2080
leaq 0x3276(%rip), %rdi      # 0x6899
callq 0x2080
leaq 0x32a7(%rip), %rdi      # 0x68d6
callq 0x2080
leaq 0x32db(%rip), %rdi      # 0x6916
callq 0x2080
movl 0x629a(%rip), %esi      # 0x98e0
movq %r14, %rdi
xorl %eax, %eax
callq 0x20d0
leaq 0x32fc(%rip), %rdi      # 0x6953
callq 0x2080
leaq 0x331d(%rip), %rdi      # 0x6980
callq 0x2080
leaq 0x334a(%rip), %rdi      # 0x69b9
callq 0x2080
leaq 0x3371(%rip), %rdi      # 0x69ec
callq 0x2080
leaq 0x3398(%rip), %rdi      # 0x6a1f
callq 0x2080
movsd 0x6254(%rip), %xmm0     # 0x98e8
movq %rbx, %rdi
movb $0x1, %al
callq 0x20d0
leaq 0x33b7(%rip), %rdi      # 0x6a5c
callq 0x2080
leaq 0x33cf(%rip), %rdi      # 0x6a80
callq 0x2080
xorl %edi, %edi
callq 0x2230
leaq 0x2ca3(%rip), %rdi      # 0x6367
leaq 0x2c7a(%rip), %rsi      # 0x6345
leaq 0x2cd1(%rip), %rcx      # 0x63a3
movl $0x13c, %edx            # imm = 0x13C
callq 0x20f0
leaq 0x2c4f(%rip), %rdi      # 0x6332
leaq 0x2c5b(%rip), %rsi      # 0x6345
leaq 0x2c5f(%rip), %rcx      # 0x6350
movl $0x11a, %edx            # imm = 0x11A
callq 0x20f0
movq (%rbx), %rsi
leaq 0x2b3a(%rip), %rdi      # 0x623f
xorl %eax, %eax
callq 0x20d0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2230