00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
401007:	75 04                	jne    0x40100d
401009:	33 c0                	xor    %eax,%eax
40100b:	5d                   	pop    %ebp
40100c:	c3                   	ret
40100d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401010:	8b 45 08             	mov    0x8(%ebp),%eax
401013:	ff 4d 10             	decl   0x10(%ebp)
401016:	74 0a                	je     0x401022
401018:	8a 10                	mov    (%eax),%dl
40101a:	3a 11                	cmp    (%ecx),%dl
40101c:	75 04                	jne    0x401022
40101e:	40                   	inc    %eax
40101f:	41                   	inc    %ecx
401020:	eb f1                	jmp    0x401013
401022:	0f b6 00             	movzbl (%eax),%eax
401025:	0f b6 09             	movzbl (%ecx),%ecx
401028:	2b c1                	sub    %ecx,%eax
40102a:	5d                   	pop    %ebp
40102b:	c3                   	ret
40102c:	55                   	push   %ebp
40102d:	8b ec                	mov    %esp,%ebp
40102f:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
401033:	8b 4d 08             	mov    0x8(%ebp),%ecx
401036:	56                   	push   %esi
401037:	8b f1                	mov    %ecx,%esi
401039:	74 12                	je     0x40104d
40103b:	8b 55 0c             	mov    0xc(%ebp),%edx
40103e:	8a 02                	mov    (%edx),%al
401040:	ff 4d 10             	decl   0x10(%ebp)
401043:	88 01                	mov    %al,(%ecx)
401045:	41                   	inc    %ecx
401046:	42                   	inc    %edx
401047:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40104b:	75 f1                	jne    0x40103e
40104d:	8b c6                	mov    %esi,%eax
40104f:	5e                   	pop    %esi
401050:	5d                   	pop    %ebp
401051:	c3                   	ret
401052:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401056:	85 c9                	test   %ecx,%ecx
401058:	74 26                	je     0x401080
40105a:	8a 44 24 08          	mov    0x8(%esp),%al
40105e:	53                   	push   %ebx
40105f:	8a d8                	mov    %al,%bl
401061:	8a fb                	mov    %bl,%bh
401063:	8b d1                	mov    %ecx,%edx
401065:	57                   	push   %edi
401066:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40106a:	c1 e9 02             	shr    $0x2,%ecx
40106d:	8b c3                	mov    %ebx,%eax
40106f:	c1 e0 10             	shl    $0x10,%eax
401072:	66 8b c3             	mov    %bx,%ax
401075:	f3 ab                	rep stos %eax,%es:(%edi)
401077:	8b ca                	mov    %edx,%ecx
401079:	83 e1 03             	and    $0x3,%ecx
40107c:	f3 aa                	rep stos %al,%es:(%edi)
40107e:	5f                   	pop    %edi
40107f:	5b                   	pop    %ebx
401080:	8b 44 24 04          	mov    0x4(%esp),%eax
401084:	c3                   	ret
401085:	8b 44 24 04          	mov    0x4(%esp),%eax
401089:	a3 80 65 41 00       	mov    %eax,0x416580
40108e:	c3                   	ret
40108f:	a1 80 65 41 00       	mov    0x416580,%eax
401094:	69 c0 fd 43 03 00    	imul   $0x343fd,%eax,%eax
40109a:	05 c3 9e 26 00       	add    $0x269ec3,%eax
40109f:	a3 80 65 41 00       	mov    %eax,0x416580
4010a4:	c1 e8 10             	shr    $0x10,%eax
4010a7:	25 ff 7f 00 00       	and    $0x7fff,%eax
4010ac:	c3                   	ret
4010ad:	ff 74 24 04          	push   0x4(%esp)
4010b1:	6a 00                	push   $0x0
4010b3:	ff 15 bc 21 41 00    	call   *0x4121bc
4010b9:	50                   	push   %eax
4010ba:	ff 15 c0 21 41 00    	call   *0x4121c0
4010c0:	c3                   	ret
4010c1:	ff 74 24 04          	push   0x4(%esp)
4010c5:	6a 00                	push   $0x0
4010c7:	ff 15 bc 21 41 00    	call   *0x4121bc
4010cd:	50                   	push   %eax
4010ce:	ff 15 14 21 41 00    	call   *0x412114
4010d4:	c3                   	ret
4010d5:	8b 44 24 04          	mov    0x4(%esp),%eax
4010d9:	8a 08                	mov    (%eax),%cl
4010db:	40                   	inc    %eax
4010dc:	84 c9                	test   %cl,%cl
4010de:	75 f9                	jne    0x4010d9
4010e0:	2b 44 24 04          	sub    0x4(%esp),%eax
4010e4:	48                   	dec    %eax
4010e5:	c3                   	ret
4010e6:	8b 54 24 04          	mov    0x4(%esp),%edx
4010ea:	56                   	push   %esi
4010eb:	8b 74 24 0c          	mov    0xc(%esp),%esi
4010ef:	57                   	push   %edi
4010f0:	eb 06                	jmp    0x4010f8
4010f2:	84 c9                	test   %cl,%cl
4010f4:	74 0e                	je     0x401104
4010f6:	42                   	inc    %edx
4010f7:	46                   	inc    %esi
4010f8:	8a 0e                	mov    (%esi),%cl
4010fa:	0f b6 02             	movzbl (%edx),%eax
4010fd:	0f b6 f9             	movzbl %cl,%edi
401100:	2b c7                	sub    %edi,%eax
401102:	74 ee                	je     0x4010f2
401104:	85 c0                	test   %eax,%eax
401106:	5f                   	pop    %edi
401107:	5e                   	pop    %esi
401108:	7d 04                	jge    0x40110e
40110a:	83 c8 ff             	or     $0xffffffff,%eax
40110d:	c3                   	ret
40110e:	7e 03                	jle    0x401113
401110:	33 c0                	xor    %eax,%eax
401112:	40                   	inc    %eax
401113:	c3                   	ret
401114:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401118:	8b 54 24 08          	mov    0x8(%esp),%edx
40111c:	8a 02                	mov    (%edx),%al
40111e:	88 01                	mov    %al,(%ecx)
401120:	41                   	inc    %ecx
401121:	42                   	inc    %edx
401122:	84 c0                	test   %al,%al
401124:	75 f6                	jne    0x40111c
401126:	8b 44 24 04          	mov    0x4(%esp),%eax
40112a:	c3                   	ret
40112b:	cc                   	int3
40112c:	cc                   	int3
40112d:	cc                   	int3
40112e:	cc                   	int3
40112f:	cc                   	int3
401130:	3d 00 10 00 00       	cmp    $0x1000,%eax
401135:	73 0e                	jae    0x401145
401137:	f7 d8                	neg    %eax
401139:	03 c4                	add    %esp,%eax
40113b:	83 c0 04             	add    $0x4,%eax
40113e:	85 00                	test   %eax,(%eax)
401140:	94                   	xchg   %eax,%esp
401141:	8b 00                	mov    (%eax),%eax
401143:	50                   	push   %eax
401144:	c3                   	ret
401145:	51                   	push   %ecx
401146:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40114a:	81 e9 00 10 00 00    	sub    $0x1000,%ecx
401150:	2d 00 10 00 00       	sub    $0x1000,%eax
401155:	85 01                	test   %eax,(%ecx)
401157:	3d 00 10 00 00       	cmp    $0x1000,%eax
40115c:	73 ec                	jae    0x40114a
40115e:	2b c8                	sub    %eax,%ecx
401160:	8b c4                	mov    %esp,%eax
401162:	85 01                	test   %eax,(%ecx)
401164:	8b e1                	mov    %ecx,%esp
401166:	8b 08                	mov    (%eax),%ecx
401168:	8b 40 04             	mov    0x4(%eax),%eax
40116b:	50                   	push   %eax
40116c:	c3                   	ret
40116d:	8b 0d d4 7c 41 00    	mov    0x417cd4,%ecx
401173:	3b 0d 1c 78 41 00    	cmp    0x41781c,%ecx
401179:	73 13                	jae    0x40118e
40117b:	a1 9c 6d 41 00       	mov    0x416d9c,%eax
401180:	c7 04 88 08 1b 41 00 	movl   $0x411b08,(%eax,%ecx,4)
401187:	41                   	inc    %ecx
401188:	89 0d d4 7c 41 00    	mov    %ecx,0x417cd4
40118e:	c3                   	ret
40118f:	e8 32 f0 00 00       	call   0x4101c6
401194:	b9 13 1b 41 00       	mov    $0x411b13,%ecx
401199:	e9 b7 47 00 00       	jmp    0x405955
40119e:	e8 57 06 01 00       	call   0x4117fa
4011a3:	b9 1d 1b 41 00       	mov    $0x411b1d,%ecx
4011a8:	e9 a8 47 00 00       	jmp    0x405955
4011ad:	e8 0b a2 00 00       	call   0x40b3bd
4011b2:	b9 22 1b 41 00       	mov    $0x411b22,%ecx
4011b7:	e9 99 47 00 00       	jmp    0x405955
4011bc:	e8 93 74 00 00       	call   0x408654
4011c1:	b9 27 1b 41 00       	mov    $0x411b27,%ecx
4011c6:	e9 8a 47 00 00       	jmp    0x405955
4011cb:	e8 b7 b7 00 00       	call   0x40c987
4011d0:	b9 2c 1b 41 00       	mov    $0x411b2c,%ecx
4011d5:	e9 7b 47 00 00       	jmp    0x405955
4011da:	8b 0d d4 7c 41 00    	mov    0x417cd4,%ecx
4011e0:	3b 0d 1c 78 41 00    	cmp    0x41781c,%ecx
4011e6:	73 13                	jae    0x4011fb
4011e8:	a1 9c 6d 41 00       	mov    0x416d9c,%eax
4011ed:	c7 04 88 31 1b 41 00 	movl   $0x411b31,(%eax,%ecx,4)
4011f4:	41                   	inc    %ecx
4011f5:	89 0d d4 7c 41 00    	mov    %ecx,0x417cd4
4011fb:	c3                   	ret
4011fc:	e8 69 a5 00 00       	call   0x40b76a
401201:	b9 4c 1b 41 00       	mov    $0x411b4c,%ecx
401206:	e9 4a 47 00 00       	jmp    0x405955
40120b:	51                   	push   %ecx
40120c:	b9 3c 7d 41 00       	mov    $0x417d3c,%ecx
401211:	e8 20 d0 00 00       	call   0x40e236
401216:	b9 51 1b 41 00       	mov    $0x411b51,%ecx
40121b:	e9 35 47 00 00       	jmp    0x405955
401220:	8b 0d d4 7c 41 00    	mov    0x417cd4,%ecx
401226:	3b 0d 1c 78 41 00    	cmp    0x41781c,%ecx
40122c:	73 13                	jae    0x401241
40122e:	a1 9c 6d 41 00       	mov    0x416d9c,%eax
401233:	c7 04 88 5b 1b 41 00 	movl   $0x411b5b,(%eax,%ecx,4)
40123a:	41                   	inc    %ecx
40123b:	89 0d d4 7c 41 00    	mov    %ecx,0x417cd4
401241:	c3                   	ret
401242:	c7 01 00 26 41 00    	movl   $0x412600,(%ecx)
401248:	8b c1                	mov    %ecx,%eax
40124a:	c2 04 00             	ret    $0x4
40124d:	a1 88 66 41 00       	mov    0x416688,%eax
401252:	85 c0                	test   %eax,%eax
401254:	75 1c                	jne    0x401272
401256:	6a 18                	push   $0x18
401258:	59                   	pop    %ecx
401259:	e8 7d 48 00 00       	call   0x405adb
40125e:	85 c0                	test   %eax,%eax
401260:	74 09                	je     0x40126b
401262:	8b c8                	mov    %eax,%ecx
401264:	e8 bd 60 00 00       	call   0x407326
401269:	eb 02                	jmp    0x40126d
40126b:	33 c0                	xor    %eax,%eax
40126d:	a3 88 66 41 00       	mov    %eax,0x416688
401272:	c3                   	ret
401273:	55                   	push   %ebp
401274:	8b ec                	mov    %esp,%ebp
401276:	53                   	push   %ebx
401277:	56                   	push   %esi
401278:	57                   	push   %edi
401279:	8b f1                	mov    %ecx,%esi
40127b:	33 ff                	xor    %edi,%edi
40127d:	6a 05                	push   $0x5
40127f:	58                   	pop    %eax
401280:	89 46 0c             	mov    %eax,0xc(%esi)
401283:	89 46 04             	mov    %eax,0x4(%esi)
401286:	89 7e 08             	mov    %edi,0x8(%esi)
401289:	e8 46 02 00 00       	call   0x4014d4
40128e:	8b 5d 08             	mov    0x8(%ebp),%ebx
401291:	39 7b 08             	cmp    %edi,0x8(%ebx)
401294:	76 1b                	jbe    0x4012b1
401296:	83 ec 10             	sub    $0x10,%esp
401299:	8b cb                	mov    %ebx,%ecx
40129b:	8b c4                	mov    %esp,%eax
40129d:	57                   	push   %edi
40129e:	50                   	push   %eax
40129f:	e8 7d 02 00 00       	call   0x401521
4012a4:	8b ce                	mov    %esi,%ecx
4012a6:	e8 28 01 00 00       	call   0x4013d3
4012ab:	47                   	inc    %edi
4012ac:	3b 7b 08             	cmp    0x8(%ebx),%edi
4012af:	72 e5                	jb     0x401296
4012b1:	5f                   	pop    %edi
4012b2:	8b c6                	mov    %esi,%eax
4012b4:	5e                   	pop    %esi
4012b5:	5b                   	pop    %ebx
4012b6:	5d                   	pop    %ebp
4012b7:	c2 04 00             	ret    $0x4
4012ba:	55                   	push   %ebp
4012bb:	8b ec                	mov    %esp,%ebp
4012bd:	53                   	push   %ebx
4012be:	56                   	push   %esi
4012bf:	57                   	push   %edi
4012c0:	8b f1                	mov    %ecx,%esi
4012c2:	33 ff                	xor    %edi,%edi
4012c4:	6a 05                	push   $0x5
4012c6:	58                   	pop    %eax
4012c7:	89 46 0c             	mov    %eax,0xc(%esi)
4012ca:	89 46 04             	mov    %eax,0x4(%esi)
4012cd:	89 7e 08             	mov    %edi,0x8(%esi)
4012d0:	e8 ae 03 00 00       	call   0x401683
4012d5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4012d8:	39 7b 08             	cmp    %edi,0x8(%ebx)
4012db:	76 1b                	jbe    0x4012f8
4012dd:	83 ec 0c             	sub    $0xc,%esp
4012e0:	8b cb                	mov    %ebx,%ecx
4012e2:	8b c4                	mov    %esp,%eax
4012e4:	57                   	push   %edi
4012e5:	50                   	push   %eax
4012e6:	e8 ea 03 00 00       	call   0x4016d5
4012eb:	8b ce                	mov    %esi,%ecx
4012ed:	e8 6e 02 00 00       	call   0x401560
4012f2:	47                   	inc    %edi
4012f3:	3b 7b 08             	cmp    0x8(%ebx),%edi
4012f6:	72 e5                	jb     0x4012dd
4012f8:	5f                   	pop    %edi
4012f9:	8b c6                	mov    %esi,%eax
4012fb:	5e                   	pop    %esi
4012fc:	5b                   	pop    %ebx
4012fd:	5d                   	pop    %ebp
4012fe:	c2 04 00             	ret    $0x4
401301:	55                   	push   %ebp
401302:	8b ec                	mov    %esp,%ebp
401304:	53                   	push   %ebx
401305:	56                   	push   %esi
401306:	57                   	push   %edi
401307:	8b f1                	mov    %ecx,%esi
401309:	33 ff                	xor    %edi,%edi
40130b:	6a 05                	push   $0x5
40130d:	58                   	pop    %eax
40130e:	89 46 0c             	mov    %eax,0xc(%esi)
401311:	89 46 04             	mov    %eax,0x4(%esi)
401314:	89 7e 08             	mov    %edi,0x8(%esi)
401317:	e8 f9 04 00 00       	call   0x401815
40131c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40131f:	39 7b 08             	cmp    %edi,0x8(%ebx)
401322:	76 1b                	jbe    0x40133f
401324:	83 ec 18             	sub    $0x18,%esp
401327:	8b cb                	mov    %ebx,%ecx
401329:	8b c4                	mov    %esp,%eax
40132b:	57                   	push   %edi
40132c:	50                   	push   %eax
40132d:	e8 30 05 00 00       	call   0x401862
401332:	8b ce                	mov    %esi,%ecx
401334:	e8 dd 03 00 00       	call   0x401716
401339:	47                   	inc    %edi
40133a:	3b 7b 08             	cmp    0x8(%ebx),%edi
40133d:	72 e5                	jb     0x401324
40133f:	5f                   	pop    %edi
401340:	8b c6                	mov    %esi,%eax
401342:	5e                   	pop    %esi
401343:	5b                   	pop    %ebx
401344:	5d                   	pop    %ebp
401345:	c2 04 00             	ret    $0x4
401348:	55                   	push   %ebp
401349:	8b ec                	mov    %esp,%ebp
40134b:	53                   	push   %ebx
40134c:	56                   	push   %esi
40134d:	57                   	push   %edi
40134e:	8b f1                	mov    %ecx,%esi
401350:	33 ff                	xor    %edi,%edi
401352:	6a 05                	push   $0x5
401354:	58                   	pop    %eax
401355:	89 46 0c             	mov    %eax,0xc(%esi)
401358:	89 46 04             	mov    %eax,0x4(%esi)
40135b:	89 7e 08             	mov    %edi,0x8(%esi)
40135e:	e8 33 06 00 00       	call   0x401996
401363:	8b 5d 08             	mov    0x8(%ebp),%ebx
401366:	39 7b 08             	cmp    %edi,0x8(%ebx)
401369:	76 1b                	jbe    0x401386
40136b:	83 ec 0c             	sub    $0xc,%esp
40136e:	8b cb                	mov    %ebx,%ecx
401370:	8b c4                	mov    %esp,%eax
401372:	57                   	push   %edi
401373:	50                   	push   %eax
401374:	e8 6a 06 00 00       	call   0x4019e3
401379:	8b ce                	mov    %esi,%ecx
40137b:	e8 23 05 00 00       	call   0x4018a3
401380:	47                   	inc    %edi
401381:	3b 7b 08             	cmp    0x8(%ebx),%edi
401384:	72 e5                	jb     0x40136b
401386:	5f                   	pop    %edi
401387:	8b c6                	mov    %esi,%eax