#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*/ printf(char *);
void display_help(void) {
  printf(
      "\n"
      "Usage: testdisk [/log] [/debug] [file.dd|file.e01|device]\n"
      "       testdisk /list  [/log]   [file.dd|file.e01|device]\n"
      "       testdisk /version\n"
      "\n"
      "/log          : create a testdisk.log file\n"
      "/debug        : add debug information\n"
      "/list         : display current partitions\n"
      "\n"
      "TestDisk checks and recovers lost partitions\n"
      "It works with :\n"
      "- BeFS (BeOS)                           - BSD disklabel (Free/Open/Net "
      "BSD)\n"
      "- CramFS, Compressed File System        - DOS/Windows FAT12, FAT16 and "
      "FAT32\n"
      "- XBox FATX                             - Windows exFAT\n"
      "- HFS, HFS+, Hierarchical File System   - JFS, IBM's Journaled File "
      "System\n"
      "- Linux btrfs                           - Linux ext2, ext3 and ext4\n"
      "- Linux GFS2                            - Linux LUKS\n"
      "- Linux Raid                            - Linux Swap\n"
      "- LVM, LVM2, Logical Volume Manager     - Netware NSS\n"
      "- Windows NTFS                          - ReiserFS 3.5, 3.6 and 4\n"
      "- Sun Solaris i386 disklabel            - UFS and UFS2 (Sun/BSD/...)\n"
      "- XFS, SGI's Journaled File System      - Wii WBFS\n"
      "- Sun ZFS\n");
}


x86 assembly (clang, -O0):
<display_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<display_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1038 x i8] c"\0AUsage: testdisk [/log] [/debug] [file.dd|file.e01|device]\0A testdisk /list [/log] [file.dd|file.e01|device]\0A testdisk /version\0A\0A/log : create a testdisk.log file\0A/debug : add debug information\0A/list : display current partitions\0A\0ATestDisk checks and recovers lost partitions\0AIt works with :\0A- BeFS (BeOS) - BSD disklabel (Free/Open/Net BSD)\0A- CramFS, Compressed File System - DOS/Windows FAT12, FAT16 and FAT32\0A- XBox FATX - Windows exFAT\0A- HFS, HFS+, Hierarchical File System - JFS, IBM's Journaled File System\0A- Linux btrfs - Linux ext2, ext3 and ext4\0A- Linux GFS2 - Linux LUKS\0A- Linux Raid - Linux Swap\0A- LVM, LVM2, Logical Volume Manager - Netware NSS\0A- Windows NTFS - ReiserFS 3.5, 3.6 and 4\0A- Sun Solaris i386 disklabel - UFS and UFS2 (Sun/BSD/...)\0A- XFS, SGI's Journaled File System - Wii WBFS\0A- Sun ZFS\0A\00"
define void @display_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1038 x i8], [1038 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1037 x i8] c"\0AUsage: testdisk [/log] [/debug] [file.dd|file.e01|device]\0A testdisk /list [/log] [file.dd|file.e01|device]\0A testdisk /version\0A\0A/log : create a testdisk.log file\0A/debug : add debug information\0A/list : display current partitions\0A\0ATestDisk checks and recovers lost partitions\0AIt works with :\0A- BeFS (BeOS) - BSD disklabel (Free/Open/Net BSD)\0A- CramFS, Compressed File System - DOS/Windows FAT12, FAT16 and FAT32\0A- XBox FATX - Windows exFAT\0A- HFS, HFS+, Hierarchical File System - JFS, IBM's Journaled File System\0A- Linux btrfs - Linux ext2, ext3 and ext4\0A- Linux GFS2 - Linux LUKS\0A- Linux Raid - Linux Swap\0A- LVM, LVM2, Logical Volume Manager - Netware NSS\0A- Windows NTFS - ReiserFS 3.5, 3.6 and 4\0A- Sun Solaris i386 disklabel - UFS and UFS2 (Sun/BSD/...)\0A- XFS, SGI's Journaled File System - Wii WBFS\0A- Sun ZFS\00"
define void @display_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1037 x i8], [1037 x i8]* @str, i64 0, i64 0))
ret void
}