	.file	"151705780.c"
	.intel_syntax noprefix
	.text
	.globl	str1
	.data
	.align 8
	.type	str1, @object
	.size	str1, 14
str1:
	.string	"Auth_file.bin"
	.globl	fp
	.bss
	.align 8
	.type	fp, @object
	.size	fp, 8
fp:
	.zero	8
	.section	.rodata
	.align 32
	.type	crc64_tab, @object
	.size	crc64_tab, 2048
crc64_tab:
	.quad	0
	.quad	8851949072701294969
	.quad	-742845928306961678
	.quad	-8113074920216421493
	.quad	-4595671135093148017
	.quad	-4980816554654154762
	.quad	3857338458010461309
	.quad	5715195658523061508
	.quad	-6113376234570973579
	.quad	-3318980867503589620
	.quad	6816212484437830791
	.quad	2612226237385041406
	.quad	7714676916020922618
	.quad	1281407202545942915
	.quad	-7016352756663428600
	.quad	-1983667824504351887
	.quad	9009731685717012353
	.quad	563108230357313272
	.quad	-8595086165142045325
	.quad	-981663343647329270
	.quad	-4814319104833890034
	.quad	-4041863567026532233
	.quad	5224452474770082812
	.quad	3627802401766982277
	.quad	-3017390241667706380
	.quad	-5982922944867788659
	.quad	2562814405091885830
	.quad	6433535930597116543
	.quad	1592294032496338811
	.quad	7836410910743637506
	.quad	-2042356677977557623
	.quad	-7390293033759687440
	.quad	-427280702275526910
	.quad	-9166638614987581829
	.quad	1126216460714626544
	.quad	8464919223366468745
	.quad	4190910634541279629
	.quad	4679640014836523252
	.quad	-3487480918944875649
	.quad	-5385871547969572346
	.quad	5852729821509460343
	.quad	3161916214005835790
	.quad	-6590469041452534907
	.quad	-2427014021741364484
	.quad	-7997839124169385992
	.quad	-1451980451876168063
	.quad	7255604803533964554
	.quad	2191395843288271987
	.quad	-8711930575662698365
	.quad	-161723297007453702
	.quad	8262382231073956465
	.quad	608425843627928328
	.quad	5125628810183771660
	.quad	4465764294926438261
	.quad	-5579672212515318530
	.quad	-4014548506208526969
	.quad	3184588064992677622
	.quad	6262709589572306831
	.quad	-2773922252222276604
	.quad	-6676167943253338755
	.quad	-1438609211103119239
	.quad	-7579144467225874176
	.quad	1853769023980628619
	.quad	7161174014982448114
	.quad	-2343320148755206801
	.quad	-6511454690488900586
	.quad	3083341959784644509
	.quad	5769757520242456292
	.quad	2252432921429253088
	.quad	7321251034957484697
	.quad	-1516905626976614126
	.quad	-8058436620964003733
	.quad	8381821269082559258
	.quad	1047727658635319907
	.quad	-9087464044036505112
	.quad	-343778454096557935
	.quad	-5446308276092574315
	.quad	-3552597168020853524
	.quad	4745161141923116903
	.quad	4252033715651608094
	.quad	-6741284430690630930
	.quad	-2834359218710656105
	.quad	6323832428011671580
	.quad	3250108949404244325
	.quad	7082685524280996961
	.quad	1770671381070249240
	.quad	-7495641911945140589
	.quad	-1359434333054603286
	.quad	674072313427442843
	.quad	8323419547594995170
	.quad	-222320551145787799
	.quad	-8776855508102797552
	.quad	-3935534466641622508
	.quad	-5495978650921565331
	.quad	4382791686576543974
	.quad	5047054248884015519
	.quad	2696289253709771373
	.quad	6895947823530343188
	.quad	-3396904503390642017
	.quad	-6195909022666954266
	.quad	-1921979611561638686
	.quad	-6950266497748513381
	.quad	1216851687255856656
	.quad	7654800921679748969
	.quad	-8195486453342008296
	.quad	-820859414382410399
	.quad	8931528589852876522
	.quad	84259039178430355
	.quad	5655163293556783767
	.quad	3792978414742418414
	.quad	-4914609589448824731
	.quad	-4534073323166293732
	.quad	6369176129985355244
	.quad	2502782282785952917
	.quad	-5921324894564937954
	.quad	-2951183038082316697
	.quad	-7468306826918024349
	.quad	-2124768518181707238
	.quad	7920669638525335953
	.quad	1671873238255513832
	.quad	-915577327403375719
	.quad	-8533398194874357024
	.quad	503231997654823275
	.quad	8945175932061546514
	.quad	3707538047961257238
	.quad	5308515798192249967
	.quad	-4124396043744655388
	.quad	-4892242429347410275
	.quad	-7661587058870466123
	.quad	-1192077443213672244
	.quad	6925536469308201799
	.quad	1928669229005230654
	.quad	6166683919569289018
	.quad	3408106242218915395
	.quad	-6907229033224639032
	.quad	-2667002881850940239
	.quad	4504865842858506176
	.quad	4925828954283753145
	.quad	-3804242003794582222
	.quad	-5625859302133486517
	.quad	-91027543915855537
	.quad	-8906736712287582154
	.quad	796147016248169405
	.quad	8202193697865996996
	.quad	-1683101535544433100
	.quad	-7891400724083364019
	.quad	2095455317270639814
	.quad	7479631577382337983
	.quad	2926364910754730171
	.quad	5928137516128508354
	.quad	-2509515504350199223
	.quad	-6344419337991189712
	.quad	4867406749023426625
	.quad	4131191115536978232
	.quad	-5315266574900639053
	.quad	-3682798812180528182
	.quad	-8956421789863317810
	.quad	-473980642647513161
	.quad	8504067431303216188
	.quad	926884511990314309
	.quad	8051711962477172407
	.quad	1541670979892322254
	.quad	-7346060597066464187
	.quad	-2245611732491203268
	.quad	-5799079217686208456
	.quad	-3072025708008887999
	.quad	6500217898808488650
	.quad	2372580570961558451
	.quad	-4281373025147557694
	.quad	-4733862501121891909
	.quad	3541342762140498480
	.quad	5475551080882205513
	.quad	337036156713721421
	.quad	9112211761281881908
	.quad	-1072554861787525953
	.quad	-8375017722257553978
	.quad	1348144626854885686
	.quad	7524919785159454799
	.quad	-1799904978519561276
	.quad	-7071492277665275203
	.quad	-3274830414739877959
	.quad	-6317134249602496832
	.quad	2827581646778391883
	.quad	6766067242130363442
	.quad	-5071758167665440957
	.quad	-4376075960543867334
	.quad	5489218623395763633
	.quad	3960334819262667976
	.quad	8765583373153087948
	.quad	251615998827411637
	.quad	-8352635575941520578
	.quad	-662861498787124665
	.quad	5392578507419542746
	.quad	3462768234654100899
	.quad	-4654848426648865240
	.quad	-4197679429721555119
	.quad	-8435614942565739947
	.quad	-1137479759323604180
	.quad	9177858264896848039
	.quad	398073508124084702
	.quad	-2162109211042833745
	.quad	-7266885753923922986
	.quad	1463182455377365085
	.quad	7968614284679676196
	.quad	2433703374511713312
	.quad	6565738749404456281
	.quad	-3137142230350053678
	.quad	-5859516218004850773
	.quad	4025855981238586203
	.quad	5550341738321543714
	.quad	-4436512653762848343
	.quad	-5136874382911270704
	.quad	-583686894003798572
	.quad	-8269133292856429395
	.quad	168518078356860710
	.quad	8687094605961012831
	.quad	-7136417486595984082
	.quad	-1860502510218052521
	.quad	7585956829484836828
	.quad	1413790823389195941
	.quad	6687492953022055329
	.quad	2744609311697881816
	.quad	-6233440411522313901
	.quad	-3195816097608607702
	.quad	-5708391813738841128
	.quad	-3882165362121461087
	.quad	5005564565571905834
	.quad	4588929132448424019
	.quad	8142317431333358935
	.quad	731591227688682542
	.quad	-8840650729859080283
	.quad	-29339608537491748
	.quad	2012927990619293101
	.quad	7005115709973351636
	.quad	-1270091202558503073
	.quad	-7743998864187498970
	.quad	-2605404796658879710
	.quad	-6841021795823650213
	.quad	3343746476511027664
	.quad	6106651831093618857
	.quad	-3616591881864522663
	.quad	-5253668796789236448
	.quad	4071158715666679467
	.quad	4803046671925235666
	.quad	1006463995309646550
	.quad	8588326435575524271
	.quad	-556392209586458588
	.quad	-9034435310825997987
	.quad	7415076095922514476
	.quad	2035579357833339733
	.quad	-7829712477325051682
	.quad	-1617015241740308057
	.quad	-6422342938991125341
	.quad	-2592048258632673830
	.quad	6012200567359213137
	.quad	3006100283679606568
	.text
	.globl	crc64
	.type	crc64, @function
crc64:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	jmp	.L2
.L3:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	xor	rax, QWORD PTR -16[rbp]
	movzx	eax, al
	lea	rdx, 0[0+rax*8]
	lea	rax, crc64_tab[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 8
	xor	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -8[rbp], 1
.L2:
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jb	.L3
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	crc64, .-crc64
	.section	.rodata
.LC0:
	.string	"r"
.LC1:
	.string	"./../server_data/UserData.txt"
.LC2:
	.string	"User FILE OPEN ERROR\n"
.LC3:
	.string	"\346\216\242\347\264\242\343\203\207\343\203\274\343\202\277:%s\n"
.LC4:
	.string	"\346\216\242\347\264\242\344\270\255\343\201\256\343\203\207\343\203\274\343\202\277:%s\n"
.LC5:
	.string	","
.LC6:
	.string	"\n"
.LC7:
	.string	"\350\252\255\343\201\277\350\276\274\343\202\223\343\201\240\343\203\207\343\203\274\343\202\277:%s\n"
.LC8:
	.string	"---------"
.LC9:
	.string	"----------"
.LC10:
	.string	"\350\255\230\345\210\245\345\255\220\343\201\257%s\n"
	.align 8
.LC11:
	.string	"\350\255\230\345\210\245\345\255\220\343\201\257\350\246\213\343\201\244\343\201\213\343\202\212\343\201\276\343\201\233\343\202\223\343\201\247\343\201\227\343\201\237"
	.align 8
.LC12:
	.string	"\350\255\230\345\210\245\345\255\220\343\201\214\350\246\213\343\201\244\343\201\213\343\202\212\343\201\276\343\201\227\343\201\237"
.LC13:
	.string	"flag error\n"
	.text
	.globl	UserDataSearch
	.type	UserDataSearch, @function
UserDataSearch:
.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, 192
	mov	DWORD PTR -180[rbp], edi
	mov	QWORD PTR -192[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	QWORD PTR -144[rbp], 0
	mov	QWORD PTR -136[rbp], 0
	mov	DWORD PTR -128[rbp], 0
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	mov	QWORD PTR -96[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	BYTE PTR -80[rbp], 0
	mov	WORD PTR -162[rbp], 0
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L6
	lea	rdi, .LC2[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L6:
	mov	rax, QWORD PTR -192[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edi, eax
	call	inet_ntoa@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rax, -144[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L7
.L10:
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -64[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	call	strtok@PLT
	lea	rsi, .LC6[rip]
	mov	edi, 0
	call	strtok@PLT
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdx, -144[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L8
	lea	rax, -64[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	call	strtok@PLT
	mov	QWORD PTR -160[rbp], rax
	lea	rdi, .LC9[rip]
	call	puts@PLT
	mov	rax, QWORD PTR -160[rbp]
	mov	rsi, rax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	mov	WORD PTR -162[rbp], 1
	jmp	.L9
.L8:
	mov	BYTE PTR -64[rbp], 0
.L7:
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -64[rbp]
	mov	esi, 50
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L10
.L9:
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	lea	rcx, -162[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	edx, 2
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	movzx	eax, WORD PTR -162[rbp]
	test	ax, ax
	jne	.L11
	lea	rdi, .LC11[rip]
	call	puts@PLT
	lea	rdx, -144[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	InitRegistration
	jmp	.L15
.L11:
	movzx	eax, WORD PTR -162[rbp]
	cmp	ax, 1
	jne	.L13
	lea	rdi, .LC12[rip]
	call	puts@PLT
	mov	rdx, QWORD PTR -160[rbp]
	lea	rax, -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rdx, -112[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	Authentication
	test	eax, eax
	jne	.L15
	lea	rdx, -112[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	VernamCipher
	jmp	.L15
.L13:
	lea	rdi, .LC13[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L15:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	UserDataSearch, .-UserDataSearch
	.section	.rodata
.LC14:
	.string	"a"
.LC15:
	.string	"%s,%s\n"
.LC16:
	.string	"./../server_data/%s"
	.align 8
.LC17:
	.string	"\343\203\225\343\202\251\343\203\253\343\203\200\344\275\234\346\210\220\343\201\253\346\210\220\345\212\237\343\201\227\343\201\276\343\201\227\343\201\237\343\200\202"
	.align 8
.LC18:
	.string	"\343\203\225\343\202\251\343\203\253\343\203\200\344\275\234\346\210\220\343\201\253\345\244\261\346\225\227\343\201\227\343\201\276\343\201\227\343\201\237\343\200\202"
.LC19:
	.string	"A->%lu\n"
.LC20:
	.string	"./../server_data/%s/%s%s"
.LC21:
	.string	"\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215=%s\n"
.LC22:
	.string	"wb"
.LC23:
	.string	"Auth FILE OPEN ERROR\n"
.LC24:
	.string	"A\343\202\222\343\203\225\343\202\241\343\202\244\343\203\253\343\201\253\344\277\235\345\255\230\n"
	.text
	.globl	InitRegistration
	.type	InitRegistration, @function
InitRegistration:
.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, 224
	mov	DWORD PTR -212[rbp], edi
	mov	QWORD PTR -224[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -176[rbp], 0
	mov	QWORD PTR -168[rbp], 0
	mov	QWORD PTR -160[rbp], 0
	mov	QWORD PTR -152[rbp], 0
	mov	BYTE PTR -144[rbp], 0
	mov	QWORD PTR -128[rbp], 0
	mov	QWORD PTR -120[rbp], 0
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	mov	QWORD PTR -96[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	WORD PTR -80[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	BYTE PTR -177[rbp], 0
	lea	rcx, -194[rbp]
	mov	eax, DWORD PTR -212[rbp]
	mov	edx, 2
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	movzx	eax, WORD PTR -194[rbp]
	movzx	edx, ax
	lea	rcx, -176[rbp]
	mov	eax, DWORD PTR -212[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rsi, .LC14[rip]
	lea	rdi, .LC1[rip]
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L17
	lea	rdi, .LC2[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L17:
	mov	rcx, QWORD PTR -224[rbp]
	lea	rdx, -176[rbp]
	lea	rax, -128[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fputs@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	mov	BYTE PTR -128[rbp], 0
	lea	rdx, -176[rbp]
	lea	rax, -177[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -177[rbp]
	mov	esi, 511
	mov	rdi, rax
	call	mkdir@PLT
	test	eax, eax
	jne	.L18
	lea	rdi, .LC17[rip]
	call	puts@PLT
	jmp	.L19
.L18:
	lea	rdi, .LC18[rip]
	call	puts@PLT
.L19:
	lea	rcx, -192[rbp]
	mov	eax, DWORD PTR -212[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	rax, QWORD PTR -192[rbp]
	mov	rsi, rax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rcx, -176[rbp]
	lea	rdx, -176[rbp]
	lea	rax, -64[rbp]
	lea	r8, str1[rip]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -64[rbp]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L20
	lea	rdi, .LC23[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L20:
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -192[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	esi, 8
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	lea	rdi, .LC24[rip]
	call	puts@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	InitRegistration, .-InitRegistration
	.section	.rodata
.LC25:
	.string	"rb"
.LC26:
	.string	"Auth FILE OPEN ERROR"
.LC27:
	.string	"read_A->%lu\n"
.LC28:
	.string	"alpha->%lu\n"
.LC29:
	.string	"beta->%lu\n"
.LC30:
	.string	"C->%lu\n"
.LC31:
	.string	"D->%lu\n"
.LC32:
	.string	"%lu"
.LC33:
	.string	"E->%lu\n"
.LC34:
	.string	"C and E are not equal"
.LC35:
	.string	"authentication error!\n"
.LC36:
	.string	"gamma->%lu\n"
	.text
	.globl	Authentication
	.type	Authentication, @function
Authentication:
.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, 176
	mov	DWORD PTR -164[rbp], edi
	mov	QWORD PTR -176[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -96[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	DWORD PTR -80[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	rcx, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	lea	rax, -64[rbp]
	lea	r8, str1[rip]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -64[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L23
	lea	rdi, .LC26[rip]
	call	puts@PLT
	mov	eax, -1
	jmp	.L27
.L23:
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -152[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	esi, 8
	mov	rdi, rax
	call	fread@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rcx, -136[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rax
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rcx, -128[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rax
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -152[rbp]
	xor	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rax
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	xor	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rax
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rdx, QWORD PTR -144[rbp]
	lea	rax, -96[rbp]
	lea	rsi, .LC32[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -96[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crc64
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rax
	lea	rdi, .LC33[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -112[rbp]
	cmp	rax, QWORD PTR -104[rbp]
	je	.L25
	lea	rdi, .LC34[rip]
	call	puts@PLT
	lea	rdi, .LC35[rip]
	call	perror@PLT
	mov	eax, -1
	jmp	.L27
.L25:
	lea	rax, -64[rbp]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L26
	lea	rdi, .LC23[rip]
	call	perror@PLT
	mov	eax, -1
	jmp	.L27
.L26:
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -144[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	esi, 8
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	mov	rdx, QWORD PTR -112[rbp]
	lea	rax, -96[rbp]
	lea	rsi, .LC32[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -96[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crc64
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rcx, -120[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	eax, 0
.L27:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L28
	call	__stack_chk_fail@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	Authentication, .-Authentication
	.section	.rodata
.LC37:
	.string	"-------------------"
.LC38:
	.string	"vernamKey->"
.LC39:
	.string	"%02x"
.LC40:
	.string	"\346\232\227\345\217\267\346\226\207:"
	.align 8
.LC41:
	.string	"./../server_data/%s/%s_msg.txt"
.LC42:
	.string	"w"
.LC43:
	.string	"Msg FILE OPEN ERROR"
.LC44:
	.string	"\345\276\251\345\217\267\346\226\207\357\274\232%s\n"
	.align 8
.LC45:
	.string	"\345\276\251\345\217\267\346\226\207\343\202\222\343\203\225\343\202\241\343\202\244\343\203\253\343\201\253\344\277\235\345\255\230\343\201\227\343\201\276\343\201\227\343\201\237"
	.text
	.globl	VernamCipher
	.type	VernamCipher, @function
VernamCipher:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 136
	.cfi_offset 3, -24
	mov	DWORD PTR -132[rbp], edi
	mov	QWORD PTR -144[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	WORD PTR -32[rbp], 0
	mov	QWORD PTR -97[rbp], 0
	mov	QWORD PTR -89[rbp], 0
	mov	BYTE PTR -81[rbp], 0
	lea	rdi, .LC37[rip]
	call	puts@PLT
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	lea	rax, -80[rbp]
	lea	r8, str1[rip]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -80[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L30
	lea	rdi, .LC26[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L30:
	mov	rdx, QWORD PTR fp[rip]
	lea	rax, -112[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	esi, 8
	mov	rdi, rax
	call	fread@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	mov	ebx, 0
	jmp	.L31
.L32:
	mov	eax, 7
	sub	eax, ebx
	sal	eax, 3
	mov	edx, 255
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, QWORD PTR -112[rbp]
	and	rdx, rax
	mov	eax, 7
	sub	eax, ebx
	sal	eax, 3
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	mov	edx, eax
	movsx	rax, ebx
	mov	BYTE PTR -97[rbp+rax], dl
	add	ebx, 1
.L31:
	cmp	ebx, 7
	jle	.L32
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printf@PLT
	mov	ebx, 0
	jmp	.L33
.L34:
	movsx	rax, ebx
	movzx	eax, BYTE PTR -97[rbp+rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printf@PLT
	add	ebx, 1
.L33:
	cmp	ebx, 7
	jle	.L34
	mov	edi, 10
	call	putchar@PLT
	lea	rcx, -114[rbp]
	mov	eax, DWORD PTR -132[rbp]
	mov	edx, 2
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	movzx	eax, WORD PTR -114[rbp]
	movzx	edx, ax
	lea	rcx, -89[rbp]
	mov	eax, DWORD PTR -132[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printf@PLT
	mov	ebx, 0
	jmp	.L35
.L36:
	movsx	rax, ebx
	movzx	eax, BYTE PTR -89[rbp+rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printf@PLT
	add	ebx, 1
.L35:
	movzx	eax, WORD PTR -114[rbp]
	movzx	eax, ax
	cmp	ebx, eax
	jl	.L36
	mov	edi, 10
	call	putchar@PLT
	mov	ebx, 0
	jmp	.L37
.L38:
	movsx	rax, ebx
	movzx	edx, BYTE PTR -89[rbp+rax]
	movsx	rax, ebx
	movzx	eax, BYTE PTR -97[rbp+rax]
	xor	edx, eax
	movsx	rax, ebx
	mov	BYTE PTR -89[rbp+rax], dl
	add	ebx, 1
.L37:
	movzx	eax, WORD PTR -114[rbp]
	movzx	eax, ax
	cmp	ebx, eax
	jl	.L38
	movsx	rax, ebx
	mov	BYTE PTR -89[rbp+rax], 0
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	lea	rax, -80[rbp]
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -80[rbp]
	lea	rsi, .LC42[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR fp[rip], rax
	mov	rax, QWORD PTR fp[rip]
	test	rax, rax
	jne	.L39
	lea	rdi, .LC43[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L39:
	mov	rbx, QWORD PTR fp[rip]
	lea	rax, -89[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -89[rbp]
	mov	rcx, rbx
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR fp[rip]
	mov	rdi, rax
	call	fclose@PLT
	lea	rax, -89[rbp]
	mov	rsi, rax
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC45[rip]
	call	puts@PLT
	mov	eax, 0
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L41
	call	__stack_chk_fail@PLT
.L41:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	VernamCipher, .-VernamCipher
	.section	.rodata
.LC46:
	.string	"accept() failed\n"
	.align 8
.LC47:
	.string	"Accepted connection from a client %s\n"
.LC48:
	.string	"setsockopt() failed\n"
	.text
	.globl	AcceptTCPConnection
	.type	AcceptTCPConnection, @function
AcceptTCPConnection:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -44[rbp], 102400
	mov	DWORD PTR -40[rbp], 102400
	mov	DWORD PTR -48[rbp], 16
	lea	rdx, -48[rbp]
	lea	rcx, -32[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	accept@PLT
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jns	.L43
	lea	rdi, .LC46[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L43:
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	inet_ntoa@PLT
	mov	rsi, rax
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdx, -44[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	r8d, 4
	mov	rcx, rdx
	mov	edx, 8
	mov	esi, 1
	mov	edi, eax
	call	setsockopt@PLT
	test	eax, eax
	jns	.L44
	lea	rdi, .LC48[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L44:
	lea	rdx, -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	r8d, 4
	mov	rcx, rdx
	mov	edx, 7
	mov	esi, 1
	mov	edi, eax
	call	setsockopt@PLT
	test	eax, eax
	jns	.L45
	lea	rdi, .LC48[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L45:
	lea	rdx, -32[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	UserDataSearch
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	close@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L46
	call	__stack_chk_fail@PLT
.L46:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	AcceptTCPConnection, .-AcceptTCPConnection
	.section	.rodata
.LC49:
	.string	"socket() failed\n"
.LC50:
	.string	"bind() failed\n"
.LC51:
	.string	"listen() failed\n"
	.text
	.globl	CreateTCPServerSocket
	.type	CreateTCPServerSocket, @function
CreateTCPServerSocket:
.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, 64
	mov	eax, edi
	mov	WORD PTR -52[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, 6
	mov	esi, 1
	mov	edi, 2
	call	socket@PLT
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jns	.L48
	lea	rdi, .LC49[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L48:
	lea	rax, -32[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	WORD PTR -32[rbp], 2
	mov	edi, 0
	call	htonl@PLT
	mov	DWORD PTR -28[rbp], eax
	movzx	eax, WORD PTR -52[rbp]
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -30[rbp], ax
	lea	rcx, -32[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	edx, 16
	mov	rsi, rcx
	mov	edi, eax
	call	bind@PLT
	test	eax, eax
	jns	.L49
	lea	rdi, .LC50[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L49:
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, 5
	mov	edi, eax
	call	listen@PLT
	test	eax, eax
	jns	.L50
	lea	rdi, .LC51[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L50:
	mov	eax, DWORD PTR -36[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L52
	call	__stack_chk_fail@PLT
.L52:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	CreateTCPServerSocket, .-CreateTCPServerSocket
	.section	.rodata
	.align 8
.LC52:
	.string	"Usage: %s <Timeout (secs.)> <Port 1>...\n"
	.align 8
.LC53:
	.string	"Starting server:Hit return to shutdown"
	.align 8
.LC54:
	.string	"No authent requests for %ld secs...Server still alive\n"
.LC55:
	.string	"Shutting down server"
.LC56:
	.string	"Request on port %d: "
	.align 8
.LC57:
	.string	"client Disconnected and closed port %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB13:
	.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, 224
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -228[rbp], edi
	mov	QWORD PTR -240[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -208[rbp], 1
	cmp	DWORD PTR -228[rbp], 2
	jg	.L54
	mov	rax, QWORD PTR -240[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC52[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L54:
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atol@PLT
	mov	QWORD PTR -192[rbp], rax
	mov	eax, DWORD PTR -228[rbp]
	sub	eax, 2
	mov	DWORD PTR -204[rbp], eax
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -212[rbp], -1
	mov	ebx, 0
	jmp	.L55
.L57:
	movsx	rax, ebx
	add	rax, 2
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	WORD PTR -214[rbp], ax
	movzx	eax, WORD PTR -214[rbp]
	movsx	rdx, ebx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -184[rbp]
	lea	r12, [rcx+rdx]
	mov	edi, eax
	call	CreateTCPServerSocket
	mov	DWORD PTR [r12], eax
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -212[rbp], eax
	jge	.L56
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -212[rbp], eax
.L56:
	add	ebx, 1
.L55:
	cmp	ebx, DWORD PTR -204[rbp]
	jl	.L57
	lea	rdi, .LC53[rip]
	call	puts@PLT
	jmp	.L58
.L67:
	mov	eax, 0
	mov	ecx, 16
	lea	rdx, -160[rbp]
	mov	rdi, rdx
#APP
# 559 "the_stack_data/151705780.c" 1
	cld; rep; stosq
# 0 "" 2
#NO_APP
	mov	eax, edi
	mov	edx, ecx
	mov	DWORD PTR -200[rbp], edx
	mov	DWORD PTR -196[rbp], eax
	mov	rax, QWORD PTR -160[rbp]
	or	rax, 1
	mov	QWORD PTR -160[rbp], rax
	mov	ebx, 0
	jmp	.L59
.L60:
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	esi, eax
	movsx	rax, esi
	mov	rdi, QWORD PTR -160[rbp+rax*8]
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cdq
	shr	edx, 26
	add	eax, edx
	and	eax, 63
	sub	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	rdi, rax
	mov	rdx, rdi
	movsx	rax, esi
	mov	QWORD PTR -160[rbp+rax*8], rdx
	add	ebx, 1
.L59:
	cmp	ebx, DWORD PTR -204[rbp]
	jl	.L60
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], 0
	mov	eax, DWORD PTR -212[rbp]
	lea	edi, 1[rax]
	lea	rdx, -176[rbp]
	lea	rax, -160[rbp]
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 0
	mov	rsi, rax
	call	select@PLT
	test	eax, eax
	jne	.L61
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -192[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L62
.L61:
	mov	rax, QWORD PTR -160[rbp]
	and	eax, 1
	test	rax, rax
	je	.L63
	lea	rdi, .LC55[rip]
	call	puts@PLT
	call	getchar@PLT
	mov	DWORD PTR -208[rbp], 0
.L63:
	mov	ebx, 0
	jmp	.L64
.L66:
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	cdqe
	mov	rsi, QWORD PTR -160[rbp+rax*8]
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cdq
	shr	edx, 26
	add	eax, edx
	and	eax, 63
	sub	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	and	rax, rsi
	test	rax, rax
	je	.L65
	movsx	rax, ebx
	add	rax, 2
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	esi, eax
	lea	rdi, .LC56[rip]
	mov	eax, 0
	call	printf@PLT
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	AcceptTCPConnection
.L65:
	add	ebx, 1
.L64:
	cmp	ebx, DWORD PTR -204[rbp]
	jl	.L66
.L58:
	cmp	DWORD PTR -208[rbp], 0
	jne	.L67
.L62:
	mov	ebx, 0
	jmp	.L68
.L69:
	movsx	rax, ebx
	add	rax, 2
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	esi, eax
	lea	rdi, .LC57[rip]
	mov	eax, 0
	call	printf@PLT
	movsx	rax, ebx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	close@PLT
	add	ebx, 1
.L68:
	cmp	ebx, DWORD PTR -204[rbp]
	jl	.L69
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L71
	call	__stack_chk_fail@PLT
.L71:
	add	rsp, 224
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.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	"151705780.c"
	.text
	.global	str1
	.data
	.align	2
	.type	str1, %object
	.size	str1, 14
str1:
	.ascii	"Auth_file.bin\000"
	.comm	fp,4,4
	.section	.rodata
	.align	2
	.type	crc64_tab, %object
	.size	crc64_tab, 1024
crc64_tab:
	.word	0
	.word	808814969
	.word	1617629938
	.word	1348377483
	.word	-1740523889
	.word	-1468776458
	.word	-131423107
	.word	-937480956
	.word	1746206325
	.word	1478588172
	.word	142601351
	.word	944399870
	.word	-262846214
	.word	-1067400829
	.word	-1874961912
	.word	-1609837711
	.word	-2000785535
	.word	-1198790920
	.word	-388661901
	.word	-656346102
	.word	285202702
	.word	550129783
	.word	1888799740
	.word	1084310149
	.word	-525692428
	.word	-794879859
	.word	-2134801658
	.word	-1326183809
	.word	2028676987
	.word	1222553090
	.word	411055497
	.word	682999024
	.word	293396226
	.word	558454395
	.word	1897385456
	.word	1092764809
	.word	-1992463987
	.word	-1190600460
	.word	-380208257
	.word	-647761402
	.word	2036867447
	.word	1230874638
	.word	419640197
	.word	691452668
	.word	-517367816
	.word	-786686335
	.word	-2126346998
	.word	-1317598093
	.word	-1715294077
	.word	-1443415558
	.word	-106323343
	.word	-912512248
	.word	25363980
	.word	834047861
	.word	1642599678
	.word	1373478279
	.word	-237613322
	.word	-1042036849
	.word	-1849861116
	.word	-1584867971
	.word	1771567225
	.word	1503817984
	.word	167570059
	.word	969499634
	.word	2054040943
	.word	1247519766
	.word	436551581
	.word	707835620
	.word	-500196384
	.word	-770043239
	.word	-2109437678
	.word	-1301217173
	.word	310039322
	.word	575625827
	.word	1913766376
	.word	1109674129
	.word	-1975818859
	.word	-1173426964
	.word	-363825305
	.word	-630850018
	.word	-221232402
	.word	-1025127529
	.word	-1833218020
	.word	-1567696539
	.word	1787950177
	.word	1520729368
	.word	184215187
	.word	986673130
	.word	-1698382693
	.word	-1427032606
	.word	-89149847
	.word	-895867120
	.word	42273300
	.word	850428781
	.word	1659771110
	.word	1390121375
	.word	1796403821
	.word	1529314068
	.word	192536735
	.word	994863590
	.word	-212646686
	.word	-1016672869
	.word	-1825024496
	.word	-1559371927
	.word	50727960
	.word	859014497
	.word	1668095722
	.word	1398314899
	.word	-1689797993
	.word	-1418578962
	.word	-80959387
	.word	-887545572
	.word	-475226644
	.word	-744942443
	.word	-2084073698
	.word	-1275984281
	.word	2079140707
	.word	1272488474
	.word	461781393
	.word	733196520
	.word	-1950850151
	.word	-1148327200
	.word	-338464405
	.word	-605620206
	.word	335140118
	.word	600595567
	.word	1938999268
	.word	1135038109
	.word	-1404319307
	.word	-1669447476
	.word	-870261945
	.word	-65711554
	.word	873103162
	.word	71300675
	.word	1415671240
	.word	1683285169
	.word	-1000392768
	.word	-194330951
	.word	-1540086478
	.word	-1811829685
	.word	1545503055
	.word	1814759478
	.word	1014338493
	.word	205527748
	.word	620078644
	.word	348139341
	.word	1151251654
	.word	1957379519
	.word	-1129049925
	.word	-1937663550
	.word	-589364663
	.word	-320173264
	.word	1289836609
	.word	2094321976
	.word	747260595
	.word	482329546
	.word	-727650610
	.word	-459970633
	.word	-1261700036
	.word	-2063698619
	.word	-1120463177
	.word	-1929207858
	.word	-581172155
	.word	-311849668
	.word	628531256
	.word	356723009
	.word	1159574218
	.word	1965570995
	.word	-719066942
	.word	-451518021
	.word	-1253508560
	.word	-2055376055
	.word	1298292301
	.word	2102908724
	.word	755584191
	.word	490522054
	.word	898201910
	.word	96268367
	.word	1440902084
	.word	1708647101
	.word	-1379348551
	.word	-1644345664
	.word	-844898997
	.word	-40479694
	.word	1570604867
	.word	1839730234
	.word	1039570353
	.word	230890696
	.word	-975425076
	.word	-169232203
	.word	-1514724546
	.word	-1786598841
	.word	-702159654
	.word	-435130973
	.word	-1236339160
	.word	-2038726831
	.word	1315197525
	.word	2119293740
	.word	772751527
	.word	507169246
	.word	-1104078161
	.word	-1912302634
	.word	-564524963
	.word	-294682332
	.word	644918304
	.word	373630297
	.word	1176223442
	.word	1982740395
	.word	1587252059
	.word	1856897570
	.word	1055955369
	.word	247795920
	.word	-958775852
	.word	-152062803
	.word	-1498337498
	.word	-1769691553
	.word	915371310
	.word	112917591
	.word	1457809372
	.word	1725034149
	.word	-1362181215
	.word	-1627698472
	.word	-827993773
	.word	-24094678
	.word	-950453288
	.word	-143871327
	.word	-1489884886
	.word	-1761107885
	.word	1595444567
	.word	1865221166
	.word	1064542117
	.word	256251612
	.word	-1353857619
	.word	-1619505964
	.word	-819538081
	.word	-15507930
	.word	923562786
	.word	121240155
	.word	1466393040
	.word	1733486761
	.word	1340560473
	.word	2144525600
	.word	797722283
	.word	532271058
	.word	-676928810
	.word	-409769041
	.word	-1211240412
	.word	-2013759139
	.word	670280236
	.word	398861141
	.word	1201191134
	.word	2007839143
	.word	-1078846301
	.word	-1886939686
	.word	-539423151
	.word	-269711576
	.text
	.align	2
	.global	crc64
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc64, %function
crc64:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L2
.L3:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	eor	r3, r3, r2
	and	r3, r3, #255
	ldr	r2, .L5
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	eor	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L2:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bcc	.L3
	ldr	r3, [fp, #-16]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L6:
	.align	2
.L5:
	.word	crc64_tab
	.size	crc64, .-crc64
	.section	.rodata
	.align	2
.LC0:
	.ascii	"r\000"
	.align	2
.LC1:
	.ascii	"./../server_data/UserData.txt\000"
	.align	2
.LC2:
	.ascii	"User FILE OPEN ERROR\012\000"
	.align	2
.LC3:
	.ascii	"\346\216\242\347\264\242\343\203\207\343\203\274\343"
	.ascii	"\202\277:%s\012\000"
	.align	2
.LC4:
	.ascii	"\346\216\242\347\264\242\344\270\255\343\201\256\343"
	.ascii	"\203\207\343\203\274\343\202\277:%s\012\000"
	.align	2
.LC5:
	.ascii	",\000"
	.align	2
.LC6:
	.ascii	"\012\000"
	.align	2
.LC7:
	.ascii	"\350\252\255\343\201\277\350\276\274\343\202\223\343"
	.ascii	"\201\240\343\203\207\343\203\274\343\202\277:%s\012"
	.ascii	"\000"
	.align	2
.LC8:
	.ascii	"---------\000"
	.align	2
.LC9:
	.ascii	"----------\000"
	.align	2
.LC10:
	.ascii	"\350\255\230\345\210\245\345\255\220\343\201\257%s\012"
	.ascii	"\000"
	.align	2
.LC11:
	.ascii	"\350\255\230\345\210\245\345\255\220\343\201\257\350"
	.ascii	"\246\213\343\201\244\343\201\213\343\202\212\343\201"
	.ascii	"\276\343\201\233\343\202\223\343\201\247\343\201\227"
	.ascii	"\343\201\237\000"
	.align	2
.LC12:
	.ascii	"\350\255\230\345\210\245\345\255\220\343\201\214\350"
	.ascii	"\246\213\343\201\244\343\201\213\343\202\212\343\201"
	.ascii	"\276\343\201\227\343\201\237\000"
	.align	2
.LC13:
	.ascii	"flag error\012\000"
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UserDataSearch
	.syntax unified
	.arm
	.fpu softvfp
	.type	UserDataSearch, %function
UserDataSearch:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #136
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	ldr	r3, .L18
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-60]
	sub	r3, fp, #56
	mov	r2, #46
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-116]
	sub	r3, fp, #112
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	mov	r3, #0
	str	r3, [fp, #-96]
	sub	r3, fp, #92
	mov	r2, #29
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	strh	r3, [fp, #-126]	@ movhi
	ldr	r1, .L18+4
	ldr	r0, .L18+8
	bl	fopen
	mov	r3, r0
	ldr	r2, .L18+12
	str	r3, [r2]
	ldr	r3, .L18+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L8
	ldr	r0, .L18+16
	bl	perror
	mov	r0, #1
	bl	exit
.L8:
	ldr	r3, [fp, #-140]
	ldr	r0, [r3, #4]
	bl	inet_ntoa
	mov	r2, r0
	sub	r3, fp, #116
	mov	r1, r2
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, .L18+20
	bl	printf
	b	.L9
.L12:
	sub	r3, fp, #60
	mov	r1, r3
	ldr	r0, .L18+24
	bl	printf
	sub	r3, fp, #60
	ldr	r1, .L18+28
	mov	r0, r3
	bl	strtok
	ldr	r1, .L18+32
	mov	r0, #0
	bl	strtok
	str	r0, [fp, #-120]
	ldr	r1, [fp, #-120]
	ldr	r0, .L18+36
	bl	printf
	ldr	r0, .L18+40
	bl	puts
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L10
	sub	r3, fp, #60
	ldr	r1, .L18+28
	mov	r0, r3
	bl	strtok
	str	r0, [fp, #-124]
	ldr	r0, .L18+44
	bl	puts
	ldr	r1, [fp, #-124]
	ldr	r0, .L18+48
	bl	printf
	mov	r3, #1
	strh	r3, [fp, #-126]	@ movhi
	b	.L11
.L10:
	mov	r3, #0
	strb	r3, [fp, #-60]
.L9:
	ldr	r3, .L18+12
	ldr	r2, [r3]
	sub	r3, fp, #60
	mov	r1, #50
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L12
.L11:
	ldr	r3, .L18+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	sub	r3, fp, #126
	mov	r2, #2
	mov	r1, r3
	ldr	r0, [fp, #-136]
	bl	write
	ldrh	r3, [fp, #-126]
	cmp	r3, #0
	bne	.L13
	ldr	r0, .L18+52
	bl	puts
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, [fp, #-136]
	bl	InitRegistration
	b	.L17
.L13:
	ldrh	r3, [fp, #-126]
	cmp	r3, #1
	bne	.L15
	ldr	r0, .L18+56
	bl	puts
	sub	r3, fp, #96
	ldr	r1, [fp, #-124]
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #96
	mov	r1, r3
	ldr	r0, [fp, #-136]
	bl	Authentication
	mov	r3, r0
	cmp	r3, #0
	bne	.L17
	sub	r3, fp, #96
	mov	r1, r3
	ldr	r0, [fp, #-136]
	bl	VernamCipher
	b	.L17
.L15:
	ldr	r0, .L18+60
	bl	perror
	mov	r0, #1
	bl	exit
.L17:
	nop
	ldr	r3, .L18
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L16
	bl	__stack_chk_fail
.L16:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	.LC14
	.word	.LC0
	.word	.LC1
	.word	fp
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.size	UserDataSearch, .-UserDataSearch
	.section	.rodata
	.align	2
.LC15:
	.ascii	"a\000"
	.align	2
.LC16:
	.ascii	"%s,%s\012\000"
	.align	2
.LC17:
	.ascii	"./../server_data/%s\000"
	.align	2
.LC18:
	.ascii	"\343\203\225\343\202\251\343\203\253\343\203\200\344"
	.ascii	"\275\234\346\210\220\343\201\253\346\210\220\345\212"
	.ascii	"\237\343\201\227\343\201\276\343\201\227\343\201\237"
	.ascii	"\343\200\202\000"
	.align	2
.LC19:
	.ascii	"\343\203\225\343\202\251\343\203\253\343\203\200\344"
	.ascii	"\275\234\346\210\220\343\201\253\345\244\261\346\225"
	.ascii	"\227\343\201\227\343\201\276\343\201\227\343\201\237"
	.ascii	"\343\200\202\000"
	.align	2
.LC20:
	.ascii	"A->%lu\012\000"
	.align	2
.LC21:
	.ascii	"./../server_data/%s/%s%s\000"
	.align	2
.LC22:
	.ascii	"\343\203\225\343\202\241\343\202\244\343\203\253\345"
	.ascii	"\220\215=%s\012\000"
	.align	2
.LC23:
	.ascii	"wb\000"
	.align	2
.LC24:
	.ascii	"Auth FILE OPEN ERROR\012\000"
	.align	2
.LC25:
	.ascii	"A\343\202\222\343\203\225\343\202\241\343\202\244\343"
	.ascii	"\203\253\343\201\253\344\277\235\345\255\230\012\000"
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	InitRegistration
	.syntax unified
	.arm
	.fpu softvfp
	.type	InitRegistration, %function
InitRegistration:
	@ args = 0, pretend = 0, frame = 168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #176
	str	r0, [fp, #-168]
	str	r1, [fp, #-172]
	ldr	r3, .L26
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-148]
	sub	r3, fp, #144
	mov	r2, #29
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-112]
	sub	r3, fp, #108
	mov	r2, #46
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-60]
	sub	r3, fp, #56
	mov	r2, #46
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	strb	r3, [fp, #-152]
	sub	r3, fp, #158
	mov	r2, #2
	mov	r1, r3
	ldr	r0, [fp, #-168]
	bl	read
	ldrh	r3, [fp, #-158]
	mov	r2, r3
	sub	r3, fp, #148
	mov	r1, r3
	ldr	r0, [fp, #-168]
	bl	read
	ldr	r1, .L26+4
	ldr	r0, .L26+8
	bl	fopen
	mov	r3, r0
	ldr	r2, .L26+12
	str	r3, [r2]
	ldr	r3, .L26+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L21
	ldr	r0, .L26+16
	bl	perror
	mov	r0, #1
	bl	exit
.L21:
	sub	r2, fp, #148
	sub	r0, fp, #112
	ldr	r3, [fp, #-172]
	ldr	r1, .L26+20
	bl	sprintf
	ldr	r3, .L26+12
	ldr	r2, [r3]
	sub	r3, fp, #112
	mov	r1, r2
	mov	r0, r3
	bl	fputs
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	mov	r3, #0
	strb	r3, [fp, #-112]
	sub	r2, fp, #148
	sub	r3, fp, #152
	ldr	r1, .L26+24
	mov	r0, r3
	bl	sprintf
	sub	r3, fp, #152
	ldr	r1, .L26+28
	mov	r0, r3
	bl	mkdir
	mov	r3, r0
	cmp	r3, #0
	bne	.L22
	ldr	r0, .L26+32
	bl	puts
	b	.L23
.L22:
	ldr	r0, .L26+36
	bl	puts
.L23:
	sub	r3, fp, #156
	mov	r2, #4
	mov	r1, r3
	ldr	r0, [fp, #-168]
	bl	read
	ldr	r3, [fp, #-156]
	mov	r1, r3
	ldr	r0, .L26+40
	bl	printf
	sub	r3, fp, #148
	sub	r2, fp, #148
	sub	r0, fp, #60
	ldr	r1, .L26+44
	str	r1, [sp]
	ldr	r1, .L26+48
	bl	sprintf
	sub	r3, fp, #60
	mov	r1, r3
	ldr	r0, .L26+52
	bl	printf
	sub	r3, fp, #60
	ldr	r1, .L26+56
	mov	r0, r3
	bl	fopen
	mov	r3, r0
	ldr	r2, .L26+12
	str	r3, [r2]
	ldr	r3, .L26+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L24
	ldr	r0, .L26+60
	bl	perror
	mov	r0, #1
	bl	exit
.L24:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	sub	r0, fp, #156
	mov	r2, #1
	mov	r1, #4
	bl	fwrite
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	ldr	r0, .L26+64
	bl	puts
	nop
	ldr	r3, .L26
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L25
	bl	__stack_chk_fail
.L25:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L27:
	.align	2
.L26:
	.word	.LC26
	.word	.LC15
	.word	.LC1
	.word	fp
	.word	.LC2
	.word	.LC16
	.word	.LC17
	.word	511
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	str1
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.size	InitRegistration, .-InitRegistration
	.section	.rodata
	.align	2
.LC27:
	.ascii	"rb\000"
	.align	2
.LC28:
	.ascii	"Auth FILE OPEN ERROR\000"
	.align	2
.LC29:
	.ascii	"read_A->%lu\012\000"
	.align	2
.LC30:
	.ascii	"alpha->%lu\012\000"
	.align	2
.LC31:
	.ascii	"beta->%lu\012\000"
	.align	2
.LC32:
	.ascii	"C->%lu\012\000"
	.align	2
.LC33:
	.ascii	"D->%lu\012\000"
	.align	2
.LC34:
	.ascii	"%lu\000"
	.align	2
.LC35:
	.ascii	"E->%lu\012\000"
	.align	2
.LC36:
	.ascii	"C and E are not equal\000"
	.align	2
.LC37:
	.ascii	"authentication error!\012\000"
	.align	2
.LC38:
	.ascii	"gamma->%lu\012\000"
	.align	2
.LC39:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	Authentication
	.syntax unified
	.arm
	.fpu softvfp
	.type	Authentication, %function
Authentication:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-112]
	str	r1, [fp, #-116]
	ldr	r3, .L35
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-80]
	sub	r3, fp, #76
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	mov	r3, #0
	str	r3, [fp, #-60]
	sub	r3, fp, #56
	mov	r2, #46
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r0, fp, #60
	ldr	r3, .L35+4
	str	r3, [sp]
	ldr	r3, [fp, #-116]
	ldr	r2, [fp, #-116]
	ldr	r1, .L35+8
	bl	sprintf
	sub	r3, fp, #60
	ldr	r1, .L35+12
	mov	r0, r3
	bl	fopen
	mov	r3, r0
	ldr	r2, .L35+16
	str	r3, [r2]
	ldr	r3, .L35+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L29
	ldr	r0, .L35+20
	bl	puts
	mvn	r3, #0
	b	.L33
.L29:
	ldr	r3, .L35+16
	ldr	r3, [r3]
	sub	r0, fp, #108
	mov	r2, #1
	mov	r1, #4
	bl	fread
	ldr	r3, .L35+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	ldr	r3, [fp, #-108]
	mov	r1, r3
	ldr	r0, .L35+24
	bl	printf
	sub	r3, fp, #100
	mov	r2, #4
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	read
	ldr	r3, [fp, #-100]
	mov	r1, r3
	ldr	r0, .L35+28
	bl	printf
	sub	r3, fp, #96
	mov	r2, #4
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	read
	ldr	r3, [fp, #-96]
	mov	r1, r3
	ldr	r0, .L35+32
	bl	printf
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-108]
	eor	r3, r3, r2
	str	r3, [fp, #-88]
	ldr	r1, [fp, #-88]
	ldr	r0, .L35+36
	bl	printf
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-88]
	add	r2, r2, r3
	ldr	r3, [fp, #-100]
	eor	r3, r3, r2
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	mov	r1, r3
	ldr	r0, .L35+40
	bl	printf
	ldr	r2, [fp, #-104]
	sub	r3, fp, #80
	ldr	r1, .L35+44
	mov	r0, r3
	bl	sprintf
	sub	r3, fp, #80
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #80
	mov	r1, r2
	mov	r0, r3
	bl	crc64
	str	r0, [fp, #-84]
	ldr	r1, [fp, #-84]
	ldr	r0, .L35+48
	bl	printf
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	beq	.L31
	ldr	r0, .L35+52
	bl	puts
	ldr	r0, .L35+56
	bl	perror
	mvn	r3, #0
	b	.L33
.L31:
	sub	r3, fp, #60
	ldr	r1, .L35+60
	mov	r0, r3
	bl	fopen
	mov	r3, r0
	ldr	r2, .L35+16
	str	r3, [r2]
	ldr	r3, .L35+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L32
	ldr	r0, .L35+64
	bl	perror
	mvn	r3, #0
	b	.L33
.L32:
	ldr	r3, .L35+16
	ldr	r3, [r3]
	sub	r0, fp, #104
	mov	r2, #1
	mov	r1, #4
	bl	fwrite
	ldr	r3, .L35+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	sub	r3, fp, #80
	ldr	r2, [fp, #-88]
	ldr	r1, .L35+44
	mov	r0, r3
	bl	sprintf
	sub	r3, fp, #80
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #80
	mov	r1, r2
	mov	r0, r3
	bl	crc64
	mov	r3, r0
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	mov	r1, r3
	ldr	r0, .L35+68
	bl	printf
	sub	r3, fp, #92
	mov	r2, #4
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	write
	mov	r3, #0
.L33:
	ldr	r2, .L35
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L34
	bl	__stack_chk_fail
.L34:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L36:
	.align	2
.L35:
	.word	.LC39
	.word	str1
	.word	.LC21
	.word	.LC27
	.word	fp
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC23
	.word	.LC24
	.word	.LC38
	.size	Authentication, .-Authentication
	.section	.rodata
	.align	2
.LC40:
	.ascii	"-------------------\000"
	.align	2
.LC41:
	.ascii	"vernamKey->\000"
	.align	2
.LC42:
	.ascii	"%02x\000"
	.align	2
.LC43:
	.ascii	"\346\232\227\345\217\267\346\226\207:\000"
	.align	2
.LC44:
	.ascii	"./../server_data/%s/%s_msg.txt\000"
	.align	2
.LC45:
	.ascii	"w\000"
	.align	2
.LC46:
	.ascii	"Msg FILE OPEN ERROR\000"
	.align	2
.LC47:
	.ascii	"\345\276\251\345\217\267\346\226\207\357\274\232%s\012"
	.ascii	"\000"
	.align	2
.LC48:
	.ascii	"\345\276\251\345\217\267\346\226\207\343\202\222\343"
	.ascii	"\203\225\343\202\241\343\202\244\343\203\253\343\201"
	.ascii	"\253\344\277\235\345\255\230\343\201\227\343\201\276"
	.ascii	"\343\201\227\343\201\237\000"
	.align	2
.LC49:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	VernamCipher
	.syntax unified
	.arm
	.fpu softvfp
	.type	VernamCipher, %function
VernamCipher:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #108
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	ldr	r3, .L50
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-68]
	sub	r3, fp, #64
	mov	r2, #46
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-80]
	sub	r3, fp, #76
	mov	r2, #0
	str	r2, [r3]
	strb	r2, [r3, #4]
	ldr	r0, .L50+4
	bl	puts
	sub	r0, fp, #68
	ldr	r3, .L50+8
	str	r3, [sp]
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-108]
	ldr	r1, .L50+12
	bl	sprintf
	sub	r3, fp, #68
	ldr	r1, .L50+16
	mov	r0, r3
	bl	fopen
	mov	r3, r0
	ldr	r2, .L50+20
	str	r3, [r2]
	ldr	r3, .L50+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L38
	ldr	r0, .L50+24
	bl	puts
	mov	r0, #1
	bl	exit
.L38:
	ldr	r3, .L50+20
	ldr	r3, [r3]
	sub	r0, fp, #92
	mov	r2, #1
	mov	r1, #4
	bl	fread
	ldr	r3, .L50+20
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	mov	r4, #0
	b	.L39
.L40:
	rsb	r3, r4, #7
	lsl	r3, r3, #3
	mov	r2, #255
	lsl	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r2, r2, r3
	rsb	r3, r4, #7
	lsl	r3, r3, #3
	lsr	r3, r2, r3
	and	r2, r3, #255
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-76]
	add	r4, r4, #1
.L39:
	cmp	r4, #7
	ble	.L40
	ldr	r0, .L50+28
	bl	printf
	mov	r4, #0
	b	.L41
.L42:
	sub	r3, fp, #12
	add	r3, r3, r4
	ldrb	r3, [r3, #-76]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L50+32
	bl	printf
	add	r4, r4, #1
.L41:
	cmp	r4, #7
	ble	.L42
	mov	r0, #10
	bl	putchar
	sub	r3, fp, #94
	mov	r2, #2
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	read
	ldrh	r3, [fp, #-94]
	mov	r2, r3
	sub	r3, fp, #80
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	read
	ldr	r0, .L50+36
	bl	printf
	mov	r4, #0
	b	.L43
.L44:
	sub	r3, fp, #12
	add	r3, r3, r4
	ldrb	r3, [r3, #-68]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L50+32
	bl	printf
	add	r4, r4, #1
.L43:
	ldrh	r3, [fp, #-94]
	cmp	r4, r3
	blt	.L44
	mov	r0, #10
	bl	putchar
	mov	r4, #0
	b	.L45
.L46:
	sub	r3, fp, #12
	add	r3, r3, r4
	ldrb	r2, [r3, #-68]	@ zero_extendqisi2
	sub	r3, fp, #12
	add	r3, r3, r4
	ldrb	r3, [r3, #-76]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-68]
	add	r4, r4, #1
.L45:
	ldrh	r3, [fp, #-94]
	cmp	r4, r3
	blt	.L46
	sub	r3, fp, #12
	add	r3, r3, r4
	mov	r2, #0
	strb	r2, [r3, #-68]
	sub	r0, fp, #68
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-108]
	ldr	r1, .L50+40
	bl	sprintf
	sub	r3, fp, #68
	ldr	r1, .L50+44
	mov	r0, r3
	bl	fopen
	mov	r3, r0
	ldr	r2, .L50+20
	str	r3, [r2]
	ldr	r3, .L50+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L47
	ldr	r0, .L50+48
	bl	puts
	mov	r0, #1
	bl	exit
.L47:
	sub	r3, fp, #80
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	ldr	r3, .L50+20
	ldr	r3, [r3]
	sub	r0, fp, #80
	mov	r1, #1
	bl	fwrite
	ldr	r3, .L50+20
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	sub	r3, fp, #80
	mov	r1, r3
	ldr	r0, .L50+52
	bl	printf
	ldr	r0, .L50+56
	bl	puts
	mov	r3, #0
	ldr	r2, .L50
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L49
	bl	__stack_chk_fail
.L49:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L51:
	.align	2
.L50:
	.word	.LC49
	.word	.LC40
	.word	str1
	.word	.LC21
	.word	.LC27
	.word	fp
	.word	.LC28
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.size	VernamCipher, .-VernamCipher
	.section	.rodata
	.align	2
.LC50:
	.ascii	"accept() failed\012\000"
	.align	2
.LC51:
	.ascii	"Accepted connection from a client %s\012\000"
	.align	2
.LC52:
	.ascii	"setsockopt() failed\012\000"
	.align	2
.LC53:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	AcceptTCPConnection
	.syntax unified
	.arm
	.fpu softvfp
	.type	AcceptTCPConnection, %function
AcceptTCPConnection:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	ldr	r3, .L57
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #102400
	str	r3, [fp, #-36]
	mov	r3, #102400
	str	r3, [fp, #-32]
	mov	r3, #16
	str	r3, [fp, #-40]
	sub	r2, fp, #40
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	accept
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L53
	ldr	r0, .L57+4
	bl	perror
	mov	r0, #1
	bl	exit
.L53:
	ldr	r0, [fp, #-20]
	bl	inet_ntoa
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L57+8
	bl	printf
	sub	r3, fp, #36
	mov	r2, #4
	str	r2, [sp]
	mov	r2, #8
	mov	r1, #1
	ldr	r0, [fp, #-28]
	bl	setsockopt
	mov	r3, r0
	cmp	r3, #0
	bge	.L54
	ldr	r0, .L57+12
	bl	perror
	mov	r0, #1
	bl	exit
.L54:
	sub	r3, fp, #32
	mov	r2, #4
	str	r2, [sp]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, [fp, #-28]
	bl	setsockopt
	mov	r3, r0
	cmp	r3, #0
	bge	.L55
	ldr	r0, .L57+12
	bl	perror
	mov	r0, #1
	bl	exit
.L55:
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	UserDataSearch
	ldr	r0, [fp, #-28]
	bl	close
	nop
	ldr	r3, .L57
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L56
	bl	__stack_chk_fail
.L56:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L58:
	.align	2
.L57:
	.word	.LC53
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.size	AcceptTCPConnection, .-AcceptTCPConnection
	.section	.rodata
	.align	2
.LC54:
	.ascii	"socket() failed\012\000"
	.align	2
.LC55:
	.ascii	"bind() failed\012\000"
	.align	2
.LC56:
	.ascii	"listen() failed\012\000"
	.align	2
.LC57:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	CreateTCPServerSocket
	.syntax unified
	.arm
	.fpu softvfp
	.type	CreateTCPServerSocket, %function
CreateTCPServerSocket:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	mov	r3, r0
	strh	r3, [fp, #-30]	@ movhi
	ldr	r3, .L65
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #6
	mov	r1, #1
	mov	r0, #2
	bl	socket
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L60
	ldr	r0, .L65+4
	bl	perror
	mov	r0, #1
	bl	exit
.L60:
	sub	r3, fp, #24
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	mov	r3, #2
	strh	r3, [fp, #-24]	@ movhi
	mov	r0, #0
	bl	htonl
	mov	r3, r0
	str	r3, [fp, #-20]
	ldrh	r3, [fp, #-30]
	mov	r0, r3
	bl	htons
	mov	r3, r0
	strh	r3, [fp, #-22]	@ movhi
	sub	r3, fp, #24
	mov	r2, #16
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	bind
	mov	r3, r0
	cmp	r3, #0
	bge	.L61
	ldr	r0, .L65+8
	bl	perror
	mov	r0, #1
	bl	exit
.L61:
	mov	r1, #5
	ldr	r0, [fp, #-28]
	bl	listen
	mov	r3, r0
	cmp	r3, #0
	bge	.L62
	ldr	r0, .L65+12
	bl	perror
	mov	r0, #1
	bl	exit
.L62:
	ldr	r3, [fp, #-28]
	ldr	r2, .L65
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L64
	bl	__stack_chk_fail
.L64:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L66:
	.align	2
.L65:
	.word	.LC57
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.size	CreateTCPServerSocket, .-CreateTCPServerSocket
	.section	.rodata
	.align	2
.LC58:
	.ascii	"Usage: %s <Timeout (secs.)> <Port 1>...\012\000"
	.align	2
.LC59:
	.ascii	"Starting server:Hit return to shutdown\000"
	.align	2
.LC60:
	.ascii	"No authent requests for %ld secs...Server still ali"
	.ascii	"ve\012\000"
	.align	2
.LC61:
	.ascii	"Shutting down server\000"
	.align	2
.LC62:
	.ascii	"Request on port %d: \000"
	.align	2
.LC63:
	.ascii	"client Disconnected and closed port %d\012\000"
	.align	2
.LC64:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 184
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #192
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	ldr	r3, .L88
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #1
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	bgt	.L68
	ldr	r3, .L88+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-196]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L88+8
	bl	fprintf
	mov	r0, #1
	bl	exit
.L68:
	ldr	r3, [fp, #-196]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	atol
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-192]
	sub	r3, r3, #2
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-160]
	mvn	r3, #0
	str	r3, [fp, #-180]
	mov	r4, #0
	b	.L69
.L71:
	mov	r3, r4
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	strh	r3, [fp, #-182]	@ movhi
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r5, r2, r3
	ldrh	r3, [fp, #-182]
	mov	r0, r3
	bl	CreateTCPServerSocket
	mov	r3, r0
	str	r3, [r5]
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-180]
	cmp	r2, r3
	bge	.L70
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-180]
.L70:
	add	r4, r4, #1
.L69:
	ldr	r3, [fp, #-164]
	cmp	r4, r3
	blt	.L71
	ldr	r0, .L88+12
	bl	puts
	b	.L72
.L83:
	sub	r3, fp, #144
	str	r3, [fp, #-156]
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L73
.L74:
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-172]
	mov	r1, #0
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L73:
	ldr	r3, [fp, #-172]
	cmp	r3, #31
	bls	.L74
	ldr	r3, [fp, #-144]
	orr	r3, r3, #1
	str	r3, [fp, #-144]
	mov	r4, #0
	b	.L75
.L76:
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r2, r3, #31
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #5
	mov	r2, r3
	lsl	r3, r2, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r1, [r3, #-132]
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r0, [fp, #-160]
	add	r3, r0, r3
	ldr	r3, [r3]
	rsbs	r0, r3, #0
	and	r3, r3, #31
	and	r0, r0, #31
	rsbpl	r3, r0, #0
	mov	r0, #1
	lsl	r3, r0, r3
	orr	r1, r1, r3
	lsl	r3, r2, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	str	r1, [r3, #-132]
	add	r4, r4, #1
.L75:
	ldr	r3, [fp, #-164]
	cmp	r4, r3
	blt	.L76
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-152]
	mov	r3, #0
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-180]
	add	r0, r3, #1
	sub	r1, fp, #144
	sub	r3, fp, #152
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	bl	select
	mov	r3, r0
	cmp	r3, #0
	bne	.L77
	ldr	r3, .L88+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	ldr	r1, .L88+16
	mov	r0, r3
	bl	fprintf
	b	.L78
.L77:
	ldr	r3, [fp, #-144]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L79
	ldr	r0, .L88+20
	bl	puts
	bl	getchar
	mov	r3, #0
	str	r3, [fp, #-176]
.L79:
	mov	r4, #0
	b	.L80
.L82:
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r2, r3, #31
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #5
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r1, [fp, #-160]
	add	r3, r1, r3
	ldr	r3, [r3]
	rsbs	r1, r3, #0
	and	r3, r3, #31
	and	r1, r1, #31
	rsbpl	r3, r1, #0
	mov	r1, #1
	lsl	r3, r1, r3
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L81
	mov	r3, r4
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L88+24
	bl	printf
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	AcceptTCPConnection
.L81:
	add	r4, r4, #1
.L80:
	ldr	r3, [fp, #-164]
	cmp	r4, r3
	blt	.L82
.L72:
	ldr	r3, [fp, #-176]
	cmp	r3, #0
	bne	.L83
.L78:
	mov	r4, #0
	b	.L84
.L85:
	mov	r3, r4
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L88+28
	bl	printf
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	add	r4, r4, #1
.L84:
	ldr	r3, [fp, #-164]
	cmp	r4, r3
	blt	.L85
	ldr	r0, [fp, #-160]
	bl	free
	mov	r3, #0
	ldr	r2, .L88
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L87
	bl	__stack_chk_fail
.L87:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L89:
	.align	2
.L88:
	.word	.LC64
	.word	stderr
	.word	.LC58
	.word	.LC59
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.word	.LC63
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
