// File: /workspace/github_c_makefile_star2_O2/truenas[P]binaries/src/ixnvdimm.c
// Function: main
int
main(int argc, char *argv[])
{
	struct ixnvdimm_info info;
	const char *progname, *devname, *f = NULL;
	char *e;
	int F = 0, I = 0, b, c, d = 0, i, fd, h = 0, r = 0, w = 0;
	int page = -1, off = -1, size = 1;
	uint32_t funcs, val;
	uint8_t	buf[4];

	progname = argv[0];

	while ((c = getopt(argc, argv, "FIdf:hrw")) != -1) {
		switch (c) {
		case 'd':
			d = 1;
			break;
		case 'F':
			F = 1;
			break;
		case 'I':
			I = 1;
			break;
		case 'f':
			f = optarg;
			break;
		case 'r':
			r = 1;
			break;
		case 'w':
			w = 1;
			break;
		case 'h':
			h = 1;
			size = 2;
			break;
		default:
			usage(progname);
			/* NOTREACHED */
		}
	}
	argc -= optind;
	argv += optind;

	if (argc < 1 || (d + r + w + (f != NULL) > 1) || (h && !r && !w))
		usage(progname);

	devname = argv[0];
	argc--;
	argv++;
	if ((fd = open(devname, O_RDWR)) < 0)
		err(EX_NOINPUT, "Can't open %s", devname);
	init(devname);

	if (getinfo(fd, &info))
		err(EX_NOINPUT, "Can't get info from %s", devname);

#ifdef __linux__
	funcs = readsysfs("dsm_mask");
	funcs |= 1;
#else
	bzero(&buf, sizeof(buf));
	if (calldsm(fd, 0, NULL, 0, buf, sizeof(buf)) != 4)
		err(EX_NOINPUT, "Can't call DSM on %s", devname);
	funcs = le32dec(&buf[0]);
#endif
	if (~funcs & 0x18000001) {
		errx(EX_UNAVAILABLE, "Required Microsoft DSM functions "
		    "are not supported: 0x%08x\n", funcs);
	}

	if (d) {
		int snp, vsp, vnp;

		snp = i2c_read(fd, 0, 1);
		vsp = i2c_read(fd, 0, 2);
		vnp = i2c_read(fd, 0, 3);
		for (page = 0; page < snp; page++) {
			printf("Page 0x%02x:\n", page);
			for (off = 0; off < 256; off++) {
				printf(" %02x", i2c_read(fd, page, off));
				if ((off % 16) == 15)
					printf("\n");
			}
		}
		for (page = vsp; page < vsp+vnp; page++) {
			printf("Page 0x%02x:\n", page);
			for (off = 0; off < 256; off++) {
				printf(" %02x", i2c_read(fd, page, off));
				if ((off % 16) == 15)
					printf("\n");
			}
		}
		goto done;
	}
	if (F) {
		if (~funcs & 0x08200001) {
			errx(EX_UNAVAILABLE, "Required Microsoft DSM functions "
			    "are not supported: 0x%08x\n", funcs);
		}
		factory_default(fd);
		goto done;
	}
	if (f) {
		if (~funcs & 0x1bc00001) {
			errx(EX_UNAVAILABLE, "Required Microsoft DSM functions "
			    "are not supported: 0x%08x\n", funcs);
		}
		firmware_update(fd, &info, f, I);
		goto done;
	}
	if (r || w) {
		if (argc < 1 && w) {
			usage(progname);
		} else if (argc < 1) {
			;
		} else if (reg_parse(argv[0], &page, &off, &size)) {
			argc--;
			argv++;
		} else {
			if (argc < 1)
				usage(progname);
			page = strtol(argv[0], &e, 0);
			if (e[0] != 0)
				usage(progname);
			argc--;
			argv++;
			if (argc >= 1) {
				off = strtol(argv[0], &e, 0);
				if (e[0] != 0)
					usage(progname);
				argc--;
				argv++;
			}
		}
	}
	if (r) {
		if (off >= 0) {
			for (b = 0; b < size; b++)
				printf("%02x", i2c_read(fd, page, off + size - b - 1));
			printf("\n");
			goto done;
		}
		for (i = 0; regs[i].name != NULL; i++) {
			if (page >= 0 && regs[i].page != page)
				continue;
			printf("%-36s ", regs[i].name);
			for (b = 0; b < regs[i].size; b++)
				printf("%02x", i2c_read(fd, regs[i].page, regs[i].off + regs[i].size - b - 1));
			printf("\n");
		}
		goto done;
	}
	if (w) {
		if (argc < 1 || size > 3 || page < 0 || off < 0)
			usage(progname);
		val = strtol(argv[0], &e, 0);
		if (e[0] != 0 || val > (size == 3 ? 16777216 : (size == 2 ? 65535 : 255)))
			usage(progname);
		if (size == 3) {
			i2c_write16(fd, page, off, val);
			i2c_write(fd, page, off + 2, val >> 16);
		} else if (size == 2)
			i2c_write16(fd, page, off, val);
		else
			i2c_write(fd, page, off, val);
		goto done;
	}

	health(fd, &info);
done:
	close(fd);
	exit(0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rsi, %rbx
movl %edi, %r15d
movq (%rsi), %rax
movq %rax, 0x48(%rsp)
movb $0x1, %al
movl %eax, 0x30(%rsp)
movq $0x0, 0x18(%rsp)
pushq $0x1
popq %r13
leaq 0x2cff(%rip), %r12      # 0x5004
movq 0x7cc4(%rip), %r14      # 0x9fd0
movl %r13d, 0x38(%rsp)
movq $0x0, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x0, 0x68(%rsp)
movl $0x0, 0x28(%rsp)
xorl %ebp, %ebp
movl %r15d, %edi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x2180
cmpl $0x66, %eax
jne 0x234c
movq (%r14), %rbp
jmp 0x2334
cmpl $0x46, %eax
je 0x2393
cmpl $0x49, %eax
je 0x2371
cmpl $0x64, %eax
je 0x2389
cmpl $0x68, %eax
je 0x2378
cmpl $0x72, %eax
je 0x239a
cmpl $0x77, %eax
jne 0x23a4
movl %r13d, 0x10(%rsp)
jmp 0x2334
movl %r13d, 0x68(%rsp)
jmp 0x2334
movl $0x0, 0x30(%rsp)
pushq $0x2
popq %rax
movl %eax, 0x38(%rsp)
jmp 0x2334
movl %r13d, %eax
movq %rax, 0x18(%rsp)
jmp 0x2334
movl %r13d, 0x28(%rsp)
jmp 0x2334
movl %r13d, %eax
movq %rax, 0x8(%rsp)
jmp 0x2334
cmpl $-0x1, %eax
jne 0x256b
movq 0x7c14(%rip), %rax      # 0x9fc8
movslq (%rax), %rax
subl %eax, %r15d
movl 0x10(%rsp), %r13d
jle 0x256b
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rdx
addl %edx, %ecx
addl %r13d, %ecx
cmpq $0x1, %rbp
sbbl $-0x1, %ecx
cmpl $0x1, %ecx
ja 0x256b
cmpl $0x0, 0x8(%rsp)
setne %cl
movl 0x30(%rsp), %edx
orb %cl, %dl
testl %r13d, %r13d
setne %cl
orb %dl, %cl
testb $0x1, %cl
je 0x256b
leaq (%rbx,%rax,8), %r14
movq (%r14), %r12
pushq $0x2
popq %rsi
movq %r12, %rdi
xorl %eax, %eax
callq 0x2170
testl %eax, %eax
jns 0x242f
leaq 0x2beb(%rip), %rsi      # 0x500d
pushq $0x42
popq %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x2150
movl %eax, %ebx
movq %r14, 0x58(%rsp)
pushq $0x2f
popq %rsi
movq %r12, %rdi
callq 0x20d0
leaq 0x1(%rax), %rcx
testq %rax, %rax
cmoveq %r12, %rcx
movq %rcx, 0x7cad(%rip)      # 0xa100
leaq 0x2cfc(%rip), %rdi      # 0x5156
callq 0x3f46
movl %eax, 0x30(%rsp)
leaq 0x2cfd(%rip), %rdi      # 0x5167
callq 0x3f46
movl %eax, 0x40(%rsp)
leaq 0x2cfe(%rip), %rdi      # 0x5178
callq 0x3f46
movl %eax, 0x50(%rsp)
leaq 0x2cc2(%rip), %rdi      # 0x514c
callq 0x3f46
movl %eax, 0x54(%rsp)
leaq 0x2cc3(%rip), %rdi      # 0x515d
callq 0x3f46
movl %eax, %r12d
leaq 0x2cc5(%rip), %rdi      # 0x516e
callq 0x3f46
movl %eax, %r14d
leaq 0x2cc7(%rip), %rdi      # 0x517f
callq 0x3f46
movl %eax, 0x60(%rsp)
leaq 0x2b53(%rip), %rdi      # 0x501b
callq 0x3f46
movl %eax, %edx
orl $0x1, %edx
movl %eax, %ecx
notl %ecx
testl $0x18000000, %ecx       # imm = 0x18000000
jne 0x2792
cmpl $0x0, 0x18(%rsp)
jne 0x2575
cmpl $0x0, 0x28(%rsp)
jne 0x268a
movl 0x30(%rsp), %eax
rolw $0x8, %ax
movl %eax, 0x30(%rsp)
movl 0x40(%rsp), %eax
rolw $0x8, %ax
movl 0x50(%rsp), %r8d
rolw $0x8, %r8w
movl 0x54(%rsp), %esi
rolw $0x8, %si
rolw $0x8, %r12w
movl %r14d, %edi
rolw $0x8, %di
testq %rbp, %rbp
jne 0x26fa
movl %eax, 0x40(%rsp)
movl %esi, 0x54(%rsp)
movl %r12d, 0x18(%rsp)
movl %r8d, 0x50(%rsp)
movq 0x8(%rsp), %rax
orl %r13d, %eax
je 0x2ae1
testl %r13d, %r13d
setne %al
cmpl $0x1, %r15d
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x27b4
movq 0x48(%rsp), %rdi
callq 0x3eb8
pushq $0x1
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %eax
movl %eax, 0x10(%rsp)
pushq $0x2
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movb %al, 0x8(%rsp)
pushq $0x3
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movb %al, 0x18(%rsp)
leaq 0x317e(%rip), %r12      # 0x572d
pushq $0xa
popq %r13
xorl %ebp, %ebp
cmpl 0x10(%rsp), %ebp
je 0x2610
xorl %r15d, %r15d
leaq 0x2a9b(%rip), %rdi      # 0x5060
movl %ebp, %esi
xorl %eax, %eax
callq 0x20a0
movzbl %bpl, %r14d
cmpl $0x100, %r15d           # imm = 0x100
je 0x260c
movzbl %r15b, %edx
movl %ebx, %edi
movl %r14d, %esi
callq 0x3ffa
movzbl %al, %esi
movq %r12, %rdi
xorl %eax, %eax
callq 0x20a0
movl %r15d, %eax
notl %eax
testb $0xf, %al
jne 0x2607
movl %r13d, %edi
callq 0x2040
incl %r15d
jmp 0x25d2
incl %ebp
jmp 0x25b5
movzbl 0x8(%rsp), %ebp
movzbl 0x18(%rsp), %eax
addl %ebp, %eax
movl %eax, 0x10(%rsp)
leaq 0x3106(%rip), %r15      # 0x572d
pushq $0xa
popq %r12
cmpl 0x10(%rsp), %ebp
jae 0x3416
xorl %r14d, %r14d
leaq 0x2a21(%rip), %rdi      # 0x5060
movl %ebp, %esi
xorl %eax, %eax
callq 0x20a0
movzbl %bpl, %r13d
cmpl $0x100, %r14d           # imm = 0x100
je 0x2686
movzbl %r14b, %edx
movl %ebx, %edi
movl %r13d, %esi
callq 0x3ffa
movzbl %al, %esi
movq %r15, %rdi
xorl %eax, %eax
callq 0x20a0
movl %r14d, %eax
notl %eax
testb $0xf, %al
jne 0x2681
movl %r12d, %edi
callq 0x2040
incl %r14d
jmp 0x264c
incl %ebp
jmp 0x262b
btl $0x15, %eax
jae 0x2792
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
leaq 0xa0(%rsp), %r8
orl $-0x1, (%r8)
pushq $0x15
popq %rsi
pushq $0x4
popq %r9
movl %ebx, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
cmpq $0x4, %rax
jne 0x27a3
movl 0xa0(%rsp), %edx
testl %edx, %edx
jne 0x27d2
leaq 0x4384(%rip), %rdi      # 0x6a65
callq 0x2070
movq 0x78d3(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
jmp 0x3416
testl $0x3c00000, %ecx        # imm = 0x3C00000
jne 0x2792
movl %eax, 0x40(%rsp)
movl %esi, 0x54(%rsp)
movl %r12d, 0x18(%rsp)
movl %r8d, 0x50(%rsp)
movl %edi, 0x28(%rsp)
pushq $0x22
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %eax
movl %eax, %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
imull $0x3e8, %ecx, %r14d     # imm = 0x3E8
testw %ax, %ax
cmovnsl %eax, %r14d
pushq $0x24
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %r15d
pushq $0x11
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
imull $0x3e8, %r15d, %r12d    # imm = 0x3E8
testb $0x2, %al
cmovel %r15d, %r12d
pushq $0x32
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movl %eax, %r13d
movq %rbp, %rdi
xorl %esi, %esi
xorl %eax, %eax
callq 0x2170
testl %eax, %eax
jns 0x27dd
leaq 0x2ab2(%rip), %rsi      # 0x5242
jmp 0x27fa
leaq 0x288b(%rip), %rsi      # 0x5024
pushq $0x45
popq %rdi
xorl %eax, %eax
callq 0x2090
leaq 0x2a46(%rip), %rsi      # 0x51f0
pushq $0x42
popq %rdi
xorl %eax, %eax
callq 0x2150
movq 0x58(%rsp), %rax
addq $0x8, %rax
xorl %r14d, %r14d
pushq $-0x1
popq %r12
cmpl $0x1, %r15d
jne 0x2805
movl %r12d, %ecx
jmp 0x29c3
leaq 0x2a40(%rip), %rsi      # 0x5219
pushq $0x42
jmp 0x279b
movl %eax, %r15d
leaq 0xa0(%rsp), %rsi
movl %eax, %edi
callq 0x21b0
testl %eax, %eax
jns 0x2860
leaq 0x2a66(%rip), %rsi      # 0x5260
pushq $0x42
popq %rdi
movq %rbp, %rdx
jmp 0x2428
movl %edi, 0x28(%rsp)
movq (%rax), %r13
leaq 0x695d(%rip), %r14      # 0x9170
movq 0x10(%r14), %r12
testq %r12, %r12
je 0x28a7
movq %r12, %rdi
callq 0x2080
movslq %eax, %rbp
movq %r13, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x2050
testl %eax, %eax
jne 0x285a
movsbl (%r13,%rbp), %edx
testl %edx, %edx
je 0x297f
leal -0x30(%rdx), %ecx
movl 0x8(%r14), %eax
cmpl %eax, %ecx
jl 0x2988
addq $0x18, %r14
jmp 0x2813
movzbl %r13b, %edi
movl %edi, %ecx
shll $0x5, %ecx
movq 0xd0(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq (%rcx,%rax), %rsi
decq %rsi
movq %rsi, %rax
cqto
movq %rcx, 0x38(%rsp)
idivq %rcx
subq %rdx, %rsi
cmpq $0x1f, %rsi
jg 0x28f4
leaq 0x29e4(%rip), %rsi      # 0x527e
pushq $0x42
popq %rdi
movq %rbp, %rdx
xorl %eax, %eax
callq 0x2090
leaq 0x70(%rsp), %rbp
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x2130
movq (%rbp), %rcx
cmpb $0x0, (%rcx)
jne 0x256b
movq %rax, %r12
movq 0x58(%rsp), %rax
addq $0x10, %rax
cmpl $0x2, %r15d
jne 0x34c5
movl 0x10(%rsp), %r13d
movl 0x28(%rsp), %edi
movq %r12, %rcx
pushq $-0x1
popq %r12
jmp 0x29c3
movq %rax, %r13
movl %edi, 0x48(%rsp)
pushq $0x1
popq %rdi
callq 0x2110
testq %rax, %rax
jne 0x2916
leaq 0x298f(%rip), %rsi      # 0x529e
pushq $0x47
jmp 0x27ac
movq %r13, 0x60(%rsp)
movl %r15d, %edi
movq %rax, 0x8(%rsp)
movq %rax, %rsi
movq 0x10(%rsp), %r13
movq %r13, %rdx
callq 0x2100
cmpq %r13, %rax
jne 0x350b
movl %r15d, %edi
callq 0x20f0
cmpl $0x0, 0x68(%rsp)
jne 0x35a3
movq 0x8(%rsp), %rax
movzbl 0x1f(%rax), %edx
testl %edx, %edx
je 0x3519
cmpl $0x1, %edx
jne 0x362e
movq 0x8(%rsp), %rax
movzbl 0x13(%rax), %eax
testb $0x1, %al
jne 0x351c
jmp 0x352e
movl (%r14), %esi
movl 0x8(%r14), %eax
jmp 0x299c
movl (%r14), %esi
cmpb $0x30, %dl
jl 0x299c
addl 0x4(%r14), %ecx
pushq $0x1
popq %rax
movl %ecx, %r12d
jmp 0x29a0
movl 0x4(%r14), %r12d
addl $-0x2, %r15d
movq 0x58(%rsp), %rcx
addq $0x10, %rcx
movl %eax, 0x38(%rsp)
movq %rcx, %rax
movl %r15d, %r14d
movl 0x10(%rsp), %r13d
movl 0x28(%rsp), %edi
movq %rsi, %rcx
cmpl $0x0, 0x8(%rsp)
je 0x2a1e
testl %r12d, %r12d
js 0x3424
movl 0x38(%rsp), %eax
testl %eax, %eax
movl $0x0, %ebp
cmovgl %eax, %ebp
addl %eax, %r12d
decb %r12b
movzbl %cl, %r14d
leaq 0x2d3c(%rip), %r15      # 0x572e
subl $0x1, %ebp
jb 0x34b8
movzbl %r12b, %r12d
movl %ebx, %edi
movl %r14d, %esi
movl %r12d, %edx
callq 0x3ffa
movzbl %al, %esi
movq %r15, %rdi
xorl %eax, %eax
callq 0x20a0
decb %r12b
jmp 0x29f2
testl %r13d, %r13d
je 0x2ae1
testl %r14d, %r14d
jle 0x256b
cmpl $0x3, 0x38(%rsp)
jg 0x256b
testl %ecx, %ecx
js 0x256b
testl %r12d, %r12d
js 0x256b
movq %r12, %r13
movq %rcx, %r12
movq (%rax), %rdi
leaq 0x70(%rsp), %r14
movq %r14, %rsi
xorl %edx, %edx
callq 0x2130
movq %rax, %r15
movq (%r14), %rax
cmpb $0x0, (%rax)
jne 0x256b
movl 0x38(%rsp), %edx
cmpl $0x2, %edx
movl $0xffff, %eax           # imm = 0xFFFF
movl $0xff, %ecx
cmovel %eax, %ecx
cmpl $0x3, %edx
movl $0x1000000, %eax        # imm = 0x1000000
cmovnel %ecx, %eax
cmpl %r15d, %eax
jb 0x256b
cmpl $0x2, 0x38(%rsp)
je 0x3646
cmpl $0x3, 0x38(%rsp)
jne 0x365e
movzbl %r12b, %r14d
movzbl %r13b, %edx
movzwl %r15w, %ecx
movl %ebx, %edi
movl %r14d, %esi
callq 0x4068
addb $0x2, %r13b
shrl $0x10, %r15d
movzbl %r13b, %edx
movzbl %r15b, %ecx
movl %ebx, %edi
movl %r14d, %esi
jmp 0x366c
movl %edi, %ebp
leaq 0x40c1(%rip), %rdi      # 0x6bab
callq 0x2070
movzwl 0x30(%rsp), %esi
movzwl 0x40(%rsp), %edx
movzwl 0x50(%rsp), %ecx
leaq 0x3777(%rip), %rdi      # 0x627c
xorl %eax, %eax
callq 0x20a0
movzwl 0x54(%rsp), %esi
movzwl 0x18(%rsp), %edx
movzwl %bp, %ecx
leaq 0x3786(%rip), %rdi      # 0x62a6
xorl %eax, %eax
callq 0x20a0
movl 0x60(%rsp), %esi
bswapl %esi
leaq 0x37a5(%rip), %rdi      # 0x62d9
xorl %eax, %eax
callq 0x20a0
leaq 0x4071(%rip), %rdi      # 0x6bb3
callq 0x2070
pushq $0x7
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %ebp
pushq $0xb
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %r15d
pushq $0x1
popq %r14
pushq $0x8
popq %rdx
movl %ebx, %edi
movl %r14d, %esi
callq 0x41b4
movzwl %ax, %ecx
leaq 0x3766(%rip), %rdi      # 0x62e7
movl %ebp, %esi
movl %r15d, %edx
xorl %eax, %eax
callq 0x20a0
pushq $0x9
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %r15d
pushq $0xc
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %r12d
pushq $0xa
popq %rbp
movl %ebx, %edi
movl %r14d, %esi
movl %ebp, %edx
callq 0x41b4
movzwl %ax, %ecx
leaq 0x3741(%rip), %rdi      # 0x6307
movl %r15d, %esi
movl %r12d, %edx
xorl %eax, %eax
callq 0x20a0
pushq $0x3
popq %rsi
pushq $0x42
popq %rdx
movl %ebx, %edi
callq 0x3ffa
movzbl %al, %edx
movl %edx, %esi
andl $0xf, %esi
shrl $0x4, %edx
leaq 0x3735(%rip), %rdi      # 0x6327
xorl %eax, %eax
callq 0x20a0
xorps %xmm0, %xmm0
leaq 0xa0(%rsp), %r8
movaps %xmm0, (%r8)
movaps %xmm0, 0x10(%r8)
pushq $0x20
popq %r9
movl %ebx, %edi
movl %ebp, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
leaq 0x3cef(%rip), %r13      # 0x6914
cmpq $0x5, %rax
jl 0x2ca1
movsbl 0xa4(%rsp), %esi
testb $0x1, %sil
leaq 0x3731(%rip), %rdx      # 0x636f
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x373a(%rip), %rcx      # 0x6387
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x3747(%rip), %r8       # 0x63a3
cmoveq %r13, %r8
testb $0x8, %sil
leaq 0x374e(%rip), %r9       # 0x63b9
cmoveq %r13, %r9
testb $0x10, %sil
leaq 0x3758(%rip), %r10      # 0x63d2
cmoveq %r13, %r10
testb $0x20, %sil
leaq 0x3765(%rip), %r11      # 0x63ee
cmoveq %r13, %r11
leaq 0x36ad(%rip), %rdi      # 0x6341
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x20a0
popq %rcx
popq %rdx
leaq 0xa0(%rsp), %r8
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%r8)
movaps %xmm0, (%r8)
pushq $0xb
popq %rsi
pushq $0x20
popq %r9
movl %ebx, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
cmpq $0xd, %rax
jl 0x3283
movzwl 0xa4(%rsp), %esi
testb $0x1, %sil
leaq 0x374f(%rip), %rdx      # 0x6433
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x375a(%rip), %rcx      # 0x644d
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x3755(%rip), %r8       # 0x6457
cmoveq %r13, %r8
testb $0x8, %sil
leaq 0x3750(%rip), %r9       # 0x6461
cmoveq %r13, %r9
testb $0x10, %sil
leaq 0x374b(%rip), %rax      # 0x646b
cmoveq %r13, %rax
movq %rax, 0x8(%rsp)
testb $0x20, %sil
leaq 0x374e(%rip), %rax      # 0x6482
cmoveq %r13, %rax
movq %rax, 0x18(%rsp)
testb $0x40, %sil
leaq 0x3755(%rip), %rax      # 0x649d
cmoveq %r13, %rax
movq %rax, 0x30(%rsp)
testb %sil, %sil
leaq 0x3758(%rip), %rax      # 0x64b3
cmovnsq %r13, %rax
movq %rax, 0x28(%rsp)
btl $0x8, %esi
leaq 0x3758(%rip), %rax      # 0x64c7
movq %rax, 0x10(%rsp)
cmovaeq %r13, %rax
movq %rax, 0x38(%rsp)
btl $0x9, %esi
leaq 0x375c(%rip), %r10      # 0x64e4
cmovaeq %r13, %r10
btl $0xa, %esi
leaq 0x3765(%rip), %r14      # 0x64fc
cmovaeq %r13, %r14
btl $0xb, %esi
leaq 0x3769(%rip), %r11      # 0x650f
cmovaeq %r13, %r11
btl $0xc, %esi
leaq 0x3769(%rip), %r15      # 0x651e
cmovaeq %r13, %r15
btl $0xd, %esi
leaq 0x376d(%rip), %r12      # 0x6531
cmovaeq %r13, %r12
btl $0xe, %esi
leaq 0x3773(%rip), %rbp      # 0x6546
cmovaeq %r13, %rbp
subq $0x8, %rsp
leaq 0x3618(%rip), %rdi      # 0x63fa
xorl %eax, %eax
pushq %rbp
pushq %r12
pushq %r15
pushq %r11
pushq %r14
pushq %r10
pushq 0x70(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x68(%rsp)
pushq 0x60(%rsp)
callq 0x20a0
addq $0x60, %rsp
movzwl 0xa6(%rsp), %esi
leaq 0x3747(%rip), %rdi      # 0x6562
xorl %eax, %eax
callq 0x20a0
movsbl 0xa8(%rsp), %esi
testb $0x1, %sil
leaq 0x367e(%rip), %rdx      # 0x64b3
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x3769(%rip), %rcx      # 0x65ad
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x376d(%rip), %r8       # 0x65c0
cmoveq %r13, %r8
leaq 0x3726(%rip), %rdi      # 0x6584
xorl %eax, %eax
callq 0x20a0
movsbl 0xa9(%rsp), %esi
testb $0x1, %sil
leaq 0x3782(%rip), %rdx      # 0x65fa
cmoveq %r13, %rdx
leaq 0x378d(%rip), %rcx      # 0x6610
cmoveq %r13, %rcx
leaq 0x3797(%rip), %r8       # 0x6625
cmoveq %r13, %r8
leaq 0x3736(%rip), %rdi      # 0x65cf
xorl %eax, %eax
callq 0x20a0
movsbl 0xaa(%rsp), %esi
leaq 0x3787(%rip), %rdi      # 0x6636
xorl %eax, %eax
callq 0x20a0
movsbl 0xab(%rsp), %esi
leaq 0x3785(%rip), %rdi      # 0x664a
xorl %eax, %eax
callq 0x20a0
movsbl 0xac(%rsp), %esi
leaq 0x379b(%rip), %rdi      # 0x6676
xorl %eax, %eax
callq 0x20a0
pushq $0x64
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
leaq 0x37f5(%rip), %rdx      # 0x66f1
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x38ad(%rip), %rcx      # 0x67b8
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x37c9(%rip), %r8       # 0x66e3
cmoveq %r13, %r8
testb $0x10, %sil
leaq 0x37c2(%rip), %r9       # 0x66eb
cmoveq %r13, %r9
testb $0x20, %sil
leaq 0x37c2(%rip), %r10      # 0x66fa
cmoveq %r13, %r10
subq $0x8, %rsp
leaq 0x376f(%rip), %rdi      # 0x66b6
xorl %eax, %eax
pushq %r10
callq 0x20a0
popq %rcx
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
movl $0x80, %edx
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
leaq 0x37c8(%rip), %rdx      # 0x6736
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x37c9(%rip), %rcx      # 0x6746
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x37c7(%rip), %r8       # 0x6753
cmoveq %r13, %r8
testb $0x8, %sil
leaq 0x37c0(%rip), %r9       # 0x675b
cmoveq %r13, %r9
leaq 0x3760(%rip), %rdi      # 0x6706
xorl %eax, %eax
callq 0x20a0
movl %ebx, %edi
xorl %esi, %esi
movl $0x84, %edx
callq 0x41b4
movzwl %ax, %esi
testb $0x1, %sil
leaq 0x346a(%rip), %rdx      # 0x6433
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x3475(%rip), %rcx      # 0x644d
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x3470(%rip), %r8       # 0x6457
cmoveq %r13, %r8
testb $0x8, %sil
leaq 0x346b(%rip), %r9       # 0x6461
cmoveq %r13, %r9
testb $0x10, %sil
leaq 0x3466(%rip), %rax      # 0x646b
cmoveq %r13, %rax
movq %rax, 0x8(%rsp)
testb $0x20, %sil
leaq 0x3469(%rip), %rax      # 0x6482
cmoveq %r13, %rax
movq %rax, 0x18(%rsp)
testb $0x40, %sil
leaq 0x3470(%rip), %rax      # 0x649d
cmoveq %r13, %rax
movq %rax, 0x30(%rsp)
testb %sil, %sil
leaq 0x376e(%rip), %rax      # 0x67ae
cmovnsq %r13, %rax
movq %rax, 0x28(%rsp)
btl $0x8, %esi
movq 0x10(%rsp), %rax
cmovaeq %r13, %rax
movq %rax, 0x10(%rsp)
btl $0x9, %esi
leaq 0x3759(%rip), %r15      # 0x67bf
cmovaeq %r13, %r15
btl $0xa, %esi
leaq 0x375e(%rip), %r12      # 0x67d3
cmovaeq %r13, %r12
btl $0xb, %esi
leaq 0x375b(%rip), %rbp      # 0x67df
cmovaeq %r13, %rbp
btl $0xc, %esi
leaq 0x3757(%rip), %r11      # 0x67ea
cmovaeq %r13, %r11
btl $0xd, %esi
leaq 0x375d(%rip), %r10      # 0x67ff
cmovaeq %r13, %r10
btl $0xe, %esi
leaq 0x375a(%rip), %r14      # 0x680b
cmovaeq %r13, %r14
subq $0x8, %rsp
leaq 0x36a3(%rip), %rdi      # 0x6763
xorl %eax, %eax
pushq %r14
pushq %r10
pushq %r11
pushq %rbp
pushq %r12
pushq %r15
pushq 0x48(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x68(%rsp)
pushq 0x60(%rsp)
callq 0x20a0
addq $0x60, %rsp
pushq $0x66
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
leaq 0x35ed(%rip), %r12      # 0x66f1
movq %r12, %rdx
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x36a2(%rip), %rbp      # 0x67b8
movq %rbp, %rcx
cmoveq %r13, %rcx
testb $0x10, %sil
leaq 0x35c3(%rip), %r14      # 0x66eb
movq %r14, %r8
cmoveq %r13, %r8
testb $0x20, %sil
leaq 0x35c0(%rip), %r15      # 0x66fa
movq %r15, %r9
cmoveq %r13, %r9
leaq 0x36d2(%rip), %rdi      # 0x681a
xorl %eax, %eax
callq 0x20a0
movl %ebx, %edi
xorl %esi, %esi
movl $0x88, %edx
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
leaq 0x36ff(%rip), %rdx      # 0x686a
cmoveq %r13, %rdx
testb $0x2, %sil
leaq 0x36ff(%rip), %rcx      # 0x6879
cmoveq %r13, %rcx
testb $0x10, %sil
leaq 0x32e2(%rip), %r8       # 0x646b
cmoveq %r13, %r8
testb $0x20, %sil
leaq 0x32ea(%rip), %r9       # 0x6482
cmoveq %r13, %r9
testb $0x40, %sil
leaq 0x32f6(%rip), %r11      # 0x649d
cmoveq %r13, %r11
testb %sil, %sil
leaq 0x36d4(%rip), %r10      # 0x6889
cmovnsq %r13, %r10
leaq 0x367b(%rip), %rdi      # 0x683b
xorl %eax, %eax
pushq %r10
pushq %r11
callq 0x20a0
popq %rcx
popq %rdx
pushq $0x68
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
movq %r12, %rdx
cmoveq %r13, %rdx
testb $0x2, %sil
movq %rbp, %rcx
cmoveq %r13, %rcx
testb $0x10, %sil
movq %r14, %r8
cmoveq %r13, %r8
testb $0x20, %sil
movq %r15, %r9
cmoveq %r13, %r9
leaq 0x368a(%rip), %rdi      # 0x6899
xorl %eax, %eax
callq 0x20a0
pushq $0x6a
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
testb $0x1, %sil
movq %r12, %rdx
cmoveq %r13, %rdx
testb $0x2, %sil
movq %rbp, %rcx
cmoveq %r13, %rcx
testb $0x4, %sil
leaq 0x3693(%rip), %r8       # 0x68d9
cmoveq %r13, %r8
testb $0x8, %sil
leaq 0x3692(%rip), %r9       # 0x68e7
cmoveq %r13, %r9
testb $0x10, %sil
movq %r14, %r10
cmoveq %r13, %r10
testb $0x20, %sil
movq %r15, %r11
cmoveq %r13, %r11
leaq 0x3642(%rip), %rdi      # 0x68b8
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x20a0
popq %rcx
popq %rdx
xorps %xmm0, %xmm0
leaq 0xa0(%rsp), %r8
movaps %xmm0, 0x10(%r8)
movaps %xmm0, (%r8)
pushq $0xc
popq %rsi
pushq $0x20
popq %r9
movl %ebx, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
cmpq $0xb, %rax
jl 0x330f
movsbl 0xa4(%rsp), %esi
leaq 0x3638(%rip), %rdi      # 0x68f6
xorl %eax, %eax
callq 0x20a0
movzwl 0xa5(%rsp), %esi
btl $0xc, %esi
jb 0x32e3
cmpw $0x80, %si
jb 0x32ec
shrl $0x4, %esi
movzbl %sil, %esi
jmp 0x32ec
shrl $0x4, %esi
movzbl %sil, %esi
negl %esi
leaq 0x3622(%rip), %rdi      # 0x6915
xorl %eax, %eax
callq 0x20a0
movl 0xa7(%rsp), %esi
leaq 0x362b(%rip), %rdi      # 0x6933
xorl %eax, %eax
callq 0x20a0
leaq 0xa0(%rsp), %r8
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%r8)
movaps %xmm0, (%r8)
pushq $0xd
popq %rsi
pushq $0x20
popq %r9
movl %ebx, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
cmpq $0xb, %rax
jl 0x3416
movzwl 0xa4(%rsp), %eax
movl $0x7fff, %ebp           # imm = 0x7FFF
movl %eax, %esi
andl %ebp, %esi
testw %ax, %ax
leaq 0x3614(%rip), %r15      # 0x696e
leaq 0x1cb8(%rip), %r14      # 0x5019
movq %r14, %rdx
cmovnsq %r15, %rdx
leaq 0x35d7(%rip), %rdi      # 0x6946
xorl %eax, %eax
callq 0x20a0
movzwl 0xa8(%rsp), %eax
movl %eax, %esi
andl %ebp, %esi
testw %ax, %ax
movq %r14, %rdx
cmovnsq %r15, %rdx
leaq 0x35de(%rip), %rdi      # 0x6971
xorl %eax, %eax
callq 0x20a0
movzwl 0xac(%rsp), %eax
movl %eax, %esi
andl %ebp, %esi
testw %ax, %ax
cmovnsq %r15, %r14
leaq 0x35e7(%rip), %rdi      # 0x699b
movq %r14, %rdx
xorl %eax, %eax
callq 0x20a0
movzwl 0xb0(%rsp), %esi
leaq 0x35f6(%rip), %rdi      # 0x69c3
xorl %eax, %eax
callq 0x20a0
movzwl 0xb4(%rsp), %esi
leaq 0x3609(%rip), %rdi      # 0x69ec
xorl %eax, %eax
callq 0x20a0
movzwl 0xb8(%rsp), %esi
leaq 0x361f(%rip), %rdi      # 0x6a18
xorl %eax, %eax
callq 0x20a0
movzwl 0xbc(%rsp), %esi
leaq 0x3633(%rip), %rdi      # 0x6a42
xorl %eax, %eax
callq 0x20a0
movl %ebx, %edi
callq 0x20f0
xorl %edi, %edi
callq 0x21a0
leaq 0x5d45(%rip), %rax      # 0x9170
leaq 0x22fc(%rip), %r15      # 0x572e
xorl %r14d, %r14d
movq %rcx, 0x10(%rsp)
imulq $0x18, %r14, %rbp
movq 0x10(%rbp,%rax), %rsi
testq %rsi, %rsi
je 0x3416
addq %rax, %rbp
testl %ecx, %ecx
js 0x3454
cmpl %ecx, (%rbp)
jne 0x34b3
leaq 0x1c13(%rip), %rdi      # 0x506e
xorl %eax, %eax
callq 0x20a0
movl 0x8(%rbp), %r12d
testl %r12d, %r12d
movl $0x0, %r13d
cmovgl %r12d, %r13d
decb %r12b
subl $0x1, %r13d
jb 0x349f
movzbl (%rbp), %esi
movb 0x4(%rbp), %al
addb %r12b, %al
movzbl %al, %edx
movl %ebx, %edi
callq 0x3ffa
movzbl %al, %esi
movq %r15, %rdi
xorl %eax, %eax
callq 0x20a0
jmp 0x3473
pushq $0xa
popq %rdi
callq 0x2040
movq 0x10(%rsp), %rcx
leaq 0x5cbd(%rip), %rax      # 0x9170
incq %r14
jmp 0x343a
pushq $0xa
popq %rdi
callq 0x2040
jmp 0x3416
movq (%rax), %rdi
leaq 0x70(%rsp), %rbp
movq %rbp, %rsi
xorl %edx, %edx
callq 0x2130
movq %rax, %rdx
movq (%rbp), %rax
cmpb $0x0, (%rax)
jne 0x256b
addl $-0x3, %r15d
movq 0x58(%rsp), %rax
addq $0x18, %rax
movl %r15d, %r14d
movl 0x10(%rsp), %r13d
movl 0x28(%rsp), %edi
movq %r12, %rcx
movq %rdx, %r12
jmp 0x29c3
leaq 0x1dab(%rip), %rsi      # 0x52bd
pushq $0x47
jmp 0x27fc
pushq $0x3
popq %rax
movq 0x8(%rsp), %rcx
movl 0x30(%rsp), %edx
cmpw %dx, (%rcx)
jne 0x3676
testb $0x2, %al
je 0x3545
movq 0x8(%rsp), %rcx
movl 0x40(%rsp), %edx
cmpw %dx, 0x2(%rcx)
jne 0x3712
testb $0x4, %al
je 0x355c
movq 0x8(%rsp), %rcx
movl 0x54(%rsp), %edx
cmpw %dx, 0x4(%rcx)
jne 0x372a
testb $0x8, %al
je 0x3573
movq 0x8(%rsp), %rcx
movl 0x18(%rsp), %edx
cmpw %dx, 0x6(%rcx)
jne 0x3750
testb $0x10, %al
je 0x358b
movq 0x8(%rsp), %rcx
movzbl 0x8(%rcx), %ecx
cmpw %cx, 0x50(%rsp)
jne 0x3798
testb $0x20, %al
je 0x35a3
movq 0x8(%rsp), %rax
movzbl 0x9(%rax), %eax
cmpw %ax, 0x28(%rsp)
jne 0x37a1
movq 0x8(%rsp), %rax
movl 0x14(%rax), %eax
bswapl %eax
cmpq %rax, 0x10(%rsp)
jne 0x3622
movq 0x8(%rsp), %rcx
movzwl 0x18(%rcx), %eax
rolw $0x8, %ax
movzwl %ax, %ebp
leaq 0x20(%rcx), %rdi
movq 0x10(%rsp), %rsi
addl $-0x20, %esi
callq 0x41ef
cmpl %ebp, %eax
jne 0x363a
xorl %r15d, %r15d
pushq $0x61
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x1, %al
je 0x368b
leaq 0x3492(%rip), %rdi      # 0x6a89
callq 0x2070
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3682
cmpl %r14d, %r15d
jae 0x3682
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x35ff
leaq 0x1dea(%rip), %rsi      # 0x5413
jmp 0x37a8
leaq 0x1ca6(%rip), %rsi      # 0x52db
jmp 0x27d9
leaq 0x1df9(%rip), %rsi      # 0x543a
jmp 0x37a8
movzbl %r12b, %esi
movzbl %r13b, %edx
movzwl %r15w, %ecx
movl %ebx, %edi
callq 0x4068
jmp 0x3416
movzbl %r12b, %esi
movzbl %r13b, %edx
movzbl %r15b, %ecx
movl %ebx, %edi
callq 0x409e
jmp 0x3416
leaq 0x1caf(%rip), %rsi      # 0x532c
jmp 0x37a8
cmpl %r14d, %r15d
jae 0x3733
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
leaq 0x70(%rsp), %rdx
movb $0x1, (%rdx)
leaq 0x24(%rsp), %r8
orl $-0x1, (%r8)
pushq $0x16
popq %rsi
pushq $0x1
popq %rcx
pushq $0x4
popq %r9
movl %ebx, %edi
callq 0x410b
cmpq $0x4, %rax
jne 0x371e
movl 0x24(%rsp), %edx
testl %edx, %edx
jne 0x3759
leaq 0x33df(%rip), %rdi      # 0x6ab4
callq 0x2070
movq 0x68df(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
xorl %r15d, %r15d
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3765
cmpl %r14d, %r15d
jae 0x3765
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x36ef
leaq 0x1c67(%rip), %rsi      # 0x5380
jmp 0x37a8
leaq 0x1d67(%rip), %rsi      # 0x548c
jmp 0x27aa
leaq 0x1bd2(%rip), %rsi      # 0x5303
jmp 0x37a8
pushq $0x61
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %edx
leaq 0x1d1c(%rip), %rsi      # 0x5465
pushq $0x4c
jmp 0x279b
leaq 0x1c00(%rip), %rsi      # 0x5357
jmp 0x37a8
leaq 0x1d51(%rip), %rsi      # 0x54b1
jmp 0x27d9
cmpl %r14d, %r15d
jae 0x37b2
xorl %r15d, %r15d
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x4, %al
jne 0x37be
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x1d6b(%rip), %rdi      # 0x54fe
jmp 0x3c35
leaq 0x1c0a(%rip), %rsi      # 0x53a9
jmp 0x37a8
leaq 0x1c25(%rip), %rsi      # 0x53cd
pushq $0x42
popq %rdi
xorl %eax, %eax
callq 0x2090
leaq 0x1d1d(%rip), %rax      # 0x54d6
jmp 0x3b0b
pushq $0x41
popq %rdx
pushq $0x2
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %ecx
callq 0x409e
pushq $0x4a
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %ecx
callq 0x409e
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3803
cmpl %r14d, %r15d
jae 0x3803
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x37e0
cmpl %r14d, %r15d
jae 0x3b04
movq $0x0, 0x28(%rsp)
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x2, %al
jne 0x3c4b
pushq $0x3
popq %rsi
pushq $0x4
popq %rdx
pushq $0x1
popq %rcx
movl %ebx, %edi
callq 0x409e
movl 0x48(%rsp), %eax
movq %rax, 0x10(%rsp)
movq 0x60(%rsp), %rax
testl %eax, %eax
movl $0x0, %ecx
cmovgl %eax, %ecx
movq %rcx, 0x48(%rsp)
leaq 0x1d5e(%rip), %rax      # 0x55bb
movq %rax, 0x40(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x3cb3
movl $0x0, 0x30(%rsp)
leaq 0x1cd7(%rip), %rdi      # 0x5561
movq 0x18(%rsp), %r15
movl %r15d, %esi
movq 0x60(%rsp), %rdx
xorl %eax, %eax
callq 0x20a0
movq 0x671b(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
movq 0x38(%rsp), %rax
imull %r15d, %eax
movl %r15d, %r13d
shrl $0x8, %r13d
addq 0x8(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x28(%rsp), %rbp
xorl %r15d, %r15d
cmpq %r15, 0x10(%rsp)
je 0x394e
movl $0x20, 0x70(%rsp)
movq 0x18(%rsp), %rax
movb %al, 0x74(%rsp)
movb %r13b, 0x75(%rsp)
movb %r15b, 0x76(%rsp)
movl %ebp, %eax
andl $-0x20, %eax
movq 0x8(%rsp), %rcx
movups (%rcx,%rax), %xmm0
movups 0x10(%rcx,%rax), %xmm1
leaq 0x77(%rsp), %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
orl $-0x1, 0x24(%rsp)
movl %ebx, %edi
pushq $0x17
popq %rsi
leaq 0x70(%rsp), %rdx
pushq $0x27
popq %rcx
leaq 0x24(%rsp), %r8
pushq $0x4
popq %r9
callq 0x410b
cmpq $0x4, %rax
jne 0x3c66
movl 0x24(%rsp), %esi
incq %r15
addq $0x20, %rbp
testl %esi, %esi
je 0x38cf
jmp 0x3c79
xorl %ebp, %ebp
movl %ebx, %edi
xorl %esi, %esi
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
callq 0x409e
movl %ebx, %edi
xorl %esi, %esi
pushq $0x4a
popq %rdx
pushq $0x4
popq %rcx
callq 0x409e
pushq $0x61
popq %r15
movl %ebx, %edi
xorl %esi, %esi
movl %r15d, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3995
cmpl %r14d, %ebp
jae 0x3995
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %ebp
jmp 0x3972
cmpl %r14d, %ebp
jae 0x3b10
movl %ebx, %edi
xorl %esi, %esi
pushq $0x71
popq %rdx
callq 0x3ffa
testb $0x2, %al
jne 0x3c85
movl %ebx, %edi
pushq $0x3
popq %rsi
pushq $0x40
popq %rdx
callq 0x41b4
movzwl %ax, %ebp
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x41ef
cmpl %ebp, %eax
je 0x39f9
movl 0x30(%rsp), %eax
cmpl $0x2, %eax
je 0x3ca0
incl %eax
movl %eax, 0x30(%rsp)
leaq 0x3199(%rip), %rdi      # 0x6b88
callq 0x2070
jmp 0x38c7
cmpq $0x0, 0x18(%rsp)
jne 0x3a71
xorl %ebp, %ebp
movl %ebx, %edi
xorl %esi, %esi
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
callq 0x409e
movl %ebx, %edi
xorl %esi, %esi
pushq $0x4a
popq %rdx
pushq $0x10
popq %rcx
callq 0x409e
pushq $0x61
popq %r15
movl %ebx, %edi
xorl %esi, %esi
movl %r15d, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3a48
cmpl %r14d, %ebp
jae 0x3a48
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %ebp
jmp 0x3a25
cmpl %r14d, %ebp
jae 0x3d3c
movl %ebx, %edi
xorl %esi, %esi
pushq $0x71
popq %rdx
callq 0x3ffa
testb $0x2, %al
jne 0x3d48
leaq 0x30f8(%rip), %rdi      # 0x6b64
callq 0x2070
xorl %ebp, %ebp
movl %ebx, %edi
xorl %esi, %esi
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
callq 0x409e
movl %ebx, %edi
xorl %esi, %esi
pushq $0x4a
popq %rdx
pushq $0x8
popq %rcx
callq 0x409e
pushq $0x61
popq %r15
movl %ebx, %edi
xorl %esi, %esi
movl %r15d, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3ab8
cmpl %r14d, %ebp
jae 0x3ab8
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %ebp
jmp 0x3a95
cmpl %r14d, %ebp
jae 0x3d63
movl %ebx, %edi
xorl %esi, %esi
pushq $0x71
popq %rdx
callq 0x3ffa
incq 0x18(%rsp)
movq 0x28(%rsp), %rcx
addq 0x38(%rsp), %rcx
movq %rcx, 0x28(%rsp)
testb $0x2, %al
je 0x386b
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x1b91(%rip), %rdi      # 0x5690
jmp 0x3ba5
leaq 0x1a1d(%rip), %rax      # 0x5528
movq %rax, 0x40(%rsp)
xorl %r15d, %r15d
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x41b4
movzwl %ax, %esi
movq 0x40(%rsp), %rdi
xorl %eax, %eax
callq 0x20b0
pushq $0x43
popq %rdx
pushq $0x10
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3b62
cmpl %r12d, %r15d
jae 0x3b62
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x3b3f
cmpl %r12d, %r15d
jae 0x3b8f
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x10, %al
jne 0x3bac
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x1b80(%rip), %rdi      # 0x570d
jmp 0x3ba5
pushq $0x61
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %esi
leaq 0x1b4c(%rip), %rdi      # 0x56f1
xorl %eax, %eax
callq 0x20b0
xorl %r15d, %r15d
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
pushq $0x4a
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x409e
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3bf2
cmpl %r14d, %r15d
jae 0x3bf2
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x3bcf
cmpl %r14d, %r15d
jae 0x3c1f
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x4, %al
je 0x3c3c
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x1b66(%rip), %rdi      # 0x5783
jmp 0x3c35
pushq $0x61
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x41b4
movzwl %ax, %esi
leaq 0x1b23(%rip), %rdi      # 0x5758
xorl %eax, %eax
callq 0x20b0
movq 0x8(%rsp), %rdi
callq 0x2030
jmp 0x3416
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x18e4(%rip), %rdi      # 0x5545
jmp 0x3ba5
leaq 0x18fc(%rip), %rdi      # 0x5569
xorl %eax, %eax
callq 0x2060
jmp 0x3bac
leaq 0x1912(%rip), %rdi      # 0x5592
jmp 0x3ba5
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x1949(%rip), %rdi      # 0x55e4
jmp 0x3ba5
leaq 0x1965(%rip), %rdi      # 0x560c
xorl %eax, %eax
callq 0x20b0
jmp 0x3bac
pushq $0x3
popq %rsi
pushq $0x4
popq %rdx
xorl %r15d, %r15d
movl %ebx, %edi
xorl %ecx, %ecx
callq 0x409e
leaq 0x2e08(%rip), %rdi      # 0x6ad4
callq 0x2070
movq 0x62e8(%rip), %r13      # 0x9fc0
movq (%r13), %rdi
callq 0x2160
leaq 0x19c5(%rip), %rdi      # 0x56ad
xorl %eax, %eax
callq 0x20a0
movq (%r13), %rdi
callq 0x2160
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
pushq $0x4a
popq %rdx
pushq $0x20
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
pushq $0x61
popq %rbp
movl %ebx, %edi
xorl %esi, %esi
movl %ebp, %edx
callq 0x3ffa
testb $0x1, %al
je 0x3d6f
cmpl %r14d, %r15d
jae 0x3d6f
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x21c0
incl %r15d
jmp 0x3d19
leaq 0x18e2(%rip), %rax      # 0x5625
jmp 0x3b0b
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x18ee(%rip), %rdi      # 0x564c
jmp 0x3ba5
leaq 0x1908(%rip), %rax      # 0x5672
jmp 0x3b0b
cmpl %r14d, %r15d
jae 0x3e61
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
testb $0x2, %al
jne 0x3e6d
leaq 0x2d66(%rip), %rdi      # 0x6af9
callq 0x2070
movq 0x6221(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
leaq 0x24(%rsp), %r8
orl $-0x1, (%r8)
pushq $0x18
popq %rsi
pushq $0x4
popq %r9
movl %ebx, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x410b
cmpq $0x4, %rax
jne 0x3e88
movl 0x24(%rsp), %edx
testl %edx, %edx
jne 0x3e94
leaq 0x2d2e(%rip), %rdi      # 0x6b1c
callq 0x2070
movq 0x61c6(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
pushq $0x41
popq %rdx
pushq $0x2
popq %rcx
movl %ebx, %edi
xorl %esi, %esi
callq 0x409e
leaq 0x70(%rsp), %rdx
movb $0x1, (%rdx)
leaq 0x24(%rsp), %r8
orl $-0x1, (%r8)
pushq $0x19
popq %rsi
pushq $0x1
popq %rcx
pushq $0x4
popq %r9
movl %ebx, %edi
callq 0x410b
cmpq $0x4, %rax
jne 0x3ea0
movl 0x24(%rsp), %edx
testl %edx, %edx
jne 0x3eac
leaq 0x2cf5(%rip), %rdi      # 0x6b3d
callq 0x2070
movq 0x616c(%rip), %rax      # 0x9fc0
movq (%rax), %rdi
callq 0x2160
jmp 0x3c3c
leaq 0x1863(%rip), %rax      # 0x56cb
jmp 0x3b0b
pushq $0x71
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
callq 0x3ffa
movzbl %al, %esi
leaq 0x18b0(%rip), %rdi      # 0x5733
jmp 0x3ba5
leaq 0x191d(%rip), %rsi      # 0x57ac
jmp 0x27aa
leaq 0x1937(%rip), %rsi      # 0x57d2
jmp 0x27d9
leaq 0x1951(%rip), %rsi      # 0x57f8
jmp 0x27aa
leaq 0x196f(%rip), %rsi      # 0x5822
jmp 0x27d9