#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*/ problem1(int, int, int);
int /*<<< orphan*/ problem10(int);
int /*<<< orphan*/ problem11(int, char *, int, int);
int /*<<< orphan*/ problem2(int, int);
int /*<<< orphan*/ problem3(int);
int /*<<< orphan*/ problem4(int, int);
int /*<<< orphan*/ problem5(int, int);
int /*<<< orphan*/ problem6(int);
int /*<<< orphan*/ problem7(int);
int /*<<< orphan*/ problem8(int, char *, int, int);
int /*<<< orphan*/ problem9(int);
int main() {
  problem1(3, 5, 1000);
  problem2(false, 4000000);
  problem3(600851475143);
  problem4(10, 3);
  problem5(1, 20);
  problem6(100);
  problem7(10001);
  problem8(5, "problem8.strings", 20, 50);
  problem9(1000);
  problem10(2000000);
  problem11(4, "problem11.strings", 20, 20);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
mov    $0x3,%edi
mov    $0x5,%esi
mov    $0x3e8,%edx
call   10b0 <problem1@plt>
xor    %edi,%edi
mov    $0x3d0900,%esi
call   1060 <problem2@plt>
mov    $0xe589eac7,%edi
call   10c0 <problem3@plt>
mov    $0xa,%edi
mov    $0x3,%esi
call   1070 <problem4@plt>
mov    $0x1,%edi
mov    $0x14,%esi
call   10d0 <problem5@plt>
mov    $0x64,%edi
call   1040 <problem6@plt>
mov    $0x2711,%edi
call   1090 <problem7@plt>
mov    $0x5,%edi
lea    0xde4(%rip),%rsi
mov    $0x14,%edx
mov    $0x32,%ecx
call   1050 <problem8@plt>
mov    $0x3e8,%edi
call   10a0 <problem9@plt>
mov    $0x1e8480,%edi
call   1030 <problem10@plt>
mov    $0x4,%edi
lea    0xdc6(%rip),%rsi
mov    $0x14,%ecx
mov    %ecx,%edx
call   1080 <problem11@plt>
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
mov    $0x3,%edi
mov    $0x5,%esi
mov    $0x3e8,%edx
call   10b0 <problem1@plt>
xor    %edi,%edi
mov    $0x3d0900,%esi
call   1060 <problem2@plt>
mov    $0xe589eac7,%edi
call   10c0 <problem3@plt>
mov    $0xa,%edi
mov    $0x3,%esi
call   1070 <problem4@plt>
mov    $0x1,%edi
mov    $0x14,%esi
call   10d0 <problem5@plt>
mov    $0x64,%edi
call   1040 <problem6@plt>
mov    $0x2711,%edi
call   1090 <problem7@plt>
lea    0xdec(%rip),%rsi
mov    $0x5,%edi
mov    $0x14,%edx
mov    $0x32,%ecx
call   1050 <problem8@plt>
mov    $0x3e8,%edi
call   10a0 <problem9@plt>
mov    $0x1e8480,%edi
call   1030 <problem10@plt>
lea    0xdce(%rip),%rsi
mov    $0x4,%edi
mov    $0x14,%edx
mov    $0x14,%ecx
call   1080 <problem11@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [17 x i8] c"problem8.strings\00"
@.str.1 = [18 x i8] c"problem11.strings\00"
define i32 @main() {
%1 = call i32 @problem1(i32 3, i32 5, i32 1000)
%2 = call i32 @problem2(i32 0, i32 4000000)
%3 = call i32 @problem3(i32 -443946297)
%4 = call i32 @problem4(i32 10, i32 3)
%5 = call i32 @problem5(i32 1, i32 20)
%6 = call i32 @problem6(i32 100)
%7 = call i32 @problem7(i32 10001)
%8 = call i32 @problem8(i32 5, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i32 20, i32 50)
%9 = call i32 @problem9(i32 1000)
%10 = call i32 @problem10(i32 2000000)
%11 = call i32 @problem11(i32 4, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 20, i32 20)
ret i32 0
}

LLVM IR (-O2):
@.str = [17 x i8] c"problem8.strings\00"
@.str.1 = [18 x i8] c"problem11.strings\00"
define i32 @main() {
%1 = tail call i32 @problem1(i32 3, i32 5, i32 1000)
%2 = tail call i32 @problem2(i32 0, i32 4000000)
%3 = tail call i32 @problem3(i32 -443946297)
%4 = tail call i32 @problem4(i32 10, i32 3)
%5 = tail call i32 @problem5(i32 1, i32 20)
%6 = tail call i32 @problem6(i32 100)
%7 = tail call i32 @problem7(i32 10001)
%8 = tail call i32 @problem8(i32 5, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i32 20, i32 50)
%9 = tail call i32 @problem9(i32 1000)
%10 = tail call i32 @problem10(i32 2000000)
%11 = tail call i32 @problem11(i32 4, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 20, i32 20)
ret i32 0
}