// File: /workspace/github_c_makefile_star2_O3/alexgirao[P]aimant/subprocess.c
// Function: subprocess_run
int subprocess_run(struct subprocess *sp, struct subprocess_callbacks *cb)
{
	int r;

	/* fork
	 */
	assert(subprocess_fork(sp) == 0);

	/* process child communication
	 */
	r = loop_child_pipes(sp, cb);
	DEBUG_INFO("loop_child_pipes() done, returned %i, pid=%i", r, sp->pid);
	if (r) {
		/* error while processing child communication
		 */
		exit(1);
	}

	assert(subprocess_terminate(sp) == 0);

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8128, %rsp           # imm = 0x8128
movq %rsi, %r14
movq %rdi, %rbx
callq 0x72f1
testl %eax, %eax
jne 0x777c
movl (%r14), %ecx
testl %ecx, %ecx
je 0x769c
leaq 0x4(%r14), %rdx
movl 0x4(%r14), %eax
testl %eax, %eax
movq %rdx, -0x48(%rbp)
je 0x76d6
testl %ecx, %ecx
jg 0x76b3
jmp 0x76e0
movl $0x1388, (%r14)         # imm = 0x1388
leaq 0x4(%r14), %rcx
movl 0x4(%r14), %eax
testl %eax, %eax
movq %rcx, -0x48(%rbp)
je 0x76ff
testl %eax, %eax
jg 0x7705
leaq 0x531c(%rip), %rdi      # 0xc9da
leaq 0x4854(%rip), %rsi      # 0xbf19
leaq 0x52c5(%rip), %rcx      # 0xc991
movl $0x265, %edx            # imm = 0x265
callq 0x21b0
movl $0x1388, (%rdx)         # imm = 0x1388
testl %ecx, %ecx
jg 0x7705
leaq 0x5299(%rip), %rdi      # 0xc980
leaq 0x482b(%rip), %rsi      # 0xbf19
leaq 0x529c(%rip), %rcx      # 0xc991
movl $0x264, %edx            # imm = 0x264
callq 0x21b0
movl $0x1388, (%rcx)         # imm = 0x1388
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
movaps %xmm0, -0x80(%rbp)
movaps %xmm0, -0x90(%rbp)
movaps %xmm0, -0xa0(%rbp)
movaps %xmm0, -0xb0(%rbp)
movaps %xmm0, -0xc0(%rbp)
movaps %xmm0, -0xd0(%rbp)
movaps %xmm0, -0x150(%rbp)
movaps %xmm0, -0x140(%rbp)
movaps %xmm0, -0x130(%rbp)
movaps %xmm0, -0x120(%rbp)
movaps %xmm0, -0x110(%rbp)
movaps %xmm0, -0x100(%rbp)
movaps %xmm0, -0xf0(%rbp)
movaps %xmm0, -0xe0(%rbp)
cmpl $0x0, 0x8(%r14)
jne 0x7b5a
jmp 0x779b
leaq 0x4feb(%rip), %rdi      # 0xc76e
leaq 0x478f(%rip), %rsi      # 0xbf19
leaq 0x4ff6(%rip), %rcx      # 0xc787
movl $0x451, %edx            # imm = 0x451
callq 0x21b0
leaq -0x40(%rbp), %r12
movl 0x9f6b(%rip), %ecx      # 0x11710
cmpl $-0x1, %ecx
je 0x77d8
leal 0x3f(%rcx), %eax
testl %ecx, %ecx
cmovnsl %ecx, %eax
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
cmovnsl %ecx, %edi
movl %eax, %edx
andl $-0x40, %edx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
sarl $0x6, %eax
cltq
orq %rdx, -0xd0(%rbp,%rax,8)
jmp 0x77dd
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl 0x2c(%rbx), %eax
cmpl $-0x1, %eax
je 0x7811
leal 0x3f(%rax), %edx
testl %eax, %eax
cmovnsl %eax, %edx
movl %edx, %esi
andl $-0x40, %esi
movl %eax, %ecx
subl %esi, %ecx
movl $0x1, %esi
shlq %cl, %rsi
sarl $0x6, %edx
movslq %edx, %rcx
orq %rsi, -0xd0(%rbp,%rcx,8)
cmpl %edi, %eax
cmovgl %eax, %edi
movl 0x30(%rbx), %eax
cmpl $-0x1, %eax
je 0x7845
leal 0x3f(%rax), %edx
testl %eax, %eax
cmovnsl %eax, %edx
movl %edx, %esi
andl $-0x40, %esi
movl %eax, %ecx
subl %esi, %ecx
movl $0x1, %esi
shlq %cl, %rsi
sarl $0x6, %edx
movslq %edx, %rcx
orq %rsi, -0xd0(%rbp,%rcx,8)
cmpl %edi, %eax
cmovgl %eax, %edi
testl %edi, %edi
js 0x7c70
movq $0x0, -0x40(%rbp)
movslq (%r14), %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movq %rax, -0x38(%rbp)
incl %edi
leaq -0xd0(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
callq 0x2280
testl %eax, %eax
js 0x790d
je 0x792d
movl 0x2c(%rbx), %edi
cmpl $-0x1, %edi
je 0x79ee
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
sarl $0x6, %eax
cltq
movq -0xd0(%rbp,%rax,8), %rax
btq %rdi, %rax
jae 0x79ee
movl $0x7ffe, %edx           # imm = 0x7FFE
leaq -0x8150(%rbp), %rsi
callq 0x2200
testl %eax, %eax
js 0x799b
je 0x79b9
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpq $0x7fff, %rcx           # imm = 0x7FFF
jae 0x7d78
movb $0x0, -0x8150(%rbp,%rcx)
movq 0x10(%r14), %rcx
testq %rcx, %rcx
je 0x79ee
movq %rbx, %rdi
leaq -0x8150(%rbp), %rsi
movl %eax, %edx
callq *%rcx
jmp 0x79ee
cmpl $-0x1, %eax
jne 0x7c8f
callq 0x2080
movl (%rax), %r15d
cmpl $0x4, %r15d
je 0x779f
jmp 0x7cae
cmpq $0x0, 0x28(%r14)
je 0x779f
movl 0x28(%rbx), %edi
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
movl %eax, %edx
andl $-0x40, %edx
movl %edi, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
sarl $0x6, %eax
cltq
orq %rdx, -0x150(%rbp,%rax,8)
incl %edi
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
xorl %esi, %esi
leaq -0x150(%rbp), %rdx
xorl %ecx, %ecx
movq %r12, %r8
callq 0x2280
cmpl $-0x1, %eax
jne 0x7a4c
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x779f
jmp 0x7d32
cmpl $-0x1, %eax
jne 0x7d97
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x779f
jmp 0x7db6
movl 0x2c(%rbx), %ecx
movq $-0x2, %rax
rolq %cl, %rax
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
sarl $0x6, %edx
movslq %edx, %rcx
andq %rax, -0xd0(%rbp,%rcx,8)
movq %rbx, %rdi
callq 0x679c
cmpl $-0x1, 0x2c(%rbx)
jne 0x7dbe
movl 0x30(%rbx), %edi
cmpl $-0x1, %edi
je 0x7b03
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
sarl $0x6, %eax
cltq
movq -0xd0(%rbp,%rax,8), %rax
btq %rdi, %rax
jae 0x7b03
movl $0x7ffe, %edx           # imm = 0x7FFE
leaq -0x8150(%rbp), %rsi
callq 0x2200
testl %eax, %eax
jns 0x7a96
cmpl $-0x1, %eax
jne 0x7cec
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x779f
jmp 0x7d0b
testl %eax, %eax
je 0x7a7d
cmpl $0x1, %eax
jne 0x7d13
movl 0x28(%rbx), %esi
leal 0x3f(%rsi), %ecx
testl %esi, %esi
cmovnsl %esi, %ecx
sarl $0x6, %ecx
movslq %ecx, %rcx
movq -0x150(%rbp,%rcx,8), %rcx
btq %rsi, %rcx
jb 0x7a80
jmp 0x7d13
movl 0x28(%rbx), %esi
movq %rbx, %rdi
movl %eax, %edx
callq *0x28(%r14)
testl %eax, %eax
je 0x779f
jmp 0x7c40
je 0x7ace
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpq $0x7fff, %rcx           # imm = 0x7FFF
jae 0x7ddd
movb $0x0, -0x8150(%rbp,%rcx)
movq 0x18(%r14), %rcx
testq %rcx, %rcx
je 0x7b03
leaq -0x8150(%rbp), %rsi
movq %rbx, %rdi
movl %eax, %edx
callq *%rcx
jmp 0x7b03
movl 0x30(%rbx), %ecx
movq $-0x2, %rax
rolq %cl, %rax
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
sarl $0x6, %edx
movslq %edx, %rcx
andq %rax, -0xd0(%rbp,%rcx,8)
movq %rbx, %rdi
callq 0x6807
cmpl $-0x1, 0x30(%rbx)
jne 0x7dfc
cmpl $-0x1, 0x2c(%rbx)
jne 0x7b24
cmpl $-0x1, 0x30(%rbx)
jne 0x7b24
movq %rbx, %rdi
movl $0xf, %esi
callq 0x69ed
testl %eax, %eax
jne 0x7c54
movl 0x9be6(%rip), %eax      # 0x11710
cmpl $-0x1, %eax
je 0x7b5a
leal 0x3f(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x6, %ecx
movslq %ecx, %rcx
movq -0xd0(%rbp,%rcx,8), %rcx
btq %rax, %rcx
jae 0x7b5a
callq 0x6872
cmpl $0x0, 0x34(%rbx)
jne 0x7c54
leaq -0x150(%rbp), %r15
leaq -0x40(%rbp), %r12
movl 0x28(%rbx), %edi
cmpl $-0x1, %edi
je 0x779b
cmpq $0x0, 0x20(%r14)
je 0x779b
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
movl %eax, %edx
andl $-0x40, %edx
movl %edi, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
sarl $0x6, %eax
cltq
orq %rdx, -0x150(%rbp,%rax,8)
movq $0x0, -0x40(%rbp)
movq -0x48(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0x38(%rbp)
incl %edi
xorl %esi, %esi
movq %r15, %rdx
xorl %ecx, %ecx
movq %r12, %r8
callq 0x2280
cmpl $0x1, %eax
jne 0x7c01
movl 0x28(%rbx), %esi
leal 0x3f(%rsi), %eax
testl %esi, %esi
cmovnsl %esi, %eax
sarl $0x6, %eax
cltq
movq -0x150(%rbp,%rax,8), %rax
btq %rsi, %rax
jae 0x7d3a
movq %rbx, %rdi
callq *0x20(%r14)
testl %eax, %eax
jne 0x7b65
jmp 0x779b
testl %eax, %eax
je 0x7c26
cmpl $-0x1, %eax
jne 0x7d59
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x779b
movq %rax, %rsi
callq 0x2cab
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x779b
movq %rbx, %rdi
callq *%rax
testl %eax, %eax
je 0x779b
cmpl $0x9, %eax
je 0x7c4a
cmpl $0xf, %eax
jne 0x7c54
movl 0x18(%rbx), %edi
movl %eax, %esi
callq 0x2270
movq %rbx, %rdi
callq 0x73ce
xorl %eax, %eax
addq $0x8128, %rsp           # imm = 0x8128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4d74(%rip), %rdi      # 0xc9eb
leaq 0x429b(%rip), %rsi      # 0xbf19
leaq 0x4d0c(%rip), %rcx      # 0xc991
movl $0x27e, %edx            # imm = 0x27E
callq 0x21b0
leaq 0x4e09(%rip), %rdi      # 0xca9f
leaq 0x427c(%rip), %rsi      # 0xbf19
leaq 0x4ced(%rip), %rcx      # 0xc991
movl $0x286, %edx            # imm = 0x286
callq 0x21b0
movq %rax, %r13
movl 0x18(%rbx), %r8d
leaq 0x425d(%rip), %rdi      # 0xbf19
leaq 0x4d35(%rip), %rdx      # 0xc9f8
movl $0x28b, %esi            # imm = 0x28B
movl %r15d, %ecx
xorl %eax, %eax
callq 0x9818
movl %r15d, (%r13)
leaq 0x389f(%rip), %rdi      # 0xb57c
callq 0x2300
movl $0x1, %edi
callq 0x2340
leaq 0x360d(%rip), %rdi      # 0xb300
leaq 0x421f(%rip), %rsi      # 0xbf19
leaq 0x4c90(%rip), %rcx      # 0xc991
movl $0x2cb, %edx            # imm = 0x2CB
callq 0x21b0
movq %rax, %rsi
callq 0x2c6a
leaq 0x4db3(%rip), %rdi      # 0xcacd
leaq 0x41f8(%rip), %rsi      # 0xbf19
leaq 0x4c69(%rip), %rcx      # 0xc991
movl $0x33d, %edx            # imm = 0x33D
callq 0x21b0
movq %rax, %rsi
callq 0x2cec
leaq 0x4d6d(%rip), %rdi      # 0xcaae
leaq 0x41d1(%rip), %rsi      # 0xbf19
leaq 0x4c42(%rip), %rcx      # 0xc991
movl $0x322, %edx            # imm = 0x322
callq 0x21b0
leaq 0x4d47(%rip), %rdi      # 0xcaa7
leaq 0x41b2(%rip), %rsi      # 0xbf19
leaq 0x4c23(%rip), %rcx      # 0xc991
movl $0x321, %edx            # imm = 0x321
callq 0x21b0
leaq 0x4cab(%rip), %rdi      # 0xca2a
leaq 0x4193(%rip), %rsi      # 0xbf19
leaq 0x4c04(%rip), %rcx      # 0xc991
movl $0x2ad, %edx            # imm = 0x2AD
callq 0x21b0
leaq 0x3562(%rip), %rdi      # 0xb300
leaq 0x4174(%rip), %rsi      # 0xbf19
leaq 0x4be5(%rip), %rcx      # 0xc991
movl $0x2a2, %edx            # imm = 0x2A2
callq 0x21b0
movq %rax, %rsi
callq 0x2c29
leaq 0x4c82(%rip), %rdi      # 0xca47
leaq 0x414d(%rip), %rsi      # 0xbf19
leaq 0x4bbe(%rip), %rcx      # 0xc991
movl $0x2b9, %edx            # imm = 0x2B9
callq 0x21b0
leaq 0x4c90(%rip), %rdi      # 0xca74
leaq 0x412e(%rip), %rsi      # 0xbf19
leaq 0x4b9f(%rip), %rcx      # 0xc991
movl $0x2d6, %edx            # imm = 0x2D6
callq 0x21b0
leaq 0x4c8e(%rip), %rdi      # 0xca91
leaq 0x410f(%rip), %rsi      # 0xbf19
leaq 0x4b80(%rip), %rcx      # 0xc991
movl $0x2e2, %edx            # imm = 0x2E2
callq 0x21b0