#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int atoi(char *);
int /*<<< orphan*/ bzero(char *, int);
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ *fgets(char *, int, int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *);
char *malloc(int);
int /*<<< orphan*/ manageDURIPFunction(int, char *, char *);
int /*<<< orphan*/ manageWifi(int, char *, char *);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ sprintf(char *, char *, ...);
int /*<<< orphan*/ startFunction(int, char *, char *);
int /*<<< orphan*/ stderr;
int /*<<< orphan*/ stdin;
int /*<<< orphan*/ stopDurip(int, char *, char *);
scalar_t__ strcmp(char *, char *);
int /*<<< orphan*/ strcpy(char *, char *);
int strlen(char *);
int /*<<< orphan*/ strncpy(char *, char *, int);
int main(int argc, char *argv[]) {
  int portno;
  char filename[32];
  char buffer[32];
  char *sleepingTime;
  char *cmd;
  int channel, tx;
  if (argc < 2) {
    fprintf(stderr,
            "usage %s {start,manageMAC,manageWifi,startContinue, stopContinue, "
            "changeChannel, changeTX , changeNameFolder}\n",
            argv[0]);
    exit(0);
  }
  if (strcmp(argv[1], "start") == 0) {
    printf("start MACREADDURIP\n");
    printf("# PORT:\n");
    bzero(buffer, 32);
    if (fgets(buffer, 31, stdin) == NULL) {
      exit(-1);
    }
    portno = atoi(buffer);
    printf("FILENAME:\n");
    bzero(buffer, 32);
    if (fgets(buffer, 31, stdin) == NULL) {
      exit(-1);
    }
    strncpy(filename, buffer, strlen(buffer));
    filename[strlen(buffer) - 1] = '\0';
    printf("SLEEPING TIME:\n");
    bzero(buffer, 32);
    if (fgets(buffer, 31, stdin) == NULL) {
      exit(-1);
    }
    sleepingTime = buffer;
    startFunction(portno, filename, sleepingTime);
  } else {
    if (strcmp(argv[1], "manageMAC") == 0) {
      printf("manageMAC READ DURIP\n");
      printf("# PORT:\n");
      bzero(buffer, 32);
      if (fgets(buffer, 31, stdin) == NULL) {
        exit(-1);
      }
      portno = atoi(buffer);
      printf("FILENAME:\n");
      bzero(buffer, 32);
      if (fgets(buffer, 31, stdin) == NULL) {
        exit(-1);
      }
      strncpy(filename, buffer, strlen(buffer));
      filename[strlen(buffer) - 1] = '\0';
      printf("CMD MACREADDURIP{0 STOP | 1 CHANGE} { 0 CHANGE PRINT | 2 CHANGE "
             "TS}}:{PRINT 0 no feedback | PRINT 1 only video | PRINT 2 only "
             "file | PRINT 3 both}|{TS in ms}\n");
      bzero(buffer, 32);
      if (fgets(buffer, 31, stdin) == NULL) {
        exit(-1);
      }
      cmd = buffer;
      manageDURIPFunction(portno, filename, cmd);
    } else {
      if (strcmp(argv[1], "manageWifi") == 0) {
        printf("Manage WIFI\n");
        printf("# PORT:\n");
        bzero(buffer, 32);
        if (fgets(buffer, 31, stdin) == NULL) {
          exit(-1);
        }
        portno = atoi(buffer);
        printf("FILENAME:\n");
        bzero(buffer, 32);
        if (fgets(buffer, 31, stdin) == NULL) {
          exit(-1);
        }
        strncpy(filename, buffer, strlen(buffer));
        filename[strlen(buffer) - 1] = '\0';
        printf("CMD MANAGEWIFI{0 GET | 1 SET }: 1 TXPOWER | 2 TX FREQ | 3 TX "
               "CH}:[TXPOWER [0-20] | TXFREQ [2412-2492] | TX CH [1-20]}\n");
        if (fgets(buffer, 32, stdin) == NULL) {
          exit(-1);
        }
        cmd = (char *)malloc(sizeof(char) * strlen(buffer));
        sprintf(cmd, "1:2:%s", buffer);
        manageWifi(portno, filename, cmd);
      } else {
        if (strcmp(argv[1], "stop") == 0) {
          printf("STOP READ DURIP\n");
          printf("# PORT:\n");
          bzero(buffer, 32);
          if (fgets(buffer, 31, stdin) == NULL) {
            exit(-1);
          }
          portno = atoi(buffer);
          printf("FILENAME:\n");
          bzero(buffer, 32);
          if (fgets(buffer, 31, stdin) == NULL) {
            exit(-1);
          }
          strncpy(filename, buffer, strlen(buffer));
          filename[strlen(buffer) - 1] = '\0';
          stopDurip(portno, filename, "0:1");
        } else {
          if (strcmp(argv[1], "startContinue") == 0) {
            portno = atoi(argv[2]);
            strcpy(filename, argv[3]);
            sleepingTime = malloc(sizeof(char *) * strlen(argv[4]));
            strcpy(sleepingTime, argv[4]);
            startFunction(portno, filename, sleepingTime);
          } else {
            if (strcmp(argv[1], "stopContinue") == 0) {
              portno = atoi(argv[2]);
              strcpy(filename, argv[3]);
              stopDurip(portno, filename, "0:1");
            } else {
              if (strcmp(argv[1], "changeChannel") == 0) {
                portno = atoi(argv[2]);
                strcpy(filename, argv[3]);
                channel = atoi(argv[4]);
                cmd = (char *)malloc(sizeof(char) * strlen(buffer));
                sprintf(cmd, "1:2:1:3:%d", channel);
                manageWifi(portno, filename, cmd);
              } else {
                if (strcmp(argv[1], "changeTX") == 0) {
                  portno = atoi(argv[2]);
                  strcpy(filename, argv[3]);
                  tx = atoi(argv[4]);
                  cmd = (char *)malloc(sizeof(char) * strlen(buffer));
                  sprintf(cmd, "1:2:1:1:%d", tx);
                  manageWifi(portno, filename, cmd);
                } else {
                  if (strcmp(argv[1], "changeNameFolder") == 0) {
                    portno = atoi(argv[2]);
                    strcpy(filename, argv[3]);
                    cmd = (char *)malloc(sizeof(char) * (2 * strlen(argv[4])));
                    sprintf(cmd, "2:%s", argv[4]);
                    startFunction(portno, filename, cmd);
                  } else {
                    fprintf(
                        stderr,
                        "usage %s {start,manageMAC,manageWifi,startContinue, "
                        "stopContinue, changeChannel, changeTX , "
                        "changeNameFolder}\n",
                        argv[0]);
                    exit(0);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
cmpl   $0x2,-0x8(%rbp)
jge    1246 <main+0x46>
mov    0x2dae(%rip),%rax
mov    (%rax),%edi
mov    -0x10(%rbp),%rax
mov    (%rax),%rdx
lea    0xdc6(%rip),%rsi
call   10b0 <fprintf@plt>
xor    %edi,%edi
call   1120 <exit@plt>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xe1a(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    13a9 <main+0x1a9>
lea    0xe0a(%rip),%rdi
call   1080 <printf@plt>
lea    0xe12(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2d53(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    12b5 <main+0xb5>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    0xdca(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2d02(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1306 <main+0x106>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x40(%rbp),%rax
mov    %rax,-0x88(%rbp)
lea    -0x60(%rbp),%rax
mov    %rax,-0x80(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
mov    -0x88(%rbp),%rdi
mov    -0x80(%rbp),%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
sub    $0x1,%eax
cltq
movb   $0x0,-0x40(%rbp,%rax,1)
lea    0xd4f(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2c7c(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    138c <main+0x18c>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x68(%rbp),%rdx
call   10f0 <startFunction@plt>
jmp    1a8e <main+0x88e>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xcf5(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    1512 <main+0x312>
lea    0xce9(%rip),%rdi
call   1080 <printf@plt>
lea    0xcaf(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2bf0(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1418 <main+0x218>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    0xc67(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2b9f(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1469 <main+0x269>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x40(%rbp),%rax
mov    %rax,-0x98(%rbp)
lea    -0x60(%rbp),%rax
mov    %rax,-0x90(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
mov    -0x98(%rbp),%rdi
mov    -0x90(%rbp),%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
sub    $0x1,%eax
cltq
movb   $0x0,-0x40(%rbp,%rax,1)
lea    0xc16(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2b13(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    14f5 <main+0x2f5>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x70(%rbp),%rdx
call   1060 <manageDURIPFunction@plt>
jmp    1a89 <main+0x889>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xc4b(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    1695 <main+0x495>
lea    0xc40(%rip),%rdi
call   1080 <printf@plt>
lea    0xb46(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2a87(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1581 <main+0x381>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    0xafe(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2a36(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    15d2 <main+0x3d2>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x40(%rbp),%rax
mov    %rax,-0xa8(%rbp)
lea    -0x60(%rbp),%rax
mov    %rax,-0xa0(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
mov    -0xa8(%rbp),%rdi
mov    -0xa0(%rbp),%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
sub    $0x1,%eax
cltq
movb   $0x0,-0x40(%rbp,%rax,1)
lea    0xb64(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    0x29b8(%rip),%rax
mov    (%rax),%edx
mov    $0x20,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1650 <main+0x450>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
cltq
shl    $0x0,%rax
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rdi
lea    -0x60(%rbp),%rdx
lea    0xb82(%rip),%rsi
mov    $0x0,%al
call   1110 <sprintf@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x70(%rbp),%rdx
call   1040 <manageWifi@plt>
jmp    1a84 <main+0x884>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xb5e(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    17b4 <main+0x5b4>
lea    0xb4d(%rip),%rdi
call   1080 <printf@plt>
lea    0x9c3(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x2904(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1704 <main+0x504>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x60(%rbp),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    0x97b(%rip),%rdi
call   1080 <printf@plt>
lea    -0x60(%rbp),%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
lea    -0x60(%rbp),%rdi
mov    0x28b3(%rip),%rax
mov    (%rax),%edx
mov    $0x1f,%esi
call   1090 <fgets@plt>
cmp    $0x0,%rax
jne    1755 <main+0x555>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
lea    -0x40(%rbp),%rax
mov    %rax,-0xb8(%rbp)
lea    -0x60(%rbp),%rax
mov    %rax,-0xb0(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
mov    -0xb8(%rbp),%rdi
mov    -0xb0(%rbp),%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
sub    $0x1,%eax
cltq
movb   $0x0,-0x40(%rbp,%rax,1)
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
lea    0xa6e(%rip),%rdx
call   10c0 <stopDurip@plt>
jmp    1a7f <main+0x87f>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xa59(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    1837 <main+0x637>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
call   1070 <strlen@plt>
cltq
shl    $0x3,%rax
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x68(%rbp),%rdx
call   10f0 <startFunction@plt>
jmp    1a7a <main+0x87a>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x9e4(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    188e <main+0x68e>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
lea    0x994(%rip),%rdx
call   10c0 <stopDurip@plt>
jmp    1a75 <main+0x875>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x99a(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    1921 <main+0x721>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x74(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
cltq
shl    $0x0,%rax
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rdi
mov    -0x74(%rbp),%edx
lea    0x940(%rip),%rsi
mov    $0x0,%al
call   1110 <sprintf@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x70(%rbp),%rdx
call   1040 <manageWifi@plt>
jmp    1a70 <main+0x870>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x920(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    19b4 <main+0x7b4>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x78(%rbp)
lea    -0x60(%rbp),%rdi
call   1070 <strlen@plt>
cltq
shl    $0x0,%rax
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rdi
mov    -0x78(%rbp),%edx
lea    0x8c1(%rip),%rsi
mov    $0x0,%al
call   1110 <sprintf@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x70(%rbp),%rdx
call   1040 <manageWifi@plt>
jmp    1a6b <main+0x86b>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x8a1(%rip),%rsi
call   10a0 <strcmp@plt>
cmp    $0x0,%rax
jne    1a43 <main+0x843>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1100 <atoi@plt>
mov    %eax,-0x14(%rbp)
lea    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rsi
call   1050 <strcpy@plt>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
call   1070 <strlen@plt>
shl    $0x1,%eax
cltq
shl    $0x0,%rax
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdx
lea    0x7d6(%rip),%rsi
mov    $0x0,%al
call   1110 <sprintf@plt>
mov    -0x14(%rbp),%edi
lea    -0x40(%rbp),%rsi
mov    -0x70(%rbp),%rdx
call   10f0 <startFunction@plt>
jmp    1a66 <main+0x866>
mov    0x258e(%rip),%rax
mov    (%rax),%edi
mov    -0x10(%rbp),%rax
mov    (%rax),%rdx
lea    0x5a6(%rip),%rsi
call   10b0 <fprintf@plt>
xor    %edi,%edi
call   1120 <exit@plt>
jmp    1a6b <main+0x86b>
jmp    1a70 <main+0x870>
jmp    1a75 <main+0x875>
jmp    1a7a <main+0x87a>
jmp    1a7f <main+0x87f>
jmp    1a84 <main+0x884>
jmp    1a89 <main+0x889>
jmp    1a8e <main+0x88e>
xor    %eax,%eax
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %rbx
sub    $0x48,%rsp
mov    %rsi,%rbx
cmp    $0x1,%edi
jle    183f <main+0x63f>
mov    0x8(%rbx),%rdi
lea    0xe4e(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     1342 <main+0x142>
mov    0x8(%rbx),%rdi
lea    0xe3b(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     143d <main+0x23d>
mov    0x8(%rbx),%rdi
lea    0xe2c(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     1538 <main+0x338>
mov    0x8(%rbx),%rdi
lea    0xe25(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     164f <main+0x44f>
mov    0x8(%rbx),%rdi
lea    0xe15(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     170f <main+0x50f>
mov    0x8(%rbx),%rdi
lea    0xe0a(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     1760 <main+0x560>
mov    0x8(%rbx),%rdi
lea    0xdfe(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     179a <main+0x59a>
mov    0x8(%rbx),%rdi
lea    0xdfe(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
je     17dd <main+0x5dd>
mov    0x8(%rbx),%rdi
lea    0xdf9(%rip),%rsi
call   10a0 <strcmp@plt>
test   %rax,%rax
jne    183f <main+0x63f>
mov    0x10(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%r15d
mov    0x18(%rbx),%rsi
lea    0x20(%rsp),%r14
mov    %r14,%rdi
call   1050 <strcpy@plt>
mov    0x20(%rbx),%rdi
call   1080 <strlen@plt>
lea    (%rax,%rax,1),%edi
call   10d0 <malloc@plt>
mov    %rax,%rbp
mov    0x20(%rbx),%rdx
lea    0xd59(%rip),%rsi
mov    %rax,%rdi
xor    %eax,%eax
call   1110 <sprintf@plt>
jmp    1750 <main+0x550>
lea    0xeef(%rip),%rdi
call   1060 <puts@plt>
lea    0xef6(%rip),%rdi
call   1060 <puts@plt>
mov    %rsp,%rbx
mov    %rbx,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    0x2c77(%rip),%r15
mov    (%r15),%edx
mov    %rbx,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1100 <atoi@plt>
mov    %eax,%r14d
lea    0xeb4(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1080 <strlen@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
mov    %rbp,%rdi
call   1080 <strlen@plt>
cltq
movb   $0x0,-0x1(%rax,%rbx,1)
lea    0xe60(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
lea    0x20(%rsp),%rsi
mov    %rsp,%rdx
mov    %r14d,%edi
call   10f0 <startFunction@plt>
jmp    178d <main+0x58d>
lea    0xd41(%rip),%rdi
call   1060 <puts@plt>
lea    0xdfb(%rip),%rdi
call   1060 <puts@plt>
mov    %rsp,%rbx
mov    %rbx,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    0x2b7c(%rip),%r15
mov    (%r15),%edx
mov    %rbx,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1100 <atoi@plt>
mov    %eax,%r14d
lea    0xdb9(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1080 <strlen@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
mov    %rbp,%rdi
call   1080 <strlen@plt>
cltq
movb   $0x0,-0x1(%rax,%rbx,1)
lea    0xca2(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
lea    0x20(%rsp),%rsi
mov    %rsp,%rdx
mov    %r14d,%edi
call   1070 <manageDURIPFunction@plt>
jmp    178d <main+0x58d>
lea    0xbc4(%rip),%rdi
call   1060 <puts@plt>
lea    0xd00(%rip),%rdi
call   1060 <puts@plt>
mov    %rsp,%rbx
mov    %rbx,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    0x2a81(%rip),%r15
mov    (%r15),%edx
mov    %rbx,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1100 <atoi@plt>
mov    %eax,%r14d
lea    0xcbe(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1080 <strlen@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
mov    %rbp,%rdi
call   1080 <strlen@plt>
cltq
movb   $0x0,-0x1(%rax,%rbx,1)
lea    0xb1c(%rip),%rdi
call   1060 <puts@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x20,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbx
mov    %rbx,%rdi
call   1080 <strlen@plt>
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,%rbp
lea    0xa5d(%rip),%rsi
mov    %rax,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1110 <sprintf@plt>
lea    0x20(%rsp),%rsi
mov    %r14d,%edi
mov    %rbp,%rdx
call   1040 <manageWifi@plt>
jmp    178d <main+0x58d>
lea    0xa9d(%rip),%rdi
call   1060 <puts@plt>
lea    0xbe9(%rip),%rdi
call   1060 <puts@plt>
mov    %rsp,%rbx
mov    %rbx,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    0x296a(%rip),%r15
mov    (%r15),%edx
mov    %rbx,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1100 <atoi@plt>
mov    %eax,%r14d
lea    0xba7(%rip),%rdi
call   1060 <puts@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   10e0 <bzero@plt>
mov    (%r15),%edx
mov    %rbp,%rdi
mov    $0x1f,%esi
call   1090 <fgets@plt>
test   %rax,%rax
je     1835 <main+0x635>
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1080 <strlen@plt>
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   1030 <strncpy@plt>
mov    %rbp,%rdi
call   1080 <strlen@plt>
cltq
movb   $0x0,-0x1(%rax,%rbx,1)
lea    0x98c(%rip),%rdx
mov    %r14d,%edi
jmp    1785 <main+0x585>
mov    0x10(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%r15d
mov    0x18(%rbx),%rsi
lea    0x20(%rsp),%r14
mov    %r14,%rdi
call   1050 <strcpy@plt>
mov    0x20(%rbx),%rdi
call   1080 <strlen@plt>
lea    0x0(,%rax,8),%edi
call   10d0 <malloc@plt>
mov    %rax,%rbp
mov    0x20(%rbx),%rsi
mov    %rax,%rdi
call   1050 <strcpy@plt>
mov    %r15d,%edi
mov    %r14,%rsi
mov    %rbp,%rdx
call   10f0 <startFunction@plt>
jmp    178d <main+0x58d>
mov    0x10(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%ebp
mov    0x18(%rbx),%rsi
lea    0x20(%rsp),%rbx
mov    %rbx,%rdi
call   1050 <strcpy@plt>
lea    0x913(%rip),%rdx
mov    %ebp,%edi
mov    %rbx,%rsi
call   10c0 <stopDurip@plt>
xor    %eax,%eax
add    $0x48,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
mov    0x10(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%r15d
mov    0x18(%rbx),%rsi
lea    0x20(%rsp),%r14
mov    %r14,%rdi
call   1050 <strcpy@plt>
mov    0x20(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%ebx
mov    %rsp,%rdi
call   1080 <strlen@plt>
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,%rbp
lea    0x8e8(%rip),%rsi
jmp    181e <main+0x61e>
mov    0x10(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%r15d
mov    0x18(%rbx),%rsi
lea    0x20(%rsp),%r14
mov    %r14,%rdi
call   1050 <strcpy@plt>
mov    0x20(%rbx),%rdi
call   1100 <atoi@plt>
mov    %eax,%ebx
mov    %rsp,%rdi
call   1080 <strlen@plt>
mov    %eax,%edi
call   10d0 <malloc@plt>
mov    %rax,%rbp
lea    0x8b9(%rip),%rsi
mov    %rax,%rdi
mov    %ebx,%edx
xor    %eax,%eax
call   1110 <sprintf@plt>
mov    %r15d,%edi
mov    %r14,%rsi
jmp    1642 <main+0x442>
mov    $0xffffffff,%edi
call   1120 <exit@plt>
mov    0x2792(%rip),%rax
mov    (%rax),%edi
mov    (%rbx),%rdx
lea    0x7ae(%rip),%rsi
call   10b0 <fprintf@plt>
xor    %edi,%edi
call   1120 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [111 x i8] c"usage %s {start,manageMAC,manageWifi,startContinue, stopContinue, changeChannel, changeTX , changeNameFolder}\0A\00"
@.str.1 = [6 x i8] c"start\00"
@.str.2 = [20 x i8] c"start MACREADDURIP\0A\00"
@.str.3 = [9 x i8] c"# PORT:\0A\00"
@stdin = global i32 0
@.str.4 = [11 x i8] c"FILENAME:\0A\00"
@.str.5 = [16 x i8] c"SLEEPING TIME:\0A\00"
@.str.6 = [10 x i8] c"manageMAC\00"
@.str.7 = [22 x i8] c"manageMAC READ DURIP\0A\00"
@.str.8 = [159 x i8] c"CMD MACREADDURIP{0 STOP | 1 CHANGE} { 0 CHANGE PRINT | 2 CHANGE TS}}:{PRINT 0 no feedback | PRINT 1 only video | PRINT 2 only file | PRINT 3 both}|{TS in ms}\0A\00"
@.str.9 = [11 x i8] c"manageWifi\00"
@.str.10 = [13 x i8] c"Manage WIFI\0A\00"
@.str.11 = [119 x i8] c"CMD MANAGEWIFI{0 GET | 1 SET }: 1 TXPOWER | 2 TX FREQ | 3 TX CH}:[TXPOWER [0-20] | TXFREQ [2412-2492] | TX CH [1-20]}\0A\00"
@.str.12 = [7 x i8] c"1:2:%s\00"
@.str.13 = [5 x i8] c"stop\00"
@.str.14 = [17 x i8] c"STOP READ DURIP\0A\00"
@.str.15 = [4 x i8] c"0:1\00"
@.str.16 = [14 x i8] c"startContinue\00"
@.str.17 = [13 x i8] c"stopContinue\00"
@.str.18 = [14 x i8] c"changeChannel\00"
@.str.19 = [11 x i8] c"1:2:1:3:%d\00"
@.str.20 = [9 x i8] c"changeTX\00"
@.str.21 = [11 x i8] c"1:2:1:1:%d\00"
@.str.22 = [17 x i8] c"changeNameFolder\00"
@.str.23 = [5 x i8] c"2:%s\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca [32 x i8]
%8 = alloca [32 x i8]
%9 = alloca i8*
%10 = alloca i8*
%11 = alloca i32
%12 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%13 = load i32, i32* %4
%14 = icmp slt i32 %13, 2
br i1 %14, label %15, label %22
15: ; preds = %2
%16 = load i32, i32* @stderr
%17 = load i8**, i8*** %5
%18 = getelementptr inbounds i8*, i8** %17, i64 0
%19 = load i8*, i8** %18
%20 = call i32 @fprintf(i32 %16, i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str, i64 0, i64 0), i8* %19)
%21 = call i32 @exit(i32 0)
unreachable
22: ; preds = %2
%23 = load i8**, i8*** %5
%24 = getelementptr inbounds i8*, i8** %23, i64 1
%25 = load i8*, i8** %24
%26 = call i64 @strcmp(i8* %25, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%27 = icmp eq i64 %26, 0
br i1 %27, label %28, label %77
28: ; preds = %22
%29 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%30 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0))
%31 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%32 = call i32 @bzero(i8* %31, i32 32)
%33 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%34 = load i32, i32* @stdin
%35 = call i32* @fgets(i8* %33, i32 31, i32 %34)
%36 = icmp eq i32* %35, null
br i1 %36, label %37, label %39
37: ; preds = %28
%38 = call i32 @exit(i32 -1)
unreachable
39: ; preds = %28
%40 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%41 = call i32 @atoi(i8* %40)
store i32 %41, i32* %6
%42 = call i32 @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%43 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%44 = call i32 @bzero(i8* %43, i32 32)
%45 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%46 = load i32, i32* @stdin
%47 = call i32* @fgets(i8* %45, i32 31, i32 %46)
%48 = icmp eq i32* %47, null
br i1 %48, label %49, label %51
49: ; preds = %39
%50 = call i32 @exit(i32 -1)
unreachable
51: ; preds = %39
%52 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%53 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%54 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%55 = call i32 @strlen(i8* %54)
%56 = call i32 @strncpy(i8* %52, i8* %53, i32 %55)
%57 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%58 = call i32 @strlen(i8* %57)
%59 = sub nsw i32 %58, 1
%60 = sext i32 %59 to i64
%61 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 %60
store i8 0, i8* %61
%62 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i64 0, i64 0))
%63 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%64 = call i32 @bzero(i8* %63, i32 32)
%65 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%66 = load i32, i32* @stdin
%67 = call i32* @fgets(i8* %65, i32 31, i32 %66)
%68 = icmp eq i32* %67, null
br i1 %68, label %69, label %71
69: ; preds = %51
%70 = call i32 @exit(i32 -1)
unreachable
71: ; preds = %51
%72 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
store i8* %72, i8** %9
%73 = load i32, i32* %6
%74 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%75 = load i8*, i8** %9
%76 = call i32 @startFunction(i32 %73, i8* %74, i8* %75)
br label %403
77: ; preds = %22
%78 = load i8**, i8*** %5
%79 = getelementptr inbounds i8*, i8** %78, i64 1
%80 = load i8*, i8** %79
%81 = call i64 @strcmp(i8* %80, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
%82 = icmp eq i64 %81, 0
br i1 %82, label %83, label %132
83: ; preds = %77
%84 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0))
%85 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0))
%86 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%87 = call i32 @bzero(i8* %86, i32 32)
%88 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%89 = load i32, i32* @stdin
%90 = call i32* @fgets(i8* %88, i32 31, i32 %89)
%91 = icmp eq i32* %90, null
br i1 %91, label %92, label %94
92: ; preds = %83
%93 = call i32 @exit(i32 -1)
unreachable
94: ; preds = %83
%95 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%96 = call i32 @atoi(i8* %95)
store i32 %96, i32* %6
%97 = call i32 @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%98 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%99 = call i32 @bzero(i8* %98, i32 32)
%100 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%101 = load i32, i32* @stdin
%102 = call i32* @fgets(i8* %100, i32 31, i32 %101)
%103 = icmp eq i32* %102, null
br i1 %103, label %104, label %106
104: ; preds = %94
%105 = call i32 @exit(i32 -1)
unreachable
106: ; preds = %94
%107 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%108 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%109 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%110 = call i32 @strlen(i8* %109)
%111 = call i32 @strncpy(i8* %107, i8* %108, i32 %110)
%112 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%113 = call i32 @strlen(i8* %112)
%114 = sub nsw i32 %113, 1
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 %115
store i8 0, i8* %116
%117 = call i32 @printf(i8* getelementptr inbounds ([159 x i8], [159 x i8]* @.str.8, i64 0, i64 0))
%118 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%119 = call i32 @bzero(i8* %118, i32 32)
%120 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%121 = load i32, i32* @stdin
%122 = call i32* @fgets(i8* %120, i32 31, i32 %121)
%123 = icmp eq i32* %122, null
br i1 %123, label %124, label %126
124: ; preds = %106
%125 = call i32 @exit(i32 -1)
unreachable
126: ; preds = %106
%127 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
store i8* %127, i8** %10
%128 = load i32, i32* %6
%129 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%130 = load i8*, i8** %10
%131 = call i32 @manageDURIPFunction(i32 %128, i8* %129, i8* %130)
br label %402
132: ; preds = %77
%133 = load i8**, i8*** %5
%134 = getelementptr inbounds i8*, i8** %133, i64 1
%135 = load i8*, i8** %134
%136 = call i64 @strcmp(i8* %135, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0))
%137 = icmp eq i64 %136, 0
br i1 %137, label %138, label %193
138: ; preds = %132
%139 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.10, i64 0, i64 0))
%140 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0))
%141 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%142 = call i32 @bzero(i8* %141, i32 32)
%143 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%144 = load i32, i32* @stdin
%145 = call i32* @fgets(i8* %143, i32 31, i32 %144)
%146 = icmp eq i32* %145, null
br i1 %146, label %147, label %149
147: ; preds = %138
%148 = call i32 @exit(i32 -1)
unreachable
149: ; preds = %138
%150 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%151 = call i32 @atoi(i8* %150)
store i32 %151, i32* %6
%152 = call i32 @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%153 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%154 = call i32 @bzero(i8* %153, i32 32)
%155 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%156 = load i32, i32* @stdin
%157 = call i32* @fgets(i8* %155, i32 31, i32 %156)
%158 = icmp eq i32* %157, null
br i1 %158, label %159, label %161
159: ; preds = %149
%160 = call i32 @exit(i32 -1)
unreachable
161: ; preds = %149
%162 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%163 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%164 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%165 = call i32 @strlen(i8* %164)
%166 = call i32 @strncpy(i8* %162, i8* %163, i32 %165)
%167 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%168 = call i32 @strlen(i8* %167)
%169 = sub nsw i32 %168, 1
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 %170
store i8 0, i8* %171
%172 = call i32 @printf(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.11, i64 0, i64 0))
%173 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%174 = load i32, i32* @stdin
%175 = call i32* @fgets(i8* %173, i32 32, i32 %174)
%176 = icmp eq i32* %175, null
br i1 %176, label %177, label %179
177: ; preds = %161
%178 = call i32 @exit(i32 -1)
unreachable
179: ; preds = %161
%180 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%181 = call i32 @strlen(i8* %180)
%182 = sext i32 %181 to i64
%183 = mul i64 1, %182
%184 = trunc i64 %183 to i32
%185 = call i8* @malloc(i32 %184)
store i8* %185, i8** %10
%186 = load i8*, i8** %10
%187 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%188 = call i32 (i8*, i8*, ...) @sprintf(i8* %186, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* %187)
%189 = load i32, i32* %6
%190 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%191 = load i8*, i8** %10
%192 = call i32 @manageWifi(i32 %189, i8* %190, i8* %191)
br label %401
193: ; preds = %132
%194 = load i8**, i8*** %5
%195 = getelementptr inbounds i8*, i8** %194, i64 1
%196 = load i8*, i8** %195
%197 = call i64 @strcmp(i8* %196, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%198 = icmp eq i64 %197, 0
br i1 %198, label %199, label %236
199: ; preds = %193
%200 = call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.14, i64 0, i64 0))
%201 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0))
%202 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%203 = call i32 @bzero(i8* %202, i32 32)
%204 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%205 = load i32, i32* @stdin
%206 = call i32* @fgets(i8* %204, i32 31, i32 %205)
%207 = icmp eq i32* %206, null
br i1 %207, label %208, label %210
208: ; preds = %199
%209 = call i32 @exit(i32 -1)
unreachable
210: ; preds = %199
%211 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%212 = call i32 @atoi(i8* %211)
store i32 %212, i32* %6
%213 = call i32 @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%214 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%215 = call i32 @bzero(i8* %214, i32 32)
%216 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%217 = load i32, i32* @stdin
%218 = call i32* @fgets(i8* %216, i32 31, i32 %217)
%219 = icmp eq i32* %218, null
br i1 %219, label %220, label %222
220: ; preds = %210
%221 = call i32 @exit(i32 -1)
unreachable
222: ; preds = %210
%223 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%224 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%225 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%226 = call i32 @strlen(i8* %225)
%227 = call i32 @strncpy(i8* %223, i8* %224, i32 %226)
%228 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%229 = call i32 @strlen(i8* %228)
%230 = sub nsw i32 %229, 1
%231 = sext i32 %230 to i64
%232 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 %231
store i8 0, i8* %232
%233 = load i32, i32* %6
%234 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%235 = call i32 @stopDurip(i32 %233, i8* %234, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
br label %400
236: ; preds = %193
%237 = load i8**, i8*** %5
%238 = getelementptr inbounds i8*, i8** %237, i64 1
%239 = load i8*, i8** %238
%240 = call i64 @strcmp(i8* %239, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.16, i64 0, i64 0))
%241 = icmp eq i64 %240, 0
br i1 %241, label %242, label %269
242: ; preds = %236
%243 = load i8**, i8*** %5
%244 = getelementptr inbounds i8*, i8** %243, i64 2
%245 = load i8*, i8** %244
%246 = call i32 @atoi(i8* %245)
store i32 %246, i32* %6
%247 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%248 = load i8**, i8*** %5
%249 = getelementptr inbounds i8*, i8** %248, i64 3
%250 = load i8*, i8** %249
%251 = call i32 @strcpy(i8* %247, i8* %250)
%252 = load i8**, i8*** %5
%253 = getelementptr inbounds i8*, i8** %252, i64 4
%254 = load i8*, i8** %253
%255 = call i32 @strlen(i8* %254)
%256 = sext i32 %255 to i64
%257 = mul i64 8, %256
%258 = trunc i64 %257 to i32
%259 = call i8* @malloc(i32 %258)
store i8* %259, i8** %9
%260 = load i8*, i8** %9
%261 = load i8**, i8*** %5
%262 = getelementptr inbounds i8*, i8** %261, i64 4
%263 = load i8*, i8** %262
%264 = call i32 @strcpy(i8* %260, i8* %263)
%265 = load i32, i32* %6
%266 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%267 = load i8*, i8** %9
%268 = call i32 @startFunction(i32 %265, i8* %266, i8* %267)
br label %399
269: ; preds = %236
%270 = load i8**, i8*** %5
%271 = getelementptr inbounds i8*, i8** %270, i64 1
%272 = load i8*, i8** %271
%273 = call i64 @strcmp(i8* %272, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0))
%274 = icmp eq i64 %273, 0
br i1 %274, label %275, label %288
275: ; preds = %269
%276 = load i8**, i8*** %5
%277 = getelementptr inbounds i8*, i8** %276, i64 2
%278 = load i8*, i8** %277
%279 = call i32 @atoi(i8* %278)
store i32 %279, i32* %6
%280 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%281 = load i8**, i8*** %5
%282 = getelementptr inbounds i8*, i8** %281, i64 3
%283 = load i8*, i8** %282
%284 = call i32 @strcpy(i8* %280, i8* %283)
%285 = load i32, i32* %6
%286 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%287 = call i32 @stopDurip(i32 %285, i8* %286, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
br label %398
288: ; preds = %269
%289 = load i8**, i8*** %5
%290 = getelementptr inbounds i8*, i8** %289, i64 1
%291 = load i8*, i8** %290
%292 = call i64 @strcmp(i8* %291, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0))
%293 = icmp eq i64 %292, 0
br i1 %293, label %294, label %321
294: ; preds = %288
%295 = load i8**, i8*** %5
%296 = getelementptr inbounds i8*, i8** %295, i64 2
%297 = load i8*, i8** %296
%298 = call i32 @atoi(i8* %297)
store i32 %298, i32* %6
%299 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%300 = load i8**, i8*** %5
%301 = getelementptr inbounds i8*, i8** %300, i64 3
%302 = load i8*, i8** %301
%303 = call i32 @strcpy(i8* %299, i8* %302)
%304 = load i8**, i8*** %5
%305 = getelementptr inbounds i8*, i8** %304, i64 4
%306 = load i8*, i8** %305
%307 = call i32 @atoi(i8* %306)
store i32 %307, i32* %11
%308 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%309 = call i32 @strlen(i8* %308)
%310 = sext i32 %309 to i64
%311 = mul i64 1, %310
%312 = trunc i64 %311 to i32
%313 = call i8* @malloc(i32 %312)
store i8* %313, i8** %10
%314 = load i8*, i8** %10
%315 = load i32, i32* %11
%316 = call i32 (i8*, i8*, ...) @sprintf(i8* %314, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i64 0, i64 0), i32 %315)
%317 = load i32, i32* %6
%318 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%319 = load i8*, i8** %10
%320 = call i32 @manageWifi(i32 %317, i8* %318, i8* %319)
br label %397
321: ; preds = %288
%322 = load i8**, i8*** %5
%323 = getelementptr inbounds i8*, i8** %322, i64 1
%324 = load i8*, i8** %323
%325 = call i64 @strcmp(i8* %324, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.20, i64 0, i64 0))
%326 = icmp eq i64 %325, 0
br i1 %326, label %327, label %354
327: ; preds = %321
%328 = load i8**, i8*** %5
%329 = getelementptr inbounds i8*, i8** %328, i64 2
%330 = load i8*, i8** %329
%331 = call i32 @atoi(i8* %330)
store i32 %331, i32* %6
%332 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%333 = load i8**, i8*** %5
%334 = getelementptr inbounds i8*, i8** %333, i64 3
%335 = load i8*, i8** %334
%336 = call i32 @strcpy(i8* %332, i8* %335)
%337 = load i8**, i8*** %5
%338 = getelementptr inbounds i8*, i8** %337, i64 4
%339 = load i8*, i8** %338
%340 = call i32 @atoi(i8* %339)
store i32 %340, i32* %12
%341 = getelementptr inbounds [32 x i8], [32 x i8]* %8, i64 0, i64 0
%342 = call i32 @strlen(i8* %341)
%343 = sext i32 %342 to i64
%344 = mul i64 1, %343
%345 = trunc i64 %344 to i32
%346 = call i8* @malloc(i32 %345)
store i8* %346, i8** %10
%347 = load i8*, i8** %10
%348 = load i32, i32* %12
%349 = call i32 (i8*, i8*, ...) @sprintf(i8* %347, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.21, i64 0, i64 0), i32 %348)
%350 = load i32, i32* %6
%351 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%352 = load i8*, i8** %10
%353 = call i32 @manageWifi(i32 %350, i8* %351, i8* %352)
br label %396
354: ; preds = %321
%355 = load i8**, i8*** %5
%356 = getelementptr inbounds i8*, i8** %355, i64 1
%357 = load i8*, i8** %356
%358 = call i64 @strcmp(i8* %357, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.22, i64 0, i64 0))
%359 = icmp eq i64 %358, 0
br i1 %359, label %360, label %388
360: ; preds = %354
%361 = load i8**, i8*** %5
%362 = getelementptr inbounds i8*, i8** %361, i64 2
%363 = load i8*, i8** %362
%364 = call i32 @atoi(i8* %363)
store i32 %364, i32* %6
%365 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%366 = load i8**, i8*** %5
%367 = getelementptr inbounds i8*, i8** %366, i64 3
%368 = load i8*, i8** %367
%369 = call i32 @strcpy(i8* %365, i8* %368)
%370 = load i8**, i8*** %5
%371 = getelementptr inbounds i8*, i8** %370, i64 4
%372 = load i8*, i8** %371
%373 = call i32 @strlen(i8* %372)
%374 = mul nsw i32 2, %373
%375 = sext i32 %374 to i64
%376 = mul i64 1, %375
%377 = trunc i64 %376 to i32
%378 = call i8* @malloc(i32 %377)
store i8* %378, i8** %10
%379 = load i8*, i8** %10
%380 = load i8**, i8*** %5
%381 = getelementptr inbounds i8*, i8** %380, i64 4
%382 = load i8*, i8** %381
%383 = call i32 (i8*, i8*, ...) @sprintf(i8* %379, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8* %382)
%384 = load i32, i32* %6
%385 = getelementptr inbounds [32 x i8], [32 x i8]* %7, i64 0, i64 0
%386 = load i8*, i8** %10
%387 = call i32 @startFunction(i32 %384, i8* %385, i8* %386)
br label %395
388: ; preds = %354
%389 = load i32, i32* @stderr
%390 = load i8**, i8*** %5
%391 = getelementptr inbounds i8*, i8** %390, i64 0
%392 = load i8*, i8** %391
%393 = call i32 @fprintf(i32 %389, i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str, i64 0, i64 0), i8* %392)
%394 = call i32 @exit(i32 0)
unreachable
395: ; preds = %360
br label %396
396: ; preds = %395, %327
br label %397
397: ; preds = %396, %294
br label %398
398: ; preds = %397, %275
br label %399
399: ; preds = %398, %242
br label %400
400: ; preds = %399, %222
br label %401
401: ; preds = %400, %179
br label %402
402: ; preds = %401, %126
br label %403
403: ; preds = %402, %71
ret i32 0
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [111 x i8] c"usage %s {start,manageMAC,manageWifi,startContinue, stopContinue, changeChannel, changeTX , changeNameFolder}\0A\00"
@.str.1 = [6 x i8] c"start\00"
@stdin = global i32 0
@.str.6 = [10 x i8] c"manageMAC\00"
@.str.9 = [11 x i8] c"manageWifi\00"
@.str.12 = [7 x i8] c"1:2:%s\00"
@.str.13 = [5 x i8] c"stop\00"
@.str.15 = [4 x i8] c"0:1\00"
@.str.16 = [14 x i8] c"startContinue\00"
@.str.17 = [13 x i8] c"stopContinue\00"
@.str.18 = [14 x i8] c"changeChannel\00"
@.str.19 = [11 x i8] c"1:2:1:3:%d\00"
@.str.20 = [9 x i8] c"changeTX\00"
@.str.21 = [11 x i8] c"1:2:1:1:%d\00"
@.str.22 = [17 x i8] c"changeNameFolder\00"
@.str.23 = [5 x i8] c"2:%s\00"
@str = [16 x i8] c"STOP READ DURIP\00"
@str.26 = [12 x i8] c"Manage WIFI\00"
@str.29 = [118 x i8] c"CMD MANAGEWIFI{0 GET | 1 SET }: 1 TXPOWER | 2 TX FREQ | 3 TX CH}:[TXPOWER [0-20] | TXFREQ [2412-2492] | TX CH [1-20]}\00"
@str.30 = [21 x i8] c"manageMAC READ DURIP\00"
@str.33 = [158 x i8] c"CMD MACREADDURIP{0 STOP | 1 CHANGE} { 0 CHANGE PRINT | 2 CHANGE TS}}:{PRINT 0 no feedback | PRINT 1 only video | PRINT 2 only file | PRINT 3 both}|{TS in ms}\00"
@str.34 = [19 x i8] c"start MACREADDURIP\00"
@str.35 = [8 x i8] c"# PORT:\00"
@str.36 = [10 x i8] c"FILENAME:\00"
@str.37 = [15 x i8] c"SLEEPING TIME:\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca [32 x i8]
%4 = alloca [32 x i8]
%5 = getelementptr inbounds [32 x i8], [32 x i8]* %3, i64 0, i64 0
%6 = getelementptr inbounds [32 x i8], [32 x i8]* %4, i64 0, i64 0
%7 = icmp slt i32 %0, 2
br i1 %7, label %8, label %13
8: ; preds = %2
%9 = load i32, i32* @stderr
%10 = load i8*, i8** %1
%11 = tail call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str, i64 0, i64 0), i8* %10)
%12 = tail call i32 @exit(i32 0)
unreachable
13: ; preds = %2
%14 = getelementptr inbounds i8*, i8** %1, i64 1
%15 = load i8*, i8** %14
%16 = tail call i64 @strcmp(i8* %15, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%17 = icmp eq i64 %16, 0
br i1 %17, label %18, label %52
18: ; preds = %13
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.34, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.35, i64 0, i64 0))
%21 = call i32 @bzero(i8* %6, i32 32)
%22 = load i32, i32* @stdin
%23 = call i32* @fgets(i8* %6, i32 31, i32 %22)
%24 = icmp eq i32* %23, null
br i1 %24, label %25, label %27
25: ; preds = %18
%26 = call i32 @exit(i32 -1)
unreachable
27: ; preds = %18
%28 = call i32 @atoi(i8* %6)
%29 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.36, i64 0, i64 0))
%30 = call i32 @bzero(i8* %6, i32 32)
%31 = load i32, i32* @stdin
%32 = call i32* @fgets(i8* %6, i32 31, i32 %31)
%33 = icmp eq i32* %32, null
br i1 %33, label %34, label %36
34: ; preds = %27
%35 = call i32 @exit(i32 -1)
unreachable
36: ; preds = %27
%37 = call i32 @strlen(i8* %6)
%38 = call i32 @strncpy(i8* %5, i8* %6, i32 %37)
%39 = call i32 @strlen(i8* %6)
%40 = add nsw i32 %39, -1
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds [32 x i8], [32 x i8]* %3, i64 0, i64 %41
store i8 0, i8* %42
%43 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.37, i64 0, i64 0))
%44 = call i32 @bzero(i8* %6, i32 32)
%45 = load i32, i32* @stdin
%46 = call i32* @fgets(i8* %6, i32 31, i32 %45)
%47 = icmp eq i32* %46, null
br i1 %47, label %48, label %50
48: ; preds = %36
%49 = call i32 @exit(i32 -1)
unreachable
50: ; preds = %36
%51 = call i32 @startFunction(i32 %28, i8* %5, i8* %6)
br label %251
52: ; preds = %13
%53 = load i8*, i8** %14
%54 = tail call i64 @strcmp(i8* %53, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
%55 = icmp eq i64 %54, 0
br i1 %55, label %56, label %90
56: ; preds = %52
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.30, i64 0, i64 0))
%58 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.35, i64 0, i64 0))
%59 = call i32 @bzero(i8* %6, i32 32)
%60 = load i32, i32* @stdin
%61 = call i32* @fgets(i8* %6, i32 31, i32 %60)
%62 = icmp eq i32* %61, null
br i1 %62, label %63, label %65
63: ; preds = %56
%64 = call i32 @exit(i32 -1)
unreachable
65: ; preds = %56
%66 = call i32 @atoi(i8* %6)
%67 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.36, i64 0, i64 0))
%68 = call i32 @bzero(i8* %6, i32 32)
%69 = load i32, i32* @stdin
%70 = call i32* @fgets(i8* %6, i32 31, i32 %69)
%71 = icmp eq i32* %70, null
br i1 %71, label %72, label %74
72: ; preds = %65
%73 = call i32 @exit(i32 -1)
unreachable
74: ; preds = %65
%75 = call i32 @strlen(i8* %6)
%76 = call i32 @strncpy(i8* %5, i8* %6, i32 %75)
%77 = call i32 @strlen(i8* %6)
%78 = add nsw i32 %77, -1
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [32 x i8], [32 x i8]* %3, i64 0, i64 %79
store i8 0, i8* %80
%81 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([158 x i8], [158 x i8]* @str.33, i64 0, i64 0))
%82 = call i32 @bzero(i8* %6, i32 32)
%83 = load i32, i32* @stdin
%84 = call i32* @fgets(i8* %6, i32 31, i32 %83)
%85 = icmp eq i32* %84, null
br i1 %85, label %86, label %88
86: ; preds = %74
%87 = call i32 @exit(i32 -1)
unreachable
88: ; preds = %74
%89 = call i32 @manageDURIPFunction(i32 %66, i8* %5, i8* %6)
br label %251
90: ; preds = %52
%91 = load i8*, i8** %14
%92 = tail call i64 @strcmp(i8* %91, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0))
%93 = icmp eq i64 %92, 0
br i1 %93, label %94, label %130
94: ; preds = %90
%95 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.26, i64 0, i64 0))
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.35, i64 0, i64 0))
%97 = call i32 @bzero(i8* %6, i32 32)
%98 = load i32, i32* @stdin
%99 = call i32* @fgets(i8* %6, i32 31, i32 %98)
%100 = icmp eq i32* %99, null
br i1 %100, label %101, label %103
101: ; preds = %94
%102 = call i32 @exit(i32 -1)
unreachable
103: ; preds = %94
%104 = call i32 @atoi(i8* %6)
%105 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.36, i64 0, i64 0))
%106 = call i32 @bzero(i8* %6, i32 32)
%107 = load i32, i32* @stdin
%108 = call i32* @fgets(i8* %6, i32 31, i32 %107)
%109 = icmp eq i32* %108, null
br i1 %109, label %110, label %112
110: ; preds = %103
%111 = call i32 @exit(i32 -1)
unreachable
112: ; preds = %103
%113 = call i32 @strlen(i8* %6)
%114 = call i32 @strncpy(i8* %5, i8* %6, i32 %113)
%115 = call i32 @strlen(i8* %6)
%116 = add nsw i32 %115, -1
%117 = sext i32 %116 to i64
%118 = getelementptr inbounds [32 x i8], [32 x i8]* %3, i64 0, i64 %117
store i8 0, i8* %118
%119 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([118 x i8], [118 x i8]* @str.29, i64 0, i64 0))
%120 = load i32, i32* @stdin
%121 = call i32* @fgets(i8* %6, i32 32, i32 %120)
%122 = icmp eq i32* %121, null
br i1 %122, label %123, label %125
123: ; preds = %112
%124 = call i32 @exit(i32 -1)
unreachable
125: ; preds = %112
%126 = call i32 @strlen(i8* %6)
%127 = call i8* @malloc(i32 %126)
%128 = call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %127, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* %6)
%129 = call i32 @manageWifi(i32 %104, i8* %5, i8* %127)
br label %251
130: ; preds = %90
%131 = load i8*, i8** %14
%132 = tail call i64 @strcmp(i8* %131, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%133 = icmp eq i64 %132, 0
br i1 %133, label %134, label %160
134: ; preds = %130
%135 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str, i64 0, i64 0))
%136 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.35, i64 0, i64 0))
%137 = call i32 @bzero(i8* %6, i32 32)
%138 = load i32, i32* @stdin
%139 = call i32* @fgets(i8* %6, i32 31, i32 %138)
%140 = icmp eq i32* %139, null
br i1 %140, label %141, label %143
141: ; preds = %134
%142 = call i32 @exit(i32 -1)
unreachable
143: ; preds = %134
%144 = call i32 @atoi(i8* %6)
%145 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.36, i64 0, i64 0))
%146 = call i32 @bzero(i8* %6, i32 32)
%147 = load i32, i32* @stdin
%148 = call i32* @fgets(i8* %6, i32 31, i32 %147)
%149 = icmp eq i32* %148, null
br i1 %149, label %150, label %152
150: ; preds = %143
%151 = call i32 @exit(i32 -1)
unreachable
152: ; preds = %143
%153 = call i32 @strlen(i8* %6)
%154 = call i32 @strncpy(i8* %5, i8* %6, i32 %153)
%155 = call i32 @strlen(i8* %6)
%156 = add nsw i32 %155, -1
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [32 x i8], [32 x i8]* %3, i64 0, i64 %157
store i8 0, i8* %158
%159 = call i32 @stopDurip(i32 %144, i8* %5, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
br label %251
160: ; preds = %130
%161 = load i8*, i8** %14
%162 = tail call i64 @strcmp(i8* %161, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.16, i64 0, i64 0))
%163 = icmp eq i64 %162, 0
br i1 %163, label %164, label %179
164: ; preds = %160
%165 = getelementptr inbounds i8*, i8** %1, i64 2
%166 = load i8*, i8** %165
%167 = tail call i32 @atoi(i8* %166)
%168 = getelementptr inbounds i8*, i8** %1, i64 3
%169 = load i8*, i8** %168
%170 = call i32 @strcpy(i8* %5, i8* %169)
%171 = getelementptr inbounds i8*, i8** %1, i64 4
%172 = load i8*, i8** %171
%173 = call i32 @strlen(i8* %172)
%174 = shl i32 %173, 3
%175 = call i8* @malloc(i32 %174)
%176 = load i8*, i8** %171
%177 = call i32 @strcpy(i8* %175, i8* %176)
%178 = call i32 @startFunction(i32 %167, i8* %5, i8* %175)
br label %251
179: ; preds = %160
%180 = load i8*, i8** %14
%181 = tail call i64 @strcmp(i8* %180, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0))
%182 = icmp eq i64 %181, 0
br i1 %182, label %183, label %191
183: ; preds = %179
%184 = getelementptr inbounds i8*, i8** %1, i64 2
%185 = load i8*, i8** %184
%186 = tail call i32 @atoi(i8* %185)
%187 = getelementptr inbounds i8*, i8** %1, i64 3
%188 = load i8*, i8** %187
%189 = call i32 @strcpy(i8* %5, i8* %188)
%190 = call i32 @stopDurip(i32 %186, i8* %5, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
br label %251
191: ; preds = %179
%192 = load i8*, i8** %14
%193 = tail call i64 @strcmp(i8* %192, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0))
%194 = icmp eq i64 %193, 0
br i1 %194, label %195, label %209
195: ; preds = %191
%196 = getelementptr inbounds i8*, i8** %1, i64 2
%197 = load i8*, i8** %196
%198 = tail call i32 @atoi(i8* %197)
%199 = getelementptr inbounds i8*, i8** %1, i64 3
%200 = load i8*, i8** %199
%201 = call i32 @strcpy(i8* %5, i8* %200)
%202 = getelementptr inbounds i8*, i8** %1, i64 4
%203 = load i8*, i8** %202
%204 = call i32 @atoi(i8* %203)
%205 = call i32 @strlen(i8* %6)
%206 = call i8* @malloc(i32 %205)
%207 = call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %206, i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i64 0, i64 0), i32 %204)
%208 = call i32 @manageWifi(i32 %198, i8* %5, i8* %206)
br label %251
209: ; preds = %191
%210 = load i8*, i8** %14
%211 = tail call i64 @strcmp(i8* %210, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.20, i64 0, i64 0))
%212 = icmp eq i64 %211, 0
br i1 %212, label %213, label %227
213: ; preds = %209
%214 = getelementptr inbounds i8*, i8** %1, i64 2
%215 = load i8*, i8** %214
%216 = tail call i32 @atoi(i8* %215)
%217 = getelementptr inbounds i8*, i8** %1, i64 3
%218 = load i8*, i8** %217
%219 = call i32 @strcpy(i8* %5, i8* %218)
%220 = getelementptr inbounds i8*, i8** %1, i64 4
%221 = load i8*, i8** %220
%222 = call i32 @atoi(i8* %221)
%223 = call i32 @strlen(i8* %6)
%224 = call i8* @malloc(i32 %223)
%225 = call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %224, i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.21, i64 0, i64 0), i32 %222)
%226 = call i32 @manageWifi(i32 %216, i8* %5, i8* %224)
br label %251
227: ; preds = %209
%228 = load i8*, i8** %14
%229 = tail call i64 @strcmp(i8* %228, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.22, i64 0, i64 0))
%230 = icmp eq i64 %229, 0
br i1 %230, label %231, label %246
231: ; preds = %227
%232 = getelementptr inbounds i8*, i8** %1, i64 2
%233 = load i8*, i8** %232
%234 = tail call i32 @atoi(i8* %233)
%235 = getelementptr inbounds i8*, i8** %1, i64 3
%236 = load i8*, i8** %235
%237 = call i32 @strcpy(i8* %5, i8* %236)
%238 = getelementptr inbounds i8*, i8** %1, i64 4
%239 = load i8*, i8** %238
%240 = call i32 @strlen(i8* %239)
%241 = shl nsw i32 %240, 1
%242 = call i8* @malloc(i32 %241)
%243 = load i8*, i8** %238
%244 = call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %242, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8* %243)
%245 = call i32 @startFunction(i32 %234, i8* %5, i8* %242)
br label %251
246: ; preds = %227
%247 = load i32, i32* @stderr
%248 = load i8*, i8** %1
%249 = tail call i32 @fprintf(i32 %247, i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str, i64 0, i64 0), i8* %248)
%250 = tail call i32 @exit(i32 0)
unreachable
251: ; preds = %88, %152, %183, %213, %231, %195, %164, %125, %50
ret i32 0
}