// File: /workspace/github_c_makefile_star2_O2/Cyan4973[P]FiniteStateEntropy/programs/../lib/fse_decompress.c
// Function: FSE_decompress_usingDTable
size_t FSE_decompress_usingDTable(void* dst, size_t originalSize,
                            const void* cSrc, size_t cSrcSize,
                            const FSE_DTable* dt)
{
    const void* ptr = dt;
    const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr;
    const U32 fastMode = DTableH->fastMode;

    /* select fast mode (static) */
    if (fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1);
    return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %r8, %r15
movq %rdi, %rbx
leaq (%rdi,%rsi), %r14
cmpw $0x0, 0x2(%r8)
leaq -0x3(%rdi,%rsi), %rax
movq %rax, 0x8(%rsp)
leaq 0x30(%rsp), %rdi
movq %rdx, %rsi
movq %rcx, %rdx
je 0x71dc
callq 0x7489
movq %rax, %r13
cmpq $-0x9, %rax
ja 0x73b8
movq %r14, (%rsp)
leaq 0x10(%rsp), %r14
leaq 0x30(%rsp), %rbp
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x7588
leaq 0x20(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x7588
xorl %r12d, %r12d
leaq (%rbx,%r12), %r15
movq %rbp, %rdi
callq 0x75ba
cmpq 0x8(%rsp), %r15
jae 0x727f
testl %eax, %eax
jne 0x727f
movq %r14, %rdi
movq %rbp, %rsi
callq 0x7637
movb %al, (%r15)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x7637
movb %al, 0x1(%r15)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x7637
movb %al, 0x2(%r15)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x7637
movb %al, 0x3(%r15)
addq $0x4, %r12
jmp 0x717c
callq 0x7489
movq %rax, %r13
cmpq $-0x9, %rax
ja 0x73b8
movq %r14, (%rsp)
leaq 0x10(%rsp), %r14
leaq 0x30(%rsp), %r12
movq %r14, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x7588
leaq 0x20(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x7588
xorl %ebp, %ebp
leaq (%rbx,%rbp), %r15
movq %r12, %rdi
callq 0x75ba
cmpq 0x8(%rsp), %r15
jae 0x7307
testl %eax, %eax
jne 0x7307
movq %r14, %rdi
movq %r12, %rsi
callq 0x766a
movb %al, (%r15)
movq %r13, %rdi
movq %r12, %rsi
callq 0x766a
movb %al, 0x1(%r15)
movq %r14, %rdi
movq %r12, %rsi
callq 0x766a
movb %al, 0x2(%r15)
movq %r13, %rdi
movq %r12, %rsi
callq 0x766a
movb %al, 0x3(%r15)
addq $0x4, %rbp
jmp 0x721f
movq (%rsp), %rbp
addq $-0x2, %rbp
leaq 0x30(%rsp), %r13
leaq 0x20(%rsp), %r15
leaq (%rbx,%r12), %rax
cmpq %rbp, %rax
ja 0x7381
movq %r12, %r14
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x7637
addq %rbx, %r12
incq %r12
movb %al, -0x1(%r12)
movq %r13, %rdi
callq 0x75ba
cmpl $0x3, %eax
je 0x7387
cmpq %rbp, %r12
ja 0x7381
movq %r15, %rdi
movq %r13, %rsi
callq 0x7637
movb %al, (%r12)
movq %r13, %rdi
callq 0x75ba
leaq 0x2(%r14), %r12
cmpl $0x3, %eax
jne 0x7291
addq %r12, %rbx
pushq $0x3
popq %r13
leaq 0x10(%rsp), %r15
movq %rbx, %r12
jmp 0x738b
addq $-0x2, (%rsp)
leaq 0x30(%rsp), %r13
leaq 0x20(%rsp), %r15
movq %rbp, %r12
leaq (%rbx,%rbp), %rax
movq (%rsp), %rbp
cmpq %rbp, %rax
ja 0x7381
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x766a
leaq (%rbx,%r12), %r14
incq %r14
movb %al, -0x1(%r14)
movq %r13, %rdi
callq 0x75ba
cmpl $0x3, %eax
je 0x73a1
cmpq %rbp, %r14
ja 0x7381
movq %r15, %rdi
movq %r13, %rsi
callq 0x766a
movb %al, (%r14)
movq %r13, %rdi
callq 0x75ba
leaq 0x2(%r12), %rbp
cmpl $0x3, %eax
jne 0x7316
addq %rbp, %rbx
pushq $0x3
popq %r13
leaq 0x10(%rsp), %r15
movq %rbx, %r14
jmp 0x73a5
pushq $-0x2
popq %r13
jmp 0x73b8
pushq $0x2
popq %r13
leaq 0x30(%rsp), %rsi
movq %r15, %rdi
callq 0x7637
movb %al, (%r12)
addq %r14, %r13
jmp 0x73b8
pushq $0x2
popq %r13
leaq 0x30(%rsp), %rsi
movq %r15, %rdi
callq 0x766a
movb %al, (%r14)
addq %r12, %r13
movq %r13, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq