#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *);
void print_usage(FILE *file) {
  fprintf(
      file,
      "Usage: Call from the same directory where your data files are located "
      "and pass\n"
      "       the following arguments:\n"
      "  "
      "-ext"
      " WLX   "
      " Set the extension of the data files to the argument WLX\n"
      "  "
      "-dbg"
      " n     "
      " Set the level of debug messages (default 0, no messages)\n"
      "  "
      "-la"
      "        "
      " Extract the atlas of the levels\n"
      "  "
      "-lh"
      "  e l   "
      " Extract the header data for the specified level (level and episode "
      "given as numbers)\n"
      "  "
      "-lm"
      "  e l m "
      " Extract the specified map for the specified level (map in the range 0 "
      "- 2)\n"
      "  "
      "-po"
      "        "
      " Extract the picture offsets\n"
      "  "
      "-pt"
      "        "
      " Extract the picture table\n"
      "  "
      "-pic"
      " m     "
      " Extract the picture with the specified magic number\n"
      "  "
      "-tex"
      " m     "
      " Extract the texture with the specified magic number\n"
      "  "
      "-spr"
      " m     "
      " Extract the sprite with the specified magic number\n"
      "  "
      "-snd"
      " m f   "
      " Extract the sound effect with the specified magic number and format\n"
      "  "
      "-mus"
      " m     "
      " Extract the music track with the specified magic number\n"
      "The output is printed to the standard output, so you'll want to "
      "redirect it into\n"
      "another file or pipe it into another program.\n"
      "Arguments are processed in the order they are given, so if for exapmle "
      "you want\n"
      "to specify the extension you have to do it before trying to extract an "
      "asset.\n");
}


x86 assembly (clang, -O0):
<print_usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xed9(%rip),%rsi
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_usage>:
mov    %rdi,%rcx
lea    0xee6(%rip),%rdi
mov    $0x4b2,%esi
mov    $0x1,%edx
jmp    1030 <fwrite@plt>

LLVM IR (-O0):
@.str = [1203 x i8] c"Usage: Call from the same directory where your data files are located and pass\0A the following arguments:\0A -ext WLX Set the extension of the data files to the argument WLX\0A -dbg n Set the level of debug messages (default 0, no messages)\0A -la Extract the atlas of the levels\0A -lh e l Extract the header data for the specified level (level and episode given as numbers)\0A -lm e l m Extract the specified map for the specified level (map in the range 0 - 2)\0A -po Extract the picture offsets\0A -pt Extract the picture table\0A -pic m Extract the picture with the specified magic number\0A -tex m Extract the texture with the specified magic number\0A -spr m Extract the sprite with the specified magic number\0A -snd m f Extract the sound effect with the specified magic number and format\0A -mus m Extract the music track with the specified magic number\0AThe output is printed to the standard output, so you'll want to redirect it into\0Aanother file or pipe it into another program.\0AArguments are processed in the order they are given, so if for exapmle you want\0Ato specify the extension you have to do it before trying to extract an asset.\0A\00"
define void @print_usage(i32* %0) {
%2 = alloca i32*
store i32* %0, i32** %2
%3 = load i32*, i32** %2
%4 = call i32 @fprintf(i32* %3, i8* getelementptr inbounds ([1203 x i8], [1203 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1203 x i8] c"Usage: Call from the same directory where your data files are located and pass\0A the following arguments:\0A -ext WLX Set the extension of the data files to the argument WLX\0A -dbg n Set the level of debug messages (default 0, no messages)\0A -la Extract the atlas of the levels\0A -lh e l Extract the header data for the specified level (level and episode given as numbers)\0A -lm e l m Extract the specified map for the specified level (map in the range 0 - 2)\0A -po Extract the picture offsets\0A -pt Extract the picture table\0A -pic m Extract the picture with the specified magic number\0A -tex m Extract the texture with the specified magic number\0A -spr m Extract the sprite with the specified magic number\0A -snd m f Extract the sound effect with the specified magic number and format\0A -mus m Extract the music track with the specified magic number\0AThe output is printed to the standard output, so you'll want to redirect it into\0Aanother file or pipe it into another program.\0AArguments are processed in the order they are given, so if for exapmle you want\0Ato specify the extension you have to do it before trying to extract an asset.\0A\00"
define void @print_usage(i32* nocapture %0) {
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([1203 x i8], [1203 x i8]* @.str, i64 0, i64 0), i64 1202, i64 1, i32* %0)
ret void
}