406fb5:	f3 ab                	rep stos %eax,%es:(%edi)
406fb7:	85 d2                	test   %edx,%edx
406fb9:	74 0a                	je     0x406fc5
406fbb:	88 07                	mov    %al,(%edi)
406fbd:	83 c7 01             	add    $0x1,%edi
406fc0:	83 ea 01             	sub    $0x1,%edx
406fc3:	75 f6                	jne    0x406fbb
406fc5:	8b 44 24 08          	mov    0x8(%esp),%eax
406fc9:	5f                   	pop    %edi
406fca:	c3                   	ret
406fcb:	8b 44 24 04          	mov    0x4(%esp),%eax
406fcf:	c3                   	ret
406fd0:	6a 08                	push   $0x8
406fd2:	68 a0 e3 41 00       	push   $0x41e3a0
406fd7:	e8 d4 3d 00 00       	call   0x40adb0
406fdc:	8b 45 08             	mov    0x8(%ebp),%eax
406fdf:	85 c0                	test   %eax,%eax
406fe1:	74 72                	je     0x407055
406fe3:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
406fe9:	75 6a                	jne    0x407055
406feb:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
406fef:	75 64                	jne    0x407055
406ff1:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
406ff8:	74 12                	je     0x40700c
406ffa:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
407001:	74 09                	je     0x40700c
407003:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40700a:	75 49                	jne    0x407055
40700c:	8b 48 1c             	mov    0x1c(%eax),%ecx
40700f:	85 c9                	test   %ecx,%ecx
407011:	74 42                	je     0x407055
407013:	8b 51 04             	mov    0x4(%ecx),%edx
407016:	85 d2                	test   %edx,%edx
407018:	74 27                	je     0x407041
40701a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40701e:	52                   	push   %edx
40701f:	ff 70 18             	push   0x18(%eax)
407022:	e8 9d ef ff ff       	call   0x405fc4
407027:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40702e:	eb 25                	jmp    0x407055
407030:	33 c0                	xor    %eax,%eax
407032:	38 45 0c             	cmp    %al,0xc(%ebp)
407035:	0f 95 c0             	setne  %al
407038:	c3                   	ret
407039:	8b 65 e8             	mov    -0x18(%ebp),%esp
40703c:	e8 03 6e 00 00       	call   0x40de44
407041:	f6 01 10             	testb  $0x10,(%ecx)
407044:	74 0f                	je     0x407055
407046:	8b 40 18             	mov    0x18(%eax),%eax
407049:	8b 08                	mov    (%eax),%ecx
40704b:	85 c9                	test   %ecx,%ecx
40704d:	74 06                	je     0x407055
40704f:	8b 01                	mov    (%ecx),%eax
407051:	51                   	push   %ecx
407052:	ff 50 08             	call   *0x8(%eax)
407055:	e8 9b 3d 00 00       	call   0x40adf5
40705a:	c3                   	ret
40705b:	55                   	push   %ebp
40705c:	8b ec                	mov    %esp,%ebp
40705e:	56                   	push   %esi
40705f:	ff 75 08             	push   0x8(%ebp)
407062:	8b f1                	mov    %ecx,%esi
407064:	e8 a5 df ff ff       	call   0x40500e
407069:	c7 06 24 a3 41 00    	movl   $0x41a324,(%esi)
40706f:	8b c6                	mov    %esi,%eax
407071:	5e                   	pop    %esi
407072:	5d                   	pop    %ebp
407073:	c2 04 00             	ret    $0x4
407076:	c7 01 24 a3 41 00    	movl   $0x41a324,(%ecx)
40707c:	e9 b0 df ff ff       	jmp    0x405031
407081:	55                   	push   %ebp
407082:	8b ec                	mov    %esp,%ebp
407084:	56                   	push   %esi
407085:	8b f1                	mov    %ecx,%esi
407087:	c7 06 24 a3 41 00    	movl   $0x41a324,(%esi)
40708d:	e8 9f df ff ff       	call   0x405031
407092:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
407096:	74 07                	je     0x40709f
407098:	56                   	push   %esi
407099:	e8 5a de ff ff       	call   0x404ef8
40709e:	59                   	pop    %ecx
40709f:	8b c6                	mov    %esi,%eax
4070a1:	5e                   	pop    %esi
4070a2:	5d                   	pop    %ebp
4070a3:	c2 04 00             	ret    $0x4
4070a6:	6a 30                	push   $0x30
4070a8:	68 58 e3 41 00       	push   $0x41e358
4070ad:	e8 fe 3c 00 00       	call   0x40adb0
4070b2:	8b 45 18             	mov    0x18(%ebp),%eax
4070b5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4070b8:	33 db                	xor    %ebx,%ebx
4070ba:	89 5d c8             	mov    %ebx,-0x38(%ebp)
4070bd:	8b 7d 0c             	mov    0xc(%ebp),%edi
4070c0:	8b 47 fc             	mov    -0x4(%edi),%eax
4070c3:	89 45 d8             	mov    %eax,-0x28(%ebp)
4070c6:	8b 75 08             	mov    0x8(%ebp),%esi
4070c9:	ff 76 18             	push   0x18(%esi)
4070cc:	8d 45 c0             	lea    -0x40(%ebp),%eax
4070cf:	50                   	push   %eax
4070d0:	e8 cd f0 ff ff       	call   0x4061a2
4070d5:	59                   	pop    %ecx
4070d6:	59                   	pop    %ecx
4070d7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4070da:	e8 f7 52 00 00       	call   0x40c3d6
4070df:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
4070e5:	89 45 d0             	mov    %eax,-0x30(%ebp)
4070e8:	e8 e9 52 00 00       	call   0x40c3d6
4070ed:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
4070f3:	89 45 cc             	mov    %eax,-0x34(%ebp)
4070f6:	e8 db 52 00 00       	call   0x40c3d6
4070fb:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
407101:	e8 d0 52 00 00       	call   0x40c3d6
407106:	8b 4d 10             	mov    0x10(%ebp),%ecx
407109:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
40710f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407112:	33 c0                	xor    %eax,%eax
407114:	40                   	inc    %eax
407115:	89 45 10             	mov    %eax,0x10(%ebp)
407118:	89 45 fc             	mov    %eax,-0x4(%ebp)
40711b:	ff 75 20             	push   0x20(%ebp)
40711e:	ff 75 1c             	push   0x1c(%ebp)
407121:	ff 75 18             	push   0x18(%ebp)
407124:	ff 75 14             	push   0x14(%ebp)
407127:	57                   	push   %edi
407128:	e8 39 ee ff ff       	call   0x405f66
40712d:	83 c4 14             	add    $0x14,%esp
407130:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407133:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407136:	e9 99 00 00 00       	jmp    0x4071d4
40713b:	ff 75 ec             	push   -0x14(%ebp)
40713e:	e8 ec 01 00 00       	call   0x40732f
407143:	59                   	pop    %ecx
407144:	c3                   	ret
407145:	8b 65 e8             	mov    -0x18(%ebp),%esp
407148:	e8 89 52 00 00       	call   0x40c3d6
40714d:	33 db                	xor    %ebx,%ebx
40714f:	89 98 ac 03 00 00    	mov    %ebx,0x3ac(%eax)
407155:	8b 55 14             	mov    0x14(%ebp),%edx
407158:	8b 7d 0c             	mov    0xc(%ebp),%edi
40715b:	81 7a 04 80 00 00 00 	cmpl   $0x80,0x4(%edx)
407162:	7f 06                	jg     0x40716a
407164:	0f be 4f 08          	movsbl 0x8(%edi),%ecx
407168:	eb 03                	jmp    0x40716d
40716a:	8b 4f 08             	mov    0x8(%edi),%ecx
40716d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
407170:	8b 42 10             	mov    0x10(%edx),%eax
407173:	89 45 18             	mov    %eax,0x18(%ebp)
407176:	8b c3                	mov    %ebx,%eax
407178:	89 45 dc             	mov    %eax,-0x24(%ebp)
40717b:	39 42 0c             	cmp    %eax,0xc(%edx)
40717e:	76 3f                	jbe    0x4071bf
407180:	8b f0                	mov    %eax,%esi
407182:	6b f6 14             	imul   $0x14,%esi,%esi
407185:	8b 7a 10             	mov    0x10(%edx),%edi
407188:	3b 4c 3e 04          	cmp    0x4(%esi,%edi,1),%ecx
40718c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40718f:	7e 25                	jle    0x4071b6
407191:	8b 55 18             	mov    0x18(%ebp),%edx
407194:	3b 4c 16 08          	cmp    0x8(%esi,%edx,1),%ecx
407198:	8b 55 14             	mov    0x14(%ebp),%edx
40719b:	7f 19                	jg     0x4071b6
40719d:	6b c0 14             	imul   $0x14,%eax,%eax
4071a0:	8b 4a 10             	mov    0x10(%edx),%ecx
4071a3:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
4071a7:	40                   	inc    %eax
4071a8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4071ab:	8b 4a 08             	mov    0x8(%edx),%ecx
4071ae:	8b 0c c1             	mov    (%ecx,%eax,8),%ecx
4071b1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4071b4:	eb 09                	jmp    0x4071bf
4071b6:	40                   	inc    %eax
4071b7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4071ba:	3b 42 0c             	cmp    0xc(%edx),%eax
4071bd:	72 c1                	jb     0x407180
4071bf:	51                   	push   %ecx
4071c0:	52                   	push   %edx
4071c1:	53                   	push   %ebx
4071c2:	57                   	push   %edi
4071c3:	e8 86 09 00 00       	call   0x407b4e
4071c8:	83 c4 10             	add    $0x10,%esp
4071cb:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4071ce:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4071d1:	8b 75 08             	mov    0x8(%ebp),%esi
4071d4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4071db:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
4071e2:	e8 0e 00 00 00       	call   0x4071f5
4071e7:	8b c7                	mov    %edi,%eax
4071e9:	e8 07 3c 00 00       	call   0x40adf5
4071ee:	c3                   	ret
4071ef:	8b 7d 0c             	mov    0xc(%ebp),%edi
4071f2:	8b 75 08             	mov    0x8(%ebp),%esi
4071f5:	8b 45 d8             	mov    -0x28(%ebp),%eax
4071f8:	89 47 fc             	mov    %eax,-0x4(%edi)
4071fb:	ff 75 d4             	push   -0x2c(%ebp)
4071fe:	e8 c9 ef ff ff       	call   0x4061cc
407203:	59                   	pop    %ecx
407204:	e8 cd 51 00 00       	call   0x40c3d6
407209:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40720c:	89 88 88 00 00 00    	mov    %ecx,0x88(%eax)
407212:	e8 bf 51 00 00       	call   0x40c3d6
407217:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40721a:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
407220:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
407226:	75 48                	jne    0x407270
407228:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40722c:	75 42                	jne    0x407270
40722e:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
407235:	74 12                	je     0x407249
407237:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)
40723e:	74 09                	je     0x407249
407240:	81 7e 14 22 05 93 19 	cmpl   $0x19930522,0x14(%esi)
407247:	75 27                	jne    0x407270
407249:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40724c:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
407250:	75 21                	jne    0x407273
407252:	85 ff                	test   %edi,%edi
407254:	74 1d                	je     0x407273
407256:	ff 76 18             	push   0x18(%esi)
407259:	e8 be ef ff ff       	call   0x40621c
40725e:	59                   	pop    %ecx
40725f:	85 c0                	test   %eax,%eax
407261:	74 10                	je     0x407273
407263:	ff 75 10             	push   0x10(%ebp)
407266:	56                   	push   %esi
407267:	e8 64 fd ff ff       	call   0x406fd0
40726c:	59                   	pop    %ecx
40726d:	59                   	pop    %ecx
40726e:	eb 03                	jmp    0x407273
407270:	8b 7d e4             	mov    -0x1c(%ebp),%edi
407273:	c3                   	ret
407274:	6a 04                	push   $0x4
407276:	b8 1d 7c 41 00       	mov    $0x417c1d,%eax
40727b:	e8 e2 eb ff ff       	call   0x405e62
407280:	e8 51 51 00 00       	call   0x40c3d6
407285:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
40728c:	74 05                	je     0x407293
40728e:	e8 79 6b 00 00       	call   0x40de0c
407293:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407297:	e8 dc 6b 00 00       	call   0x40de78
40729c:	e8 35 51 00 00       	call   0x40c3d6
4072a1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4072a4:	6a 00                	push   $0x0
4072a6:	6a 00                	push   $0x0
4072a8:	89 88 94 00 00 00    	mov    %ecx,0x94(%eax)
4072ae:	e8 c8 ea ff ff       	call   0x405d7b
4072b3:	cc                   	int3
4072b4:	55                   	push   %ebp
4072b5:	8b ec                	mov    %esp,%ebp
4072b7:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4072bb:	57                   	push   %edi
4072bc:	8b 7d 0c             	mov    0xc(%ebp),%edi
4072bf:	74 12                	je     0x4072d3
4072c1:	ff 75 20             	push   0x20(%ebp)
4072c4:	ff 75 1c             	push   0x1c(%ebp)
4072c7:	57                   	push   %edi
4072c8:	ff 75 08             	push   0x8(%ebp)
4072cb:	e8 1d 06 00 00       	call   0x4078ed
4072d0:	83 c4 10             	add    $0x10,%esp
4072d3:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4072d7:	ff 75 08             	push   0x8(%ebp)
4072da:	75 03                	jne    0x4072df
4072dc:	57                   	push   %edi
4072dd:	eb 03                	jmp    0x4072e2
4072df:	ff 75 2c             	push   0x2c(%ebp)
4072e2:	e8 68 ee ff ff       	call   0x40614f
4072e7:	56                   	push   %esi
4072e8:	8b 75 24             	mov    0x24(%ebp),%esi
4072eb:	ff 36                	push   (%esi)
4072ed:	ff 75 18             	push   0x18(%ebp)
4072f0:	ff 75 14             	push   0x14(%ebp)
4072f3:	57                   	push   %edi
4072f4:	e8 55 08 00 00       	call   0x407b4e
4072f9:	8b 46 04             	mov    0x4(%esi),%eax
4072fc:	68 00 01 00 00       	push   $0x100
407301:	ff 75 28             	push   0x28(%ebp)
407304:	40                   	inc    %eax
407305:	89 47 08             	mov    %eax,0x8(%edi)
407308:	8b 45 1c             	mov    0x1c(%ebp),%eax
40730b:	ff 70 0c             	push   0xc(%eax)
40730e:	ff 75 18             	push   0x18(%ebp)
407311:	ff 75 10             	push   0x10(%ebp)
407314:	57                   	push   %edi
407315:	ff 75 08             	push   0x8(%ebp)
407318:	e8 89 fd ff ff       	call   0x4070a6
40731d:	83 c4 2c             	add    $0x2c,%esp
407320:	5e                   	pop    %esi
407321:	85 c0                	test   %eax,%eax
407323:	74 07                	je     0x40732c
407325:	57                   	push   %edi
407326:	50                   	push   %eax
407327:	e8 f3 ed ff ff       	call   0x40611f
40732c:	5f                   	pop    %edi
40732d:	5d                   	pop    %ebp
40732e:	c3                   	ret
40732f:	55                   	push   %ebp
407330:	8b ec                	mov    %esp,%ebp
407332:	8b 45 08             	mov    0x8(%ebp),%eax
407335:	8b 00                	mov    (%eax),%eax
407337:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40733d:	75 39                	jne    0x407378
40733f:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
407343:	75 33                	jne    0x407378
407345:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40734c:	74 12                	je     0x407360
40734e:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
407355:	74 09                	je     0x407360
407357:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40735e:	75 18                	jne    0x407378
407360:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
407364:	75 12                	jne    0x407378
407366:	e8 6b 50 00 00       	call   0x40c3d6
40736b:	33 c9                	xor    %ecx,%ecx
40736d:	41                   	inc    %ecx
40736e:	89 88 ac 03 00 00    	mov    %ecx,0x3ac(%eax)
407374:	8b c1                	mov    %ecx,%eax
407376:	5d                   	pop    %ebp
407377:	c3                   	ret
407378:	33 c0                	xor    %eax,%eax
40737a:	5d                   	pop    %ebp
40737b:	c3                   	ret
40737c:	55                   	push   %ebp
40737d:	8b ec                	mov    %esp,%ebp
40737f:	83 ec 3c             	sub    $0x3c,%esp
407382:	8b 45 0c             	mov    0xc(%ebp),%eax
407385:	53                   	push   %ebx
407386:	56                   	push   %esi
407387:	57                   	push   %edi
407388:	8b 7d 18             	mov    0x18(%ebp),%edi
40738b:	33 db                	xor    %ebx,%ebx
40738d:	81 7f 04 80 00 00 00 	cmpl   $0x80,0x4(%edi)
407394:	88 5d dc             	mov    %bl,-0x24(%ebp)
407397:	88 5d ff             	mov    %bl,-0x1(%ebp)
40739a:	7f 06                	jg     0x4073a2
40739c:	0f be 40 08          	movsbl 0x8(%eax),%eax
4073a0:	eb 03                	jmp    0x4073a5
4073a2:	8b 40 08             	mov    0x8(%eax),%eax
4073a5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4073a8:	83 f8 ff             	cmp    $0xffffffff,%eax
4073ab:	7c 05                	jl     0x4073b2
4073ad:	3b 47 04             	cmp    0x4(%edi),%eax
4073b0:	7c 05                	jl     0x4073b7
4073b2:	e8 55 6a 00 00       	call   0x40de0c
4073b7:	8b 75 08             	mov    0x8(%ebp),%esi
4073ba:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
4073c0:	0f 85 ba 02 00 00    	jne    0x407680
4073c6:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
4073ca:	0f 85 0d 01 00 00    	jne    0x4074dd
4073d0:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
4073d7:	74 16                	je     0x4073ef
4073d9:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)