// File: /workspace/github_c_makefile_star2_O0/ijleesw[P]data-compression/src/lz78/wrapper.c
// Function: wrapper_perror
void wrapper_perror() {
    switch (wrapper_cur_err) {
        case WRAPPER_SUCCESS:
            break;

        case WRAPPER_ERROR_ALGORITHM:
            fprintf(stderr, "Unrecognized compression algorithm\n");
            break;

        case WRAPPER_ERROR_FILE_IN:
            fprintf(stderr, "Unable to read input file\n");
            break;

        case WRAPPER_ERROR_FILE_OUT:
            fprintf(stderr, "Unable to write output file\n");
            break;

        case LZ78_SUCCESS:
            break;

        case LZ78_ERROR_DICTIONARY:
            fprintf(stderr, "LZ78: unable to allocate dictionaries\n");
            break;

        case LZ78_ERROR_INITIALIZATION:
            fprintf(stderr, "LZ78: bad initialization\n");
            break;

        case LZ78_ERROR_MODE:
            fprintf(stderr, "LZ78: wrong compression/decompression mode\n");
            break;

        case LZ78_ERROR_READ:
            fprintf(stderr, "LZ78: unable to read input data\n");
            break;

        case LZ78_ERROR_WRITE:
            fprintf(stderr, "LZ78: unable to write output data\n");
            break;

        case LZ78_ERROR_EAGAIN:
            fprintf(stderr, "LZ78: I/O operation would block: retry...\n");
            break;

        case LZ78_ERROR_COMPRESS:
            fprintf(stderr, "LZ78: unable to compress input data\n");
            break;

        case LZ78_ERROR_DECOMPRESS:      
            fprintf(stderr, "LZ78: unable to decompress input data\n");
            break;

        default:
            fprintf(stderr, "Unhandled error code %d\n", wrapper_cur_err);
    }
}

// Assembly:
pushq %rax
movzbl 0x4a80(%rip), %eax      # 0x60c8
movq %rax, (%rsp)
subq $0x17, %rax
ja 0x17a7
movq (%rsp), %rax
leaq 0x2b7b(%rip), %rcx      # 0x41dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x17c6
movq 0x497a(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bc1(%rip), %rsi      # 0x4241
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x495d(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bc8(%rip), %rsi      # 0x4265
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x4940(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bc6(%rip), %rsi      # 0x4280
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
jmp 0x17c6
movq 0x491e(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bc1(%rip), %rsi      # 0x429d
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x4901(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bcb(%rip), %rsi      # 0x42c4
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x48e4(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bc8(%rip), %rsi      # 0x42de
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x48c7(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bd7(%rip), %rsi      # 0x430a
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x48aa(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bdb(%rip), %rsi      # 0x432b
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x4890(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2be4(%rip), %rsi      # 0x434e
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x4876(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2bf5(%rip), %rsi      # 0x4379
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x485c(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
leaq 0x2c00(%rip), %rsi      # 0x439e
movb $0x0, %al
callq 0x10d0
jmp 0x17c6
movq 0x4842(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
movzbl 0x4910(%rip), %edx      # 0x60c8
leaq 0x2c06(%rip), %rsi      # 0x43c5
movb $0x0, %al
callq 0x10d0
popq %rax
retq
nopl (%rax,%rax)