// File: /workspace/github_cpp_makefile_star2_O1/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 0x2980
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 0x414e
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x415a
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x415a
testl %ecx, %ecx
jne 0x3792
movl %r12d, (%r13)
leaq -0xd60(%rbp), %rdi
movq %rbx, %rsi
movl %eax, %edx
callq 0x3372
leaq -0x520(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37b8
callq 0x21f0
leaq -0xd60(%rbp), %rdi
callq 0x33a2
leaq -0xd60(%rbp), %rdi
callq 0x33da
leaq -0xd60(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x362e
movq %rax, %rbx
testq %rax, %rax
je 0x3805
movq %rbx, %rdi
callq 0x20f0
movq 0x37e0(%rip), %rdi      # 0x6fd8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2270
jmp 0x3823
movq 0x37cc(%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 0x37ae(%rip), %rdi      # 0x6fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0x3793(%rip), %rdi      # 0x6fd8
callq 0x2030
movq %rax, %rdi
callq 0x2160
movq %r13, -0x78(%rbp)
movq 0x3773(%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 0x367e
movl -0x930(%rbp), %eax
movl $0x444e4553, %ecx       # imm = 0x444E4553
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x394b
movl -0x930(%rbp), %eax
movl $0x5453494c, %ecx       # imm = 0x5453494C
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x3a10
movl -0x930(%rbp), %eax
movl $0x44414552, %ecx       # imm = 0x44414552
xorl %ecx, %eax
movzwl -0x92c(%rbp), %ecx
xorl $0xa, %ecx
orl %eax, %ecx
je 0x3f10
movl -0x930(%rbp), %eax
movl $0xa4c4544, %ecx        # imm = 0xA4C4544
xorl %ecx, %eax
movzbl -0x92c(%rbp), %ecx
orl %eax, %ecx
je 0x4098
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 0x1863(%rip), %rbx      # 0x51a3
jne 0x39fc
jmp 0x410a
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 0x367e
decl %ebx
jne 0x3950
movq (%r14), %rdx
movq %r13, %rdi
movl $0x400, %esi            # imm = 0x400
callq 0x2330
cmpw $0xa2e, -0x530(%rbp)    # imm = 0xA2E
jne 0x39af
movq %r13, %rdi
callq 0x20f0
movb $0x0, -0x530(%rbp,%rax)
movq %r12, %rdi
movq %r13, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x367e
movl -0x530(%rbp), %eax
movl $0xa2e, %ecx            # imm = 0xA2E
xorl %ecx, %eax
movzbl -0x52e(%rbp), %ecx
orw %ax, %cx
jne 0x3984
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x362e
movq %rax, %rbx
testq %rax, %rax
je 0x3ebb
movq %rbx, %rdi
callq 0x20f0
movq %rax, %rdx
movq 0x35d5(%rip), %rdi      # 0x6fd8
movq %rbx, %rsi
callq 0x2270
jmp 0x3ed9
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 0x367e
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 0x362e
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 0x3539(%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 0x4136
movq %rax, %r15
addq $-0x80000000, %rax      # imm = 0x80000000
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
cmpq %rcx, %rax
jb 0x4142
movq -0x78(%rbp), %rax
movl (%rax), %eax
cmpl $0x22, %eax
je 0x4142
testl %eax, %eax
jne 0x3b50
movq -0x78(%rbp), %rax
movl %r14d, (%rax)
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x3b68
callq 0x21f0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b80
callq 0x21f0
movq %r15, -0xe0(%rbp)
testl %r15d, %r15d
jle 0x3e8c
movl $0x1, %eax
movq %rax, -0x50(%rbp)
movq %r12, %rdi
leaq 0x1615(%rip), %rsi      # 0x51b8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x367e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x362e
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 0x3c5f
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x3c66
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 0x3cd4
movl $0x4, %ebx
movq -0x50(%rbp), %rax
cmpl $0x63, %eax
jbe 0x3ccd
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3cd2
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3cd4
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c9f
addl $-0x3, %ebx
jmp 0x3cd4
addl $-0x2, %ebx
jmp 0x3cd4
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 0x429e
movq -0xb8(%rbp), %rcx
movl $0xf, %esi
cmpq %r15, %rcx
je 0x3d1f
movq -0xa8(%rbp), %rsi
movq -0xb0(%rbp), %r8
movq -0xd0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x3d57
movl $0xf, %esi
leaq -0xc8(%rbp), %rdi
cmpq %rdi, -0xd8(%rbp)
je 0x3d52
movq -0xc8(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x3d6c
movq -0xd8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x2090
jmp 0x3d7c
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 0x3da9
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0x3daf
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 0x3df6
callq 0x21f0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3e0e
callq 0x21f0
movq -0xb8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3e1f
callq 0x21f0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x3e37
callq 0x21f0
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x3192(%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 0x3b99
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x3e9e
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
movq 0x3120(%rip), %r14      # 0x6fd0
jne 0x408e
jmp 0x386b
movq 0x3116(%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 0x30f8(%rip), %rcx      # 0x6fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0x30da(%rip), %rdi      # 0x6fd8
callq 0x2030
movq %rax, %rdi
callq 0x2160
jmp 0x386b
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 0x367e
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 0x367e
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 0x362e
leaq -0x70(%rbp), %rdi
movq %rax, %rsi
leaq -0x98(%rbp), %rdx
callq 0x20d0
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x3025(%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 0x11b3(%rip), %rsi      # 0x51a0
callq 0x2080
testl %eax, %eax
jne 0x406b
jmp 0x400c
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x2fd1(%rip), %rdi      # 0x6fd8
callq 0x2270
movq %r12, %rdi
leaq 0x11a2(%rip), %rsi      # 0x51b8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x367e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x362e
movq %rax, %rbx
movq -0x40(%rbp), %r14
movq %rax, %rdi
callq 0x20f0
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq 0x2f84(%rip), %r14      # 0x6fd0
movq %rbx, %rcx
movq %rax, %r8
callq 0x2320
leaq -0x48(%rbp), %rdi
leaq 0x113b(%rip), %rsi      # 0x519d
callq 0x2080
testl %eax, %eax
jne 0x3ff8
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x407d
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x386b
callq 0x21f0
jmp 0x386b
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 0x367e
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 0x367e
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x362e
jmp 0x39e5
leaq -0xd60(%rbp), %rdi
callq 0x36d8
leaq -0x130(%rbp), %rdi
callq 0x2ee4
xorl %eax, %eax
addq $0xd38, %rsp            # imm = 0xD38
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf22(%rip), %rdi       # 0x505f
callq 0x2140
leaq 0xf16(%rip), %rdi       # 0x505f
callq 0x22d0
leaq 0xf0a(%rip), %rdi       # 0x505f
callq 0x2140
leaq 0xefe(%rip), %rdi       # 0x505f
callq 0x22d0
movq %rax, %rbx
jmp 0x4188
jmp 0x416d
movq %rax, %rbx
jmp 0x428a
jmp 0x4252
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x4188
movl %r12d, (%r13)
leaq -0x520(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x428a
callq 0x21f0
jmp 0x428a
jmp 0x4252
jmp 0x41ad
movq %rax, %rbx
jmp 0x426c
movq %rax, %rbx
jmp 0x41e6
jmp 0x4257
movq %rax, %rbx
movq -0x78(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x41ce
movl %r14d, (%rax)
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x41e6
callq 0x21f0
leaq -0xa8(%rbp), %rax
movq -0xb8(%rbp), %rdi
jmp 0x4242
jmp 0x4257
jmp 0x4257
jmp 0x4252
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x4223
callq 0x21f0
jmp 0x4223
jmp 0x4257
movq %rax, %rbx
jmp 0x4234
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4234
callq 0x21f0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x425a
callq 0x21f0
jmp 0x425a
jmp 0x4257
jmp 0x4252
movq %rax, %rbx
jmp 0x427e
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x426c
callq 0x21f0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x427e
callq 0x21f0
leaq -0xd60(%rbp), %rdi
callq 0x36d8
leaq -0x130(%rbp), %rdi
callq 0x2ee4
movq %rbx, %rdi
callq 0x2370