// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/mapping.c
// Function: map_generic
static int map_generic(GtMapping *m, GtStr **stroutput, GtWord *integeroutput,
                       const char *input, GtError *err)
{
  gt_error_check(err);
  gt_assert(m && input);
  gt_assert((m->type == GT_MAPPINGTYPE_STRING  && stroutput) ||
            (m->type == GT_MAPPINGTYPE_INTEGER && integeroutput));
  if (m->is_table)
    return map_table(m, stroutput, integeroutput, input, err);
  return map_function(m, stroutput, integeroutput, input, err);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r14
movq %rcx, %r13
movq %rdx, %rbp
movq %rsi, %r15
movq %rdi, %rbx
testq %r8, %r8
je 0x24fbe
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x25390
testq %rbx, %rbx
je 0x2535f
testq %r13, %r13
je 0x2535f
movl 0x10(%rbx), %eax
testl %eax, %eax
sete %cl
testq %r15, %r15
setne %dl
testb %cl, %dl
jne 0x24ff4
testq %rbp, %rbp
je 0x253c1
cmpl $0x1, %eax
jne 0x253c1
cmpb $0x1, 0x20(%rbx)
jne 0x250da
testq %r14, %r14
je 0x25016
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x25481
movl 0x10(%rbx), %eax
testq %r15, %r15
setne %cl
testl %eax, %eax
sete %dl
testb %dl, %cl
jne 0x25037
testq %rbp, %rbp
je 0x254d9
cmpl $0x1, %eax
jne 0x254d9
movq 0x18(%rbx), %rdi
callq 0x377ed
testl %eax, %eax
jne 0x253f2
movq 0x8(%rbx), %rdx
movq 0x18(%rbx), %rdi
movl $0xffffd8ee, %esi       # imm = 0xFFFFD8EE
callq 0x38a63
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0x38431
movq 0x18(%rbx), %rdi
pushq $-0x2
popq %rsi
callq 0x3894c
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r12
movl %r12d, %esi
callq 0x37b59
testl %eax, %eax
je 0x251d8
movl 0x10(%rbx), %eax
xorl %r12d, %r12d
cmpl $0x1, %eax
je 0x2524c
testl %eax, %eax
jne 0x252e0
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r12
movl %r12d, %esi
callq 0x37c2b
testl %eax, %eax
je 0x2529f
movq 0x18(%rbx), %rdi
xorl %r12d, %r12d
pushq $-0x1
popq %rsi
xorl %edx, %edx
callq 0x37f9b
movq %rax, %rdi
callq 0x13da9
movq %rax, (%r15)
jmp 0x252e0
testq %r14, %r14
je 0x250f2
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x254ab
movl 0x10(%rbx), %eax
testq %r15, %r15
setne %cl
testl %eax, %eax
sete %dl
testb %dl, %cl
jne 0x25113
testq %rbp, %rbp
je 0x2550f
cmpl $0x1, %eax
jne 0x2550f
movq 0x18(%rbx), %rdi
callq 0x377ed
testl %eax, %eax
jne 0x2541f
movq 0x8(%rbx), %rdx
movq 0x18(%rbx), %rdi
movl $0xffffd8ee, %esi       # imm = 0xFFFFD8EE
callq 0x38a63
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0x38431
movq 0x18(%rbx), %rdi
pushq $0x1
popq %rdx
xorl %r12d, %r12d
movl %edx, %esi
xorl %ecx, %ecx
callq 0x39305
testl %eax, %eax
je 0x25203
movq 0x8(%rbx), %r15
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r12
movl %r12d, %esi
xorl %edx, %edx
callq 0x37f9b
leaq 0xacad8(%rip), %rsi     # 0xd1c52
movq %r14, %rdi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xc007
movq 0x18(%rbx), %rdi
pushq $-0x2
popq %rsi
callq 0x377fa
movq 0x18(%rbx), %rdi
callq 0x377ed
testl %eax, %eax
je 0x2530a
movq 0x108e0a(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4eae(%rip), %rsi     # 0xca066
leaq 0xac8de(%rip), %rdx     # 0xd1a9d
leaq 0xaca7f(%rip), %rcx     # 0xd1c45
leaq 0xac871(%rip), %r8      # 0xd1a3e
movl $0xbf, %r9d
jmp 0x25503
movq (%rbx), %rdi
movq 0x8(%rbx), %r15
callq 0x143d2
leaq 0xac9e6(%rip), %rsi     # 0xd1bd1
movq %r14, %rdi
movq %r15, %rdx
movq %r13, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xc007
jmp 0x252e0
movl 0x10(%rbx), %eax
cmpl $0x1, %eax
je 0x25272
testl %eax, %eax
jne 0x2518a
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r12
movl %r12d, %esi
callq 0x37c2b
testl %eax, %eax
je 0x2531c
movq 0x18(%rbx), %rdi
xorl %r12d, %r12d
pushq $-0x1
popq %rsi
xorl %edx, %edx
callq 0x37f9b
movq %rax, %rdi
callq 0x13da9
movq %rax, (%r15)
jmp 0x2518a
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r15
movl %r15d, %esi
callq 0x37bad
testl %eax, %eax
je 0x252b7
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %rsi
callq 0x37f48
movq %rax, (%rbp)
jmp 0x252e0
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %r15
movl %r15d, %esi
callq 0x37bad
testl %eax, %eax
je 0x25334
movq 0x18(%rbx), %rdi
pushq $-0x1
popq %rsi
callq 0x37f48
movq %rax, (%rbp)
jmp 0x2518a
movq (%rbx), %rdi
movq 0x8(%rbx), %r15
callq 0x143d2
leaq 0xac93f(%rip), %rsi     # 0xd1bf1
jmp 0x251eb
movq (%rbx), %rdi
movq 0x8(%rbx), %r12
callq 0x143d2
leaq 0xac950(%rip), %rsi     # 0xd1c1a
movq %r14, %rdi
movq %r12, %rdx
movq %r13, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xc007
movl %r15d, %r12d
movq 0x18(%rbx), %rdi
pushq $-0x2
popq %rbp
movl %ebp, %esi
callq 0x377fa
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x377fa
movq 0x18(%rbx), %rdi
callq 0x377ed
testl %eax, %eax
jne 0x25450
movl %r12d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rbx), %rdi
movq 0x8(%rbx), %r15
callq 0x143d2
leaq 0xac93d(%rip), %rsi     # 0xd1c6c
jmp 0x2517a
movq (%rbx), %rdi
movq 0x8(%rbx), %r12
callq 0x143d2
leaq 0xac95a(%rip), %rsi     # 0xd1ca1
movq %r14, %rdi
movq %r12, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xc007
movl %r15d, %r12d
jmp 0x2518a
movq 0x108c52(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4cf6(%rip), %rsi     # 0xca066
leaq 0xac7dd(%rip), %rdx     # 0xd1b54
leaq 0xac7ca(%rip), %rcx     # 0xd1b48
leaq 0xac6b9(%rip), %r8      # 0xd1a3e
movl $0xc7, %r9d
jmp 0x25503
movq 0x108c21(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4cc5(%rip), %rsi     # 0xca066
leaq 0xa52b1(%rip), %rdx     # 0xca659
leaq 0xac799(%rip), %rcx     # 0xd1b48
leaq 0xac688(%rip), %r8      # 0xd1a3e
movl $0xc6, %r9d
jmp 0x25503
movq 0x108bf0(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4c94(%rip), %rsi     # 0xca066
leaq 0xac786(%rip), %rdx     # 0xd1b5f
leaq 0xac768(%rip), %rcx     # 0xd1b48
leaq 0xac657(%rip), %r8      # 0xd1a3e
movl $0xc9, %r9d
jmp 0x25503
movq 0x108bbf(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4c63(%rip), %rsi     # 0xca066
leaq 0xac693(%rip), %rdx     # 0xd1a9d
leaq 0xac7b6(%rip), %rcx     # 0xd1bc7
leaq 0xac626(%rip), %r8      # 0xd1a3e
pushq $0x6e
jmp 0x25501
movq 0x108b92(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4c36(%rip), %rsi     # 0xca066
leaq 0xac666(%rip), %rdx     # 0xd1a9d
leaq 0xac807(%rip), %rcx     # 0xd1c45
leaq 0xac5f9(%rip), %r8      # 0xd1a3e
movl $0x9e, %r9d
jmp 0x25503
movq 0x108b61(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4c05(%rip), %rsi     # 0xca066
leaq 0xac635(%rip), %rdx     # 0xd1a9d
leaq 0xac758(%rip), %rcx     # 0xd1bc7
leaq 0xac5c8(%rip), %r8      # 0xd1a3e
movl $0x92, %r9d
jmp 0x25503
movq 0x108b30(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4bd4(%rip), %rsi     # 0xca066
leaq 0xa51c0(%rip), %rdx     # 0xca659
leaq 0xac727(%rip), %rcx     # 0xd1bc7
leaq 0xac597(%rip), %r8      # 0xd1a3e
pushq $0x6a
jmp 0x25501
movq 0x108b06(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4baa(%rip), %rsi     # 0xca066
leaq 0xa5196(%rip), %rdx     # 0xca659
leaq 0xac77b(%rip), %rcx     # 0xd1c45
leaq 0xac56d(%rip), %r8      # 0xd1a3e
movl $0x9a, %r9d
jmp 0x25503
movq 0x108ad8(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4b7c(%rip), %rsi     # 0xca066
leaq 0xac66e(%rip), %rdx     # 0xd1b5f
leaq 0xac6cf(%rip), %rcx     # 0xd1bc7
leaq 0xac53f(%rip), %r8      # 0xd1a3e
pushq $0x6d
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
movq 0x108aa2(%rip), %rax    # 0x12dfb8
movq (%rax), %rdi
leaq 0xa4b46(%rip), %rsi     # 0xca066
leaq 0xac638(%rip), %rdx     # 0xd1b5f
leaq 0xac717(%rip), %rcx     # 0xd1c45
leaq 0xac509(%rip), %r8      # 0xd1a3e
movl $0x9d, %r9d
jmp 0x25503