// File: /workspace/github_cpp_makefile_star2_O3/DoubleString[P]RtConverter/src/Rnxobs/Com.cpp
// Function: bamboo::getbdsiode(bamboo::GPSEPH&)
unsigned int getbdsiode(GPSEPH& bdseph) {
	unsigned char buffer[80];
	int size = 0;
	int numbits = 0;
	long long bitbuffer = 0;
	unsigned char *startbuffer = buffer;

	BDSADDBITSFLOAT(14, bdseph.idot, M_PI/(double)(1<<30)/(double)(1<<13));
	BDSADDBITSFLOAT(11, bdseph.a2,
			1.0 / (double )(1 << 30) / (double )(1 << 30) / (double )(1 << 6));
	BDSADDBITSFLOAT(22, bdseph.a1,
			1.0 / (double )(1 << 30) / (double )(1 << 20));
	BDSADDBITSFLOAT(24, bdseph.a0, 1.0 / (double )(1 << 30) / (double )(1 << 3));
	BDSADDBITSFLOAT(18, bdseph.crs, 1.0 / (double )(1 << 6));
	BDSADDBITSFLOAT(16, bdseph.dn, M_PI/(double)(1<<30)/(double)(1<<13));
	BDSADDBITSFLOAT(32, bdseph.m0, M_PI/(double)(1<<30)/(double)(1<<1));
	BDSADDBITSFLOAT(18, bdseph.cuc,
			1.0 / (double )(1 << 30) / (double )(1 << 1));
	BDSADDBITSFLOAT(32, bdseph.e, 1.0 / (double )(1 << 30) / (double )(1 << 3));
	BDSADDBITSFLOAT(18, bdseph.cus,
			1.0 / (double )(1 << 30) / (double )(1 << 1));
	BDSADDBITSFLOAT(32, bdseph.roota, 1.0 / (double )(1 << 19));
	BDSADDBITSFLOAT(18, bdseph.cic,
			1.0 / (double )(1 << 30) / (double )(1 << 1));
	BDSADDBITSFLOAT(32, bdseph.omega0, M_PI/(double)(1<<30)/(double)(1<<1));
	BDSADDBITSFLOAT(18, bdseph.cis,
			1.0 / (double )(1 << 30) / (double )(1 << 1));
	BDSADDBITSFLOAT(32, bdseph.i0, M_PI/(double)(1<<30)/(double)(1<<1));
	BDSADDBITSFLOAT(18, bdseph.crc, 1.0 / (double )(1 << 6));
	BDSADDBITSFLOAT(32, bdseph.omega, M_PI/(double)(1<<30)/(double)(1<<1));
	BDSADDBITSFLOAT(24, bdseph.omegadot, M_PI/(double)(1<<30)/(double)(1<<13));
	BDSADDBITS(5, 0); // the last byte is filled by 0-bits to obtain a length of an integer multiple of 8

	return CRC24(size, startbuffer);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %r15
movsd 0xa8(%rdi), %xmm0
divsd 0x4a936(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %rbx
movl %ebx, %eax
shrl $0x6, %eax
movb %al, -0x90(%rbp)
movsd 0x20(%r15), %xmm0
mulsd 0x4a91b(%rip), %xmm0    # 0x6aa78
callq 0x8280
cvttsd2si %xmm0, %rax
shll $0xb, %ebx
andl $0x1fff800, %ebx        # imm = 0x1FFF800
movl %eax, %r14d
andl $0x7ff, %r14d           # imm = 0x7FF
orq %rbx, %r14
movl %r14d, %ecx
shrl $0x9, %ecx
movb %cl, -0x8f(%rbp)
shrl %eax
movb %al, -0x8e(%rbp)
movsd 0x18(%r15), %xmm0
mulsd 0x4a8e1(%rip), %xmm0    # 0x6aa80
callq 0x8280
cvttsd2si %xmm0, %rax
movl %eax, %ecx
andl $0x3fffff, %ecx         # imm = 0x3FFFFF
shlq $0x16, %r14
orq %rcx, %r14
movl %r14d, %ecx
shrl $0xf, %ecx
movb %cl, -0x8d(%rbp)
shrl $0x7, %eax
movb %al, -0x8c(%rbp)
movq %r15, -0x30(%rbp)
movsd 0x10(%r15), %xmm0
mulsd 0x4a8a9(%rip), %xmm0    # 0x6aa88
callq 0x8280
cvttsd2si %xmm0, %rbx
shlq $0x18, %r14
andl $0xffffff, %ebx         # imm = 0xFFFFFF
orq %r14, %rbx
movl $0x5, %r15d
movl $0x29, %r14d
movl $0x39, %r12d
movq %r14, %rax
leal -0x12(%r14), %ecx
movq %rbx, %rdx
sarq %cl, %rdx
movb %dl, -0x90(%rbp,%r15)
incq %r15
addq $-0x8, %r14
addl $-0x8, %r12d
addq $-0xa, %rax
cmpq $0xf, %rax
ja 0x20208
leal -0x1a(%r12), %eax
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rax
movsd 0x30(%rax), %xmm0
mulsd 0x4a845(%rip), %xmm0    # 0x6aa90
callq 0x8280
cvttsd2si %xmm0, %r13
shlq $0x12, %rbx
andl $0x3ffff, %r13d         # imm = 0x3FFFF
orq %rbx, %r13
cmpl $-0xb, -0x34(%rbp)
jle 0x2028b
movq %r13, %rax
movl %r14d, %ecx
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %r14
cmpl $0xf, %r12d
jg 0x20269
addl $-0x8, %r12d
movq -0x30(%rbp), %rax
movsd 0x38(%rax), %xmm0
divsd 0x4a7d0(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x10, %r13
movzwl %ax, %ebx
orq %r13, %rbx
cmpl $-0x8, %r12d
jl 0x202ed
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x18, %r12d
addq $0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x202c8
addl $-0x8, %r12d
jmp 0x202f1
addl $0x10, %r12d
movq -0x30(%rbp), %rax
movsd 0x40(%rax), %xmm0
divsd 0x4a796(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %rbx
movl %eax, %r13d
orq %rbx, %r13
leal 0x20(%r12), %ebx
cmpl $-0x18, %r12d
jl 0x20354
movl %r15d, %r15d
movl %ebx, %ecx
addl $0x28, %r12d
addq $-0x8, %rcx
movq %r13, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x2032e
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x48(%rax), %xmm0
mulsd 0x4a73b(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%rbx), %r13d
cmpl $-0xa, %ebx
jl 0x203b6
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %ebx
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %ebx
addq $-0x8, %rcx
cmpl $0xf, %ebx
jg 0x20393
addl $-0x8, %ebx
movl %ebx, %r13d
movq -0x30(%rbp), %rax
movsd 0x50(%rax), %xmm0
mulsd 0x4a6c1(%rip), %xmm0    # 0x6aa88
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0x20418
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x203f2
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x58(%rax), %xmm0
mulsd 0x4a677(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0x2047f
movl %r15d, %r15d
movl %ebx, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20459
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x60(%rax), %xmm0
mulsd 0x4a618(%rip), %xmm0    # 0x6aaa8
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0x204dd
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %ebx
addq $-0x8, %rcx
movq %r13, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %ebx
addq $-0x8, %rcx
cmpl $0xf, %ebx
jg 0x204ba
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x70(%rax), %xmm0
mulsd 0x4a5b2(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0x20544
movl %r15d, %r15d
movl %ebx, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x2051e
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x78(%rax), %xmm0
divsd 0x4a543(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0x205a2
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %ebx
addq $-0x8, %rcx
movq %r13, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %ebx
addq $-0x8, %rcx
cmpl $0xf, %ebx
jg 0x2057f
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x80(%rax), %xmm0
mulsd 0x4a4ea(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0x2060c
movl %r15d, %r15d
movl %ebx, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x205e6
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x88(%rax), %xmm0
divsd 0x4a478(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0x2066d
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %ebx
addq $-0x8, %rcx
movq %r13, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %ebx
addq $-0x8, %rcx
cmpl $0xf, %ebx
jg 0x2064a
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x90(%rax), %xmm0
mulsd 0x4a40f(%rip), %xmm0    # 0x6aa90
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0x206d7
movl %r15d, %r15d
movl %ebx, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x206b1
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x98(%rax), %xmm0
divsd 0x4a3ad(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r12d
orq %r14, %r12
leal 0x20(%rbx), %r14d
cmpl $-0x18, %ebx
jl 0x20738
movl %r15d, %r15d
movl %r14d, %ecx
addl $0x28, %ebx
addq $-0x8, %rcx
movq %r12, %rax
sarq %cl, %rax
movb %al, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %ebx
addq $-0x8, %rcx
cmpl $0xf, %ebx
jg 0x20715
addl $-0x8, %ebx
movl %ebx, %r14d
movq -0x30(%rbp), %rax
movsd 0xa0(%rax), %xmm0
divsd 0x4a324(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x18, %r12
andl $0xffffff, %eax         # imm = 0xFFFFFF
orq %r12, %rax
leal 0x18(%r14), %ecx
cmpl $-0x10, %r14d
jl 0x2079f
movl %r15d, %r15d
movl %ecx, %ecx
addl $0x20, %r14d
addq $-0x8, %rcx
movq %rax, %rdx
sarq %cl, %rdx
movb %dl, -0x90(%rbp,%r15)
incq %r15
addl $-0x8, %r14d
addq $-0x8, %rcx
cmpl $0xf, %r14d
jg 0x20779
addl $-0x8, %r14d
movl %r14d, %ecx
cmpl $0x3, %ecx
jl 0x207d1
shlq $0x5, %rax
movl %r15d, %r15d
movl %ecx, %edx
addq $0xd, %rdx
leal -0x10(%rdx), %ecx
movq %rax, %rsi
sarq %cl, %rsi
movb %sil, -0x90(%rbp,%r15)
incq %r15
addq $-0x8, %rdx
cmpq $0xf, %rdx
ja 0x207b1
jmp 0x207d6
testl %r15d, %r15d
je 0x20824
movslq %r15d, %rcx
leaq -0x90(%rbp), %rdx
xorl %eax, %eax
movzbl (%rdx), %esi
shll $0x10, %esi
xorq %rsi, %rax
movl $0x8, %esi
leaq (%rax,%rax), %rdi
movq %rdi, %r8
xorq $0x1864cfb, %r8         # imm = 0x1864CFB
btl $0x17, %eax
movq %r8, %rax
cmovaeq %rdi, %rax
decl %esi
jne 0x207f0
incq %rdx
decq %rcx
jne 0x207e2
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x20815