#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*/ fprintf(int /*<<< orphan*/, char *, char const *, int,
                           char const *);
int /*<<< orphan*/ stderr;
void print_help(const char *self) {
  fprintf(
      stderr,
      "  Userspace I2C utility for: ST-NXP TEA5767 FM Receiver\n  (C) Chi "
      "Zhang (dword1511) <zhangchi866@gmail.com>\n  \n  Usage:\n    %s -b <bus "
      "number> [list of operations]\n  \n  Operations will be carried out in "
      "argument list order.\n  Bus number and address can be overrided in the "
      "middle of the list.\n  \n  List of operations:\n    -a <int>: override "
      "device address (default: 0x%02x, in range 0x03 to 0x7f).\n              "
      "NOTE: this value will NOT be reset to default after switching\n         "
      "           bus.\n              WARN: use this option only when you know "
      "what you are doing!\n    -b <int>: set bus number (must be set prior to "
      "any operations).\n              NOTE: you can use `i2cdetect -l' to "
      "list I2C buses present in the\n                    system.\n    -f "
      "<flt>: set frequency in MHz.\n  \n  Example:\n    Tune TEA5767 on i2c-1 "
      "to 104.1MHz:\n      %s -b 1 -f 104.1\n  \n",
      self, (0x60), self);
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
mov    -0x8(%rbp),%r8
lea    0xecc(%rip),%rsi
mov    $0x60,%ecx
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
mov    %rdi,%rdx
mov    0x2ec6(%rip),%rax
mov    (%rax),%edi
lea    0xedd(%rip),%rsi
mov    $0x60,%ecx
mov    %rdx,%r8
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [866 x i8] c" Userspace I2C utility for: ST-NXP TEA5767 FM Receiver\0A (C) Chi Zhang (dword1511) <zhangchi866@gmail.com>\0A \0A Usage:\0A %s -b <bus number> [list of operations]\0A \0A Operations will be carried out in argument list order.\0A Bus number and address can be overrided in the middle of the list.\0A \0A List of operations:\0A -a <int>: override device address (default: 0x%02x, in range 0x03 to 0x7f).\0A NOTE: this value will NOT be reset to default after switching\0A bus.\0A WARN: use this option only when you know what you are doing!\0A -b <int>: set bus number (must be set prior to any operations).\0A NOTE: you can use `i2cdetect -l' to list I2C buses present in the\0A system.\0A -f <flt>: set frequency in MHz.\0A \0A Example:\0A Tune TEA5767 on i2c-1 to 104.1MHz:\0A %s -b 1 -f 104.1\0A \0A\00"
define void @print_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = load i8*, i8** %2
%6 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([866 x i8], [866 x i8]* @.str, i64 0, i64 0), i8* %4, i32 96, i8* %5)
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [866 x i8] c" Userspace I2C utility for: ST-NXP TEA5767 FM Receiver\0A (C) Chi Zhang (dword1511) <zhangchi866@gmail.com>\0A \0A Usage:\0A %s -b <bus number> [list of operations]\0A \0A Operations will be carried out in argument list order.\0A Bus number and address can be overrided in the middle of the list.\0A \0A List of operations:\0A -a <int>: override device address (default: 0x%02x, in range 0x03 to 0x7f).\0A NOTE: this value will NOT be reset to default after switching\0A bus.\0A WARN: use this option only when you know what you are doing!\0A -b <int>: set bus number (must be set prior to any operations).\0A NOTE: you can use `i2cdetect -l' to list I2C buses present in the\0A system.\0A -f <flt>: set frequency in MHz.\0A \0A Example:\0A Tune TEA5767 on i2c-1 to 104.1MHz:\0A %s -b 1 -f 104.1\0A \0A\00"
define void @print_help(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([866 x i8], [866 x i8]* @.str, i64 0, i64 0), i8* %0, i32 96, i8* %0)
ret void
}