// File: /workspace/github_cpp_makefile_star2_O2/nimitbhardwaj[P]KapaNes/./src/cpu.cpp
// Function: NES::CPU::CPU()
CPU::CPU() {
    // Initials of registers
    regAcc = regX = regY = flags = 0;
    stackPtr = instPtr = 0;

    // ORA
    insertOpcode(0b00000001, &CPU::ora_indirect_x, "ORA_IND_X");
    insertOpcode(0b00000101, &CPU::ora_zeropg, "ORA_ZEROPG");
    insertOpcode(0b00001001, &CPU::ora_immediate, "ORA_IMM");
    insertOpcode(0b00001101, &CPU::ora_absolute, "ORA_ABS");
    insertOpcode(0b00010001, &CPU::ora_indirect_y, "ORA_IND_Y");
    insertOpcode(0b00010101, &CPU::ora_zeropg_x, "ORA_ZEROPG_X");
    insertOpcode(0b00011001, &CPU::ora_absolute_y, "ORA_ABS_Y");
    insertOpcode(0b00011101, &CPU::ora_absolute_x, "ORA_ABS_X");

    // AND
    insertOpcode(0b00100001, &CPU::and_indirect_x, "AND_IND_X");
    insertOpcode(0b00100101, &CPU::and_zeropg, "AND_ZEROPG");
    insertOpcode(0b00101001, &CPU::and_immediate, "AND_IMM");
    insertOpcode(0b00101101, &CPU::and_absolute, "AND_ABS");
    insertOpcode(0b00110001, &CPU::and_indirect_y, "AND_IND_Y");
    insertOpcode(0b00110101, &CPU::and_zeropg_x, "AND_ZEROPG_X");
    insertOpcode(0b00111001, &CPU::and_absolute_y, "AND_ABS_Y");
    insertOpcode(0b00111101, &CPU::and_absolute_x, "AND_ABS_X");

    // EOR
    insertOpcode(0b01000001, &CPU::eor_indirect_x, "EOR_IND_X");
    insertOpcode(0b01000101, &CPU::eor_zeropg, "EOR_ZEROPG");
    insertOpcode(0b01001001, &CPU::eor_immediate, "EOR_IMM");
    insertOpcode(0b01001101, &CPU::eor_absolute, "EOR_ABS");
    insertOpcode(0b01010001, &CPU::eor_indirect_y, "EOR_IND_Y");
    insertOpcode(0b01010101, &CPU::eor_zeropg_x, "EOR_ZEROPG_X");
    insertOpcode(0b01011001, &CPU::eor_absolute_y, "EOR_ABS_Y");
    insertOpcode(0b01011101, &CPU::eor_absolute_x, "EOR_ABS_X");

    // ADC
    insertOpcode(0b01100001, &CPU::adc_indirect_x, "ADC_IND_X");
    insertOpcode(0b01100101, &CPU::adc_zeropg, "ADC_ZEROPG");
    insertOpcode(0b01101001, &CPU::adc_immediate, "ADC_IMM");
    insertOpcode(0b01101101, &CPU::adc_absolute, "ADC_ABS");
    insertOpcode(0b01110001, &CPU::adc_indirect_y, "ADC_IND_Y");
    insertOpcode(0b01110101, &CPU::adc_zeropg_x, "ADC_ZEROPG_X");
    insertOpcode(0b01111001, &CPU::adc_absolute_y, "ADC_ABS_Y");
    insertOpcode(0b01111101, &CPU::adc_absolute_x, "ADC_ABS_X");

    // STA
    insertOpcode(0b10000001, &CPU::sta_indirect_x, "STA_IND_X");
    insertOpcode(0b10000101, &CPU::sta_zeropg, "STA_ZEROPG");
    insertOpcode(0b10001001, &CPU::sta_immediate, "STA_IMM");
    insertOpcode(0b10001101, &CPU::sta_absolute, "STA_ABS");
    insertOpcode(0b10010001, &CPU::sta_indirect_y, "STA_IND_Y");
    insertOpcode(0b10010101, &CPU::sta_zeropg_x, "STA_ZEROPG_X");
    insertOpcode(0b10011001, &CPU::sta_absolute_y, "STA_ABS_Y");
    insertOpcode(0b10011101, &CPU::sta_absolute_x, "STA_ABS_X");
    
    // LDA
    insertOpcode(0b10100001, &CPU::lda_indirect_x, "LDA_IND_X");
    insertOpcode(0b10100101, &CPU::lda_zeropg, "LDA_ZEROPG");
    insertOpcode(0b10101001, &CPU::lda_immediate, "LDA_IMM");
    insertOpcode(0b10101101, &CPU::lda_absolute, "LDA_ABS");
    insertOpcode(0b10110001, &CPU::lda_indirect_y, "LDA_IND_Y");
    insertOpcode(0b10110101, &CPU::lda_zeropg_x, "LDA_ZEROPG_X");
    insertOpcode(0b10111001, &CPU::lda_absolute_y, "LDA_ABS_Y");
    insertOpcode(0b10111101, &CPU::lda_absolute_x, "LDA_ABS_X");
    
    // CMP
    insertOpcode(0b11000001, &CPU::cmp_indirect_x, "CMP_IND_X");
    insertOpcode(0b11000101, &CPU::cmp_zeropg, "CMP_ZEROPG");
    insertOpcode(0b11001001, &CPU::cmp_immediate, "CMP_IMM");
    insertOpcode(0b11001101, &CPU::cmp_absolute, "CMP_ABS");
    insertOpcode(0b11010001, &CPU::cmp_indirect_y, "CMP_IND_Y");
    insertOpcode(0b11010101, &CPU::cmp_zeropg_x, "CMP_ZEROPG_X");
    insertOpcode(0b11011001, &CPU::cmp_absolute_y, "CMP_ABS_Y");
    insertOpcode(0b11011101, &CPU::cmp_absolute_x, "CMP_ABS_X");
    
    // SBC: Under Construction
    // insertOpcode(0b11100001, &CPU::sbc_indirect_x, "SBC_IND_X");
    // insertOpcode(0b11100101, &CPU::sbc_zeropg, "SBC_ZEROPG");
    // insertOpcode(0b11101001, &CPU::sbc_immediate, "SBC_IMM");
    // insertOpcode(0b11101101, &CPU::sbc_absolute, "SBC_ABS");
    // insertOpcode(0b11110001, &CPU::sbc_indirect_y, "SBC_IND_Y");
    // insertOpcode(0b11110101, &CPU::sbc_zeropg_x, "SBC_ZEROPG_X");
    // insertOpcode(0b11111001, &CPU::sbc_absolute_y, "SBC_ABS_Y");
    // insertOpcode(0b11111101, &CPU::sbc_absolute_x, "SBC_ABS_X");
    
    // ASL
    insertOpcode(0b00000110, &CPU::asl_zeropg, "ASL_ZEROPG");
    insertOpcode(0b00001010, &CPU::asl_accumulator, "ASL_ACCUMULATOR");
    insertOpcode(0b00001110, &CPU::asl_absolute, "ASL_ABSOLUTE");
    insertOpcode(0b00010110, &CPU::asl_zeropg_x, "ASL_ZEROPG_X");
    insertOpcode(0b00011110, &CPU::asl_absolute_x, "ASL_ABSOLUTE_X");

    // ROL
    insertOpcode(0b00100110, &CPU::rol_zeropg, "ROL_ZEROPG");
    insertOpcode(0b00101010, &CPU::rol_accumulator, "ROL_ACCUMULATOR");
    insertOpcode(0b00101110, &CPU::rol_absolute, "ROL_ABSOLUTE");
    insertOpcode(0b00110110, &CPU::rol_zeropg_x, "ROL_ZEROPG_X");
    insertOpcode(0b00111110, &CPU::rol_absolute_x, "ROL_ABSOLUTE_X");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
leaq 0x38(%rdi), %rax
movq %rax, 0x8(%rdi)
pushq $0x1
popq %rax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rdi)
movl $0x3f800000, %ecx       # imm = 0x3F800000
movl %ecx, 0x28(%rdi)
movups %xmm0, 0x30(%rdi)
leaq 0x70(%rdi), %rdx
movq %rdx, 0x40(%rdi)
movq %rax, 0x48(%rdi)
movups %xmm0, 0x50(%rdi)
movl %ecx, 0x60(%rdi)
movups %xmm0, 0x68(%rdi)
leaq 0xa8(%rdi), %rdx
movq %rdx, 0x78(%rdi)
movq %rax, 0x80(%rdi)
movups %xmm0, 0x88(%rdi)
movl %ecx, 0x98(%rdi)
movups %xmm0, 0xa0(%rdi)
andq $0x0, (%rdi)
leaq 0x4cec(%rip), %rsi      # 0x6004
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1076(%rip), %rdx      # 0x23a2
pushq $0x1
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4cc1(%rip), %rsi      # 0x600e
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x10db(%rip), %rdx      # 0x243c
pushq $0x5
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4c97(%rip), %rsi      # 0x6019
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1100(%rip), %rdx      # 0x2496
pushq $0x9
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4c6a(%rip), %rsi      # 0x6021
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x110b(%rip), %rdx      # 0x24d6
pushq $0xd
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4c3d(%rip), %rsi      # 0x6029
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1158(%rip), %rdx      # 0x2558
pushq $0x11
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4c12(%rip), %rsi      # 0x6033
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x11c1(%rip), %rdx      # 0x25f6
pushq $0x15
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4bea(%rip), %rsi      # 0x6040
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x11ea(%rip), %rdx      # 0x2654
pushq $0x19
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4bbf(%rip), %rsi      # 0x604a
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x123d(%rip), %rdx      # 0x26dc
pushq $0x1d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4b94(%rip), %rsi      # 0x6054
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1290(%rip), %rdx      # 0x2764
pushq $0x21
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4b69(%rip), %rsi      # 0x605e
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x12f5(%rip), %rdx      # 0x27fe
pushq $0x25
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4b3f(%rip), %rsi      # 0x6069
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x131a(%rip), %rdx      # 0x2858
pushq $0x29
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4b12(%rip), %rsi      # 0x6071
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1325(%rip), %rdx      # 0x2898
pushq $0x2d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4ae5(%rip), %rsi      # 0x6079
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1372(%rip), %rdx      # 0x291a
pushq $0x31
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4aba(%rip), %rsi      # 0x6083
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x13db(%rip), %rdx      # 0x29b8
pushq $0x35
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4a92(%rip), %rsi      # 0x6090
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1404(%rip), %rdx      # 0x2a16
pushq $0x39
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4a67(%rip), %rsi      # 0x609a
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1457(%rip), %rdx      # 0x2a9e
pushq $0x3d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4a3c(%rip), %rsi      # 0x60a4
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x14aa(%rip), %rdx      # 0x2b26
pushq $0x41
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4a11(%rip), %rsi      # 0x60ae
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x150f(%rip), %rdx      # 0x2bc0
pushq $0x45
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x49e7(%rip), %rsi      # 0x60b9
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1534(%rip), %rdx      # 0x2c1a
pushq $0x49
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x49ba(%rip), %rsi      # 0x60c1
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x153f(%rip), %rdx      # 0x2c5a
pushq $0x4d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x498d(%rip), %rsi      # 0x60c9
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x158c(%rip), %rdx      # 0x2cdc
pushq $0x51
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4962(%rip), %rsi      # 0x60d3
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x15f5(%rip), %rdx      # 0x2d7a
pushq $0x55
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x493a(%rip), %rsi      # 0x60e0
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x161e(%rip), %rdx      # 0x2dd8
pushq $0x59
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x490f(%rip), %rsi      # 0x60ea
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1671(%rip), %rdx      # 0x2e60
pushq $0x5d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x48e4(%rip), %rsi      # 0x60f4
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x16c4(%rip), %rdx      # 0x2ee8
pushq $0x61
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x48b9(%rip), %rsi      # 0x60fe
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1745(%rip), %rdx      # 0x2f9e
pushq $0x65
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x488f(%rip), %rsi      # 0x6109
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1786(%rip), %rdx      # 0x3014
pushq $0x69
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4862(%rip), %rsi      # 0x6111
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x17ad(%rip), %rdx      # 0x3070
pushq $0x6d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4835(%rip), %rsi      # 0x6119
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1816(%rip), %rdx      # 0x310e
pushq $0x71
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x480a(%rip), %rsi      # 0x6123
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x189b(%rip), %rdx      # 0x31c8
pushq $0x75
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x47e2(%rip), %rsi      # 0x6130
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x18de(%rip), %rdx      # 0x3240
pushq $0x79
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x47b7(%rip), %rsi      # 0x613a
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x194d(%rip), %rdx      # 0x32e4
pushq $0x7d
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x478c(%rip), %rsi      # 0x6144
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x19bc(%rip), %rdx      # 0x3388
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x81, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x475f(%rip), %rsi      # 0x614e
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a09(%rip), %rdx      # 0x340c
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x85, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4733(%rip), %rsi      # 0x6159
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a0c(%rip), %rdx      # 0x3446
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x89, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4704(%rip), %rsi      # 0x6161
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a05(%rip), %rdx      # 0x3476
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x8d, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x46d5(%rip), %rsi      # 0x6169
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a3c(%rip), %rdx      # 0x34e4
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x91, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x46a8(%rip), %rsi      # 0x6173
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a8d(%rip), %rdx      # 0x356c
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x95, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x467e(%rip), %rsi      # 0x6180
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1a94(%rip), %rdx      # 0x35aa
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x99, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4651(%rip), %rsi      # 0x618a
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1ad3(%rip), %rdx      # 0x3620
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0x9d, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4624(%rip), %rsi      # 0x6194
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1b12(%rip), %rdx      # 0x3696
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xa1, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x45f7(%rip), %rsi      # 0x619e
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1b6f(%rip), %rdx      # 0x372a
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xa5, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x45cb(%rip), %rsi      # 0x61a9
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1b84(%rip), %rdx      # 0x3776
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xa9, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x459c(%rip), %rsi      # 0x61b1
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1b8d(%rip), %rdx      # 0x37b6
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xad, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x456d(%rip), %rsi      # 0x61b9
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1bd2(%rip), %rdx      # 0x3832
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xb1, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4540(%rip), %rsi      # 0x61c3
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1c33(%rip), %rdx      # 0x38ca
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xb5, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4516(%rip), %rsi      # 0x61d0
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1c4c(%rip), %rdx      # 0x391a
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xb9, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x44e9(%rip), %rsi      # 0x61da
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1c97(%rip), %rdx      # 0x399c
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xbd, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x44bc(%rip), %rsi      # 0x61e4
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1ce2(%rip), %rdx      # 0x3a1e
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xc1, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x448f(%rip), %rsi      # 0x61ee
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1d77(%rip), %rdx      # 0x3aea
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xc5, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4463(%rip), %rsi      # 0x61f9
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1dd2(%rip), %rdx      # 0x3b7c
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xc9, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4434(%rip), %rsi      # 0x6201
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1e0b(%rip), %rdx      # 0x3bec
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xcd, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4405(%rip), %rsi      # 0x6209
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1e92(%rip), %rdx      # 0x3caa
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xd1, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x43d8(%rip), %rsi      # 0x6213
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1f2d(%rip), %rdx      # 0x3d7c
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xd5, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x43ae(%rip), %rsi      # 0x6220
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x1f8a(%rip), %rdx      # 0x3e10
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xd9, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4381(%rip), %rsi      # 0x622a
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x2015(%rip), %rdx      # 0x3ed2
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
movl $0xdd, %esi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4354(%rip), %rsi      # 0x6234
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x20a0(%rip), %rdx      # 0x3f94
pushq $0x6
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x432a(%rip), %rsi      # 0x623f
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x20e9(%rip), %rdx      # 0x4012
pushq $0xa
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4305(%rip), %rsi      # 0x624f
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x20f0(%rip), %rdx      # 0x404e
pushq $0xe
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x42dd(%rip), %rsi      # 0x625c
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x2163(%rip), %rdx      # 0x40f6
pushq $0x16
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x42b5(%rip), %rsi      # 0x6269
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x21b0(%rip), %rdx      # 0x4178
pushq $0x1e
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x428f(%rip), %rsi      # 0x6278
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x221b(%rip), %rdx      # 0x4218
pushq $0x26
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4265(%rip), %rsi      # 0x6283
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x226a(%rip), %rdx      # 0x429c
pushq $0x2a
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4240(%rip), %rsi      # 0x6293
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x2279(%rip), %rdx      # 0x42e0
pushq $0x2e
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x4218(%rip), %rsi      # 0x62a0
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x22f2(%rip), %rdx      # 0x438e
pushq $0x36
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
leaq 0x41f0(%rip), %rsi      # 0x62ad
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x1080
leaq 0x2345(%rip), %rdx      # 0x4416
pushq $0x3e
popq %rsi
leaq -0x48(%rbp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x230e
leaq -0x48(%rbp), %rdi
callq 0x10b0
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
jmp 0x22d1
jmp 0x22df
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0x10b0
jmp 0x22e2
movq %rax, %r14
leaq 0x8(%rbx), %r15
leaq 0x40(%rbx), %r12
addq $0x78, %rbx
movq %rbx, %rdi
callq 0x48ee
movq %r12, %rdi
callq 0x49b2
movq %r15, %rdi
callq 0x4a54
movq %r14, %rdi
callq 0x1190