	.file	"69274.c"
	.intel_syntax noprefix
	.text
	.globl	numquestions
	.bss
	.align 4
	.type	numquestions, @object
	.size	numquestions, 4
numquestions:
	.zero	4
	.globl	MAX
	.data
	.align 4
	.type	MAX, @object
	.size	MAX, 4
MAX:
	.long	80
	.globl	PORT
	.align 4
	.type	PORT, @object
	.size	PORT, 4
PORT:
	.long	8080
	.globl	forrand
	.bss
	.align 4
	.type	forrand, @object
	.size	forrand, 4
forrand:
	.zero	4
	.section	.rodata
.LC0:
	.string	"r"
.LC1:
	.string	"questions.txt"
.LC2:
	.string	"<st>"
.LC3:
	.string	"<st> %d"
.LC4:
	.string	"%d"
	.text
	.globl	getnumquestions
	.type	getnumquestions, @function
getnumquestions:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 88
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR -96[rbp], rax
	cmp	QWORD PTR -96[rbp], 0
	jne	.L2
	mov	DWORD PTR numquestions[rip], 0
	jmp	.L1
.L2:
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	mov	DWORD PTR -116[rbp], 0
	jmp	.L4
.L12:
	mov	rax, rsp
	mov	rbx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, -1[rax]
	mov	QWORD PTR -80[rbp], rdx
	mov	rdx, rax
	mov	r12, rdx
	mov	r13d, 0
	mov	rdx, rax
	mov	r14, rdx
	mov	r15d, 0
	mov	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L5:
	cmp	rsp, rdx
	je	.L6
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L5
.L6:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L7
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L7:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR -120[rbp], 0
	jmp	.L8
.L10:
	mov	rdx, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L9
	mov	rdx, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 1
	jle	.L9
	mov	BYTE PTR -57[rbp], 0
	mov	rdx, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -58[rbp], al
	lea	rdx, -58[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
.L9:
	add	DWORD PTR -120[rbp], 1
.L8:
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	cmp	QWORD PTR -88[rbp], rax
	jg	.L10
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 4
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L11
	lea	rdx, -124[rbp]
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	edx, DWORD PTR -124[rbp]
	mov	eax, DWORD PTR numquestions[rip]
	cmp	edx, eax
	jle	.L11
	mov	DWORD PTR -116[rbp], 1
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR numquestions[rip], eax
.L11:
	mov	rsp, rbx
.L4:
	mov	rdx, QWORD PTR -96[rbp]
	lea	rcx, -104[rbp]
	lea	rax, -112[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], -1
	jne	.L12
	cmp	DWORD PTR -116[rbp], 0
	jne	.L13
	mov	DWORD PTR numquestions[rip], 0
.L13:
	mov	eax, DWORD PTR numquestions[rip]
	mov	esi, eax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
.L1:
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	getnumquestions, .-getnumquestions
	.globl	writemessage
	.type	writemessage, @function
writemessage:
.LFB7:
	.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	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	writemessage, .-writemessage
	.globl	stripString
	.type	stripString, @function
stripString:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L17
.L19:
	add	QWORD PTR -24[rbp], 1
.L17:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L18
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isspace@PLT
	test	eax, eax
	jne	.L19
.L18:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memmove@PLT
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	jmp	.L20
.L22:
	sub	QWORD PTR -16[rbp], 1
.L20:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jnb	.L21
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isspace@PLT
	test	eax, eax
	jne	.L22
.L21:
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	stripString, .-stripString
	.globl	StripPrintString
	.type	StripPrintString, @function
StripPrintString:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L24
.L25:
	add	QWORD PTR -24[rbp], 1
.L24:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isprint@PLT
	test	eax, eax
	je	.L25
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memmove@PLT
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	jmp	.L26
.L28:
	sub	QWORD PTR -16[rbp], 1
.L26:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jnb	.L27
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isspace@PLT
	test	eax, eax
	jne	.L28
.L27:
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	StripPrintString, .-StripPrintString
	.section	.rodata
.LC5:
	.string	"From Client: "
.LC6:
	.string	"%s"
	.text
	.globl	printfull
	.type	printfull, @function
printfull:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 48
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -52[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	r12, rax
	mov	ebx, DWORD PTR MAX[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -40[rbp], rax
	movsx	rax, ebx
	mov	r10, rax
	mov	r11d, 0
	movsx	rax, ebx
	mov	r8, rax
	mov	r9d, 0
	movsx	rax, ebx
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L30:
	cmp	rsp, rdx
	je	.L31
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L30
.L31:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L32
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L32:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -32[rbp], rax
	movsx	rax, ebx
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -48[rbp], rax
	jmp	.L33
.L34:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -48[rbp], rax
.L33:
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	cmp	QWORD PTR -48[rbp], rax
	jge	.L34
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rsp, r12
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	printfull, .-printfull
	.section	.rodata
.LC7:
	.string	"Question not found:"
.LC8:
	.string	"Retrieving Question: "
.LC9:
	.string	"<end>"
.LC10:
	.string	"."
.LC11:
	.string	"<tag>"
.LC12:
	.string	"<Q>"
.LC13:
	.string	"<c>"
.LC14:
	.string	"<ca>"
.LC15:
	.string	"Buff"
	.text
	.globl	getQuestion
	.type	getQuestion, @function
getQuestion:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 1176
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -1156[rbp], edi
	mov	DWORD PTR -1160[rbp], esi
	mov	DWORD PTR -1164[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	r13, rax
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR -1112[rbp], rax
	cmp	QWORD PTR -1112[rbp], 0
	jne	.L37
	mov	eax, DWORD PTR -1156[rbp]
	lea	rsi, .LC7[rip]
	mov	edi, eax
	call	writemessage
	mov	eax, -2
	jmp	.L38
.L37:
	mov	BYTE PTR -1056[rbp], 0
	lea	rax, -1056[rbp]
	mov	WORD PTR [rax], 10
	mov	QWORD PTR -1128[rbp], 0
	mov	QWORD PTR -1120[rbp], 0
	mov	DWORD PTR -1132[rbp], 0
	mov	ecx, DWORD PTR MAX[rip]
	movsx	rax, ecx
	sub	rax, 1
	mov	QWORD PTR -1104[rbp], rax
	movsx	rax, ecx
	mov	QWORD PTR -1184[rbp], rax
	mov	QWORD PTR -1176[rbp], 0
	movsx	rax, ecx
	mov	QWORD PTR -1200[rbp], rax
	mov	QWORD PTR -1192[rbp], 0
	movsx	rax, ecx
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rsi, rax
	and	rsi, -4096
	mov	rdx, rsp
	sub	rdx, rsi
.L39:
	cmp	rsp, rdx
	je	.L40
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L39
.L40:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L41
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L41:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -1096[rbp], rax
	movsx	rax, ecx
	mov	rdx, QWORD PTR -1096[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	cmp	DWORD PTR -1164[rbp], 0
	jne	.L43
	mov	eax, DWORD PTR -1156[rbp]
	lea	rsi, .LC8[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L43
.L63:
	mov	rax, QWORD PTR -1128[rbp]
	mov	rdi, rax
	call	stripString
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 4
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L43
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, -1140[rbp]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	eax, DWORD PTR -1140[rbp]
	cmp	DWORD PTR -1160[rbp], eax
	jne	.L43
	mov	eax, DWORD PTR -1140[rbp]
	mov	DWORD PTR forrand[rip], eax
	mov	DWORD PTR -1132[rbp], 1
	mov	rdx, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rcx, QWORD PTR -1128[rbp]
	lea	rdi, 4[rcx]
	mov	rcx, rdx
	mov	edx, 1
	mov	rsi, rax
	call	fwrite@PLT
	mov	rdx, QWORD PTR -1088[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	lea	rcx, 4[rax]
	lea	rax, -1056[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncat@PLT
	jmp	.L44
.L61:
	mov	rax, rsp
	mov	rbx, rax
	mov	rax, QWORD PTR -1088[rbp]
	lea	rdx, -1[rax]
	mov	QWORD PTR -1080[rbp], rdx
	mov	rdx, rax
	mov	r14, rdx
	mov	r15d, 0
	mov	rdx, rax
	mov	QWORD PTR -1216[rbp], rdx
	mov	QWORD PTR -1208[rbp], 0
	mov	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L45:
	cmp	rsp, rdx
	je	.L46
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L45
.L46:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L47
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L47:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR -1136[rbp], 0
	jmp	.L48
.L50:
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L49
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 1
	jle	.L49
	mov	BYTE PTR -1057[rbp], 0
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1058[rbp], al
	lea	rdx, -1058[rbp]
	mov	rax, QWORD PTR -1072[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
.L49:
	add	DWORD PTR -1136[rbp], 1
.L48:
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	cmp	QWORD PTR -1088[rbp], rax
	jg	.L50
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 5
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L70
	mov	rax, QWORD PTR -1072[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, BYTE PTR .LC10[rip]
	movzx	eax, al
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	je	.L71
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 5
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L72
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 3
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L56
	mov	r12, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 3
	mov	rdi, rax
	call	strlen@PLT
	mov	rsi, rax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 3
	mov	rcx, r12
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR -1072[rbp]
	lea	rdx, 3[rax]
	lea	rax, -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	jmp	.L54
.L56:
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 3
	lea	rsi, .LC13[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L57
	mov	r12, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 3
	mov	rdi, rax
	call	strlen@PLT
	mov	rsi, rax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 3
	mov	rcx, r12
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR -1072[rbp]
	lea	rdx, 3[rax]
	lea	rax, -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	jmp	.L54
.L57:
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 4
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L58
	cmp	DWORD PTR -1164[rbp], 0
	jne	.L73
	mov	r12, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 4
	mov	rdi, rax
	call	strlen@PLT
	mov	rsi, rax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 4
	mov	rcx, r12
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR -1072[rbp]
	lea	rdx, 4[rax]
	lea	rax, -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	jmp	.L73
.L58:
	mov	r12, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1072[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	rcx, r12
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rax, -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	mov	rsp, rbx
	jmp	.L44
.L70:
	nop
	mov	rsp, rbx
	jmp	.L62
.L71:
	nop
	jmp	.L54
.L72:
	nop
	jmp	.L54
.L73:
	nop
.L54:
	mov	rsp, rbx
.L44:
	mov	rdx, QWORD PTR -1112[rbp]
	lea	rcx, -1120[rbp]
	lea	rax, -1128[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -1088[rbp], rax
	cmp	QWORD PTR -1088[rbp], -1
	jne	.L61
	jmp	.L62
.L43:
	mov	rdx, QWORD PTR -1112[rbp]
	lea	rcx, -1120[rbp]
	lea	rax, -1128[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -1088[rbp], rax
	cmp	QWORD PTR -1088[rbp], -1
	jne	.L63
.L62:
	mov	rax, QWORD PTR -1128[rbp]
	mov	rdi, rax
	call	free@PLT
	cmp	DWORD PTR -1132[rbp], 0
	jne	.L64
	cmp	DWORD PTR -1164[rbp], 0
	jne	.L64
	mov	eax, DWORD PTR -1156[rbp]
	lea	rsi, .LC7[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L65
.L64:
	cmp	DWORD PTR -1132[rbp], 0
	jne	.L66
	cmp	DWORD PTR -1164[rbp], 1
	jne	.L66
	mov	rax, QWORD PTR -1112[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, -1
	jmp	.L38
.L66:
	mov	rax, QWORD PTR stdout[rip]
	mov	rcx, rax
	mov	edx, 1
	mov	esi, 4
	lea	rdi, .LC15[rip]
	call	fwrite@PLT
	mov	rbx, QWORD PTR stdout[rip]
	lea	rax, -1056[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rsi, rax
	lea	rax, -1056[rbp]
	mov	rcx, rbx
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	lea	rdx, -1056[rbp]
	mov	eax, DWORD PTR -1156[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writemessage
.L65:
	mov	eax, 1
.L38:
	mov	rsp, r13
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L68
	call	__stack_chk_fail@PLT
.L68:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	getQuestion, .-getQuestion
	.globl	iterations
	.bss
	.align 4
	.type	iterations, @object
	.size	iterations, 4
iterations:
	.zero	4
	.section	.rodata
.LC16:
	.string	"Retrieving Random Question: "
.LC17:
	.string	"There are no questions.\n"
	.text
	.globl	randques
	.type	randques, @function
randques:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -20[rbp]
	lea	rsi, .LC16[rip]
	mov	edi, eax
	call	writemessage
	mov	eax, DWORD PTR numquestions[rip]
	test	eax, eax
	jne	.L75
	mov	eax, DWORD PTR -20[rbp]
	lea	rsi, .LC17[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L74
.L75:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L77
.L81:
	call	rand@PLT
	mov	ecx, DWORD PTR numquestions[rip]
	cdq
	idiv	ecx
	mov	eax, edx
	add	eax, 1
	mov	DWORD PTR -4[rbp], eax
	mov	ecx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	edi, eax
	call	getQuestion
	cmp	eax, 1
	jne	.L78
	mov	DWORD PTR -12[rbp], 1
	jmp	.L79
.L78:
	mov	ecx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	edi, eax
	call	getQuestion
	cmp	eax, -2
	je	.L82
	add	DWORD PTR -8[rbp], 1
.L77:
	cmp	DWORD PTR -8[rbp], 9
	jle	.L81
	jmp	.L79
.L82:
	nop
.L79:
	cmp	DWORD PTR -12[rbp], 1
	je	.L74
	mov	ecx, DWORD PTR numquestions[rip]
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	edi, eax
	call	getQuestion
.L74:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	randques, .-randques
	.section	.rodata
.LC18:
	.string	"There are no questions."
.LC19:
	.string	"w"
.LC20:
	.string	"temp.txt"
.LC21:
	.string	"Deleted"
	.align 8
.LC22:
	.string	"Question not found. It is possible that it has already been deleted."
	.text
	.globl	deleteques
	.type	deleteques, @function
deleteques:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 120
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -148[rbp], edi
	mov	DWORD PTR -152[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	jne	.L84
	mov	eax, DWORD PTR -148[rbp]
	lea	rsi, .LC18[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L83
.L84:
	mov	QWORD PTR -120[rbp], 0
	mov	QWORD PTR -112[rbp], 0
	mov	DWORD PTR -128[rbp], 0
	lea	rsi, .LC19[rip]
	lea	rdi, .LC20[rip]
	call	fopen@PLT
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -132[rbp], 0
	jmp	.L86
.L96:
	mov	rax, rsp
	mov	rbx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, -1[rax]
	mov	QWORD PTR -80[rbp], rdx
	mov	rdx, rax
	mov	r12, rdx
	mov	r13d, 0
	mov	rdx, rax
	mov	r14, rdx
	mov	r15d, 0
	mov	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L87:
	cmp	rsp, rdx
	je	.L88
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L87
.L88:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L89
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L89:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR -124[rbp], 0
	jmp	.L90
.L92:
	mov	rdx, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L91
	mov	rdx, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 1
	jle	.L91
	mov	BYTE PTR -57[rbp], 0
	mov	rdx, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -58[rbp], al
	lea	rdx, -58[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
.L91:
	add	DWORD PTR -124[rbp], 1
.L90:
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	cmp	QWORD PTR -88[rbp], rax
	jg	.L92
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 4
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L93
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, -136[rbp]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	eax, DWORD PTR -136[rbp]
	cmp	DWORD PTR -152[rbp], eax
	jne	.L93
	mov	DWORD PTR -132[rbp], 1
	add	DWORD PTR -128[rbp], 1
.L93:
	cmp	DWORD PTR -132[rbp], 1
	je	.L94
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rsi, rax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	jmp	.L95
.L94:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 5
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L95
	mov	DWORD PTR -132[rbp], 0
.L95:
	mov	rsp, rbx
.L86:
	mov	rdx, QWORD PTR -104[rbp]
	lea	rcx, -112[rbp]
	lea	rax, -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], -1
	jne	.L96
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	fclose@PLT
	lea	rdi, .LC1[rip]
	call	remove@PLT
	lea	rsi, .LC1[rip]
	lea	rdi, .LC20[rip]
	call	rename@PLT
	mov	eax, 0
	call	getnumquestions
	cmp	DWORD PTR -128[rbp], 0
	jle	.L97
	mov	eax, DWORD PTR -148[rbp]
	lea	rsi, .LC21[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L83
.L97:
	mov	eax, DWORD PTR -148[rbp]
	lea	rsi, .LC22[rip]
	mov	edi, eax
	call	writemessage
.L83:
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L99
	call	__stack_chk_fail@PLT
.L99:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	deleteques, .-deleteques
	.section	.rodata
.LC23:
	.string	"<ca> %s"
	.text
	.globl	checkanswer
	.type	checkanswer, @function
checkanswer:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 1160
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -1156[rbp], edi
	mov	DWORD PTR -1160[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	rbx, rax
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR -1112[rbp], rax
	cmp	QWORD PTR -1112[rbp], 0
	jne	.L101
	mov	eax, DWORD PTR -1156[rbp]
	lea	rsi, .LC18[rip]
	mov	edi, eax
	call	writemessage
	mov	eax, 0
	jmp	.L102
.L101:
	mov	BYTE PTR -1056[rbp], 0
	lea	rax, -1056[rbp]
	mov	WORD PTR [rax], 10
	mov	QWORD PTR -1128[rbp], 0
	mov	QWORD PTR -1120[rbp], 0
	mov	DWORD PTR -1132[rbp], 0
	mov	eax, DWORD PTR MAX[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -1104[rbp], rdx
	movsx	rdx, eax
	mov	QWORD PTR -1184[rbp], rdx
	mov	QWORD PTR -1176[rbp], 0
	movsx	rdx, eax
	mov	r12, rdx
	mov	r13d, 0
	cdqe
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L103:
	cmp	rsp, rdx
	je	.L104
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L103
.L104:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L105
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L105:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -1096[rbp], rax
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	mov	rdx, QWORD PTR -1096[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L106
.L117:
	mov	rax, QWORD PTR -1128[rbp]
	mov	rdi, rax
	call	stripString
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 4
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L106
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, -1140[rbp]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	eax, DWORD PTR -1140[rbp]
	cmp	DWORD PTR -1160[rbp], eax
	jne	.L106
	mov	DWORD PTR -1132[rbp], 1
	mov	rdx, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rcx, QWORD PTR -1128[rbp]
	lea	rdi, 4[rcx]
	mov	rcx, rdx
	mov	edx, 1
	mov	rsi, rax
	call	fwrite@PLT
	mov	rdx, QWORD PTR -1088[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	lea	rcx, 4[rax]
	lea	rax, -1056[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncat@PLT
	jmp	.L107
.L115:
	mov	rax, rsp
	mov	r12, rax
	mov	rax, QWORD PTR -1088[rbp]
	lea	rdx, -1[rax]
	mov	QWORD PTR -1080[rbp], rdx
	mov	rdx, rax
	mov	r14, rdx
	mov	r15d, 0
	mov	rdx, rax
	mov	QWORD PTR -1200[rbp], rdx
	mov	QWORD PTR -1192[rbp], 0
	mov	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L108:
	cmp	rsp, rdx
	je	.L109
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L108
.L109:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L110
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L110:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR -1136[rbp], 0
	jmp	.L111
.L113:
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L112
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 1
	jle	.L112
	mov	BYTE PTR -1057[rbp], 0
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1058[rbp], al
	lea	rdx, -1058[rbp]
	mov	rax, QWORD PTR -1072[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
.L112:
	add	DWORD PTR -1136[rbp], 1
.L111:
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	cmp	QWORD PTR -1088[rbp], rax
	jg	.L113
	mov	rax, QWORD PTR -1072[rbp]
	mov	edx, 4
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L114
	mov	rdx, QWORD PTR -1096[rbp]
	mov	rax, QWORD PTR -1072[rbp]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	rax, QWORD PTR -1096[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	mov	rsp, r12
	jmp	.L102
.L114:
	mov	rsp, r12
.L107:
	mov	rdx, QWORD PTR -1112[rbp]
	lea	rcx, -1120[rbp]
	lea	rax, -1128[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -1088[rbp], rax
	cmp	QWORD PTR -1088[rbp], -1
	jne	.L115
	jmp	.L116
.L106:
	mov	rdx, QWORD PTR -1112[rbp]
	lea	rcx, -1120[rbp]
	lea	rax, -1128[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getline@PLT
	mov	QWORD PTR -1088[rbp], rax
	cmp	QWORD PTR -1088[rbp], -1
	jne	.L117
.L116:
	mov	rax, QWORD PTR -1128[rbp]
	mov	rdi, rax
	call	free@PLT
	cmp	DWORD PTR -1132[rbp], 0
	jne	.L118
	mov	eax, DWORD PTR -1156[rbp]
	lea	rsi, .LC7[rip]
	mov	edi, eax
	call	writemessage
	mov	eax, 0
	jmp	.L102
.L118:
	mov	rsp, rbx
	jmp	.L100
.L102:
	mov	rsp, rbx
.L100:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L120
	call	__stack_chk_fail@PLT
.L120:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	checkanswer, .-checkanswer
	.section	.rodata
.LC24:
	.string	"a"
.LC25:
	.string	"Question tag: "
	.align 8
.LC26:
	.string	"Please enter the question tag: "
.LC27:
	.string	"Please Enter Question: "
.LC28:
	.string	"Question: "
.LC29:
	.string	"Please Enter Answer Choices: "
.LC30:
	.string	"Choices: "
.LC31:
	.string	"Please Enter Answer: "
.LC32:
	.string	"Answer: "
.LC33:
	.string	"<end>\n"
.LC34:
	.string	"Closed file"
.LC35:
	.string	"An error has occured."
	.text
	.globl	createQuestion
	.type	createQuestion, @function
createQuestion:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r12
	push	rbx
	sub	rsp, 288
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	DWORD PTR -292[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	r12, rax
	mov	eax, 0
	call	getnumquestions
	mov	eax, DWORD PTR numquestions[rip]
	add	eax, 1
	mov	DWORD PTR numquestions[rip], eax
	mov	edx, DWORD PTR numquestions[rip]
	lea	rax, -240[rbp]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -208[rbp]
	mov	DWORD PTR [rax], 1047819068
	mov	BYTE PTR 4[rax], 0
	lea	rdx, -240[rbp]
	lea	rax, -208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	lea	rax, -208[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -208[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 10
	lea	rsi, .LC24[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR -272[rbp], rax
	lea	rax, -208[rbp]
	mov	rdi, rax
	call	strlen@PLT
	lea	rsi, 1[rax]
	mov	rdx, QWORD PTR -272[rbp]
	lea	rax, -208[rbp]
	mov	rcx, rdx
	mov	rdx, rsi
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, rax
	mov	edx, 5
	mov	esi, 1
	lea	rdi, .LC11[rip]
	call	fwrite@PLT
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -292[rbp]
	lea	rsi, .LC26[rip]
	mov	edi, eax
	call	writemessage
	mov	ebx, DWORD PTR MAX[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -264[rbp], rax
	movsx	rax, ebx
	mov	QWORD PTR -320[rbp], rax
	mov	QWORD PTR -312[rbp], 0
	movsx	rax, ebx
	mov	r14, rax
	mov	r15d, 0
	movsx	rax, ebx
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L122:
	cmp	rsp, rdx
	je	.L123
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L122
.L123:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L124
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L124:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -256[rbp], rax
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
.L127:
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	cmp	QWORD PTR -248[rbp], rax
	jge	.L125
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	nop
	mov	eax, DWORD PTR -292[rbp]
	lea	rsi, .LC27[rip]
	mov	edi, eax
	call	writemessage
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC12[rip]
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L130
.L125:
	mov	eax, DWORD PTR MAX[rip]
	mov	rdx, QWORD PTR -256[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L127
.L130:
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	cmp	QWORD PTR -248[rbp], rax
	jge	.L128
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	nop
	mov	eax, DWORD PTR -292[rbp]
	lea	rsi, .LC29[rip]
	mov	edi, eax
	call	writemessage
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC13[rip]
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L133
.L128:
	mov	eax, DWORD PTR MAX[rip]
	mov	rdx, QWORD PTR -256[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L130
.L133:
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	cmp	QWORD PTR -248[rbp], rax
	jge	.L131
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	nop
	mov	eax, DWORD PTR -292[rbp]
	lea	rsi, .LC31[rip]
	mov	edi, eax
	call	writemessage
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, rax
	mov	edx, 4
	mov	esi, 1
	lea	rdi, .LC14[rip]
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L136
.L131:
	mov	eax, DWORD PTR MAX[rip]
	mov	rdx, QWORD PTR -256[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L133
.L136:
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR MAX[rip]
	cdqe
	cmp	QWORD PTR -248[rbp], rax
	jge	.L134
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	nop
	mov	edx, DWORD PTR numquestions[rip]
	lea	rax, -144[rbp]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 10
	lea	rdx, -144[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writemessage
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, rax
	mov	edx, 6
	mov	esi, 1
	lea	rdi, .LC33[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -272[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	DWORD PTR -276[rbp], eax
	cmp	DWORD PTR -276[rbp], 0
	jne	.L137
	jmp	.L140
.L134:
	mov	eax, DWORD PTR MAX[rip]
	mov	rdx, QWORD PTR -256[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 0
	movsx	rdx, ebx
	mov	rcx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	movsx	rax, ebx
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L136
.L140:
	lea	rdi, .LC34[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L138
.L137:
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	printf@PLT
.L138:
	mov	rsp, r12
	nop
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L139
	call	__stack_chk_fail@PLT
.L139:
	lea	rsp, -32[rbp]
	pop	rbx
	pop	r12
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	createQuestion, .-createQuestion
	.section	.rodata
	.align 8
.LC36:
	.string	"client requested to insert a question"
	.text
	.globl	insertques
	.type	insertques, @function
insertques:
.LFB16:
	.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	DWORD PTR -4[rbp], edi
	lea	rdi, .LC36[rip]
	call	puts@PLT
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	createQuestion
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	insertques, .-insertques
	.section	.rodata
.LC37:
	.string	"Listen failed..."
.LC38:
	.string	"Server listening.."
.LC39:
	.string	"server acccept failed..."
.LC40:
	.string	"server acccept the client..."
	.text
	.globl	findnewclient
	.type	findnewclient, @function
findnewclient:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 256
	mov	DWORD PTR -244[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -244[rbp]
	mov	esi, 5
	mov	edi, eax
	call	listen@PLT
	test	eax, eax
	je	.L143
	lea	rdi, .LC37[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L143:
	lea	rdi, .LC38[rip]
	call	puts@PLT
	mov	DWORD PTR -232[rbp], 16
	lea	rdx, -232[rbp]
	lea	rcx, -224[rbp]
	mov	eax, DWORD PTR -244[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	accept@PLT
	mov	DWORD PTR -228[rbp], eax
	cmp	DWORD PTR -228[rbp], 0
	jns	.L144
	lea	rdi, .LC39[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L144:
	lea	rdi, .LC40[rip]
	call	puts@PLT
	movabs	rax, 7286935743315143760
	movabs	rdx, 7142815800995705966
	mov	QWORD PTR -208[rbp], rax
	mov	QWORD PTR -200[rbp], rdx
	movabs	rax, 2322278983106653551
	movabs	rdx, 7236828773846303498
	mov	QWORD PTR -192[rbp], rax
	mov	QWORD PTR -184[rbp], rdx
	movabs	rax, 7238811150377885811
	movabs	rdx, 7955925594916528229
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], rdx
	movabs	rax, 7310873954312414579
	movabs	rdx, 7430988237988525171
	mov	QWORD PTR -160[rbp], rax
	mov	QWORD PTR -152[rbp], rdx
	movabs	rax, 8151643304411278624
	movabs	rdx, 3201618883822970229
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], rdx
	movabs	rax, 7810759218102821920
	movabs	rdx, 8315181415744762981
	mov	QWORD PTR -128[rbp], rax
	mov	QWORD PTR -120[rbp], rdx
	movabs	rax, 2337966531762153844
	movabs	rdx, 7885631897793077293
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -104[rbp], rdx
	movabs	rax, 8028075849736876320
	movabs	rdx, 7142758626134862958
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], rdx
	movabs	rax, 8317692353668408680
	movabs	rdx, 3251716716890318199
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	movabs	rax, 7310222270199851808
	movabs	rdx, 2337685056851900018
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], rdx
	movabs	rax, 7142837005300342829
	movabs	rdx, 7503045857779214700
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	movabs	rax, 3346293705930714400
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -24[rbp], 657952
	lea	rcx, -208[rbp]
	mov	eax, DWORD PTR -228[rbp]
	mov	edx, 188
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L145
	call	__stack_chk_fail@PLT
.L145:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	findnewclient, .-findnewclient
	.section	.rodata
.LC41:
	.string	"From client: %s\t"
.LC42:
	.string	"q"
.LC43:
	.string	"p"
.LC44:
	.string	"h"
.LC45:
	.string	"You are Correct!"
.LC46:
	.string	"Sorry, that was incorrect."
.LC47:
	.string	"d"
.LC48:
	.string	"%*c%d"
.LC49:
	.string	"g"
.LC50:
	.string	"c"
.LC51:
	.string	"%*c%d%s"
.LC52:
	.string	"k"
	.align 8
.LC53:
	.string	"Command Not found. Please type h to look at the following commands."
	.text
	.globl	func
	.type	func, @function
func:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 408
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -324[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	r13, rax
	mov	r12d, DWORD PTR MAX[rip]
	movsx	rax, r12d
	sub	rax, 1
	mov	QWORD PTR -304[rbp], rax
	movsx	rax, r12d
	mov	rcx, rax
	mov	ebx, 0
	movsx	rax, r12d
	mov	r8, rax
	mov	r9d, 0
	movsx	rdx, r12d
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L147:
	cmp	rsp, rcx
	je	.L148
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L147
.L148:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L149
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L149:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -296[rbp], rax
	mov	eax, 0
	call	getnumquestions
.L176:
	mov	eax, DWORD PTR MAX[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	rcx, rax
	mov	rax, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	movsx	rdx, r12d
	mov	rcx, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -308[rbp], 0
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, rax
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	ecx, BYTE PTR .LC42[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L150
	mov	eax, DWORD PTR -324[rbp]
	mov	edi, eax
	call	close@PLT
	nop
	mov	rsp, r13
	nop
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L177
	jmp	.L178
.L150:
	movzx	ecx, BYTE PTR .LC43[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L152
	mov	eax, DWORD PTR -324[rbp]
	mov	edi, eax
	call	insertques
	add	DWORD PTR -308[rbp], 1
.L152:
	movzx	ecx, BYTE PTR .LC44[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L153
	movabs	rax, 8314892176759549763
	movabs	rdx, 7306093603886885152
	mov	QWORD PTR -224[rbp], rax
	mov	QWORD PTR -216[rbp], rdx
	movabs	rax, 8317701148716855328
	movabs	rdx, 8315181415745745509
	mov	QWORD PTR -208[rbp], rax
	mov	QWORD PTR -200[rbp], rdx
	movabs	rax, 2334870307018336628
	movabs	rdx, 8462580859095425069
	mov	QWORD PTR -192[rbp], rax
	mov	QWORD PTR -184[rbp], rdx
	movabs	rax, 2318349332978627429
	movabs	rdx, 7308327776026435684
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], rdx
	movabs	rax, 8391162085804893556
	movabs	rdx, 3251724413471453033
	mov	QWORD PTR -160[rbp], rax
	mov	QWORD PTR -152[rbp], rdx
	movabs	rax, 2336646258814448160
	movabs	rdx, 7957695015460107633
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], rdx
	movabs	rax, 7521891180827844652
	movabs	rdx, 8607344676269941605
	mov	QWORD PTR -128[rbp], rax
	mov	QWORD PTR -120[rbp], rdx
	movabs	rax, 2318545027639046757
	movabs	rdx, 8243121276066752875
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -104[rbp], rdx
	movabs	rax, 3251723313960084854
	movabs	rdx, 7810121863148171552
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], rdx
	movabs	rax, 2335151782095644009
	movabs	rdx, 2318914469002485805
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	mov	WORD PTR -64[rbp], 2570
	mov	BYTE PTR -62[rbp], 0
	lea	rcx, -224[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	edx, 163
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	add	DWORD PTR -308[rbp], 1
.L153:
	movzx	ecx, BYTE PTR .LC0[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L154
	mov	rax, rsp
	mov	rbx, rax
	mov	eax, DWORD PTR -324[rbp]
	mov	edi, eax
	call	randques
	mov	esi, DWORD PTR MAX[rip]
	movsx	rax, esi
	sub	rax, 1
	mov	QWORD PTR -288[rbp], rax
	movsx	rax, esi
	mov	QWORD PTR -352[rbp], rax
	mov	QWORD PTR -344[rbp], 0
	movsx	rax, esi
	mov	r14, rax
	mov	r15d, 0
	movsx	rdx, esi
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	edi, 16
	mov	edx, 0
	div	rdi
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L155:
	cmp	rsp, rcx
	je	.L156
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L155
.L156:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L157
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L157:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -280[rbp], rax
	movsx	rdx, esi
	mov	rcx, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	edx, DWORD PTR MAX[rip]
	movsx	rax, edx
	sub	rax, 1
	mov	QWORD PTR -272[rbp], rax
	movsx	rax, edx
	mov	QWORD PTR -368[rbp], rax
	mov	QWORD PTR -360[rbp], 0
	movsx	rax, edx
	mov	QWORD PTR -384[rbp], rax
	mov	QWORD PTR -376[rbp], 0
	movsx	rdx, edx
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L158:
	cmp	rsp, rcx
	je	.L159
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L158
.L159:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L160
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L160:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -264[rbp], rax
	mov	edx, DWORD PTR forrand[rip]
	mov	eax, DWORD PTR -324[rbp]
	mov	esi, edx
	mov	edi, eax
	call	checkanswer
	mov	rdx, rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -264[rbp]
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -280[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L161
	mov	eax, DWORD PTR -324[rbp]
	lea	rsi, .LC45[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L162
.L161:
	mov	eax, DWORD PTR -324[rbp]
	lea	rsi, .LC46[rip]
	mov	edi, eax
	call	writemessage
.L162:
	add	DWORD PTR -308[rbp], 1
	mov	rsp, rbx
.L154:
	movzx	ecx, BYTE PTR .LC47[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L163
	lea	rax, -312[rbp]
	mov	rcx, QWORD PTR -296[rbp]
	mov	rdx, rax
	lea	rsi, .LC48[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	edx, DWORD PTR -312[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	esi, edx
	mov	edi, eax
	call	deleteques
	add	DWORD PTR -308[rbp], 1
.L163:
	movzx	ecx, BYTE PTR .LC49[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L164
	lea	rax, -312[rbp]
	mov	rcx, QWORD PTR -296[rbp]
	mov	rdx, rax
	lea	rsi, .LC48[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	ecx, DWORD PTR -312[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	getQuestion
	add	DWORD PTR -308[rbp], 1
.L164:
	movzx	ecx, BYTE PTR .LC50[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L165
	mov	rax, rsp
	mov	rbx, rax
	mov	edx, DWORD PTR MAX[rip]
	movsx	rax, edx
	sub	rax, 1
	mov	QWORD PTR -256[rbp], rax
	movsx	rax, edx
	mov	QWORD PTR -400[rbp], rax
	mov	QWORD PTR -392[rbp], 0
	movsx	rax, edx
	mov	QWORD PTR -416[rbp], rax
	mov	QWORD PTR -408[rbp], 0
	movsx	rdx, edx
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L166:
	cmp	rsp, rcx
	je	.L167
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L166
.L167:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L168
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L168:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -248[rbp], rax
	mov	edx, DWORD PTR MAX[rip]
	movsx	rax, edx
	sub	rax, 1
	mov	QWORD PTR -240[rbp], rax
	movsx	rax, edx
	mov	QWORD PTR -432[rbp], rax
	mov	QWORD PTR -424[rbp], 0
	movsx	rax, edx
	mov	QWORD PTR -448[rbp], rax
	mov	QWORD PTR -440[rbp], 0
	movsx	rdx, edx
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L169:
	cmp	rsp, rcx
	je	.L170
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L169
.L170:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L171
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L171:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -248[rbp]
	lea	rax, -312[rbp]
	mov	rdi, QWORD PTR -296[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC51[rip]
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	mov	rax, QWORD PTR -232[rbp]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edx, DWORD PTR -312[rbp]
	mov	eax, DWORD PTR -324[rbp]
	mov	esi, edx
	mov	edi, eax
	call	checkanswer
	mov	rdx, rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -232[rbp]
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L172
	mov	eax, DWORD PTR -324[rbp]
	lea	rsi, .LC45[rip]
	mov	edi, eax
	call	writemessage
	jmp	.L173
.L172:
	mov	eax, DWORD PTR -324[rbp]
	lea	rsi, .LC46[rip]
	mov	edi, eax
	call	writemessage
.L173:
	add	DWORD PTR -308[rbp], 1
	mov	rsp, rbx
.L165:
	movzx	ecx, BYTE PTR .LC52[rip]
	mov	rax, QWORD PTR -296[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, cl
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L174
	mov	eax, DWORD PTR -324[rbp]
	mov	edi, eax
	call	close@PLT
	mov	edi, 0
	call	exit@PLT
.L174:
	cmp	DWORD PTR -308[rbp], 0
	jne	.L175
	mov	eax, DWORD PTR -324[rbp]
	lea	rsi, .LC53[rip]
	mov	edi, eax
	call	writemessage
.L175:
	mov	eax, DWORD PTR MAX[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	rcx, rax
	mov	rax, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	jmp	.L176
.L178:
	call	__stack_chk_fail@PLT
.L177:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	func, .-func
	.section	.rodata
.LC54:
	.string	"socket creation failed..."
.LC55:
	.string	"Socket successfully created.."
.LC56:
	.string	"socket bind failed..."
.LC57:
	.string	"Socket successfully binded.."
.LC58:
	.string	"Host name: "
.LC59:
	.string	"Host port: %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1296
	mov	DWORD PTR -1284[rbp], edi
	mov	QWORD PTR -1296[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, 0
	mov	esi, 1
	mov	edi, 2
	call	socket@PLT
	mov	DWORD PTR -1272[rbp], eax
	cmp	DWORD PTR -1272[rbp], -1
	jne	.L180
	lea	rdi, .LC54[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L180:
	lea	rdi, .LC55[rip]
	call	puts@PLT
	lea	rax, -1264[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	WORD PTR -1264[rbp], 2
	mov	edi, 0
	call	htonl@PLT
	mov	DWORD PTR -1260[rbp], eax
	mov	eax, DWORD PTR PORT[rip]
	movzx	eax, ax
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -1262[rbp], ax
	lea	rcx, -1264[rbp]
	mov	eax, DWORD PTR -1272[rbp]
	mov	edx, 16
	mov	rsi, rcx
	mov	edi, eax
	call	bind@PLT
	test	eax, eax
	je	.L181
	lea	rdi, .LC56[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L181:
	lea	rdi, .LC57[rip]
	call	puts@PLT
	lea	rax, -1040[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	gethostname@PLT
	lea	rdi, .LC58[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	puts@PLT
	mov	eax, DWORD PTR PORT[rip]
	mov	esi, eax
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -1272[rbp]
	mov	esi, 5
	mov	edi, eax
	call	listen@PLT
	test	eax, eax
	je	.L182
	lea	rdi, .LC37[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L182:
	lea	rdi, .LC38[rip]
	call	puts@PLT
	mov	DWORD PTR -1276[rbp], 16
	lea	rdx, -1276[rbp]
	lea	rcx, -1248[rbp]
	mov	eax, DWORD PTR -1272[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	accept@PLT
	mov	DWORD PTR -1268[rbp], eax
	cmp	DWORD PTR -1268[rbp], 0
	jns	.L183
	lea	rdi, .LC39[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L183:
	lea	rdi, .LC40[rip]
	call	puts@PLT
	movabs	rax, 7286935743315143760
	movabs	rdx, 7142815800995705966
	mov	QWORD PTR -1232[rbp], rax
	mov	QWORD PTR -1224[rbp], rdx
	movabs	rax, 2322278983106653551
	movabs	rdx, 7236828773846303498
	mov	QWORD PTR -1216[rbp], rax
	mov	QWORD PTR -1208[rbp], rdx
	movabs	rax, 7238811150377885811
	movabs	rdx, 7955925594916528229
	mov	QWORD PTR -1200[rbp], rax
	mov	QWORD PTR -1192[rbp], rdx
	movabs	rax, 7310873954312414579
	movabs	rdx, 7430988237988525171
	mov	QWORD PTR -1184[rbp], rax
	mov	QWORD PTR -1176[rbp], rdx
	movabs	rax, 8151643304411278624
	movabs	rdx, 3201618883822970229
	mov	QWORD PTR -1168[rbp], rax
	mov	QWORD PTR -1160[rbp], rdx
	movabs	rax, 7810759218102821920
	movabs	rdx, 8315181415744762981
	mov	QWORD PTR -1152[rbp], rax
	mov	QWORD PTR -1144[rbp], rdx
	movabs	rax, 2337966531762153844
	movabs	rdx, 7885631897793077293
	mov	QWORD PTR -1136[rbp], rax
	mov	QWORD PTR -1128[rbp], rdx
	movabs	rax, 8028075849736876320
	movabs	rdx, 7142758626134862958
	mov	QWORD PTR -1120[rbp], rax
	mov	QWORD PTR -1112[rbp], rdx
	movabs	rax, 8317692353668408680
	movabs	rdx, 3251716716890318199
	mov	QWORD PTR -1104[rbp], rax
	mov	QWORD PTR -1096[rbp], rdx
	movabs	rax, 7310222270199851808
	movabs	rdx, 2337685056851900018
	mov	QWORD PTR -1088[rbp], rax
	mov	QWORD PTR -1080[rbp], rdx
	movabs	rax, 7142837005300342829
	movabs	rdx, 7503045857779214700
	mov	QWORD PTR -1072[rbp], rax
	mov	QWORD PTR -1064[rbp], rdx
	movabs	rax, 3346293705930714400
	mov	QWORD PTR -1056[rbp], rax
	mov	DWORD PTR -1048[rbp], 657952
	lea	rcx, -1232[rbp]
	mov	eax, DWORD PTR -1268[rbp]
	mov	edx, 188
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
.L184:
	mov	eax, DWORD PTR -1268[rbp]
	mov	edi, eax
	call	func
	mov	eax, DWORD PTR -1272[rbp]
	mov	edi, eax
	call	findnewclient
	jmp	.L184
	.cfi_endproc
.LFE19:
	.size	main, .-main
	.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	"69274.c"
	.text
	.global	numquestions
	.bss
	.align	2
	.type	numquestions, %object
	.size	numquestions, 4
numquestions:
	.space	4
	.global	MAX
	.data
	.align	2
	.type	MAX, %object
	.size	MAX, 4
MAX:
	.word	80
	.global	PORT
	.align	2
	.type	PORT, %object
	.size	PORT, 4
PORT:
	.word	8080
	.global	forrand
	.bss
	.align	2
	.type	forrand, %object
	.size	forrand, 4
forrand:
	.space	4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"r\000"
	.align	2
.LC1:
	.ascii	"questions.txt\000"
	.align	2
.LC2:
	.ascii	"<st>\000"
	.align	2
.LC3:
	.ascii	"<st> %d\000"
	.align	2
.LC4:
	.ascii	"%d\000"
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getnumquestions
	.syntax unified
	.arm
	.fpu softvfp
	.type	getnumquestions, %function
getnumquestions:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	ldr	r3, .L12
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r1, .L12+4
	ldr	r0, .L12+8
	bl	fopen
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L2
	ldr	r3, .L12+12
	mov	r2, #0
	str	r2, [r3]
	b	.L1
.L2:
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L4
.L9:
	mov	r3, sp
	mov	r4, r3
	ldr	ip, [fp, #-32]
	sub	r3, ip, #1
	str	r3, [fp, #-28]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L5
.L7:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bhi	.L6
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L6
	mov	r3, #0
	strb	r3, [fp, #-19]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	strcat
.L6:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L5:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L7
	mov	r2, #4
	ldr	r1, .L12+16
	ldr	r0, [fp, #-24]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L8
	sub	r3, fp, #48
	mov	r2, r3
	ldr	r1, .L12+20
	ldr	r0, [fp, #-24]
	bl	__isoc99_sscanf
	ldr	r2, [fp, #-48]
	ldr	r3, .L12+12
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L8
	mov	r3, #1
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-48]
	ldr	r2, .L12+12
	str	r3, [r2]
.L8:
	mov	sp, r4
.L4:
	sub	r1, fp, #52
	sub	r3, fp, #56
	ldr	r2, [fp, #-36]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	bne	.L9
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L10
	ldr	r3, .L12+12
	mov	r2, #0
	str	r2, [r3]
.L10:
	ldr	r3, .L12+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L12+24
	bl	printf
.L1:
	ldr	r3, .L12
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L11
	bl	__stack_chk_fail
.L11:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L13:
	.align	2
.L12:
	.word	.LC5
	.word	.LC0
	.word	.LC1
	.word	numquestions
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.size	getnumquestions, .-getnumquestions
	.align	2
	.global	writemessage
	.syntax unified
	.arm
	.fpu softvfp
	.type	writemessage, %function
writemessage:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	write
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	writemessage, .-writemessage
	.align	2
	.global	stripString
	.syntax unified
	.arm
	.fpu softvfp
	.type	stripString, %function
stripString:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	b	.L16
.L18:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L16:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L17
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isspace
	mov	r3, r0
	cmp	r3, #0
	bne	.L18
.L17:
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	memmove
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	b	.L19
.L21:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L19:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcs	.L20
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isspace
	mov	r3, r0
	cmp	r3, #0
	bne	.L21
.L20:
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stripString, .-stripString
	.align	2
	.global	StripPrintString
	.syntax unified
	.arm
	.fpu softvfp
	.type	StripPrintString, %function
StripPrintString:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	b	.L23
.L24:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L23:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isprint
	mov	r3, r0
	cmp	r3, #0
	beq	.L24
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	memmove
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	b	.L25
.L27:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L25:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcs	.L26
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isspace
	mov	r3, r0
	cmp	r3, #0
	bne	.L27
.L26:
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	StripPrintString, .-StripPrintString
	.section	.rodata
	.align	2
.LC6:
	.ascii	"From Client: \000"
	.align	2
.LC7:
	.ascii	"%s\000"
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	printfull
	.syntax unified
	.arm
	.fpu softvfp
	.type	printfull, %function
printfull:
	@ 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
	str	r0, [fp, #-32]
	ldr	r3, .L32
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r5, r3
	ldr	r3, .L32+4
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-24]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-20]
	mov	r2, r4
	ldr	r3, [fp, #-20]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r0, .L32+8
	bl	printf
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	read
	str	r0, [fp, #-28]
	b	.L29
.L30:
	ldr	r1, [fp, #-20]
	ldr	r0, .L32+12
	bl	printf
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	read
	str	r0, [fp, #-28]
.L29:
	ldr	r3, .L32+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bge	.L30
	ldr	r1, [fp, #-20]
	ldr	r0, .L32+12
	bl	printf
	mov	sp, r5
	nop
	ldr	r3, .L32
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L31
	bl	__stack_chk_fail
.L31:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L33:
	.align	2
.L32:
	.word	.LC8
	.word	MAX
	.word	.LC6
	.word	.LC7
	.size	printfull, .-printfull
	.section	.rodata
	.align	2
.LC9:
	.ascii	"Question not found:\000"
	.align	2
.LC10:
	.ascii	"Retrieving Question: \000"
	.align	2
.LC11:
	.ascii	"<end>\000"
	.align	2
.LC12:
	.ascii	".\000"
	.align	2
.LC13:
	.ascii	"<tag>\000"
	.align	2
.LC14:
	.ascii	"<Q>\000"
	.align	2
.LC15:
	.ascii	"<c>\000"
	.align	2
.LC16:
	.ascii	"<ca>\000"
	.align	2
.LC17:
	.ascii	"Buff\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getQuestion
	.syntax unified
	.arm
	.fpu softvfp
	.type	getQuestion, %function
getQuestion:
	@ args = 0, pretend = 0, frame = 1072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #1072
	sub	sp, sp, #4
	str	r0, [fp, #-1080]
	str	r1, [fp, #-1084]
	str	r2, [fp, #-1088]
	ldr	r3, .L66
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, sp
	mov	r6, r3
	ldr	r1, .L66+4
	ldr	r0, .L66+8
	bl	fopen
	str	r0, [fp, #-1052]
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	bne	.L35
	ldr	r1, .L66+12
	ldr	r0, [fp, #-1080]
	bl	writemessage
	mvn	r3, #1
	b	.L36
.L35:
	mov	r3, #0
	strb	r3, [fp, #-1024]
	sub	r3, fp, #1024
	mov	r2, #10
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-1072]
	mov	r3, #0
	str	r3, [fp, #-1068]
	mov	r3, #0
	str	r3, [fp, #-1056]
	ldr	r3, .L66+16
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-1048]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-1044]
	mov	r2, ip
	ldr	r3, [fp, #-1044]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-1088]
	cmp	r3, #0
	bne	.L38
	ldr	r1, .L66+20
	ldr	r0, [fp, #-1080]
	bl	writemessage
	b	.L38
.L55:
	ldr	r3, [fp, #-1072]
	mov	r0, r3
	bl	stripString
	ldr	r3, [fp, #-1072]
	mov	r2, #4
	ldr	r1, .L66+24
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L38
	ldr	r0, [fp, #-1072]
	sub	r3, fp, #1056
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, r3
	ldr	r1, .L66+28
	bl	__isoc99_sscanf
	ldr	r3, [fp, #-1064]
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bne	.L38
	ldr	r3, [fp, #-1064]
	ldr	r2, .L66+32
	str	r3, [r2]
	mov	r3, #1
	str	r3, [fp, #-1056]
	ldr	r3, [fp, #-1072]
	add	r0, r3, #4
	ldr	r1, [fp, #-1040]
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r2, #1
	bl	fwrite
	ldr	r3, [fp, #-1072]
	add	r1, r3, #4
	ldr	r2, [fp, #-1040]
	sub	r3, fp, #1024
	mov	r0, r3
	bl	strncat
	b	.L39
.L53:
	mov	r3, sp
	mov	r4, r3
	ldr	ip, [fp, #-1040]
	sub	r3, ip, #1
	str	r3, [fp, #-1036]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-1060]
	b	.L40
.L42:
	ldr	r2, [fp, #-1072]
	ldr	r3, [fp, #-1060]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bhi	.L41
	ldr	r2, [fp, #-1072]
	ldr	r3, [fp, #-1060]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L41
	mov	r3, #0
	strb	r3, [fp, #-1027]
	ldr	r2, [fp, #-1072]
	ldr	r3, [fp, #-1060]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-1028]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1032]
	bl	strcat
.L41:
	ldr	r3, [fp, #-1060]
	add	r3, r3, #1
	str	r3, [fp, #-1060]
.L40:
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1040]
	cmp	r2, r3
	blt	.L42
	mov	r2, #5
	ldr	r1, .L66+40
	ldr	r0, [fp, #-1032]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L62
	ldr	r3, [fp, #-1032]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L66+44
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	beq	.L63
	mov	r2, #5
	ldr	r1, .L66+48
	ldr	r0, [fp, #-1032]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L64
	mov	r2, #3
	ldr	r1, .L66+52
	ldr	r0, [fp, #-1032]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L48
	ldr	r3, [fp, #-1032]
	add	r5, r3, #3
	ldr	r3, [fp, #-1032]
	add	r3, r3, #3
	mov	r0, r3
	bl	strlen
	mov	r1, r0
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r2, #1
	mov	r0, r5
	bl	fwrite
	ldr	r3, [fp, #-1032]
	add	r2, r3, #3
	sub	r3, fp, #1024
	mov	r1, r2
	mov	r0, r3
	bl	strcat
	b	.L46
.L48:
	mov	r2, #3
	ldr	r1, .L66+56
	ldr	r0, [fp, #-1032]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L49
	ldr	r3, [fp, #-1032]
	add	r5, r3, #3
	ldr	r3, [fp, #-1032]
	add	r3, r3, #3
	mov	r0, r3
	bl	strlen
	mov	r1, r0
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r2, #1
	mov	r0, r5
	bl	fwrite
	ldr	r3, [fp, #-1032]
	add	r2, r3, #3
	sub	r3, fp, #1024
	mov	r1, r2
	mov	r0, r3
	bl	strcat
	b	.L46
.L49:
	mov	r2, #4
	ldr	r1, .L66+60
	ldr	r0, [fp, #-1032]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L50
	ldr	r3, [fp, #-1088]
	cmp	r3, #0
	bne	.L65
	ldr	r3, [fp, #-1032]
	add	r5, r3, #4
	ldr	r3, [fp, #-1032]
	add	r3, r3, #4
	mov	r0, r3
	bl	strlen
	mov	r1, r0
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r2, #1
	mov	r0, r5
	bl	fwrite
	ldr	r3, [fp, #-1032]
	add	r2, r3, #4
	sub	r3, fp, #1024
	mov	r1, r2
	mov	r0, r3
	bl	strcat
	b	.L65
.L50:
	ldr	r0, [fp, #-1032]
	bl	strlen
	mov	r2, r0
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r1, #1
	ldr	r0, [fp, #-1032]
	bl	fwrite
	sub	r3, fp, #1024
	ldr	r1, [fp, #-1032]
	mov	r0, r3
	bl	strcat
	mov	sp, r4
	b	.L39
.L62:
	nop
	mov	sp, r4
	b	.L54
.L63:
	nop
	b	.L46
.L64:
	nop
	b	.L46
.L65:
	nop
.L46:
	mov	sp, r4
.L39:
	sub	r1, fp, #1056
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1056
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r2, [fp, #-1052]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	cmn	r3, #1
	bne	.L53
	b	.L54
.L38:
	sub	r1, fp, #1056
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1056
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r2, [fp, #-1052]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	cmn	r3, #1
	bne	.L55
.L54:
	ldr	r3, [fp, #-1072]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-1056]
	cmp	r3, #0
	bne	.L56
	ldr	r3, [fp, #-1088]
	cmp	r3, #0
	bne	.L56
	ldr	r1, .L66+12
	ldr	r0, [fp, #-1080]
	bl	writemessage
	b	.L57
.L56:
	ldr	r3, [fp, #-1056]
	cmp	r3, #0
	bne	.L58
	ldr	r3, [fp, #-1088]
	cmp	r3, #1
	bne	.L58
	ldr	r0, [fp, #-1052]
	bl	fclose
	mvn	r3, #0
	b	.L36
.L58:
	ldr	r3, .L66+36
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, #4
	ldr	r0, .L66+64
	bl	fwrite
	sub	r3, fp, #1024
	mov	r0, r3
	bl	strlen
	mov	r1, r0
	ldr	r3, .L66+36
	ldr	r3, [r3]
	sub	r0, fp, #1024
	mov	r2, #1
	bl	fwrite
	sub	r3, fp, #1024
	mov	r1, r3
	ldr	r0, [fp, #-1080]
	bl	writemessage
.L57:
	mov	r3, #1
.L36:
	mov	sp, r6
	ldr	r2, .L66
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L60
	bl	__stack_chk_fail
.L60:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L67:
	.align	2
.L66:
	.word	.LC18
	.word	.LC0
	.word	.LC1
	.word	.LC9
	.word	MAX
	.word	.LC10
	.word	.LC2
	.word	.LC3
	.word	forrand
	.word	stdout
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.size	getQuestion, .-getQuestion
	.global	iterations
	.bss
	.align	2
	.type	iterations, %object
	.size	iterations, 4
iterations:
	.space	4
	.section	.rodata
	.align	2
.LC19:
	.ascii	"Retrieving Random Question: \000"
	.align	2
.LC20:
	.ascii	"There are no questions.\012\000"
	.global	__aeabi_idivmod
	.text
	.align	2
	.global	randques
	.syntax unified
	.arm
	.fpu softvfp
	.type	randques, %function
randques:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r1, .L77
	ldr	r0, [fp, #-24]
	bl	writemessage
	ldr	r3, .L77+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L69
	ldr	r1, .L77+8
	ldr	r0, [fp, #-24]
	bl	writemessage
	b	.L68
.L69:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L71
.L75:
	bl	rand
	mov	r2, r0
	ldr	r3, .L77+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	add	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r2, #1
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	getQuestion
	mov	r3, r0
	cmp	r3, #1
	bne	.L72
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L73
.L72:
	mov	r2, #1
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	getQuestion
	mov	r3, r0
	cmn	r3, #2
	beq	.L76
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L71:
	ldr	r3, [fp, #-12]
	cmp	r3, #9
	ble	.L75
	b	.L73
.L76:
	nop
.L73:
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	beq	.L68
	ldr	r3, .L77+4
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	getQuestion
.L68:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L78:
	.align	2
.L77:
	.word	.LC19
	.word	numquestions
	.word	.LC20
	.size	randques, .-randques
	.section	.rodata
	.align	2
.LC21:
	.ascii	"There are no questions.\000"
	.align	2
.LC22:
	.ascii	"w\000"
	.align	2
.LC23:
	.ascii	"temp.txt\000"
	.align	2
.LC24:
	.ascii	"Deleted\000"
	.align	2
.LC25:
	.ascii	"Question not found. It is possible that it has alre"
	.ascii	"ady been deleted.\000"
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	deleteques
	.syntax unified
	.arm
	.fpu softvfp
	.type	deleteques, %function
deleteques:
	@ 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, .L93
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r1, .L93+4
	ldr	r0, .L93+8
	bl	fopen
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L80
	ldr	r1, .L93+12
	ldr	r0, [fp, #-72]
	bl	writemessage
	b	.L79
.L80:
	mov	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r1, .L93+16
	ldr	r0, .L93+20
	bl	fopen
	str	r0, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L82
.L89:
	mov	r3, sp
	mov	r4, r3
	ldr	ip, [fp, #-32]
	sub	r3, ip, #1
	str	r3, [fp, #-28]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L83
.L85:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bhi	.L84
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L84
	mov	r3, #0
	strb	r3, [fp, #-19]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	strcat
.L84:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L83:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L85
	mov	r2, #4
	ldr	r1, .L93+24
	ldr	r0, [fp, #-24]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L86
	ldr	r3, [fp, #-64]
	sub	r2, fp, #56
	ldr	r1, .L93+28
	mov	r0, r3
	bl	__isoc99_sscanf
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	bne	.L86
	mov	r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L86:
	ldr	r3, [fp, #-52]
	cmp	r3, #1
	beq	.L87
	ldr	r0, [fp, #-24]
	bl	strlen
	mov	r1, r0
	ldr	r3, [fp, #-36]
	mov	r2, #1
	ldr	r0, [fp, #-24]
	bl	fwrite
	b	.L88
.L87:
	mov	r2, #5
	ldr	r1, .L93+32
	ldr	r0, [fp, #-24]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L88
	mov	r3, #0
	str	r3, [fp, #-52]
.L88:
	mov	sp, r4
.L82:
	sub	r1, fp, #60
	sub	r3, fp, #64
	ldr	r2, [fp, #-40]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	bne	.L89
	ldr	r0, [fp, #-40]
	bl	fclose
	ldr	r0, [fp, #-36]
	bl	fclose
	ldr	r0, .L93+8
	bl	remove
	ldr	r1, .L93+8
	ldr	r0, .L93+20
	bl	rename
	bl	getnumquestions
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	ble	.L90
	ldr	r1, .L93+36
	ldr	r0, [fp, #-72]
	bl	writemessage
	b	.L79
.L90:
	ldr	r1, .L93+40
	ldr	r0, [fp, #-72]
	bl	writemessage
.L79:
	ldr	r3, .L93
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L92
	bl	__stack_chk_fail
.L92:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L94:
	.align	2
.L93:
	.word	.LC26
	.word	.LC0
	.word	.LC1
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC2
	.word	.LC3
	.word	.LC11
	.word	.LC24
	.word	.LC25
	.size	deleteques, .-deleteques
	.section	.rodata
	.align	2
.LC27:
	.ascii	"<ca> %s\000"
	.align	2
.LC28:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	checkanswer
	.syntax unified
	.arm
	.fpu softvfp
	.type	checkanswer, %function
checkanswer:
	@ args = 0, pretend = 0, frame = 1064
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #1056
	sub	sp, sp, #8
	str	r0, [fp, #-1072]
	str	r1, [fp, #-1076]
	ldr	r3, .L110
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r4, r3
	ldr	r1, .L110+4
	ldr	r0, .L110+8
	bl	fopen
	str	r0, [fp, #-1044]
	ldr	r3, [fp, #-1044]
	cmp	r3, #0
	bne	.L96
	ldr	r1, .L110+12
	ldr	r0, [fp, #-1072]
	bl	writemessage
	mov	r3, #0
	b	.L97
.L96:
	mov	r3, #0
	strb	r3, [fp, #-1016]
	sub	r3, fp, #1016
	mov	r2, #10
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-1064]
	mov	r3, #0
	str	r3, [fp, #-1060]
	mov	r3, #0
	str	r3, [fp, #-1048]
	ldr	r3, .L110+16
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-1040]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-1036]
	ldr	r3, .L110+16
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1036]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L98
.L106:
	ldr	r3, [fp, #-1064]
	mov	r0, r3
	bl	stripString
	ldr	r3, [fp, #-1064]
	mov	r2, #4
	ldr	r1, .L110+20
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L98
	ldr	r0, [fp, #-1064]
	sub	r3, fp, #1040
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, r3
	ldr	r1, .L110+24
	bl	__isoc99_sscanf
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1076]
	cmp	r2, r3
	bne	.L98
	mov	r3, #1
	str	r3, [fp, #-1048]
	ldr	r3, [fp, #-1064]
	add	r0, r3, #4
	ldr	r1, [fp, #-1032]
	ldr	r3, .L110+28
	ldr	r3, [r3]
	mov	r2, #1
	bl	fwrite
	ldr	r3, [fp, #-1064]
	add	r1, r3, #4
	ldr	r2, [fp, #-1032]
	sub	r3, fp, #1016
	mov	r0, r3
	bl	strncat
	b	.L99
.L104:
	mov	r3, sp
	mov	r5, r3
	ldr	ip, [fp, #-1032]
	sub	r3, ip, #1
	str	r3, [fp, #-1028]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-1052]
	b	.L100
.L102:
	ldr	r2, [fp, #-1064]
	ldr	r3, [fp, #-1052]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bhi	.L101
	ldr	r2, [fp, #-1064]
	ldr	r3, [fp, #-1052]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L101
	mov	r3, #0
	strb	r3, [fp, #-1019]
	ldr	r2, [fp, #-1064]
	ldr	r3, [fp, #-1052]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-1020]
	sub	r3, fp, #1020
	mov	r1, r3
	ldr	r0, [fp, #-1024]
	bl	strcat
.L101:
	ldr	r3, [fp, #-1052]
	add	r3, r3, #1
	str	r3, [fp, #-1052]
.L100:
	ldr	r2, [fp, #-1052]
	ldr	r3, [fp, #-1032]
	cmp	r2, r3
	blt	.L102
	mov	r2, #4
	ldr	r1, .L110+32
	ldr	r0, [fp, #-1024]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L103
	ldr	r2, [fp, #-1036]
	ldr	r1, .L110+36
	ldr	r0, [fp, #-1024]
	bl	__isoc99_sscanf
	ldr	r1, [fp, #-1036]
	ldr	r0, .L110+40
	bl	printf
	mov	r3, #0
	mov	sp, r5
	b	.L97
.L103:
	mov	sp, r5
.L99:
	sub	r1, fp, #1040
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1040
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [fp, #-1044]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	cmn	r3, #1
	bne	.L104
	b	.L105
.L98:
	sub	r1, fp, #1040
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1040
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [fp, #-1044]
	mov	r0, r3
	bl	getline
	str	r0, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	cmn	r3, #1
	bne	.L106
.L105:
	ldr	r3, [fp, #-1064]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	bne	.L107
	ldr	r1, .L110+44
	ldr	r0, [fp, #-1072]
	bl	writemessage
	mov	r3, #0
	b	.L97
.L107:
	mov	sp, r4
	b	.L95
.L97:
	mov	sp, r4
.L95:
	ldr	r2, .L110
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L109
	bl	__stack_chk_fail
.L109:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L111:
	.align	2
.L110:
	.word	.LC28
	.word	.LC0
	.word	.LC1
	.word	.LC21
	.word	MAX
	.word	.LC2
	.word	.LC3
	.word	stdout
	.word	.LC16
	.word	.LC27
	.word	.LC7
	.word	.LC9
	.size	checkanswer, .-checkanswer
	.section	.rodata
	.align	2
.LC29:
	.ascii	"\012\000"
	.align	2
.LC30:
	.ascii	"a\000"
	.align	2
.LC31:
	.ascii	"Question tag: \000"
	.align	2
.LC32:
	.ascii	"Please enter the question tag: \000"
	.align	2
.LC33:
	.ascii	"Please Enter Question: \000"
	.align	2
.LC34:
	.ascii	"Question: \000"
	.align	2
.LC35:
	.ascii	"Please Enter Answer Choices: \000"
	.align	2
.LC36:
	.ascii	"Choices: \000"
	.align	2
.LC37:
	.ascii	"Please Enter Answer: \000"
	.align	2
.LC38:
	.ascii	"Answer: \000"
	.align	2
.LC39:
	.ascii	"<end>\012\000"
	.align	2
.LC40:
	.ascii	"Closed file\000"
	.align	2
.LC41:
	.ascii	"An error has occured.\000"
	.align	2
.LC42:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	createQuestion
	.syntax unified
	.arm
	.fpu softvfp
	.type	createQuestion, %function
createQuestion:
	@ args = 0, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #176
	str	r0, [fp, #-184]
	ldr	r3, .L129
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r5, r3
	bl	getnumquestions
	ldr	r3, .L129+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L129+4
	str	r3, [r2]
	ldr	r3, .L129+4
	ldr	r2, [r3]
	sub	r3, fp, #160
	ldr	r1, .L129+8
	mov	r0, r3
	bl	sprintf
	sub	r3, fp, #148
	ldr	r2, .L129+12
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strb	r1, [r3]
	sub	r2, fp, #160
	sub	r3, fp, #148
	mov	r1, r2
	mov	r0, r3
	bl	strcat
	sub	r3, fp, #148
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #148
	add	r3, r3, r2
	ldr	r2, .L129+16
	mov	r0, r3
	mov	r1, r2
	mov	r3, #2
	mov	r2, r3
	bl	memcpy
	ldr	r1, .L129+20
	ldr	r0, .L129+24
	bl	fopen
	str	r0, [fp, #-180]
	sub	r3, fp, #148
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r2, r3, #1
	sub	r0, fp, #148
	ldr	r3, [fp, #-180]
	mov	r1, #1
	bl	fwrite
	ldr	r3, [fp, #-180]
	mov	r2, #5
	mov	r1, #1
	ldr	r0, .L129+28
	bl	fwrite
	ldr	r0, .L129+32
	bl	printf
	ldr	r1, .L129+36
	ldr	r0, [fp, #-184]
	bl	writemessage
	ldr	r3, .L129+40
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-176]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-172]
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
.L115:
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-172]
	ldr	r0, [fp, #-184]
	bl	read
	str	r0, [fp, #-168]
	ldr	r1, [fp, #-172]
	ldr	r0, .L129+44
	bl	printf
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bge	.L113
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	nop
	ldr	r1, .L129+48
	ldr	r0, [fp, #-184]
	bl	writemessage
	ldr	r3, [fp, #-180]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L129+52
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r0, .L129+56
	bl	printf
	b	.L118
.L113:
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-172]
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L115
.L118:
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-172]
	ldr	r0, [fp, #-184]
	bl	read
	str	r0, [fp, #-168]
	ldr	r1, [fp, #-172]
	ldr	r0, .L129+44
	bl	printf
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bge	.L116
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	nop
	ldr	r1, .L129+60
	ldr	r0, [fp, #-184]
	bl	writemessage
	ldr	r3, [fp, #-180]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L129+64
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r0, .L129+68
	bl	printf
	b	.L121
.L116:
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-172]
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L118
.L121:
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-172]
	ldr	r0, [fp, #-184]
	bl	read
	str	r0, [fp, #-168]
	ldr	r1, [fp, #-172]
	ldr	r0, .L129+44
	bl	printf
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bge	.L119
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	nop
	ldr	r1, .L129+72
	ldr	r0, [fp, #-184]
	bl	writemessage
	ldr	r3, [fp, #-180]
	mov	r2, #4
	mov	r1, #1
	ldr	r0, .L129+76
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r0, .L129+80
	bl	printf
	b	.L124
.L119:
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-172]
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L121
.L124:
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-172]
	ldr	r0, [fp, #-184]
	bl	read
	str	r0, [fp, #-168]
	ldr	r1, [fp, #-172]
	ldr	r0, .L129+44
	bl	printf
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bge	.L122
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	nop
	ldr	r3, .L129+4
	ldr	r2, [r3]
	sub	r3, fp, #116
	ldr	r1, .L129+8
	mov	r0, r3
	bl	sprintf
	sub	r3, fp, #116
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #116
	add	r3, r3, r2
	ldr	r2, .L129+16
	mov	r0, r3
	mov	r1, r2
	mov	r3, #2
	mov	r2, r3
	bl	memcpy
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, [fp, #-184]
	bl	writemessage
	ldr	r3, [fp, #-180]
	mov	r2, #6
	mov	r1, #1
	ldr	r0, .L129+84
	bl	fwrite
	ldr	r0, [fp, #-180]
	bl	fclose
	str	r0, [fp, #-164]
	ldr	r3, [fp, #-164]
	cmp	r3, #0
	bne	.L125
	b	.L128
.L122:
	ldr	r3, .L129+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-172]
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r2, r4
	ldr	r3, [fp, #-180]
	mov	r1, #1
	ldr	r0, [fp, #-172]
	bl	fwrite
	mov	r2, r4
	ldr	r3, [fp, #-172]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L124
.L128:
	ldr	r0, .L129+88
	bl	printf
	b	.L126
.L125:
	ldr	r0, .L129+92
	bl	printf
.L126:
	mov	sp, r5
	nop
	ldr	r3, .L129
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L127
	bl	__stack_chk_fail
.L127:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L130:
	.align	2
.L129:
	.word	.LC42
	.word	numquestions
	.word	.LC4
	.word	.LC2
	.word	.LC29
	.word	.LC30
	.word	.LC1
	.word	.LC13
	.word	.LC31
	.word	.LC32
	.word	MAX
	.word	.LC7
	.word	.LC33
	.word	.LC14
	.word	.LC34
	.word	.LC35
	.word	.LC15
	.word	.LC36
	.word	.LC37
	.word	.LC16
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.size	createQuestion, .-createQuestion
	.section	.rodata
	.align	2
.LC43:
	.ascii	"client requested to insert a question\000"
	.text
	.align	2
	.global	insertques
	.syntax unified
	.arm
	.fpu softvfp
	.type	insertques, %function
insertques:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, .L132
	bl	puts
	ldr	r0, [fp, #-8]
	bl	createQuestion
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L133:
	.align	2
.L132:
	.word	.LC43
	.size	insertques, .-insertques
	.section	.rodata
	.align	2
.LC44:
	.ascii	"Listen failed...\000"
	.align	2
.LC45:
	.ascii	"Server listening..\000"
	.align	2
.LC46:
	.ascii	"server acccept failed...\000"
	.align	2
.LC47:
	.ascii	"server acccept the client...\000"
	.align	2
.LC48:
	.ascii	"Please enter a command: \012Commands include p - in"
	.ascii	"sert question, g - get question, d - delete questio"
	.ascii	"n, r - random question, c - check answer, k - kill "
	.ascii	"server, q - quit client, h - help. \012\012\000"
	.align	2
.LC49:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	findnewclient
	.syntax unified
	.arm
	.fpu softvfp
	.type	findnewclient, %function
findnewclient:
	@ args = 0, pretend = 0, frame = 224
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #224
	str	r0, [fp, #-224]
	ldr	r3, .L138
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #5
	ldr	r0, [fp, #-224]
	bl	listen
	mov	r3, r0
	cmp	r3, #0
	beq	.L135
	ldr	r0, .L138+4
	bl	puts
	mov	r0, #0
	bl	exit
.L135:
	ldr	r0, .L138+8
	bl	puts
	mov	r3, #16
	str	r3, [fp, #-220]
	sub	r2, fp, #220
	sub	r3, fp, #212
	mov	r1, r3
	ldr	r0, [fp, #-224]
	bl	accept
	str	r0, [fp, #-216]
	ldr	r3, [fp, #-216]
	cmp	r3, #0
	bge	.L136
	ldr	r0, .L138+12
	bl	puts
	mov	r0, #0
	bl	exit
.L136:
	ldr	r0, .L138+16
	bl	puts
	ldr	r2, .L138+20
	sub	r3, fp, #196
	mov	r1, r2
	mov	r2, #188
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #196
	mov	r2, #188
	mov	r1, r3
	ldr	r0, [fp, #-216]
	bl	write
	nop
	ldr	r3, .L138
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L137
	bl	__stack_chk_fail
.L137:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L139:
	.align	2
.L138:
	.word	.LC49
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.size	findnewclient, .-findnewclient
	.section	.rodata
	.align	2
.LC50:
	.ascii	"\000\000"
	.align	2
.LC51:
	.ascii	"Server attempting to find new clients\000"
	.align	2
.LC52:
	.ascii	"From client: %s\011\000"
	.align	2
.LC53:
	.ascii	"q\000"
	.align	2
.LC54:
	.ascii	"p\000"
	.align	2
.LC55:
	.ascii	"h\000"
	.align	2
.LC57:
	.ascii	"You are Correct!\000"
	.align	2
.LC58:
	.ascii	"Sorry, that was incorrect.\000"
	.align	2
.LC59:
	.ascii	"d\000"
	.align	2
.LC60:
	.ascii	"%*c%d\000"
	.align	2
.LC61:
	.ascii	"g\000"
	.align	2
.LC62:
	.ascii	"c\000"
	.align	2
.LC63:
	.ascii	"%*c%d%s\000"
	.align	2
.LC64:
	.ascii	"k\000"
	.align	2
.LC65:
	.ascii	"Command Not found. Please type h to look at the fol"
	.ascii	"lowing commands.\000"
	.align	2
.LC56:
	.ascii	"Commands include p - insert question, g - get quest"
	.ascii	"ion, d - delete question, r - random question, c - "
	.ascii	"check answer, k - kill server, q - quit client, h -"
	.ascii	" help. \012\012\000"
	.align	2
.LC66:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	func
	.syntax unified
	.arm
	.fpu softvfp
	.type	func, %function
func:
	@ args = 0, pretend = 0, frame = 224
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #228
	str	r0, [fp, #-240]
	ldr	r3, .L159
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, sp
	mov	r5, r3
	ldr	r3, .L159+4
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-232]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, r4
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-224]
	bl	getnumquestions
.L156:
	ldr	r3, .L159+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-224]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, r4
	mov	r2, r3
	ldr	r1, [fp, #-224]
	ldr	r0, [fp, #-240]
	bl	read
	ldr	r3, [fp, #-224]
	ldr	r2, .L159+8
	cmp	r3, r2
	bne	.L141
	ldr	r0, .L159+12
	bl	printf
.L141:
	mov	r3, #0
	str	r3, [fp, #-228]
	ldr	r1, [fp, #-224]
	ldr	r0, .L159+16
	bl	printf
	ldr	r3, .L159+20
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L142
	ldr	r0, [fp, #-240]
	bl	close
	nop
	mov	sp, r5
	nop
	ldr	r3, .L159
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L157
	b	.L158
.L142:
	ldr	r3, .L159+24
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L144
	ldr	r0, [fp, #-240]
	bl	insertques
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L144:
	ldr	r3, .L159+28
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L145
	ldr	r2, .L159+32
	sub	r3, fp, #188
	mov	r1, r2
	mov	r2, #163
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #188
	mov	r2, #163
	mov	r1, r3
	ldr	r0, [fp, #-240]
	bl	write
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L145:
	ldr	r3, .L159+36
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L146
	mov	r3, sp
	mov	r6, r3
	ldr	r0, [fp, #-240]
	bl	randques
	ldr	r3, .L159+4
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-220]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-216]
	mov	r3, ip
	mov	r2, r3
	ldr	r1, [fp, #-216]
	ldr	r0, [fp, #-240]
	bl	read
	ldr	r3, .L159+4
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-212]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-208]
	ldr	r3, .L159+40
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-240]
	bl	checkanswer
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-208]
	bl	strcpy
	ldr	r3, [fp, #-208]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L147
	ldr	r1, .L159+44
	ldr	r0, [fp, #-240]
	bl	writemessage
	b	.L148
.L147:
	ldr	r1, .L159+48
	ldr	r0, [fp, #-240]
	bl	writemessage
.L148:
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
	mov	sp, r6
.L146:
	ldr	r3, .L159+52
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L149
	sub	r3, fp, #236
	mov	r2, r3
	ldr	r1, .L159+56
	ldr	r0, [fp, #-224]
	bl	__isoc99_sscanf
	ldr	r3, [fp, #-236]
	mov	r1, r3
	ldr	r0, [fp, #-240]
	bl	deleteques
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L149:
	ldr	r3, .L159+60
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L150
	sub	r3, fp, #236
	mov	r2, r3
	ldr	r1, .L159+56
	ldr	r0, [fp, #-224]
	bl	__isoc99_sscanf
	ldr	r3, [fp, #-236]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-240]
	bl	getQuestion
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L150:
	ldr	r3, .L159+64
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L151
	mov	r3, sp
	mov	r6, r3
	ldr	r3, .L159+4
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-204]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-200]
	ldr	r3, .L159+4
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-196]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-192]
	sub	r2, fp, #236
	ldr	r3, [fp, #-200]
	ldr	r1, .L159+68
	ldr	r0, [fp, #-224]
	bl	__isoc99_sscanf
	ldr	r1, [fp, #-192]
	ldr	r0, .L159+72
	bl	printf
	ldr	r3, [fp, #-236]
	mov	r1, r3
	ldr	r0, [fp, #-240]
	bl	checkanswer
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-192]
	bl	strcpy
	ldr	r3, [fp, #-192]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-200]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L152
	ldr	r1, .L159+44
	ldr	r0, [fp, #-240]
	bl	writemessage
	b	.L153
.L152:
	ldr	r1, .L159+48
	ldr	r0, [fp, #-240]
	bl	writemessage
.L153:
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
	mov	sp, r6
.L151:
	ldr	r3, .L159+76
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L154
	ldr	r0, [fp, #-240]
	bl	close
	mov	r0, #0
	bl	exit
.L154:
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	bne	.L155
	ldr	r1, .L159+80
	ldr	r0, [fp, #-240]
	bl	writemessage
.L155:
	ldr	r3, .L159+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-224]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L156
.L158:
	bl	__stack_chk_fail
.L157:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L160:
	.align	2
.L159:
	.word	.LC66
	.word	MAX
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC0
	.word	forrand
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.word	.LC63
	.word	.LC7
	.word	.LC64
	.word	.LC65
	.size	func, .-func
	.section	.rodata
	.align	2
.LC67:
	.ascii	"socket creation failed...\000"
	.align	2
.LC68:
	.ascii	"Socket successfully created..\000"
	.align	2
.LC69:
	.ascii	"socket bind failed...\000"
	.align	2
.LC70:
	.ascii	"Socket successfully binded..\000"
	.align	2
.LC71:
	.ascii	"Host name: \000"
	.align	2
.LC72:
	.ascii	"Host port: %d\012\000"
	.align	2
.LC73:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 1272
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1264
	sub	sp, sp, #8
	str	r0, [fp, #-1272]
	str	r1, [fp, #-1276]
	ldr	r3, .L168
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #0
	mov	r1, #1
	mov	r0, #2
	bl	socket
	str	r0, [fp, #-1260]
	ldr	r3, [fp, #-1260]
	cmn	r3, #1
	bne	.L162
	ldr	r0, .L168+4
	bl	puts
	mov	r0, #0
	bl	exit
.L162:
	ldr	r0, .L168+8
	bl	puts
	sub	r3, fp, #1248
	sub	r3, r3, #4
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	sub	r3, fp, #4
	sub	r3, r3, #1248
	mov	r2, #2
	strh	r2, [r3]	@ movhi
	mov	r0, #0
	bl	htonl
	mov	r3, r0
	str	r3, [fp, #-1248]
	ldr	r3, .L168+12
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	htons
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #4
	sub	r3, r3, #1248
	strh	r2, [r3, #2]	@ movhi
	sub	r3, fp, #1248
	sub	r3, r3, #4
	mov	r2, #16
	mov	r1, r3
	ldr	r0, [fp, #-1260]
	bl	bind
	mov	r3, r0
	cmp	r3, #0
	beq	.L163
	ldr	r0, .L168+16
	bl	puts
	mov	r0, #0
	bl	exit
.L163:
	ldr	r0, .L168+20
	bl	puts
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #1024
	mov	r0, r3
	bl	gethostname
	ldr	r0, .L168+24
	bl	printf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	puts
	ldr	r3, .L168+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L168+28
	bl	printf
	mov	r1, #5
	ldr	r0, [fp, #-1260]
	bl	listen
	mov	r3, r0
	cmp	r3, #0
	beq	.L164
	ldr	r0, .L168+32
	bl	puts
	mov	r0, #0
	bl	exit
.L164:
	ldr	r0, .L168+36
	bl	puts
	mov	r3, #16
	str	r3, [fp, #-1264]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	sub	r1, fp, #1232
	sub	r1, r1, #4
	mov	r2, r3
	ldr	r0, [fp, #-1260]
	bl	accept
	str	r0, [fp, #-1256]
	ldr	r3, [fp, #-1256]
	cmp	r3, #0
	bge	.L165
	ldr	r0, .L168+40
	bl	puts
	mov	r0, #0
	bl	exit
.L165:
	ldr	r0, .L168+44
	bl	puts
	ldr	r2, .L168+48
	sub	r3, fp, #1216
	sub	r3, r3, #4
	mov	r1, r2
	mov	r2, #188
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #1216
	sub	r3, r3, #4
	mov	r2, #188
	mov	r1, r3
	ldr	r0, [fp, #-1256]
	bl	write
.L166:
	ldr	r0, [fp, #-1256]
	bl	func
	ldr	r0, [fp, #-1260]
	bl	findnewclient
	b	.L166
.L169:
	.align	2
.L168:
	.word	.LC73
	.word	.LC67
	.word	.LC68
	.word	PORT
	.word	.LC69
	.word	.LC70
	.word	.LC71
	.word	.LC72
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
