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
407828:	e8 43 15 00 00       	call   0x408d70
40782d:	8b f8                	mov    %eax,%edi
40782f:	8b c2                	mov    %edx,%eax
407831:	89 44 24 14          	mov    %eax,0x14(%esp)
407835:	85 c0                	test   %eax,%eax
407837:	7c 48                	jl     0x407881
407839:	7f 04                	jg     0x40783f
40783b:	85 ff                	test   %edi,%edi
40783d:	74 42                	je     0x407881
40783f:	3b d8                	cmp    %eax,%ebx
407841:	7f 0c                	jg     0x40784f
407843:	7c 04                	jl     0x407849
407845:	3b f7                	cmp    %edi,%esi
407847:	73 06                	jae    0x40784f
407849:	8b fe                	mov    %esi,%edi
40784b:	89 5c 24 14          	mov    %ebx,0x14(%esp)
40784f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407853:	8d 04 3f             	lea    (%edi,%edi,1),%eax
407856:	50                   	push   %eax
407857:	8b 45 08             	mov    0x8(%ebp),%eax
40785a:	50                   	push   %eax
40785b:	8b 41 20             	mov    0x20(%ecx),%eax
40785e:	ff 30                	push   (%eax)
407860:	e8 1b 3e 01 00       	call   0x41b680
407865:	8b 54 24 1c          	mov    0x1c(%esp),%edx
407869:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40786c:	83 c4 0c             	add    $0xc,%esp
40786f:	2b f7                	sub    %edi,%esi
407871:	1b 5c 24 14          	sbb    0x14(%esp),%ebx
407875:	8b 42 30             	mov    0x30(%edx),%eax
407878:	29 38                	sub    %edi,(%eax)
40787a:	8b 42 20             	mov    0x20(%edx),%eax
40787d:	01 08                	add    %ecx,(%eax)
40787f:	eb 37                	jmp    0x4078b8
407881:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407885:	8b 45 08             	mov    0x8(%ebp),%eax
407888:	8b 09                	mov    (%ecx),%ecx
40788a:	0f b7 00             	movzwl (%eax),%eax
40788d:	50                   	push   %eax
40788e:	8b 79 0c             	mov    0xc(%ecx),%edi
407891:	8b cf                	mov    %edi,%ecx
407893:	ff 15 5c e2 43 00    	call   *0x43e25c
407899:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40789d:	ff d7                	call   *%edi
40789f:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4078a4:	66 3b c8             	cmp    %ax,%cx
4078a7:	74 24                	je     0x4078cd
4078a9:	8b 54 24 10          	mov    0x10(%esp),%edx
4078ad:	83 c6 ff             	add    $0xffffffff,%esi
4078b0:	b9 02 00 00 00       	mov    $0x2,%ecx
4078b5:	83 d3 ff             	adc    $0xffffffff,%ebx
4078b8:	01 4d 08             	add    %ecx,0x8(%ebp)
4078bb:	85 db                	test   %ebx,%ebx
4078bd:	0f 8f 63 ff ff ff    	jg     0x407826
4078c3:	7c 08                	jl     0x4078cd
4078c5:	85 f6                	test   %esi,%esi
4078c7:	0f 85 59 ff ff ff    	jne    0x407826
4078cd:	8b 44 24 18          	mov    0x18(%esp),%eax
4078d1:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4078d5:	2b c6                	sub    %esi,%eax
4078d7:	5f                   	pop    %edi
4078d8:	1b cb                	sbb    %ebx,%ecx
4078da:	5e                   	pop    %esi
4078db:	8b d1                	mov    %ecx,%edx
4078dd:	5b                   	pop    %ebx
4078de:	8b e5                	mov    %ebp,%esp
4078e0:	5d                   	pop    %ebp
4078e1:	c2 0c 00             	ret    $0xc
4078e4:	cc                   	int3
4078e5:	cc                   	int3
4078e6:	cc                   	int3
4078e7:	cc                   	int3
4078e8:	cc                   	int3
4078e9:	cc                   	int3
4078ea:	cc                   	int3
4078eb:	cc                   	int3
4078ec:	cc                   	int3
4078ed:	cc                   	int3
4078ee:	cc                   	int3
4078ef:	cc                   	int3
4078f0:	55                   	push   %ebp
4078f1:	8b ec                	mov    %esp,%ebp
4078f3:	83 e4 f8             	and    $0xfffffff8,%esp
4078f6:	83 ec 14             	sub    $0x14,%esp
4078f9:	53                   	push   %ebx
4078fa:	8b 5d 10             	mov    0x10(%ebp),%ebx
4078fd:	8b d1                	mov    %ecx,%edx
4078ff:	89 54 24 08          	mov    %edx,0x8(%esp)
407903:	8b cb                	mov    %ebx,%ecx
407905:	89 4c 24 14          	mov    %ecx,0x14(%esp)
407909:	56                   	push   %esi
40790a:	8b 75 0c             	mov    0xc(%ebp),%esi
40790d:	8b c6                	mov    %esi,%eax
40790f:	89 44 24 14          	mov    %eax,0x14(%esp)
407913:	57                   	push   %edi
407914:	85 db                	test   %ebx,%ebx
407916:	0f 8c bf 00 00 00    	jl     0x4079db
40791c:	7f 08                	jg     0x407926
40791e:	85 f6                	test   %esi,%esi
407920:	0f 84 b5 00 00 00    	je     0x4079db
407926:	8b ca                	mov    %edx,%ecx
407928:	e8 63 14 00 00       	call   0x408d90
40792d:	8b f8                	mov    %eax,%edi
40792f:	8b c2                	mov    %edx,%eax
407931:	89 44 24 14          	mov    %eax,0x14(%esp)
407935:	85 c0                	test   %eax,%eax
407937:	7c 4a                	jl     0x407983
407939:	7f 04                	jg     0x40793f
40793b:	85 ff                	test   %edi,%edi
40793d:	74 44                	je     0x407983
40793f:	3b d8                	cmp    %eax,%ebx
407941:	7f 0c                	jg     0x40794f
407943:	7c 04                	jl     0x407949
407945:	3b f7                	cmp    %edi,%esi
407947:	73 06                	jae    0x40794f
407949:	8b fe                	mov    %esi,%edi
40794b:	89 5c 24 14          	mov    %ebx,0x14(%esp)
40794f:	8d 04 3f             	lea    (%edi,%edi,1),%eax
407952:	50                   	push   %eax
407953:	8b 44 24 14          	mov    0x14(%esp),%eax
407957:	8b 40 1c             	mov    0x1c(%eax),%eax
40795a:	ff 30                	push   (%eax)
40795c:	ff 75 08             	push   0x8(%ebp)
40795f:	e8 1c 3d 01 00       	call   0x41b680
407964:	8b 54 24 1c          	mov    0x1c(%esp),%edx
407968:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40796b:	83 c4 0c             	add    $0xc,%esp
40796e:	2b f7                	sub    %edi,%esi
407970:	1b 5c 24 14          	sbb    0x14(%esp),%ebx
407974:	8b 42 2c             	mov    0x2c(%edx),%eax
407977:	29 38                	sub    %edi,(%eax)
407979:	8b 42 1c             	mov    0x1c(%edx),%eax
40797c:	01 08                	add    %ecx,(%eax)
40797e:	8b 45 08             	mov    0x8(%ebp),%eax
407981:	eb 39                	jmp    0x4079bc
407983:	8b 44 24 10          	mov    0x10(%esp),%eax
407987:	8b 00                	mov    (%eax),%eax
407989:	8b 78 1c             	mov    0x1c(%eax),%edi
40798c:	8b cf                	mov    %edi,%ecx
40798e:	ff 15 5c e2 43 00    	call   *0x43e25c
407994:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407998:	ff d7                	call   *%edi
40799a:	0f b7 c8             	movzwl %ax,%ecx
40799d:	b8 ff ff 00 00       	mov    $0xffff,%eax
4079a2:	66 3b c1             	cmp    %cx,%ax
4079a5:	74 2c                	je     0x4079d3
4079a7:	8b 45 08             	mov    0x8(%ebp),%eax
4079aa:	83 c6 ff             	add    $0xffffffff,%esi
4079ad:	8b 54 24 10          	mov    0x10(%esp),%edx
4079b1:	83 d3 ff             	adc    $0xffffffff,%ebx
4079b4:	66 89 08             	mov    %cx,(%eax)
4079b7:	b9 02 00 00 00       	mov    $0x2,%ecx
4079bc:	03 c1                	add    %ecx,%eax
4079be:	89 45 08             	mov    %eax,0x8(%ebp)
4079c1:	85 db                	test   %ebx,%ebx
4079c3:	0f 8f 5d ff ff ff    	jg     0x407926
4079c9:	7c 08                	jl     0x4079d3
4079cb:	85 f6                	test   %esi,%esi
4079cd:	0f 85 53 ff ff ff    	jne    0x407926
4079d3:	8b 44 24 18          	mov    0x18(%esp),%eax
4079d7:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4079db:	2b c6                	sub    %esi,%eax
4079dd:	5f                   	pop    %edi
4079de:	1b cb                	sbb    %ebx,%ecx
4079e0:	5e                   	pop    %esi
4079e1:	8b d1                	mov    %ecx,%edx
4079e3:	5b                   	pop    %ebx
4079e4:	8b e5                	mov    %ebp,%esp
4079e6:	5d                   	pop    %ebp
4079e7:	c2 0c 00             	ret    $0xc
4079ea:	cc                   	int3
4079eb:	cc                   	int3
4079ec:	cc                   	int3
4079ed:	cc                   	int3
4079ee:	cc                   	int3