// File: /workspace/github_cpp_makefile_star2_O2/DoubleString[P]RtConverter/src/Rtklib/rtcm3e.cpp
// Function: bamboo::encode_msm_head(int, bamboo::rtcm_t*, int, int, int*, int*, double*, double*, unsigned char*, double*, double*, double*, double*, unsigned char*, float*)
static int encode_msm_head(int type, rtcm_t *rtcm, int sys, int sync, int *nsat,
                           int *ncell, double *rrng, double *rrate,
                           unsigned char *info, double *psrng, double *phrng,
                           double *rate, double *lock, unsigned char *half,
                           float *cnr)
{
    double tow;
    unsigned char sat_ind[64]={0},sig_ind[32]={0},cell_ind[32*64]={0};
    unsigned int dow,epoch;
    int i=24,j,nsig=0;
    
    switch (sys) {
        case SYS_GPS: type+=1070; break;
        case SYS_GLO: type+=1080; break;
        case SYS_GAL: type+=1090; break;
        case SYS_QZS: type+=1110; break;
        case SYS_SBS: type+=1100; break;
        case SYS_CMP: type+=1120; break;
        default: return 0;
    }
    /* generate msm satellite, signal and cell index */
    gen_msm_index(rtcm,sys,nsat,&nsig,ncell,sat_ind,sig_ind,cell_ind);
    
    if (sys==SYS_GLO) {
        /* glonass time (dow + tod-ms) */
        tow=time2gpst(timeadd(gpst2utc(rtcm->time),10800.0),NULL);
        dow=(unsigned int)(tow/86400.0);
        epoch=(dow<<27)+ROUND_U(fmod(tow,86400.0)*1E3);
    }
    else if (sys==SYS_CMP) {
        /* beidou time (tow-ms) */
        epoch=ROUND_U(time2gpst(gpst2bdt(rtcm->time),NULL)*1E3);
    }
    else {
        /* gps, qzs and galileo time (tow-ms) */
        epoch=ROUND_U(time2gpst(rtcm->time,NULL)*1E3);
    }
    /* encode msm header (ref [15] table 3.5-78) */
    setbitu(rtcm->buff,i,12,type       ); i+=12; /* message number */
    setbitu(rtcm->buff,i,12,rtcm->staid); i+=12; /* reference station id */
    setbitu(rtcm->buff,i,30,epoch      ); i+=30; /* epoch time */
    setbitu(rtcm->buff,i, 1,sync       ); i+= 1; /* multiple message bit */
    setbitu(rtcm->buff,i, 3,rtcm->seqno); i+= 3; /* issue of data station */
    setbitu(rtcm->buff,i, 7,0          ); i+= 7; /* reserved */
    setbitu(rtcm->buff,i, 2,0          ); i+= 2; /* clock streering indicator */
    setbitu(rtcm->buff,i, 2,0          ); i+= 2; /* external clock indicator */
    setbitu(rtcm->buff,i, 1,0          ); i+= 1; /* smoothing indicator */
    setbitu(rtcm->buff,i, 3,0          ); i+= 3; /* smoothing interval */
    
    /* satellite mask */
    for (j=0;j<64;j++) {
        setbitu(rtcm->buff,i,1,sat_ind[j]?1:0); i+=1;
    }
    /* signal mask */
    for (j=0;j<32;j++) {
        setbitu(rtcm->buff,i,1,sig_ind[j]?1:0); i+=1;
    }
    /* cell mask */
    for (j=0;j<*nsat*nsig&&j<64;j++) {
        setbitu(rtcm->buff,i,1,cell_ind[j]?1:0); i+=1;
    }
    /* generate msm satellite data fields */
    gen_msm_sat(rtcm,sys,*nsat,sat_ind,rrng,rrate,info);
    
    /* generate msm signal data fields */
    gen_msm_sig(rtcm,sys,*nsat,nsig,*ncell,sat_ind,sig_ind,cell_ind,rrng,rrate,
                psrng,phrng,rate,lock,half,cnr);
    
    return i;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x908, %rsp            # imm = 0x908
movq %r9, -0x40(%rbp)
movq %r8, %rbx
movl %ecx, %r14d
movl %edx, %r13d
movq %rsi, -0x30(%rbp)
movl %edi, %r15d
xorpd %xmm0, %xmm0
movapd %xmm0, -0x100(%rbp)
movapd %xmm0, -0x110(%rbp)
movapd %xmm0, -0x120(%rbp)
movapd %xmm0, -0x130(%rbp)
movapd %xmm0, -0xc0(%rbp)
movapd %xmm0, -0xd0(%rbp)
leaq -0x930(%rbp), %rdi
movq $0x0, -0x98(%rbp)
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x8390
leal -0x1(%r13), %eax
cmpl $0x7, %eax
ja 0x43b25
leaq 0x2255f(%rip), %rcx     # 0x6606c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq -0x30(%rbp), %rdx
movl %r14d, -0x68(%rbp)
jmpq *%rax
movl $0x42e, %ecx            # imm = 0x42E
jmp 0x43b66
cmpl $0x10, %r13d
je 0x43b59
cmpl $0x20, %r13d
movq -0x30(%rbp), %rdx
jne 0x444d5
movl %r14d, -0x68(%rbp)
movl $0x460, %ecx            # imm = 0x460
jmp 0x43b66
movl $0x442, %ecx            # imm = 0x442
jmp 0x43b66
movl $0x44c, %ecx            # imm = 0x44C
jmp 0x43b66
movl $0x438, %ecx            # imm = 0x438
jmp 0x43b66
movl %r14d, -0x68(%rbp)
movl $0x456, %ecx            # imm = 0x456
movq -0x30(%rbp), %rdx
movq -0x40(%rbp), %rax
andl $0x0, (%rax)
addl %r15d, %ecx
movl %ecx, -0x70(%rbp)
movq %rbx, -0x48(%rbp)
andl $0x0, (%rbx)
pushq $0x18
popq %rbx
xorl %ecx, %ecx
leaq -0x34(%rbp), %r15
movb $0x1, %r12b
movq %r13, -0x50(%rbp)
movslq 0x30(%rdx), %rax
cmpq %rax, %rcx
jge 0x43c08
movq 0x38(%rdx), %rax
movq %rcx, -0x60(%rbp)
imulq $0x60, %rcx, %rcx
movzbl 0x10(%rax,%rcx), %esi
movl %r13d, %edi
callq 0x44673
movq -0x30(%rbp), %rdx
testl %eax, %eax
je 0x43bf7
movslq %eax, %r13
xorl %r14d, %r14d
cmpq $0x3, %r14
je 0x43bf7
movq 0x38(%rdx), %rax
addq %rbx, %rax
movzbl (%r14,%rax), %esi
movq -0x50(%rbp), %rdi
movq %r15, %rdx
callq 0x446ab
testl %eax, %eax
je 0x43bee
cltq
movb %r12b, -0xd1(%rbp,%rax)
movb %r12b, -0x131(%rbp,%r13)
incq %r14
movq -0x30(%rbp), %rdx
jmp 0x43bba
movq -0x60(%rbp), %rcx
incq %rcx
addq $0x60, %rbx
movq -0x50(%rbp), %r13
jmp 0x43b8a
xorl %eax, %eax
movq -0x48(%rbp), %r12
cmpq $0x40, %rax
je 0x43c34
cmpb $0x0, -0x130(%rbp,%rax)
je 0x43c2f
movl (%r12), %ecx
incl %ecx
movl %ecx, (%r12)
movb %cl, -0x130(%rbp,%rax)
incq %rax
jmp 0x43c0e
movq $0x0, -0x78(%rbp)
xorl %eax, %eax
cmpq $0x20, %rax
je 0x43c64
cmpb $0x0, -0xd0(%rbp,%rax)
je 0x43c5f
movq -0x78(%rbp), %rcx
incl %ecx
movq %rcx, -0x78(%rbp)
movb %cl, -0xd0(%rbp,%rax)
incq %rax
jmp 0x43c3e
pushq $0x18
popq %rbx
xorl %r14d, %r14d
leaq -0x34(%rbp), %r15
movslq -0x78(%rbp), %rax
movq %rax, -0x60(%rbp)
movslq 0x30(%rdx), %rax
cmpq %rax, %r14
jge 0x43d0b
movq 0x38(%rdx), %rax
imulq $0x60, %r14, %rcx
movzbl 0x10(%rax,%rcx), %esi
movl %r13d, %edi
callq 0x44673
movq -0x30(%rbp), %rdx
testl %eax, %eax
je 0x43cf7
movslq %eax, %r13
xorl %r12d, %r12d
cmpq $0x3, %r12
je 0x43cf7
movq 0x38(%rdx), %rax
addq %rbx, %rax
movzbl (%r12,%rax), %esi
movq -0x50(%rbp), %rdi
movq %r15, %rdx
callq 0x446ab
testl %eax, %eax
je 0x43cee
cltq
movzbl -0xd1(%rbp,%rax), %eax
movzbl -0x131(%rbp,%r13), %ecx
decq %rcx
imulq -0x60(%rbp), %rcx
addq %rax, %rcx
movb $0x1, -0x931(%rbp,%rcx)
incq %r12
movq -0x30(%rbp), %rdx
jmp 0x43ca6
incq %r14
addq $0x60, %rbx
movq -0x50(%rbp), %r13
movq -0x48(%rbp), %r12
jmp 0x43c76
xorl %eax, %eax
movq 0x30(%rbp), %r14
movq -0x40(%rbp), %rsi
movslq (%r12), %rcx
imulq -0x60(%rbp), %rcx
cmpq %rcx, %rax
jge 0x43d48
cmpb $0x0, -0x930(%rbp,%rax)
je 0x43d43
movq -0x40(%rbp), %rcx
movl (%rcx), %ecx
cmpl $0x3f, %ecx
jg 0x43d43
incl %ecx
movl %ecx, (%rsi)
movb %cl, -0x930(%rbp,%rax)
incq %rax
jmp 0x43d15
movq 0x10(%rdx), %rdi
movsd 0x18(%rdx), %xmm0
cmpl $0x20, %r13d
je 0x43db8
cmpl $0x4, %r13d
jne 0x43dc0
callq 0x47732
movsd 0x1cd36(%rip), %xmm1    # 0x60aa0
movq %rax, %rdi
callq 0x472ee
movq %rax, %rdi
xorl %esi, %esi
callq 0x470f1
movsd 0x1cb3c(%rip), %xmm1    # 0x608c0
movapd %xmm0, %xmm2
divsd %xmm1, %xmm2
cvttsd2si %xmm2, %rbx
shll $0x1b, %ebx
callq 0x8840
mulsd 0x1d6c7(%rip), %xmm0    # 0x61468
addsd 0x1decf(%rip), %xmm0    # 0x61c78
callq 0x8ac0
cvttsd2si %xmm0, %r13
addl %ebx, %r13d
jmp 0x43de1
callq 0x47871
movq %rax, %rdi
xorl %esi, %esi
callq 0x470f1
mulsd 0x1d699(%rip), %xmm0    # 0x61468
addsd 0x1dea1(%rip), %xmm0    # 0x61c78
callq 0x8ac0
cvttsd2si %xmm0, %r13
movq -0x30(%rbp), %rbx
leaq 0x9f0c4(%rbx), %r15
pushq $0x18
popq %rsi
pushq $0xc
popq %rdx
movq %r15, %rdi
movl -0x70(%rbp), %ecx
callq 0x45a69
movl (%rbx), %ecx
pushq $0x24
popq %rsi
movq %r15, %rdi
pushq $0xc
popq %rdx
callq 0x45a69
pushq $0x30
popq %rsi
pushq $0x1e
popq %rdx
movq %r15, %rdi
movl %r13d, %ecx
callq 0x45a69
pushq $0x4e
popq %rsi
pushq $0x1
popq %r13
movq %r15, %rdi
movl %r13d, %edx
movl -0x68(%rbp), %ecx
callq 0x45a69
movl 0x8(%rbx), %ecx
pushq $0x4f
popq %rsi
pushq $0x3
popq %rdx
movq %r15, %rdi
callq 0x45a69
pushq $0x52
popq %rsi
pushq $0x7
popq %rdx
xorl %ebx, %ebx
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x45a69
pushq $0x59
popq %rsi
pushq $0x2
popq %rdx
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x45a69
pushq $0x5b
popq %rsi
movq %r15, %rdi
pushq $0x2
popq %rdx
xorl %ecx, %ecx
callq 0x45a69
pushq $0x5d
popq %rsi
movq %r15, %rdi
movl %r13d, %edx
xorl %ecx, %ecx
callq 0x45a69
pushq $0x5e
popq %rsi
movq %r15, %rdi
pushq $0x3
popq %rdx
xorl %ecx, %ecx
callq 0x45a69
cmpq $0x40, %rbx
je 0x43ebd
leaq 0x61(%rbx), %rsi
xorl %ecx, %ecx
cmpb $0x0, -0x130(%rbp,%rbx)
setne %cl
movq %r15, %rdi
movl %r13d, %edx
callq 0x45a69
incq %rbx
jmp 0x43e96
xorl %ebx, %ebx
pushq $0x1
popq %r13
cmpq $0x20, %rbx
je 0x43eed
leaq 0xa1(%rbx), %rsi
xorl %ecx, %ecx
cmpb $0x0, -0xd0(%rbp,%rbx)
setne %cl
movq %r15, %rdi
movl %r13d, %edx
callq 0x45a69
incq %rbx
jmp 0x43ec3
xorl %ebx, %ebx
pushq $0x1
popq %r13
leaq 0xc1(%rbx), %rsi
cmpq $0x3f, %rbx
ja 0x43f2b
movslq (%r12), %rax
imulq -0x60(%rbp), %rax
cmpq %rax, %rbx
jge 0x43f2b
xorl %ecx, %ecx
cmpb $0x0, -0x930(%rbp,%rbx)
setne %cl
movq %r15, %rdi
movl %r13d, %edx
callq 0x45a69
incq %rbx
jmp 0x43ef3
movq %rsi, -0x98(%rbp)
xorl %eax, %eax
movq -0x50(%rbp), %r13
movq -0x30(%rbp), %rsi
cmpq $0x40, %rax
je 0x43f59
movq 0x18(%rbp), %rcx
andq $0x0, (%rcx,%rax,8)
movq 0x10(%rbp), %rcx
andq $0x0, (%rcx,%rax,8)
incq %rax
jmp 0x43f3c
leaq 0x40(%rsi), %rax
movq %rax, -0x68(%rbp)
movq $0x0, -0x90(%rbp)
xorl %ecx, %ecx
movslq 0x30(%rsi), %rax
cmpq %rax, %rcx
jge 0x44132
movq 0x38(%rsi), %r14
movq %rcx, -0x80(%rbp)
imulq $0x60, %rcx, %r15
movzbl 0x10(%r14,%r15), %esi
movl %r13d, %edi
callq 0x44673
testl %eax, %eax
je 0x44116
movl %eax, %r12d
addq %r14, %r15
movzbl 0x10(%r15), %edi
movq -0x30(%rbp), %rsi
callq 0x433c8
movl %eax, %ecx
testl %eax, %eax
pushq $0xf
popq %rax
cmovsl %eax, %ecx
cmpl $0x4, %r13d
movslq %r12d, %r12
movl $0x0, %eax
cmovnel %eax, %ecx
movl %ecx, -0x70(%rbp)
addq -0x90(%rbp), %r14
pushq $0x14
popq %rbx
cmpq $0x17, %rbx
je 0x44116
movzbl 0x4(%r14,%rbx), %esi
movl %r13d, %edi
leaq -0x34(%rbp), %rdx
callq 0x446ab
testl %eax, %eax
je 0x4410a
movzbl -0x131(%rbp,%r12), %r13d
movzbl 0x10(%r15), %edi
movl -0x34(%rbp), %esi
decl %esi
movq -0x68(%rbp), %rdx
callq 0x49f8a
movsd -0x68(%r14,%rbx,8), %xmm1
movsd %xmm1, -0x60(%rbp)
movss (%r14,%rbx,4), %xmm1
movss %xmm1, -0x48(%rbp)
cvtss2sd %xmm1, %xmm1
mulsd %xmm0, %xmm1
movsd 0x1dc3a(%rip), %xmm0    # 0x61c78
subsd %xmm1, %xmm0
callq 0x8ac0
movsd -0x60(%rbp), %xmm3
movapd %xmm0, %xmm2
movq 0x10(%rbp), %rax
movsd -0x8(%rax,%r13,8), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x440c5
jp 0x440c5
ucomisd %xmm1, %xmm3
jne 0x4406f
jnp 0x440c5
movsd 0x20681(%rip), %xmm0    # 0x646f8
divsd %xmm0, %xmm3
mulsd 0x21bc5(%rip), %xmm3    # 0x65c48
addsd 0x1dbed(%rip), %xmm3    # 0x61c78
movapd %xmm3, %xmm0
movapd %xmm2, -0x60(%rbp)
callq 0x8ac0
movapd -0x60(%rbp), %xmm2
xorpd %xmm1, %xmm1
cvttpd2dq %xmm0, %xmm0
cvtdq2pd %xmm0, %xmm0
mulsd 0x20646(%rip), %xmm0    # 0x646f8
mulsd 0x2066e(%rip), %xmm0    # 0x64728
movq 0x10(%rbp), %rax
movsd %xmm0, -0x8(%rax,%r13,8)
movq 0x18(%rbp), %rax
movsd -0x8(%rax,%r13,8), %xmm0
ucomisd %xmm1, %xmm0
jne 0x440f7
jp 0x440f7
movss -0x48(%rbp), %xmm0
ucomiss 0x22188(%rip), %xmm0    # 0x6626c
jne 0x440e8
jnp 0x440f7
cvttpd2dq %xmm2, %xmm0
cvtdq2pd %xmm0, %xmm0
movsd %xmm0, -0x8(%rax,%r13,8)
cmpq $0x0, 0x20(%rbp)
je 0x4410a
movq 0x20(%rbp), %rax
movl -0x70(%rbp), %ecx
movb %cl, -0x1(%rax,%r13)
incq %rbx
movq -0x50(%rbp), %r13
jmp 0x43fd7
movq -0x80(%rbp), %rcx
incq %rcx
addq $0x60, -0x90(%rbp)
movq -0x30(%rbp), %rsi
movq 0x30(%rbp), %r14
jmp 0x43f6e
movq -0x40(%rbp), %rcx
movl (%rcx), %ecx
xorl %edx, %edx
testl %ecx, %ecx
cmovlel %edx, %ecx
cmpq %rdx, %rcx
je 0x4416f
movq 0x28(%rbp), %rdi
testq %rdi, %rdi
je 0x44152
andq $0x0, (%rdi,%rdx,8)
testq %r14, %r14
je 0x4415c
andq $0x0, (%r14,%rdx,8)
movq 0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x4416a
andq $0x0, (%rdi,%rdx,8)
incq %rdx
jmp 0x4413f
leaq 0x9bdc0(%rsi), %rcx
movq %rcx, -0x40(%rbp)
pushq $0x12
popq %rcx
movq %rcx, -0xa8(%rbp)
movq $0x0, -0xa0(%rbp)
xorl %ecx, %ecx
cltq
cmpq %rax, %rcx
jge 0x444d5
movq 0x38(%rsi), %rax
movq %rcx, -0xd8(%rbp)
imulq $0x60, %rcx, %rcx
movq %rax, %rbx
movq %rcx, -0x60(%rbp)
movzbl 0x10(%rax,%rcx), %esi
movl %r13d, %edi
callq 0x44673
testl %eax, %eax
je 0x444af
addq %rbx, -0x60(%rbp)
cltq
movq %rax, -0x70(%rbp)
movq -0xa8(%rbp), %rax
leaq (%rbx,%rax), %r14
addq -0xa0(%rbp), %rbx
movq %rbx, -0xe0(%rbp)
xorl %r12d, %r12d
cmpq $0xc, %r12
je 0x444af
movzbl 0x6(%r14), %esi
movl %r13d, %edi
leaq -0x34(%rbp), %rdx
callq 0x446ab
testl %eax, %eax
je 0x4449f
movq -0x70(%rbp), %rcx
movzbl -0x131(%rbp,%rcx), %r15d
leal -0x1(%r15), %ebx
cltq
movzbl -0xd1(%rbp,%rax), %eax
movl %ebx, %ecx
imull -0x78(%rbp), %ecx
movslq %ecx, %rcx
addq %rax, %rcx
movzbl -0x931(%rbp,%rcx), %r13d
cmpq $0x3f, %r13
ja 0x4449f
movq -0x60(%rbp), %rax
movzbl 0x10(%rax), %edi
movl -0x34(%rbp), %esi
decl %esi
movq -0x68(%rbp), %rdx
callq 0x49f8a
movapd %xmm0, %xmm4
movq -0xe0(%rbp), %rsi
movsd 0x38(%rsi,%r12,2), %xmm0
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm0
xorpd %xmm1, %xmm1
jne 0x44282
jnp 0x44291
movq 0x10(%rbp), %rax
subsd -0x8(%rax,%r15,8), %xmm0
movapd %xmm0, %xmm1
ucomisd %xmm4, %xmm3
movslq %ebx, %rax
movq -0x40(%rbp), %rdx
jae 0x442c2
movsd 0x20(%rsi,%r12,2), %xmm0
ucomisd 0x1c64b(%rip), %xmm0    # 0x608f8
jne 0x442b1
jnp 0x442c2
mulsd %xmm4, %xmm0
movq 0x10(%rbp), %rcx
subsd (%rcx,%rax,8), %xmm0
movapd %xmm0, %xmm3
xorpd %xmm2, %xmm2
xorpd %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
ucomisd %xmm4, %xmm2
movsd %xmm1, -0x80(%rbp)
jae 0x44309
movss 0x50(%rsi,%r12), %xmm0
ucomiss 0x21f84(%rip), %xmm0    # 0x6626c
jne 0x442ec
jnp 0x44309
xorps 0x21f7d(%rip), %xmm0    # 0x66270
cvtss2sd %xmm0, %xmm0
mulsd %xmm4, %xmm0
movq 0x18(%rbp), %rcx
subsd (%rcx,%rax,8), %xmm0
movsd %xmm0, -0x48(%rbp)
movq -0x60(%rbp), %rax
movzbl 0x10(%rax), %ebx
testb $0x1, 0x3(%r14)
jne 0x44341
imulq $0x18, %rbx, %rax
addq %rdx, %rax
movapd %xmm3, %xmm1
subsd (%rax,%r12,2), %xmm1
movapd %xmm1, %xmm0
andpd 0x1b5fb(%rip), %xmm0    # 0x5f930
movb $0x1, %al
ucomisd 0x21901(%rip), %xmm0    # 0x65c40
jbe 0x44395
movapd %xmm3, %xmm0
divsd %xmm4, %xmm0
addsd 0x1d927(%rip), %xmm0    # 0x61c78
movsd %xmm3, -0x90(%rbp)
movsd %xmm4, -0xe8(%rbp)
callq 0x8ac0
movq -0x40(%rbp), %rdx
cvttpd2dq %xmm0, %xmm0
cvtdq2pd %xmm0, %xmm0
mulsd -0xe8(%rbp), %xmm0
imulq $0x18, %rbx, %rax
addq %rdx, %rax
movsd %xmm0, (%rax,%r12,2)
movsd -0x90(%rbp), %xmm1
subsd %xmm0, %xmm1
xorl %eax, %eax
movapd %xmm1, -0x90(%rbp)
movq -0x60(%rbp), %rcx
movq (%rcx), %rdi
movsd 0x8(%rcx), %xmm0
imulq $0x30, %rbx, %rcx
addq %rdx, %rcx
testb %al, %al
je 0x443cd
movq 0x15b8(%rcx,%r12,4), %rsi
testq %rsi, %rsi
je 0x443cd
movsd 0x15c0(%rcx,%r12,4), %xmm1
jmp 0x443e6
movq %rdi, 0x15b8(%rcx,%r12,4)
movsd %xmm0, 0x15c0(%rcx,%r12,4)
movapd %xmm0, %xmm1
movq %rdi, %rsi
callq 0x47322
movq 0x28(%rbp), %rax
testq %rax, %rax
movsd -0x80(%rbp), %xmm1
je 0x4440c
ucomisd 0x1c4f7(%rip), %xmm1    # 0x608f8
jne 0x44405
jnp 0x4440c
movsd %xmm1, -0x8(%rax,%r13,8)
cmpq $0x0, 0x30(%rbp)
movq 0x48(%rbp), %rcx
movq 0x40(%rbp), %rax
movq 0x38(%rbp), %rdx
movapd -0x90(%rbp), %xmm1
je 0x4443e
ucomisd 0x1c4c9(%rip), %xmm1    # 0x608f8
jne 0x44433
jnp 0x4443e
movq 0x30(%rbp), %rsi
movsd %xmm1, -0x8(%rsi,%r13,8)
testq %rdx, %rdx
movsd -0x48(%rbp), %xmm1
je 0x4445b
ucomisd 0x1c4a8(%rip), %xmm1    # 0x608f8
jne 0x44454
jnp 0x4445b
movsd %xmm1, -0x8(%rdx,%r13,8)
testq %rax, %rax
je 0x44467
movsd %xmm0, -0x8(%rax,%r13,8)
testq %rcx, %rcx
je 0x44479
movb 0x3(%r14), %al
shrb %al
andb $0x1, %al
movb %al, -0x1(%rcx,%r13)
cmpq $0x0, 0x50(%rbp)
je 0x4449f
movzbl (%r14), %eax
cvtsi2sd %eax, %xmm0
mulsd 0x1c570(%rip), %xmm0    # 0x60a00
cvtsd2ss %xmm0, %xmm0
movq 0x50(%rbp), %rax
movss %xmm0, -0x4(%rax,%r13,4)
addq $0x4, %r12
incq %r14
movq -0x50(%rbp), %r13
jmp 0x441ed
movq -0xd8(%rbp), %rcx
incq %rcx
movq -0x30(%rbp), %rsi
movl 0x30(%rsi), %eax
addq $0x60, -0xa8(%rbp)
addq $0x60, -0xa0(%rbp)
jmp 0x44191
movq -0x98(%rbp), %rax
addq $0x908, %rsp            # imm = 0x908
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq