4075d5:	8b f1                	mov    %ecx,%esi
4075d7:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
4075de:	57                   	push   %edi
4075df:	8b fa                	mov    %edx,%edi
4075e1:	85 f6                	test   %esi,%esi
4075e3:	75 07                	jne    0x4075ec
4075e5:	b8 08 10 04 80       	mov    $0x80041008,%eax
4075ea:	eb 22                	jmp    0x40760e
4075ec:	8d 45 f8             	lea    -0x8(%ebp),%eax
4075ef:	50                   	push   %eax
4075f0:	8d 55 fc             	lea    -0x4(%ebp),%edx
4075f3:	e8 54 fd ff ff       	call   0x40734c
4075f8:	85 c0                	test   %eax,%eax
4075fa:	78 12                	js     0x40760e
4075fc:	8b 55 f8             	mov    -0x8(%ebp),%edx
4075ff:	51                   	push   %ecx
407600:	57                   	push   %edi
407601:	83 ec 0c             	sub    $0xc,%esp
407604:	8b ce                	mov    %esi,%ecx
407606:	ff 75 fc             	push   -0x4(%ebp)
407609:	e8 04 00 00 00       	call   0x407612
40760e:	5f                   	pop    %edi
40760f:	5e                   	pop    %esi
407610:	c9                   	leave
407611:	c3                   	ret
407612:	8b ff                	mov    %edi,%edi
407614:	55                   	push   %ebp
407615:	8b ec                	mov    %esp,%ebp
407617:	83 ec 0c             	sub    $0xc,%esp
40761a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40761e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407622:	53                   	push   %ebx
407623:	56                   	push   %esi
407624:	57                   	push   %edi
407625:	8b f9                	mov    %ecx,%edi
407627:	89 55 f4             	mov    %edx,-0xc(%ebp)
40762a:	85 ff                	test   %edi,%edi
40762c:	0f 84 4f 01 00 00    	je     0x407781
407632:	8b 37                	mov    (%edi),%esi
407634:	8d 45 f8             	lea    -0x8(%ebp),%eax
407637:	50                   	push   %eax
407638:	68 40 11 40 00       	push   $0x401140
40763d:	57                   	push   %edi
40763e:	8b 0e                	mov    (%esi),%ecx
407640:	ff 15 20 23 41 00    	call   *0x412320
407646:	ff 16                	call   *(%esi)
407648:	85 c0                	test   %eax,%eax
40764a:	0f 88 36 01 00 00    	js     0x407786
407650:	8b 37                	mov    (%edi),%esi
407652:	8d 45 fc             	lea    -0x4(%ebp),%eax
407655:	50                   	push   %eax
407656:	68 30 11 40 00       	push   $0x401130
40765b:	57                   	push   %edi
40765c:	8b 0e                	mov    (%esi),%ecx
40765e:	ff 15 20 23 41 00    	call   *0x412320
407664:	ff 16                	call   *(%esi)
407666:	8b d8                	mov    %eax,%ebx
407668:	85 db                	test   %ebx,%ebx
40766a:	79 1e                	jns    0x40768a
40766c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40766f:	85 d2                	test   %edx,%edx
407671:	74 10                	je     0x407683
407673:	8b 0a                	mov    (%edx),%ecx
407675:	52                   	push   %edx
407676:	8b 71 08             	mov    0x8(%ecx),%esi
407679:	8b ce                	mov    %esi,%ecx
40767b:	ff 15 20 23 41 00    	call   *0x412320
407681:	ff d6                	call   *%esi
407683:	8b c3                	mov    %ebx,%eax
407685:	e9 fc 00 00 00       	jmp    0x407786
40768a:	8b 5d 18             	mov    0x18(%ebp),%ebx
40768d:	8b 45 fc             	mov    -0x4(%ebp),%eax
407690:	6a 00                	push   $0x0
407692:	53                   	push   %ebx
407693:	6a 03                	push   $0x3
407695:	8b 30                	mov    (%eax),%esi
407697:	6a 06                	push   $0x6
407699:	6a 00                	push   $0x0
40769b:	ff 75 08             	push   0x8(%ebp)
40769e:	8b 4e 10             	mov    0x10(%esi),%ecx
4076a1:	ff 75 f4             	push   -0xc(%ebp)
4076a4:	57                   	push   %edi
4076a5:	50                   	push   %eax
4076a6:	ff 15 20 23 41 00    	call   *0x412320
4076ac:	ff 56 10             	call   *0x10(%esi)
4076af:	8b f8                	mov    %eax,%edi
4076b1:	85 ff                	test   %edi,%edi
4076b3:	79 39                	jns    0x4076ee
4076b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4076b8:	85 c0                	test   %eax,%eax
4076ba:	74 14                	je     0x4076d0
4076bc:	8b 08                	mov    (%eax),%ecx
4076be:	50                   	push   %eax
4076bf:	8b 71 08             	mov    0x8(%ecx),%esi
4076c2:	8b ce                	mov    %esi,%ecx
4076c4:	ff 15 20 23 41 00    	call   *0x412320
4076ca:	ff d6                	call   *%esi
4076cc:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4076d0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4076d3:	85 c9                	test   %ecx,%ecx
4076d5:	74 10                	je     0x4076e7
4076d7:	8b 01                	mov    (%ecx),%eax
4076d9:	51                   	push   %ecx
4076da:	8b 70 08             	mov    0x8(%eax),%esi
4076dd:	8b ce                	mov    %esi,%ecx
4076df:	ff 15 20 23 41 00    	call   *0x412320
4076e5:	ff d6                	call   *%esi
4076e7:	8b c7                	mov    %edi,%eax
4076e9:	e9 98 00 00 00       	jmp    0x407786
4076ee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4076f1:	85 c9                	test   %ecx,%ecx
4076f3:	74 14                	je     0x407709
4076f5:	8b 01                	mov    (%ecx),%eax
4076f7:	51                   	push   %ecx
4076f8:	8b 70 08             	mov    0x8(%eax),%esi
4076fb:	8b ce                	mov    %esi,%ecx
4076fd:	ff 15 20 23 41 00    	call   *0x412320
407703:	ff d6                	call   *%esi
407705:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407709:	85 db                	test   %ebx,%ebx
40770b:	74 6c                	je     0x407779
40770d:	8b 45 f8             	mov    -0x8(%ebp),%eax
407710:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407713:	51                   	push   %ecx
407714:	68 30 11 40 00       	push   $0x401130
407719:	50                   	push   %eax
40771a:	8b 30                	mov    (%eax),%esi
40771c:	8b 0e                	mov    (%esi),%ecx
40771e:	ff 15 20 23 41 00    	call   *0x412320
407724:	ff 16                	call   *(%esi)
407726:	85 c0                	test   %eax,%eax
407728:	78 43                	js     0x40776d
40772a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40772d:	6a 00                	push   $0x0
40772f:	53                   	push   %ebx
407730:	6a 03                	push   $0x3
407732:	8b 30                	mov    (%eax),%esi
407734:	6a 06                	push   $0x6
407736:	6a 00                	push   $0x0
407738:	ff 75 08             	push   0x8(%ebp)
40773b:	8b 4e 10             	mov    0x10(%esi),%ecx
40773e:	ff 75 f4             	push   -0xc(%ebp)
407741:	ff 75 f8             	push   -0x8(%ebp)
407744:	50                   	push   %eax
407745:	ff 15 20 23 41 00    	call   *0x412320
40774b:	ff 56 10             	call   *0x10(%esi)
40774e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407751:	8b f8                	mov    %eax,%edi
407753:	85 c9                	test   %ecx,%ecx
407755:	74 22                	je     0x407779
407757:	8b 01                	mov    (%ecx),%eax
407759:	51                   	push   %ecx
40775a:	8b 70 08             	mov    0x8(%eax),%esi
40775d:	8b ce                	mov    %esi,%ecx
40775f:	ff 15 20 23 41 00    	call   *0x412320
407765:	ff d6                	call   *%esi
407767:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40776b:	eb 0c                	jmp    0x407779
40776d:	8d b8 fe bf ff 7f    	lea    0x7fffbffe(%eax),%edi
407773:	f7 df                	neg    %edi
407775:	1b ff                	sbb    %edi,%edi
407777:	23 f8                	and    %eax,%edi
407779:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40777c:	e9 52 ff ff ff       	jmp    0x4076d3
407781:	b8 08 10 04 80       	mov    $0x80041008,%eax
407786:	5f                   	pop    %edi
407787:	5e                   	pop    %esi
407788:	5b                   	pop    %ebx
407789:	c9                   	leave
40778a:	c2 18 00             	ret    $0x18
40778d:	8b ff                	mov    %edi,%edi
40778f:	55                   	push   %ebp
407790:	8b ec                	mov    %esp,%ebp
407792:	51                   	push   %ecx
407793:	51                   	push   %ecx
407794:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407798:	53                   	push   %ebx
407799:	89 55 fc             	mov    %edx,-0x4(%ebp)
40779c:	8b d9                	mov    %ecx,%ebx
40779e:	75 0a                	jne    0x4077aa
4077a0:	b8 08 10 04 80       	mov    $0x80041008,%eax
4077a5:	e9 f5 00 00 00       	jmp    0x40789f
4077aa:	56                   	push   %esi
4077ab:	57                   	push   %edi
4077ac:	6a 1c                	push   $0x1c
4077ae:	5f                   	pop    %edi
4077af:	57                   	push   %edi
4077b0:	ff 15 d8 21 41 00    	call   *0x4121d8
4077b6:	8b f0                	mov    %eax,%esi
4077b8:	89 75 f8             	mov    %esi,-0x8(%ebp)
4077bb:	85 f6                	test   %esi,%esi
4077bd:	0f 84 e9 00 00 00    	je     0x4078ac
4077c3:	c6 00 00             	movb   $0x0,(%eax)
4077c6:	40                   	inc    %eax
4077c7:	83 ef 01             	sub    $0x1,%edi
4077ca:	75 f7                	jne    0x4077c3
4077cc:	85 db                	test   %ebx,%ebx
4077ce:	74 31                	je     0x407801
4077d0:	8b cb                	mov    %ebx,%ecx
4077d2:	e8 b4 2c 00 00       	call   0x40a48b
4077d7:	8b f8                	mov    %eax,%edi
4077d9:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
4077e0:	51                   	push   %ecx
4077e1:	ff 15 d8 21 41 00    	call   *0x4121d8
4077e7:	89 06                	mov    %eax,(%esi)
4077e9:	85 c0                	test   %eax,%eax
4077eb:	0f 84 b3 00 00 00    	je     0x4078a4
4077f1:	8d 47 01             	lea    0x1(%edi),%eax
4077f4:	89 7e 04             	mov    %edi,0x4(%esi)
4077f7:	8b 0e                	mov    (%esi),%ecx
4077f9:	8b d3                	mov    %ebx,%edx
4077fb:	50                   	push   %eax
4077fc:	e8 f5 2b 00 00       	call   0x40a3f6
407801:	8b 7d 08             	mov    0x8(%ebp),%edi
407804:	85 ff                	test   %edi,%edi
407806:	74 43                	je     0x40784b
407808:	8b cf                	mov    %edi,%ecx
40780a:	e8 7c 2c 00 00       	call   0x40a48b
40780f:	8b d8                	mov    %eax,%ebx
407811:	8d 43 01             	lea    0x1(%ebx),%eax
407814:	3b c3                	cmp    %ebx,%eax
407816:	0f 82 88 00 00 00    	jb     0x4078a4
40781c:	6a 02                	push   $0x2
40781e:	59                   	pop    %ecx
40781f:	f7 e1                	mul    %ecx
407821:	85 d2                	test   %edx,%edx
407823:	77 7f                	ja     0x4078a4
407825:	72 05                	jb     0x40782c
407827:	83 f8 ff             	cmp    $0xffffffff,%eax
40782a:	77 78                	ja     0x4078a4
40782c:	50                   	push   %eax
40782d:	ff 15 d8 21 41 00    	call   *0x4121d8
407833:	89 46 08             	mov    %eax,0x8(%esi)
407836:	85 c0                	test   %eax,%eax
407838:	74 6a                	je     0x4078a4
40783a:	8d 43 01             	lea    0x1(%ebx),%eax
40783d:	89 5e 0c             	mov    %ebx,0xc(%esi)
407840:	8b 4e 08             	mov    0x8(%esi),%ecx
407843:	8b d7                	mov    %edi,%edx
407845:	50                   	push   %eax
407846:	e8 ab 2b 00 00       	call   0x40a3f6
40784b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40784e:	85 c0                	test   %eax,%eax
407850:	74 3e                	je     0x407890
407852:	8b c8                	mov    %eax,%ecx
407854:	e8 32 2c 00 00       	call   0x40a48b
407859:	8b f8                	mov    %eax,%edi
40785b:	8d 5f 01             	lea    0x1(%edi),%ebx
40785e:	3b df                	cmp    %edi,%ebx
407860:	72 42                	jb     0x4078a4
407862:	6a 02                	push   $0x2
407864:	8b c3                	mov    %ebx,%eax
407866:	59                   	pop    %ecx
407867:	f7 e1                	mul    %ecx
407869:	85 d2                	test   %edx,%edx
40786b:	77 37                	ja     0x4078a4
40786d:	72 05                	jb     0x407874
40786f:	83 f8 ff             	cmp    $0xffffffff,%eax
407872:	77 30                	ja     0x4078a4
407874:	50                   	push   %eax
407875:	ff 15 d8 21 41 00    	call   *0x4121d8
40787b:	89 46 10             	mov    %eax,0x10(%esi)
40787e:	85 c0                	test   %eax,%eax
407880:	74 22                	je     0x4078a4
407882:	8b 55 fc             	mov    -0x4(%ebp),%edx
407885:	8b c8                	mov    %eax,%ecx
407887:	53                   	push   %ebx
407888:	89 7e 14             	mov    %edi,0x14(%esi)
40788b:	e8 66 2b 00 00       	call   0x40a3f6
407890:	6a 02                	push   $0x2
407892:	58                   	pop    %eax
407893:	89 46 18             	mov    %eax,0x18(%esi)
407896:	8b 45 0c             	mov    0xc(%ebp),%eax
407899:	89 30                	mov    %esi,(%eax)
40789b:	33 c0                	xor    %eax,%eax
40789d:	5f                   	pop    %edi
40789e:	5e                   	pop    %esi
40789f:	5b                   	pop    %ebx
4078a0:	c9                   	leave
4078a1:	c2 08 00             	ret    $0x8
4078a4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4078a7:	e8 07 00 00 00       	call   0x4078b3
4078ac:	b8 06 10 04 80       	mov    $0x80041006,%eax
4078b1:	eb ea                	jmp    0x40789d
4078b3:	8b ff                	mov    %edi,%edi
4078b5:	56                   	push   %esi
4078b6:	8b f1                	mov    %ecx,%esi
4078b8:	8b 06                	mov    (%esi),%eax
4078ba:	85 c0                	test   %eax,%eax
4078bc:	74 4a                	je     0x407908
4078be:	8b 08                	mov    (%eax),%ecx
4078c0:	57                   	push   %edi
4078c1:	33 ff                	xor    %edi,%edi
4078c3:	85 c9                	test   %ecx,%ecx
4078c5:	74 0d                	je     0x4078d4
4078c7:	51                   	push   %ecx
4078c8:	ff 15 d4 21 41 00    	call   *0x4121d4
4078ce:	8b 06                	mov    (%esi),%eax
4078d0:	89 38                	mov    %edi,(%eax)
4078d2:	8b 06                	mov    (%esi),%eax
4078d4:	8b 48 10             	mov    0x10(%eax),%ecx
4078d7:	85 c9                	test   %ecx,%ecx
4078d9:	74 0e                	je     0x4078e9
4078db:	51                   	push   %ecx
4078dc:	ff 15 d4 21 41 00    	call   *0x4121d4
4078e2:	8b 06                	mov    (%esi),%eax
4078e4:	89 78 10             	mov    %edi,0x10(%eax)
4078e7:	8b 06                	mov    (%esi),%eax
4078e9:	8b 48 08             	mov    0x8(%eax),%ecx
4078ec:	85 c9                	test   %ecx,%ecx
4078ee:	74 0e                	je     0x4078fe
4078f0:	51                   	push   %ecx
4078f1:	ff 15 d4 21 41 00    	call   *0x4121d4
4078f7:	8b 06                	mov    (%esi),%eax
4078f9:	89 78 08             	mov    %edi,0x8(%eax)
4078fc:	8b 06                	mov    (%esi),%eax
4078fe:	50                   	push   %eax
4078ff:	ff 15 d4 21 41 00    	call   *0x4121d4
407905:	89 3e                	mov    %edi,(%esi)
407907:	5f                   	pop    %edi
407908:	5e                   	pop    %esi
407909:	c3                   	ret
40790a:	6a 1c                	push   $0x1c
40790c:	b8 ee fa 40 00       	mov    $0x40faee,%eax
407911:	e8 39 7a 00 00       	call   0x40f34f
407916:	8b f9                	mov    %ecx,%edi
407918:	89 7d e0             	mov    %edi,-0x20(%ebp)
40791b:	33 db                	xor    %ebx,%ebx
40791d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
407920:	8b f3                	mov    %ebx,%esi
407922:	89 75 ec             	mov    %esi,-0x14(%ebp)
407925:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407928:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40792c:	81 ff 05 00 07 80    	cmp    $0x80070005,%edi
407932:	75 08                	jne    0x40793c
407934:	bf 2e 05 00 00       	mov    $0x52e,%edi
407939:	89 7d e0             	mov    %edi,-0x20(%ebp)
40793c:	81 ff 54 01 04 80    	cmp    $0x80040154,%edi
407942:	75 5b                	jne    0x40799f
407944:	b9 80 15 00 00       	mov    $0x1580,%ecx
407949:	e8 03 21 00 00       	call   0x409a51
40794e:	50                   	push   %eax
40794f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407952:	e8 82 e0 ff ff       	call   0x4059d9
407957:	8b f0                	mov    %eax,%esi
407959:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40795d:	8b 0e                	mov    (%esi),%ecx
40795f:	85 c9                	test   %ecx,%ecx
407961:	74 04                	je     0x407967
407963:	f0 ff 41 08          	lock incl 0x8(%ecx)