// File: lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: doCodecTestCPP(Image&)
void doCodecTestCPP(Image& image) {
  std::vector<unsigned char> encoded;
  std::vector<unsigned char> decoded;
  unsigned decoded_w;
  unsigned decoded_h;

  unsigned error_enc = lodepng::encode(encoded, image.data, image.width, image.height,
                                       image.colorType, image.bitDepth);

  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(decoded, decoded_w, decoded_h, encoded, image.colorType, image.bitDepth);

  ASSERT_NO_PNG_ERROR_MSG(error_dec, "decoder error C++");

  ASSERT_EQUALS(image.width, decoded_w);
  ASSERT_EQUALS(image.height, decoded_h);
  ASSERT_EQUALS(image.data.size(), decoded.size());
  assertPixels(image, &decoded[0], "Pixels C++");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x670, %rsp            # imm = 0x670
movq %rdi, -0x8(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x1a4a0
leaq -0x38(%rbp), %rdi
callq 0x1a4a0
jmp 0x2ba63
movq -0x8(%rbp), %rsi
movl 0x18(%rsi), %edx
movl 0x1c(%rsi), %ecx
movl 0x20(%rsi), %r8d
movl 0x24(%rsi), %r9d
leaq -0x20(%rbp), %rdi
callq 0x12040
movl %eax, -0x518(%rbp)
jmp 0x2ba86
movl -0x518(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x524(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x3440
movq -0x520(%rbp), %rdx
leaq 0x8765c(%rip), %rsi     # 0xb3115
leaq -0xb0(%rbp), %rdi
callq 0x3340
jmp 0x2bac7
leaq 0x876c8(%rip), %rdx     # 0xb3196
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xaa1b0
jmp 0x2bae3
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x3440
movq -0x530(%rbp), %rdx
movb $0x0, -0xfb(%rbp)
movb $0x0, -0x122(%rbp)
movb $0x0, -0x123(%rbp)
leaq 0x87681(%rip), %rsi     # 0xb319a
leaq -0xf8(%rbp), %rdi
callq 0x3340
jmp 0x2bb27
leaq -0xf8(%rbp), %rdi
callq 0x33f0
movb %al, -0x531(%rbp)
jmp 0x2bb3b
movb -0x531(%rbp), %al
testb $0x1, %al
jne 0x2bb47
jmp 0x2bb7f
leaq -0xfa(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x3440
movq -0x540(%rbp), %rdx
movb $0x1, -0xfb(%rbp)
leaq 0x88995(%rip), %rsi     # 0xb4504
leaq -0xd8(%rbp), %rdi
callq 0x3340
jmp 0x2bb7d
jmp 0x2bbda
leaq -0x121(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x3440
movq -0x548(%rbp), %rdx
movb $0x1, -0x122(%rbp)
leaq 0x875f3(%rip), %rsi     # 0xb319a
leaq -0x120(%rbp), %rdi
callq 0x3340
jmp 0x2bbb5
movb $0x1, -0x123(%rbp)
leaq 0x8ab20(%rip), %rsi     # 0xb66e3
leaq -0xd8(%rbp), %rdi
leaq -0x120(%rbp), %rdx
callq 0xaa6d0
jmp 0x2bbd8
jmp 0x2bbda
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
callq 0xaa240
jmp 0x2bbf3
movl -0x524(%rbp), %edi
leaq -0x70(%rbp), %rsi
callq 0x28d30
jmp 0x2bc04
leaq -0x70(%rbp), %rdi
callq 0x34a8
jmp 0x2bc0f
leaq -0xd8(%rbp), %rdi
callq 0x34a8
jmp 0x2bc1d
testb $0x1, -0x123(%rbp)
jne 0x2bc28
jmp 0x2bc38
leaq -0x120(%rbp), %rdi
callq 0x34a8
jmp 0x2bc36
jmp 0x2bc38
testb $0x1, -0x122(%rbp)
jne 0x2bc43
jmp 0x2bc4f
leaq -0x121(%rbp), %rdi
callq 0x3290
testb $0x1, -0xfb(%rbp)
jne 0x2bc5a
jmp 0x2bc66
leaq -0xfa(%rbp), %rdi
callq 0x3290
leaq -0xf8(%rbp), %rdi
callq 0x34a8
jmp 0x2bc74
leaq -0xf9(%rbp), %rdi
callq 0x3290
leaq -0x90(%rbp), %rdi
callq 0x34a8
jmp 0x2bc8e
leaq -0xb0(%rbp), %rdi
callq 0x34a8
jmp 0x2bc9c
leaq -0xb1(%rbp), %rdi
callq 0x3290
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x550(%rbp)
jmp 0x2bcba
movq -0x550(%rbp), %rax
cmpq $0x200, %rax            # imm = 0x200
jbe 0x2bf14
leaq -0x20(%rbp), %rdi
callq 0x1a400
movq %rax, -0x558(%rbp)
jmp 0x2bcdf
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x560(%rbp)
jmp 0x2bcf1
movq -0x560(%rbp), %rcx
movq -0x558(%rbp), %rax
subq %rcx, %rax
setb %al
movb %al, -0x569(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x3440
movq -0x568(%rbp), %rdx
leaq 0x873ff(%rip), %rsi     # 0xb312b
leaq -0x148(%rbp), %rdi
callq 0x3340
jmp 0x2bd3a
movb -0x569(%rbp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq -0x148(%rbp), %rsi
callq 0x28cc0
jmp 0x2bd54
leaq -0x148(%rbp), %rdi
callq 0x34a8
jmp 0x2bd62
leaq -0x149(%rbp), %rdi
callq 0x3290
jmp 0x2bf14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ccf6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bec8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2beb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x34a8
jmp 0x2be2b
jmp 0x2be2d
leaq -0xd8(%rbp), %rdi
callq 0x34a8
jmp 0x2be3b
jmp 0x2be3d
testb $0x1, -0x123(%rbp)
jne 0x2be48
jmp 0x2be58
leaq -0x120(%rbp), %rdi
callq 0x34a8
jmp 0x2be56
jmp 0x2be58
jmp 0x2be5a
testb $0x1, -0x122(%rbp)
jne 0x2be65
jmp 0x2be71
leaq -0x121(%rbp), %rdi
callq 0x3290
jmp 0x2be73
testb $0x1, -0xfb(%rbp)
jne 0x2be7e
jmp 0x2be8a
leaq -0xfa(%rbp), %rdi
callq 0x3290
jmp 0x2be8c
leaq -0xf8(%rbp), %rdi
callq 0x34a8
jmp 0x2be9a
jmp 0x2be9c
leaq -0xf9(%rbp), %rdi
callq 0x3290
leaq -0x90(%rbp), %rdi
callq 0x34a8
jmp 0x2beb6
jmp 0x2beb8
leaq -0xb0(%rbp), %rdi
callq 0x34a8
jmp 0x2bec6
jmp 0x2bec8
leaq -0xb1(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bf03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x34a8
jmp 0x2bf01
jmp 0x2bf03
leaq -0x149(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq -0x8(%rbp), %rax
movl 0x20(%rax), %r8d
movl 0x24(%rax), %r9d
leaq -0x38(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x4c(%rbp), %rdx
leaq -0x20(%rbp), %rcx
callq 0x11cd0
movl %eax, -0x570(%rbp)
jmp 0x2bf3d
movl -0x570(%rbp), %eax
movl %eax, -0x150(%rbp)
movl -0x150(%rbp), %eax
movl %eax, -0x57c(%rbp)
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x3440
movq -0x578(%rbp), %rdx
leaq 0x8719f(%rip), %rsi     # 0xb3115
leaq -0x1b0(%rbp), %rdi
callq 0x3340
jmp 0x2bf84
leaq 0x8a290(%rip), %rdx     # 0xb621b
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0xaa1b0
jmp 0x2bfa0
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x3440
movq -0x588(%rbp), %rdx
movb $0x0, -0x1fb(%rbp)
movb $0x0, -0x222(%rbp)
movb $0x0, -0x223(%rbp)
leaq 0x871d6(%rip), %rsi     # 0xb31ac
leaq -0x1f8(%rbp), %rdi
callq 0x3340
jmp 0x2bfe4
leaq -0x1f8(%rbp), %rdi
callq 0x33f0
movb %al, -0x589(%rbp)
jmp 0x2bff8
movb -0x589(%rbp), %al
testb $0x1, %al
jne 0x2c004
jmp 0x2c03c
leaq -0x1fa(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x3440
movq -0x598(%rbp), %rdx
movb $0x1, -0x1fb(%rbp)
leaq 0x884d8(%rip), %rsi     # 0xb4504
leaq -0x1d8(%rbp), %rdi
callq 0x3340
jmp 0x2c03a
jmp 0x2c097
leaq -0x221(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x3440
movq -0x5a0(%rbp), %rdx
movb $0x1, -0x222(%rbp)
leaq 0x87148(%rip), %rsi     # 0xb31ac
leaq -0x220(%rbp), %rdi
callq 0x3340
jmp 0x2c072
movb $0x1, -0x223(%rbp)
leaq 0x8a663(%rip), %rsi     # 0xb66e3
leaq -0x1d8(%rbp), %rdi
leaq -0x220(%rbp), %rdx
callq 0xaa6d0
jmp 0x2c095
jmp 0x2c097
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0xaa240
jmp 0x2c0b3
movl -0x57c(%rbp), %edi
leaq -0x170(%rbp), %rsi
callq 0x28d30
jmp 0x2c0c7
leaq -0x170(%rbp), %rdi
callq 0x34a8
jmp 0x2c0d5
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x2c0e3
testb $0x1, -0x223(%rbp)
jne 0x2c0ee
jmp 0x2c0fe
leaq -0x220(%rbp), %rdi
callq 0x34a8
jmp 0x2c0fc
jmp 0x2c0fe
testb $0x1, -0x222(%rbp)
jne 0x2c109
jmp 0x2c115
leaq -0x221(%rbp), %rdi
callq 0x3290
testb $0x1, -0x1fb(%rbp)
jne 0x2c120
jmp 0x2c12c
leaq -0x1fa(%rbp), %rdi
callq 0x3290
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x2c13a
leaq -0x1f9(%rbp), %rdi
callq 0x3290
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x2c154
leaq -0x1b0(%rbp), %rdi
callq 0x34a8
jmp 0x2c162
leaq -0x1b1(%rbp), %rdi
callq 0x3290
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
cmpl -0x48(%rbp), %eax
je 0x2c5af
leaq -0x2c9(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x3440
movq -0x5a8(%rbp), %rdx
leaq 0x86f76(%rip), %rsi     # 0xb3115
leaq -0x2c8(%rbp), %rdi
callq 0x3340
jmp 0x2c1ad
leaq 0x8700a(%rip), %rdx     # 0xb31be
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c1c9
leaq 0x8a513(%rip), %rdx     # 0xb66e3
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c1e5
leaq 0x86f67(%rip), %rdx     # 0xb3153
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c201
leaq 0x86f55(%rip), %rdx     # 0xb315d
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c21d
movq 0xcbdb4(%rip), %rdi     # 0xf7fd8
leaq -0x248(%rbp), %rsi
callq 0x3200
jmp 0x2c232
leaq -0x248(%rbp), %rdi
callq 0x34a8
jmp 0x2c240
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x2c24e
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x2c25c
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x2c26a
leaq -0x2c8(%rbp), %rdi
callq 0x34a8
jmp 0x2c278
leaq -0x2c9(%rbp), %rdi
callq 0x3290
movq 0xcbd4d(%rip), %rdi     # 0xf7fd8
leaq 0xafbb9(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x5b0(%rbp)
jmp 0x2c2a0
movq -0x8(%rbp), %rsi
addq $0x18, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0xaa7f0
jmp 0x2c2b6
movq -0x5b0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x3200
movq %rax, -0x5b8(%rbp)
jmp 0x2c2d2
movq -0x5b8(%rbp), %rdi
leaq 0x86e95(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x5c0(%rbp)
jmp 0x2c2ee
leaq -0x310(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xaa7f0
jmp 0x2c300
movq -0x5c0(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x3200
movq %rax, -0x5c8(%rbp)
jmp 0x2c31c
movq -0x5c8(%rbp), %rdi
leaq 0x86d32(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x5d0(%rbp)
jmp 0x2c338
movq -0x5d0(%rbp), %rdi
movq 0xcbc7a(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2c34d
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x2c35b
leaq -0x2f0(%rbp), %rdi
callq 0x34a8
jmp 0x2c369
callq 0x28bd0
jmp 0x2c370
jmp 0x2c5af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c4ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c49b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c47f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c46f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c43d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c420
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c410
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x34a8
jmp 0x2c40e
jmp 0x2c410
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x2c41e
jmp 0x2c420
testb $0x1, -0x223(%rbp)
jne 0x2c42b
jmp 0x2c43b
leaq -0x220(%rbp), %rdi
callq 0x34a8
jmp 0x2c439
jmp 0x2c43b
jmp 0x2c43d
testb $0x1, -0x222(%rbp)
jne 0x2c448
jmp 0x2c454
leaq -0x221(%rbp), %rdi
callq 0x3290
jmp 0x2c456
testb $0x1, -0x1fb(%rbp)
jne 0x2c461
jmp 0x2c46d
leaq -0x1fa(%rbp), %rdi
callq 0x3290
jmp 0x2c46f
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x2c47d
jmp 0x2c47f
leaq -0x1f9(%rbp), %rdi
callq 0x3290
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x2c499
jmp 0x2c49b
leaq -0x1b0(%rbp), %rdi
callq 0x34a8
jmp 0x2c4a9
jmp 0x2c4ab
leaq -0x1b1(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c561
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c551
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c541
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c531
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c521
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x34a8
jmp 0x2c51f
jmp 0x2c521
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x2c52f
jmp 0x2c531
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x2c53f
jmp 0x2c541
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x2c54f
jmp 0x2c551
leaq -0x2c8(%rbp), %rdi
callq 0x34a8
jmp 0x2c55f
jmp 0x2c561
leaq -0x2c9(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c59c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x2c59a
jmp 0x2c59c
leaq -0x2f0(%rbp), %rdi
callq 0x34a8
jmp 0x2c5aa
jmp 0x2cce9
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
cmpl -0x4c(%rbp), %eax
je 0x2c8a9
leaq -0x3b1(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x3440
movq -0x5d8(%rbp), %rdx
leaq 0x86b35(%rip), %rsi     # 0xb3115
leaq -0x3b0(%rbp), %rdi
callq 0x3340
jmp 0x2c5ee
leaq 0x86bcd(%rip), %rdx     # 0xb31c2
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c60a
leaq 0x8a0d2(%rip), %rdx     # 0xb66e3
leaq -0x370(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c626
leaq 0x86b56(%rip), %rdx     # 0xb3183
leaq -0x350(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c642
leaq 0x86b14(%rip), %rdx     # 0xb315d
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c65e
movq 0xcb973(%rip), %rdi     # 0xf7fd8
leaq -0x330(%rbp), %rsi
callq 0x3200
jmp 0x2c673
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x2c681
leaq -0x350(%rbp), %rdi
callq 0x34a8
jmp 0x2c68f
leaq -0x370(%rbp), %rdi
callq 0x34a8
jmp 0x2c69d
leaq -0x390(%rbp), %rdi
callq 0x34a8
jmp 0x2c6ab
leaq -0x3b0(%rbp), %rdi
callq 0x34a8
jmp 0x2c6b9
leaq -0x3b1(%rbp), %rdi
callq 0x3290
movq 0xcb90c(%rip), %rdi     # 0xf7fd8
leaq 0xaf778(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x5e0(%rbp)
jmp 0x2c6e1
movq -0x8(%rbp), %rsi
addq $0x1c, %rsi
leaq -0x3d8(%rbp), %rdi
callq 0xaa7f0
jmp 0x2c6f7
movq -0x5e0(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x3200
movq %rax, -0x5e8(%rbp)
jmp 0x2c713
movq -0x5e8(%rbp), %rdi
leaq 0x86a54(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x5f0(%rbp)
jmp 0x2c72f
leaq -0x3f8(%rbp), %rdi
leaq -0x4c(%rbp), %rsi
callq 0xaa7f0
jmp 0x2c741
movq -0x5f0(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x3200
movq %rax, -0x5f8(%rbp)
jmp 0x2c75d
movq -0x5f8(%rbp), %rdi
leaq 0x868f1(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x600(%rbp)
jmp 0x2c779
movq -0x600(%rbp), %rdi
movq 0xcb839(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2c78e
leaq -0x3f8(%rbp), %rdi
callq 0x34a8
jmp 0x2c79c
leaq -0x3d8(%rbp), %rdi
callq 0x34a8
jmp 0x2c7aa
callq 0x28bd0
jmp 0x2c7b1
jmp 0x2c8a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c85b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c84b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c83b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c82b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c81b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x2c819
jmp 0x2c81b
leaq -0x350(%rbp), %rdi
callq 0x34a8
jmp 0x2c829
jmp 0x2c82b
leaq -0x370(%rbp), %rdi
callq 0x34a8
jmp 0x2c839
jmp 0x2c83b
leaq -0x390(%rbp), %rdi
callq 0x34a8
jmp 0x2c849
jmp 0x2c84b
leaq -0x3b0(%rbp), %rdi
callq 0x34a8
jmp 0x2c859
jmp 0x2c85b
leaq -0x3b1(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c896
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x34a8
jmp 0x2c894
jmp 0x2c896
leaq -0x3d8(%rbp), %rdi
callq 0x34a8
jmp 0x2c8a4
jmp 0x2cce9
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x608(%rbp)
jmp 0x2c8bb
leaq -0x38(%rbp), %rdi
callq 0x1a400
movq %rax, -0x610(%rbp)
jmp 0x2c8cd
movq -0x608(%rbp), %rax
movq -0x610(%rbp), %rcx
cmpq %rcx, %rax
je 0x2cc10
leaq -0x499(%rbp), %rdi
movq %rdi, -0x618(%rbp)
callq 0x3440
movq -0x618(%rbp), %rdx
leaq 0x86810(%rip), %rsi     # 0xb3115
leaq -0x498(%rbp), %rdi
callq 0x3340
jmp 0x2c913
leaq 0xaf4ea(%rip), %rdx     # 0xdbe04
leaq -0x478(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c92f
leaq 0x89dad(%rip), %rdx     # 0xb66e3
leaq -0x458(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c94b
leaq 0x86874(%rip), %rdx     # 0xb31c6
leaq -0x438(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c967
leaq 0x867ef(%rip), %rdx     # 0xb315d
leaq -0x418(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0xaa1b0
jmp 0x2c983
movq 0xcb64e(%rip), %rdi     # 0xf7fd8
leaq -0x418(%rbp), %rsi
callq 0x3200
jmp 0x2c998
leaq -0x418(%rbp), %rdi
callq 0x34a8
jmp 0x2c9a6
leaq -0x438(%rbp), %rdi
callq 0x34a8
jmp 0x2c9b4
leaq -0x458(%rbp), %rdi
callq 0x34a8
jmp 0x2c9c2
leaq -0x478(%rbp), %rdi
callq 0x34a8
jmp 0x2c9d0
leaq -0x498(%rbp), %rdi
callq 0x34a8
jmp 0x2c9de
leaq -0x499(%rbp), %rdi
callq 0x3290
movq 0xcb5e7(%rip), %rdi     # 0xf7fd8
leaq 0xaf453(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x620(%rbp)
jmp 0x2ca06
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x628(%rbp)
jmp 0x2ca18
movq -0x628(%rbp), %rax
movq %rax, -0x4c8(%rbp)
leaq -0x4c0(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0xaa610
jmp 0x2ca3b
movq -0x620(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x3200
movq %rax, -0x630(%rbp)
jmp 0x2ca57
movq -0x630(%rbp), %rdi
leaq 0x86710(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x638(%rbp)
jmp 0x2ca73
leaq -0x38(%rbp), %rdi
callq 0x1a400
movq %rax, -0x640(%rbp)
jmp 0x2ca85
movq -0x640(%rbp), %rax
movq %rax, -0x4f0(%rbp)
leaq -0x4e8(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0xaa610
jmp 0x2caa8
movq -0x638(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x3200
movq %rax, -0x648(%rbp)
jmp 0x2cac4
movq -0x648(%rbp), %rdi
leaq 0x8658a(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x650(%rbp)
jmp 0x2cae0
movq -0x650(%rbp), %rdi
movq 0xcb4d2(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2caf5
leaq -0x4e8(%rbp), %rdi
callq 0x34a8
jmp 0x2cb03
leaq -0x4c0(%rbp), %rdi
callq 0x34a8
jmp 0x2cb11
callq 0x28bd0
jmp 0x2cb18
jmp 0x2cc10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cbc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cbb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cba2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cb92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cb82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x34a8
jmp 0x2cb80
jmp 0x2cb82
leaq -0x438(%rbp), %rdi
callq 0x34a8
jmp 0x2cb90
jmp 0x2cb92
leaq -0x458(%rbp), %rdi
callq 0x34a8
jmp 0x2cba0
jmp 0x2cba2
leaq -0x478(%rbp), %rdi
callq 0x34a8
jmp 0x2cbb0
jmp 0x2cbb2
leaq -0x498(%rbp), %rdi
callq 0x34a8
jmp 0x2cbc0
jmp 0x2cbc2
leaq -0x499(%rbp), %rdi
callq 0x3290
jmp 0x2cce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cbfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x34a8
jmp 0x2cbfb
jmp 0x2cbfd
leaq -0x4c0(%rbp), %rdi
callq 0x34a8
jmp 0x2cc0b
jmp 0x2cce9
movq -0x8(%rbp), %rax
movq %rax, -0x660(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x658(%rbp)
jmp 0x2cc31
leaq -0x511(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0x3440
movq -0x668(%rbp), %rdx
leaq 0x86583(%rip), %rsi     # 0xb31d5
leaq -0x510(%rbp), %rdi
callq 0x3340
jmp 0x2cc60
movq -0x658(%rbp), %rsi
movq -0x660(%rbp), %rdi
leaq -0x510(%rbp), %rdx
callq 0x2a730
jmp 0x2cc7c
leaq -0x510(%rbp), %rdi
callq 0x34a8
jmp 0x2cc8a
leaq -0x511(%rbp), %rdi
callq 0x3290
leaq -0x38(%rbp), %rdi
callq 0x1a4c0
jmp 0x2cca1
leaq -0x20(%rbp), %rdi
callq 0x1a4c0
addq $0x670, %rsp            # imm = 0x670
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ccdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x510(%rbp), %rdi
callq 0x34a8
jmp 0x2ccdb
jmp 0x2ccdd
leaq -0x511(%rbp), %rdi
callq 0x3290
leaq -0x38(%rbp), %rdi
callq 0x1a4c0
jmp 0x2ccf4
jmp 0x2ccf6
leaq -0x20(%rbp), %rdi
callq 0x1a4c0
jmp 0x2cd01
jmp 0x2cd03
movq -0x40(%rbp), %rdi
callq 0x3430
movq %rax, %rdi
callq 0x1a490
nopw %cs:(%rax,%rax)