// File: /workspace/github_c_makefile_star2_O2/Tarsnap[P]kivaloo/liball/../libcperciva/network_ssl/network_ssl.c
// Function: poke
static int
poke(struct network_ssl_ctx * ssl)
{

	/* Should we try to read? */
	if (ssl->read_callback != NULL &&
	    !ssl->read_needs_r && !ssl->read_needs_w) {
		if (doread(ssl))
			goto err0;
	}

	/* Should we try to write? */
	if (ssl->write_callback != NULL &&
	    !ssl->write_needs_r && !ssl->write_needs_w) {
		if (dowrite(ssl))
			goto err0;
	}

	/* Wait for socket readability/writability as needed. */
	if (setupevents(ssl))
		goto err0;

	/* Success! */
	return (0);

err0:
	/* Failure! */
	return (-1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
cmpq $0x0, 0x20(%rdi)
je 0xced4
cmpl $0x0, 0x50(%rbx)
jne 0xced4
cmpl $0x0, 0x54(%rbx)
je 0xcf11
cmpq $0x0, 0x58(%rbx)
je 0xcef1
cmpl $0x0, 0x88(%rbx)
jne 0xcef1
cmpl $0x0, 0x8c(%rbx)
je 0xcfac
movq %rbx, %rdi
callq 0xcb92
testl %eax, %eax
je 0xcf02
pushq $-0x1
popq %rax
jmp 0xcf04
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
callq 0x3040
movq %rax, %r14
andl $0x0, (%rax)
callq 0x34f0
pushq $0xd
popq %rdi
pushq $0x1
popq %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd0a7
movq %rax, %r15
movq 0x38(%rbx), %rdx
movq 0x48(%rbx), %rsi
leaq 0x8(%rsp), %r12
movq 0x8(%rbx), %rdi
subq %rsi, %rdx
addq 0x30(%rbx), %rsi
movq %r12, %rcx
callq 0x35b0
testl %eax, %eax
jle 0xd048
movq 0x38(%rbx), %rdx
movq 0x48(%rbx), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, 0x48(%rbx)
cmpq %rdx, %rsi
ja 0xd213
cmpq 0x40(%rbx), %rsi
jb 0xcf46
pushq $0xd
popq %rdi
movq %r15, %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd0a7
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
movq 0x48(%rbx), %rsi
andq $0x0, 0x20(%rbx)
jmp 0xd204
callq 0x34f0
pushq $0xd
popq %rdi
pushq $0x1
popq %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd124
movq %rax, %r14
movq 0x70(%rbx), %rdx
movq 0x80(%rbx), %rsi
leaq 0x8(%rsp), %r15
movq 0x8(%rbx), %rdi
subq %rsi, %rdx
addq 0x68(%rbx), %rsi
movq %r15, %rcx
callq 0x3660
testl %eax, %eax
jle 0xd0c8
movq 0x70(%rbx), %rdx
movq 0x80(%rbx), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, 0x80(%rbx)
cmpq %rdx, %rsi
ja 0xd232
cmpq 0x78(%rbx), %rsi
jb 0xcfd9
pushq $0xd
popq %rdi
movq %r14, %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd124
movq 0x58(%rbx), %rax
movq 0x60(%rbx), %rdi
movq 0x80(%rbx), %rsi
andq $0x0, 0x58(%rbx)
jmp 0xd1a0
movl %eax, %ebp
pushq $0xd
popq %rdi
movq %r15, %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd0a7
movq 0x8(%rbx), %rdi
movl %ebp, %esi
callq 0x3030
leal -0x1(%rax), %ecx
cmpl $0x5, %ecx
ja 0xd1af
leaq 0x4edf(%rip), %rdx      # 0x11f58
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
callq 0x34c0
movq %rax, %rdi
xorl %esi, %esi
callq 0x3100
leaq 0x51ed(%rip), %rdi      # 0x12285
movq %rax, %rsi
xorl %eax, %eax
callq 0x553c
jmp 0xd1bf
cmpl $0x0, (%r14)
je 0xd147
leaq 0x5173(%rip), %rdi      # 0x1222b
xorl %eax, %eax
callq 0x53ad
andl $0x0, (%r14)
jmp 0xcefd
movl %eax, %ebp
pushq $0xd
popq %rdi
movq %r14, %rsi
callq 0x35e0
cmpq $-0x1, %rax
je 0xd124
movq 0x8(%rbx), %rdi
movl %ebp, %esi
callq 0x3030
leal -0x1(%rax), %ecx
cmpl $0x4, %ecx
ja 0xd178
leaq 0x4e77(%rip), %rdx      # 0x11f70
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
callq 0x34c0
movq %rax, %rdi
xorl %esi, %esi
callq 0x3100
leaq 0x516d(%rip), %rdi      # 0x12285
movq %rax, %rsi
xorl %eax, %eax
callq 0x553c
jmp 0xd188
callq 0x3040
cmpl $0x0, (%rax)
je 0xd147
movq %rax, %rbx
leaq 0x50f3(%rip), %rdi      # 0x1222b
xorl %eax, %eax
callq 0x53ad
andl $0x0, (%rbx)
jmp 0xcefd
leaq 0x50dd(%rip), %rdi      # 0x1222b
xorl %eax, %eax
callq 0x553c
jmp 0xcefd
movl $0x1, 0x88(%rbx)
jmp 0xcef1
movl $0x1, 0x8c(%rbx)
jmp 0xcef1
leaq 0x5116(%rip), %rdi      # 0x12295
movl %eax, %esi
xorl %eax, %eax
callq 0x553c
callq 0x3040
andl $0x0, (%rax)
movq 0x58(%rbx), %rax
movq 0x60(%rbx), %rdi
andq $0x0, 0x58(%rbx)
pushq $-0x1
popq %rsi
callq *%rax
testl %eax, %eax
jne 0xcefd
jmp 0xcef1
leaq 0x50df(%rip), %rdi      # 0x12295
movl %eax, %esi
xorl %eax, %eax
callq 0x553c
andl $0x0, (%r14)
jmp 0xd1e3
movl $0x1, 0x54(%rbx)
jmp 0xced4
movl $0x1, 0x50(%rbx)
jmp 0xced4
cmpl $0x0, (%r14)
je 0xd1f5
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
andq $0x0, 0x20(%rbx)
pushq $-0x1
popq %rsi
jmp 0xd204
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
andq $0x0, 0x20(%rbx)
xorl %esi, %esi
callq *%rax
testl %eax, %eax
jne 0xcefd
jmp 0xced4
leaq 0x5021(%rip), %rdi      # 0x1223b
leaq 0x4da9(%rip), %rsi      # 0x11fca
leaq 0x5038(%rip), %rcx      # 0x12260
movl $0x127, %edx            # imm = 0x127
callq 0x3210
leaq 0x5072(%rip), %rdi      # 0x122ab
leaq 0x4d8a(%rip), %rsi      # 0x11fca
leaq 0x508b(%rip), %rcx      # 0x122d2
movl $0x186, %edx            # imm = 0x186
callq 0x3210