// File: /workspace/github_c_makefile_star2_O1/pali[P]bmfdec/./bmfdec.c
// Function: main
int main(int argc, char *argv[]) {
  FILE *fin;
  FILE *fout;
  uint32_t *pin;
  char *pout;
  long sin;
  size_t lin;
  uint32_t lout;
  int ret;
  if ((argc != 1 && argc != 2 && argc != 3) || (argc >= 2 && (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0))) {
    fprintf(stderr, "Usage: %s [input_file [output_file]]\n", argv[0]);
    return 1;
  }
  if (argc >= 2) {
    fin = fopen(argv[1], "rb");
    if (!fin) {
      fprintf(stderr, "Cannot open input file %s: %s\n", argv[1], strerror(errno));
      return 1;
    }
  } else {
    fin = stdin;
  }
  if (fseek(fin, 0, SEEK_END) == 0) {
    sin = ftell(fin);
    if (sin < 0) {
      fprintf(stderr, "Cannot determinate size of input file %s: %s\n", argc >= 2 ? argv[1] : "(stdin)", strerror(errno));
      if (argc >= 2)
        fclose(fin);
      return 1;
    }
    ++sin;
    rewind(fin);
    if (sin > 0x800000) {
      fprintf(stderr, "Size of input file %s too large\n", argc >= 2 ? argv[1] : "(stdin)");
      if (argc >= 2)
        fclose(fin);
      return 1;
    }
  } else {
    sin = 0x800000;
  }
  pin = malloc(sin);
  if (!pin) {
    fprintf(stderr, "Cannot allocate memory for input file %s\n", argc >= 2 ? argv[1] : "(stdin)");
    if (argc >= 2)
      fclose(fin);
    return 1;
  }
  lin = fread(pin, 1, sin, fin);
  if (ferror(fin)) {
    fprintf(stderr, "Failed to read data from input file %s\n", argc >= 2 ? argv[1] : "(stdin)");
    free(pin);
    if (argc >= 2)
      fclose(fin);
    return 1;
  } else if (!feof(fin)) {
    fprintf(stderr, "Data too large in input file %s\n", argc >= 2 ? argv[1] : "(stdin)");
    free(pin);
    if (argc >= 2)
      fclose(fin);
    return 1;
  }
  if (argc >= 2)
    fclose(fin);
  if (lin <= 16 || pin[0] != 0x424D4F46 || pin[1] != 0x00000001 || pin[2] != (uint32_t)lin-16) {
    fprintf(stderr, "Invalid input\n");
    free(pin);
    return 1;
  }
  lout = pin[3];
  if (lout > 0x2000000) {
    fprintf(stderr, "Invalid input\n");
    free(pin);
    return 1;
  }
  pout = malloc(lout);
  if (!pout) {
    fprintf(stderr, "Cannot allocate memory for decompression\n");
    free(pin);
    return 1;
  }
  if (ds_dec((char *)pin+16, lin-16, pout, lout, 0) != (int)lout) {
    fprintf(stderr, "Decompress failed\n");
    free(pin);
    free(pout);
    return 1;
  }
  free(pin);
  if (argc >= 3) {
    fout = fopen(argv[2], "wb");
    if (!fout) {
      fprintf(stderr, "Cannot open output file %s: %s\n", argv[2], strerror(errno));
      free(pout);
      return 1;
    }
  } else {
    fout = stdout;
  }
  ret = process_data(pout, lout, fout);
  free(pout);
  if (argc >= 3)
    fclose(fout);
  return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %rsi, %rbx
movq %rdi, 0x48(%rsp)
leal -0x4(%rdi), %eax
cmpl $-0x3, %eax
jb 0x44c7
cmpl $0x2, 0x48(%rsp)
jl 0x2f36
movq 0x8(%rbx), %r14
leaq 0x4289(%rip), %rsi      # 0x7170
movq %r14, %rdi
callq 0x10f0
testl %eax, %eax
je 0x44c7
leaq 0x4275(%rip), %rsi      # 0x7173
movq %r14, %rdi
callq 0x10f0
testl %eax, %eax
je 0x44c7
leaq 0x428b(%rip), %rsi      # 0x71a0
movq %r14, %rdi
callq 0x1160
movq %rax, %r14
testq %rax, %rax
jne 0x2f40
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x1f75
jmp 0x4ad3
movq 0x809b(%rip), %rax      # 0xafd8
movq (%rax), %r14
movq %r14, %rdi
xorl %esi, %esi
movl $0x2, %edx
callq 0x1140
movl $0x800000, %r12d        # imm = 0x800000
testl %eax, %eax
jne 0x2f85
movq %r14, %rdi
callq 0x1110
testq %rax, %rax
js 0x4a5a
movq %rax, %r12
movq %r14, %rdi
callq 0x10b0
cmpq $0x800000, %r12         # imm = 0x800000
jge 0x4a78
incq %r12
movq %r12, %rdi
callq 0x1130
testq %rax, %rax
je 0x4984
movq %rax, %r15
movl $0x1, %esi
movq %rax, %rdi
movq %r12, %rdx
movq %r14, %rcx
callq 0x1080
movq %rax, %r12
movq %r14, %rdi
callq 0x1070
testl %eax, %eax
jne 0x49a9
movq %r14, %rdi
callq 0x1120
testl %eax, %eax
je 0x49c7
cmpl $0x2, 0x48(%rsp)
jl 0x2fde
movq %r14, %rdi
callq 0x1090
cmpq $0x11, %r12
jb 0x44ba
cmpl $0x424d4f46, (%r15)     # imm = 0x424D4F46
jne 0x44ba
cmpl $0x1, 0x4(%r15)
jne 0x44ba
addl $-0x10, %r12d
cmpl %r12d, 0x8(%r15)
jne 0x44ba
movl 0xc(%r15), %r14d
cmpq $0x2000001, %r14        # imm = 0x2000001
jae 0x49f7
movq %r14, %rdi
callq 0x1130
testq %rax, %rax
je 0x4a04
movq %r15, %rdi
addq $0x10, %rdi
movl %r12d, %esi
movq %rax, 0x90(%rsp)
movq %rax, %rdx
movl %r14d, %ecx
xorl %r8d, %r8d
callq 0x2a0c
cmpl %r14d, %eax
jne 0x4a11
movq %r14, 0x148(%rsp)
movq %r15, %rdi
callq 0x1030
cmpl $0x3, 0x48(%rsp)
jl 0x30a6
movq 0x10(%rbx), %rdi
leaq 0x425d(%rip), %rsi      # 0x72d8
callq 0x1160
movq %rax, 0x60(%rsp)
testq %rax, %rax
movq 0x90(%rsp), %rcx
jne 0x30bd
addq $0x10, %rbx
movq %rbx, %rdi
movq %rcx, %rsi
callq 0x1e4a
jmp 0x4ad3
movq 0x7f23(%rip), %rax      # 0xafd0
movq (%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x90(%rsp), %rcx
movq 0x148(%rsp), %rdx
cmpl $0x7, %edx
jbe 0x4bc3
cmpl $0x424d4f46, (%rcx)     # imm = 0x424D4F46
jne 0x4bc8
movl 0x4(%rcx), %esi
cmpl %edx, %esi
ja 0x4bcd
cmpl %edx, %esi
jae 0x3168
leal 0x14(%rsi), %eax
cmpl %edx, %eax
ja 0x4be6
movdqu (%rcx,%rsi), %xmm0
pcmpeqb 0x405f(%rip), %xmm0     # 0x7160
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x4beb
leaq (%rcx,%rsi), %rax
movl 0x10(%rax), %edi
cmpq $0x1ffffffe, %rdi       # imm = 0x1FFFFFFE
ja 0x4bd2
leal (,%rdi,8), %ecx
subl %esi, %edx
addl $-0x14, %edx
cmpl %edx, %ecx
jne 0x4bd2
movl $0x8, %ecx
movq %rcx, 0x130(%rsp)
testl %edi, %edi
je 0x315e
xorl %ecx, %ecx
cmpl $0x0, 0x14(%rax,%rcx,8)
je 0x4b96
incq %rcx
cmpq %rcx, %rdi
jne 0x314b
movq 0x90(%rsp), %rcx
jmp 0x3176
movq $0x0, 0x130(%rsp)
xorl %edi, %edi
leal -0x8(%rsi), %eax
movl %eax, 0xdc(%rsp)
cmpl $0xb, %eax
jbe 0x4bd7
movq %rdi, 0x170(%rsp)
movq %rsi, 0x138(%rsp)
leaq 0x8(%rcx), %rax
movq %rax, 0x140(%rsp)
cmpl $0x1, (%rax)
jne 0x4bbe
cmpl $0x1, 0xc(%rcx)
jne 0x4bbe
movl 0x10(%rcx), %r14d
movl $0x48, %esi
movq %r14, %rdi
movq %rcx, %rbx
callq 0x10e0
testq %rax, %rax
je 0x4bdc
movq %rax, 0x98(%rsp)
addq $0x14, %rbx
movq %rbx, 0xe8(%rsp)
movq %r14, 0xf0(%rsp)
testq %r14, %r14
movl 0xdc(%rsp), %edx
movq 0x140(%rsp), %rsi
je 0x43ca
xorl %r15d, %r15d
movq $0x0, 0x150(%rsp)
movq 0xe8(%rsp), %rbx
movq %rbx, %rax
subq %rsi, %rax
movl $0xfffffffe, %ecx       # imm = 0xFFFFFFFE
cmpq %rcx, %rax
jg 0x4b87
cmpl $-0x5, %eax
ja 0x4b87
leal 0x4(%rax), %ecx
cmpl %edx, %ecx
ja 0x4b87
movl (%rbx), %r8d
movl %r8d, %ecx
negl %ecx
cmpl %eax, %ecx
movq 0x138(%rsp), %rcx
jbe 0x4b9b
addl %r8d, %eax
cmpl %edx, %eax
ja 0x4b9b
movq 0x130(%rsp), %rax
leal (%rbx,%rax), %edi
subl %esi, %edi
cmpl 0x148(%rsp), %ecx
cmovael %r15d, %edi
pxor %xmm0, %xmm0
movdqa %xmm0, 0x1e0(%rsp)
movdqa %xmm0, 0x1d0(%rsp)
movdqa %xmm0, 0x1c0(%rsp)
movdqa %xmm0, 0x1b0(%rsp)
movq $0x0, 0x1f0(%rsp)
cmpl $0x7, %r8d
jbe 0x4ba0
cmpl $0x0, 0x4(%rbx)
jne 0x4ba5
movq %r8, %rsi
cmpl $0x13, %esi
movq %rbx, 0x178(%rsp)
movq %r8, 0x158(%rsp)
jbe 0x4349
movl 0xc(%rbx), %edx
cmpl $-0x15, %edx
ja 0x4b8c
leal 0x14(%rdx), %r14d
cmpl %r14d, %esi
jb 0x4b8c
movl 0x8(%rbx), %ecx
cmpl %edx, %ecx
ja 0x4baa
movl 0x10(%rbx), %eax
testl %eax, %eax
jne 0x433d
leaq 0x14(%rbx), %rsi
leal 0x14(%rdi), %r9d
movq %rbx, %r12
leal (%r14,%rdi), %ebx
testl %edi, %edi
cmovel %edi, %r9d
cmovel %edi, %ebx
leaq 0x1b0(%rsp), %rdi
movl $0x1, %r8d
callq 0x4cda
movq 0x158(%rsp), %rax
movl %eax, %ecx
subl %r14d, %ecx
cmpl $0x3, %ecx
jbe 0x4baf
movl %r14d, %edx
addq %r12, %rdx
movl (%rdx), %eax
cmpl $0x8, %eax
jb 0x4bb4
cmpl %ecx, %eax
ja 0x4bb4
movl %ecx, %ebp
movq %rdx, %r14
movl 0x4(%rdx), %r12d
movl %r12d, 0x1e8(%rsp)
movl $0x60, %esi
movq %r12, %rdi
callq 0x10e0
movq %rax, 0x1f0(%rsp)
movq %rax, 0x190(%rsp)
testq %rax, %rax
je 0x4bb9
testq %r12, %r12
je 0x436a
movl %ebp, %ecx
movq %r14, %r8
addq $0x8, %r8
addl $-0x8, %ecx
leal 0x8(%rbx), %eax
testl %ebx, %ebx
cmovel %ebx, %eax
movq %rax, 0xb0(%rsp)
xorl %esi, %esi
movq %r12, 0x188(%rsp)
movq %rsi, 0x168(%rsp)
cmpl $0x3, %ecx
jbe 0x4b41
movl (%r8), %edx
leal -0x1(%rdx), %eax
cmpl %ecx, %eax
jae 0x4b4b
movb $0x0, 0x26(%rsp)
movw $0x0, 0x24(%rsp)
cmpl $0x13, %edx
jbe 0x4b46
movl 0x4(%r8), %edi
movl %edx, %ebx
testl %edi, %edi
movq %r8, 0x58(%rsp)
movq %rdx, 0x100(%rsp)
movl %ecx, 0x12c(%rsp)
je 0x3434
cmpl $0x200d, %edi           # imm = 0x200D
jne 0x42c3
movq %rbx, 0x198(%rsp)
cmpl $0x0, 0x8(%r8)
jne 0x4b50
movl 0xc(%r8), %edi
movl 0x10(%r8), %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, %rdi
je 0x3663
movl %esi, %eax
subl %edi, %eax
jb 0x4b64
cmpl $-0x15, %esi
ja 0x4b64
addl $0x14, %esi
cmpl %edx, %esi
ja 0x4b64
movq 0xb0(%rsp), %rsi
testl %esi, %esi
leal 0x14(%rsi,%rdi), %edx
cmovel %esi, %edx
movl %edx, 0x18(%rsp)
cmpl $0xf, %eax
jbe 0x4b73
leaq (%r8,%rdi), %r12
addq $0x14, %r12
cmpl $0x1, 0x4(%r12)
jne 0x4b78
movl 0xc(%r12), %ebx
leal -0x1(%rbx), %ecx
cmpl $-0xe, %ecx
ja 0x4b3c
leal 0xc(%rbx), %ecx
cmpl %eax, %ecx
ja 0x4b3c
movq %rdi, 0x160(%rsp)
jne 0x4b69
movl 0x8(%r12), %ebp
movl $0x48, %esi
movq %rbp, %rdi
callq 0x10e0
testq %rax, %rax
je 0x4b6e
movq %rax, %r14
testq %rbp, %rbp
movq %rbp, 0x108(%rsp)
movq %rax, 0x68(%rsp)
je 0x36ae
leaq 0x10(%r12), %r13
leal 0x10(%rbx), %eax
movl %eax, 0x10(%rsp)
movl 0x18(%rsp), %eax
movq %rax, 0x28(%rsp)
leaq (,%rbp,8), %rax
leaq (%rax,%rax,8), %rsi
xorl %r14d, %r14d
movq %rbx, 0x50(%rsp)
movq %r13, %rcx
subq %r12, %rcx
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
cmpq %rax, %rcx
jg 0x4b19
cmpl $-0x5, %ecx
ja 0x4afb
leal 0x4(%rcx), %eax
cmpl %ebx, %eax
ja 0x4afb
movl (%r13), %r15d
addl %r15d, %ecx
jb 0x4b28
cmpl 0x10(%rsp), %ecx
ja 0x4b28
cmpl $0x13, %r15d
jbe 0x4b1e
cmpl $-0x1, 0x4(%r13)
jne 0x4b0f
cmpl $0x0, 0x8(%r13)
jne 0x4b05
movl 0xc(%r13), %ecx
movl %ebx, %edx
subl %ecx, %edx
jbe 0x4b23
cmpl %edx, %eax
ja 0x4b23
cmpl $0x1, 0x10(%r13)
jne 0x4b0a
movq %rsi, %rbp
movq 0x68(%rsp), %rax
addq %r14, %rax
movq %rax, 0x8(%rsp)
leaq 0x14(%r13), %rsi
movq 0x28(%rsp), %rax
leal (%rax,%r13), %r9d
movq %r12, %rbx
subl %r12d, %r9d
addl $0x14, %r9d
movl 0x18(%rsp), %eax
testl %eax, %eax
cmovel %eax, %r9d
leaq 0x200(%rsp), %r12
movq %r12, %rdi
movl %ecx, %edx
xorl %r8d, %r8d
callq 0x4cda
movl $0x9, %ecx
movq 0x8(%rsp), %rdi
movq %r12, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq 0x68(%rsp), %rax
movq (%rax,%r14), %rdi
leaq 0x41cb(%rip), %rsi      # 0x77e5
callq 0x10f0
testl %eax, %eax
jne 0x4b14
addq %r15, %r13
addq $0x48, %r14
movq %rbp, %rsi
cmpq %r14, %rbp
movq %rbx, %r12
movq 0x50(%rsp), %rbx
jne 0x3534
xorl %ecx, %ecx
xorl %eax, %eax
movq 0x108(%rsp), %rbp
movq 0x68(%rsp), %r14
addl 0x28(%r14,%rcx), %eax
addq $0x48, %rcx
cmpq %rcx, %rsi
jne 0x3653
jmp 0x36b0
movq $0x0, 0xf8(%rsp)
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %ebx, %ebx
movl $0x0, 0x34(%rsp)
xorl %r13d, %r13d
xorl %r14d, %r14d
xorl %ebp, %ebp
movl $0x0, 0x38(%rsp)
movq $0x0, 0x10(%rsp)
movl $0x0, 0x20(%rsp)
movq $0x0, 0x70(%rsp)
jmp 0x4037
xorl %eax, %eax
movl %eax, %edi
movl $0x1, %esi
movq %rdi, 0x8(%rsp)
callq 0x10e0
movq %rax, 0xd0(%rsp)
testq %rax, %rax
je 0x4b7d
testq %rbp, %rbp
je 0x37e5
xorl %eax, %eax
movq %rax, 0x28(%rsp)
leaq (%rax,%rax,8), %rax
movl 0x28(%r14,%rax,8), %ecx
movq %rcx, 0x18(%rsp)
testq %rcx, %rcx
je 0x37c7
movq 0x68(%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq 0x30(%rax), %rax
movq %rax, 0x10(%rsp)
xorl %r13d, %r13d
leaq (,%r13,2), %rax
addq %r13, %rax
shlq $0x4, %rax
movq 0x10(%rsp), %rcx
leaq (%rcx,%rax), %rbp
movl (%rcx,%rax), %ebx
testq %rbx, %rbx
je 0x3796
movq 0x8(%rbp), %r15
shlq $0x5, %rbx
xorl %r12d, %r12d
xorl %r14d, %r14d
cmpl $0x2, (%r15,%r12)
jne 0x378b
movq 0x8(%r15,%r12), %rdi
leaq 0x40ea(%rip), %rsi      # 0x7839
callq 0x10f0
testl %eax, %eax
jne 0x378b
testl %r14d, %r14d
jne 0x497a
movslq 0x18(%r15,%r12), %rax
testq %rax, %rax
js 0x497f
cmpl 0x8(%rsp), %eax
jae 0x497f
movq 0xd0(%rsp), %rcx
movb $0x1, (%rcx,%rax)
movl $0x1, %r14d
addq $0x20, %r12
cmpq %r12, %rbx
jne 0x373c
jmp 0x3799
xorl %r14d, %r14d
movq 0x10(%rbp), %rdi
leaq 0x4098(%rip), %rsi      # 0x783c
callq 0x10f0
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
cmpl %ecx, %r14d
je 0x4aaa
incq %r13
cmpq 0x18(%rsp), %r13
jne 0x370e
movq 0x28(%rsp), %rax
incq %rax
movq 0x108(%rsp), %rbp
cmpq %rbp, %rax
movq 0x68(%rsp), %r14
jne 0x36dd
cmpq $0x0, 0x8(%rsp)
je 0x3801
xorl %r14d, %r14d
movq 0xd0(%rsp), %rcx
cmpb $0x0, (%rcx)
setne %r14b
jmp 0x380c
xorl %r14d, %r14d
movq 0xd0(%rsp), %rcx
cmpl $0x2, 0x8(%rsp)
jb 0x3837
movl $0x1, %eax
cmpb $0x0, (%rcx,%rax)
je 0x382d
cmpb $0x0, -0x1(%rcx,%rax)
je 0x4b32
leal 0x1(%rax), %r14d
incq %rax
cmpq %rax, 0x8(%rsp)
jne 0x3818
movl %r14d, %r15d
movl $0x30, %esi
movq %r15, %rdi
callq 0x10e0
movq %rax, %r12
movl $0x4, %esi
movq %r15, 0x180(%rsp)
movq %r15, %rdi
callq 0x10e0
testq %r12, %r12
je 0x4b82
movq %rax, 0xa0(%rsp)
movq %r14, 0xf8(%rsp)
testq %rbp, %rbp
je 0x3f7f
xorl %esi, %esi
xorl %edx, %edx
xorl %r8d, %r8d
movq $0x0, 0x118(%rsp)
movl $0x0, 0x8c(%rsp)
movq $0x0, 0x110(%rsp)
xorl %r14d, %r14d
movl $0x0, 0x44(%rsp)
movq $0x0, 0xc8(%rsp)
movq $0x0, 0xc0(%rsp)
movl $0x0, 0x40(%rsp)
movl $0x0, 0x3c(%rsp)
xorl %eax, %eax
movl $0x0, 0xe0(%rsp)
movq %r12, 0xb8(%rsp)
movq %rax, 0x1a0(%rsp)
leaq (%rax,%rax,8), %rax
movq 0x68(%rsp), %rcx
cmpl $0x0, 0x28(%rcx,%rax,8)
je 0x3f22
leaq (%rcx,%rax,8), %r11
xorl %edi, %edi
movq %r11, 0x78(%rsp)
movl %r14d, 0xe4(%rsp)
movq 0x30(%r11), %rbx
movq %rdi, 0x1a8(%rsp)
leaq (%rdi,%rdi,2), %rcx
shlq $0x4, %rcx
movl (%rbx,%rcx), %r15d
movl 0x4(%rbx,%rcx), %eax
movl %eax, 0x34(%rsp)
movq 0x8(%rbx,%rcx), %r13
movq 0x10(%rbx,%rcx), %rax
movq %rax, 0x8(%rsp)
movl 0x18(%rbx,%rcx), %eax
movl %eax, 0x28(%rsp)
movl 0x1c(%rbx,%rcx), %eax
movl %eax, 0x38(%rsp)
movq 0x20(%rbx,%rcx), %rax
movq %rax, 0x10(%rsp)
movl 0x28(%rbx,%rcx), %eax
movl %eax, 0x20(%rsp)
movb 0x2c(%rbx,%rcx), %al
movq %rax, 0x70(%rsp)
movb 0x2f(%rbx,%rcx), %al
movb %al, 0x202(%rsp)
movq %rcx, 0x80(%rsp)
movzwl 0x2d(%rbx,%rcx), %eax
movw %ax, 0x200(%rsp)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %r15, %r15
movq %r15, 0x50(%rsp)
je 0x39e7
shlq $0x5, %r15
xorl %r12d, %r12d
cmpl $0x2, (%r13,%r12)
jne 0x39cf
movq 0x8(%r13,%r12), %rdi
leaq 0x3e73(%rip), %rsi      # 0x7839
callq 0x10f0
testl %eax, %eax
je 0x39da
addq $0x20, %r12
cmpq %r12, %r15
jne 0x39b2
jmp 0x39df
movl 0x18(%r13,%r12), %ebp
movq 0xb8(%rsp), %r12
movq 0x80(%rsp), %rax
leaq (%rbx,%rax), %r15
cmpl $-0x1, %ebp
je 0x3ab0
movq %r13, 0xa8(%rsp)
movslq %ebp, %rax
movq %rax, 0x120(%rsp)
leaq (%rax,%rax,2), %rbx
shlq $0x4, %rbx
leaq (%r12,%rbx), %r14
movq 0xd0(%rsp), %r13
cmpb $0x2, (%r13,%rax)
movq %r14, 0x18(%rsp)
jne 0x3b45
movq 0x10(%r14), %rdi
movq 0x8(%rsp), %rsi
callq 0x10f0
testl %eax, %eax
movq 0xa8(%rsp), %r13
movl 0x28(%rsp), %ecx
jne 0x4aa5
movl 0x18(%r14), %eax
cmpl %ecx, %eax
jne 0x4aa5
leal -0x3(%rax), %ecx
cmpl $0x1, %ecx
ja 0x3a87
movq 0x70(%rsp), %rcx
cmpb %cl, 0x2c(%r14)
jne 0x4aa5
movl 0x20(%rsp), %ecx
cmpl %ecx, 0x28(%r14)
jne 0x4aa5
decl %eax
cmpl $0x3, %eax
ja 0x4aa5
leaq 0x3607(%rip), %rcx      # 0x70a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rax
cmpl %eax, 0x20(%r14)
jmp 0x3c21
movq 0x8(%rsp), %rdi
leaq 0x3d80(%rip), %rsi      # 0x783c
callq 0x10f0
testl %eax, %eax
jne 0x4aec
cmpl $0x0, 0xe0(%rsp)
jne 0x4aaf
movq 0x80(%rsp), %rax
addq %rbx, %rax
addq $0x2d, %rax
movb 0x2(%rax), %cl
movb %cl, 0x26(%rsp)
movzwl (%rax), %eax
movw %ax, 0x24(%rsp)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x20(%r15)
movdqu %xmm0, 0x10(%r15)
movdqu %xmm0, (%r15)
movl $0x1, 0xe0(%rsp)
movq 0x50(%rsp), %rbx
movq 0x10(%rsp), %rsi
movl 0x20(%rsp), %edx
movq 0x70(%rsp), %r8
movl 0x28(%rsp), %ebp
movl 0x38(%rsp), %r9d
movl 0x34(%rsp), %r10d
movq 0x78(%rsp), %r11
movq 0x8(%rsp), %r15
jmp 0x3ece
movq 0x50(%rsp), %rbp
movl %ebp, (%r14)
movl 0x34(%rsp), %eax
movl %eax, 0x4(%r14)
movq 0xa8(%rsp), %rax
movq %rax, 0x8(%r14)
movq 0x8(%rsp), %rax
movq %rax, 0x10(%r14)
movl 0x28(%rsp), %eax
movl %eax, 0x18(%r14)
movl 0x38(%rsp), %eax
movl %eax, 0x1c(%r14)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r14)
movl 0x20(%rsp), %eax
movl %eax, 0x28(%r14)
movq 0x70(%rsp), %rax
movb %al, 0x2c(%r14)
movzwl 0x200(%rsp), %eax
movw %ax, 0x2d(%r14)
movb 0x202(%rsp), %al
movb %al, 0x2f(%r14)
movl $0x0, (%r14)
leal -0x1(%rbp), %edi
movl $0x20, %esi
callq 0x10e0
movq %r12, %rdi
movq %rax, 0x8(%r12,%rbx)
movq %rbp, %rcx
movq 0x120(%rsp), %rax
movb $0x2, (%r13,%rax)
movq 0xa8(%rsp), %r13
pxor %xmm0, %xmm0
movdqu %xmm0, 0x20(%r15)
movdqu %xmm0, 0x10(%r15)
movdqu %xmm0, (%r15)
movq 0x78(%rsp), %r11
movq 0x30(%r11), %rax
movq 0x80(%rsp), %rdx
movl %ecx, (%rax,%rdx)
movq %r13, 0x8(%rax,%rdx)
jmp 0x3c60
movq 0x20(%r14), %rdi
movq 0x10(%rsp), %rsi
callq 0x10f0
testl %eax, %eax
setne %al
testb %al, %al
jne 0x4aa5
movq 0x8(%r14), %rdi
movl (%r14), %eax
movq 0x50(%rsp), %r14
leal (%r14,%rax), %esi
decl %esi
shlq $0x5, %rsi
callq 0x1150
movq %r12, %rdi
movq %rax, 0x8(%r12,%rbx)
movq %r14, %rcx
testq %rax, %rax
movq 0x78(%rsp), %r11
je 0x4af1
testl %ecx, %ecx
je 0x3e8d
xorl %r12d, %r12d
movq %r12, %rax
shlq $0x5, %rax
leaq (%rax,%r13), %rcx
movq %rcx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movl (%r13,%rax), %ebx
cmpl $0x1, %ebx
je 0x3cb1
cmpl $0x2, %ebx
jne 0x3ce8
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x3b9a(%rip), %rsi      # 0x7839
callq 0x10f0
testl %eax, %eax
je 0x3e1f
cmpl $0x1, %ebx
jne 0x3ce8
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r14
movq %r14, %rdi
leaq 0x3bf9(%rip), %rsi      # 0x78bd
callq 0x1040
testl %eax, %eax
je 0x3de3
movq %r14, %rdi
leaq 0x3cc1(%rip), %rsi      # 0x799c
callq 0x1040
testl %eax, %eax
je 0x3e02
movq 0x18(%rsp), %rax
movl (%rax), %eax
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x3d89
movq 0x18(%rsp), %rax
movq 0x8(%rax), %r15
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r14
movq 0x28(%rsp), %r13
shlq $0x5, %r13
xorl %ebp, %ebp
movq 0x8(%r15,%rbp), %rdi
movq %r14, %rsi
callq 0x10f0
testl %eax, %eax
jne 0x3d80
movl (%r15,%rbp), %eax
cmpl %ebx, %eax
jne 0x3d80
cmpl $0x3, %eax
je 0x3d60
cmpl $0x2, %eax
je 0x3d51
cmpl $0x1, %eax
jne 0x3d80
movb 0x18(%r15,%rbp), %al
movq 0x8(%rsp), %rcx
cmpb 0x18(%rcx), %al
jmp 0x3d75
movl 0x18(%r15,%rbp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jmp 0x3d75
movq 0x18(%r15,%rbp), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x10f0
testl %eax, %eax
setne %al
testb %al, %al
je 0x3e1f
addq $0x20, %rbp
cmpq %rbp, %r13
jne 0x3d1a
movq 0x18(%rsp), %rdx
movq 0x8(%rdx), %rax
movq 0x28(%rsp), %rsi
leal 0x1(%rsi), %ecx
movl %ecx, (%rdx)
shlq $0x5, %rsi
movq 0x8(%rsp), %rcx
movdqu (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax,%rsi)
movdqu %xmm0, (%rax,%rsi)
movq 0x78(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x80(%rsp), %rcx
movq 0x8(%rax,%rcx), %rax
pxor %xmm0, %xmm0
movq 0x10(%rsp), %rcx
movdqu %xmm0, 0x10(%rax,%rcx)
movdqu %xmm0, (%rax,%rcx)
jmp 0x3e1f
movq 0xa0(%rsp), %rax
movq 0x120(%rsp), %rcx
cmpl $0x0, (%rax,%rcx,4)
jne 0x3e18
movl $0x1, (%rax,%rcx,4)
jmp 0x3e1f
movq 0xa0(%rsp), %rax
movq 0x120(%rsp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x3e37
movl $0x3, (%rax,%rcx,4)
incq %r12
cmpq 0x50(%rsp), %r12
movq 0xa8(%rsp), %r13
jne 0x3c6b
jmp 0x3e40
movl $0x2, (%rax,%rcx,4)
jmp 0x3e1f
movq 0x118(%rsp), %r8
movl 0x8c(%rsp), %edx
movq 0x110(%rsp), %rsi
movl 0xe4(%rsp), %r9d
movl 0x44(%rsp), %ebp
movq 0xc8(%rsp), %r15
movq 0xc0(%rsp), %r13
movl 0x40(%rsp), %r10d
movl 0x3c(%rsp), %eax
movl %eax, %ebx
movq 0xb8(%rsp), %r12
movq 0x78(%rsp), %r11
jmp 0x3ece
movq 0x118(%rsp), %r8
movl 0x8c(%rsp), %edx
movq 0x110(%rsp), %rsi
movl 0xe4(%rsp), %r9d
movl 0x44(%rsp), %ebp
movq 0xc8(%rsp), %r15
movq 0xc0(%rsp), %r13
movl 0x40(%rsp), %r10d
movl 0x3c(%rsp), %eax
movl %eax, %ebx
movq %rdi, %r12
movq 0x1a8(%rsp), %rdi
incq %rdi
movl 0x28(%r11), %eax
movl %r8d, %ecx
movq %rcx, 0x118(%rsp)
movl %edx, 0x8c(%rsp)
movq %rsi, 0x110(%rsp)
movl %r9d, %r14d
movl %ebp, 0x44(%rsp)
movq %r15, 0xc8(%rsp)
movq %r13, 0xc0(%rsp)
movl %r10d, 0x40(%rsp)
movl %ebx, 0x3c(%rsp)
cmpq %rax, %rdi
jb 0x391a
jmp 0x3f44
movl %r14d, %r9d
movl 0x44(%rsp), %ebp
movq 0xc8(%rsp), %r15
movq 0xc0(%rsp), %r13
movl 0x40(%rsp), %r10d
movl 0x3c(%rsp), %eax
movl %eax, %ebx
movq 0x1a0(%rsp), %rax
incq %rax
movl %r9d, %r14d
movl %ebp, 0x44(%rsp)
movq %r15, 0xc8(%rsp)
movq %r13, 0xc0(%rsp)
movl %r10d, 0x40(%rsp)
movl %ebx, 0x3c(%rsp)
cmpq 0x108(%rsp), %rax
jne 0x38f3
jmp 0x3f96
xorl %ebx, %ebx
xorl %r10d, %r10d
xorl %r13d, %r13d
xorl %r15d, %r15d
xorl %ebp, %ebp
xorl %r9d, %r9d
xorl %esi, %esi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r15, %r14
movl %r10d, 0x34(%rsp)
movl %r9d, 0x38(%rsp)
movq %r8, 0x70(%rsp)
movq %rsi, 0x10(%rsp)
movl %edx, 0x20(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x1030
movq 0x68(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x4bf0
cmpl $0x0, 0xf8(%rsp)
je 0x401a
xorl %eax, %eax
movq 0x58(%rsp), %r8
movq 0x100(%rsp), %rdx
movq 0x160(%rsp), %rsi
movq 0xa0(%rsp), %r15
movq 0x180(%rsp), %rdi
movl (%r15,%rax,4), %ecx
decl %ecx
cmpl $0x3, %ecx
jae 0x4b2d
incq %rax
cmpq %rax, %rdi
jne 0x4001
jmp 0x4037
movq 0x160(%rsp), %rsi
movq 0x58(%rsp), %r8
movq 0x100(%rsp), %rdx
movq 0xa0(%rsp), %r15
movq %rbx, 0x50(%rsp)
cmpl $-0x15, %esi
ja 0x4b55
leal 0x14(%rsi), %eax
cmpl %edx, %eax
ja 0x4b55
movq %r14, 0x8(%rsp)
leaq 0x14(%r8), %rdi
callq 0x5cbb
movq 0x58(%rsp), %rdx
movq %rax, 0x78(%rsp)
movl 0x10(%rdx), %eax
movl 0x14(%rdx,%rax), %ebx
addl %eax, %ebx
jb 0x4b37
movq 0x100(%rsp), %rcx
addl $-0x14, %ecx
cmpl %ecx, %ebx
ja 0x4b37
movl %ebp, 0x28(%rsp)
movq %r13, 0xa8(%rsp)
movq %r15, 0xa0(%rsp)
movq %r12, 0xb8(%rsp)
leaq (%rdx,%rax), %r14
addq $0x14, %r14
movl 0x4(%r14), %r15d
movl $0x20, %esi
movq %r15, %rdi
callq 0x10e0
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0x4b5a
addq $0x8, %r14
movq %r15, 0x80(%rsp)
testl %r15d, %r15d
je 0x41a7
subl $-0x1c, %ebx
movq 0x58(%rsp), %r8
jae 0x4af6
movl 0xb0(%rsp), %r15d
movq 0x80(%rsp), %r12
shlq $0x5, %r12
xorl %r13d, %r13d
movq %r14, %rax
subq %r8, %rax
movl $0xfffffffe, %ecx       # imm = 0xFFFFFFFE
cmpq %rcx, %rax
jg 0x4af6
cmpl $-0x5, %eax
ja 0x4af6
leal 0x4(%rax), %ecx
cmpl %ebx, %ecx
ja 0x4af6
movl (%r14), %ebp
movl %ebp, %ecx
negl %ecx
cmpl %eax, %ecx
jbe 0x4b00
addl %ebp, %eax
cmpl %ebx, %eax
ja 0x4b00
leal (%r14,%r15), %ecx
subl %r8d, %ecx
movq 0xb0(%rsp), %rax
testl %eax, %eax
cmovel %eax, %ecx
leaq 0x200(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x5767
movq 0x58(%rsp), %r8
movdqu 0x200(%rsp), %xmm0
movups 0x210(%rsp), %xmm1
movq 0x18(%rsp), %rax
movups %xmm1, 0x10(%rax,%r13)
movdqu %xmm0, (%rax,%r13)
addq %rbp, %r14
addq $0x20, %r13
cmpq %r13, %r12
jne 0x4107
jmp 0x41ac
movq 0x58(%rsp), %r8
movq 0x198(%rsp), %rbx
leaq (%r8,%rbx), %rax
cmpq %rax, %r14
movq 0x168(%rsp), %rsi
movq 0xb8(%rsp), %rdi
movq 0xa0(%rsp), %r9
movq 0xa8(%rsp), %r10
movl 0x28(%rsp), %r11d
movq 0x78(%rsp), %rdx
movq 0x80(%rsp), %rcx
jne 0x4b5f
leaq (%rsi,%rsi,2), %rax
shlq $0x5, %rax
addq 0x190(%rsp), %rax
movl %ecx, (%rax)
xorl %ecx, %ecx
movl %ecx, 0x4(%rax)
movq 0x18(%rsp), %r14
movq %r14, 0x8(%rax)
movq %rdx, 0x10(%rax)
movq 0xf8(%rsp), %rdx
movl %edx, 0x18(%rax)
xorl %r15d, %r15d
movl %ecx, 0x1c(%rax)
movq %rdi, 0x20(%rax)
movq %r9, 0x28(%rax)
movq 0x50(%rsp), %rcx
movl %ecx, 0x30(%rax)
movl 0x34(%rsp), %ecx
movl %ecx, 0x34(%rax)
movq %r10, 0x38(%rax)
movq 0x8(%rsp), %rcx
movq %rcx, 0x40(%rax)
movl %r11d, 0x48(%rax)
movl 0x38(%rsp), %ecx
movl %ecx, 0x4c(%rax)
movq 0x10(%rsp), %rcx
movq %rcx, 0x50(%rax)
movl 0x20(%rsp), %ecx
movl %ecx, 0x58(%rax)
movq 0x70(%rsp), %rcx
movb %cl, 0x5c(%rax)
movzwl 0x24(%rsp), %ecx
movw %cx, 0x5d(%rax)
movb 0x26(%rsp), %cl
movb %cl, 0x5f(%rax)
addq %rbx, %r8
movl 0x12c(%rsp), %ecx
movq 0x100(%rsp), %rdx
subl %edx, %ecx
movq 0xb0(%rsp), %rax
addl %eax, %edx
testl %eax, %eax
cmovnel %edx, %eax
movq %rax, 0xb0(%rsp)
incq %rsi
movq 0x188(%rsp), %r12
cmpq %r12, %rsi
jne 0x33d6
jmp 0x436a
movq %r8, %rsi
callq 0x1a10
movq 0x58(%rsp), %r8
movq $0x0, 0x18(%rsp)
xorl %edx, %edx
movq $0x0, 0xf8(%rsp)
xorl %ecx, %ecx
xorl %edi, %edi
xorl %r9d, %r9d
movq $0x0, 0x50(%rsp)
movl $0x0, 0x34(%rsp)
xorl %r10d, %r10d
movq $0x0, 0x8(%rsp)
xorl %r11d, %r11d
movl $0x0, 0x38(%rsp)
movq $0x0, 0x10(%rsp)
movl $0x0, 0x20(%rsp)
movq $0x0, 0x70(%rsp)
movq 0x168(%rsp), %rsi
jmp 0x41f3
cmpl $0x1, %eax
jne 0x4350
callq 0x1b61
jmp 0x436a
callq 0x1be7
jmp 0x436a
movq 0x6ca1(%rip), %rcx      # 0xaff8
movq (%rcx), %rdi
leaq 0x30f6(%rip), %rsi      # 0x7457
movl %eax, %edx
xorl %eax, %eax
callq 0x1100
movq 0x150(%rsp), %rdx
leaq (%rdx,%rdx,8), %rax
movq 0x98(%rsp), %rcx
leaq (%rcx,%rax,8), %rdi
movl $0x9, %ecx
leaq 0x1b0(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq 0x178(%rsp), %rbx
addq 0x158(%rsp), %rbx
incq %rdx
movq %rdx, 0x150(%rsp)
cmpq 0xf0(%rsp), %rdx
movl 0xdc(%rsp), %edx
movq 0x140(%rsp), %rsi
jne 0x3220
movl %edx, %eax
addq %rax, %rsi
cmpq %rsi, %rbx
movq 0x60(%rsp), %r15
jne 0x4be1
movq 0x170(%rsp), %rax
testl %eax, %eax
je 0x4428
movq 0xe8(%rsp), %rcx
addq 0x138(%rsp), %rcx
movq %rcx, 0xe8(%rsp)
movl %eax, %eax
addq %rax, %rax
xorl %ecx, %ecx
movq 0xe8(%rsp), %rsi
movl %ecx, %edx
andl $-0x2, %edx
cmpl $0x0, (%rsi,%rdx,4)
jne 0x4b91
addq $0x2, %rcx
cmpq %rcx, %rax
jne 0x4410
movq 0xf0(%rsp), %rsi
testq %rsi, %rsi
je 0x44d4
leaq (,%rsi,8), %rax
leaq (%rax,%rax,8), %r14
xorl %r15d, %r15d
movl $0x1, %r12d
leaq 0x34a4(%rip), %rbx      # 0x78f9
xorl %ebp, %ebp
xorl %r13d, %r13d
movq 0x98(%rsp), %rax
cmpq $0x0, (%rax,%r15)
je 0x4493
movq 0x8(%rax,%r15), %rdi
testq %rdi, %rdi
je 0x4489
movq %rbx, %rsi
callq 0x10f0
testl %eax, %eax
movq 0x98(%rsp), %rax
cmovnel %r12d, %r13d
cmpl $0x0, 0x18(%rax,%r15)
cmovnel %r12d, %ebp
addq $0x48, %r15
cmpq %r15, %r14
jne 0x4462
testl %r13d, %r13d
sete 0x18(%rsp)
testl %ebp, %ebp
sete 0x10(%rsp)
movq 0x60(%rsp), %r15
movq 0xf0(%rsp), %rsi
jmp 0x44de
movq %r15, %rdi
callq 0x1ee1
jmp 0x4ad3
movq %rbx, %rdi
callq 0x1fb0
jmp 0x4ad3
movb $0x1, 0x18(%rsp)
movb $0x1, 0x10(%rsp)
testq %rsi, %rsi
je 0x4944
leal -0x1(%rsi), %eax
movq %rax, 0x28(%rsp)
leaq 0x30bf(%rip), %r12      # 0x75b5
leaq 0x34a7(%rip), %r13      # 0x79a4
xorl %r14d, %r14d
leaq (%r14,%r14,8), %rax
movq 0x98(%rsp), %rcx
cmpq $0x0, (%rcx,%rax,8)
je 0x4930
movq 0x98(%rsp), %rcx
leaq (%rcx,%rax,8), %rbp
cmpb $0x0, 0x18(%rsp)
jne 0x4576
movl $0x13, %esi
movl $0x1, %edx
leaq 0x33cb(%rip), %rdi      # 0x7906
movq %r15, %rcx
callq 0x1180
movq 0x8(%rbp), %rsi
testq %rsi, %rsi
leaq 0x33a8(%rip), %rax      # 0x78f9
cmoveq %rax, %rsi
movq %r15, %rdi
callq 0x5e29
movl $0x3, %esi
movl $0x1, %edx
leaq 0x33ac(%rip), %rdi      # 0x791a
movq %r15, %rcx
callq 0x1180
cmpb $0x0, 0x10(%rsp)
jne 0x4664
movl $0x13, %esi
movl $0x1, %edx
leaq 0x338c(%rip), %rdi      # 0x791e
movq %r15, %rcx
callq 0x1180
movl 0x18(%rbp), %edx
cmpl $0x20, %edx
jg 0x45c4
cmpl $0x1, %edx
je 0x45e6
cmpl $0x2, %edx
je 0x461f
cmpl $0x20, %edx
jne 0x460c
movl $0xc, %esi
movl $0x1, %edx
leaq 0x3398(%rip), %rdi      # 0x795a
jmp 0x4643
cmpl $0x21, %edx
je 0x45f9
cmpl $0x40, %edx
je 0x4632
cmpl $0x41, %edx
jne 0x460c
movl $0x1b, %esi
movl $0x1, %edx
leaq 0x3383(%rip), %rdi      # 0x7967
jmp 0x4643
movl $0xc, %esi
movl $0x1, %edx
leaq 0x333b(%rip), %rdi      # 0x7932
jmp 0x4643
movl $0x1a, %esi
movl $0x1, %edx
leaq 0x3342(%rip), %rdi      # 0x794c
jmp 0x4643
movq %r15, %rdi
leaq 0x336d(%rip), %rsi      # 0x7983
xorl %eax, %eax
callq 0x1100
jmp 0x464b
movl $0xc, %esi
movl $0x1, %edx
leaq 0x330f(%rip), %rdi      # 0x793f
jmp 0x4643
movl $0xd, %esi
movl $0x1, %edx
leaq 0x3332(%rip), %rdi      # 0x7975
movq %r15, %rcx
callq 0x1180
movl $0x2, %esi
movl $0x1, %edx
leaq 0x32bf(%rip), %rdi      # 0x791b
movq %r15, %rcx
callq 0x1180
movl 0x1c(%rbp), %edx
testl %edx, %edx
je 0x4686
movq 0x20(%rbp), %rsi
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x5e8e
movl $0xa, %edi
movq %r15, %rsi
callq 0x10d0
movq %r14, 0x8(%rsp)
movl $0x6, %esi
movl $0x1, %edx
leaq 0x32ea(%rip), %rdi      # 0x7986
movq %r15, %rcx
callq 0x1180
movq (%rbp), %rsi
movq %r15, %rdi
callq 0x5e29
movl $0x20, %edi
movq %r15, %rsi
callq 0x10d0
cmpq $0x0, 0x10(%rbp)
je 0x46f6
movl $0x2, %esi
movl $0x1, %edx
leaq 0x32b8(%rip), %rdi      # 0x798d
movq %r15, %rcx
callq 0x1180
movq 0x10(%rbp), %rsi
movq %r15, %rdi
callq 0x5e29
movl $0x20, %edi
movq %r15, %rsi
callq 0x10d0
movl $0x2, %esi
movl $0x1, %edx
leaq 0x3289(%rip), %rdi      # 0x7990
movq %r15, %rcx
callq 0x1180
cmpl $0x0, 0x28(%rbp)
je 0x477b
xorl %ebx, %ebx
xorl %r14d, %r14d
movl $0x2, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rcx
callq 0x1180
movq 0x30(%rbp), %rsi
addq %rbx, %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x60d6
movl $0x2, %esi
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rcx
callq 0x1180
incq %r14
movl 0x28(%rbp), %eax
addq $0x30, %rbx
cmpq %rax, %r14
jb 0x471a
testl %eax, %eax
je 0x477b
cmpl $0x0, 0x38(%rbp)
je 0x477b
movl $0xa, %edi
movq %r15, %rsi
callq 0x10d0
cmpl $0x0, 0x38(%rbp)
je 0x48f7
xorl %r14d, %r14d
movl $0x2, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rcx
callq 0x1180
movq 0x40(%rbp), %rax
leaq (%r14,%r14,2), %r13
shlq $0x5, %r13
movl (%rax,%r13), %edx
testl %edx, %edx
je 0x47cf
addq %r13, %rax
movq 0x8(%rax), %rsi
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x5e8e
movl $0x20, %edi
movq %r15, %rsi
callq 0x10d0
movq 0x40(%rbp), %rax
cmpl $0x0, 0x48(%rax,%r13)
je 0x47ed
leaq (%rax,%r13), %rsi
addq $0x30, %rsi
movq %r15, %rdi
callq 0x6184
jmp 0x4806
movl $0x4, %esi
movl $0x1, %edx
leaq 0x3195(%rip), %rdi      # 0x7993
movq %r15, %rcx
callq 0x1180
movl $0x20, %edi
movq %r15, %rsi
callq 0x10d0
movq 0x40(%rbp), %rax
movq %r14, %rcx
shlq $0x5, %rcx
leaq (%rcx,%rcx,2), %r12
movq 0x10(%rax,%r12), %rsi
movq %r15, %rdi
callq 0x5e29
movl $0x28, %edi
movq %r15, %rsi
callq 0x10d0
movq 0x40(%rbp), %rax
cmpl $0x0, 0x18(%rax,%r12)
je 0x48c3
xorl %ebx, %ebx
xorl %r15d, %r15d
movq 0x28(%rax,%r13), %rcx
movl (%rcx,%r15,4), %ecx
decl %ecx
cmpl $0x2, %ecx
ja 0x486f
movl %ecx, %ecx
leaq 0x28ee(%rip), %rsi      # 0x7154
movslq (%rsi,%rcx,4), %rdx
addq %rsi, %rdx
jmp 0x4871
xorl %edx, %edx
movq 0x20(%rax,%r12), %rsi
addq %rbx, %rsi
movq 0x60(%rsp), %rdi
callq 0x60d6
movq 0x40(%rbp), %rax
movl 0x18(%rax,%r12), %eax
decl %eax
cmpq %rax, %r15
je 0x48ae
movl $0x2, %esi
movl $0x1, %edx
leaq 0x30fc(%rip), %rdi      # 0x79a0
movq 0x60(%rsp), %rcx
callq 0x1180
incq %r15
movq 0x40(%rbp), %rax
movl 0x18(%rax,%r13), %ecx
addq $0x30, %rbx
cmpq %rcx, %r15
jb 0x484d
movl $0x3, %esi
movl $0x1, %edx
leaq 0x30cf(%rip), %rdi      # 0x79a3
movq 0x60(%rsp), %r15
movq %r15, %rcx
callq 0x1180
incq %r14
movl 0x38(%rbp), %eax
cmpq %rax, %r14
leaq 0x2cc4(%rip), %r12      # 0x75b5
jb 0x4788
movl $0x3, %esi
movl $0x1, %edx
leaq 0x309f(%rip), %rdi      # 0x79a7
movq %r15, %rcx
callq 0x1180
movq 0x8(%rsp), %r14
cmpq 0x28(%rsp), %r14
leaq 0x3083(%rip), %r13      # 0x79a4
je 0x4930
movl $0xa, %edi
movq %r15, %rsi
callq 0x10d0
incq %r14
movq 0xf0(%rsp), %rsi
cmpq %rsi, %r14
jne 0x4500
movq 0x98(%rsp), %rdi
callq 0x4bf0
movq 0x90(%rsp), %rdi
callq 0x1030
xorl %ebx, %ebx
cmpl $0x3, 0x48(%rsp)
jl 0x4ad8
movq 0x60(%rsp), %rdi
callq 0x1090
jmp 0x4ad8
callq 0x15b7
callq 0x15ec
movq 0x666d(%rip), %rax      # 0xaff8
movq (%rax), %rdi
cmpl $0x2, 0x48(%rsp)
jl 0x4a26
movq 0x8(%rbx), %rdx
leaq 0x2875(%rip), %rsi      # 0x7219
jmp 0x4a94
movq 0x6648(%rip), %rax      # 0xaff8
movq (%rax), %rdi
cmpl $0x2, 0x48(%rsp)
jl 0x4a32
movq 0x8(%rbx), %rdx
leaq 0x287e(%rip), %rsi      # 0x7243
jmp 0x49e3
movq 0x662a(%rip), %rax      # 0xaff8
movq (%rax), %rdi
cmpl $0x2, 0x48(%rsp)
jl 0x4a3b
movq 0x8(%rbx), %rdx
leaq 0x2888(%rip), %rsi      # 0x726b
xorl %eax, %eax
callq 0x1100
movq %r15, %rdi
callq 0x1030
jmp 0x4a9b
movq %r15, %rdi
callq 0x1eb8
jmp 0x4ad3
movq %r15, %rdi
callq 0x1e8f
jmp 0x4ad3
movq %r15, %rdi
movq 0x90(%rsp), %rsi
callq 0x11c0
jmp 0x4ad3
leaq 0x27ec(%rip), %rsi      # 0x7219
jmp 0x4ac5
leaq 0x280a(%rip), %rsi      # 0x7243
jmp 0x4a42
leaq 0x2829(%rip), %rsi      # 0x726b
leaq 0x27a7(%rip), %rdx      # 0x71f0
xorl %eax, %eax
callq 0x1100
movq %r15, %rdi
callq 0x1030
jmp 0x4ad3
movq 0x6597(%rip), %rax      # 0xaff8
movq (%rax), %rsi
cmpl $0x2, 0x48(%rsp)
jl 0x4ab4
movq %rbx, %rdi
movq %r14, %rdx
callq 0x1f36
jmp 0x4ad3
movq 0x6579(%rip), %rax      # 0xaff8
movq (%rax), %rdi
cmpl $0x2, 0x48(%rsp)
jl 0x4abe
movq 0x8(%rbx), %rdx
leaq 0x2764(%rip), %rsi      # 0x71f8
xorl %eax, %eax
callq 0x1100
movq %r14, %rdi
callq 0x1090
jmp 0x4ad3
callq 0x16c0
callq 0x1621
callq 0x172a
movq %rsi, %rdi
callq 0x1f0a
jmp 0x4ad3
leaq 0x2733(%rip), %rsi      # 0x71f8
leaq 0x2724(%rip), %rdx      # 0x71f0
xorl %eax, %eax
callq 0x1100
movl $0x1, %ebx
movl %ebx, %eax
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x16f5
callq 0x168b
callq 0x1907
callq 0x154d
callq 0x18d2
callq 0x140f
callq 0x1444
callq 0x13da
callq 0x1479
callq 0x1582
callq 0x14e3
callq 0x14ae
callq 0x1518
callq 0x175f
callq 0x1656
callq 0x19a6
callq 0x1833
callq 0x1a8d
callq 0x1a58
callq 0x1306
callq 0x133b
callq 0x19db
callq 0x1971
callq 0x193c
callq 0x189d
callq 0x13a5
callq 0x17fe
callq 0x1868
callq 0x1370
callq 0x17c9
callq 0x1794
callq 0x1c6d
callq 0x1bb2
callq 0x1cd7
callq 0x1267
callq 0x1c38
callq 0x1c03
callq 0x12d1
callq 0x1b7d
callq 0x1b2c
callq 0x1af7
callq 0x1ac2
callq 0x129c
callq 0x1e15
callq 0x11fd
callq 0x1de0
callq 0x1d76
callq 0x1d41
callq 0x1d0c
callq 0x1ca2
callq 0x1dab
callq 0x1232