// File: /workspace/github_c_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x8110, %rsp           # imm = 0x8110
movq %rsi, %r14
movq %rdi, %rbx
callq 0x752e
testl %eax, %eax
jne 0x796a
cmpl $0x0, (%r14)
jne 0x78d5
movl $0x1388, (%r14)         # imm = 0x1388
cmpl $0x0, 0x4(%r14)
jne 0x78e4
movl $0x1388, 0x4(%r14)      # imm = 0x1388
cmpl $0x0, (%r14)
jle 0x7989
cmpl $0x0, 0x4(%r14)
jle 0x79a8
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movaps %xmm0, -0x50(%rbp)
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, -0x130(%rbp)
movaps %xmm0, -0x120(%rbp)
movaps %xmm0, -0x110(%rbp)
movaps %xmm0, -0x100(%rbp)
movaps %xmm0, -0xf0(%rbp)
movaps %xmm0, -0xe0(%rbp)
movaps %xmm0, -0xd0(%rbp)
movaps %xmm0, -0xc0(%rbp)
cmpl $0x0, 0x8(%r14)
jne 0x7dbc
jmp 0x79c7
leaq 0x4e0a(%rip), %rdi      # 0xc77b
leaq 0x45ae(%rip), %rsi      # 0xbf26
leaq 0x4e15(%rip), %rcx      # 0xc794
movl $0x451, %edx            # imm = 0x451
callq 0x21b0
leaq 0x5015(%rip), %rdi      # 0xc9a5
leaq 0x458f(%rip), %rsi      # 0xbf26
leaq 0x5018(%rip), %rcx      # 0xc9b6
movl $0x264, %edx            # imm = 0x264
callq 0x21b0
leaq 0x5050(%rip), %rdi      # 0xc9ff
leaq 0x4570(%rip), %rsi      # 0xbf26
leaq 0x4ff9(%rip), %rcx      # 0xc9b6
movl $0x265, %edx            # imm = 0x265
callq 0x21b0
movl 0x9d43(%rip), %ecx      # 0x11710
cmpl $-0x1, %ecx
je 0x7a00
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, -0xb0(%rbp,%rax,8)
jmp 0x7a05
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl 0x2c(%rbx), %eax
cmpl $-0x1, %eax
je 0x7a39
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, -0xb0(%rbp,%rcx,8)
cmpl %edi, %eax
cmovgl %eax, %edi
movl 0x30(%rbx), %eax
cmpl $-0x1, %eax
je 0x7a6d
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, -0xb0(%rbp,%rcx,8)
cmpl %edi, %eax
cmovgl %eax, %edi
testl %edi, %edi
js 0x7ecd
leaq -0x30(%rbp), %r8
movq $0x0, (%r8)
movslq (%r14), %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movq %rax, 0x8(%r8)
incl %edi
leaq -0xb0(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x2290
testl %eax, %eax
js 0x7b39
je 0x7b59
movl 0x2c(%rbx), %edi
cmpl $-0x1, %edi
je 0x7c90
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
sarl $0x6, %eax
cltq
movq -0xb0(%rbp,%rax,8), %rax
btq %rdi, %rax
jae 0x7c90
leaq -0x8130(%rbp), %rsi
movl $0x7ffe, %edx           # imm = 0x7FFE
callq 0x2200
movq %rax, %r15
testl %r15d, %r15d
js 0x7c37
je 0x7c52
movl %r15d, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
cmpq $0x7fff, %rax           # imm = 0x7FFF
jae 0x800f
movb $0x0, -0x8130(%rbp,%rax)
movq 0x10(%r14), %rax
testq %rax, %rax
je 0x7c87
leaq -0x8130(%rbp), %rsi
movq %rbx, %rdi
movl %r15d, %edx
callq *%rax
jmp 0x7c87
cmpl $-0x1, %eax
jne 0x7eec
callq 0x2080
movl (%rax), %r12d
cmpl $0x4, %r12d
je 0x79c7
jmp 0x7f0b
cmpq $0x0, 0x28(%r14)
je 0x79c7
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, -0x130(%rbp,%rax,8)
incl %edi
xorps %xmm0, %xmm0
leaq -0x30(%rbp), %r8
movaps %xmm0, (%r8)
leaq -0x130(%rbp), %rdx
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x2290
cmpl $0x1, %eax
je 0x7bd5
testl %eax, %eax
je 0x7bf8
cmpl $-0x1, %eax
jne 0x7f86
callq 0x2080
movq %rax, %rsi
movl (%rax), %edi
movl $0xe, %eax
cmpl $0x4, %edi
je 0x7c21
jmp 0x7feb
movl 0x28(%rbx), %ecx
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
sarl $0x6, %edx
movslq %edx, %rdx
movq -0x130(%rbp,%rdx,8), %rdx
btq %rcx, %rdx
jae 0x7f86
movl 0x28(%rbx), %esi
movq %rbx, %rdi
movl %eax, %edx
callq *0x28(%r14)
testl %eax, %eax
je 0x7c21
cmpl $0xf, %eax
je 0x7c12
cmpl $0x9, %eax
jne 0x7c1c
movl 0x18(%rbx), %edi
movl %eax, %esi
callq 0x2280
movl $0xd, %eax
cmpl $0xe, %eax
je 0x79c7
testl %eax, %eax
je 0x79c7
jmp 0x7eb3
cmpl $-0x1, %r15d
jne 0x802e
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x7c87
jmp 0x804d
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, -0xb0(%rbp,%rcx,8)
movq %rbx, %rdi
callq 0x69b7
cmpl $-0x1, 0x2c(%rbx)
jne 0x8055
testl %r15d, %r15d
js 0x79c7
movl 0x30(%rbx), %edi
cmpl $-0x1, %edi
je 0x7d65
leal 0x3f(%rdi), %eax
testl %edi, %edi
cmovnsl %edi, %eax
sarl $0x6, %eax
cltq
movq -0xb0(%rbp,%rax,8), %rax
btq %rdi, %rax
jae 0x7d65
leaq -0x8130(%rbp), %rsi
movl $0x7ffe, %edx           # imm = 0x7FFE
callq 0x2200
movq %rax, %r15
testl %r15d, %r15d
js 0x7d0c
je 0x7d27
movl %r15d, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
cmpq $0x7fff, %rax           # imm = 0x7FFF
jae 0x7fa5
movb $0x0, -0x8130(%rbp,%rax)
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x7d5c
leaq -0x8130(%rbp), %rsi
movq %rbx, %rdi
movl %r15d, %edx
callq *%rax
jmp 0x7d5c
cmpl $-0x1, %r15d
jne 0x7fc4
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x7d5c
jmp 0x7fe3
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, -0xb0(%rbp,%rcx,8)
movq %rbx, %rdi
callq 0x6a22
cmpl $-0x1, 0x30(%rbx)
jne 0x7ff0
testl %r15d, %r15d
js 0x79c7
cmpl $-0x1, 0x2c(%rbx)
jne 0x7d86
cmpl $-0x1, 0x30(%rbx)
jne 0x7d86
movq %rbx, %rdi
movl $0xf, %esi
callq 0x6c2c
testl %eax, %eax
jne 0x7eb3
movl 0x9984(%rip), %eax      # 0x11710
cmpl $-0x1, %eax
je 0x7dbc
leal 0x3f(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x6, %ecx
movslq %ecx, %rcx
movq -0xb0(%rbp,%rcx,8), %rcx
btq %rax, %rcx
jae 0x7dbc
callq 0x6a8d
cmpl $0x0, 0x34(%rbx)
jne 0x7eb3
leaq -0x130(%rbp), %r15
leaq -0x30(%rbp), %r12
movl 0x28(%rbx), %edi
cmpl $-0x1, %edi
je 0x79c7
cmpq $0x0, 0x20(%r14)
je 0x79c7
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, -0x130(%rbp,%rax,8)
movq $0x0, -0x30(%rbp)
movslq 0x4(%r14), %rax
movq %rax, -0x28(%rbp)
incl %edi
xorl %esi, %esi
movq %r15, %rdx
xorl %ecx, %ecx
movq %r12, %r8
callq 0x2290
cmpl $0x1, %eax
jne 0x7e60
movl 0x28(%rbx), %esi
leal 0x3f(%rsi), %eax
testl %esi, %esi
cmovnsl %esi, %eax
sarl $0x6, %eax
cltq
movq -0x130(%rbp,%rax,8), %rax
btq %rsi, %rax
jae 0x7f48
movq %rbx, %rdi
callq *0x20(%r14)
testl %eax, %eax
jne 0x7dc7
jmp 0x79c7
testl %eax, %eax
je 0x7e85
cmpl $-0x1, %eax
jne 0x7f67
callq 0x2080
movl (%rax), %edi
cmpl $0x4, %edi
je 0x79c7
movq %rax, %rsi
callq 0x2ce9
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x79c7
movq %rbx, %rdi
callq *%rax
testl %eax, %eax
je 0x79c7
cmpl $0xf, %eax
je 0x7ea9
cmpl $0x9, %eax
jne 0x7eb3
movl 0x18(%rbx), %edi
movl %eax, %esi
callq 0x2280
movq %rbx, %rdi
callq 0x760b
xorl %eax, %eax
addq $0x8110, %rsp           # imm = 0x8110
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3a40(%rip), %rdi      # 0xb914
leaq 0x404b(%rip), %rsi      # 0xbf26
leaq 0x4ad4(%rip), %rcx      # 0xc9b6
movl $0x27e, %edx            # imm = 0x27E
callq 0x21b0
leaq 0x4bc4(%rip), %rdi      # 0xcab7
leaq 0x402c(%rip), %rsi      # 0xbf26
leaq 0x4ab5(%rip), %rcx      # 0xc9b6
movl $0x286, %edx            # imm = 0x286
callq 0x21b0
movq %rax, %r15
movl 0x18(%rbx), %r8d
leaq 0x400d(%rip), %rdi      # 0xbf26
leaq 0x4af0(%rip), %rdx      # 0xca10
movl $0x28b, %esi            # imm = 0x28B
movl %r12d, %ecx
xorl %eax, %eax
callq 0x9a2c
movl %r12d, (%r15)
leaq 0x3643(%rip), %rdi      # 0xb57c
callq 0x2310
movl $0x1, %edi
callq 0x2350
leaq 0x4b77(%rip), %rdi      # 0xcac6
leaq 0x3fd0(%rip), %rsi      # 0xbf26
leaq 0x4a59(%rip), %rcx      # 0xc9b6
movl $0x322, %edx            # imm = 0x322
callq 0x21b0
leaq 0x4b51(%rip), %rdi      # 0xcabf
leaq 0x3fb1(%rip), %rsi      # 0xbf26
leaq 0x4a3a(%rip), %rcx      # 0xc9b6
movl $0x321, %edx            # imm = 0x321
callq 0x21b0
leaq 0x4b58(%rip), %rdi      # 0xcae5
leaq 0x3f92(%rip), %rsi      # 0xbf26
leaq 0x4a1b(%rip), %rcx      # 0xc9b6
movl $0x33d, %edx            # imm = 0x33D
callq 0x21b0
leaq 0x4ae0(%rip), %rdi      # 0xca8c
leaq 0x3f73(%rip), %rsi      # 0xbf26
leaq 0x49fc(%rip), %rcx      # 0xc9b6
movl $0x2d6, %edx            # imm = 0x2D6
callq 0x21b0
leaq 0x3335(%rip), %rdi      # 0xb300
leaq 0x3f54(%rip), %rsi      # 0xbf26
leaq 0x49dd(%rip), %rcx      # 0xc9b6
movl $0x2cb, %edx            # imm = 0x2CB
callq 0x21b0
movq %rax, %rsi
callq 0x2ca8
callq 0x2d2a
leaq 0x4ab2(%rip), %rdi      # 0xcaa9
leaq 0x3f28(%rip), %rsi      # 0xbf26
leaq 0x49b1(%rip), %rcx      # 0xc9b6
movl $0x2e2, %edx            # imm = 0x2E2
callq 0x21b0
leaq 0x4a2c(%rip), %rdi      # 0xca42
leaq 0x3f09(%rip), %rsi      # 0xbf26
leaq 0x4992(%rip), %rcx      # 0xc9b6
movl $0x2ad, %edx            # imm = 0x2AD
callq 0x21b0
leaq 0x32cb(%rip), %rdi      # 0xb300
leaq 0x3eea(%rip), %rsi      # 0xbf26
leaq 0x4973(%rip), %rcx      # 0xc9b6
movl $0x2a2, %edx            # imm = 0x2A2
callq 0x21b0
movq %rax, %rsi
callq 0x2c67
leaq 0x4a03(%rip), %rdi      # 0xca5f
leaq 0x3ec3(%rip), %rsi      # 0xbf26
leaq 0x494c(%rip), %rcx      # 0xc9b6
movl $0x2b9, %edx            # imm = 0x2B9
callq 0x21b0