// File: /workspace/github_c_makefile_star2_O0/otrtool[P]otrtool/src/main.c
// Function: decryptFile
void decryptFile() {
  int fd;
  char *headerFN;
  struct stat st;
  FILE *destfile;

  if (opts.destfile == NULL) {
    headerFN = queryGetParam(header, "FN");
    if (opts.destdir != NULL) {
      destfilename = malloc(strlen(opts.destdir) + strlen(headerFN) + 2);
      strcpy(destfilename, opts.destdir);
      strcat(destfilename, "/");
      strcat(destfilename, headerFN);
      free(headerFN);
    }
    else {
      destfilename = headerFN;
    }
  }
  else {
    destfilename = strdup(opts.destfile);
  }
  
  if (strcmp(destfilename, "-") == 0) {
    if (isatty(1)) ERROR("error: cowardly refusing to output to a terminal");
    fd = 1;
  }
  else
    fd = open(destfilename, O_WRONLY|O_CREAT|O_EXCL, CREAT_MODE);
  if (fd < 0 && errno == EEXIST) {
    if (stat(destfilename, &st) != 0 || S_ISREG(st.st_mode)) {
      if (!interactive) ERROR("Destination file exists: %s", destfilename);
      fprintf(stderr, "Destination file exists: %s\nType y to overwrite: ",
        destfilename);
      if (fgetc(ttyfile) != 'y') exit(EXIT_FAILURE);
      while (fgetc(ttyfile) != '\n');
      fd = open(destfilename, O_WRONLY|O_TRUNC, 0);
    }
    else
      fd = open(destfilename, O_WRONLY, 0);
  }
  if (fd < 0)
    PERROR("Error opening destination file: %s", destfilename);
  if ((destfile = fdopen(fd, "wb")) == NULL)
    PERROR("fdopen");
  
  fputs("Decrypting and verifying...\n", stderr); // -----------------------
  
  void *key = hex2bin(keyphrase);
  unsigned long long length = atoll(queryGetParam(header, "SZ")) - 522;
  unsigned long long position = 0;
  vfy_t vfy_in, vfy_out;
  bf_state_t blowfish;
  
  verifyFile_init(&vfy_in, 1);
  verifyFile_init(&vfy_out, 0);
  bf_init(&blowfish, key, 28);

  enum {
    N_WRK_MAX = MT ? 16 : 1,
    /* Maximum multithreading speedup should be around 6 to 7. In case the
       number of CPUs is unknown, rather have too many threads than too few. */
    N_WRK_DEFAULT = MT ? 8 : 1,
  };
  thread_t wrk_id[N_WRK_MAX];
  struct worker_info wrk_info[N_WRK_MAX];
  int n_wrk = N_WRK_DEFAULT;
  int i;

#ifdef _SC_NPROCESSORS_ONLN
  i = sysconf(_SC_NPROCESSORS_ONLN);
  if (opts.verbosity >= VERB_DEBUG)
    fprintf(stderr, "number of CPUs: %d\n", i);
  if (i > 0) n_wrk = MIN(i, N_WRK_DEFAULT);
#endif
  if (opts.n_threads > 0)
    n_wrk = MIN(opts.n_threads, N_WRK_MAX);
  if (opts.verbosity >= VERB_DEBUG) {
  #if MT
    fprintf(stderr, "number of worker threads: %d\n", n_wrk);
  #else
    fputs("multi-threading disabled at compile-time\n", stderr);
  #endif
  }

  /* Create worker threads */
  for (i=0; i < n_wrk; i++) {
    wrk_info[i].next = (i < n_wrk - 1) ? wrk_info + i + 1 : wrk_info;
    initSemaphore(&wrk_info[i].read_sema, 0);
    initSemaphore(&wrk_info[i].ivfy_sema, 0);
    initSemaphore(&wrk_info[i].ovfy_sema, 0);
    initSemaphore(&wrk_info[i].write_sema, 0);
    wrk_info[i].length = length;
    wrk_info[i].pposition = &position;
    wrk_info[i].file = file;
    wrk_info[i].destfile = destfile;
    wrk_info[i].vfy_inp = &vfy_in;
    wrk_info[i].vfy_outp = &vfy_out;
    wrk_info[i].blowfishp = &blowfish;
  }
  for (i=0; i < n_wrk; i++)
    wrk_id[i] = createThread(decryptFileWorker, &wrk_info[i]);

  /* Go! */
  postSemaphore(&wrk_info[0].read_sema);
  postSemaphore(&wrk_info[0].ivfy_sema);
  postSemaphore(&wrk_info[0].ovfy_sema);
  postSemaphore(&wrk_info[0].write_sema);

  /* Wait... */
  for (i=0; i < n_wrk; i++)
    joinThread(wrk_id[i]);

  for (i=0; i < n_wrk; i++) {
    destroySemaphore(&wrk_info[i].read_sema);
    destroySemaphore(&wrk_info[i].ivfy_sema);
    destroySemaphore(&wrk_info[i].ovfy_sema);
    destroySemaphore(&wrk_info[i].write_sema);
  }
  showProgress(1, 0);

  verifyFile_final(&vfy_in);
  verifyFile_final(&vfy_out);
  fputs("OK checksums from header match\n", stderr);
  
  if (fclose(destfile) != 0)
    PERROR("Error closing destination file.");

  if (opts.unlinkmode) {
    if (strcmp(filename, "-") != 0 &&
        stat(filename, &st) == 0 && S_ISREG(st.st_mode) &&
        strcmp(destfilename, "-") != 0 &&
        stat(destfilename, &st) == 0 && S_ISREG(st.st_mode)) {
      if (unlink(filename) != 0)
        PERROR("Cannot delete input file");
      else
        fputs("info: input file has been deleted\n", stderr);
    }
    else {
      fputs("Warning: Not deleting input file (input or "
          "output is not a regular file)\n", stderr);
    }
  }
  
  free(key);
  free(destfilename);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f00, %rsp           # imm = 0x1F00
cmpq $0x0, 0x57bd(%rip)      # 0xd2d0
jne 0x7bbe
movq 0x57d8(%rip), %rdi      # 0xd2f8
leaq 0x2917(%rip), %rsi      # 0xa43e
callq 0x49e0
movq %rax, -0x10(%rbp)
cmpq $0x0, 0x5790(%rip)      # 0xd2c8
je 0x7bb1
movq 0x5787(%rip), %rdi      # 0xd2c8
callq 0x20c0
movq %rax, -0x1ef0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x20c0
movq -0x1ef0(%rbp), %rdi
addq %rax, %rdi
addq $0x2, %rdi
callq 0x2300
movq %rax, 0x159d0(%rip)     # 0x1d540
movq 0x159c9(%rip), %rdi     # 0x1d540
movq 0x574a(%rip), %rsi      # 0xd2c8
callq 0x21e0
movq 0x159b6(%rip), %rdi     # 0x1d540
leaq 0x271a(%rip), %rsi      # 0xa2ab
callq 0x2420
movq 0x159a3(%rip), %rdi     # 0x1d540
movq -0x10(%rbp), %rsi
callq 0x2420
movq -0x10(%rbp), %rdi
callq 0x2280
jmp 0x7bbc
movq -0x10(%rbp), %rax
movq %rax, 0x15984(%rip)     # 0x1d540
jmp 0x7bd1
movq 0x570b(%rip), %rdi      # 0xd2d0
callq 0x2440
movq %rax, 0x1596f(%rip)     # 0x1d540
movq 0x15968(%rip), %rdi     # 0x1d540
leaq 0x2d34(%rip), %rsi      # 0xa913
callq 0x2320
cmpl $0x0, %eax
jne 0x7c55
movl $0x1, %edi
callq 0x2410
cmpl $0x0, %eax
je 0x7c4c
jmp 0x7bfa
movq 0x53d7(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2c0b(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x53bf(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2e92(%rip), %rsi      # 0xaab5
movb $0x0, %al
callq 0x2330
movq 0x53a7(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2bdb(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movl $0x1, %edi
callq 0x2290
movl $0x1, -0x4(%rbp)
jmp 0x7c70
movq 0x158e4(%rip), %rdi     # 0x1d540
movl $0xc1, %esi
movl $0x1a4, %edx            # imm = 0x1A4
movb $0x0, %al
callq 0x2140
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jge 0x7d9d
callq 0x2030
cmpl $0x11, (%rax)
jne 0x7d9d
movq 0x158b1(%rip), %rdi     # 0x1d540
leaq -0xa0(%rbp), %rsi
callq 0x21c0
cmpl $0x0, %eax
jne 0x7cb6
movl -0x88(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x7d83
cmpl $0x0, 0x55a3(%rip)      # 0xd260
jne 0x7d1a
jmp 0x7cc1
movq 0x5310(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2b44(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x52f8(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
movq 0x15856(%rip), %rdx     # 0x1d540
leaq 0x2df5(%rip), %rsi      # 0xaae6
movb $0x0, %al
callq 0x2330
movq 0x52d9(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2b0d(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movl $0x1, %edi
callq 0x2290
movq 0x52b7(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
movq 0x15815(%rip), %rdx     # 0x1d540
leaq 0x2dd0(%rip), %rsi      # 0xab02
movb $0x0, %al
callq 0x2330
movq 0x57e8(%rip), %rdi      # 0xd528
callq 0x23a0
cmpl $0x79, %eax
je 0x7d54
movl $0x1, %edi
callq 0x2290
jmp 0x7d56
movq 0x57cb(%rip), %rdi      # 0xd528
callq 0x23a0
cmpl $0xa, %eax
je 0x7d69
jmp 0x7d56
movq 0x157d0(%rip), %rdi     # 0x1d540
movl $0x201, %esi            # imm = 0x201
xorl %edx, %edx
movb $0x0, %al
callq 0x2140
movl %eax, -0x4(%rbp)
jmp 0x7d9b
movq 0x157b6(%rip), %rdi     # 0x1d540
movl $0x1, %esi
xorl %edx, %edx
movb $0x0, %al
callq 0x2140
movl %eax, -0x4(%rbp)
jmp 0x7d9d
cmpl $0x0, -0x4(%rbp)
jge 0x7e07
jmp 0x7da5
movq 0x522c(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2a60(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x5214(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
movq 0x15772(%rip), %rdx     # 0x1d540
leaq 0x2d5f(%rip), %rsi      # 0xab34
movb $0x0, %al
callq 0x2330
movq 0x51f5(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x29bc(%rip), %rsi      # 0xa7a9
movb $0x0, %al
callq 0x2330
xorl %eax, %eax
movl %eax, %edi
callq 0x2180
movl $0x1, %edi
callq 0x2290
movl -0x4(%rbp), %edi
leaq 0x2d46(%rip), %rsi      # 0xab57
callq 0x2210
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
jne 0x7e80
jmp 0x7e25
movq 0x51ac(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x29e0(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x5194(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2d0c(%rip), %rsi      # 0xab5a
movb $0x0, %al
callq 0x2330
movq 0x517c(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2943(%rip), %rsi      # 0xa7a9
movb $0x0, %al
callq 0x2330
xorl %eax, %eax
movl %eax, %edi
callq 0x2180
movl $0x1, %edi
callq 0x2290
movq 0x5151(%rip), %rax      # 0xcfd8
movq (%rax), %rsi
leaq 0x2cd0(%rip), %rdi      # 0xab61
callq 0x2240
movq 0x5693(%rip), %rdi      # 0xd530
callq 0x44a0
movq %rax, -0xb0(%rbp)
movq 0x5448(%rip), %rdi      # 0xd2f8
leaq 0x2b4e(%rip), %rsi      # 0xaa05
callq 0x49e0
movq %rax, %rdi
callq 0x2150
subq $0x20a, %rax            # imm = 0x20A
movq %rax, -0xb8(%rbp)
movq $0x0, -0xc0(%rbp)
leaq -0x16c(%rbp), %rdi
movl $0x1, %esi
callq 0x71c0
leaq -0x218(%rbp), %rdi
xorl %esi, %esi
callq 0x71c0
movq -0xb0(%rbp), %rsi
leaq -0x1260(%rbp), %rdi
movl $0x1c, %edx
callq 0x3a50
movl $0x8, -0x1ee4(%rbp)
movl $0x54, %edi
callq 0x2130
movl %eax, -0x1ee8(%rbp)
cmpl $0x1, 0x5370(%rip)      # 0xd2a4
jb 0x7f54
movq 0x509b(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
movl -0x1ee8(%rbp), %edx
leaq 0x2c31(%rip), %rsi      # 0xab7e
movb $0x0, %al
callq 0x2330
cmpl $0x0, -0x1ee8(%rbp)
jle 0x7f8d
cmpl $0x8, -0x1ee8(%rbp)
jge 0x7f74
movl -0x1ee8(%rbp), %eax
movl %eax, -0x1ef4(%rbp)
jmp 0x7f81
movl $0x8, %eax
movl %eax, -0x1ef4(%rbp)
jmp 0x7f81
movl -0x1ef4(%rbp), %eax
movl %eax, -0x1ee4(%rbp)
cmpl $0x0, 0x5344(%rip)      # 0xd2d8
jle 0x7fc6
cmpl $0x10, 0x533b(%rip)     # 0xd2d8
jge 0x7fad
movl 0x5333(%rip), %eax      # 0xd2d8
movl %eax, -0x1ef8(%rbp)
jmp 0x7fba
movl $0x10, %eax
movl %eax, -0x1ef8(%rbp)
jmp 0x7fba
movl -0x1ef8(%rbp), %eax
movl %eax, -0x1ee4(%rbp)
cmpl $0x1, 0x52d7(%rip)      # 0xd2a4
jb 0x7fed
movq 0x5002(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
movl -0x1ee4(%rbp), %edx
leaq 0x2bac(%rip), %rsi      # 0xab92
movb $0x0, %al
callq 0x2330
movl $0x0, -0x1ee8(%rbp)
movl -0x1ee8(%rbp), %eax
cmpl -0x1ee4(%rbp), %eax
jge 0x821d
movl -0x1ee8(%rbp), %eax
movl -0x1ee4(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x8043
leaq -0x1ee0(%rbp), %rax
movslq -0x1ee8(%rbp), %rcx
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
addq $0xc0, %rax
movq %rax, -0x1f00(%rbp)
jmp 0x8051
leaq -0x1ee0(%rbp), %rax
movq %rax, -0x1f00(%rbp)
movq -0x1f00(%rbp), %rcx
movslq -0x1ee8(%rbp), %rdx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x8, %rdi
xorl %esi, %esi
callq 0x5360
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x28, %rdi
xorl %esi, %esi
callq 0x5360
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x48, %rdi
xorl %esi, %esi
callq 0x5360
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x68, %rdi
xorl %esi, %esi
callq 0x5360
movq -0xb8(%rbp), %rcx
movslq -0x1ee8(%rbp), %rdx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x88(%rax)
movslq -0x1ee8(%rbp), %rcx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
leaq -0xc0(%rbp), %rcx
movq %rcx, 0x90(%rax)
movq 0x518e(%rip), %rcx      # 0xd2e0
movslq -0x1ee8(%rbp), %rdx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x98(%rax)
movq -0xa8(%rbp), %rcx
movslq -0x1ee8(%rbp), %rdx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0xa0(%rax)
movslq -0x1ee8(%rbp), %rcx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
leaq -0x16c(%rbp), %rcx
movq %rcx, 0xa8(%rax)
movslq -0x1ee8(%rbp), %rcx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
leaq -0x218(%rbp), %rcx
movq %rcx, 0xb0(%rax)
movslq -0x1ee8(%rbp), %rcx
leaq -0x1ee0(%rbp), %rax
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
leaq -0x1260(%rbp), %rcx
movq %rcx, 0xb8(%rax)
movl -0x1ee8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ee8(%rbp)
jmp 0x7ff7
movl $0x0, -0x1ee8(%rbp)
movl -0x1ee8(%rbp), %eax
cmpl -0x1ee4(%rbp), %eax
jge 0x827c
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rsi
imulq $0xc0, %rax, %rax
addq %rax, %rsi
leaq -0xab4(%rip), %rdi      # 0x77a0
callq 0x5210
movq %rax, %rcx
movslq -0x1ee8(%rbp), %rax
movq %rcx, -0x12e0(%rbp,%rax,8)
movl -0x1ee8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ee8(%rbp)
jmp 0x8227
leaq -0x1ee0(%rbp), %rdi
addq $0x8, %rdi
callq 0x5520
leaq -0x1ee0(%rbp), %rdi
addq $0x28, %rdi
callq 0x5520
leaq -0x1ee0(%rbp), %rdi
addq $0x48, %rdi
callq 0x5520
leaq -0x1ee0(%rbp), %rdi
addq $0x68, %rdi
callq 0x5520
movl $0x0, -0x1ee8(%rbp)
movl -0x1ee8(%rbp), %eax
cmpl -0x1ee4(%rbp), %eax
jge 0x82f9
movslq -0x1ee8(%rbp), %rax
movq -0x12e0(%rbp,%rax,8), %rdi
callq 0x52c0
movl -0x1ee8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ee8(%rbp)
jmp 0x82c6
movl $0x0, -0x1ee8(%rbp)
movl -0x1ee8(%rbp), %eax
cmpl -0x1ee4(%rbp), %eax
jge 0x83ad
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x8, %rdi
callq 0x53f0
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x28, %rdi
callq 0x53f0
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x48, %rdi
callq 0x53f0
movslq -0x1ee8(%rbp), %rax
leaq -0x1ee0(%rbp), %rdi
imulq $0xc0, %rax, %rax
addq %rax, %rdi
addq $0x68, %rdi
callq 0x53f0
movl -0x1ee8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ee8(%rbp)
jmp 0x8303
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5050
leaq -0x16c(%rbp), %rdi
callq 0x73c0
leaq -0x218(%rbp), %rdi
callq 0x73c0
movq 0x4bfe(%rip), %rax      # 0xcfd8
movq (%rax), %rsi
leaq 0x27cc(%rip), %rdi      # 0xabb0
callq 0x2240
movq -0xa8(%rbp), %rdi
callq 0x21f0
cmpl $0x0, %eax
je 0x8457
jmp 0x83fc
movq 0x4bd5(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2409(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x4bbd(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x27ab(%rip), %rsi      # 0xabd0
movb $0x0, %al
callq 0x2330
movq 0x4ba5(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x236c(%rip), %rsi      # 0xa7a9
movb $0x0, %al
callq 0x2330
xorl %eax, %eax
movl %eax, %edi
callq 0x2180
movl $0x1, %edi
callq 0x2290
cmpl $0x0, 0x4e4e(%rip)      # 0xd2ac
je 0x859e
movq 0x50cd(%rip), %rdi      # 0xd538
leaq 0x24a1(%rip), %rsi      # 0xa913
callq 0x2320
cmpl $0x0, %eax
je 0x8586
movq 0x50b1(%rip), %rdi      # 0xd538
leaq -0xa0(%rbp), %rsi
callq 0x21c0
cmpl $0x0, %eax
jne 0x8586
movl -0x88(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x8586
movq 0x15087(%rip), %rdi     # 0x1d540
leaq 0x2453(%rip), %rsi      # 0xa913
callq 0x2320
cmpl $0x0, %eax
je 0x8586
movq 0x1506b(%rip), %rdi     # 0x1d540
leaq -0xa0(%rbp), %rsi
callq 0x21c0
cmpl $0x0, %eax
jne 0x8586
movl -0x88(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x8586
movq 0x5031(%rip), %rdi      # 0xd538
callq 0x20e0
cmpl $0x0, %eax
je 0x856e
jmp 0x8513
movq 0x4abe(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x22f2(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2330
movq 0x4aa6(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x26b4(%rip), %rsi      # 0xabf0
movb $0x0, %al
callq 0x2330
movq 0x4a8e(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
leaq 0x2255(%rip), %rsi      # 0xa7a9
movb $0x0, %al
callq 0x2330
xorl %eax, %eax
movl %eax, %edi
callq 0x2180
movl $0x1, %edi
callq 0x2290
movq 0x4a63(%rip), %rax      # 0xcfd8
movq (%rax), %rsi
leaq 0x268a(%rip), %rdi      # 0xac09
callq 0x2240
jmp 0x859c
movq 0x4a4b(%rip), %rax      # 0xcfd8
movq (%rax), %rsi
leaq 0x2695(%rip), %rdi      # 0xac2c
callq 0x2240
jmp 0x859e
movq -0xb0(%rbp), %rdi
callq 0x2280
movq 0x14f8f(%rip), %rdi     # 0x1d540
callq 0x2280
addq $0x1f00, %rsp           # imm = 0x1F00
popq %rbp
retq
nop