#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*/ add_platform(int, int, int);
int /*<<< orphan*/ lcd_display_clear();
int /*<<< orphan*/ lcd_display_setup();
int /*<<< orphan*/ lcd_display_update();
int /*<<< orphan*/ wii_chuck_setup();
void world_setup(void) {
  add_platform(10, 10, 5);
  add_platform(20, 20, 5);
  add_platform(30, 30, 5);
  add_platform(40, 20, 5);
  add_platform(50, 20, 5);
  wii_chuck_setup();
  lcd_display_setup();
  lcd_display_clear();
  lcd_display_update();
}


x86 assembly (clang, -O0):
<world_setup>:
push   %rbp
mov    %rsp,%rbp
mov    $0xa,%esi
mov    $0x5,%edx
mov    %esi,%edi
call   1030 <add_platform@plt>
mov    $0x14,%esi
mov    $0x5,%edx
mov    %esi,%edi
call   1030 <add_platform@plt>
mov    $0x1e,%esi
mov    $0x5,%edx
mov    %esi,%edi
call   1030 <add_platform@plt>
mov    $0x28,%edi
mov    $0x14,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x32,%edi
mov    $0x14,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x0,%al
call   1070 <wii_chuck_setup@plt>
mov    $0x0,%al
call   1060 <lcd_display_setup@plt>
mov    $0x0,%al
call   1050 <lcd_display_clear@plt>
mov    $0x0,%al
call   1040 <lcd_display_update@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<world_setup>:
push   %rax
mov    $0xa,%edi
mov    $0xa,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x14,%edi
mov    $0x14,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x1e,%edi
mov    $0x1e,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x28,%edi
mov    $0x14,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
mov    $0x32,%edi
mov    $0x14,%esi
mov    $0x5,%edx
call   1030 <add_platform@plt>
xor    %eax,%eax
call   1070 <wii_chuck_setup@plt>
xor    %eax,%eax
call   1060 <lcd_display_setup@plt>
xor    %eax,%eax
call   1050 <lcd_display_clear@plt>
xor    %eax,%eax
pop    %rcx
jmp    1040 <lcd_display_update@plt>

LLVM IR (-O0):
define void @world_setup() {
%1 = call i32 @add_platform(i32 10, i32 10, i32 5)
%2 = call i32 @add_platform(i32 20, i32 20, i32 5)
%3 = call i32 @add_platform(i32 30, i32 30, i32 5)
%4 = call i32 @add_platform(i32 40, i32 20, i32 5)
%5 = call i32 @add_platform(i32 50, i32 20, i32 5)
%6 = call i32 (...) @wii_chuck_setup()
%7 = call i32 (...) @lcd_display_setup()
%8 = call i32 (...) @lcd_display_clear()
%9 = call i32 (...) @lcd_display_update()
ret void
}

LLVM IR (-O2):
define void @world_setup() {
%1 = tail call i32 @add_platform(i32 10, i32 10, i32 5)
%2 = tail call i32 @add_platform(i32 20, i32 20, i32 5)
%3 = tail call i32 @add_platform(i32 30, i32 30, i32 5)
%4 = tail call i32 @add_platform(i32 40, i32 20, i32 5)
%5 = tail call i32 @add_platform(i32 50, i32 20, i32 5)
%6 = tail call i32 (...) @wii_chuck_setup()
%7 = tail call i32 (...) @lcd_display_setup()
%8 = tail call i32 (...) @lcd_display_clear()
%9 = tail call i32 (...) @lcd_display_update()
ret void
}