#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*/ puts(char *);
int /*<<< orphan*/ sha256_calc(char *, char *);
int main(void) {
  puts("Start.");
  sha256_calc(
      "1234567890_1",
      "3eda9ffe5537a588f54d0b2a453e5fa932986d0bc0f9556924f5c2379b2c91b0");
  sha256_calc(
      "1234567890_2",
      "a144d0b4d285260ebbbab6840baceaa09eab3e157443c9458de764b7262c8ace");
  sha256_calc(
      "1234567890_3",
      "9f839169d293276d1b799707d2171ac1fd5b78d0f3bc7693dbed831524dd2d77");
  sha256_calc(
      "1234567890_4",
      "6c5fe2a8e3de58a5e5ac061031a8e802ae1fb9e7197862ec1aedf236f0e23475");
  sha256_calc(
      "0123456789abcde-0123456789abcde-0123456789abcde-0123456789abcde-",
      "945ab9d52b069923680c2c067fa6092cbbd9234cf7a38628f3033b2d54d3d3bf");
  sha256_calc(
      "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern",
      "d32b568cd1b96d459e7291ebf4b25d007f275c9f13149beeb782fac0716613f8");
  sha256_calc(
      "Frank jagt im komplett verwahrlosten Taxi quer durch Bayern",
      "78206a866dbb2bf017d8e34274aed01a8ce405b69d45db30bafa00f5eeed7d5e");
  sha256_calc(
      "", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
  puts("Done.");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeca(%rip),%rdi
call   1030 <puts@plt>
lea    0xec5(%rip),%rdi
lea    0xecb(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf00(%rip),%rdi
lea    0xf06(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf3b(%rip),%rdi
lea    0xf41(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf76(%rip),%rdi
lea    0xf7c(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xfb1(%rip),%rdi
lea    0xfeb(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x1020(%rip),%rdi
lea    0x1055(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x108a(%rip),%rdi
lea    0x10bf(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xfb8(%rip),%rdi
lea    0x10ed(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x1122(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
lea    0xed3(%rip),%rdi
lea    0xed9(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf0e(%rip),%rdi
lea    0xf14(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf49(%rip),%rdi
lea    0xf4f(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xf84(%rip),%rdi
lea    0xf8a(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xfbf(%rip),%rdi
lea    0xff9(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x102e(%rip),%rdi
lea    0x1063(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x1098(%rip),%rdi
lea    0x10cd(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0xfc6(%rip),%rdi
lea    0x10fb(%rip),%rsi
call   1040 <sha256_calc@plt>
lea    0x1130(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [7 x i8] c"Start.\00"
@.str.1 = [13 x i8] c"1234567890_1\00"
@.str.2 = [65 x i8] c"3eda9ffe5537a588f54d0b2a453e5fa932986d0bc0f9556924f5c2379b2c91b0\00"
@.str.3 = [13 x i8] c"1234567890_2\00"
@.str.4 = [65 x i8] c"a144d0b4d285260ebbbab6840baceaa09eab3e157443c9458de764b7262c8ace\00"
@.str.5 = [13 x i8] c"1234567890_3\00"
@.str.6 = [65 x i8] c"9f839169d293276d1b799707d2171ac1fd5b78d0f3bc7693dbed831524dd2d77\00"
@.str.7 = [13 x i8] c"1234567890_4\00"
@.str.8 = [65 x i8] c"6c5fe2a8e3de58a5e5ac061031a8e802ae1fb9e7197862ec1aedf236f0e23475\00"
@.str.9 = [65 x i8] c"0123456789abcde-0123456789abcde-0123456789abcde-0123456789abcde-\00"
@.str.10 = [65 x i8] c"945ab9d52b069923680c2c067fa6092cbbd9234cf7a38628f3033b2d54d3d3bf\00"
@.str.11 = [60 x i8] c"Franz jagt im komplett verwahrlosten Taxi quer durch Bayern\00"
@.str.12 = [65 x i8] c"d32b568cd1b96d459e7291ebf4b25d007f275c9f13149beeb782fac0716613f8\00"
@.str.13 = [60 x i8] c"Frank jagt im komplett verwahrlosten Taxi quer durch Bayern\00"
@.str.14 = [65 x i8] c"78206a866dbb2bf017d8e34274aed01a8ce405b69d45db30bafa00f5eeed7d5e\00"
@.str.15 = [1 x i8] zeroinitializer
@.str.16 = [65 x i8] c"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\00"
@.str.17 = [6 x i8] c"Done.\00"
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 @puts(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.4, i64 0, i64 0))
%5 = call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.6, i64 0, i64 0))
%6 = call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.8, i64 0, i64 0))
%7 = call i32 @sha256_calc(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.10, i64 0, i64 0))
%8 = call i32 @sha256_calc(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.12, i64 0, i64 0))
%9 = call i32 @sha256_calc(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.14, i64 0, i64 0))
%10 = call i32 @sha256_calc(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.16, i64 0, i64 0))
%11 = call i32 @puts(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@.str = [7 x i8] c"Start.\00"
@.str.1 = [13 x i8] c"1234567890_1\00"
@.str.2 = [65 x i8] c"3eda9ffe5537a588f54d0b2a453e5fa932986d0bc0f9556924f5c2379b2c91b0\00"
@.str.3 = [13 x i8] c"1234567890_2\00"
@.str.4 = [65 x i8] c"a144d0b4d285260ebbbab6840baceaa09eab3e157443c9458de764b7262c8ace\00"
@.str.5 = [13 x i8] c"1234567890_3\00"
@.str.6 = [65 x i8] c"9f839169d293276d1b799707d2171ac1fd5b78d0f3bc7693dbed831524dd2d77\00"
@.str.7 = [13 x i8] c"1234567890_4\00"
@.str.8 = [65 x i8] c"6c5fe2a8e3de58a5e5ac061031a8e802ae1fb9e7197862ec1aedf236f0e23475\00"
@.str.9 = [65 x i8] c"0123456789abcde-0123456789abcde-0123456789abcde-0123456789abcde-\00"
@.str.10 = [65 x i8] c"945ab9d52b069923680c2c067fa6092cbbd9234cf7a38628f3033b2d54d3d3bf\00"
@.str.11 = [60 x i8] c"Franz jagt im komplett verwahrlosten Taxi quer durch Bayern\00"
@.str.12 = [65 x i8] c"d32b568cd1b96d459e7291ebf4b25d007f275c9f13149beeb782fac0716613f8\00"
@.str.13 = [60 x i8] c"Frank jagt im komplett verwahrlosten Taxi quer durch Bayern\00"
@.str.14 = [65 x i8] c"78206a866dbb2bf017d8e34274aed01a8ce405b69d45db30bafa00f5eeed7d5e\00"
@.str.15 = [1 x i8] zeroinitializer
@.str.16 = [65 x i8] c"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\00"
@.str.17 = [6 x i8] c"Done.\00"
define i32 @main() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.2, i64 0, i64 0))
%3 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.4, i64 0, i64 0))
%4 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.6, i64 0, i64 0))
%5 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.8, i64 0, i64 0))
%6 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.10, i64 0, i64 0))
%7 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.12, i64 0, i64 0))
%8 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.14, i64 0, i64 0))
%9 = tail call i32 @sha256_calc(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.16, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
ret i32 0
}