415630:	5e                   	pop    %esi
415631:	5d                   	pop    %ebp
415632:	c2 0c 00             	ret    $0xc
415635:	bf 33 10 04 80       	mov    $0x80041033,%edi
41563a:	eb d0                	jmp    0x41560c
41563c:	cc                   	int3
41563d:	cc                   	int3
41563e:	cc                   	int3
41563f:	cc                   	int3
415640:	8b ff                	mov    %edi,%edi
415642:	55                   	push   %ebp
415643:	8b ec                	mov    %esp,%ebp
415645:	56                   	push   %esi
415646:	57                   	push   %edi
415647:	8b 7d 08             	mov    0x8(%ebp),%edi
41564a:	33 f6                	xor    %esi,%esi
41564c:	39 77 14             	cmp    %esi,0x14(%edi)
41564f:	0f 85 64 75 01 00    	jne    0x42cbb9
415655:	8b 45 0c             	mov    0xc(%ebp),%eax
415658:	85 f6                	test   %esi,%esi
41565a:	78 32                	js     0x41568e
41565c:	89 47 10             	mov    %eax,0x10(%edi)
41565f:	ff 77 0c             	push   0xc(%edi)
415662:	ff 15 4c 11 45 00    	call   *0x45114c
415668:	85 f6                	test   %esi,%esi
41566a:	0f 88 71 75 01 00    	js     0x42cbe1
415670:	a1 00 f0 44 00       	mov    0x44f000,%eax
415675:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
41567a:	74 0a                	je     0x415686
41567c:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
415680:	0f 85 6f 75 01 00    	jne    0x42cbf5
415686:	5f                   	pop    %edi
415687:	8b c6                	mov    %esi,%eax
415689:	5e                   	pop    %esi
41568a:	5d                   	pop    %ebp
41568b:	c2 0c 00             	ret    $0xc
41568e:	8b c6                	mov    %esi,%eax
415690:	eb ca                	jmp    0x41565c
415692:	cc                   	int3
415693:	cc                   	int3
415694:	cc                   	int3
415695:	cc                   	int3
415696:	cc                   	int3
415697:	cc                   	int3
415698:	cc                   	int3
415699:	cc                   	int3
41569a:	cc                   	int3
41569b:	cc                   	int3
41569c:	cc                   	int3
41569d:	cc                   	int3
41569e:	cc                   	int3
41569f:	cc                   	int3
4156a0:	8b ff                	mov    %edi,%edi
4156a2:	55                   	push   %ebp
4156a3:	8b ec                	mov    %esp,%ebp
4156a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4156a8:	56                   	push   %esi
4156a9:	85 c9                	test   %ecx,%ecx
4156ab:	0f 84 93 75 01 00    	je     0x42cc44
4156b1:	8b 45 08             	mov    0x8(%ebp),%eax
4156b4:	8b 31                	mov    (%ecx),%esi
4156b6:	05 94 00 00 00       	add    $0x94,%eax
4156bb:	50                   	push   %eax
4156bc:	68 f8 6b 40 00       	push   $0x406bf8
4156c1:	51                   	push   %ecx
4156c2:	8b 0e                	mov    (%esi),%ecx
4156c4:	ff 15 c4 12 45 00    	call   *0x4512c4
4156ca:	ff 16                	call   *(%esi)
4156cc:	8b f0                	mov    %eax,%esi
4156ce:	85 f6                	test   %esi,%esi
4156d0:	0f 88 42 75 01 00    	js     0x42cc18
4156d6:	a1 00 f0 44 00       	mov    0x44f000,%eax
4156db:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
4156e0:	74 0a                	je     0x4156ec
4156e2:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
4156e6:	0f 85 40 75 01 00    	jne    0x42cc2c
4156ec:	8b c6                	mov    %esi,%eax
4156ee:	5e                   	pop    %esi
4156ef:	5d                   	pop    %ebp
4156f0:	c2 08 00             	ret    $0x8
4156f3:	cc                   	int3
4156f4:	cc                   	int3
4156f5:	cc                   	int3
4156f6:	cc                   	int3
4156f7:	cc                   	int3
4156f8:	cc                   	int3
4156f9:	cc                   	int3
4156fa:	cc                   	int3
4156fb:	cc                   	int3
4156fc:	cc                   	int3
4156fd:	cc                   	int3
4156fe:	cc                   	int3
4156ff:	cc                   	int3
415700:	8b ff                	mov    %edi,%edi
415702:	55                   	push   %ebp
415703:	8b ec                	mov    %esp,%ebp
415705:	51                   	push   %ecx
415706:	51                   	push   %ecx
415707:	53                   	push   %ebx
415708:	56                   	push   %esi
415709:	57                   	push   %edi
41570a:	8b 7d 08             	mov    0x8(%ebp),%edi
41570d:	83 cb ff             	or     $0xffffffff,%ebx
415710:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
415715:	4b                   	dec    %ebx
415716:	89 5d f8             	mov    %ebx,-0x8(%ebp)
415719:	8b 5f 14             	mov    0x14(%edi),%ebx
41571c:	0f 85 a8 75 01 00    	jne    0x42ccca
415722:	8b 47 28             	mov    0x28(%edi),%eax
415725:	89 45 fc             	mov    %eax,-0x4(%ebp)
415728:	c7 47 28 ac b1 ba ba 	movl   $0xbabab1ac,0x28(%edi)
41572f:	85 db                	test   %ebx,%ebx
415731:	74 3a                	je     0x41576d
415733:	8b 03                	mov    (%ebx),%eax
415735:	8d 4f 18             	lea    0x18(%edi),%ecx
415738:	51                   	push   %ecx
415739:	8b 70 2c             	mov    0x2c(%eax),%esi
41573c:	81 fe f0 57 41 00    	cmp    $0x4157f0,%esi
415742:	0f 85 51 75 01 00    	jne    0x42cc99
415748:	8b cb                	mov    %ebx,%ecx
41574a:	e8 a1 00 00 00       	call   0x4157f0
41574f:	8b 77 14             	mov    0x14(%edi),%esi
415752:	8b 06                	mov    (%esi),%eax
415754:	8b 58 1c             	mov    0x1c(%eax),%ebx
415757:	81 fb 10 42 41 00    	cmp    $0x414210,%ebx
41575d:	0f 85 47 75 01 00    	jne    0x42ccaa
415763:	8b ce                	mov    %esi,%ecx
415765:	e8 a6 ea ff ff       	call   0x414210
41576a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41576d:	83 f8 01             	cmp    $0x1,%eax
415770:	75 11                	jne    0x415783
415772:	8b 07                	mov    (%edi),%eax
415774:	8b 70 14             	mov    0x14(%eax),%esi
415777:	8b ce                	mov    %esi,%ecx
415779:	ff 15 c4 12 45 00    	call   *0x4512c4
41577f:	8b cf                	mov    %edi,%ecx
415781:	ff d6                	call   *%esi
415783:	8b 07                	mov    (%edi),%eax
415785:	57                   	push   %edi
415786:	8b 70 28             	mov    0x28(%eax),%esi
415789:	81 fe b0 57 41 00    	cmp    $0x4157b0,%esi
41578f:	0f 85 26 75 01 00    	jne    0x42ccbb
415795:	e8 16 00 00 00       	call   0x4157b0
41579a:	8b 45 f8             	mov    -0x8(%ebp),%eax
41579d:	5f                   	pop    %edi
41579e:	5e                   	pop    %esi
41579f:	5b                   	pop    %ebx
4157a0:	c9                   	leave
4157a1:	c2 04 00             	ret    $0x4
4157a4:	cc                   	int3
4157a5:	cc                   	int3
4157a6:	cc                   	int3
4157a7:	cc                   	int3
4157a8:	cc                   	int3
4157a9:	cc                   	int3
4157aa:	cc                   	int3
4157ab:	cc                   	int3
4157ac:	cc                   	int3
4157ad:	cc                   	int3
4157ae:	cc                   	int3
4157af:	cc                   	int3
4157b0:	8b ff                	mov    %edi,%edi
4157b2:	55                   	push   %ebp
4157b3:	8b ec                	mov    %esp,%ebp
4157b5:	53                   	push   %ebx
4157b6:	57                   	push   %edi
4157b7:	8b 7d 08             	mov    0x8(%ebp),%edi
4157ba:	83 cb ff             	or     $0xffffffff,%ebx
4157bd:	f0 0f c1 5f 0c       	lock xadd %ebx,0xc(%edi)
4157c2:	4b                   	dec    %ebx
4157c3:	75 19                	jne    0x4157de
4157c5:	85 ff                	test   %edi,%edi
4157c7:	74 15                	je     0x4157de
4157c9:	8b 17                	mov    (%edi),%edx
4157cb:	56                   	push   %esi
4157cc:	6a 01                	push   $0x1
4157ce:	8b 72 0c             	mov    0xc(%edx),%esi
4157d1:	8b ce                	mov    %esi,%ecx
4157d3:	ff 15 c4 12 45 00    	call   *0x4512c4
4157d9:	8b cf                	mov    %edi,%ecx
4157db:	ff d6                	call   *%esi
4157dd:	5e                   	pop    %esi
4157de:	5f                   	pop    %edi
4157df:	8b c3                	mov    %ebx,%eax
4157e1:	5b                   	pop    %ebx
4157e2:	5d                   	pop    %ebp
4157e3:	c2 04 00             	ret    $0x4
4157e6:	cc                   	int3
4157e7:	cc                   	int3
4157e8:	cc                   	int3
4157e9:	cc                   	int3
4157ea:	cc                   	int3
4157eb:	cc                   	int3
4157ec:	cc                   	int3
4157ed:	cc                   	int3
4157ee:	cc                   	int3
4157ef:	cc                   	int3
4157f0:	8b ff                	mov    %edi,%edi
4157f2:	55                   	push   %ebp
4157f3:	8b ec                	mov    %esp,%ebp
4157f5:	53                   	push   %ebx
4157f6:	56                   	push   %esi
4157f7:	8b f1                	mov    %ecx,%esi
4157f9:	57                   	push   %edi
4157fa:	8b 06                	mov    (%esi),%eax
4157fc:	8b 78 18             	mov    0x18(%eax),%edi
4157ff:	81 ff e0 41 41 00    	cmp    $0x4141e0,%edi
415805:	0f 85 dd 74 01 00    	jne    0x42cce8
41580b:	e8 d0 e9 ff ff       	call   0x4141e0
415810:	ff 75 08             	push   0x8(%ebp)
415813:	8d 4e 24             	lea    0x24(%esi),%ecx
415816:	e8 23 00 00 00       	call   0x41583e
41581b:	8b 0e                	mov    (%esi),%ecx
41581d:	8b d8                	mov    %eax,%ebx
41581f:	8b 79 1c             	mov    0x1c(%ecx),%edi
415822:	81 ff 10 42 41 00    	cmp    $0x414210,%edi
415828:	0f 85 cb 74 01 00    	jne    0x42ccf9
41582e:	8b ce                	mov    %esi,%ecx
415830:	e8 db e9 ff ff       	call   0x414210
415835:	5f                   	pop    %edi
415836:	5e                   	pop    %esi
415837:	8b c3                	mov    %ebx,%eax
415839:	5b                   	pop    %ebx
41583a:	5d                   	pop    %ebp
41583b:	c2 04 00             	ret    $0x4
41583e:	8b ff                	mov    %edi,%edi
415840:	55                   	push   %ebp
415841:	8b ec                	mov    %esp,%ebp
415843:	83 ec 0c             	sub    $0xc,%esp
415846:	53                   	push   %ebx
415847:	8b d9                	mov    %ecx,%ebx
415849:	56                   	push   %esi
41584a:	57                   	push   %edi
41584b:	8b 33                	mov    (%ebx),%esi
41584d:	85 f6                	test   %esi,%esi
41584f:	0f 84 d1 74 01 00    	je     0x42cd26
415855:	6a 10                	push   $0x10
415857:	56                   	push   %esi
415858:	ff 75 08             	push   0x8(%ebp)
41585b:	e8 0a ca 00 00       	call   0x42226a
415860:	83 c4 0c             	add    $0xc,%esp
415863:	85 c0                	test   %eax,%eax
415865:	75 20                	jne    0x415887
415867:	8b 7e 18             	mov    0x18(%esi),%edi
41586a:	8b cb                	mov    %ebx,%ecx
41586c:	89 7d f8             	mov    %edi,-0x8(%ebp)
41586f:	85 ff                	test   %edi,%edi
415871:	75 1b                	jne    0x41588e
415873:	ff 4b 04             	decl   0x4(%ebx)
415876:	8d 45 ff             	lea    -0x1(%ebp),%eax
415879:	50                   	push   %eax
41587a:	56                   	push   %esi
41587b:	e8 78 00 00 00       	call   0x4158f8
415880:	5f                   	pop    %edi
415881:	5e                   	pop    %esi
415882:	5b                   	pop    %ebx
415883:	c9                   	leave
415884:	c2 04 00             	ret    $0x4
415887:	79 67                	jns    0x4158f0
415889:	8b 76 10             	mov    0x10(%esi),%esi
41588c:	eb bf                	jmp    0x41584d
41588e:	8b 47 10             	mov    0x10(%edi),%eax
415891:	89 45 f4             	mov    %eax,-0xc(%ebp)
415894:	8d 45 ff             	lea    -0x1(%ebp),%eax
415897:	50                   	push   %eax
415898:	56                   	push   %esi
415899:	e8 5a 00 00 00       	call   0x4158f8
41589e:	ff 4b 04             	decl   0x4(%ebx)
4158a1:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4158a5:	74 45                	je     0x4158ec
4158a7:	39 75 f4             	cmp    %esi,-0xc(%ebp)
4158aa:	8b c7                	mov    %edi,%eax
4158ac:	0f 94 c1             	sete   %cl
4158af:	88 4d fe             	mov    %cl,-0x2(%ebp)
4158b2:	85 c0                	test   %eax,%eax
4158b4:	74 36                	je     0x4158ec
4158b6:	8d 45 ff             	lea    -0x1(%ebp),%eax
4158b9:	84 c9                	test   %cl,%cl
4158bb:	50                   	push   %eax
4158bc:	8d 45 f8             	lea    -0x8(%ebp),%eax
4158bf:	8b cb                	mov    %ebx,%ecx
4158c1:	0f 84 43 74 01 00    	je     0x42cd0a
4158c7:	ff 77 14             	push   0x14(%edi)
4158ca:	50                   	push   %eax
4158cb:	e8 1f 82 00 00       	call   0x41daef
4158d0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4158d3:	8b 79 18             	mov    0x18(%ecx),%edi
4158d6:	8b c7                	mov    %edi,%eax
4158d8:	89 7d f8             	mov    %edi,-0x8(%ebp)
4158db:	85 c0                	test   %eax,%eax
4158dd:	0f 85 35 74 01 00    	jne    0x42cd18
4158e3:	8a 4d fe             	mov    -0x2(%ebp),%cl
4158e6:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4158ea:	75 c6                	jne    0x4158b2
4158ec:	33 c0                	xor    %eax,%eax
4158ee:	eb 90                	jmp    0x415880
4158f0:	8b 76 14             	mov    0x14(%esi),%esi
4158f3:	e9 55 ff ff ff       	jmp    0x41584d
4158f8:	8b ff                	mov    %edi,%edi
4158fa:	55                   	push   %ebp
4158fb:	8b ec                	mov    %esp,%ebp
4158fd:	83 ec 0c             	sub    $0xc,%esp
415900:	8b 45 0c             	mov    0xc(%ebp),%eax
415903:	53                   	push   %ebx
415904:	56                   	push   %esi
415905:	57                   	push   %edi
415906:	8b 7d 08             	mov    0x8(%ebp),%edi
415909:	8b f1                	mov    %ecx,%esi
41590b:	89 75 fc             	mov    %esi,-0x4(%ebp)
41590e:	c6 00 01             	movb   $0x1,(%eax)
415911:	8b 57 10             	mov    0x10(%edi),%edx
415914:	8b 4f 14             	mov    0x14(%edi),%ecx
415917:	8b 5f 18             	mov    0x18(%edi),%ebx
41591a:	89 55 f8             	mov    %edx,-0x8(%ebp)
41591d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
415920:	85 d2                	test   %edx,%edx
415922:	75 4e                	jne    0x415972
415924:	8b c2                	mov    %edx,%eax
415926:	85 db                	test   %ebx,%ebx
415928:	0f 85 ab 00 00 00    	jne    0x4159d9
41592e:	85 d2                	test   %edx,%edx
415930:	75 02                	jne    0x415934
415932:	8b c1                	mov    %ecx,%eax
415934:	89 06                	mov    %eax,(%esi)
415936:	85 d2                	test   %edx,%edx
415938:	0f 85 b2 00 00 00    	jne    0x4159f0
41593e:	85 c9                	test   %ecx,%ecx
415940:	0f 85 cc 00 00 00    	jne    0x415a12
415946:	8b de                	mov    %esi,%ebx
415948:	8b 43 08             	mov    0x8(%ebx),%eax
41594b:	33 f6                	xor    %esi,%esi
41594d:	39 70 04             	cmp    %esi,0x4(%eax)
415950:	0f 84 9a 74 01 00    	je     0x42cdf0
415956:	57                   	push   %edi
415957:	56                   	push   %esi
415958:	ff 70 04             	push   0x4(%eax)
41595b:	ff 15 70 10 45 00    	call   *0x451070
415961:	85 c0                	test   %eax,%eax
415963:	0f 84 67 74 01 00    	je     0x42cdd0
415969:	5f                   	pop    %edi
41596a:	8b c6                	mov    %esi,%eax
41596c:	5e                   	pop    %esi
41596d:	5b                   	pop    %ebx
41596e:	c9                   	leave
41596f:	c2 08 00             	ret    $0x8
415972:	85 c9                	test   %ecx,%ecx
415974:	74 ae                	je     0x415924
415976:	8d 4d f8             	lea    -0x8(%ebp),%ecx
415979:	89 7d f8             	mov    %edi,-0x8(%ebp)
41597c:	e8 c8 81 00 00       	call   0x41db49