46f616:	51                   	push   %ecx
46f617:	51                   	push   %ecx
46f618:	56                   	push   %esi
46f619:	e8 e2 29 00 00       	call   0x472000
46f61e:	6a 08                	push   $0x8
46f620:	6a 01                	push   $0x1
46f622:	8b f0                	mov    %eax,%esi
46f624:	e8 2a 2c 00 00       	call   0x472253
46f629:	89 45 fc             	mov    %eax,-0x4(%ebp)
46f62c:	59                   	pop    %ecx
46f62d:	59                   	pop    %ecx
46f62e:	85 c0                	test   %eax,%eax
46f630:	75 04                	jne    0x46f636
46f632:	33 f6                	xor    %esi,%esi
46f634:	eb 47                	jmp    0x46f67d
46f636:	e8 b1 11 01 00       	call   0x4807ec
46f63b:	e8 c4 e6 00 00       	call   0x47dd04
46f640:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f643:	8b 4e 4c             	mov    0x4c(%esi),%ecx
46f646:	89 08                	mov    %ecx,(%eax)
46f648:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f64b:	8b 4e 48             	mov    0x48(%esi),%ecx
46f64e:	89 48 04             	mov    %ecx,0x4(%eax)
46f651:	8d 45 fc             	lea    -0x4(%ebp),%eax
46f654:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f657:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f65a:	50                   	push   %eax
46f65b:	6a 04                	push   $0x4
46f65d:	e8 a5 f3 ff ff       	call   0x46ea07
46f662:	8d 45 fc             	lea    -0x4(%ebp),%eax
46f665:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f668:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f66b:	50                   	push   %eax
46f66c:	6a 05                	push   $0x5
46f66e:	e8 e4 f3 ff ff       	call   0x46ea57
46f673:	8b 75 fc             	mov    -0x4(%ebp),%esi
46f676:	83 c4 10             	add    $0x10,%esp
46f679:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46f67d:	6a 00                	push   $0x0
46f67f:	e8 b5 2c 00 00       	call   0x472339
46f684:	59                   	pop    %ecx
46f685:	8b c6                	mov    %esi,%eax
46f687:	5e                   	pop    %esi
46f688:	8b e5                	mov    %ebp,%esp
46f68a:	5d                   	pop    %ebp
46f68b:	c3                   	ret
46f68c:	8b ff                	mov    %edi,%edi
46f68e:	55                   	push   %ebp
46f68f:	8b ec                	mov    %esp,%ebp
46f691:	51                   	push   %ecx
46f692:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
46f696:	0f 87 f3 00 00 00    	ja     0x46f78f
46f69c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46f6a0:	0f 84 e9 00 00 00    	je     0x46f78f
46f6a6:	53                   	push   %ebx
46f6a7:	57                   	push   %edi
46f6a8:	33 db                	xor    %ebx,%ebx
46f6aa:	6a 08                	push   $0x8
46f6ac:	43                   	inc    %ebx
46f6ad:	53                   	push   %ebx
46f6ae:	e8 a0 2b 00 00       	call   0x472253
46f6b3:	8b f8                	mov    %eax,%edi
46f6b5:	89 7d fc             	mov    %edi,-0x4(%ebp)
46f6b8:	59                   	pop    %ecx
46f6b9:	59                   	pop    %ecx
46f6ba:	85 ff                	test   %edi,%edi
46f6bc:	75 12                	jne    0x46f6d0
46f6be:	e8 6c d7 fd ff       	call   0x44ce2f
46f6c3:	33 db                	xor    %ebx,%ebx
46f6c5:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
46f6cb:	e9 b2 00 00 00       	jmp    0x46f782
46f6d0:	56                   	push   %esi
46f6d1:	68 b8 00 00 00       	push   $0xb8
46f6d6:	53                   	push   %ebx
46f6d7:	e8 77 2b 00 00       	call   0x472253
46f6dc:	8b f0                	mov    %eax,%esi
46f6de:	59                   	pop    %ecx
46f6df:	59                   	pop    %ecx
46f6e0:	85 f6                	test   %esi,%esi
46f6e2:	75 12                	jne    0x46f6f6
46f6e4:	e8 46 d7 fd ff       	call   0x44ce2f
46f6e9:	33 db                	xor    %ebx,%ebx
46f6eb:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
46f6f1:	e9 84 00 00 00       	jmp    0x46f77a
46f6f6:	68 20 02 00 00       	push   $0x220
46f6fb:	53                   	push   %ebx
46f6fc:	e8 52 2b 00 00       	call   0x472253
46f701:	8b f8                	mov    %eax,%edi
46f703:	59                   	pop    %ecx
46f704:	59                   	pop    %ecx
46f705:	85 ff                	test   %edi,%edi
46f707:	75 0d                	jne    0x46f716
46f709:	e8 21 d7 fd ff       	call   0x44ce2f
46f70e:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
46f714:	eb 58                	jmp    0x46f76e
46f716:	68 30 82 4b 00       	push   $0x4b8230
46f71b:	56                   	push   %esi
46f71c:	e8 2e fa ff ff       	call   0x46f14f
46f721:	ff 75 0c             	push   0xc(%ebp)
46f724:	ff 75 08             	push   0x8(%ebp)
46f727:	56                   	push   %esi
46f728:	e8 c7 02 00 00       	call   0x46f9f4
46f72d:	83 c4 14             	add    $0x14,%esp
46f730:	85 c0                	test   %eax,%eax
46f732:	74 2a                	je     0x46f75e
46f734:	57                   	push   %edi
46f735:	ff 76 08             	push   0x8(%esi)
46f738:	e8 3c e6 00 00       	call   0x47dd79
46f73d:	59                   	pop    %ecx
46f73e:	59                   	pop    %ecx
46f73f:	85 c0                	test   %eax,%eax
46f741:	75 1b                	jne    0x46f75e
46f743:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f746:	8b ce                	mov    %esi,%ecx
46f748:	89 1f                	mov    %ebx,(%edi)
46f74a:	33 f6                	xor    %esi,%esi
46f74c:	8b d8                	mov    %eax,%ebx
46f74e:	89 08                	mov    %ecx,(%eax)
46f750:	8b cf                	mov    %edi,%ecx
46f752:	33 ff                	xor    %edi,%edi
46f754:	89 48 04             	mov    %ecx,0x4(%eax)
46f757:	33 c0                	xor    %eax,%eax
46f759:	89 45 fc             	mov    %eax,-0x4(%ebp)
46f75c:	eb 12                	jmp    0x46f770
46f75e:	56                   	push   %esi
46f75f:	e8 07 10 01 00       	call   0x48076b
46f764:	56                   	push   %esi
46f765:	33 f6                	xor    %esi,%esi
46f767:	e8 33 0e 01 00       	call   0x48059f
46f76c:	59                   	pop    %ecx
46f76d:	59                   	pop    %ecx
46f76e:	33 db                	xor    %ebx,%ebx
46f770:	57                   	push   %edi
46f771:	e8 c3 2b 00 00       	call   0x472339
46f776:	8b 7d fc             	mov    -0x4(%ebp),%edi
46f779:	59                   	pop    %ecx
46f77a:	56                   	push   %esi
46f77b:	e8 b9 2b 00 00       	call   0x472339
46f780:	59                   	pop    %ecx
46f781:	5e                   	pop    %esi
46f782:	57                   	push   %edi
46f783:	e8 b1 2b 00 00       	call   0x472339
46f788:	59                   	pop    %ecx
46f789:	5f                   	pop    %edi
46f78a:	8b c3                	mov    %ebx,%eax
46f78c:	5b                   	pop    %ebx
46f78d:	eb 02                	jmp    0x46f791
46f78f:	33 c0                	xor    %eax,%eax
46f791:	8b e5                	mov    %ebp,%esp
46f793:	5d                   	pop    %ebp
46f794:	c3                   	ret
46f795:	8b ff                	mov    %edi,%edi
46f797:	55                   	push   %ebp
46f798:	8b ec                	mov    %esp,%ebp
46f79a:	53                   	push   %ebx
46f79b:	33 db                	xor    %ebx,%ebx
46f79d:	56                   	push   %esi
46f79e:	8b f3                	mov    %ebx,%esi
46f7a0:	39 5d 10             	cmp    %ebx,0x10(%ebp)
46f7a3:	7e 22                	jle    0x46f7c7
46f7a5:	57                   	push   %edi
46f7a6:	8d 7d 10             	lea    0x10(%ebp),%edi
46f7a9:	8d 7f 04             	lea    0x4(%edi),%edi
46f7ac:	ff 37                	push   (%edi)
46f7ae:	ff 75 0c             	push   0xc(%ebp)
46f7b1:	ff 75 08             	push   0x8(%ebp)
46f7b4:	e8 d7 f6 00 00       	call   0x47ee90
46f7b9:	83 c4 0c             	add    $0xc,%esp
46f7bc:	85 c0                	test   %eax,%eax
46f7be:	75 0b                	jne    0x46f7cb
46f7c0:	46                   	inc    %esi
46f7c1:	3b 75 10             	cmp    0x10(%ebp),%esi
46f7c4:	7c e3                	jl     0x46f7a9
46f7c6:	5f                   	pop    %edi
46f7c7:	5e                   	pop    %esi
46f7c8:	5b                   	pop    %ebx
46f7c9:	5d                   	pop    %ebp
46f7ca:	c3                   	ret
46f7cb:	53                   	push   %ebx
46f7cc:	53                   	push   %ebx
46f7cd:	53                   	push   %ebx
46f7ce:	53                   	push   %ebx
46f7cf:	53                   	push   %ebx
46f7d0:	e8 2e d5 fd ff       	call   0x44cd03
46f7d5:	cc                   	int3
46f7d6:	8b ff                	mov    %edi,%edi
46f7d8:	55                   	push   %ebp
46f7d9:	8b ec                	mov    %esp,%ebp
46f7db:	83 ec 28             	sub    $0x28,%esp
46f7de:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
46f7e2:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46f7e6:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
46f7ea:	76 14                	jbe    0x46f800
46f7ec:	e8 3e d6 fd ff       	call   0x44ce2f
46f7f1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46f7f7:	e8 da d4 fd ff       	call   0x44ccd6
46f7fc:	33 c0                	xor    %eax,%eax
46f7fe:	eb 57                	jmp    0x46f857
46f800:	e8 fb 27 00 00       	call   0x472000
46f805:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f808:	e8 15 5f 00 00       	call   0x475722
46f80d:	e8 da 0f 01 00       	call   0x4807ec
46f812:	8b 45 f8             	mov    -0x8(%ebp),%eax
46f815:	8d 4d ff             	lea    -0x1(%ebp),%ecx
46f818:	83 88 50 03 00 00 10 	orl    $0x10,0x350(%eax)
46f81f:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f822:	89 45 ec             	mov    %eax,-0x14(%ebp)
46f825:	8d 45 f0             	lea    -0x10(%ebp),%eax
46f828:	89 45 d8             	mov    %eax,-0x28(%ebp)
46f82b:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f82e:	89 45 dc             	mov    %eax,-0x24(%ebp)
46f831:	8d 45 f4             	lea    -0xc(%ebp),%eax
46f834:	89 45 e0             	mov    %eax,-0x20(%ebp)
46f837:	8d 45 08             	lea    0x8(%ebp),%eax
46f83a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46f83d:	8d 45 0c             	lea    0xc(%ebp),%eax
46f840:	89 45 e8             	mov    %eax,-0x18(%ebp)
46f843:	8d 45 ec             	lea    -0x14(%ebp),%eax
46f846:	50                   	push   %eax
46f847:	8d 45 d8             	lea    -0x28(%ebp),%eax
46f84a:	50                   	push   %eax
46f84b:	8d 45 ff             	lea    -0x1(%ebp),%eax
46f84e:	50                   	push   %eax
46f84f:	e8 75 f0 ff ff       	call   0x46e8c9
46f854:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f857:	8b e5                	mov    %ebp,%esp
46f859:	5d                   	pop    %ebp
46f85a:	c3                   	ret
46f85b:	8b ff                	mov    %edi,%edi
46f85d:	55                   	push   %ebp
46f85e:	8b ec                	mov    %esp,%ebp
46f860:	83 ec 0c             	sub    $0xc,%esp
46f863:	53                   	push   %ebx
46f864:	56                   	push   %esi
46f865:	33 f6                	xor    %esi,%esi
46f867:	46                   	inc    %esi
46f868:	68 a6 06 00 00       	push   $0x6a6
46f86d:	89 75 f8             	mov    %esi,-0x8(%ebp)
46f870:	e8 b5 74 00 00       	call   0x476d2a
46f875:	8b d8                	mov    %eax,%ebx
46f877:	33 c0                	xor    %eax,%eax
46f879:	59                   	pop    %ecx
46f87a:	85 db                	test   %ebx,%ebx
46f87c:	0f 84 13 01 00 00    	je     0x46f995
46f882:	57                   	push   %edi
46f883:	8d 7b 04             	lea    0x4(%ebx),%edi
46f886:	66 89 07             	mov    %ax,(%edi)
46f889:	89 33                	mov    %esi,(%ebx)
46f88b:	8b 75 08             	mov    0x8(%ebp),%esi
46f88e:	8d 46 30             	lea    0x30(%esi),%eax
46f891:	ff 30                	push   (%eax)
46f893:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f896:	68 6c d9 49 00       	push   $0x49d96c
46f89b:	ff 35 24 d8 49 00    	push   0x49d824
46f8a1:	6a 03                	push   $0x3
46f8a3:	68 51 03 00 00       	push   $0x351
46f8a8:	57                   	push   %edi
46f8a9:	e8 e7 fe ff ff       	call   0x46f795
46f8ae:	b8 24 d8 49 00       	mov    $0x49d824,%eax
46f8b3:	83 c4 18             	add    $0x18,%esp
46f8b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
46f8b9:	68 68 d9 49 00       	push   $0x49d968
46f8be:	68 51 03 00 00       	push   $0x351
46f8c3:	57                   	push   %edi
46f8c4:	e8 c7 f5 00 00       	call   0x47ee90
46f8c9:	83 c4 0c             	add    $0xc,%esp
46f8cc:	85 c0                	test   %eax,%eax
46f8ce:	0f 85 13 01 00 00    	jne    0x46f9e7
46f8d4:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f8d7:	8d 48 10             	lea    0x10(%eax),%ecx
46f8da:	8b 00                	mov    (%eax),%eax
46f8dc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46f8df:	8b 09                	mov    (%ecx),%ecx
46f8e1:	66 8b 10             	mov    (%eax),%dx
46f8e4:	66 3b 11             	cmp    (%ecx),%dx
46f8e7:	75 1e                	jne    0x46f907
46f8e9:	66 85 d2             	test   %dx,%dx
46f8ec:	74 15                	je     0x46f903
46f8ee:	66 8b 50 02          	mov    0x2(%eax),%dx
46f8f2:	66 3b 51 02          	cmp    0x2(%ecx),%dx
46f8f6:	75 0f                	jne    0x46f907
46f8f8:	83 c0 04             	add    $0x4,%eax
46f8fb:	83 c1 04             	add    $0x4,%ecx
46f8fe:	66 85 d2             	test   %dx,%dx
46f901:	75 de                	jne    0x46f8e1
46f903:	33 c0                	xor    %eax,%eax
46f905:	eb 05                	jmp    0x46f90c
46f907:	1b c0                	sbb    %eax,%eax
46f909:	83 c8 01             	or     $0x1,%eax
46f90c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46f90f:	f7 d8                	neg    %eax
46f911:	1b c0                	sbb    %eax,%eax
46f913:	83 c1 0c             	add    $0xc,%ecx
46f916:	f7 d0                	not    %eax
46f918:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46f91b:	21 45 f8             	and    %eax,-0x8(%ebp)
46f91e:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f921:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f924:	ff 30                	push   (%eax)
46f926:	68 6c d9 49 00       	push   $0x49d96c
46f92b:	ff 31                	push   (%ecx)
46f92d:	6a 03                	push   $0x3
46f92f:	68 51 03 00 00       	push   $0x351
46f934:	57                   	push   %edi
46f935:	e8 5b fe ff ff       	call   0x46f795
46f93a:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f93d:	83 c4 18             	add    $0x18,%esp
46f940:	3d 54 d8 49 00       	cmp    $0x49d854,%eax
46f945:	0f 8c 6e ff ff ff    	jl     0x46f8b9
46f94b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
46f94f:	75 4a                	jne    0x46f99b
46f951:	8b 4e 28             	mov    0x28(%esi),%ecx
46f954:	83 cf ff             	or     $0xffffffff,%edi
46f957:	85 c9                	test   %ecx,%ecx
46f959:	74 11                	je     0x46f96c
46f95b:	8b c7                	mov    %edi,%eax
46f95d:	f0 0f c1 01          	lock xadd %eax,(%ecx)
46f961:	75 09                	jne    0x46f96c
46f963:	ff 76 28             	push   0x28(%esi)
46f966:	e8 ce 29 00 00       	call   0x472339
46f96b:	59                   	pop    %ecx
46f96c:	8b 46 24             	mov    0x24(%esi),%eax
46f96f:	85 c0                	test   %eax,%eax
46f971:	74 10                	je     0x46f983
46f973:	f0 0f c1 38          	lock xadd %edi,(%eax)
46f977:	4f                   	dec    %edi
46f978:	75 09                	jne    0x46f983
46f97a:	ff 76 24             	push   0x24(%esi)
46f97d:	e8 b7 29 00 00       	call   0x472339
46f982:	59                   	pop    %ecx
46f983:	83 66 24 00          	andl   $0x0,0x24(%esi)
46f987:	8d 43 04             	lea    0x4(%ebx),%eax
46f98a:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
46f98e:	89 5e 28             	mov    %ebx,0x28(%esi)
46f991:	89 46 20             	mov    %eax,0x20(%esi)
46f994:	5f                   	pop    %edi
46f995:	5e                   	pop    %esi
46f996:	5b                   	pop    %ebx
46f997:	8b e5                	mov    %ebp,%esp
46f999:	5d                   	pop    %ebp
46f99a:	c3                   	ret
46f99b:	53                   	push   %ebx
46f99c:	e8 98 29 00 00       	call   0x472339
46f9a1:	59                   	pop    %ecx
46f9a2:	8b 4e 28             	mov    0x28(%esi),%ecx
46f9a5:	83 cf ff             	or     $0xffffffff,%edi
46f9a8:	85 c9                	test   %ecx,%ecx
46f9aa:	74 11                	je     0x46f9bd
46f9ac:	8b c7                	mov    %edi,%eax
46f9ae:	f0 0f c1 01          	lock xadd %eax,(%ecx)