40f490:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f493:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
40f49a:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
40f4a1:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
40f4a8:	e8 83 09 00 00       	call   0x40fe30
40f4ad:	85 c0                	test   %eax,%eax
40f4af:	78 6f                	js     0x40f520
40f4b1:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)
40f4b5:	0f 85 65 03 00 00    	jne    0x40f820
40f4bb:	8b 4b 04             	mov    0x4(%ebx),%ecx
40f4be:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f4c1:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40f4c4:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40f4c9:	0f 85 90 99 06 00    	jne    0x478e5f
40f4cf:	85 f6                	test   %esi,%esi
40f4d1:	0f 84 d7 07 00 00    	je     0x40fcae
40f4d7:	83 ff 41             	cmp    $0x41,%edi
40f4da:	0f 85 1c 06 00 00    	jne    0x40fafc
40f4e0:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f4e3:	3b f0                	cmp    %eax,%esi
40f4e5:	74 39                	je     0x40f520
40f4e7:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
40f4eb:	0f 84 66 06 00 00    	je     0x40fb57
40f4f1:	8b 7e 08             	mov    0x8(%esi),%edi
40f4f4:	85 ff                	test   %edi,%edi
40f4f6:	0f 85 bd 06 00 00    	jne    0x40fbb9
40f4fc:	8b 46 0c             	mov    0xc(%esi),%eax
40f4ff:	83 f8 05             	cmp    $0x5,%eax
40f502:	0f 8d ed 06 00 00    	jge    0x40fbf5
40f508:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f50b:	50                   	push   %eax
40f50c:	8b ce                	mov    %esi,%ecx
40f50e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
40f515:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40f51b:	e8 00 22 00 00       	call   0x411720
40f520:	8b 75 a4             	mov    -0x5c(%ebp),%esi
40f523:	85 f6                	test   %esi,%esi
40f525:	0f 85 9c 05 00 00    	jne    0x40fac7
40f52b:	8b 45 a8             	mov    -0x58(%ebp),%eax
40f52e:	83 f8 05             	cmp    $0x5,%eax
40f531:	0f 8d 9e 06 00 00    	jge    0x40fbd5
40f537:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
40f53e:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
40f545:	8b b5 60 ff ff ff    	mov    -0xa0(%ebp),%esi
40f54b:	ff 0e                	decl   (%esi)
40f54d:	0f 84 9d 9a 06 00    	je     0x478ff0
40f553:	5f                   	pop    %edi
40f554:	5e                   	pop    %esi
40f555:	5b                   	pop    %ebx
40f556:	8b e5                	mov    %ebp,%esp
40f558:	5d                   	pop    %ebp
40f559:	c2 04 00             	ret    $0x4
40f55c:	73 1a                	jae    0x40f578
40f55e:	8b 41 1c             	mov    0x1c(%ecx),%eax
40f561:	8b 55 98             	mov    -0x68(%ebp),%edx
40f564:	89 42 18             	mov    %eax,0x18(%edx)
40f567:	8b 06                	mov    (%esi),%eax
40f569:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f56c:	89 0e                	mov    %ecx,(%esi)
40f56e:	83 79 18 00          	cmpl   $0x0,0x18(%ecx)
40f572:	0f 84 1c 01 00 00    	je     0x40f694
40f578:	8b 06                	mov    (%esi),%eax
40f57a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f57d:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f580:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f583:	89 41 18             	mov    %eax,0x18(%ecx)
40f586:	8b 06                	mov    (%esi),%eax
40f588:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f58b:	8b 40 18             	mov    0x18(%eax),%eax
40f58e:	89 06                	mov    %eax,(%esi)
40f590:	e9 bb fc ff ff       	jmp    0x40f250
40f595:	8b 3d e0 20 4c 00    	mov    0x4c20e0,%edi
40f59b:	85 ff                	test   %edi,%edi
40f59d:	0f 84 01 07 00 00    	je     0x40fca4
40f5a3:	a1 f0 21 4c 00       	mov    0x4c21f0,%eax
40f5a8:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40f5ac:	a8 01                	test   $0x1,%al
40f5ae:	0f 84 dd 91 06 00    	je     0x478791
40f5b4:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
40f5bb:	00 00 00
40f5be:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
40f5c5:	00 00 00
40f5c8:	c7 45 88 f4 21 4c 00 	movl   $0x4c21f4,-0x78(%ebp)
40f5cf:	c7 45 ec f4 21 4c 00 	movl   $0x4c21f4,-0x14(%ebp)
40f5d6:	eb 08                	jmp    0x40f5e0
40f5d8:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f5df:	90                   	nop
40f5e0:	8b 4f 04             	mov    0x4(%edi),%ecx
40f5e3:	85 db                	test   %ebx,%ebx
40f5e5:	0f 84 d0 91 06 00    	je     0x4787bb
40f5eb:	85 c9                	test   %ecx,%ecx
40f5ed:	0f 84 1d 04 00 00    	je     0x40fa10
40f5f3:	3b d9                	cmp    %ecx,%ebx
40f5f5:	0f 82 24 05 00 00    	jb     0x40fb1f
40f5fb:	8b 0f                	mov    (%edi),%ecx
40f5fd:	8b 55 c0             	mov    -0x40(%ebp),%edx
40f600:	8b f3                	mov    %ebx,%esi
40f602:	85 db                	test   %ebx,%ebx
40f604:	74 11                	je     0x40f617
40f606:	66 8b 02             	mov    (%edx),%ax
40f609:	66 3b 01             	cmp    (%ecx),%ax
40f60c:	75 78                	jne    0x40f686
40f60e:	83 c2 02             	add    $0x2,%edx
40f611:	83 c1 02             	add    $0x2,%ecx
40f614:	4e                   	dec    %esi
40f615:	75 ef                	jne    0x40f606
40f617:	33 c0                	xor    %eax,%eax
40f619:	85 c0                	test   %eax,%eax
40f61b:	0f 88 59 03 00 00    	js     0x40f97a
40f621:	0f 8f e9 03 00 00    	jg     0x40fa10
40f627:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
40f62b:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
40f62f:	8b 47 18             	mov    0x18(%edi),%eax
40f632:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f635:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f638:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40f63d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f640:	8b 40 1c             	mov    0x1c(%eax),%eax
40f643:	89 41 18             	mov    %eax,0x18(%ecx)
40f646:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
40f64c:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40f651:	89 41 18             	mov    %eax,0x18(%ecx)
40f654:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
40f65a:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40f65f:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f662:	0f 84 3c 06 00 00    	je     0x40fca4
40f668:	8b 35 e0 20 4c 00    	mov    0x4c20e0,%esi
40f66e:	85 f6                	test   %esi,%esi
40f670:	0f 84 2e 06 00 00    	je     0x40fca4
40f676:	8b 46 10             	mov    0x10(%esi),%eax
40f679:	8b 76 14             	mov    0x14(%esi),%esi
40f67c:	25 00 ff 00 00       	and    $0xff00,%eax
40f681:	e9 57 fd ff ff       	jmp    0x40f3dd
40f686:	0f b7 02             	movzwl (%edx),%eax
40f689:	66 3b 01             	cmp    (%ecx),%ax
40f68c:	1b c0                	sbb    %eax,%eax
40f68e:	83 e0 fe             	and    $0xfffffffe,%eax
40f691:	40                   	inc    %eax
40f692:	eb 85                	jmp    0x40f619
40f694:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f697:	8a 55 f7             	mov    -0x9(%ebp),%dl
40f69a:	e9 ec fc ff ff       	jmp    0x40f38b
40f69f:	90                   	nop
40f6a0:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40f6a4:	0f 85 71 94 06 00    	jne    0x478b1b
40f6aa:	8b c2                	mov    %edx,%eax
40f6ac:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40f6b3:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
40f6ba:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40f6c1:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f6c4:	8b 44 91 fc          	mov    -0x4(%ecx,%edx,4),%eax
40f6c8:	33 db                	xor    %ebx,%ebx
40f6ca:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f6ce:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f6d1:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f6d4:	89 75 90             	mov    %esi,-0x70(%ebp)
40f6d7:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f6dc:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f6df:	0f 85 8b 00 00 00    	jne    0x40f770
40f6e5:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
40f6e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f6ec:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f6f0:	42                   	inc    %edx
40f6f1:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f6f4:	6a ff                	push   $0xffffffff
40f6f6:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40f6f9:	50                   	push   %eax
40f6fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f6fd:	50                   	push   %eax
40f6fe:	57                   	push   %edi
40f6ff:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f702:	e8 29 07 00 00       	call   0x40fe30
40f707:	85 c0                	test   %eax,%eax
40f709:	0f 88 b3 94 06 00    	js     0x478bc2
40f70f:	8b 7d d0             	mov    -0x30(%ebp),%edi
40f712:	83 ff 01             	cmp    $0x1,%edi
40f715:	0f 85 f9 04 00 00    	jne    0x40fc14
40f71b:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40f71e:	8b c3                	mov    %ebx,%eax
40f720:	85 c0                	test   %eax,%eax
40f722:	0f 88 cf 05 00 00    	js     0x40fcf7
40f728:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f72b:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f72e:	8b 41 04             	mov    0x4(%ecx),%eax
40f731:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f734:	66 83 78 08 4f       	cmpw   $0x4f,0x8(%eax)
40f739:	0f 85 66 94 06 00    	jne    0x478ba5
40f73f:	42                   	inc    %edx
40f740:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f743:	83 ff 01             	cmp    $0x1,%edi
40f746:	0f 85 eb 04 00 00    	jne    0x40fc37
40f74c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f74f:	8b 7d 08             	mov    0x8(%ebp),%edi
40f752:	89 9c 85 4c fe ff ff 	mov    %ebx,-0x1b4(%ebp,%eax,4)
40f759:	8b 4f 04             	mov    0x4(%edi),%ecx
40f75c:	8b d8                	mov    %eax,%ebx
40f75e:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f761:	43                   	inc    %ebx
40f762:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f767:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f76a:	0f 84 75 ff ff ff    	je     0x40f6e5
40f770:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40f774:	0f 85 cb 92 06 00    	jne    0x478a45
40f77a:	8b 06                	mov    (%esi),%eax
40f77c:	33 c9                	xor    %ecx,%ecx
40f77e:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
40f785:	00 00 00
40f788:	85 db                	test   %ebx,%ebx
40f78a:	7e 32                	jle    0x40f7be
40f78c:	8d 64 24 00          	lea    0x0(%esp),%esp
40f790:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40f794:	75 23                	jne    0x40f7b9
40f796:	8b 16                	mov    (%esi),%edx
40f798:	8b ba 10 02 00 00    	mov    0x210(%edx),%edi
40f79e:	83 ff 40             	cmp    $0x40,%edi
40f7a1:	7d 16                	jge    0x40f7b9
40f7a3:	8b 84 8d 4c fe ff ff 	mov    -0x1b4(%ebp,%ecx,4),%eax
40f7aa:	89 84 ba 0c 01 00 00 	mov    %eax,0x10c(%edx,%edi,4)
40f7b1:	8b 06                	mov    (%esi),%eax
40f7b3:	ff 80 10 02 00 00    	incl   0x210(%eax)
40f7b9:	41                   	inc    %ecx
40f7ba:	3b cb                	cmp    %ebx,%ecx
40f7bc:	7c d2                	jl     0x40f790
40f7be:	6a 00                	push   $0x0
40f7c0:	6a 01                	push   $0x1
40f7c2:	56                   	push   %esi
40f7c3:	e8 c8 23 00 00       	call   0x411b90
40f7c8:	8b f0                	mov    %eax,%esi
40f7ca:	83 c4 0c             	add    $0xc,%esp
40f7cd:	89 75 b8             	mov    %esi,-0x48(%ebp)
40f7d0:	85 f6                	test   %esi,%esi
40f7d2:	0f 84 dd 93 06 00    	je     0x478bb5
40f7d8:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40f7db:	85 c9                	test   %ecx,%ecx
40f7dd:	0f 85 6e 92 06 00    	jne    0x478a51
40f7e3:	8b 45 d0             	mov    -0x30(%ebp),%eax
40f7e6:	83 f8 05             	cmp    $0x5,%eax
40f7e9:	0f 8d 74 92 06 00    	jge    0x478a63
40f7ef:	8b 7d 08             	mov    0x8(%ebp),%edi
40f7f2:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40f7f5:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40f7fc:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40f803:	c6 45 eb 01          	movb   $0x1,-0x15(%ebp)
40f807:	8b 4f 04             	mov    0x4(%edi),%ecx
40f80a:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f80d:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f810:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f815:	0f 85 16 fc ff ff    	jne    0x40f431
40f81b:	e9 80 fe ff ff       	jmp    0x40f6a0
40f820:	8b 75 08             	mov    0x8(%ebp),%esi
40f823:	8b 55 b0             	mov    -0x50(%ebp),%edx
40f826:	8b 4e 04             	mov    0x4(%esi),%ecx
40f829:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
40f830:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
40f837:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40f83e:	8b 44 91 fc          	mov    -0x4(%ecx,%edx,4),%eax
40f842:	33 db                	xor    %ebx,%ebx
40f844:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f848:	89 45 98             	mov    %eax,-0x68(%ebp)
40f84b:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f84e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f851:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f856:	0f 85 8f 00 00 00    	jne    0x40f8eb
40f85c:	8d 64 24 00          	lea    0x0(%esp),%esp
40f860:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
40f864:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f867:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f86b:	42                   	inc    %edx
40f86c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f86f:	6a ff                	push   $0xffffffff
40f871:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40f874:	50                   	push   %eax
40f875:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f878:	50                   	push   %eax
40f879:	56                   	push   %esi
40f87a:	89 55 ac             	mov    %edx,-0x54(%ebp)
40f87d:	e8 ae 05 00 00       	call   0x40fe30
40f882:	85 c0                	test   %eax,%eax
40f884:	0f 88 f2 94 06 00    	js     0x478d7c
40f88a:	8b 75 e0             	mov    -0x20(%ebp),%esi
40f88d:	83 fe 01             	cmp    $0x1,%esi
40f890:	0f 85 c6 03 00 00    	jne    0x40fc5c
40f896:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40f899:	8b c3                	mov    %ebx,%eax
40f89b:	85 c0                	test   %eax,%eax
40f89d:	0f 88 73 04 00 00    	js     0x40fd16
40f8a3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f8a6:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f8a9:	8b 41 04             	mov    0x4(%ecx),%eax
40f8ac:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f8af:	66 83 78 08 4f       	cmpw   $0x4f,0x8(%eax)
40f8b4:	0f 85 a5 94 06 00    	jne    0x478d5f
40f8ba:	42                   	inc    %edx
40f8bb:	89 55 b0             	mov    %edx,-0x50(%ebp)
40f8be:	83 fe 01             	cmp    $0x1,%esi
40f8c1:	0f 85 b8 03 00 00    	jne    0x40fc7f
40f8c7:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f8ca:	8b 75 08             	mov    0x8(%ebp),%esi
40f8cd:	89 9c 85 4c fe ff ff 	mov    %ebx,-0x1b4(%ebp,%eax,4)
40f8d4:	8b 4e 04             	mov    0x4(%esi),%ecx
40f8d7:	8b d8                	mov    %eax,%ebx
40f8d9:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f8dc:	43                   	inc    %ebx
40f8dd:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f8e2:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f8e5:	0f 84 75 ff ff ff    	je     0x40f860
40f8eb:	8b 75 90             	mov    -0x70(%ebp),%esi
40f8ee:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40f8f2:	0f 85 91 94 06 00    	jne    0x478d89
40f8f8:	8b 06                	mov    (%esi),%eax
40f8fa:	33 c9                	xor    %ecx,%ecx
40f8fc:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
40f903:	00 00 00
40f906:	85 db                	test   %ebx,%ebx
40f908:	7e 3a                	jle    0x40f944
40f90a:	8b 7d 90             	mov    -0x70(%ebp),%edi
40f90d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f910:	83 7f 0c 05          	cmpl   $0x5,0xc(%edi)
40f914:	75 23                	jne    0x40f939
40f916:	8b 17                	mov    (%edi),%edx
40f918:	8b b2 10 02 00 00    	mov    0x210(%edx),%esi
40f91e:	83 fe 40             	cmp    $0x40,%esi
40f921:	7d 16                	jge    0x40f939
40f923:	8b 84 8d 4c fe ff ff 	mov    -0x1b4(%ebp,%ecx,4),%eax
40f92a:	89 84 b2 0c 01 00 00 	mov    %eax,0x10c(%edx,%esi,4)
40f931:	8b 07                	mov    (%edi),%eax
40f933:	ff 80 10 02 00 00    	incl   0x210(%eax)
40f939:	41                   	inc    %ecx
40f93a:	3b cb                	cmp    %ebx,%ecx
40f93c:	7c d2                	jl     0x40f910
40f93e:	8b 7d 88             	mov    -0x78(%ebp),%edi
40f941:	8b 75 90             	mov    -0x70(%ebp),%esi
40f944:	6a 00                	push   $0x0
40f946:	6a 00                	push   $0x0
40f948:	56                   	push   %esi
40f949:	e8 42 22 00 00       	call   0x411b90
40f94e:	8b f0                	mov    %eax,%esi
40f950:	83 c4 0c             	add    $0xc,%esp
40f953:	85 f6                	test   %esi,%esi
40f955:	0f 84 14 94 06 00    	je     0x478d6f
40f95b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40f95e:	85 c9                	test   %ecx,%ecx
40f960:	0f 85 2f 94 06 00    	jne    0x478d95
40f966:	8b 45 e0             	mov    -0x20(%ebp),%eax
40f969:	83 f8 05             	cmp    $0x5,%eax
40f96c:	0f 8d 35 94 06 00    	jge    0x478da7
40f972:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f975:	e9 41 fb ff ff       	jmp    0x40f4bb
40f97a:	8b 77 18             	mov    0x18(%edi),%esi
40f97d:	8d 47 18             	lea    0x18(%edi),%eax