// File: /workspace/github_cpp_makefile_star2_O1/sisong[P]ApkDiffPatch/lzma/C/LzmaDec.c
// Function: LzmaDec_DecodeReal2
static int Z7_FASTCALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const Byte *bufLimit)
{
  if (p->checkDicSize == 0)
  {
    UInt32 rem = p->prop.dicSize - p->processedPos;
    if (limit - p->dicPos > rem)
      limit = p->dicPos + rem;
  }
  {
    int res = LZMA_DECODE_REAL(p, limit, bufLimit);
    if (p->checkDicSize == 0 && p->processedPos >= p->prop.dicSize)
      p->checkDicSize = p->prop.dicSize;
    return res;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, (%rsp)
movq %rsi, %r13
movl 0x44(%rdi), %eax
movl %eax, -0x44(%rsp)
testl %eax, %eax
jne 0x55f85
movl 0x4(%rdi), %eax
subl 0x40(%rdi), %eax
movq 0x28(%rdi), %rcx
movq %r13, %rdx
subq %rcx, %rdx
addq %rax, %rcx
cmpq %rax, %rdx
cmovaq %rcx, %r13
movq 0x10(%rdi), %r14
movl 0x58(%rdi), %r11d
movl 0x48(%rdi), %eax
movl %eax, -0x7c(%rsp)
movl 0x4c(%rdi), %eax
movl %eax, -0x74(%rsp)
movl 0x50(%rdi), %eax
movl %eax, -0x78(%rsp)
movb 0x2(%rdi), %cl
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
shll %cl, %edx
movb 0x1(%rdi), %cl
movzbl (%rdi), %esi
movl $0x100, %eax            # imm = 0x100
movl $0x100, %r8d            # imm = 0x100
shll %cl, %r8d
movl %esi, -0x30(%rsp)
movl %esi, %ecx
shrl %cl, %eax
movl 0x54(%rdi), %ecx
movl %ecx, -0x5c(%rsp)
notl %edx
movl %edx, -0x2c(%rsp)
subl %eax, %r8d
movl %r8d, -0x34(%rsp)
movq 0x18(%rdi), %rax
movq %rax, -0x50(%rsp)
movq 0x20(%rdi), %rax
movq %rax, -0x40(%rsp)
movq 0x28(%rdi), %r15
movl 0x40(%rdi), %eax
movl %eax, -0x6c(%rsp)
movq 0x30(%rdi), %r12
movl 0x38(%rdi), %ebx
movq %rdi, -0x20(%rsp)
movl 0x3c(%rdi), %r9d
leaq -0xa00(%r14), %rax
movq %rax, -0x18(%rsp)
leaq -0x600(%r14), %rax
movq %rax, -0x10(%rsp)
leaq 0x80(%r14), %rax
movq %rax, -0x28(%rsp)
leaq 0x280(%r14), %rax
movq %rax, -0x8(%rsp)
xorl %ebp, %ebp
movq %r13, -0x58(%rsp)
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x5605e
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl -0x6c(%rsp), %r10d
movl %r10d, %ecx
andl -0x2c(%rsp), %ecx
shll $0x4, %ecx
leal (%r11,%rcx), %r8d
movzwl -0x200(%r14,%r8,2), %edi
movl %ebx, %esi
shrl $0xb, %esi
imull %edi, %esi
movl %r9d, %edx
subl %esi, %edx
jae 0x5614c
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, -0x200(%r14,%r8,2)
movl %r10d, %eax
orl -0x44(%rsp), %eax
movq -0x8(%rsp), %rdi
movq %rdi, %rcx
movq -0x50(%rsp), %rdx
movq -0x40(%rsp), %r8
je 0x560e5
movl %r10d, %eax
shll $0x8, %eax
testq %r15, %r15
movq %r15, %rcx
cmoveq %r8, %rcx
movzbl -0x1(%rdx,%rcx), %edx
orl %eax, %edx
andl -0x34(%rsp), %edx
movl -0x30(%rsp), %ecx
shll %cl, %edx
leal (%rdx,%rdx,2), %eax
leaq (%rdi,%rax,2), %rcx
cmpl $0x6, %r11d
ja 0x561b6
subl $0x3, %r11d
movl $0x0, %eax
cmovbl %eax, %r11d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x56119
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movzwl 0x2(%rcx), %r8d
movl %esi, %edx
shrl $0xb, %edx
imull %r8d, %edx
movl %r9d, %eax
subl %edx, %eax
jae 0x56349
movl $0x800, %r10d           # imm = 0x800
subl %r8d, %r10d
shrl $0x5, %r10d
addl %r8d, %r10d
movl $0x2, %edi
jmp 0x56361
subl %esi, %ebx
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, -0x200(%r14,%r8,2)
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x56176
shll $0x8, %ebx
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movl %r11d, %esi
movzwl 0x20(%r14,%rsi,2), %edi
movl %ebx, %r13d
shrl $0xb, %r13d
imull %edi, %r13d
movl %edx, %r9d
subl %r13d, %r9d
jae 0x56251
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, 0x20(%r14,%rsi,2)
addl $0xc, %r11d
movq -0x10(%rsp), %rsi
jmp 0x56b56
movl -0x7c(%rsp), %eax
movq %r15, %rdx
subq %rax, %rdx
movl $0x0, %edi
cmovbq %r8, %rdi
cmpl $0xa, %r11d
setb -0x6d(%rsp)
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x561ef
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movq -0x50(%rsp), %rax
addq %rdx, %rax
movzbl (%rdi,%rax), %edi
leal (%rdi,%rdi), %r8d
andl $0x100, %r8d            # imm = 0x100
movzwl 0x202(%rcx,%r8,2), %edx
movl %esi, %r10d
shrl $0xb, %r10d
imull %edx, %r10d
movl %r9d, %eax
subl %r10d, %eax
movq %r11, -0x68(%rsp)
jae 0x563bb
movl $0x800, %eax            # imm = 0x800
subl %edx, %eax
shrl $0x5, %eax
addl %edx, %eax
movw %ax, 0x202(%rcx,%r8,2)
xorl $0x100, %r8d            # imm = 0x100
movl $0x2, %edx
jmp 0x563dc
subl %r13d, %ebx
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, 0x20(%r14,%rsi,2)
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x5627e
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movzwl 0x38(%r14,%rsi,2), %edi
movl %ebx, %r13d
shrl $0xb, %r13d
imull %edi, %r13d
movl %r9d, %edx
subl %r13d, %edx
jae 0x56443
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, 0x38(%r14,%rsi,2)
cmpl $0xffffff, %r13d        # imm = 0xFFFFFF
ja 0x562cc
shll $0x8, %r13d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movq -0x50(%rsp), %rdi
movzwl -0xc00(%r14,%r8,2), %esi
movl %r13d, %ebx
shrl $0xb, %ebx
imull %esi, %ebx
movl %r9d, %edx
subl %ebx, %edx
jae 0x56a8c
movl $0x800, %eax            # imm = 0x800
subl %esi, %eax
shrl $0x5, %eax
addl %esi, %eax
movw %ax, -0xc00(%r14,%r8,2)
movl -0x7c(%rsp), %eax
movq %r15, %rcx
subq %rax, %rcx
movl $0x0, %eax
cmovbq -0x40(%rsp), %rax
addq %rdi, %rcx
movb (%rax,%rcx), %al
movb %al, (%rdi,%r15)
incq %r15
incl -0x6c(%rsp)
xorl %eax, %eax
cmpl $0x7, %r11d
setae %al
leal 0x9(,%rax,2), %r11d
movl $0x3, %ecx
movq -0x58(%rsp), %r13
jmp 0x5754f
subl %edx, %esi
movl %r8d, %edx
shrl $0x5, %edx
subl %edx, %r8d
movl $0x3, %edi
movl %r8d, %r10d
movl %esi, %edx
movl %eax, %r9d
movw %r10w, 0x2(%rcx)
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
ja 0x56383
shll $0x8, %edx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edi, %r8d
movzwl (%rcx,%r8,2), %r10d
movl %edx, %esi
shrl $0xb, %esi
imull %r10d, %esi
leal (%r8,%r8), %edi
movl %r9d, %eax
subl %esi, %eax
jae 0x564ad
movl $0x800, %eax            # imm = 0x800
subl %r10d, %eax
shrl $0x5, %eax
addl %r10d, %eax
movw %ax, (%rcx,%r8,2)
jmp 0x564c5
subl %r10d, %esi
movl %edx, %r9d
shrl $0x5, %r9d
subl %r9d, %edx
movw %dx, 0x202(%rcx,%r8,2)
movl $0x3, %edx
movl %esi, %r10d
movl %eax, %r9d
leal (,%rdi,4), %esi
andl %r8d, %esi
leal (%r8,%rdx), %r11d
addl %esi, %r11d
movzwl (%rcx,%r11,2), %ebx
cmpl $0xffffff, %r10d        # imm = 0xFFFFFF
ja 0x56411
shll $0x8, %r10d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r10d, %r13d
shrl $0xb, %r13d
imull %ebx, %r13d
addl %edx, %edx
movl %r9d, %eax
subl %r13d, %eax
jae 0x56518
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%r11,2)
xorl %r8d, %esi
jmp 0x56533
subl %r13d, %ebx
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, 0x38(%r14,%rsi,2)
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x5646b
shll $0x8, %ebx
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movzwl 0x50(%r14,%rsi,2), %r8d
movl %ebx, %r13d
shrl $0xb, %r13d
imull %r8d, %r13d
movl %edx, %edi
subl %r13d, %edi
jae 0x56aa9
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, 0x50(%r14,%rsi,2)
movl -0x7c(%rsp), %r8d
movl -0x74(%rsp), %eax
movl %eax, -0x7c(%rsp)
jmp 0x56b3b
subl %esi, %edx
movl %r10d, %esi
shrl $0x5, %esi
subl %esi, %r10d
movw %r10w, (%rcx,%r8,2)
orl $0x1, %edi
movl %edx, %esi
movl %eax, %r9d
movl %edi, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x564e9
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edx
shrl $0xb, %edx
imull %r8d, %edx
leal (%rdi,%rdi), %r10d
movl %r9d, %eax
subl %edx, %eax
jae 0x5659b
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x565b4
subl %r13d, %r10d
movl %ebx, %r8d
shrl $0x5, %r8d
subl %r8d, %ebx
movw %bx, (%rcx,%r11,2)
orl $0x1, %edx
movl %r10d, %r13d
movl %eax, %r9d
leal (,%rdi,8), %r8d
andl %esi, %r8d
leal (%rsi,%rdx), %r10d
addl %r8d, %r10d
movzwl (%rcx,%r10,2), %ebx
cmpl $0xffffff, %r13d        # imm = 0xFFFFFF
ja 0x56569
shll $0x8, %r13d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r13d, %r11d
shrl $0xb, %r11d
imull %ebx, %r11d
addl %edx, %edx
movl %r9d, %eax
subl %r11d, %eax
jae 0x56608
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%r10,2)
xorl %esi, %r8d
jmp 0x56620
subl %edx, %esi
movl %r8d, %edx
shrl $0x5, %edx
subl %edx, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %r10d
movl %esi, %edx
movl %eax, %r9d
movl %r10d, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
ja 0x565d9
shll $0x8, %edx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edx, %esi
shrl $0xb, %esi
imull %r8d, %esi
leal (%rdi,%rdi), %r10d
movl %r9d, %eax
subl %esi, %eax
jae 0x56685
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x5669e
subl %r11d, %r13d
movl %ebx, %esi
shrl $0x5, %esi
subl %esi, %ebx
movw %bx, (%rcx,%r10,2)
orl $0x1, %edx
movl %r13d, %r11d
movl %eax, %r9d
movl %edi, %esi
shll $0x4, %esi
andl %r8d, %esi
leal (%r8,%rdx), %r13d
addl %esi, %r13d
movzwl (%rcx,%r13,2), %ebx
cmpl $0xffffff, %r11d        # imm = 0xFFFFFF
ja 0x56653
shll $0x8, %r11d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r11d, %r10d
shrl $0xb, %r10d
imull %ebx, %r10d
addl %edx, %edx
movl %r9d, %eax
subl %r10d, %eax
jae 0x566f2
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%r13,2)
xorl %r8d, %esi
jmp 0x5670d
subl %esi, %edx
movl %r8d, %esi
shrl $0x5, %esi
subl %esi, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %r10d
movl %edx, %esi
movl %eax, %r9d
movl %r10d, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x566c3
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edx
shrl $0xb, %edx
imull %r8d, %edx
leal (%rdi,%rdi), %r10d
movl %r9d, %eax
subl %edx, %eax
jae 0x56774
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x5678d
subl %r10d, %r11d
movl %ebx, %r8d
shrl $0x5, %r8d
subl %r8d, %ebx
movw %bx, (%rcx,%r13,2)
orl $0x1, %edx
movl %r11d, %r10d
movl %eax, %r9d
movl %edi, %r13d
shll $0x5, %r13d
andl %esi, %r13d
leal (%rsi,%rdx), %r8d
addl %r13d, %r8d
movzwl (%rcx,%r8,2), %ebx
cmpl $0xffffff, %r10d        # imm = 0xFFFFFF
ja 0x56742
shll $0x8, %r10d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r10d, %r11d
shrl $0xb, %r11d
imull %ebx, %r11d
addl %edx, %edx
movl %r9d, %eax
subl %r11d, %eax
jae 0x567e1
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%r8,2)
xorl %esi, %r13d
jmp 0x567f9
subl %edx, %esi
movl %r8d, %edx
shrl $0x5, %edx
subl %edx, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %r10d
movl %esi, %edx
movl %eax, %r9d
movl %r10d, %esi
movzwl (%rcx,%rsi,2), %r8d
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
ja 0x567b2
shll $0x8, %edx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edx, %edi
shrl $0xb, %edi
imull %r8d, %edi
leal (%rsi,%rsi), %r10d
movl %r9d, %eax
subl %edi, %eax
jae 0x5685e
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rsi,2)
jmp 0x56877
subl %r11d, %r10d
movl %ebx, %esi
shrl $0x5, %esi
subl %esi, %ebx
movw %bx, (%rcx,%r8,2)
orl $0x1, %edx
movl %r10d, %r11d
movl %eax, %r9d
movl %edi, %r8d
shll $0x6, %r8d
andl %r13d, %r8d
leal (%rdx,%r13), %esi
addl %r8d, %esi
movzwl (%rcx,%rsi,2), %ebx
cmpl $0xffffff, %r11d        # imm = 0xFFFFFF
ja 0x5682d
shll $0x8, %r11d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r11d, %r10d
shrl $0xb, %r10d
imull %ebx, %r10d
addl %edx, %edx
movl %r9d, %eax
subl %r10d, %eax
jae 0x568cb
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%rsi,2)
xorl %r13d, %r8d
jmp 0x568e5
subl %edi, %edx
movl %r8d, %edi
shrl $0x5, %edi
subl %edi, %r8d
movw %r8w, (%rcx,%rsi,2)
orl $0x1, %r10d
movl %edx, %edi
movl %eax, %r9d
movl %r10d, %edx
movzwl (%rcx,%rdx,2), %r8d
cmpl $0xffffff, %edi         # imm = 0xFFFFFF
ja 0x5689c
shll $0x8, %edi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edi, %esi
shrl $0xb, %esi
imull %r8d, %esi
leal (%rdx,%rdx), %r10d
movl %r9d, %eax
subl %esi, %eax
jae 0x5694a
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdx,2)
jmp 0x56963
subl %r10d, %r11d
movl %ebx, %r9d
shrl $0x5, %r9d
subl %r9d, %ebx
movw %bx, (%rcx,%rsi,2)
orl $0x1, %edx
movl %r11d, %r10d
movl %eax, %r9d
movl %edi, %esi
shll $0x7, %esi
andl %r8d, %esi
leal (%r8,%rdx), %r11d
addl %esi, %r11d
movzwl (%rcx,%r11,2), %ebx
cmpl $0xffffff, %r10d        # imm = 0xFFFFFF
ja 0x56918
shll $0x8, %r10d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %r10d, %r13d
shrl $0xb, %r13d
imull %ebx, %r13d
addl %edx, %edx
movl %r9d, %eax
subl %r13d, %eax
jae 0x569b7
movl $0x800, %eax            # imm = 0x800
subl %ebx, %eax
shrl $0x5, %eax
addl %ebx, %eax
movw %ax, (%rcx,%r11,2)
xorl %r8d, %esi
jmp 0x569d2
subl %esi, %edi
movl %r8d, %esi
shrl $0x5, %esi
subl %esi, %r8d
movw %r8w, (%rcx,%rdx,2)
orl $0x1, %r10d
movl %edi, %esi
movl %eax, %r9d
movl %r10d, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x56988
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %ebx
shrl $0xb, %ebx
imull %r8d, %ebx
leal (%rdi,%rdi), %edx
movl %r9d, %r10d
subl %ebx, %r10d
jae 0x56a3c
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x56a72
subl %r13d, %r10d
movl %ebx, %r8d
shrl $0x5, %r8d
subl %r8d, %ebx
movw %bx, (%rcx,%r11,2)
orl $0x1, %edx
movl %r10d, %r13d
movl %eax, %r9d
shll $0x8, %edi
andl %esi, %edi
addl %edx, %esi
addl %edi, %esi
movzwl (%rcx,%rsi,2), %edi
cmpl $0xffffff, %r13d        # imm = 0xFFFFFF
movq -0x68(%rsp), %r11
ja 0x56a03
shll $0x8, %r13d
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
xorl %eax, %eax
movb -0x6d(%rsp), %r8b
movb %r8b, %al
leal (%rax,%rax,2), %eax
addl %eax, %r11d
addl $-0x6, %r11d
movl %r13d, %ebx
shrl $0xb, %ebx
imull %edi, %ebx
addl %edx, %edx
movl %r9d, %r8d
subl %ebx, %r8d
jae 0x56a56
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, (%rcx,%rsi,2)
jmp 0x56a6d
subl %ebx, %esi
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %edx
movl %esi, %ebx
movl %r10d, %r9d
jmp 0x56a72
subl %ebx, %r13d
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, (%rcx,%rsi,2)
orl $0x1, %edx
movl %r13d, %ebx
movl %r8d, %r9d
movq -0x58(%rsp), %r13
incl -0x6c(%rsp)
movq -0x50(%rsp), %rax
movb %dl, (%rax,%r15)
incq %r15
movl $0x3, %ecx
jmp 0x5754f
subl %ebx, %r13d
movl %esi, %eax
shrl $0x5, %eax
subl %eax, %esi
movw %si, -0xc00(%r14,%r8,2)
movl -0x74(%rsp), %r8d
jmp 0x56b3b
subl %r13d, %ebx
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, 0x50(%r14,%rsi,2)
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x56ad3
shll $0x8, %ebx
shll $0x8, %edi
movzbl (%r12), %eax
incq %r12
orl %eax, %edi
movzwl 0x68(%r14,%rsi,2), %r8d
movl %ebx, %r13d
shrl $0xb, %r13d
imull %r8d, %r13d
movl %edi, %eax
subl %r13d, %eax
jae 0x56b00
movl $0x800, %edx            # imm = 0x800
subl %r8d, %edx
shrl $0x5, %edx
addl %r8d, %edx
movl -0x78(%rsp), %r9d
jmp 0x56b21
subl %r13d, %ebx
movl %r8d, %edx
shrl $0x5, %edx
subl %edx, %r8d
movl %r8d, %edx
movl %ebx, %r13d
movl %eax, %edi
movl -0x78(%rsp), %eax
movl -0x5c(%rsp), %r9d
movl %eax, -0x5c(%rsp)
movl -0x7c(%rsp), %r8d
movw %dx, 0x68(%r14,%rsi,2)
movl %edi, %edx
movl %r9d, -0x7c(%rsp)
movl -0x74(%rsp), %eax
movl %eax, -0x78(%rsp)
xorl %eax, %eax
cmpl $0x7, %r11d
setae %al
leal (%rax,%rax,2), %r11d
addl $0x8, %r11d
movq -0x18(%rsp), %rsi
movl %r8d, -0x74(%rsp)
movzwl (%rsi), %edi
cmpl $0xffffff, %r13d        # imm = 0xFFFFFF
ja 0x56b73
shll $0x8, %r13d
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movl %r13d, %r8d
shrl $0xb, %r8d
imull %edi, %r8d
movl %edx, %ebx
subl %r8d, %ebx
movq %r11, -0x68(%rsp)
jae 0x56bef
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, (%rsi)
cmpl $0xffffff, %r8d         # imm = 0xFFFFFF
ja 0x56bb3
shll $0x8, %r8d
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movq -0x58(%rsp), %r13
movl %ecx, %ecx
movzwl 0x2(%rsi,%rcx,2), %r10d
movl %r8d, %edi
shrl $0xb, %edi
imull %r10d, %edi
movl %edx, %ebx
subl %edi, %ebx
jae 0x56c94
movl $0x800, %r11d           # imm = 0x800
subl %r10d, %r11d
shrl $0x5, %r11d
addl %r10d, %r11d
movl $0x2, %r9d
jmp 0x56cae
subl %r8d, %r13d
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, (%rsi)
cmpl $0xffffff, %r13d        # imm = 0xFFFFFF
ja 0x56c16
shll $0x8, %r13d
shll $0x8, %ebx
movzbl (%r12), %eax
incq %r12
orl %eax, %ebx
movzwl 0x10(%rsi), %edx
movl %r13d, %edi
shrl $0xb, %edi
imull %edx, %edi
movl %ebx, %r9d
subl %edi, %r9d
jae 0x56d08
movl $0x800, %eax            # imm = 0x800
subl %edx, %eax
shrl $0x5, %eax
addl %edx, %eax
movw %ax, 0x10(%rsi)
cmpl $0xffffff, %edi         # imm = 0xFFFFFF
ja 0x56c57
shll $0x8, %edi
shll $0x8, %ebx
movzbl (%r12), %eax
incq %r12
orl %eax, %ebx
movq -0x58(%rsp), %r13
movl %ecx, %ecx
movzwl 0x12(%rsi,%rcx,2), %r9d
movl %edi, %edx
shrl $0xb, %edx
imull %r9d, %edx
movl %ebx, %r11d
subl %edx, %r11d
jae 0x5715a
movl $0x800, %r10d           # imm = 0x800
subl %r9d, %r10d
shrl $0x5, %r10d
addl %r9d, %r10d
movl $0x2, %r8d
jmp 0x57173
subl %edi, %r8d
movl %r10d, %eax
shrl $0x5, %eax
subl %eax, %r10d
movl $0x3, %r9d
movl %r10d, %r11d
movl %r8d, %edi
movl %ebx, %edx
leaq (%rsi,%rcx,2), %rcx
movw %r11w, 0x2(%rcx)
cmpl $0xffffff, %edi         # imm = 0xFFFFFF
ja 0x56ccf
shll $0x8, %edi
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movl %r9d, %r9d
movzwl (%rcx,%r9,2), %r10d
movl %edi, %esi
shrl $0xb, %esi
imull %r10d, %esi
leal (%r9,%r9), %r8d
movl %edx, %r11d
subl %esi, %r11d
jae 0x56d9c
movl $0x800, %eax            # imm = 0x800
subl %r10d, %eax
shrl $0x5, %eax
addl %r10d, %eax
movw %ax, (%rcx,%r9,2)
jmp 0x56db5
subl %edi, %r13d
movl %edx, %eax
shrl $0x5, %eax
subl %eax, %edx
movw %dx, 0x10(%rsi)
movl $0x1, %ebp
movl %r13d, %ebx
movq -0x58(%rsp), %r13
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x56d3d
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %eax, %r9d
movl %ebx, %ecx
movl %ebp, %edx
movzwl 0x200(%rsi,%rdx,2), %edi
shrl $0xb, %ebx
imull %edi, %ebx
leal (%rdx,%rdx), %ebp
movl %r9d, %r8d
subl %ebx, %r8d
jae 0x56d70
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, 0x200(%rsi,%rdx,2)
jmp 0x56d89
subl %ebx, %ecx
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, 0x200(%rsi,%rdx,2)
orl $0x1, %ebp
movl %ecx, %ebx
movl %r8d, %r9d
cmpl $0x100, %ebp            # imm = 0x100
jb 0x56d23
addl $0xffffff10, %ebp       # imm = 0xFFFFFF10
jmp 0x56e20
subl %esi, %edi
movl %r10d, %eax
shrl $0x5, %eax
subl %eax, %r10d
movw %r10w, (%rcx,%r9,2)
orl $0x1, %r8d
movl %edi, %esi
movl %r11d, %edx
movq -0x68(%rsp), %r11
movl %r8d, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x56dda
shll $0x8, %esi
shll $0x8, %edx
movzbl (%r12), %eax
incq %r12
orl %eax, %edx
movl %esi, %ebx
shrl $0xb, %ebx
imull %r8d, %ebx
leal (%rdi,%rdi), %ebp
movl %edx, %r9d
subl %ebx, %r9d
jae 0x56e02
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x56e1a
subl %ebx, %esi
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %ebp
movl %esi, %ebx
movl %r9d, %edx
addl $-0x8, %ebp
movl %edx, %r9d
cmpl $0xc, %r11d
jb 0x574c1
cmpl $0x3, %ebp
movl $0x3, %ecx
cmovbl %ebp, %ecx
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x56e52
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
shll $0x7, %ecx
movq -0x28(%rsp), %rax
movzwl 0x2(%rax,%rcx), %edi
movl %ebx, %edx
shrl $0xb, %edx
imull %edi, %edx
movl %r9d, %eax
subl %edx, %eax
jae 0x56e85
movl $0x800, %r8d            # imm = 0x800
subl %edi, %r8d
shrl $0x5, %r8d
addl %edi, %r8d
movl $0x2, %esi
jmp 0x56e9b
subl %edx, %ebx
movl %edi, %edx
shrl $0x5, %edx
subl %edx, %edi
movl $0x3, %esi
movl %edi, %r8d
movl %ebx, %edx
movl %eax, %r9d
addq -0x28(%rsp), %rcx
movw %r8w, 0x2(%rcx)
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
ja 0x56ec2
shll $0x8, %edx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %r8d
movzwl (%rcx,%r8,2), %r10d
movl %edx, %esi
shrl $0xb, %esi
imull %r10d, %esi
leal (%r8,%r8), %edi
movl %r9d, %r11d
subl %esi, %r11d
jae 0x56ef4
movl $0x800, %eax            # imm = 0x800
subl %r10d, %eax
shrl $0x5, %eax
addl %r10d, %eax
movw %ax, (%rcx,%r8,2)
jmp 0x56f0c
subl %esi, %edx
movl %r10d, %eax
shrl $0x5, %eax
subl %eax, %r10d
movw %r10w, (%rcx,%r8,2)
orl $0x1, %edi
movl %edx, %esi
movl %r11d, %r9d
movl %edi, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x56f30
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edx
shrl $0xb, %edx
imull %r8d, %edx
leal (%rdi,%rdi), %r10d
movl %r9d, %r11d
subl %edx, %r11d
jae 0x56f59
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x56f72
subl %edx, %esi
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %r10d
movl %esi, %edx
movl %r11d, %r9d
movl %r10d, %edi
movzwl (%rcx,%rdi,2), %r8d
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
ja 0x56f97
shll $0x8, %edx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edx, %esi
shrl $0xb, %esi
imull %r8d, %esi
leal (%rdi,%rdi), %r10d
movl %r9d, %r11d
subl %esi, %r11d
jae 0x56fc0
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdi,2)
jmp 0x56fd9
subl %esi, %edx
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rdi,2)
orl $0x1, %r10d
movl %edx, %esi
movl %r11d, %r9d
movl %r10d, %edx
movzwl (%rcx,%rdx,2), %r8d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x56ffe
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edi
shrl $0xb, %edi
imull %r8d, %edi
leal (%rdx,%rdx), %r10d
movl %r9d, %r11d
subl %edi, %r11d
jae 0x57027
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rdx,2)
jmp 0x57040
subl %edi, %esi
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rdx,2)
orl $0x1, %r10d
movl %esi, %edi
movl %r11d, %r9d
movq -0x68(%rsp), %r11
movl %r10d, %esi
movzwl (%rcx,%rsi,2), %r8d
cmpl $0xffffff, %edi         # imm = 0xFFFFFF
ja 0x5706a
shll $0x8, %edi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %edi, %ebx
shrl $0xb, %ebx
imull %r8d, %ebx
leal (%rsi,%rsi), %edx
movl %r9d, %r10d
subl %ebx, %r10d
jae 0x57092
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%rcx,%rsi,2)
jmp 0x570aa
subl %ebx, %edi
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%rcx,%rsi,2)
orl $0x1, %edx
movl %edi, %ebx
movl %r10d, %r9d
leal -0x40(%rdx), %esi
cmpl $0x4, %esi
jb 0x57467
movl %esi, %ecx
shrl %ecx
andl $0x1, %edx
orl $0x2, %edx
cmpl $0xd, %esi
ja 0x571db
decl %ecx
shll %cl, %edx
incl %edx
movl $0x1, %esi
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x570ee
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %eax, %r9d
movl %ebx, %r8d
movl %edx, %edx
movzwl -0xd00(%r14,%rdx,2), %r10d
shrl $0xb, %ebx
imull %r10d, %ebx
leal (%rsi,%rsi), %edi
movl %r9d, %eax
subl %ebx, %eax
jae 0x5711f
movl $0x800, %r11d           # imm = 0x800
subl %r10d, %r11d
shrl $0x5, %r11d
addl %r10d, %r11d
jmp 0x57136
subl %ebx, %r8d
movl %r10d, %esi
shrl $0x5, %esi
subl %esi, %r10d
movl %r10d, %r11d
movl %r8d, %ebx
movl %eax, %r9d
movl %edi, %esi
movw %r11w, -0xd00(%r14,%rdx,2)
addl %esi, %edx
movl %edi, %esi
decl %ecx
movq -0x68(%rsp), %r11
jne 0x570d4
subl %edi, %edx
xorl %ecx, %ecx
movb $0x1, %dil
movl %edx, %esi
jmp 0x57462
subl %edx, %edi
movl %r9d, %eax
shrl $0x5, %eax
subl %eax, %r9d
movl $0x3, %r8d
movl %r9d, %r10d
movl %edi, %edx
movl %r11d, %ebx
leaq (%rsi,%rcx,2), %rdi
movw %r10w, 0x12(%rdi)
cmpl $0xffffff, %edx         # imm = 0xFFFFFF
movq -0x68(%rsp), %r11
ja 0x57199
shll $0x8, %edx
shll $0x8, %ebx
movzbl (%r12), %eax
incq %r12
orl %eax, %ebx
leaq (%rsi,%rcx,2), %rcx
addq $0x10, %rcx
movl %r8d, %r8d
movzwl 0x10(%rdi,%r8,2), %r9d
movl %edx, %esi
shrl $0xb, %esi
imull %r9d, %esi
leal (%r8,%r8), %edi
movl %ebx, %r10d
subl %esi, %r10d
jae 0x5726e
movl $0x800, %eax            # imm = 0x800
subl %r9d, %eax
shrl $0x5, %eax
addl %r9d, %eax
movw %ax, (%rcx,%r8,2)
jmp 0x57286
addl $-0x5, %ecx
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x571ff
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %ebx, %esi
movl %eax, %r9d
jmp 0x57201
movl %ebx, %esi
shrl %ebx
movl %r9d, %eax
subl %ebx, %eax
movl %eax, %r9d
sarl $0x1f, %r9d
leal (%r9,%rdx,2), %edx
incl %edx
andl %ebx, %r9d
addl %eax, %r9d
decl %ecx
jne 0x571de
cmpl $0x1ffffff, %esi        # imm = 0x1FFFFFF
ja 0x5723c
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movzwl 0x2(%r14), %edi
movl %ebx, %ecx
shrl $0xb, %ecx
imull %edi, %ecx
movl %r9d, %eax
subl %ecx, %eax
jae 0x572ec
movl $0x800, %r8d            # imm = 0x800
subl %edi, %r8d
shrl $0x5, %r8d
addl %edi, %r8d
movl $0x2, %esi
jmp 0x57302
subl %esi, %edx
movl %r9d, %eax
shrl $0x5, %eax
subl %eax, %r9d
movw %r9w, (%rcx,%r8,2)
orl $0x1, %edi
movl %edx, %esi
movl %r10d, %ebx
movl %edi, %edx
movzwl (%rcx,%rdx,2), %edi
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x572a7
shll $0x8, %esi
shll $0x8, %ebx
movzbl (%r12), %r9d
incq %r12
orl %ebx, %r9d
jmp 0x572aa
movl %ebx, %r9d
movl %esi, %ebx
shrl $0xb, %ebx
imull %edi, %ebx
leal (%rdx,%rdx), %ebp
movl %r9d, %r8d
subl %ebx, %r8d
jae 0x572d2
movl $0x800, %eax            # imm = 0x800
subl %edi, %eax
shrl $0x5, %eax
addl %edi, %eax
movw %ax, (%rcx,%rdx,2)
jmp 0x56e20
subl %ebx, %esi
movl %edi, %eax
shrl $0x5, %eax
subl %eax, %edi
movw %di, (%rcx,%rdx,2)
orl $0x1, %ebp
movl %esi, %ebx
movl %r8d, %r9d
jmp 0x56e20
subl %ecx, %ebx
movl %edi, %ecx
shrl $0x5, %ecx
subl %ecx, %edi
movl $0x3, %esi
movl %edi, %r8d
movl %ebx, %ecx
movl %eax, %r9d
movw %r8w, 0x2(%r14)
cmpl $0xffffff, %ecx         # imm = 0xFFFFFF
ja 0x57324
shll $0x8, %ecx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edi
movzwl (%r14,%rdi,2), %r8d
movl %ecx, %esi
shrl $0xb, %esi
imull %r8d, %esi
movl %r9d, %r10d
subl %esi, %r10d
jae 0x57354
movl $0x800, %eax            # imm = 0x800
subl %r8d, %eax
shrl $0x5, %eax
addl %r8d, %eax
movw %ax, (%r14,%rdi,2)
leal 0x2(%rdi), %eax
jmp 0x5736c
subl %esi, %ecx
movl %r8d, %eax
shrl $0x5, %eax
subl %eax, %r8d
movw %r8w, (%r14,%rdi,2)
leal 0x4(%rdi), %eax
movl %ecx, %esi
movl %r10d, %r9d
movl %eax, %r8d
movzwl (%r14,%r8,2), %r10d
cmpl $0xffffff, %esi         # imm = 0xFFFFFF
ja 0x57391
shll $0x8, %esi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl %esi, %edi
shrl $0xb, %edi
imull %r10d, %edi
movl %r9d, %ebx
subl %edi, %ebx
jae 0x573b8
movl $0x800, %r11d           # imm = 0x800
subl %r10d, %r11d
shrl $0x5, %r11d
addl %r10d, %r11d
movl $0x4, %ecx
jmp 0x573d0
subl %edi, %esi
movl %r10d, %eax
shrl $0x5, %eax
subl %eax, %r10d
movl $0x8, %ecx
movl %r10d, %r11d
movl %esi, %edi
movl %ebx, %r9d
movw %r11w, (%r14,%r8,2)
addl %r8d, %ecx
movzwl (%r14,%rcx,2), %esi
cmpl $0xffffff, %edi         # imm = 0xFFFFFF
ja 0x573fa
shll $0x8, %edi
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movq -0x68(%rsp), %r11
movl %edi, %ebx
shrl $0xb, %ebx
imull %esi, %ebx
movl %r9d, %eax
subl %ebx, %eax
jae 0x57424
movl $0x800, %eax            # imm = 0x800
subl %esi, %eax
shrl $0x5, %eax
addl %esi, %eax
movw %ax, (%r14,%rcx,2)
addl $-0x8, %ecx
jmp 0x5743a
subl %ebx, %edi
movl %esi, %r8d
shrl $0x5, %r8d
subl %r8d, %esi
movw %si, (%r14,%rcx,2)
movl %edi, %ebx
movl %eax, %r9d
shll $0x4, %edx
movl %edx, %esi
orl %ecx, %esi
cmpl $-0x1, %esi
je 0x5744d
xorl %ecx, %ecx
movb $0x1, %dil
jmp 0x57462
addl $-0xc, %r11d
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x2, %ecx
movl $0x112, %ebp            # imm = 0x112
xorl %edi, %edi
testb %dil, %dil
je 0x574b9
movl -0x78(%rsp), %eax
movl %eax, -0x5c(%rsp)
movl -0x74(%rsp), %eax
movl %eax, -0x78(%rsp)
movl -0x7c(%rsp), %eax
movl %eax, -0x74(%rsp)
leal 0x1(%rsi), %eax
xorl %edx, %edx
cmpl $0x13, %r11d
setae %dl
movl -0x44(%rsp), %edi
testl %edi, %edi
cmovel -0x6c(%rsp), %edi
leal 0x202(%rbp), %r8d
xorl %ecx, %ecx
cmpl %edi, %esi
setae %cl
cmovbl %ebp, %r8d
leal (%rdx,%rdx,2), %r11d
addl $0x7, %r11d
addl %ecx, %ecx
movl %r8d, %ebp
movl %eax, -0x7c(%rsp)
testl %ecx, %ecx
jne 0x5754f
addl $0x2, %ebp
movl $0x2, %ecx
movq %r13, %rdx
subq %r15, %rdx
je 0x5754f
movl %ebp, %eax
cmpq %rax, %rdx
cmovael %ebp, %edx
movl -0x7c(%rsp), %eax
movq %r15, %rcx
subq %rax, %rcx
movl $0x0, %eax
movq -0x40(%rsp), %rdi
cmovbq %rdi, %rax
leaq (%rax,%rcx), %rsi
addl %edx, -0x6c(%rsp)
subl %edx, %ebp
movq %rdi, %rax
subq %rsi, %rax
cmpq %rdx, %rax
movq -0x50(%rsp), %rdi
jae 0x57531
movq -0x40(%rsp), %r8
movb (%rdi,%rsi), %al
movb %al, (%rdi,%r15)
incq %r15
incq %rsi
xorl %ecx, %ecx
cmpq %r8, %rsi
movl $0x0, %eax
cmoveq %rax, %rsi
decl %edx
jne 0x57510
jmp 0x5754f
leaq (%rdi,%r15), %rcx
subq %r15, %rsi
movq %rdx, %rax
movb (%rcx,%rsi), %dil
movb %dil, (%rcx)
incq %rcx
decq %rax
jne 0x5753b
addq %rdx, %r15
xorl %ecx, %ecx
cmpl $0x2, %ecx
je 0x57563
cmpq %r13, %r15
jae 0x57563
cmpq (%rsp), %r12
jb 0x56041
cmpl $0xffffff, %ebx         # imm = 0xFFFFFF
ja 0x57580
shll $0x8, %ebx
shll $0x8, %r9d
movzbl (%r12), %eax
incq %r12
orl %r9d, %eax
movl %eax, %r9d
movl -0x78(%rsp), %eax
movq -0x20(%rsp), %rcx
movq %r12, 0x30(%rcx)
movl %ebx, 0x38(%rcx)
movl %r9d, 0x3c(%rcx)
movl %ebp, 0x5c(%rcx)
movq %r15, 0x28(%rcx)
movl -0x6c(%rsp), %edx
movl %edx, 0x40(%rcx)
movl -0x7c(%rsp), %esi
movl %esi, 0x48(%rcx)
movl -0x74(%rsp), %esi
movl %esi, 0x4c(%rcx)
movl %eax, 0x50(%rcx)
movl -0x5c(%rsp), %eax
movl %eax, 0x54(%rcx)
movl %r11d, 0x58(%rcx)
cmpl $0x0, 0x44(%rcx)
jne 0x575ce
movl 0x4(%rcx), %eax
cmpl %eax, %edx
jb 0x575ce
movl %eax, 0x44(%rcx)
xorl %eax, %eax
cmpl $0x200, %ebp            # imm = 0x200
setae %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq