#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*/ infname;

/* Variables and functions */
int /*<<< orphan*/ bin2h(char *, char *, char *);
int /*<<< orphan*/ exit(int /*<<< orphan*/);
scalar_t__ getenv(char *);
int /*<<< orphan*/ memcpy(char *, char *, int);
int /*<<< orphan*/ memset(char *, int /*<<< orphan*/, int);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ strcat(char *, char *);
int strlen(char *);
scalar_t__ strncmp(char *, char *, int);
char *strtok(char *, char *);
int main(int argc, char *argv[]) {
  char infname[512], ine2pname[512], in_rom_patch[512];
  char outfname[512], oute2pname[512], out_rom_patch[512];
  char chipsets[1024];
  char fw_name[128], e2p_name[128], rom_patch_name[128];
  char *rt28xxdir;
  char *chipset, *token;
  char *wow, *rt28xx_mode;
  int is_bin2h_fw = 0, is_bin2h_rom_patch = 0, is_bin2h_e2p = 0;
  rt28xxdir = (char *)getenv("RT28xx_DIR");
  chipset = (char *)getenv("CHIPSET");
  memcpy(chipsets, chipset, strlen(chipset));
  wow = (char *)getenv("HAS_WOW_SUPPORT");
  rt28xx_mode = (char *)getenv("RT28xx_MODE");
  if (!rt28xxdir) {
    printf("Environment value \"RT28xx_DIR\" not export \n");
    return -1;
  }
  if (!chipset) {
    printf("Environment value \"CHIPSET\" not export \n");
    return -1;
  }
  if (strlen(rt28xxdir) > (sizeof(infname) - 100)) {
    printf("Environment value \"RT28xx_DIR\" is too long!\n");
    return -1;
  }
  chipset = strtok(chipsets, " ");
  while (chipset != NULL) {
    printf("chipset = %s\n", chipset);
    memset(infname, 0, 512);
    memset(ine2pname, 0, 512);
    memset(outfname, 0, 512);
    memset(oute2pname, 0, 512);
    memset(fw_name, 0, 128);
    memset(e2p_name, 0, 128);
    memset(in_rom_patch, 0, 512);
    memset(out_rom_patch, 0, 512);
    memset(rom_patch_name, 0, 128);
    strcat(infname, rt28xxdir);
    strcat(ine2pname, rt28xxdir);
    strcat(in_rom_patch, rt28xxdir);
    strcat(outfname, rt28xxdir);
    strcat(oute2pname, rt28xxdir);
    strcat(out_rom_patch, rt28xxdir);
    is_bin2h_fw = 0;
    is_bin2h_rom_patch = 0;
    is_bin2h_e2p = 0;
    if (strncmp(chipset, "2860", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "2870", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3090", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "2070", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3070", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3572", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3573", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3370", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "5370", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) &&
          (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "5572", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2870.bin");
      strcat(outfname, "/include/mcu/rt2870_firmware.h");
      strcat(fw_name, "RT2870_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "5592", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if ((strncmp(chipset, "mt7601e", 7) == 0) ||
               (strncmp(chipset, "mt7601u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7601_formal_1.6.bin");
      strcat(outfname, "/include/mcu/mt7601_firmware.h");
      strcat(fw_name, "MT7601_FirmwareImage");
      is_bin2h_fw = 1;
      strcat(ine2pname, "/eeprom/MT7601_USB_V0_D-20130416.bin");
      strcat(oute2pname, "/include/eeprom/mt7601_e2p.h");
      strcat(e2p_name, "MT7601_E2PImage");
      is_bin2h_e2p = 1;
    } else if ((strncmp(chipset, "mt7650e", 7) == 0) ||
               (strncmp(chipset, "mt7650u", 7) == 0) ||
               (strncmp(chipset, "mt7630e", 7) == 0) ||
               (strncmp(chipset, "mt7630u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7650.bin");
      strcat(outfname, "/include/mcu/mt7650_firmware.h");
      strcat(fw_name, "MT7650_FirmwareImage");
      is_bin2h_fw = 1;
    } else if ((strncmp(chipset, "mt7610e", 7) == 0) ||
               (strncmp(chipset, "mt7610u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7650.bin");
      strcat(outfname, "/include/mcu/mt7610_firmware.h");
      strcat(fw_name, "MT7610_FirmwareImage");
      is_bin2h_fw = 1;
      if ((strncmp(chipset, "mt7610e", 7) == 0)) {
        strcat(ine2pname, "/eeprom/MT7610U_FEM_V1_1.bin");
        strcat(oute2pname, "/include/eeprom/mt7610e_e2p.h");
        strcat(e2p_name, "MT7610E_E2PImage");
      } else if ((strncmp(chipset, "mt7610u", 7) == 0)) {
        strcat(ine2pname, "/eeprom/MT7610U_FEM_V1_1.bin");
        strcat(oute2pname, "/include/eeprom/mt7610u_e2p.h");
        strcat(e2p_name, "MT7610U_E2PImage");
      }
    } else if ((strncmp(chipset, "mt7662e", 7) == 0) ||
               (strncmp(chipset, "mt7662u", 7) == 0) ||
               (strncmp(chipset, "mt7632e", 7) == 0) ||
               (strncmp(chipset, "mt7632u", 7) == 0) ||
               (strncmp(chipset, "mt7612e", 7) == 0) ||
               (strncmp(chipset, "mt7612u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7662_E3_v1.9.bin");
      strcat(outfname, "/include/mcu/mt7662_firmware.h");
      strcat(fw_name, "MT7662_FirmwareImage");
      strcat(in_rom_patch, "/mcu/bin/mt7662_patch_e3_hdr_v0.0.2_P69.bin");
      strcat(out_rom_patch, "/include/mcu/mt7662_rom_patch.h");
      strcat(rom_patch_name, "mt7662_rom_patch");
      strcat(
          ine2pname,
          "/eeprom/MT7612E_EEPROM_layout_20131121_2G5G_ePAeLNA_TXTC_off.bin");
      strcat(oute2pname, "/include/eeprom/mt76x2_e2p.h");
      strcat(e2p_name, "MT76x2_E2PImage");
      is_bin2h_fw = 1;
      is_bin2h_rom_patch = 1;
      is_bin2h_e2p = 1;
    } else if ((strncmp(chipset, "mt7662tu", 8) == 0) ||
               (strncmp(chipset, "mt7632tu", 8) == 0) ||
               (strncmp(chipset, "mt7612tu", 8) == 0)) {
      strcat(infname, "/mcu/bin/mt7662t_firmware_e1.bin");
      strcat(outfname, "/include/mcu/mt7662t_firmware.h");
      strcat(fw_name, "MT7662T_FirmwareImage");
      strcat(in_rom_patch, "/mcu/bin/mt7662t_patch_e1_hdr.bin");
      strcat(out_rom_patch, "/include/mcu/mt7662t_rom_patch.h");
      strcat(rom_patch_name, "mt7662t_rom_patch");
      is_bin2h_fw = 1;
      is_bin2h_rom_patch = 1;
    } else {
      printf("unknown chipset = %s\n", chipset);
    }
    if (is_bin2h_fw)
      bin2h(infname, outfname, fw_name);
    if (is_bin2h_rom_patch)
      bin2h(in_rom_patch, out_rom_patch, rom_patch_name);
    if (is_bin2h_e2p)
      bin2h(ine2pname, oute2pname, e2p_name);
    chipset = strtok(NULL, " ");
  }
  exit(0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x11e0,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x0,-0x11bc(%rbp)
movl   $0x0,-0x11c0(%rbp)
movl   $0x0,-0x11c4(%rbp)
lea    0x1e22(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,-0x1198(%rbp)
lea    0x1e1a(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,-0x11a0(%rbp)
lea    -0x1010(%rbp),%rax
mov    %rax,-0x11d8(%rbp)
mov    -0x11a0(%rbp),%rax
mov    %rax,-0x11d0(%rbp)
mov    -0x11a0(%rbp),%rdi
call   1060 <strlen@plt>
mov    -0x11d8(%rbp),%rdi
mov    -0x11d0(%rbp),%rsi
mov    %eax,%edx
call   1090 <memcpy@plt>
lea    0x1dd2(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,-0x11b0(%rbp)
lea    0x1dcf(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,-0x11b8(%rbp)
cmpq   $0x0,-0x1198(%rbp)
jne    1288 <main+0xe8>
lea    0x1dba(%rip),%rdi
mov    $0x0,%al
call   1070 <printf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    232c <main+0x118c>
cmpq   $0x0,-0x11a0(%rbp)
jne    12b0 <main+0x110>
lea    0x1dbe(%rip),%rdi
mov    $0x0,%al
call   1070 <printf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    232c <main+0x118c>
mov    -0x1198(%rbp),%rdi
call   1060 <strlen@plt>
cltq
cmp    $0x19c,%rax
jbe    12e4 <main+0x144>
lea    0x1db3(%rip),%rdi
mov    $0x0,%al
call   1070 <printf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    232c <main+0x118c>
lea    -0x1010(%rbp),%rdi
lea    0x1dbf(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x11a0(%rbp)
cmpq   $0x0,-0x11a0(%rbp)
je     2325 <main+0x1185>
mov    -0x11a0(%rbp),%rsi
lea    0x22b0(%rip),%rdi
mov    $0x0,%al
call   1070 <printf@plt>
lea    -0x210(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0x410(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0x810(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0xa10(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0x1090(%rbp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1080 <memset@plt>
lea    -0x1110(%rbp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1080 <memset@plt>
lea    -0x610(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0xc10(%rbp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1080 <memset@plt>
lea    -0x1190(%rbp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1080 <memset@plt>
lea    -0x210(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
lea    -0x410(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
lea    -0x610(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
lea    -0xa10(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
lea    -0xc10(%rbp),%rdi
mov    -0x1198(%rbp),%rsi
call   10b0 <strcat@plt>
movl   $0x0,-0x11bc(%rbp)
movl   $0x0,-0x11c0(%rbp)
movl   $0x0,-0x11c4(%rbp)
mov    -0x11a0(%rbp),%rdi
lea    0x1c49(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    14c6 <main+0x326>
lea    -0x210(%rbp),%rdi
lea    0x1c2c(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1c2d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1c39(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2294 <main+0x10f4>
mov    -0x11a0(%rbp),%rdi
lea    0x1c2c(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    15bc <main+0x41c>
mov    -0x11b0(%rbp),%rdi
lea    0x1c0f(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1574 <main+0x3d4>
mov    -0x11b8(%rbp),%rdi
lea    0x1bef(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1574 <main+0x3d4>
lea    -0x210(%rbp),%rdi
lea    0x1bd1(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1bd6(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1be6(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    15b7 <main+0x417>
lea    -0x210(%rbp),%rdi
lea    0x1bdd(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1bde(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1bea(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    228f <main+0x10ef>
mov    -0x11a0(%rbp),%rdi
lea    0x1bdd(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1626 <main+0x486>
lea    -0x210(%rbp),%rdi
lea    0x1acc(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1acd(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1ad9(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    228a <main+0x10ea>
mov    -0x11a0(%rbp),%rdi
lea    0x1b78(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    171c <main+0x57c>
mov    -0x11b0(%rbp),%rdi
lea    0x1aaf(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    16d4 <main+0x534>
mov    -0x11b8(%rbp),%rdi
lea    0x1a8f(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    16d4 <main+0x534>
lea    -0x210(%rbp),%rdi
lea    0x1a71(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1a76(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1a86(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    1717 <main+0x577>
lea    -0x210(%rbp),%rdi
lea    0x1a7d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1a7e(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1a8a(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2285 <main+0x10e5>
mov    -0x11a0(%rbp),%rdi
lea    0x1a87(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1812 <main+0x672>
mov    -0x11b0(%rbp),%rdi
lea    0x19b9(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    17ca <main+0x62a>
mov    -0x11b8(%rbp),%rdi
lea    0x1999(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    17ca <main+0x62a>
lea    -0x210(%rbp),%rdi
lea    0x197b(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1980(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1990(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    180d <main+0x66d>
lea    -0x210(%rbp),%rdi
lea    0x1987(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1988(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1994(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2280 <main+0x10e0>
mov    -0x11a0(%rbp),%rdi
lea    0x1996(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1908 <main+0x768>
mov    -0x11b0(%rbp),%rdi
lea    0x18c3(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    18c0 <main+0x720>
mov    -0x11b8(%rbp),%rdi
lea    0x18a3(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    18c0 <main+0x720>
lea    -0x210(%rbp),%rdi
lea    0x1885(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x188a(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x189a(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    1903 <main+0x763>
lea    -0x210(%rbp),%rdi
lea    0x1891(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1892(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x189e(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    227b <main+0x10db>
mov    -0x11a0(%rbp),%rdi
lea    0x18a5(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    19fe <main+0x85e>
mov    -0x11b0(%rbp),%rdi
lea    0x17cd(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    19b6 <main+0x816>
mov    -0x11b8(%rbp),%rdi
lea    0x17ad(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    19b6 <main+0x816>
lea    -0x210(%rbp),%rdi
lea    0x178f(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1794(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x17a4(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    19f9 <main+0x859>
lea    -0x210(%rbp),%rdi
lea    0x179b(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x179c(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x17a8(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2276 <main+0x10d6>
mov    -0x11a0(%rbp),%rdi
lea    0x17b4(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1af4 <main+0x954>
mov    -0x11b0(%rbp),%rdi
lea    0x16d7(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1aac <main+0x90c>
mov    -0x11b8(%rbp),%rdi
lea    0x16b7(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1aac <main+0x90c>
lea    -0x210(%rbp),%rdi
lea    0x1699(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x169e(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x16ae(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    1aef <main+0x94f>
lea    -0x210(%rbp),%rdi
lea    0x16a5(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x16a6(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x16b2(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2271 <main+0x10d1>
mov    -0x11a0(%rbp),%rdi
lea    0x16c3(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1bea <main+0xa4a>
mov    -0x11b0(%rbp),%rdi
lea    0x15e1(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1ba2 <main+0xa02>
mov    -0x11b8(%rbp),%rdi
lea    0x15c1(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1ba2 <main+0xa02>
lea    -0x210(%rbp),%rdi
lea    0x15a3(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x15a8(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x15b8(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    1be5 <main+0xa45>
lea    -0x210(%rbp),%rdi
lea    0x15af(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x15b0(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x15bc(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    226c <main+0x10cc>
mov    -0x11a0(%rbp),%rdi
lea    0x15d2(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1c54 <main+0xab4>
lea    -0x210(%rbp),%rdi
lea    0x1545(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1546(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1552(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2267 <main+0x10c7>
mov    -0x11a0(%rbp),%rdi
lea    0x156d(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1cbe <main+0xb1e>
lea    -0x210(%rbp),%rdi
lea    0x1434(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1435(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1441(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2262 <main+0x10c2>
mov    -0x11a0(%rbp),%rdi
lea    0x1508(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     1d02 <main+0xb62>
mov    -0x11a0(%rbp),%rdi
lea    0x14ee(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1d8d <main+0xbed>
lea    -0x210(%rbp),%rdi
lea    0x14d4(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x14e0(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x14ec(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
lea    -0x410(%rbp),%rdi
lea    0x14e4(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xa10(%rbp),%rdi
lea    0x14f6(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1110(%rbp),%rdi
lea    0x1500(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11c4(%rbp)
jmp    225d <main+0x10bd>
mov    -0x11a0(%rbp),%rdi
lea    0x14ee(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     1e15 <main+0xc75>
mov    -0x11a0(%rbp),%rdi
lea    0x14d4(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     1e15 <main+0xc75>
mov    -0x11a0(%rbp),%rdi
lea    0x14ba(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     1e15 <main+0xc75>
mov    -0x11a0(%rbp),%rdi
lea    0x14a0(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1e5d <main+0xcbd>
lea    -0x210(%rbp),%rdi
lea    0x1486(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1487(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1493(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
jmp    2258 <main+0x10b8>
mov    -0x11a0(%rbp),%rdi
lea    0x1486(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     1ea1 <main+0xd01>
mov    -0x11a0(%rbp),%rdi
lea    0x146c(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1fa9 <main+0xe09>
lea    -0x210(%rbp),%rdi
lea    0x13fa(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x143f(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x144b(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
mov    -0x11a0(%rbp),%rdi
lea    0x13ff(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1f44 <main+0xda4>
lea    -0x410(%rbp),%rdi
lea    0x1421(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xa10(%rbp),%rdi
lea    0x142b(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1110(%rbp),%rdi
lea    0x1436(%rip),%rsi
call   10b0 <strcat@plt>
jmp    1fa4 <main+0xe04>
mov    -0x11a0(%rbp),%rdi
lea    0x13a7(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1f9f <main+0xdff>
lea    -0x410(%rbp),%rdi
lea    0x13c1(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xa10(%rbp),%rdi
lea    0x13fa(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1110(%rbp),%rdi
lea    0x1405(%rip),%rsi
call   10b0 <strcat@plt>
jmp    1fa4 <main+0xe04>
jmp    2253 <main+0x10b3>
mov    -0x11a0(%rbp),%rdi
lea    0x13f9(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     2075 <main+0xed5>
mov    -0x11a0(%rbp),%rdi
lea    0x13df(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     2075 <main+0xed5>
mov    -0x11a0(%rbp),%rdi
lea    0x13c5(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     2075 <main+0xed5>
mov    -0x11a0(%rbp),%rdi
lea    0x13ab(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     2075 <main+0xed5>
mov    -0x11a0(%rbp),%rdi
lea    0x1391(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     2075 <main+0xed5>
mov    -0x11a0(%rbp),%rdi
lea    0x1377(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    2143 <main+0xfa3>
lea    -0x210(%rbp),%rdi
lea    0x135d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x1366(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x1372(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x610(%rbp),%rdi
lea    0x1374(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xc10(%rbp),%rdi
lea    0x138d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1190(%rbp),%rdi
lea    0x139a(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x410(%rbp),%rdi
lea    0x1398(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xa10(%rbp),%rdi
lea    0x13c6(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1110(%rbp),%rdi
lea    0x13d0(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
movl   $0x1,-0x11c0(%rbp)
movl   $0x1,-0x11c4(%rbp)
jmp    224e <main+0x10ae>
mov    -0x11a0(%rbp),%rdi
lea    0x13aa(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     21a9 <main+0x1009>
mov    -0x11a0(%rbp),%rdi
lea    0x1391(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
je     21a9 <main+0x1009>
mov    -0x11a0(%rbp),%rdi
lea    0x1378(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    2234 <main+0x1094>
lea    -0x210(%rbp),%rdi
lea    0x135f(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x810(%rbp),%rdi
lea    0x136d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1090(%rbp),%rdi
lea    0x137a(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x610(%rbp),%rdi
lea    0x137d(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0xc10(%rbp),%rdi
lea    0x138c(%rip),%rsi
call   10b0 <strcat@plt>
lea    -0x1190(%rbp),%rdi
lea    0x139a(%rip),%rsi
call   10b0 <strcat@plt>
movl   $0x1,-0x11bc(%rbp)
movl   $0x1,-0x11c0(%rbp)
jmp    2249 <main+0x10a9>
mov    -0x11a0(%rbp),%rsi
lea    0x1380(%rip),%rdi
mov    $0x0,%al
call   1070 <printf@plt>
jmp    224e <main+0x10ae>
jmp    2253 <main+0x10b3>
jmp    2258 <main+0x10b8>
jmp    225d <main+0x10bd>
jmp    2262 <main+0x10c2>
jmp    2267 <main+0x10c7>
jmp    226c <main+0x10cc>
jmp    2271 <main+0x10d1>
jmp    2276 <main+0x10d6>
jmp    227b <main+0x10db>
jmp    2280 <main+0x10e0>
jmp    2285 <main+0x10e5>
jmp    228a <main+0x10ea>
jmp    228f <main+0x10ef>
jmp    2294 <main+0x10f4>
cmpl   $0x0,-0x11bc(%rbp)
je     22bb <main+0x111b>
lea    -0x210(%rbp),%rdi
lea    -0x810(%rbp),%rsi
lea    -0x1090(%rbp),%rdx
call   1050 <bin2h@plt>
cmpl   $0x0,-0x11c0(%rbp)
je     22e2 <main+0x1142>
lea    -0x610(%rbp),%rdi
lea    -0xc10(%rbp),%rsi
lea    -0x1190(%rbp),%rdx
call   1050 <bin2h@plt>
cmpl   $0x0,-0x11c4(%rbp)
je     2309 <main+0x1169>
lea    -0x410(%rbp),%rdi
lea    -0xa10(%rbp),%rsi
lea    -0x1110(%rbp),%rdx
call   1050 <bin2h@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xd9d(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x11a0(%rbp)
jmp    12fe <main+0x15e>
xor    %edi,%edi
call   10c0 <exit@plt>
mov    -0x4(%rbp),%eax
add    $0x11e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x11a8,%rsp
lea    0xe38(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,%rbx
lea    0xe34(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,%rbp
mov    %rax,%rdi
call   1070 <strlen@plt>
lea    0xba0(%rsp),%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   10a0 <memcpy@plt>
lea    0xe13(%rip),%rdi
call   1030 <getenv@plt>
mov    %rax,%r15
lea    0xe14(%rip),%rdi
call   1030 <getenv@plt>
test   %rbx,%rbx
je     1239 <main+0x89>
test   %rbp,%rbp
je     1242 <main+0x92>
mov    %rax,%r14
mov    %rbx,%rdi
call   1070 <strlen@plt>
cmp    $0x19c,%eax
jbe    1265 <main+0xb5>
lea    0x1370(%rip),%rdi
jmp    1249 <main+0x99>
lea    0x1314(%rip),%rdi
jmp    1249 <main+0x99>
lea    0x1336(%rip),%rdi
call   1050 <puts@plt>
mov    $0xffffffff,%eax
add    $0x11a8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    %rbx,0x18(%rsp)
mov    %r15,0x10(%rsp)
mov    %r14,0x8(%rsp)
lea    0x1302(%rip),%rsi
lea    0xba0(%rsp),%rdi
call   10b0 <strtok@plt>
test   %rax,%rax
jne    1294 <main+0xe4>
xor    %edi,%edi
call   10d0 <exit@plt>
lea    0xfa0(%rsp),%r13
mov    %rax,(%rsp)
lea    0x129f(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1080 <printf@plt>
mov    %r13,%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
mov    %r13,%r12
lea    0x3a0(%rsp),%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
lea    0xa0(%rsp),%r13
mov    %r13,%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
lea    0x5a0(%rsp),%r15
mov    %r15,%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
lea    0x20(%rsp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1090 <memset@plt>
lea    0x2a0(%rsp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1090 <memset@plt>
lea    0x7a0(%rsp),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
lea    0x9a0(%rsp),%r14
mov    %r14,%rdi
xor    %esi,%esi
mov    $0x200,%edx
call   1090 <memset@plt>
lea    0x320(%rsp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1090 <memset@plt>
mov    %r12,%rdi
mov    0x18(%rsp),%rbp
mov    %rbp,%rsi
call   10c0 <strcat@plt>
lea    0x3a0(%rsp),%rdi
mov    %rbp,%rsi
call   10c0 <strcat@plt>
mov    %rbx,%rdi
mov    (%rsp),%rbx
mov    %rbp,%rsi
call   10c0 <strcat@plt>
mov    %r13,%rdi
mov    %rbp,%rsi
call   10c0 <strcat@plt>
mov    %r15,%rdi
mov    %rbp,%rsi
call   10c0 <strcat@plt>
mov    %r14,%rdi
mov    %rbp,%rsi
call   10c0 <strcat@plt>
mov    %rbx,%rdi
lea    0xc69(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     170d <main+0x55d>
mov    %rbx,%rdi
lea    0xc99(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     174f <main+0x59f>
mov    %rbx,%rdi
lea    0xd23(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
mov    %r12,%r13
je     17dc <main+0x62c>
mov    %rbx,%rdi
lea    0xd08(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xcf0(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xcd8(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xcc0(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xca8(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xc90(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     176f <main+0x5bf>
mov    %rbx,%rdi
lea    0xc78(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     17a5 <main+0x5f5>
mov    %rbx,%rdi
lea    0xc60(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     17dc <main+0x62c>
mov    %rbx,%rdi
lea    0xc48(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1877 <main+0x6c7>
mov    %rbx,%rdi
lea    0xc33(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1877 <main+0x6c7>
mov    %rbx,%rdi
lea    0xcc3(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1912 <main+0x762>
mov    %rbx,%rdi
lea    0xcae(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1912 <main+0x762>
mov    %rbx,%rdi
lea    0xc99(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1912 <main+0x762>
mov    %rbx,%rdi
lea    0xc84(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1912 <main+0x762>
mov    %rbx,%rdi
lea    0xcb7(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     194c <main+0x79c>
mov    %rbx,%rdi
lea    0xca2(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     194c <main+0x79c>
mov    %rbx,%rdi
lea    0xd3c(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xd26(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xd10(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xcfa(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xce4(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xcce(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1a07 <main+0x857>
mov    (%rsp),%rdi
lea    0xdd3(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1b38 <main+0x988>
mov    (%rsp),%rdi
lea    0xdbe(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1b38 <main+0x988>
mov    (%rsp),%rdi
lea    0xda9(%rip),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1b38 <main+0x988>
lea    0xe44(%rip),%rdi
mov    (%rsp),%rsi
xor    %eax,%eax
call   1080 <printf@plt>
mov    %r12,%r13
jmp    185b <main+0x6ab>
mov    %r12,%rdi
lea    0x91d(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x91a(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
lea    0x925(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r12,%r13
jmp    184d <main+0x69d>
mov    0x10(%rsp),%rdi
lea    0x926(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
mov    %r12,%r13
jne    17a5 <main+0x5f5>
jmp    178a <main+0x5da>
mov    0x10(%rsp),%rdi
lea    0x906(%rip),%rsi
mov    $0x1,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    17a5 <main+0x5f5>
mov    0x8(%rsp),%rdi
lea    0x8ed(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1813 <main+0x663>
mov    %r13,%rdi
lea    0x92c(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x929(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
lea    0x934(%rip),%rsi
jmp    1848 <main+0x698>
mov    %r13,%rdi
lea    0x84e(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x84b(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
lea    0x856(%rip),%rsi
jmp    1848 <main+0x698>
mov    %r13,%rdi
lea    0x86a(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x86b(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
lea    0x87a(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r13,%rdi
mov    %rbp,%rsi
mov    %rbx,%rdx
call   1060 <bin2h@plt>
xor    %edi,%edi
lea    0xd19(%rip),%rsi
call   10b0 <strtok@plt>
test   %rax,%rax
jne    129c <main+0xec>
jmp    128d <main+0xdd>
mov    %r13,%rdi
lea    0x8df(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%r14
mov    %r14,%rdi
lea    0x8e7(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%r12
mov    %r12,%rdi
lea    0x8f2(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x3a0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x8f0(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x5a0(%rsp),%rbx
mov    %rbx,%rdi
lea    0x8fe(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x2a0(%rsp),%r15
mov    %r15,%rdi
lea    0x904(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r13,%rdi
mov    %r14,%rsi
mov    %r12,%rdx
call   1060 <bin2h@plt>
mov    %rbp,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
jmp    1856 <main+0x6a6>
mov    %r13,%rdi
lea    0x909(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x906(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
lea    0x911(%rip),%rsi
jmp    1848 <main+0x698>
mov    %r12,%rdi
lea    0x8cf(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rdi
lea    0x913(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rdi
lea    0x921(%rip),%rsi
call   10c0 <strcat@plt>
mov    %rbx,%rdi
lea    0x8e3(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
je     1ae7 <main+0x937>
mov    (%rsp),%rdi
lea    0x8cd(%rip),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
mov    %r12,%r13
lea    0xa0(%rsp),%rbp
lea    0x20(%rsp),%rbx
jne    184d <main+0x69d>
lea    0x3a0(%rsp),%rdi
lea    0x8d7(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x5a0(%rsp),%rdi
lea    0x90f(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x2a0(%rsp),%rdi
lea    0x919(%rip),%rsi
jmp    1848 <main+0x698>
mov    %r12,%r13
mov    %r12,%rdi
lea    0x948(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%rdi
lea    0x950(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%rdi
lea    0x95e(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x7a0(%rsp),%rdi
lea    0x95f(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x9a0(%rsp),%r14
mov    %r14,%rdi
lea    0x974(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x320(%rsp),%r12
mov    %r12,%rdi
lea    0x97d(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x3a0(%rsp),%rbp
mov    %rbp,%rdi
lea    0x977(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x5a0(%rsp),%rbx
mov    %rbx,%rdi
lea    0x9a1(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x2a0(%rsp),%r15
mov    %r15,%rdi
lea    0x9a7(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r13,%rdi
lea    0xa0(%rsp),%rsi
lea    0x20(%rsp),%rdx
call   1060 <bin2h@plt>
lea    0x7a0(%rsp),%rdi
jmp    18f9 <main+0x749>
lea    0x3a0(%rsp),%rdi
lea    0x7bb(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x5a0(%rsp),%rdi
lea    0x7c4(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x2a0(%rsp),%rdi
lea    0x7ce(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r12,%r13
lea    0xa0(%rsp),%rbp
lea    0x20(%rsp),%rbx
jmp    184d <main+0x69d>
mov    %r12,%r13
mov    %r12,%rdi
lea    0x94d(%rip),%rsi
call   10c0 <strcat@plt>
lea    0xa0(%rsp),%r15
mov    %r15,%rdi
lea    0x957(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x20(%rsp),%r14
mov    %r14,%rdi
lea    0x963(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x7a0(%rsp),%r12
mov    %r12,%rdi
lea    0x962(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x9a0(%rsp),%rbx
mov    %rbx,%rdi
lea    0x96d(%rip),%rsi
call   10c0 <strcat@plt>
lea    0x320(%rsp),%rbp
mov    %rbp,%rdi
lea    0x977(%rip),%rsi
call   10c0 <strcat@plt>
mov    %r13,%rdi
mov    %r15,%rsi
mov    %r14,%rdx
call   1060 <bin2h@plt>
mov    %r12,%rdi
mov    %rbx,%rsi
mov    %rbp,%rdx
jmp    1856 <main+0x6a6>

LLVM IR (-O0):
@.str = [11 x i8] c"RT28xx_DIR\00"
@.str.1 = [8 x i8] c"CHIPSET\00"
@.str.2 = [16 x i8] c"HAS_WOW_SUPPORT\00"
@.str.3 = [12 x i8] c"RT28xx_MODE\00"
@.str.4 = [44 x i8] c"Environment value \22RT28xx_DIR\22 not export \0A\00"
@.str.5 = [41 x i8] c"Environment value \22CHIPSET\22 not export \0A\00"
@.str.6 = [45 x i8] c"Environment value \22RT28xx_DIR\22 is too long!\0A\00"
@.str.7 = [2 x i8] c" \00"
@.str.8 = [14 x i8] c"chipset = %s\0A\00"
@.str.9 = [5 x i8] c"2860\00"
@.str.10 = [20 x i8] c"/mcu/bin/rt2860.bin\00"
@.str.11 = [31 x i8] c"/include/mcu/rt2860_firmware.h\00"
@.str.12 = [21 x i8] c"RT2860_FirmwareImage\00"
@.str.13 = [5 x i8] c"2870\00"
@.str.14 = [2 x i8] c"y\00"
@.str.15 = [4 x i8] c"STA\00"
@.str.16 = [24 x i8] c"/mcu/bin/rt2870_wow.bin\00"
@.str.17 = [35 x i8] c"/include/mcu/rt2870_wow_firmware.h\00"
@.str.18 = [25 x i8] c"RT2870_WOW_FirmwareImage\00"
@.str.19 = [20 x i8] c"/mcu/bin/rt2870.bin\00"
@.str.20 = [31 x i8] c"/include/mcu/rt2870_firmware.h\00"
@.str.21 = [21 x i8] c"RT2870_FirmwareImage\00"
@.str.22 = [5 x i8] c"3090\00"
@.str.23 = [5 x i8] c"2070\00"
@.str.24 = [5 x i8] c"3070\00"
@.str.25 = [5 x i8] c"3572\00"
@.str.26 = [5 x i8] c"3573\00"
@.str.27 = [5 x i8] c"3370\00"
@.str.28 = [5 x i8] c"5370\00"
@.str.29 = [5 x i8] c"5572\00"
@.str.30 = [5 x i8] c"5592\00"
@.str.31 = [8 x i8] c"mt7601e\00"
@.str.32 = [8 x i8] c"mt7601u\00"
@.str.33 = [31 x i8] c"/mcu/bin/MT7601_formal_1.6.bin\00"
@.str.34 = [31 x i8] c"/include/mcu/mt7601_firmware.h\00"
@.str.35 = [21 x i8] c"MT7601_FirmwareImage\00"
@.str.36 = [37 x i8] c"/eeprom/MT7601_USB_V0_D-20130416.bin\00"
@.str.37 = [29 x i8] c"/include/eeprom/mt7601_e2p.h\00"
@.str.38 = [16 x i8] c"MT7601_E2PImage\00"
@.str.39 = [8 x i8] c"mt7650e\00"
@.str.40 = [8 x i8] c"mt7650u\00"
@.str.41 = [8 x i8] c"mt7630e\00"
@.str.42 = [8 x i8] c"mt7630u\00"
@.str.43 = [20 x i8] c"/mcu/bin/MT7650.bin\00"
@.str.44 = [31 x i8] c"/include/mcu/mt7650_firmware.h\00"
@.str.45 = [21 x i8] c"MT7650_FirmwareImage\00"
@.str.46 = [8 x i8] c"mt7610e\00"
@.str.47 = [8 x i8] c"mt7610u\00"
@.str.48 = [31 x i8] c"/include/mcu/mt7610_firmware.h\00"
@.str.49 = [21 x i8] c"MT7610_FirmwareImage\00"
@.str.50 = [29 x i8] c"/eeprom/MT7610U_FEM_V1_1.bin\00"
@.str.51 = [30 x i8] c"/include/eeprom/mt7610e_e2p.h\00"
@.str.52 = [17 x i8] c"MT7610E_E2PImage\00"
@.str.53 = [30 x i8] c"/include/eeprom/mt7610u_e2p.h\00"
@.str.54 = [17 x i8] c"MT7610U_E2PImage\00"
@.str.55 = [8 x i8] c"mt7662e\00"
@.str.56 = [8 x i8] c"mt7662u\00"
@.str.57 = [8 x i8] c"mt7632e\00"
@.str.58 = [8 x i8] c"mt7632u\00"
@.str.59 = [8 x i8] c"mt7612e\00"
@.str.60 = [8 x i8] c"mt7612u\00"
@.str.61 = [28 x i8] c"/mcu/bin/MT7662_E3_v1.9.bin\00"
@.str.62 = [31 x i8] c"/include/mcu/mt7662_firmware.h\00"
@.str.63 = [21 x i8] c"MT7662_FirmwareImage\00"
@.str.64 = [44 x i8] c"/mcu/bin/mt7662_patch_e3_hdr_v0.0.2_P69.bin\00"
@.str.65 = [32 x i8] c"/include/mcu/mt7662_rom_patch.h\00"
@.str.66 = [17 x i8] c"mt7662_rom_patch\00"
@.str.67 = [65 x i8] c"/eeprom/MT7612E_EEPROM_layout_20131121_2G5G_ePAeLNA_TXTC_off.bin\00"
@.str.68 = [29 x i8] c"/include/eeprom/mt76x2_e2p.h\00"
@.str.69 = [16 x i8] c"MT76x2_E2PImage\00"
@.str.70 = [9 x i8] c"mt7662tu\00"
@.str.71 = [9 x i8] c"mt7632tu\00"
@.str.72 = [9 x i8] c"mt7612tu\00"
@.str.73 = [33 x i8] c"/mcu/bin/mt7662t_firmware_e1.bin\00"
@.str.74 = [32 x i8] c"/include/mcu/mt7662t_firmware.h\00"
@.str.75 = [22 x i8] c"MT7662T_FirmwareImage\00"
@.str.76 = [34 x i8] c"/mcu/bin/mt7662t_patch_e1_hdr.bin\00"
@.str.77 = [33 x i8] c"/include/mcu/mt7662t_rom_patch.h\00"
@.str.78 = [18 x i8] c"mt7662t_rom_patch\00"
@.str.79 = [22 x i8] c"unknown chipset = %s\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca [512 x i8]
%7 = alloca [512 x i8]
%8 = alloca [512 x i8]
%9 = alloca [512 x i8]
%10 = alloca [512 x i8]
%11 = alloca [512 x i8]
%12 = alloca [1024 x i8]
%13 = alloca [128 x i8]
%14 = alloca [128 x i8]
%15 = alloca [128 x i8]
%16 = alloca i8*
%17 = alloca i8*
%18 = alloca i8*
%19 = alloca i8*
%20 = alloca i8*
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 0, i32* %21
store i32 0, i32* %22
store i32 0, i32* %23
%24 = call i64 @getenv(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
%25 = inttoptr i64 %24 to i8*
store i8* %25, i8** %16
%26 = call i64 @getenv(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0))
%27 = inttoptr i64 %26 to i8*
store i8* %27, i8** %17
%28 = getelementptr inbounds [1024 x i8], [1024 x i8]* %12, i64 0, i64 0
%29 = load i8*, i8** %17
%30 = load i8*, i8** %17
%31 = call i32 @strlen(i8* %30)
%32 = call i32 @memcpy(i8* %28, i8* %29, i32 %31)
%33 = call i64 @getenv(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0))
%34 = inttoptr i64 %33 to i8*
store i8* %34, i8** %19
%35 = call i64 @getenv(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
%36 = inttoptr i64 %35 to i8*
store i8* %36, i8** %20
%37 = load i8*, i8** %16
%38 = icmp ne i8* %37, null
br i1 %38, label %41, label %39
39: ; preds = %2
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.4, i64 0, i64 0))
store i32 -1, i32* %3
br label %526
41: ; preds = %2
%42 = load i8*, i8** %17
%43 = icmp ne i8* %42, null
br i1 %43, label %46, label %44
44: ; preds = %41
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.5, i64 0, i64 0))
store i32 -1, i32* %3
br label %526
46: ; preds = %41
%47 = load i8*, i8** %16
%48 = call i32 @strlen(i8* %47)
%49 = sext i32 %48 to i64
%50 = icmp ugt i64 %49, 412
br i1 %50, label %51, label %53
51: ; preds = %46
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.6, i64 0, i64 0))
store i32 -1, i32* %3
br label %526
53: ; preds = %46
%54 = getelementptr inbounds [1024 x i8], [1024 x i8]* %12, i64 0, i64 0
%55 = call i8* @strtok(i8* %54, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
store i8* %55, i8** %17
br label %56
56: ; preds = %522, %53
%57 = load i8*, i8** %17
%58 = icmp ne i8* %57, null
br i1 %58, label %59, label %524
59: ; preds = %56
%60 = load i8*, i8** %17
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.8, i64 0, i64 0), i8* %60)
%62 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%63 = call i32 @memset(i8* %62, i32 0, i32 512)
%64 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%65 = call i32 @memset(i8* %64, i32 0, i32 512)
%66 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%67 = call i32 @memset(i8* %66, i32 0, i32 512)
%68 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%69 = call i32 @memset(i8* %68, i32 0, i32 512)
%70 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%71 = call i32 @memset(i8* %70, i32 0, i32 128)
%72 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%73 = call i32 @memset(i8* %72, i32 0, i32 128)
%74 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%75 = call i32 @memset(i8* %74, i32 0, i32 512)
%76 = getelementptr inbounds [512 x i8], [512 x i8]* %11, i64 0, i64 0
%77 = call i32 @memset(i8* %76, i32 0, i32 512)
%78 = getelementptr inbounds [128 x i8], [128 x i8]* %15, i64 0, i64 0
%79 = call i32 @memset(i8* %78, i32 0, i32 128)
%80 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%81 = load i8*, i8** %16
%82 = call i32 @strcat(i8* %80, i8* %81)
%83 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%84 = load i8*, i8** %16
%85 = call i32 @strcat(i8* %83, i8* %84)
%86 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%87 = load i8*, i8** %16
%88 = call i32 @strcat(i8* %86, i8* %87)
%89 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%90 = load i8*, i8** %16
%91 = call i32 @strcat(i8* %89, i8* %90)
%92 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%93 = load i8*, i8** %16
%94 = call i32 @strcat(i8* %92, i8* %93)
%95 = getelementptr inbounds [512 x i8], [512 x i8]* %11, i64 0, i64 0
%96 = load i8*, i8** %16
%97 = call i32 @strcat(i8* %95, i8* %96)
store i32 0, i32* %21
store i32 0, i32* %22
store i32 0, i32* %23
%98 = load i8*, i8** %17
%99 = call i64 @strncmp(i8* %98, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i32 4)
%100 = icmp eq i64 %99, 0
br i1 %100, label %101, label %108
101: ; preds = %59
%102 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%103 = call i32 @strcat(i8* %102, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%104 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%105 = call i32 @strcat(i8* %104, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%106 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%107 = call i32 @strcat(i8* %106, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
store i32 1, i32* %21
br label %498
108: ; preds = %59
%109 = load i8*, i8** %17
%110 = call i64 @strncmp(i8* %109, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 4)
%111 = icmp eq i64 %110, 0
br i1 %111, label %112, label %135
112: ; preds = %108
%113 = load i8*, i8** %19
%114 = call i64 @strncmp(i8* %113, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%115 = icmp eq i64 %114, 0
br i1 %115, label %116, label %127
116: ; preds = %112
%117 = load i8*, i8** %20
%118 = call i64 @strncmp(i8* %117, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%119 = icmp eq i64 %118, 0
br i1 %119, label %120, label %127
120: ; preds = %116
%121 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%122 = call i32 @strcat(i8* %121, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%123 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%124 = call i32 @strcat(i8* %123, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%125 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%126 = call i32 @strcat(i8* %125, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %134
127: ; preds = %116, %112
%128 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%129 = call i32 @strcat(i8* %128, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%130 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%131 = call i32 @strcat(i8* %130, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%132 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%133 = call i32 @strcat(i8* %132, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %134
134: ; preds = %127, %120
br label %497
135: ; preds = %108
%136 = load i8*, i8** %17
%137 = call i64 @strncmp(i8* %136, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0), i32 4)
%138 = icmp eq i64 %137, 0
br i1 %138, label %139, label %146
139: ; preds = %135
%140 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%141 = call i32 @strcat(i8* %140, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%142 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%143 = call i32 @strcat(i8* %142, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%144 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%145 = call i32 @strcat(i8* %144, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
store i32 1, i32* %21
br label %496
146: ; preds = %135
%147 = load i8*, i8** %17
%148 = call i64 @strncmp(i8* %147, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i32 4)
%149 = icmp eq i64 %148, 0
br i1 %149, label %150, label %173
150: ; preds = %146
%151 = load i8*, i8** %19
%152 = call i64 @strncmp(i8* %151, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%153 = icmp eq i64 %152, 0
br i1 %153, label %154, label %165
154: ; preds = %150
%155 = load i8*, i8** %20
%156 = call i64 @strncmp(i8* %155, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%157 = icmp eq i64 %156, 0
br i1 %157, label %158, label %165
158: ; preds = %154
%159 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%160 = call i32 @strcat(i8* %159, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%161 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%162 = call i32 @strcat(i8* %161, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%163 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%164 = call i32 @strcat(i8* %163, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %172
165: ; preds = %154, %150
%166 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%167 = call i32 @strcat(i8* %166, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%168 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%169 = call i32 @strcat(i8* %168, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%170 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%171 = call i32 @strcat(i8* %170, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %172
172: ; preds = %165, %158
br label %495
173: ; preds = %146
%174 = load i8*, i8** %17
%175 = call i64 @strncmp(i8* %174, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0), i32 4)
%176 = icmp eq i64 %175, 0
br i1 %176, label %177, label %200
177: ; preds = %173
%178 = load i8*, i8** %19
%179 = call i64 @strncmp(i8* %178, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %192
181: ; preds = %177
%182 = load i8*, i8** %20
%183 = call i64 @strncmp(i8* %182, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%184 = icmp eq i64 %183, 0
br i1 %184, label %185, label %192
185: ; preds = %181
%186 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%187 = call i32 @strcat(i8* %186, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%188 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%189 = call i32 @strcat(i8* %188, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%190 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%191 = call i32 @strcat(i8* %190, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %199
192: ; preds = %181, %177
%193 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%194 = call i32 @strcat(i8* %193, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%195 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%196 = call i32 @strcat(i8* %195, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%197 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%198 = call i32 @strcat(i8* %197, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %199
199: ; preds = %192, %185
br label %494
200: ; preds = %173
%201 = load i8*, i8** %17
%202 = call i64 @strncmp(i8* %201, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0), i32 4)
%203 = icmp eq i64 %202, 0
br i1 %203, label %204, label %227
204: ; preds = %200
%205 = load i8*, i8** %19
%206 = call i64 @strncmp(i8* %205, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%207 = icmp eq i64 %206, 0
br i1 %207, label %208, label %219
208: ; preds = %204
%209 = load i8*, i8** %20
%210 = call i64 @strncmp(i8* %209, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%211 = icmp eq i64 %210, 0
br i1 %211, label %212, label %219
212: ; preds = %208
%213 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%214 = call i32 @strcat(i8* %213, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%215 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%216 = call i32 @strcat(i8* %215, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%217 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%218 = call i32 @strcat(i8* %217, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %226
219: ; preds = %208, %204
%220 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%221 = call i32 @strcat(i8* %220, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%222 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%223 = call i32 @strcat(i8* %222, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%224 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%225 = call i32 @strcat(i8* %224, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %226
226: ; preds = %219, %212
br label %493
227: ; preds = %200
%228 = load i8*, i8** %17
%229 = call i64 @strncmp(i8* %228, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i32 4)
%230 = icmp eq i64 %229, 0
br i1 %230, label %231, label %254
231: ; preds = %227
%232 = load i8*, i8** %19
%233 = call i64 @strncmp(i8* %232, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%234 = icmp eq i64 %233, 0
br i1 %234, label %235, label %246
235: ; preds = %231
%236 = load i8*, i8** %20
%237 = call i64 @strncmp(i8* %236, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%238 = icmp eq i64 %237, 0
br i1 %238, label %239, label %246
239: ; preds = %235
%240 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%241 = call i32 @strcat(i8* %240, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%242 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%243 = call i32 @strcat(i8* %242, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%244 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%245 = call i32 @strcat(i8* %244, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %253
246: ; preds = %235, %231
%247 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%248 = call i32 @strcat(i8* %247, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%249 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%250 = call i32 @strcat(i8* %249, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%251 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%252 = call i32 @strcat(i8* %251, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %253
253: ; preds = %246, %239
br label %492
254: ; preds = %227
%255 = load i8*, i8** %17
%256 = call i64 @strncmp(i8* %255, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0), i32 4)
%257 = icmp eq i64 %256, 0
br i1 %257, label %258, label %281
258: ; preds = %254
%259 = load i8*, i8** %19
%260 = call i64 @strncmp(i8* %259, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%261 = icmp eq i64 %260, 0
br i1 %261, label %262, label %273
262: ; preds = %258
%263 = load i8*, i8** %20
%264 = call i64 @strncmp(i8* %263, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%265 = icmp eq i64 %264, 0
br i1 %265, label %266, label %273
266: ; preds = %262
%267 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%268 = call i32 @strcat(i8* %267, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%269 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%270 = call i32 @strcat(i8* %269, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%271 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%272 = call i32 @strcat(i8* %271, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %280
273: ; preds = %262, %258
%274 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%275 = call i32 @strcat(i8* %274, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%276 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%277 = call i32 @strcat(i8* %276, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%278 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%279 = call i32 @strcat(i8* %278, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %280
280: ; preds = %273, %266
br label %491
281: ; preds = %254
%282 = load i8*, i8** %17
%283 = call i64 @strncmp(i8* %282, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i32 4)
%284 = icmp eq i64 %283, 0
br i1 %284, label %285, label %308
285: ; preds = %281
%286 = load i8*, i8** %19
%287 = call i64 @strncmp(i8* %286, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%288 = icmp eq i64 %287, 0
br i1 %288, label %289, label %300
289: ; preds = %285
%290 = load i8*, i8** %20
%291 = call i64 @strncmp(i8* %290, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%292 = icmp eq i64 %291, 0
br i1 %292, label %293, label %300
293: ; preds = %289
%294 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%295 = call i32 @strcat(i8* %294, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%296 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%297 = call i32 @strcat(i8* %296, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%298 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%299 = call i32 @strcat(i8* %298, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
store i32 1, i32* %21
br label %307
300: ; preds = %289, %285
%301 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%302 = call i32 @strcat(i8* %301, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%303 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%304 = call i32 @strcat(i8* %303, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%305 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%306 = call i32 @strcat(i8* %305, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %307
307: ; preds = %300, %293
br label %490
308: ; preds = %281
%309 = load i8*, i8** %17
%310 = call i64 @strncmp(i8* %309, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.29, i64 0, i64 0), i32 4)
%311 = icmp eq i64 %310, 0
br i1 %311, label %312, label %319
312: ; preds = %308
%313 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%314 = call i32 @strcat(i8* %313, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%315 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%316 = call i32 @strcat(i8* %315, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%317 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%318 = call i32 @strcat(i8* %317, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
store i32 1, i32* %21
br label %489
319: ; preds = %308
%320 = load i8*, i8** %17
%321 = call i64 @strncmp(i8* %320, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0), i32 4)
%322 = icmp eq i64 %321, 0
br i1 %322, label %323, label %330
323: ; preds = %319
%324 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%325 = call i32 @strcat(i8* %324, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%326 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%327 = call i32 @strcat(i8* %326, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%328 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%329 = call i32 @strcat(i8* %328, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
store i32 1, i32* %21
br label %488
330: ; preds = %319
%331 = load i8*, i8** %17
%332 = call i64 @strncmp(i8* %331, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.31, i64 0, i64 0), i32 7)
%333 = icmp eq i64 %332, 0
br i1 %333, label %338, label %334
334: ; preds = %330
%335 = load i8*, i8** %17
%336 = call i64 @strncmp(i8* %335, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0), i32 7)
%337 = icmp eq i64 %336, 0
br i1 %337, label %338, label %351
338: ; preds = %334, %330
%339 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%340 = call i32 @strcat(i8* %339, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.33, i64 0, i64 0))
%341 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%342 = call i32 @strcat(i8* %341, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.34, i64 0, i64 0))
%343 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%344 = call i32 @strcat(i8* %343, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.35, i64 0, i64 0))
store i32 1, i32* %21
%345 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%346 = call i32 @strcat(i8* %345, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.36, i64 0, i64 0))
%347 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%348 = call i32 @strcat(i8* %347, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.37, i64 0, i64 0))
%349 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%350 = call i32 @strcat(i8* %349, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.38, i64 0, i64 0))
store i32 1, i32* %23
br label %487
351: ; preds = %334
%352 = load i8*, i8** %17
%353 = call i64 @strncmp(i8* %352, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.39, i64 0, i64 0), i32 7)
%354 = icmp eq i64 %353, 0
br i1 %354, label %367, label %355
355: ; preds = %351
%356 = load i8*, i8** %17
%357 = call i64 @strncmp(i8* %356, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0), i32 7)
%358 = icmp eq i64 %357, 0
br i1 %358, label %367, label %359
359: ; preds = %355
%360 = load i8*, i8** %17
%361 = call i64 @strncmp(i8* %360, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.41, i64 0, i64 0), i32 7)
%362 = icmp eq i64 %361, 0
br i1 %362, label %367, label %363
363: ; preds = %359
%364 = load i8*, i8** %17
%365 = call i64 @strncmp(i8* %364, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.42, i64 0, i64 0), i32 7)
%366 = icmp eq i64 %365, 0
br i1 %366, label %367, label %374
367: ; preds = %363, %359, %355, %351
%368 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%369 = call i32 @strcat(i8* %368, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.43, i64 0, i64 0))
%370 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%371 = call i32 @strcat(i8* %370, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.44, i64 0, i64 0))
%372 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%373 = call i32 @strcat(i8* %372, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.45, i64 0, i64 0))
store i32 1, i32* %21
br label %486
374: ; preds = %363
%375 = load i8*, i8** %17
%376 = call i64 @strncmp(i8* %375, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0), i32 7)
%377 = icmp eq i64 %376, 0
br i1 %377, label %382, label %378
378: ; preds = %374
%379 = load i8*, i8** %17
%380 = call i64 @strncmp(i8* %379, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.47, i64 0, i64 0), i32 7)
%381 = icmp eq i64 %380, 0
br i1 %381, label %382, label %412
382: ; preds = %378, %374
%383 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%384 = call i32 @strcat(i8* %383, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.43, i64 0, i64 0))
%385 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%386 = call i32 @strcat(i8* %385, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.48, i64 0, i64 0))
%387 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%388 = call i32 @strcat(i8* %387, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.49, i64 0, i64 0))
store i32 1, i32* %21
%389 = load i8*, i8** %17
%390 = call i64 @strncmp(i8* %389, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0), i32 7)
%391 = icmp eq i64 %390, 0
br i1 %391, label %392, label %399
392: ; preds = %382
%393 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%394 = call i32 @strcat(i8* %393, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.50, i64 0, i64 0))
%395 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%396 = call i32 @strcat(i8* %395, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.51, i64 0, i64 0))
%397 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%398 = call i32 @strcat(i8* %397, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.52, i64 0, i64 0))
br label %411
399: ; preds = %382
%400 = load i8*, i8** %17
%401 = call i64 @strncmp(i8* %400, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.47, i64 0, i64 0), i32 7)
%402 = icmp eq i64 %401, 0
br i1 %402, label %403, label %410
403: ; preds = %399
%404 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%405 = call i32 @strcat(i8* %404, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.50, i64 0, i64 0))
%406 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%407 = call i32 @strcat(i8* %406, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.53, i64 0, i64 0))
%408 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%409 = call i32 @strcat(i8* %408, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.54, i64 0, i64 0))
br label %410
410: ; preds = %403, %399
br label %411
411: ; preds = %410, %392
br label %485
412: ; preds = %378
%413 = load i8*, i8** %17
%414 = call i64 @strncmp(i8* %413, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.55, i64 0, i64 0), i32 7)
%415 = icmp eq i64 %414, 0
br i1 %415, label %436, label %416
416: ; preds = %412
%417 = load i8*, i8** %17
%418 = call i64 @strncmp(i8* %417, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.56, i64 0, i64 0), i32 7)
%419 = icmp eq i64 %418, 0
br i1 %419, label %436, label %420
420: ; preds = %416
%421 = load i8*, i8** %17
%422 = call i64 @strncmp(i8* %421, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0), i32 7)
%423 = icmp eq i64 %422, 0
br i1 %423, label %436, label %424
424: ; preds = %420
%425 = load i8*, i8** %17
%426 = call i64 @strncmp(i8* %425, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.58, i64 0, i64 0), i32 7)
%427 = icmp eq i64 %426, 0
br i1 %427, label %436, label %428
428: ; preds = %424
%429 = load i8*, i8** %17
%430 = call i64 @strncmp(i8* %429, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.59, i64 0, i64 0), i32 7)
%431 = icmp eq i64 %430, 0
br i1 %431, label %436, label %432
432: ; preds = %428
%433 = load i8*, i8** %17
%434 = call i64 @strncmp(i8* %433, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.60, i64 0, i64 0), i32 7)
%435 = icmp eq i64 %434, 0
br i1 %435, label %436, label %455
436: ; preds = %432, %428, %424, %420, %416, %412
%437 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%438 = call i32 @strcat(i8* %437, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.61, i64 0, i64 0))
%439 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%440 = call i32 @strcat(i8* %439, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.62, i64 0, i64 0))
%441 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%442 = call i32 @strcat(i8* %441, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.63, i64 0, i64 0))
%443 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%444 = call i32 @strcat(i8* %443, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.64, i64 0, i64 0))
%445 = getelementptr inbounds [512 x i8], [512 x i8]* %11, i64 0, i64 0
%446 = call i32 @strcat(i8* %445, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.65, i64 0, i64 0))
%447 = getelementptr inbounds [128 x i8], [128 x i8]* %15, i64 0, i64 0
%448 = call i32 @strcat(i8* %447, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.66, i64 0, i64 0))
%449 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%450 = call i32 @strcat(i8* %449, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.67, i64 0, i64 0))
%451 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%452 = call i32 @strcat(i8* %451, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.68, i64 0, i64 0))
%453 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%454 = call i32 @strcat(i8* %453, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.69, i64 0, i64 0))
store i32 1, i32* %21
store i32 1, i32* %22
store i32 1, i32* %23
br label %484
455: ; preds = %432
%456 = load i8*, i8** %17
%457 = call i64 @strncmp(i8* %456, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.70, i64 0, i64 0), i32 8)
%458 = icmp eq i64 %457, 0
br i1 %458, label %467, label %459
459: ; preds = %455
%460 = load i8*, i8** %17
%461 = call i64 @strncmp(i8* %460, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.71, i64 0, i64 0), i32 8)
%462 = icmp eq i64 %461, 0
br i1 %462, label %467, label %463
463: ; preds = %459
%464 = load i8*, i8** %17
%465 = call i64 @strncmp(i8* %464, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.72, i64 0, i64 0), i32 8)
%466 = icmp eq i64 %465, 0
br i1 %466, label %467, label %480
467: ; preds = %463, %459, %455
%468 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%469 = call i32 @strcat(i8* %468, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.73, i64 0, i64 0))
%470 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%471 = call i32 @strcat(i8* %470, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.74, i64 0, i64 0))
%472 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%473 = call i32 @strcat(i8* %472, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.75, i64 0, i64 0))
%474 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%475 = call i32 @strcat(i8* %474, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.76, i64 0, i64 0))
%476 = getelementptr inbounds [512 x i8], [512 x i8]* %11, i64 0, i64 0
%477 = call i32 @strcat(i8* %476, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.77, i64 0, i64 0))
%478 = getelementptr inbounds [128 x i8], [128 x i8]* %15, i64 0, i64 0
%479 = call i32 @strcat(i8* %478, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.78, i64 0, i64 0))
store i32 1, i32* %21
store i32 1, i32* %22
br label %483
480: ; preds = %463
%481 = load i8*, i8** %17
%482 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.79, i64 0, i64 0), i8* %481)
br label %483
483: ; preds = %480, %467
br label %484
484: ; preds = %483, %436
br label %485
485: ; preds = %484, %411
br label %486
486: ; preds = %485, %367
br label %487
487: ; preds = %486, %338
br label %488
488: ; preds = %487, %323
br label %489
489: ; preds = %488, %312
br label %490
490: ; preds = %489, %307
br label %491
491: ; preds = %490, %280
br label %492
492: ; preds = %491, %253
br label %493
493: ; preds = %492, %226
br label %494
494: ; preds = %493, %199
br label %495
495: ; preds = %494, %172
br label %496
496: ; preds = %495, %139
br label %497
497: ; preds = %496, %134
br label %498
498: ; preds = %497, %101
%499 = load i32, i32* %21
%500 = icmp ne i32 %499, 0
br i1 %500, label %501, label %506
501: ; preds = %498
%502 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%503 = getelementptr inbounds [512 x i8], [512 x i8]* %9, i64 0, i64 0
%504 = getelementptr inbounds [128 x i8], [128 x i8]* %13, i64 0, i64 0
%505 = call i32 @bin2h(i8* %502, i8* %503, i8* %504)
br label %506
506: ; preds = %501, %498
%507 = load i32, i32* %22
%508 = icmp ne i32 %507, 0
br i1 %508, label %509, label %514
509: ; preds = %506
%510 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%511 = getelementptr inbounds [512 x i8], [512 x i8]* %11, i64 0, i64 0
%512 = getelementptr inbounds [128 x i8], [128 x i8]* %15, i64 0, i64 0
%513 = call i32 @bin2h(i8* %510, i8* %511, i8* %512)
br label %514
514: ; preds = %509, %506
%515 = load i32, i32* %23
%516 = icmp ne i32 %515, 0
br i1 %516, label %517, label %522
517: ; preds = %514
%518 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%519 = getelementptr inbounds [512 x i8], [512 x i8]* %10, i64 0, i64 0
%520 = getelementptr inbounds [128 x i8], [128 x i8]* %14, i64 0, i64 0
%521 = call i32 @bin2h(i8* %518, i8* %519, i8* %520)
br label %522
522: ; preds = %517, %514
%523 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
store i8* %523, i8** %17
br label %56
524: ; preds = %56
%525 = call i32 @exit(i32 0)
unreachable
526: ; preds = %51, %44, %39
%527 = load i32, i32* %3
ret i32 %527
}

LLVM IR (-O2):
@.str = [11 x i8] c"RT28xx_DIR\00"
@.str.1 = [8 x i8] c"CHIPSET\00"
@.str.2 = [16 x i8] c"HAS_WOW_SUPPORT\00"
@.str.3 = [12 x i8] c"RT28xx_MODE\00"
@.str.7 = [2 x i8] c" \00"
@.str.8 = [14 x i8] c"chipset = %s\0A\00"
@.str.9 = [5 x i8] c"2860\00"
@.str.10 = [20 x i8] c"/mcu/bin/rt2860.bin\00"
@.str.11 = [31 x i8] c"/include/mcu/rt2860_firmware.h\00"
@.str.12 = [21 x i8] c"RT2860_FirmwareImage\00"
@.str.13 = [5 x i8] c"2870\00"
@.str.14 = [2 x i8] c"y\00"
@.str.15 = [4 x i8] c"STA\00"
@.str.16 = [24 x i8] c"/mcu/bin/rt2870_wow.bin\00"
@.str.17 = [35 x i8] c"/include/mcu/rt2870_wow_firmware.h\00"
@.str.18 = [25 x i8] c"RT2870_WOW_FirmwareImage\00"
@.str.19 = [20 x i8] c"/mcu/bin/rt2870.bin\00"
@.str.20 = [31 x i8] c"/include/mcu/rt2870_firmware.h\00"
@.str.21 = [21 x i8] c"RT2870_FirmwareImage\00"
@.str.22 = [5 x i8] c"3090\00"
@.str.23 = [5 x i8] c"2070\00"
@.str.24 = [5 x i8] c"3070\00"
@.str.25 = [5 x i8] c"3572\00"
@.str.26 = [5 x i8] c"3573\00"
@.str.27 = [5 x i8] c"3370\00"
@.str.28 = [5 x i8] c"5370\00"
@.str.29 = [5 x i8] c"5572\00"
@.str.30 = [5 x i8] c"5592\00"
@.str.31 = [8 x i8] c"mt7601e\00"
@.str.32 = [8 x i8] c"mt7601u\00"
@.str.33 = [31 x i8] c"/mcu/bin/MT7601_formal_1.6.bin\00"
@.str.34 = [31 x i8] c"/include/mcu/mt7601_firmware.h\00"
@.str.35 = [21 x i8] c"MT7601_FirmwareImage\00"
@.str.36 = [37 x i8] c"/eeprom/MT7601_USB_V0_D-20130416.bin\00"
@.str.37 = [29 x i8] c"/include/eeprom/mt7601_e2p.h\00"
@.str.38 = [16 x i8] c"MT7601_E2PImage\00"
@.str.39 = [8 x i8] c"mt7650e\00"
@.str.40 = [8 x i8] c"mt7650u\00"
@.str.41 = [8 x i8] c"mt7630e\00"
@.str.42 = [8 x i8] c"mt7630u\00"
@.str.43 = [20 x i8] c"/mcu/bin/MT7650.bin\00"
@.str.44 = [31 x i8] c"/include/mcu/mt7650_firmware.h\00"
@.str.45 = [21 x i8] c"MT7650_FirmwareImage\00"
@.str.46 = [8 x i8] c"mt7610e\00"
@.str.47 = [8 x i8] c"mt7610u\00"
@.str.48 = [31 x i8] c"/include/mcu/mt7610_firmware.h\00"
@.str.49 = [21 x i8] c"MT7610_FirmwareImage\00"
@.str.50 = [29 x i8] c"/eeprom/MT7610U_FEM_V1_1.bin\00"
@.str.51 = [30 x i8] c"/include/eeprom/mt7610e_e2p.h\00"
@.str.52 = [17 x i8] c"MT7610E_E2PImage\00"
@.str.53 = [30 x i8] c"/include/eeprom/mt7610u_e2p.h\00"
@.str.54 = [17 x i8] c"MT7610U_E2PImage\00"
@.str.55 = [8 x i8] c"mt7662e\00"
@.str.56 = [8 x i8] c"mt7662u\00"
@.str.57 = [8 x i8] c"mt7632e\00"
@.str.58 = [8 x i8] c"mt7632u\00"
@.str.59 = [8 x i8] c"mt7612e\00"
@.str.60 = [8 x i8] c"mt7612u\00"
@.str.61 = [28 x i8] c"/mcu/bin/MT7662_E3_v1.9.bin\00"
@.str.62 = [31 x i8] c"/include/mcu/mt7662_firmware.h\00"
@.str.63 = [21 x i8] c"MT7662_FirmwareImage\00"
@.str.64 = [44 x i8] c"/mcu/bin/mt7662_patch_e3_hdr_v0.0.2_P69.bin\00"
@.str.65 = [32 x i8] c"/include/mcu/mt7662_rom_patch.h\00"
@.str.66 = [17 x i8] c"mt7662_rom_patch\00"
@.str.67 = [65 x i8] c"/eeprom/MT7612E_EEPROM_layout_20131121_2G5G_ePAeLNA_TXTC_off.bin\00"
@.str.68 = [29 x i8] c"/include/eeprom/mt76x2_e2p.h\00"
@.str.69 = [16 x i8] c"MT76x2_E2PImage\00"
@.str.70 = [9 x i8] c"mt7662tu\00"
@.str.71 = [9 x i8] c"mt7632tu\00"
@.str.72 = [9 x i8] c"mt7612tu\00"
@.str.73 = [33 x i8] c"/mcu/bin/mt7662t_firmware_e1.bin\00"
@.str.74 = [32 x i8] c"/include/mcu/mt7662t_firmware.h\00"
@.str.75 = [22 x i8] c"MT7662T_FirmwareImage\00"
@.str.76 = [34 x i8] c"/mcu/bin/mt7662t_patch_e1_hdr.bin\00"
@.str.77 = [33 x i8] c"/include/mcu/mt7662t_rom_patch.h\00"
@.str.78 = [18 x i8] c"mt7662t_rom_patch\00"
@.str.79 = [22 x i8] c"unknown chipset = %s\0A\00"
@str = [43 x i8] c"Environment value \22RT28xx_DIR\22 not export \00"
@str.80 = [40 x i8] c"Environment value \22CHIPSET\22 not export \00"
@str.81 = [44 x i8] c"Environment value \22RT28xx_DIR\22 is too long!\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = alloca [512 x i8]
%4 = alloca [512 x i8]
%5 = alloca [512 x i8]
%6 = alloca [512 x i8]
%7 = alloca [512 x i8]
%8 = alloca [512 x i8]
%9 = alloca [1024 x i8]
%10 = alloca [128 x i8]
%11 = alloca [128 x i8]
%12 = alloca [128 x i8]
%13 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%14 = getelementptr inbounds [512 x i8], [512 x i8]* %4, i64 0, i64 0
%15 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%16 = getelementptr inbounds [512 x i8], [512 x i8]* %6, i64 0, i64 0
%17 = getelementptr inbounds [512 x i8], [512 x i8]* %7, i64 0, i64 0
%18 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%19 = getelementptr inbounds [1024 x i8], [1024 x i8]* %9, i64 0, i64 0
%20 = getelementptr inbounds [128 x i8], [128 x i8]* %10, i64 0, i64 0
%21 = getelementptr inbounds [128 x i8], [128 x i8]* %11, i64 0, i64 0
%22 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%23 = tail call i64 @getenv(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
%24 = inttoptr i64 %23 to i8*
%25 = tail call i64 @getenv(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0))
%26 = inttoptr i64 %25 to i8*
%27 = tail call i32 @strlen(i8* %26)
%28 = call i32 @memcpy(i8* %19, i8* %26, i32 %27)
%29 = call i64 @getenv(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0))
%30 = inttoptr i64 %29 to i8*
%31 = call i64 @getenv(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
%32 = inttoptr i64 %31 to i8*
%33 = icmp eq i64 %23, 0
br i1 %33, label %318, label %34
34: ; preds = %2
%35 = icmp eq i64 %25, 0
br i1 %35, label %318, label %36
36: ; preds = %34
%37 = call i32 @strlen(i8* %24)
%38 = icmp ugt i32 %37, 412
br i1 %38, label %318, label %39
39: ; preds = %36
%40 = call i8* @strtok(i8* %19, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
%41 = icmp eq i8* %40, null
br i1 %41, label %316, label %42
42: ; preds = %39, %313
%43 = phi i8* [ %314, %313 ], [ %40, %39 ]
%44 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.8, i64 0, i64 0), i8* %43)
%45 = call i32 @memset(i8* %13, i32 0, i32 512)
%46 = call i32 @memset(i8* %14, i32 0, i32 512)
%47 = call i32 @memset(i8* %16, i32 0, i32 512)
%48 = call i32 @memset(i8* %17, i32 0, i32 512)
%49 = call i32 @memset(i8* %20, i32 0, i32 128)
%50 = call i32 @memset(i8* %21, i32 0, i32 128)
%51 = call i32 @memset(i8* %15, i32 0, i32 512)
%52 = call i32 @memset(i8* %18, i32 0, i32 512)
%53 = call i32 @memset(i8* %22, i32 0, i32 128)
%54 = call i32 @strcat(i8* %13, i8* %24)
%55 = call i32 @strcat(i8* %14, i8* %24)
%56 = call i32 @strcat(i8* %15, i8* %24)
%57 = call i32 @strcat(i8* %16, i8* %24)
%58 = call i32 @strcat(i8* %17, i8* %24)
%59 = call i32 @strcat(i8* %18, i8* %24)
%60 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i32 4)
%61 = icmp eq i64 %60, 0
br i1 %61, label %62, label %66
62: ; preds = %42
%63 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%64 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%65 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
br label %301
66: ; preds = %42
%67 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 4)
%68 = icmp eq i64 %67, 0
br i1 %68, label %69, label %83
69: ; preds = %66
%70 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%71 = icmp eq i64 %70, 0
br i1 %71, label %72, label %79
72: ; preds = %69
%73 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%74 = icmp eq i64 %73, 0
br i1 %74, label %75, label %79
75: ; preds = %72
%76 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%77 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%78 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
79: ; preds = %72, %69
%80 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%81 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%82 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
83: ; preds = %66
%84 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0), i32 4)
%85 = icmp eq i64 %84, 0
br i1 %85, label %86, label %90
86: ; preds = %83
%87 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%88 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%89 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
br label %301
90: ; preds = %83
%91 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i32 4)
%92 = icmp eq i64 %91, 0
br i1 %92, label %93, label %107
93: ; preds = %90
%94 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%95 = icmp eq i64 %94, 0
br i1 %95, label %96, label %103
96: ; preds = %93
%97 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%98 = icmp eq i64 %97, 0
br i1 %98, label %99, label %103
99: ; preds = %96
%100 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%101 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%102 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
103: ; preds = %96, %93
%104 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%105 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%106 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
107: ; preds = %90
%108 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0), i32 4)
%109 = icmp eq i64 %108, 0
br i1 %109, label %110, label %124
110: ; preds = %107
%111 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%112 = icmp eq i64 %111, 0
br i1 %112, label %113, label %120
113: ; preds = %110
%114 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%115 = icmp eq i64 %114, 0
br i1 %115, label %116, label %120
116: ; preds = %113
%117 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%118 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%119 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
120: ; preds = %113, %110
%121 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%122 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%123 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
124: ; preds = %107
%125 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0), i32 4)
%126 = icmp eq i64 %125, 0
br i1 %126, label %127, label %141
127: ; preds = %124
%128 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%129 = icmp eq i64 %128, 0
br i1 %129, label %130, label %137
130: ; preds = %127
%131 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%132 = icmp eq i64 %131, 0
br i1 %132, label %133, label %137
133: ; preds = %130
%134 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%135 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%136 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
137: ; preds = %130, %127
%138 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%139 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%140 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
141: ; preds = %124
%142 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i32 4)
%143 = icmp eq i64 %142, 0
br i1 %143, label %144, label %158
144: ; preds = %141
%145 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%146 = icmp eq i64 %145, 0
br i1 %146, label %147, label %154
147: ; preds = %144
%148 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%149 = icmp eq i64 %148, 0
br i1 %149, label %150, label %154
150: ; preds = %147
%151 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%152 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%153 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
154: ; preds = %147, %144
%155 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%156 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%157 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
158: ; preds = %141
%159 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0), i32 4)
%160 = icmp eq i64 %159, 0
br i1 %160, label %161, label %175
161: ; preds = %158
%162 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%163 = icmp eq i64 %162, 0
br i1 %163, label %164, label %171
164: ; preds = %161
%165 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%166 = icmp eq i64 %165, 0
br i1 %166, label %167, label %171
167: ; preds = %164
%168 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%169 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%170 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
171: ; preds = %164, %161
%172 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%173 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%174 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
175: ; preds = %158
%176 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i32 4)
%177 = icmp eq i64 %176, 0
br i1 %177, label %178, label %192
178: ; preds = %175
%179 = call i64 @strncmp(i8* %30, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0), i32 1)
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %188
181: ; preds = %178
%182 = call i64 @strncmp(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0), i32 3)
%183 = icmp eq i64 %182, 0
br i1 %183, label %184, label %188
184: ; preds = %181
%185 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
%186 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.17, i64 0, i64 0))
%187 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0))
br label %301
188: ; preds = %181, %178
%189 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%190 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%191 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
192: ; preds = %175
%193 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.29, i64 0, i64 0), i32 4)
%194 = icmp eq i64 %193, 0
br i1 %194, label %195, label %199
195: ; preds = %192
%196 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.19, i64 0, i64 0))
%197 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%198 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0))
br label %301
199: ; preds = %192
%200 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0), i32 4)
%201 = icmp eq i64 %200, 0
br i1 %201, label %202, label %206
202: ; preds = %199
%203 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%204 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%205 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.12, i64 0, i64 0))
br label %301
206: ; preds = %199
%207 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.31, i64 0, i64 0), i32 7)
%208 = icmp eq i64 %207, 0
br i1 %208, label %303, label %209
209: ; preds = %206
%210 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0), i32 7)
%211 = icmp eq i64 %210, 0
br i1 %211, label %303, label %212
212: ; preds = %209
%213 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.39, i64 0, i64 0), i32 7)
%214 = icmp eq i64 %213, 0
br i1 %214, label %224, label %215
215: ; preds = %212
%216 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0), i32 7)
%217 = icmp eq i64 %216, 0
br i1 %217, label %224, label %218
218: ; preds = %215
%219 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.41, i64 0, i64 0), i32 7)
%220 = icmp eq i64 %219, 0
br i1 %220, label %224, label %221
221: ; preds = %218
%222 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.42, i64 0, i64 0), i32 7)
%223 = icmp eq i64 %222, 0
br i1 %223, label %224, label %228
224: ; preds = %221, %218, %215, %212
%225 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.43, i64 0, i64 0))
%226 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.44, i64 0, i64 0))
%227 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.45, i64 0, i64 0))
br label %301
228: ; preds = %221
%229 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0), i32 7)
%230 = icmp eq i64 %229, 0
br i1 %230, label %234, label %231
231: ; preds = %228
%232 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.47, i64 0, i64 0), i32 7)
%233 = icmp eq i64 %232, 0
br i1 %233, label %234, label %251
234: ; preds = %231, %228
%235 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.43, i64 0, i64 0))
%236 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.48, i64 0, i64 0))
%237 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.49, i64 0, i64 0))
%238 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0), i32 7)
%239 = icmp eq i64 %238, 0
br i1 %239, label %240, label %244
240: ; preds = %234
%241 = call i32 @strcat(i8* %14, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.50, i64 0, i64 0))
%242 = call i32 @strcat(i8* %17, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.51, i64 0, i64 0))
%243 = call i32 @strcat(i8* %21, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.52, i64 0, i64 0))
br label %301
244: ; preds = %234
%245 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.47, i64 0, i64 0), i32 7)
%246 = icmp eq i64 %245, 0
br i1 %246, label %247, label %301
247: ; preds = %244
%248 = call i32 @strcat(i8* %14, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.50, i64 0, i64 0))
%249 = call i32 @strcat(i8* %17, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.53, i64 0, i64 0))
%250 = call i32 @strcat(i8* %21, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.54, i64 0, i64 0))
br label %301
251: ; preds = %231
%252 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.55, i64 0, i64 0), i32 7)
%253 = icmp eq i64 %252, 0
br i1 %253, label %269, label %254
254: ; preds = %251
%255 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.56, i64 0, i64 0), i32 7)
%256 = icmp eq i64 %255, 0
br i1 %256, label %269, label %257
257: ; preds = %254
%258 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0), i32 7)
%259 = icmp eq i64 %258, 0
br i1 %259, label %269, label %260
260: ; preds = %257
%261 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.58, i64 0, i64 0), i32 7)
%262 = icmp eq i64 %261, 0
br i1 %262, label %269, label %263
263: ; preds = %260
%264 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.59, i64 0, i64 0), i32 7)
%265 = icmp eq i64 %264, 0
br i1 %265, label %269, label %266
266: ; preds = %263
%267 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.60, i64 0, i64 0), i32 7)
%268 = icmp eq i64 %267, 0
br i1 %268, label %269, label %281
269: ; preds = %266, %263, %260, %257, %254, %251
%270 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.61, i64 0, i64 0))
%271 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.62, i64 0, i64 0))
%272 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.63, i64 0, i64 0))
%273 = call i32 @strcat(i8* %15, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.64, i64 0, i64 0))
%274 = call i32 @strcat(i8* %18, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.65, i64 0, i64 0))
%275 = call i32 @strcat(i8* %22, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.66, i64 0, i64 0))
%276 = call i32 @strcat(i8* %14, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.67, i64 0, i64 0))
%277 = call i32 @strcat(i8* %17, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.68, i64 0, i64 0))
%278 = call i32 @strcat(i8* %21, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.69, i64 0, i64 0))
%279 = call i32 @bin2h(i8* %13, i8* %16, i8* %20)
%280 = call i32 @bin2h(i8* %15, i8* %18, i8* %22)
br label %311
281: ; preds = %266
%282 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.70, i64 0, i64 0), i32 8)
%283 = icmp eq i64 %282, 0
br i1 %283, label %290, label %284
284: ; preds = %281
%285 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.71, i64 0, i64 0), i32 8)
%286 = icmp eq i64 %285, 0
br i1 %286, label %290, label %287
287: ; preds = %284
%288 = call i64 @strncmp(i8* %43, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.72, i64 0, i64 0), i32 8)
%289 = icmp eq i64 %288, 0
br i1 %289, label %290, label %299
290: ; preds = %287, %284, %281
%291 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.73, i64 0, i64 0))
%292 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.74, i64 0, i64 0))
%293 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.75, i64 0, i64 0))
%294 = call i32 @strcat(i8* %15, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.76, i64 0, i64 0))
%295 = call i32 @strcat(i8* %18, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.77, i64 0, i64 0))
%296 = call i32 @strcat(i8* %22, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.78, i64 0, i64 0))
%297 = call i32 @bin2h(i8* %13, i8* %16, i8* %20)
%298 = call i32 @bin2h(i8* %15, i8* %18, i8* %22)
br label %313
299: ; preds = %287
%300 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.79, i64 0, i64 0), i8* %43)
br label %313
301: ; preds = %79, %75, %103, %99, %137, %133, %171, %167, %195, %244, %247, %240, %224, %202, %184, %188, %150, %154, %116, %120, %86, %62
%302 = call i32 @bin2h(i8* %13, i8* %16, i8* %20)
br label %313
303: ; preds = %206, %209
%304 = call i32 @strcat(i8* %13, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.33, i64 0, i64 0))
%305 = call i32 @strcat(i8* %16, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.34, i64 0, i64 0))
%306 = call i32 @strcat(i8* %20, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.35, i64 0, i64 0))
%307 = call i32 @strcat(i8* %14, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.36, i64 0, i64 0))
%308 = call i32 @strcat(i8* %17, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.37, i64 0, i64 0))
%309 = call i32 @strcat(i8* %21, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.38, i64 0, i64 0))
%310 = call i32 @bin2h(i8* %13, i8* %16, i8* %20)
br label %311
311: ; preds = %269, %303
%312 = call i32 @bin2h(i8* %14, i8* %17, i8* %21)
br label %313
313: ; preds = %290, %301, %299, %311
%314 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
%315 = icmp eq i8* %314, null
br i1 %315, label %316, label %42
316: ; preds = %313, %39
%317 = call i32 @exit(i32 0)
unreachable
318: ; preds = %36, %34, %2
%319 = phi i8* [ getelementptr inbounds ([43 x i8], [43 x i8]* @str, i64 0, i64 0), %2 ], [ getelementptr inbounds ([40 x i8], [40 x i8]* @str.80, i64 0, i64 0), %34 ], [ getelementptr inbounds ([44 x i8], [44 x i8]* @str.81, i64 0, i64 0), %36 ]
%320 = call i32 @puts(i8* dereferenceable(1) %319)
ret i32 -1
}