// File: /workspace/github_cpp_makefile_star2_O3/PepiJK[P]Mail-Server-Client/src/myclient.cpp
// Function: main
int main(int argc, char *argv[])
{
   MyHelper helper;
   helper.checkClientArguments(argc, argv);

   MySocket clientSocket(argv[1], stoi(argv[2]));
   clientSocket.createSocket();
   clientSocket.connectSocket();

   char buffer[BUF], command[BUF];

   cout << clientSocket.recvMessage() << endl;

   while (1)
   {
      fgets(command, BUF, stdin);
      buffer[strlen(command)] = '\0';
      clientSocket.sendMessage(command);

      if (strcmp(command, "SEND\n\0") == 0)
      {
         // sender, reveiver, subject
         for (int i = 0; i < 4; i++)
         {
            fgets(buffer, BUF, stdin);
            buffer[strlen(buffer)] = '\0';
            clientSocket.sendMessage(buffer);
         }
         // email message
         do
         {
            fgets(buffer, BUF, stdin);
            if (strncmp(buffer, ".\n", 2) == 0)
            {
               buffer[strlen(buffer)] = '\0';
            }
            clientSocket.sendMessage(buffer);
         } while (strcmp(buffer, ".\n\0") != 0);
         cout << clientSocket.recvMessage() << endl;
      }

      else if (strcmp(command, "LIST\n\0") == 0)
      {
         // user
         fgets(buffer, BUF, stdin);
         buffer[strlen(buffer)] = '\0';
         clientSocket.sendMessage(buffer);

         string mailSubject, numberOfMails;
         numberOfMails = clientSocket.recvMessage();
         cout << numberOfMails;

         int mailAmount = stoi(numberOfMails.substr(0, numberOfMails.find(' ')).c_str());
         if (mailAmount > 0)
         {
            for (int i = 1; i <= mailAmount; i++)
            {
               // tell the server to start sending the list of mails
               clientSocket.sendMessage("OK\0");
               mailSubject = clientSocket.recvMessage();
               mailSubject = mailSubject.substr(mailSubject.find('_') + 1, mailSubject.length()) + ' ' + to_string(i);
               cout << mailSubject << endl;
            }
         }
      }

      else if (strcmp(command, "READ\n\0") == 0)
      {
         // user
         fgets(buffer, BUF, stdin);
         buffer[strlen(buffer)] = '\0';
         clientSocket.sendMessage(buffer);

         // mail number
         fgets(buffer, BUF, stdin);
         buffer[strlen(buffer)] = '\0';
         clientSocket.sendMessage(buffer);

         string mailOutput;
         string resp = clientSocket.recvMessage();
         cout << resp << endl;

         if (resp == "OK")
         {
            while (1)
            {
               // send Server the ok to start receiving the mail
               clientSocket.sendMessage("OK\0");
               mailOutput = clientSocket.recvMessage();
               if (mailOutput == ".\n")
               {
                  break;
               }
               cout << mailOutput;
            }
         }
      }

      else if (strcmp(command, "DEL\n\0") == 0)
      {
         // user
         fgets(buffer, BUF, stdin);
         buffer[strlen(buffer)] = '\0';
         clientSocket.sendMessage(buffer);

         // mail number
         fgets(buffer, BUF, stdin);
         buffer[strlen(buffer)] = '\0';
         clientSocket.sendMessage(buffer);

         cout << clientSocket.recvMessage() << endl;
      }

      else if (strcmp(command, "QUIT\n\0") == 0)
      {
         break;
      }

      else
      {
         cout << "Unknown command!" << endl;
      }
   }
   return EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd38, %rsp            # imm = 0xD38
movq %rsi, %r14
movl %edi, %ebx
leaq -0x130(%rbp), %r15
movq %r15, %rdi
callq 0x261c
movq %r15, %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x2968
movq 0x8(%r14), %rbx
movq 0x10(%r14), %rsi
leaq -0x530(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x20d0
movq -0x530(%rbp), %r14
callq 0x2040
movq %rax, %r13
movl (%rax), %r12d
movl $0x0, (%rax)
leaq -0x930(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x22c0
cmpq %r14, (%r15)
je 0x40fa
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x4106
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x4106
testl %ecx, %ecx
jne 0x3742
movl %r12d, (%r13)
leaq -0xd60(%rbp), %rdi
movq %rbx, %rsi
movl %eax, %edx
callq 0x3316
leaq -0x520(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3768
callq 0x21f0
leaq -0xd60(%rbp), %rdi
callq 0x3352
leaq -0xd60(%rbp), %rdi
callq 0x338a
leaq -0xd60(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
movq %rax, %rbx
testq %rax, %rax
je 0x37b5
movq %rbx, %rdi
callq 0x20f0
movq 0x3830(%rip), %rdi      # 0x6fd8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2270
jmp 0x37d3
movq 0x381c(%rip), %rax      # 0x6fd8
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x20(%rax,%rcx), %esi
orl $0x1, %esi
callq 0x2360
movq 0x37fe(%rip), %rdi      # 0x6fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0x37e3(%rip), %rdi      # 0x6fd8
callq 0x2030
movq %rax, %rdi
callq 0x2160
movq %r13, -0x78(%rbp)
movq 0x37c3(%rip), %r14      # 0x6fd0
leaq -0xd60(%rbp), %r12
leaq -0x530(%rbp), %r13
movq (%r14), %rdx
leaq -0x930(%rbp), %rbx
movq %rbx, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %rbx, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %rbx, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movl -0x930(%rbp), %eax
movl $0x444e4553, %ecx       # imm = 0x444E4553
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x38fb
movl -0x930(%rbp), %eax
movl $0x5453494c, %ecx       # imm = 0x5453494C
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x39c0
movl -0x930(%rbp), %eax
movl $0x44414552, %ecx       # imm = 0x44414552
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x3ebc
movl -0x930(%rbp), %eax
movl $0xa4c4544, %ecx        # imm = 0xA4C4544
xorl %ecx, %eax
movzbl -0x92c(%rbp), %ecx
orl %eax, %ecx
je 0x4044
movl -0x930(%rbp), %eax
movl $0x54495551, %ecx       # imm = 0x54495551
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
movl $0x10, %edx
orl %eax, %ecx
leaq 0x18b3(%rip), %rbx      # 0x51a3
jne 0x39ac
jmp 0x40b6
movl $0x4, %ebx
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
decl %ebx
jne 0x3900
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
cmpw $0xa2e, -0x530(%rbp)    # imm = 0xA2E
jne 0x395f
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movl -0x530(%rbp), %eax
movl $0xa2e, %ecx            # imm = 0xA2E
xorl %ecx, %eax
movzbl -0x52e(%rbp), %ecx
orw %ax, %cx
jne 0x3934
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
movq %rax, %rbx
testq %rax, %rax
je 0x3e67
movq %rbx, %rdi
callq 0x20f0
movq %rax, %rdx
movq 0x3625(%rip), %rdi      # 0x6fd8
movq %rbx, %rsi
callq 0x2270
jmp 0x3e85
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
xorl %ecx, %ecx
movq %rcx, -0x40(%rbp)
movb %cl, -0x38(%rbp)
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq %rcx, -0x68(%rbp)
movb %cl, -0x60(%rbp)
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
movq %rax, %rbx
movq -0x68(%rbp), %r14
movq %rax, %rdi
callq 0x20f0
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq %rax, %r8
callq 0x2320
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x3589(%rip), %rdi      # 0x6fd8
callq 0x2270
leaq -0x70(%rbp), %rbx
movq %rbx, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x22b0
leaq -0xb8(%rbp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x2240
movq -0xb8(%rbp), %rsi
leaq -0x98(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0x20d0
movq -0x98(%rbp), %rbx
movq -0x78(%rbp), %rax
movl (%rax), %r14d
movl $0x0, (%rax)
movq %rbx, %rdi
leaq -0x100(%rbp), %rsi
movl $0xa, %edx
callq 0x22c0
cmpq %rbx, -0x100(%rbp)
je 0x40e2
movq %rax, %r15
addq $-0x80000000, %rax      # imm = 0x80000000
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
cmpq %rcx, %rax
jb 0x40ee
movq -0x78(%rbp), %rax
movl (%rax), %eax
cmpl $0x22, %eax
je 0x40ee
testl %eax, %eax
jne 0x3b00
movq -0x78(%rbp), %rax
movl %r14d, (%rax)
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x3b18
callq 0x21f0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b30
callq 0x21f0
movq %r15, -0xe0(%rbp)
testl %r15d, %r15d
jle 0x3e38
movl $0x1, %eax
movq %rax, -0x50(%rbp)
movq %r12, %rdi
leaq 0x1665(%rip), %rsi      # 0x51b8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
movq %rax, %rbx
movq -0x40(%rbp), %r14
movq %rax, %rdi
callq 0x20f0
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
movq %r14, %rdx
leaq -0xa8(%rbp), %r14
movq %rbx, %rcx
movq %rax, %r8
callq 0x2320
movq %r14, %r15
movq %r13, %r14
movq %r12, %r13
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movl $0x5f, %esi
xorl %edx, %edx
callq 0x22b0
leaq 0x1(%rax), %rdx
movq -0x40(%rbp), %rcx
leaq -0x100(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2240
movq -0xf8(%rbp), %rsi
movl $0x1, %ecx
movq %rbx, %rdi
xorl %edx, %edx
movl $0x20, %r8d
callq 0x2390
movq %r15, -0xb8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c0f
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x3c16
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r13, %r12
movq 0x8(%rax), %rdx
movq %rdx, -0xb0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, -0x50(%rbp)
movq %r14, %r13
movl $0xd1b71759, %edx       # imm = 0xD1B71759
jb 0x3c84
movl $0x4, %ebx
movq -0x50(%rbp), %rax
cmpl $0x63, %eax
jbe 0x3c7d
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c82
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c84
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c4f
addl $-0x3, %ebx
jmp 0x3c84
addl $-0x2, %ebx
jmp 0x3c84
decl %ebx
movl %ebx, %esi
leaq -0xc8(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
movl $0x2d, %edx
callq 0x2280
movq -0xd8(%rbp), %rdi
movl %ebx, %esi
movq -0x50(%rbp), %rdx
callq 0x424a
movq -0xb8(%rbp), %rcx
movl $0xf, %edi
cmpq %r15, %rcx
je 0x3ccf
movq -0xa8(%rbp), %rdi
movq -0xb0(%rbp), %r8
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x3d0a
movl $0xf, %edi
leaq -0xc8(%rbp), %r9
cmpq %r9, %rsi
je 0x3d05
movq -0xc8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x3d18
leaq -0xb8(%rbp), %rdi
callq 0x2090
jmp 0x3d28
leaq -0xd8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2260
leaq -0x88(%rbp), %rsi
movq %rsi, -0x98(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3d55
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0x3d5b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x90(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x48(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x22a0
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x3da2
callq 0x21f0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3dba
callq 0x21f0
movq -0xb8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3dcb
callq 0x21f0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x3de3
callq 0x21f0
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x31e6(%rip), %rdi      # 0x6fd8
callq 0x2270
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2160
movq -0x50(%rbp), %rcx
leal 0x1(%rcx), %eax
cmpl -0xe0(%rbp), %ecx
movq %rax, -0x50(%rbp)
jne 0x3b49
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x3e4a
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
movq 0x3174(%rip), %r14      # 0x6fd0
jne 0x403a
jmp 0x381b
movq 0x316a(%rip), %rcx      # 0x6fd8
movq (%rcx), %rax
movq -0x18(%rax), %rax
leaq (%rcx,%rax), %rdi
movl 0x20(%rcx,%rax), %esi
orl $0x1, %esi
callq 0x2360
movq 0x314c(%rip), %rcx      # 0x6fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0x312e(%rip), %rdi      # 0x6fd8
callq 0x2030
movq %rax, %rdi
callq 0x2160
jmp 0x381b
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movb $0x0, -0x38(%rbp)
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
leaq -0x70(%rbp), %rdi
movq %rax, %rsi
leaq -0x98(%rbp), %rdx
callq 0x20d0
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x3079(%rip), %rdi      # 0x6fd8
callq 0x2270
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2160
leaq -0x70(%rbp), %rdi
leaq 0x1207(%rip), %rsi      # 0x51a0
callq 0x2080
testl %eax, %eax
jne 0x4017
jmp 0x3fb8
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x3025(%rip), %rdi      # 0x6fd8
callq 0x2270
movq %r12, %rdi
leaq 0x11f6(%rip), %rsi      # 0x51b8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
movq %rax, %rbx
movq -0x40(%rbp), %r14
movq %rax, %rdi
callq 0x20f0
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq 0x2fd8(%rip), %r14      # 0x6fd0
movq %rbx, %rcx
movq %rax, %r8
callq 0x2320
leaq -0x48(%rbp), %rdi
leaq 0x118f(%rip), %rsi      # 0x519d
callq 0x2080
testl %eax, %eax
jne 0x3fa4
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4029
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x381b
callq 0x21f0
jmp 0x381b
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x362e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x35de
jmp 0x3995
leaq -0xd60(%rbp), %rdi
callq 0x3688
leaq -0x130(%rbp), %rdi
callq 0x2eb0
xorl %eax, %eax
addq $0xd38, %rsp            # imm = 0xD38
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf76(%rip), %rdi       # 0x505f
callq 0x2140
leaq 0xf6a(%rip), %rdi       # 0x505f
callq 0x22d0
leaq 0xf5e(%rip), %rdi       # 0x505f
callq 0x2140
leaq 0xf52(%rip), %rdi       # 0x505f
callq 0x22d0
movq %rax, %rbx
jmp 0x4134
jmp 0x4119
movq %rax, %rbx
jmp 0x4236
jmp 0x41fe
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x4134
movl %r12d, (%r13)
leaq -0x520(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4236
callq 0x21f0
jmp 0x4236
jmp 0x41fe
jmp 0x4159
movq %rax, %rbx
jmp 0x4218
movq %rax, %rbx
jmp 0x4192
jmp 0x4203
movq %rax, %rbx
movq -0x78(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x417a
movl %r14d, (%rax)
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x4192
callq 0x21f0
leaq -0xa8(%rbp), %rax
movq -0xb8(%rbp), %rdi
jmp 0x41ee
jmp 0x4203
jmp 0x4203
jmp 0x41fe
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x41cf
callq 0x21f0
jmp 0x41cf
jmp 0x4203
movq %rax, %rbx
jmp 0x41e0
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r15, %rdi
je 0x41e0
callq 0x21f0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x4206
callq 0x21f0
jmp 0x4206
jmp 0x4203
jmp 0x41fe
movq %rax, %rbx
jmp 0x422a
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4218
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x422a
callq 0x21f0
leaq -0xd60(%rbp), %rdi
callq 0x3688
leaq -0x130(%rbp), %rdi
callq 0x2eb0
movq %rbx, %rdi
callq 0x2370