#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fputs(char *, int /*<<< orphan*/ *);
void CreateCopyProductsBat(FILE *File) {
  fputs("copy /y PPJoyBus\\objfre_wxp_x86\\i386\\PPJoyBus.sys %1\\"
        "PPJoyBus"
        ".sys"
        "\n"
        "copy /y PPJoyBus\\objchk_wxp_x86\\i386\\PPJoyBus.sys %2\\"
        "PPJoyBus"
        ".sys"
        "\n"
        "copy /y PPJoyBus\\objfre_wlh_amd64\\amd64\\PPJoyBus64.sys %1\\"
        "PPJoyBus"
        "64.sys"
        "\n"
        "copy /y PPJoyBus\\objchk_wlh_amd64\\amd64\\PPJoyBus64.sys %2\\"
        "PPJoyBus"
        "64.sys"
        "\n"
        "\n"
        "copy /y PPortJoy\\objfre_wxp_x86\\i386\\PPortJoy.sys %1\\"
        "PPortJoy"
        ".sys"
        "\n"
        "copy /y PPortJoy\\objchk_wxp_x86\\i386\\PPortJoy.sys %2\\"
        "PPortJoy"
        ".sys"
        "\n"
        "copy /y PPortJoy\\objfre_wlh_amd64\\amd64\\PPortJoy64.sys %1\\"
        "PPortJoy"
        "64.sys"
        "\n"
        "copy /y PPortJoy\\objchk_wlh_amd64\\amd64\\PPortJoy64.sys %2\\"
        "PPortJoy"
        "64.sys"
        "\n"
        "\n"
        "copy /y W98Ports\\objfre_wxp_x86\\i386\\W98Ports.sys %1\\"
        "W98Ports"
        ".sys"
        "\n"
        "copy /y W98Ports\\objchk_wxp_x86\\i386\\W98Ports.sys %2\\"
        "W98Ports"
        ".sys"
        "\n"
        "\n"
        "copy /y PPJoyCpl\\Release\\PPortJoy.cpl %1\\"
        "PPortJoy.cpl"
        "\n"
        "copy /y PPJoyCpl\\Debug\\PPortJoy.cpl %2\\"
        "PPortJoy.cpl"
        "\n"
        "\n",
        File);
}


x86 assembly (clang, -O0):
<CreateCopyProductsBat>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
call   1030 <fputs@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<CreateCopyProductsBat>:
mov    %rdi,%rcx
lea    0xee6(%rip),%rdi
mov    $0x31e,%esi
mov    $0x1,%edx
jmp    1030 <fwrite@plt>

LLVM IR (-O0):
@.str = [799 x i8] c"copy /y PPJoyBus\\objfre_wxp_x86\\i386\\PPJoyBus.sys %1\\PPJoyBus.sys\0Acopy /y PPJoyBus\\objchk_wxp_x86\\i386\\PPJoyBus.sys %2\\PPJoyBus.sys\0Acopy /y PPJoyBus\\objfre_wlh_amd64\\amd64\\PPJoyBus64.sys %1\\PPJoyBus64.sys\0Acopy /y PPJoyBus\\objchk_wlh_amd64\\amd64\\PPJoyBus64.sys %2\\PPJoyBus64.sys\0A\0Acopy /y PPortJoy\\objfre_wxp_x86\\i386\\PPortJoy.sys %1\\PPortJoy.sys\0Acopy /y PPortJoy\\objchk_wxp_x86\\i386\\PPortJoy.sys %2\\PPortJoy.sys\0Acopy /y PPortJoy\\objfre_wlh_amd64\\amd64\\PPortJoy64.sys %1\\PPortJoy64.sys\0Acopy /y PPortJoy\\objchk_wlh_amd64\\amd64\\PPortJoy64.sys %2\\PPortJoy64.sys\0A\0Acopy /y W98Ports\\objfre_wxp_x86\\i386\\W98Ports.sys %1\\W98Ports.sys\0Acopy /y W98Ports\\objchk_wxp_x86\\i386\\W98Ports.sys %2\\W98Ports.sys\0A\0Acopy /y PPJoyCpl\\Release\\PPortJoy.cpl %1\\PPortJoy.cpl\0Acopy /y PPJoyCpl\\Debug\\PPortJoy.cpl %2\\PPortJoy.cpl\0A\0A\00"
define void @CreateCopyProductsBat(i32* %0) {
%2 = alloca i32*
store i32* %0, i32** %2
%3 = load i32*, i32** %2
%4 = call i32 @fputs(i8* getelementptr inbounds ([799 x i8], [799 x i8]* @.str, i64 0, i64 0), i32* %3)
ret void
}

LLVM IR (-O2):
@.str = [799 x i8] c"copy /y PPJoyBus\\objfre_wxp_x86\\i386\\PPJoyBus.sys %1\\PPJoyBus.sys\0Acopy /y PPJoyBus\\objchk_wxp_x86\\i386\\PPJoyBus.sys %2\\PPJoyBus.sys\0Acopy /y PPJoyBus\\objfre_wlh_amd64\\amd64\\PPJoyBus64.sys %1\\PPJoyBus64.sys\0Acopy /y PPJoyBus\\objchk_wlh_amd64\\amd64\\PPJoyBus64.sys %2\\PPJoyBus64.sys\0A\0Acopy /y PPortJoy\\objfre_wxp_x86\\i386\\PPortJoy.sys %1\\PPortJoy.sys\0Acopy /y PPortJoy\\objchk_wxp_x86\\i386\\PPortJoy.sys %2\\PPortJoy.sys\0Acopy /y PPortJoy\\objfre_wlh_amd64\\amd64\\PPortJoy64.sys %1\\PPortJoy64.sys\0Acopy /y PPortJoy\\objchk_wlh_amd64\\amd64\\PPortJoy64.sys %2\\PPortJoy64.sys\0A\0Acopy /y W98Ports\\objfre_wxp_x86\\i386\\W98Ports.sys %1\\W98Ports.sys\0Acopy /y W98Ports\\objchk_wxp_x86\\i386\\W98Ports.sys %2\\W98Ports.sys\0A\0Acopy /y PPJoyCpl\\Release\\PPortJoy.cpl %1\\PPortJoy.cpl\0Acopy /y PPJoyCpl\\Debug\\PPortJoy.cpl %2\\PPortJoy.cpl\0A\0A\00"
define void @CreateCopyProductsBat(i32* nocapture %0) {
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([799 x i8], [799 x i8]* @.str, i64 0, i64 0), i64 798, i64 1, i32* %0)
ret void
}