// File: /workspace/github_c_makefile_star2_O1/winton[P]redis_parse/redis_parse.c
// Function: hash_add_or_update
bool hash_add_or_update(int query_index, char *record) {
	if (!record)
		return false;
	else {
		HASH_FIND_STR(queries[query_index].hash, record, hash_record);
		if (hash_record) {
			hash_record->count++;
		} else {
			hash_record = (struct hash_struct*)malloc(sizeof(struct hash_struct));
			hash_record->field = record;
			hash_record->count = 1;
			HASH_ADD_KEYPTR(hh, queries[query_index].hash, hash_record->field, strlen(hash_record->field), hash_record);
		}
		return true;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
testq %rsi, %rsi
je 0x3265
movq $0x0, 0x93fb(%rip) # 0xbeb0
movslq %edi, %rax
leaq (%rax,%rax,8), %r14
leaq 0x77cd(%rip), %r12      # 0xa290
movq 0x40(%r12,%r14,8), %r15
testq %r15, %r15
je 0x2d6f
movq %rbx, %rdi
callq 0x20e0
cmpl $0xc, %eax
jb 0x2c04
movl $0x9e3779b9, %edi       # imm = 0x9E3779B9
movl $0xfeedbeef, %edx       # imm = 0xFEEDBEEF
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movl %eax, %r8d
movq %rbx, %rcx
movsbl (%rcx), %r9d
addl %edi, %r9d
movsbl 0x1(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0x2(%rcx), %r9d
shll $0x10, %r9d
movzbl 0x3(%rcx), %edi
shll $0x18, %edi
addl %r9d, %edi
addl %r10d, %edi
movsbl 0x4(%rcx), %r9d
addl %esi, %r9d
movsbl 0x5(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0x6(%rcx), %r9d
shll $0x10, %r9d
movzbl 0x7(%rcx), %esi
shll $0x18, %esi
addl %r9d, %esi
addl %r10d, %esi
movsbl 0x8(%rcx), %r9d
addl %edx, %r9d
movsbl 0x9(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0xa(%rcx), %r9d
shll $0x10, %r9d
movzbl 0xb(%rcx), %edx
shll $0x18, %edx
addl %r9d, %edx
addl %r10d, %edx
subl %esi, %edi
subl %edx, %edi
movl %edx, %r9d
shrl $0xd, %r9d
xorl %edi, %r9d
subl %edx, %esi
subl %r9d, %esi
movl %r9d, %edi
shll $0x8, %edi
xorl %esi, %edi
subl %r9d, %edx
subl %edi, %edx
movl %edi, %esi
shrl $0xd, %esi
xorl %edx, %esi
subl %edi, %r9d
subl %esi, %r9d
movl %esi, %edx
shrl $0xc, %edx
xorl %r9d, %edx
subl %esi, %edi
subl %edx, %edi
movl %edx, %r9d
shll $0x10, %r9d
xorl %edi, %r9d
subl %edx, %esi
subl %r9d, %esi
movl %r9d, %r10d
shrl $0x5, %r10d
xorl %esi, %r10d
subl %r9d, %edx
subl %r10d, %edx
movl %r10d, %edi
shrl $0x3, %edi
xorl %edx, %edi
subl %r10d, %r9d
subl %edi, %r9d
movl %edi, %esi
shll $0xa, %esi
xorl %r9d, %esi
subl %edi, %r10d
subl %esi, %r10d
movl %esi, %edx
shrl $0xf, %edx
xorl %r10d, %edx
addq $0xc, %rcx
addl $-0xc, %r8d
cmpl $0xb, %r8d
ja 0x2af7
jmp 0x2c19
movl $0xfeedbeef, %edx       # imm = 0xFEEDBEEF
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movq %rbx, %rcx
movl %eax, %r8d
movl $0x9e3779b9, %edi       # imm = 0x9E3779B9
addl %eax, %edx
decl %r8d
cmpl $0xa, %r8d
ja 0x2cab
leaq 0x43d5(%rip), %rax      # 0x7004
movslq (%rax,%r8,4), %r8
addq %rax, %r8
jmpq *%r8
movzbl 0xa(%rcx), %eax
shll $0x18, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x9(%rcx), %eax
shll $0x10, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x8(%rcx), %eax
shll $0x8, %eax
addl %edx, %eax
movl %eax, %edx
movzbl 0x7(%rcx), %eax
shll $0x18, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x6(%rcx), %eax
shll $0x10, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x5(%rcx), %eax
shll $0x8, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x4(%rcx), %eax
addl %esi, %eax
movl %eax, %esi
movzbl 0x3(%rcx), %eax
shll $0x18, %eax
addl %edi, %eax
movl %eax, %edi
movsbl 0x2(%rcx), %eax
shll $0x10, %eax
addl %edi, %eax
movl %eax, %edi
movsbl 0x1(%rcx), %eax
shll $0x8, %eax
addl %edi, %eax
movl %eax, %edi
movsbl (%rcx), %eax
addl %edi, %eax
movl %eax, %edi
subl %esi, %edi
subl %edx, %edi
movl %edx, %eax
shrl $0xd, %eax
xorl %edi, %eax
subl %edx, %esi
subl %eax, %esi
movl %eax, %ecx
shll $0x8, %ecx
xorl %esi, %ecx
subl %eax, %edx
subl %ecx, %edx
movl %ecx, %esi
shrl $0xd, %esi
xorl %edx, %esi
subl %ecx, %eax
subl %esi, %eax
movl %esi, %edx
shrl $0xc, %edx
xorl %eax, %edx
subl %esi, %ecx
subl %edx, %ecx
movl %edx, %eax
shll $0x10, %eax
xorl %ecx, %eax
subl %edx, %esi
subl %eax, %esi
movl %eax, %ecx
shrl $0x5, %ecx
xorl %esi, %ecx
subl %eax, %edx
subl %ecx, %edx
movl %ecx, %esi
shrl $0x3, %esi
xorl %edx, %esi
subl %ecx, %eax
subl %esi, %eax
movl %esi, %edx
shll $0xa, %edx
xorl %eax, %edx
addl %edx, %esi
subl %esi, %ecx
shrl $0xf, %edx
xorl %ecx, %edx
movq 0x10(%r15), %rax
movl 0x8(%rax), %ecx
decl %ecx
andl %edx, %ecx
movq (%rax), %rdx
shlq $0x4, %rcx
movq (%rdx,%rcx), %r13
testq %r13, %r13
jne 0x2d2c
xorl %r13d, %r13d
jmp 0x2d30
subq 0x20(%rax), %r13
movq %r13, 0x9179(%rip)      # 0xbeb0
testq %r13, %r13
je 0x2d6f
movl 0x40(%r13), %ebp
movq %rbx, %rdi
callq 0x20e0
cmpq %rbp, %rax
jne 0x2d60
movq 0x38(%r13), %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2200
testl %eax, %eax
je 0x2d6f
movq 0x30(%r13), %r13
testq %r13, %r13
je 0x2d27
movq 0x10(%r15), %rax
jmp 0x2d2c
movq 0x913a(%rip), %rax      # 0xbeb0
testq %rax, %rax
je 0x2d83
incl 0x8(%rax)
jmp 0x3265
leaq (%r12,%r14,8), %r13
addq $0x40, %r13
movl $0x48, %edi
callq 0x21f0
movq %rax, %r14
movq %rax, 0x9111(%rip)      # 0xbeb0
movq %rbx, (%rax)
movl $0x1, 0x8(%rax)
movq $0x0, 0x20(%rax)
movq %rbx, 0x38(%rax)
movq %rbx, %rdi
callq 0x20e0
movq %r14, %r12
movl %eax, 0x40(%r14)
testq %r15, %r15
je 0x2deb
movq 0x10(%r15), %rax
movq 0x18(%rax), %rcx
movq %r12, 0x10(%rcx)
subq 0x20(%rax), %rcx
movq %rcx, 0x18(%r12)
leaq 0x10(%r14), %rcx
movq %rcx, 0x18(%rax)
jmp 0x2e74
movq %r12, (%r13)
movq $0x0, 0x18(%r12)
movl $0x40, %edi
callq 0x21f0
movq %rax, 0x10(%r12)
testq %rax, %rax
je 0x327a
movq %rax, %r15
leaq 0x10(%r14), %rax
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movups %xmm0, (%r15)
movups %xmm0, 0x20(%r15)
movups %xmm0, 0x30(%r15)
movq %rax, 0x18(%r15)
movabsq $0x500000020, %rax      # imm = 0x500000020
movq %rax, 0x8(%r15)
movq $0x10, 0x20(%r15)
movl $0x200, %edi            # imm = 0x200
callq 0x21f0
movq %rax, (%r15)
testq %rax, %rax
je 0x327a
movl $0x200, %edx            # imm = 0x200
movq %rax, %rdi
xorl %esi, %esi
callq 0x2140
movl $0xa0111fe1, 0x38(%r15) # imm = 0xA0111FE1
movq (%r13), %r15
movq 0x10(%r15), %rax
incl 0x10(%rax)
movq %rax, 0x10(%r12)
movl $0xfeedbeef, 0x44(%r12) # imm = 0xFEEDBEEF
movq %rbx, %rdi
callq 0x20e0
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movl %eax, %edi
movq %rbx, %rcx
cmpl $0xc, %eax
jb 0x2fdc
movl 0x44(%r12), %r8d
movl $0x9e3779b9, %edx       # imm = 0x9E3779B9
movq %rbx, %rcx
movl %eax, %edi
movl $0x9e3779b9, %esi       # imm = 0x9E3779B9
movsbl (%rcx), %r9d
addl %esi, %r9d
movsbl 0x1(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0x2(%rcx), %r9d
shll $0x10, %r9d
movzbl 0x3(%rcx), %esi
shll $0x18, %esi
addl %r9d, %esi
addl %r10d, %esi
movsbl 0x4(%rcx), %r9d
addl %edx, %r9d
movsbl 0x5(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0x6(%rcx), %r9d
shll $0x10, %r9d
movzbl 0x7(%rcx), %edx
shll $0x18, %edx
addl %r9d, %edx
addl %r10d, %edx
movsbl 0x8(%rcx), %r9d
movsbl 0x9(%rcx), %r10d
shll $0x8, %r10d
addl %r9d, %r10d
movsbl 0xa(%rcx), %r9d
shll $0x10, %r9d
addl %r8d, %r9d
addl %r10d, %r9d
movzbl 0xb(%rcx), %r8d
shll $0x18, %r8d
addl %r9d, %r8d
subl %edx, %esi
subl %r8d, %esi
movl %r8d, %r9d
shrl $0xd, %r9d
xorl %esi, %r9d
subl %r8d, %edx
subl %r9d, %edx
movl %r9d, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %r9d, %r8d
subl %esi, %r8d
movl %esi, %edx
shrl $0xd, %edx
xorl %r8d, %edx
subl %esi, %r9d
subl %edx, %r9d
movl %edx, %r8d
shrl $0xc, %r8d
xorl %r9d, %r8d
subl %edx, %esi
subl %r8d, %esi
movl %r8d, %r9d
shll $0x10, %r9d
xorl %esi, %r9d
subl %r8d, %edx
subl %r9d, %edx
movl %r9d, %r10d
shrl $0x5, %r10d
xorl %edx, %r10d
subl %r9d, %r8d
subl %r10d, %r8d
movl %r10d, %esi
shrl $0x3, %esi
xorl %r8d, %esi
subl %r10d, %r9d
subl %esi, %r9d
movl %esi, %edx
shll $0xa, %edx
xorl %r9d, %edx
subl %esi, %r10d
subl %edx, %r10d
movl %edx, %r8d
shrl $0xf, %r8d
xorl %r10d, %r8d
addq $0xc, %rcx
addl $-0xc, %edi
cmpl $0xb, %edi
ja 0x2ec1
movl %r8d, 0x44(%r12)
addl 0x44(%r12), %eax
movl %eax, 0x44(%r12)
decl %edi
cmpl $0xa, %edi
ja 0x3078
leaq 0x4038(%rip), %r8       # 0x7030
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movzbl 0xa(%rcx), %edi
shll $0x18, %edi
addl %eax, %edi
movl %edi, 0x44(%r12)
movsbl 0x9(%rcx), %eax
shll $0x10, %eax
addl %eax, 0x44(%r12)
movsbl 0x8(%rcx), %eax
shll $0x8, %eax
addl %eax, 0x44(%r12)
movzbl 0x7(%rcx), %eax
shll $0x18, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x6(%rcx), %eax
shll $0x10, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x5(%rcx), %eax
shll $0x8, %eax
addl %edx, %eax
movl %eax, %edx
movsbl 0x4(%rcx), %eax
addl %edx, %eax
movl %eax, %edx
movzbl 0x3(%rcx), %eax
shll $0x18, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x2(%rcx), %eax
shll $0x10, %eax
addl %esi, %eax
movl %eax, %esi
movsbl 0x1(%rcx), %eax
shll $0x8, %eax
addl %esi, %eax
movl %eax, %esi
movsbl (%rcx), %eax
addl %esi, %eax
movl %eax, %esi
addq $0x10, %r14
movl 0x44(%r12), %eax
subl %edx, %esi
subl %eax, %esi
movl %eax, %ecx
shrl $0xd, %ecx
xorl %esi, %ecx
subl %eax, %edx
subl %ecx, %edx
movl %ecx, %esi
shll $0x8, %esi
xorl %edx, %esi
subl %ecx, %eax
subl %esi, %eax
movl %esi, %edx
shrl $0xd, %edx
xorl %eax, %edx
subl %esi, %ecx
subl %edx, %ecx
movl %edx, %eax
shrl $0xc, %eax
xorl %ecx, %eax
subl %edx, %esi
subl %eax, %esi
movl %eax, %ecx
shll $0x10, %ecx
xorl %esi, %ecx
subl %eax, %edx
subl %ecx, %edx
movl %ecx, %esi
shrl $0x5, %esi
xorl %edx, %esi
subl %ecx, %eax
subl %esi, %eax
movl %esi, %edx
shrl $0x3, %edx
xorl %eax, %edx
subl %esi, %ecx
subl %edx, %ecx
movl %edx, %eax
shll $0xa, %eax
xorl %ecx, %eax
addl %eax, %edx
subl %edx, %esi
shrl $0xf, %eax
xorl %esi, %eax
movl %eax, 0x44(%r12)
movq 0x10(%r15), %rcx
movl 0x8(%rcx), %edx
decl %edx
andl %eax, %edx
movq (%rcx), %rcx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
incl 0x8(%rcx,%rdx)
movq (%rcx,%rdx), %rcx
movq %rcx, 0x30(%r12)
movq $0x0, 0x28(%r12)
testq %rcx, %rcx
je 0x311c
movq %r14, 0x18(%rcx)
movq %r14, (%rax)
movl 0xc(%rax), %ecx
leal (%rcx,%rcx,4), %ecx
leal 0xa(,%rcx,2), %ecx
cmpl %ecx, 0x8(%rax)
jb 0x3265
movq 0x8d74(%rip), %r12      # 0xbeb0
movq 0x10(%r12), %rax
cmpl $0x1, 0x34(%rax)
je 0x3265
movl 0x8(%rax), %r15d
addl %r15d, %r15d
shlq $0x4, %r15
movq %r15, %rdi
callq 0x21f0
testq %rax, %rax
je 0x327a
movq %rax, %r14
xorl %ebp, %ebp
movq %rax, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x2140
movq 0x10(%r12), %rsi
movl 0x10(%rsi), %edi
movb 0xc(%rsi), %cl
incb %cl
movl 0x8(%rsi), %r8d
leal -0x1(,%r8,2), %r9d
movl %r9d, %eax
andl %edi, %eax
shrl %cl, %edi
cmpl $0x1, %eax
sbbl $-0x1, %edi
movl %edi, 0x28(%rsi)
movl $0x0, 0x2c(%rsi)
testq %r8, %r8
je 0x3220
movq (%rsi), %rcx
xorl %r10d, %r10d
movq %r10, %rax
shlq $0x4, %rax
movq (%rcx,%rax), %r11
testq %r11, %r11
je 0x3218
movq 0x20(%r11), %r15
movl 0x34(%r11), %edx
andl %r9d, %edx
shlq $0x4, %rdx
leaq (%r14,%rdx), %r12
movl 0x8(%r14,%rdx), %eax
incl %eax
movl %eax, 0x8(%r14,%rdx)
cmpl %edi, %eax
jbe 0x31f3
incl 0x2c(%rsi)
xorl %edx, %edx
divl %edi
movl %eax, 0xc(%r12)
movq $0x0, 0x18(%r11)
movq (%r12), %rax
movq %rax, 0x20(%r11)
testq %rax, %rax
je 0x320c
movq %r11, 0x18(%rax)
movq %r11, (%r12)
movq %r15, %r11
testq %r15, %r15
jne 0x31c4
incq %r10
cmpq %r8, %r10
jne 0x31b4
movq (%rsi), %rdi
callq 0x2040
movq 0x8c81(%rip), %rax      # 0xbeb0
movq 0x10(%rax), %rax
shll 0x8(%rax)
incl 0xc(%rax)
movq %r14, (%rax)
movq 0x8c6d(%rip), %rax      # 0xbeb0
movq 0x10(%rax), %rax
movl 0x10(%rax), %ecx
shrl %ecx
cmpl %ecx, 0x2c(%rax)
jbe 0x3256
movl 0x30(%rax), %ebp
incl %ebp
movl %ebp, 0x30(%rax)
cmpl $0x2, %ebp
jb 0x3265
movl $0x1, 0x34(%rax)
testq %rbx, %rbx
setne %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2250