// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/hlp.c
// Function: do_file
static void do_file(deark *c, lctx *d, i64 pos1, enum hlp_filetype file_fmt, int force_extract,
	struct de_stringreaderdata *fn)
{
	i64 reserved_space;
	i64 used_space;
	i64 pos = pos1;
	UI fileflags;

	de_dbg(c, "file at %"I64_FMT", type=%s", pos1, file_type_to_type_name(file_fmt));
	de_dbg_indent(c, 1);

	// FILEHEADER
	reserved_space = de_getu32le_p(&pos);
	de_dbg(c, "ReservedSpace: %"I64_FMT, reserved_space);

	used_space = de_getu32le_p(&pos);
	de_dbg(c, "UsedSpace: %"I64_FMT, used_space);

	fileflags = (UI)de_getbyte_p(&pos);
	de_dbg(c, "FileFlags: 0x%02x", fileflags);

	if(used_space==0) goto done;
	if(pos+used_space > c->infile->len) {
		de_err(c, "Object at %"I64_FMT" (len %"I64_FMT") goes beyond end of file",
			pos, used_space);
		goto done;
	}

	if(force_extract) {
		do_extract_raw_file(c, d, pos, used_space, fn);
		goto done;
	}

	switch(file_fmt) {
	case FILETYPE_INTERNALDIR:
		do_file_INTERNALDIR(c, d, pos, used_space);
		break;
	case FILETYPE_TOPIC:
		do_file_TOPIC(c, d, pos, used_space);
		break;
	case FILETYPE_PHRASES:
		do_file_Phrases(c, d, pos, used_space);
		break;
	case FILETYPE_PHRINDEX:
		do_file_PhrIndex(c, d, pos, used_space);
		break;
	case FILETYPE_PHRIMAGE:
		do_file_PhrImage(c, d, pos, used_space);
		break;
	case FILETYPE_SYSTEM:
		do_file_SYSTEM(c, d, pos, used_space);
		break;
	case FILETYPE_SHG:
		d->has_shg = 1;
		do_file_SHG(c, d, pos, used_space);
		break;
	case FILETYPE_EXTRACTABLE:
		do_extract_raw_file(c, d, pos, used_space, fn);
		break;
	default: ;
	}

done:
	de_dbg_indent(c, -1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq %r9, %r15
movl %r8d, %r14d
movl %ecx, %r12d
movq %rsi, 0x10(%rsp)
movq %rdi, %rbx
leaq 0x118(%rsp), %r13
movq %rdx, (%r13)
movslq %ecx, %rax
leaq 0xbff4b(%rip), %rsi     # 0x113fac
movslq -0x4(%rsi,%rax,4), %rcx
addq %rsi, %rcx
leaq 0xc003b(%rip), %rsi     # 0x1140ab
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe40bf
leaq 0xc002b(%rip), %rsi     # 0x1140c0
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe40bf
movq %rax, %rbp
leaq 0xc001b(%rip), %rsi     # 0x1140d3
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe3f2a
movzbl %al, %edx
leaq 0xc0007(%rip), %rsi     # 0x1140e2
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
testq %rbp, %rbp
je 0x56002
movq 0x118(%rsp), %r13
movq %r13, %rdx
addq %rbp, %rdx
movq 0x18(%rbx), %rdi
cmpq 0x18(%rdi), %rdx
jle 0x54122
leaq 0xbffe7(%rip), %rsi     # 0x1140f4
movq %rbx, %rdi
movq %r13, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xdf2a5
jmp 0x56002
testl %r14d, %r14d
je 0x54142
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %r15, %r8
callq 0x562bf
jmp 0x56002
addl $-0x2, %r12d
cmpl $0x7, %r12d
ja 0x56002
leaq 0xbfe1d(%rip), %rax     # 0x113f74
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xbfffe(%rip), %rsi     # 0x114165
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xde896
leaq 0x68(%rsp), %r14
movq %r13, (%r14)
leaq 0x120(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe3fc4
cmpq $0x293b, %rax           # imm = 0x293B
jne 0x5498a
pushq $0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0xdeba7
movq 0x18(%rbx), %rdi
leaq 0x68(%rsp), %r15
movq %r15, %rsi
callq 0xe3fc4
movq 0x10(%rsp), %r12
movl %eax, 0x18(%r12)
leaq 0xbffd7(%rip), %rsi     # 0x1141aa
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe3fc4
movq %rax, 0x20(%r12)
leaq 0xbffc7(%rip), %rsi     # 0x1141be
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq (%r15), %rsi
pushq $0x10
popq %rcx
movq %rcx, %rdx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0xe495c
movq %rax, %r14
movq 0x18(%rax), %rdi
callq 0xeb877
leaq 0xbff9d(%rip), %rsi     # 0x1141cb
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe4b94
addq $0x14, (%r15)
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rax, 0x28(%r12)
leaq 0xbff79(%rip), %rsi     # 0x1141db
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
addq $0x2, (%r15)
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rax, 0x38(%r12)
leaq 0xbff5e(%rip), %rsi     # 0x1141e8
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rax, 0x30(%r12)
leaq 0xbff49(%rip), %rsi     # 0x1141f7
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x30(%r12), %rax
movq %rax, 0xb8(%r12)
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe410e
movq %rax, 0x40(%r12)
leaq 0xbff24(%rip), %rsi     # 0x114203
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq (%r15), %r8
movq %r8, 0x48(%r12)
movq 0x20(%r12), %rcx
movq 0x38(%r12), %rdx
movq %rcx, %r9
imulq %rdx, %r9
leaq 0xbff0e(%rip), %rsi     # 0x114219
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
leaq 0xb0(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
movq 0x28(%r12), %r14
movq 0x30(%r12), %r15
leaq 0xbff63(%rip), %rsi     # 0x114299
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
movl %ebp, %esi
callq 0xdeba7
pushq $-0x1
popq %rbp
cmpq $0x2, %r15
jl 0x54cbf
testq %r14, %r14
js 0x54cdc
movq 0x10(%rsp), %rax
movq 0x48(%rax), %r12
movq 0x20(%rax), %r13
imulq %r14, %r13
movq %rbx, %rdi
leaq 0xbff3a(%rip), %rsi     # 0x1142b5
movl %r14d, %edx
movl %r15d, %ecx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x18(%rbx), %rdi
leaq (%r12,%r13), %rsi
addq $0x4, %rsi
callq 0xe400a
movq %rax, %r14
movq %rbx, %rdi
leaq 0xbff46(%rip), %rsi     # 0x1142f7
movl %r14d, %edx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
movl %ebp, %esi
callq 0xdeba7
decq %r15
jmp 0x5434d
movq 0x10(%rsp), %rax
movl $0x1, 0xa8(%rax)
movq %r13, %rsi
callq 0xe3fa3
andq $-0x2001, %rax          # imm = 0xDFFF
cmpq $0x506c, %rax           # imm = 0x506C
jne 0x5492a
movq 0x18(%rbx), %rdi
leaq 0x2(%r13), %rsi
callq 0xe3fa3
cmpq $0x2, %rax
leaq 0xc06be(%rip), %rax     # 0x114ac9
leaq 0xbfc4e(%rip), %r14     # 0x114060
cmovgeq %rax, %r14
jmp 0x54931
movq %rdx, 0x30(%rsp)
leaq 0x68(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
movq 0x10(%rsp), %rax
cmpl $0x1, 0xa4(%rax)
jne 0x55ff6
leaq 0x38(%rsp), %rsi
movq %r13, (%rsi)
movq 0x18(%rbx), %rdi
callq 0xe3fc4
cmpq $0x36c, %rax            # imm = 0x36C
jne 0x54cf9
leaq 0xc04e0(%rip), %rsi     # 0x114943
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %r15
movq %rbx, %rdi
movl %r15d, %esi
callq 0xdeba7
movq 0x18(%rbx), %rdi
leaq 0x38(%rsp), %r14
movq %r14, %rsi
callq 0xe3fc4
movq 0x10(%rsp), %rcx
movl %eax, 0x8c(%rcx)
movq 0x18(%rbx), %rdi
movq %r14, %rsi
movq 0x10(%rsp), %r14
callq 0xe3fc4
movl %eax, 0x88(%r14)
movl 0x8c(%r14), %ecx
leaq 0xc049a(%rip), %rsi     # 0x11495b
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movl 0x88(%r14), %edx
cmpl $0x1, %edx
jne 0x55476
movq 0x18(%rbx), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe410e
movq %r14, %rcx
movq %rax, %r14
leaq 0x120(%rcx), %rdi
testq %rax, %rax
movq %rdi, 0x20(%rsp)
je 0x55e81
movq %r14, %rdi
movq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0xe002e
movq 0x20(%rsp), %rdi
jmp 0x55e84
movq %rdx, 0x30(%rsp)
leaq 0x84(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, 0x60(%rsp)
leaq 0xbfe6a(%rip), %rsi     # 0x1143b5
movq %rbx, %rdi
movq %r13, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0x10(%rsp), %r14
cmpb $0x0, 0x58(%r14)
je 0x54586
movq 0x90(%r14), %rcx
cmpq $0x7ff, %rcx            # imm = 0x7FF
jg 0x549a6
leaq 0xbfe3e(%rip), %rsi     # 0x1143cb
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movq 0x60(%rsp), %rbp
testq %rbp, %rbp
je 0x545c4
movq 0x10(%rbp), %r15
movq %r15, %rdi
callq 0xe5591
movq 0x8(%rbp), %rsi
movq %rbx, %rdi
callq 0xded32
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xded32
movl 0x84(%rsp), %esi
jmp 0x55ffa
leaq 0xc031a(%rip), %rsi     # 0x1148f1
movq %rbx, %rdi
movq %r13, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rax
movq 0xe8(%rax), %rcx
cmpq %rbp, %rcx
jg 0x56002
movq 0x10(%rsp), %r14
movq 0xe0(%r14), %r8
cmpq %r8, %rcx
jne 0x54d12
movq 0x18(%rbx), %rdi
movq 0xf0(%r14), %rax
movq %r13, %rsi
movq %rcx, %rdx
movq %rax, %rcx
callq 0xe45f4
jmp 0x56002
movq %rdx, 0x30(%rsp)
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8(%rax)
je 0x554ac
leaq 0xc010c(%rip), %rsi     # 0x114763
movq %rbx, %rdi
movq %r13, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
cmpq $0x6, %rbp
jl 0x554ac
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe3fa3
movq %rax, %r14
movq 0x18(%rbx), %rdi
leaq 0x2(%r13), %rsi
callq 0xe3fa3
movq %rax, %r15
movq 0x18(%rbx), %rdi
addq $0x4, %r13
movq %r13, %rsi
callq 0xe3fa3
cmpq $0x800, %r14            # imm = 0x800
jne 0x5530b
cmpq $0x100, %r15            # imm = 0x100
je 0x5530b
cmpq $0x100, %rax            # imm = 0x100
jne 0x5530b
leaq 0xc00bf(%rip), %rsi     # 0x114797
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
leaq 0xc00ba(%rip), %rsi     # 0x1147a6
jmp 0x554a2
movq %rdx, 0x30(%rsp)
movq %r13, 0x38(%rsp)
leaq 0x68(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
cmpq $0x1e, %rbp
jl 0x55ff6
movq 0x18(%rbx), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe40bf
cmpq $0x1, %rax
jne 0x55ff6
movq 0x18(%rbx), %rdi
leaq 0x38(%rsp), %r14
movq %r14, %rsi
callq 0xe40bf
movq 0x10(%rsp), %r12
movl %eax, 0xf8(%r12)
leaq 0xc0072(%rip), %rsi     # 0x1147c1
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movl 0xf8(%r12), %esi
pushq $0x8
popq %rdx
movq %rbx, %rdi
callq 0xdf66f
movq %rax, 0x100(%r12)
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
leaq 0xc0103(%rip), %rsi     # 0x11488c
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
movq %rax, 0xe0(%r12)
leaq 0xc00f0(%rip), %rsi     # 0x1148a1
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
movq %rax, 0xe8(%r12)
leaq 0xc00e2(%rip), %rsi     # 0x1148bb
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
addq $0x4, (%r14)
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe3fc4
movq %rax, %r15
leaq 0xbfeab(%rip), %rsi     # 0x1146ab
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0xdeba7
andl $0xf, %r15d
leaq 0xc00ae(%rip), %rsi     # 0x1148d3
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0xde896
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq (%r14), %rax
addq $0x2, %rax
movq %rax, (%r14)
movq 0x30(%rsp), %r13
movq %r13, %rdx
subq %rax, %rdx
leaq 0xc0088(%rip), %rsi     # 0x1148e1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
xorl %esi, %esi
movq (%r14), %rax
leaq 0xb0(%rsp), %r14
andq $0x0, 0x28(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%r14)
movq 0x18(%rbx), %rcx
movq %rcx, (%r14)
movq %rax, 0x8(%r14)
movq %r13, 0x10(%r14)
movb $0x1, 0x20(%r14)
movq 0x100(%r12), %rax
andl $0x0, (%rax)
movl 0xf8(%r12), %eax
movl %eax, %eax
cmpq %rax, %rsi
jae 0x552f0
movq %rsi, %r13
xorl %r12d, %r12d
movq %r14, %rdi
movl %ebp, %esi
callq 0xe6a4a
testq %rax, %rax
je 0x548d7
cmpb $0x0, 0xc8(%rsp)
jne 0x552f0
incl %r12d
jmp 0x548b5
movl %r15d, %ecx
shll %cl, %r12d
movq %r14, %rdi
movl %r15d, %esi
callq 0xe6a4a
cmpb $0x0, 0xc8(%rsp)
jne 0x552f0
leal (%r12,%rax), %ecx
incl %ecx
movq 0x10(%rsp), %rax
movq 0x100(%rax), %rdx
movl %ecx, 0x4(%rdx,%r13,8)
leaq 0x1(%r13), %rsi
movl 0xf8(%rax), %eax
cmpq %rax, %rsi
jae 0x548a4
addl (%rdx,%r13,8), %ecx
movl %ecx, 0x8(%rdx,%r13,8)
jmp 0x548a4
leaq 0xd3bac(%rip), %r14     # 0x1284dd
movq %rbx, %rdi
callq 0xdfd1a
movq %rax, %r15
movq 0x10(%rsp), %rax
movups 0x120(%rax), %xmm0
movups %xmm0, 0x18(%r15)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xe4e62
movq %rax, %r14
movq 0x18(%rbx), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %rax, %rcx
callq 0xe45f4
movq %r14, %rdi
callq 0xe5591
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdfd24
jmp 0x56002
leaq 0xbf7ed(%rip), %rsi     # 0x11417e
xorl %r15d, %r15d
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xdf2a5
jmp 0x554c6
cmpl $0x0, 0x8(%r14)
movq 0x60(%rsp), %r15
je 0x549c9
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe59cd
movq %rax, 0x10(%r15)
movq 0x90(%r14), %rcx
leaq (%rcx,%rbp), %rax
addq $-0xc, %rax
cqto
idivq %rcx
movq %rdx, (%r15)
pushq $0x10
popq %rax
movq %rbx, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0xdf66f
movq %rax, 0x8(%r15)
orl $-0x1, 0x18(%r15)
xorl %r12d, %r12d
xorl %edx, %edx
movq %r15, %rbp
cmpq (%rbp), %rdx
movq 0x30(%rsp), %r15
jge 0x54c41
movq 0x90(%r14), %rax
subq %r13, %r15
cmpq %r15, %rax
cmovlq %rax, %r15
cmpq $0xc, %r15
jl 0x54c41
movq %r12, 0x18(%rsp)
leaq 0xc(%r13), %r8
leaq -0xc(%r15), %r9
movq %rbx, %rdi
leaq 0xbf9a5(%rip), %rsi     # 0x1143e1
movq %rdx, 0x28(%rsp)
movq %r13, %rcx
movq %r8, 0x88(%rsp)
movq %r9, 0x58(%rsp)
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe409f
movq %rax, 0x20(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x4(%r13), %rsi
callq 0xe409f
movq %rax, %r12
movq 0x18(%rbx), %rdi
leaq 0x8(%r13), %rsi
callq 0xe409f
movq %rax, %rbp
movq %r14, %rdi
movq 0x20(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x56350
movq %r14, %rdi
movl %r12d, %esi
leaq 0x120(%rsp), %rdx
callq 0x56350
movq %r14, %rdi
movl %ebp, %esi
movq 0x60(%rsp), %rbp
leaq 0x140(%rsp), %r14
movq %r14, %rdx
callq 0x56350
movq %rbx, %rdi
leaq 0xbf92c(%rip), %rsi     # 0x11440c
leaq 0x90(%rsp), %rdx
leaq 0x120(%rsp), %rcx
movq %r14, %r8
xorl %eax, %eax
callq 0xde896
cmpl $-0x1, 0x18(%rbp)
jne 0x54b0a
cmpl $-0x1, %r12d
je 0x54b0a
movl %r12d, 0x18(%rbp)
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8(%rax)
movq 0x18(%rsp), %r12
je 0x54c1d
movq 0x10(%rbp), %r14
testq %r14, %r14
je 0x54c1d
movq 0x18(%r14), %rax
movq 0x8(%rbp), %rcx
movq %rax, (%rcx,%r12)
movq 0x10(%rsp), %rax
cmpl $0x0, 0x98(%rax)
je 0x54bdb
movq %rbx, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
callq 0xee7ee
movq 0x18(%rbx), %rax
movq %rax, 0x38(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r14, 0x68(%rsp)
movb $0x1, 0x70(%rsp)
movq $0x3ff4, 0x78(%rsp)     # imm = 0x3FF4
movq 0x18(%r14), %r12
movq %rbx, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
xorl %r8d, %r8d
callq 0xef3d3
movq 0x18(%r14), %rcx
subq %r12, %rcx
movq 0x18(%rsp), %r12
movq %rbx, %rdi
leaq 0xbf892(%rip), %rsi     # 0x11445f
movq 0x58(%rsp), %rdx
xorl %eax, %eax
callq 0xde896
jmp 0x54bf4
movq 0x18(%rbx), %rdi
movq 0x88(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %r14, %rcx
callq 0xe45f4
movq 0x8(%rbp), %rax
movq 0x10(%rbp), %rcx
movq 0x18(%rcx), %rdx
movq %rdx, %rcx
subq (%rax,%r12), %rcx
movq %rcx, 0x8(%rax,%r12)
movq %rbx, %rdi
leaq 0xbf81f(%rip), %rsi     # 0x114435
xorl %eax, %eax
callq 0xde9f1
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
addq %r15, %r13
movq 0x28(%rsp), %rdx
incq %rdx
addq $0x10, %r12
movq 0x10(%rsp), %r14
jmp 0x549fb
movq 0x10(%rbp), %r15
testq %r15, %r15
je 0x55493
cmpq $0x0, 0x18(%r15)
jle 0x545a5
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
leaq 0xbf80d(%rip), %rsi     # 0x11447d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
leaq 0x120(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
movl 0x18(%rbp), %r13d
leal 0x1(%r13), %eax
cmpl $0xc, %eax
ja 0x554dd
leaq 0xbf7db(%rip), %rsi     # 0x114488
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf05a
jmp 0x554e1
leaq 0xbf612(%rip), %rsi     # 0x1142d8
movq %rbx, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rax
movq %r14, 0x50(%rax)
movl 0xb0(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
cmpq $0x1, %r15
jle 0x54d41
xorl %r15d, %r15d
jmp 0x554c6
leaq 0xbfc1d(%rip), %rsi     # 0x11491d
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xdf2a5
jmp 0x55ff6
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x565c9
movq 0xf0(%r14), %rax
movq 0x18(%rax), %rdx
leaq 0xb1b34(%rip), %rsi     # 0x106866
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
jmp 0x56002
movq 0x10(%rsp), %r14
movq 0x38(%r14), %rsi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r15
pushq $0x1
popq %rax
movq %r15, 0x28(%rsp)
movl %eax, 0xa4(%r14)
cmpl $0x2, %eax
jg 0x554c6
movq 0x38(%r14), %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x18140
movl 0xa4(%r14), %edx
movq %rbx, %rdi
leaq 0xbf1bb(%rip), %rsi     # 0x113f47
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x50(%r14), %rdx
testq %rdx, %rdx
js 0x55159
cmpq 0x38(%r14), %rdx
jg 0x554c6
cmpl $0x1, 0xa4(%r14)
jne 0x54dca
cmpb $0x0, (%r15,%rdx)
jne 0x554b5
movb $0x1, (%r15,%rdx)
movq 0x20(%r14), %r15
imulq %rdx, %r15
addq 0x48(%r14), %r15
movq %rbx, %rdi
leaq 0xbf47d(%rip), %rsi     # 0x114262
movq %r15, %rcx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq %r15, 0x18(%rsp)
movq %r15, 0xb0(%rsp)
movq %rbx, %rdi
leaq 0x90(%rsp), %rsi
callq 0xdebae
movq 0x18(%rbx), %rdi
leaq 0xb0(%rsp), %r15
movq %r15, %rsi
callq 0xe3fc4
movq %rbx, %rdi
leaq 0xbf4d3(%rip), %rsi     # 0x114308
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rax, %r13
movq %rbx, %rdi
leaq 0xbf4d4(%rip), %rsi     # 0x11432b
movl %r13d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rbx, %rdi
leaq 0xbf480(%rip), %rsi     # 0x1142f7
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe4038
movq %rbx, %rdi
leaq 0xbf4a2(%rip), %rsi     # 0x114338
movq %rax, 0x30(%rsp)
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
testq %r13, %r13
movl $0x0, %eax
cmovleq %rax, %r13
xorl %r12d, %r12d
xorl %r15d, %r15d
cmpq %r12, %r13
je 0x55125
movq %rbx, %rdi
leaq 0xbf47c(%rip), %rsi     # 0x114345
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x18(%rbx), %rdi
movq 0xb0(%rsp), %rdx
movl $0x104, %ecx            # imm = 0x104
xorl %esi, %esi
leaq 0x38(%rsp), %r8
callq 0xe4b21
testl %eax, %eax
je 0x5510f
testq %r15, %r15
je 0x54f13
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe4b94
movq 0x18(%rbx), %rdi
movq 0xb0(%rsp), %rsi
movq 0x38(%rsp), %rcx
subq %rsi, %rcx
movl (%r14), %r9d
movq %rcx, %rdx
xorl %r8d, %r8d
callq 0xe495c
movq %rax, %r15
movq 0x18(%rax), %rdi
callq 0xeb877
movq %rbx, %rdi
leaq 0xbf41f(%rip), %rsi     # 0x11436a
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x38(%rsp), %rax
incq %rax
movq %rax, 0xb0(%rsp)
movq 0x18(%rbx), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe410e
movq %rax, %rbp
movq %rbx, %rdi
leaq 0xbf3f6(%rip), %rsi     # 0x114379
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x8(%r15), %r14
cmpb $0x7c, (%r14)
jne 0x55047
movq %r14, %rdi
leaq 0xbf3e4(%rip), %rsi     # 0x114389
callq 0x181a0
testl %eax, %eax
je 0x55076
movq %r14, %rdi
leaq 0xbf3d4(%rip), %rsi     # 0x114390
callq 0x181a0
testl %eax, %eax
je 0x5508c
cmpb $0x62, 0x1(%r14)
jne 0x54fea
cmpb $0x6d, 0x2(%r14)
jne 0x54fea
movb 0x3(%r14), %al
addb $-0x3a, %al
movb $0x1, %dl
pushq $0x6
popq %rcx
cmpb $-0xb, %al
ja 0x550c4
movq %r14, %rdi
leaq 0xbf3a4(%rip), %rsi     # 0x114398
callq 0x181a0
testl %eax, %eax
je 0x5509f
movq %r14, %rdi
leaq 0xbf396(%rip), %rsi     # 0x1143a1
callq 0x181a0
testl %eax, %eax
je 0x550b2
movq %r14, %rdi
leaq 0xbf389(%rip), %rsi     # 0x1143ab
callq 0x181a0
movb $0x1, %dl
pushq $0x1
popq %rcx
testl %eax, %eax
jne 0x550c4
movq 0x10(%rsp), %rax
movb $0x1, 0x5b(%rax)
movq %rbp, 0x78(%rax)
xorl %edx, %edx
pushq $0x9
jmp 0x550c3
movq %r14, %rdi
callq 0xdfc3e
cmpb $0x0, (%rax)
jne 0x55070
cmpb $0x62, (%r14)
jne 0x55070
cmpb $0x6d, 0x1(%r14)
jne 0x55070
movb 0x2(%r14), %al
addb $-0x3a, %al
movb $0x1, %dl
pushq $0x6
popq %rcx
cmpb $-0xb, %al
ja 0x550c4
movb $0x1, %dl
pushq $0x2
jmp 0x550c3
movq 0x10(%rsp), %rax
movb $0x1, 0x5c(%rax)
movq %rbp, 0x80(%rax)
xorl %edx, %edx
pushq $0x5
jmp 0x550c3
movq 0x10(%rsp), %rax
movb $0x1, 0x58(%rax)
movq %rbp, 0x60(%rax)
xorl %edx, %edx
pushq $0x4
jmp 0x550c3
movq 0x10(%rsp), %rax
movb $0x1, 0x59(%rax)
movq %rbp, 0x68(%rax)
xorl %edx, %edx
pushq $0x7
jmp 0x550c3
movq 0x10(%rsp), %rax
movb $0x1, 0x5a(%rax)
movq %rbp, 0x70(%rax)
xorl %edx, %edx
pushq $0x8
popq %rcx
movq 0x10(%rsp), %r14
cmpl $0x2, 0xa4(%r14)
jne 0x550fc
movb 0xc(%r14), %al
testb %al, %al
setne %sil
orb %dl, %sil
je 0x550fc
xorl %r8d, %r8d
testb %al, %al
setne %r8b
movq %rbx, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %r15, %r9
callq 0x54029
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
incq %r12
jmp 0x54eb6
movq %rbx, %rdi
leaq 0xbf236(%rip), %rsi     # 0x11434f
movq 0x18(%rsp), %rdx
xorl %eax, %eax
callq 0xdf2a5
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe4b94
movl 0x90(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movq 0x28(%rsp), %r15
movq 0x30(%rsp), %rdx
jmp 0x54da2
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movl 0xa4(%r14), %eax
cmpl $0x1, %eax
jne 0x552e9
movq %rbx, %rdi
leaq 0xbf100(%rip), %rsi     # 0x11427e
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
cmpb $0x0, 0x58(%r14)
je 0x551af
movq 0x60(%r14), %rdx
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x4
popq %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x54029
movb 0x59(%r14), %al
testb %al, %al
je 0x55287
movl $0x1, 0x9c(%r14)
xorl %ecx, %ecx
cmpl $0x2, (%r14)
setae %cl
movl %ecx, 0x4(%r14)
testb %al, %al
je 0x551f9
cmpl $0x0, 0x9c(%r14)
je 0x551f9
movq 0x68(%r14), %rdx
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x7
popq %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x54029
cmpb $0x0, 0x5a(%r14)
je 0x55222
cmpl $0x0, 0xa0(%r14)
je 0x55222
movq 0x70(%r14), %rdx
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x8
popq %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x54029
cmpb $0x0, 0x5b(%r14)
je 0x5524b
cmpl $0x0, 0xa0(%r14)
je 0x5524b
movq 0x78(%r14), %rdx
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x9
popq %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x54029
movq 0xf0(%r14), %rax
testq %rax, %rax
je 0x552ad
movl 0xf8(%r14), %ecx
xorl %edx, %edx
cmpq %rdx, %rcx
je 0x552b5
movq 0x100(%r14), %rsi
movl (%rsi,%rdx,8), %edi
movl 0x4(%rsi,%rdx,8), %r8d
addq %rdi, %r8
cmpq 0x18(%rax), %r8
jle 0x55282
andq $0x0, (%rsi,%rdx,8)
incq %rdx
jmp 0x55260
cmpb $0x0, 0x5a(%r14)
je 0x551c6
cmpb $0x0, 0x5b(%r14)
je 0x551c6
movl $0x1, 0xa0(%r14)
jmp 0x551c6
andl $0x0, 0xf8(%r14)
cmpb $0x0, 0x5c(%r14)
je 0x552d7
movq 0x80(%r14), %rdx
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x5
popq %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x54029
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movl 0xa4(%r14), %eax
incl %eax
jmp 0x54d5d
cmpl $0x2, (%rbx)
jl 0x55ff6
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0x56575
jmp 0x55ff6
cmpq $0x100, %r15            # imm = 0x100
jne 0x5549b
leaq 0xbf478(%rip), %rsi     # 0x114797
xorl %r12d, %r12d
movq %rbx, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rax
movl %r14d, 0xf8(%rax)
leaq 0xbf480(%rip), %rsi     # 0x1147c1
movq %rbx, %rdi
movl %r14d, %edx
movq %rax, %r14
xorl %eax, %eax
callq 0xde896
movq %r13, 0xb0(%rsp)
movl 0x8c(%r14), %ebp
xorl %edx, %edx
cmpl $0x11, %ebp
setge %dl
leaq 0xbf462(%rip), %rsi     # 0x1147d1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
cmpl $0x10, %ebp
jle 0x553b1
movq 0x18(%rbx), %rdi
leaq 0xb0(%rsp), %r14
movq %r14, %rsi
callq 0xe40bf
movq %rax, %r12
leaq 0xbf454(%rip), %rsi     # 0x1147f0
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq (%r14), %r13
movq 0x10(%rsp), %r14
movl 0xf8(%r14), %r15d
leaq 0x2(,%r15,2), %r14
leaq 0xbf44a(%rip), %rsi     # 0x114811
movq %rbx, %rdi
movq %r13, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0xde896
leaq 0x2(%r13,%r15,2), %r13
subq %r13, 0x30(%rsp)
js 0x554ac
movq %r12, 0x18(%rsp)
movq 0x10(%rsp), %r15
movl 0xf8(%r15), %esi
pushq $0x8
popq %rdx
movq %rbx, %rdi
callq 0xdf66f
movq %rax, 0x100(%r15)
movl 0xf8(%r15), %ecx
xorl %r15d, %r15d
leaq 0xb0(%rsp), %r12
incl %ecx
cmpq %rcx, %r15
jae 0x55e2c
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xe3fc4
subl %r14d, %eax
movq 0x10(%rsp), %rcx
movl 0xf8(%rcx), %ecx
cmpq %rcx, %r15
jae 0x55456
movq 0x10(%rsp), %rdx
movq 0x100(%rdx), %rdx
movl %eax, (%rdx,%r15,8)
testq %r15, %r15
je 0x55471
movq 0x10(%rsp), %rdx
movq 0x100(%rdx), %rdx
subl -0x8(%rdx,%r15,8), %eax
movl %eax, -0x4(%rdx,%r15,8)
incq %r15
jmp 0x5541c
movl 0x8c(%r14), %ecx
leaq 0xbf4f2(%rip), %rsi     # 0x114976
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
jmp 0x55ff6
xorl %r15d, %r15d
jmp 0x545a5
leaq 0xbf2de(%rip), %rsi     # 0x114780
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movl 0x38(%rsp), %esi
jmp 0x55ffa
leaq 0xbed93(%rip), %rsi     # 0x11424f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movq %rbx, %rdi
movq %r15, %rsi
callq 0xded32
movl 0x120(%rsp), %esi
jmp 0x55ffa
addl $-0xc, %r13d
movq %r15, 0x30(%rsp)
movq 0x18(%r15), %rcx
cmpq %rcx, %r13
jg 0x56269
je 0x56272
leaq 0x15(%r13), %r15
cmpq %rcx, %r15
jg 0x5627b
movq %rbx, %rdi
leaq 0xbf030(%rip), %rsi     # 0x114540
movq %r13, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq %r13, 0x68(%rsp)
movq 0x10(%rbp), %r12
movq %rbx, %rdi
pushq $0x60
popq %rsi
callq 0xdecaf
movq %rax, %rbp
movq %r12, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe410e
movq %rax, (%rbp)
movq %rbx, %rdi
leaq 0xbeffc(%rip), %rsi     # 0x114553
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq (%rbp), %rax
cmpq $0x15, %rax
jl 0x55575
addq %r13, %rax
cmpq 0x18(%r12), %rax
jle 0x55591
xorl %r12d, %r12d
movq %rbx, %rdi
leaq 0xbefe0(%rip), %rsi     # 0x114562
xorl %eax, %eax
callq 0xde896
movb $0x1, %r15b
jmp 0x5585c
movq %r13, 0x18(%rsp)
movq %r12, %rdi
leaq 0x68(%rsp), %r13
movq %r13, %rsi
callq 0xe410e
movq %rax, 0x8(%rbp)
movq %rbx, %rdi
leaq 0xbefc6(%rip), %rsi     # 0x11457a
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r12, %rdi
movq %r13, %rsi
callq 0xe40bf
movl %eax, 0x10(%rbp)
movq %r14, %rdi
movl %eax, %esi
movq %r12, %r13
leaq 0xb0(%rsp), %r12
movq %r12, %rdx
callq 0x56350
movq %rbx, %rdi
leaq 0xbefb4(%rip), %rsi     # 0x1145a2
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
movq %r13, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe40bf
movl %eax, 0x14(%rbp)
movq %r14, %rdi
movl %eax, %esi
movq %r12, %rdx
callq 0x56350
movq %rbx, %rdi
leaq 0xbef91(%rip), %rsi     # 0x1145b0
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
movl 0x14(%rbp), %r12d
movq %r13, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe410e
movq %rax, 0x18(%rbp)
movq %rbx, %rdi
leaq 0xbef76(%rip), %rsi     # 0x1145be
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r13, 0x28(%rsp)
movq %r13, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe3f2a
movb %al, 0x20(%rbp)
movzbl %al, %edx
movq %rbx, %rdi
leaq 0xbefc0(%rip), %rsi     # 0x114634
xorl %eax, %eax
callq 0xde896
movq %r15, 0x28(%rbp)
movq 0x18(%rbp), %rcx
addq $-0x15, %rcx
movq %rcx, 0x30(%rbp)
movq %rbx, %rdi
leaq 0xbef37(%rip), %rsi     # 0x1145cc
movq %r15, %rdx
xorl %eax, %eax
callq 0xde896
movq (%rbp), %rcx
movq 0x28(%rbp), %rsi
movq 0x30(%rbp), %rax
addq %rsi, %rax
movq %rax, 0x38(%rbp)
subq 0x18(%rbp), %rcx
cmpl $0x0, 0x9c(%r14)
jne 0x556ca
cmpl $0x0, 0xa0(%r14)
je 0x556eb
movq 0x8(%rbp), %rax
cmpq %rcx, %rax
jle 0x556e1
movb $0x1, 0x58(%rbp)
movq %rcx, 0x40(%rbp)
movq %rax, 0x48(%rbp)
jmp 0x55706
movq %rax, 0x40(%rbp)
movq %rax, 0x48(%rbp)
jmp 0x55703
movq 0x8(%rbp), %rdi
movq %rcx, %rsi
callq 0xdfb45
movq %rax, 0x40(%rbp)
movq %rax, 0x48(%rbp)
movq 0x28(%rbp), %rsi
movq %rax, %rcx
movq 0x18(%rsp), %r13
cmpq %r13, %rsi
jl 0x55848
movq 0x38(%rbp), %rdx
cmpq %r13, %rdx
jl 0x55848
movq 0x30(%rbp), %rdi
testq %rdi, %rdi
js 0x55848
testq %rcx, %rcx
js 0x55848
addq %rsi, %rdi
movq (%rbp), %rsi
addq %r13, %rsi
cmpq %rsi, %rdi
jg 0x55848
leaq (%rdx,%rcx), %rdi
cmpq %rsi, %rdi
jg 0x55848
movl %r12d, 0x58(%rsp)
movq %rbx, %rdi
leaq 0xbee91(%rip), %rsi     # 0x1145f7
movq %rax, %r8
xorl %eax, %eax
callq 0xde896
movq 0xd8(%r14), %rdi
xorl %esi, %esi
callq 0xe5eb2
cmpb $0x0, 0x58(%rbp)
je 0x55a81
cmpl $0x0, 0x9c(%r14)
je 0x5593f
movq 0x38(%rbp), %rax
movq 0x40(%rbp), %r13
movq 0x10(%rsp), %rcx
movq 0xd8(%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq %rax, 0x38(%rsp)
testq %r13, %r13
movq 0x28(%rsp), %r12
jle 0x55a9a
cmpq $0x0, 0xf0(%rcx)
je 0x55a9a
addq %rax, %r13
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3f2a
leal -0x10(%rax), %ecx
cmpb $-0xf, %cl
jb 0x5582f
cmpq %r13, 0x38(%rsp)
jge 0x55a9a
movzbl %al, %r14d
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3f2a
shll $0x8, %r14d
movzbl %al, %r15d
leal (%r14,%r15), %edx
addl $0xffffff00, %edx       # imm = 0xFFFFFF00
shrl %edx
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x563af
movb $0x20, %al
testb $0x1, %r15b
je 0x5583c
movzbl %al, %esi
movq 0x20(%rsp), %rdi
callq 0xe5bc5
cmpq %r13, 0x38(%rsp)
jl 0x557d3
jmp 0x55a9a
xorl %r15d, %r15d
movq %rbx, %rdi
leaq 0xbed95(%rip), %rsi     # 0x1145ea
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xded32
testb %r15b, %r15b
jne 0x562ab
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
cmpl $-0x1, %r12d
je 0x56291
cmpl $0x10, 0x8c(%r14)
movl %r12d, %ecx
movq 0x60(%rsp), %rbp
jg 0x558eb
cmpl $0x14, %r12d
movq 0x30(%rsp), %r15
jbe 0x55f2a
movq 0x90(%r14), %rdi
leaq -0xc(%rdi), %rsi
movq %r13, %rax
cqto
idivq %rsi
movq %r13, %rax
subq %rdx, %rax
leaq (%rdi,%rax), %rdx
addq $-0xc, %rdx
addq %rcx, %r13
movq %r13, %rax
subq %rdx, %rax
jle 0x554e6
cqto
idivq %rsi
imulq $-0xc, %rax, %rax
addq %rax, %r13
addq $-0xc, %r13
jmp 0x554e6
cmpq $0x0, 0x90(%r14)
movq 0x30(%rsp), %r15
je 0x55f2a
movl %ecx, %eax
andl $0x3fff, %eax           # imm = 0x3FFF
cmpq $0xc, %rax
jb 0x55f2a
shrl $0xe, %ecx
cmpq (%rbp), %rcx
jge 0x55f2a
movq 0x8(%rbp), %rdx
shll $0x4, %ecx
movq (%rdx,%rcx), %rcx
addq %rcx, %rax
addq $-0xc, %rax
cmpq %r13, %rax
movq %rax, %r13
jg 0x554e6
jmp 0x5629a
movq 0x10(%rsp), %r14
cmpl $0x0, 0xa0(%r14)
je 0x55a81
movq 0x38(%rbp), %rax
movq 0x48(%rbp), %rsi
movq 0xd8(%r14), %r14
movq 0x40(%rbp), %r13
addq %rax, %r13
movq %rax, 0x38(%rsp)
movq 0x18(%r14), %rcx
addq %rcx, %rsi
movq %rsi, 0x20(%rsp)
movq 0x28(%rsp), %r12
cmpq 0x20(%rsp), %rcx
jge 0x55a9a
cmpq %r13, %rax
jge 0x55a9a
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3f2a
movzbl %al, %r15d
movl %r15d, %eax
andl $0xf, %eax
leaq 0xbf1a0(%rip), %rcx     # 0x114b50
movzbl (%rax,%rcx), %eax
cmpq $0x3, %rax
ja 0x55a61
leaq 0xbe5cf(%rip), %rcx     # 0x113f94
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
shrl %r15d
movq 0x10(%rsp), %rdi
movq %r14, %rsi
movl %r15d, %edx
jmp 0x55a5a
shrl $0x3, %r15d
movq 0x38(%rsp), %rsi
leaq (%rsi,%r15), %rax
incq %rax
cmpq %r13, %rax
jg 0x55a9a
incq %r15
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0xe45f4
addq %r15, 0x38(%rsp)
jmp 0x55a73
shrl $0x4, %r15d
incl %r15d
movq %r14, %rdi
pushq $0x20
popq %rsi
movq %r15, %rdx
callq 0xe5e40
jmp 0x55a73
cmpq %r13, 0x38(%rsp)
jge 0x55a9a
shll $0x6, %r15d
andl $0x3f00, %r15d          # imm = 0x3F00
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3f2a
movzbl %al, %eax
leal (%rax,%r15), %edx
addl $0x80, %edx
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x563af
jmp 0x55a73
shrl $0x4, %r15d
incl %r15d
movq %r14, %rdi
movq %r15, %rsi
callq 0xe5d20
movq 0x18(%r14), %rcx
movq 0x38(%rsp), %rax
jmp 0x5597e
movq 0x38(%rbp), %rsi
movq 0x40(%rbp), %rdx
movq 0xd8(%r14), %rcx
movq 0x28(%rsp), %rdi
callq 0xe45f4
movzbl 0x20(%rbp), %edx
cmpl $0x1, %edx
je 0x55aba
cmpl $0x2, %edx
je 0x55d46
cmpl $0x23, %edx
je 0x55aba
cmpl $0x20, %edx
jne 0x55db6
movq 0x10(%rsp), %r14
cmpl $0x0, 0x8(%r14)
je 0x55e1a
movq 0xd8(%r14), %r13
movq %rbx, %rdi
movq %r14, %rsi
callq 0x563da
movq 0x28(%rbp), %rax
movq %rax, 0x38(%rsp)
movq 0x60(%rsp), %rax
movq 0x10(%rax), %r12
movzbl 0x20(%rbp), %eax
cmpl $0x20, %eax
je 0x55b00
cmpl $0x1, %eax
jne 0x55c29
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee108
movq %rbx, %rdi
leaq 0xbeb72(%rip), %rsi     # 0x114689
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
cmpb $0x20, 0x20(%rbp)
jne 0x55b48
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee04e
movq %rbx, %rdi
leaq 0xbeb5b(%rip), %rsi     # 0x114699
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
addq $0x2, 0x38(%rsp)
movq %r12, %rdi
leaq 0x38(%rsp), %r14
movq %r14, %rsi
callq 0xe3fc4
movq %rbx, %rdi
leaq 0xcbf39(%rip), %rsi     # 0x121aa1
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq %r12, %rdi
movq %r14, %rsi
callq 0xe3fc4
movq %rax, %r15
movq %rbx, %rdi
leaq 0xbeb22(%rip), %rsi     # 0x1146ab
movl %r15d, %edx
xorl %eax, %eax
callq 0xde896
testb $0x1, %r15b
je 0x55ba6
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee108
testb $0x2, %r15b
je 0x55bb9
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testb $0x4, %r15b
je 0x55bcc
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testb $0x8, %r15b
je 0x55bdf
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testb $0x10, %r15b
je 0x55bf2
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testb $0x20, %r15b
je 0x55c05
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testb $0x40, %r15b
je 0x55c18
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0xee088
testw $0x300, %r15w           # imm = 0x300
jne 0x55c29
movq 0x38(%rsp), %rax
movq %rax, 0x50(%rbp)
andq $0x0, 0x38(%rsp)
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xe5eb2
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
xorl %r15d, %r15d
cmpq 0x18(%r13), %r14
jge 0x55ce2
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3f2a
testb %al, %al
movq 0x10(%rsp), %r14
je 0x55c93
movq 0xd0(%r14), %rdi
movzbl %al, %esi
callq 0xe5bc5
incl 0x28(%rsp)
pushq $0x1
popq %rax
movl %eax, %r12d
jmp 0x55cd5
xorl %r12d, %r12d
testl %r15d, %r15d
je 0x55cd5
movq 0xd0(%r14), %rdx
movq 0x18(%rdx), %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x564d1
movq 0xd0(%r14), %rdi
xorl %r12d, %r12d
xorl %esi, %esi
callq 0xe5eb2
movq %r14, %rdi
leaq 0xad4bb(%rip), %rsi     # 0x103187
callq 0x56564
incl 0x20(%rsp)
movq 0x38(%rsp), %r14
movl %r12d, %r15d
jmp 0x55c58
testl %r15d, %r15d
je 0x55d23
movq 0x10(%rsp), %r14
movq 0xd0(%r14), %rdx
movq 0x18(%rdx), %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x564d1
movq 0xd0(%r14), %rdi
xorl %esi, %esi
callq 0xe5eb2
movq %r14, %rdi
leaq 0xad46d(%rip), %rsi     # 0x103187
callq 0x56564
incl 0x20(%rsp)
movq %rbx, %rdi
leaq 0xbe917(%rip), %rsi     # 0x114644
movl 0x20(%rsp), %edx
movl 0x28(%rsp), %ecx
xorl %eax, %eax
callq 0xde9f1
movq 0x10(%rsp), %r14
jmp 0x55e1a
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8(%rax)
je 0x55deb
movq 0x10(%rsp), %r14
movq 0xd8(%r14), %r12
movq %rbx, %rdi
movq %r14, %rsi
callq 0x563da
movq 0xd0(%r14), %rdi
xorl %esi, %esi
callq 0xe5eb2
movq %r14, %rdi
leaq 0xbe934(%rip), %rsi     # 0x1146b8
callq 0x56564
xorl %r15d, %r15d
cmpq 0x18(%r12), %r15
jge 0x55dcc
movq %r12, %rdi
movq %r15, %rsi
callq 0xe3eb4
testb %al, %al
je 0x55dcc
movq 0xd0(%r14), %rdi
movzbl %al, %esi
callq 0xe5bc5
incq %r15
jmp 0x55d8c
xorl %r15d, %r15d
movq %rbx, %rdi
leaq 0xbe865(%rip), %rsi     # 0x114628
xorl %eax, %eax
callq 0xdf05a
jmp 0x55dee
testl %r15d, %r15d
je 0x55df5
movq 0x10(%rsp), %rsi
movq 0xd0(%rsi), %rdx
movq 0x18(%rdx), %rcx
movq %rbx, %rdi
callq 0x564d1
jmp 0x55e06
xorl %r15d, %r15d
movq 0x10(%rsp), %r14
jmp 0x55e1d
movq 0x10(%rsp), %rdi
leaq 0xbe8ba(%rip), %rsi     # 0x1146bb
callq 0x56564
movq 0x10(%rsp), %r14
movq %r14, %rdi
leaq 0xbe8b7(%rip), %rsi     # 0x1146cc
callq 0x56564
xorl %r15d, %r15d
movl 0x58(%rsp), %r12d
movq 0x18(%rsp), %r13
jmp 0x5585c
cmpl $0x2, (%rbx)
movq 0x10(%rsp), %r14
jl 0x55e41
movq %rbx, %rdi
movq %r14, %rsi
callq 0x56575
leaq 0xbe9e6(%rip), %rsi     # 0x11482e
movq %rbx, %rdi
movq %r13, %rdx
movq 0x30(%rsp), %r15
movq %r15, %rcx
xorl %eax, %eax
callq 0xde896
cmpl $0x11, %ebp
movq 0x18(%rsp), %r8
jl 0x55f36
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %r15, %rcx
callq 0x565c9
jmp 0x55f4c
movb $0x0, (%rdi)
leaq 0xb0(%rsp), %r12
pushq $0x40
popq %rdx
movq %r12, %rsi
xorl %ecx, %ecx
callq 0xe0644
leaq 0xbeaf6(%rip), %rsi     # 0x114996
movq %rbx, %rdi
movl %r14d, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe3fc4
movq %rax, %r14
leaq 0xbeadf(%rip), %rsi     # 0x1149a7
movq %rbx, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rax
cmpl $0x11, 0x8c(%rax)
jl 0x55f10
cmpl $0x4, %r14d
je 0x55f56
cmpl $0x8, %r14d
jne 0x55f73
movq 0x10(%rsp), %r14
movl $0x1, 0x98(%r14)
movq $0x800, 0x90(%r14) # imm = 0x800
jmp 0x55f8e
andl $0x0, 0x98(%rax)
movq $0x800, 0x90(%rax) # imm = 0x800
xorl %r15d, %r15d
movq %rax, %r14
jmp 0x55f8e
leaq 0xbe7d3(%rip), %rsi     # 0x114704
jmp 0x562a1
movq 0x18(%rbx), %rdi
movq 0xf0(%r14), %rcx
movq %r13, %rsi
movq %r15, %rdx
callq 0xe45f4
movb $0x1, 0x5d(%r14)
jmp 0x554ac
movq 0x10(%rsp), %r14
movl $0x1, 0x98(%r14)
movq $0x1000, 0x90(%r14) # imm = 0x1000
jmp 0x55f8e
movq 0x10(%rsp), %r14
andl $0x0, 0x98(%r14)
movq $0x1000, 0x90(%r14) # imm = 0x1000
xorl %r15d, %r15d
leaq 0xbea27(%rip), %rsi     # 0x1149bc
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x90(%r14), %rdx
leaq 0xbea21(%rip), %rsi     # 0x1149d1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
addq $0xc, %r13
cmpl $0x10, 0x8c(%r14)
jg 0x5601f
movq %rbx, %rdi
callq 0xeac74
movq %rax, 0x110(%r14)
addq $-0xc, %rbp
leaq 0xbe92d(%rip), %r8      # 0x11490f
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r9
callq 0x56681
movl 0x68(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x12ea6a(%rip), %r12    # 0x184a90
movq %r13, 0xb0(%rsp)
movq 0x30(%rsp), %rax
subq %r13, %rax
cmpq $0x4, %rax
jl 0x55ff6
movq 0x18(%rbx), %rdi
leaq 0xb0(%rsp), %r15
movq %r15, %rsi
callq 0xe3fc4
movq %rax, %r14
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe3fc4
movq %rax, 0x18(%rsp)
xorl %r15d, %r15d
cmpq $0x100, %r15            # imm = 0x100
je 0x56084
cmpl %r14d, (%r15,%r12)
jne 0x5607e
testb $0xf, 0x4(%r15,%r12)
je 0x5608d
addq $0x10, %r15
jmp 0x56067
leaq 0x12eb05(%rip), %r15    # 0x184b90
jmp 0x56090
addq %r12, %r15
movq 0x8(%r15), %rcx
movq 0xb0(%rsp), %r9
movq 0x18(%rsp), %rbp
movq %rbp, (%rsp)
movq %rbx, %rdi
leaq 0xbe938(%rip), %rsi     # 0x1149e7
movl %r14d, %edx
movq %rcx, 0x28(%rsp)
movq %r13, %r8
xorl %eax, %eax
callq 0xde896
movq 0xb0(%rsp), %rax
addq %rbp, %rax
cmpq 0x30(%rsp), %rax
jg 0x55ff6
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0xb0(%rsp), %r13
cmpl $0x2, %r14d
je 0x5611b
cmpl $0x1, %r14d
jne 0x56174
movq 0x10(%rsp), %r14
movq 0x110(%r14), %r9
testq %r9, %r9
jne 0x5613e
movq %rbx, %rdi
callq 0xeac74
movq %rax, %r9
movq %rax, 0x110(%r14)
jmp 0x5613e
movq 0x10(%rsp), %r14
movq 0x118(%r14), %r9
testq %r9, %r9
jne 0x5613e
movq %rbx, %rdi
callq 0xeac74
movq %rax, %r9
movq %rax, 0x118(%r14)
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq 0x18(%rsp), %r15
movq %r15, %rcx
movq 0x28(%rsp), %r8
callq 0x56681
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movq 0xb0(%rsp), %r13
addq %r15, %r13
jmp 0x56026
cmpl $0x3, %r14d
setne %al
cmpq $0x4, 0x18(%rsp)
setne %cl
orb %al, %cl
jne 0x561ae
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe409f
movq %rbx, %rdi
leaq 0xbe91d(%rip), %rsi     # 0x114abb
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rsp), %r15
jmp 0x56159
cmpl $0x5, %r14d
jne 0x5620d
movq 0x10(%rsp), %rax
movl $0x1, 0xac(%rax)
movq %rbx, %rdi
callq 0xdfd1a
movq %rax, %r14
movq 0x20(%rsp), %rax
movups (%rax), %xmm0
movups %xmm0, 0x18(%r14)
movq 0x18(%rbx), %rdi
movq %r13, %rsi
movq 0x18(%rsp), %r15
movq %r15, %rdx
leaq 0xbde78(%rip), %rcx     # 0x114069
movq %r14, %r8
pushq $0x1
popq %r9
callq 0xe4e0b
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdfd24
jmp 0x56159
testb $0x10, 0x4(%r15)
movq 0x10(%rsp), %rsi
jne 0x5624e
cmpl $0x2, (%rbx)
movq 0x18(%rsp), %r15
jl 0x56159
movq 0x18(%rbx), %rsi
movl $0x1, (%rsp)
movl $0x100, %r8d            # imm = 0x100
movq %rbx, %rdi
movq %r13, %rdx
movq %r15, %rcx
xorl %r9d, %r9d
callq 0xded3a
jmp 0x56159
movq %rbx, %rdi
movq %r13, %rdx
movq 0x18(%rsp), %r15
movq %r15, %rcx
movq 0x28(%rsp), %r8
xorl %r9d, %r9d
jmp 0x56154
leaq 0xbe22d(%rip), %rsi     # 0x11449d
jmp 0x562a1
leaq 0xbe253(%rip), %rsi     # 0x1144cc
jmp 0x562a1
leaq 0xbe278(%rip), %rsi     # 0x1144fa
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xdf05a
jmp 0x562ab
leaq 0xbe438(%rip), %rsi     # 0x1146d0
jmp 0x562a1
leaq 0xbe494(%rip), %rsi     # 0x114735
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
movl 0x90(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
jmp 0x54597