// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/encdesc.c
// Function: prepare_numeric_field
static inline void prepare_numeric_field(GtEncdesc *encdesc,
                                         EncdescWriteInfo *info)
{
  GtWord value = 0;
  GtUword to_store;
  DescField *cur_field = &encdesc->fields[info->cur_field_num];

  parse_number_out_of_current_field(info, &value);

  if (cur_field->has_zero_padding && !cur_field->fieldlen_is_const) {
    numeric_field_prepare_zero_padding(encdesc, info);
  }

  if (info->cur_desc == 0 || info->sample) {
    to_store = (GtUword) (value - cur_field->min_value);
    numeric_field_sample_prepare_verbose_value(encdesc, info, to_store);
  }
  else if (!cur_field->is_value_const || !cur_field->is_delta_const) {
    if (cur_field->use_delta_coding) {
      if (cur_field->is_delta_negative)
        gt_assert(value < cur_field->prev_value);
      if (cur_field->is_delta_positive)
        gt_assert(value > cur_field->prev_value);
      to_store = (GtUword) ((value - cur_field->prev_value) -
                            cur_field->min_delta);
      gt_assert(to_store <= (GtUword) cur_field->max_delta -
                cur_field->min_delta);
    }
    else {
      gt_assert(value <= cur_field->max_value);
      gt_assert(value >= cur_field->min_value);
      to_store = (GtUword) (value - cur_field->min_value);
      gt_assert(to_store <= (GtUword) cur_field->max_value -
                cur_field->min_value);
    }

    if (cur_field->use_hc)
      numeric_field_prepare_huffman_value(encdesc, info, to_store);
    else
      numeric_field_prepare_verbose_value(encdesc, info, to_store);
  }
  cur_field->prev_value = value;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rsp), %rcx
imulq $0xc8, 0x28(%rcx), %rcx
addq %rcx, %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x163480
movq (%rsp), %rax
testb $0x1, 0xba(%rax)
je 0x163d1c
movq (%rsp), %rax
testb $0x1, 0xb9(%rax)
jne 0x163d1c
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x164300
movq 0x18(%rsp), %rax
cmpq $0x0, 0x30(%rax)
je 0x163d33
movq 0x18(%rsp), %rax
testb $0x1, 0x38(%rax)
je 0x163d61
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
subq 0x98(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x1643d0
jmp 0x164011
movq (%rsp), %rax
testb $0x1, 0xc0(%rax)
je 0x163d7f
movq (%rsp), %rax
testb $0x1, 0xbc(%rax)
jne 0x16400f
movq (%rsp), %rax
testb $0x1, 0xc1(%rax)
je 0x163ec9
movq (%rsp), %rax
testb $0x1, 0xbe(%rax)
je 0x163ded
jmp 0x163d9f
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
cmpq 0xa0(%rcx), %rax
jl 0x163de9
movq 0x4d81e8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b2251(%rip), %rsi    # 0x516013
leaq 0x3ead42(%rip), %rdx    # 0x54eb0b
leaq 0x3ead59(%rip), %rcx    # 0x54eb29
leaq 0x3ea491(%rip), %r8     # 0x54e268
movl $0x9e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163deb
jmp 0x163ded
movq (%rsp), %rax
testb $0x1, 0xbd(%rax)
je 0x163e4a
jmp 0x163dfc
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
cmpq 0xa0(%rcx), %rax
jg 0x163e46
movq 0x4d818b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b21f4(%rip), %rsi    # 0x516013
leaq 0x3ead19(%rip), %rdx    # 0x54eb3f
leaq 0x3eacfc(%rip), %rcx    # 0x54eb29
leaq 0x3ea434(%rip), %r8     # 0x54e268
movl $0xa0, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163e48
jmp 0x163e4a
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
subq 0xa0(%rcx), %rax
movq (%rsp), %rcx
subq 0x90(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movq 0x80(%rcx), %rcx
movq (%rsp), %rdx
subq 0x90(%rdx), %rcx
cmpq %rcx, %rax
jbe 0x163ec2
movq 0x4d810f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b2178(%rip), %rsi    # 0x516013
leaq 0x3eacbb(%rip), %rdx    # 0x54eb5d
leaq 0x3eac80(%rip), %rcx    # 0x54eb29
leaq 0x3ea3b8(%rip), %r8     # 0x54e268
movl $0xa4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163ec4
jmp 0x163fd6
jmp 0x163ecb
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
cmpq 0x88(%rcx), %rax
jle 0x163f15
movq 0x4d80bc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b2125(%rip), %rsi    # 0x516013
leaq 0x3eacaa(%rip), %rdx    # 0x54eb9f
leaq 0x3eac2d(%rip), %rcx    # 0x54eb29
leaq 0x3ea365(%rip), %r8     # 0x54e268
movl $0xa7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163f17
jmp 0x163f19
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
cmpq 0x98(%rcx), %rax
jge 0x163f63
movq 0x4d806e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b20d7(%rip), %rsi    # 0x516013
leaq 0x3eac7a(%rip), %rdx    # 0x54ebbd
leaq 0x3eabdf(%rip), %rcx    # 0x54eb29
leaq 0x3ea317(%rip), %r8     # 0x54e268
movl $0xa8, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163f65
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
subq 0x98(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movq 0x88(%rcx), %rcx
movq (%rsp), %rdx
subq 0x98(%rdx), %rcx
cmpq %rcx, %rax
jbe 0x163fd2
movq 0x4d7fff(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b2068(%rip), %rsi    # 0x516013
leaq 0x3eac29(%rip), %rdx    # 0x54ebdb
leaq 0x3eab70(%rip), %rcx    # 0x54eb29
leaq 0x3ea2a8(%rip), %r8     # 0x54e268
movl $0xab, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x163fd4
jmp 0x163fd6
movq (%rsp), %rax
testb $0x1, 0xc2(%rax)
je 0x163ff9
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x164420
jmp 0x16400d
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x1644d0
jmp 0x16400f
jmp 0x164011
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0xa0(%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)