#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 conv_date(int *, int *, int);
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *, ...);
int parse_cmd_jdoy(char *, int *, int *, int *);
int /*<<< orphan*/ sprintf(char *, char *, char *, char *, ...);
int /*<<< orphan*/ stderr;
int /*<<< orphan*/ stdout;
scalar_t__ strcmp(char *, char *);
int /*<<< orphan*/ strcpy(char *, char *);
int main(int argc, char *argv[]) {
  int st = 1;
  int mm, dd, yy;
  char date_str[50];
  if ((argc == 2) &&
      ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "-help") == 0))) {
    fprintf(stderr, "%s\n",
            "NAME \n"
            "	jdoy - convert julian day to day of month and vice versa \n"
            "\n"
            "SYNOPSIS \n"
            "	jody [-help] \n"
            "	jdoy [yyyy-mm-dd] [yyyy-jjj] \n"
            " \n"
            "	echo [yyyy-mm-dd] [yyyy-jjj] | jdoy \n"
            " \n"
            "DESCRIPTION \n"
            "	Convert the input date in Julian day number to date in month "
            "day and \n"
            " year format. If the date input is in month day and year format "
            "then the \n"
            " routine will return the date in julian day number. \n"
            " \n"
            "OPTIONS \n"
            "	-help                       Display this help message \n"
            "	yyyy-mm-dd                  Input date in day of month format "
            "\n"
            "	                            '-' can be omitted or replaced by "
            "a space\n"
            "	yyyy-jjj                    Input date in julian day number \n"
            "	                            '-' can be omitted or replaced by "
            "a space\n"
            "	                            Year can omitted for the current "
            "year \n"
            " \n"
            "Examples: \n"
            "	jdoy 1997-2-25 \n"
            "	jdoy 1997265 \n"
            " \n"
            "Last update: 05/25/1999 \n"
            "Please report problems to Sadashiva Devadiga "
            "(devadiga@ltpmail.gsfc.nasa.gov) \n");
    exit(0);
  }
  if (argc == 2)
    strcpy(date_str, argv[1]);
  else if (argc == 3)
    sprintf(date_str, "%s %s", argv[1], argv[2]);
  else if (argc == 4)
    sprintf(date_str, "%s %s %s", argv[1], argv[2], argv[3]);
  if ((argc == 1) || ((st = parse_cmd_jdoy(date_str, &mm, &dd, &yy)) == -1)) {
    fprintf(stderr, "%s\n",
            "usage:		jdoy [yyyy-mm-dd] [yyyy-jjj] \n"
            " \n"
            "OPTIONS \n"
            "	-help                       Display this help message \n"
            "	yyyy-mm-dd                  Input date in day of month format "
            "\n"
            "	                            '-' can be omitted or replaced by "
            "a space\n"
            "	yyyy-jjj                    Input date in julian day number \n"
            "	                            '-' can be omitted or replaced by "
            "a space\n"
            "	                            Year can omitted for the current "
            "year \n"
            " \n");
    exit(1);
  } else {
    st = (mm == 0) ? 2 : 3;
    if (conv_date(&mm, &dd, yy) != -1) {
      if (st == 2)
        fprintf(stdout, "\tJulian day: %s\tDate(y m d): %d %d %d\n", date_str,
                yy, mm, dd);
      else
        fprintf(stdout, "\tDate: %s\tJulian day: %d %d\n", date_str, yy, dd);
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x1,-0x14(%rbp)
cmpl   $0x2,-0x8(%rbp)
jne    11f8 <main+0x88>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xe5a(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     11d3 <main+0x63>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xe3f(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    11f8 <main+0x88>
mov    0x2e06(%rip),%rax
mov    (%rax),%edi
lea    0xe26(%rip),%rsi
lea    0xe23(%rip),%rdx
mov    $0x0,%al
call   1060 <fprintf@plt>
xor    %edi,%edi
call   1080 <exit@plt>
cmpl   $0x2,-0x8(%rbp)
jne    1218 <main+0xa8>
lea    -0x60(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rsi
call   1030 <strcpy@plt>
jmp    1287 <main+0x117>
cmpl   $0x3,-0x8(%rbp)
jne    1249 <main+0xd9>
lea    -0x60(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdx
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rcx
lea    0x1175(%rip),%rsi
mov    $0x0,%al
call   1070 <sprintf@plt>
jmp    1282 <main+0x112>
cmpl   $0x4,-0x8(%rbp)
jne    127d <main+0x10d>
lea    -0x60(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdx
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rcx
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%r8
lea    0x1139(%rip),%rsi
mov    $0x0,%al
call   1070 <sprintf@plt>
jmp    1282 <main+0x112>
jmp    1287 <main+0x117>
cmpl   $0x1,-0x8(%rbp)
je     12b2 <main+0x142>
lea    -0x60(%rbp),%rdi
lea    -0x18(%rbp),%rsi
lea    -0x1c(%rbp),%rdx
lea    -0x20(%rbp),%rcx
call   1090 <parse_cmd_jdoy@plt>
mov    %eax,-0x14(%rbp)
cmp    $0xffffffff,%eax
jne    12da <main+0x16a>
mov    0x2d27(%rip),%rax
mov    (%rax),%edi
lea    0xd47(%rip),%rsi
lea    0x10ef(%rip),%rdx
mov    $0x0,%al
call   1060 <fprintf@plt>
mov    $0x1,%edi
call   1080 <exit@plt>
mov    -0x18(%rbp),%edx
mov    $0x3,%eax
mov    $0x2,%ecx
cmp    $0x0,%edx
cmove  %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x20(%rbp),%edx
lea    -0x18(%rbp),%rdi
lea    -0x1c(%rbp),%rsi
call   1040 <conv_date@plt>
cmp    $0xffffffff,%eax
je     1365 <main+0x1f5>
cmpl   $0x2,-0x14(%rbp)
jne    133e <main+0x1ce>
mov    0x2cbe(%rip),%rax
mov    (%rax),%edi
lea    -0x60(%rbp),%rdx
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%r8d
mov    -0x1c(%rbp),%r9d
lea    0x1242(%rip),%rsi
mov    $0x0,%al
call   1060 <fprintf@plt>
jmp    1360 <main+0x1f0>
mov    0x2c93(%rip),%rax
mov    (%rax),%edi
lea    -0x60(%rbp),%rdx
mov    -0x20(%rbp),%ecx
mov    -0x1c(%rbp),%r8d
lea    0x1242(%rip),%rsi
mov    $0x0,%al
call   1060 <fprintf@plt>
jmp    1365 <main+0x1f5>
jmp    136a <main+0x1fa>
xor    %eax,%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x50,%rsp
add    $0xffffffff,%edi
cmp    $0x3,%edi
ja     1212 <main+0xa2>
mov    %rsi,%rbx
lea    0xe75(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
mov    0x8(%rbx),%rdi
lea    0xe71(%rip),%rsi
call   1050 <strcmp@plt>
test   %rax,%rax
je     12c4 <main+0x154>
mov    0x8(%rbx),%rdi
lea    0xe5b(%rip),%rsi
call   1050 <strcmp@plt>
test   %rax,%rax
je     12c4 <main+0x154>
mov    0x8(%rbx),%rsi
lea    0x10(%rsp),%rdi
call   1030 <strcpy@plt>
jmp    1212 <main+0xa2>
mov    0x8(%rbx),%rdx
mov    0x10(%rbx),%rcx
lea    0x11dd(%rip),%rsi
lea    0x10(%rsp),%rdi
xor    %eax,%eax
call   1070 <sprintf@plt>
jmp    1212 <main+0xa2>
mov    0x8(%rbx),%rdx
mov    0x10(%rbx),%rcx
mov    0x18(%rbx),%r8
lea    0x11b9(%rip),%rsi
lea    0x10(%rsp),%rdi
xor    %eax,%eax
call   1070 <sprintf@plt>
lea    0x10(%rsp),%rdi
lea    0x8(%rsp),%rsi
lea    0x4(%rsp),%rdx
lea    0xc(%rsp),%rcx
call   1090 <parse_cmd_jdoy@plt>
cmp    $0xffffffff,%eax
je     129c <main+0x12c>
mov    0x8(%rsp),%ebx
mov    0xc(%rsp),%edx
lea    0x8(%rsp),%rdi
lea    0x4(%rsp),%rsi
call   1040 <conv_date@plt>
cmp    $0xffffffff,%eax
je     1294 <main+0x124>
mov    0x2d85(%rip),%rax
mov    (%rax),%edi
mov    0xc(%rsp),%ecx
test   %ebx,%ebx
je     1277 <main+0x107>
mov    0x4(%rsp),%r8d
lea    0x1342(%rip),%rsi
lea    0x10(%rsp),%rdx
xor    %eax,%eax
call   1060 <fprintf@plt>
jmp    1294 <main+0x124>
mov    0x8(%rsp),%r8d
mov    0x4(%rsp),%r9d
lea    0x12fc(%rip),%rsi
lea    0x10(%rsp),%rdx
xor    %eax,%eax
call   1060 <fprintf@plt>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbx
ret
mov    0x2d3d(%rip),%rax
mov    (%rax),%edi
lea    0xd6d(%rip),%rsi
lea    0x1115(%rip),%rdx
xor    %eax,%eax
call   1060 <fprintf@plt>
mov    $0x1,%edi
call   1080 <exit@plt>
mov    0x2d15(%rip),%rax
mov    (%rax),%edi
lea    0xd45(%rip),%rsi
lea    0xd42(%rip),%rdx
xor    %eax,%eax
call   1060 <fprintf@plt>
xor    %edi,%edi
call   1080 <exit@plt>

LLVM IR (-O0):
@.str = [3 x i8] c"-h\00"
@.str.1 = [6 x i8] c"-help\00"
@stderr = global i32 0
@.str.2 = [4 x i8] c"%s\0A\00"
@.str.3 = [930 x i8] c"NAME \0A\09jdoy - convert julian day to day of month and vice versa \0A\0ASYNOPSIS \0A\09jody [-help] \0A\09jdoy [yyyy-mm-dd] [yyyy-jjj] \0A \0A\09echo [yyyy-mm-dd] [yyyy-jjj] | jdoy \0A \0ADESCRIPTION \0A\09Convert the input date in Julian day number to date in month day and \0A year format. If the date input is in month day and year format then the \0A routine will return the date in julian day number. \0A \0AOPTIONS \0A\09-help Display this help message \0A\09yyyy-mm-dd Input date in day of month format \0A\09 '-' can be omitted or replaced by a space\0A\09yyyy-jjj Input date in julian day number \0A\09 '-' can be omitted or replaced by a space\0A\09 Year can omitted for the current year \0A \0AExamples: \0A\09jdoy 1997-2-25 \0A\09jdoy 1997265 \0A \0ALast update: 05/25/1999 \0APlease report problems to Sadashiva Devadiga (devadiga@ltpmail.gsfc.nasa.gov) \0A\00"
@.str.4 = [6 x i8] c"%s %s\00"
@.str.5 = [9 x i8] c"%s %s %s\00"
@.str.6 = [444 x i8] c"usage:\09\09jdoy [yyyy-mm-dd] [yyyy-jjj] \0A \0AOPTIONS \0A\09-help Display this help message \0A\09yyyy-mm-dd Input date in day of month format \0A\09 '-' can be omitted or replaced by a space\0A\09yyyy-jjj Input date in julian day number \0A\09 '-' can be omitted or replaced by a space\0A\09 Year can omitted for the current year \0A \0A\00"
@stdout = global i32 0
@.str.7 = [39 x i8] c"\09Julian day: %s\09Date(y m d): %d %d %d\0A\00"
@.str.8 = [29 x i8] c"\09Date: %s\09Julian day: %d %d\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca [50 x i8]
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 1, i32* %6
%11 = load i32, i32* %4
%12 = icmp eq i32 %11, 2
br i1 %12, label %13, label %29
13: ; preds = %2
%14 = load i8**, i8*** %5
%15 = getelementptr inbounds i8*, i8** %14, i64 1
%16 = load i8*, i8** %15
%17 = call i64 @strcmp(i8* %16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
%18 = icmp eq i64 %17, 0
br i1 %18, label %25, label %19
19: ; preds = %13
%20 = load i8**, i8*** %5
%21 = getelementptr inbounds i8*, i8** %20, i64 1
%22 = load i8*, i8** %21
%23 = call i64 @strcmp(i8* %22, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%24 = icmp eq i64 %23, 0
br i1 %24, label %25, label %29
25: ; preds = %19, %13
%26 = load i32, i32* @stderr
%27 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %26, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([930 x i8], [930 x i8]* @.str.3, i64 0, i64 0))
%28 = call i32 @exit(i32 0)
unreachable
29: ; preds = %19, %2
%30 = load i32, i32* %4
%31 = icmp eq i32 %30, 2
br i1 %31, label %32, label %38
32: ; preds = %29
%33 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%34 = load i8**, i8*** %5
%35 = getelementptr inbounds i8*, i8** %34, i64 1
%36 = load i8*, i8** %35
%37 = call i32 @strcpy(i8* %33, i8* %36)
br label %67
38: ; preds = %29
%39 = load i32, i32* %4
%40 = icmp eq i32 %39, 3
br i1 %40, label %41, label %50
41: ; preds = %38
%42 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%43 = load i8**, i8*** %5
%44 = getelementptr inbounds i8*, i8** %43, i64 1
%45 = load i8*, i8** %44
%46 = load i8**, i8*** %5
%47 = getelementptr inbounds i8*, i8** %46, i64 2
%48 = load i8*, i8** %47
%49 = call i32 (i8*, i8*, i8*, i8*, ...) @sprintf(i8* %42, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0), i8* %45, i8* %48)
br label %66
50: ; preds = %38
%51 = load i32, i32* %4
%52 = icmp eq i32 %51, 4
br i1 %52, label %53, label %65
53: ; preds = %50
%54 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%55 = load i8**, i8*** %5
%56 = getelementptr inbounds i8*, i8** %55, i64 1
%57 = load i8*, i8** %56
%58 = load i8**, i8*** %5
%59 = getelementptr inbounds i8*, i8** %58, i64 2
%60 = load i8*, i8** %59
%61 = load i8**, i8*** %5
%62 = getelementptr inbounds i8*, i8** %61, i64 3
%63 = load i8*, i8** %62
%64 = call i32 (i8*, i8*, i8*, i8*, ...) @sprintf(i8* %54, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i8* %57, i8* %60, i8* %63)
br label %65
65: ; preds = %53, %50
br label %66
66: ; preds = %65, %41
br label %67
67: ; preds = %66, %32
%68 = load i32, i32* %4
%69 = icmp eq i32 %68, 1
br i1 %69, label %74, label %70
70: ; preds = %67
%71 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%72 = call i32 @parse_cmd_jdoy(i8* %71, i32* %7, i32* %8, i32* %9)
store i32 %72, i32* %6
%73 = icmp eq i32 %72, -1
br i1 %73, label %74, label %78
74: ; preds = %70, %67
%75 = load i32, i32* @stderr
%76 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %75, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([444 x i8], [444 x i8]* @.str.6, i64 0, i64 0))
%77 = call i32 @exit(i32 1)
unreachable
78: ; preds = %70
%79 = load i32, i32* %7
%80 = icmp eq i32 %79, 0
%81 = zext i1 %80 to i64
%82 = select i1 %80, i32 2, i32 3
store i32 %82, i32* %6
%83 = load i32, i32* %9
%84 = call i32 @conv_date(i32* %7, i32* %8, i32 %83)
%85 = icmp ne i32 %84, -1
br i1 %85, label %86, label %103
86: ; preds = %78
%87 = load i32, i32* %6
%88 = icmp eq i32 %87, 2
br i1 %88, label %89, label %96
89: ; preds = %86
%90 = load i32, i32* @stdout
%91 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%92 = load i32, i32* %9
%93 = load i32, i32* %7
%94 = load i32, i32* %8
%95 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %90, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.7, i64 0, i64 0), i8* %91, i32 %92, i32 %93, i32 %94)
br label %102
96: ; preds = %86
%97 = load i32, i32* @stdout
%98 = getelementptr inbounds [50 x i8], [50 x i8]* %10, i64 0, i64 0
%99 = load i32, i32* %9
%100 = load i32, i32* %8
%101 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %97, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.8, i64 0, i64 0), i8* %98, i32 %99, i32 %100)
br label %102
102: ; preds = %96, %89
br label %103
103: ; preds = %102, %78
br label %104
104: ; preds = %103
ret i32 0
}

LLVM IR (-O2):
@.str = [3 x i8] c"-h\00"
@.str.1 = [6 x i8] c"-help\00"
@stderr = global i32 0
@.str.2 = [4 x i8] c"%s\0A\00"
@.str.3 = [930 x i8] c"NAME \0A\09jdoy - convert julian day to day of month and vice versa \0A\0ASYNOPSIS \0A\09jody [-help] \0A\09jdoy [yyyy-mm-dd] [yyyy-jjj] \0A \0A\09echo [yyyy-mm-dd] [yyyy-jjj] | jdoy \0A \0ADESCRIPTION \0A\09Convert the input date in Julian day number to date in month day and \0A year format. If the date input is in month day and year format then the \0A routine will return the date in julian day number. \0A \0AOPTIONS \0A\09-help Display this help message \0A\09yyyy-mm-dd Input date in day of month format \0A\09 '-' can be omitted or replaced by a space\0A\09yyyy-jjj Input date in julian day number \0A\09 '-' can be omitted or replaced by a space\0A\09 Year can omitted for the current year \0A \0AExamples: \0A\09jdoy 1997-2-25 \0A\09jdoy 1997265 \0A \0ALast update: 05/25/1999 \0APlease report problems to Sadashiva Devadiga (devadiga@ltpmail.gsfc.nasa.gov) \0A\00"
@.str.4 = [6 x i8] c"%s %s\00"
@.str.5 = [9 x i8] c"%s %s %s\00"
@.str.6 = [444 x i8] c"usage:\09\09jdoy [yyyy-mm-dd] [yyyy-jjj] \0A \0AOPTIONS \0A\09-help Display this help message \0A\09yyyy-mm-dd Input date in day of month format \0A\09 '-' can be omitted or replaced by a space\0A\09yyyy-jjj Input date in julian day number \0A\09 '-' can be omitted or replaced by a space\0A\09 Year can omitted for the current year \0A \0A\00"
@stdout = global i32 0
@.str.7 = [39 x i8] c"\09Julian day: %s\09Date(y m d): %d %d %d\0A\00"
@.str.8 = [29 x i8] c"\09Date: %s\09Julian day: %d %d\0A\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca [50 x i8]
%7 = bitcast i32* %3 to i8*
%8 = bitcast i32* %4 to i8*
%9 = bitcast i32* %5 to i8*
%10 = getelementptr inbounds [50 x i8], [50 x i8]* %6, i64 0, i64 0
switch i32 %0, label %41 [
i32 2, label %11
i32 3, label %27
i32 4, label %33
i32 1, label %44
]
11: ; preds = %2
%12 = getelementptr inbounds i8*, i8** %1, i64 1
%13 = load i8*, i8** %12
%14 = tail call i64 @strcmp(i8* %13, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
%15 = icmp eq i64 %14, 0
br i1 %15, label %20, label %16
16: ; preds = %11
%17 = load i8*, i8** %12
%18 = tail call i64 @strcmp(i8* %17, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %24
20: ; preds = %16, %11
%21 = load i32, i32* @stderr
%22 = tail call i32 (i32, i8*, i8*, ...) @fprintf(i32 %21, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([930 x i8], [930 x i8]* @.str.3, i64 0, i64 0))
%23 = tail call i32 @exit(i32 0)
unreachable
24: ; preds = %16
%25 = load i8*, i8** %12
%26 = call i32 @strcpy(i8* %10, i8* %25)
br label %41
27: ; preds = %2
%28 = getelementptr inbounds i8*, i8** %1, i64 1
%29 = load i8*, i8** %28
%30 = getelementptr inbounds i8*, i8** %1, i64 2
%31 = load i8*, i8** %30
%32 = call i32 (i8*, i8*, i8*, i8*, ...) @sprintf(i8* %10, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0), i8* %29, i8* %31)
br label %41
33: ; preds = %2
%34 = getelementptr inbounds i8*, i8** %1, i64 1
%35 = load i8*, i8** %34
%36 = getelementptr inbounds i8*, i8** %1, i64 2
%37 = load i8*, i8** %36
%38 = getelementptr inbounds i8*, i8** %1, i64 3
%39 = load i8*, i8** %38
%40 = call i32 (i8*, i8*, i8*, i8*, ...) @sprintf(i8* %10, i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i8* %35, i8* %37, i8* %39)
br label %41
41: ; preds = %2, %24, %33, %27
%42 = call i32 @parse_cmd_jdoy(i8* %10, i32* %3, i32* %4, i32* %5)
%43 = icmp eq i32 %42, -1
br i1 %43, label %44, label %48
44: ; preds = %2, %41
%45 = load i32, i32* @stderr
%46 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %45, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([444 x i8], [444 x i8]* @.str.6, i64 0, i64 0))
%47 = call i32 @exit(i32 1)
unreachable
48: ; preds = %41
%49 = load i32, i32* %3
%50 = load i32, i32* %5
%51 = call i32 @conv_date(i32* %3, i32* %4, i32 %50)
%52 = icmp eq i32 %51, -1
br i1 %52, label %64, label %53
53: ; preds = %48
%54 = icmp eq i32 %49, 0
%55 = load i32, i32* @stdout
%56 = load i32, i32* %5
br i1 %54, label %57, label %61
57: ; preds = %53
%58 = load i32, i32* %3
%59 = load i32, i32* %4
%60 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %55, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.7, i64 0, i64 0), i8* %10, i32 %56, i32 %58, i32 %59)
br label %64
61: ; preds = %53
%62 = load i32, i32* %4
%63 = call i32 (i32, i8*, i8*, ...) @fprintf(i32 %55, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.8, i64 0, i64 0), i8* %10, i32 %56, i32 %62)
br label %64
64: ; preds = %48, %61, %57
ret i32 0
}