// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/input.c
// Function: input_set_root
int input_set_root(char* input_file,
                   struct file_content** ppfc_input,
                   struct file_content * pfc_setroot,
                   ErrorMsg errmsg) {

  /** Define local variables */
  int flag1, filenum, iextens;
  int index_root_in_fc_input = -1;
  int overwrite_root;
  int found_filenum;

  /* The filename of the output root INCLUDING 'output/' */
  FileArg outfname;

  /* Temporary variables for parser reading etc. */
  char tmp_file[_ARGUMENT_LENGTH_MAX_+26]; // 26 is enough to extend the file name [...] with the
                                           // characters "output/[...]%02d_parameters.ini" (as done below)
  struct file_content fc_root;             // Temporary structure with only the root name

  FileArg string1;                         //Is ignored

  int n_extensions = 7;                    //Keep this as the length of the below list
  char* output_extensions[7] = {"cl.dat","pk.dat","tk.dat","parameters.ini","background.dat","thermodynamics.dat","perturbations_k0.dat"};

  /* Shorthand notation */
  struct file_content * pfc = *ppfc_input;


  /** Check whether a root name has been set, and wether overwrite_root is true */
  class_call(parser_read_string(pfc,"root",&string1,&flag1,errmsg),
             errmsg, errmsg);

  /* Set overwrite_root */
  overwrite_root = _FALSE_;
  class_read_flag("overwrite_root",overwrite_root);

  /** If root has not been set, use the default of 'output/<this-filename>' */
  if (flag1 == _FALSE_){
    memcpy(outfname, "output/", 7);
    memcpy(outfname+7, input_file, strlen(input_file)-4);
    outfname[7+strlen(input_file)-4] = '\0';
  }
  /* Check here for the index of the 'root' field in case it was set in fc_input */
  else{
    for (index_root_in_fc_input=0;index_root_in_fc_input<pfc->size;++index_root_in_fc_input){
      if (strcmp(pfc->name[index_root_in_fc_input],"root") == 0){
        strcpy(outfname,pfc->value[index_root_in_fc_input]);
        break;
      }
    }
  }

  /** If we don't want to overwrite the root name, check now for the existence of output for the given root name + N */
  if (overwrite_root == _FALSE_){

    /* Assume files exist, until proven otherwise */
    found_filenum = _TRUE_;
    /** For each 'filenum', test if it exists. Only stop if it has not been found. */
    for (filenum = 0; filenum < _N_FILEROOT_ && found_filenum; filenum++){
      /* No file has been found yet */
      found_filenum = _FALSE_;
      for (iextens = 0; iextens < n_extensions; ++iextens){
        class_sprintf(tmp_file,"%s%02d_%s", outfname, filenum, output_extensions[iextens]);
        if (file_exists(tmp_file) == _TRUE_){
          /* Found a file, the outer loop is forced to keep searching */
          found_filenum = _TRUE_;
        }
      }
      /* Didn't find a file. This is the correct number. Break the loop. */
      if (found_filenum == _FALSE_){
        break;
      }
    }
    /* If no root was found, add root through the parser routine */
    if (flag1 == _FALSE_){
      class_call(parser_init(&fc_root,
                             1,
                             pfc->filename,
                             errmsg),
                 errmsg,errmsg);
      class_sprintf(fc_root.name[0],"root");
      class_sprintf(fc_root.value[0],"%s%02d_",outfname,filenum);
      fc_root.read[0] = _FALSE_;
      class_call(parser_cat(pfc,
                            &fc_root,
                            pfc_setroot,
                            errmsg),
                 errmsg,
                 errmsg);
      class_call(parser_free(pfc),
                 errmsg,
                 errmsg);
      class_call(parser_free(&fc_root),
                 errmsg,
                 errmsg);
      (*ppfc_input) = pfc_setroot;
    }
    /* If root was found, set the index in the fc_input struct */
    else{
      class_sprintf(pfc->value[index_root_in_fc_input],"%s%02d_",outfname,filenum);
      (*ppfc_input) = pfc;
    }
  }

  /** If we do want to overwrite, just take the given root name */
  else{
    /* If no root was found, add root through the parser routine */
    if (flag1 == _FALSE_){
      class_call(parser_init(&fc_root,
                             1,
                             pfc->filename,
                             errmsg),
                 errmsg,errmsg);
      class_sprintf(fc_root.name[0],"root");
      class_sprintf(fc_root.value[0],"%s_",outfname);
      fc_root.read[0] = _FALSE_;
      class_call(parser_cat(pfc,
                            &fc_root,
                            pfc_setroot,
                            errmsg),
                 errmsg,
                 errmsg);
      class_call(parser_free(pfc),
                 errmsg,
                 errmsg);
      class_call(parser_free(&fc_root),
                 errmsg,
                 errmsg);
      (*ppfc_input) = pfc_setroot;
    }
    /* If root was found, set the index in the fc_input struct */
    else{
      class_sprintf(pfc->value[index_root_in_fc_input],"%s_",outfname);
      (*ppfc_input) = pfc;
    }
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x7158, %rsp           # imm = 0x7158
movq %rdi, 0x7148(%rsp)
movq %rsi, 0x7140(%rsp)
movq %rdx, 0x7138(%rsp)
movq %rcx, 0x7130(%rsp)
movl $0xffffffff, 0x7120(%rsp) # imm = 0xFFFFFFFF
movl $0x7, 0x64bc(%rsp)
leaq 0x6480(%rsp), %rdi
leaq 0x1e4cc4(%rip), %rsi    # 0x2425f0
movl $0x38, %edx
callq 0x8300
movq 0x7140(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x6478(%rsp)
movq 0x6478(%rsp), %rdi
movq 0x7130(%rsp), %r8
leaq 0x17a696(%rip), %rsi    # 0x1d7ff6
leaq 0x64c0(%rsp), %rdx
leaq 0x712c(%rsp), %rcx
callq 0x38b80
cmpl $0x1, %eax
jne 0x5d9d9
leaq 0x5c70(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174a47(%rip), %rsi    # 0x1d23d8
leaq 0x179258(%rip), %rdx    # 0x1d6bf0
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x5c70(%rsp), %r8
leaq 0x17467e(%rip), %rsi    # 0x1d2034
leaq 0x179269(%rip), %rdx    # 0x1d6c26
movl $0xf9, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
movl $0x0, 0x711c(%rsp)
movq 0x6478(%rsp), %rdi
movq 0x7130(%rsp), %r8
leaq 0x17923a(%rip), %rsi    # 0x1d6c35
leaq 0x5870(%rsp), %rdx
leaq 0x586c(%rsp), %rcx
callq 0x38b80
cmpl $0x1, %eax
jne 0x5da74
leaq 0x5060(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x1749ac(%rip), %rsi    # 0x1d23d8
leaq 0x179211(%rip), %rdx    # 0x1d6c44
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x5060(%rsp), %r8
leaq 0x1745e3(%rip), %rsi    # 0x1d2034
leaq 0x1791ce(%rip), %rdx    # 0x1d6c26
movl $0xfd, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
cmpl $0x1, 0x586c(%rsp)
jne 0x5db7c
leaq 0x5870(%rsp), %rdi
movl $0x79, %esi
callq 0x5bcd0
cmpl $0x0, %eax
jne 0x5dab0
leaq 0x5870(%rsp), %rdi
movl $0x59, %esi
callq 0x5bcd0
cmpl $0x0, %eax
je 0x5dac0
movl $0x1, 0x711c(%rsp)
jmp 0x5db7a
leaq 0x5870(%rsp), %rdi
movl $0x6e, %esi
callq 0x5bcd0
cmpl $0x0, %eax
jne 0x5daee
leaq 0x5870(%rsp), %rdi
movl $0x4e, %esi
callq 0x5bcd0
cmpl $0x0, %eax
je 0x5dafb
movl $0x0, 0x711c(%rsp)
jmp 0x5db78
leaq 0x4860(%rsp), %rdi
leaq 0x5870(%rsp), %rdx
leaq 0x17917a(%rip), %rsi    # 0x1d6c8c
leaq 0x17911c(%rip), %rcx    # 0x1d6c35
movb $0x0, %al
callq 0x5b9c0
leaq 0x4060(%rsp), %rdi
leaq 0x4860(%rsp), %rdx
leaq 0x174a36(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x4060(%rsp), %r8
leaq 0x1744df(%rip), %rsi    # 0x1d2034
leaq 0x1790ca(%rip), %rdx    # 0x1d6c26
movl $0xfd, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
jmp 0x5db7a
jmp 0x5db7c
jmp 0x5db7e
cmpl $0x0, 0x712c(%rsp)
jne 0x5dc18
movl 0x17912a(%rip), %eax    # 0x1d6cbc
movl %eax, 0x6d10(%rsp)
movw 0x179120(%rip), %ax     # 0x1d6cc0
movw %ax, 0x6d14(%rsp)
movb 0x179114(%rip), %al     # 0x1d6cc2
movb %al, 0x6d16(%rsp)
leaq 0x6d10(%rsp), %rax
addq $0x7, %rax
movq %rax, 0x8(%rsp)
movq 0x7148(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x7148(%rsp), %rdi
callq 0x8190
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
subq $0x4, %rdx
callq 0x8300
movq 0x7148(%rsp), %rdi
callq 0x8190
addq $0x7, %rax
subq $0x4, %rax
movb $0x0, 0x6d10(%rsp,%rax)
jmp 0x5dca4
movl $0x0, 0x7120(%rsp)
movl 0x7120(%rsp), %eax
movq 0x6478(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x5dca2
movq 0x6478(%rsp), %rax
movq 0x10(%rax), %rdi
movslq 0x7120(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rdi
leaq 0x17a39d(%rip), %rsi    # 0x1d7ff6
callq 0x84b0
cmpl $0x0, %eax
jne 0x5dc8d
leaq 0x6d10(%rsp), %rdi
movq 0x6478(%rsp), %rax
movq 0x18(%rax), %rsi
movslq 0x7120(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rsi
callq 0x8370
jmp 0x5dca2
jmp 0x5dc8f
movl 0x7120(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x7120(%rsp)
jmp 0x5dc23
jmp 0x5dca4
cmpl $0x0, 0x711c(%rsp)
jne 0x5e14d
movl $0x1, 0x7118(%rsp)
movl $0x0, 0x7128(%rsp)
xorl %eax, %eax
cmpl $0x64, 0x7128(%rsp)
movb %al, 0x7(%rsp)
jge 0x5dce7
cmpl $0x0, 0x7118(%rsp)
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x5dcf4
jmp 0x5ddf8
movl $0x0, 0x7118(%rsp)
movl $0x0, 0x7124(%rsp)
movl 0x7124(%rsp), %eax
cmpl 0x64bc(%rsp), %eax
jge 0x5ddd4
jmp 0x5dd20
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
movslq 0x7124(%rsp), %rax
movq 0x6480(%rsp,%rax,8), %r9
xorl %eax, %eax
movl %eax, %esi
leaq 0x178f79(%rip), %rdx    # 0x1d6cc4
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x405c(%rsp)
leaq 0x68f0(%rsp), %rdi
movl 0x405c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
movslq 0x7124(%rsp), %rax
movq 0x6480(%rsp,%rax,8), %r9
leaq 0x178f2c(%rip), %rdx    # 0x1d6cc4
movb $0x0, %al
callq 0x8540
leaq 0x68f0(%rsp), %rdi
callq 0x5bc10
cmpl $0x1, %eax
jne 0x5ddbc
movl $0x1, 0x7118(%rsp)
jmp 0x5ddbe
movl 0x7124(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x7124(%rsp)
jmp 0x5dd0a
cmpl $0x0, 0x7118(%rsp)
jne 0x5dde0
jmp 0x5ddf8
jmp 0x5dde2
movl 0x7128(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x7128(%rsp)
jmp 0x5dcc8
cmpl $0x0, 0x712c(%rsp)
jne 0x5e0c1
movq 0x6478(%rsp), %rax
movq (%rax), %rdx
movq 0x7130(%rsp), %rcx
leaq 0x68c8(%rsp), %rdi
movl $0x1, %esi
callq 0x37fb0
cmpl $0x1, %eax
jne 0x5de8f
leaq 0x3850(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174591(%rip), %rsi    # 0x1d23d8
leaq 0x178e80(%rip), %rdx    # 0x1d6cce
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x3850(%rsp), %r8
leaq 0x1741c8(%rip), %rsi    # 0x1d2034
leaq 0x178db3(%rip), %rdx    # 0x1d6c26
movl $0x12a, %ecx            # imm = 0x12A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
jmp 0x5de91
xorl %eax, %eax
movl %eax, %esi
leaq 0x17a15a(%rip), %rdx    # 0x1d7ff6
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x384c(%rsp)
movq 0x68d8(%rsp), %rdi
movl 0x384c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x17a12d(%rip), %rdx    # 0x1d7ff6
movb $0x0, %al
callq 0x8540
jmp 0x5ded2
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
xorl %eax, %eax
movl %eax, %esi
leaq 0x178e11(%rip), %rdx    # 0x1d6cfe
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x3848(%rsp)
movq 0x68e0(%rsp), %rdi
movl 0x3848(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
leaq 0x178dd4(%rip), %rdx    # 0x1d6cfe
movb $0x0, %al
callq 0x8540
movq 0x68e8(%rsp), %rax
movw $0x0, (%rax)
movq 0x6478(%rsp), %rdi
movq 0x7138(%rsp), %rdx
movq 0x7130(%rsp), %rcx
leaq 0x68c8(%rsp), %rsi
callq 0x39c00
cmpl $0x1, %eax
jne 0x5dfc7
leaq 0x3040(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174459(%rip), %rsi    # 0x1d23d8
leaq 0x178d80(%rip), %rdx    # 0x1d6d06
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x3040(%rsp), %r8
leaq 0x174090(%rip), %rsi    # 0x1d2034
leaq 0x178c7b(%rip), %rdx    # 0x1d6c26
movl $0x133, %ecx            # imm = 0x133
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
movq 0x6478(%rsp), %rdi
callq 0x382b0
cmpl $0x1, %eax
jne 0x5e038
leaq 0x2840(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x1743e8(%rip), %rsi    # 0x1d23d8
leaq 0x178d3e(%rip), %rdx    # 0x1d6d35
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x2840(%rsp), %r8
leaq 0x17401f(%rip), %rsi    # 0x1d2034
leaq 0x178c0a(%rip), %rdx    # 0x1d6c26
movl $0x136, %ecx            # imm = 0x136
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
leaq 0x68c8(%rsp), %rdi
callq 0x382b0
cmpl $0x1, %eax
jne 0x5e0a9
leaq 0x2040(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174377(%rip), %rsi    # 0x1d23d8
leaq 0x178cde(%rip), %rdx    # 0x1d6d46
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x2040(%rsp), %r8
leaq 0x173fae(%rip), %rsi    # 0x1d2034
leaq 0x178b99(%rip), %rdx    # 0x1d6c26
movl $0x139, %ecx            # imm = 0x139
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
movq 0x7138(%rsp), %rcx
movq 0x7140(%rsp), %rax
movq %rcx, (%rax)
jmp 0x5e148
jmp 0x5e0c3
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
xorl %eax, %eax
movl %eax, %esi
leaq 0x178c20(%rip), %rdx    # 0x1d6cfe
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x203c(%rsp)
movq 0x6478(%rsp), %rax
movq 0x18(%rax), %rdi
movslq 0x7120(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rdi
movl 0x203c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x6d10(%rsp), %rcx
movl 0x7128(%rsp), %r8d
leaq 0x178bd0(%rip), %rdx    # 0x1d6cfe
movb $0x0, %al
callq 0x8540
movq 0x6478(%rsp), %rcx
movq 0x7140(%rsp), %rax
movq %rcx, (%rax)
jmp 0x5e470
cmpl $0x0, 0x712c(%rsp)
jne 0x5e3fd
movq 0x6478(%rsp), %rax
movq (%rax), %rdx
movq 0x7130(%rsp), %rcx
leaq 0x68c8(%rsp), %rdi
movl $0x1, %esi
callq 0x37fb0
cmpl $0x1, %eax
jne 0x5e1e4
leaq 0x1830(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x17423c(%rip), %rsi    # 0x1d23d8
leaq 0x178b2b(%rip), %rdx    # 0x1d6cce
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x1830(%rsp), %r8
leaq 0x173e73(%rip), %rsi    # 0x1d2034
leaq 0x178a5e(%rip), %rdx    # 0x1d6c26
movl $0x14b, %ecx            # imm = 0x14B
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
jmp 0x5e1e6
xorl %eax, %eax
movl %eax, %esi
leaq 0x179e05(%rip), %rdx    # 0x1d7ff6
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x182c(%rsp)
movq 0x68d8(%rsp), %rdi
movl 0x182c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x179dd8(%rip), %rdx    # 0x1d7ff6
movb $0x0, %al
callq 0x8540
jmp 0x5e227
leaq 0x6d10(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0x178b22(%rip), %rdx    # 0x1d6d5c
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x1828(%rsp)
movq 0x68e0(%rsp), %rdi
movl 0x1828(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x6d10(%rsp), %rcx
leaq 0x178aed(%rip), %rdx    # 0x1d6d5c
movb $0x0, %al
callq 0x8540
movq 0x68e8(%rsp), %rax
movw $0x0, (%rax)
movq 0x6478(%rsp), %rdi
movq 0x7138(%rsp), %rdx
movq 0x7130(%rsp), %rcx
leaq 0x68c8(%rsp), %rsi
callq 0x39c00
cmpl $0x1, %eax
jne 0x5e30c
leaq 0x1020(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174114(%rip), %rsi    # 0x1d23d8
leaq 0x178a3b(%rip), %rdx    # 0x1d6d06
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x1020(%rsp), %r8
leaq 0x173d4b(%rip), %rsi    # 0x1d2034
leaq 0x178936(%rip), %rdx    # 0x1d6c26
movl $0x154, %ecx            # imm = 0x154
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
movq 0x6478(%rsp), %rdi
callq 0x382b0
cmpl $0x1, %eax
jne 0x5e37d
leaq 0x820(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x1740a3(%rip), %rsi    # 0x1d23d8
leaq 0x1789f9(%rip), %rdx    # 0x1d6d35
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x820(%rsp), %r8
leaq 0x173cda(%rip), %rsi    # 0x1d2034
leaq 0x1788c5(%rip), %rdx    # 0x1d6c26
movl $0x157, %ecx            # imm = 0x157
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
leaq 0x68c8(%rsp), %rdi
callq 0x382b0
cmpl $0x1, %eax
jne 0x5e3e8
leaq 0x20(%rsp), %rdi
movq 0x7130(%rsp), %rcx
leaq 0x174035(%rip), %rsi    # 0x1d23d8
leaq 0x17899c(%rip), %rdx    # 0x1d6d46
movb $0x0, %al
callq 0x5b9c0
movq 0x7130(%rsp), %rdi
leaq 0x20(%rsp), %r8
leaq 0x173c6f(%rip), %rsi    # 0x1d2034
leaq 0x17885a(%rip), %rdx    # 0x1d6c26
movl $0x15a, %ecx            # imm = 0x15A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7154(%rsp)
jmp 0x5e47b
movq 0x7138(%rsp), %rcx
movq 0x7140(%rsp), %rax
movq %rcx, (%rax)
jmp 0x5e46e
jmp 0x5e3ff
leaq 0x6d10(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0x17894a(%rip), %rdx    # 0x1d6d5c
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x1c(%rsp)
movq 0x6478(%rsp), %rax
movq 0x18(%rax), %rdi
movslq 0x7120(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rdi
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x6d10(%rsp), %rcx
leaq 0x178908(%rip), %rdx    # 0x1d6d5c
movb $0x0, %al
callq 0x8540
movq 0x6478(%rsp), %rcx
movq 0x7140(%rsp), %rax
movq %rcx, (%rax)
jmp 0x5e470
movl $0x0, 0x7154(%rsp)
movl 0x7154(%rsp), %eax
addq $0x7158, %rsp           # imm = 0x7158
retq
nopw (%rax,%rax)