// File: CoinBlack[P]blackcoin-seeder/main.cpp
// Function: CDnsSeedOpts::ParseCommandLine(int, char**)
void ParseCommandLine(int argc, char **argv) {
    static const char *help = "Blackcoin-seeder\n"
                              "Usage: %s -h <host> -n <ns> [-m <mbox>] [-t <threads>] [-p <port>]\n"
                              "\n"
                              "Options:\n"
                              "-s <seed>       Seed node to collect peers from (replaces default)\n"
                              "-h <host>       Hostname of the DNS seed\n"
                              "-n <ns>         Hostname of the nameserver\n"
                              "-m <mbox>       E-Mail address reported in SOA records\n"
                              "-t <threads>    Number of crawlers to run in parallel (default 96)\n"
                              "-d <threads>    Number of DNS server threads (default 4)\n"
                              "-a <address>    Address to listen on (default ::)\n"
                              "-p <port>       UDP port to listen on (default 53)\n"
                              "-o <ip:port>    Tor proxy IP/Port\n"
                              "-i <ip:port>    IPV4 SOCKS5 proxy IP/Port\n"
                              "-k <ip:port>    IPV6 SOCKS5 proxy IP/Port\n"
                              "-w f1,f2,...    Allow these flag combinations as filters\n"
                              "--p2port <port> P2P port to connect to\n"
                              "--magic <hex>   Magic string/network prefix\n"
                              "--minheight <n> Minimum height of block chain\n"
                              "--testnet       Use testnet\n"
                              "--wipeban       Wipe list of banned nodes\n"
                              "--wipeignore    Wipe list of ignored nodes\n"
                              "-?, --help      Show this text\n"
                              "\n";
    bool showHelp = false;

    while(1) {
      static struct option long_options[] = {
        {"seed", required_argument, 0, 's'},
        {"host", required_argument, 0, 'h'},
        {"ns",   required_argument, 0, 'n'},
        {"mbox", required_argument, 0, 'm'},
        {"threads", required_argument, 0, 't'},
        {"dnsthreads", required_argument, 0, 'd'},
        {"address", required_argument, 0, 'a'},
        {"port", required_argument, 0, 'p'},
        {"onion", required_argument, 0, 'o'},
        {"proxyipv4", required_argument, 0, 'i'},
        {"proxyipv6", required_argument, 0, 'k'},
        {"filter", required_argument, 0, 'w'},
        {"p2port", required_argument, 0, 'b'},
        {"magic", required_argument, 0, 'q'},
        {"minheight", required_argument, 0, 'x'},
        {"testnet", no_argument, &fUseTestNet, 1},
        {"wipeban", no_argument, &fWipeBan, 1},
        {"wipeignore", no_argument, &fWipeBan, 1},
        {"help", no_argument, 0, 'h'},
        {0, 0, 0, 0}
      };
      int option_index = 0;
      int c = getopt_long(argc, argv, "s:h:n:m:t:a:p:d:o:i:k:w:b:q:x:", long_options, &option_index);
      if (c == -1) break;
      switch (c) {
        case 's': {
          vSeeds.emplace_back(optarg);
          break;
        }

        case 'h': {
          host = optarg;
          break;
        }
        
        case 'm': {
          mbox = optarg;
          break;
        }
        
        case 'n': {
          ns = optarg;
          break;
        }
        
        case 't': {
          int n = strtol(optarg, NULL, 10);
          if (n > 0 && n < 1000) nThreads = n;
          break;
        }

        case 'd': {
          int n = strtol(optarg, NULL, 10);
          if (n > 0 && n < 1000) nDnsThreads = n;
          break;
        }

        case 'a': {
          if (strchr(optarg, ':')==NULL) {
            char* ip4_addr = (char*) malloc(strlen(optarg)+8);
            strcpy(ip4_addr, "::FFFF:");
            strcat(ip4_addr, optarg);
            ip_addr = ip4_addr;
          } else {
            ip_addr = optarg;
          }
          break;
        }

        case 'p': {
          int p = strtol(optarg, NULL, 10);
          if (p > 0 && p < 65536) nPort = p;
          break;
        }

        case 'o': {
          tor = optarg;
          break;
        }

        case 'i': {
          ipv4_proxy = optarg;
          break;
        }

        case 'k': {
          ipv6_proxy = optarg;
          break;
        }

        case 'w': {
          char* ptr = optarg;
          while (*ptr != 0) {
            unsigned long l = strtoul(ptr, &ptr, 0);
            if (*ptr == ',') {
                ptr++;
            } else if (*ptr != 0) {
                break;
            }
            filter_whitelist.insert(l);
          }
          break;
        }

        case 'b': {
          int p = strtol(optarg, NULL, 10);
          if (p > 0 && p < 65536) nP2Port = p;
          break;
        }

        case 'q': {
          long int n;
          unsigned int c;
          if (strlen(optarg)!=8) {
            break; /* must be 4 hex-encoded bytes */
          }
          n = strtol(optarg, NULL, 16);
          if (n==0 && strcmp(optarg, "00000000")) {
            break; /* hex decode failed */
          }
          magic = optarg;
          break;
        }

        case 'x': {
          int n = strtol(optarg, NULL, 10);
          if (n > 0 && n <= 0x7fffffff) nMinimumHeight = n;
          break;
        }

        case '?': {
          showHelp = true;
          break;
        }
      }
    }
    if (filter_whitelist.empty()) {
        filter_whitelist.insert(NODE_NETWORK); // x1
        filter_whitelist.insert(NODE_NETWORK | NODE_BLOOM); // x5
        filter_whitelist.insert(NODE_NETWORK | NODE_WITNESS); // x9
        filter_whitelist.insert(NODE_NETWORK | NODE_WITNESS | NODE_COMPACT_FILTERS); // x49
        filter_whitelist.insert(NODE_NETWORK | NODE_WITNESS | NODE_P2P_V2); // x809
        filter_whitelist.insert(NODE_NETWORK | NODE_WITNESS | NODE_P2P_V2 | NODE_COMPACT_FILTERS); //x849
        filter_whitelist.insert(NODE_NETWORK | NODE_WITNESS | NODE_BLOOM); // xd
        filter_whitelist.insert(NODE_NETWORK_LIMITED); // x400
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_BLOOM); // x404
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_WITNESS); // x408
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_WITNESS | NODE_COMPACT_FILTERS); // x448
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_WITNESS | NODE_P2P_V2); // xc08
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_WITNESS | NODE_P2P_V2 | NODE_COMPACT_FILTERS); // xc48
        filter_whitelist.insert(NODE_NETWORK_LIMITED | NODE_WITNESS | NODE_BLOOM); // x40c
    }
    if (host != NULL && ns == NULL) showHelp = true;
    if (showHelp) fprintf(stderr, help, argv[0]);
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movb $0x0, -0x19(%rbp)
cmpb $0x0, 0x278b4(%rip)     # 0x4dbb0
jne 0x266a1
leaq 0x278a7(%rip), %rdi     # 0x4dbb0
callq 0x48a0
cmpl $0x0, %eax
je 0x266a1
movq -0x1d0(%rbp), %rax
leaq 0x1004f(%rip), %rcx     # 0x36374
movq %rcx, 0x27604(%rip)     # 0x4d930
movl $0x1, 0x27602(%rip)     # 0x4d938
movq $0x0, 0x275ff(%rip) # 0x4d940
movl $0x73, 0x275fd(%rip)    # 0x4d948
leaq 0x10027(%rip), %rcx     # 0x36379
movq %rcx, 0x275f7(%rip)     # 0x4d950
movl $0x1, 0x275f5(%rip)     # 0x4d958
movq $0x0, 0x275f2(%rip) # 0x4d960
movl $0x68, 0x275f0(%rip)    # 0x4d968
leaq 0xffff(%rip), %rcx      # 0x3637e
movq %rcx, 0x275ea(%rip)     # 0x4d970
movl $0x1, 0x275e8(%rip)     # 0x4d978
movq $0x0, 0x275e5(%rip) # 0x4d980
movl $0x6e, 0x275e3(%rip)    # 0x4d988
leaq 0xffd5(%rip), %rcx      # 0x36381
movq %rcx, 0x275dd(%rip)     # 0x4d990
movl $0x1, 0x275db(%rip)     # 0x4d998
movq $0x0, 0x275d8(%rip) # 0x4d9a0
movl $0x6d, 0x275d6(%rip)    # 0x4d9a8
leaq 0xffb0(%rip), %rcx      # 0x36389
movq %rcx, 0x275d0(%rip)     # 0x4d9b0
movl $0x1, 0x275ce(%rip)     # 0x4d9b8
movq $0x0, 0x275cb(%rip) # 0x4d9c0
movl $0x74, 0x275c9(%rip)    # 0x4d9c8
leaq 0xff80(%rip), %rcx      # 0x36386
movq %rcx, 0x275c3(%rip)     # 0x4d9d0
movl $0x1, 0x275c1(%rip)     # 0x4d9d8
movq $0x0, 0x275be(%rip) # 0x4d9e0
movl $0x64, 0x275bc(%rip)    # 0x4d9e8
leaq 0xf235(%rip), %rcx      # 0x35668
movq %rcx, 0x275b6(%rip)     # 0x4d9f0
movl $0x1, 0x275b4(%rip)     # 0x4d9f8
movq $0x0, 0x275b1(%rip) # 0x4da00
movl $0x61, 0x275af(%rip)    # 0x4da08
leaq 0xff4e(%rip), %rcx      # 0x363ae
movq %rcx, 0x275a9(%rip)     # 0x4da10
movl $0x1, 0x275a7(%rip)     # 0x4da18
movq $0x0, 0x275a4(%rip) # 0x4da20
movl $0x70, 0x275a2(%rip)    # 0x4da28
leaq 0xf933(%rip), %rcx      # 0x35dc0
movq %rcx, 0x2759c(%rip)     # 0x4da30
movl $0x1, 0x2759a(%rip)     # 0x4da38
movq $0x0, 0x27597(%rip) # 0x4da40
movl $0x6f, 0x27595(%rip)    # 0x4da48
leaq 0xfed7(%rip), %rcx      # 0x36391
movq %rcx, 0x2758f(%rip)     # 0x4da50
movl $0x1, 0x2758d(%rip)     # 0x4da58
movq $0x0, 0x2758a(%rip) # 0x4da60
movl $0x69, 0x27588(%rip)    # 0x4da68
leaq 0xfeb4(%rip), %rcx      # 0x3639b
movq %rcx, 0x27582(%rip)     # 0x4da70
movl $0x1, 0x27580(%rip)     # 0x4da78
movq $0x0, 0x2757d(%rip) # 0x4da80
movl $0x6b, 0x2757b(%rip)    # 0x4da88
leaq 0xfe91(%rip), %rcx      # 0x363a5
movq %rcx, 0x27575(%rip)     # 0x4da90
movl $0x1, 0x27573(%rip)     # 0x4da98
movq $0x0, 0x27570(%rip) # 0x4daa0
movl $0x77, 0x2756e(%rip)    # 0x4daa8
leaq 0xfe6b(%rip), %rcx      # 0x363ac
movq %rcx, 0x27568(%rip)     # 0x4dab0
movl $0x1, 0x27566(%rip)     # 0x4dab8
movq $0x0, 0x27563(%rip) # 0x4dac0
movl $0x62, 0x27561(%rip)    # 0x4dac8
leaq 0xfe45(%rip), %rcx      # 0x363b3
movq %rcx, 0x2755b(%rip)     # 0x4dad0
movl $0x1, 0x27559(%rip)     # 0x4dad8
movq $0x0, 0x27556(%rip) # 0x4dae0
movl $0x71, 0x27554(%rip)    # 0x4dae8
leaq 0xfe1e(%rip), %rcx      # 0x363b9
movq %rcx, 0x2754e(%rip)     # 0x4daf0
movl $0x1, 0x2754c(%rip)     # 0x4daf8
movq $0x0, 0x27549(%rip) # 0x4db00
movl $0x78, 0x27547(%rip)    # 0x4db08
leaq 0xfdfb(%rip), %rcx      # 0x363c3
movq %rcx, 0x27541(%rip)     # 0x4db10
movl $0x0, 0x2753f(%rip)     # 0x4db18
movq %rax, %rcx
addq $0x14, %rcx
movq %rcx, 0x27539(%rip)     # 0x4db20
movl $0x1, 0x27537(%rip)     # 0x4db28
leaq 0xfdd3(%rip), %rcx      # 0x363cb
movq %rcx, 0x27531(%rip)     # 0x4db30
movl $0x0, 0x2752f(%rip)     # 0x4db38
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x27529(%rip)     # 0x4db40
movl $0x1, 0x27527(%rip)     # 0x4db48
leaq 0xfdab(%rip), %rcx      # 0x363d3
movq %rcx, 0x27521(%rip)     # 0x4db50
movl $0x0, 0x2751f(%rip)     # 0x4db58
addq $0x18, %rax
movq %rax, 0x2751c(%rip)     # 0x4db60
movl $0x1, 0x2751a(%rip)     # 0x4db68
leaq 0xfd89(%rip), %rax      # 0x363de
movq %rax, 0x27514(%rip)     # 0x4db70
movl $0x0, 0x27512(%rip)     # 0x4db78
movq $0x0, 0x2750f(%rip) # 0x4db80
movl $0x68, 0x2750d(%rip)    # 0x4db88
leaq 0x272ae(%rip), %rdi     # 0x4d930
addq $0x260, %rdi            # imm = 0x260
xorl %esi, %esi
movl $0x20, %edx
callq 0x4260
leaq 0x27514(%rip), %rdi     # 0x4dbb0
callq 0x4320
movl $0x0, -0x20(%rbp)
movl -0xc(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq 0xfd2d(%rip), %rdx      # 0x363e3
leaq 0x27273(%rip), %rcx     # 0x4d930
leaq -0x20(%rbp), %r8
callq 0x47f0
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x266d4
jmp 0x26a5d
movl -0x24(%rbp), %eax
addl $-0x3f, %eax
movl %eax, %ecx
movq %rcx, -0x1d8(%rbp)
subl $0x39, %eax
ja 0x26a58
movq -0x1d8(%rbp), %rax
leaq 0xf36e(%rip), %rcx      # 0x35a68
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x1d0(%rbp), %rdi
addq $0x60, %rdi
movq 0x2687b(%rip), %rsi     # 0x4cf90
callq 0x2a8b0
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x26863(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x30(%rax)
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x26849(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x20(%rax)
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x2682f(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x28(%rax)
jmp 0x26a58
movq 0x2681c(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x4700
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jle 0x267a3
cmpl $0x3e8, -0x28(%rbp)     # imm = 0x3E8
jge 0x267a3
movq -0x1d0(%rbp), %rax
movl -0x28(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x26a58
movq 0x267e1(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x4700
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
jle 0x267df
cmpl $0x3e8, -0x2c(%rbp)     # imm = 0x3E8
jge 0x267df
movq -0x1d0(%rbp), %rax
movl -0x2c(%rbp), %ecx
movl %ecx, 0x10(%rax)
jmp 0x26a58
movq 0x267a5(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
movl $0x3a, %esi
callq 0x41c0
cmpq $0x0, %rax
jne 0x26851
movq 0x2678b(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
callq 0x4210
movq %rax, %rdi
addq $0x8, %rdi
callq 0x4660
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
leaq 0xfbda(%rip), %rsi      # 0x36402
callq 0x44a0
movq -0x38(%rbp), %rdi
movq 0x26758(%rip), %rax     # 0x4cf90
movq (%rax), %rsi
callq 0x4860
movq -0x1d0(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, 0x40(%rax)
jmp 0x26866
movq -0x1d0(%rbp), %rax
movq 0x26731(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x40(%rax)
jmp 0x26a58
movq 0x2671e(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x4700
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jle 0x268a2
cmpl $0x10000, -0x3c(%rbp)   # imm = 0x10000
jge 0x268a2
movq -0x1d0(%rbp), %rax
movl -0x3c(%rbp), %ecx
movl %ecx, 0x4(%rax)
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x266db(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x38(%rax)
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x266c1(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x48(%rax)
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x266a7(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x50(%rax)
jmp 0x26a58
movq 0x26694(%rip), %rax     # 0x4cf90
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x26969
movq -0x48(%rbp), %rdi
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0x4170
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x2693c
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x2694c
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x2694a
jmp 0x26969
jmp 0x2694c
movq -0x1d0(%rbp), %rdi
addq $0x78, %rdi
leaq -0x50(%rbp), %rsi
callq 0x2a920
movq %rax, -0x60(%rbp)
movb %dl, -0x58(%rbp)
jmp 0x26903
jmp 0x26a58
movq 0x2661b(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x4700
movl %eax, -0x64(%rbp)
cmpl $0x0, -0x64(%rbp)
jle 0x269a5
cmpl $0x10000, -0x64(%rbp)   # imm = 0x10000
jge 0x269a5
movq -0x1d0(%rbp), %rax
movl -0x64(%rbp), %ecx
movl %ecx, 0x8(%rax)
jmp 0x26a58
movq 0x265df(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
callq 0x4210
cmpq $0x8, %rax
je 0x269c4
jmp 0x26a58
movq 0x265c5(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x10, %edx
callq 0x4700
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
jne 0x26a04
movq 0x265a2(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
leaq 0xfa12(%rip), %rsi      # 0x3640a
callq 0x46f0
cmpl $0x0, %eax
je 0x26a04
jmp 0x26a58
movq -0x1d0(%rbp), %rax
movq 0x2657e(%rip), %rcx     # 0x4cf90
movq (%rcx), %rcx
movq %rcx, 0x58(%rax)
jmp 0x26a58
movq 0x2656e(%rip), %rax     # 0x4cf90
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x4700
movl %eax, -0x78(%rbp)
cmpl $0x0, -0x78(%rbp)
jle 0x26a52
cmpl $0x7fffffff, -0x78(%rbp) # imm = 0x7FFFFFFF
jg 0x26a52
movq -0x1d0(%rbp), %rax
movl -0x78(%rbp), %ecx
movl %ecx, 0xc(%rax)
jmp 0x26a58
movb $0x1, -0x19(%rbp)
jmp 0x262f5
movq -0x1d0(%rbp), %rdi
addq $0x78, %rdi
callq 0x2a970
testb $0x1, %al
jne 0x26a76
jmp 0x26d02
movq -0x1d0(%rbp), %rdi
addq $0x78, %rdi
movq $0x1, -0x80(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x90(%rbp)
movb %dl, -0x88(%rbp)
addq $0x78, %rdi
movq $0x5, -0x98(%rbp)
leaq -0x98(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movb %dl, -0xa0(%rbp)
addq $0x78, %rdi
movq $0x9, -0xb0(%rbp)
leaq -0xb0(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0xc0(%rbp)
movb %dl, -0xb8(%rbp)
addq $0x78, %rdi
movq $0x49, -0xc8(%rbp)
leaq -0xc8(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0xd8(%rbp)
movb %dl, -0xd0(%rbp)
addq $0x78, %rdi
movq $0x809, -0xe0(%rbp) # imm = 0x809
leaq -0xe0(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0xf0(%rbp)
movb %dl, -0xe8(%rbp)
addq $0x78, %rdi
movq $0x849, -0xf8(%rbp) # imm = 0x849
leaq -0xf8(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x108(%rbp)
movb %dl, -0x100(%rbp)
addq $0x78, %rdi
movq $0xd, -0x110(%rbp)
leaq -0x110(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x120(%rbp)
movb %dl, -0x118(%rbp)
addq $0x78, %rdi
movq $0x400, -0x128(%rbp) # imm = 0x400
leaq -0x128(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x138(%rbp)
movb %dl, -0x130(%rbp)
addq $0x78, %rdi
movq $0x404, -0x140(%rbp) # imm = 0x404
leaq -0x140(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x150(%rbp)
movb %dl, -0x148(%rbp)
addq $0x78, %rdi
movq $0x408, -0x158(%rbp) # imm = 0x408
leaq -0x158(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x168(%rbp)
movb %dl, -0x160(%rbp)
addq $0x78, %rdi
movq $0x448, -0x170(%rbp) # imm = 0x448
leaq -0x170(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x180(%rbp)
movb %dl, -0x178(%rbp)
addq $0x78, %rdi
movq $0xc08, -0x188(%rbp) # imm = 0xC08
leaq -0x188(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x198(%rbp)
movb %dl, -0x190(%rbp)
addq $0x78, %rdi
movq $0xc48, -0x1a0(%rbp) # imm = 0xC48
leaq -0x1a0(%rbp), %rsi
callq 0x2a990
movq -0x1d0(%rbp), %rdi
movq %rax, -0x1b0(%rbp)
movb %dl, -0x1a8(%rbp)
addq $0x78, %rdi
movq $0x40c, -0x1b8(%rbp) # imm = 0x40C
leaq -0x1b8(%rbp), %rsi
callq 0x2a990
movq %rax, -0x1c8(%rbp)
movb %dl, -0x1c0(%rbp)
movq -0x1d0(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x26d22
movq -0x1d0(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x26d22
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
je 0x26d47
movq 0x262a1(%rip), %rax     # 0x4cfd0
movq (%rax), %rdi
movq 0x267e7(%rip), %rsi     # 0x4d520
movq -0x18(%rbp), %rax
movq (%rax), %rdx
movb $0x0, %al
callq 0x4740
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq