40f59d:	e8 f0 fb ff ff       	call   0x40f192
40f5a2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f5a5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f5ac:	59                   	pop    %ecx
40f5ad:	5e                   	pop    %esi
40f5ae:	c9                   	leave
40f5af:	c3                   	ret
40f5b0:	55                   	push   %ebp
40f5b1:	8b ec                	mov    %esp,%ebp
40f5b3:	6a ff                	push   $0xffffffff
40f5b5:	68 f9 d6 48 00       	push   $0x48d6f9
40f5ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f5c0:	50                   	push   %eax
40f5c1:	51                   	push   %ecx
40f5c2:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f5c7:	33 c5                	xor    %ebp,%eax
40f5c9:	50                   	push   %eax
40f5ca:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f5cd:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f5d3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f5d6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40f5da:	e8 f8 fe ff ff       	call   0x40f4d7
40f5df:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f5e2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f5e9:	59                   	pop    %ecx
40f5ea:	c9                   	leave
40f5eb:	c3                   	ret
40f5ec:	55                   	push   %ebp
40f5ed:	8b ec                	mov    %esp,%ebp
40f5ef:	56                   	push   %esi
40f5f0:	8b 75 08             	mov    0x8(%ebp),%esi
40f5f3:	57                   	push   %edi
40f5f4:	8b f9                	mov    %ecx,%edi
40f5f6:	8b 06                	mov    (%esi),%eax
40f5f8:	89 07                	mov    %eax,(%edi)
40f5fa:	8d 4f 04             	lea    0x4(%edi),%ecx
40f5fd:	8d 46 04             	lea    0x4(%esi),%eax
40f600:	50                   	push   %eax
40f601:	e8 59 06 00 00       	call   0x40fc5f
40f606:	83 c6 14             	add    $0x14,%esi
40f609:	8d 4f 14             	lea    0x14(%edi),%ecx
40f60c:	3b ce                	cmp    %esi,%ecx
40f60e:	74 0d                	je     0x40f61d
40f610:	ff 75 08             	push   0x8(%ebp)
40f613:	ff 76 04             	push   0x4(%esi)
40f616:	ff 36                	push   (%esi)
40f618:	e8 6c 31 ff ff       	call   0x402789
40f61d:	8b c7                	mov    %edi,%eax
40f61f:	5f                   	pop    %edi
40f620:	5e                   	pop    %esi
40f621:	5d                   	pop    %ebp
40f622:	c2 04 00             	ret    $0x4
40f625:	55                   	push   %ebp
40f626:	8b ec                	mov    %esp,%ebp
40f628:	56                   	push   %esi
40f629:	8b 75 08             	mov    0x8(%ebp),%esi
40f62c:	57                   	push   %edi
40f62d:	8b f9                	mov    %ecx,%edi
40f62f:	8b 06                	mov    (%esi),%eax
40f631:	89 07                	mov    %eax,(%edi)
40f633:	8d 4f 04             	lea    0x4(%edi),%ecx
40f636:	8d 46 04             	lea    0x4(%esi),%eax
40f639:	50                   	push   %eax
40f63a:	e8 20 06 00 00       	call   0x40fc5f
40f63f:	83 c6 14             	add    $0x14,%esi
40f642:	8d 4f 14             	lea    0x14(%edi),%ecx
40f645:	3b ce                	cmp    %esi,%ecx
40f647:	74 0d                	je     0x40f656
40f649:	ff 75 08             	push   0x8(%ebp)
40f64c:	ff 76 04             	push   0x4(%esi)
40f64f:	ff 36                	push   (%esi)
40f651:	e8 e0 31 ff ff       	call   0x402836
40f656:	8b c7                	mov    %edi,%eax
40f658:	5f                   	pop    %edi
40f659:	5e                   	pop    %esi
40f65a:	5d                   	pop    %ebp
40f65b:	c2 04 00             	ret    $0x4
40f65e:	55                   	push   %ebp
40f65f:	8b ec                	mov    %esp,%ebp
40f661:	56                   	push   %esi
40f662:	8b 75 08             	mov    0x8(%ebp),%esi
40f665:	57                   	push   %edi
40f666:	8b f9                	mov    %ecx,%edi
40f668:	8b 06                	mov    (%esi),%eax
40f66a:	89 07                	mov    %eax,(%edi)
40f66c:	8d 4f 04             	lea    0x4(%edi),%ecx
40f66f:	8d 46 04             	lea    0x4(%esi),%eax
40f672:	50                   	push   %eax
40f673:	e8 e7 05 00 00       	call   0x40fc5f
40f678:	83 c6 14             	add    $0x14,%esi
40f67b:	8d 4f 14             	lea    0x14(%edi),%ecx
40f67e:	3b ce                	cmp    %esi,%ecx
40f680:	74 0d                	je     0x40f68f
40f682:	ff 75 08             	push   0x8(%ebp)
40f685:	ff 76 04             	push   0x4(%esi)
40f688:	ff 36                	push   (%esi)
40f68a:	e8 55 32 ff ff       	call   0x4028e4
40f68f:	8b c7                	mov    %edi,%eax
40f691:	5f                   	pop    %edi
40f692:	5e                   	pop    %esi
40f693:	5d                   	pop    %ebp
40f694:	c2 04 00             	ret    $0x4
40f697:	55                   	push   %ebp
40f698:	8b ec                	mov    %esp,%ebp
40f69a:	51                   	push   %ecx
40f69b:	53                   	push   %ebx
40f69c:	56                   	push   %esi
40f69d:	57                   	push   %edi
40f69e:	8b f9                	mov    %ecx,%edi
40f6a0:	33 d2                	xor    %edx,%edx
40f6a2:	42                   	inc    %edx
40f6a3:	8b 07                	mov    (%edi),%eax
40f6a5:	8b 5f 04             	mov    0x4(%edi),%ebx
40f6a8:	8b 30                	mov    (%eax),%esi
40f6aa:	8b 45 08             	mov    0x8(%ebp),%eax
40f6ad:	8b 48 04             	mov    0x4(%eax),%ecx
40f6b0:	8b 00                	mov    (%eax),%eax
40f6b2:	d3 e2                	shl    %cl,%edx
40f6b4:	85 10                	test   %edx,(%eax)
40f6b6:	74 05                	je     0x40f6bd
40f6b8:	0f ab de             	bts    %ebx,%esi
40f6bb:	eb 03                	jmp    0x40f6c0
40f6bd:	0f b3 de             	btr    %ebx,%esi
40f6c0:	8b 07                	mov    (%edi),%eax
40f6c2:	89 30                	mov    %esi,(%eax)
40f6c4:	8b c7                	mov    %edi,%eax
40f6c6:	5f                   	pop    %edi
40f6c7:	5e                   	pop    %esi
40f6c8:	5b                   	pop    %ebx
40f6c9:	c9                   	leave
40f6ca:	c2 04 00             	ret    $0x4
40f6cd:	55                   	push   %ebp
40f6ce:	8b ec                	mov    %esp,%ebp
40f6d0:	6a ff                	push   $0xffffffff
40f6d2:	68 14 d7 48 00       	push   $0x48d714
40f6d7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f6dd:	50                   	push   %eax
40f6de:	51                   	push   %ecx
40f6df:	56                   	push   %esi
40f6e0:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f6e5:	33 c5                	xor    %ebp,%eax
40f6e7:	50                   	push   %eax
40f6e8:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f6eb:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f6f1:	8b f1                	mov    %ecx,%esi
40f6f3:	3b 75 08             	cmp    0x8(%ebp),%esi
40f6f6:	74 16                	je     0x40f70e
40f6f8:	e8 d7 db 00 00       	call   0x41d2d4
40f6fd:	c6 45 f0 00          	movb   $0x0,-0x10(%ebp)
40f701:	8b ce                	mov    %esi,%ecx
40f703:	ff 75 f0             	push   -0x10(%ebp)
40f706:	ff 75 08             	push   0x8(%ebp)
40f709:	e8 40 6b 00 00       	call   0x41624e
40f70e:	8b c6                	mov    %esi,%eax
40f710:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f713:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f71a:	59                   	pop    %ecx
40f71b:	5e                   	pop    %esi
40f71c:	c9                   	leave
40f71d:	c2 04 00             	ret    $0x4
40f720:	55                   	push   %ebp
40f721:	8b ec                	mov    %esp,%ebp
40f723:	8b 45 08             	mov    0x8(%ebp),%eax
40f726:	56                   	push   %esi
40f727:	8b f1                	mov    %ecx,%esi
40f729:	3b f0                	cmp    %eax,%esi
40f72b:	74 14                	je     0x40f741
40f72d:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
40f731:	8b 48 10             	mov    0x10(%eax),%ecx
40f734:	72 02                	jb     0x40f738
40f736:	8b 00                	mov    (%eax),%eax
40f738:	51                   	push   %ecx
40f739:	50                   	push   %eax
40f73a:	8b ce                	mov    %esi,%ecx
40f73c:	e8 69 00 01 00       	call   0x41f7aa
40f741:	8b c6                	mov    %esi,%eax
40f743:	5e                   	pop    %esi
40f744:	5d                   	pop    %ebp
40f745:	c2 04 00             	ret    $0x4
40f748:	55                   	push   %ebp
40f749:	8b ec                	mov    %esp,%ebp
40f74b:	6a ff                	push   $0xffffffff
40f74d:	68 2f d7 48 00       	push   $0x48d72f
40f752:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f758:	50                   	push   %eax
40f759:	51                   	push   %ecx
40f75a:	56                   	push   %esi
40f75b:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f760:	33 c5                	xor    %ebp,%eax
40f762:	50                   	push   %eax
40f763:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f766:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f76c:	8b f1                	mov    %ecx,%esi
40f76e:	3b 75 08             	cmp    0x8(%ebp),%esi
40f771:	74 16                	je     0x40f789
40f773:	e8 82 db 00 00       	call   0x41d2fa
40f778:	c6 45 f0 00          	movb   $0x0,-0x10(%ebp)
40f77c:	8b ce                	mov    %esi,%ecx
40f77e:	ff 75 f0             	push   -0x10(%ebp)
40f781:	ff 75 08             	push   0x8(%ebp)
40f784:	e8 15 6b 00 00       	call   0x41629e
40f789:	8b c6                	mov    %esi,%eax
40f78b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f78e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f795:	59                   	pop    %ecx
40f796:	5e                   	pop    %esi
40f797:	c9                   	leave
40f798:	c2 04 00             	ret    $0x4
40f79b:	55                   	push   %ebp
40f79c:	8b ec                	mov    %esp,%ebp
40f79e:	8b 45 08             	mov    0x8(%ebp),%eax
40f7a1:	56                   	push   %esi
40f7a2:	8b f1                	mov    %ecx,%esi
40f7a4:	3b f0                	cmp    %eax,%esi
40f7a6:	74 14                	je     0x40f7bc
40f7a8:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40f7ac:	8b 48 10             	mov    0x10(%eax),%ecx
40f7af:	72 02                	jb     0x40f7b3
40f7b1:	8b 00                	mov    (%eax),%eax
40f7b3:	51                   	push   %ecx
40f7b4:	50                   	push   %eax
40f7b5:	8b ce                	mov    %esi,%ecx
40f7b7:	e8 e7 00 01 00       	call   0x41f8a3
40f7bc:	8b c6                	mov    %esi,%eax
40f7be:	5e                   	pop    %esi
40f7bf:	5d                   	pop    %ebp
40f7c0:	c2 04 00             	ret    $0x4
40f7c3:	55                   	push   %ebp
40f7c4:	8b ec                	mov    %esp,%ebp
40f7c6:	6a ff                	push   $0xffffffff
40f7c8:	68 52 d7 48 00       	push   $0x48d752
40f7cd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f7d3:	50                   	push   %eax
40f7d4:	51                   	push   %ecx
40f7d5:	51                   	push   %ecx
40f7d6:	56                   	push   %esi
40f7d7:	57                   	push   %edi
40f7d8:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f7dd:	33 c5                	xor    %ebp,%eax
40f7df:	50                   	push   %eax
40f7e0:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f7e3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f7e9:	8b f9                	mov    %ecx,%edi
40f7eb:	8b 45 08             	mov    0x8(%ebp),%eax
40f7ee:	33 c9                	xor    %ecx,%ecx
40f7f0:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f7f3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f7f6:	8b 10                	mov    (%eax),%edx
40f7f8:	8b 70 04             	mov    0x4(%eax),%esi
40f7fb:	89 55 ec             	mov    %edx,-0x14(%ebp)
40f7fe:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f801:	89 08                	mov    %ecx,(%eax)
40f803:	89 48 04             	mov    %ecx,0x4(%eax)
40f806:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f809:	8b 07                	mov    (%edi),%eax
40f80b:	89 17                	mov    %edx,(%edi)
40f80d:	8b 4f 04             	mov    0x4(%edi),%ecx
40f810:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f813:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f816:	89 77 04             	mov    %esi,0x4(%edi)
40f819:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40f81d:	85 c9                	test   %ecx,%ecx
40f81f:	74 05                	je     0x40f826
40f821:	e8 fc 84 00 00       	call   0x417d22
40f826:	8b c7                	mov    %edi,%eax
40f828:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f82b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f832:	59                   	pop    %ecx
40f833:	5f                   	pop    %edi
40f834:	5e                   	pop    %esi
40f835:	c9                   	leave
40f836:	c2 04 00             	ret    $0x4
40f839:	55                   	push   %ebp
40f83a:	8b ec                	mov    %esp,%ebp
40f83c:	6a ff                	push   $0xffffffff
40f83e:	68 75 d7 48 00       	push   $0x48d775
40f843:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f849:	50                   	push   %eax
40f84a:	51                   	push   %ecx
40f84b:	51                   	push   %ecx
40f84c:	56                   	push   %esi
40f84d:	57                   	push   %edi
40f84e:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f853:	33 c5                	xor    %ebp,%eax
40f855:	50                   	push   %eax
40f856:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f859:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f85f:	8b f9                	mov    %ecx,%edi
40f861:	8b 45 08             	mov    0x8(%ebp),%eax
40f864:	33 c9                	xor    %ecx,%ecx
40f866:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f869:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f86c:	8b 10                	mov    (%eax),%edx
40f86e:	8b 70 04             	mov    0x4(%eax),%esi
40f871:	89 55 ec             	mov    %edx,-0x14(%ebp)
40f874:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f877:	89 08                	mov    %ecx,(%eax)
40f879:	89 48 04             	mov    %ecx,0x4(%eax)
40f87c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f87f:	8b 07                	mov    (%edi),%eax
40f881:	89 17                	mov    %edx,(%edi)
40f883:	8b 4f 04             	mov    0x4(%edi),%ecx
40f886:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f889:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f88c:	89 77 04             	mov    %esi,0x4(%edi)
40f88f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40f893:	85 c9                	test   %ecx,%ecx
40f895:	74 05                	je     0x40f89c
40f897:	e8 86 84 00 00       	call   0x417d22
40f89c:	8b c7                	mov    %edi,%eax
40f89e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f8a1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f8a8:	59                   	pop    %ecx
40f8a9:	5f                   	pop    %edi
40f8aa:	5e                   	pop    %esi
40f8ab:	c9                   	leave
40f8ac:	c2 04 00             	ret    $0x4
40f8af:	55                   	push   %ebp
40f8b0:	8b ec                	mov    %esp,%ebp
40f8b2:	6a ff                	push   $0xffffffff
40f8b4:	68 98 d7 48 00       	push   $0x48d798
40f8b9:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f8bf:	50                   	push   %eax
40f8c0:	51                   	push   %ecx
40f8c1:	51                   	push   %ecx
40f8c2:	56                   	push   %esi
40f8c3:	57                   	push   %edi
40f8c4:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40f8c9:	33 c5                	xor    %ebp,%eax
40f8cb:	50                   	push   %eax
40f8cc:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f8cf:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f8d5:	8b f9                	mov    %ecx,%edi
40f8d7:	8b 45 08             	mov    0x8(%ebp),%eax
40f8da:	33 c9                	xor    %ecx,%ecx
40f8dc:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f8df:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f8e2:	8b 10                	mov    (%eax),%edx
40f8e4:	8b 70 04             	mov    0x4(%eax),%esi
40f8e7:	89 55 ec             	mov    %edx,-0x14(%ebp)
40f8ea:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f8ed:	89 08                	mov    %ecx,(%eax)
40f8ef:	89 48 04             	mov    %ecx,0x4(%eax)
40f8f2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f8f5:	8b 07                	mov    (%edi),%eax
40f8f7:	89 17                	mov    %edx,(%edi)
40f8f9:	8b 4f 04             	mov    0x4(%edi),%ecx
40f8fc:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f8ff:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f902:	89 77 04             	mov    %esi,0x4(%edi)