// File: /workspace/github_c_makefile_star2_O2/ataradov[P]edbg/edbg.c
// Function: main
int main(int argc, char **argv)
{
  debugger_t debuggers[MAX_DEBUGGERS] = {0};
  int n_debuggers = 0;
  int debugger = -1;
  target_ops_t *target_ops;
  bool active_actions;

  parse_command_line(argc, argv);

  active_actions = g_target_options.unlock || g_target_options.erase ||
      g_target_options.program || g_target_options.verify || g_target_options.lock ||
      g_target_options.read || g_target_options.fuse_cmd;

  if (!(active_actions || g_list || g_target || (g_target_options.reset == 0)))
    error_exit("no actions specified");

  if (g_target_options.read && (g_target_options.erase || g_target_options.program ||
      g_target_options.verify || g_target_options.lock))
    error_exit("mutually exclusive actions specified");

  n_debuggers = dbg_enumerate(debuggers, MAX_DEBUGGERS);

  if (g_list)
  {
    message("Attached debuggers:\n");

    for (int i = 0; i < n_debuggers; i++)
    {
      char ver[8] = "";

      if (debuggers[i].versions & DBG_CMSIS_DAP_V1)
        strcat(ver, "1");

      if (debuggers[i].versions & DBG_CMSIS_DAP_V2)
        strcat(ver, "2");

      message("  %d: %s - %s %s (%s)\n", i, debuggers[i].serial, debuggers[i].manufacturer, debuggers[i].product, ver);
    }

    return 0;
  }

  if (NULL == g_target)
    error_exit("no target type specified (use '-t' option)");

  if (0 == strcmp(g_target, "list"))
  {
    target_list();
    return 0;
  }

  target_ops = target_get_ops(g_target);

  if (g_serial)
  {
    char *end = NULL;
    int index = strtoul(g_serial, &end, 10);

    if (index < n_debuggers && end[0] == 0)
    {
      debugger = index;
    }
    else
    {
      for (int i = 0; i < n_debuggers; i++)
      {
        if (0 == strcmp(debuggers[i].serial, g_serial))
        {
          debugger = i;
          break;
        }
      }
    }

    if (-1 == debugger)
      error_exit("unable to find a debugger with a specified serial number");
  }

  if (0 == n_debuggers)
    error_exit("no debuggers found");
  else if (1 == n_debuggers)
    debugger = 0;
  else if (n_debuggers > 1 && -1 == debugger)
    error_exit("more than one debugger found, please specify a serial number");

  if (-1 == g_version)
    g_version = (debuggers[debugger].versions & DBG_CMSIS_DAP_V2) ? DBG_CMSIS_DAP_V2 : DBG_CMSIS_DAP_V1;
  else if (1 == g_version)
    g_version = DBG_CMSIS_DAP_V1;
  else if (2 == g_version)
    g_version = DBG_CMSIS_DAP_V2;
  else
    error_exit("unsupported CMSIS-DAP version: %d", g_version);

  if (0 == (g_version & debuggers[debugger].versions))
    error_exit("selected debugger does not support this CMSIS-DAP version");

  dbg_open(&debuggers[debugger], g_version);

  g_debugger_open = true;

  print_debugger_info(&debuggers[debugger]);
  verbose("Using CMSIS-DAP v%d\n", (DBG_CMSIS_DAP_V1 == g_version) ? 1 : 2);
  print_clock_freq(g_clock);

  reconnect_debugger();

  if (g_target_options.reset > 0)
  {
    verbose("Resetting...");
    dap_reset_pin(0);
    sleep_ms(g_target_options.reset);
    dap_reset_pin(1);
    sleep_ms(10);
    verbose(" done.\n");
  }

  if (!active_actions)
  {
    disconnect_debugger();
    return 0;
  }

  target_ops->select(&g_target_options);

  if (g_target_options.unlock)
  {
    verbose("Unlocking...");
    target_ops->unlock();
    verbose(" done.\n");
  }

  if (g_target_options.erase)
  {
    verbose("Erasing...");
    target_ops->erase();
    verbose(" done.\n");
  }

  if (g_target_options.program)
  {
    verbose("Programming...");
    target_ops->program();
    verbose(" done.\n");
  }

  if (g_target_options.verify)
  {
    verbose("Verification...");
    target_ops->verify();
    verbose(" done.\n");
  }

  if (g_target_options.lock)
  {
    verbose("Locking...");
    target_ops->lock();
    verbose(" done.\n");
  }

  if (g_target_options.read)
  {
    verbose("Reading...");
    target_ops->read();
    verbose(" done.\n");
  }

  if (g_target_options.fuse_cmd)
  {
    verbose("Fuses:\n");
    target_fuse_commands(target_ops, g_target_options.fuse_cmd);
    verbose("done.\n");
  }

  target_ops->deselect();

  dap_reset_target_hw(1);

  disconnect_debugger();

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb38, %rsp            # imm = 0xB38
movq %rsi, %r14
movl %edi, %ebx
leaq 0x310(%rsp), %rdi
xorl %r12d, %r12d
movl $0x820, %edx            # imm = 0x820
xorl %esi, %esi
callq 0x60e0
leaq 0x10(%rsp), %rax
andl $0x0, (%rax)
leaq 0x11721(%rip), %r13     # 0x19440
leaq 0x85ea(%rip), %rbp      # 0x10310
movl %r12d, %r15d
movl %ebx, %edi
movq %r14, %rsi
leaq 0x8b1f(%rip), %rdx      # 0x10854
movq %r13, %rcx
leaq 0x10(%rsp), %r8
callq 0x60b0
leal -0x62(%rax), %ecx
cmpl $0x18, %ecx
ja 0x7d63
movb $0x1, %r12b
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
movb $0x1, 0x77cd2(%rip)     # 0x7fa30
movl %r15d, %r12d
jmp 0x7d26
cmpl $0x46, %eax
jne 0x7ee0
movq 0x1425d(%rip), %rax     # 0x1bfd0
movq (%rax), %rax
movq %rax, 0x1442b(%rip)     # 0x1c1a8
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x77ca8(%rip)     # 0x7fa31
movl %r15d, %r12d
jmp 0x7d26
movq 0x1423b(%rip), %rax     # 0x1bfd0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6240
movl %eax, 0x143f9(%rip)     # 0x1c1a0
movl %r15d, %r12d
jmp 0x7d26
movq 0x1421a(%rip), %rax     # 0x1bfd0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6240
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movq %rax, 0x143f8(%rip)     # 0x1c1c8
movl %r15d, %r12d
jmp 0x7d26
movq 0x141f1(%rip), %rax     # 0x1bfd0
movq (%rax), %rax
movq %rax, 0x143af(%rip)     # 0x1c198
movl %r15d, %r12d
jmp 0x7d26
movq 0x141d8(%rip), %rax     # 0x1bfd0
movq (%rax), %rax
movq %rax, 0x77c36(%rip)     # 0x7fa38
movl %r15d, %r12d
jmp 0x7d26
movq 0x141bf(%rip), %rax     # 0x1bfd0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6240
movl %eax, 0x1439d(%rip)     # 0x1c1c0
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x1435f(%rip)     # 0x1c191
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x1434f(%rip)     # 0x1c190
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x1433c(%rip)     # 0x1c18c
movl %r15d, %r12d
jmp 0x7d26
movq 0x14171(%rip), %rax     # 0x1bfd0
movq (%rax), %rax
movq %rax, 0x77bd7(%rip)     # 0x7fa40
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x14315(%rip)     # 0x1c18d
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x14308(%rip)     # 0x1c18f
movl %r15d, %r12d
jmp 0x7d26
movb $0x1, 0x142f8(%rip)     # 0x1c18e
movl %r15d, %r12d
jmp 0x7d26
movq 0x1412b(%rip), %rax     # 0x1bfd0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6240
movl %eax, 0x142d1(%rip)     # 0x1c188
movl %r15d, %r12d
jmp 0x7d26
movq 0x1410a(%rip), %rax     # 0x1bfd0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6240
movl %eax, 0x142cc(%rip)     # 0x1c1a4
movl %r15d, %r12d
jmp 0x7d26
cmpl $-0x1, %eax
jne 0x8613
testb $0x1, %r15b
jne 0x8632
movq 0x142ae(%rip), %rdi     # 0x1c1a8
testq %rdi, %rdi
je 0x7f13
leaq 0x8913(%rip), %rsi      # 0x10819
callq 0x6180
testl %eax, %eax
je 0x8669
movq 0x140ae(%rip), %rax     # 0x1bfc8
xorl %edi, %edi
cmpl %ebx, (%rax)
setge %dil
leaq 0x88f5(%rip), %rsi      # 0x1081e
xorl %eax, %eax
callq 0x793d
movb $0x1, %r13b
cmpb $0x0, 0x14256(%rip)     # 0x1c190
jne 0x7f64
cmpb $0x0, 0x14249(%rip)     # 0x1c18c
jne 0x7f64
cmpb $0x0, 0x14241(%rip)     # 0x1c18d
jne 0x7f64
cmpb $0x0, 0x14239(%rip)     # 0x1c18e
jne 0x7f64
cmpb $0x0, 0x14231(%rip)     # 0x1c18f
je 0x85c4
cmpb $0x1, 0x14226(%rip)     # 0x1c191
jne 0x7fa1
cmpb $0x0, 0x14218(%rip)     # 0x1c18c
jne 0x8624
cmpb $0x0, 0x1420c(%rip)     # 0x1c18d
jne 0x8624
cmpb $0x0, 0x14200(%rip)     # 0x1c18e
jne 0x8624
cmpb $0x1, 0x141f4(%rip)     # 0x1c18f
je 0x8624
leaq 0x310(%rsp), %rdi
pushq $0x14
popq %rsi
callq 0xe748
movl %eax, %r14d
cmpb $0x1, 0x77a76(%rip)     # 0x7fa31
jne 0x8051
leaq 0x8691(%rip), %rdi      # 0x10659
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x77e1
testl %r14d, %r14d
cmovlel %ebx, %r14d
leaq 0x340(%rsp), %r13
leaq 0x8687(%rip), %rbx      # 0x1066e
leaq 0x10(%rsp), %r15
xorl %r12d, %r12d
cmpq %r12, %r14
je 0x85b0
andq $0x0, 0x10(%rsp)
movl (%r13), %ebp
testb $0x2, %bpl
je 0x8017
movq %r15, %rdi
callq 0x6090
movw $0x31, 0x10(%rsp,%rax)
testb $0x4, %bpl
je 0x802c
movq %r15, %rdi
callq 0x6090
movw $0x32, 0x10(%rsp,%rax)
movq -0x20(%r13), %rdx
movq -0x18(%r13), %rcx
movq -0x10(%r13), %r8
movq %rbx, %rdi
movl %r12d, %esi
movq %r15, %r9
xorl %eax, %eax
callq 0x77e1
incq %r12
addq $0x68, %r13
jmp 0x7fef
movq 0x779e0(%rip), %rbx     # 0x7fa38
testq %rbx, %rbx
je 0x8697
leaq 0x8648(%rip), %rsi      # 0x106b0
movq %rbx, %rdi
callq 0x6180
testl %eax, %eax
je 0x80ef
movq %rbx, %rdi
callq 0x8ae5
movq %rax, 0x8(%rsp)
movq 0x779b8(%rip), %rdi     # 0x7fa40
testq %rdi, %rdi
je 0x80f9
leaq 0x10(%rsp), %rsi
andq $0x0, (%rsi)
pushq $0xa
popq %rdx
callq 0x6240
movq %rax, %r15
cmpl %r15d, %r14d
jle 0x80b0
movq 0x10(%rsp), %rax
cmpb $0x0, (%rax)
je 0x80ff
movq 0x77989(%rip), %r12     # 0x7fa40
xorl %r15d, %r15d
testl %r14d, %r14d
movl $0x0, %ebp
cmovgl %r14d, %ebp
leaq 0x320(%rsp), %rbx
cmpq %r15, %rbp
je 0x861b
movq (%rbx), %rdi
movq %r12, %rsi
callq 0x6180
testl %eax, %eax
je 0x8109
incq %r15
addq $0x68, %rbx
jmp 0x80ce
callq 0x89c4
jmp 0x85b0
pushq $-0x1
popq %r15
jmp 0x8109
cmpl $-0x1, %r15d
je 0x861b
xorl %eax, %eax
cmpl $0x1, %r14d
je 0x8138
testl %r14d, %r14d
je 0x86a9
cmpl $0x2, %r14d
jl 0x8135
movl %r15d, %eax
cmpl $-0x1, %r15d
jne 0x8138
leaq 0x85d1(%rip), %rdi      # 0x10701
jmp 0x862b
movl %r15d, %eax
movl 0x14082(%rip), %esi     # 0x1c1c0
cltq
cmpl $0x2, %esi
je 0x8174
cmpl $0x1, %esi
je 0x8170
cmpl $-0x1, %esi
jne 0x86b5
imulq $0x68, %rax, %rcx
movb 0x340(%rsp,%rcx), %cl
andb $0x4, %cl
shrb $0x2, %cl
movzbl %cl, %ecx
leal 0x2(,%rcx,2), %esi
jmp 0x8177
pushq $0x2
jmp 0x8176
pushq $0x4
popq %rsi
movl %esi, 0x14043(%rip)     # 0x1c1c0
imulq $0x68, %rax, %rax
testl %esi, 0x340(%rsp,%rax)
je 0x86a0
leaq (%rsp,%rax), %r14
addq $0x310, %r14            # imm = 0x310
movq %r14, %rdi
callq 0xebc2
leaq 0x81d8(%rip), %rsi      # 0x10380
leaq 0x10(%rsp), %rdi
movl $0x200, %edx            # imm = 0x200
callq 0x6190
pushq $0x1
popq %rdi
leaq 0x210(%rsp), %r15
movq %r15, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x65d4
movq %r15, %rsi
testl %eax, %eax
jne 0x81da
movq 0x18(%r14), %rsi
leaq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x6250
movq %r12, %rdi
callq 0x6090
movw $0x20, 0x10(%rsp,%rax)
pushq $0x2
popq %rdi
movq %r15, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x65d4
movq %r15, %rsi
testl %eax, %eax
jne 0x8211
movq 0x20(%r14), %rsi
leaq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x6250
movq %r12, %rdi
callq 0x6090
movw $0x20, 0x10(%rsp,%rax)
pushq $0x3
popq %rdi
movq %r15, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x65d4
testl %eax, %eax
jne 0x8245
movq 0x10(%r14), %r15
leaq 0x10(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x6250
movq %r12, %rdi
callq 0x6090
movw $0x20, %bx
movw %bx, 0x10(%rsp,%rax)
pushq $0x4
popq %rdi
leaq 0x210(%rsp), %r15
movq %r15, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x65d4
movq %r12, %rdi
movq %r15, %rsi
callq 0x6250
movq %r12, %rdi
callq 0x6090
movw %bx, 0x10(%rsp,%rax)
movl $0xf0, %edi
movq %r15, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x65d4
decl %eax
xorl %edi, %edi
cmpl $0x2, %eax
setb %dil
leaq 0x9056(%rip), %rsi      # 0x11310
xorl %eax, %eax
callq 0x793d
movq %r12, %rdi
callq 0x6090
movw $0x28, 0x10(%rsp,%rax)
movb (%r15), %bl
testb $0x1, %bl
je 0x82e9
leaq 0x10(%rsp), %rdi
callq 0x6090
movw $0x53, 0x10(%rsp,%rax)
testb $0x2, %bl
je 0x82ff
leaq 0x10(%rsp), %rdi
callq 0x6090
movw $0x4a, 0x10(%rsp,%rax)
leaq 0x10(%rsp), %rdi
callq 0x6090
movw $0x202c, 0x10(%rsp,%rax) # imm = 0x202C
movb $0x0, 0x12(%rsp,%rax)
movl 0x30(%r14), %ebx
testb $0x2, %bl
je 0x832f
leaq 0x10(%rsp), %rdi
callq 0x6090
movw $0x31, 0x10(%rsp,%rax)
testb $0x4, %bl
je 0x8345
leaq 0x10(%rsp), %rdi
callq 0x6090
movw $0x32, 0x10(%rsp,%rax)
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x6090
movw $0xa29, 0x10(%rsp,%rax) # imm = 0xA29
movb $0x0, 0x12(%rsp,%rax)
movq %r14, %rdi
xorl %eax, %eax
callq 0x773c
movzbl 0x210(%rsp), %edi
andl $0x1, %edi
leaq 0x8fbe(%rip), %rsi      # 0x11338
xorl %eax, %eax
callq 0x793d
xorl %esi, %esi
cmpl $0x2, 0x13e36(%rip)     # 0x1c1c0
setne %sil
incl %esi
leaq 0x8403(%rip), %rdi      # 0x1079a
xorl %eax, %eax
callq 0x773c
movl 0x13e24(%rip), %eax     # 0x1c1c8
cvtsi2ss %eax, %xmm0
xorl %ecx, %ecx
cmpl $0xf4240, %eax          # imm = 0xF4240
setl %cl
leaq 0x7f47(%rip), %rax      # 0x10300
divss (%rax,%rcx,4), %xmm0
leaq 0x8f88(%rip), %rax      # 0x1134d
leaq 0x8f85(%rip), %rsi      # 0x11351
cmovlq %rax, %rsi
cvtss2sd %xmm0, %xmm0
leaq 0x8f7a(%rip), %rdi      # 0x11355
movb $0x1, %al
callq 0x773c
callq 0x6481
pushq $0x1
popq %rbp
movl %ebp, %edi
callq 0x6429
xorl %edi, %edi
movl $0x8000, %esi           # imm = 0x8000
movl $0x80, %edx
callq 0x64eb
xorl %edi, %edi
callq 0x6536
movl 0x13db9(%rip), %edi     # 0x1c1c8
callq 0x649d
xorl %edi, %edi
movl %ebp, %esi
callq 0x63ea
cmpl $0x0, 0x13d64(%rip)     # 0x1c188
jle 0x8464
leaq 0x8382(%rip), %rdi      # 0x107af
xorl %eax, %eax
callq 0x773c
xorl %edi, %edi
callq 0x6e95
movl 0x13d47(%rip), %edi     # 0x1c188
callq 0x7aeb
pushq $0x1
popq %rdi
callq 0x6e95
pushq $0xa
popq %rdi
callq 0x7aeb
leaq 0x835f(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
testb %r13b, %r13b
je 0x85ab
leaq 0x13d14(%rip), %rdi     # 0x1c188
movq 0x8(%rsp), %rbx
callq *(%rbx)
cmpb $0x1, 0x13d0e(%rip)     # 0x1c190
jne 0x84a3
leaq 0x8339(%rip), %rdi      # 0x107c4
xorl %eax, %eax
callq 0x773c
callq *0x20(%rbx)
leaq 0x8320(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpb $0x1, 0x13ce2(%rip)     # 0x1c18c
jne 0x84cb
leaq 0x831e(%rip), %rdi      # 0x107d1
xorl %eax, %eax
callq 0x773c
callq *0x10(%rbx)
leaq 0x82f8(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpb $0x1, 0x13cbb(%rip)     # 0x1c18d
jne 0x84f3
leaq 0x8301(%rip), %rdi      # 0x107dc
xorl %eax, %eax
callq 0x773c
callq *0x28(%rbx)
leaq 0x82d0(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpb $0x1, 0x13c94(%rip)     # 0x1c18e
jne 0x851b
leaq 0x82e8(%rip), %rdi      # 0x107eb
xorl %eax, %eax
callq 0x773c
callq *0x30(%rbx)
leaq 0x82a8(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpb $0x1, 0x13c6d(%rip)     # 0x1c18f
jne 0x8543
leaq 0x82d0(%rip), %rdi      # 0x107fb
xorl %eax, %eax
callq 0x773c
callq *0x18(%rbx)
leaq 0x8280(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpb $0x1, 0x13c47(%rip)     # 0x1c191
jne 0x856b
leaq 0x82b3(%rip), %rdi      # 0x10806
xorl %eax, %eax
callq 0x773c
callq *0x38(%rbx)
leaq 0x8258(%rip), %rdi      # 0x107bc
xorl %eax, %eax
callq 0x773c
cmpq $0x0, 0x13c35(%rip)     # 0x1c1a8
je 0x85a0
leaq 0x8295(%rip), %rdi      # 0x10811
xorl %eax, %eax
callq 0x773c
movq 0x13c1e(%rip), %rsi     # 0x1c1a8
movq %rbx, %rdi
callq 0x8cb1
leaq 0x8224(%rip), %rdi      # 0x107bd
xorl %eax, %eax
callq 0x773c
callq *0x8(%rbx)
pushq $0x1
popq %rdi
callq 0x6e14
callq 0x86c3
xorl %eax, %eax
addq $0xb38, %rsp            # imm = 0xB38
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x0, 0x13bc6(%rip)     # 0x1c191
jne 0x7f64
cmpq $0x0, 0x13bcf(%rip)     # 0x1c1a8
jne 0x7f64
xorl %r13d, %r13d
cmpb $0x0, 0x77448(%rip)     # 0x7fa31
jne 0x7f64
cmpq $0x0, 0x77441(%rip)     # 0x7fa38
jne 0x7f64
cmpl $0x0, 0x13b84(%rip)     # 0x1c188
je 0x7f64
leaq 0x800e(%rip), %rdi      # 0x1061f
jmp 0x862b
pushq $0x1
popq %rdi
callq 0x6270
leaq 0x8093(%rip), %rdi      # 0x106b5
jmp 0x862b
leaq 0x8009(%rip), %rdi      # 0x10634
xorl %eax, %eax
callq 0x7a0e
movq (%r14), %rbx
leaq 0x826a(%rip), %rdi      # 0x108a6
xorl %eax, %eax
callq 0x77e1
movq 0x773ee(%rip), %rdi     # 0x7fa38
testq %rdi, %rdi
jne 0x8672
leaq 0x82b5(%rip), %rdi      # 0x1090b
movq %rbx, %rsi
xorl %eax, %eax
callq 0x77e1
leaq 0x82b9(%rip), %rdi      # 0x10920
jmp 0x8689
leaq 0x87c3(%rip), %rdi      # 0x10e33
jmp 0x8689
callq 0x8ae5
movq 0x58(%rax), %rax
testq %rax, %rax
leaq 0x8259(%rip), %rdi      # 0x108de
cmovneq %rax, %rdi
xorl %eax, %eax
callq 0x77e1
xorl %edi, %edi
callq 0x6270
leaq 0x7fe7(%rip), %rdi      # 0x10685
jmp 0x862b
leaq 0x80b9(%rip), %rdi      # 0x10760
jmp 0x862b
leaq 0x803e(%rip), %rdi      # 0x106ee
jmp 0x862b
leaq 0x8082(%rip), %rdi      # 0x1073e
xorl %eax, %eax
callq 0x7a0e