// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/extended/dice_hmm.c
// Function: gt_dice_hmm_fair
GtHMM* gt_dice_hmm_fair(void)
{
  GtHMM *hmm;

  /* create the GtHMM */
  hmm = gt_hmm_new(DICE_NUM_OF_STATES, DICE_NUM_OF_SYMBOLS);

  /* set emmission probabilities */
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, ONE,   1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, TWO,   1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, THREE, 1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, FOUR,  1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, FIVE,  1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_FAIR, SIX,   1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, ONE,   1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, TWO,   1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, THREE, 1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, FOUR,  1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, FIVE,  1.0/6);
  gt_hmm_set_emission_probability(hmm, DICE_LOADED, SIX,   1.0/6);

  /* set transition probabilities */
  gt_hmm_set_transition_probability(hmm, DICE_FAIR, DICE_LOADED, 0.5);
  gt_hmm_set_transition_probability(hmm, DICE_LOADED, DICE_FAIR, 0.5);
  gt_hmm_set_transition_probability(hmm, DICE_FAIR, DICE_FAIR, 0.5);
  gt_hmm_set_transition_probability(hmm, DICE_LOADED, DICE_LOADED, 0.5);
  gt_assert(gt_hmm_is_valid(hmm));

  return hmm;
}

// Assembly:
pushq %rbx
movl $0x2, %edi
movl $0x6, %esi
callq 0x150964
movq %rax, %rbx
movsd 0xe01b8(%rip), %xmm0    # 0x3dd8c0
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x150bec
movq %rbx, %rdi
xorl %esi, %esi
movl $0x1, %edx
movsd 0xe019a(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
xorl %esi, %esi
movl $0x2, %edx
movsd 0xe0183(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
xorl %esi, %esi
movl $0x3, %edx
movsd 0xe016c(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
xorl %esi, %esi
movl $0x4, %edx
movsd 0xe0155(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
xorl %esi, %esi
movl $0x5, %edx
movsd 0xe013e(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0xe0127(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
movl $0x1, %edx
movsd 0xe010d(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
movl $0x2, %edx
movsd 0xe00f3(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
movl $0x3, %edx
movsd 0xe00d9(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
movl $0x4, %edx
movsd 0xe00bf(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movq %rbx, %rdi
movl $0x1, %esi
movl $0x5, %edx
movsd 0xe00a5(%rip), %xmm0    # 0x3dd8c0
callq 0x150bec
movsd 0x58620(%rip), %xmm0    # 0x355e48
movq %rbx, %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x150b75
movq %rbx, %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0x585ff(%rip), %xmm0    # 0x355e48
callq 0x150b75
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
movsd 0x585eb(%rip), %xmm0    # 0x355e48
callq 0x150b75
movq %rbx, %rdi
movl $0x1, %esi
movl $0x1, %edx
movsd 0x585d1(%rip), %xmm0    # 0x355e48
callq 0x150b75
movq %rbx, %rdi
callq 0x150e36
testb %al, %al
je 0x2fd88d
movq %rbx, %rax
popq %rbx
retq
callq 0x8b69d