// File: /workspace/github_cpp_makefile_star2_O3/DoubleString[P]eph_converter/src/Com.cpp
// Function: getbdsiode(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 0x2cd3(%rip), %xmm0     # 0xe2f0
callq 0x3140
cvttsd2si %xmm0, %rbx
movl %ebx, %eax
shrl $0x6, %eax
movb %al, -0x90(%rbp)
movsd 0x20(%r15), %xmm0
mulsd 0x2cb8(%rip), %xmm0     # 0xe2f8
callq 0x3140
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 0x2c7e(%rip), %xmm0     # 0xe300
callq 0x3140
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 0x2c46(%rip), %xmm0     # 0xe308
callq 0x3140
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 0xb6eb
leal -0x1a(%r12), %eax
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rax
movsd 0x30(%rax), %xmm0
mulsd 0x2be2(%rip), %xmm0     # 0xe310
callq 0x3140
cvttsd2si %xmm0, %r13
shlq $0x12, %rbx
andl $0x3ffff, %r13d         # imm = 0x3FFFF
orq %rbx, %r13
cmpl $-0xb, -0x34(%rbp)
jle 0xb76e
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 0xb74c
addl $-0x8, %r12d
movq -0x30(%rbp), %rax
movsd 0x38(%rax), %xmm0
divsd 0x2b6d(%rip), %xmm0     # 0xe2f0
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x10, %r13
movzwl %ax, %ebx
orq %r13, %rbx
cmpl $-0x8, %r12d
jl 0xb7d0
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 0xb7ab
addl $-0x8, %r12d
jmp 0xb7d4
addl $0x10, %r12d
movq -0x30(%rbp), %rax
movsd 0x40(%rax), %xmm0
divsd 0x2b33(%rip), %xmm0     # 0xe318
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %rbx
movl %eax, %r13d
orq %rbx, %r13
leal 0x20(%r12), %ebx
cmpl $-0x18, %r12d
jl 0xb837
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 0xb811
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x48(%rax), %xmm0
mulsd 0x2ad8(%rip), %xmm0     # 0xe320
callq 0x3140
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%rbx), %r13d
cmpl $-0xa, %ebx
jl 0xb899
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 0xb876
addl $-0x8, %ebx
movl %ebx, %r13d
movq -0x30(%rbp), %rax
movsd 0x50(%rax), %xmm0
mulsd 0x2a5e(%rip), %xmm0     # 0xe308
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0xb8fb
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 0xb8d5
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x58(%rax), %xmm0
mulsd 0x2a14(%rip), %xmm0     # 0xe320
callq 0x3140
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0xb962
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 0xb93c
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x60(%rax), %xmm0
mulsd 0x29b5(%rip), %xmm0     # 0xe328
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0xb9c0
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 0xb99d
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x70(%rax), %xmm0
mulsd 0x294f(%rip), %xmm0     # 0xe320
callq 0x3140
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0xba27
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 0xba01
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x78(%rax), %xmm0
divsd 0x28e0(%rip), %xmm0     # 0xe318
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0xba85
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 0xba62
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x80(%rax), %xmm0
mulsd 0x2887(%rip), %xmm0     # 0xe320
callq 0x3140
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0xbaef
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 0xbac9
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x88(%rax), %xmm0
divsd 0x2815(%rip), %xmm0     # 0xe318
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r13d
orq %r14, %r13
leal 0x20(%rbx), %r12d
cmpl $-0x18, %ebx
jl 0xbb50
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 0xbb2d
addl $-0x8, %ebx
movl %ebx, %r12d
movq -0x30(%rbp), %rax
movsd 0x90(%rax), %xmm0
mulsd 0x27ac(%rip), %xmm0     # 0xe310
callq 0x3140
cvttsd2si %xmm0, %r14
shlq $0x12, %r13
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %r13, %r14
leal 0x12(%r12), %ebx
cmpl $-0xa, %r12d
jl 0xbbba
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 0xbb94
addl $-0x8, %r12d
movl %r12d, %ebx
movq -0x30(%rbp), %rax
movsd 0x98(%rax), %xmm0
divsd 0x274a(%rip), %xmm0     # 0xe318
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %r12d
orq %r14, %r12
leal 0x20(%rbx), %r14d
cmpl $-0x18, %ebx
jl 0xbc1b
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 0xbbf8
addl $-0x8, %ebx
movl %ebx, %r14d
movq -0x30(%rbp), %rax
movsd 0xa0(%rax), %xmm0
divsd 0x26c1(%rip), %xmm0     # 0xe2f0
callq 0x3140
cvttsd2si %xmm0, %rax
shlq $0x18, %r12
andl $0xffffff, %eax         # imm = 0xFFFFFF
orq %r12, %rax
leal 0x18(%r14), %ecx
cmpl $-0x10, %r14d
jl 0xbc82
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 0xbc5c
addl $-0x8, %r14d
movl %r14d, %ecx
cmpl $0x3, %ecx
jl 0xbcb4
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 0xbc94
jmp 0xbcb9
testl %r15d, %r15d
je 0xbd07
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 0xbcd3
incq %rdx
decq %rcx
jne 0xbcc5
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0xbcf8