#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*/ clientf(char *);
int /*<<< orphan*/ clientfr(char *);
void do_map_help(const char *arg) {
  clientfr("Module: IMapper. Commands:");
  clientf(" map help     - This help.\r\n"
          " area help    - Area commands help.\r\n"
          " room help    - Room commands help.\r\n"
          " exit help    - Room exit commands help.\r\n"
          " map load     - Load map.\r\n"
          " map save     - Save map.\r\n"
          " map none     - Disable following or mapping.\r\n"
          " map follow   - Enable following.\r\n"
          " map create   - Enable mapping.\r\n"
          " map path #   - Build directions to vnum #.\r\n"
          " map status   - Show general information about the map.\r\n"
          " map color    - Change the color of the room title.\r\n"
          " map file     - Set the file for map load and map save.\r\n"
          " map teleport - Manage global special exits.\r\n"
          " map queue    - Show the command queue.\r\n"
          " map queue cl - Clear the command queue.\r\n"
          " map config   - Configure the mapper.\r\n"
          " map window   - Open a floating MXP-based window.\r\n"
          " map          - Generate a map, from the current room.\r\n"
          " map #        - Generate a map centered on vnum #.\r\n"
          " landmarks    - Show all the landmarks, in the world.\r\n"
          " go/stop      - Begins, or stops speedwalking.\r\n");
}


x86 assembly (clang, -O0):
<do_map_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xecd(%rip),%rdi
call   1040 <clientfr@plt>
lea    0xedc(%rip),%rdi
call   1030 <clientf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<do_map_help>:
push   %rax
lea    0xed8(%rip),%rdi
call   1040 <clientfr@plt>
lea    0xee7(%rip),%rdi
pop    %rax
jmp    1030 <clientf@plt>

LLVM IR (-O0):
@.str = [27 x i8] c"Module: IMapper. Commands:\00"
@.str.1 = [956 x i8] c" map help - This help.\0D\0A area help - Area commands help.\0D\0A room help - Room commands help.\0D\0A exit help - Room exit commands help.\0D\0A map load - Load map.\0D\0A map save - Save map.\0D\0A map none - Disable following or mapping.\0D\0A map follow - Enable following.\0D\0A map create - Enable mapping.\0D\0A map path # - Build directions to vnum #.\0D\0A map status - Show general information about the map.\0D\0A map color - Change the color of the room title.\0D\0A map file - Set the file for map load and map save.\0D\0A map teleport - Manage global special exits.\0D\0A map queue - Show the command queue.\0D\0A map queue cl - Clear the command queue.\0D\0A map config - Configure the mapper.\0D\0A map window - Open a floating MXP-based window.\0D\0A map - Generate a map, from the current room.\0D\0A map # - Generate a map centered on vnum #.\0D\0A landmarks - Show all the landmarks, in the world.\0D\0A go/stop - Begins, or stops speedwalking.\0D\0A\00"
define void @do_map_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = call i32 @clientfr(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str, i64 0, i64 0))
%4 = call i32 @clientf(i8* getelementptr inbounds ([956 x i8], [956 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [27 x i8] c"Module: IMapper. Commands:\00"
@.str.1 = [956 x i8] c" map help - This help.\0D\0A area help - Area commands help.\0D\0A room help - Room commands help.\0D\0A exit help - Room exit commands help.\0D\0A map load - Load map.\0D\0A map save - Save map.\0D\0A map none - Disable following or mapping.\0D\0A map follow - Enable following.\0D\0A map create - Enable mapping.\0D\0A map path # - Build directions to vnum #.\0D\0A map status - Show general information about the map.\0D\0A map color - Change the color of the room title.\0D\0A map file - Set the file for map load and map save.\0D\0A map teleport - Manage global special exits.\0D\0A map queue - Show the command queue.\0D\0A map queue cl - Clear the command queue.\0D\0A map config - Configure the mapper.\0D\0A map window - Open a floating MXP-based window.\0D\0A map - Generate a map, from the current room.\0D\0A map # - Generate a map centered on vnum #.\0D\0A landmarks - Show all the landmarks, in the world.\0D\0A go/stop - Begins, or stops speedwalking.\0D\0A\00"
define void @do_map_help(i8* nocapture readnone %0) {
%2 = tail call i32 @clientfr(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @clientf(i8* getelementptr inbounds ([956 x i8], [956 x i8]* @.str.1, i64 0, i64 0))
ret void
}