// File: /workspace/github_c_makefile_star2_O3/sharpyfox[P]citrusleaf-client/src/cl_batch.c
// Function: batch_worker_fn
static void *
batch_worker_fn(void *dummy)
{
	do {
		digest_work work;
		
		if (0 != cf_queue_pop(g_batch_q, &work, CF_QUEUE_FOREVER)) {
			cf_error("queue pop failed");
		}
		
		/* See function citrusleaf_batch_shutdown() for more details */
		if(work.digests==NULL) {
			pthread_exit(NULL);
		}

		int an_int = do_batch_monte( work.asc, work.info1, work.info2, work.ns, work.digests, work.nodes, work.n_digests, work.bins, work.operator, work.operations, work.n_ops, work.my_node, work.my_node_digest_count, work.cb, work.udata );
		
		cf_queue_push(work.complete_q, (void *) &an_int);
		
	} while (1);

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x9a18, %rsp           # imm = 0x9A18
movq 0xed21(%rip), %rdi      # 0x18438
leaq 0x98(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xccdc
testl %eax, %eax
je 0x9750
leaq 0xcb94(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0x9750
leaq 0xcb90(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x67a2(%rip), %rsi      # 0xfeeb
movq (%rax), %rcx
xorl %eax, %eax
callq *%rcx
movq 0xb0(%rsp), %rbp
testq %rbp, %rbp
je 0xa0e2
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rax
movl 0xd0(%rsp), %esi
movq 0xb8(%rsp), %r14
movl 0xc0(%rsp), %r13d
movq 0xd8(%rsp), %r12
movl 0xe0(%rsp), %r15d
movq 0x100(%rsp), %rbx
movl %edx, (%rsp)
movl %ecx, 0x40(%rsp)
movq 0xc8(%rsp), %rdx
movslq 0x108(%rsp), %rcx
testq %rdi, %rdi
movq %rax, 0x18(%rsp)
movl %esi, 0x30(%rsp)
movq %rdi, 0x20(%rsp)
movq %rdx, 0x38(%rsp)
movq %rcx, 0x10(%rsp)
movq 0xe8(%rsp), %rdx
movq 0xf0(%rsp), %rcx
movq %rdx, 0x50(%rsp)
movq %rcx, 0x68(%rsp)
je 0x9808
callq 0x20e0
movq 0x20(%rsp), %rdi
jmp 0x980a
xorl %eax, %eax
cltq
testq %rdi, %rdi
movl $0x1e, %ecx
movq %rbx, 0x48(%rsp)
movq %rax, 0x60(%rsp)
leaq 0x23(%rax), %rax
cmoveq %rcx, %rax
movq 0x10(%rsp), %rcx
testl %r15d, %r15d
leaq (%rcx,%rcx,4), %rcx
leaq 0x6(%rax,%rcx,4), %rcx
movq %rcx, 0x1a10(%rsp)
jle 0x989b
movq %r12, 0x28(%rsp)
movq 0x38(%rsp), %r12
xorl %ebx, %ebx
movq %r12, %rdi
callq 0x20e0
movq 0x1a10(%rsp), %rcx
movq %r12, %rdi
leaq 0x1a10(%rsp), %rsi
leaq 0x8(%rax,%rcx), %rax
movq %rax, 0x1a10(%rsp)
callq 0x496a
testl %eax, %eax
jne 0x9eb2
incq %rbx
addq $0x40, %r12
cmpq %rbx, %r15
jne 0x984d
movq 0x1a10(%rsp), %rcx
movq 0x28(%rsp), %r12
cmpq $0x4001, %rcx           # imm = 0x4001
leaq 0x5a10(%rsp), %rax
jb 0x98c3
movq %rcx, %rdi
movq %rcx, %rbx
callq 0x22e0
movq %rbx, %rcx
testq %rax, %rax
je 0x9edd
movq %rax, %rdi
xorl %esi, %esi
movq %rcx, %rdx
movq %rax, 0x28(%rsp)
movq %rcx, %rbx
callq 0x2140
movq 0x28(%rsp), %rdi
movl (%rsp), %edx
movl 0x40(%rsp), %ecx
movq %rbx, %rsi
movq %rbx, 0x58(%rsp)
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %r15
pushq $0x2
xorl %eax, %eax
pushq %rax
pushq %rax
callq 0x48dd
addq $0x20, %rsp
movq 0x20(%rsp), %rsi
movq %rax, %rbx
testq %rsi, %rsi
je 0x9946
movq 0x60(%rsp), %rdx
leaq 0x5(%rbx), %rdi
movb $0x0, 0x4(%rbx)
leal 0x1(%rdx), %eax
movq %rax, (%rsp)
movl %eax, (%rbx)
callq 0x21b0
movq (%rsp), %rax
movq %rbx, %rdi
leaq 0x4(%rbx,%rax), %rax
movq %rax, 0x20(%rsp)
callq 0xc8f9
movq 0x20(%rsp), %rbx
movq 0x10(%rsp), %rax
movb $0x6, 0x4(%rbx)
shll $0x2, %eax
testl %r13d, %r13d
leal 0x1(%rax,%rax,4), %eax
movl %eax, (%rbx)
jle 0x9993
movq 0x48(%rsp), %rsi
leaq 0x5(%rbx), %rax
cmpq %rsi, (%r14)
jne 0x9984
movl 0x10(%rbp), %ecx
movl %ecx, 0x10(%rax)
movq (%rbp), %rcx
movq 0x8(%rbp), %rdx
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
addq $0x14, %rax
addq $0x14, %rbp
addq $0x8, %r14
decq %r13
jne 0x9966
movl (%rbx), %eax
movq %rbx, %rdi
movl %eax, %ebp
callq 0xc8f9
movq 0x38(%rsp), %r13
testl %r15d, %r15d
jle 0x99f2
addq $0x4, %rbx
movl %ebp, %ebp
movq %r13, %r14
addq %rbx, %rbp
testq %r13, %r13
je 0x99c3
movl 0x30(%rsp), %esi
movq %r14, %rdi
xorl %edx, %edx
jmp 0x99ca
xorl %edi, %edi
xorl %esi, %esi
movq %r12, %rdx
movq %rbp, %rcx
callq 0x49c7
movl (%rbp), %eax
movq %rbp, %rdi
leaq 0x4(%rbp,%rax), %rbx
callq 0xc8e8
addq $0x48, %r12
addq $0x40, %r14
decq %r15
movq %rbx, %rbp
jne 0x99b3
movq 0x18(%rsp), %rax
movq 0x48(%rsp), %rdi
xorl %esi, %esi
movzbl 0x15(%rax), %edx
callq 0x83f3
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $-0x1, %eax
je 0x9f44
movq 0x28(%rsp), %rsi
movq 0x58(%rsp), %rdx
movl %eax, %edi
movl %eax, %ebx
callq 0xe1a4
testl %eax, %eax
leaq 0x63e7(%rip), %r12      # 0xfe18
jne 0x9f44
movl %ebx, (%rsp)
xorl %ebx, %ebx
leaq 0x8(%rsp), %r14
movq $0x0, 0x10(%rsp)
movl (%rsp), %edi
movl $0x8, %edx
movq %r14, %rsi
callq 0xe10d
testl %eax, %eax
jne 0x9f65
movq %r14, %rdi
callq 0xc8a8
movzbl 0x8(%rsp), %edx
cmpl $0x2, %edx
jne 0x9f95
movb 0x9(%rsp), %al
leal -0x5(%rax), %ecx
cmpb $-0x3, %cl
jbe 0x9fbb
movzwl 0xe(%rsp), %r15d
movl 0xa(%rsp), %ecx
shlq $0x20, %r15
orq %rcx, %r15
testq %r15, %r15
je 0x9add
cmpq $0x4001, %r15           # imm = 0x4001
leaq 0x1a10(%rsp), %rbx
jb 0x9ac3
movq %r15, %rdi
callq 0x22e0
movq %rax, %rbx
testq %rax, %rax
je 0x9f3f
movl (%rsp), %edi
movq %rbx, %rsi
movq %r15, %rdx
callq 0xe10d
testl %eax, %eax
jne 0x9fef
movb 0x9(%rsp), %al
cmpb $0x4, %al
jne 0x9bcd
movl $0x1, %edi
leaq 0x70(%rsp), %rsi
callq 0x2230
leaq 0x150(%rsp), %rax
xorl %ecx, %ecx
leaq 0x110(%rsp), %rdi
leaq 0x6561(%rip), %rsi      # 0x1006e
movl $0x70, %edx
movq %rcx, 0x10(%rax)
movq %rcx, 0x8(%rax)
movq %rcx, (%rax)
callq 0x2200
testl %eax, %eax
jne 0xa083
movq (%rbx), %r14
movq %r14, %rdi
callq 0x22e0
testq %rax, %rax
je 0xa021
addl $-0x8, %r15d
leaq 0x8(%rbx), %rcx
movl $0x4, %esi
movq %rax, %r13
movl %r15d, 0x118(%rsp)
leaq 0x110(%rsp), %r15
movq %rcx, 0x110(%rsp)
movl %r14d, 0x130(%rsp)
movq %rax, 0x128(%rsp)
movq %r15, %rdi
callq 0x21a0
cmpl $0x1, %eax
jne 0xa049
movq %r15, %rdi
callq 0x2280
movl 0x130(%rsp), %r15d
leaq 0x1a10(%rsp), %rax
cmpq %rax, %rbx
je 0x9bac
movq %rbx, %rdi
callq 0x22c0
subq %r15, %r14
movq %r14, %rax
movl %r14d, 0xa(%rsp)
movq %r14, %r15
movq %r13, %r14
shrq $0x20, %rax
movw %ax, 0xe(%rsp)
movb $0x3, 0x9(%rsp)
jmp 0x9bd0
movq %rbx, %r14
testq %r15, %r15
movq %r14, 0x40(%rsp)
je 0x9e3e
xorl %ebx, %ebx
movl $0x0, 0x18(%rsp)
movq %r15, 0x20(%rsp)
movq %r14, %rdi
callq 0xc8c5
movzbl (%r14), %ecx
cmpl $0x16, %ecx
jne 0x9f07
xorps %xmm0, %xmm0
movb $0x0, 0x90(%rsp)
leaq 0x16(%r14), %r13
movq %rbx, 0x38(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x70(%rsp)
cmpw $0x0, 0x12(%r14)
je 0x9cf7
xorl %ebx, %ebx
movq %r13, %r15
xorl %ebp, %ebp
movq $0x0, 0x30(%rsp)
movq %r15, %rdi
callq 0xc8f9
movzbl 0x4(%r15), %eax
cmpq $0x4, %rax
ja 0x9cd9
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movl (%r15), %edx
leaq 0x5(%r15), %rsi
leaq 0x70(%rsp), %rdi
decl %edx
callq 0x21b0
movl (%r15), %eax
decl %eax
movb $0x0, 0x70(%rsp,%rax)
jmp 0x9cd9
leaq 0xc643(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0x9cd9
leaq 0xc63f(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x63b5(%rip), %rsi      # 0x1004f
movq (%rax), %rcx
xorl %eax, %eax
callq *%rcx
jmp 0x9cd9
movl (%r15), %edi
leal -0x1(%rdi), %r12d
callq 0x22e0
leaq 0x5(%r15), %rsi
movq %rax, %rdi
movq %r12, %rdx
movq %rax, %rbp
callq 0x21b0
movb $0x0, (%rbp,%r12)
leaq 0x614a(%rip), %r12      # 0xfe18
jmp 0x9cd9
leaq 0x5(%r15), %rax
movq %rax, 0x30(%rsp)
movl (%r15), %r13d
movzwl 0x12(%r14), %eax
addq $0x4, %r15
incl %ebx
addq %r15, %r13
cmpl %eax, %ebx
movq %r13, %r15
jb 0x9c3f
jmp 0x9d02
xorl %ebp, %ebp
movq $0x0, 0x30(%rsp)
movzwl 0x14(%r14), %edi
cmpq $0x64, %rdi
jbe 0x9d22
shll $0x6, %edi
callq 0x22e0
movq %rax, %r15
testq %rax, %rax
jne 0x9d33
jmp 0x9f32
testq %rdi, %rdi
leaq 0x110(%rsp), %r15
je 0x9e2a
movq %r15, %r12
xorl %ebx, %ebx
movq %r13, %rdi
callq 0xc8e8
movq %r13, %rdi
movq %r12, %rsi
callq 0x5192
movl (%r13), %eax
incq %rbx
addq $0x40, %r12
leaq 0x4(%r13,%rax), %r13
movzwl 0x14(%r14), %eax
cmpq %rax, %rbx
jb 0x9d38
testl %eax, %eax
leaq 0x110(%rsp), %rbx
leaq 0x60a2(%rip), %r12      # 0xfe18
sete %cl
movzbl 0x5(%r14), %edx
testb $-0x3, %dl
je 0x9d8f
movb $0x1, %sil
movl %edx, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rsi
testb $0x1, 0x3(%r14)
movl $0x1, %edx
movzbl %sil, %esi
cmovnel %edx, %esi
cmpq $0x0, 0x50(%rsp)
movq %rsi, 0x10(%rsp)
je 0x9df0
testb %cl, %cl
je 0x9dbd
testb $0x20, 0x1(%r14)
je 0x9df0
movl 0x6(%r14), %ecx
movl 0xa(%r14), %r8d
subq $0x8, %rsp
movq 0x38(%rsp), %rsi
leaq 0x78(%rsp), %rdi
movq %rbp, %rdx
movq %r15, %r9
pushq 0x70(%rsp)
pushq $0x0
pushq %rax
callq *0x70(%rsp)
addq $0x20, %rsp
movl $0x0, 0x18(%rsp)
cmpq %rbx, %r15
je 0x9dfd
movq %r15, %rdi
callq 0x22c0
movq 0x38(%rsp), %rbx
testq %rbp, %rbp
je 0x9e0f
movq %rbp, %rdi
callq 0x22c0
movq 0x20(%rsp), %r15
movl %r13d, %eax
subl %r14d, %eax
movq %r13, %r14
addl %eax, %ebx
cmpq %rbx, %r15
ja 0x9bed
jmp 0x9e46
leaq 0x110(%rsp), %rbx
xorl %eax, %eax
movb $0x1, %cl
movq %rbx, %r15
jmp 0x9d79
movl $0x0, 0x18(%rsp)
movq 0x40(%rsp), %rbx
leaq 0x1a10(%rsp), %rcx
testq %rbx, %rbx
sete %al
cmpq %rcx, %rbx
sete %cl
orb %al, %cl
jne 0x9e6d
movq %rbx, %rdi
callq 0x22c0
xorl %ebx, %ebx
testb $0x1, 0x10(%rsp)
leaq 0x8(%rsp), %r14
je 0x9a4a
movq 0x28(%rsp), %rdi
movq 0x48(%rsp), %rbx
leaq 0x5a10(%rsp), %rax
cmpq %rax, %rdi
je 0x9e99
callq 0x22c0
movl 0x18(%rsp), %ebp
testl %ebp, %ebp
je 0xa0ce
movl (%rsp), %edi
callq 0x2550
jmp 0x9f44
leaq 0xc40f(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0x9edd
leaq 0xc40b(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x5992(%rip), %rsi      # 0xf860
movl %ebx, %ecx
movq (%rax), %r8
movl 0x20(%r12), %edx
xorl %eax, %eax
callq *%r8
leaq 0xc3e4(%rip), %rax      # 0x162c8
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x0, (%rax)
js 0x9f44
leaq 0xc3db(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x5ffe(%rip), %rsi      # 0xfefc
movq (%rax), %rcx
xorl %eax, %eax
callq *%rcx
jmp 0x9f44
leaq 0xc3ba(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0x9f3f
leaq 0xc3b6(%rip), %rax      # 0x162d0
movl $0x16, %edx
xorl %edi, %edi
leaq 0x60dc(%rip), %rsi      # 0x10004
movq (%rax), %r8
xorl %eax, %eax
callq *%r8
jmp 0x9f3f
testq %rbp, %rbp
je 0x9f3f
movq %rbp, %rdi
callq 0x22c0
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq 0xf8(%rsp), %rdi
leaq 0x1a10(%rsp), %rsi
movl %ebp, 0x1a10(%rsp)
callq 0xcb7c
jmp 0x9710
leaq 0xc35c(%rip), %rcx      # 0x162c8
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x0, (%rcx)
js 0x9f44
leaq 0xc353(%rip), %rcx      # 0x162d0
movl %eax, %edx
xorl %edi, %edi
leaq 0x5fba(%rip), %rsi      # 0xff42
xorl %eax, %eax
movq (%rcx), %r8
movl (%rsp), %ecx
callq *%r8
jmp 0x9f44
leaq 0xc32c(%rip), %rax      # 0x162c8
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x0, (%rax)
js 0x9f44
leaq 0xc323(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x5faa(%rip), %rsi      # 0xff60
movq (%rax), %rcx
jmp 0x9fe6
leaq 0xc306(%rip), %rcx      # 0x162c8
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x0, (%rcx)
js 0x9f44
leaq 0xc2f9(%rip), %rcx      # 0x162d0
movzbl %al, %edx
xorl %edi, %edi
leaq 0x5fba(%rip), %rsi      # 0xff9d
movq (%rcx), %rcx
xorl %eax, %eax
callq *%rcx
jmp 0x9f44
leaq 0xc2d2(%rip), %rcx      # 0x162c8
cmpl $0x0, (%rcx)
js 0xa0ab
leaq 0xc2ca(%rip), %rcx      # 0x162d0
movl %eax, %edx
xorl %edi, %edi
leaq 0x5f31(%rip), %rsi      # 0xff42
xorl %eax, %eax
movq (%rcx), %r8
movl (%rsp), %ecx
callq *%r8
jmp 0xa0ab
leaq 0xc2a0(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0xa076
leaq 0xc29c(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x6038(%rip), %rsi      # 0x10075
movq %r14, %rdx
movq (%rax), %rcx
xorl %eax, %eax
callq *%rcx
jmp 0xa076
leaq 0xc278(%rip), %rcx      # 0x162c8
cmpl $0x0, (%rcx)
js 0xa06e
leaq 0xc274(%rip), %rcx      # 0x162d0
movl %eax, %edx
xorl %edi, %edi
leaq 0x603b(%rip), %rsi      # 0x100a2
xorl %eax, %eax
movq (%rcx), %rcx
callq *%rcx
movq %r13, %rdi
callq 0x22c0
leaq 0x110(%rsp), %rdi
callq 0x2280
leaq 0xc23e(%rip), %rax      # 0x162c8
cmpl $0x0, (%rax)
js 0xa0ab
leaq 0xc23a(%rip), %rax      # 0x162d0
xorl %edi, %edi
leaq 0x5f33(%rip), %rsi      # 0xffd2
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq (%rax), %rcx
xorl %eax, %eax
callq *%rcx
leaq 0x1a10(%rsp), %rax
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpq %rax, %rbx
je 0x9f44
movq %rbx, %rdi
callq 0x22c0
jmp 0x9f44
movl (%rsp), %esi
movq %rbx, %rdi
xorl %edx, %edx
xorl %ebp, %ebp
callq 0x844f
jmp 0x9f44
xorl %edi, %edi
callq 0x24c0