4070ff:	8b 75 08             	mov    0x8(%ebp),%esi
407102:	8b f8                	mov    %eax,%edi
407104:	83 c4 04             	add    $0x4,%esp
407107:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
40710b:	0f 84 fb 00 00 00    	je     0x40720c
407111:	8b 47 28             	mov    0x28(%edi),%eax
407114:	50                   	push   %eax
407115:	6a 08                	push   $0x8
407117:	6a 5c                	push   $0x5c
407119:	6a 63                	push   $0x63
40711b:	56                   	push   %esi
40711c:	e8 ef b0 00 00       	call   0x412210
407121:	83 c4 08             	add    $0x8,%esp
407124:	50                   	push   %eax
407125:	e8 e6 1c 01 00       	call   0x418e10
40712a:	83 c4 10             	add    $0x10,%esp
40712d:	85 c0                	test   %eax,%eax
40712f:	0f 85 f3 00 00 00    	jne    0x407228
407135:	8b 4f 28             	mov    0x28(%edi),%ecx
407138:	51                   	push   %ecx
407139:	6a 0c                	push   $0xc
40713b:	6a 5c                	push   $0x5c
40713d:	6a 64                	push   $0x64
40713f:	56                   	push   %esi
407140:	e8 cb b0 00 00       	call   0x412210
407145:	83 c4 08             	add    $0x8,%esp
407148:	50                   	push   %eax
407149:	e8 c2 1c 01 00       	call   0x418e10
40714e:	83 c4 10             	add    $0x10,%esp
407151:	85 c0                	test   %eax,%eax
407153:	0f 85 cf 00 00 00    	jne    0x407228
407159:	8b 57 28             	mov    0x28(%edi),%edx
40715c:	52                   	push   %edx
40715d:	6a 08                	push   $0x8
40715f:	6a 5c                	push   $0x5c
407161:	6a 65                	push   $0x65
407163:	56                   	push   %esi
407164:	e8 a7 b0 00 00       	call   0x412210
407169:	83 c4 08             	add    $0x8,%esp
40716c:	50                   	push   %eax
40716d:	e8 9e 1c 01 00       	call   0x418e10
407172:	83 c4 10             	add    $0x10,%esp
407175:	85 c0                	test   %eax,%eax
407177:	0f 85 ab 00 00 00    	jne    0x407228
40717d:	8b 47 28             	mov    0x28(%edi),%eax
407180:	50                   	push   %eax
407181:	6a 09                	push   $0x9
407183:	6a 5c                	push   $0x5c
407185:	6a 66                	push   $0x66
407187:	56                   	push   %esi
407188:	e8 83 b0 00 00       	call   0x412210
40718d:	83 c4 08             	add    $0x8,%esp
407190:	50                   	push   %eax
407191:	e8 7a 1c 01 00       	call   0x418e10
407196:	83 c4 10             	add    $0x10,%esp
407199:	85 c0                	test   %eax,%eax
40719b:	0f 85 87 00 00 00    	jne    0x407228
4071a1:	8b 4f 28             	mov    0x28(%edi),%ecx
4071a4:	51                   	push   %ecx
4071a5:	6a 08                	push   $0x8
4071a7:	6a 5c                	push   $0x5c
4071a9:	6a 67                	push   $0x67
4071ab:	56                   	push   %esi
4071ac:	e8 5f b0 00 00       	call   0x412210
4071b1:	83 c4 08             	add    $0x8,%esp
4071b4:	50                   	push   %eax
4071b5:	e8 56 1c 01 00       	call   0x418e10
4071ba:	83 c4 10             	add    $0x10,%esp
4071bd:	85 c0                	test   %eax,%eax
4071bf:	75 67                	jne    0x407228
4071c1:	8b 57 28             	mov    0x28(%edi),%edx
4071c4:	52                   	push   %edx
4071c5:	6a 09                	push   $0x9
4071c7:	6a 5c                	push   $0x5c
4071c9:	6a 68                	push   $0x68
4071cb:	56                   	push   %esi
4071cc:	e8 3f b0 00 00       	call   0x412210
4071d1:	83 c4 08             	add    $0x8,%esp
4071d4:	50                   	push   %eax
4071d5:	e8 36 1c 01 00       	call   0x418e10
4071da:	83 c4 10             	add    $0x10,%esp
4071dd:	85 c0                	test   %eax,%eax
4071df:	75 47                	jne    0x407228
4071e1:	8b 47 28             	mov    0x28(%edi),%eax
4071e4:	50                   	push   %eax
4071e5:	6a 0e                	push   $0xe
4071e7:	6a 5c                	push   $0x5c
4071e9:	6a 69                	push   $0x69
4071eb:	56                   	push   %esi
4071ec:	e8 1f b0 00 00       	call   0x412210
4071f1:	83 c4 08             	add    $0x8,%esp
4071f4:	50                   	push   %eax
4071f5:	e8 16 1c 01 00       	call   0x418e10
4071fa:	83 c4 10             	add    $0x10,%esp
4071fd:	85 c0                	test   %eax,%eax
4071ff:	75 27                	jne    0x407228
407201:	8b 3f                	mov    (%edi),%edi
407203:	39 47 18             	cmp    %eax,0x18(%edi)
407206:	0f 85 05 ff ff ff    	jne    0x407111
40720c:	83 86 64 04 00 00 f8 	addl   $0xfffffff8,0x464(%esi)
407213:	00 5e 2f             	add    %bl,0x2f(%esi)
407216:	8a 46 2f             	mov    0x2f(%esi),%al
407219:	fe c0                	inc    %al
40721b:	00 46 30             	add    %al,0x30(%esi)
40721e:	5f                   	pop    %edi
40721f:	5e                   	pop    %esi
407220:	b8 01 00 00 00       	mov    $0x1,%eax
407225:	5b                   	pop    %ebx
407226:	5d                   	pop    %ebp
407227:	c3                   	ret
407228:	8b 4e 04             	mov    0x4(%esi),%ecx
40722b:	31 8e 88 04 00 00    	xor    %ecx,0x488(%esi)
407231:	b3 01                	mov    $0x1,%bl
407233:	eb de                	jmp    0x407213
407235:	cc                   	int3
407236:	cc                   	int3
407237:	cc                   	int3
407238:	cc                   	int3
407239:	cc                   	int3
40723a:	cc                   	int3
40723b:	cc                   	int3
40723c:	cc                   	int3
40723d:	cc                   	int3
40723e:	cc                   	int3
40723f:	cc                   	int3
407240:	55                   	push   %ebp
407241:	8b ec                	mov    %esp,%ebp
407243:	51                   	push   %ecx
407244:	0f 31                	rdtsc
407246:	33 c9                	xor    %ecx,%ecx
407248:	03 c8                	add    %eax,%ecx
40724a:	0f 31                	rdtsc
40724c:	2b c1                	sub    %ecx,%eax
40724e:	89 45 fc             	mov    %eax,-0x4(%ebp)
407251:	b8 50 00 00 00       	mov    $0x50,%eax
407256:	8b e5                	mov    %ebp,%esp
407258:	5d                   	pop    %ebp
407259:	c3                   	ret
40725a:	79 e8                	jns    0x407244
40725c:	24 c4                	and    $0xc4,%al
40725e:	1e                   	push   %ds
40725f:	d0 55 8b             	rclb   $1,-0x75(%ebp)
407262:	ec                   	in     (%dx),%al
407263:	56                   	push   %esi
407264:	8b 75 08             	mov    0x8(%ebp),%esi
407267:	81 c6 1c 0a 00 00    	add    $0xa1c,%esi
40726d:	56                   	push   %esi
40726e:	e8 bd 22 01 00       	call   0x419530
407273:	83 c4 04             	add    $0x4,%esp
407276:	33 c9                	xor    %ecx,%ecx
407278:	85 c0                	test   %eax,%eax
40727a:	74 11                	je     0x40728d
40727c:	8b 16                	mov    (%esi),%edx
40727e:	8b 75 0c             	mov    0xc(%ebp),%esi
407281:	39 32                	cmp    %esi,(%edx)
407283:	74 0d                	je     0x407292
407285:	41                   	inc    %ecx
407286:	83 c2 04             	add    $0x4,%edx
407289:	3b c8                	cmp    %eax,%ecx
40728b:	72 f4                	jb     0x407281
40728d:	33 c0                	xor    %eax,%eax
40728f:	5e                   	pop    %esi
407290:	5d                   	pop    %ebp
407291:	c3                   	ret
407292:	b8 01 00 00 00       	mov    $0x1,%eax
407297:	5e                   	pop    %esi
407298:	5d                   	pop    %ebp
407299:	c3                   	ret
40729a:	23 e0                	and    %eax,%esp
40729c:	b8 74 24 5b 55       	mov    $0x555b2474,%eax
4072a1:	8b ec                	mov    %esp,%ebp
4072a3:	81 ec f4 00 00 00    	sub    $0xf4,%esp
4072a9:	53                   	push   %ebx
4072aa:	57                   	push   %edi
4072ab:	8b 7d 0c             	mov    0xc(%ebp),%edi
4072ae:	33 db                	xor    %ebx,%ebx
4072b0:	33 c0                	xor    %eax,%eax
4072b2:	3b fb                	cmp    %ebx,%edi
4072b4:	0f 84 20 01 00 00    	je     0x4073da
4072ba:	68 aa 00 00 00       	push   $0xaa
4072bf:	89 45 e9             	mov    %eax,-0x17(%ebp)
4072c2:	89 45 ed             	mov    %eax,-0x13(%ebp)
4072c5:	89 45 f1             	mov    %eax,-0xf(%ebp)
4072c8:	89 45 f5             	mov    %eax,-0xb(%ebp)
4072cb:	89 45 f9             	mov    %eax,-0x7(%ebp)
4072ce:	66 89 45 fd          	mov    %ax,-0x3(%ebp)
4072d2:	88 45 ff             	mov    %al,-0x1(%ebp)
4072d5:	89 45 b9             	mov    %eax,-0x47(%ebp)
4072d8:	89 45 bd             	mov    %eax,-0x43(%ebp)
4072db:	89 45 c1             	mov    %eax,-0x3f(%ebp)
4072de:	89 45 c5             	mov    %eax,-0x3b(%ebp)
4072e1:	89 45 c9             	mov    %eax,-0x37(%ebp)
4072e4:	66 89 45 cd          	mov    %ax,-0x33(%ebp)
4072e8:	88 45 cf             	mov    %al,-0x31(%ebp)
4072eb:	89 45 d1             	mov    %eax,-0x2f(%ebp)
4072ee:	89 45 d5             	mov    %eax,-0x2b(%ebp)
4072f1:	89 45 d9             	mov    %eax,-0x27(%ebp)
4072f4:	89 45 dd             	mov    %eax,-0x23(%ebp)
4072f7:	89 45 e1             	mov    %eax,-0x1f(%ebp)
4072fa:	66 89 45 e5          	mov    %ax,-0x1b(%ebp)
4072fe:	88 45 e7             	mov    %al,-0x19(%ebp)
407301:	8d 85 0d ff ff ff    	lea    -0xf3(%ebp),%eax
407307:	53                   	push   %ebx
407308:	50                   	push   %eax
407309:	88 5d e8             	mov    %bl,-0x18(%ebp)
40730c:	88 5d b8             	mov    %bl,-0x48(%ebp)
40730f:	88 5d d0             	mov    %bl,-0x30(%ebp)
407312:	88 9d 0c ff ff ff    	mov    %bl,-0xf4(%ebp)
407318:	e8 c3 10 01 00       	call   0x4183e0
40731d:	83 c4 0c             	add    $0xc,%esp
407320:	6a 14                	push   $0x14
407322:	e8 9c 3b 01 00       	call   0x41aec3
407327:	83 c0 02             	add    $0x2,%eax
40732a:	50                   	push   %eax
40732b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40732e:	51                   	push   %ecx
40732f:	e8 ec bd 00 00       	call   0x413120
407334:	83 c4 0c             	add    $0xc,%esp
407337:	6a 14                	push   $0x14
407339:	e8 d6 37 01 00       	call   0x41ab14
40733e:	83 c0 02             	add    $0x2,%eax
407341:	50                   	push   %eax
407342:	8d 55 d0             	lea    -0x30(%ebp),%edx
407345:	52                   	push   %edx
407346:	e8 d5 bd 00 00       	call   0x413120
40734b:	83 c4 0c             	add    $0xc,%esp
40734e:	68 a9 00 00 00       	push   $0xa9
407353:	e8 6c 3c 01 00       	call   0x41afc4
407358:	83 c0 02             	add    $0x2,%eax
40735b:	50                   	push   %eax
40735c:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
407362:	50                   	push   %eax
407363:	e8 b8 bd 00 00       	call   0x413120
407368:	8d 8d 0c ff ff ff    	lea    -0xf4(%ebp),%ecx
40736e:	51                   	push   %ecx
40736f:	e8 ec d9 ff ff       	call   0x404d60
407374:	6a 14                	push   $0x14
407376:	8d 95 70 ff ff ff    	lea    -0x90(%ebp),%edx
40737c:	52                   	push   %edx
40737d:	8d 45 e8             	lea    -0x18(%ebp),%eax
407380:	50                   	push   %eax
407381:	e8 da 0f 01 00       	call   0x418360
407386:	8d 4d d0             	lea    -0x30(%ebp),%ecx
407389:	51                   	push   %ecx
40738a:	8d 55 e8             	lea    -0x18(%ebp),%edx
40738d:	6a 14                	push   $0x14
40738f:	52                   	push   %edx
407390:	e8 8b 0f 00 00       	call   0x408320
407395:	8d 45 b8             	lea    -0x48(%ebp),%eax
407398:	50                   	push   %eax
407399:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40739c:	6a 14                	push   $0x14
40739e:	51                   	push   %ecx
40739f:	e8 7c 0f 00 00       	call   0x408320
4073a4:	83 c4 34             	add    $0x34,%esp
4073a7:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4073aa:	75 04                	jne    0x4073b0
4073ac:	66 89 5d f6          	mov    %bx,-0xa(%ebp)
4073b0:	81 7d e8 77 77 77 2e 	cmpl   $0x2e777777,-0x18(%ebp)
4073b7:	75 05                	jne    0x4073be
4073b9:	bb 04 00 00 00       	mov    $0x4,%ebx
4073be:	56                   	push   %esi
4073bf:	8d 74 1d e8          	lea    -0x18(%ebp,%ebx,1),%esi
4073c3:	56                   	push   %esi
4073c4:	e8 67 12 01 00       	call   0x418630
4073c9:	50                   	push   %eax
4073ca:	56                   	push   %esi
4073cb:	57                   	push   %edi
4073cc:	e8 8f 0f 01 00       	call   0x418360
4073d1:	83 c4 10             	add    $0x10,%esp
4073d4:	b8 01 00 00 00       	mov    $0x1,%eax
4073d9:	5e                   	pop    %esi
4073da:	5f                   	pop    %edi
4073db:	5b                   	pop    %ebx
4073dc:	8b e5                	mov    %ebp,%esp
4073de:	5d                   	pop    %ebp
4073df:	c3                   	ret
4073e0:	55                   	push   %ebp
4073e1:	8b ec                	mov    %esp,%ebp
4073e3:	81 ec 44 03 00 00    	sub    $0x344,%esp
4073e9:	53                   	push   %ebx
4073ea:	56                   	push   %esi
4073eb:	8b 75 08             	mov    0x8(%ebp),%esi
4073ee:	8d 45 ec             	lea    -0x14(%ebp),%eax
4073f1:	50                   	push   %eax
4073f2:	56                   	push   %esi
4073f3:	32 db                	xor    %bl,%bl
4073f5:	e8 e6 e3 ff ff       	call   0x4057e0
4073fa:	83 c4 08             	add    $0x8,%esp
4073fd:	85 c0                	test   %eax,%eax
4073ff:	75 06                	jne    0x407407
407401:	5e                   	pop    %esi
407402:	5b                   	pop    %ebx
407403:	8b e5                	mov    %ebp,%esp
407405:	5d                   	pop    %ebp
407406:	c3                   	ret
407407:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
40740d:	51                   	push   %ecx
40740e:	8d 55 ec             	lea    -0x14(%ebp),%edx
407411:	52                   	push   %edx
407412:	e8 d9 e5 ff ff       	call   0x4059f0
407417:	83 c4 08             	add    $0x8,%esp
40741a:	57                   	push   %edi
40741b:	eb 03                	jmp    0x407420
40741d:	8d 49 00             	lea    0x0(%ecx),%ecx
407420:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
407426:	68 04 01 00 00       	push   $0x104
40742b:	50                   	push   %eax
40742c:	e8 5f 0f 01 00       	call   0x418390
407431:	8d 8d e0 fc ff ff    	lea    -0x320(%ebp),%ecx
407437:	51                   	push   %ecx
407438:	8d 95 e8 fe ff ff    	lea    -0x118(%ebp),%edx
40743e:	52                   	push   %edx
40743f:	e8 bc 15 01 00       	call   0x418a00
407444:	83 c4 10             	add    $0x10,%esp
407447:	bf 4f 00 00 00       	mov    $0x4f,%edi
40744c:	8d 64 24 00          	lea    0x0(%esp),%esp
407450:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
407456:	50                   	push   %eax
407457:	57                   	push   %edi
407458:	56                   	push   %esi
407459:	e8 b2 ad 00 00       	call   0x412210
40745e:	83 c4 08             	add    $0x8,%esp
407461:	50                   	push   %eax
407462:	e8 09 ae 00 00       	call   0x412270
407467:	83 c4 08             	add    $0x8,%esp
40746a:	85 c0                	test   %eax,%eax
40746c:	75 08                	jne    0x407476
40746e:	47                   	inc    %edi
40746f:	83 ff 62             	cmp    $0x62,%edi
407472:	76 dc                	jbe    0x407450
407474:	eb 0b                	jmp    0x407481
407476:	8b 4e 14             	mov    0x14(%esi),%ecx
407479:	31 8e 74 04 00 00    	xor    %ecx,0x474(%esi)
40747f:	b3 01                	mov    $0x1,%bl
407481:	8d 95 bc fc ff ff    	lea    -0x344(%ebp),%edx
407487:	52                   	push   %edx
407488:	8d 45 ec             	lea    -0x14(%ebp),%eax
40748b:	50                   	push   %eax
40748c:	e8 8f e5 ff ff       	call   0x405a20
407491:	83 c4 08             	add    $0x8,%esp
407494:	85 c0                	test   %eax,%eax
407496:	74 04                	je     0x40749c
407498:	84 db                	test   %bl,%bl
40749a:	74 84                	je     0x407420
40749c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40749f:	51                   	push   %ecx
4074a0:	56                   	push   %esi
4074a1:	e8 fa e5 ff ff       	call   0x405aa0
4074a6:	83 c4 08             	add    $0x8,%esp