40d172:	40                   	inc    %eax
40d173:	38 18                	cmp    %bl,(%eax)
40d175:	75 f6                	jne    0x40d16d
40d177:	2b c6                	sub    %esi,%eax
40d179:	40                   	inc    %eax
40d17a:	50                   	push   %eax
40d17b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d17e:	e8 dd a9 ff ff       	call   0x407b60
40d183:	8b f8                	mov    %eax,%edi
40d185:	59                   	pop    %ecx
40d186:	3b fb                	cmp    %ebx,%edi
40d188:	75 0c                	jne    0x40d196
40d18a:	56                   	push   %esi
40d18b:	ff 15 24 a1 41 00    	call   *0x41a124
40d191:	e9 45 ff ff ff       	jmp    0x40d0db
40d196:	ff 75 f8             	push   -0x8(%ebp)
40d199:	56                   	push   %esi
40d19a:	57                   	push   %edi
40d19b:	e8 60 af ff ff       	call   0x408100
40d1a0:	83 c4 0c             	add    $0xc,%esp
40d1a3:	56                   	push   %esi
40d1a4:	ff 15 24 a1 41 00    	call   *0x41a124
40d1aa:	8b c7                	mov    %edi,%eax
40d1ac:	5f                   	pop    %edi
40d1ad:	5e                   	pop    %esi
40d1ae:	5b                   	pop    %ebx
40d1af:	c9                   	leave
40d1b0:	c3                   	ret
40d1b1:	8b ff                	mov    %edi,%edi
40d1b3:	56                   	push   %esi
40d1b4:	b8 bc 93 42 00       	mov    $0x4293bc,%eax
40d1b9:	be bc 93 42 00       	mov    $0x4293bc,%esi
40d1be:	57                   	push   %edi
40d1bf:	8b f8                	mov    %eax,%edi
40d1c1:	3b c6                	cmp    %esi,%eax
40d1c3:	73 0f                	jae    0x40d1d4
40d1c5:	8b 07                	mov    (%edi),%eax
40d1c7:	85 c0                	test   %eax,%eax
40d1c9:	74 02                	je     0x40d1cd
40d1cb:	ff d0                	call   *%eax
40d1cd:	83 c7 04             	add    $0x4,%edi
40d1d0:	3b fe                	cmp    %esi,%edi
40d1d2:	72 f1                	jb     0x40d1c5
40d1d4:	5f                   	pop    %edi
40d1d5:	5e                   	pop    %esi
40d1d6:	c3                   	ret
40d1d7:	8b ff                	mov    %edi,%edi
40d1d9:	56                   	push   %esi
40d1da:	b8 c4 93 42 00       	mov    $0x4293c4,%eax
40d1df:	be c4 93 42 00       	mov    $0x4293c4,%esi
40d1e4:	57                   	push   %edi
40d1e5:	8b f8                	mov    %eax,%edi
40d1e7:	3b c6                	cmp    %esi,%eax
40d1e9:	73 0f                	jae    0x40d1fa
40d1eb:	8b 07                	mov    (%edi),%eax
40d1ed:	85 c0                	test   %eax,%eax
40d1ef:	74 02                	je     0x40d1f3
40d1f1:	ff d0                	call   *%eax
40d1f3:	83 c7 04             	add    $0x4,%edi
40d1f6:	3b fe                	cmp    %esi,%edi
40d1f8:	72 f1                	jb     0x40d1eb
40d1fa:	5f                   	pop    %edi
40d1fb:	5e                   	pop    %esi
40d1fc:	c3                   	ret
40d1fd:	8b ff                	mov    %edi,%edi
40d1ff:	55                   	push   %ebp
40d200:	8b ec                	mov    %esp,%ebp
40d202:	83 ec 10             	sub    $0x10,%esp
40d205:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d20a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40d20e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d212:	53                   	push   %ebx
40d213:	57                   	push   %edi
40d214:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40d219:	bb 00 00 ff ff       	mov    $0xffff0000,%ebx
40d21e:	3b c7                	cmp    %edi,%eax
40d220:	74 0d                	je     0x40d22f
40d222:	85 c3                	test   %eax,%ebx
40d224:	74 09                	je     0x40d22f
40d226:	f7 d0                	not    %eax
40d228:	a3 6c b2 42 00       	mov    %eax,0x42b26c
40d22d:	eb 60                	jmp    0x40d28f
40d22f:	56                   	push   %esi
40d230:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d233:	50                   	push   %eax
40d234:	ff 15 38 a1 41 00    	call   *0x41a138
40d23a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40d23d:	33 75 f8             	xor    -0x8(%ebp),%esi
40d240:	ff 15 34 a1 41 00    	call   *0x41a134
40d246:	33 f0                	xor    %eax,%esi
40d248:	ff 15 00 a1 41 00    	call   *0x41a100
40d24e:	33 f0                	xor    %eax,%esi
40d250:	ff 15 30 a1 41 00    	call   *0x41a130
40d256:	33 f0                	xor    %eax,%esi
40d258:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d25b:	50                   	push   %eax
40d25c:	ff 15 2c a1 41 00    	call   *0x41a12c
40d262:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d265:	33 45 f0             	xor    -0x10(%ebp),%eax
40d268:	33 f0                	xor    %eax,%esi
40d26a:	3b f7                	cmp    %edi,%esi
40d26c:	75 07                	jne    0x40d275
40d26e:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
40d273:	eb 0b                	jmp    0x40d280
40d275:	85 f3                	test   %esi,%ebx
40d277:	75 07                	jne    0x40d280
40d279:	8b c6                	mov    %esi,%eax
40d27b:	c1 e0 10             	shl    $0x10,%eax
40d27e:	0b f0                	or     %eax,%esi
40d280:	89 35 68 b2 42 00    	mov    %esi,0x42b268
40d286:	f7 d6                	not    %esi
40d288:	89 35 6c b2 42 00    	mov    %esi,0x42b26c
40d28e:	5e                   	pop    %esi
40d28f:	5f                   	pop    %edi
40d290:	5b                   	pop    %ebx
40d291:	c9                   	leave
40d292:	c3                   	ret
40d293:	8b ff                	mov    %edi,%edi
40d295:	55                   	push   %ebp
40d296:	8b ec                	mov    %esp,%ebp
40d298:	51                   	push   %ecx
40d299:	51                   	push   %ecx
40d29a:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d29f:	33 c5                	xor    %ebp,%eax
40d2a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d2a4:	a1 e4 0d 43 00       	mov    0x430de4,%eax
40d2a9:	53                   	push   %ebx
40d2aa:	56                   	push   %esi
40d2ab:	33 db                	xor    %ebx,%ebx
40d2ad:	57                   	push   %edi
40d2ae:	8b f9                	mov    %ecx,%edi
40d2b0:	3b c3                	cmp    %ebx,%eax
40d2b2:	75 3a                	jne    0x40d2ee
40d2b4:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d2b7:	50                   	push   %eax
40d2b8:	33 f6                	xor    %esi,%esi
40d2ba:	46                   	inc    %esi
40d2bb:	56                   	push   %esi
40d2bc:	68 f0 ab 41 00       	push   $0x41abf0
40d2c1:	56                   	push   %esi
40d2c2:	ff 15 d0 a0 41 00    	call   *0x41a0d0
40d2c8:	85 c0                	test   %eax,%eax
40d2ca:	74 08                	je     0x40d2d4
40d2cc:	89 35 e4 0d 43 00    	mov    %esi,0x430de4
40d2d2:	eb 34                	jmp    0x40d308
40d2d4:	ff 15 98 a0 41 00    	call   *0x41a098
40d2da:	83 f8 78             	cmp    $0x78,%eax
40d2dd:	75 0a                	jne    0x40d2e9
40d2df:	6a 02                	push   $0x2
40d2e1:	58                   	pop    %eax
40d2e2:	a3 e4 0d 43 00       	mov    %eax,0x430de4
40d2e7:	eb 05                	jmp    0x40d2ee
40d2e9:	a1 e4 0d 43 00       	mov    0x430de4,%eax
40d2ee:	83 f8 02             	cmp    $0x2,%eax
40d2f1:	0f 84 cf 00 00 00    	je     0x40d3c6
40d2f7:	3b c3                	cmp    %ebx,%eax
40d2f9:	0f 84 c7 00 00 00    	je     0x40d3c6
40d2ff:	83 f8 01             	cmp    $0x1,%eax
40d302:	0f 85 e8 00 00 00    	jne    0x40d3f0
40d308:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d30b:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40d30e:	75 08                	jne    0x40d318
40d310:	8b 07                	mov    (%edi),%eax
40d312:	8b 40 04             	mov    0x4(%eax),%eax
40d315:	89 45 18             	mov    %eax,0x18(%ebp)
40d318:	8b 35 80 a0 41 00    	mov    0x41a080,%esi
40d31e:	33 c0                	xor    %eax,%eax
40d320:	39 5d 20             	cmp    %ebx,0x20(%ebp)
40d323:	53                   	push   %ebx
40d324:	53                   	push   %ebx
40d325:	ff 75 10             	push   0x10(%ebp)
40d328:	0f 95 c0             	setne  %al
40d32b:	ff 75 0c             	push   0xc(%ebp)
40d32e:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
40d335:	50                   	push   %eax
40d336:	ff 75 18             	push   0x18(%ebp)
40d339:	ff d6                	call   *%esi
40d33b:	8b f8                	mov    %eax,%edi
40d33d:	3b fb                	cmp    %ebx,%edi
40d33f:	0f 84 ab 00 00 00    	je     0x40d3f0
40d345:	7e 3c                	jle    0x40d383
40d347:	81 ff f0 ff ff 7f    	cmp    $0x7ffffff0,%edi
40d34d:	77 34                	ja     0x40d383
40d34f:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
40d353:	3d 00 04 00 00       	cmp    $0x400,%eax
40d358:	77 13                	ja     0x40d36d
40d35a:	e8 e1 4b 00 00       	call   0x411f40
40d35f:	8b c4                	mov    %esp,%eax
40d361:	3b c3                	cmp    %ebx,%eax
40d363:	74 1c                	je     0x40d381
40d365:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
40d36b:	eb 11                	jmp    0x40d37e
40d36d:	50                   	push   %eax
40d36e:	e8 fb c2 ff ff       	call   0x40966e
40d373:	59                   	pop    %ecx
40d374:	3b c3                	cmp    %ebx,%eax
40d376:	74 09                	je     0x40d381
40d378:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
40d37e:	83 c0 08             	add    $0x8,%eax
40d381:	8b d8                	mov    %eax,%ebx
40d383:	85 db                	test   %ebx,%ebx
40d385:	74 69                	je     0x40d3f0
40d387:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40d38a:	50                   	push   %eax
40d38b:	6a 00                	push   $0x0
40d38d:	53                   	push   %ebx
40d38e:	e8 6d d3 ff ff       	call   0x40a700
40d393:	83 c4 0c             	add    $0xc,%esp
40d396:	57                   	push   %edi
40d397:	53                   	push   %ebx
40d398:	ff 75 10             	push   0x10(%ebp)
40d39b:	ff 75 0c             	push   0xc(%ebp)
40d39e:	6a 01                	push   $0x1
40d3a0:	ff 75 18             	push   0x18(%ebp)
40d3a3:	ff d6                	call   *%esi
40d3a5:	85 c0                	test   %eax,%eax
40d3a7:	74 11                	je     0x40d3ba
40d3a9:	ff 75 14             	push   0x14(%ebp)
40d3ac:	50                   	push   %eax
40d3ad:	53                   	push   %ebx
40d3ae:	ff 75 08             	push   0x8(%ebp)
40d3b1:	ff 15 d0 a0 41 00    	call   *0x41a0d0
40d3b7:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d3ba:	53                   	push   %ebx
40d3bb:	e8 a8 a8 ff ff       	call   0x407c68
40d3c0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d3c3:	59                   	pop    %ecx
40d3c4:	eb 75                	jmp    0x40d43b
40d3c6:	33 f6                	xor    %esi,%esi
40d3c8:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
40d3cb:	75 08                	jne    0x40d3d5
40d3cd:	8b 07                	mov    (%edi),%eax
40d3cf:	8b 40 14             	mov    0x14(%eax),%eax
40d3d2:	89 45 1c             	mov    %eax,0x1c(%ebp)
40d3d5:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40d3d8:	75 08                	jne    0x40d3e2
40d3da:	8b 07                	mov    (%edi),%eax
40d3dc:	8b 40 04             	mov    0x4(%eax),%eax
40d3df:	89 45 18             	mov    %eax,0x18(%ebp)
40d3e2:	ff 75 1c             	push   0x1c(%ebp)
40d3e5:	e8 56 49 00 00       	call   0x411d40
40d3ea:	59                   	pop    %ecx
40d3eb:	83 f8 ff             	cmp    $0xffffffff,%eax
40d3ee:	75 04                	jne    0x40d3f4
40d3f0:	33 c0                	xor    %eax,%eax
40d3f2:	eb 47                	jmp    0x40d43b
40d3f4:	3b 45 18             	cmp    0x18(%ebp),%eax
40d3f7:	74 1e                	je     0x40d417
40d3f9:	53                   	push   %ebx
40d3fa:	53                   	push   %ebx
40d3fb:	8d 4d 10             	lea    0x10(%ebp),%ecx
40d3fe:	51                   	push   %ecx
40d3ff:	ff 75 0c             	push   0xc(%ebp)
40d402:	50                   	push   %eax
40d403:	ff 75 18             	push   0x18(%ebp)
40d406:	e8 7e 49 00 00       	call   0x411d89
40d40b:	8b f0                	mov    %eax,%esi
40d40d:	83 c4 18             	add    $0x18,%esp
40d410:	3b f3                	cmp    %ebx,%esi
40d412:	74 dc                	je     0x40d3f0
40d414:	89 75 0c             	mov    %esi,0xc(%ebp)
40d417:	ff 75 14             	push   0x14(%ebp)
40d41a:	ff 75 10             	push   0x10(%ebp)
40d41d:	ff 75 0c             	push   0xc(%ebp)
40d420:	ff 75 08             	push   0x8(%ebp)
40d423:	ff 75 1c             	push   0x1c(%ebp)
40d426:	ff 15 3c a1 41 00    	call   *0x41a13c
40d42c:	8b f8                	mov    %eax,%edi
40d42e:	3b f3                	cmp    %ebx,%esi
40d430:	74 07                	je     0x40d439
40d432:	56                   	push   %esi
40d433:	e8 e8 7b ff ff       	call   0x405020
40d438:	59                   	pop    %ecx
40d439:	8b c7                	mov    %edi,%eax
40d43b:	8d 65 ec             	lea    -0x14(%ebp),%esp
40d43e:	5f                   	pop    %edi
40d43f:	5e                   	pop    %esi
40d440:	5b                   	pop    %ebx
40d441:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d444:	33 cd                	xor    %ebp,%ecx
40d446:	e8 db 91 ff ff       	call   0x406626
40d44b:	c9                   	leave
40d44c:	c3                   	ret
40d44d:	8b ff                	mov    %edi,%edi
40d44f:	55                   	push   %ebp
40d450:	8b ec                	mov    %esp,%ebp
40d452:	83 ec 10             	sub    $0x10,%esp
40d455:	ff 75 08             	push   0x8(%ebp)
40d458:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d45b:	e8 04 a4 ff ff       	call   0x407864
40d460:	ff 75 24             	push   0x24(%ebp)
40d463:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d466:	ff 75 20             	push   0x20(%ebp)
40d469:	ff 75 1c             	push   0x1c(%ebp)
40d46c:	ff 75 18             	push   0x18(%ebp)
40d46f:	ff 75 14             	push   0x14(%ebp)
40d472:	ff 75 10             	push   0x10(%ebp)
40d475:	ff 75 0c             	push   0xc(%ebp)
40d478:	e8 16 fe ff ff       	call   0x40d293
40d47d:	83 c4 1c             	add    $0x1c,%esp
40d480:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40d484:	74 07                	je     0x40d48d
40d486:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d489:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40d48d:	c9                   	leave
40d48e:	c3                   	ret
40d48f:	8b ff                	mov    %edi,%edi
40d491:	55                   	push   %ebp
40d492:	8b ec                	mov    %esp,%ebp
40d494:	81 ec 94 00 00 00    	sub    $0x94,%esp
40d49a:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d49f:	33 c5                	xor    %ebp,%eax
40d4a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d4a4:	8b 45 08             	mov    0x8(%ebp),%eax
40d4a7:	53                   	push   %ebx
40d4a8:	56                   	push   %esi
40d4a9:	8b 75 18             	mov    0x18(%ebp),%esi
40d4ac:	33 db                	xor    %ebx,%ebx
40d4ae:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
40d4b2:	57                   	push   %edi
40d4b3:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d4b9:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
40d4bf:	0f 85 fe 00 00 00    	jne    0x40d5c3
40d4c5:	53                   	push   %ebx
40d4c6:	68 80 00 00 00       	push   $0x80
40d4cb:	8d bd 7c ff ff ff    	lea    -0x84(%ebp),%edi
40d4d1:	8b cf                	mov    %edi,%ecx
40d4d3:	51                   	push   %ecx
40d4d4:	ff 75 14             	push   0x14(%ebp)
40d4d7:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
40d4dd:	ff 75 10             	push   0x10(%ebp)
40d4e0:	50                   	push   %eax
40d4e1:	e8 35 84 00 00       	call   0x41591b
40d4e6:	8b f0                	mov    %eax,%esi
40d4e8:	83 c4 18             	add    $0x18,%esp
40d4eb:	3b f3                	cmp    %ebx,%esi
40d4ed:	75 6a                	jne    0x40d559
40d4ef:	ff 15 98 a0 41 00    	call   *0x41a098
40d4f5:	83 f8 7a             	cmp    $0x7a,%eax
40d4f8:	0f 85 80 00 00 00    	jne    0x40d57e
40d4fe:	53                   	push   %ebx
40d4ff:	53                   	push   %ebx
40d500:	53                   	push   %ebx
40d501:	ff 75 14             	push   0x14(%ebp)
40d504:	ff 75 10             	push   0x10(%ebp)
40d507:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40d50d:	e8 09 84 00 00       	call   0x41591b
40d512:	83 c4 18             	add    $0x18,%esp
40d515:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40d51b:	3b c3                	cmp    %ebx,%eax