	.file	"979448.c"
	.intel_syntax noprefix
	.text
	.globl	stopsleep
	.type	stopsleep, @function
stopsleep:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	stopsleep, .-stopsleep
	.globl	sock
	.bss
	.align 4
	.type	sock, @object
	.size	sock, 4
sock:
	.zero	4
	.globl	pipe1
	.align 8
	.type	pipe1, @object
	.size	pipe1, 8
pipe1:
	.zero	8
	.globl	pipe2
	.align 8
	.type	pipe2, @object
	.size	pipe2, 8
pipe2:
	.zero	8
	.globl	connected
	.align 4
	.type	connected, @object
	.size	connected, 4
connected:
	.zero	4
	.globl	protocol
	.type	protocol, @object
	.size	protocol, 4
protocol:
	.zero	4
	.globl	newbuffer
	.align 8
	.type	newbuffer, @object
	.size	newbuffer, 8
newbuffer:
	.zero	8
	.section	.rodata
	.align 8
.LC0:
	.string	"ERROR: Correct usage: ./program_name <port_number(1025...n)> <hostname OR ip.adress\n"
	.align 8
.LC1:
	.string	"ERROR: portnumber < 1024 OR '%s' is not a number.\nExiting.\n"
.LC2:
	.string	"pipe1 call error"
.LC3:
	.string	"pipe2 call error"
.LC4:
	.string	"Error from fork call 1: %s\n"
.LC5:
	.string	">>> %u <<< (C) \n%s\n"
	.align 8
.LC6:
	.string	">>> %u <<< (C) Read a total of %u jobs\n"
.LC7:
	.string	">>> %u <<< (C) Exiting\n"
.LC8:
	.string	"Error from fork call 2: %s\n"
.LC9:
	.string	""
	.align 8
.LC10:
	.string	">>> %u <<< (P) Could not resolve hostname %s.\n"
.LC11:
	.string	">>> %u <<< (P) Exiting.\n"
	.align 8
.LC12:
	.string	">>> %u <<< (P) Could not connect. Error: %s\n"
.LC13:
	.string	"Type a number from 1-4.\n"
	.align 8
.LC14:
	.string	"How many jobs do you want to get?\n"
	.align 8
.LC15:
	.string	">>> %u <<< (P) Calculated checksum %u != %u Received Checksum.\n"
	.align 8
.LC16:
	.string	">>> %u <<< (P) Quit message recieved from server. No more jobs to read.\n"
	.align 8
.LC17:
	.string	">>> %u <<< (P) Sending quit message to server\n"
.LC18:
	.string	">>> %u <<< (P) Exiting\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 184
	.cfi_offset 3, -24
	mov	DWORD PTR -180[rbp], edi
	mov	QWORD PTR -192[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -180[rbp], 3
	je	.L3
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rax
	mov	edx, 84
	mov	esi, 1
	lea	rdi, .LC0[rip]
	call	fwrite@PLT
	mov	edi, 0
	call	exit@PLT
.L3:
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 1023
	jg	.L4
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L4:
	mov	rax, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -88[rbp], rax
	lea	rdi, pipe1[rip]
	call	pipe@PLT
	test	eax, eax
	jns	.L5
	lea	rdi, .LC2[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L5:
	lea	rdi, pipe2[rip]
	call	pipe@PLT
	test	eax, eax
	jns	.L6
	lea	rdi, .LC3[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L6:
	mov	DWORD PTR -164[rbp], 1
	lea	rsi, stopsleep[rip]
	mov	edi, 10
	call	signal@PLT
	call	fork@PLT
	mov	DWORD PTR -104[rbp], eax
	cmp	DWORD PTR -104[rbp], -1
	je	.L7
	cmp	DWORD PTR -104[rbp], 0
	je	.L8
	jmp	.L55
.L7:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	call	closePipes
	mov	edi, 2
	call	exit@PLT
.L8:
	lea	rsi, ctrl_c_handler_children[rip]
	mov	edi, 2
	call	signal@PLT
	mov	DWORD PTR -156[rbp], 0
	jmp	.L10
.L13:
	mov	eax, DWORD PTR pipe1[rip]
	lea	rcx, -164[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	eax, DWORD PTR -164[rbp]
	test	eax, eax
	je	.L57
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 1
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR pipe1[rip]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	free@PLT
	call	getpid@PLT
	sub	eax, 1
	mov	esi, 10
	mov	edi, eax
	call	kill@PLT
	add	DWORD PTR -156[rbp], 1
.L10:
	mov	eax, DWORD PTR -164[rbp]
	test	eax, eax
	jne	.L13
	jmp	.L12
.L57:
	nop
.L12:
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	edx, DWORD PTR -156[rbp]
	mov	ecx, edx
	mov	edx, esi
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L55:
	call	fork@PLT
	mov	DWORD PTR -100[rbp], eax
	cmp	DWORD PTR -100[rbp], -1
	je	.L14
	cmp	DWORD PTR -100[rbp], 0
	je	.L15
	jmp	.L56
.L14:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	call	closePipes
	mov	edi, 2
	call	exit@PLT
.L15:
	lea	rsi, ctrl_c_handler_children[rip]
	mov	edi, 2
	call	signal@PLT
	mov	DWORD PTR -152[rbp], 0
	jmp	.L17
.L20:
	mov	eax, DWORD PTR pipe2[rip]
	lea	rcx, -164[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	eax, DWORD PTR -164[rbp]
	test	eax, eax
	je	.L58
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 1
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -72[rbp], rax
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR pipe2[rip]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	free@PLT
	call	getpid@PLT
	sub	eax, 2
	mov	esi, 10
	mov	edi, eax
	call	kill@PLT
	add	DWORD PTR -152[rbp], 1
.L17:
	mov	eax, DWORD PTR -164[rbp]
	test	eax, eax
	jne	.L20
	jmp	.L19
.L58:
	nop
.L19:
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	edx, DWORD PTR -152[rbp]
	mov	ecx, edx
	mov	edx, esi
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L56:
	lea	rsi, ctrl_c_handler[rip]
	mov	edi, 2
	call	signal@PLT
	mov	edx, 6
	mov	esi, 1
	mov	edi, 2
	call	socket@PLT
	mov	DWORD PTR sock[rip], eax
	lea	rax, -48[rbp]
	mov	edx, 16
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	WORD PTR -48[rbp], 2
	lea	rax, .LC9[rip]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	atoi@PLT
	test	eax, eax
	je	.L21
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -96[rbp], rax
	jmp	.L22
.L21:
	lea	rdx, -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	getIP
	test	eax, eax
	je	.L22
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	DWORD PTR -164[rbp], 0
	mov	eax, DWORD PTR pipe1[rip+4]
	lea	rcx, -164[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	eax, DWORD PTR pipe2[rip+4]
	lea	rcx, -164[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	edi, 0
	call	wait@PLT
	mov	eax, 0
	call	closePipes
	mov	eax, DWORD PTR sock[rip]
	mov	edi, eax
	call	close@PLT
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L22:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	inet_addr@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	movzx	eax, ax
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -46[rbp], ax
	mov	eax, DWORD PTR sock[rip]
	lea	rcx, -48[rbp]
	mov	edx, 16
	mov	rsi, rcx
	mov	edi, eax
	call	connect@PLT
	test	eax, eax
	je	.L23
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rbx, rax
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rbx
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	DWORD PTR -160[rbp], 0
	mov	eax, DWORD PTR pipe1[rip+4]
	lea	rcx, -160[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	eax, DWORD PTR pipe2[rip+4]
	lea	rcx, -160[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	edi, 0
	call	wait@PLT
	mov	eax, 0
	call	closePipes
	mov	eax, DWORD PTR sock[rip]
	mov	edi, eax
	call	close@PLT
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L23:
	mov	DWORD PTR connected[rip], 1
	mov	DWORD PTR -148[rbp], 0
	mov	DWORD PTR -128[rbp], 0
.L52:
	mov	edx, 4
	mov	esi, 0
	lea	rdi, protocol[rip]
	call	memset@PLT
	mov	DWORD PTR -132[rbp], 1
	mov	DWORD PTR -128[rbp], 0
	mov	eax, 0
	call	printMainOptions
	mov	DWORD PTR -124[rbp], 5
	jmp	.L24
.L25:
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rax
	mov	edx, 24
	mov	esi, 1
	lea	rdi, .LC13[rip]
	call	fwrite@PLT
	mov	eax, 0
	call	getNumberFromUser
	mov	DWORD PTR -124[rbp], eax
.L24:
	cmp	DWORD PTR -124[rbp], 4
	jg	.L25
	cmp	DWORD PTR -124[rbp], 1
	jne	.L26
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 1
	mov	BYTE PTR protocol[rip+3], al
	jmp	.L27
.L26:
	cmp	DWORD PTR -124[rbp], 2
	jne	.L28
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rax
	mov	edx, 34
	mov	esi, 1
	lea	rdi, .LC14[rip]
	call	fwrite@PLT
	mov	eax, 0
	call	getNumberFromUser
	mov	DWORD PTR -132[rbp], eax
	mov	eax, DWORD PTR -132[rbp]
	sar	eax, 16
	mov	BYTE PTR protocol[rip], al
	mov	eax, DWORD PTR -132[rbp]
	sar	eax, 8
	mov	BYTE PTR protocol[rip+1], al
	mov	eax, DWORD PTR -132[rbp]
	mov	BYTE PTR protocol[rip+2], al
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 2
	mov	BYTE PTR protocol[rip+3], al
	jmp	.L27
.L28:
	cmp	DWORD PTR -124[rbp], 3
	jne	.L29
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 4
	mov	BYTE PTR protocol[rip+3], al
	mov	DWORD PTR -128[rbp], 1
	jmp	.L27
.L29:
	cmp	DWORD PTR -124[rbp], 4
	jne	.L27
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 8
	mov	BYTE PTR protocol[rip+3], al
	mov	eax, 0
	call	send_to_Server
	jmp	.L30
.L27:
	mov	eax, 0
	call	send_to_Server
	mov	DWORD PTR -144[rbp], 0
	jmp	.L31
.L50:
	mov	QWORD PTR -64[rbp], 0
	mov	DWORD PTR -120[rbp], 1
	jmp	.L32
.L34:
	mov	eax, DWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	sub	eax, edx
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -120[rbp], 0
	je	.L59
.L32:
	mov	eax, DWORD PTR -120[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR sock[rip]
	lea	rcx, -166[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L33
	cmp	DWORD PTR -120[rbp], 0
	jg	.L34
	jmp	.L33
.L59:
	nop
.L33:
	mov	DWORD PTR -120[rbp], 4
	jmp	.L35
.L37:
	mov	eax, DWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	sub	eax, edx
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -120[rbp], 0
	je	.L60
.L35:
	mov	eax, DWORD PTR -120[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR sock[rip]
	lea	rsi, protocol[rip]
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L36
	cmp	DWORD PTR -120[rbp], 0
	jg	.L37
	jmp	.L36
.L60:
	nop
.L36:
	movzx	eax, BYTE PTR protocol[rip]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR protocol[rip+1]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR protocol[rip+2]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR protocol[rip+3]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -160[rbp], eax
	movzx	eax, BYTE PTR -166[rbp]
	shr	al, 5
	cmp	al, 7
	jne	.L38
	mov	DWORD PTR -148[rbp], 1
	jmp	.L39
.L38:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR newbuffer[rip], rax
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -56[rbp], rax
	mov	DWORD PTR -116[rbp], 0
	mov	DWORD PTR -112[rbp], 0
	mov	eax, DWORD PTR -160[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR newbuffer[rip]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -160[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -160[rbp]
	mov	DWORD PTR -120[rbp], eax
	jmp	.L40
.L44:
	mov	eax, DWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	sub	eax, edx
	mov	DWORD PTR -120[rbp], eax
	mov	DWORD PTR -112[rbp], 0
	jmp	.L41
.L42:
	mov	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR newbuffer[rip]
	mov	edx, DWORD PTR -116[rbp]
	movsx	rdx, edx
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -116[rbp], 1
	add	DWORD PTR -112[rbp], 1
.L41:
	mov	rax, QWORD PTR -64[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jl	.L42
	cmp	DWORD PTR -120[rbp], 0
	je	.L61
.L40:
	mov	eax, DWORD PTR -120[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR sock[rip]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L43
	cmp	DWORD PTR -120[rbp], 0
	jg	.L44
	jmp	.L43
.L61:
	nop
.L43:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	free@PLT
	movzx	eax, BYTE PTR -166[rbp]
	shr	al, 5
	cmp	al, 7
	jne	.L45
	mov	DWORD PTR -148[rbp], 1
	jmp	.L39
.L45:
	mov	DWORD PTR -136[rbp], 0
	mov	BYTE PTR -165[rbp], 0
	mov	DWORD PTR -140[rbp], 0
	jmp	.L46
.L47:
	mov	rdx, QWORD PTR newbuffer[rip]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -136[rbp], eax
	add	DWORD PTR -140[rbp], 1
.L46:
	mov	eax, DWORD PTR -160[rbp]
	cmp	DWORD PTR -140[rbp], eax
	jl	.L47
	mov	eax, DWORD PTR -136[rbp]
	cdq
	shr	edx, 27
	add	eax, edx
	and	eax, 31
	sub	eax, edx
	mov	DWORD PTR -136[rbp], eax
	movzx	eax, BYTE PTR -166[rbp]
	movzx	eax, al
	sal	eax, 3
	mov	edx, eax
	movzx	eax, BYTE PTR -165[rbp]
	or	eax, edx
	mov	BYTE PTR -165[rbp], al
	shr	BYTE PTR -165[rbp], 3
	movzx	eax, BYTE PTR -165[rbp]
	cmp	DWORD PTR -136[rbp], eax
	jne	.L48
	mov	rdx, QWORD PTR newbuffer[rip]
	mov	ecx, DWORD PTR -160[rbp]
	movzx	eax, BYTE PTR -166[rbp]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	sendToChildren
	jmp	.L49
.L48:
	movzx	ebx, BYTE PTR -165[rbp]
	call	getpid@PLT
	mov	esi, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	edx, DWORD PTR -136[rbp]
	mov	r8d, ebx
	mov	ecx, edx
	mov	edx, esi
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L49:
	mov	rax, QWORD PTR newbuffer[rip]
	mov	rdi, rax
	call	free@PLT
	mov	edi, 1
	call	sleep@PLT
	add	DWORD PTR -144[rbp], 1
.L31:
	mov	eax, DWORD PTR -144[rbp]
	cmp	eax, DWORD PTR -132[rbp]
	jl	.L50
	cmp	DWORD PTR -128[rbp], 1
	je	.L50
.L39:
	cmp	DWORD PTR -148[rbp], 1
	jne	.L52
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L30:
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edx, 4
	mov	esi, 0
	lea	rdi, protocol[rip]
	call	memset@PLT
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 8
	mov	BYTE PTR protocol[rip+3], al
	mov	eax, 0
	call	send_to_Server
	mov	DWORD PTR -160[rbp], 0
	mov	eax, DWORD PTR pipe1[rip+4]
	lea	rcx, -160[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	eax, DWORD PTR pipe2[rip+4]
	lea	rcx, -160[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	edi, 0
	call	wait@PLT
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	call	closePipes
	mov	eax, DWORD PTR sock[rip]
	mov	edi, eax
	call	close@PLT
	nop
	nop
	mov	eax, 0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L54
	call	__stack_chk_fail@PLT
.L54:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC19:
	.string	">>> %u <<< (P) Error from writing size to pipe1: %s\n"
	.align 8
.LC20:
	.string	">>> %u <<< (P) Error from writing text to pipe1: %s\n"
	.align 8
.LC21:
	.string	">>> %u <<< (P) Error from writing size to pipe2: %s\n"
	.align 8
.LC22:
	.string	">>> %u <<< (P) Error from writing text to pipe2: %s\n"
	.text
	.globl	sendToChildren
	.type	sendToChildren, @function
sendToChildren:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	eax, edi
	mov	DWORD PTR -40[rbp], esi
	mov	QWORD PTR -48[rbp], rdx
	mov	BYTE PTR -36[rbp], al
	movzx	eax, BYTE PTR -36[rbp]
	shr	al, 5
	test	al, al
	jne	.L63
	mov	eax, DWORD PTR pipe1[rip+4]
	lea	rcx, -40[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], -1
	jne	.L64
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rbx, rax
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rbx
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L64:
	mov	eax, DWORD PTR -40[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR pipe1[rip+4]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], -1
	jne	.L67
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rbx, rax
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rbx
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L67
.L63:
	movzx	eax, BYTE PTR -36[rbp]
	shr	al, 5
	cmp	al, 1
	jne	.L67
	mov	eax, DWORD PTR pipe2[rip+4]
	lea	rcx, -40[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], -1
	jne	.L66
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rbx, rax
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rbx
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L66:
	mov	eax, DWORD PTR -40[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR pipe2[rip+4]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], -1
	jne	.L67
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rbx, rax
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rbx
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L67:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	sendToChildren, .-sendToChildren
	.section	.rodata
	.align 8
.LC23:
	.string	"'%s' is not a valid number.\n Type a valid number:"
	.text
	.globl	getNumberFromUser
	.type	getNumberFromUser, @function
getNumberFromUser:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 288
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR stdin[rip]
	lea	rax, -272[rbp]
	mov	esi, 255
	mov	rdi, rax
	call	fgets@PLT
	lea	rax, -272[rbp]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -276[rbp], eax
	jmp	.L69
.L70:
	mov	rax, QWORD PTR stdout[rip]
	lea	rdx, -272[rbp]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rdx, QWORD PTR stdin[rip]
	lea	rax, -272[rbp]
	mov	esi, 255
	mov	rdi, rax
	call	fgets@PLT
	lea	rax, -272[rbp]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -276[rbp], eax
.L69:
	cmp	DWORD PTR -276[rbp], 0
	je	.L70
	mov	eax, DWORD PTR -276[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L72
	call	__stack_chk_fail@PLT
.L72:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	getNumberFromUser, .-getNumberFromUser
	.section	.rodata
.LC24:
	.string	"3 : Ask for all the jobs."
	.align 8
.LC25:
	.string	"2 : Ask for a chosen amount of jobs."
.LC26:
	.string	"1 : Ask for 1 new job."
	.align 8
.LC27:
	.string	"Type one of the following commands:"
.LC28:
	.string	"%s\n%s\n%s\n%s\n%s\n"
.LC29:
	.string	"4 : Quit."
	.text
	.globl	printMainOptions
	.type	printMainOptions, @function
printMainOptions:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR stdout[rip]
	sub	rsp, 8
	lea	rdx, .LC29[rip]
	push	rdx
	lea	r9, .LC24[rip]
	lea	r8, .LC25[rip]
	lea	rcx, .LC26[rip]
	lea	rdx, .LC27[rip]
	lea	rsi, .LC28[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	printMainOptions, .-printMainOptions
	.globl	closePipes
	.type	closePipes, @function
closePipes:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR pipe1[rip]
	mov	edi, eax
	call	close@PLT
	mov	eax, DWORD PTR pipe1[rip+4]
	mov	edi, eax
	call	close@PLT
	mov	eax, DWORD PTR pipe2[rip]
	mov	edi, eax
	call	close@PLT
	mov	eax, DWORD PTR pipe2[rip+4]
	mov	edi, eax
	call	close@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	closePipes, .-closePipes
	.globl	send_to_Server
	.type	send_to_Server, @function
send_to_Server:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 4
	jmp	.L76
.L78:
	mov	rax, QWORD PTR -8[rbp]
	sub	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	je	.L79
.L76:
	mov	eax, DWORD PTR sock[rip]
	mov	edx, 4
	lea	rsi, protocol[rip]
	mov	edi, eax
	call	write@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L77
	mov	rax, QWORD PTR -16[rbp]
	test	eax, eax
	jg	.L78
	jmp	.L77
.L79:
	nop
.L77:
	mov	edx, 4
	mov	esi, 0
	lea	rdi, protocol[rip]
	call	memset@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	send_to_Server, .-send_to_Server
	.section	.rodata
	.align 8
.LC30:
	.string	"\n>>> %u <<< Killed parent process by ctrl+c.\n"
	.text
	.globl	ctrl_c_handler
	.type	ctrl_c_handler, @function
ctrl_c_handler:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR newbuffer[rip]
	test	rax, rax
	je	.L81
	mov	rax, QWORD PTR newbuffer[rip]
	mov	rdi, rax
	call	free@PLT
.L81:
	mov	edx, 4
	mov	esi, 0
	lea	rdi, protocol[rip]
	call	memset@PLT
	movzx	eax, BYTE PTR protocol[rip+3]
	or	eax, 16
	mov	BYTE PTR protocol[rip+3], al
	mov	eax, DWORD PTR connected[rip]
	cmp	eax, 1
	jne	.L82
	mov	eax, 0
	call	send_to_Server
.L82:
	mov	eax, DWORD PTR sock[rip]
	mov	edi, eax
	call	close@PLT
	mov	eax, 0
	call	closePipes
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC30[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
	.cfi_endproc
.LFE13:
	.size	ctrl_c_handler, .-ctrl_c_handler
	.section	.rodata
	.align 8
.LC31:
	.string	"\n>>> %u <<< Killed child  process by ctrl+c.\n"
	.text
	.globl	ctrl_c_handler_children
	.type	ctrl_c_handler_children, @function
ctrl_c_handler_children:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	getpid@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stdout[rip]
	lea	rsi, .LC31[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
	.cfi_endproc
.LFE14:
	.size	ctrl_c_handler_children, .-ctrl_c_handler_children
	.section	.rodata
.LC32:
	.string	"http"
.LC33:
	.string	"getIP(getaddrinfo): %s\n"
	.text
	.globl	getIP
	.type	getIP, @function
getIP:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -64[rbp]
	mov	edx, 48
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -60[rbp], 2
	mov	DWORD PTR -56[rbp], 1
	lea	rcx, -88[rbp]
	lea	rdx, -64[rbp]
	mov	rax, QWORD PTR -104[rbp]
	lea	rsi, .LC32[rip]
	mov	rdi, rax
	call	getaddrinfo@PLT
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	je	.L85
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	gai_strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC33[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, -1
	jmp	.L89
.L85:
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L87
.L88:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edi, eax
	call	inet_ntoa@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -80[rbp], rax
.L87:
	cmp	QWORD PTR -80[rbp], 0
	jne	.L88
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	freeaddrinfo@PLT
	mov	eax, 0
.L89:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L90
	call	__stack_chk_fail@PLT
.L90:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	getIP, .-getIP
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"979448.c"
	.text
	.align	2
	.global	stopsleep
	.syntax unified
	.arm
	.fpu softvfp
	.type	stopsleep, %function
stopsleep:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stopsleep, .-stopsleep
	.comm	sock,4,4
	.comm	pipe1,8,4
	.comm	pipe2,8,4
	.global	connected
	.bss
	.align	2
	.type	connected, %object
	.size	connected, 4
connected:
	.space	4
	.comm	protocol,4,4
	.global	newbuffer
	.align	2
	.type	newbuffer, %object
	.size	newbuffer, 4
newbuffer:
	.space	4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"ERROR: Correct usage: ./program_name <port_number(1"
	.ascii	"025...n)> <hostname OR ip.adress\012\000"
	.align	2
.LC1:
	.ascii	"ERROR: portnumber < 1024 OR '%s' is not a number.\012"
	.ascii	"Exiting.\012\000"
	.align	2
.LC2:
	.ascii	"pipe1 call error\000"
	.align	2
.LC3:
	.ascii	"pipe2 call error\000"
	.align	2
.LC4:
	.ascii	"Error from fork call 1: %s\012\000"
	.align	2
.LC5:
	.ascii	">>> %u <<< (C) \012%s\012\000"
	.align	2
.LC6:
	.ascii	">>> %u <<< (C) Read a total of %u jobs\012\000"
	.align	2
.LC7:
	.ascii	">>> %u <<< (C) Exiting\012\000"
	.align	2
.LC8:
	.ascii	"Error from fork call 2: %s\012\000"
	.align	2
.LC9:
	.ascii	"\000"
	.align	2
.LC10:
	.ascii	">>> %u <<< (P) Could not resolve hostname %s.\012\000"
	.align	2
.LC11:
	.ascii	">>> %u <<< (P) Exiting.\012\000"
	.align	2
.LC12:
	.ascii	">>> %u <<< (P) Could not connect. Error: %s\012\000"
	.align	2
.LC13:
	.ascii	"Type a number from 1-4.\012\000"
	.align	2
.LC14:
	.ascii	"How many jobs do you want to get?\012\000"
	.align	2
.LC15:
	.ascii	">>> %u <<< (P) Calculated checksum %u != %u Receive"
	.ascii	"d Checksum.\012\000"
	.align	2
.LC16:
	.ascii	">>> %u <<< (P) Quit message recieved from server. N"
	.ascii	"o more jobs to read.\012\000"
	.align	2
.LC17:
	.ascii	">>> %u <<< (P) Sending quit message to server\012\000"
	.align	2
.LC18:
	.ascii	">>> %u <<< (P) Exiting\012\000"
	.align	2
.LC19:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #136
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	ldr	r3, .L62
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-136]
	cmp	r3, #3
	beq	.L3
	ldr	r3, .L62+4
	ldr	r3, [r3]
	mov	r2, #84
	mov	r1, #1
	ldr	r0, .L62+8
	bl	fwrite
	mov	r0, #0
	bl	exit
.L3:
	ldr	r3, [fp, #-140]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #1024
	bge	.L4
	ldr	r3, .L62+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-140]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L62+12
	bl	fprintf
	mov	r0, #0
	bl	exit
.L4:
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-60]
	ldr	r0, .L62+16
	bl	pipe
	mov	r3, r0
	cmp	r3, #0
	bge	.L5
	ldr	r0, .L62+20
	bl	perror
	mov	r0, #1
	bl	exit
.L5:
	ldr	r0, .L62+24
	bl	pipe
	mov	r3, r0
	cmp	r3, #0
	bge	.L6
	ldr	r0, .L62+28
	bl	perror
	mov	r0, #1
	bl	exit
.L6:
	mov	r3, #1
	str	r3, [fp, #-124]
	ldr	r1, .L62+32
	mov	r0, #10
	bl	signal
	bl	fork
	mov	r3, r0
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmn	r3, #1
	beq	.L7
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L8
	b	.L55
.L7:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+36
	mov	r0, r4
	bl	fprintf
	bl	closePipes
	mov	r0, #2
	bl	exit
.L8:
	ldr	r1, .L62+40
	mov	r0, #2
	bl	signal
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L10
.L13:
	ldr	r3, .L62+16
	ldr	r3, [r3]
	sub	r1, fp, #124
	mov	r2, #4
	mov	r0, r3
	bl	read
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L57
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-124]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L62+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-124]
	ldr	r1, [fp, #-52]
	mov	r0, r3
	bl	read
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-52]
	ldr	r1, .L62+44
	mov	r0, r4
	bl	fprintf
	ldr	r0, [fp, #-52]
	bl	free
	bl	getpid
	mov	r3, r0
	sub	r3, r3, #1
	mov	r1, #10
	mov	r0, r3
	bl	kill
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L10:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L13
	b	.L12
.L57:
	nop
.L12:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-112]
	ldr	r1, .L62+48
	mov	r0, r4
	bl	fprintf
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+52
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L55:
	bl	fork
	mov	r3, r0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmn	r3, #1
	beq	.L14
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L15
	b	.L56
.L14:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+56
	mov	r0, r4
	bl	fprintf
	bl	closePipes
	mov	r0, #2
	bl	exit
.L15:
	ldr	r1, .L62+40
	mov	r0, #2
	bl	signal
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L17
.L20:
	ldr	r3, .L62+24
	ldr	r3, [r3]
	sub	r1, fp, #124
	mov	r2, #4
	mov	r0, r3
	bl	read
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L58
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-124]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L62+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-124]
	ldr	r1, [fp, #-44]
	mov	r0, r3
	bl	read
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-44]
	ldr	r1, .L62+44
	mov	r0, r4
	bl	fprintf
	ldr	r0, [fp, #-44]
	bl	free
	bl	getpid
	mov	r3, r0
	sub	r3, r3, #2
	mov	r1, #10
	mov	r0, r3
	bl	kill
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L17:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L20
	b	.L19
.L58:
	nop
.L19:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-108]
	ldr	r1, .L62+48
	mov	r0, r4
	bl	fprintf
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+52
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L56:
	ldr	r1, .L62+60
	mov	r0, #2
	bl	signal
	mov	r2, #6
	mov	r1, #1
	mov	r0, #2
	bl	socket
	mov	r3, r0
	ldr	r2, .L62+64
	str	r3, [r2]
	sub	r3, fp, #32
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #2
	strh	r3, [fp, #-32]	@ movhi
	ldr	r3, .L62+68
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-60]
	bl	atoi
	mov	r3, r0
	cmp	r3, #0
	beq	.L21
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-120]
	b	.L22
.L21:
	sub	r3, fp, #120
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	getIP
	mov	r3, r0
	cmp	r3, #0
	beq	.L22
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-60]
	ldr	r1, .L62+72
	mov	r0, r4
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-124]
	ldr	r3, .L62+16
	ldr	r3, [r3, #4]
	sub	r1, fp, #124
	mov	r2, #4
	mov	r0, r3
	bl	write
	ldr	r3, .L62+24
	ldr	r3, [r3, #4]
	sub	r1, fp, #124
	mov	r2, #4
	mov	r0, r3
	bl	write
	mov	r0, #0
	bl	wait
	bl	closePipes
	ldr	r3, .L62+64
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+76
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L22:
	ldr	r3, [fp, #-120]
	mov	r0, r3
	bl	inet_addr
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	htons
	mov	r3, r0
	strh	r3, [fp, #-30]	@ movhi
	ldr	r3, .L62+64
	ldr	r3, [r3]
	sub	r1, fp, #32
	mov	r2, #16
	mov	r0, r3
	bl	connect
	mov	r3, r0
	cmp	r3, #0
	beq	.L23
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r5, r0
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L62+80
	mov	r0, r4
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r3, .L62+16
	ldr	r3, [r3, #4]
	sub	r1, fp, #116
	mov	r2, #4
	mov	r0, r3
	bl	write
	ldr	r3, .L62+24
	ldr	r3, [r3, #4]
	sub	r1, fp, #116
	mov	r2, #4
	mov	r0, r3
	bl	write
	mov	r0, #0
	bl	wait
	bl	closePipes
	ldr	r3, .L62+64
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+76
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L23:
	ldr	r3, .L62+84
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-84]
.L52:
	mov	r2, #4
	mov	r1, #0
	ldr	r0, .L62+88
	bl	memset
	mov	r3, #1
	str	r3, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-84]
	bl	printMainOptions
	mov	r3, #5
	str	r3, [fp, #-80]
	b	.L24
.L25:
	ldr	r3, .L62+4
	ldr	r3, [r3]
	mov	r2, #24
	mov	r1, #1
	ldr	r0, .L62+92
	bl	fwrite
	bl	getNumberFromUser
	str	r0, [fp, #-80]
.L24:
	ldr	r3, [fp, #-80]
	cmp	r3, #4
	bgt	.L25
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	bne	.L26
	ldr	r3, .L62+88
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #3]
	b	.L27
.L26:
	ldr	r3, [fp, #-80]
	cmp	r3, #2
	bne	.L28
	ldr	r3, .L62+4
	ldr	r3, [r3]
	mov	r2, #34
	mov	r1, #1
	ldr	r0, .L62+96
	bl	fwrite
	bl	getNumberFromUser
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	asr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-88]
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #2]
	ldr	r3, .L62+88
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #2
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #3]
	b	.L27
.L28:
	ldr	r3, [fp, #-80]
	cmp	r3, #3
	bne	.L29
	ldr	r3, .L62+88
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #4
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #3]
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L27
.L29:
	ldr	r3, [fp, #-80]
	cmp	r3, #4
	bne	.L27
	ldr	r3, .L62+88
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #3]
	bl	send_to_Server
	b	.L30
.L27:
	bl	send_to_Server
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L31
.L50:
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-76]
	b	.L32
.L34:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L59
.L32:
	ldr	r3, .L62+64
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	sub	r1, fp, #126
	mov	r0, r3
	bl	read
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L33
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bgt	.L34
	b	.L33
.L59:
	nop
.L33:
	mov	r3, #4
	str	r3, [fp, #-76]
	b	.L35
.L37:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L60
.L35:
	ldr	r3, .L62+64
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	ldr	r1, .L62+88
	mov	r0, r3
	bl	read
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L36
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bgt	.L37
	b	.L36
.L60:
	nop
.L36:
	ldr	r3, .L62+88
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L62+88
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L62+88
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L62+88
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-116]
	ldrb	r3, [fp, #-126]	@ zero_extendqisi2
	lsr	r3, r3, #5
	and	r3, r3, #255
	cmp	r3, #7
	bne	.L38
	mov	r3, #1
	str	r3, [fp, #-104]
	b	.L39
.L38:
	ldr	r3, [fp, #-116]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L62+100
	str	r2, [r3]
	ldr	r3, [fp, #-116]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, .L62+100
	ldr	r3, [r3]
	ldr	r2, [fp, #-116]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-116]
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	memset
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-76]
	b	.L40
.L44:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L41
.L42:
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, .L62+100
	ldr	r1, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L41:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	blt	.L42
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L61
.L40:
	ldr	r3, .L62+64
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-36]
	mov	r0, r3
	bl	read
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L43
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bgt	.L44
	b	.L43
.L61:
	nop
.L43:
	ldr	r0, [fp, #-36]
	bl	free
	ldrb	r3, [fp, #-126]	@ zero_extendqisi2
	lsr	r3, r3, #5
	and	r3, r3, #255
	cmp	r3, #7
	bne	.L45
	mov	r3, #1
	str	r3, [fp, #-104]
	b	.L39
.L45:
	mov	r3, #0
	str	r3, [fp, #-92]
	mov	r3, #0
	strb	r3, [fp, #-125]
	mov	r3, #0
	str	r3, [fp, #-96]
	b	.L46
.L47:
	ldr	r3, .L62+100
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-92]
	add	r3, r3, r2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L46:
	ldr	r3, [fp, #-116]
	ldr	r2, [fp, #-96]
	cmp	r2, r3
	blt	.L47
	ldr	r3, [fp, #-92]
	rsbs	r2, r3, #0
	and	r3, r3, #31
	and	r2, r2, #31
	rsbpl	r3, r2, #0
	str	r3, [fp, #-92]
	ldrb	r3, [fp, #-126]	@ zero_extendqisi2
	lsl	r3, r3, #3
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldrsb	r3, [fp, #-125]
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-125]
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	lsr	r3, r3, #3
	strb	r3, [fp, #-125]
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	bne	.L48
	ldrb	r3, [fp, #-126]	@ zero_extendqisi2
	ldr	r1, [fp, #-116]
	ldr	r2, .L62+100
	ldr	r2, [r2]
	mov	r0, r3
	bl	sendToChildren
	b	.L49
.L48:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r2, r0
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	str	r3, [sp]
	ldr	r3, [fp, #-92]
	ldr	r1, .L62+104
	mov	r0, r4
	bl	fprintf
.L49:
	ldr	r3, .L62+100
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	mov	r0, #1
	bl	sleep
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L31:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L50
	ldr	r3, [fp, #-84]
	cmp	r3, #1
	beq	.L50
.L39:
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bne	.L52
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+108
	mov	r0, r4
	bl	fprintf
.L30:
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+112
	mov	r0, r4
	bl	fprintf
	mov	r2, #4
	mov	r1, #0
	ldr	r0, .L62+88
	bl	memset
	ldr	r3, .L62+88
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, .L62+88
	strb	r2, [r3, #3]
	bl	send_to_Server
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r3, .L62+16
	ldr	r3, [r3, #4]
	sub	r1, fp, #116
	mov	r2, #4
	mov	r0, r3
	bl	write
	ldr	r3, .L62+24
	ldr	r3, [r3, #4]
	sub	r1, fp, #116
	mov	r2, #4
	mov	r0, r3
	bl	write
	mov	r0, #0
	bl	wait
	ldr	r3, .L62+4
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L62+116
	mov	r0, r4
	bl	fprintf
	bl	closePipes
	ldr	r3, .L62+64
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	nop
	nop
	mov	r3, #0
	ldr	r2, .L62
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L54
	bl	__stack_chk_fail
.L54:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L63:
	.align	2
.L62:
	.word	.LC19
	.word	stdout
	.word	.LC0
	.word	.LC1
	.word	pipe1
	.word	.LC2
	.word	pipe2
	.word	.LC3
	.word	stopsleep
	.word	.LC4
	.word	ctrl_c_handler_children
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	ctrl_c_handler
	.word	sock
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	connected
	.word	protocol
	.word	.LC13
	.word	.LC14
	.word	newbuffer
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.size	main, .-main
	.section	.rodata
	.align	2
.LC20:
	.ascii	">>> %u <<< (P) Error from writing size to pipe1: %s"
	.ascii	"\012\000"
	.align	2
.LC21:
	.ascii	">>> %u <<< (P) Error from writing text to pipe1: %s"
	.ascii	"\012\000"
	.align	2
.LC22:
	.ascii	">>> %u <<< (P) Error from writing size to pipe2: %s"
	.ascii	"\012\000"
	.align	2
.LC23:
	.ascii	">>> %u <<< (P) Error from writing text to pipe2: %s"
	.ascii	"\012\000"
	.text
	.align	2
	.global	sendToChildren
	.syntax unified
	.arm
	.fpu softvfp
	.type	sendToChildren, %function
sendToChildren:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	mov	r3, r0
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	lsr	r3, r3, #5
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L65
	ldr	r3, .L70
	ldr	r3, [r3, #4]
	sub	r1, fp, #28
	mov	r2, #4
	mov	r0, r3
	bl	write
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L66
	ldr	r3, .L70+4
	ldr	r4, [r3]
	bl	getpid
	mov	r5, r0
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L70+8
	mov	r0, r4
	bl	fprintf
.L66:
	ldr	r3, .L70
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	write
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L69
	ldr	r3, .L70+4
	ldr	r4, [r3]
	bl	getpid
	mov	r5, r0
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L70+12
	mov	r0, r4
	bl	fprintf
	b	.L69
.L65:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	lsr	r3, r3, #5
	and	r3, r3, #255
	cmp	r3, #1
	bne	.L69
	ldr	r3, .L70+16
	ldr	r3, [r3, #4]
	sub	r1, fp, #28
	mov	r2, #4
	mov	r0, r3
	bl	write
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L68
	ldr	r3, .L70+4
	ldr	r4, [r3]
	bl	getpid
	mov	r5, r0
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L70+20
	mov	r0, r4
	bl	fprintf
.L68:
	ldr	r3, .L70+16
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	write
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L69
	ldr	r3, .L70+4
	ldr	r4, [r3]
	bl	getpid
	mov	r5, r0
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L70+24
	mov	r0, r4
	bl	fprintf
.L69:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L71:
	.align	2
.L70:
	.word	pipe1
	.word	stdout
	.word	.LC20
	.word	.LC21
	.word	pipe2
	.word	.LC22
	.word	.LC23
	.size	sendToChildren, .-sendToChildren
	.section	.rodata
	.align	2
.LC24:
	.ascii	"'%s' is not a valid number.\012 Type a valid number"
	.ascii	":\000"
	.align	2
.LC25:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getNumberFromUser
	.syntax unified
	.arm
	.fpu softvfp
	.type	getNumberFromUser, %function
getNumberFromUser:
	@ args = 0, pretend = 0, frame = 264
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #264
	ldr	r3, .L77
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L77+4
	ldr	r2, [r3]
	sub	r3, fp, #264
	mov	r1, #255
	mov	r0, r3
	bl	fgets
	sub	r3, fp, #264
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-268]
	b	.L73
.L74:
	ldr	r3, .L77+8
	ldr	r3, [r3]
	sub	r2, fp, #264
	ldr	r1, .L77+12
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L77+4
	ldr	r2, [r3]
	sub	r3, fp, #264
	mov	r1, #255
	mov	r0, r3
	bl	fgets
	sub	r3, fp, #264
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-268]
.L73:
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	beq	.L74
	ldr	r3, [fp, #-268]
	ldr	r2, .L77
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L76
	bl	__stack_chk_fail
.L76:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L78:
	.align	2
.L77:
	.word	.LC25
	.word	stdin
	.word	stdout
	.word	.LC24
	.size	getNumberFromUser, .-getNumberFromUser
	.section	.rodata
	.align	2
.LC26:
	.ascii	"1 : Ask for 1 new job.\000"
	.align	2
.LC27:
	.ascii	"Type one of the following commands:\000"
	.align	2
.LC28:
	.ascii	"%s\012%s\012%s\012%s\012%s\012\000"
	.align	2
.LC29:
	.ascii	"4 : Quit.\000"
	.align	2
.LC30:
	.ascii	"3 : Ask for all the jobs.\000"
	.align	2
.LC31:
	.ascii	"2 : Ask for a chosen amount of jobs.\000"
	.text
	.align	2
	.global	printMainOptions
	.syntax unified
	.arm
	.fpu softvfp
	.type	printMainOptions, %function
printMainOptions:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L80
	ldr	r0, [r3]
	ldr	r3, .L80+4
	str	r3, [sp, #8]
	ldr	r3, .L80+8
	str	r3, [sp, #4]
	ldr	r3, .L80+12
	str	r3, [sp]
	ldr	r3, .L80+16
	ldr	r2, .L80+20
	ldr	r1, .L80+24
	bl	fprintf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L81:
	.align	2
.L80:
	.word	stdout
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.size	printMainOptions, .-printMainOptions
	.align	2
	.global	closePipes
	.syntax unified
	.arm
	.fpu softvfp
	.type	closePipes, %function
closePipes:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L83
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L83
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	close
	ldr	r3, .L83+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L83+4
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	close
	nop
	pop	{fp, pc}
.L84:
	.align	2
.L83:
	.word	pipe1
	.word	pipe2
	.size	closePipes, .-closePipes
	.align	2
	.global	send_to_Server
	.syntax unified
	.arm
	.fpu softvfp
	.type	send_to_Server, %function
send_to_Server:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #4
	str	r3, [fp, #-12]
	b	.L86
.L88:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L89
.L86:
	ldr	r3, .L90
	ldr	r3, [r3]
	mov	r2, #4
	ldr	r1, .L90+4
	mov	r0, r3
	bl	write
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L87
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bgt	.L88
	b	.L87
.L89:
	nop
.L87:
	mov	r2, #4
	mov	r1, #0
	ldr	r0, .L90+4
	bl	memset
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L91:
	.align	2
.L90:
	.word	sock
	.word	protocol
	.size	send_to_Server, .-send_to_Server
	.section	.rodata
	.align	2
.LC32:
	.ascii	"\012>>> %u <<< Killed parent process by ctrl+c.\012"
	.ascii	"\000"
	.text
	.align	2
	.global	ctrl_c_handler
	.syntax unified
	.arm
	.fpu softvfp
	.type	ctrl_c_handler, %function
ctrl_c_handler:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	ldr	r3, .L95
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L93
	ldr	r3, .L95
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
.L93:
	mov	r2, #4
	mov	r1, #0
	ldr	r0, .L95+4
	bl	memset
	ldr	r3, .L95+4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, .L95+4
	strb	r2, [r3, #3]
	ldr	r3, .L95+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L94
	bl	send_to_Server
.L94:
	ldr	r3, .L95+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	bl	closePipes
	ldr	r3, .L95+16
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L95+20
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L96:
	.align	2
.L95:
	.word	newbuffer
	.word	protocol
	.word	connected
	.word	sock
	.word	stdout
	.word	.LC32
	.size	ctrl_c_handler, .-ctrl_c_handler
	.section	.rodata
	.align	2
.LC33:
	.ascii	"\012>>> %u <<< Killed child  process by ctrl+c.\012"
	.ascii	"\000"
	.text
	.align	2
	.global	ctrl_c_handler_children
	.syntax unified
	.arm
	.fpu softvfp
	.type	ctrl_c_handler_children, %function
ctrl_c_handler_children:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	ldr	r3, .L98
	ldr	r4, [r3]
	bl	getpid
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L98+4
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L99:
	.align	2
.L98:
	.word	stdout
	.word	.LC33
	.size	ctrl_c_handler_children, .-ctrl_c_handler_children
	.section	.rodata
	.align	2
.LC34:
	.ascii	"http\000"
	.align	2
.LC35:
	.ascii	"getIP(getaddrinfo): %s\012\000"
	.align	2
.LC36:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getIP
	.syntax unified
	.arm
	.fpu softvfp
	.type	getIP, %function
getIP:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #68
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	ldr	r3, .L107
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #48
	mov	r2, #32
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #2
	str	r3, [fp, #-44]
	mov	r3, #1
	str	r3, [fp, #-40]
	sub	r3, fp, #64
	sub	r2, fp, #48
	ldr	r1, .L107+4
	ldr	r0, [fp, #-72]
	bl	getaddrinfo
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L101
	ldr	r3, .L107+8
	ldr	r4, [r3]
	ldr	r0, [fp, #-56]
	bl	gai_strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L107+12
	mov	r0, r4
	bl	fprintf
	mvn	r3, #0
	b	.L105
.L101:
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-60]
	b	.L103
.L104:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-76]
	ldr	r4, [r3]
	ldr	r3, [fp, #-52]
	ldr	r0, [r3, #4]
	bl	inet_ntoa
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	strcpy
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-60]
.L103:
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L104
	ldr	r3, [fp, #-64]
	mov	r0, r3
	bl	freeaddrinfo
	mov	r3, #0
.L105:
	ldr	r2, .L107
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L106
	bl	__stack_chk_fail
.L106:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L108:
	.align	2
.L107:
	.word	.LC36
	.word	.LC34
	.word	stderr
	.word	.LC35
	.size	getIP, .-getIP
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
