// File: lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: doCodecTestWithEncState(Image&, lodepng::State&)
void doCodecTestWithEncState(Image& image, lodepng::State& state) {
  std::vector<unsigned char> encoded;
  std::vector<unsigned char> decoded;
  unsigned decoded_w;
  unsigned decoded_h;
  state.info_raw.colortype = image.colorType;
  state.info_raw.bitdepth = image.bitDepth;


  unsigned error_enc = lodepng::encode(encoded, image.data, image.width, image.height, state);
  ASSERT_NO_PNG_ERROR_MSG(error_enc, "encoder error uncompressed");

  unsigned error_dec = lodepng::decode(decoded, decoded_w, decoded_h, encoded, image.colorType, image.bitDepth);

  ASSERT_NO_PNG_ERROR_MSG(error_dec, "decoder error uncompressed");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x630, %rsp            # imm = 0x630
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a4a0
leaq -0x40(%rbp), %rdi
callq 0x1a4a0
jmp 0x2cd47
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xa8(%rax)
movq -0x8(%rbp), %rax
movl 0x24(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xac(%rax)
movq -0x8(%rbp), %rsi
movl 0x18(%rsi), %edx
movl 0x1c(%rsi), %ecx
movq -0x10(%rbp), %r8
leaq -0x28(%rbp), %rdi
callq 0x12170
movl %eax, -0x4f8(%rbp)
jmp 0x2cd88
movl -0x4f8(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x504(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x3440
movq -0x500(%rbp), %rdx
leaq 0x8635a(%rip), %rsi     # 0xb3115
leaq -0xb8(%rbp), %rdi
callq 0x3340
jmp 0x2cdc9
leaq 0x86410(%rip), %rdx     # 0xb31e0
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xaa1b0
jmp 0x2cde5
leaq -0x101(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x3440
movq -0x510(%rbp), %rdx
movb $0x0, -0x103(%rbp)
movb $0x0, -0x12a(%rbp)
movb $0x0, -0x12b(%rbp)
leaq 0x863c9(%rip), %rsi     # 0xb31e4
leaq -0x100(%rbp), %rdi
callq 0x3340
jmp 0x2ce29
leaq -0x100(%rbp), %rdi
callq 0x33f0
movb %al, -0x511(%rbp)
jmp 0x2ce3d
movb -0x511(%rbp), %al
testb $0x1, %al
jne 0x2ce49
jmp 0x2ce81
leaq -0x102(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x3440
movq -0x520(%rbp), %rdx
movb $0x1, -0x103(%rbp)
leaq 0x87693(%rip), %rsi     # 0xb4504
leaq -0xe0(%rbp), %rdi
callq 0x3340
jmp 0x2ce7f
jmp 0x2cedc
leaq -0x129(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x3440
movq -0x528(%rbp), %rdx
movb $0x1, -0x12a(%rbp)
leaq 0x8633b(%rip), %rsi     # 0xb31e4
leaq -0x128(%rbp), %rdi
callq 0x3340
jmp 0x2ceb7
movb $0x1, -0x12b(%rbp)
leaq 0x8981e(%rip), %rsi     # 0xb66e3
leaq -0xe0(%rbp), %rdi
leaq -0x128(%rbp), %rdx
callq 0xaa6d0
jmp 0x2ceda
jmp 0x2cedc
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0xaa240
jmp 0x2cef5
movl -0x504(%rbp), %edi
leaq -0x78(%rbp), %rsi
callq 0x28d30
jmp 0x2cf06
leaq -0x78(%rbp), %rdi
callq 0x34a8
jmp 0x2cf11
leaq -0xe0(%rbp), %rdi
callq 0x34a8
jmp 0x2cf1f
testb $0x1, -0x12b(%rbp)
jne 0x2cf2a
jmp 0x2cf3a
leaq -0x128(%rbp), %rdi
callq 0x34a8
jmp 0x2cf38
jmp 0x2cf3a
testb $0x1, -0x12a(%rbp)
jne 0x2cf45
jmp 0x2cf51
leaq -0x129(%rbp), %rdi
callq 0x3290
testb $0x1, -0x103(%rbp)
jne 0x2cf5c
jmp 0x2cf68
leaq -0x102(%rbp), %rdi
callq 0x3290
leaq -0x100(%rbp), %rdi
callq 0x34a8
jmp 0x2cf76
leaq -0x101(%rbp), %rdi
callq 0x3290
leaq -0x98(%rbp), %rdi
callq 0x34a8
jmp 0x2cf90
leaq -0xb8(%rbp), %rdi
callq 0x34a8
jmp 0x2cf9e
leaq -0xb9(%rbp), %rdi
callq 0x3290
movq -0x8(%rbp), %rax
movl 0x20(%rax), %r8d
movl 0x24(%rax), %r9d
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x54(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x11cd0
movl %eax, -0x52c(%rbp)
jmp 0x2cfd3
movl -0x52c(%rbp), %eax
movl %eax, -0x130(%rbp)
movl -0x130(%rbp), %eax
movl %eax, -0x53c(%rbp)
leaq -0x191(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x3440
movq -0x538(%rbp), %rdx
leaq 0x86109(%rip), %rsi     # 0xb3115
leaq -0x190(%rbp), %rdi
callq 0x3340
jmp 0x2d01a
leaq 0x8927f(%rip), %rdx     # 0xb62a0
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d036
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x3440
movq -0x548(%rbp), %rdx
movb $0x0, -0x1db(%rbp)
movb $0x0, -0x202(%rbp)
movb $0x0, -0x203(%rbp)
leaq 0x86193(%rip), %rsi     # 0xb31ff
leaq -0x1d8(%rbp), %rdi
callq 0x3340
jmp 0x2d07a
leaq -0x1d8(%rbp), %rdi
callq 0x33f0
movb %al, -0x549(%rbp)
jmp 0x2d08e
movb -0x549(%rbp), %al
testb $0x1, %al
jne 0x2d09a
jmp 0x2d0d2
leaq -0x1da(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x3440
movq -0x558(%rbp), %rdx
movb $0x1, -0x1db(%rbp)
leaq 0x87442(%rip), %rsi     # 0xb4504
leaq -0x1b8(%rbp), %rdi
callq 0x3340
jmp 0x2d0d0
jmp 0x2d12d
leaq -0x201(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x3440
movq -0x560(%rbp), %rdx
movb $0x1, -0x202(%rbp)
leaq 0x86105(%rip), %rsi     # 0xb31ff
leaq -0x200(%rbp), %rdi
callq 0x3340
jmp 0x2d108
movb $0x1, -0x203(%rbp)
leaq 0x895cd(%rip), %rsi     # 0xb66e3
leaq -0x1b8(%rbp), %rdi
leaq -0x200(%rbp), %rdx
callq 0xaa6d0
jmp 0x2d12b
jmp 0x2d12d
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
callq 0xaa240
jmp 0x2d149
movl -0x53c(%rbp), %edi
leaq -0x150(%rbp), %rsi
callq 0x28d30
jmp 0x2d15d
leaq -0x150(%rbp), %rdi
callq 0x34a8
jmp 0x2d16b
leaq -0x1b8(%rbp), %rdi
callq 0x34a8
jmp 0x2d179
testb $0x1, -0x203(%rbp)
jne 0x2d184
jmp 0x2d194
leaq -0x200(%rbp), %rdi
callq 0x34a8
jmp 0x2d192
jmp 0x2d194
testb $0x1, -0x202(%rbp)
jne 0x2d19f
jmp 0x2d1ab
leaq -0x201(%rbp), %rdi
callq 0x3290
testb $0x1, -0x1db(%rbp)
jne 0x2d1b6
jmp 0x2d1c2
leaq -0x1da(%rbp), %rdi
callq 0x3290
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x2d1d0
leaq -0x1d9(%rbp), %rdi
callq 0x3290
leaq -0x170(%rbp), %rdi
callq 0x34a8
jmp 0x2d1ea
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x2d1f8
leaq -0x191(%rbp), %rdi
callq 0x3290
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
cmpl -0x50(%rbp), %eax
je 0x2d7ab
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x3440
movq -0x568(%rbp), %rdx
leaq 0x85ee0(%rip), %rsi     # 0xb3115
leaq -0x2a8(%rbp), %rdi
callq 0x3340
jmp 0x2d243
leaq 0x89069(%rip), %rdx     # 0xb62b3
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d25f
leaq 0x8947d(%rip), %rdx     # 0xb66e3
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d27b
leaq 0x85ed1(%rip), %rdx     # 0xb3153
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d297
leaq 0x85ebf(%rip), %rdx     # 0xb315d
leaq -0x228(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d2b3
movq 0xcad1e(%rip), %rdi     # 0xf7fd8
leaq -0x228(%rbp), %rsi
callq 0x3200
jmp 0x2d2c8
leaq -0x228(%rbp), %rdi
callq 0x34a8
jmp 0x2d2d6
leaq -0x248(%rbp), %rdi
callq 0x34a8
jmp 0x2d2e4
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x2d2f2
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x2d300
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x2d30e
leaq -0x2a9(%rbp), %rdi
callq 0x3290
movq 0xcacb7(%rip), %rdi     # 0xf7fd8
leaq 0xaeb23(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x570(%rbp)
jmp 0x2d336
movq -0x8(%rbp), %rsi
addq $0x18, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0xaa7f0
jmp 0x2d34c
movq -0x570(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x3200
movq %rax, -0x578(%rbp)
jmp 0x2d368
movq -0x578(%rbp), %rdi
leaq 0x85dff(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x580(%rbp)
jmp 0x2d384
leaq -0x2f0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xaa7f0
jmp 0x2d396
movq -0x580(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x3200
movq %rax, -0x588(%rbp)
jmp 0x2d3b2
movq -0x588(%rbp), %rdi
leaq 0x85c9c(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x590(%rbp)
jmp 0x2d3ce
movq -0x590(%rbp), %rdi
movq 0xcabe4(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2d3e3
leaq -0x2f0(%rbp), %rdi
callq 0x34a8
jmp 0x2d3f1
leaq -0x2d0(%rbp), %rdi
callq 0x34a8
jmp 0x2d3ff
callq 0x28bd0
jmp 0x2d406
jmp 0x2d7ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2def2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d560
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d550
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d534
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d524
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d50b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d4f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d4d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d4c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x34a8
jmp 0x2d4c3
jmp 0x2d4c5
leaq -0xe0(%rbp), %rdi
callq 0x34a8
jmp 0x2d4d3
jmp 0x2d4d5
testb $0x1, -0x12b(%rbp)
jne 0x2d4e0
jmp 0x2d4f0
leaq -0x128(%rbp), %rdi
callq 0x34a8
jmp 0x2d4ee
jmp 0x2d4f0
jmp 0x2d4f2
testb $0x1, -0x12a(%rbp)
jne 0x2d4fd
jmp 0x2d509
leaq -0x129(%rbp), %rdi
callq 0x3290
jmp 0x2d50b
testb $0x1, -0x103(%rbp)
jne 0x2d516
jmp 0x2d522
leaq -0x102(%rbp), %rdi
callq 0x3290
jmp 0x2d524
leaq -0x100(%rbp), %rdi
callq 0x34a8
jmp 0x2d532
jmp 0x2d534
leaq -0x101(%rbp), %rdi
callq 0x3290
leaq -0x98(%rbp), %rdi
callq 0x34a8
jmp 0x2d54e
jmp 0x2d550
leaq -0xb8(%rbp), %rdi
callq 0x34a8
jmp 0x2d55e
jmp 0x2d560
leaq -0xb9(%rbp), %rdi
callq 0x3290
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d6a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d697
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d67b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d66b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d61c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d60c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x34a8
jmp 0x2d60a
jmp 0x2d60c
leaq -0x1b8(%rbp), %rdi
callq 0x34a8
jmp 0x2d61a
jmp 0x2d61c
testb $0x1, -0x203(%rbp)
jne 0x2d627
jmp 0x2d637
leaq -0x200(%rbp), %rdi
callq 0x34a8
jmp 0x2d635
jmp 0x2d637
jmp 0x2d639
testb $0x1, -0x202(%rbp)
jne 0x2d644
jmp 0x2d650
leaq -0x201(%rbp), %rdi
callq 0x3290
jmp 0x2d652
testb $0x1, -0x1db(%rbp)
jne 0x2d65d
jmp 0x2d669
leaq -0x1da(%rbp), %rdi
callq 0x3290
jmp 0x2d66b
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x2d679
jmp 0x2d67b
leaq -0x1d9(%rbp), %rdi
callq 0x3290
leaq -0x170(%rbp), %rdi
callq 0x34a8
jmp 0x2d695
jmp 0x2d697
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x2d6a5
jmp 0x2d6a7
leaq -0x191(%rbp), %rdi
callq 0x3290
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d75d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d74d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d73d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d72d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d71d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x34a8
jmp 0x2d71b
jmp 0x2d71d
leaq -0x248(%rbp), %rdi
callq 0x34a8
jmp 0x2d72b
jmp 0x2d72d
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x2d73b
jmp 0x2d73d
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x2d74b
jmp 0x2d74d
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x2d75b
jmp 0x2d75d
leaq -0x2a9(%rbp), %rdi
callq 0x3290
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2d798
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x34a8
jmp 0x2d796
jmp 0x2d798
leaq -0x2d0(%rbp), %rdi
callq 0x34a8
jmp 0x2d7a6
jmp 0x2dee5
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
cmpl -0x54(%rbp), %eax
je 0x2daa5
leaq -0x391(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x3440
movq -0x598(%rbp), %rdx
leaq 0x85939(%rip), %rsi     # 0xb3115
leaq -0x390(%rbp), %rdi
callq 0x3340
jmp 0x2d7ea
leaq 0x85a29(%rip), %rdx     # 0xb321a
leaq -0x370(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d806
leaq 0x88ed6(%rip), %rdx     # 0xb66e3
leaq -0x350(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d822
leaq 0x8595a(%rip), %rdx     # 0xb3183
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d83e
leaq 0x85918(%rip), %rdx     # 0xb315d
leaq -0x310(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0xaa1b0
jmp 0x2d85a
movq 0xca777(%rip), %rdi     # 0xf7fd8
leaq -0x310(%rbp), %rsi
callq 0x3200
jmp 0x2d86f
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x2d87d
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x2d88b
leaq -0x350(%rbp), %rdi
callq 0x34a8
jmp 0x2d899
leaq -0x370(%rbp), %rdi
callq 0x34a8
jmp 0x2d8a7
leaq -0x390(%rbp), %rdi
callq 0x34a8
jmp 0x2d8b5
leaq -0x391(%rbp), %rdi
callq 0x3290
movq 0xca710(%rip), %rdi     # 0xf7fd8
leaq 0xae57c(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x5a0(%rbp)
jmp 0x2d8dd
movq -0x8(%rbp), %rsi
addq $0x1c, %rsi
leaq -0x3b8(%rbp), %rdi
callq 0xaa7f0
jmp 0x2d8f3
movq -0x5a0(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3200
movq %rax, -0x5a8(%rbp)
jmp 0x2d90f
movq -0x5a8(%rbp), %rdi
leaq 0x85858(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x5b0(%rbp)
jmp 0x2d92b
leaq -0x3d8(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0xaa7f0
jmp 0x2d93d
movq -0x5b0(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x3200
movq %rax, -0x5b8(%rbp)
jmp 0x2d959
movq -0x5b8(%rbp), %rdi
leaq 0x856f5(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x5c0(%rbp)
jmp 0x2d975
movq -0x5c0(%rbp), %rdi
movq 0xca63d(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2d98a
leaq -0x3d8(%rbp), %rdi
callq 0x34a8
jmp 0x2d998
leaq -0x3b8(%rbp), %rdi
callq 0x34a8
jmp 0x2d9a6
callq 0x28bd0
jmp 0x2d9ad
jmp 0x2daa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x2da15
jmp 0x2da17
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x2da25
jmp 0x2da27
leaq -0x350(%rbp), %rdi
callq 0x34a8
jmp 0x2da35
jmp 0x2da37
leaq -0x370(%rbp), %rdi
callq 0x34a8
jmp 0x2da45
jmp 0x2da47
leaq -0x390(%rbp), %rdi
callq 0x34a8
jmp 0x2da55
jmp 0x2da57
leaq -0x391(%rbp), %rdi
callq 0x3290
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2da92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x34a8
jmp 0x2da90
jmp 0x2da92
leaq -0x3b8(%rbp), %rdi
callq 0x34a8
jmp 0x2daa0
jmp 0x2dee5
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x5c8(%rbp)
jmp 0x2dab7
leaq -0x40(%rbp), %rdi
callq 0x1a400
movq %rax, -0x5d0(%rbp)
jmp 0x2dac9
movq -0x5c8(%rbp), %rax
movq -0x5d0(%rbp), %rcx
cmpq %rcx, %rax
je 0x2de0c
leaq -0x479(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x3440
movq -0x5d8(%rbp), %rdx
leaq 0x85614(%rip), %rsi     # 0xb3115
leaq -0x478(%rbp), %rdi
callq 0x3340
jmp 0x2db0f
leaq 0x85708(%rip), %rdx     # 0xb321e
leaq -0x458(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0xaa1b0
jmp 0x2db2b
leaq 0x88bb1(%rip), %rdx     # 0xb66e3
leaq -0x438(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0xaa1b0
jmp 0x2db47
leaq 0x85678(%rip), %rdx     # 0xb31c6
leaq -0x418(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0xaa1b0
jmp 0x2db63
leaq 0x855f3(%rip), %rdx     # 0xb315d
leaq -0x3f8(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0xaa1b0
jmp 0x2db7f
movq 0xca452(%rip), %rdi     # 0xf7fd8
leaq -0x3f8(%rbp), %rsi
callq 0x3200
jmp 0x2db94
leaq -0x3f8(%rbp), %rdi
callq 0x34a8
jmp 0x2dba2
leaq -0x418(%rbp), %rdi
callq 0x34a8
jmp 0x2dbb0
leaq -0x438(%rbp), %rdi
callq 0x34a8
jmp 0x2dbbe
leaq -0x458(%rbp), %rdi
callq 0x34a8
jmp 0x2dbcc
leaq -0x478(%rbp), %rdi
callq 0x34a8
jmp 0x2dbda
leaq -0x479(%rbp), %rdi
callq 0x3290
movq 0xca3eb(%rip), %rdi     # 0xf7fd8
leaq 0xae257(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x5e0(%rbp)
jmp 0x2dc02
movq -0x8(%rbp), %rdi
callq 0x1a400
movq %rax, -0x5e8(%rbp)
jmp 0x2dc14
movq -0x5e8(%rbp), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x4a0(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
callq 0xaa610
jmp 0x2dc37
movq -0x5e0(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x3200
movq %rax, -0x5f0(%rbp)
jmp 0x2dc53
movq -0x5f0(%rbp), %rdi
leaq 0x85514(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x5f8(%rbp)
jmp 0x2dc6f
leaq -0x40(%rbp), %rdi
callq 0x1a400
movq %rax, -0x600(%rbp)
jmp 0x2dc81
movq -0x600(%rbp), %rax
movq %rax, -0x4d0(%rbp)
leaq -0x4c8(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0xaa610
jmp 0x2dca4
movq -0x5f8(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x3200
movq %rax, -0x608(%rbp)
jmp 0x2dcc0
movq -0x608(%rbp), %rdi
leaq 0x8538e(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x610(%rbp)
jmp 0x2dcdc
movq -0x610(%rbp), %rdi
movq 0xca2d6(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x2dcf1
leaq -0x4c8(%rbp), %rdi
callq 0x34a8
jmp 0x2dcff
leaq -0x4a0(%rbp), %rdi
callq 0x34a8
jmp 0x2dd0d
callq 0x28bd0
jmp 0x2dd14
jmp 0x2de0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2ddbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2ddae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2dd9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2dd8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2dd7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x34a8
jmp 0x2dd7c
jmp 0x2dd7e
leaq -0x418(%rbp), %rdi
callq 0x34a8
jmp 0x2dd8c
jmp 0x2dd8e
leaq -0x438(%rbp), %rdi
callq 0x34a8
jmp 0x2dd9c
jmp 0x2dd9e
leaq -0x458(%rbp), %rdi
callq 0x34a8
jmp 0x2ddac
jmp 0x2ddae
leaq -0x478(%rbp), %rdi
callq 0x34a8
jmp 0x2ddbc
jmp 0x2ddbe
leaq -0x479(%rbp), %rdi
callq 0x3290
jmp 0x2dee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2ddf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x34a8
jmp 0x2ddf7
jmp 0x2ddf9
leaq -0x4a0(%rbp), %rdi
callq 0x34a8
jmp 0x2de07
jmp 0x2dee5
movq -0x8(%rbp), %rax
movq %rax, -0x620(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x618(%rbp)
jmp 0x2de2d
leaq -0x4f1(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0x3440
movq -0x628(%rbp), %rdx
leaq 0x853d4(%rip), %rsi     # 0xb3222
leaq -0x4f0(%rbp), %rdi
callq 0x3340
jmp 0x2de5c
movq -0x618(%rbp), %rsi
movq -0x620(%rbp), %rdi
leaq -0x4f0(%rbp), %rdx
callq 0x2a730
jmp 0x2de78
leaq -0x4f0(%rbp), %rdi
callq 0x34a8
jmp 0x2de86
leaq -0x4f1(%rbp), %rdi
callq 0x3290
leaq -0x40(%rbp), %rdi
callq 0x1a4c0
jmp 0x2de9d
leaq -0x28(%rbp), %rdi
callq 0x1a4c0
addq $0x630, %rsp            # imm = 0x630
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2ded9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x34a8
jmp 0x2ded7
jmp 0x2ded9
leaq -0x4f1(%rbp), %rdi
callq 0x3290
leaq -0x40(%rbp), %rdi
callq 0x1a4c0
jmp 0x2def0
jmp 0x2def2
leaq -0x28(%rbp), %rdi
callq 0x1a4c0
jmp 0x2defd
jmp 0x2deff
movq -0x48(%rbp), %rdi
callq 0x3430
movq %rax, %rdi
callq 0x1a490