4074c9:	cc                   	int3
4074ca:	cc                   	int3
4074cb:	cc                   	int3
4074cc:	cc                   	int3
4074cd:	cc                   	int3
4074ce:	cc                   	int3
4074cf:	cc                   	int3
4074d0:	55                   	push   %ebp
4074d1:	8b ec                	mov    %esp,%ebp
4074d3:	83 ec 0c             	sub    $0xc,%esp
4074d6:	b8 ff ff 00 00       	mov    $0xffff,%eax
4074db:	53                   	push   %ebx
4074dc:	56                   	push   %esi
4074dd:	57                   	push   %edi
4074de:	8b f9                	mov    %ecx,%edi
4074e0:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
4074e4:	0f 85 65 01 00 00    	jne    0x40764f
4074ea:	66 3b 45 08          	cmp    0x8(%ebp),%ax
4074ee:	75 0b                	jne    0x4074fb
4074f0:	5f                   	pop    %edi
4074f1:	5e                   	pop    %esi
4074f2:	33 c0                	xor    %eax,%eax
4074f4:	5b                   	pop    %ebx
4074f5:	8b e5                	mov    %ebp,%esp
4074f7:	5d                   	pop    %ebp
4074f8:	c2 04 00             	ret    $0x4
4074fb:	8b 47 20             	mov    0x20(%edi),%eax
4074fe:	8b 57 30             	mov    0x30(%edi),%edx
407501:	8b 00                	mov    (%eax),%eax
407503:	8b 0a                	mov    (%edx),%ecx
407505:	89 45 fc             	mov    %eax,-0x4(%ebp)
407508:	8d 1c 48             	lea    (%eax,%ecx,2),%ebx
40750b:	85 c0                	test   %eax,%eax
40750d:	74 58                	je     0x407567
40750f:	3b c3                	cmp    %ebx,%eax
407511:	73 26                	jae    0x407539
407513:	66 8b 45 08          	mov    0x8(%ebp),%ax
407517:	49                   	dec    %ecx
407518:	89 0a                	mov    %ecx,(%edx)
40751a:	8b 57 20             	mov    0x20(%edi),%edx
40751d:	8b 32                	mov    (%edx),%esi
40751f:	8d 4e 02             	lea    0x2(%esi),%ecx
407522:	89 0a                	mov    %ecx,(%edx)
407524:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407527:	66 89 06             	mov    %ax,(%esi)
40752a:	83 c1 02             	add    $0x2,%ecx
40752d:	89 4f 38             	mov    %ecx,0x38(%edi)
407530:	5f                   	pop    %edi
407531:	5e                   	pop    %esi
407532:	5b                   	pop    %ebx
407533:	8b e5                	mov    %ebp,%esp
407535:	5d                   	pop    %ebp
407536:	c2 04 00             	ret    $0x4
407539:	8b 47 0c             	mov    0xc(%edi),%eax
40753c:	8b 30                	mov    (%eax),%esi
40753e:	2b de                	sub    %esi,%ebx
407540:	d1 fb                	sar    $1,%ebx
407542:	83 fb 20             	cmp    $0x20,%ebx
407545:	72 27                	jb     0x40756e
407547:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
40754d:	73 05                	jae    0x407554
40754f:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
407552:	eb 1f                	jmp    0x407573
407554:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40755a:	0f 83 ea 00 00 00    	jae    0x40764a
407560:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
407565:	eb 0c                	jmp    0x407573
407567:	8b 47 0c             	mov    0xc(%edi),%eax
40756a:	33 db                	xor    %ebx,%ebx
40756c:	8b 30                	mov    (%eax),%esi
40756e:	b8 20 00 00 00       	mov    $0x20,%eax
407573:	50                   	push   %eax
407574:	8d 4f 40             	lea    0x40(%edi),%ecx
407577:	89 45 f8             	mov    %eax,-0x8(%ebp)
40757a:	e8 31 bb ff ff       	call   0x4030b0
40757f:	89 45 f4             	mov    %eax,-0xc(%ebp)
407582:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
407585:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407588:	50                   	push   %eax
407589:	56                   	push   %esi
40758a:	53                   	push   %ebx
40758b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40758e:	e8 ed 40 01 00       	call   0x41b680
407593:	8b 55 fc             	mov    -0x4(%ebp),%edx
407596:	83 c4 0c             	add    $0xc,%esp
407599:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40759c:	03 d3                	add    %ebx,%edx
40759e:	03 c9                	add    %ecx,%ecx
4075a0:	2b ca                	sub    %edx,%ecx
4075a2:	03 cb                	add    %ebx,%ecx
4075a4:	8d 42 02             	lea    0x2(%edx),%eax
4075a7:	d1 f9                	sar    $1,%ecx
4075a9:	89 47 38             	mov    %eax,0x38(%edi)
4075ac:	8b 47 10             	mov    0x10(%edi),%eax
4075af:	89 18                	mov    %ebx,(%eax)
4075b1:	8b 47 20             	mov    0x20(%edi),%eax
4075b4:	89 10                	mov    %edx,(%eax)
4075b6:	8b 47 30             	mov    0x30(%edi),%eax
4075b9:	89 08                	mov    %ecx,(%eax)
4075bb:	f6 47 3c 04          	testb  $0x4,0x3c(%edi)
4075bf:	74 17                	je     0x4075d8
4075c1:	8b 47 0c             	mov    0xc(%edi),%eax
4075c4:	89 18                	mov    %ebx,(%eax)
4075c6:	8b 47 1c             	mov    0x1c(%edi),%eax
4075c9:	d1 fb                	sar    $1,%ebx
4075cb:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4075d1:	8b 47 2c             	mov    0x2c(%edi),%eax
4075d4:	89 18                	mov    %ebx,(%eax)
4075d6:	eb 22                	jmp    0x4075fa
4075d8:	8b 47 1c             	mov    0x1c(%edi),%eax
4075db:	8b 57 38             	mov    0x38(%edi),%edx
4075de:	8b 00                	mov    (%eax),%eax
4075e0:	2b c6                	sub    %esi,%eax
4075e2:	d1 f8                	sar    $1,%eax
4075e4:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
4075e7:	8b 47 0c             	mov    0xc(%edi),%eax
4075ea:	2b d1                	sub    %ecx,%edx
4075ec:	d1 fa                	sar    $1,%edx
4075ee:	89 18                	mov    %ebx,(%eax)
4075f0:	8b 47 1c             	mov    0x1c(%edi),%eax
4075f3:	89 08                	mov    %ecx,(%eax)
4075f5:	8b 47 2c             	mov    0x2c(%edi),%eax
4075f8:	89 10                	mov    %edx,(%eax)
4075fa:	f6 47 3c 01          	testb  $0x1,0x3c(%edi)
4075fe:	74 27                	je     0x407627
407600:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407603:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407609:	72 12                	jb     0x40761d
40760b:	8b 56 fc             	mov    -0x4(%esi),%edx
40760e:	83 c1 23             	add    $0x23,%ecx
407611:	2b f2                	sub    %edx,%esi
407613:	8d 46 fc             	lea    -0x4(%esi),%eax
407616:	83 f8 1f             	cmp    $0x1f,%eax
407619:	77 3d                	ja     0x407658
40761b:	8b f2                	mov    %edx,%esi
40761d:	51                   	push   %ecx
40761e:	56                   	push   %esi
40761f:	e8 94 25 01 00       	call   0x419bb8
407624:	83 c4 08             	add    $0x8,%esp
407627:	8b 47 30             	mov    0x30(%edi),%eax
40762a:	83 4f 3c 01          	orl    $0x1,0x3c(%edi)
40762e:	ff 08                	decl   (%eax)
407630:	8b 4f 20             	mov    0x20(%edi),%ecx
407633:	5f                   	pop    %edi
407634:	5e                   	pop    %esi
407635:	5b                   	pop    %ebx
407636:	8b 11                	mov    (%ecx),%edx
407638:	8d 42 02             	lea    0x2(%edx),%eax
40763b:	89 01                	mov    %eax,(%ecx)
40763d:	66 8b 45 08          	mov    0x8(%ebp),%ax
407641:	66 89 02             	mov    %ax,(%edx)
407644:	8b e5                	mov    %ebp,%esp
407646:	5d                   	pop    %ebp
407647:	c2 04 00             	ret    $0x4
40764a:	b8 ff ff 00 00       	mov    $0xffff,%eax
40764f:	5f                   	pop    %edi
407650:	5e                   	pop    %esi
407651:	5b                   	pop    %ebx
407652:	8b e5                	mov    %ebp,%esp
407654:	5d                   	pop    %ebp
407655:	c2 04 00             	ret    $0x4
407658:	e8 36 83 01 00       	call   0x41f993
40765d:	cc                   	int3
40765e:	cc                   	int3
40765f:	cc                   	int3
407660:	53                   	push   %ebx
407661:	56                   	push   %esi
407662:	8b f1                	mov    %ecx,%esi
407664:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
407668:	c7 06 e0 ee 44 00    	movl   $0x44eee0,(%esi)
40766e:	74 52                	je     0x4076c2
407670:	8b 46 20             	mov    0x20(%esi),%eax
407673:	8b 08                	mov    (%eax),%ecx
407675:	85 c9                	test   %ecx,%ecx
407677:	74 0a                	je     0x407683
407679:	8b 46 30             	mov    0x30(%esi),%eax
40767c:	8b 00                	mov    (%eax),%eax
40767e:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
407681:	eb 0d                	jmp    0x407690
407683:	8b 46 2c             	mov    0x2c(%esi),%eax
407686:	8b 08                	mov    (%eax),%ecx
407688:	8b 46 1c             	mov    0x1c(%esi),%eax
40768b:	8b 00                	mov    (%eax),%eax
40768d:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
407690:	8b 46 0c             	mov    0xc(%esi),%eax
407693:	8b 00                	mov    (%eax),%eax
407695:	2b c8                	sub    %eax,%ecx
407697:	83 e1 fe             	and    $0xfffffffe,%ecx
40769a:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4076a0:	72 16                	jb     0x4076b8
4076a2:	8b 50 fc             	mov    -0x4(%eax),%edx
4076a5:	83 c1 23             	add    $0x23,%ecx
4076a8:	2b c2                	sub    %edx,%eax
4076aa:	83 c0 fc             	add    $0xfffffffc,%eax
4076ad:	83 f8 1f             	cmp    $0x1f,%eax
4076b0:	0f 87 9a 00 00 00    	ja     0x407750
4076b6:	8b c2                	mov    %edx,%eax
4076b8:	51                   	push   %ecx
4076b9:	50                   	push   %eax
4076ba:	e8 f9 24 01 00       	call   0x419bb8
4076bf:	83 c4 08             	add    $0x8,%esp
4076c2:	8b 46 0c             	mov    0xc(%esi),%eax
4076c5:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076cb:	8b 46 1c             	mov    0x1c(%esi),%eax
4076ce:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076d4:	8b 46 2c             	mov    0x2c(%esi),%eax
4076d7:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076dd:	8b 46 10             	mov    0x10(%esi),%eax
4076e0:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076e6:	8b 46 20             	mov    0x20(%esi),%eax
4076e9:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076ef:	8b 46 30             	mov    0x30(%esi),%eax
4076f2:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4076f8:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
4076fc:	8b 5e 34             	mov    0x34(%esi),%ebx
4076ff:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
407706:	c7 06 20 ef 44 00    	movl   $0x44ef20,(%esi)
40770c:	85 db                	test   %ebx,%ebx
40770e:	74 3d                	je     0x40774d
407710:	57                   	push   %edi
407711:	8b 7b 04             	mov    0x4(%ebx),%edi
407714:	85 ff                	test   %edi,%edi
407716:	74 29                	je     0x407741
407718:	8b 07                	mov    (%edi),%eax
40771a:	8b 70 08             	mov    0x8(%eax),%esi
40771d:	8b ce                	mov    %esi,%ecx
40771f:	ff 15 5c e2 43 00    	call   *0x43e25c
407725:	8b cf                	mov    %edi,%ecx
407727:	ff d6                	call   *%esi
407729:	8b f8                	mov    %eax,%edi
40772b:	85 ff                	test   %edi,%edi
40772d:	74 12                	je     0x407741
40772f:	8b 0f                	mov    (%edi),%ecx
407731:	6a 01                	push   $0x1
407733:	8b 31                	mov    (%ecx),%esi
407735:	8b ce                	mov    %esi,%ecx
407737:	ff 15 5c e2 43 00    	call   *0x43e25c
40773d:	8b cf                	mov    %edi,%ecx
40773f:	ff d6                	call   *%esi
407741:	6a 08                	push   $0x8
407743:	53                   	push   %ebx
407744:	e8 6f 24 01 00       	call   0x419bb8
407749:	83 c4 08             	add    $0x8,%esp
40774c:	5f                   	pop    %edi
40774d:	5e                   	pop    %esi
40774e:	5b                   	pop    %ebx
40774f:	c3                   	ret
407750:	e8 3e 82 01 00       	call   0x41f993
407755:	cc                   	int3
407756:	cc                   	int3
407757:	cc                   	int3
407758:	cc                   	int3
407759:	cc                   	int3
40775a:	cc                   	int3
40775b:	cc                   	int3
40775c:	cc                   	int3
40775d:	cc                   	int3
40775e:	cc                   	int3
40775f:	cc                   	int3
407760:	c2 04 00             	ret    $0x4
407763:	cc                   	int3
407764:	cc                   	int3
407765:	cc                   	int3
407766:	cc                   	int3
407767:	cc                   	int3
407768:	cc                   	int3
407769:	cc                   	int3
40776a:	cc                   	int3
40776b:	cc                   	int3
40776c:	cc                   	int3
40776d:	cc                   	int3
40776e:	cc                   	int3
40776f:	cc                   	int3
407770:	33 c0                	xor    %eax,%eax
407772:	c3                   	ret
407773:	cc                   	int3
407774:	cc                   	int3
407775:	cc                   	int3
407776:	cc                   	int3
407777:	cc                   	int3
407778:	cc                   	int3
407779:	cc                   	int3
40777a:	cc                   	int3
40777b:	cc                   	int3
40777c:	cc                   	int3
40777d:	cc                   	int3
40777e:	cc                   	int3
40777f:	cc                   	int3
407780:	8b c1                	mov    %ecx,%eax
407782:	c2 0c 00             	ret    $0xc
407785:	cc                   	int3
407786:	cc                   	int3
407787:	cc                   	int3
407788:	cc                   	int3
407789:	cc                   	int3
40778a:	cc                   	int3
40778b:	cc                   	int3
40778c:	cc                   	int3
40778d:	cc                   	int3
40778e:	cc                   	int3
40778f:	cc                   	int3
407790:	55                   	push   %ebp
407791:	8b ec                	mov    %esp,%ebp
407793:	8b 45 08             	mov    0x8(%ebp),%eax
407796:	0f 57 c0             	xorps  %xmm0,%xmm0
407799:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
40779f:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
4077a6:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
4077ad:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
4077b4:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
4077b9:	5d                   	pop    %ebp
4077ba:	c2 20 00             	ret    $0x20
4077bd:	cc                   	int3
4077be:	cc                   	int3
4077bf:	cc                   	int3
4077c0:	55                   	push   %ebp
4077c1:	8b ec                	mov    %esp,%ebp
4077c3:	8b 45 08             	mov    0x8(%ebp),%eax
4077c6:	0f 57 c0             	xorps  %xmm0,%xmm0
4077c9:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
4077cf:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
4077d6:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
4077dd:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
4077e4:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
4077e9:	5d                   	pop    %ebp
4077ea:	c2 14 00             	ret    $0x14
4077ed:	cc                   	int3
4077ee:	cc                   	int3
4077ef:	cc                   	int3
4077f0:	55                   	push   %ebp
4077f1:	8b ec                	mov    %esp,%ebp
4077f3:	83 e4 f8             	and    $0xfffffff8,%esp
4077f6:	83 ec 14             	sub    $0x14,%esp
4077f9:	53                   	push   %ebx
4077fa:	8b 5d 10             	mov    0x10(%ebp),%ebx
4077fd:	8b d1                	mov    %ecx,%edx
4077ff:	89 54 24 08          	mov    %edx,0x8(%esp)
407803:	8b cb                	mov    %ebx,%ecx
407805:	89 4c 24 14          	mov    %ecx,0x14(%esp)
407809:	56                   	push   %esi
40780a:	8b 75 0c             	mov    0xc(%ebp),%esi
40780d:	8b c6                	mov    %esi,%eax
40780f:	89 44 24 14          	mov    %eax,0x14(%esp)
407813:	57                   	push   %edi
407814:	85 db                	test   %ebx,%ebx
407816:	0f 8c b9 00 00 00    	jl     0x4078d5
40781c:	7f 08                	jg     0x407826
40781e:	85 f6                	test   %esi,%esi
407820:	0f 84 af 00 00 00    	je     0x4078d5
407826:	8b ca                	mov    %edx,%ecx