// File: /workspace/github_c_makefile_star2_O0/aparrish[P]rwet-examples-c/markov_gen.c
// Function: markov_gen_feed
void markov_gen_feed(markov_gen_t* mg, const char* line) {
	UT_array* tokens;
	UT_array* token_slice;
	ngram_t* current_ngram;
	char** next_tok;
	char* joined;
	int i, token_len, joined_len;

	tokens = split_new(line, " \n");
	token_len = utarray_len(tokens);

	/* skip if this line has fewer than n tokens */
	if (token_len < mg->n) {
		utarray_free(tokens);
		return;
	}

	/* iterate over n-length slices of array */
	for (i = 0; i < token_len - (mg->n); i++) {
		token_slice = slice_new(tokens, i, i+(mg->n));
		joined_len = join_new(&joined, token_slice, " ");

		next_tok = (char**)utarray_eltptr(tokens, i+(mg->n));

		HASH_FIND_STR(mg->ngrams, joined, current_ngram);
		/* if this n-gram is already in the struct, push the next token */
		if (current_ngram != NULL) {
			utarray_push_back(current_ngram->possible_nexts, next_tok);
			free(joined);
			utarray_free(token_slice);
		}
		/* otherwise, malloc a new n-gram struct and init with relevant info */
		else {
			current_ngram = (ngram_t*)malloc(sizeof(ngram_t));
			/* need to store slice as well */
			current_ngram->ngram_key = joined;
			current_ngram->ngram = token_slice;
			utarray_new(current_ngram->possible_nexts, &ut_str_icd);
			utarray_push_back(current_ngram->possible_nexts, next_tok);
			HASH_ADD_KEYPTR(hh, mg->ngrams, current_ngram->ngram_key,
					strlen(current_ngram->ngram_key), current_ngram);
		}
		/* if this is the first ngram of the line, add to beginnings */
		if (i == 0) {
			utarray_push_back(mg->beginnings, &current_ngram);
		} 

	}

	utarray_free(tokens);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x362e(%rip), %rsi      # 0x50ac
callq 0x1370
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x1b67
jmp 0x1aa1
jmp 0x1aa3
movq -0x18(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0x1b4e
movq -0x18(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1b41
movq $0x0, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x1b3f
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xc8(%rbp)
movq -0x50(%rbp), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x1b16
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
imulq -0x50(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
jmp 0x1b21
xorl %eax, %eax
movq %rax, -0xd0(%rbp)
jmp 0x1b21
movq -0xc8(%rbp), %rax
movq -0xd0(%rbp), %rdi
callq *%rax
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x1ac8
jmp 0x1b41
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x1030
movq -0x18(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x18(%rbp), %rdi
callq 0x1030
jmp 0x3462
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl -0x40(%rbp), %ecx
movq -0x8(%rbp), %rdx
subl (%rdx), %ecx
cmpl %ecx, %eax
jge 0x338a
movq -0x18(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x3c(%rbp), %edx
movq -0x8(%rbp), %rax
addl (%rax), %edx
callq 0x1570
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x38(%rbp), %rdi
leaq 0x350f(%rip), %rdx      # 0x50b9
callq 0x1780
movl %eax, -0x44(%rbp)
movl -0x3c(%rbp), %eax
movq -0x8(%rbp), %rcx
addl (%rcx), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
jae 0x1bef
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl -0x3c(%rbp), %edx
movq -0x8(%rbp), %rsi
addl (%rsi), %edx
movslq %edx, %rdx
imulq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
jmp 0x1bfa
xorl %eax, %eax
movq %rax, -0xd8(%rbp)
jmp 0x1bfa
movq -0xd8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x2197
jmp 0x1c1e
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
movl $0xfeedbeef, -0x58(%rbp) # imm = 0xFEEDBEEF
movl $0x9e3779b9, -0x60(%rbp) # imm = 0x9E3779B9
movl $0x9e3779b9, -0x5c(%rbp) # imm = 0x9E3779B9
movq -0x38(%rbp), %rdi
callq 0x1050
movl %eax, -0x64(%rbp)
cmpl $0xc, -0x64(%rbp)
jb 0x1e3b
movq -0x70(%rbp), %rax
movsbl (%rax), %eax
movq -0x70(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0x3(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x4(%rax), %eax
movq -0x70(%rbp), %rcx
movsbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x8(%rax), %eax
movq -0x70(%rbp), %rcx
movsbl 0x9(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0xa(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x70(%rbp), %rcx
movsbl 0xb(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0xd, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0x8, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0xd, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0xc, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0x10, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0x5, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0x3, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0xa, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0xf, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x70(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x70(%rbp)
movl -0x64(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x64(%rbp)
jmp 0x1c47
movq -0x38(%rbp), %rdi
callq 0x1050
movq %rax, %rcx
movl -0x58(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x64(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0xe0(%rbp)
subl $0xa, %eax
ja 0x1f31
movq -0xe0(%rbp), %rax
leaq 0x31b4(%rip), %rcx      # 0x5028
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x70(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x18, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x10, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x8(%rax), %eax
shll $0x8, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
addl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
addl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
addl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x4(%rax), %eax
addl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rax
movsbl (%rax), %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x1f33
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0xd, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0x8, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0xd, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0xc, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0x10, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0x5, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shrl $0x3, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x60(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
shll $0xa, %eax
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x60(%rbp), %eax
shrl $0xf, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x54(%rbp)
jmp 0x2081
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x20d9
jmp 0x20a2
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x20e1
movq $0x0, -0x28(%rbp)
jmp 0x20e3
cmpq $0x0, -0x28(%rbp)
je 0x2193
movq -0x28(%rbp), %rax
movl 0x48(%rax), %eax
movq %rax, -0xe8(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1050
movq %rax, %rcx
movq -0xe8(%rbp), %rax
cmpq %rcx, %rax
jne 0x2156
movq -0x28(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0xf8(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1050
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq %rax, %rdx
callq 0x1080
cmpl $0x0, %eax
jne 0x2154
jmp 0x2193
jmp 0x2156
movq -0x28(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x2186
jmp 0x2163
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x218e
movq $0x0, -0x28(%rbp)
jmp 0x20e3
jmp 0x2195
jmp 0x2197
jmp 0x2199
cmpq $0x0, -0x28(%rbp)
je 0x23e0
jmp 0x21a6
jmp 0x21a8
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x226e
jmp 0x21c8
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x2225
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x2205
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
shll %eax
movl %eax, -0xfc(%rbp)
jmp 0x2212
movl $0x8, %eax
movl %eax, -0xfc(%rbp)
jmp 0x2212
movl -0xfc(%rbp), %ecx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
jmp 0x21c8
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
imulq 0x8(%rax), %rsi
callq 0x10d0
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x28(%rcx)
cmpq $0x0, %rax
jne 0x226c
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
jmp 0x226e
jmp 0x2270
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x22c8
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x28(%rcx), %rdi
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq -0x28(%rbp), %rdx
movq 0x10(%rdx), %rsi
movl (%rsi), %edx
movl %edx, %r8d
addl $0x1, %r8d
movl %r8d, (%rsi)
movl %edx, %edx
imulq %rdx, %rcx
addq %rcx, %rdi
movq -0x30(%rbp), %rsi
callq *%rax
jmp 0x230f
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rdx
movl (%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, (%rdx)
movl %ecx, %ecx
imulq %rcx, %rax
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x10b0
jmp 0x2311
movq -0x38(%rbp), %rdi
callq 0x1030
jmp 0x231c
movq -0x20(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0x23c7
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x23ba
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x23b8
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x108(%rbp)
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x238f
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rcx
imulq -0x78(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x110(%rbp)
jmp 0x239a
xorl %eax, %eax
movq %rax, -0x110(%rbp)
jmp 0x239a
movq -0x108(%rbp), %rax
movq -0x110(%rbp), %rdi
callq *%rax
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x2341
jmp 0x23ba
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x1030
movq -0x20(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x20(%rbp), %rdi
callq 0x1030
jmp 0x3201
movl $0x50, %edi
callq 0x10c0
movq %rax, -0x28(%rbp)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x30, %edi
callq 0x10c0
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
movl $0x30, %edx
callq 0x1070
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x498b(%rip), %rcx      # 0x6dc8
movq %rcx, 0x8(%rax)
movq 0x4988(%rip), %rcx      # 0x6dd0
movq %rcx, 0x10(%rax)
movq 0x4985(%rip), %rcx      # 0x6dd8
movq %rcx, 0x18(%rax)
movq 0x4982(%rip), %rcx      # 0x6de0
movq %rcx, 0x20(%rax)
jmp 0x2464
jmp 0x2466
jmp 0x2468
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x252e
jmp 0x2488
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x24e5
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x24c5
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
shll %eax
movl %eax, -0x114(%rbp)
jmp 0x24d2
movl $0x8, %eax
movl %eax, -0x114(%rbp)
jmp 0x24d2
movl -0x114(%rbp), %ecx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
jmp 0x2488
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
imulq 0x8(%rax), %rsi
callq 0x10d0
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x28(%rcx)
cmpq $0x0, %rax
jne 0x252c
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
jmp 0x252e
jmp 0x2530
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x2588
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x28(%rcx), %rdi
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq -0x28(%rbp), %rdx
movq 0x10(%rdx), %rsi
movl (%rsi), %edx
movl %edx, %r8d
addl $0x1, %r8d
movl %r8d, (%rsi)
movl %edx, %edx
imulq %rdx, %rcx
addq %rcx, %rdi
movq -0x30(%rbp), %rsi
callq *%rax
jmp 0x25cf
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rdx
movl (%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, (%rdx)
movl %ecx, %ecx
imulq %rcx, %rax
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x10b0
jmp 0x25d1
jmp 0x25d3
movq -0x28(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x1050
movl %eax, %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x2749
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq $0x0, 0x20(%rax)
movl $0x40, %edi
callq 0x10c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x18(%rax)
jne 0x2660
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x1070
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movl $0x20, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movl $0x5, 0xc(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
subq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x20(%rax)
movl $0x200, %edi            # imm = 0x200
callq 0x10c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
cmpq $0x0, (%rax)
jne 0x2719
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
xorl %esi, %esi
movl $0x200, %edx            # imm = 0x200
callq 0x1070
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movl $0xa0111fe1, 0x38(%rax) # imm = 0xA0111FE1
jmp 0x27a6
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rdx
xorl %eax, %eax
subq 0x20(%rdx), %rax
addq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x28(%rbp), %rax
movl $0xfeedbeef, 0x4c(%rax) # imm = 0xFEEDBEEF
movl $0x9e3779b9, -0x84(%rbp) # imm = 0x9E3779B9
movl $0x9e3779b9, -0x80(%rbp) # imm = 0x9E3779B9
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x1050
movl %eax, -0x88(%rbp)
cmpl $0xc, -0x88(%rbp)
jb 0x2ad5
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
movq -0x90(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x90(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x90(%rbp), %rcx
movsbl 0x3(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x4(%rax), %eax
movq -0x90(%rbp), %rcx
movsbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x90(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x90(%rbp), %rcx
movsbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x8(%rax), %ecx
movq -0x90(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x8, %eax
addl %eax, %ecx
movq -0x90(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x10, %eax
addl %eax, %ecx
movq -0x90(%rbp), %rax
movsbl 0xb(%rax), %eax
shll $0x18, %eax
addl %eax, %ecx
movq -0x28(%rbp), %rax
addl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0xd, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0x8, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0xd, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0xc, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0x10, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0x5, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0x3, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0xa, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0xf, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x90(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x90(%rbp)
movl -0x88(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x88(%rbp)
jmp 0x280b
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x1050
movq %rax, %rdx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
addl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x88(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x120(%rbp)
subl $0xa, %eax
ja 0x2c1a
movq -0x120(%rbp), %rax
leaq 0x253c(%rip), %rcx      # 0x5054
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x90(%rbp), %rax
movsbl 0xa(%rax), %ecx
shll $0x18, %ecx
movq -0x28(%rbp), %rax
addl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x90(%rbp), %rax
movsbl 0x9(%rax), %ecx
shll $0x10, %ecx
movq -0x28(%rbp), %rax
addl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x90(%rbp), %rax
movsbl 0x8(%rax), %ecx
shll $0x8, %ecx
movq -0x28(%rbp), %rax
addl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x90(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x4(%rax), %eax
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
addl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
addl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x90(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
addl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
addl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
jmp 0x2c1c
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0xd, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0x8, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0xd, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0xc, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0x10, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0x5, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x80(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
shrl $0x3, %eax
xorl -0x80(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %ecx
movl -0x84(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %eax
shll $0xa, %eax
xorl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4c(%rax)
movl -0x84(%rbp), %ecx
shrl $0xf, %ecx
movq -0x28(%rbp), %rax
xorl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x7c(%rbp)
jmp 0x2e07
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x2ea0
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movq (%rcx), %rcx
movl -0x7c(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
movl 0xc(%rcx), %ecx
addl $0x1, %ecx
imull $0xa, %ecx, %ecx
cmpl %ecx, %eax
jb 0x31fb
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x1, 0x34(%rax)
je 0x31fb
jmp 0x2f1e
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edi
shlq $0x4, %rdi
callq 0x10c0
movq %rax, -0xb0(%rbp)
cmpq $0x0, -0xb0(%rbp)
jne 0x2f53
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
movq -0xb0(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x4, %rdx
xorl %esi, %esi
callq 0x1070
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %eax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
movl 0xc(%rcx), %ecx
addl $0x1, %ecx
shrl %cl, %eax
movl %eax, %ecx
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
subl $0x1, %eax
andl %eax, %esi
xorl %eax, %eax
movl $0x1, %edx
cmpl $0x0, %esi
cmovnel %edx, %eax
addl %eax, %ecx
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x2c(%rax)
movl $0x0, -0x98(%rbp)
movl -0x98(%rbp), %eax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jae 0x314a
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movl -0x98(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0xa0(%rbp)
cmpq $0x0, -0xa0(%rbp)
je 0x3134
movq -0xa0(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rax
movl 0x34(%rax), %eax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
movl 0x8(%rcx), %ecx
shll %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x94(%rbp)
movq -0xb0(%rbp), %rax
movl -0x94(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rcx
movl 0x8(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x8(%rcx)
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jbe 0x30ca
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x2c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2c(%rax)
movq -0xb8(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
xorl %edx, %edx
divl 0x28(%rcx)
movl %eax, %ecx
movq -0xb8(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0xa0(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0xb8(%rbp), %rax
movq (%rax), %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0xb8(%rbp), %rax
cmpq $0x0, (%rax)
je 0x3110
movq -0xa0(%rbp), %rcx
movq -0xb8(%rbp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movq -0xa0(%rbp), %rcx
movq -0xb8(%rbp), %rax
movq %rcx, (%rax)
movq -0xa8(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0x301c
jmp 0x3136
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x2fe3
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
callq 0x1030
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %ecx
shll %ecx
movl %ecx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movq -0xb0(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x2c(%rax), %eax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
movl 0x10(%rcx), %ecx
shrl %ecx
cmpl %ecx, %eax
jbe 0x31bf
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x30(%rax), %eax
addl $0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0x31c9
xorl %eax, %eax
movl %eax, -0x124(%rbp)
jmp 0x31c9
movl -0x124(%rbp), %ecx
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl %ecx, 0x30(%rax)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x1, 0x30(%rax)
jbe 0x31f7
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x1, 0x34(%rax)
jmp 0x31f9
jmp 0x31fb
jmp 0x31fd
jmp 0x31ff
jmp 0x3201
cmpl $0x0, -0x3c(%rbp)
jne 0x337a
jmp 0x320d
jmp 0x320f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x32d5
jmp 0x322f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
addl $0x1, %eax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x328c
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x326c
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
shll %eax
movl %eax, -0x128(%rbp)
jmp 0x3279
movl $0x8, %eax
movl %eax, -0x128(%rbp)
jmp 0x3279
movl -0x128(%rbp), %ecx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
jmp 0x322f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
imulq 0x8(%rax), %rsi
callq 0x10d0
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x28(%rcx)
cmpq $0x0, %rax
jne 0x32d3
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1120
jmp 0x32d5
jmp 0x32d7
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x332f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x28(%rcx), %rdi
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x10(%rdx), %rsi
movl (%rsi), %edx
movl %edx, %r8d
addl $0x1, %r8d
movl %r8d, (%rsi)
movl %edx, %edx
imulq %rdx, %rcx
addq %rcx, %rdi
leaq -0x28(%rbp), %rsi
callq *%rax
jmp 0x3376
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rdx
movl (%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, (%rdx)
movl %ecx, %ecx
imulq %rcx, %rax
addq %rax, %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
leaq -0x28(%rbp), %rsi
callq 0x10b0
jmp 0x3378
jmp 0x337a
jmp 0x337c
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1b6e
jmp 0x338c
jmp 0x338e
movq -0x18(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0x344e
movq -0x18(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x3441
movq $0x0, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x343f
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x130(%rbp)
movq -0xc0(%rbp), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
cmpq %rcx, %rax
jae 0x340d
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
imulq -0xc0(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x138(%rbp)
jmp 0x3418
xorl %eax, %eax
movq %rax, -0x138(%rbp)
jmp 0x3418
movq -0x130(%rbp), %rax
movq -0x138(%rbp), %rdi
callq *%rax
movq -0xc0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc0(%rbp)
jmp 0x33b6
jmp 0x3441
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x1030
movq -0x18(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x18(%rbp), %rdi
callq 0x1030
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopl (%rax,%rax)