// File: /workspace/github_cpp_makefile_star2_O1/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 $0x58, %rsp
movq %rdi, %r14
movsd 0xa8(%rdi), %xmm0
divsd 0x4a2df(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %r15
movl %r15d, %eax
shrl $0x6, %eax
leaq -0x7f(%rbp), %rbx
movb %al, -0x1(%rbx)
movq %r14, -0x30(%rbp)
movsd 0x20(%r14), %xmm0
mulsd 0x4a2be(%rip), %xmm0    # 0x6aa78
callq 0x8280
cvttsd2si %xmm0, %r14
shll $0xb, %r15d
andl $0x1fff800, %r15d       # imm = 0x1FFF800
andl $0x7ff, %r14d           # imm = 0x7FF
orq %r15, %r14
movl $0x9, %ecx
movq %r14, %rax
shrq %cl, %rax
movb %al, (%rbx)
addq $-0x8, %rcx
incq %rbx
cmpq $-0x7, %rcx
jne 0x207de
movq -0x30(%rbp), %rax
movsd 0x18(%rax), %xmm0
mulsd 0x4a27c(%rip), %xmm0    # 0x6aa80
callq 0x8280
cvttsd2si %xmm0, %rbx
shlq $0x16, %r14
andl $0x3fffff, %ebx         # imm = 0x3FFFFF
orq %r14, %rbx
movl $0x2f, %r14d
movl $0x1f, %r12d
leaq -0x7d(%rbp), %rax
leal -0x10(%r12), %ecx
movq %rbx, %rdx
shrq %cl, %rdx
movb %dl, (%rax)
addl $-0x8, %r14d
addq $-0x8, %r12
incq %rax
cmpq $0xf, %r12
jne 0x2082b
movq -0x30(%rbp), %rax
movsd 0x10(%rax), %xmm0
mulsd 0x4a22e(%rip), %xmm0    # 0x6aa88
callq 0x8280
cvttsd2si %xmm0, %r13
shlq $0x18, %rbx
andl $0xffffff, %r13d        # imm = 0xFFFFFF
orq %rbx, %r13
movl $0x5, %r15d
cmpq $-0x8, %r12
jl 0x208a9
addq $0x18, %r12
movl $0x5, %r15d
leal -0x10(%r12), %ecx
movq %r13, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addq $-0x8, %r12
addl $-0x8, %r14d
cmpq $0xf, %r12
jg 0x20888
movq -0x30(%rbp), %rax
movsd 0x30(%rax), %xmm0
mulsd 0x4a1d6(%rip), %xmm0    # 0x6aa90
callq 0x8280
cvttsd2si %xmm0, %r12
shlq $0x12, %r13
andl $0x3ffff, %r12d         # imm = 0x3FFFF
orq %r13, %r12
cmpl $-0xa, %r14d
jl 0x20906
movl %r15d, %r15d
movl %r14d, %r14d
addq $0xa, %r14
movq %r12, %rax
movl %r14d, %ecx
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addq $-0x8, %r14
leal 0x10(%r14), %eax
cmpl $0xf, %eax
jg 0x208e2
addl $0x8, %r14d
jmp 0x2090a
addl $0x12, %r14d
movq -0x30(%rbp), %rax
movsd 0x38(%rax), %xmm0
divsd 0x4a155(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x10, %r12
movzwl %ax, %ebx
orq %r12, %rbx
leal 0x10(%r14), %r13d
cmpl $-0x8, %r14d
jl 0x2096a
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x18, %r14d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r14d
addq $-0x8, %rcx
cmpl $0xf, %r14d
jg 0x20947
addl $-0x8, %r14d
movl %r14d, %r13d
movq -0x30(%rbp), %rax
movsd 0x40(%rax), %xmm0
divsd 0x4a11d(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %rbx
movl %eax, %eax
orq %rbx, %rax
movq %rax, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0x209cc
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x209a9
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x48(%rax), %xmm0
mulsd 0x4a0c3(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %r13d
cmpl $-0xa, %r12d
jl 0x20a31
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20a0e
addl $-0x8, %r12d
movl %r12d, %r13d
movq -0x30(%rbp), %rax
movsd 0x50(%rax), %xmm0
mulsd 0x4a046(%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 0x20a90
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x20a6d
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x58(%rax), %xmm0
mulsd 0x49fff(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %r13d
cmpl $-0xa, %r12d
jl 0x20af5
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20ad2
addl $-0x8, %r12d
movl %r12d, %r13d
movq -0x30(%rbp), %rax
movsd 0x60(%rax), %xmm0
mulsd 0x49fa2(%rip), %xmm0    # 0x6aaa8
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0x20b54
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x20b31
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x70(%rax), %xmm0
mulsd 0x49f3b(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %r13d
cmpl $-0xa, %r12d
jl 0x20bb9
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20b96
addl $-0x8, %r12d
movl %r12d, %r13d
movq -0x30(%rbp), %rax
movsd 0x78(%rax), %xmm0
divsd 0x49ece(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0x20c18
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x20bf5
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x80(%rax), %xmm0
mulsd 0x49e74(%rip), %xmm0    # 0x6aaa0
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %r13d
cmpl $-0xa, %r12d
jl 0x20c80
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20c5d
addl $-0x8, %r12d
movl %r12d, %r13d
movq -0x30(%rbp), %rax
movsd 0x88(%rax), %xmm0
divsd 0x49e04(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r12d
cmpl $-0x18, %r13d
jl 0x20ce2
movl %r15d, %r15d
movl %r12d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x20cbf
addl $-0x8, %r13d
movl %r13d, %r12d
movq -0x30(%rbp), %rax
movsd 0x90(%rax), %xmm0
mulsd 0x49d9a(%rip), %xmm0    # 0x6aa90
callq 0x8280
cvttsd2si %xmm0, %r14
shlq $0x12, %rbx
andl $0x3ffff, %r14d         # imm = 0x3FFFF
orq %rbx, %r14
leal 0x12(%r12), %r13d
cmpl $-0xa, %r12d
jl 0x20d4a
movl %r15d, %r15d
movl %r13d, %ecx
addl $0x1a, %r12d
addq $-0x8, %rcx
movq %r14, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r12d
addq $-0x8, %rcx
cmpl $0xf, %r12d
jg 0x20d27
addl $-0x8, %r12d
movl %r12d, %r13d
movq -0x30(%rbp), %rax
movsd 0x98(%rax), %xmm0
divsd 0x49d3a(%rip), %xmm0    # 0x6aa98
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x20, %r14
movl %eax, %ebx
orq %r14, %rbx
leal 0x20(%r13), %r14d
cmpl $-0x18, %r13d
jl 0x20dac
movl %r15d, %r15d
movl %r14d, %ecx
addl $0x28, %r13d
addq $-0x8, %rcx
movq %rbx, %rax
sarq %cl, %rax
movb %al, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r13d
addq $-0x8, %rcx
cmpl $0xf, %r13d
jg 0x20d89
addl $-0x8, %r13d
movl %r13d, %r14d
movq -0x30(%rbp), %rax
movsd 0xa0(%rax), %xmm0
divsd 0x49cb0(%rip), %xmm0    # 0x6aa70
callq 0x8280
cvttsd2si %xmm0, %rax
shlq $0x18, %rbx
andl $0xffffff, %eax         # imm = 0xFFFFFF
orq %rbx, %rax
leal 0x18(%r14), %ecx
cmpl $-0x10, %r14d
jl 0x20e10
movl %r15d, %r15d
movl %ecx, %ecx
addl $0x20, %r14d
addq $-0x8, %rcx
movq %rax, %rdx
sarq %cl, %rdx
movb %dl, -0x80(%rbp,%r15)
incq %r15
addl $-0x8, %r14d
addq $-0x8, %rcx
cmpl $0xf, %r14d
jg 0x20ded
addl $-0x8, %r14d
movl %r14d, %ecx
cmpl $0x3, %ecx
jl 0x20e3d
shlq $0x5, %rax
movl %r15d, %r15d
movl %ecx, %edx
addq $0xd, %rdx
leal -0x10(%rdx), %ecx
movq %rax, %rsi
sarq %cl, %rsi
movb %sil, -0x80(%rbp,%r15)
incq %r15
addq $-0x8, %rdx
cmpq $0xf, %rdx
jg 0x20e22
testl %r15d, %r15d
je 0x20e80
movslq %r15d, %rcx
leaq -0x80(%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 0x20e59
incq %rdx
decq %rcx
jne 0x20e4b
jmp 0x20e82
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq