#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*/ atof(char *);
int /*<<< orphan*/ convert_date_to_standard(char *, char *, char *);
int database_edit_record(char *, int, char *, char *, char *, char *, char *,
                         char *, int /*<<< orphan*/, char *, char *, char *,
                         char *, char *, char *, char *, char *, char *,
                         int /*<<< orphan*/, char *, char *, char *, char *);
scalar_t__ database_get_record(char *, int, char *, char *, char *, char *,
                               char *, char *, char *, char *, char *, char *,
                               char *);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ sprintf(char *, char *, ...);
scalar_t__ strlen(char *);
int command_edit(char *account, int record_number, char *date, char *timestr,
                 char *date_format, char *status, char *description,
                 char *currency, char *VATrate, float progress, char *supplier,
                 char *receive, char *spend) {
  char prev_date[1024];
  char new_date[1024];
  char prev_timestr[1024];
  char new_timestr[1024];
  char prev_status[1024];
  char new_status[1024];
  char prev_description[1024];
  char new_description[1024];
  char prev_currency[1024];
  char new_currency[1024];
  char prev_VATrate[1024];
  char new_VATrate[1024];
  char prev_progress[1024];
  char new_progress[1024];
  char prev_supplier[1024];
  char new_supplier[1024];
  char prev_receive[1024];
  char new_receive[1024];
  char prev_spend[1024];
  char new_spend[1024];
  char transaction_identifier[1024];
  int changed = 0;
  if (database_get_record(account, record_number, (char *)prev_date,
                          (char *)prev_timestr, (char *)transaction_identifier,
                          (char *)prev_status, (char *)prev_description,
                          (char *)prev_currency, (char *)prev_VATrate,
                          (char *)prev_progress, (char *)prev_supplier,
                          (char *)prev_receive, (char *)prev_spend) == 0) {
    printf("Failed to get transaction\n");
    return 0;
  }
  sprintf(new_date, "%s", prev_date);
  sprintf(new_timestr, "%s", prev_timestr);
  sprintf(new_status, "%s", prev_status);
  sprintf(new_description, "%s", prev_description);
  sprintf(new_currency, "%s", prev_currency);
  sprintf(new_VATrate, "%s", prev_VATrate);
  sprintf(new_progress, "%s", prev_progress);
  sprintf(new_supplier, "%s", prev_supplier);
  sprintf(new_receive, "%s", prev_receive);
  sprintf(new_spend, "%s", prev_spend);
  if (date != 0) {
    if (strlen(date) != 0) {
      convert_date_to_standard(date, date_format, new_date);
      changed = 1;
    }
  }
  if (timestr != 0) {
    if (strlen(timestr) != 0) {
      sprintf((char *)new_timestr, "%s", timestr);
      changed = 1;
    }
  }
  if (status != 0) {
    if (strlen(status) != 0) {
      sprintf((char *)new_status, "%s", status);
      changed = 1;
    }
  }
  if (description != 0) {
    if (strlen(description) != 0) {
      sprintf((char *)new_description, "%s", description);
      changed = 1;
    }
  }
  if (currency != 0) {
    if (strlen(currency) != 0) {
      sprintf((char *)new_currency, "%s", currency);
      changed = 1;
    }
  }
  if (VATrate != 0) {
    if (strlen(VATrate) != 0) {
      sprintf((char *)new_VATrate, "%s", VATrate);
      changed = 1;
    }
  }
  if (supplier != 0) {
    if (strlen(supplier) != 0) {
      sprintf((char *)new_supplier, "%s", supplier);
      changed = 1;
    }
  }
  if (receive != 0) {
    if (strlen(receive) != 0) {
      sprintf((char *)new_receive, "%s", receive);
      changed = 1;
    }
  }
  if (spend != 0) {
    if (strlen(spend) != 0) {
      sprintf((char *)new_spend, "%s", spend);
      changed = 1;
    }
  }
  if (progress > 0) {
    sprintf((char *)new_progress, "%f", progress);
    changed = 1;
  } else
    sprintf(new_progress, "%s", "0");
  if (changed == 0)
    return -1;
  return database_edit_record(
      account, record_number, (char *)prev_date, (char *)prev_timestr,
      (char *)prev_status, (char *)prev_description, (char *)prev_currency,
      (char *)prev_VATrate, atof(prev_progress), (char *)prev_supplier,
      (char *)prev_receive, (char *)prev_spend, (char *)new_date,
      (char *)new_timestr, (char *)new_status, (char *)new_description,
      (char *)new_currency, (char *)new_VATrate, atof(new_progress),
      (char *)new_supplier, (char *)new_receive, (char *)new_spend,
      date_format);
}


x86 assembly (clang, -O0):
<command_edit>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x5558,%rsp
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x38(%rbp)
mov    %esi,-0x3c(%rbp)
mov    %rdx,-0x48(%rbp)
mov    %rcx,-0x50(%rbp)
mov    %r8,-0x58(%rbp)
mov    %r9,-0x60(%rbp)
movss  %xmm0,-0x64(%rbp)
movl   $0x0,-0x5474(%rbp)
mov    -0x38(%rbp),%rdi
mov    -0x3c(%rbp),%esi
lea    -0x470(%rbp),%rdx
lea    -0xc70(%rbp),%rcx
lea    -0x5470(%rbp),%r8
lea    -0x1470(%rbp),%r9
lea    -0x1c70(%rbp),%r12
lea    -0x2470(%rbp),%r15
lea    -0x2c70(%rbp),%r14
lea    -0x3470(%rbp),%rbx
lea    -0x3c70(%rbp),%r11
lea    -0x4470(%rbp),%r10
lea    -0x4c70(%rbp),%rax
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11,0x20(%rsp)
mov    %r10,0x28(%rsp)
mov    %rax,0x30(%rsp)
call   1060 <database_get_record@plt>
cmp    $0x0,%rax
jne    125f <command_edit+0xef>
lea    0xdb2(%rip),%rdi
call   1070 <printf@plt>
movl   $0x0,-0x2c(%rbp)
jmp    1839 <command_edit+0x6c9>
lea    -0x870(%rbp),%rdi
lea    -0x470(%rbp),%rdx
lea    0xda7(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x1070(%rbp),%rdi
lea    -0xc70(%rbp),%rdx
lea    0xd8b(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x1870(%rbp),%rdi
lea    -0x1470(%rbp),%rdx
lea    0xd6f(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x2070(%rbp),%rdi
lea    -0x1c70(%rbp),%rdx
lea    0xd53(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x2870(%rbp),%rdi
lea    -0x2470(%rbp),%rdx
lea    0xd37(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x3070(%rbp),%rdi
lea    -0x2c70(%rbp),%rdx
lea    0xd1b(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x3870(%rbp),%rdi
lea    -0x3470(%rbp),%rdx
lea    0xcff(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x4070(%rbp),%rdi
lea    -0x3c70(%rbp),%rdx
lea    0xce3(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x4870(%rbp),%rdi
lea    -0x4470(%rbp),%rdx
lea    0xcc7(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0x5070(%rbp),%rdi
lea    -0x4c70(%rbp),%rdx
lea    0xcab(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
cmpq   $0x0,-0x48(%rbp)
je     13b8 <command_edit+0x248>
mov    -0x48(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     13b3 <command_edit+0x243>
mov    -0x48(%rbp),%rdi
mov    -0x58(%rbp),%rsi
lea    -0x870(%rbp),%rdx
call   1080 <convert_date_to_standard@plt>
movl   $0x1,-0x5474(%rbp)
jmp    13b8 <command_edit+0x248>
cmpq   $0x0,-0x50(%rbp)
je     13fe <command_edit+0x28e>
mov    -0x50(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     13f9 <command_edit+0x289>
lea    -0x1070(%rbp),%rdi
mov    -0x50(%rbp),%rdx
lea    0xc33(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    13fe <command_edit+0x28e>
cmpq   $0x0,-0x60(%rbp)
je     1444 <command_edit+0x2d4>
mov    -0x60(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     143f <command_edit+0x2cf>
lea    -0x1870(%rbp),%rdi
mov    -0x60(%rbp),%rdx
lea    0xbed(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    1444 <command_edit+0x2d4>
cmpq   $0x0,0x10(%rbp)
je     148a <command_edit+0x31a>
mov    0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     1485 <command_edit+0x315>
lea    -0x2070(%rbp),%rdi
mov    0x10(%rbp),%rdx
lea    0xba7(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    148a <command_edit+0x31a>
cmpq   $0x0,0x18(%rbp)
je     14d0 <command_edit+0x360>
mov    0x18(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     14cb <command_edit+0x35b>
lea    -0x2870(%rbp),%rdi
mov    0x18(%rbp),%rdx
lea    0xb61(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    14d0 <command_edit+0x360>
cmpq   $0x0,0x20(%rbp)
je     1516 <command_edit+0x3a6>
mov    0x20(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     1511 <command_edit+0x3a1>
lea    -0x3070(%rbp),%rdi
mov    0x20(%rbp),%rdx
lea    0xb1b(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    1516 <command_edit+0x3a6>
cmpq   $0x0,0x28(%rbp)
je     155c <command_edit+0x3ec>
mov    0x28(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     1557 <command_edit+0x3e7>
lea    -0x4070(%rbp),%rdi
mov    0x28(%rbp),%rdx
lea    0xad5(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    155c <command_edit+0x3ec>
cmpq   $0x0,0x30(%rbp)
je     15a2 <command_edit+0x432>
mov    0x30(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     159d <command_edit+0x42d>
lea    -0x4870(%rbp),%rdi
mov    0x30(%rbp),%rdx
lea    0xa8f(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    15a2 <command_edit+0x432>
cmpq   $0x0,0x38(%rbp)
je     15e8 <command_edit+0x478>
mov    0x38(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
je     15e3 <command_edit+0x473>
lea    -0x5070(%rbp),%rdi
mov    0x38(%rbp),%rdx
lea    0xa49(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    15e8 <command_edit+0x478>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1626 <command_edit+0x4b6>
lea    -0x3870(%rbp),%rdi
movss  -0x64(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xa0e(%rip),%rsi
mov    $0x1,%al
call   1090 <sprintf@plt>
movl   $0x1,-0x5474(%rbp)
jmp    1642 <command_edit+0x4d2>
lea    -0x3870(%rbp),%rdi
lea    0x9e7(%rip),%rsi
lea    0x9e6(%rip),%rdx
mov    $0x0,%al
call   1090 <sprintf@plt>
cmpl   $0x0,-0x5474(%rbp)
jne    165b <command_edit+0x4eb>
movl   $0xffffffff,-0x2c(%rbp)
jmp    1839 <command_edit+0x6c9>
mov    -0x38(%rbp),%rax
mov    %rax,-0x54f8(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0x54ec(%rbp)
lea    -0x470(%rbp),%rax
mov    %rax,-0x54e8(%rbp)
lea    -0xc70(%rbp),%rax
mov    %rax,-0x54e0(%rbp)
lea    -0x1470(%rbp),%rax
mov    %rax,-0x54d8(%rbp)
lea    -0x1c70(%rbp),%rax
mov    %rax,-0x54d0(%rbp)
lea    -0x2470(%rbp),%rax
mov    %rax,-0x54c8(%rbp)
lea    -0x2c70(%rbp),%rax
mov    %rax,-0x54c0(%rbp)
lea    -0x3470(%rbp),%rdi
call   1040 <atof@plt>
mov    %eax,-0x54b4(%rbp)
lea    -0x3c70(%rbp),%rax
mov    %rax,-0x54b0(%rbp)
lea    -0x4470(%rbp),%rax
mov    %rax,-0x54a8(%rbp)
lea    -0x4c70(%rbp),%rax
mov    %rax,-0x54a0(%rbp)
lea    -0x870(%rbp),%rax
mov    %rax,-0x5498(%rbp)
lea    -0x1070(%rbp),%rax
mov    %rax,-0x5490(%rbp)
lea    -0x1870(%rbp),%rax
mov    %rax,-0x5488(%rbp)
lea    -0x2070(%rbp),%r13
lea    -0x2870(%rbp),%r12
lea    -0x3070(%rbp),%r15
lea    -0x3870(%rbp),%rdi
call   1040 <atof@plt>
mov    -0x54f8(%rbp),%rdi
mov    -0x54ec(%rbp),%esi
mov    -0x54e8(%rbp),%rdx
mov    -0x54e0(%rbp),%rcx
mov    -0x54d8(%rbp),%r8
mov    -0x54d0(%rbp),%r9
mov    %eax,%r14d
lea    -0x4070(%rbp),%rbx
lea    -0x4870(%rbp),%r11
lea    -0x5070(%rbp),%r10
mov    -0x58(%rbp),%rax
mov    %rax,-0x5480(%rbp)
mov    -0x54c8(%rbp),%rax
mov    %rax,(%rsp)
mov    -0x54c0(%rbp),%rax
mov    %rax,0x8(%rsp)
mov    -0x54b4(%rbp),%eax
mov    %eax,0x10(%rsp)
mov    -0x54b0(%rbp),%rax
mov    %rax,0x18(%rsp)
mov    -0x54a8(%rbp),%rax
mov    %rax,0x20(%rsp)
mov    -0x54a0(%rbp),%rax
mov    %rax,0x28(%rsp)
mov    -0x5498(%rbp),%rax
mov    %rax,0x30(%rsp)
mov    -0x5490(%rbp),%rax
mov    %rax,0x38(%rsp)
mov    -0x5488(%rbp),%rax
mov    %rax,0x40(%rsp)
mov    -0x5480(%rbp),%rax
mov    %r13,0x48(%rsp)
mov    %r12,0x50(%rsp)
mov    %r15,0x58(%rsp)
mov    %r14d,0x60(%rsp)
mov    %rbx,0x68(%rsp)
mov    %r11,0x70(%rsp)
mov    %r10,0x78(%rsp)
mov    %rax,0x80(%rsp)
call   1030 <database_edit_record@plt>
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x5558,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<command_edit>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x5428,%rsp
movss  %xmm0,(%rsp)
mov    %r9,0x8(%rsp)
mov    %r8,0x10(%rsp)
mov    %rcx,%r15
mov    %rdx,%r12
sub    $0x8,%rsp
lea    0x428(%rsp),%rax
lea    0xc28(%rsp),%rbp
lea    0x1428(%rsp),%rbx
lea    0x1828(%rsp),%r10
lea    0x2028(%rsp),%r11
lea    0x2828(%rsp),%r14
lea    0x3028(%rsp),%r13
lea    0x4828(%rsp),%rdx
lea    0x4028(%rsp),%rcx
lea    0x5028(%rsp),%r8
lea    0x3828(%rsp),%r9
mov    %rdi,0x20(%rsp)
mov    %esi,0xc(%rsp)
push   %rax
push   %rbp
push   %rbx
push   %r10
push   %r11
push   %r14
push   %r13
call   1070 <database_get_record@plt>
add    $0x40,%rsp
test   %rax,%rax
je     1321 <command_edit+0x1b1>
lea    0x4420(%rsp),%rdi
lea    0x4820(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x3c20(%rsp),%rdi
lea    0x4020(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x3420(%rsp),%rdi
lea    0x3820(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x2c20(%rsp),%rdi
lea    0x3020(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x2420(%rsp),%rdi
lea    0x2820(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x1c20(%rsp),%rdi
lea    0x2020(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x20(%rsp),%rdi
lea    0x1820(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x1020(%rsp),%rdi
lea    0x1420(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x820(%rsp),%rdi
lea    0xc20(%rsp),%rsi
call   1030 <strcpy@plt>
lea    0x4c20(%rsp),%r13
lea    0x420(%rsp),%rsi
mov    %r13,%rdi
call   1030 <strcpy@plt>
xor    %eax,%eax
test   %r12,%r12
je     1334 <command_edit+0x1c4>
cmpb   $0x0,(%r12)
mov    0x10(%rsp),%r14
mov    0x8(%rsp),%rbx
je     131a <command_edit+0x1aa>
lea    0x4420(%rsp),%rdx
mov    %r12,%rdi
mov    %r14,%rsi
call   1080 <convert_date_to_standard@plt>
mov    $0x1,%eax
test   %r15,%r15
jne    1343 <command_edit+0x1d3>
jmp    135e <command_edit+0x1ee>
lea    0xcdb(%rip),%rdi
call   1040 <puts@plt>
xor    %eax,%eax
jmp    1583 <command_edit+0x413>
mov    0x10(%rsp),%r14
mov    0x8(%rsp),%rbx
test   %r15,%r15
je     135e <command_edit+0x1ee>
cmpb   $0x0,(%r15)
je     135e <command_edit+0x1ee>
lea    0x3c20(%rsp),%rdi
mov    %r15,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5460(%rsp),%rbp
test   %rbx,%rbx
je     1385 <command_edit+0x215>
cmpb   $0x0,(%rbx)
je     1385 <command_edit+0x215>
lea    0x3420(%rsp),%rdi
mov    %rbx,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5468(%rsp),%rbx
test   %rbp,%rbp
je     13ad <command_edit+0x23d>
cmpb   $0x0,0x0(%rbp)
je     13ad <command_edit+0x23d>
lea    0x2c20(%rsp),%rdi
mov    %rbp,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5470(%rsp),%rbp
test   %rbx,%rbx
je     13d4 <command_edit+0x264>
cmpb   $0x0,(%rbx)
je     13d4 <command_edit+0x264>
lea    0x2420(%rsp),%rdi
mov    %rbx,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5478(%rsp),%rbx
test   %rbp,%rbp
je     13fc <command_edit+0x28c>
cmpb   $0x0,0x0(%rbp)
je     13fc <command_edit+0x28c>
lea    0x1c20(%rsp),%rdi
mov    %rbp,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5480(%rsp),%rbp
test   %rbx,%rbx
je     1423 <command_edit+0x2b3>
cmpb   $0x0,(%rbx)
je     1423 <command_edit+0x2b3>
lea    0x1020(%rsp),%rdi
mov    %rbx,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
mov    0x5488(%rsp),%rbx
test   %rbp,%rbp
je     144b <command_edit+0x2db>
cmpb   $0x0,0x0(%rbp)
je     144b <command_edit+0x2db>
lea    0x820(%rsp),%rdi
mov    %rbp,%rsi
call   1030 <strcpy@plt>
mov    $0x1,%eax
test   %rbx,%rbx
je     147e <command_edit+0x30e>
cmpb   $0x0,(%rbx)
je     147e <command_edit+0x30e>
lea    0x4c20(%rsp),%rdi
mov    %rbx,%rsi
call   1030 <strcpy@plt>
xorps  %xmm0,%xmm0
movss  (%rsp),%xmm1
ucomiss %xmm0,%xmm1
movaps %xmm1,%xmm0
ja     148e <command_edit+0x31e>
movw   $0x30,0x20(%rsp)
jmp    14b6 <command_edit+0x346>
xorps  %xmm0,%xmm0
movss  (%rsp),%xmm1
ucomiss %xmm0,%xmm1
movaps %xmm1,%xmm0
jbe    14a7 <command_edit+0x337>
cvtss2sd %xmm0,%xmm0
lea    0xb67(%rip),%rsi
lea    0x20(%rsp),%rdi
mov    $0x1,%al
call   1090 <sprintf@plt>
jmp    14b6 <command_edit+0x346>
movw   $0x30,0x20(%rsp)
test   %eax,%eax
je     1595 <command_edit+0x425>
lea    0x1820(%rsp),%rdi
call   1060 <atof@plt>
mov    %eax,%ebp
lea    0x20(%rsp),%rdi
call   1060 <atof@plt>
sub    $0x8,%rsp
lea    0x4828(%rsp),%rdx
lea    0x4028(%rsp),%rcx
lea    0x3828(%rsp),%r8
lea    0x3028(%rsp),%r9
mov    0x20(%rsp),%rdi
mov    0xc(%rsp),%esi
push   %r14
push   %r13
lea    0x838(%rsp),%rbx
push   %rbx
lea    0x1040(%rsp),%rbx
push   %rbx
push   %rax
lea    0x1c50(%rsp),%rax
push   %rax
lea    0x2458(%rsp),%rax
push   %rax
lea    0x2c60(%rsp),%rax
push   %rax
lea    0x3468(%rsp),%rax
push   %rax
lea    0x3c70(%rsp),%rax
push   %rax
lea    0x4478(%rsp),%rax
push   %rax
lea    0x480(%rsp),%rax
push   %rax
lea    0xc88(%rsp),%rax
push   %rax
lea    0x1490(%rsp),%rax
push   %rax
push   %rbp
lea    0x20a0(%rsp),%rax
push   %rax
lea    0x28a8(%rsp),%rax
push   %rax
call   1050 <database_edit_record@plt>
add    $0x90,%rsp
add    $0x5428,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    $0xffffffff,%eax
jmp    1583 <command_edit+0x413>

LLVM IR (-O0):
@.str = [27 x i8] c"Failed to get transaction\0A\00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [3 x i8] c"%f\00"
@.str.3 = [2 x i8] c"0\00"
define i32 @command_edit(i8* %0, i32 %1, i8* %2, i8* %3, i8* %4, i8* %5, i8* %6, i8* %7, i8* %8, float %9, i8* %10, i8* %11, i8* %12) {
%14 = alloca i32
%15 = alloca i8*
%16 = alloca i32
%17 = alloca i8*
%18 = alloca i8*
%19 = alloca i8*
%20 = alloca i8*
%21 = alloca i8*
%22 = alloca i8*
%23 = alloca i8*
%24 = alloca float
%25 = alloca i8*
%26 = alloca i8*
%27 = alloca i8*
%28 = alloca [1024 x i8]
%29 = alloca [1024 x i8]
%30 = alloca [1024 x i8]
%31 = alloca [1024 x i8]
%32 = alloca [1024 x i8]
%33 = alloca [1024 x i8]
%34 = alloca [1024 x i8]
%35 = alloca [1024 x i8]
%36 = alloca [1024 x i8]
%37 = alloca [1024 x i8]
%38 = alloca [1024 x i8]
%39 = alloca [1024 x i8]
%40 = alloca [1024 x i8]
%41 = alloca [1024 x i8]
%42 = alloca [1024 x i8]
%43 = alloca [1024 x i8]
%44 = alloca [1024 x i8]
%45 = alloca [1024 x i8]
%46 = alloca [1024 x i8]
%47 = alloca [1024 x i8]
%48 = alloca [1024 x i8]
%49 = alloca i32
store i8* %0, i8** %15
store i32 %1, i32* %16
store i8* %2, i8** %17
store i8* %3, i8** %18
store i8* %4, i8** %19
store i8* %5, i8** %20
store i8* %6, i8** %21
store i8* %7, i8** %22
store i8* %8, i8** %23
store float %9, float* %24
store i8* %10, i8** %25
store i8* %11, i8** %26
store i8* %12, i8** %27
store i32 0, i32* %49
%50 = load i8*, i8** %15
%51 = load i32, i32* %16
%52 = getelementptr inbounds [1024 x i8], [1024 x i8]* %28, i64 0, i64 0
%53 = getelementptr inbounds [1024 x i8], [1024 x i8]* %30, i64 0, i64 0
%54 = getelementptr inbounds [1024 x i8], [1024 x i8]* %48, i64 0, i64 0
%55 = getelementptr inbounds [1024 x i8], [1024 x i8]* %32, i64 0, i64 0
%56 = getelementptr inbounds [1024 x i8], [1024 x i8]* %34, i64 0, i64 0
%57 = getelementptr inbounds [1024 x i8], [1024 x i8]* %36, i64 0, i64 0
%58 = getelementptr inbounds [1024 x i8], [1024 x i8]* %38, i64 0, i64 0
%59 = getelementptr inbounds [1024 x i8], [1024 x i8]* %40, i64 0, i64 0
%60 = getelementptr inbounds [1024 x i8], [1024 x i8]* %42, i64 0, i64 0
%61 = getelementptr inbounds [1024 x i8], [1024 x i8]* %44, i64 0, i64 0
%62 = getelementptr inbounds [1024 x i8], [1024 x i8]* %46, i64 0, i64 0
%63 = call i64 @database_get_record(i8* %50, i32 %51, i8* %52, i8* %53, i8* %54, i8* %55, i8* %56, i8* %57, i8* %58, i8* %59, i8* %60, i8* %61, i8* %62)
%64 = icmp eq i64 %63, 0
br i1 %64, label %65, label %67
65: ; preds = %13
%66 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %14
br label %248
67: ; preds = %13
%68 = getelementptr inbounds [1024 x i8], [1024 x i8]* %29, i64 0, i64 0
%69 = getelementptr inbounds [1024 x i8], [1024 x i8]* %28, i64 0, i64 0
%70 = call i32 (i8*, i8*, ...) @sprintf(i8* %68, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %69)
%71 = getelementptr inbounds [1024 x i8], [1024 x i8]* %31, i64 0, i64 0
%72 = getelementptr inbounds [1024 x i8], [1024 x i8]* %30, i64 0, i64 0
%73 = call i32 (i8*, i8*, ...) @sprintf(i8* %71, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %72)
%74 = getelementptr inbounds [1024 x i8], [1024 x i8]* %33, i64 0, i64 0
%75 = getelementptr inbounds [1024 x i8], [1024 x i8]* %32, i64 0, i64 0
%76 = call i32 (i8*, i8*, ...) @sprintf(i8* %74, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %75)
%77 = getelementptr inbounds [1024 x i8], [1024 x i8]* %35, i64 0, i64 0
%78 = getelementptr inbounds [1024 x i8], [1024 x i8]* %34, i64 0, i64 0
%79 = call i32 (i8*, i8*, ...) @sprintf(i8* %77, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %78)
%80 = getelementptr inbounds [1024 x i8], [1024 x i8]* %37, i64 0, i64 0
%81 = getelementptr inbounds [1024 x i8], [1024 x i8]* %36, i64 0, i64 0
%82 = call i32 (i8*, i8*, ...) @sprintf(i8* %80, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %81)
%83 = getelementptr inbounds [1024 x i8], [1024 x i8]* %39, i64 0, i64 0
%84 = getelementptr inbounds [1024 x i8], [1024 x i8]* %38, i64 0, i64 0
%85 = call i32 (i8*, i8*, ...) @sprintf(i8* %83, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %84)
%86 = getelementptr inbounds [1024 x i8], [1024 x i8]* %41, i64 0, i64 0
%87 = getelementptr inbounds [1024 x i8], [1024 x i8]* %40, i64 0, i64 0
%88 = call i32 (i8*, i8*, ...) @sprintf(i8* %86, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %87)
%89 = getelementptr inbounds [1024 x i8], [1024 x i8]* %43, i64 0, i64 0
%90 = getelementptr inbounds [1024 x i8], [1024 x i8]* %42, i64 0, i64 0
%91 = call i32 (i8*, i8*, ...) @sprintf(i8* %89, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %90)
%92 = getelementptr inbounds [1024 x i8], [1024 x i8]* %45, i64 0, i64 0
%93 = getelementptr inbounds [1024 x i8], [1024 x i8]* %44, i64 0, i64 0
%94 = call i32 (i8*, i8*, ...) @sprintf(i8* %92, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %93)
%95 = getelementptr inbounds [1024 x i8], [1024 x i8]* %47, i64 0, i64 0
%96 = getelementptr inbounds [1024 x i8], [1024 x i8]* %46, i64 0, i64 0
%97 = call i32 (i8*, i8*, ...) @sprintf(i8* %95, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %96)
%98 = load i8*, i8** %17
%99 = icmp ne i8* %98, null
br i1 %99, label %100, label %110
100: ; preds = %67
%101 = load i8*, i8** %17
%102 = call i64 @strlen(i8* %101)
%103 = icmp ne i64 %102, 0
br i1 %103, label %104, label %109
104: ; preds = %100
%105 = load i8*, i8** %17
%106 = load i8*, i8** %19
%107 = getelementptr inbounds [1024 x i8], [1024 x i8]* %29, i64 0, i64 0
%108 = call i32 @convert_date_to_standard(i8* %105, i8* %106, i8* %107)
store i32 1, i32* %49
br label %109
109: ; preds = %104, %100
br label %110
110: ; preds = %109, %67
%111 = load i8*, i8** %18
%112 = icmp ne i8* %111, null
br i1 %112, label %113, label %122
113: ; preds = %110
%114 = load i8*, i8** %18
%115 = call i64 @strlen(i8* %114)
%116 = icmp ne i64 %115, 0
br i1 %116, label %117, label %121
117: ; preds = %113
%118 = getelementptr inbounds [1024 x i8], [1024 x i8]* %31, i64 0, i64 0
%119 = load i8*, i8** %18
%120 = call i32 (i8*, i8*, ...) @sprintf(i8* %118, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %119)
store i32 1, i32* %49
br label %121
121: ; preds = %117, %113
br label %122
122: ; preds = %121, %110
%123 = load i8*, i8** %20
%124 = icmp ne i8* %123, null
br i1 %124, label %125, label %134
125: ; preds = %122
%126 = load i8*, i8** %20
%127 = call i64 @strlen(i8* %126)
%128 = icmp ne i64 %127, 0
br i1 %128, label %129, label %133
129: ; preds = %125
%130 = getelementptr inbounds [1024 x i8], [1024 x i8]* %33, i64 0, i64 0
%131 = load i8*, i8** %20
%132 = call i32 (i8*, i8*, ...) @sprintf(i8* %130, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %131)
store i32 1, i32* %49
br label %133
133: ; preds = %129, %125
br label %134
134: ; preds = %133, %122
%135 = load i8*, i8** %21
%136 = icmp ne i8* %135, null
br i1 %136, label %137, label %146
137: ; preds = %134
%138 = load i8*, i8** %21
%139 = call i64 @strlen(i8* %138)
%140 = icmp ne i64 %139, 0
br i1 %140, label %141, label %145
141: ; preds = %137
%142 = getelementptr inbounds [1024 x i8], [1024 x i8]* %35, i64 0, i64 0
%143 = load i8*, i8** %21
%144 = call i32 (i8*, i8*, ...) @sprintf(i8* %142, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %143)
store i32 1, i32* %49
br label %145
145: ; preds = %141, %137
br label %146
146: ; preds = %145, %134
%147 = load i8*, i8** %22
%148 = icmp ne i8* %147, null
br i1 %148, label %149, label %158
149: ; preds = %146
%150 = load i8*, i8** %22
%151 = call i64 @strlen(i8* %150)
%152 = icmp ne i64 %151, 0
br i1 %152, label %153, label %157
153: ; preds = %149
%154 = getelementptr inbounds [1024 x i8], [1024 x i8]* %37, i64 0, i64 0
%155 = load i8*, i8** %22
%156 = call i32 (i8*, i8*, ...) @sprintf(i8* %154, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %155)
store i32 1, i32* %49
br label %157
157: ; preds = %153, %149
br label %158
158: ; preds = %157, %146
%159 = load i8*, i8** %23
%160 = icmp ne i8* %159, null
br i1 %160, label %161, label %170
161: ; preds = %158
%162 = load i8*, i8** %23
%163 = call i64 @strlen(i8* %162)
%164 = icmp ne i64 %163, 0
br i1 %164, label %165, label %169
165: ; preds = %161
%166 = getelementptr inbounds [1024 x i8], [1024 x i8]* %39, i64 0, i64 0
%167 = load i8*, i8** %23
%168 = call i32 (i8*, i8*, ...) @sprintf(i8* %166, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %167)
store i32 1, i32* %49
br label %169
169: ; preds = %165, %161
br label %170
170: ; preds = %169, %158
%171 = load i8*, i8** %25
%172 = icmp ne i8* %171, null
br i1 %172, label %173, label %182
173: ; preds = %170
%174 = load i8*, i8** %25
%175 = call i64 @strlen(i8* %174)
%176 = icmp ne i64 %175, 0
br i1 %176, label %177, label %181
177: ; preds = %173
%178 = getelementptr inbounds [1024 x i8], [1024 x i8]* %43, i64 0, i64 0
%179 = load i8*, i8** %25
%180 = call i32 (i8*, i8*, ...) @sprintf(i8* %178, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %179)
store i32 1, i32* %49
br label %181
181: ; preds = %177, %173
br label %182
182: ; preds = %181, %170
%183 = load i8*, i8** %26
%184 = icmp ne i8* %183, null
br i1 %184, label %185, label %194
185: ; preds = %182
%186 = load i8*, i8** %26
%187 = call i64 @strlen(i8* %186)
%188 = icmp ne i64 %187, 0
br i1 %188, label %189, label %193
189: ; preds = %185
%190 = getelementptr inbounds [1024 x i8], [1024 x i8]* %45, i64 0, i64 0
%191 = load i8*, i8** %26
%192 = call i32 (i8*, i8*, ...) @sprintf(i8* %190, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %191)
store i32 1, i32* %49
br label %193
193: ; preds = %189, %185
br label %194
194: ; preds = %193, %182
%195 = load i8*, i8** %27
%196 = icmp ne i8* %195, null
br i1 %196, label %197, label %206
197: ; preds = %194
%198 = load i8*, i8** %27
%199 = call i64 @strlen(i8* %198)
%200 = icmp ne i64 %199, 0
br i1 %200, label %201, label %205
201: ; preds = %197
%202 = getelementptr inbounds [1024 x i8], [1024 x i8]* %47, i64 0, i64 0
%203 = load i8*, i8** %27
%204 = call i32 (i8*, i8*, ...) @sprintf(i8* %202, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %203)
store i32 1, i32* %49
br label %205
205: ; preds = %201, %197
br label %206
206: ; preds = %205, %194
%207 = load float, float* %24
%208 = fcmp ogt float %207, 0.000000e+00
br i1 %208, label %209, label %214
209: ; preds = %206
%210 = getelementptr inbounds [1024 x i8], [1024 x i8]* %41, i64 0, i64 0
%211 = load float, float* %24
%212 = fpext float %211 to double
%213 = call i32 (i8*, i8*, ...) @sprintf(i8* %210, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), double %212)
store i32 1, i32* %49
br label %217
214: ; preds = %206
%215 = getelementptr inbounds [1024 x i8], [1024 x i8]* %41, i64 0, i64 0
%216 = call i32 (i8*, i8*, ...) @sprintf(i8* %215, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %217
217: ; preds = %214, %209
%218 = load i32, i32* %49
%219 = icmp eq i32 %218, 0
br i1 %219, label %220, label %221
220: ; preds = %217
store i32 -1, i32* %14
br label %248
221: ; preds = %217
%222 = load i8*, i8** %15
%223 = load i32, i32* %16
%224 = getelementptr inbounds [1024 x i8], [1024 x i8]* %28, i64 0, i64 0
%225 = getelementptr inbounds [1024 x i8], [1024 x i8]* %30, i64 0, i64 0
%226 = getelementptr inbounds [1024 x i8], [1024 x i8]* %32, i64 0, i64 0
%227 = getelementptr inbounds [1024 x i8], [1024 x i8]* %34, i64 0, i64 0
%228 = getelementptr inbounds [1024 x i8], [1024 x i8]* %36, i64 0, i64 0
%229 = getelementptr inbounds [1024 x i8], [1024 x i8]* %38, i64 0, i64 0
%230 = getelementptr inbounds [1024 x i8], [1024 x i8]* %40, i64 0, i64 0
%231 = call i32 @atof(i8* %230)
%232 = getelementptr inbounds [1024 x i8], [1024 x i8]* %42, i64 0, i64 0
%233 = getelementptr inbounds [1024 x i8], [1024 x i8]* %44, i64 0, i64 0
%234 = getelementptr inbounds [1024 x i8], [1024 x i8]* %46, i64 0, i64 0
%235 = getelementptr inbounds [1024 x i8], [1024 x i8]* %29, i64 0, i64 0
%236 = getelementptr inbounds [1024 x i8], [1024 x i8]* %31, i64 0, i64 0
%237 = getelementptr inbounds [1024 x i8], [1024 x i8]* %33, i64 0, i64 0
%238 = getelementptr inbounds [1024 x i8], [1024 x i8]* %35, i64 0, i64 0
%239 = getelementptr inbounds [1024 x i8], [1024 x i8]* %37, i64 0, i64 0
%240 = getelementptr inbounds [1024 x i8], [1024 x i8]* %39, i64 0, i64 0
%241 = getelementptr inbounds [1024 x i8], [1024 x i8]* %41, i64 0, i64 0
%242 = call i32 @atof(i8* %241)
%243 = getelementptr inbounds [1024 x i8], [1024 x i8]* %43, i64 0, i64 0
%244 = getelementptr inbounds [1024 x i8], [1024 x i8]* %45, i64 0, i64 0
%245 = getelementptr inbounds [1024 x i8], [1024 x i8]* %47, i64 0, i64 0
%246 = load i8*, i8** %19
%247 = call i32 @database_edit_record(i8* %222, i32 %223, i8* %224, i8* %225, i8* %226, i8* %227, i8* %228, i8* %229, i32 %231, i8* %232, i8* %233, i8* %234, i8* %235, i8* %236, i8* %237, i8* %238, i8* %239, i8* %240, i32 %242, i8* %243, i8* %244, i8* %245, i8* %246)
store i32 %247, i32* %14
br label %248
248: ; preds = %221, %220, %65
%249 = load i32, i32* %14
ret i32 %249
}

LLVM IR (-O2):
@.str.2 = [3 x i8] c"%f\00"
@str = [26 x i8] c"Failed to get transaction\00"
define i32 @command_edit(i8* %0, i32 %1, i8* %2, i8* %3, i8* %4, i8* %5, i8* %6, i8* %7, i8* %8, float %9, i8* %10, i8* %11, i8* %12) {
%14 = alloca [1024 x i8]
%15 = alloca [1024 x i8]
%16 = alloca [1024 x i8]
%17 = alloca [1024 x i8]
%18 = alloca [1024 x i8]
%19 = alloca [1024 x i8]
%20 = alloca [1024 x i8]
%21 = alloca [1024 x i8]
%22 = alloca [1024 x i8]
%23 = alloca [1024 x i8]
%24 = alloca [1024 x i8]
%25 = alloca [1024 x i8]
%26 = alloca [1024 x i8]
%27 = alloca [1024 x i8]
%28 = alloca [1024 x i8]
%29 = alloca [1024 x i8]
%30 = alloca [1024 x i8]
%31 = alloca [1024 x i8]
%32 = alloca [1024 x i8]
%33 = alloca [1024 x i8]
%34 = alloca [1024 x i8]
%35 = getelementptr inbounds [1024 x i8], [1024 x i8]* %14, i64 0, i64 0
%36 = getelementptr inbounds [1024 x i8], [1024 x i8]* %15, i64 0, i64 0
%37 = getelementptr inbounds [1024 x i8], [1024 x i8]* %16, i64 0, i64 0
%38 = getelementptr inbounds [1024 x i8], [1024 x i8]* %17, i64 0, i64 0
%39 = getelementptr inbounds [1024 x i8], [1024 x i8]* %18, i64 0, i64 0
%40 = getelementptr inbounds [1024 x i8], [1024 x i8]* %19, i64 0, i64 0
%41 = getelementptr inbounds [1024 x i8], [1024 x i8]* %20, i64 0, i64 0
%42 = getelementptr inbounds [1024 x i8], [1024 x i8]* %21, i64 0, i64 0
%43 = getelementptr inbounds [1024 x i8], [1024 x i8]* %22, i64 0, i64 0
%44 = getelementptr inbounds [1024 x i8], [1024 x i8]* %23, i64 0, i64 0
%45 = getelementptr inbounds [1024 x i8], [1024 x i8]* %24, i64 0, i64 0
%46 = getelementptr inbounds [1024 x i8], [1024 x i8]* %25, i64 0, i64 0
%47 = getelementptr inbounds [1024 x i8], [1024 x i8]* %26, i64 0, i64 0
%48 = getelementptr inbounds [1024 x i8], [1024 x i8]* %27, i64 0, i64 0
%49 = getelementptr inbounds [1024 x i8], [1024 x i8]* %28, i64 0, i64 0
%50 = getelementptr inbounds [1024 x i8], [1024 x i8]* %29, i64 0, i64 0
%51 = getelementptr inbounds [1024 x i8], [1024 x i8]* %30, i64 0, i64 0
%52 = getelementptr inbounds [1024 x i8], [1024 x i8]* %31, i64 0, i64 0
%53 = getelementptr inbounds [1024 x i8], [1024 x i8]* %32, i64 0, i64 0
%54 = getelementptr inbounds [1024 x i8], [1024 x i8]* %33, i64 0, i64 0
%55 = getelementptr inbounds [1024 x i8], [1024 x i8]* %34, i64 0, i64 0
%56 = call i64 @database_get_record(i8* %0, i32 %1, i8* %35, i8* %37, i8* %55, i8* %39, i8* %41, i8* %43, i8* %45, i8* %47, i8* %49, i8* %51, i8* %53)
%57 = icmp eq i64 %56, 0
br i1 %57, label %58, label %60
58: ; preds = %13
%59 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str, i64 0, i64 0))
br label %156
60: ; preds = %13
%61 = call i8* @strcpy(i8* %36, i8* %35)
%62 = call i8* @strcpy(i8* %38, i8* %37)
%63 = call i8* @strcpy(i8* %40, i8* %39)
%64 = call i8* @strcpy(i8* %42, i8* %41)
%65 = call i8* @strcpy(i8* %44, i8* %43)
%66 = call i8* @strcpy(i8* %46, i8* %45)
%67 = call i8* @strcpy(i8* %48, i8* %47)
%68 = call i8* @strcpy(i8* %50, i8* %49)
%69 = call i8* @strcpy(i8* %52, i8* %51)
%70 = call i8* @strcpy(i8* %54, i8* %53)
%71 = icmp eq i8* %2, null
br i1 %71, label %77, label %72
72: ; preds = %60
%73 = load i8, i8* %2
%74 = icmp eq i8 %73, 0
br i1 %74, label %77, label %75
75: ; preds = %72
%76 = call i32 @convert_date_to_standard(i8* %2, i8* %4, i8* %36)
br label %77
77: ; preds = %72, %75, %60
%78 = phi i32 [ 1, %75 ], [ 0, %72 ], [ 0, %60 ]
%79 = icmp eq i8* %3, null
br i1 %79, label %85, label %80
80: ; preds = %77
%81 = load i8, i8* %3
%82 = icmp eq i8 %81, 0
br i1 %82, label %85, label %83
83: ; preds = %80
%84 = call i8* @strcpy(i8* %38, i8* %3)
br label %85
85: ; preds = %80, %83, %77
%86 = phi i32 [ 1, %83 ], [ %78, %80 ], [ %78, %77 ]
%87 = icmp eq i8* %5, null
br i1 %87, label %93, label %88
88: ; preds = %85
%89 = load i8, i8* %5
%90 = icmp eq i8 %89, 0
br i1 %90, label %93, label %91
91: ; preds = %88
%92 = call i8* @strcpy(i8* %40, i8* %5)
br label %93
93: ; preds = %88, %91, %85
%94 = phi i32 [ 1, %91 ], [ %86, %88 ], [ %86, %85 ]
%95 = icmp eq i8* %6, null
br i1 %95, label %101, label %96
96: ; preds = %93
%97 = load i8, i8* %6
%98 = icmp eq i8 %97, 0
br i1 %98, label %101, label %99
99: ; preds = %96
%100 = call i8* @strcpy(i8* %42, i8* %6)
br label %101
101: ; preds = %96, %99, %93
%102 = phi i32 [ 1, %99 ], [ %94, %96 ], [ %94, %93 ]
%103 = icmp eq i8* %7, null
br i1 %103, label %109, label %104
104: ; preds = %101
%105 = load i8, i8* %7
%106 = icmp eq i8 %105, 0
br i1 %106, label %109, label %107
107: ; preds = %104
%108 = call i8* @strcpy(i8* %44, i8* %7)
br label %109
109: ; preds = %104, %107, %101
%110 = phi i32 [ 1, %107 ], [ %102, %104 ], [ %102, %101 ]
%111 = icmp eq i8* %8, null
br i1 %111, label %117, label %112
112: ; preds = %109
%113 = load i8, i8* %8
%114 = icmp eq i8 %113, 0
br i1 %114, label %117, label %115
115: ; preds = %112
%116 = call i8* @strcpy(i8* %46, i8* %8)
br label %117
117: ; preds = %112, %115, %109
%118 = phi i32 [ 1, %115 ], [ %110, %112 ], [ %110, %109 ]
%119 = icmp eq i8* %10, null
br i1 %119, label %125, label %120
120: ; preds = %117
%121 = load i8, i8* %10
%122 = icmp eq i8 %121, 0
br i1 %122, label %125, label %123
123: ; preds = %120
%124 = call i8* @strcpy(i8* %50, i8* %10)
br label %125
125: ; preds = %120, %123, %117
%126 = phi i32 [ 1, %123 ], [ %118, %120 ], [ %118, %117 ]
%127 = icmp eq i8* %11, null
br i1 %127, label %133, label %128
128: ; preds = %125
%129 = load i8, i8* %11
%130 = icmp eq i8 %129, 0
br i1 %130, label %133, label %131
131: ; preds = %128
%132 = call i8* @strcpy(i8* %52, i8* %11)
br label %133
133: ; preds = %128, %131, %125
%134 = phi i32 [ 1, %131 ], [ %126, %128 ], [ %126, %125 ]
%135 = icmp eq i8* %12, null
br i1 %135, label %139, label %136
136: ; preds = %133
%137 = load i8, i8* %12
%138 = icmp eq i8 %137, 0
br i1 %138, label %139, label %141
139: ; preds = %136, %133
%140 = fcmp ogt float %9, 0.000000e+00
br i1 %140, label %146, label %149
141: ; preds = %136
%142 = call i8* @strcpy(i8* %54, i8* %12)
%143 = fcmp ogt float %9, 0.000000e+00
br i1 %143, label %146, label %144
144: ; preds = %141
%145 = bitcast [1024 x i8]* %27 to i16*
store i16 48, i16* %145
br label %152
146: ; preds = %139, %141
%147 = fpext float %9 to double
%148 = call i32 (i8*, i8*, ...) @sprintf(i8* %48, i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), double %147)
br label %152
149: ; preds = %139
%150 = bitcast [1024 x i8]* %27 to i16*
store i16 48, i16* %150
%151 = icmp eq i32 %134, 0
br i1 %151, label %156, label %152
152: ; preds = %144, %146, %149
%153 = call i32 @atof(i8* %47)
%154 = call i32 @atof(i8* %48)
%155 = call i32 @database_edit_record(i8* %0, i32 %1, i8* %35, i8* %37, i8* %39, i8* %41, i8* %43, i8* %45, i32 %153, i8* %49, i8* %51, i8* %53, i8* %36, i8* %38, i8* %40, i8* %42, i8* %44, i8* %46, i32 %154, i8* %50, i8* %52, i8* %54, i8* %4)
br label %156
156: ; preds = %149, %152, %58
%157 = phi i32 [ 0, %58 ], [ %155, %152 ], [ -1, %149 ]
ret i32 %157
}