#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*/ derro(int);
int /*<<< orphan*/ niceprint(char *);
int /*<<< orphan*/ patrol(int);
int /*<<< orphan*/ putchar(char);
void rioters(void) {
  niceprint("A mob of derro rampages through the streets. Five of them detach "
            "from the mob to attack the characters. "
            "Four duergar patrols arrive when the characters kill the last "
            "derro, but they simply nod at the "
            "characters before repressing the rest of the mob.  Word quickly "
            "spreads that the characters helped the "
            "city guard control the unruly derro scum. At your discretion, "
            "give the characters advantage on checks "
            "made to interact with any duergar in the city until such time as "
            "the benefit seems no longer appropriate.");
  (void)putchar('\n');
  derro(5);
  patrol(4);
}


x86 assembly (clang, -O0):
<rioters>:
push   %rbp
mov    %rsp,%rbp
lea    0xeb5(%rip),%rdi
call   1060 <niceprint@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    $0x5,%edi
call   1050 <derro@plt>
mov    $0x4,%edi
call   1040 <patrol@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<rioters>:
push   %rax
lea    0xeb8(%rip),%rdi
call   1060 <niceprint@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    $0x5,%edi
call   1050 <derro@plt>
mov    $0x4,%edi
pop    %rax
jmp    1040 <patrol@plt>

LLVM IR (-O0):
@.str = [511 x i8] c"A mob of derro rampages through the streets. Five of them detach from the mob to attack the characters. Four duergar patrols arrive when the characters kill the last derro, but they simply nod at the characters before repressing the rest of the mob. Word quickly spreads that the characters helped the city guard control the unruly derro scum. At your discretion, give the characters advantage on checks made to interact with any duergar in the city until such time as the benefit seems no longer appropriate.\00"
define void @rioters() {
%1 = call i32 @niceprint(i8* getelementptr inbounds ([511 x i8], [511 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @putchar(i8 signext 10)
%3 = call i32 @derro(i32 5)
%4 = call i32 @patrol(i32 4)
ret void
}

LLVM IR (-O2):
@.str = [511 x i8] c"A mob of derro rampages through the streets. Five of them detach from the mob to attack the characters. Four duergar patrols arrive when the characters kill the last derro, but they simply nod at the characters before repressing the rest of the mob. Word quickly spreads that the characters helped the city guard control the unruly derro scum. At your discretion, give the characters advantage on checks made to interact with any duergar in the city until such time as the benefit seems no longer appropriate.\00"
define void @rioters() {
%1 = tail call i32 @niceprint(i8* getelementptr inbounds ([511 x i8], [511 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @putchar(i8 signext 10)
%3 = tail call i32 @derro(i32 5)
%4 = tail call i32 @patrol(i32 4)
ret void
}