#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ printf(char *);
void usage() {
  printf(
      "TiCodec - lossy image compressor based on TiLib ver 0.9.1\n"
      "Copyleft (C) 2004 Alexander Simakov\n"
      "Usage: ticodec [options]\n"
      "-e, --encode: Encode image\n"
      "-d, --decode: Decode image\n"
      "-i, --input <filename>: Input file name\n"
      "-o, --output <filename>: Output file name\n"
      "-s, --size <num>: Desired encoded file size in bytes\n"
      "-B, --butterworth: Use Butterworth wavelet transform\n"
      "-D, --daubechies: Use Daubechies 9/7 wavelet transform (default)\n"
      "-l, --levels <num>: Number of DWT transform levels (default = 5)\n"
      "-y <num>: Bit budget (in %%) for Y channel (default = 90)\n"
      "-b <num>: Bit budget (in %%) for Cb channel (default = 5)\n"
      "-r <num>: Bit budget (in %%) for Cr channel (default = 5)\n"
      "-h, --help: Show this help message\n"
      "Note: Y%% + Cb%% + Cr%% must equals to 100%%\n"
      "Examples:\n"
      "ticodec -e -i foobar.ppm -o foobar.Ti -s 7777\n"
      "ticodec -d -i somefile.Ti -o somefile.pgm\n"
      "ticodec -e -i test.ppm -o test.Ti -s 10000 -B -l 9 -y 70 -b 20 -r 10\n");
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [913 x i8] c"TiCodec - lossy image compressor based on TiLib ver 0.9.1\0ACopyleft (C) 2004 Alexander Simakov\0AUsage: ticodec [options]\0A-e, --encode: Encode image\0A-d, --decode: Decode image\0A-i, --input <filename>: Input file name\0A-o, --output <filename>: Output file name\0A-s, --size <num>: Desired encoded file size in bytes\0A-B, --butterworth: Use Butterworth wavelet transform\0A-D, --daubechies: Use Daubechies 9/7 wavelet transform (default)\0A-l, --levels <num>: Number of DWT transform levels (default = 5)\0A-y <num>: Bit budget (in %%) for Y channel (default = 90)\0A-b <num>: Bit budget (in %%) for Cb channel (default = 5)\0A-r <num>: Bit budget (in %%) for Cr channel (default = 5)\0A-h, --help: Show this help message\0ANote: Y%% + Cb%% + Cr%% must equals to 100%%\0AExamples:\0Aticodec -e -i foobar.ppm -o foobar.Ti -s 7777\0Aticodec -d -i somefile.Ti -o somefile.pgm\0Aticodec -e -i test.ppm -o test.Ti -s 10000 -B -l 9 -y 70 -b 20 -r 10\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([913 x i8], [913 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@.str = [913 x i8] c"TiCodec - lossy image compressor based on TiLib ver 0.9.1\0ACopyleft (C) 2004 Alexander Simakov\0AUsage: ticodec [options]\0A-e, --encode: Encode image\0A-d, --decode: Decode image\0A-i, --input <filename>: Input file name\0A-o, --output <filename>: Output file name\0A-s, --size <num>: Desired encoded file size in bytes\0A-B, --butterworth: Use Butterworth wavelet transform\0A-D, --daubechies: Use Daubechies 9/7 wavelet transform (default)\0A-l, --levels <num>: Number of DWT transform levels (default = 5)\0A-y <num>: Bit budget (in %%) for Y channel (default = 90)\0A-b <num>: Bit budget (in %%) for Cb channel (default = 5)\0A-r <num>: Bit budget (in %%) for Cr channel (default = 5)\0A-h, --help: Show this help message\0ANote: Y%% + Cb%% + Cr%% must equals to 100%%\0AExamples:\0Aticodec -e -i foobar.ppm -o foobar.Ti -s 7777\0Aticodec -d -i somefile.Ti -o somefile.pgm\0Aticodec -e -i test.ppm -o test.Ti -s 10000 -B -l 9 -y 70 -b 20 -r 10\0A\00"
define void @usage() {
%1 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([913 x i8], [913 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 1)
unreachable
}