40d1b9:	89 b5 d8 fd ff ff    	mov    %esi,-0x228(%ebp)
40d1bf:	74 6c                	je     0x40d22d
40d1c1:	81 8d f0 fd ff ff 00 	orl    $0x200,-0x210(%ebp)
40d1c8:	02 00 00
40d1cb:	eb 60                	jmp    0x40d22d
40d1cd:	83 85 e4 fd ff ff 04 	addl   $0x4,-0x21c(%ebp)
40d1d4:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
40d1da:	8b 70 fc             	mov    -0x4(%eax),%esi
40d1dd:	e8 65 d9 ff ff       	call   0x40ab47
40d1e2:	85 c0                	test   %eax,%eax
40d1e4:	0f 84 4a fa ff ff    	je     0x40cc34
40d1ea:	f6 85 f0 fd ff ff 20 	testb  $0x20,-0x210(%ebp)
40d1f1:	74 0c                	je     0x40d1ff
40d1f3:	66 8b 85 dc fd ff ff 	mov    -0x224(%ebp),%ax
40d1fa:	66 89 06             	mov    %ax,(%esi)
40d1fd:	eb 08                	jmp    0x40d207
40d1ff:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
40d205:	89 06                	mov    %eax,(%esi)
40d207:	c7 85 a4 fd ff ff 01 	movl   $0x1,-0x25c(%ebp)
40d20e:	00 00 00
40d211:	e9 3e 05 00 00       	jmp    0x40d754
40d216:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
40d21c:	83 8d f0 fd ff ff 40 	orl    $0x40,-0x210(%ebp)
40d223:	c7 85 d8 fd ff ff 0a 	movl   $0xa,-0x228(%ebp)
40d22a:	00 00 00
40d22d:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
40d233:	f7 c1 00 80 00 00    	test   $0x8000,%ecx
40d239:	0f 84 dd 01 00 00    	je     0x40d41c
40d23f:	03 fe                	add    %esi,%edi
40d241:	8b 47 f8             	mov    -0x8(%edi),%eax
40d244:	8b 57 fc             	mov    -0x4(%edi),%edx
40d247:	e9 09 02 00 00       	jmp    0x40d455
40d24c:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
40d252:	83 8d f0 fd ff ff 40 	orl    $0x40,-0x210(%ebp)
40d259:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40d260:	8d 9d f4 fd ff ff    	lea    -0x20c(%ebp),%ebx
40d266:	b8 00 02 00 00       	mov    $0x200,%eax
40d26b:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
40d271:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
40d277:	7d 0c                	jge    0x40d285
40d279:	c7 85 e8 fd ff ff 06 	movl   $0x6,-0x218(%ebp)
40d280:	00 00 00
40d283:	eb 6a                	jmp    0x40d2ef
40d285:	75 11                	jne    0x40d298
40d287:	80 fa 67             	cmp    $0x67,%dl
40d28a:	75 63                	jne    0x40d2ef
40d28c:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
40d293:	00 00 00
40d296:	eb 57                	jmp    0x40d2ef
40d298:	39 85 e8 fd ff ff    	cmp    %eax,-0x218(%ebp)
40d29e:	7e 06                	jle    0x40d2a6
40d2a0:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40d2a6:	81 bd e8 fd ff ff a3 	cmpl   $0xa3,-0x218(%ebp)
40d2ad:	00 00 00
40d2b0:	7e 3d                	jle    0x40d2ef
40d2b2:	8b b5 e8 fd ff ff    	mov    -0x218(%ebp),%esi
40d2b8:	81 c6 5d 01 00 00    	add    $0x15d,%esi
40d2be:	56                   	push   %esi
40d2bf:	e8 fb 95 ff ff       	call   0x4068bf
40d2c4:	8a 95 ef fd ff ff    	mov    -0x211(%ebp),%dl
40d2ca:	59                   	pop    %ecx
40d2cb:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
40d2d1:	85 c0                	test   %eax,%eax
40d2d3:	74 10                	je     0x40d2e5
40d2d5:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d2db:	89 b5 98 fd ff ff    	mov    %esi,-0x268(%ebp)
40d2e1:	8b d8                	mov    %eax,%ebx
40d2e3:	eb 0a                	jmp    0x40d2ef
40d2e5:	c7 85 e8 fd ff ff a3 	movl   $0xa3,-0x218(%ebp)
40d2ec:	00 00 00
40d2ef:	8b 07                	mov    (%edi),%eax
40d2f1:	8b 35 90 f0 40 00    	mov    0x40f090,%esi
40d2f7:	83 c7 08             	add    $0x8,%edi
40d2fa:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
40d300:	8b 47 fc             	mov    -0x4(%edi),%eax
40d303:	89 85 84 fd ff ff    	mov    %eax,-0x27c(%ebp)
40d309:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40d30f:	50                   	push   %eax
40d310:	ff b5 8c fd ff ff    	push   -0x274(%ebp)
40d316:	0f be c2             	movsbl %dl,%eax
40d319:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40d31f:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d325:	50                   	push   %eax
40d326:	ff b5 98 fd ff ff    	push   -0x268(%ebp)
40d32c:	8d 85 80 fd ff ff    	lea    -0x280(%ebp),%eax
40d332:	53                   	push   %ebx
40d333:	50                   	push   %eax
40d334:	ff 35 18 2e 41 00    	push   0x412e18
40d33a:	ff d6                	call   *%esi
40d33c:	ff d0                	call   *%eax
40d33e:	8b bd f0 fd ff ff    	mov    -0x210(%ebp),%edi
40d344:	83 c4 1c             	add    $0x1c,%esp
40d347:	81 e7 80 00 00 00    	and    $0x80,%edi
40d34d:	74 1d                	je     0x40d36c
40d34f:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40d356:	75 14                	jne    0x40d36c
40d358:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40d35e:	50                   	push   %eax
40d35f:	53                   	push   %ebx
40d360:	ff 35 24 2e 41 00    	push   0x412e24
40d366:	ff d6                	call   *%esi
40d368:	ff d0                	call   *%eax
40d36a:	59                   	pop    %ecx
40d36b:	59                   	pop    %ecx
40d36c:	80 bd ef fd ff ff 67 	cmpb   $0x67,-0x211(%ebp)
40d373:	75 18                	jne    0x40d38d
40d375:	85 ff                	test   %edi,%edi
40d377:	75 14                	jne    0x40d38d
40d379:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40d37f:	50                   	push   %eax
40d380:	53                   	push   %ebx
40d381:	ff 35 20 2e 41 00    	push   0x412e20
40d387:	ff d6                	call   *%esi
40d389:	ff d0                	call   *%eax
40d38b:	59                   	pop    %ecx
40d38c:	59                   	pop    %ecx
40d38d:	80 3b 2d             	cmpb   $0x2d,(%ebx)
40d390:	75 11                	jne    0x40d3a3
40d392:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
40d399:	01 00 00
40d39c:	43                   	inc    %ebx
40d39d:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
40d3a3:	53                   	push   %ebx
40d3a4:	e9 c4 fd ff ff       	jmp    0x40d16d
40d3a9:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
40d3af:	89 8d a8 fd ff ff    	mov    %ecx,-0x258(%ebp)
40d3b5:	eb 2a                	jmp    0x40d3e1
40d3b7:	83 e8 73             	sub    $0x73,%eax
40d3ba:	0f 84 74 fc ff ff    	je     0x40d034
40d3c0:	48                   	dec    %eax
40d3c1:	48                   	dec    %eax
40d3c2:	0f 84 5b fe ff ff    	je     0x40d223
40d3c8:	83 e8 03             	sub    $0x3,%eax
40d3cb:	0f 85 be 01 00 00    	jne    0x40d58f
40d3d1:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
40d3d7:	c7 85 a8 fd ff ff 27 	movl   $0x27,-0x258(%ebp)
40d3de:	00 00 00
40d3e1:	f6 85 f0 fd ff ff 80 	testb  $0x80,-0x210(%ebp)
40d3e8:	c7 85 d8 fd ff ff 10 	movl   $0x10,-0x228(%ebp)
40d3ef:	00 00 00
40d3f2:	0f 84 35 fe ff ff    	je     0x40d22d
40d3f8:	8a 85 a8 fd ff ff    	mov    -0x258(%ebp),%al
40d3fe:	04 51                	add    $0x51,%al
40d400:	c6 85 d4 fd ff ff 30 	movb   $0x30,-0x22c(%ebp)
40d407:	88 85 d5 fd ff ff    	mov    %al,-0x22b(%ebp)
40d40d:	c7 85 cc fd ff ff 02 	movl   $0x2,-0x234(%ebp)
40d414:	00 00 00
40d417:	e9 11 fe ff ff       	jmp    0x40d22d
40d41c:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40d422:	0f 85 17 fe ff ff    	jne    0x40d23f
40d428:	83 c7 04             	add    $0x4,%edi
40d42b:	f6 c1 20             	test   $0x20,%cl
40d42e:	74 18                	je     0x40d448
40d430:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d436:	f6 c1 40             	test   $0x40,%cl
40d439:	74 06                	je     0x40d441
40d43b:	0f bf 47 fc          	movswl -0x4(%edi),%eax
40d43f:	eb 04                	jmp    0x40d445
40d441:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40d445:	99                   	cltd
40d446:	eb 13                	jmp    0x40d45b
40d448:	8b 47 fc             	mov    -0x4(%edi),%eax
40d44b:	f6 c1 40             	test   $0x40,%cl
40d44e:	74 03                	je     0x40d453
40d450:	99                   	cltd
40d451:	eb 02                	jmp    0x40d455
40d453:	33 d2                	xor    %edx,%edx
40d455:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d45b:	f6 c1 40             	test   $0x40,%cl
40d45e:	74 1b                	je     0x40d47b
40d460:	85 d2                	test   %edx,%edx
40d462:	7f 17                	jg     0x40d47b
40d464:	7c 04                	jl     0x40d46a
40d466:	85 c0                	test   %eax,%eax
40d468:	73 11                	jae    0x40d47b
40d46a:	f7 d8                	neg    %eax
40d46c:	83 d2 00             	adc    $0x0,%edx
40d46f:	f7 da                	neg    %edx
40d471:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
40d478:	01 00 00
40d47b:	f7 85 f0 fd ff ff 00 	testl  $0x9000,-0x210(%ebp)
40d482:	90 00 00
40d485:	8b fa                	mov    %edx,%edi
40d487:	8b d8                	mov    %eax,%ebx
40d489:	75 02                	jne    0x40d48d
40d48b:	33 ff                	xor    %edi,%edi
40d48d:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40d494:	7d 0c                	jge    0x40d4a2
40d496:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
40d49d:	00 00 00
40d4a0:	eb 1a                	jmp    0x40d4bc
40d4a2:	83 a5 f0 fd ff ff f7 	andl   $0xfffffff7,-0x210(%ebp)
40d4a9:	b8 00 02 00 00       	mov    $0x200,%eax
40d4ae:	39 85 e8 fd ff ff    	cmp    %eax,-0x218(%ebp)
40d4b4:	7e 06                	jle    0x40d4bc
40d4b6:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40d4bc:	8b c3                	mov    %ebx,%eax
40d4be:	0b c7                	or     %edi,%eax
40d4c0:	75 06                	jne    0x40d4c8
40d4c2:	21 85 cc fd ff ff    	and    %eax,-0x234(%ebp)
40d4c8:	8d 75 f3             	lea    -0xd(%ebp),%esi
40d4cb:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
40d4d1:	ff 8d e8 fd ff ff    	decl   -0x218(%ebp)
40d4d7:	85 c0                	test   %eax,%eax
40d4d9:	7f 06                	jg     0x40d4e1
40d4db:	8b c3                	mov    %ebx,%eax
40d4dd:	0b c7                	or     %edi,%eax
40d4df:	74 2d                	je     0x40d50e
40d4e1:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40d4e7:	99                   	cltd
40d4e8:	52                   	push   %edx
40d4e9:	50                   	push   %eax
40d4ea:	57                   	push   %edi
40d4eb:	53                   	push   %ebx
40d4ec:	e8 7f d8 ff ff       	call   0x40ad70
40d4f1:	83 c1 30             	add    $0x30,%ecx
40d4f4:	89 9d 98 fd ff ff    	mov    %ebx,-0x268(%ebp)
40d4fa:	8b d8                	mov    %eax,%ebx
40d4fc:	8b fa                	mov    %edx,%edi
40d4fe:	83 f9 39             	cmp    $0x39,%ecx
40d501:	7e 06                	jle    0x40d509
40d503:	03 8d a8 fd ff ff    	add    -0x258(%ebp),%ecx
40d509:	88 0e                	mov    %cl,(%esi)
40d50b:	4e                   	dec    %esi
40d50c:	eb bd                	jmp    0x40d4cb
40d50e:	8d 45 f3             	lea    -0xd(%ebp),%eax
40d511:	2b c6                	sub    %esi,%eax
40d513:	46                   	inc    %esi
40d514:	f7 85 f0 fd ff ff 00 	testl  $0x200,-0x210(%ebp)
40d51b:	02 00 00
40d51e:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40d524:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
40d52a:	74 63                	je     0x40d58f
40d52c:	85 c0                	test   %eax,%eax
40d52e:	74 07                	je     0x40d537
40d530:	8b ce                	mov    %esi,%ecx
40d532:	80 39 30             	cmpb   $0x30,(%ecx)
40d535:	74 58                	je     0x40d58f
40d537:	ff 8d e0 fd ff ff    	decl   -0x220(%ebp)
40d53d:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
40d543:	c6 01 30             	movb   $0x30,(%ecx)
40d546:	40                   	inc    %eax
40d547:	eb 40                	jmp    0x40d589
40d549:	49                   	dec    %ecx
40d54a:	66 83 38 00          	cmpw   $0x0,(%eax)
40d54e:	74 07                	je     0x40d557
40d550:	83 c0 02             	add    $0x2,%eax
40d553:	85 c9                	test   %ecx,%ecx
40d555:	75 f2                	jne    0x40d549
40d557:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
40d55d:	d1 f8                	sar    $1,%eax
40d55f:	eb 28                	jmp    0x40d589
40d561:	85 ff                	test   %edi,%edi
40d563:	75 0b                	jne    0x40d570
40d565:	a1 e0 2d 41 00       	mov    0x412de0,%eax
40d56a:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d570:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40d576:	eb 07                	jmp    0x40d57f
40d578:	49                   	dec    %ecx
40d579:	80 38 00             	cmpb   $0x0,(%eax)
40d57c:	74 05                	je     0x40d583
40d57e:	40                   	inc    %eax
40d57f:	85 c9                	test   %ecx,%ecx
40d581:	75 f5                	jne    0x40d578
40d583:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
40d589:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40d58f:	83 bd a4 fd ff ff 00 	cmpl   $0x0,-0x25c(%ebp)
40d596:	0f 85 b8 01 00 00    	jne    0x40d754
40d59c:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
40d5a2:	f6 c1 40             	test   $0x40,%cl
40d5a5:	74 35                	je     0x40d5dc
40d5a7:	f7 c1 00 01 00 00    	test   $0x100,%ecx
40d5ad:	74 09                	je     0x40d5b8
40d5af:	c6 85 d4 fd ff ff 2d 	movb   $0x2d,-0x22c(%ebp)
40d5b6:	eb 1a                	jmp    0x40d5d2
40d5b8:	f6 c1 01             	test   $0x1,%cl
40d5bb:	74 09                	je     0x40d5c6
40d5bd:	c6 85 d4 fd ff ff 2b 	movb   $0x2b,-0x22c(%ebp)
40d5c4:	eb 0c                	jmp    0x40d5d2
40d5c6:	f6 c1 02             	test   $0x2,%cl
40d5c9:	74 11                	je     0x40d5dc
40d5cb:	c6 85 d4 fd ff ff 20 	movb   $0x20,-0x22c(%ebp)
40d5d2:	c7 85 cc fd ff ff 01 	movl   $0x1,-0x234(%ebp)
40d5d9:	00 00 00
40d5dc:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
40d5e2:	2b 85 d8 fd ff ff    	sub    -0x228(%ebp),%eax
40d5e8:	2b 85 cc fd ff ff    	sub    -0x234(%ebp),%eax
40d5ee:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
40d5f4:	f6 c1 0c             	test   $0xc,%cl
40d5f7:	75 25                	jne    0x40d61e
40d5f9:	8b f8                	mov    %eax,%edi
40d5fb:	eb 1d                	jmp    0x40d61a
40d5fd:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40d603:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40d609:	b0 20                	mov    $0x20,%al
40d60b:	4f                   	dec    %edi
40d60c:	e8 7a f5 ff ff       	call   0x40cb8b
40d611:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
40d618:	74 04                	je     0x40d61e
40d61a:	85 ff                	test   %edi,%edi
40d61c:	7f df                	jg     0x40d5fd
40d61e:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
40d624:	8b bd 9c fd ff ff    	mov    -0x264(%ebp),%edi
40d62a:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
40d630:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40d636:	50                   	push   %eax
40d637:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40d63d:	e8 18 a4 ff ff       	call   0x407a5a
40d642:	f6 85 f0 fd ff ff 08 	testb  $0x8,-0x210(%ebp)
40d649:	59                   	pop    %ecx
40d64a:	59                   	pop    %ecx
40d64b:	74 2e                	je     0x40d67b
40d64d:	f6 85 f0 fd ff ff 04 	testb  $0x4,-0x210(%ebp)
40d654:	75 25                	jne    0x40d67b
40d656:	8b bd 98 fd ff ff    	mov    -0x268(%ebp),%edi
40d65c:	eb 19                	jmp    0x40d677
40d65e:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40d664:	8b cb                	mov    %ebx,%ecx
40d666:	b0 30                	mov    $0x30,%al
40d668:	4f                   	dec    %edi
40d669:	e8 1d f5 ff ff       	call   0x40cb8b
40d66e:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
40d675:	74 04                	je     0x40d67b
40d677:	85 ff                	test   %edi,%edi
40d679:	7f e3                	jg     0x40d65e
40d67b:	83 bd c4 fd ff ff 00 	cmpl   $0x0,-0x23c(%ebp)
40d682:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40d688:	74 75                	je     0x40d6ff
40d68a:	85 c0                	test   %eax,%eax
40d68c:	7e 71                	jle    0x40d6ff
40d68e:	8b b5 e0 fd ff ff    	mov    -0x220(%ebp),%esi
40d694:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
40d69a:	0f b7 06             	movzwl (%esi),%eax
40d69d:	ff 8d 90 fd ff ff    	decl   -0x270(%ebp)
40d6a3:	50                   	push   %eax
40d6a4:	6a 06                	push   $0x6
40d6a6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d6a9:	50                   	push   %eax
40d6aa:	8d 85 88 fd ff ff    	lea    -0x278(%ebp),%eax
40d6b0:	50                   	push   %eax
40d6b1:	83 c6 02             	add    $0x2,%esi
40d6b4:	e8 49 05 00 00       	call   0x40dc02
40d6b9:	83 c4 10             	add    $0x10,%esp
40d6bc:	85 c0                	test   %eax,%eax
40d6be:	75 36                	jne    0x40d6f6
40d6c0:	39 85 88 fd ff ff    	cmp    %eax,-0x278(%ebp)
40d6c6:	74 2e                	je     0x40d6f6
40d6c8:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
40d6ce:	8b bd 9c fd ff ff    	mov    -0x264(%ebp),%edi
40d6d4:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx