// File: CMU-SAFARI[P]ramulator/src/Processor.cpp
// Function: ramulator::Core::Core(ramulator::Config const&, int, char const*, std::function<bool (ramulator::Request)>, ramulator::Cache*, std::shared_ptr<ramulator::CacheSystem>, ramulator::MemoryBase&)
Core::Core(const Config& configs, int coreid,
    const char* trace_fname, function<bool(Request)> send_next,
    Cache* llc, std::shared_ptr<CacheSystem> cachesys, MemoryBase& memory)
    : id(coreid), no_core_caches(!configs.has_core_caches()),
    no_shared_cache(!configs.has_l3_cache()),
    llc(llc), trace(trace_fname), memory(memory)
{
  // set expected limit instruction for calculating weighted speedup
  expected_limit_insts = configs.get_expected_limit_insts();
  trace.expected_limit_insts = expected_limit_insts;

  // Build cache hierarchy
  if (no_core_caches) {
    send = send_next;
  } else {
    // L2 caches[0]
    caches.emplace_back(new Cache(
        l2_size, l2_assoc, l2_blocksz, l2_mshr_num,
        Cache::Level::L2, cachesys));
    // L1 caches[1]
    caches.emplace_back(new Cache(
        l1_size, l1_assoc, l1_blocksz, l1_mshr_num,
        Cache::Level::L1, cachesys));
    send = bind(&Cache::send, caches[1].get(), placeholders::_1);
    if (llc != nullptr) {
      caches[0]->concatlower(llc);
    }
    caches[1]->concatlower(caches[0].get());

    first_level_cache = caches[1].get();
  }
  if (no_core_caches) {
    more_reqs = trace.get_filtered_request(
        bubble_cnt, req_addr, req_type);
    req_addr = memory.page_allocator(req_addr, id);
  } else {
    more_reqs = trace.get_unfiltered_request(
        bubble_cnt, req_addr, req_type);
    req_addr = memory.page_allocator(req_addr, id);
  }

  
  // regStats
  record_cycs.name("record_cycs_core_" + to_string(id))
             .desc("Record cycle number for calculating weighted speedup. (Only valid when expected limit instruction number is non zero in config file.)")
             .precision(0)
             ;

  record_insts.name("record_insts_core_" + to_string(id))
              .desc("Retired instruction number when record cycle number. (Only valid when expected limit instruction number is non zero in config file.)")
              .precision(0)
              ;

  memory_access_cycles.name("memory_access_cycles_core_" + to_string(id))
                      .desc("memory access cycles in memory time domain")
                      .precision(0)
                      ;
  memory_access_cycles = 0;
  cpu_inst.name("cpu_instructions_core_" + to_string(id))
          .desc("cpu instruction number")
          .precision(0)
          ;
  cpu_inst = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3e0, %rsp            # imm = 0x3E0
movq %r8, -0x288(%rbp)
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rax, -0x280(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x268(%rbp)
movq $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
movl -0x14(%rbp), %eax
movl %eax, 0x10(%rdi)
addq $0x18, %rdi
movq %rdi, -0x278(%rbp)
callq 0x1fac00
movq -0x268(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0x270(%rbp)
callq 0x1fac40
movq -0x268(%rbp), %rax
addq $0x58, %rax
movq %rax, -0x260(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1fa2d0
movb %al, -0x251(%rbp)
jmp 0x1f8922
movq -0x268(%rbp), %rax
movq -0x260(%rbp), %rcx
movb -0x251(%rbp), %dl
notb %dl
andb $0x1, %dl
movb %dl, (%rcx)
addq $0x59, %rax
movq %rax, -0x298(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1fa4e0
movb %al, -0x289(%rbp)
jmp 0x1f8959
movq -0x268(%rbp), %rdi
movq -0x298(%rbp), %rax
movb -0x289(%rbp), %cl
notb %cl
andb $0x1, %cl
movb %cl, (%rax)
movl $0x8000, 0x5c(%rdi)     # imm = 0x8000
movl $0x8, 0x60(%rdi)
movl $0x40, 0x64(%rdi)
movl $0x10, 0x68(%rdi)
movl $0x40000, 0x6c(%rdi)    # imm = 0x40000
movl $0x8, 0x70(%rdi)
movl $0x40, 0x74(%rdi)
movl $0x10, 0x78(%rdi)
subq $-0x80, %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x1fac80
movq -0x268(%rbp), %rdi
movq -0x30(%rbp), %rax
movq %rax, 0x98(%rdi)
addq $0xa0, %rdi
movq %rdi, -0x2a0(%rbp)
callq 0x25e50
jmp 0x1f89e3
movq -0x268(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movq %rdi, -0x2b0(%rbp)
callq 0x25e50
jmp 0x1f89ff
movq -0x268(%rbp), %rdi
movb $0x0, 0x1d8(%rdi)
addq $0x1e0, %rdi            # imm = 0x1E0
movq %rdi, -0x2b8(%rbp)
movq -0x20(%rbp), %rsi
callq 0x1f9f10
jmp 0x1f8a26
movq -0x268(%rbp), %rdi
addq $0x410, %rdi            # imm = 0x410
movq %rdi, -0x2c0(%rbp)
callq 0x1faca0
jmp 0x1f8a42
movq -0x268(%rbp), %rdi
movq $-0x1, 0x470(%rdi)
movq $0x0, 0x480(%rdi)
movq $0x0, 0x488(%rdi)
addq $0x490, %rdi            # imm = 0x490
movq %rdi, -0x2c8(%rbp)
callq 0x25e50
jmp 0x1f8a7f
movq -0x268(%rbp), %rdi
addq $0x528, %rdi            # imm = 0x528
movq %rdi, -0x2d0(%rbp)
callq 0x25e50
jmp 0x1f8a9b
movq -0x268(%rbp), %rax
movq 0x18(%rbp), %rcx
movq %rcx, 0x5c0(%rax)
movq -0x10(%rbp), %rdi
callq 0x1fadb0
movq %rax, -0x2d8(%rbp)
jmp 0x1f8abf
movq -0x268(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movq %rcx, 0x1d0(%rax)
movq 0x1d0(%rax), %rcx
movq %rcx, 0x1e0(%rax)
testb $0x1, 0x58(%rax)
je 0x1f8b92
movq -0x288(%rbp), %rsi
movq -0x268(%rbp), %rdi
addq $0x18, %rdi
callq 0x1fadd0
jmp 0x1f8b05
jmp 0x1f8ec8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f95a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f959b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f958f
movq -0x268(%rbp), %rax
subq $-0x80, %rax
movq %rax, -0x2e8(%rbp)
movl $0x6f0, %edi            # imm = 0x6F0
callq 0xc360
movq %rax, -0x2e0(%rbp)
jmp 0x1f8bb7
movq -0x280(%rbp), %rsi
movq -0x268(%rbp), %rax
movb $0x1, -0x59(%rbp)
movl 0x6c(%rax), %ecx
movl %ecx, -0x2f8(%rbp)
movl 0x70(%rax), %ecx
movl %ecx, -0x2f4(%rbp)
movl 0x74(%rax), %ecx
movl %ecx, -0x2f0(%rbp)
movl 0x78(%rax), %eax
movl %eax, -0x2ec(%rbp)
leaq -0x58(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x17ff90
movq -0x300(%rbp), %r9
movq -0x2e0(%rbp), %rdi
movl -0x2f8(%rbp), %esi
movl -0x2f4(%rbp), %edx
movl -0x2f0(%rbp), %ecx
movl -0x2ec(%rbp), %r8d
movq %rsp, %rax
movq %r9, (%rax)
movl $0x1, %r9d
callq 0x17bfa0
jmp 0x1f8c37
movq -0x2e8(%rbp), %rdi
movq -0x2e0(%rbp), %rax
movb $0x0, -0x59(%rbp)
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x1fae20
jmp 0x1f8c58
leaq -0x58(%rbp), %rdi
callq 0x4b1e0
movq -0x268(%rbp), %rax
subq $-0x80, %rax
movq %rax, -0x310(%rbp)
movl $0x6f0, %edi            # imm = 0x6F0
callq 0xc360
movq %rax, -0x308(%rbp)
jmp 0x1f8c86
movq -0x280(%rbp), %rsi
movq -0x268(%rbp), %rax
movb $0x1, -0x79(%rbp)
movl 0x5c(%rax), %ecx
movl %ecx, -0x320(%rbp)
movl 0x60(%rax), %ecx
movl %ecx, -0x31c(%rbp)
movl 0x64(%rax), %ecx
movl %ecx, -0x318(%rbp)
movl 0x68(%rax), %eax
movl %eax, -0x314(%rbp)
leaq -0x78(%rbp), %rdi
movq %rdi, -0x328(%rbp)
callq 0x17ff90
movq -0x328(%rbp), %r9
movq -0x308(%rbp), %rdi
movl -0x320(%rbp), %esi
movl -0x31c(%rbp), %edx
movl -0x318(%rbp), %ecx
movl -0x314(%rbp), %r8d
movq %rsp, %rax
movq %r9, (%rax)
xorl %r9d, %r9d
callq 0x17bfa0
jmp 0x1f8d03
movq -0x310(%rbp), %rdi
movq -0x308(%rbp), %rax
movb $0x0, -0x79(%rbp)
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x1fae20
jmp 0x1f8d24
leaq -0x78(%rbp), %rdi
callq 0x4b1e0
movq -0x268(%rbp), %rdi
leaq -0x7b70b(%rip), %rax    # 0x17d630
movq %rax, -0xa8(%rbp)
movq $0x0, -0xa0(%rbp)
subq $-0x80, %rdi
movl $0x1, %esi
callq 0x1faba0
movq %rax, %rdi
callq 0x1faea0
movq %rax, -0xb0(%rbp)
movq 0x155247(%rip), %rcx    # 0x34dfb8
leaq -0x98(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x1faa00
jmp 0x1f8d8d
movq -0x268(%rbp), %rdi
addq $0x18, %rdi
leaq -0x98(%rbp), %rsi
callq 0x1faec0
jmp 0x1f8da6
cmpq $0x0, -0x30(%rbp)
je 0x1f8e43
movq -0x268(%rbp), %rdi
subq $-0x80, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1faba0
movq %rax, %rdi
callq 0x1fabc0
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0x17eaa0
jmp 0x1f8ddb
jmp 0x1f8e43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4b1e0
testb $0x1, -0x59(%rbp)
jne 0x1f8dfa
jmp 0x1f8e0b
movq -0x2e0(%rbp), %rdi
movl $0x6f0, %esi            # imm = 0x6F0
callq 0xc370
jmp 0x1f958f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x4b1e0
testb $0x1, -0x79(%rbp)
jne 0x1f8e2d
jmp 0x1f8e3e
movq -0x308(%rbp), %rdi
movl $0x6f0, %esi            # imm = 0x6F0
callq 0xc370
jmp 0x1f958f
movq -0x268(%rbp), %rdi
subq $-0x80, %rdi
movq %rdi, -0x338(%rbp)
movl $0x1, %esi
callq 0x1faba0
movq %rax, %rdi
callq 0x1fabc0
movq -0x338(%rbp), %rdi
movq %rax, -0x330(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x1faba0
movq %rax, %rdi
callq 0x1faea0
movq -0x330(%rbp), %rdi
movq %rax, %rsi
callq 0x17eaa0
jmp 0x1f8e97
movq -0x268(%rbp), %rdi
addq $0x80, %rdi
movl $0x1, %esi
callq 0x1faba0
movq %rax, %rdi
callq 0x1faea0
movq %rax, %rcx
movq -0x268(%rbp), %rax
movq %rcx, 0x488(%rax)
movq -0x268(%rbp), %rax
testb $0x1, 0x58(%rax)
je 0x1f8f62
movq -0x268(%rbp), %rcx
movq %rcx, %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
movq %rcx, %rsi
addq $0x468, %rsi            # imm = 0x468
movq %rcx, %rdx
addq $0x470, %rdx            # imm = 0x470
addq $0x478, %rcx            # imm = 0x478
callq 0x1f9610
movb %al, -0x339(%rbp)
jmp 0x1f8f12
movq -0x268(%rbp), %rax
movb -0x339(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x47c(%rax)
movq 0x18(%rbp), %rdi
movq 0x470(%rax), %rsi
movl 0x10(%rax), %edx
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movq %rax, -0x348(%rbp)
jmp 0x1f8f48
movq -0x268(%rbp), %rax
movq -0x348(%rbp), %rcx
movq %rcx, 0x470(%rax)
jmp 0x1f8fe6
movq -0x268(%rbp), %rcx
movq %rcx, %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
movq %rcx, %rsi
addq $0x468, %rsi            # imm = 0x468
movq %rcx, %rdx
addq $0x470, %rdx            # imm = 0x470
addq $0x478, %rcx            # imm = 0x478
callq 0x1f9920
movb %al, -0x349(%rbp)
jmp 0x1f8f9b
movq -0x268(%rbp), %rax
movb -0x349(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x47c(%rax)
movq 0x18(%rbp), %rdi
movq 0x470(%rax), %rsi
movl 0x10(%rax), %edx
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movq %rax, -0x358(%rbp)
jmp 0x1f8fd1
movq -0x268(%rbp), %rax
movq -0x358(%rbp), %rcx
movq %rcx, 0x470(%rax)
movq -0x268(%rbp), %rax
movq %rax, %rcx
addq $0xa0, %rcx
movq %rcx, -0x360(%rbp)
movl 0x10(%rax), %esi
leaq -0xf0(%rbp), %rdi
callq 0x2cc50
jmp 0x1f900f
leaq 0x68085(%rip), %rsi     # 0x26109b
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rdx
callq 0x2dba0
jmp 0x1f902b
movq -0x360(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x2c990
movq %rax, -0x368(%rbp)
jmp 0x1f9047
leaq -0x111(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0xc5e0
movq -0x370(%rbp), %rdx
leaq 0x68045(%rip), %rsi     # 0x2610ad
leaq -0x110(%rbp), %rdi
callq 0x17a40
jmp 0x1f9076
movq -0x368(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2cd70
movq %rax, -0x378(%rbp)
jmp 0x1f9092
movq -0x378(%rbp), %rdi
xorl %esi, %esi
callq 0x2cda0
jmp 0x1f90a2
leaq -0x110(%rbp), %rdi
callq 0xc6b8
leaq -0x111(%rbp), %rdi
callq 0xc3c0
leaq -0xd0(%rbp), %rdi
callq 0xc6b8
leaq -0xf0(%rbp), %rdi
callq 0xc6b8
movq -0x268(%rbp), %rax
movq %rax, %rcx
addq $0x138, %rcx            # imm = 0x138
movq %rcx, -0x380(%rbp)
movl 0x10(%rax), %esi
leaq -0x158(%rbp), %rdi
callq 0x2cc50
jmp 0x1f90fb
leaq 0x68031(%rip), %rsi     # 0x261133
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rdx
callq 0x2dba0
jmp 0x1f9117
movq -0x380(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x2c990
movq %rax, -0x388(%rbp)
jmp 0x1f9133
leaq -0x179(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0xc5e0
movq -0x390(%rbp), %rdx
leaq 0x67ff2(%rip), %rsi     # 0x261146
leaq -0x178(%rbp), %rdi
callq 0x17a40
jmp 0x1f9162
movq -0x388(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x2cd70
movq %rax, -0x398(%rbp)
jmp 0x1f917e
movq -0x398(%rbp), %rdi
xorl %esi, %esi
callq 0x2cda0
jmp 0x1f918e
leaq -0x178(%rbp), %rdi
callq 0xc6b8
leaq -0x179(%rbp), %rdi
callq 0xc3c0
leaq -0x138(%rbp), %rdi
callq 0xc6b8
leaq -0x158(%rbp), %rdi
callq 0xc6b8
movq -0x268(%rbp), %rax
movq %rax, %rcx
addq $0x490, %rcx            # imm = 0x490
movq %rcx, -0x3a0(%rbp)
movl 0x10(%rax), %esi
leaq -0x1c0(%rbp), %rdi
callq 0x2cc50
jmp 0x1f91e7
leaq 0x67fdd(%rip), %rsi     # 0x2611cb
leaq -0x1a0(%rbp), %rdi
leaq -0x1c0(%rbp), %rdx
callq 0x2dba0
jmp 0x1f9203
movq -0x3a0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x2c990
movq %rax, -0x3a8(%rbp)
jmp 0x1f921f
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0xc5e0
movq -0x3b0(%rbp), %rdx
leaq 0x67fa6(%rip), %rsi     # 0x2611e6
leaq -0x1e0(%rbp), %rdi
callq 0x17a40
jmp 0x1f924e
movq -0x3a8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x2cd70
movq %rax, -0x3b8(%rbp)
jmp 0x1f926a
movq -0x3b8(%rbp), %rdi
xorl %esi, %esi
callq 0x2cda0
jmp 0x1f927a
leaq -0x1e0(%rbp), %rdi
callq 0xc6b8
leaq -0x1e1(%rbp), %rdi
callq 0xc3c0
leaq -0x1a0(%rbp), %rdi
callq 0xc6b8
leaq -0x1c0(%rbp), %rdi
callq 0xc6b8
movq -0x268(%rbp), %rdi
movl $0x0, -0x1e8(%rbp)
addq $0x490, %rdi            # imm = 0x490
leaq -0x1e8(%rbp), %rsi
callq 0x1fab70
jmp 0x1f92d0
movq -0x268(%rbp), %rax
movq %rax, %rcx
addq $0x528, %rcx            # imm = 0x528
movq %rcx, -0x3c0(%rbp)
movl 0x10(%rax), %esi
leaq -0x228(%rbp), %rdi
callq 0x2cc50
jmp 0x1f92f9
leaq 0x67f11(%rip), %rsi     # 0x261211
leaq -0x208(%rbp), %rdi
leaq -0x228(%rbp), %rdx
callq 0x2dba0
jmp 0x1f9315
movq -0x3c0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2c990
movq %rax, -0x3c8(%rbp)
jmp 0x1f9331
leaq -0x249(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0xc5e0
movq -0x3d0(%rbp), %rdx
leaq 0x67ed6(%rip), %rsi     # 0x261228
leaq -0x248(%rbp), %rdi
callq 0x17a40
jmp 0x1f9360
movq -0x3c8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x2cd70
movq %rax, -0x3d8(%rbp)
jmp 0x1f937c
movq -0x3d8(%rbp), %rdi
xorl %esi, %esi
callq 0x2cda0
jmp 0x1f938c
leaq -0x248(%rbp), %rdi
callq 0xc6b8
leaq -0x249(%rbp), %rdi
callq 0xc3c0
leaq -0x208(%rbp), %rdi
callq 0xc6b8
leaq -0x228(%rbp), %rdi
callq 0xc6b8
movq -0x268(%rbp), %rdi
movl $0x0, -0x250(%rbp)
addq $0x528, %rdi            # imm = 0x528
leaq -0x250(%rbp), %rsi
callq 0x1fab70
jmp 0x1f93e2
addq $0x3e0, %rsp            # imm = 0x3E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9439
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f942d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0xc6b8
leaq -0x111(%rbp), %rdi
callq 0xc3c0
leaq -0xd0(%rbp), %rdi
callq 0xc6b8
leaq -0xf0(%rbp), %rdi
callq 0xc6b8
jmp 0x1f958f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f94b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f94a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0xc6b8
leaq -0x179(%rbp), %rdi
callq 0xc3c0
leaq -0x138(%rbp), %rdi
callq 0xc6b8
leaq -0x158(%rbp), %rdi
callq 0xc6b8
jmp 0x1f958f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f951b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f950f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9503
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0xc6b8
leaq -0x1e1(%rbp), %rdi
callq 0xc3c0
leaq -0x1a0(%rbp), %rdi
callq 0xc6b8
leaq -0x1c0(%rbp), %rdi
callq 0xc6b8
jmp 0x1f958f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9583
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f9577
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1f956b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0xc6b8
leaq -0x249(%rbp), %rdi
callq 0xc3c0
leaq -0x208(%rbp), %rdi
callq 0xc6b8
leaq -0x228(%rbp), %rdi
callq 0xc6b8
movq -0x2d0(%rbp), %rdi
callq 0x262b0
movq -0x2c8(%rbp), %rdi
callq 0x262b0
movq -0x2c0(%rbp), %rdi
callq 0x4c1d0
movq -0x2b8(%rbp), %rdi
callq 0x4c200
movq -0x2b0(%rbp), %rdi
callq 0x262b0
movq -0x2a0(%rbp), %rdi
callq 0x262b0
movq -0x2a8(%rbp), %rdi
callq 0x4c240
movq -0x270(%rbp), %rdi
callq 0x367b0
movq -0x278(%rbp), %rdi
callq 0x49f40
movq -0x38(%rbp), %rdi
callq 0xc5d0
nopw %cs:(%rax,%rax)