// File: /workspace/github_c_makefile_star2_O3/aparrish[P]rwet-examples-c/concordance.c
// Function: main
int main() {

	word_count_t* concordance = NULL;
	word_count_t* word_count = NULL;
	word_count_t* tmp = NULL;
	char* line;
	int len;

	while (!feof(stdin)) {
		len = ap_getline(&line, stdin);

		/* iterate through each word in line */
		char* word;
		word = strtok(line, " \n");
		while (word != NULL) {
			/* find word count in hash */
			HASH_FIND_STR(concordance, word, word_count);
			/* if found, update count */
			if (word_count != NULL) {
				word_count->count++;
			}
			/* otherwise, alloc a new structure and add it to the hash */
			else {
				word_count = (word_count_t*)malloc(sizeof(word_count_t));
				/* malloc word, copy into it */
				word_count->word = (char*)malloc(strlen(word)+1);
				strcpy(word_count->word, word);
				word_count->count = 1;
				HASH_ADD_KEYPTR(hh, concordance, word_count->word,
						strlen(word_count->word), word_count);
			}
			word = strtok(NULL, " \n");
		}

		free(line);
	}

	/* sort by count */
	HASH_SORT(concordance, compare_count);

	/* iterate through the hash, deleting and freeing as we go */
	HASH_ITER(hh, concordance, word_count, tmp) {
		printf("%s: %d\n", word_count->word, word_count->count);
		HASH_DEL(concordance, word_count);
		free(word_count->word);
		free(word_count);
	}

	return 0;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x2ddb(%rip), %rbx      # 0x3fe0
movq (%rbx), %rdi
callq 0x1080
testl %eax, %eax
je 0x1222
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %ebp, %ebp
movq (%rbx), %rsi
movq %rsp, %rdi
callq 0x1c4c
movq (%rsp), %rdi
leaq 0xe22(%rip), %rbx       # 0x205c
movq %rbx, %rsi
callq 0x10c0
testq %rax, %rax
je 0x19a0
movq %rax, %r15
testq %rbp, %rbp
je 0x14d8
movq %r15, %rdi
callq 0x1050
movq %rax, %r12
cmpl $0xc, %r12d
jb 0x138c
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movl $0xfeedbeef, %ecx       # imm = 0xFEEDBEEF
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movq %r15, %rax
movl %r12d, %edi
movsbl (%rax), %r8d
addl %esi, %r8d
movsbl 0x1(%rax), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0x2(%rax), %r8d
shll $0x10, %r8d
movzbl 0x3(%rax), %esi
shll $0x18, %esi
addl %r8d, %esi
addl %r9d, %esi
movsbl 0x4(%rax), %r8d
addl %edx, %r8d
movsbl 0x5(%rax), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0x6(%rax), %r8d
shll $0x10, %r8d
movzbl 0x7(%rax), %edx
shll $0x18, %edx
addl %r8d, %edx
addl %r9d, %edx
movsbl 0x8(%rax), %r8d
addl %ecx, %r8d
movsbl 0x9(%rax), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0xa(%rax), %r8d
shll $0x10, %r8d
movzbl 0xb(%rax), %ecx
shll $0x18, %ecx
addl %r8d, %ecx
addl %r9d, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %r8d
shrl $0xd, %r8d
xorl %esi, %r8d
subl %ecx, %edx
subl %r8d, %edx
movl %r8d, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %r8d, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0xd, %edx
xorl %ecx, %edx
subl %esi, %r8d
subl %edx, %r8d
movl %edx, %ecx
shrl $0xc, %ecx
xorl %r8d, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %r8d
shll $0x10, %r8d
xorl %esi, %r8d
subl %ecx, %edx
subl %r8d, %edx
movl %r8d, %r9d
shrl $0x5, %r9d
xorl %edx, %r9d
subl %r8d, %ecx
subl %r9d, %ecx
movl %r9d, %esi
shrl $0x3, %esi
xorl %ecx, %esi
subl %r9d, %r8d
subl %esi, %r8d
movl %esi, %edx
shll $0xa, %edx
xorl %r8d, %edx
subl %esi, %r9d
subl %edx, %r9d
movl %edx, %ecx
shrl $0xf, %ecx
xorl %r9d, %ecx
addq $0xc, %rax
addl $-0xc, %edi
cmpl $0xb, %edi
ja 0x1281
jmp 0x13a1
movl $0xfeedbeef, %ecx       # imm = 0xFEEDBEEF
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movl %r12d, %edi
movq %r15, %rax
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
addl %r12d, %ecx
decl %edi
cmpl $0xa, %edi
ja 0x1431
leaq 0xc4e(%rip), %r8        # 0x2004
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movzbl 0xa(%rax), %edi
shll $0x18, %edi
addl %ecx, %edi
movl %edi, %ecx
movsbl 0x9(%rax), %edi
shll $0x10, %edi
addl %ecx, %edi
movl %edi, %ecx
movsbl 0x8(%rax), %edi
shll $0x8, %edi
addl %ecx, %edi
movl %edi, %ecx
movzbl 0x7(%rax), %edi
shll $0x18, %edi
addl %edx, %edi
movl %edi, %edx
movsbl 0x6(%rax), %edi
shll $0x10, %edi
addl %edx, %edi
movl %edi, %edx
movsbl 0x5(%rax), %edi
shll $0x8, %edi
addl %edx, %edi
movl %edi, %edx
movsbl 0x4(%rax), %edi
addl %edx, %edi
movl %edi, %edx
movzbl 0x3(%rax), %edi
shll $0x18, %edi
addl %esi, %edi
movl %edi, %esi
movsbl 0x2(%rax), %edi
shll $0x10, %edi
addl %esi, %edi
movl %edi, %esi
movsbl 0x1(%rax), %edi
shll $0x8, %edi
addl %esi, %edi
movl %edi, %esi
movsbl (%rax), %eax
addl %esi, %eax
movl %eax, %esi
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %eax
shrl $0xd, %eax
xorl %esi, %eax
subl %ecx, %edx
subl %eax, %edx
movl %eax, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %eax, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0xd, %edx
xorl %ecx, %edx
subl %esi, %eax
subl %edx, %eax
movl %edx, %ecx
shrl $0xc, %ecx
xorl %eax, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %eax
shll $0x10, %eax
xorl %esi, %eax
subl %ecx, %edx
subl %eax, %edx
movl %eax, %esi
shrl $0x5, %esi
xorl %edx, %esi
subl %eax, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0x3, %edx
xorl %ecx, %edx
subl %esi, %eax
subl %edx, %eax
movl %edx, %ecx
shll $0xa, %ecx
xorl %eax, %ecx
addl %ecx, %edx
subl %edx, %esi
shrl $0xf, %ecx
xorl %esi, %ecx
movq 0x10(%rbp), %r14
movl 0x8(%r14), %eax
decl %eax
andl %ecx, %eax
movq (%r14), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %r13
testq %r13, %r13
je 0x14d8
subq 0x20(%r14), %r13
movl 0x40(%r13), %eax
cmpq %rax, %r12
jne 0x14d2
movq 0x38(%r13), %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x10a0
testl %eax, %eax
je 0x1976
movq 0x30(%r13), %r13
jmp 0x14a9
movl $0x48, %edi
callq 0x1090
movq %rax, %r12
movq %r15, %rdi
callq 0x1050
leaq 0x1(%rax), %rdi
callq 0x1090
movq %rax, %r13
movq %rax, (%r12)
movq %rax, %rdi
movq %r15, %rsi
callq 0x1040
movl $0x1, 0x8(%r12)
leaq 0x10(%r12), %r14
movq $0x0, 0x20(%r12)
movq %r13, 0x38(%r12)
movq %r13, %rdi
callq 0x1050
movl %eax, 0x40(%r12)
testq %rbp, %rbp
je 0x1551
movq 0x10(%rbp), %r15
movq 0x18(%r15), %rax
movq %r12, 0x10(%rax)
subq 0x20(%r15), %rax
movq %rax, 0x18(%r12)
movq %r14, 0x18(%r15)
jmp 0x15ba
movq $0x0, 0x18(%r12)
movl $0x1, %edi
movl $0x40, %esi
callq 0x1070
movq %rax, 0x10(%r12)
testq %rax, %rax
je 0x1c40
movq %rax, %r15
movq %r14, 0x18(%rax)
movabsq $0x500000020, %rax      # imm = 0x500000020
movq %rax, 0x8(%r15)
movq $0x10, 0x20(%r15)
movl $0x1, %edi
movl $0x200, %esi            # imm = 0x200
callq 0x1070
movq %rax, (%r15)
testq %rax, %rax
je 0x1c40
movl $0xa0111fe1, 0x38(%r15) # imm = 0xA0111FE1
movq %r12, %rbp
incl 0x10(%r15)
movq %r15, 0x10(%r12)
movq %r13, %rdi
callq 0x1050
cmpl $0xc, %eax
jb 0x16f4
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movl $0xfeedbeef, %ecx       # imm = 0xFEEDBEEF
movl %eax, %edi
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movsbl (%r13), %r8d
addl %esi, %r8d
movsbl 0x1(%r13), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0x2(%r13), %r8d
shll $0x10, %r8d
movzbl 0x3(%r13), %esi
shll $0x18, %esi
addl %r8d, %esi
addl %r9d, %esi
movsbl 0x4(%r13), %r8d
addl %edx, %r8d
movsbl 0x5(%r13), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0x6(%r13), %r8d
shll $0x10, %r8d
movzbl 0x7(%r13), %edx
shll $0x18, %edx
addl %r8d, %edx
addl %r9d, %edx
movsbl 0x8(%r13), %r8d
movsbl 0x9(%r13), %r9d
shll $0x8, %r9d
addl %r8d, %r9d
movsbl 0xa(%r13), %r8d
shll $0x10, %r8d
addl %ecx, %r8d
addl %r9d, %r8d
movzbl 0xb(%r13), %ecx
shll $0x18, %ecx
addl %r8d, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %r8d
shrl $0xd, %r8d
xorl %esi, %r8d
subl %ecx, %edx
subl %r8d, %edx
movl %r8d, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %r8d, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0xd, %edx
xorl %ecx, %edx
subl %esi, %r8d
subl %edx, %r8d
movl %edx, %ecx
shrl $0xc, %ecx
xorl %r8d, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %r8d
shll $0x10, %r8d
xorl %esi, %r8d
subl %ecx, %edx
subl %r8d, %edx
movl %r8d, %r9d
shrl $0x5, %r9d
xorl %edx, %r9d
subl %r8d, %ecx
subl %r9d, %ecx
movl %r9d, %esi
shrl $0x3, %esi
xorl %ecx, %esi
subl %r9d, %r8d
subl %esi, %r8d
movl %esi, %edx
shll $0xa, %edx
xorl %r8d, %edx
subl %esi, %r9d
subl %edx, %r9d
movl %edx, %ecx
shrl $0xf, %ecx
xorl %r9d, %ecx
addq $0xc, %r13
addl $-0xc, %edi
cmpl $0xb, %edi
ja 0x15e5
jmp 0x1705
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movl $0xfeedbeef, %ecx       # imm = 0xFEEDBEEF
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movl %eax, %edi
addl %eax, %ecx
movl %ecx, 0x44(%r12)
decl %edi
cmpl $0xa, %edi
ja 0x17b4
leaq 0x912(%rip), %r8        # 0x2030
movslq (%r8,%rdi,4), %rax
addq %r8, %rax
jmpq *%rax
movzbl 0xa(%r13), %eax
shll $0x18, %eax
addl %ecx, %eax
movl %eax, 0x44(%r12)
movl %eax, %ecx
movsbl 0x9(%r13), %eax
shll $0x10, %eax
addl %ecx, %eax
movl %eax, 0x44(%r12)
movl %eax, %ecx
movsbl 0x8(%r13), %eax
shll $0x8, %eax
addl %ecx, %eax
movl %eax, 0x44(%r12)
movl %eax, %ecx
movzbl 0x7(%r13), %eax
shll $0x18, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x6(%r13), %eax
shll $0x10, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x5(%r13), %eax
shll $0x8, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x4(%r13), %eax
addl %edx, %eax
movl %eax, %edx
movzbl 0x3(%r13), %eax
shll $0x18, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x2(%r13), %eax
shll $0x10, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x1(%r13), %eax
shll $0x8, %eax
addl %esi, %eax
movl %eax, %esi
movsbl (%r13), %eax
addl %esi, %eax
movl %eax, %esi
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %eax
shrl $0xd, %eax
xorl %esi, %eax
subl %ecx, %edx
subl %eax, %edx
movl %eax, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %eax, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0xd, %edx
xorl %ecx, %edx
subl %esi, %eax
subl %edx, %eax
movl %edx, %ecx
shrl $0xc, %ecx
xorl %eax, %ecx
subl %edx, %esi
subl %ecx, %esi
movl %ecx, %eax
shll $0x10, %eax
xorl %esi, %eax
subl %ecx, %edx
subl %eax, %edx
movl %eax, %esi
shrl $0x5, %esi
xorl %edx, %esi
subl %eax, %ecx
subl %esi, %ecx
movl %esi, %edx
shrl $0x3, %edx
xorl %ecx, %edx
subl %esi, %eax
subl %edx, %eax
movl %edx, %ecx
shll $0xa, %ecx
xorl %eax, %ecx
addl %ecx, %edx
subl %edx, %esi
shrl $0xf, %ecx
xorl %esi, %ecx
movl %ecx, 0x44(%r12)
movq 0x10(%rbp), %rdx
movl 0x8(%rdx), %eax
decl %eax
andl %ecx, %eax
movq (%rdx), %rdx
shlq $0x4, %rax
movl 0x8(%rdx,%rax), %ecx
incl %ecx
movl %ecx, 0x8(%rdx,%rax)
movq (%rdx,%rax), %rsi
movq %rsi, 0x30(%r12)
movq $0x0, 0x28(%r12)
testq %rsi, %rsi
je 0x1851
movq %r14, 0x18(%rsi)
addq %rax, %rdx
movq %r14, (%rdx)
movl 0xc(%rdx), %eax
leal (%rax,%rax,4), %eax
leal 0xa(,%rax,2), %eax
cmpl %eax, %ecx
jb 0x198a
cmpl $0x1, 0x34(%r15)
je 0x198a
movl 0x8(%r15), %esi
addl %esi, %esi
shlq $0x4, %rsi
movl $0x1, %edi
callq 0x1070
testq %rax, %rax
je 0x1c40
movq %rax, %r12
movl 0x10(%r15), %esi
movb 0xc(%r15), %cl
incb %cl
movl 0x8(%r15), %r8d
leal -0x1(,%r8,2), %r9d
movl %r9d, %eax
andl %esi, %eax
shrl %cl, %esi
cmpl $0x1, %eax
sbbl $-0x1, %esi
movl %esi, 0x28(%r15)
movl $0x0, 0x2c(%r15)
movq (%r15), %rdi
testq %r8, %r8
je 0x193e
xorl %ecx, %ecx
xorl %r10d, %r10d
movq %r10, %rax
shlq $0x4, %rax
movq (%rdi,%rax), %r11
testq %r11, %r11
je 0x1936
movq 0x20(%r11), %r13
movl 0x34(%r11), %edx
andl %r9d, %edx
shlq $0x4, %rdx
leaq (%r12,%rdx), %rbx
movl 0x8(%r12,%rdx), %eax
incl %eax
movl %eax, 0x8(%r12,%rdx)
cmpl %esi, %eax
jbe 0x1913
incl %ecx
movl %ecx, 0x2c(%r15)
xorl %edx, %edx
divl %esi
movl %eax, 0xc(%rbx)
movq $0x0, 0x18(%r11)
movq (%rbx), %rax
movq %rax, 0x20(%r11)
testq %rax, %rax
je 0x192b
movq %r11, 0x18(%rax)
movq %r11, (%rbx)
movq %r13, %r11
testq %r13, %r13
jne 0x18e3
incq %r10
cmpq %r8, %r10
jne 0x18d3
callq 0x1030
movq (%r14), %rax
shll 0x8(%rax)
incl 0xc(%rax)
movq %r12, (%rax)
movl 0x10(%rax), %ecx
shrl %ecx
cmpl %ecx, 0x2c(%rax)
jbe 0x197c
movl 0x30(%rax), %ecx
incl %ecx
movl %ecx, 0x30(%rax)
cmpl $0x2, %ecx
leaq 0x6f1(%rip), %rbx       # 0x205c
jb 0x198a
movl $0x1, 0x34(%rax)
jmp 0x198a
incl 0x8(%r13)
jmp 0x198a
movl $0x0, 0x30(%rax)
leaq 0x6d2(%rip), %rbx       # 0x205c
xorl %edi, %edi
movq %rbx, %rsi
callq 0x10c0
movq %rax, %r15
testq %rax, %rax
jne 0x124e
movq (%rsp), %rdi
callq 0x1030
movq 0x2630(%rip), %rbx      # 0x3fe0
movq (%rbx), %rdi
callq 0x1080
testl %eax, %eax
je 0x1224
testq %rbp, %rbp
je 0x1211
leaq 0x10(%rbp), %rbx
movl $0x1, %eax
movq %rbx, %rdi
movl %eax, %edx
negl %edx
xorl %ecx, %ecx
xorl %ebx, %ebx
xorl %esi, %esi
testl %eax, %eax
je 0x1a12
movl $0x1, %r8d
movq %rdi, %r9
movq 0x10(%r9), %r9
testq %r9, %r9
je 0x1a1a
movq 0x10(%rbp), %r10
addq 0x20(%r10), %r9
leal (%rdx,%r8), %r10d
incl %r10d
incl %r8d
cmpl $0x1, %r10d
jne 0x19ec
movl %eax, %r8d
jmp 0x1a1d
xorl %r8d, %r8d
movq %rdi, %r9
jmp 0x1a1d
xorl %r9d, %r9d
incl %esi
movl %eax, %r10d
testl %r10d, %r10d
setne %r14b
testq %r9, %r9
setne %r11b
andb %r14b, %r11b
testl %r8d, %r8d
je 0x1a71
testb %r11b, %r11b
je 0x1a8d
movq 0x10(%rbp), %r11
movq 0x20(%r11), %r11
movq %rdi, %r14
subq %r11, %r14
movq %r9, %r15
subq %r11, %r15
movl 0x8(%r14), %r14d
cmpl 0x8(%r15), %r14d
jle 0x1aa0
movq 0x10(%r9), %r15
addq %r15, %r11
testq %r15, %r15
movq %r11, %r14
cmoveq %r15, %r14
decl %r10d
jmp 0x1ab9
testb %r11b, %r11b
je 0x1b00
movq 0x10(%r9), %r14
testq %r14, %r14
je 0x1ab0
movq 0x10(%rbp), %r8
addq 0x20(%r8), %r14
jmp 0x1ab3
movq 0x10(%rdi), %r11
testq %r11, %r11
je 0x1ac1
movq 0x10(%rbp), %r14
addq 0x20(%r14), %r11
jmp 0x1ac4
movq 0x10(%rdi), %r14
addq %r14, %r11
testq %r14, %r14
cmoveq %r14, %r11
jmp 0x1ac4
xorl %r14d, %r14d
decl %r10d
xorl %r8d, %r8d
movq %rdi, %r11
movq %r9, %r15
jmp 0x1acd
xorl %r11d, %r11d
decl %r8d
movq %r9, %r14
movq %rdi, %r15
testq %rcx, %rcx
je 0x1ae9
movq 0x10(%rbp), %rdi
movq 0x20(%rdi), %rdi
movq %r15, %r9
subq %rdi, %r9
movq %r9, 0x10(%rcx)
subq %rdi, %rcx
jmp 0x1aee
movq %r15, %rbx
xorl %ecx, %ecx
movq %rcx, 0x8(%r15)
movq %r11, %rdi
movq %r14, %r9
movq %r15, %rcx
jmp 0x1a22
movq %r9, %rdi
testq %r9, %r9
jne 0x19df
movq $0x0, 0x10(%rcx)
cmpl $0x1, %esi
jbe 0x1b34
addl %eax, %eax
testq %rbx, %rbx
jne 0x19d2
movq $0x0, 0x10
xorl %ecx, %ecx
xorl %ebx, %ebx
movq 0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
testq %rbx, %rbx
je 0x1211
subq 0x20(%rax), %rbx
leaq 0x50f(%rip), %r14       # 0x205f
movq %rbx, %r13
movq 0x20(%rbx), %r15
movq (%rbx), %rsi
movl 0x8(%rbx), %edx
movq %r14, %rdi
xorl %eax, %eax
callq 0x1060
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
jne 0x1b7b
cmpq $0x0, 0x20(%rbx)
je 0x1c26
movq 0x10(%r13), %rdx
movq 0x18(%rdx), %rsi
movq 0x20(%rdx), %rax
subq %rax, %rsi
cmpq %rsi, %rbx
jne 0x1b97
leaq (%rcx,%rax), %rsi
movq %rsi, 0x18(%rdx)
movq 0x20(%rbx), %rdx
movq %rdx, %r12
testq %rcx, %rcx
je 0x1bab
movq %rdx, 0x10(%rcx,%rax)
movq %r13, %r12
movq 0x10(%r12), %rax
testq %rdx, %rdx
je 0x1bbe
movq 0x20(%rax), %rsi
movq %rcx, 0x8(%rdx,%rsi)
movl 0x8(%rax), %ecx
decl %ecx
andl 0x44(%rbx), %ecx
movq (%rax), %rdx
shlq $0x4, %rcx
decl 0x8(%rdx,%rcx)
leaq 0x10(%rbx), %rsi
cmpq %rsi, (%rdx,%rcx)
jne 0x1be5
addq %rcx, %rdx
movq 0x30(%rbx), %rcx
movq %rcx, (%rdx)
movq 0x28(%rbx), %rcx
movq 0x30(%rbx), %rdx
testq %rcx, %rcx
je 0x1bf6
movq %rdx, 0x20(%rcx)
testq %rdx, %rdx
je 0x1bff
movq %rcx, 0x18(%rdx)
decl 0x10(%rax)
movq (%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
callq 0x1030
movq %r15, %rbx
movq %r12, %r13
testq %r15, %r15
jne 0x1b53
jmp 0x1211
movq 0x10(%r13), %rax
movq (%rax), %rdi
callq 0x1030
movq 0x10(%r13), %rdi
callq 0x1030
xorl %r12d, %r12d
jmp 0x1c02
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x10d0
nop