// File: /workspace/github_c_makefile_star2_O2/rafa9811[P]theIndiependenceGame/interact.c
// Function: interact_play
State interact_play(State state, Interact *interact) {
  char choice;
  char name[256], msg[1024], dlg[1024];
  int ret,px,py,correctans=0,id=0;

  if(state>MEETING3||!interact){
      exit(-1);
  }
  
  if(IN(meetings)==5 && IN(boxes)==5 && IN(printers)==5) return QUIT2;

  /*We read the pressed key*/
  choice = fgetc(stdin);
  /*And now depending on our state what we pressed has different effects:*/
  switch (state){
      /*If we have just picked and object. (This state is for erasing from our screen the object we picked)*/
    case(PICK):{
        if(choice=='a'||choice=='A'){
            dialog(" ");
            return NOTHING;
        }
        if(choice=='q'||choice=='Q'){
            goto quit;
        }
        else return PICK;
    }
      /*If we just talked to an NPC.*/
    case(TALK):{
        if(choice=='a'||choice=='A'){
            dialog(" ");
            return NOTHING;
        }
        if(choice=='q'||choice=='Q'){
            goto quit;
        }
        else return TALK;
    }
      /*We just opened the inventory window.*/
    case(INVENTORY):{
      /*We close the inventory window*/
        if(choice=='i'||choice=='I'){
            dialog(" ");
            return NOTHING;
        }
        if(choice=='q'||choice=='Q'){
            goto quit;
        }
      /*We want to use one of our 10 objects.*/
        if(choice>='0'&&choice<='9'){
            ret = bg_use(IN(inventory),IN(stat),choice-'0',name,&id);
            switch(ret){
              /*Using a ballot box*/
                case(B_BOX):{
                    ret = bg_box(IN(inventory),IN(player),IN(map),IN(stat),choice-'0');
                    if(ret == 1){
                        dialog("You placed a ballot box! Now more people will vote.");
                        IN(boxes)++;
                        return INVENTORY;
                    }
                    else if(ret == 2){
                        dialog("You already have one ballot box placed here...");
                        return INVENTORY;
                    }
                    else if(ret == 0){
                        dialog("You can't place a ballot box here...");
                        return INVENTORY;
                    }
                    else exit(0);
                    }
              /*Using another object*/
                case(1):{
                  switch(id){
                    case(3):{
                      dialog("You used the power of fake news to spread your message even more! Everything went better, just take a look at the stats now...");
                      break;
                    }
                    case(7):{
                      dialog("The canvas was meant to cover the Looney Tunes boat all the time! A lot of civil guards got now in. Danger decreased!");
                      break;
                    }
                    case(8):{
                      dialog("As El Pais will suspect, you now have the full control of Twitter!");
                      break;
                    }
                    case(6):{
                      dialog("Thanks to the sacrifice that means wearing this, your danger decreased!");
                      break;
                    }
                    case(5):{
                      dialog("It's impossible to brush that perfect hair! Chaos increased!");
                      break;
                    }
                    case(13):{
                      dialog("You threw the PujolToken to the floor, and from the smoke JordiPujol appeared to give you money. You won 100 Ç!");
                      break;
                    }
                    case(14):{
                      dialog("Your incredibly disgusting supper made angry the civil guard, so they are occupied now tweeting. Danger decreased!");
                      break;
                    }
                    case(15):{
                      dialog("Filling your pockets with sand won't make Catalonia independent. What are you doing?");
                      break;
                    }
                    default:{
                      sprintf(msg,"You used %s.",name);
                      dialog(msg);
                      break;
                    }
                    return INVENTORY;
                  }
                }
                case(0):{
                    return INVENTORY;
                }
                default: exit(0);
            }
        }
        else return INVENTORY;
    }
    /*We interacted with the shop-keeper, so we are in the shop menu:*/
    case(SHOP):{
        /*Closing the shop window*/
        if(choice=='i'||choice=='I'){
            dialog("See you soon, President!");
            return NOTHING;
        }
        if(choice=='q'||choice=='Q'){
            goto quit;
        }
        /*Buying an object*/
        if(choice>='0'&&choice<='9'){
            ret = bg_buy(IN(shop),IN(inventory),IN(stat),choice-'0',name);
            switch(ret){
                case(1):{
                    sprintf(msg,"You bought %s.",name);
                    dialog(msg);
                return SHOP;
                }
                case(0):{
                    dialog("You don't have enough money...");
                    return SHOP;
                }
                case(B_FULL):{
                    dialog("Your inventory is full! Use one of all your objects before buying another one.");
                    return SHOP;
                }
                default: exit(0);
            }
        }
        else return SHOP;
  }
    /*We have just interacted with a lectern, so that we entered in meeting mode, with the game waiting for answering the first question.*/
    case(MEETING1):{
        if(choice>='1'&&choice<='2'){ /*The if is written like this in case of adding more answers per question.*/
          bg_meeting(IN(meeting),IN(player),IN(objects),IN(stat),0,choice-'0',msg,&correctans);
          if(correctans==0)IN(correct)=0;
          dialog(msg);
          return MEETING2;
        }
        else return MEETING1;
    }
    /*In a meeting answering the second question.*/
    case(MEETING2):{
        if(choice>='1'&&choice<='2'){ /*The if is written like this in case of adding more answers per question.*/
          bg_meeting(IN(meeting),IN(player),IN(objects),IN(stat),1,choice-'0',msg,&correctans);
          if(correctans==0)IN(correct)=0;
          dialog(msg);
          return MEETING3;
        }
        else return MEETING2;
    }
    /*Answering the third question*/
    case(MEETING3):{
        if(choice>='1'&&choice<='2'){ /*The if is written like this in case of adding more answers per question.*/
          bg_meeting(IN(meeting),IN(player),IN(objects),IN(stat),2,choice-'0',msg,&correctans);
          if(correctans==0)IN(correct)=0;
          if(IN(correct)==1)dialog("Excelent meeting President! Now your people will keep distracted the civil guard as your chaos went up!");
          else dialog("What have you done? Do you even know yourself? Your meeting has not been good at all, and you know chaos is important so as to keep the civil guard distracted... Next time talk more with the people.");
          return TALK;
        }
        else return MEETING3;
    }
    /*We pressed Q and the game is asking us to confirm by pressing again Q that we'd like to end the game.*/
    case(QUIT1):{
      if(choice=='q' || choice=='Q') return QUIT2;
      else{
          dialog(" ");
          return NOTHING;
      }
    }
    /*The rest of the situations: When we are moving in the city and we can either open the inventory, quit the game, interact with something as well as keep moving*/
    default:{
        if(choice=='q' || choice=='Q') goto quit;
        if(choice=='i' || choice=='I'){
            dialog("Welcome to your inventory! Press I to close it or press a number for using an object.");
            return INVENTORY;
        }
        if (choice == 27 && fgetc(stdin) == '[') { /* The key is an arrow key */
            choice = fgetc(stdin);
            px = player_get_px(IN(player));
            py = player_get_py(IN(player));
            IN(px)=px;
            IN(py)=py;
            switch(choice) {
                case('A'):{ /*Up*/
                    ret = bg_move(IN(player),px,py-1,IN(map),msg);
                    break;
                }
                case('B'):{ /*Down*/
                    ret = bg_move(IN(player),px,py+1,IN(map),msg);
                    break;
                }
                case('C'):{ /*Left*/
                    ret = bg_move(IN(player),px+1,py,IN(map),msg);
                    break;
                }
                case('D'):{ /*Right*/
                    ret = bg_move(IN(player),px-1,py,IN(map),msg);
                    break;
                }
            }
            switch(ret){
                /*We can't move to that position.*/
                case(B_NOTHING):return NOTHING;
                /*We moved in our screen.*/
                case(B_MOVE):return MOVE;
                /*We changed room. Note that we check if the civil guard is in the screen we moved to, so as to initiate a danger clock.*/
                case(B_SCREEN):{
                    bg_updateRoom(IN(objects),IN(map),IN(player));
                    IN(danger)=bg_checkDanger(IN(map),IN(player),IN(stat));
                    if(IN(danger)==0) dialog(msg);
                    else dialog("Watch out! The civil guard will find you if you stay here too much time!");
                    return SCREEN;
                }
                default: exit(0);
            }
        }
        /*We pressed the interact button.*/
        if(choice=='a' || choice=='A'){
            ret = bg_pick(IN(inventory),IN(player),IN(objects),name,IN(map));
            switch(ret){
                /*There's nothing near to us.*/
                case(B_NOTHING):{
                    return NOTHING;
                }
                /*We picked an object.*/
                case(B_PICK):{
                    sprintf(msg,"You picked %s.",name);
                    dialog(msg);
                    bg_updateRoom(IN(objects),IN(map),IN(player));
                    return PICK;
                }
                /*We talked to someone.*/
                case(B_NPC):{
                    ret = bg_talk(IN(dialogs),IN(player),IN(objects),dlg,name);
                    if (ret==1){
                        sprintf(msg,"%s: %s",name,dlg);
                        dialog(msg);
                        return TALK;
                    }
                }
                /*We started a meeting.*/
                case(B_MEETING):{
                  IN(correct)=1;
                    ret = bg_meeting(IN(meeting),IN(player),IN(objects),IN(stat),0,0,msg,&correctans);
                    if(ret == 3){
                      dialog("You've already done this meeting, President!");
                      return TALK;
                    }
                    dialog(msg);
                    IN(meetings)++;
                    return MEETING1;
                }
                /*We interacted with the shopkeeper, so that we open the shop menu.*/
                case(B_SHOP):{
                    dialog("Welcome to the shop! To exit press I, to buy any product press a number.");
                    return SHOP;
                }
                /*We turned on a printer.*/
                case(B_PRINTER):{
                    dialog("You just turned on a printer! Now the people will have more ballots to vote.");
                    stat_add_motivation(IN(stat),PRINTER_MOTIVATION);
                    IN(printers)++;
                    return TALK;
                }
                case(B_FULL):{
                  dialog("Your inventory is full! Use one of all your objects before picking up another one.");
                  return TALK;
                }
                default: exit(0);
            }
        }
        else return NOTHING;
    }

}
    /*Tag for the quit dialog:*/
    quit: dialog("Are you sure you want to quit? Press Q again to quit, press any key to continue playing");
    return QUIT1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x918, %rsp            # imm = 0x918
andl $0x0, 0x8(%rsp)
andl $0x0, 0xc(%rsp)
cmpl $0xb, %edi
ja 0x4bba
movq %rsi, %rbx
testq %rsi, %rsi
je 0x4bba
movl %edi, %r14d
cmpl $0x5, 0x448(%rbx)
pushq $0x1
popq %rbp
jne 0x43f0
cmpl $0x5, 0x440(%rbx)
jne 0x43f0
cmpl $0x5, 0x444(%rbx)
je 0x4af0
movq 0x5be9(%rip), %r15      # 0x9fe0
movq (%r15), %rdi
callq 0x10d0
cmpl $0xb, %r14d
ja 0x442b
movl %r14d, %ecx
leaq 0x1d95(%rip), %rdx      # 0x61a4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
andl $0xdf, %eax
cmpl $0x51, %eax
jne 0x45f2
jmp 0x4af0
movl %eax, %r14d
andl $0xdf, %r14d
cmpl $0x51, %r14d
je 0x4632
cmpl $0x49, %r14d
jne 0x464f
addq $0x40, %rbx
leaq 0x23f4(%rip), %rsi      # 0x6848
pushq $0x56
popq %rdx
movq %rbx, %rdi
callq 0x1100
pushq $0x7
jmp 0x4aef
movsbl %al, %r9d
leal -0x31(%r9), %eax
cmpl $0x1, %eax
ja 0x4aed
movq 0x38(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq (%rbx), %rsi
movq 0x8(%rbx), %rcx
addl $-0x30, %r9d
leaq 0x8(%rsp), %r14
leaq 0x110(%rsp), %rax
xorl %r8d, %r8d
pushq %r14
pushq %rax
callq 0x3443
popq %rcx
popq %rdx
cmpl $0x0, (%r14)
jne 0x44b1
andl $0x0, 0x458(%rbx)
addq $0x40, %rbx
leaq 0x110(%rsp), %rsi
movq %rbx, %rdi
callq 0x1050
jmp 0x454b
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x51, %cl
je 0x4632
andl $0xdf, %eax
cmpl $0x41, %eax
je 0x45f2
pushq $0x4
jmp 0x4aef
movsbl %al, %r9d
leal -0x31(%r9), %eax
cmpl $0x1, %eax
ja 0x454b
movq 0x38(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq (%rbx), %rsi
movq 0x8(%rbx), %rcx
addl $-0x30, %r9d
leaq 0x8(%rsp), %r14
leaq 0x110(%rsp), %rax
pushq $0x1
popq %r8
pushq %r14
pushq %rax
callq 0x3443
popq %rcx
popq %rdx
cmpl $0x0, (%r14)
jne 0x4535
andl $0x0, 0x458(%rbx)
addq $0x40, %rbx
leaq 0x110(%rsp), %rsi
movq %rbx, %rdi
callq 0x1050
jmp 0x45b7
pushq $0xa
jmp 0x4aef
movsbl %al, %r9d
leal -0x31(%r9), %eax
cmpl $0x1, %eax
ja 0x45b7
movq 0x38(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq (%rbx), %rsi
movq 0x8(%rbx), %rcx
addl $-0x30, %r9d
leaq 0x8(%rsp), %r14
leaq 0x110(%rsp), %rax
pushq $0x2
popq %r8
pushq %r14
pushq %rax
callq 0x3443
popq %rcx
popq %rdx
cmpl $0x0, (%r14)
je 0x4861
cmpl $0x1, 0x458(%rbx)
jne 0x4868
addq $0x40, %rbx
leaq 0x216a(%rip), %rsi      # 0x6719
pushq $0x68
popq %rdx
jmp 0x4878
pushq $0xb
jmp 0x4aef
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x51, %cl
je 0x4632
andl $0xdf, %eax
cmpl $0x41, %eax
je 0x45f2
jmp 0x4880
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x51, %cl
je 0x4632
movl %eax, %ecx
andl $0xdf, %ecx
cmpl $0x49, %ecx
jne 0x46bc
movw $0x20, 0x40(%rbx)
pushq $0x2
jmp 0x4aef
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x51, %cl
je 0x4632
movl %eax, %ecx
andl $0xdf, %ecx
cmpl $0x49, %ecx
jne 0x4769
movups 0x206b(%rip), %xmm0     # 0x668c
movups %xmm0, 0x49(%rbx)
movups 0x2057(%rip), %xmm0     # 0x6683
movups %xmm0, 0x40(%rbx)
jmp 0x45f8
addq $0x40, %rbx
leaq 0x23d6(%rip), %rsi      # 0x6a13
pushq $0x58
popq %rdx
movq %rbx, %rdi
callq 0x1100
xorl %ebp, %ebp
jmp 0x4af0
cmpb $0x1b, %al
jne 0x47e1
movq (%r15), %rdi
callq 0x10d0
cmpl $0x5b, %eax
jne 0x47e1
movq (%r15), %rdi
callq 0x10d0
movl %eax, %r14d
movq (%rbx), %rdi
xorl %eax, %eax
callq 0x3b81
movl %eax, %ebp
movq (%rbx), %rdi
xorl %eax, %eax
callq 0x3b8d
movl %ebp, 0x450(%rbx)
movl %eax, 0x454(%rbx)
movsbl %r14b, %ecx
addl $-0x41, %ecx
cmpl $0x3, %ecx
ja 0x4bc2
leaq 0x1b8c(%rip), %rdx      # 0x6238
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
decl %eax
jmp 0x48f2
movsbl %al, %r14d
addl $-0x30, %r14d
pushq $0x7
popq %rbp
cmpl $0x9, %r14d
ja 0x4af0
movq 0x8(%rbx), %rsi
movq 0x20(%rbx), %rdi
leaq 0x10(%rsp), %rcx
leaq 0xc(%rsp), %r8
movl %r14d, %edx
callq 0x3129
testl %eax, %eax
je 0x4af0
cmpl $0x1, %eax
je 0x4887
cmpl $0x6, %eax
jne 0x4bc2
movq 0x20(%rbx), %rdi
movq 0x10(%rbx), %rdx
movq (%rbx), %rsi
movq 0x8(%rbx), %rcx
movl %r14d, %r8d
callq 0x3053
testl %eax, %eax
je 0x4994
cmpl $0x2, %eax
je 0x4972
cmpl $0x1, %eax
jne 0x4bc2
movups 0x1bdb(%rip), %xmm0     # 0x6318
movups %xmm0, 0x60(%rbx)
movups 0x1bc0(%rip), %xmm0     # 0x6308
movups %xmm0, 0x50(%rbx)
movups 0x1ba5(%rip), %xmm0     # 0x62f8
movups %xmm0, 0x40(%rbx)
movl $0x2e6574, 0x70(%rbx)   # imm = 0x2E6574
incl 0x440(%rbx)
jmp 0x4af0
movsbl %al, %ecx
addl $-0x30, %ecx
pushq $0x8
popq %rbp
cmpl $0x9, %ecx
ja 0x4af0
movq 0x28(%rbx), %rdi
movq 0x8(%rbx), %rdx
movq 0x20(%rbx), %rsi
leaq 0x10(%rsp), %r8
callq 0x325e
testw %ax, %ax
je 0x48d1
movzwl %ax, %eax
cmpl $0xb, %eax
je 0x48b6
cmpl $0x1, %eax
jne 0x4bc2
leaq 0x1ee6(%rip), %rsi      # 0x669c
leaq 0x110(%rsp), %r14
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x11b0
addq $0x40, %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1050
jmp 0x4af0
pushq $0x2
popq %rbp
cmpl $0x41, %r14d
jne 0x4af0
movq 0x20(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq (%rbx), %rsi
movq 0x10(%rbx), %r8
leaq 0x10(%rsp), %rcx
callq 0x2e83
cmpl $0xb, %eax
ja 0x4bc2
movl %eax, %eax
leaq 0x19ef(%rip), %rcx      # 0x6208
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x20be(%rip), %rsi      # 0x68e7
leaq 0x110(%rsp), %r14
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x11b0
leaq 0x40(%rbx), %rdi
movq %r14, %rsi
callq 0x1050
movq 0x18(%rbx), %rdi
movq (%rbx), %rdx
movq 0x10(%rbx), %rsi
callq 0x2d06
jmp 0x44e6
andl $0x0, 0x458(%rbx)
addq $0x40, %rbx
leaq 0x1f0e(%rip), %rsi      # 0x6781
movl $0xc7, %edx
movq %rbx, %rdi
callq 0x1100
pushq $0x6
jmp 0x4aef
movl 0xc(%rsp), %eax
addl $-0x3, %eax
cmpl $0xc, %eax
ja 0x4b14
leaq 0x1936(%rip), %rcx      # 0x61d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
addq $0x40, %rbx
leaq 0x1ace(%rip), %rsi      # 0x6380
pushq $0x7f
jmp 0x48c3
addq $0x40, %rbx
leaq 0x1e09(%rip), %rsi      # 0x66ca
pushq $0x4f
popq %rdx
movq %rbx, %rdi
callq 0x1100
jmp 0x4af0
movups 0x1de2(%rip), %xmm0     # 0x66ba
movups %xmm0, 0x4f(%rbx)
movups 0x1dc8(%rip), %xmm0     # 0x66ab
jmp 0x4b5a
incl %ebp
jmp 0x48f2
decl %ebp
jmp 0x48f2
incl %eax
movq (%rbx), %rdi
movq 0x10(%rbx), %rcx
leaq 0x110(%rsp), %r8
movl %ebp, %esi
movl %eax, %edx
callq 0x2ac0
testl %eax, %eax
je 0x45f8
cmpl $0x2, %eax
je 0x4927
cmpl $0x1, %eax
jne 0x4bc2
pushq $0x3
jmp 0x4aef
movq 0x18(%rbx), %rdi
movq (%rbx), %rdx
movq 0x10(%rbx), %rsi
callq 0x2d06
movq 0x10(%rbx), %rdi
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
callq 0x2e1c
movw %ax, 0x44c(%rbx)
addq $0x40, %rbx
testw %ax, %ax
je 0x4b00
leaq 0x1f3c(%rip), %rsi      # 0x689e
pushq $0x49
popq %rdx
movq %rbx, %rdi
callq 0x1100
jmp 0x4b10
movups 0x19d2(%rip), %xmm0     # 0x634b
movups %xmm0, 0x5f(%rbx)
movups 0x19b8(%rip), %xmm0     # 0x633c
movups %xmm0, 0x50(%rbx)
movups 0x199d(%rip), %xmm0     # 0x632c
jmp 0x4b5a
movups 0x19d0(%rip), %xmm0     # 0x636b
movups %xmm0, 0x50(%rbx)
movups 0x19b5(%rip), %xmm0     # 0x635b
movups %xmm0, 0x40(%rbx)
movabsq $0x2e2e2e65726568, %rax # imm = 0x2E2E2E65726568
movq %rax, 0x5d(%rbx)
jmp 0x4af0
addq $0x40, %rbx
leaq 0x1f62(%rip), %rsi      # 0x692a
pushq $0x49
popq %rdx
movq %rbx, %rdi
callq 0x1100
pushq $0x8
jmp 0x4aef
leaq 0x40(%rbx), %rdi
leaq 0x1f8e(%rip), %rsi      # 0x6973
pushq $0x4d
popq %rdx
callq 0x1100
movq 0x8(%rbx), %rdi
movl $0x96, %esi
callq 0x3f16
incl 0x444(%rbx)
jmp 0x4880
movq 0x30(%rbx), %rdi
movq (%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x510(%rsp), %rcx
leaq 0x10(%rsp), %r8
callq 0x3339
cmpl $0x1, %eax
jne 0x4a62
leaq 0x1ec7(%rip), %rsi      # 0x68f6
leaq 0x110(%rsp), %r14
leaq 0x10(%rsp), %rdx
leaq 0x510(%rsp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0x11b0
addq $0x40, %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1050
jmp 0x4880
movl $0x1, 0x458(%rbx)
movq 0x38(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq (%rbx), %rsi
movq 0x8(%rbx), %rcx
leaq 0x8(%rsp), %rax
leaq 0x110(%rsp), %r10
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %rax
pushq %r10
callq 0x3443
addq $0x10, %rsp
leaq 0x40(%rbx), %rdi
cmpl $0x3, %eax
jne 0x4ada
movups 0x1e70(%rip), %xmm0     # 0x691a
movups %xmm0, 0x1d(%rdi)
movups 0x1e58(%rip), %xmm0     # 0x690d
movups %xmm0, 0x10(%rdi)
movups 0x1e3d(%rip), %xmm0     # 0x68fd
movups %xmm0, (%rdi)
jmp 0x4880
addq $0x40, %rbx
leaq 0x1eed(%rip), %rsi      # 0x69c0
pushq $0x53
jmp 0x45b1
leaq 0x110(%rsp), %rsi
callq 0x1050
incl 0x448(%rbx)
pushq $0x9
popq %rbp
movl %ebp, %eax
addq $0x918, %rsp            # imm = 0x918
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x110(%rsp), %rsi
movq %rbx, %rdi
callq 0x1050
pushq $0x5
jmp 0x4aef
leaq 0x1b5b(%rip), %rsi      # 0x6676
jmp 0x47b6
addq $0x40, %rbx
leaq 0x1a12(%rip), %rsi      # 0x653d
pushq $0x71
jmp 0x48c3
movups 0x19f4(%rip), %xmm0     # 0x652d
movups %xmm0, 0x6d(%rbx)
movups 0x19dc(%rip), %xmm0     # 0x6520
movups %xmm0, 0x60(%rbx)
movups 0x19c1(%rip), %xmm0     # 0x6510
movups %xmm0, 0x50(%rbx)
movups 0x19a6(%rip), %xmm0     # 0x6500
movups %xmm0, 0x40(%rbx)
jmp 0x4af0
addq $0x40, %rbx
leaq 0x1a43(%rip), %rsi      # 0x65ae
pushq $0x73
jmp 0x48c3
addq $0x40, %rbx
leaq 0x1aa4(%rip), %rsi      # 0x6621
pushq $0x55
jmp 0x48c3
addq $0x40, %rbx
leaq 0x1929(%rip), %rsi      # 0x64b8
pushq $0x48
jmp 0x48c3
addq $0x40, %rbx
leaq 0x185e(%rip), %rsi      # 0x63ff
pushq $0x76
jmp 0x48c3
addq $0x40, %rbx
leaq 0x18c2(%rip), %rsi      # 0x6475
pushq $0x43
jmp 0x48c3
pushq $-0x1
popq %rdi
callq 0x11c0
xorl %edi, %edi
callq 0x11c0
nopl (%rax)