// File: /workspace/github_c_makefile_star2_O2/rsa9000[P]regfanalysistools/regfdump.c
// Function: main
int main(int argc, char *argv[])
{
	FILE *fp;
	int res = 0;
	unsigned off;

	if (argc < 2) {
		fprintf(stderr, "Registry file not specified, exit.\n");
		return EXIT_FAILURE;
	}

	rbtree_init(&st.cells);

	st.icd = iconv_open("WCHAR_T", "UTF-16");
	if (st.icd == (iconv_t)-1) {
		fprintf(stderr, "Could not create iconv descriptor to convert UTF-16BE to WCHAR_T\n");
		return EXIT_FAILURE;
	}

	setlocale(LC_CTYPE, "");

	fp = fopen(argv[1], "rb");
	if (!fp) {
		fprintf(stderr, "Could not open registry file %s: %s\n", argv[1], strerror(errno));
		return EXIT_FAILURE;
	}

	res = regf_parse_fheader(fp);
	if (res) {
		fprintf(stderr, "Could not parse file header!\n");
		goto exit;
	}

	st.__data = mmap(NULL, st.data_sz, PROT_READ, MAP_SHARED, fileno(fp),
			 0x1000);
	if (st.__data == MAP_FAILED) {
		fprintf(stderr, "Could mmap hbin data: %s\n",
			strerror(errno));
		goto exit;
	}
	st.data = st.__data;

	res = regf_scan_data(st.data, st.data_sz);
	if (res) {
		fprintf(stderr, "Could not scan hbin data\n");
		goto exit;
	}

	for (off = 0; off < st.data_sz; off += res) {
		res = regf_parse_hbin(off);
		if (res <= 0) {
			PR_WARN(off, "hbin", "could not parse hbin\n");
			goto exit;
		}
	}
	res = 0;

	regf_cells_stat();

exit:
	if (st.data != NULL)
		munmap(st.__data, st.data_sz);

	fclose(fp);

	return res ? EXIT_FAILURE : EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
cmpl $0x1, %edi
jle 0x2328
movq %rsi, %rbx
leaq 0x4e68(%rip), %rdi      # 0x6108
callq 0x262c
leaq 0x1dd8(%rip), %rdi      # 0x3084
leaq 0x1dd9(%rip), %rsi      # 0x308c
callq 0x1170
movq %rax, 0x4e21(%rip)      # 0x60e0
cmpq $-0x1, %rax
je 0x233d
leaq 0x1fea(%rip), %rsi      # 0x32ba
xorl %edi, %edi
callq 0x1120
movq 0x8(%rbx), %rdi
leaq 0x1df3(%rip), %rsi      # 0x30d5
callq 0x1130
testq %rax, %rax
je 0x235b
movq %rax, %rbx
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1100
testl %eax, %eax
movq %rbx, 0x38(%rsp)
jne 0x2394
leaq 0x50(%rsp), %rdi
pushq $0x1
popq %rsi
movl $0x200, %edx            # imm = 0x200
movq %rbx, %rcx
callq 0x1060
cmpl $0x200, %eax            # imm = 0x200
jne 0x23b3
cmpl $0x66676572, 0x50(%rsp) # imm = 0x66676572
jne 0x23df
xorl %eax, %eax
xorl %ecx, %ecx
cmpl $0x80, %eax
je 0x134e
xorl 0x50(%rsp,%rax,4), %ecx
incq %rax
jmp 0x133e
testl %ecx, %ecx
jne 0x2405
movl 0x54(%rsp), %ebx
movl 0x58(%rsp), %ebp
leaq 0x1ecf(%rip), %rdi      # 0x3234
movl %ebx, %esi
movl %ebp, %edx
xorl %eax, %eax
callq 0x1090
movq 0x60(%rsp), %rsi
leaq 0x1ede(%rip), %rdi      # 0x325a
xorl %eax, %eax
callq 0x1090
cmpl $0x0, 0x70(%rsp)
leaq 0x1efe(%rip), %rax      # 0x328d
leaq 0x1ef2(%rip), %rsi      # 0x3288
cmoveq %rax, %rsi
leaq 0x1ed4(%rip), %rdi      # 0x3275
xorl %eax, %eax
callq 0x1090
cmpl %ebp, %ebx
jne 0x2418
movl 0x68(%rsp), %esi
movl 0x6c(%rsp), %edx
movl %esi, %eax
shll $0x4, %eax
orl %edx, %eax
movl %eax, 0x4d33(%rip)      # 0x60f8
movl 0x78(%rsp), %ebx
movl %ebx, 0x4d2d(%rip)      # 0x60fc
movl 0x7c(%rsp), %ebp
movl %ebp, 0x4d27(%rip)      # 0x6100
leaq 0x1edb(%rip), %rdi      # 0x32bb
xorl %r15d, %r15d
xorl %eax, %eax
callq 0x1090
leaq 0x1ee0(%rip), %rdi      # 0x32d1
movl %ebx, %esi
xorl %eax, %eax
callq 0x1090
leaq 0x1ee8(%rip), %rdi      # 0x32e9
movl %ebp, %esi
xorl %eax, %eax
callq 0x1090
movl 0x4cf0(%rip), %ebx      # 0x6100
movq 0x38(%rsp), %rdi
callq 0x10e0
pushq $0x1
popq %rcx
movl $0x1000, %r9d           # imm = 0x1000
xorl %edi, %edi
movq %rbx, %rsi
movl %ecx, %edx
movl %ecx, 0x8(%rsp)
movl %eax, %r8d
callq 0x1080
movq %rax, 0x4cab(%rip)      # 0x60e8
cmpq $-0x1, %rax
je 0x2496
movq %rax, %rbx
movq %rax, 0x4c9f(%rip)      # 0x60f0
movl 0x4ca9(%rip), %eax      # 0x6100
movl %eax, 0x20(%rsp)
movq %rbx, %r14
cmpl 0x20(%rsp), %r15d
jae 0x14f4
movq %r14, %rdi
leaq 0x1ee6(%rip), %rsi      # 0x3359
pushq $0x4
popq %rdx
callq 0x1040
testl %eax, %eax
jne 0x24ca
movq %r15, 0x30(%rsp)
leaq 0x24(%r14), %r13
movl 0x8(%r14), %eax
leaq (%r14,%rax), %rcx
cmpq %rcx, %r13
jae 0x14e5
movl (%r13), %eax
movl %eax, %ebp
negl %ebp
cmovsl %eax, %ebp
movl %r13d, %r15d
subl %ebx, %r15d
pushq $0x1
popq %rdi
pushq $0x30
popq %rsi
callq 0x10b0
movq %rax, %r12
movl %r15d, 0x18(%rax)
movl %ebp, 0x20(%rax)
leaq 0x4c42(%rip), %rdi      # 0x6108
movq %rax, %rsi
callq 0x27af
cmpl $0x0, (%r13)
jle 0x14de
movl $0x1, 0x28(%r12)
movl %ebp, %eax
addq %rax, %r13
jmp 0x148c
addl 0x30(%rsp), %eax
movq %rcx, %r14
movl %eax, %r15d
jmp 0x145e
xorl %ebx, %ebx
cmpl 0x4c04(%rip), %ebx      # 0x6100
jae 0x21f8
movl %ebx, %r14d
addq 0x4be4(%rip), %r14      # 0x60f0
movq %r14, %rdi
leaq 0x1e43(%rip), %rsi      # 0x3359
pushq $0x4
popq %rdx
callq 0x1040
testl %eax, %eax
jne 0x24f9
movl 0x4(%r14), %esi
movl 0x8(%r14), %edx
movq 0x18(%r14), %rcx
leaq 0x1e25(%rip), %rdi      # 0x335e
xorl %eax, %eax
callq 0x1090
movq %r14, 0x48(%rsp)
movl 0x8(%r14), %eax
addl %ebx, %eax
movl %eax, 0x30(%rsp)
movb $0x0, 0x14(%rsp)
movl $0x20202020, 0x10(%rsp) # imm = 0x20202020
movq %rbx, 0x20(%rsp)
leal 0x28(%rbx), %r15d
cmpl 0x30(%rsp), %r15d
jae 0x21dd
movq 0x4b79(%rip), %rsi      # 0x60f0
movl %r15d, %ebp
movl (%rsi,%rbp), %eax
movl %eax, %edx
negl %edx
movl %eax, %ebx
cmovnsl %edx, %ebx
testl %eax, %eax
jle 0x15a2
leaq 0x1e06(%rip), %rdi      # 0x3397
movl %r15d, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0x1090
addl %ebx, %r15d
jmp 0x1565
movzbl 0x4(%rsi,%rbp), %ecx
leal -0x6c(%rcx), %eax
cmpl $0xa, %eax
ja 0x162e
leaq 0x1a4e(%rip), %rdi      # 0x3004
movslq (%rdi,%rax,4), %rax
addq %rdi, %rax
jmpq *%rax
movzbl 0x5(%rsi,%rbp), %eax
cmpl $0x69, %eax
je 0x1901
cmpl $0x68, %eax
je 0x18b9
pushq $0x6c
popq %rcx
cmpl $0x66, %eax
jne 0x1887
leaq 0x1e16(%rip), %rdi      # 0x33ff
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x4af6(%rip), %r12      # 0x60f0
movzwl 0x6(%r12,%rbp), %ecx
leaq 0x8(,%rcx,8), %rax
movslq (%r12,%rbp), %rdx
negq %rdx
cmpq %rdx, %rax
jbe 0x1e35
leaq 0x2304(%rip), %rdi      # 0x3923
movl %r15d, %esi
leaq 0x1dd3(%rip), %rdx      # 0x33fc
jmp 0x1948
cmpl $0x64, %ecx
jne 0x16f2
movb 0x5(%rsi,%rbp), %al
pushq $0x64
popq %rcx
cmpb $0x62, %al
jne 0x1887
leaq 0x1e77(%rip), %rdi      # 0x34c4
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x4a92(%rip), %r14      # 0x60f0
movzwl 0x6(%r14,%rbp), %edx
leaq 0x25c3(%rip), %rdi      # 0x3c2e
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1090
cmpw $0x0, 0x6(%r14,%rbp)
je 0x159d
movl 0x8(%r14,%rbp), %edi
callq 0x260a
leaq 0x25aa(%rip), %rdi      # 0x3c3f
testq %rax, %rax
je 0x209d
incl 0x24(%rax)
orb $0x2, 0x29(%rax)
leaq 0x50(%rsp), %rdi
pushq $0x10
popq %rsi
leaq 0x2100(%rip), %rdx      # 0x37b4
leaq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x10a0
movl 0x8(%r14,%rbp), %esi
movq 0x4a24(%rip), %r12      # 0x60f0
movl (%r12,%rsi), %eax
testl %eax, %eax
jle 0x2065
leaq 0x25d5(%rip), %rdi      # 0x3cb4
leaq 0x2600(%rip), %rdx      # 0x3ce6
xorl %eax, %eax
callq 0x2be8
jmp 0x2096
leal -0x61(%rcx), %eax
cmpb $0x19, %al
ja 0x18aa
movb 0x5(%rsi,%rbp), %al
jmp 0x1887
movb 0x5(%rsi,%rbp), %al
pushq $0x76
popq %rcx
cmpb $0x6b, %al
jne 0x1887
leaq 0x1d81(%rip), %rdi      # 0x349d
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x49c3(%rip), %rax      # 0x60f0
leaq (%rax,%rbp), %r14
movzwl 0x6(%rax,%rbp), %edx
testl %edx, %edx
je 0x1c60
testb $0x1, 0x14(%r14)
jne 0x1c75
leaq 0x18(%r14), %rdi
movl %edx, %esi
callq 0x2522
leaq 0x2359(%rip), %rdi      # 0x3ab4
leaq 0x10(%rsp), %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1090
jmp 0x1c8c
movb 0x5(%rsi,%rbp), %al
pushq $0x72
popq %rcx
cmpb $0x69, %al
jne 0x1887
leaq 0x1cf0(%rip), %rdi      # 0x3475
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x495a(%rip), %r14      # 0x60f0
movzwl 0x6(%r14,%rbp), %ecx
leaq 0x8(,%rcx,4), %rax
movslq (%r14,%rbp), %rdx
negq %rdx
cmpq %rdx, %rax
jbe 0x194d
leaq 0x2168(%rip), %rdi      # 0x3923
movl %r15d, %esi
leaq 0x1cad(%rip), %rdx      # 0x3472
jmp 0x1948
movb 0x5(%rsi,%rbp), %al
pushq $0x6e
popq %rcx
cmpb $0x6b, %al
jne 0x1887
leaq 0x1bd1(%rip), %rdi      # 0x33b1
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x48ff(%rip), %rax      # 0x60f0
leaq (%rax,%rbp), %r14
testb $0x20, 0x6(%rax,%rbp)
jne 0x19cb
leaq 0x54(%r14), %rdi
movzwl 0x50(%r14), %esi
callq 0x2522
leaq 0x1d31(%rip), %rdi      # 0x3546
leaq 0x10(%rsp), %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1090
jmp 0x19e7
movb 0x5(%rsi,%rbp), %al
pushq $0x73
popq %rcx
cmpb $0x6b, %al
jne 0x1887
leaq 0x1b9a(%rip), %rdi      # 0x33d5
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x48a4(%rip), %r14      # 0x60f0
movl 0x8(%r14,%rbp), %edx
movl 0xc(%r14,%rbp), %ecx
leaq 0x208d(%rip), %rdi      # 0x38ea
leaq 0x10(%rsp), %r12
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x10(%r14,%rbp), %edx
leaq 0x2095(%rip), %rdi      # 0x390d
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
jmp 0x159d
leal -0x61(%rax), %esi
cmpb $0x19, %sil
ja 0x18aa
movzbl %al, %r8d
leaq 0x1c4e(%rip), %rdi      # 0x34e9
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
jmp 0x159d
leaq 0x1c65(%rip), %rdi      # 0x3516
movl %r15d, %esi
jmp 0x1596
leaq 0x1b66(%rip), %rdi      # 0x3426
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x481f(%rip), %rax      # 0x60f0
movzwl 0x6(%rax,%rbp), %ecx
leaq 0x8(,%rcx,8), %rdx
movslq (%rax,%rbp), %rsi
negq %rsi
cmpq %rsi, %rdx
jbe 0x1d2b
leaq 0x202e(%rip), %rdi      # 0x3923
movl %r15d, %esi
leaq 0x1b24(%rip), %rdx      # 0x3423
jmp 0x1948
leaq 0x1b45(%rip), %rdi      # 0x344d
movl %r15d, %esi
xorl %eax, %eax
callq 0x1090
movq 0x47d7(%rip), %r14      # 0x60f0
movzwl 0x6(%r14,%rbp), %ecx
leaq 0x8(,%rcx,4), %rax
movslq (%r14,%rbp), %rdx
negq %rdx
cmpq %rdx, %rax
jbe 0x1db7
leaq 0x1fe5(%rip), %rdi      # 0x3923
movl %r15d, %esi
leaq 0x1b02(%rip), %rdx      # 0x344a
jmp 0x20ac
addq %rbp, %r14
leaq 0x20d1(%rip), %rdi      # 0x3a28
leaq 0x10(%rsp), %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x1090
xorl %r12d, %r12d
movzwl 0x6(%r14), %eax
cmpq %rax, %r12
jae 0x159d
movl 0x8(%r14,%r12,4), %ecx
leaq 0x20b7(%rip), %rdi      # 0x3a39
leaq 0x10(%rsp), %rsi
movl %r12d, %edx
xorl %eax, %eax
callq 0x1090
movl 0x8(%r14,%r12,4), %edi
callq 0x260a
testq %rax, %rax
je 0x19a9
incl 0x24(%rax)
orb $0x10, 0x28(%rax)
jmp 0x19c6
movl 0x8(%r14,%r12,4), %ecx
leaq 0x20a0(%rip), %rdi      # 0x3a55
movl %r15d, %esi
leaq 0x1ab3(%rip), %rdx      # 0x3472
xorl %eax, %eax
callq 0x2be8
incq %r12
jmp 0x1968
movzwl 0x50(%r14), %edx
leaq 0x54(%r14), %rcx
leaq 0x1b59(%rip), %rdi      # 0x3534
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1090
movzwl 0x6(%r14), %r13d
leaq 0x18c7(%rip), %rcx      # 0x32ba
testl %r13d, %r13d
je 0x1b6a
leaq 0x480d(%rip), %r12      # 0x6210
cmpw $0x80, %r13w
jb 0x1a26
movl $0x6e6b6e, 0x47fe(%rip) # imm = 0x6E6B6E
movl $0x6e75202c, 0x47f1(%rip) # imm = 0x6E75202C
leaq 0x47f0(%rip), %r12      # 0x6216
testb $0x40, %r13b
je 0x1a53
leaq 0x47dd(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1db2(%rip), %rdx      # 0x37f9
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
testb $0x20, %r13b
je 0x1a80
leaq 0x47b0(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1d8e(%rip), %rdx      # 0x3802
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
testb $0x10, %r13b
je 0x1aad
leaq 0x4783(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1d69(%rip), %rdx      # 0x380a
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
testb $0x8, %r13b
je 0x1ada
leaq 0x4756(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1d46(%rip), %rdx      # 0x3814
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
testb $0x4, %r13b
je 0x1b07
leaq 0x4729(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1d21(%rip), %rdx      # 0x381c
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
testb $0x2, %r13b
je 0x1b34
leaq 0x46fc(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1cfc(%rip), %rdx      # 0x3824
xorl %eax, %eax
callq 0x10a0
cltq
addq %rax, %r12
leaq 0x46d7(%rip), %rcx      # 0x6212
testb $0x1, %r13b
je 0x1b6a
leaq 0x46c8(%rip), %rsi      # 0x6210
subq %r12, %rsi
addq $0x100, %rsi            # imm = 0x100
movq %r12, %rdi
leaq 0x1ccf(%rip), %rdx      # 0x382b
xorl %eax, %eax
callq 0x10a0
leaq 0x46a8(%rip), %rcx      # 0x6212
leaq 0x19e6(%rip), %rdi      # 0x3557
leaq 0x10(%rsp), %r12
movq %r12, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x1090
movzwl 0x52(%r14), %edx
movl 0x38(%r14), %ecx
leaq 0x19de(%rip), %rdi      # 0x3571
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movq 0xc(%r14), %rdx
leaq 0x19ee(%rip), %rdi      # 0x3596
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x18(%r14), %edx
leaq 0x19f4(%rip), %rdi      # 0x35b1
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x34(%r14), %edx
leaq 0x19f5(%rip), %rdi      # 0x35c7
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x1c(%r14), %edx
movl 0x24(%r14), %ecx
movl 0x3c(%r14), %r8d
movl 0x40(%r14), %r9d
leaq 0x19ec(%rip), %rdi      # 0x35df
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x20(%r14), %edx
movl 0x28(%r14), %ecx
leaq 0x1a1e(%rip), %rdi      # 0x362a
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
movl 0x2c(%r14), %edx
movl 0x30(%r14), %ecx
movl 0x44(%r14), %r8d
movl 0x48(%r14), %r9d
leaq 0x1a23(%rip), %rdi      # 0x3650
movq %r12, %rsi
xorl %eax, %eax
callq 0x1090
testb $0x4, 0x6(%r14)
jne 0x1f06
movl 0x18(%r14), %edi
callq 0x260a
testq %rax, %rax
je 0x1eea
incl 0x24(%rax)
orb $0x2, 0x28(%rax)
jmp 0x1f06
leaq 0x1e24(%rip), %rdi      # 0x3a8b
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1090
jmp 0x1c8c
leaq 0x18(%r14), %rcx
leaq 0x1e22(%rip), %rdi      # 0x3aa2
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1090
movl 0x10(%r14), %edx
movl 0x8(%r14), %r8d
movl 0xc(%r14), %ecx
leaq 0x1f87(%rip), %r9       # 0x3c26
cmpq $0xb, %rdx
ja 0x1cb3
leaq 0x1384(%rip), %rax      # 0x3030
movslq (%rax,%rdx,4), %r9
addq %rax, %r9
leaq 0x1e0b(%rip), %rdi      # 0x3ac5
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1090
movl 0x8(%r14), %ecx
testl %ecx, %ecx
js 0x1d10
movl 0xc(%r14), %edi
callq 0x260a
testq %rax, %rax
je 0x1ec2
movl 0x8(%r14), %esi
movl 0x440e(%rip), %edx      # 0x60f8
incl 0x24(%rax)
movl 0x28(%rax), %ecx
cmpl $0x3fd9, %esi           # imm = 0x3FD9
jb 0x1edc
cmpl $0x14, %edx
jbe 0x1edc
orl $0x100, %ecx            # imm = 0x100
jmp 0x1ee2
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl $0x5, %ecx
jb 0x159d
leaq 0x1dd7(%rip), %rdi      # 0x3afd
jmp 0x1ecd
leaq (%rax,%rbp), %r14
leaq (%rax,%rbp), %r13
addq $0x8, %r13
leaq 0x1c82(%rip), %rdi      # 0x39c0
leaq 0x10(%rsp), %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x1090
xorl %r12d, %r12d
movzwl 0x6(%r14), %eax
cmpq %rax, %r12
jae 0x159d
movl (%r13,%r12,8), %ecx
movl 0x4(%r13,%r12,8), %r8d
leaq 0x1c63(%rip), %rdi      # 0x39d1
leaq 0x10(%rsp), %rsi
movl %r12d, %edx
xorl %eax, %eax
callq 0x1090
movl (%r13,%r12,8), %edi
callq 0x260a
testq %rax, %rax
je 0x1d95
incl 0x24(%rax)
orb $0x2, 0x28(%rax)
jmp 0x1db2
movl (%r13,%r12,8), %ecx
leaq 0x1bef(%rip), %rdi      # 0x3990
movl %r15d, %esi
leaq 0x1678(%rip), %rdx      # 0x3423
xorl %eax, %eax
callq 0x2be8
incq %r12
jmp 0x1d4f
addq %rbp, %r14
leaq 0x1c3a(%rip), %rdi      # 0x39fb
leaq 0x10(%rsp), %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x1090
xorl %r12d, %r12d
movzwl 0x6(%r14), %eax
cmpq %rax, %r12
jae 0x159d
movl 0x8(%r14,%r12,4), %ecx
leaq 0x1c20(%rip), %rdi      # 0x3a0c
leaq 0x10(%rsp), %rsi
movl %r12d, %edx
xorl %eax, %eax
callq 0x1090
movl 0x8(%r14,%r12,4), %edi
callq 0x260a
testq %rax, %rax
je 0x1e13
incl 0x24(%rax)
orb $0x2, 0x28(%rax)
jmp 0x1e30
movl 0x8(%r14,%r12,4), %ecx
leaq 0x1b71(%rip), %rdi      # 0x3990
movl %r15d, %esi
leaq 0x1621(%rip), %rdx      # 0x344a
xorl %eax, %eax
callq 0x2be8
incq %r12
jmp 0x1dd2
leaq (%r12,%rbp), %r14
leaq 0x1b17(%rip), %rdi      # 0x3957
leaq 0x10(%rsp), %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x1090
addq %rbp, %r12
addq $0xc, %r12
xorl %r13d, %r13d
movzwl 0x6(%r14), %eax
cmpq %rax, %r13
jae 0x159d
movl 0x8(%r14,%r13,8), %ecx
leaq 0x1af6(%rip), %rdi      # 0x3968
leaq 0x10(%rsp), %rsi
movl %r13d, %edx
movq %r12, %r8
xorl %eax, %eax
callq 0x1090
movl 0x8(%r14,%r13,8), %edi
callq 0x260a
testq %rax, %rax
je 0x1e9c
incl 0x24(%rax)
orb $0x2, 0x28(%rax)
jmp 0x1eb9
movl 0x8(%r14,%r13,8), %ecx
leaq 0x1ae8(%rip), %rdi      # 0x3990
movl %r15d, %esi
leaq 0x154a(%rip), %rdx      # 0x33fc
xorl %eax, %eax
callq 0x2be8
incq %r13
addq $0x8, %r12
jmp 0x1e58
movl 0xc(%r14), %ecx
leaq 0x1c6e(%rip), %rdi      # 0x3b3b
movl %r15d, %esi
leaq 0x15c3(%rip), %rdx      # 0x349a
jmp 0x20ac
orl $0x80, %ecx
movl %ecx, 0x28(%rax)
jmp 0x159d
movl 0x18(%r14), %ecx
leaq 0x17a4(%rip), %rdi      # 0x3699
movl %r15d, %esi
leaq 0x1912(%rip), %rdx      # 0x3811
xorl %eax, %eax
callq 0x2be8
movl 0x38(%r14), %edi
cmpl $-0x1, %edi
je 0x1f3e
callq 0x260a
testq %rax, %rax
je 0x1f22
incl 0x24(%rax)
orb $0x8, 0x28(%rax)
jmp 0x1f3e
movl 0x38(%r14), %ecx
leaq 0x179f(%rip), %rdi      # 0x36cc
movl %r15d, %esi
leaq 0x18da(%rip), %rdx      # 0x3811
xorl %eax, %eax
callq 0x2be8
movl 0x34(%r14), %edi
callq 0x260a
testq %rax, %rax
je 0x1f55
incl 0x24(%rax)
orb $0x4, 0x28(%rax)
jmp 0x1f71
movl 0x34(%r14), %ecx
leaq 0x17a3(%rip), %rdi      # 0x3703
movl %r15d, %esi
leaq 0x18a7(%rip), %rdx      # 0x3811
xorl %eax, %eax
callq 0x2be8
cmpl $0x0, 0x1c(%r14)
je 0x1fab
movl 0x24(%r14), %edi
callq 0x260a
testq %rax, %rax
je 0x1f8f
incl 0x24(%rax)
orb $0x10, 0x28(%rax)
jmp 0x1fab
movl 0x24(%r14), %ecx
leaq 0x17a9(%rip), %rdi      # 0x3743
movl %r15d, %esi
leaq 0x186d(%rip), %rdx      # 0x3811
xorl %eax, %eax
callq 0x2be8
cmpl $0x0, 0x2c(%r14)
je 0x159d
movl 0x30(%r14), %edi
callq 0x260a
leaq 0x17b6(%rip), %rdi      # 0x377c
testq %rax, %rax
je 0x2055
incl 0x24(%rax)
orb $0x20, 0x28(%rax)
leaq 0x50(%rsp), %rdi
pushq $0x10
popq %rsi
leaq 0x17cf(%rip), %rdx      # 0x37b4
leaq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x10a0
movl 0x30(%r14), %esi
movq 0x40f4(%rip), %r12      # 0x60f0
movl (%r12,%rsi), %eax
testl %eax, %eax
jle 0x201b
leaq 0x182b(%rip), %rdi      # 0x3836
leaq 0x1854(%rip), %rdx      # 0x3866
xorl %eax, %eax
callq 0x2be8
jmp 0x204e
movl 0x2c(%r14), %r13d
leaq (,%r13,4), %rcx
negl %eax
addq $-0x4, %rax
cmpq %rax, %rcx
jbe 0x20b8
leaq 0x182e(%rip), %rdi      # 0x386b
leaq 0x1822(%rip), %rdx      # 0x3866
movl %r13d, %ecx
xorl %eax, %eax
callq 0x2be8
leaq 0x1764(%rip), %rdi      # 0x37b9
movl 0x30(%r14), %ecx
movl %r15d, %esi
leaq 0x17ae(%rip), %rdx      # 0x3811
jmp 0x20ac
movzwl 0x6(%r14,%rbp), %ecx
leal (,%rcx,4), %edx
negl %eax
addq $-0x4, %rax
cmpq %rax, %rdx
jbe 0x2143
leaq 0x1c63(%rip), %rdi      # 0x3ceb
leaq 0x1c57(%rip), %rdx      # 0x3ce6
xorl %eax, %eax
callq 0x2be8
leaq 0x1bdc(%rip), %rdi      # 0x3c79
movl 0x8(%r14,%rbp), %ecx
movl %r15d, %esi
leaq 0x1415(%rip), %rdx      # 0x34c1
xorl %eax, %eax
callq 0x2be8
jmp 0x159d
movq %rsi, 0x28(%rsp)
addq %rsi, %r12
xorl %ebp, %ebp
movl $0x0, 0xc(%rsp)
cmpq %rbp, %r13
je 0x212c
movl 0x4(%r12,%rbp,4), %ecx
leaq 0x17c8(%rip), %rdi      # 0x38a3
leaq 0x50(%rsp), %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0x1090
movl 0x4(%r12,%rbp,4), %edi
callq 0x260a
testq %rax, %rax
je 0x2101
incl 0x24(%rax)
orb $0x40, 0x28(%rax)
jmp 0x2127
movl 0x4(%r12,%rbp,4), %ecx
leaq 0x17ab(%rip), %rdi      # 0x38b8
movq 0x28(%rsp), %rsi
leaq 0x174d(%rip), %rdx      # 0x3866
xorl %eax, %eax
callq 0x2be8
pushq $-0x1
popq %rax
movl %eax, 0xc(%rsp)
incq %rbp
jmp 0x20ca
leaq 0x1686(%rip), %rdi      # 0x37b9
cmpl $0x0, 0xc(%rsp)
jne 0x2055
jmp 0x159d
movq %r14, 0x40(%rsp)
movq %rsi, 0x28(%rsp)
addq %rsi, %r12
movl %ecx, %r14d
xorl %r13d, %r13d
movl $0x0, 0xc(%rsp)
cmpq %r13, %r14
je 0x21c1
movl 0x4(%r12,%r13,4), %ecx
leaq 0x1bb6(%rip), %rdi      # 0x3d25
leaq 0x50(%rsp), %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x1090
movl 0x4(%r12,%r13,4), %edi
callq 0x260a
testq %rax, %rax
je 0x2196
incl 0x24(%rax)
orb $0x4, 0x29(%rax)
jmp 0x21bc
movl 0x4(%r12,%r13,4), %ecx
leaq 0x1b98(%rip), %rdi      # 0x3d3a
movq 0x28(%rsp), %rsi
leaq 0x1b38(%rip), %rdx      # 0x3ce6
xorl %eax, %eax
callq 0x2be8
pushq $-0x1
popq %rax
movl %eax, 0xc(%rsp)
incq %r13
jmp 0x215e
leaq 0x1ab1(%rip), %rdi      # 0x3c79
cmpl $0x0, 0xc(%rsp)
movq 0x40(%rsp), %r14
jne 0x209d
jmp 0x159d
movq 0x48(%rsp), %rax
movl 0x8(%rax), %eax
testl %eax, %eax
jle 0x22fd
addl 0x20(%rsp), %eax
movl %eax, %ebx
jmp 0x14f6
movq 0x3f09(%rip), %rsi      # 0x6108
leaq 0x3f0a(%rip), %r13      # 0x6110
movq %r13, %rbx
cmpq %r13, %rsi
je 0x221d
leaq 0x3ef3(%rip), %rdi      # 0x6108
callq 0x263f
movq %rax, %rbx
leaq 0x3ee4(%rip), %r14      # 0x6108
xorl %r15d, %r15d
xorl %ebp, %ebp
xorl %r12d, %r12d
cmpq %r13, %rbx
je 0x22da
movl 0x28(%rbx), %ecx
testb $0x1, %cl
jne 0x2286
cmpl $0x0, 0x24(%rbx)
jne 0x2261
movl 0x18(%rbx), %esi
leaq 0x1b6d(%rip), %rdi      # 0x3dba
leaq 0x15a0(%rip), %rdx      # 0x37f4
xorl %eax, %eax
callq 0x2be8
incl %r12d
movl 0x28(%rbx), %ecx
leal -0x1(%rcx), %eax
testl %eax, %ecx
jne 0x22a8
testl $0xfffffff9, %ecx       # imm = 0xFFFFFFF9
je 0x22c4
movl 0x24(%rbx), %r8d
cmpl $0x2, %r8d
jb 0x22c4
movl 0x18(%rbx), %esi
leaq 0x1ba2(%rip), %rdi      # 0x3e26
jmp 0x22b6
incl %ebp
cmpl $0x2, %ecx
setb %al
movl 0x24(%rbx), %r8d
testl %r8d, %r8d
sete %dl
testb %dl, %al
jne 0x22c4
movl 0x18(%rbx), %esi
leaq 0x1acd(%rip), %rdi      # 0x3d73
jmp 0x22b6
movl 0x18(%rbx), %esi
movl 0x24(%rbx), %r8d
leaq 0x1b23(%rip), %rdi      # 0x3dd9
leaq 0x1537(%rip), %rdx      # 0x37f4
xorl %eax, %eax
callq 0x2be8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2692
movq %rax, %rbx
incl %r15d
jmp 0x222c
leaq 0x1b8f(%rip), %rdi      # 0x3e70
movl $0x0, 0x8(%rsp)
movl %r15d, %esi
movl %ebp, %edx
movl %r12d, %ecx
xorl %eax, %eax
callq 0x2be8
jmp 0x245a
setne %al
movzbl %al, %eax
movl %eax, 0x8(%rsp)
movq 0x20(%rsp), %rbx
leaq 0xe3c(%rip), %rdi       # 0x314f
leaq 0x103f(%rip), %rdx      # 0x3359
movl %ebx, %esi
xorl %eax, %eax
callq 0x2be8
jmp 0x245a
movq 0x3cc9(%rip), %rax      # 0x5ff8
movq (%rax), %rcx
leaq 0xd27(%rip), %rdi       # 0x3060
pushq $0x23
jmp 0x2350
movq 0x3cb4(%rip), %rax      # 0x5ff8
movq (%rax), %rcx
leaq 0xd45(%rip), %rdi       # 0x3093
pushq $0x41
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
jmp 0x238c
movq 0x3c96(%rip), %rax      # 0x5ff8
movq (%rax), %r14
movq 0x8(%rbx), %rbx
callq 0x1030
movl (%rax), %edi
callq 0x1160
leaq 0xd5c(%rip), %rsi       # 0x30d8
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x10c0
pushq $0x1
popq %rax
jmp 0x2484
movq 0x3c5d(%rip), %rax      # 0x5ff8
movq (%rax), %rbx
callq 0x1030
movl (%rax), %edi
callq 0x1160
leaq 0xdc4(%rip), %rsi       # 0x3175
jmp 0x23d0
movq 0x3c3e(%rip), %rax      # 0x5ff8
movq (%rax), %rbx
callq 0x1030
movl (%rax), %edi
callq 0x1160
leaq 0xde3(%rip), %rsi       # 0x31b3
leaq 0xdc9(%rip), %rdx       # 0x31a0
movq %rbx, %rdi
movq %rax, %rcx
jmp 0x23fc
movq 0x3c12(%rip), %rax      # 0x5ff8
movq (%rax), %rdi
leaq 0xdec(%rip), %rsi       # 0x31dc
leaq 0xda9(%rip), %rdx       # 0x31a0
leaq 0x50(%rsp), %rcx
xorl %eax, %eax
callq 0x10c0
jmp 0x2437
movq 0x3bec(%rip), %rax      # 0x5ff8
movq (%rax), %rdi
leaq 0xdf5(%rip), %rsi       # 0x320b
jmp 0x2429
movq 0x3bd9(%rip), %rax      # 0x5ff8
movq (%rax), %rdi
leaq 0xe6a(%rip), %rsi       # 0x3293
leaq 0xd70(%rip), %rdx       # 0x31a0
xorl %eax, %eax
callq 0x10c0
movq 0x3bba(%rip), %rax      # 0x5ff8
movq (%rax), %rcx
leaq 0xcb5(%rip), %rdi       # 0x30fd
pushq $0x1d
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x1
popq %rax
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x3c8e(%rip)      # 0x60f0
je 0x2476
movq 0x3c7d(%rip), %rdi      # 0x60e8
movl 0x3c8f(%rip), %esi      # 0x6100
callq 0x1110
movq 0x38(%rsp), %rdi
callq 0x1070
movl 0x8(%rsp), %eax
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x3b5b(%rip), %rax      # 0x5ff8
movq (%rax), %rbx
callq 0x1030
movl (%rax), %edi
callq 0x1160
leaq 0xc68(%rip), %rsi       # 0x311b
movl $0x0, 0x8(%rsp)
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10c0
jmp 0x245a
movq 0x3b27(%rip), %r15      # 0x5ff8
movq (%r15), %rdi
subl %ebx, %r14d
leaq 0xe22(%rip), %rsi       # 0x3300
movl %r14d, %edx
xorl %eax, %eax
callq 0x10c0
movq (%r15), %rcx
leaq 0xc43(%rip), %rdi       # 0x3135
pushq $0x19
jmp 0x244a
movq 0x3af8(%rip), %rax      # 0x5ff8
movq (%rax), %rdi
leaq 0xe17(%rip), %rsi       # 0x3321
leaq 0xe3d(%rip), %rdx       # 0x334e
movl %ebx, %ecx
movq %r14, %r8
xorl %eax, %eax
callq 0x10c0
jmp 0x230c