// File: /workspace/github_c_makefile_star2_O0/winton[P]redis_parse/redis_parse.c
// Function: main
int main(int argc, char *argv[]) {
	// Argv vars
	char *host = argv[1];
	int port = atoi(argv[2]);
	char *cmd = argv[3];

	with_scores = strstr(cmd, "WITHSCORES") ? true : false;

	int x, y, start;
	for (x = 0; x < ((argc - 4) / 7); x++) {
		start = x * 7 + 4;

		queries[x].used = true;
		queries[x].display_count = false;
		queries[x].display_group = false;
		queries[x].query_empty = true;
		queries[x].exclude_empty = true;
		queries[x].count = 0;
		queries[x].displayed = 0;
		queries[x].hash = NULL;

		if (strcmp(argv[start], "COUNT") == 0)
			queries[x].display_count = true;

		if (strcmp(argv[start], "GROUP") == 0)
			queries[x].display_group = true;

		queries[x].start = atoi(argv[start+1]);
		queries[x].finish = atoi(argv[start+2]);
		queries[x].limit = atoi(argv[start+3]);
		queries[x].column = column_to_index(argv[start+4]);
		queries[x].query = to_fields(argv[start+5]);
		queries[x].exclude = to_fields(argv[start+6]);

		// Query empty?
		for (y = 0; y < columns_count; y++) {
			if (strlen(queries[x].query[y]) > 0) {
				queries[x].query_empty = false;
				queries[x].query_empty_at[y] = false;
			} else
				queries[x].query_empty_at[y] = true;
				
			if (strlen(queries[x].exclude[y]) > 0) {
				queries[x].exclude_empty = false;
				queries[x].exclude_empty_at[y] = false;
			} else
				queries[x].exclude_empty_at[y] = true;
		}
	}

	// Connect to redis
	struct timeval timeout = { 1, 500000 }; // 1.5 seconds
	redisContext *c = redisConnectWithTimeout(host, port, timeout);
	if (c->err) {
		printf("Connection error: %s\n", c->errstr);
		exit(0);
	}

	// Use custom Hiredis reader functions
	c->reader->fn = &redisExtReplyObjectFunctions;

	// Execute command
	redisReply *reply = redisCommand(c, cmd);

	// Display results
	int q;
	for (q = 0; q < 100; q++) {
		if (queries[q].used != true)
			continue;

		if (queries[q].display_count) {
			printf("%i\n", queries[q].count);
		}

		if (queries[q].display_group) {
			HASH_SORT(queries[q].hash, count_sort);
			for(hash_record = queries[q].hash; hash_record != NULL; hash_record = hash_record->hh.next) {
				if (!limit_reached(&queries[q]))
					printf("%s|%i\n", hash_record->field, hash_record->count);
			}	
		}

		if (queries[q + 1].used)
			printf("[END]\n");
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2210
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x7a90(%rip), %rsi      # 0xa05c
callq 0x2270
movq %rax, %rdx
xorl %eax, %eax
movl $0x1, %ecx
cmpq $0x0, %rdx
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0xac80(%rip)       # 0xd270
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0xa4(%rbp)
movl -0x8(%rbp), %eax
subl $0x4, %eax
movl $0x7, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xa4(%rbp), %eax
cmpl %ecx, %eax
jge 0x297d
imull $0x7, -0x2c(%rbp), %eax
addl $0x4, %eax
movl %eax, -0x34(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0xac4d(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x1, (%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xac38(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x1(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xac22(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x2(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xac0c(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x3(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xabf6(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x4(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xabe0(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x2c(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xabc7(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x34(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xabae(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x40(%rax)
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x7973(%rip), %rsi      # 0xa067
callq 0x21a0
cmpl $0x0, %eax
jne 0x2714
movslq -0x2c(%rbp), %rcx
leaq 0xab77(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x1(%rax)
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x7946(%rip), %rsi      # 0xa06d
callq 0x21a0
cmpl $0x0, %eax
jne 0x2747
movslq -0x2c(%rbp), %rcx
leaq 0xab44(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x2(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2210
movl %eax, %ecx
movslq -0x2c(%rbp), %rdx
leaq 0xab16(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x38(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2210
movl %eax, %ecx
movslq -0x2c(%rbp), %rdx
leaq 0xaae9(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2210
movl %eax, %ecx
movslq -0x2c(%rbp), %rdx
leaq 0xaabc(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x3080
movl %eax, %ecx
movslq -0x2c(%rbp), %rdx
leaq 0xaa8f(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x5, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x30f0
movq %rax, %rcx
movslq -0x2c(%rbp), %rdx
leaq 0xaa61(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x6, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x30f0
movq %rax, %rcx
movslq -0x2c(%rbp), %rdx
leaq 0xaa32(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x20(%rax)
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl 0xa993(%rip), %eax      # 0xd1fc
jae 0x296d
movslq -0x2c(%rbp), %rcx
leaq 0xaa06(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x20d0
cmpq $0x0, %rax
jbe 0x28cb
movslq -0x2c(%rbp), %rcx
leaq 0xa9dd(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x3(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xa9c7(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movslq -0x30(%rbp), %rcx
movb $0x0, 0x5(%rax,%rcx)
jmp 0x28e6
movslq -0x2c(%rbp), %rcx
leaq 0xa9aa(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movslq -0x30(%rbp), %rcx
movb $0x1, 0x5(%rax,%rcx)
movslq -0x2c(%rbp), %rcx
leaq 0xa98f(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x20d0
cmpq $0x0, %rax
jbe 0x2942
movslq -0x2c(%rbp), %rcx
leaq 0xa966(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4(%rax)
movslq -0x2c(%rbp), %rcx
leaq 0xa950(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movslq -0x30(%rbp), %rcx
movb $0x0, 0xc(%rax,%rcx)
jmp 0x295d
movslq -0x2c(%rbp), %rcx
leaq 0xa933(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movslq -0x30(%rbp), %rcx
movb $0x1, 0xc(%rax,%rcx)
jmp 0x295f
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x2860
jmp 0x296f
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x25f7
movq 0x771c(%rip), %rax      # 0xa0a0
movq %rax, -0x48(%rbp)
movq 0x7719(%rip), %rax      # 0xa0a8
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
movl -0x1c(%rbp), %esi
movq -0x48(%rbp), %rdx
movq -0x40(%rbp), %rcx
callq 0x6350
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpl $0x0, (%rax)
je 0x29d1
movq -0x50(%rbp), %rsi
addq $0x4, %rsi
leaq 0x76b0(%rip), %rdi      # 0xa073
movb $0x0, %al
callq 0x20f0
xorl %edi, %edi
callq 0x2230
movq -0x50(%rbp), %rax
movq 0x98(%rax), %rax
leaq 0xa81d(%rip), %rcx      # 0xd200
movq %rcx, 0x128(%rax)
movq -0x50(%rbp), %rdi
movq -0x28(%rbp), %rsi
movb $0x0, %al
callq 0x6c40
movq %rax, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
cmpl $0x64, -0x5c(%rbp)
jge 0x306d
movslq -0x5c(%rbp), %rcx
leaq 0xa867(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x2a31
jmp 0x305f
movslq -0x5c(%rbp), %rcx
leaq 0xa844(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
testb $0x1, 0x1(%rax)
je 0x2a6c
movslq -0x5c(%rbp), %rcx
leaq 0xa82c(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movl 0x2c(%rax), %esi
leaq 0x7627(%rip), %rdi      # 0xa08c
movb $0x0, %al
callq 0x20f0
movslq -0x5c(%rbp), %rcx
leaq 0xa809(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
testb $0x1, 0x2(%rax)
je 0x3033
jmp 0x2a8a
movslq -0x5c(%rbp), %rcx
leaq 0xa7eb(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x40(%rax)
je 0x2fb5
movl $0x1, -0x6c(%rbp)
movl $0x1, -0x64(%rbp)
movslq -0x5c(%rbp), %rcx
leaq 0xa7c0(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
addq $0x10, %rax
movq %rax, -0x98(%rbp)
cmpl $0x0, -0x64(%rbp)
je 0x2fb3
movq -0x98(%rbp), %rax
movq %rax, -0x80(%rbp)
movq $0x0, -0x98(%rbp)
movq $0x0, -0xa0(%rbp)
movl $0x0, -0x68(%rbp)
cmpq $0x0, -0x80(%rbp)
je 0x2f23
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x88(%rbp)
movl $0x0, -0x70(%rbp)
movl $0x0, -0x60(%rbp)
movl -0x60(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jae 0x2bbb
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
movq -0x88(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2b86
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa716(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0xb0(%rbp)
jmp 0x2b91
xorl %eax, %eax
movq %rax, -0xb0(%rbp)
jmp 0x2b91
movq -0xb0(%rbp), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
jne 0x2bab
jmp 0x2bbb
jmp 0x2bad
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x2b35
movl -0x6c(%rbp), %eax
movl %eax, -0x74(%rbp)
movb $0x1, %al
cmpl $0x0, -0x70(%rbp)
movb %al, -0xb1(%rbp)
ja 0x2bfa
xorl %eax, %eax
cmpl $0x0, -0x74(%rbp)
movb %al, -0xb2(%rbp)
jbe 0x2bee
cmpq $0x0, -0x88(%rbp)
setne %al
movb %al, -0xb2(%rbp)
movb -0xb2(%rbp), %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x2c09
jmp 0x2f13
cmpl $0x0, -0x70(%rbp)
jne 0x2c84
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2c5d
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa63f(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0xc0(%rbp)
jmp 0x2c68
xorl %eax, %eax
movq %rax, -0xc0(%rbp)
jmp 0x2c68
movq -0xc0(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x2e32
cmpl $0x0, -0x74(%rbp)
je 0x2c94
cmpq $0x0, -0x88(%rbp)
jne 0x2cfd
movq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x80(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2cd9
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa5c3(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0xc8(%rbp)
jmp 0x2ce4
xorl %eax, %eax
movq %rax, -0xc8(%rbp)
jmp 0x2ce4
movq -0xc8(%rbp), %rax
movq %rax, -0x80(%rbp)
movl -0x70(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x2e30
movq -0x80(%rbp), %rdi
movslq -0x5c(%rbp), %rcx
leaq 0xa574(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rcx
xorl %eax, %eax
subq 0x20(%rcx), %rax
addq %rax, %rdi
movq -0x88(%rbp), %rsi
movslq -0x5c(%rbp), %rcx
leaq 0xa54a(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rcx
xorl %eax, %eax
subq 0x20(%rcx), %rax
addq %rax, %rsi
callq 0x3190
cmpl $0x0, %eax
jg 0x2dbe
movq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x80(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2d9d
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa4ff(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0xd0(%rbp)
jmp 0x2da8
xorl %eax, %eax
movq %rax, -0xd0(%rbp)
jmp 0x2da8
movq -0xd0(%rbp), %rax
movq %rax, -0x80(%rbp)
movl -0x70(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x2e2e
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2e0c
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa490(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0xd8(%rbp)
jmp 0x2e17
xorl %eax, %eax
movq %rax, -0xd8(%rbp)
jmp 0x2e17
movq -0xd8(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x2e30
jmp 0x2e32
cmpq $0x0, -0xa0(%rbp)
je 0x2e98
cmpq $0x0, -0x90(%rbp)
je 0x2e79
movq -0x90(%rbp), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa428(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0xe0(%rbp)
jmp 0x2e84
xorl %eax, %eax
movq %rax, -0xe0(%rbp)
jmp 0x2e84
movq -0xe0(%rbp), %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x2ea6
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
cmpq $0x0, -0xa0(%rbp)
je 0x2ee3
movq -0xa0(%rbp), %rax
movslq -0x5c(%rbp), %rdx
leaq 0xa3be(%rip), %rcx      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rcx
movq 0x40(%rcx), %rcx
movq 0x10(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
jmp 0x2eee
xorl %eax, %eax
movq %rax, -0xe8(%rbp)
jmp 0x2eee
movq -0xe8(%rbp), %rcx
movq -0x90(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x90(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0x2bc1
movq -0x88(%rbp), %rax
movq %rax, -0x80(%rbp)
jmp 0x2b08
movq -0xa0(%rbp), %rax
movq $0x0, 0x10(%rax)
cmpl $0x1, -0x68(%rbp)
ja 0x2fa6
movl $0x0, -0x64(%rbp)
movq -0xa0(%rbp), %rcx
movslq -0x5c(%rbp), %rdx
leaq 0xa32f(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x98(%rbp), %rcx
movslq -0x5c(%rbp), %rdx
leaq 0xa30a(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
subq 0x20(%rdx), %rax
addq %rax, %rcx
movslq -0x5c(%rbp), %rdx
leaq 0xa2e7(%rip), %rax      # 0xd280
imulq $0x48, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x40(%rax)
jmp 0x2fa6
movl -0x6c(%rbp), %eax
shll %eax
movl %eax, -0x6c(%rbp)
jmp 0x2ad6
jmp 0x2fb5
jmp 0x2fb7
movslq -0x5c(%rbp), %rcx
leaq 0xa2be(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
movq %rax, 0xbecc(%rip)      # 0xeea0
cmpq $0x0, 0xbec4(%rip)      # 0xeea0
je 0x3031
movslq -0x5c(%rbp), %rax
leaq 0xa297(%rip), %rdi      # 0xd280
imulq $0x48, %rax, %rax
addq %rax, %rdi
callq 0x45a0
testb $0x1, %al
jne 0x301b
movq 0xbea0(%rip), %rax      # 0xeea0
movq (%rax), %rsi
movq 0xbe96(%rip), %rax      # 0xeea0
movl 0x8(%rax), %edx
leaq 0x7075(%rip), %rdi      # 0xa089
movb $0x0, %al
callq 0x20f0
jmp 0x301d
movq 0xbe7c(%rip), %rax      # 0xeea0
movq 0x20(%rax), %rax
movq %rax, 0xbe71(%rip)      # 0xeea0
jmp 0x2fd4
jmp 0x3033
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0xa23d(%rip), %rax      # 0xd280
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
testb $0x1, (%rax)
je 0x305d
leaq 0x703a(%rip), %rdi      # 0xa090
movb $0x0, %al
callq 0x20f0
jmp 0x305f
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x2a04
xorl %eax, %eax
addq $0xf0, %rsp
popq %rbp
retq
nopl (%rax,%rax)