// File: /workspace/github_c_makefile_star2_O2/ArtifexSoftware[P]mujs/./jscompile.c
// Function: jsC_cexp
static void cexp(JF, js_Ast *exp)
{
	int then, end;
	int n;

	switch (exp->type) {
	case EXP_STRING:
		emitline(J, F, exp);
		emitstring(J, F, OP_STRING, exp->string);
		break;
	case EXP_NUMBER:
		emitline(J, F, exp);
		emitnumber(J, F, exp->number);
		break;
	case EXP_ELISION:
		break;
	case EXP_NULL:
		emitline(J, F, exp);
		emit(J, F, OP_NULL);
		break;
	case EXP_TRUE:
		emitline(J, F, exp);
		emit(J, F, OP_TRUE);
		break;
	case EXP_FALSE:
		emitline(J, F, exp);
		emit(J, F, OP_FALSE);
		break;
	case EXP_THIS:
		emitline(J, F, exp);
		emit(J, F, OP_THIS);
		break;

	case EXP_REGEXP:
		emitline(J, F, exp);
		emitstring(J, F, OP_NEWREGEXP, exp->string);
		emitarg(J, F, exp->number);
		break;

	case EXP_OBJECT:
		emitline(J, F, exp);
		emit(J, F, OP_NEWOBJECT);
		cobject(J, F, exp->a);
		break;

	case EXP_ARRAY:
		emitline(J, F, exp);
		emit(J, F, OP_NEWARRAY);
		carray(J, F, exp->a);
		break;

	case EXP_FUN:
		emitline(J, F, exp);
		emitfunction(J, F, newfun(J, exp->line, exp->a, exp->b, exp->c, 0, F->strict, 1));
		break;

	case EXP_IDENTIFIER:
		emitline(J, F, exp);
		emitlocal(J, F, OP_GETLOCAL, OP_GETVAR, exp);
		break;

	case EXP_INDEX:
		cexp(J, F, exp->a);
		cexp(J, F, exp->b);
		emitline(J, F, exp);
		emit(J, F, OP_GETPROP);
		break;

	case EXP_MEMBER:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		emitstring(J, F, OP_GETPROP_S, exp->b->string);
		break;

	case EXP_CALL:
		ccall(J, F, exp->a, exp->b);
		break;

	case EXP_NEW:
		cexp(J, F, exp->a);
		n = cargs(J, F, exp->b);
		emitline(J, F, exp);
		emit(J, F, OP_NEW);
		emitarg(J, F, n);
		break;

	case EXP_DELETE:
		cdelete(J, F, exp);
		break;

	case EXP_PREINC:
		cassignop1(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_INC);
		cassignop2(J, F, exp->a, 0);
		break;

	case EXP_PREDEC:
		cassignop1(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_DEC);
		cassignop2(J, F, exp->a, 0);
		break;

	case EXP_POSTINC:
		cassignop1(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_POSTINC);
		cassignop2(J, F, exp->a, 1);
		emit(J, F, OP_POP);
		break;

	case EXP_POSTDEC:
		cassignop1(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_POSTDEC);
		cassignop2(J, F, exp->a, 1);
		emit(J, F, OP_POP);
		break;

	case EXP_VOID:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_POP);
		emit(J, F, OP_UNDEF);
		break;

	case EXP_TYPEOF: ctypeof(J, F, exp); break;
	case EXP_POS: cunary(J, F, exp, OP_POS); break;
	case EXP_NEG: cunary(J, F, exp, OP_NEG); break;
	case EXP_BITNOT: cunary(J, F, exp, OP_BITNOT); break;
	case EXP_LOGNOT: cunary(J, F, exp, OP_LOGNOT); break;

	case EXP_BITOR: cbinary(J, F, exp, OP_BITOR); break;
	case EXP_BITXOR: cbinary(J, F, exp, OP_BITXOR); break;
	case EXP_BITAND: cbinary(J, F, exp, OP_BITAND); break;
	case EXP_EQ: cbinary(J, F, exp, OP_EQ); break;
	case EXP_NE: cbinary(J, F, exp, OP_NE); break;
	case EXP_STRICTEQ: cbinary(J, F, exp, OP_STRICTEQ); break;
	case EXP_STRICTNE: cbinary(J, F, exp, OP_STRICTNE); break;
	case EXP_LT: cbinary(J, F, exp, OP_LT); break;
	case EXP_GT: cbinary(J, F, exp, OP_GT); break;
	case EXP_LE: cbinary(J, F, exp, OP_LE); break;
	case EXP_GE: cbinary(J, F, exp, OP_GE); break;
	case EXP_INSTANCEOF: cbinary(J, F, exp, OP_INSTANCEOF); break;
	case EXP_IN: cbinary(J, F, exp, OP_IN); break;
	case EXP_SHL: cbinary(J, F, exp, OP_SHL); break;
	case EXP_SHR: cbinary(J, F, exp, OP_SHR); break;
	case EXP_USHR: cbinary(J, F, exp, OP_USHR); break;
	case EXP_ADD: cbinary(J, F, exp, OP_ADD); break;
	case EXP_SUB: cbinary(J, F, exp, OP_SUB); break;
	case EXP_MUL: cbinary(J, F, exp, OP_MUL); break;
	case EXP_DIV: cbinary(J, F, exp, OP_DIV); break;
	case EXP_MOD: cbinary(J, F, exp, OP_MOD); break;

	case EXP_ASS: cassign(J, F, exp); break;
	case EXP_ASS_MUL: cassignop(J, F, exp, OP_MUL); break;
	case EXP_ASS_DIV: cassignop(J, F, exp, OP_DIV); break;
	case EXP_ASS_MOD: cassignop(J, F, exp, OP_MOD); break;
	case EXP_ASS_ADD: cassignop(J, F, exp, OP_ADD); break;
	case EXP_ASS_SUB: cassignop(J, F, exp, OP_SUB); break;
	case EXP_ASS_SHL: cassignop(J, F, exp, OP_SHL); break;
	case EXP_ASS_SHR: cassignop(J, F, exp, OP_SHR); break;
	case EXP_ASS_USHR: cassignop(J, F, exp, OP_USHR); break;
	case EXP_ASS_BITAND: cassignop(J, F, exp, OP_BITAND); break;
	case EXP_ASS_BITXOR: cassignop(J, F, exp, OP_BITXOR); break;
	case EXP_ASS_BITOR: cassignop(J, F, exp, OP_BITOR); break;

	case EXP_COMMA:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_POP);
		cexp(J, F, exp->b);
		break;

	case EXP_LOGOR:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_DUP);
		end = emitjump(J, F, OP_JTRUE);
		emit(J, F, OP_POP);
		cexp(J, F, exp->b);
		label(J, F, end);
		break;

	case EXP_LOGAND:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		emit(J, F, OP_DUP);
		end = emitjump(J, F, OP_JFALSE);
		emit(J, F, OP_POP);
		cexp(J, F, exp->b);
		label(J, F, end);
		break;

	case EXP_COND:
		cexp(J, F, exp->a);
		emitline(J, F, exp);
		then = emitjump(J, F, OP_JTRUE);
		cexp(J, F, exp->c);
		end = emitjump(J, F, OP_JUMP);
		label(J, F, then);
		cexp(J, F, exp->b);
		label(J, F, end);
		break;

	default:
		jsC_error(J, exp, "unknown expression type");
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r13
leaq 0x9dcf(%rip), %r14      # 0x20a08
movl (%r15), %eax
addl $-0x3, %eax
cmpl $0x42, %eax
ja 0x17684
movslq (%r14,%rax,4), %rax
addq %r14, %rax
jmpq *%rax
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq %r13, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x15d57
movq 0x18(%r15), %r15
jmp 0x16c39
pushq $0x45
jmp 0x17441
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
pushq $0x53
jmp 0x16cd6
pushq $0x3f
jmp 0x17422
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
pushq $0x52
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x176c5
movl %eax, %ebp
movq %r13, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x15d57
movq 0x18(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %edx
jmp 0x173a3
pushq $0x47
jmp 0x17441
pushq $0x43
jmp 0x17422
pushq $0x34
jmp 0x17441
pushq $0x1a
jmp 0x17422
pushq $0x37
jmp 0x17422
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq %r13, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x15d57
pushq $0xd
jmp 0x17653
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17ca8
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x30
jmp 0x173e1
pushq $0x3c
jmp 0x17422
pushq $0x35
jmp 0x17441
pushq $0x40
jmp 0x17422
pushq $0x2d
jmp 0x1707f
pushq $0x34
jmp 0x17422
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movq 0x18(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x20
jmp 0x17653
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17ca8
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x33
jmp 0x172d4
movq 0x10(%r15), %r12
movq 0x18(%r15), %r15
movl (%r12), %eax
cmpl $0x3, %eax
je 0x175a4
cmpl $0x13, %eax
je 0x1756b
cmpl $0x12, %eax
jne 0x175b9
movq 0x10(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x18(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
pushq $0x20
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
jmp 0x175a0
pushq $0x37
jmp 0x17441
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0xa
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
addq $0x10, %r15
pushq $0x1b
popq %rbp
pushq $0x1c
popq %r14
movq (%r15), %r15
testq %r15, %r15
je 0x17281
movq 0x10(%r15), %rdx
movl 0x4(%rdx), %eax
movl %eax, 0x5c(%rbx)
cmpl $0x7, (%rdx)
movl %ebp, %eax
je 0x16e9d
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl %r14d, %eax
movq %r13, %rdi
movq %rbx, %rsi
movl %eax, %edx
callq 0x15d57
addq $0x18, %r15
jmp 0x16e72
pushq $0x38
jmp 0x17422
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movq 0x18(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17c6d
movl %eax, %ebp
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x2a
jmp 0x175e7
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x11
jmp 0x17653
pushq $0x2c
jmp 0x1707f
pushq $0x46
jmp 0x17422
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0xe
jmp 0x17653
movq 0x10(%r15), %r12
movl (%r12), %eax
cmpl $0x13, %eax
je 0x174a8
cmpl $0x12, %eax
je 0x1747a
cmpl $0x3, %eax
jne 0x176a7
cmpl $0x0, 0x10(%rbx)
jne 0x176bc
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x15
popq %rdx
pushq $0x19
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
jmp 0x16fe5
movl 0x4(%r15), %esi
movl %esi, 0x5c(%rbx)
movq 0x10(%r15), %rdx
movq 0x18(%r15), %rcx
movq 0x20(%r15), %r8
movl 0x10(%rbx), %eax
movq %r13, %rdi
xorl %r9d, %r9d
pushq $0x1
pushq %rax
callq 0x77f2
popq %rcx
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
movq %rax, %rdx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x15f29
movq %r13, %rdi
movq 0x10(%r15), %r12
movq 0x18(%r15), %r13
movl (%r12), %eax
cmpl $0x13, %eax
je 0x1752b
cmpl $0x12, %eax
je 0x174e4
cmpl $0x3, %eax
jne 0x176b0
movq %rbx, %r14
movq %rdi, %rbx
movq %r14, %rsi
movq %r13, %rdx
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%r14)
pushq $0x14
popq %rdx
pushq $0x18
popq %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %r8
jmp 0x17051
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq 0x38(%r15), %rcx
pushq $0xc
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17b1f
cvttsd2si 0x30(%r15), %edx
movq %r13, %rdi
movq %rbx, %rsi
jmp 0x175fb
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq 0x38(%r15), %rcx
pushq $0x8
jmp 0x174ca
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0xf
jmp 0x17653
pushq $0x38
jmp 0x17441
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x13
popq %rdx
pushq $0x17
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %r8
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17a09
pushq $0x35
jmp 0x17422
pushq $0x2e
jmp 0x1707f
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x10
jmp 0x17653
pushq $0x2f
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17e53
pushq $0x39
jmp 0x17422
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movsd 0x30(%r15), %xmm0
movq %r13, %rdi
movq %rbx, %rsi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17b64
pushq $0x36
jmp 0x17422
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0xb
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x10(%r15), %rax
movq %rax, (%rsp)
movq %rax, %rbp
testq %rbp, %rbp
je 0x17281
movq %r13, %r12
movq 0x10(%rbp), %r14
movq 0x10(%r14), %r13
movl (%r13), %eax
cmpl $0x5, %eax
je 0x1711b
cmpl $0x4, %eax
je 0x17139
cmpl $0x2, %eax
jne 0x17693
movl 0x4(%r13), %eax
movq %rbx, %r15
movl %eax, 0x5c(%rbx)
movq 0x38(%r13), %rcx
movq %r12, %rdi
movq %rbx, %rsi
pushq $0x8
popq %rdx
callq 0x17b1f
jmp 0x17154
movl 0x4(%r13), %eax
movq %rbx, %r15
movl %eax, 0x5c(%rbx)
movsd 0x30(%r13), %xmm0
movq %r12, %rdi
movq %rbx, %rsi
callq 0x17b64
cmpl $0x0, 0x10(%r15)
je 0x171d1
movq 0x10(%r14), %rax
cmpl $0x4, (%rax)
movq %rbp, 0x8(%rsp)
jne 0x1717d
movsd 0x30(%rax), %xmm0
leaq 0x30(%rsp), %rsi
callq 0xe36d
movq %rax, %r15
jmp 0x17181
movq 0x38(%rax), %r15
movq (%rsp), %rbp
movq 0x10(%rbp), %rax
cmpq %r14, %rax
je 0x171cc
movl (%rax), %ecx
cmpl (%r14), %ecx
jne 0x171c6
movq 0x10(%rax), %rax
cmpl $0x4, (%rax)
jne 0x171b2
movsd 0x30(%rax), %xmm0
leaq 0x10(%rsp), %rsi
callq 0xe36d
movq %rax, %rsi
jmp 0x171b6
movq 0x38(%rax), %rsi
movq %r15, %rdi
callq 0x32f0
testl %eax, %eax
je 0x1766d
movq 0x18(%rbp), %rbp
jmp 0x17185
movq 0x8(%rsp), %rbp
movl (%r14), %eax
cmpl $0x10, %eax
je 0x17231
cmpl $0xf, %eax
je 0x171fd
cmpl $0xe, %eax
movq %r12, %r13
jne 0x17278
movq 0x18(%r14), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
pushq $0x1d
jmp 0x17265
movl 0x4(%r13), %esi
movq 0x20(%r14), %r8
movl 0x10(%rbx), %eax
movq %r12, %r13
movq %r12, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x1
pushq %rax
callq 0x77f2
popq %rcx
popq %rdx
movq %r12, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x15f29
pushq $0x1e
jmp 0x17265
movl 0x4(%r13), %esi
movq 0x18(%r14), %rcx
movq 0x20(%r14), %r8
movl 0x10(%rbx), %eax
movq %r12, %r13
movq %r12, %rdi
xorl %edx, %edx
xorl %r9d, %r9d
pushq $0x1
pushq %rax
callq 0x77f2
popq %rcx
popq %rdx
movq %r12, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x15f29
pushq $0x1f
popq %rdx
movl 0x4(%r14), %eax
movl %eax, 0x5c(%rbx)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x18(%rbp), %rbp
jmp 0x170f0
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x39
jmp 0x17441
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq 0x18(%r15), %rax
movq 0x38(%rax), %rcx
pushq $0x21
jmp 0x174ca
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17ca8
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x32
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x10(%r15), %rdx
pushq $0x1
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17d87
movq %r13, %rdi
movq %rbx, %rsi
xorl %edx, %edx
jmp 0x1765a
pushq $0x3a
jmp 0x17422
pushq $0x41
jmp 0x17422
movq 0x10(%r15), %r8
cmpl $0x3, (%r8)
jne 0x1745e
movl 0x4(%r8), %eax
movl %eax, 0x5c(%rbx)
pushq $0x13
popq %rdx
pushq $0x16
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17a09
jmp 0x1746c
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x52
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x176c5
movl %eax, %ebp
movq 0x20(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
pushq $0x51
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x176c5
movl %eax, %r12d
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %edx
callq 0x176eb
movq 0x18(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x176eb
pushq $0x48
jmp 0x17422
pushq $0x36
jmp 0x17441
pushq $0x3b
jmp 0x17422
pushq $0x3d
jmp 0x17422
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17ca8
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x31
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x10(%r15), %rdx
movq %r13, %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17d87
pushq $0x3e
jmp 0x17422
pushq $0x42
jmp 0x17422
pushq $0x46
jmp 0x17441
pushq $0x47
jmp 0x17422
pushq $0x3b
jmp 0x17441
pushq $0x45
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17e8f
pushq $0x3a
popq %rcx
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17eda
movq %r13, %rdi
movq %rbx, %rsi
movq %r8, %rdx
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x2b
jmp 0x17653
movq 0x10(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movq 0x18(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
pushq $0x24
jmp 0x17653
movq 0x10(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%rbx)
movq 0x18(%r12), %rax
movq 0x38(%rax), %rcx
pushq $0x25
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17b1f
movq 0x10(%r12), %rdx
movq %rbx, %r14
movq %rdi, %rbx
movq %r14, %rsi
callq 0x16c1b
movq 0x18(%r12), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16c1b
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%r14)
pushq $0x22
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
jmp 0x1765a
movq 0x10(%r12), %rdx
movq %rbx, %r14
movq %rdi, %rbx
movq %r14, %rsi
callq 0x16c1b
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x16c1b
movl 0x4(%r15), %eax
movl %eax, 0x5c(%r14)
movq 0x18(%r12), %rax
movq 0x38(%rax), %rcx
pushq $0x23
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
jmp 0x174d1
movq 0x10(%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x16c1b
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq 0x18(%r12), %rax
movq 0x38(%rax), %rcx
pushq $0x21
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17b1f
pushq $0x3
jmp 0x175c9
movq 0x38(%r12), %rdi
leaq 0x11923(%rip), %rsi     # 0x28ed3
callq 0x32f0
testl %eax, %eax
je 0x1760e
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x16c1b
pushq $0xd
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x17c6d
movl %eax, %ebp
pushq $0x29
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %edx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x15f91
movq %r13, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x17c6d
andl $0x0, 0xc(%rbx)
movl $0x1, 0x14(%rbx)
testl %eax, %eax
je 0x17643
movl %eax, %ebp
cmpl $0x2, %ebp
jl 0x17651
decl %ebp
movq %r13, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x15d57
jmp 0x1762d
pushq $0xd
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x15d57
pushq $0x28
popq %rdx
movq %r13, %rdi
movq %rbx, %rsi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x15d57
leaq 0x11a2d(%rip), %rdx     # 0x290a1
movq %r12, %rdi
movq %rbp, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x7631
leaq 0x119d2(%rip), %rdx     # 0x2905d
movq %r13, %rdi
movq %r15, %rsi
jmp 0x176a0
leaq 0x119db(%rip), %rdx     # 0x29075
movq %r12, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x7631
leaq 0x11a59(%rip), %rdx     # 0x29107
jmp 0x1768b
leaq 0x11a75(%rip), %rdx     # 0x2912c
movq %r12, %rsi
jmp 0x176a0
leaq 0x11a08(%rip), %rdx     # 0x290cb
jmp 0x1768b