#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 /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
void show_help(void) {
  printf(
      "\nwavfix, version 0.1 by Adrien Gesta-Fline\n\nwavfix can repair "
      "corrupted wave files while keeping all meta-chunks intact.\nIts  "
      "ability  to  preserve  metadata  ensures  software  compatibility  and "
      "\nworkflow integrity.\n\nusage : wavfix <options> broken_file.wav\n\n   "
      " audio options :\n        -f, --frequency   <n>     set frequency to n "
      "Hz (44100, 48000, etc.)\n        -b, --bit-depth   <n>     set "
      "bit-depth to n bits (16, 24, 32, etc.)\n        -c, --channels    <n>   "
      "  set channels number to  n  channels (1 for\n                          "
      "        mono, 2 for stereo, etc.)\n\n        -F                        "
      "force using previous values instead of the\n                            "
      "      ones contained in <bext> chunk if present.\n\n    output "
      "options:\n        -s, --suffix              repaired file names will  "
      "be  the same  as\n                                  the broken ones "
      "plus this suffix.  Default\n                                  is "
      "'_REPAIRED'.\n\n    misc options :\n        -N, --no-repair           "
      "use this option to only investigate files.\n        -h, --help          "
      "      display this help\n\n");
  exit(0);
}


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

x86 assembly (clang, -O2):
<show_help>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [1103 x i8] c"\0Awavfix, version 0.1 by Adrien Gesta-Fline\0A\0Awavfix can repair corrupted wave files while keeping all meta-chunks intact.\0AIts ability to preserve metadata ensures software compatibility and \0Aworkflow integrity.\0A\0Ausage : wavfix <options> broken_file.wav\0A\0A audio options :\0A -f, --frequency <n> set frequency to n Hz (44100, 48000, etc.)\0A -b, --bit-depth <n> set bit-depth to n bits (16, 24, 32, etc.)\0A -c, --channels <n> set channels number to n channels (1 for\0A mono, 2 for stereo, etc.)\0A\0A -F force using previous values instead of the\0A ones contained in <bext> chunk if present.\0A\0A output options:\0A -s, --suffix repaired file names will be the same as\0A the broken ones plus this suffix. Default\0A is '_REPAIRED'.\0A\0A misc options :\0A -N, --no-repair use this option to only investigate files.\0A -h, --help display this help\0A\0A\00"
define void @show_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1103 x i8], [1103 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [1102 x i8] c"\0Awavfix, version 0.1 by Adrien Gesta-Fline\0A\0Awavfix can repair corrupted wave files while keeping all meta-chunks intact.\0AIts ability to preserve metadata ensures software compatibility and \0Aworkflow integrity.\0A\0Ausage : wavfix <options> broken_file.wav\0A\0A audio options :\0A -f, --frequency <n> set frequency to n Hz (44100, 48000, etc.)\0A -b, --bit-depth <n> set bit-depth to n bits (16, 24, 32, etc.)\0A -c, --channels <n> set channels number to n channels (1 for\0A mono, 2 for stereo, etc.)\0A\0A -F force using previous values instead of the\0A ones contained in <bext> chunk if present.\0A\0A output options:\0A -s, --suffix repaired file names will be the same as\0A the broken ones plus this suffix. Default\0A is '_REPAIRED'.\0A\0A misc options :\0A -N, --no-repair use this option to only investigate files.\0A -h, --help display this help\0A\00"
define void @show_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1102 x i8], [1102 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 0)
unreachable
}