// File: /workspace/github_cpp_makefile_star2_O2/DoubleString[P]RtConverter/src/Rtklib/rcvraw.cpp
// Function: bamboo::decode_frame(unsigned char const*, bamboo::eph_t*, bamboo::alm_t*, double*, double*, int*)
extern int decode_frame(const unsigned char *buff, eph_t *eph, alm_t *alm,
                        double *ion, double *utc, int *leaps)
{
    int id=getbitu(buff,43,3); /* subframe id */
    
    trace(3,"decodefrm: id=%d\n",id);
    
    switch (id) {
        case 1: return decode_subfrm1(buff,eph);
        case 2: return decode_subfrm2(buff,eph);
        case 3: return decode_subfrm3(buff,eph);
        case 4: return decode_subfrm4(buff,alm,ion,utc,leaps);
        case 5: return decode_subfrm5(buff,alm,ion,utc,leaps);
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, -0x48(%rbp)
movq %r8, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movq %rdx, %r12
movq %rsi, %r14
pushq $0x2b
popq %rsi
pushq $0x3
popq %rbx
movq %rdi, -0x30(%rbp)
movl %ebx, %edx
callq 0x459f7
movl %eax, %r13d
leaq 0x33907(%rip), %rsi     # 0x631a3
xorl %r15d, %r15d
movl %ebx, %edi
movl %eax, %edx
xorl %eax, %eax
callq 0x455bc
decl %r13d
cmpl $0x4, %r13d
ja 0x30155
leaq 0x334f2(%rip), %rax     # 0x62db0
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x33940(%rip), %rsi     # 0x6320e
pushq $0x4
popq %r15
movl %r15d, %edi
xorl %eax, %eax
callq 0x455bc
leaq 0x3393c(%rip), %rsi     # 0x6321f
pushq $0x5
popq %r12
movl %r12d, %edi
xorl %eax, %eax
callq 0x455bc
pushq $0x1e
popq %rdx
movl %r12d, %edi
movq -0x30(%rbp), %rbx
movq %rbx, %rsi
callq 0x4ad1c
pushq $0x18
popq %rsi
pushq $0x11
popq %rdx
movq %rbx, %rdi
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
mulsd 0x31108(%rip), %xmm0    # 0x60a28
movsd %xmm0, -0x38(%rbp)
pushq $0x30
popq %rsi
pushq $0xa
popq %rdx
movq %rbx, %rdi
callq 0x459f7
movl %eax, -0x40(%rbp)
pushq $0x3a
popq %rsi
pushq $0x2
popq %r12
movq %rbx, %rdi
movl %r12d, %edx
callq 0x459f7
movl %eax, 0x18(%r14)
pushq $0x3c
popq %rsi
movq %rbx, %rdi
movl %r15d, %edx
callq 0x459f7
movl %eax, 0xc(%r14)
pushq $0x40
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
callq 0x459f7
movl %eax, 0x10(%r14)
pushq $0x46
popq %rsi
movq %rbx, %rdi
movl %r12d, %edx
callq 0x459f7
movl %eax, %r12d
pushq $0x48
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x459f7
movl %eax, 0x1c(%r14)
pushq $0x8
popq %r13
movq %rbx, %rdi
movl $0xa0, %esi
movl %r13d, %edx
callq 0x45a39
movl %eax, -0x4c(%rbp)
movq %rbx, %rdi
movl $0xa8, %esi
movl %r13d, %edx
callq 0x459f7
movl %eax, %r15d
pushq $0x10
popq %rdx
movq %rbx, %rdi
movl $0xb0, %esi
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
mulsd 0x3339c(%rip), %xmm0    # 0x62d78
movsd %xmm0, -0x48(%rbp)
movq %rbx, %rdi
movl $0xc0, %esi
movl %r13d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x33383(%rip), %xmm0    # 0x62d80
movsd %xmm0, 0xe8(%r14)
movq %rbx, %rdi
movl $0xc8, %esi
pushq $0x10
popq %rdx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x332ae(%rip), %xmm0    # 0x62cd0
movsd %xmm0, 0xe0(%r14)
pushq $0x16
popq %rdx
movq %rbx, %rdi
movl $0xd8, %esi
callq 0x45a39
cvtsi2sd %eax, %xmm1
movl -0x4c(%rbp), %eax
movsd 0x3326e(%rip), %xmm0    # 0x62cb8
mulsd %xmm0, %xmm1
movsd %xmm1, 0xd8(%r14)
xorpd %xmm1, %xmm1
cmpl $-0x80, %eax
je 0x2fa68
cvtsi2sd %eax, %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xf0(%r14)
shll $0x8, %r12d
addl %r12d, %r15d
movl %r15d, 0x8(%r14)
movl -0x40(%rbp), %edi
callq 0x47baa
movl %eax, 0x14(%r14)
movl %eax, %edi
movsd -0x38(%rbp), %xmm0
callq 0x4708a
movq %rax, 0x40(%r14)
movsd %xmm0, 0x48(%r14)
movl 0x14(%r14), %edi
movsd -0x48(%rbp), %xmm0
callq 0x4708a
movq %rax, 0x30(%r14)
movsd %xmm0, 0x38(%r14)
pushq $0x1
jmp 0x2ffed
pushq $0x30
popq %rsi
pushq $0x2
popq %rdx
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x459f7
movl %eax, %r14d
leaq 0x337f4(%rip), %rsi     # 0x632cd
pushq $0x4
popq %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0x455bc
leaq 0x337fc(%rip), %rsi     # 0x632e8
pushq $0x5
popq %r15
movl %r15d, %edi
xorl %eax, %eax
callq 0x455bc
pushq $0x1e
popq %rdx
movl %r15d, %edi
movq %rbx, %rsi
callq 0x4ad1c
cmpl $0x3, %r14d
je 0x2fff4
cmpl $0x1, %r14d
jne 0x30155
pushq $0x32
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
callq 0x459f7
leal -0x1(%rax), %ecx
cmpl $0x17, %ecx
ja 0x30027
pushq $0x32
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
callq 0x459f7
leal -0x1(%rax), %ecx
cmpl $0x1f, %ecx
ja 0x30155
movq %rbx, %rdi
movl %eax, %esi
movq %r12, %rdx
callq 0x30d9d
jmp 0x30155
leaq 0x336f3(%rip), %rsi     # 0x6325c
pushq $0x4
popq %rdi
xorl %eax, %eax
callq 0x455bc
leaq 0x336f3(%rip), %rsi     # 0x6326d
pushq $0x5
popq %r12
movl %r12d, %edi
xorl %eax, %eax
callq 0x455bc
pushq $0x1e
popq %rdx
movl %r12d, %edi
movq -0x30(%rbp), %rbx
movq %rbx, %rsi
callq 0x4ad1c
pushq $0x30
popq %rsi
pushq $0x10
popq %r12
movq %rbx, %rdi
movl %r12d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x33120(%rip), %xmm0    # 0x62cd8
movsd %xmm0, 0xb8(%r14)
pushq $0x40
popq %rsi
pushq $0x20
popq %r13
movq %rbx, %rdi
movl %r13d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x330d9(%rip), %xmm0    # 0x62cb8
mulsd 0x321c1(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x68(%r14)
pushq $0x60
popq %rsi
movq %rbx, %rdi
movl %r12d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x330d1(%rip), %xmm0    # 0x62cd8
movsd %xmm0, 0xc0(%r14)
pushq $0x70
popq %rsi
movq %rbx, %rdi
movl %r13d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x3308e(%rip), %xmm0    # 0x62cb8
mulsd 0x32176(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x60(%r14)
movq %rbx, %rdi
movl $0x90, %esi
movl %r12d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x3308c(%rip), %xmm0    # 0x62ce0
movsd %xmm0, 0x98(%r14)
movq %rbx, %rdi
movl $0xa0, %esi
movl %r13d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x3303f(%rip), %xmm0    # 0x62cb8
mulsd 0x32127(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x70(%r14)
pushq $0x18
popq %rdx
movq %rbx, %rdi
movl $0xc0, %esi
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x3302d(%rip), %xmm0    # 0x62cd0
mulsd 0x320fd(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x88(%r14)
pushq $0x8
popq %rdx
movq %rbx, %rdi
movl $0xd8, %esi
callq 0x459f7
movl %eax, %r12d
pushq $0xe
popq %rdx
movq %rbx, %rdi
movl $0xe0, %esi
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32fed(%rip), %xmm0    # 0x62cd0
mulsd 0x320bd(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x90(%r14)
cmpl 0x4(%r14), %r12d
jne 0x2ffc3
movzbl 0x8(%r14), %eax
cmpl %eax, %r12d
movl $0x0, %r15d
jne 0x30155
movq 0x40(%r14), %rdi
movsd 0x48(%r14), %xmm0
leaq 0x14(%r14), %rbx
movq %rbx, %rsi
callq 0x470f1
movsd %xmm0, -0x30(%rbp)
movq 0x30(%r14), %rdi
movsd 0x38(%r14), %xmm0
xorl %esi, %esi
callq 0x470f1
movsd -0x30(%rbp), %xmm2
movaps %xmm0, %xmm3
movsd 0xc8(%r14), %xmm0
movsd 0x32069(%rip), %xmm1    # 0x61dc0
addsd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
movsd %xmm3, -0x38(%rbp)
jbe 0x300e9
movl (%rbx), %edi
incl %edi
movsd 0x3205a(%rip), %xmm1    # 0x61dd0
pushq $0x3
popq %r15
jmp 0x3010b
pushq $0x30
popq %rsi
pushq $0x2
popq %rdx
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x459f7
movl %eax, %r14d
leaq 0x334e8(%rip), %rsi     # 0x63283
pushq $0x4
popq %r13
movl %r13d, %edi
movl %eax, %edx
xorl %eax, %eax
callq 0x455bc
leaq 0x334ec(%rip), %rsi     # 0x6329e
pushq $0x5
popq %r15
movl %r15d, %edi
xorl %eax, %eax
callq 0x455bc
pushq $0x1e
popq %rdx
movl %r15d, %edi
movq %rbx, %rsi
callq 0x4ad1c
cmpl $0x3, %r14d
je 0x3000c
cmpl $0x1, %r14d
jne 0x3001f
pushq $0x32
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
callq 0x459f7
leal -0x19(%rax), %ecx
cmpl $0x7, %ecx
ja 0x3009a
pushq $0x32
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
callq 0x459f7
leal -0x1(%rax), %ecx
cmpl $0x1f, %ecx
ja 0x3001f
movq %rbx, %rdi
movl %eax, %esi
movq %r12, %rdx
callq 0x30d9d
jmp 0x3001f
leaq 0x33406(%rip), %rsi     # 0x63235
pushq $0x4
popq %rdi
xorl %eax, %eax
callq 0x455bc
leaq 0x33406(%rip), %rsi     # 0x63246
pushq $0x5
popq %r15
movl %r15d, %edi
xorl %eax, %eax
callq 0x455bc
pushq $0x1e
popq %rdx
movl %r15d, %edi
movq -0x30(%rbp), %rbx
movq %rbx, %rsi
callq 0x4ad1c
pushq $0x30
popq %rsi
pushq $0x8
popq %rdx
movq %rbx, %rdi
callq 0x459f7
movl %eax, 0x4(%r14)
pushq $0x38
popq %rsi
pushq $0x10
popq %r15
movq %rbx, %rdi
movl %r15d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32e50(%rip), %xmm0    # 0x62ce0
movsd %xmm0, 0xa0(%r14)
pushq $0x48
popq %rsi
movq %rbx, %rdi
movl %r15d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32e1d(%rip), %xmm0    # 0x62cd0
mulsd 0x31eed(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x80(%r14)
pushq $0x58
popq %rsi
pushq $0x20
popq %r12
movq %rbx, %rdi
movl %r12d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32dd6(%rip), %xmm0    # 0x62cb8
mulsd 0x31ebe(%rip), %xmm0    # 0x61da8
movsd %xmm0, 0x78(%r14)
pushq $0x78
popq %rsi
movq %rbx, %rdi
movl %r15d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32dce(%rip), %xmm0    # 0x62cd8
movsd %xmm0, 0xa8(%r14)
movq %rbx, %rdi
movl $0x88, %esi
movl %r12d, %edx
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
mulsd 0x32d8e(%rip), %xmm0    # 0x62cc0
movsd %xmm0, 0x58(%r14)
movq %rbx, %rdi
movl $0xa8, %esi
movl %r15d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32d84(%rip), %xmm0    # 0x62cd8
movsd %xmm0, 0xb0(%r14)
movq %rbx, %rdi
movl $0xb8, %esi
movl %r12d, %edx
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
mulsd 0x32d4c(%rip), %xmm0    # 0x62cc8
movsd %xmm0, -0x38(%rbp)
movq %rbx, %rdi
movl $0xd8, %esi
movl %r15d, %edx
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
mulsd 0x32dd8(%rip), %xmm0    # 0x62d78
movsd %xmm0, 0xc8(%r14)
pushq $0x1
popq %rdx
movq %rbx, %rdi
movl $0xe8, %esi
callq 0x459f7
testl %eax, %eax
je 0x2ffcb
xorpd %xmm0, %xmm0
jmp 0x2ffd3
xorl %r15d, %r15d
jmp 0x30155
movsd 0x308c5(%rip), %xmm0    # 0x60898
movsd %xmm0, 0xd0(%r14)
movsd -0x38(%rbp), %xmm0
mulsd %xmm0, %xmm0
movsd %xmm0, 0x50(%r14)
pushq $0x2
popq %r15
jmp 0x30155
movq %rbx, %rdi
movq %r12, %rsi
movq -0x40(%rbp), %rdx
movq -0x38(%rbp), %rcx
callq 0x30aba
jmp 0x30155
movq %rbx, %rdi
movq %r12, %rsi
movq -0x40(%rbp), %rdx
movq -0x38(%rbp), %rcx
callq 0x30aba
movl %r13d, %r15d
jmp 0x30155
cmpl $0x33, %eax
setne %al
testq %r12, %r12
sete %cl
orb %al, %cl
jne 0x30155
pushq $0x38
popq %rsi
pushq $0x8
popq %r14
movq %rbx, %rdi
movl %r14d, %edx
callq 0x459f7
movq %rax, -0x38(%rbp)
pushq $0x40
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x459f7
movl %eax, %edi
callq 0x47baa
movl %eax, %r14d
pushq $0x48
popq %r13
pushq $0x4
popq %r15
cmpq $0xa84, %r15            # imm = 0xA84
je 0x30167
movq %rbx, %rdi
movl %r13d, %esi
pushq $0x6
popq %rdx
callq 0x459f7
movl %eax, (%r12,%r15)
addl $0x6, %r13d
addq $0x70, %r15
jmp 0x30071
cmpl $0x38, %eax
je 0x301f7
cmpl $0x3f, %eax
movl %r13d, %r15d
jne 0x30155
pushq $0x38
popq %r14
pushq $0x2
popq %r15
movq -0x30(%rbp), %rbx
cmpq $0x382, %r15            # imm = 0x382
je 0x301b5
testq %r12, %r12
je 0x300df
movq %rbx, %rdi
movl %r14d, %esi
movl %r13d, %edx
callq 0x459f7
movl %eax, (%r12,%r15,4)
addl $0x4, %r14d
addq $0x1c, %r15
jmp 0x300bb
movsd 0x31cd7(%rip), %xmm1    # 0x61dc8
addsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
movl (%rbx), %edi
pushq $0x3
popq %r15
jbe 0x30116
decl %edi
movsd 0x31ccd(%rip), %xmm1    # 0x61dd8
movl %edi, (%rbx)
addsd %xmm1, %xmm2
movsd %xmm2, -0x30(%rbp)
callq 0x4708a
movq %rax, 0x20(%r14)
movsd %xmm0, 0x28(%r14)
movl 0x14(%r14), %edi
movsd -0x38(%rbp), %xmm0
callq 0x4708a
movq %rax, 0x30(%r14)
movsd %xmm0, 0x38(%r14)
movl 0x14(%r14), %edi
movsd -0x30(%rbp), %xmm0
callq 0x4708a
movq %rax, 0x40(%r14)
movsd %xmm0, 0x48(%r14)
movl %r15d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq -0x38(%rbp), %rax
shll $0xc, %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorl %ebx, %ebx
cmpq $0xe00, %rbx            # imm = 0xE00
je 0x301ae
movsd -0x30(%rbp), %xmm0
movsd %xmm0, 0x58(%r12,%rbx)
movl %r14d, 0xc(%r12,%rbx)
movl %r14d, %edi
callq 0x4708a
movq %rax, 0x10(%r12,%rbx)
movsd %xmm0, 0x18(%r12,%rbx)
addq $0x70, %rbx
jmp 0x3017a
pushq $0x5
jmp 0x2ffed
movl $0xba, %r14d
xorl %r13d, %r13d
pushq $0x6
popq %r15
cmpq $0x380, %r13            # imm = 0x380
je 0x301f0
testq %r12, %r12
je 0x301e6
movq %rbx, %rdi
movl %r14d, %esi
movl %r15d, %edx
callq 0x459f7
movl %eax, 0xa84(%r12,%r13)
addl $0x6, %r14d
addq $0x70, %r13
jmp 0x301c2
pushq $0x4
jmp 0x2ffed
movq -0x40(%rbp), %r15
testq %r15, %r15
je 0x30307
pushq $0x38
popq %rsi
pushq $0x8
popq %r14
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32b0e(%rip), %xmm0    # 0x62d30
movsd %xmm0, (%r15)
pushq $0x40
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32b07(%rip), %xmm0    # 0x62d48
movsd %xmm0, 0x8(%r15)
pushq $0x48
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32aef(%rip), %xmm0    # 0x62d50
movsd %xmm0, 0x10(%r15)
pushq $0x50
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32acf(%rip), %xmm0    # 0x62d50
movsd %xmm0, 0x18(%r15)
pushq $0x58
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32ab7(%rip), %xmm0    # 0x62d58
movsd %xmm0, 0x20(%r15)
pushq $0x60
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32a9f(%rip), %xmm0    # 0x62d60
movsd %xmm0, 0x28(%r15)
pushq $0x68
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32a87(%rip), %xmm0    # 0x62d68
movsd %xmm0, 0x30(%r15)
pushq $0x70
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x32a67(%rip), %xmm0    # 0x62d68
movsd %xmm0, 0x38(%r15)
movq -0x38(%rbp), %r15
testq %r15, %r15
je 0x30398
pushq $0x78
popq %rsi
pushq $0x18
popq %rdx
movq %rbx, %rdi
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x329ea(%rip), %xmm0    # 0x62d18
movsd %xmm0, 0x8(%r15)
pushq $0x20
popq %rdx
movq %rbx, %rdi
movl $0x90, %esi
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x329e0(%rip), %xmm0    # 0x62d30
movsd %xmm0, (%r15)
pushq $0x8
popq %r14
movq %rbx, %rdi
movl $0xb0, %esi
movl %r14d, %edx
callq 0x45a39
cvtsi2sd %eax, %xmm0
mulsd 0x329fb(%rip), %xmm0    # 0x62d70
movsd %xmm0, 0x10(%r15)
movq %rbx, %rdi
movl $0xb8, %esi
movl %r14d, %edx
callq 0x459f7
movl %eax, %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x18(%r15)
movl %r13d, %r15d
movq -0x48(%rbp), %r14
testq %r14, %r14
je 0x30155
pushq $0x8
popq %rdx
movq %rbx, %rdi
movl $0xc0, %esi
callq 0x45a39
movl %eax, (%r14)
jmp 0x30155