// File: /workspace/github_cpp_makefile_star2_O1/lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: doCodecTestC(Image&)
void doCodecTestC(Image& image) {
  unsigned char* encoded = 0;
  size_t encoded_size = 0;
  unsigned char* decoded = 0;
  unsigned decoded_w;
  unsigned decoded_h;

  struct OnExitScope {
    unsigned char** a;
    unsigned char** b;
    OnExitScope(unsigned char** ca, unsigned char** cb) : a(ca), b(cb) {}
    ~OnExitScope() { free(*a); free(*b); }
  } onExitScope(&encoded, &decoded);

  unsigned error_enc = lodepng_encode_memory(&encoded, &encoded_size, &image.data[0],
                                             image.width, image.height, image.colorType, image.bitDepth);

  if(error_enc != 0) std::cout << "Error: " << lodepng_error_text(error_enc) << std::endl;
  ASSERT_NO_PNG_ERROR_MSG(error_enc, "encoder error C");

  //if the image is large enough, compressing it should result in smaller size
  if(image.data.size() > 512) assertTrue(encoded_size < image.data.size(), "compressed size");

  unsigned error_dec = lodepng_decode_memory(&decoded, &decoded_w, &decoded_h,
                                             encoded, encoded_size, image.colorType, image.bitDepth);

  if(error_dec != 0) std::cout << "Error: " << lodepng_error_text(error_dec) << std::endl;
  ASSERT_NO_PNG_ERROR_MSG(error_dec, "decoder error C");

  ASSERT_EQUALS(image.width, decoded_w);
  ASSERT_EQUALS(image.height, decoded_h);
  assertPixels(image, decoded, "Pixels C");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, %rbx
xorl %eax, %eax
leaq 0xd0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0xb8(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xb0(%rsp), %rcx
movq %rax, (%rcx)
movq %rdi, 0xc0(%rsp)
movq %rcx, 0xc8(%rsp)
movq (%rbx), %rdx
movl 0x18(%rbx), %ecx
movl 0x1c(%rbx), %r8d
movl 0x20(%rbx), %r9d
movl 0x24(%rbx), %eax
movl %eax, (%rsp)
callq 0xcc93
movl %eax, %ebp
testl %eax, %eax
je 0x173e9
movq 0x9cc71(%rip), %r14     # 0xb3fd8
leaq 0x5ede7(%rip), %rsi     # 0x76155
movl $0x7, %edx
movq %r14, %rdi
callq 0x2270
movl %ebp, %edi
callq 0xceee
movq %rax, %r15
testq %rax, %rax
je 0x173a6
movq %r15, %rdi
callq 0x2100
movq 0x9cc3f(%rip), %rdi     # 0xb3fd8
movq %r15, %rsi
movq %rax, %rdx
callq 0x2270
jmp 0x173be
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x2370
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0x9cbfc(%rip), %rdi     # 0xb3fd8
callq 0x2040
movq %rax, %rdi
callq 0x2160
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x5ed64(%rip), %rsi     # 0x7615d
leaq 0x5ed62(%rip), %rdx     # 0x76162
leaq 0x48(%rsp), %rdi
callq 0x1517a
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x61dec(%rip), %rsi     # 0x7921d
leaq 0x8(%rsp), %rdi
callq 0x23d0
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x5ed18(%rip), %rsi     # 0x76163
leaq 0x5ed20(%rip), %rdx     # 0x76172
leaq 0x68(%rsp), %rdi
callq 0x1517a
movq 0x70(%rsp), %r15
testq %r15, %r15
setne %r14b
je 0x174af
leaq 0x108(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x5ece6(%rip), %rsi     # 0x76163
leaq 0x5ecee(%rip), %rdx     # 0x76172
leaq 0xf8(%rsp), %rdi
callq 0x1517a
leaq 0x6228d(%rip), %rsi     # 0x79725
leaq 0x88(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x702b8
jmp 0x174d2
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x60084(%rip), %rdx     # 0x77546
leaq 0x88(%rsp), %rdi
movq %rdx, %rsi
callq 0x1517a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x6feec
leaq 0x28(%rsp), %rsi
movl %ebp, %edi
callq 0x16534
leaq 0x38(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x17508
callq 0x2200
leaq 0x98(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x1751f
callq 0x2200
testq %r15, %r15
je 0x1753a
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1753a
callq 0x2200
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1754e
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17562
callq 0x2200
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17576
callq 0x2200
movq 0x8(%rbx), %r14
subq (%rbx), %r14
cmpq $0x201, %r14            # imm = 0x201
jb 0x175cb
movq 0xb8(%rsp), %r15
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x5ebd6(%rip), %rsi     # 0x76173
leaq 0x5ebde(%rip), %rdx     # 0x76182
callq 0x1517a
xorl %edi, %edi
cmpq %r14, %r15
setb %dil
leaq 0x28(%rsp), %rsi
callq 0x164c1
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x175cb
callq 0x2200
movq 0xd0(%rsp), %rcx
movq 0xb8(%rsp), %r8
movl 0x20(%rbx), %r9d
movl 0x24(%rbx), %eax
movl %eax, (%rsp)
leaq 0xb0(%rsp), %rdi
leaq 0xac(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xa1f7
movl %eax, %ebp
testl %eax, %eax
je 0x17695
movq 0x9c9c5(%rip), %r14     # 0xb3fd8
leaq 0x5eb3b(%rip), %rsi     # 0x76155
movl $0x7, %edx
movq %r14, %rdi
callq 0x2270
movl %ebp, %edi
callq 0xceee
movq %rax, %r15
testq %rax, %rax
je 0x17652
movq %r15, %rdi
callq 0x2100
movq 0x9c993(%rip), %rdi     # 0xb3fd8
movq %r15, %rsi
movq %rax, %rdx
callq 0x2270
jmp 0x1766a
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x2370
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0x9c950(%rip), %rdi     # 0xb3fd8
callq 0x2040
movq %rax, %rdi
callq 0x2160
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5eab4(%rip), %rsi     # 0x7615d
leaq 0x5eab2(%rip), %rdx     # 0x76162
callq 0x1517a
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5eaa8(%rip), %rsi     # 0x76183
leaq 0x8(%rsp), %rdi
callq 0x23d0
leaq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5ea8e(%rip), %rsi     # 0x76187
leaq 0x5ea96(%rip), %rdx     # 0x76196
callq 0x1517a
movq 0x70(%rsp), %r15
testq %r15, %r15
setne %r14b
je 0x17758
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x5ea61(%rip), %rsi     # 0x76187
leaq 0x5ea69(%rip), %rdx     # 0x76196
leaq 0xd8(%rsp), %rdi
callq 0x1517a
leaq 0x61fe4(%rip), %rsi     # 0x79725
leaq 0x88(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x702b8
jmp 0x17772
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x5fddc(%rip), %rdx     # 0x77546
movq %rdx, %rsi
callq 0x1517a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x6feec
leaq 0x28(%rsp), %rsi
movl %ebp, %edi
callq 0x16534
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x177a4
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x177b6
callq 0x2200
testq %r15, %r15
je 0x177d1
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x177d1
callq 0x2200
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x177e5
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x177f9
callq 0x2200
leaq 0x18(%rbx), %r14
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17811
callq 0x2200
movl (%r14), %eax
cmpl 0xac(%rsp), %eax
jne 0x178a9
leaq 0x1c(%rbx), %r14
movl (%r14), %eax
cmpl 0xa8(%rsp), %eax
jne 0x17ab7
movq 0xb0(%rsp), %r14
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x5e989(%rip), %rsi     # 0x761d5
leaq 0x5e98a(%rip), %rdx     # 0x761dd
callq 0x1517a
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1710d
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x17877
callq 0x2200
movq 0xc0(%rsp), %rax
movq (%rax), %rdi
callq 0x2290
movq 0xc8(%rsp), %rax
movq (%rax), %rdi
callq 0x2290
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5e8a0(%rip), %rsi     # 0x7615d
leaq 0x5e89e(%rip), %rdx     # 0x76162
callq 0x1517a
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e8aa(%rip), %rsi     # 0x76197
leaq 0x88(%rsp), %rdi
callq 0x23d0
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
movq %rax, (%rdi)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x61dff(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e845(%rip), %rsi     # 0x7619b
leaq 0x8(%rsp), %rdi
callq 0x23d0
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e824(%rip), %rsi     # 0x761a5
leaq 0x28(%rsp), %rdi
callq 0x23d0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x9c63c(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x179b0
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x179c4
callq 0x2200
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x179d8
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x179ea
callq 0x2200
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x179fe
callq 0x2200
movq 0x9c5d3(%rip), %rdi     # 0xb3fd8
leaq 0x87481(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x9c5a4(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x5e77a(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0xac(%rsp), %rsi
callq 0x70339
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x5e626(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
jmp 0x17cc0
leaq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5e692(%rip), %rsi     # 0x7615d
leaq 0x5e690(%rip), %rdx     # 0x76162
callq 0x1517a
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e6cc(%rip), %rsi     # 0x761c7
leaq 0x88(%rsp), %rdi
callq 0x23d0
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
movq %rax, (%rdi)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x61bf1(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e667(%rip), %rsi     # 0x761cb
leaq 0x8(%rsp), %rdi
callq 0x23d0
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
callq 0x15390
leaq 0x5e616(%rip), %rsi     # 0x761a5
leaq 0x28(%rsp), %rdi
callq 0x23d0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x9c42e(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x17bbe
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17bd2
callq 0x2200
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17be6
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x17bf8
callq 0x2200
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x17c0c
callq 0x2200
movq 0x9c3c5(%rip), %rdi     # 0xb3fd8
leaq 0x87273(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x9c396(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x5e56c(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x70339
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x5e418(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17cd4
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x17ce3
callq 0x2200
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x9c2be(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2380
jmp 0x17d06
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17e0b
callq 0x2200
jmp 0x17e0b
jmp 0x17e08
jmp 0x17e08
jmp 0x17e08
jmp 0x17e08
jmp 0x17f06
jmp 0x17f06
jmp 0x17d4a
jmp 0x17d4a
jmp 0x17d4a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x17d67
callq 0x2200
jmp 0x17d67
jmp 0x17d64
jmp 0x17d64
jmp 0x17d64
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17d86
callq 0x2200
jmp 0x17d86
jmp 0x17d83
jmp 0x17d83
jmp 0x17d83
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17da5
callq 0x2200
jmp 0x17da5
jmp 0x17da2
jmp 0x17da2
jmp 0x17da2
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x17dbe
callq 0x2200
jmp 0x17dbe
jmp 0x17dbb
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
jmp 0x17ef6
jmp 0x17dcf
movq %rax, %rbx
jmp 0x17eb8
jmp 0x17f06
jmp 0x17f06
jmp 0x17e08
jmp 0x17f06
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x17e4c
jmp 0x17dfd
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x17e9a
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x17eb5
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
jne 0x17efb
jmp 0x17f09
jmp 0x17f06
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x17e3a
callq 0x2200
jmp 0x17e3a
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x17e4c
callq 0x2200
testb %r14b, %r14b
je 0x17eb5
leaq 0xe8(%rsp), %rax
jmp 0x17ea7
jmp 0x17ed0
jmp 0x17ed0
jmp 0x17ee9
jmp 0x17f06
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x17e84
callq 0x2200
jmp 0x17e84
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x17e9a
callq 0x2200
testb %r14b, %r14b
je 0x17eb5
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x17eb5
callq 0x2200
testb %r14b, %r14b
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x17ed3
callq 0x2200
jmp 0x17ed3
jmp 0x17ed0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x17eec
callq 0x2200
jmp 0x17eec
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17f09
callq 0x2200
jmp 0x17f09
jmp 0x17f06
jmp 0x17f06
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x17f1e
movq %rbx, %rdi
callq 0x23b0