// File: /workspace/github_c_makefile_star2_O0/GangZhuo[P]dohclient/src/channel_chndoh.c
// Function: step
static int step(channel_t* ctx,
	fd_set* readset, fd_set* writeset, fd_set* errorset)
{
	channel_chndoh_t* c = (channel_chndoh_t*)ctx;
	int r;

	if (is_auto_relolve(&c->chndoh)) {
		query_doh_addr(c, &c->chndoh);
	}

	if (is_auto_relolve(&c->frndoh)) {
		query_doh_addr(c, &c->frndoh);
	}

	if (c->chndoh.channel == CH_DOH) {
		if (c->chndoh.http) {
			http_step(c->chndoh.http, readset, writeset, errorset);
		}
	}
	else if (c->chndoh.chctx) {
		r = c->chndoh.chctx->step(c->chndoh.chctx, readset, writeset, errorset);
		if (r) return -1;
	}

	if (c->frndoh.channel == CH_DOH) {
		if (c->frndoh.http) {
			http_step(c->frndoh.http, readset, writeset, errorset);
		}
	}
	else if (c->frndoh.chctx) {
		r = c->frndoh.chctx->step(c->frndoh.chctx, readset, writeset, errorset);
		if (r) return -1;
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x1, 0x630(%rax)
jne 0xf132
movq -0x30(%rbp), %rax
cmpl $0x0, 0x648(%rax)
je 0xf132
movq -0x30(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x40(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x3330
movq %rax, %rcx
movq -0x40(%rbp), %rax
cmpq %rcx, %rax
jge 0xf132
movq -0x30(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x80, %rsi
callq 0xfc70
movq -0x30(%rbp), %rax
cmpl $0x1, 0xc00(%rax)
jne 0xf184
movq -0x30(%rbp), %rax
cmpl $0x0, 0xc18(%rax)
je 0xf184
movq -0x30(%rbp), %rax
movq 0x650(%rax), %rax
movq %rax, -0x48(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x3330
movq %rax, %rcx
movq -0x48(%rbp), %rax
cmpq %rcx, %rax
jge 0xf184
movq -0x30(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x650, %rsi            # imm = 0x650
callq 0xfc70
movq -0x30(%rbp), %rax
cmpl $0x1, 0x630(%rax)
jne 0xf1bd
movq -0x30(%rbp), %rax
cmpq $0x0, 0x638(%rax)
je 0xf1bb
movq -0x30(%rbp), %rax
movq 0x638(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x1ff20
jmp 0xf20c
movq -0x30(%rbp), %rax
cmpq $0x0, 0x638(%rax)
je 0xf20a
movq -0x30(%rbp), %rax
movq 0x638(%rax), %rax
movq 0x38(%rax), %rax
movq -0x30(%rbp), %rcx
movq 0x638(%rcx), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq *%rax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0xf208
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xf298
jmp 0xf20a
jmp 0xf20c
movq -0x30(%rbp), %rax
cmpl $0x1, 0xc00(%rax)
jne 0xf245
movq -0x30(%rbp), %rax
cmpq $0x0, 0xc08(%rax)
je 0xf243
movq -0x30(%rbp), %rax
movq 0xc08(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x1ff20
jmp 0xf291
movq -0x30(%rbp), %rax
cmpq $0x0, 0xc08(%rax)
je 0xf28f
movq -0x30(%rbp), %rax
movq 0xc08(%rax), %rax
movq 0x38(%rax), %rax
movq -0x30(%rbp), %rcx
movq 0xc08(%rcx), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq *%rax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0xf28d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xf298
jmp 0xf28f
jmp 0xf291
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)