// File: lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: testChunkUtil()
void testChunkUtil() {
  std::cout << "testChunkUtil" << std::endl;
  std::vector<unsigned char> png;
  createComplexPNG(png);

  std::vector<std::string> names[3];
  std::vector<std::vector<unsigned char> > chunks[3];

  assertNoError(lodepng::getChunks(names, chunks, png));

  std::vector<std::vector<unsigned char> > chunks2[3];
  chunks2[0].push_back(chunks[2][2]); //zTXt
  chunks2[1].push_back(chunks[2][3]); //tEXt
  chunks2[2].push_back(chunks[2][4]); //iTXt

  assertNoError(lodepng::insertChunks(png, chunks2));

  std::string chunknames = extractChunkNames(png);
  //                                        chunks2[0]                    chunks2[1]                                   chunks2[2]
  //                                             v                             v                                            v
  std::string expectednames = " IHDR uNKa uNKa zTXt PLTE tRNS bKGD pHYs uNKb tEXt IDAT tIME zTXt zTXt tEXt iTXt iTXt uNKc iTXt IEND";
  ASSERT_EQUALS(expectednames, chunknames);

  std::vector<unsigned char> image;
  unsigned w, h;
  ASSERT_NO_PNG_ERROR(lodepng::decode(image, w, h, png));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x540, %rsp            # imm = 0x540
movq 0xa5cb6(%rip), %rdi     # 0xf7fd8
leaq 0x622b6(%rip), %rsi     # 0xb45df
callq 0x3230
movq %rax, %rdi
movq 0xa5c88(%rip), %rsi     # 0xf7fc0
callq 0x3280
leaq -0x18(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x1a4a0
movq -0x340(%rbp), %rdi
callq 0x3a400
jmp 0x5235b
leaq -0x70(%rbp), %rax
movq %rax, -0x358(%rbp)
movq %rax, %rcx
addq $0x48, %rcx
movq %rcx, -0x350(%rbp)
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0xab590
jmp 0x52390
movq -0x350(%rbp), %rcx
movq -0x360(%rbp), %rax
addq $0x18, %rax
cmpq %rcx, %rax
movq %rax, -0x348(%rbp)
jne 0x5237b
leaq -0xc0(%rbp), %rax
movq %rax, -0x378(%rbp)
movq %rax, %rcx
addq $0x48, %rcx
movq %rcx, -0x370(%rbp)
movq %rax, -0x368(%rbp)
movq -0x368(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x238d0
jmp 0x523e6
movq -0x370(%rbp), %rcx
movq -0x380(%rbp), %rax
addq $0x18, %rax
cmpq %rcx, %rax
movq %rax, -0x368(%rbp)
jne 0x523d1
leaq -0x70(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0x1c420
movl %eax, -0x384(%rbp)
jmp 0x52420
movl -0x384(%rbp), %edi
callq 0x28fb0
jmp 0x5242d
leaq -0x110(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq %rax, %rcx
addq $0x48, %rcx
movq %rcx, -0x398(%rbp)
movq %rax, -0x390(%rbp)
movq -0x390(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x238d0
jmp 0x52465
movq -0x398(%rbp), %rcx
movq -0x3a8(%rbp), %rax
addq $0x18, %rax
cmpq %rcx, %rax
movq %rax, -0x390(%rbp)
jne 0x52450
leaq -0x110(%rbp), %rax
movq %rax, -0x3b8(%rbp)
leaq -0x90(%rbp), %rdi
movl $0x2, %esi
callq 0x23840
movq %rax, -0x3b0(%rbp)
jmp 0x524ab
movq -0x3b0(%rbp), %rsi
movq -0x3b8(%rbp), %rdi
callq 0x232e0
jmp 0x524c0
leaq -0xf8(%rbp), %rax
movq %rax, -0x3c8(%rbp)
leaq -0x90(%rbp), %rdi
movl $0x3, %esi
callq 0x23840
movq %rax, -0x3c0(%rbp)
jmp 0x524e8
movq -0x3c0(%rbp), %rsi
movq -0x3c8(%rbp), %rdi
callq 0x232e0
jmp 0x524fd
leaq -0xe0(%rbp), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x90(%rbp), %rdi
movl $0x4, %esi
callq 0x23840
movq %rax, -0x3d0(%rbp)
jmp 0x52525
movq -0x3d0(%rbp), %rsi
movq -0x3d8(%rbp), %rdi
callq 0x232e0
jmp 0x5253a
leaq -0x18(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x1c7a0
movl %eax, -0x3dc(%rbp)
jmp 0x52552
movl -0x3dc(%rbp), %edi
callq 0x28fb0
jmp 0x5255f
leaq -0x130(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3ac10
jmp 0x52571
leaq -0x151(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x3440
movq -0x3e8(%rbp), %rdx
leaq 0x6205b(%rip), %rsi     # 0xb45ed
leaq -0x150(%rbp), %rdi
callq 0x3340
jmp 0x525a0
leaq -0x151(%rbp), %rdi
callq 0x3290
leaq -0x150(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xab040
movb %al, -0x3e9(%rbp)
jmp 0x525c7
movb -0x3e9(%rbp), %al
testb $0x1, %al
jne 0x525d6
jmp 0x52a37
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x3440
movq -0x3f8(%rbp), %rdx
leaq 0x60b1e(%rip), %rsi     # 0xb3115
leaq -0x1f8(%rbp), %rdi
callq 0x3340
jmp 0x52605
leaq 0x62046(%rip), %rdx     # 0xb4652
leaq -0x1d8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0xaa1b0
jmp 0x52621
leaq 0x640bb(%rip), %rdx     # 0xb66e3
leaq -0x1b8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0xaa1b0
jmp 0x5263d
leaq 0x61900(%rip), %rdx     # 0xb3f44
leaq -0x198(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0xaa1b0
jmp 0x52659
leaq 0x60afd(%rip), %rdx     # 0xb315d
leaq -0x178(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xaa1b0
jmp 0x52675
movq 0xa595c(%rip), %rdi     # 0xf7fd8
leaq -0x178(%rbp), %rsi
callq 0x3200
jmp 0x5268a
leaq -0x178(%rbp), %rdi
callq 0x34a8
jmp 0x52698
leaq -0x198(%rbp), %rdi
callq 0x34a8
jmp 0x526a6
leaq -0x1b8(%rbp), %rdi
callq 0x34a8
jmp 0x526b4
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x526c2
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x526d0
leaq -0x1f9(%rbp), %rdi
callq 0x3290
movq 0xa58f5(%rip), %rdi     # 0xf7fd8
leaq 0x89761(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x400(%rbp)
jmp 0x526f8
leaq -0x220(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xab070
jmp 0x5270d
movq -0x400(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3200
movq %rax, -0x408(%rbp)
jmp 0x52729
movq -0x408(%rbp), %rdi
leaq 0x60a3e(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x410(%rbp)
jmp 0x52745
leaq -0x240(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xab070
jmp 0x5275a
movq -0x410(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x3200
movq %rax, -0x418(%rbp)
jmp 0x52776
movq -0x418(%rbp), %rdi
leaq 0x608d8(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x420(%rbp)
jmp 0x52792
movq -0x420(%rbp), %rdi
movq 0xa5820(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x527a7
leaq -0x240(%rbp), %rdi
callq 0x34a8
jmp 0x527b5
leaq -0x220(%rbp), %rdi
callq 0x34a8
jmp 0x527c3
callq 0x28bd0
jmp 0x527ca
jmp 0x52a37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x53136
movq -0x358(%rbp), %rcx
movq %rax, %rsi
movq -0x360(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x428(%rbp)
je 0x52837
movq -0x428(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x430(%rbp)
callq 0xab5b0
jmp 0x5281d
movq -0x430(%rbp), %rax
movq -0x358(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x428(%rbp)
jne 0x52804
jmp 0x53136
movq -0x378(%rbp), %rcx
movq %rax, %rsi
movq -0x380(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x438(%rbp)
je 0x52893
movq -0x438(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x440(%rbp)
callq 0x23940
jmp 0x52879
movq -0x440(%rbp), %rax
movq -0x378(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x438(%rbp)
jne 0x52860
jmp 0x530eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x53044
movq -0x3a0(%rbp), %rcx
movq %rax, %rsi
movq -0x3a8(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x448(%rbp)
je 0x52900
movq -0x448(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x450(%rbp)
callq 0x23940
jmp 0x528e6
movq -0x450(%rbp), %rax
movq -0x3a0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x448(%rbp)
jne 0x528cd
jmp 0x53044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52f9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x151(%rbp), %rdi
callq 0x3290
jmp 0x52f2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x529e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x529d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x529c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x529b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x529a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x34a8
jmp 0x529a7
jmp 0x529a9
leaq -0x198(%rbp), %rdi
callq 0x34a8
jmp 0x529b7
jmp 0x529b9
leaq -0x1b8(%rbp), %rdi
callq 0x34a8
jmp 0x529c7
jmp 0x529c9
leaq -0x1d8(%rbp), %rdi
callq 0x34a8
jmp 0x529d7
jmp 0x529d9
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x529e7
jmp 0x529e9
leaq -0x1f9(%rbp), %rdi
callq 0x3290
jmp 0x52f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52a24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x34a8
jmp 0x52a22
jmp 0x52a24
leaq -0x220(%rbp), %rdi
callq 0x34a8
jmp 0x52a32
jmp 0x52f1e
leaq -0x258(%rbp), %rdi
callq 0x1a4a0
jmp 0x52a45
leaq -0x258(%rbp), %rdi
leaq -0x25c(%rbp), %rsi
leaq -0x260(%rbp), %rdx
leaq -0x18(%rbp), %rcx
movl $0x6, %r8d
movl $0x8, %r9d
callq 0x11cd0
movl %eax, -0x454(%rbp)
jmp 0x52a77
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x3440
movq -0x460(%rbp), %rdx
leaq 0x6067d(%rip), %rsi     # 0xb3115
leaq -0x2c0(%rbp), %rdi
callq 0x3340
jmp 0x52aa6
leaq 0x61baa(%rip), %rdx     # 0xb4657
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0xaa1b0
jmp 0x52ac2
leaq -0x309(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x3440
movq -0x468(%rbp), %rdx
movb $0x0, -0x30b(%rbp)
movb $0x0, -0x332(%rbp)
movb $0x0, -0x333(%rbp)
leaq 0x61a0c(%rip), %rsi     # 0xb4504
leaq -0x308(%rbp), %rdi
callq 0x3340
jmp 0x52b06
leaq -0x308(%rbp), %rdi
callq 0x33f0
movb %al, -0x469(%rbp)
jmp 0x52b1a
movb -0x469(%rbp), %al
testb $0x1, %al
jne 0x52b26
jmp 0x52b5e
leaq -0x30a(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x3440
movq -0x478(%rbp), %rdx
movb $0x1, -0x30b(%rbp)
leaq 0x619b6(%rip), %rsi     # 0xb4504
leaq -0x2e8(%rbp), %rdi
callq 0x3340
jmp 0x52b5c
jmp 0x52bb9
leaq -0x331(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x3440
movq -0x480(%rbp), %rdx
movb $0x1, -0x332(%rbp)
leaq 0x6197e(%rip), %rsi     # 0xb4504
leaq -0x330(%rbp), %rdi
callq 0x3340
jmp 0x52b94
movb $0x1, -0x333(%rbp)
leaq 0x63b41(%rip), %rsi     # 0xb66e3
leaq -0x2e8(%rbp), %rdi
leaq -0x330(%rbp), %rdx
callq 0xaa6d0
jmp 0x52bb7
jmp 0x52bb9
leaq -0x280(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
leaq -0x2e8(%rbp), %rdx
callq 0xaa240
jmp 0x52bd5
movl -0x454(%rbp), %edi
leaq -0x280(%rbp), %rsi
callq 0x28d30
jmp 0x52be9
leaq -0x280(%rbp), %rdi
callq 0x34a8
jmp 0x52bf7
leaq -0x2e8(%rbp), %rdi
callq 0x34a8
jmp 0x52c05
testb $0x1, -0x333(%rbp)
jne 0x52c10
jmp 0x52c20
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x52c1e
jmp 0x52c20
testb $0x1, -0x332(%rbp)
jne 0x52c2b
jmp 0x52c37
leaq -0x331(%rbp), %rdi
callq 0x3290
testb $0x1, -0x30b(%rbp)
jne 0x52c42
jmp 0x52c4e
leaq -0x30a(%rbp), %rdi
callq 0x3290
leaq -0x308(%rbp), %rdi
callq 0x34a8
jmp 0x52c5c
leaq -0x309(%rbp), %rdi
callq 0x3290
leaq -0x2a0(%rbp), %rdi
callq 0x34a8
jmp 0x52c76
leaq -0x2c0(%rbp), %rdi
callq 0x34a8
jmp 0x52c84
leaq -0x2c1(%rbp), %rdi
callq 0x3290
leaq -0x258(%rbp), %rdi
callq 0x1a4c0
jmp 0x52c9e
leaq -0x150(%rbp), %rdi
callq 0x34a8
jmp 0x52cac
leaq -0x130(%rbp), %rdi
callq 0x34a8
jmp 0x52cba
leaq -0x110(%rbp), %rax
movq %rax, -0x490(%rbp)
addq $0x48, %rax
movq %rax, -0x488(%rbp)
movq -0x488(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x498(%rbp)
callq 0x23940
jmp 0x52cec
movq -0x498(%rbp), %rax
movq -0x490(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x488(%rbp)
jne 0x52cd3
leaq -0xc0(%rbp), %rax
movq %rax, -0x4a8(%rbp)
addq $0x48, %rax
movq %rax, -0x4a0(%rbp)
movq -0x4a0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x23940
jmp 0x52d38
movq -0x4b0(%rbp), %rax
movq -0x4a8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4a0(%rbp)
jne 0x52d1f
leaq -0x70(%rbp), %rax
movq %rax, -0x4c0(%rbp)
addq $0x48, %rax
movq %rax, -0x4b8(%rbp)
movq -0x4b8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x4c8(%rbp)
callq 0xab5b0
jmp 0x52d81
movq -0x4c8(%rbp), %rax
movq -0x4c0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4b8(%rbp)
jne 0x52d68
leaq -0x18(%rbp), %rdi
callq 0x1a4c0
addq $0x540, %rsp            # imm = 0x540
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52f00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52ef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52ee4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52ec8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52eb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52e9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52e86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52e69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52e59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x34a8
jmp 0x52e57
jmp 0x52e59
leaq -0x2e8(%rbp), %rdi
callq 0x34a8
jmp 0x52e67
jmp 0x52e69
testb $0x1, -0x333(%rbp)
jne 0x52e74
jmp 0x52e84
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x52e82
jmp 0x52e84
jmp 0x52e86
testb $0x1, -0x332(%rbp)
jne 0x52e91
jmp 0x52e9d
leaq -0x331(%rbp), %rdi
callq 0x3290
jmp 0x52e9f
testb $0x1, -0x30b(%rbp)
jne 0x52eaa
jmp 0x52eb6
leaq -0x30a(%rbp), %rdi
callq 0x3290
jmp 0x52eb8
leaq -0x308(%rbp), %rdi
callq 0x34a8
jmp 0x52ec6
jmp 0x52ec8
leaq -0x309(%rbp), %rdi
callq 0x3290
leaq -0x2a0(%rbp), %rdi
callq 0x34a8
jmp 0x52ee2
jmp 0x52ee4
leaq -0x2c0(%rbp), %rdi
callq 0x34a8
jmp 0x52ef2
jmp 0x52ef4
leaq -0x2c1(%rbp), %rdi
callq 0x3290
leaq -0x258(%rbp), %rdi
callq 0x1a4c0
jmp 0x52f0e
jmp 0x52f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52f2e
leaq -0x150(%rbp), %rdi
callq 0x34a8
jmp 0x52f2c
jmp 0x52f2e
leaq -0x130(%rbp), %rdi
callq 0x34a8
jmp 0x52f3c
jmp 0x52f9a
movq -0x490(%rbp), %rcx
movq %rax, %rsi
movq -0x498(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x4d0(%rbp)
je 0x52f95
movq -0x4d0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x23940
jmp 0x52f7b
movq -0x4d8(%rbp), %rax
movq -0x490(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4d0(%rbp)
jne 0x52f62
jmp 0x53044
leaq -0x110(%rbp), %rax
movq %rax, -0x4e8(%rbp)
addq $0x48, %rax
movq %rax, -0x4e0(%rbp)
movq -0x4e0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x4f0(%rbp)
callq 0x23940
jmp 0x52fcc
movq -0x4f0(%rbp), %rax
movq -0x4e8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4e0(%rbp)
jne 0x52fb3
jmp 0x53044
movq -0x4a8(%rbp), %rcx
movq %rax, %rsi
movq -0x4b0(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x4f8(%rbp)
je 0x5303f
movq -0x4f8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x500(%rbp)
callq 0x23940
jmp 0x53025
movq -0x500(%rbp), %rax
movq -0x4a8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4f8(%rbp)
jne 0x5300c
jmp 0x530eb
leaq -0xc0(%rbp), %rax
movq %rax, -0x510(%rbp)
addq $0x48, %rax
movq %rax, -0x508(%rbp)
movq -0x508(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x518(%rbp)
callq 0x23940
jmp 0x53076
movq -0x518(%rbp), %rax
movq -0x510(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x508(%rbp)
jne 0x5305d
jmp 0x530eb
movq -0x4c0(%rbp), %rcx
movq %rax, %rsi
movq -0x4c8(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0x520(%rbp)
je 0x530e9
movq -0x520(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x528(%rbp)
callq 0xab5b0
jmp 0x530cf
movq -0x528(%rbp), %rax
movq -0x4c0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x520(%rbp)
jne 0x530b6
jmp 0x53136
leaq -0x70(%rbp), %rax
movq %rax, -0x538(%rbp)
addq $0x48, %rax
movq %rax, -0x530(%rbp)
movq -0x530(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x540(%rbp)
callq 0xab5b0
jmp 0x5311a
movq -0x540(%rbp), %rax
movq -0x538(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x530(%rbp)
jne 0x53101
jmp 0x53136
leaq -0x18(%rbp), %rdi
callq 0x1a4c0
jmp 0x53141
jmp 0x53143
movq -0x20(%rbp), %rdi
callq 0x3430
movq %rax, %rdi
callq 0x1a490
nopw %cs:(%rax,%rax)