// File: /workspace/github_c_makefile_star2_O3/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 0xdd82
cmpl $0x0, 0x50(%rbx)
jne 0xdd82
cmpl $0x0, 0x54(%rbx)
je 0xddc1
cmpq $0x0, 0x58(%rbx)
je 0xdd9f
cmpl $0x0, 0x88(%rbx)
jne 0xdd9f
cmpl $0x0, 0x8c(%rbx)
je 0xde68
movq %rbx, %rdi
callq 0xda28
testl %eax, %eax
je 0xddb2
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0xddb4
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
callq 0x3040
movq %rax, %r14
movl $0x0, (%rax)
callq 0x34e0
movl $0x1, %esi
movl $0xd, %edi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdf6e
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 0x35a0
testl %eax, %eax
jle 0xdf0d
movq 0x38(%rbx), %rdx
movq 0x48(%rbx), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, 0x48(%rbx)
cmpq %rdx, %rsi
ja 0xe0f9
cmpq 0x40(%rbx), %rsi
jb 0xddfd
movl $0xd, %edi
movq %r15, %rsi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdf6e
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
movq 0x48(%rbx), %rsi
movq $0x0, 0x20(%rbx)
jmp 0xe0ea
callq 0x34e0
movl $0x1, %esi
movl $0xd, %edi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdff0
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 0x3650
testl %eax, %eax
jle 0xdf92
movq 0x70(%rbx), %rdx
movq 0x80(%rbx), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, 0x80(%rbx)
cmpq %rdx, %rsi
ja 0xe118
cmpq 0x78(%rbx), %rsi
jb 0xde99
movl $0xd, %edi
movq %r14, %rsi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdff0
movq 0x58(%rbx), %rax
movq 0x60(%rbx), %rdi
movq 0x80(%rbx), %rsi
movq $0x0, 0x58(%rbx)
jmp 0xe079
movl %eax, %ebp
movl $0xd, %edi
movq %r15, %rsi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdf6e
movq 0x8(%rbx), %rdi
movl %ebp, %esi
callq 0x3030
leal -0x1(%rax), %ecx
cmpl $0x5, %ecx
ja 0xe088
leaq 0x508c(%rip), %rdx      # 0x12fcc
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
callq 0x34b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x3100
leaq 0x539a(%rip), %rdi      # 0x132f9
movq %rax, %rsi
xorl %eax, %eax
callq 0x58d7
jmp 0xe098
cmpl $0x0, (%r14)
je 0xe016
leaq 0x5320(%rip), %rdi      # 0x1329f
xorl %eax, %eax
callq 0x57b8
movl $0x0, (%r14)
jmp 0xddab
movl %eax, %ebp
movl $0xd, %edi
movq %r14, %rsi
callq 0x35d0
cmpq $-0x1, %rax
je 0xdff0
movq 0x8(%rbx), %rdi
movl %ebp, %esi
callq 0x3030
leal -0x1(%rax), %ecx
cmpl $0x4, %ecx
ja 0xe047
leaq 0x501f(%rip), %rdx      # 0x12fe4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
callq 0x34b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x3100
leaq 0x5315(%rip), %rdi      # 0x132f9
movq %rax, %rsi
xorl %eax, %eax
callq 0x58d7
jmp 0xe057
callq 0x3040
cmpl $0x0, (%rax)
je 0xe016
movq %rax, %rbx
leaq 0x529b(%rip), %rdi      # 0x1329f
xorl %eax, %eax
callq 0x57b8
movl $0x0, (%rbx)
jmp 0xddab
leaq 0x5282(%rip), %rdi      # 0x1329f
xorl %eax, %eax
callq 0x58d7
jmp 0xddab
movl $0x1, 0x88(%rbx)
jmp 0xdd9f
movl $0x1, 0x8c(%rbx)
jmp 0xdd9f
leaq 0x52bb(%rip), %rdi      # 0x13309
movl %eax, %esi
xorl %eax, %eax
callq 0x58d7
callq 0x3040
movl $0x0, (%rax)
movq 0x58(%rbx), %rax
movq 0x60(%rbx), %rdi
movq $0x0, 0x58(%rbx)
movq $-0x1, %rsi
callq *%rax
testl %eax, %eax
jne 0xddab
jmp 0xdd9f
leaq 0x527a(%rip), %rdi      # 0x13309
movl %eax, %esi
xorl %eax, %eax
callq 0x58d7
movl $0x0, (%r14)
jmp 0xe0bf
movl $0x1, 0x54(%rbx)
jmp 0xdd82
movl $0x1, 0x50(%rbx)
jmp 0xdd82
cmpl $0x0, (%r14)
je 0xe0d8
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
movq $0x0, 0x20(%rbx)
movq $-0x1, %rsi
jmp 0xe0ea
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rdi
movq $0x0, 0x20(%rbx)
xorl %esi, %esi
callq *%rax
testl %eax, %eax
jne 0xddab
jmp 0xdd82
leaq 0x51af(%rip), %rdi      # 0x132af
leaq 0x4f37(%rip), %rsi      # 0x1303e
leaq 0x51c6(%rip), %rcx      # 0x132d4
movl $0x127, %edx            # imm = 0x127
callq 0x3200
leaq 0x5200(%rip), %rdi      # 0x1331f
leaq 0x4f18(%rip), %rsi      # 0x1303e
leaq 0x5219(%rip), %rcx      # 0x13346
movl $0x186, %edx            # imm = 0x186
callq 0x3200