// File: /workspace/github_c_makefile_star2_O2/mmcco[P]sljit/sljit_src/sljitNativeX86_common.c
// Function: sljit_emit_op2
int sljit_emit_op2(struct sljit_compiler *compiler, int op,
	int dst, long dstw,
	int src1, long src1w,
	int src2, long src2w)
{
	CHECK_ERROR();
	CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
	ADJUST_LOCAL_OFFSET(dst, dstw);
	ADJUST_LOCAL_OFFSET(src1, src1w);
	ADJUST_LOCAL_OFFSET(src2, src2w);

	CHECK_EXTRA_REGS(dst, dstw, (void)0);
	CHECK_EXTRA_REGS(src1, src1w, (void)0);
	CHECK_EXTRA_REGS(src2, src2w, (void)0);
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
	compiler->mode32 = op & SLJIT_INT_OP;
#endif

	if (GET_OPCODE(op) >= SLJIT_MUL) {
		if (GET_FLAGS(op))
			compiler->flags_saved = 0;
		else if (op & SLJIT_KEEP_FLAGS && !compiler->flags_saved)
			FAIL_IF(emit_save_flags(compiler));
	}

	switch (GET_OPCODE(op)) {
	case SLJIT_ADD:
		if (!GET_FLAGS(op)) {
			if (emit_lea_binary(compiler, op & SLJIT_KEEP_FLAGS, dst, dstw, src1, src1w, src2, src2w) != SLJIT_ERR_UNSUPPORTED)
				return compiler->error;
		}
		else
			compiler->flags_saved = 0;
		if (op & SLJIT_KEEP_FLAGS && !compiler->flags_saved)
			FAIL_IF(emit_save_flags(compiler));
		return emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_ADDC:
		if (compiler->flags_saved) /* C flag must be restored. */
			FAIL_IF(emit_restore_flags(compiler, 1));
		else if (op & SLJIT_KEEP_FLAGS)
			FAIL_IF(emit_save_flags(compiler));
		if (GET_FLAGS(op))
			compiler->flags_saved = 0;
		return emit_cum_binary(compiler, ADC_r_rm, ADC_rm_r, ADC, ADC_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_SUB:
		if (!GET_FLAGS(op)) {
			if ((src2 & SLJIT_IMM) && emit_lea_binary(compiler, op & SLJIT_KEEP_FLAGS, dst, dstw, src1, src1w, SLJIT_IMM, -src2w) != SLJIT_ERR_UNSUPPORTED)
				return compiler->error;
		}
		else
			compiler->flags_saved = 0;
		if (op & SLJIT_KEEP_FLAGS && !compiler->flags_saved)
			FAIL_IF(emit_save_flags(compiler));
		if (dst == SLJIT_UNUSED)
			return emit_cmp_binary(compiler, src1, src1w, src2, src2w);
		return emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_SUBC:
		if (compiler->flags_saved) /* C flag must be restored. */
			FAIL_IF(emit_restore_flags(compiler, 1));
		else if (op & SLJIT_KEEP_FLAGS)
			FAIL_IF(emit_save_flags(compiler));
		if (GET_FLAGS(op))
			compiler->flags_saved = 0;
		return emit_non_cum_binary(compiler, SBB_r_rm, SBB_rm_r, SBB, SBB_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_MUL:
		return emit_mul(compiler, dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_AND:
		if (dst == SLJIT_UNUSED)
			return emit_test_binary(compiler, src1, src1w, src2, src2w);
		return emit_cum_binary(compiler, AND_r_rm, AND_rm_r, AND, AND_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_OR:
		return emit_cum_binary(compiler, OR_r_rm, OR_rm_r, OR, OR_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_XOR:
		return emit_cum_binary(compiler, XOR_r_rm, XOR_rm_r, XOR, XOR_EAX_i32,
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_SHL:
		return emit_shift_with_flags(compiler, SHL, GET_FLAGS(op),
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_LSHR:
		return emit_shift_with_flags(compiler, SHR, GET_FLAGS(op),
			dst, dstw, src1, src1w, src2, src2w);
	case SLJIT_ASHR:
		return emit_shift_with_flags(compiler, SAR, GET_FLAGS(op),
			dst, dstw, src1, src1w, src2, src2w);
	}

	return SLJIT_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl (%rdi), %r15d
testl %r15d, %r15d
je 0x161ab
movl %r15d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %r8d, %r11d
movq %rcx, %r12
movl %edx, %r10d
movl %esi, %ebp
movq %rdi, %rbx
movq 0x68(%rsp), %r15
movl 0x60(%rsp), %r14d
cmpl $0x0, 0x84(%rdi)
je 0x161e2
andl $0x0, 0x84(%rbx)
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
jmp 0x16b2b
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
leal -0x60(%r13), %eax
cmpl $0xb, %eax
jae 0x17497
testw $0x3e00, %bp            # imm = 0x3E00
sete %cl
btl $0xe, %ebp
setae %dl
orb %cl, %dl
je 0x16492
leaq 0xaf11(%rip), %rcx      # 0x21128
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
testw $0x3c00, %bp            # imm = 0x3C00
jne 0x16492
movl 0x48(%rbx), %ecx
cmpl $-0x1, %ecx
je 0x1676c
movl 0x4c(%rbx), %edx
cmpl $-0x1, %edx
je 0x1676c
testl %r11d, %r11d
setg %sil
cmpl %r11d, %ecx
setge %dil
testb %dil, %sil
movq %r9, (%rsp)
jne 0x16277
pushq $0xc
popq %rsi
subl %edx, %esi
cmpl %r11d, %esi
setge %dil
cmpl $0xd, %r11d
setge %r8b
orb %dil, %r8b
jne 0x1641d
testq %r9, %r9
jne 0x1676c
testl %r14d, %r14d
setg %sil
cmpl %r14d, %ecx
setge %dil
testb %dil, %sil
movq %r15, 0x8(%rsp)
jne 0x162b5
pushq $0xc
popq %rsi
subl %edx, %esi
cmpl %r14d, %esi
setge %dil
cmpl $0xd, %r14d
setge %r8b
orb %dil, %r8b
jne 0x16452
testq %r15, %r15
jne 0x16792
testl %r10d, %r10d
movq %r14, 0x18(%rsp)
je 0x162f4
setg %sil
cmpl %r10d, %ecx
setge %dil
testb %dil, %sil
jne 0x162f4
pushq $0xc
popq %rsi
subl %edx, %esi
cmpl %r10d, %esi
setge %dl
cmpl $0xd, %r10d
setge %dil
orb %dl, %dil
jne 0x164a3
testq %r12, %r12
jne 0x170dc
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x163eb
movq %r11, 0x10(%rsp)
btl $0x8, %ebp
leaq 0x80de(%rip), %rsi      # 0x1e3f8
leaq 0xb16b(%rip), %rdx      # 0x2148c
cmovaeq %rsi, %rdx
btl $0x9, %ebp
leaq 0xb1d1(%rip), %r8       # 0x21501
cmovaeq %rsi, %r8
btl $0xa, %ebp
leaq 0xb1c5(%rip), %r9       # 0x21504
cmovaeq %rsi, %r9
btl $0xb, %ebp
movq %r10, 0x20(%rsp)
leaq 0xb1b4(%rip), %r10      # 0x21507
cmovaeq %rsi, %r10
btl $0xc, %ebp
leaq 0xb1a8(%rip), %r11      # 0x2150a
cmovaeq %rsi, %r11
btl $0xd, %ebp
leaq 0xb19c(%rip), %r15      # 0x2150d
cmovaeq %rsi, %r15
btl $0xe, %ebp
movl %eax, %eax
leaq 0x138ce(%rip), %rcx     # 0x29c50
movq (%rcx,%rax,8), %rcx
leaq 0xb183(%rip), %r14      # 0x21510
cmovaeq %rsi, %r14
leaq 0xb155(%rip), %rsi      # 0x214ed
xorl %eax, %eax
pushq %r14
pushq %r15
pushq %r11
pushq %r10
callq 0x20c0
movq 0x40(%rsp), %rax
addq $0x20, %rsp
testb $0x40, %al
jne 0x163fa
testb %al, %al
js 0x164ce
testl %eax, %eax
movq (%rsp), %r14
movq 0x8(%rsp), %r15
je 0x16684
movq 0x78(%rbx), %rdi
cmpl %eax, 0x48(%rbx)
jge 0x166bb
pushq $0xc
popq %rdx
subl %eax, %edx
leaq 0xb17c(%rip), %rsi      # 0x21562
jmp 0x166c5
movq 0x18(%rsp), %r14
movq 0x8(%rsp), %r15
jmp 0x16b2b
movq 0x78(%rbx), %rdi
leaq 0xaffc(%rip), %rsi      # 0x21401
movq %r12, %rdx
xorl %eax, %eax
callq 0x20c0
movq (%rsp), %r14
movq 0x8(%rsp), %r15
jmp 0x167e2
cmpl $0x40, %r11d
je 0x16280
cmpl $0x8d, %r11d
jne 0x1652b
testq %r9, %r9
js 0x1676c
movslq 0x80(%rbx), %rsi
cmpq %r9, %rsi
jg 0x16280
jmp 0x1676c
cmpl $0x40, %r14d
je 0x162be
cmpl $0x8d, %r14d
jne 0x1659d
testq %r15, %r15
js 0x16792
movslq 0x80(%rbx), %rsi
cmpq %r15, %rsi
jg 0x162be
jmp 0x16792
testw $0x1e00, %bp            # imm = 0x1E00
je 0x1622b
leaq 0xae66(%rip), %rdi      # 0x212ff
movl $0x42d, %esi            # imm = 0x42D
jmp 0x174a3
cmpl $0x8d, %r10d
jne 0x16617
testq %r12, %r12
js 0x170dc
movslq 0x80(%rbx), %rcx
cmpq %r12, %rcx
jg 0x162fd
jmp 0x170dc
movl %eax, %r15d
movq 0x78(%rbx), %rsi
andl $0x3f, %r15d
movq (%rsp), %r14
je 0x1669f
pushq $0x5b
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %r15d
jle 0x166d1
pushq $0xc
popq %rdx
subl %r15d, %edx
leaq 0xb05c(%rip), %rsi      # 0x21562
jmp 0x166de
testw $0x2e00, %bp            # imm = 0x2E00
je 0x1622b
jmp 0x16492
testw $0xc00, %bp             # imm = 0xC00
je 0x1622b
jmp 0x16492
testb %r11b, %r11b
jns 0x1676c
movl %r11d, %edi
andl $0x3f, %edi
je 0x16757
cmpl %ecx, %edi
jle 0x16555
cmpl $0xc, %edi
ja 0x1676c
cmpl %esi, %edi
jle 0x1676c
testw $0x3f00, %r11w          # imm = 0x3F00
je 0x1675f
movl %r11d, %edi
shrl $0x8, %edi
andl $0x3f, %edi
setne %r8b
cmpl %ecx, %edi
setle %r9b
testb %r9b, %r8b
jne 0x1658a
cmpl $0xc, %edi
ja 0x1676c
cmpl %esi, %edi
jle 0x1676c
movq (%rsp), %r9
cmpq $0x4, %r9
jb 0x1675f
jmp 0x1676c
testb %r14b, %r14b
jns 0x16792
movl %r14d, %edi
andl $0x3f, %edi
je 0x1677d
cmpl %ecx, %edi
jle 0x165c7
cmpl $0xc, %edi
ja 0x16792
cmpl %esi, %edi
jle 0x16792
testw $0x3f00, %r14w          # imm = 0x3F00
je 0x16785
movq %r14, %r15
movl %r14d, %edi
shrl $0x8, %edi
andl $0x3f, %edi
setne %r8b
cmpl %ecx, %edi
setle %r9b
testb %r9b, %r8b
jne 0x165ff
cmpl $0xc, %edi
ja 0x16792
cmpl %esi, %edi
jle 0x16792
cmpq $0x4, 0x8(%rsp)
movq %r15, %r14
movq (%rsp), %r9
jb 0x16785
jmp 0x16792
testb %r10b, %r10b
jns 0x170dc
movl %r10d, %edx
andl $0x3f, %edx
je 0x170c7
cmpl %ecx, %edx
jle 0x16641
cmpl $0xc, %edx
ja 0x170dc
cmpl %esi, %edx
jle 0x170dc
testw $0x3f00, %r10w          # imm = 0x3F00
je 0x170cf
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
setne %dil
cmpl %ecx, %edx
setle %cl
testb %cl, %dil
jne 0x16675
cmpl $0xc, %edx
ja 0x170dc
cmpl %esi, %edx
jle 0x170dc
cmpq $0x4, %r12
jb 0x170cf
jmp 0x170dc
movq 0x78(%rbx), %rcx
leaq 0xad8f(%rip), %rdi      # 0x2141e
pushq $0x6
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
jmp 0x167e2
leaq 0xad71(%rip), %rax      # 0x21417
movq %rsi, %rdi
movq %rax, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x16413
leal -0x1(%rax), %edx
leaq 0xae98(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
jmp 0x167e2
decl %r15d
leaq 0xae82(%rip), %rsi      # 0x2155d
movl %r15d, %edx
xorl %eax, %eax
callq 0x20c0
movq 0x20(%rsp), %r14
testw $0x3f00, %r14w          # imm = 0x3F00
movq 0x8(%rsp), %r15
je 0x16733
movq 0x78(%rbx), %rcx
leaq 0xad04(%rip), %rdi      # 0x21406
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movl %r14d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %edx
jle 0x167a3
pushq $0xc
popq %rax
subl %edx, %eax
leaq 0xae33(%rip), %rsi      # 0x21562
movl %eax, %edx
jmp 0x167ac
testq %r12, %r12
movq (%rsp), %r14
je 0x167d6
movq 0x78(%rbx), %rdi
leaq 0xacc5(%rip), %rsi      # 0x21410
movq %r12, %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x167d6
testw $0x3f00, %r11w          # imm = 0x3F00
jne 0x1676c
cmpl $0x4000, %r11d          # imm = 0x4000
jb 0x16280
leaq 0xab8c(%rip), %rdi      # 0x212ff
movl $0x42e, %esi            # imm = 0x42E
jmp 0x174a3
testw $0x3f00, %r14w          # imm = 0x3F00
jne 0x16792
cmpl $0x4000, %r14d          # imm = 0x4000
jb 0x162be
leaq 0xab66(%rip), %rdi      # 0x212ff
movl $0x42f, %esi            # imm = 0x42F
jmp 0x174a3
decl %edx
leaq 0xadb1(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
movq (%rsp), %r14
testq %r12, %r12
je 0x167d6
movq 0x78(%rbx), %rdi
pushq $0x1
popq %rdx
movl %r12d, %ecx
shll %cl, %edx
leaq 0xac3b(%rip), %rsi      # 0x2140a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%rbx), %rsi
pushq $0x5d
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rcx
leaq 0xad26(%rip), %rdi      # 0x21513
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movq 0x10(%rsp), %rax
testb $0x40, %al
jne 0x16827
testb %al, %al
js 0x16841
testl %eax, %eax
je 0x1686f
movq 0x78(%rbx), %rdi
cmpl %eax, 0x48(%rbx)
jge 0x168ab
pushq $0xc
popq %rdx
subl %eax, %edx
leaq 0xad40(%rip), %rsi      # 0x21562
jmp 0x168b5
movq 0x78(%rbx), %rdi
leaq 0xabcf(%rip), %rsi      # 0x21401
movq %r14, %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x16978
movl %eax, %r15d
movq 0x78(%rbx), %rsi
andl $0x3f, %r15d
je 0x1688a
pushq $0x5b
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %r15d
jle 0x168c1
pushq $0xc
popq %rdx
subl %r15d, %edx
leaq 0xacf5(%rip), %rsi      # 0x21562
jmp 0x168ce
movq 0x78(%rbx), %rcx
leaq 0xaba4(%rip), %rdi      # 0x2141e
pushq $0x6
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
jmp 0x16978
leaq 0xab86(%rip), %rax      # 0x21417
movq %rsi, %rdi
movq %rax, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x20c0
movq 0x8(%rsp), %r15
jmp 0x16978
leal -0x1(%rax), %edx
leaq 0xaca8(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
jmp 0x16978
decl %r15d
leaq 0xac92(%rip), %rsi      # 0x2155d
movl %r15d, %edx
xorl %eax, %eax
callq 0x20c0
movq 0x10(%rsp), %r14
testw $0x3f00, %r14w          # imm = 0x3F00
movq 0x8(%rsp), %r15
je 0x1691f
movq 0x78(%rbx), %rcx
leaq 0xab14(%rip), %rdi      # 0x21406
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movl %r14d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %edx
jle 0x1693c
pushq $0xc
popq %rax
subl %edx, %eax
leaq 0xac47(%rip), %rsi      # 0x21562
movl %eax, %edx
jmp 0x16945
movq (%rsp), %rdx
testq %rdx, %rdx
je 0x1696c
movq 0x78(%rbx), %rdi
leaq 0xaadd(%rip), %rsi      # 0x21410
xorl %eax, %eax
callq 0x20c0
jmp 0x1696c
decl %edx
leaq 0xac18(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
movq (%rsp), %rcx
testq %rcx, %rcx
je 0x1696c
movq 0x78(%rbx), %rdi
pushq $0x1
popq %rdx
shll %cl, %edx
leaq 0xaaa5(%rip), %rsi      # 0x2140a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%rbx), %rsi
pushq $0x5d
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rcx
leaq 0xab90(%rip), %rdi      # 0x21513
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movq 0x18(%rsp), %rax
testb $0x40, %al
jne 0x169c0
testb %al, %al
js 0x169dd
testl %eax, %eax
je 0x16a0e
movq 0x78(%rbx), %rdi
cmpl %eax, 0x48(%rbx)
jge 0x16a40
movq %rax, %r14
pushq $0xc
popq %rdx
subl %eax, %edx
leaq 0xaba7(%rip), %rsi      # 0x21562
jmp 0x16a4d
movq %rax, %r14
movq 0x78(%rbx), %rdi
leaq 0xaa33(%rip), %rsi      # 0x21401
movq %r15, %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x16b11
movq %rax, %r14
movl %eax, %r15d
movq 0x78(%rbx), %rsi
andl $0x3f, %r15d
je 0x16a2c
pushq $0x5b
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %r15d
jle 0x16a59
pushq $0xc
popq %rdx
subl %r15d, %edx
leaq 0xab56(%rip), %rsi      # 0x21562
jmp 0x16a66
movq %rax, %r14
movq 0x78(%rbx), %rcx
leaq 0xaa02(%rip), %rdi      # 0x2141e
pushq $0x6
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
jmp 0x16b11
leaq 0xa9e4(%rip), %rax      # 0x21417
movq %rsi, %rdi
movq %rax, %rsi
movq 0x8(%rsp), %r15
jmp 0x169ce
movq %rax, %r14
leal -0x1(%rax), %edx
leaq 0xab10(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
jmp 0x16b11
decl %r15d
leaq 0xaafa(%rip), %rsi      # 0x2155d
movl %r15d, %edx
xorl %eax, %eax
callq 0x20c0
movq %r14, %r15
testw $0x3f00, %r15w          # imm = 0x3F00
je 0x16ab0
movq 0x78(%rbx), %rcx
leaq 0xa983(%rip), %rdi      # 0x21406
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movl %r15d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%rbx), %rdi
cmpl 0x48(%rbx), %edx
jle 0x16ad1
pushq $0xc
popq %rax
subl %edx, %eax
leaq 0xaab6(%rip), %rsi      # 0x21562
movl %eax, %edx
jmp 0x16ada
movq 0x8(%rsp), %r15
testq %r15, %r15
je 0x16b05
movq 0x78(%rbx), %rdi
leaq 0xa94b(%rip), %rsi      # 0x21410
movq %r15, %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x16b05
decl %edx
leaq 0xaa83(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
movq 0x8(%rsp), %r15
testq %r15, %r15
je 0x16b05
movq 0x78(%rbx), %rdi
movl %r15d, %ecx
pushq $0x1
popq %rdx
shll %cl, %edx
leaq 0xa90c(%rip), %rsi      # 0x2140a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%rbx), %rsi
pushq $0x5d
popq %rdi
callq 0x20a0
movq 0x78(%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x20a0
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r11
movq (%rsp), %r9
leaq 0x8(%r12), %r8
movl $0x8d, %eax
cmpl %eax, %r10d
cmovneq %r12, %r8
leaq 0x8(%r9), %r12
cmpl %eax, %r11d
cmovneq %r9, %r12
leaq 0x8(%r15), %r9
cmpl %eax, %r14d
cmovneq %r15, %r9
movl %ebp, %eax
andl $0x100, %eax            # imm = 0x100
movl %eax, 0x70(%rbx)
cmpl $0x64, %r13d
jl 0x16b7f
testw $0x3e00, %bp            # imm = 0x3E00
je 0x16b6f
andl $0x0, 0x74(%rbx)
jmp 0x16b7f
btl $0xe, %ebp
jae 0x16b7f
cmpl $0x0, 0x74(%rbx)
je 0x16d7a
xorl %r15d, %r15d
addl $-0x60, %r13d
cmpl $0xa, %r13d
ja 0x16199
leaq 0xa5bd(%rip), %rax      # 0x21154
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r9, %r15
movq %r14, %r13
testw $0x3e00, %bp            # imm = 0x3E00
movq %r11, 0x10(%rsp)
movq %r8, (%rsp)
je 0x16ea7
movq %r10, %r14
andl $0x0, 0x74(%rbx)
andl $0x4000, %ebp           # imm = 0x4000
jmp 0x16ed5
pushq $0xe
popq %rax
cmpl $0x40, %r10d
movl %eax, %ebp
cmovll %r10d, %ebp
movl %ebp, %ecx
xorl %r11d, %ecx
movl %r14d, %edx
andl $0x40, %edx
orl %ecx, %edx
movq %r8, (%rsp)
jne 0x16d32
pushq $0x2
popq %rsi
movq %rbx, %rdi
movl %r11d, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
movq %r10, %r14
movq %r11, %r12
callq 0x14061
testq %rax, %rax
je 0x1743f
movq %r12, %rcx
movq %r14, %rsi
movw $0xaf0f, (%rax)         # imm = 0xAF0F
jmp 0x17419
andl $0x3e00, %ebp           # imm = 0x3E00
subq $0x8, %rsp
pushq $0x28
jmp 0x16d0f
testw $0x3e00, %bp            # imm = 0x3E00
je 0x16db9
andl $0x0, 0x74(%rbx)
jmp 0x16e16
movq %r9, %r13
movq %r8, (%rsp)
movq %r11, 0x10(%rsp)
movq %r10, %r15
cmpl $0x0, 0x74(%rbx)
je 0x16e57
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x17b48
jmp 0x16e65
subq $0x8, %rsp
pushq $0x33
popq %rsi
pushq $0x31
popq %rdx
pushq $0x30
popq %rcx
movq %r8, %r15
pushq $0x35
jmp 0x16cdc
movq %r9, %r13
movq %r8, (%rsp)
movq %r11, 0x10(%rsp)
movq %r10, %r15
cmpl $0x0, 0x74(%rbx)
je 0x16eff
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x17b48
jmp 0x16f0d
testl %r10d, %r10d
je 0x16f53
subq $0x8, %rsp
pushq $0x23
popq %rsi
pushq $0x21
popq %rdx
pushq $0x20
popq %rcx
movq %r8, %r15
pushq $0x25
jmp 0x16cdc
subq $0x8, %rsp
pushq $0xb
popq %rsi
pushq $0x9
popq %rdx
pushq $0x8
popq %rcx
movq %r8, %r15
pushq $0xd
popq %r8
movq %rbx, %rdi
movq %r9, %rbx
movl %r10d, %r9d
pushq %rbx
pushq %r14
pushq %r12
pushq %r11
pushq %r15
jmp 0x16f45
andl $0x3e00, %ebp           # imm = 0x3E00
subq $0x8, %rsp
pushq $0x38
jmp 0x16d0f
andl $0x3e00, %ebp           # imm = 0x3E00
subq $0x8, %rsp
pushq $0x20
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
movl %r10d, %ecx
movq %r9, %r10
movl %r11d, %r9d
pushq %r10
pushq %r14
pushq %r12
callq 0x18181
addq $0x48, %rsp
jmp 0x161a0
movl %ebp, %ecx
xorl %r14d, %ecx
movl %r11d, %edx
andl $0x40, %edx
orl %ecx, %edx
jne 0x16fd3
pushq $0x2
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
xorl %ecx, %ecx
movl %r11d, %r8d
movq %r14, %r13
movq %r12, %r9
movq %r10, %r14
callq 0x14061
testq %rax, %rax
je 0x1743f
movq %r13, %rcx
movq %r14, %rsi
movw $0xaf0f, (%rax)         # imm = 0xAF0F
jmp 0x17419
movq %rbx, %rdi
movq %r10, 0x20(%rsp)
movq %r11, %r15
movq %r14, 0x18(%rsp)
movq %r8, %r14
movq %r9, 0x8(%rsp)
callq 0x1614e
movq 0x8(%rsp), %r9
movq %r14, %r8
movq 0x18(%rsp), %r14
movq %r15, %r11
movq 0x20(%rsp), %r10
testl %eax, %eax
jne 0x1743f
jmp 0x16b7f
testb $0x40, %r14b
je 0x16e16
movl %ebp, %esi
andl $0x4000, %esi           # imm = 0x4000
movq %r9, %rax
negq %rax
movq %rbx, %rdi
movl %r10d, %edx
movq %r8, %rcx
movq %r8, (%rsp)
movl %r11d, %r8d
movq %r14, 0x18(%rsp)
movq %r9, %r14
movq %r12, %r9
pushq %rax
pushq $0x40
movq %r10, %r15
movq %r11, %r13
callq 0x174af
movq %r14, %r9
movq 0x10(%rsp), %r8
movq 0x28(%rsp), %r14
movq %r13, %r11
movq %r15, %r10
addq $0x10, %rsp
cmpl $0x4, %eax
jne 0x1743f
btl $0xe, %ebp
jae 0x16e26
cmpl $0x0, 0x74(%rbx)
je 0x17090
testl %r10d, %r10d
je 0x16fb1
subq $0x8, %rsp
pushq $0x2b
popq %rsi
pushq $0x29
popq %rdx
pushq $0x28
popq %rcx
movq %r8, %r15
pushq $0x2d
popq %r8
movq %rbx, %rdi
movq %r9, %rbx
movl %r10d, %r9d
pushq %rbx
pushq %r14
pushq %r12
pushq %r11
pushq %r15
jmp 0x16e9d
btl $0xe, %ebp
jae 0x16e6d
movq %rbx, %rdi
callq 0x1614e
testl %eax, %eax
jne 0x1743f
testw $0x3e00, %bp            # imm = 0x3E00
je 0x16e78
andl $0x0, 0x74(%rbx)
subq $0x8, %rsp
pushq $0x1b
popq %rsi
pushq $0x19
popq %rdx
pushq $0x18
popq %rcx
pushq $0x1d
popq %r8
movq %rbx, %rdi
movl %r15d, %r9d
pushq %r13
pushq %r14
pushq %r12
pushq 0x30(%rsp)
pushq 0x28(%rsp)
callq 0x17d83
jmp 0x16f4a
andl $0x4000, %ebp           # imm = 0x4000
movq %rbx, %rdi
movl %ebp, %esi
movq %r10, %r14
movl %r10d, %edx
movq %r8, %rcx
movl %r11d, %r8d
movq %r12, %r9
pushq %r15
pushq %r13
callq 0x174af
popq %rcx
popq %rdx
cmpl $0x4, %eax
jne 0x1743f
testl %ebp, %ebp
je 0x16ee3
cmpl $0x0, 0x74(%rbx)
je 0x1703e
subq $0x8, %rsp
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
pushq $0x5
popq %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl %r14d, %r9d
pushq %r15
pushq %r13
jmp 0x16f3b
btl $0xe, %ebp
jae 0x16f15
movq %rbx, %rdi
callq 0x1614e
testl %eax, %eax
jne 0x1743f
testw $0x3e00, %bp            # imm = 0x3E00
je 0x16f20
andl $0x0, 0x74(%rbx)
subq $0x8, %rsp
pushq $0x13
popq %rsi
pushq $0x11
popq %rdx
pushq $0x10
popq %rcx
pushq $0x15
popq %r8
movq %rbx, %rdi
movl %r15d, %r9d
pushq %r13
pushq %r14
pushq %r12
pushq 0x30(%rsp)
pushq 0x28(%rsp)
callq 0x17651
addq $0x58, %rsp
jmp 0x161a0
testb $0x40, %r14b
je 0x17053
cmpl $0x1, %r11d
jne 0x17053
leaq -0x80(%r9), %rax
cmpq $-0x101, %rax           # imm = 0xFEFF
ja 0x17053
movl 0x70(%rbx), %eax
testl %eax, %eax
sete %cl
movslq %r9d, %rdx
cmpq %r9, %rdx
setne %dl
testb %cl, %dl
jne 0x17171
xorl %r15d, %r15d
testl %eax, %eax
pushq $0x48
popq %rsi
cmovnel %r15d, %esi
movq %rbx, %rdi
movl $0xa9, %edx
movq %r9, %rcx
callq 0x1cdbb
jmp 0x17437
movq %rbx, %rdi
movl %r11d, %esi
movq %r12, %rdx
movl %r14d, %ecx
movq %r9, %r8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17b82
testb $0x40, %r11b
jne 0x170ed
testb $0x40, %r14b
jne 0x171cd
testb %r14b, %r14b
movq %r9, 0x8(%rsp)
movq %r10, %r13
jns 0x1700d
movl %r14d, %ecx
andl $0x3f, %ecx
cmpl %ebp, %ecx
je 0x1700b
movl %r14d, %ecx
shrl $0x8, %ecx
andl $0x3f, %ecx
cmpl %ebp, %ecx
jne 0x1700d
movl %eax, %ebp
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl %r11d, %ecx
movq %r12, %r8
callq 0x14d14
testl %eax, %eax
movq 0x8(%rsp), %r9
jne 0x1743f
pushq $0x2
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
jmp 0x17405
movq %rbx, %rdi
callq 0x1614e
testl %eax, %eax
jne 0x1743f
jmp 0x16ee3
cmpl $0x3f, %r11d
jg 0x171a3
testb $0x40, %r14b
je 0x17228
movslq %r9d, %rax
cmpq %r9, %rax
je 0x17079
cmpl $0x0, 0x70(%rbx)
je 0x17171
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0x40
popq %rdx
movq %rbx, %rdi
movq %r9, %rcx
movl %r11d, %r8d
jmp 0x17375
movq %rbx, %rdi
movq %r10, %r15
movq %r11, %r13
movq %r14, %rbp
movq %r8, %r14
movq %r9, 0x8(%rsp)
callq 0x1614e
movq 0x8(%rsp), %r9
movq %r14, %r8
movq %rbp, %r14
movq %r13, %r11
movq %r15, %r10
testl %eax, %eax
jne 0x1743f
jmp 0x16e26
testw $0x3f00, %r10w          # imm = 0x3F00
jne 0x170dc
cmpl $0x4000, %r10d          # imm = 0x4000
jb 0x162fd
leaq 0xa21c(%rip), %rdi      # 0x212ff
movl $0x430, %esi            # imm = 0x430
jmp 0x174a3
testb $0x40, %r14b
je 0x1711c
pushq $0x40
popq %rcx
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movq %r9, %r8
movq %r10, %r14
callq 0x14d14
movq %r14, %r10
movl %ebp, %r14d
movl $0x0, %r9d
testl %eax, %eax
jne 0x1743f
movsbq %r12b, %rax
cmpq %r12, %rax
jne 0x172a1
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
movq %r10, %r14
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $0x6b, (%rax)
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x1354f
testq %rax, %rax
je 0x1743f
movq %r14, %rsi
movb $0x1, (%rax)
incq 0x60(%rbx)
movb %r12b, 0x1(%rax)
jmp 0x17417
movq %r11, %r14
pushq $0xf
popq %rsi
movq %rbx, %rdi
movq %r9, %rdx
callq 0x14aa1
testl %eax, %eax
jne 0x1743f
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0xf
popq %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
movl %r14d, %r8d
xorl %r9d, %r9d
jmp 0x17239
cmpl $0x3f, %r14d
jg 0x1724f
testb $0x40, %r11b
jne 0x17351
xorl %r15d, %r15d
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %r14d, %edx
xorl %ecx, %ecx
movl %r11d, %r8d
movq %r12, %r9
jmp 0x17239
movsbq %r9b, %rax
cmpq %r9, %rax
jne 0x172f6
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r11d, %r8d
movq %r9, %r13
movq %r12, %r9
movq %r10, %r14
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $0x6b, (%rax)
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x1354f
testq %rax, %rax
je 0x1743f
movq %r14, %rsi
movb $0x1, (%rax)
incq 0x60(%rbx)
movb %r13b, 0x1(%rax)
jmp 0x17417
xorl %r15d, %r15d
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %r11d, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $-0x7b, (%rax)
jmp 0x16199
movq %r9, %r13
pushq $0xe
popq %rsi
movq %rbx, %rdi
xorl %edx, %edx
movl %r11d, %ecx
movq %r12, %r8
callq 0x14d14
testl %eax, %eax
jne 0x1743f
testb $0x40, %r14b
je 0x17447
movslq %r13d, %rax
cmpq %r13, %rax
je 0x17289
cmpl $0x0, 0x70(%rbx)
je 0x1746e
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0x40
popq %rdx
pushq $0xe
popq %r8
movq %rbx, %rdi
movq %r13, %rcx
jmp 0x17375
movq %r10, %r13
movslq %r12d, %rax
cmpq %r12, %rax
jne 0x1738e
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $0x69, (%rax)
pushq $0x5
popq %rsi
movq %rbx, %rdi
callq 0x1354f
testq %rax, %rax
je 0x1743f
movq %r13, %rsi
movb $0x4, (%rax)
addq $0x4, 0x60(%rbx)
movl %r12d, 0x1(%rax)
jmp 0x17417
movq %r10, %r13
movslq %r9d, %rax
cmpq %r9, %rax
jne 0x173c0
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r11d, %r8d
movq %r9, %r14
movq %r12, %r9
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $0x69, (%rax)
pushq $0x5
popq %rsi
movq %rbx, %rdi
callq 0x1354f
testq %rax, %rax
je 0x1743f
movq %r13, %rsi
movb $0x4, (%rax)
addq $0x4, 0x60(%rbx)
movl %r14d, 0x1(%rax)
jmp 0x17417
movslq %r12d, %rax
cmpq %r12, %rax
je 0x17363
cmpl $0x0, 0x70(%rbx)
je 0x17460
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0x40
popq %rdx
movq %rbx, %rdi
movq %r12, %rcx
movl %r14d, %r8d
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x1743f
movb $-0x9, (%rax)
jmp 0x16199
pushq $0xf
popq %rsi
pushq $0x40
popq %rcx
movq %rbx, %rdi
xorl %edx, %edx
movq %r12, %r8
movq %r9, %r12
callq 0x14d14
testl %eax, %eax
jne 0x1743f
cmpl %r14d, %ebp
je 0x173f4
movq %r12, %r8
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl %r14d, %ecx
jmp 0x173eb
pushq $0xf
popq %rsi
pushq $0x40
popq %rcx
movq %rbx, %rdi
xorl %edx, %edx
movq %r9, %r8
movq %r11, %r14
callq 0x14d14
testl %eax, %eax
jne 0x1743f
movq %r14, %rcx
cmpl %ecx, %ebp
je 0x173f4
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movq %r12, %r8
callq 0x14d14
testl %eax, %eax
jne 0x1743f
pushq $0x2
popq %rsi
pushq $0xf
popq %r8
movq %rbx, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x1743f
movq %r13, %rsi
movw $0xaf0f, (%rax)         # imm = 0xAF0F
movl %ebp, %ecx
cmpl $0xe, %ecx
jne 0x16199
xorl %r15d, %r15d
pushq $0xe
popq %rcx
movq %rbx, %rdi
movq (%rsp), %rdx
xorl %r8d, %r8d
callq 0x14d14
testl %eax, %eax
je 0x16199
movl (%rbx), %r15d
jmp 0x16199
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0xe
popq %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
movl %r14d, %r8d
movq %r13, %r9
jmp 0x17239
pushq $0xf
popq %rsi
movq %rbx, %rdi
movq %r12, %rdx
jmp 0x1717d
pushq $0xf
popq %rsi
movq %rbx, %rdi
movq %r13, %rdx
callq 0x14aa1
testl %eax, %eax
jne 0x1743f
xorl %r15d, %r15d
pushq $0x1
popq %rsi
pushq $0xf
popq %rdx
pushq $0xe
popq %r8
movq %rbx, %rdi
xorl %ecx, %ecx
jmp 0x1719b
leaq 0x9e61(%rip), %rdi      # 0x212ff
movl $0x42c, %esi            # imm = 0x42C
xorl %eax, %eax
callq 0x2080
callq 0x2040