40c466:	33 c9                	xor    %ecx,%ecx
40c468:	e8 a3 0a 00 00       	call   0x40cf10
40c46d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c470:	5f                   	pop    %edi
40c471:	89 43 34             	mov    %eax,0x34(%ebx)
40c474:	8b c3                	mov    %ebx,%eax
40c476:	5e                   	pop    %esi
40c477:	5b                   	pop    %ebx
40c478:	8b e5                	mov    %ebp,%esp
40c47a:	5d                   	pop    %ebp
40c47b:	c3                   	ret
40c47c:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
40c47f:	8b 3d fc 66 43 00    	mov    0x4366fc,%edi
40c485:	85 c9                	test   %ecx,%ecx
40c487:	0f 85 e6 0b 01 00    	jne    0x41d073
40c48d:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40c490:	e8 3b 18 00 00       	call   0x40dcd0
40c495:	8b f0                	mov    %eax,%esi
40c497:	89 75 fc             	mov    %esi,-0x4(%ebp)
40c49a:	85 f6                	test   %esi,%esi
40c49c:	0f 84 1b 0c 01 00    	je     0x41d0bd
40c4a2:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
40c4a5:	85 c9                	test   %ecx,%ecx
40c4a7:	0f 85 df 0b 01 00    	jne    0x41d08c
40c4ad:	33 c0                	xor    %eax,%eax
40c4af:	85 ff                	test   %edi,%edi
40c4b1:	0f 84 e4 0b 01 00    	je     0x41d09b
40c4b7:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40c4bd:	0f 87 d8 0b 01 00    	ja     0x41d09b
40c4c3:	85 c0                	test   %eax,%eax
40c4c5:	0f 88 eb 0b 01 00    	js     0x41d0b6
40c4cb:	33 c0                	xor    %eax,%eax
40c4cd:	8b cf                	mov    %edi,%ecx
40c4cf:	8b d6                	mov    %esi,%edx
40c4d1:	85 ff                	test   %edi,%edi
40c4d3:	0f 84 d8 0b 01 00    	je     0x41d0b1
40c4d9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40c4e0:	66 39 02             	cmp    %ax,(%edx)
40c4e3:	0f 85 bc 0b 01 00    	jne    0x41d0a5
40c4e9:	85 c9                	test   %ecx,%ecx
40c4eb:	0f 84 c0 0b 01 00    	je     0x41d0b1
40c4f1:	8b d7                	mov    %edi,%edx
40c4f3:	2b d1                	sub    %ecx,%edx
40c4f5:	85 c0                	test   %eax,%eax
40c4f7:	78 49                	js     0x40c542
40c4f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c4fc:	8b f7                	mov    %edi,%esi
40c4fe:	8d 04 50             	lea    (%eax,%edx,2),%eax
40c501:	2b f2                	sub    %edx,%esi
40c503:	74 2c                	je     0x40c531
40c505:	8b ce                	mov    %esi,%ecx
40c507:	81 c2 fe ff ff 7f    	add    $0x7ffffffe,%edx
40c50d:	2b cf                	sub    %edi,%ecx
40c50f:	bf f0 4a 44 00       	mov    $0x444af0,%edi
40c514:	03 d1                	add    %ecx,%edx
40c516:	2b f8                	sub    %eax,%edi
40c518:	85 d2                	test   %edx,%edx
40c51a:	74 1a                	je     0x40c536
40c51c:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40c520:	66 85 c9             	test   %cx,%cx
40c523:	74 11                	je     0x40c536
40c525:	66 89 08             	mov    %cx,(%eax)
40c528:	4a                   	dec    %edx
40c529:	83 c0 02             	add    $0x2,%eax
40c52c:	83 ee 01             	sub    $0x1,%esi
40c52f:	75 e7                	jne    0x40c518
40c531:	83 e8 02             	sub    $0x2,%eax
40c534:	eb 04                	jmp    0x40c53a
40c536:	85 f6                	test   %esi,%esi
40c538:	74 f7                	je     0x40c531
40c53a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40c53d:	33 c9                	xor    %ecx,%ecx
40c53f:	66 89 08             	mov    %cx,(%eax)
40c542:	89 73 3c             	mov    %esi,0x3c(%ebx)
40c545:	e9 ea fe ff ff       	jmp    0x40c434
40c54a:	8b 06                	mov    (%esi),%eax
40c54c:	8d 64 24 00          	lea    0x0(%esp),%esp
40c550:	8d 58 14             	lea    0x14(%eax),%ebx
40c553:	8b 03                	mov    (%ebx),%eax
40c555:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40c558:	85 c0                	test   %eax,%eax
40c55a:	75 f4                	jne    0x40c550
40c55c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40c55f:	e9 d0 fe ff ff       	jmp    0x40c434
40c564:	cc                   	int3
40c565:	cc                   	int3
40c566:	cc                   	int3
40c567:	cc                   	int3
40c568:	cc                   	int3
40c569:	cc                   	int3
40c56a:	cc                   	int3
40c56b:	cc                   	int3
40c56c:	cc                   	int3
40c56d:	cc                   	int3
40c56e:	cc                   	int3
40c56f:	cc                   	int3
40c570:	8b ff                	mov    %edi,%edi
40c572:	55                   	push   %ebp
40c573:	8b ec                	mov    %esp,%ebp
40c575:	83 ec 08             	sub    $0x8,%esp
40c578:	8b c1                	mov    %ecx,%eax
40c57a:	89 55 f8             	mov    %edx,-0x8(%ebp)
40c57d:	53                   	push   %ebx
40c57e:	56                   	push   %esi
40c57f:	8b 75 08             	mov    0x8(%ebp),%esi
40c582:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c585:	a3 ec 65 43 00       	mov    %eax,0x4365ec
40c58a:	a1 78 67 43 00       	mov    0x436778,%eax
40c58f:	57                   	push   %edi
40c590:	3b c6                	cmp    %esi,%eax
40c592:	76 3f                	jbe    0x40c5d3
40c594:	8b 15 84 67 43 00    	mov    0x436784,%edx
40c59a:	85 d2                	test   %edx,%edx
40c59c:	74 35                	je     0x40c5d3
40c59e:	8b 4a 04             	mov    0x4(%edx),%ecx
40c5a1:	48                   	dec    %eax
40c5a2:	52                   	push   %edx
40c5a3:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40c5a9:	6a 00                	push   $0x0
40c5ab:	89 0d 84 67 43 00    	mov    %ecx,0x436784
40c5b1:	a3 78 67 43 00       	mov    %eax,0x436778
40c5b6:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)
40c5bd:	ff 15 34 a1 44 00    	call   *0x44a134
40c5c3:	50                   	push   %eax
40c5c4:	ff 15 3c a1 44 00    	call   *0x44a13c
40c5ca:	a1 78 67 43 00       	mov    0x436778,%eax
40c5cf:	3b c6                	cmp    %esi,%eax
40c5d1:	77 c1                	ja     0x40c594
40c5d3:	33 f6                	xor    %esi,%esi
40c5d5:	33 db                	xor    %ebx,%ebx
40c5d7:	8d 7e 04             	lea    0x4(%esi),%edi
40c5da:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40c5e0:	83 fe 01             	cmp    $0x1,%esi
40c5e3:	77 0e                	ja     0x40c5f3
40c5e5:	8b 83 7c 67 43 00    	mov    0x43677c(%ebx),%eax
40c5eb:	85 c0                	test   %eax,%eax
40c5ed:	0f 85 a2 00 00 00    	jne    0x40c695
40c5f3:	46                   	inc    %esi
40c5f4:	8b df                	mov    %edi,%ebx
40c5f6:	83 c7 04             	add    $0x4,%edi
40c5f9:	83 fe 02             	cmp    $0x2,%esi
40c5fc:	7c e2                	jl     0x40c5e0
40c5fe:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c601:	a3 d8 65 43 00       	mov    %eax,0x4365d8
40c606:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c609:	a3 d4 65 43 00       	mov    %eax,0x4365d4
40c60e:	33 c0                	xor    %eax,%eax
40c610:	50                   	push   %eax
40c611:	68 b0 0a 44 00       	push   $0x440ab0
40c616:	66 a3 c2 25 43 00    	mov    %ax,0x4325c2
40c61c:	c7 05 cc 65 43 00 c2 	movl   $0x4325c2,0x4365cc
40c623:	25 43 00
40c626:	c7 05 c8 65 43 00 c2 	movl   $0x4325c2,0x4365c8
40c62d:	25 43 00
40c630:	e8 7c b9 00 00       	call   0x417fb1
40c635:	83 c4 08             	add    $0x8,%esp
40c638:	85 c0                	test   %eax,%eax
40c63a:	75 49                	jne    0x40c685
40c63c:	33 c9                	xor    %ecx,%ecx
40c63e:	a3 f8 66 43 00       	mov    %eax,0x4366f8
40c643:	a3 f0 65 43 00       	mov    %eax,0x4365f0
40c648:	e8 77 e2 ff ff       	call   0x40a8c4
40c64d:	8b f0                	mov    %eax,%esi
40c64f:	85 f6                	test   %esi,%esi
40c651:	74 3b                	je     0x40c68e
40c653:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40c659:	66 83 39 00          	cmpw   $0x0,(%ecx)
40c65d:	74 10                	je     0x40c66f
40c65f:	33 c9                	xor    %ecx,%ecx
40c661:	e8 0a 06 00 00       	call   0x40cc70
40c666:	83 f8 0a             	cmp    $0xa,%eax
40c669:	0f 85 61 0a 01 00    	jne    0x41d0d0
40c66f:	33 c0                	xor    %eax,%eax
40c671:	80 3d 5a 90 44 00 00 	cmpb   $0x0,0x44905a
40c678:	a3 90 67 43 00       	mov    %eax,0x436790
40c67d:	0f 85 64 0a 01 00    	jne    0x41d0e7
40c683:	8b c6                	mov    %esi,%eax
40c685:	5f                   	pop    %edi
40c686:	5e                   	pop    %esi
40c687:	5b                   	pop    %ebx
40c688:	8b e5                	mov    %ebp,%esp
40c68a:	5d                   	pop    %ebp
40c68b:	c2 04 00             	ret    $0x4
40c68e:	b8 01 00 00 00       	mov    $0x1,%eax
40c693:	eb dc                	jmp    0x40c671
40c695:	68 00 80 00 00       	push   $0x8000
40c69a:	6a 00                	push   $0x0
40c69c:	50                   	push   %eax
40c69d:	ff 15 a4 a1 44 00    	call   *0x44a1a4
40c6a3:	c7 83 7c 67 43 00 00 	movl   $0x0,0x43677c(%ebx)
40c6aa:	00 00 00
40c6ad:	e9 41 ff ff ff       	jmp    0x40c5f3
40c6b2:	cc                   	int3
40c6b3:	cc                   	int3
40c6b4:	cc                   	int3
40c6b5:	cc                   	int3
40c6b6:	cc                   	int3
40c6b7:	cc                   	int3
40c6b8:	cc                   	int3
40c6b9:	cc                   	int3
40c6ba:	cc                   	int3
40c6bb:	cc                   	int3
40c6bc:	cc                   	int3
40c6bd:	cc                   	int3
40c6be:	cc                   	int3
40c6bf:	cc                   	int3
40c6c0:	8b ff                	mov    %edi,%edi
40c6c2:	55                   	push   %ebp
40c6c3:	8b ec                	mov    %esp,%ebp
40c6c5:	81 ec 48 06 00 00    	sub    $0x648,%esp
40c6cb:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40c6d0:	33 c5                	xor    %ebp,%eax
40c6d2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c6d5:	53                   	push   %ebx
40c6d6:	8b 1d 48 67 43 00    	mov    0x436748,%ebx
40c6dc:	c7 85 e8 f9 ff ff 00 	movl   $0x0,-0x618(%ebp)
40c6e3:	00 00 00
40c6e6:	c7 85 d0 f9 ff ff 01 	movl   $0x1,-0x630(%ebp)
40c6ed:	00 00 00
40c6f0:	89 9d e4 f9 ff ff    	mov    %ebx,-0x61c(%ebp)
40c6f6:	56                   	push   %esi
40c6f7:	8b 75 08             	mov    0x8(%ebp),%esi
40c6fa:	89 b5 bc f9 ff ff    	mov    %esi,-0x644(%ebp)
40c700:	57                   	push   %edi
40c701:	85 db                	test   %ebx,%ebx
40c703:	0f 84 0d 0a 01 00    	je     0x41d116
40c709:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40c70c:	85 c9                	test   %ecx,%ecx
40c70e:	0f 84 e1 09 01 00    	je     0x41d0f5
40c714:	6a 01                	push   $0x1
40c716:	51                   	push   %ecx
40c717:	8d 95 f4 fe ff ff    	lea    -0x10c(%ebp),%edx
40c71d:	e8 9f ec ff ff       	call   0x40b3c1
40c722:	8b 43 08             	mov    0x8(%ebx),%eax
40c725:	8b cb                	mov    %ebx,%ecx
40c727:	89 85 c0 f9 ff ff    	mov    %eax,-0x640(%ebp)
40c72d:	e8 40 1b 00 00       	call   0x40e272
40c732:	8b f8                	mov    %eax,%edi
40c734:	89 bd dc f9 ff ff    	mov    %edi,-0x624(%ebp)
40c73a:	83 ff ff             	cmp    $0xffffffff,%edi
40c73d:	0f 84 d3 09 01 00    	je     0x41d116
40c743:	6a 00                	push   $0x0
40c745:	57                   	push   %edi
40c746:	ff 15 2c a4 44 00    	call   *0x44a42c
40c74c:	83 c4 04             	add    $0x4,%esp
40c74f:	50                   	push   %eax
40c750:	ff 15 9c a0 44 00    	call   *0x44a09c
40c756:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40c759:	89 85 c4 f9 ff ff    	mov    %eax,-0x63c(%ebp)
40c75f:	e8 1b e4 ff ff       	call   0x40ab7f
40c764:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40c76b:	8b f0                	mov    %eax,%esi
40c76d:	0f 84 33 01 00 00    	je     0x40c8a6
40c773:	6a 04                	push   $0x4
40c775:	68 8c 22 40 00       	push   $0x40228c
40c77a:	56                   	push   %esi
40c77b:	ff 15 28 a4 44 00    	call   *0x44a428
40c781:	83 c4 0c             	add    $0xc,%esp
40c784:	85 c0                	test   %eax,%eax
40c786:	0f 85 1a 01 00 00    	jne    0x40c8a6
40c78c:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40c790:	66 85 c0             	test   %ax,%ax
40c793:	0f 85 ae 04 00 00    	jne    0x40cc47
40c799:	8b 85 c4 f9 ff ff    	mov    -0x63c(%ebp),%eax
40c79f:	89 43 08             	mov    %eax,0x8(%ebx)
40c7a2:	c6 05 44 67 43 00 01 	movb   $0x1,0x436744
40c7a9:	e9 ca 02 00 00       	jmp    0x40ca78
40c7ae:	80 7f 01 0a          	cmpb   $0xa,0x1(%edi)
40c7b2:	0f 85 ef 01 00 00    	jne    0x40c9a7
40c7b8:	8b 85 d4 f9 ff ff    	mov    -0x62c(%ebp),%eax
40c7be:	c6 47 02 00          	movb   $0x0,0x2(%edi)
40c7c2:	2b fa                	sub    %edx,%edi
40c7c4:	6a 00                	push   $0x0
40c7c6:	83 c7 02             	add    $0x2,%edi
40c7c9:	6a 00                	push   $0x0
40c7cb:	03 c7                	add    %edi,%eax
40c7cd:	89 bd e0 f9 ff ff    	mov    %edi,-0x620(%ebp)
40c7d3:	50                   	push   %eax
40c7d4:	ff b5 cc f9 ff ff    	push   -0x634(%ebp)
40c7da:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40c7e0:	8b cf                	mov    %edi,%ecx
40c7e2:	8b 95 c8 f9 ff ff    	mov    -0x638(%ebp),%edx
40c7e8:	8b 1d a0 25 43 00    	mov    0x4325a0,%ebx
40c7ee:	83 fb 2b             	cmp    $0x2b,%ebx
40c7f1:	0f 82 2c 0a 01 00    	jb     0x41d223
40c7f7:	81 fb 2c c4 00 00    	cmp    $0xc42c,%ebx
40c7fd:	0f 83 20 0a 01 00    	jae    0x41d223
40c803:	b8 01 00 00 00       	mov    $0x1,%eax
40c808:	68 00 02 00 00       	push   $0x200
40c80d:	8d b5 ec f9 ff ff    	lea    -0x614(%ebp),%esi
40c813:	56                   	push   %esi
40c814:	51                   	push   %ecx
40c815:	52                   	push   %edx
40c816:	50                   	push   %eax
40c817:	53                   	push   %ebx
40c818:	ff 15 68 a2 44 00    	call   *0x44a268
40c81e:	8b c8                	mov    %eax,%ecx
40c820:	89 8d e8 f9 ff ff    	mov    %ecx,-0x618(%ebp)
40c826:	8b bd dc f9 ff ff    	mov    -0x624(%ebp),%edi
40c82c:	85 c0                	test   %eax,%eax
40c82e:	0f 84 74 02 00 00    	je     0x40caa8
40c834:	85 c9                	test   %ecx,%ecx
40c836:	0f 84 74 02 00 00    	je     0x40cab0
40c83c:	83 f9 ff             	cmp    $0xffffffff,%ecx
40c83f:	0f 84 63 02 00 00    	je     0x40caa8
40c845:	66 83 bd ec f9 ff ff 	cmpw   $0x0,-0x614(%ebp)
40c84c:	00
40c84d:	0f 84 55 02 00 00    	je     0x40caa8
40c853:	66 83 bd f4 fe ff ff 	cmpw   $0x0,-0x10c(%ebp)
40c85a:	00
40c85b:	0f 84 47 02 00 00    	je     0x40caa8
40c861:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
40c864:	3d 02 04 00 00       	cmp    $0x402,%eax
40c869:	0f 83 f6 03 00 00    	jae    0x40cc65
40c86f:	33 c9                	xor    %ecx,%ecx
40c871:	66 89 8c 05 ec f9 ff 	mov    %cx,-0x614(%ebp,%eax,1)
40c878:	ff
40c879:	8d 85 ec f9 ff ff    	lea    -0x614(%ebp),%eax
40c87f:	6a 3a                	push   $0x3a
40c881:	50                   	push   %eax
40c882:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40c888:	8b d8                	mov    %eax,%ebx
40c88a:	83 c4 08             	add    $0x8,%esp
40c88d:	85 db                	test   %ebx,%ebx
40c88f:	0f 85 3b 01 00 00    	jne    0x40c9d0
40c895:	eb 09                	jmp    0x40c8a0
40c897:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40c89e:	8b ff                	mov    %edi,%edi
40c8a0:	8b 9d e4 f9 ff ff    	mov    -0x61c(%ebp),%ebx
40c8a6:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
40c8ad:	0f 85 6d 08 01 00    	jne    0x41d120
40c8b3:	6a 01                	push   $0x1
40c8b5:	6a 00                	push   $0x0
40c8b7:	6a 00                	push   $0x0
40c8b9:	57                   	push   %edi
40c8ba:	ff 15 2c a4 44 00    	call   *0x44a42c
40c8c0:	83 c4 04             	add    $0x4,%esp
40c8c3:	50                   	push   %eax
40c8c4:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40c8ca:	83 bd d0 f9 ff ff 00 	cmpl   $0x0,-0x630(%ebp)
40c8d1:	89 43 08             	mov    %eax,0x8(%ebx)
40c8d4:	0f 84 bc 01 00 00    	je     0x40ca96
40c8da:	57                   	push   %edi
40c8db:	ff 15 2c a4 44 00    	call   *0x44a42c
40c8e1:	83 c4 04             	add    $0x4,%esp
40c8e4:	8b d8                	mov    %eax,%ebx
40c8e6:	89 9d cc f9 ff ff    	mov    %ebx,-0x634(%ebp)
40c8ec:	53                   	push   %ebx
40c8ed:	ff 15 d0 a0 44 00    	call   *0x44a0d0
40c8f3:	25 ff 7f ff ff       	and    $0xffff7fff,%eax