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
415981:	8b 75 f8             	mov    -0x8(%ebp),%esi
415984:	8b 47 1c             	mov    0x1c(%edi),%eax
415987:	89 75 f8             	mov    %esi,-0x8(%ebp)
41598a:	89 46 1c             	mov    %eax,0x1c(%esi)
41598d:	85 db                	test   %ebx,%ebx
41598f:	0f 85 9b 73 01 00    	jne    0x42cd30
415995:	8b 5d fc             	mov    -0x4(%ebp),%ebx
415998:	89 33                	mov    %esi,(%ebx)
41599a:	8b 47 10             	mov    0x10(%edi),%eax
41599d:	39 7e 18             	cmp    %edi,0x18(%esi)
4159a0:	0f 85 9f 73 01 00    	jne    0x42cd45
4159a6:	85 c0                	test   %eax,%eax
4159a8:	74 03                	je     0x4159ad
4159aa:	89 70 18             	mov    %esi,0x18(%eax)
4159ad:	8b 47 14             	mov    0x14(%edi),%eax
4159b0:	85 c0                	test   %eax,%eax
4159b2:	74 03                	je     0x4159b7
4159b4:	89 70 18             	mov    %esi,0x18(%eax)
4159b7:	8b 47 10             	mov    0x10(%edi),%eax
4159ba:	ff 75 0c             	push   0xc(%ebp)
4159bd:	89 46 10             	mov    %eax,0x10(%esi)
4159c0:	8b 47 18             	mov    0x18(%edi),%eax
4159c3:	89 46 18             	mov    %eax,0x18(%esi)
4159c6:	8d 45 f8             	lea    -0x8(%ebp),%eax
4159c9:	ff 76 10             	push   0x10(%esi)
4159cc:	50                   	push   %eax
4159cd:	8b cb                	mov    %ebx,%ecx
4159cf:	e8 00 80 00 00       	call   0x41d9d4
4159d4:	e9 6f ff ff ff       	jmp    0x415948
4159d9:	39 7b 10             	cmp    %edi,0x10(%ebx)
4159dc:	0f 85 e0 73 01 00    	jne    0x42cdc2
4159e2:	85 d2                	test   %edx,%edx
4159e4:	75 02                	jne    0x4159e8
4159e6:	8b c1                	mov    %ecx,%eax
4159e8:	89 43 10             	mov    %eax,0x10(%ebx)
4159eb:	e9 46 ff ff ff       	jmp    0x415936
4159f0:	8b 47 18             	mov    0x18(%edi),%eax
4159f3:	8b ce                	mov    %esi,%ecx
4159f5:	ff 75 0c             	push   0xc(%ebp)
4159f8:	89 42 18             	mov    %eax,0x18(%edx)
4159fb:	8b 47 1c             	mov    0x1c(%edi),%eax
4159fe:	89 42 1c             	mov    %eax,0x1c(%edx)
415a01:	8d 45 f8             	lea    -0x8(%ebp),%eax
415a04:	ff 72 14             	push   0x14(%edx)
415a07:	50                   	push   %eax
415a08:	e8 e2 80 00 00       	call   0x41daef
415a0d:	e9 34 ff ff ff       	jmp    0x415946
415a12:	8b 47 18             	mov    0x18(%edi),%eax
415a15:	ff 75 0c             	push   0xc(%ebp)
415a18:	89 41 18             	mov    %eax,0x18(%ecx)
415a1b:	8b 47 1c             	mov    0x1c(%edi),%eax
415a1e:	89 41 1c             	mov    %eax,0x1c(%ecx)
415a21:	8d 45 f4             	lea    -0xc(%ebp),%eax
415a24:	ff 71 10             	push   0x10(%ecx)
415a27:	8b ce                	mov    %esi,%ecx
415a29:	50                   	push   %eax
415a2a:	e8 a5 7f 00 00       	call   0x41d9d4
415a2f:	e9 12 ff ff ff       	jmp    0x415946
415a34:	cc                   	int3
415a35:	cc                   	int3
415a36:	cc                   	int3
415a37:	cc                   	int3
415a38:	cc                   	int3
415a39:	cc                   	int3
415a3a:	cc                   	int3
415a3b:	cc                   	int3
415a3c:	cc                   	int3
415a3d:	cc                   	int3
415a3e:	cc                   	int3
415a3f:	cc                   	int3
415a40:	8b ff                	mov    %edi,%edi
415a42:	55                   	push   %ebp
415a43:	8b ec                	mov    %esp,%ebp
415a45:	83 ec 08             	sub    $0x8,%esp
415a48:	56                   	push   %esi
415a49:	8b f1                	mov    %ecx,%esi
415a4b:	57                   	push   %edi
415a4c:	8b 06                	mov    (%esi),%eax
415a4e:	8b 78 18             	mov    0x18(%eax),%edi
415a51:	81 ff 60 3c 41 00    	cmp    $0x413c60,%edi
415a57:	0f 85 c9 73 01 00    	jne    0x42ce26
415a5d:	80 7e 20 00          	cmpb   $0x0,0x20(%esi)
415a61:	74 10                	je     0x415a73
415a63:	8d 4e 08             	lea    0x8(%esi),%ecx
415a66:	e8 35 61 ff ff       	call   0x40bba0
415a6b:	84 c0                	test   %al,%al
415a6d:	0f 84 87 73 01 00    	je     0x42cdfa
415a73:	53                   	push   %ebx
415a74:	8b 5d 08             	mov    0x8(%ebp),%ebx
415a77:	8d 45 f8             	lea    -0x8(%ebp),%eax
415a7a:	50                   	push   %eax
415a7b:	8d 45 fc             	lea    -0x4(%ebp),%eax
415a7e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
415a81:	50                   	push   %eax
415a82:	8d 43 18             	lea    0x18(%ebx),%eax
415a85:	50                   	push   %eax
415a86:	8d 4e 24             	lea    0x24(%esi),%ecx
415a89:	e8 72 00 00 00       	call   0x415b00
415a8e:	8b c8                	mov    %eax,%ecx
415a90:	89 4d fc             	mov    %ecx,-0x4(%ebp)
415a93:	85 c9                	test   %ecx,%ecx
415a95:	75 37                	jne    0x415ace
415a97:	8b 0b                	mov    (%ebx),%ecx
415a99:	8b 79 18             	mov    0x18(%ecx),%edi
415a9c:	81 ff 60 60 41 00    	cmp    $0x416060,%edi
415aa2:	75 15                	jne    0x415ab9
415aa4:	b9 01 00 00 00       	mov    $0x1,%ecx
415aa9:	f0 0f c1 4b 08       	lock xadd %ecx,0x8(%ebx)
415aae:	41                   	inc    %ecx
415aaf:	83 f9 01             	cmp    $0x1,%ecx
415ab2:	75 10                	jne    0x415ac4
415ab4:	8b 03                	mov    (%ebx),%eax
415ab6:	8b 78 24             	mov    0x24(%eax),%edi
415ab9:	53                   	push   %ebx
415aba:	8b cf                	mov    %edi,%ecx
415abc:	ff 15 c4 12 45 00    	call   *0x4512c4
415ac2:	ff d7                	call   *%edi
415ac4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
415ac7:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)
415ace:	8b 06                	mov    (%esi),%eax
415ad0:	5b                   	pop    %ebx
415ad1:	8b 78 1c             	mov    0x1c(%eax),%edi
415ad4:	81 ff 90 3c 41 00    	cmp    $0x413c90,%edi
415ada:	0f 85 57 73 01 00    	jne    0x42ce37
415ae0:	83 c6 08             	add    $0x8,%esi
415ae3:	80 7e 18 00          	cmpb   $0x0,0x18(%esi)
415ae7:	74 12                	je     0x415afb
415ae9:	56                   	push   %esi
415aea:	ff 15 40 11 45 00    	call   *0x451140
415af0:	8b 45 fc             	mov    -0x4(%ebp),%eax
415af3:	5f                   	pop    %edi
415af4:	5e                   	pop    %esi
415af5:	8b e5                	mov    %ebp,%esp
415af7:	5d                   	pop    %ebp
415af8:	c2 08 00             	ret    $0x8
415afb:	8b c1                	mov    %ecx,%eax
415afd:	eb f4                	jmp    0x415af3
415aff:	cc                   	int3
415b00:	8b ff                	mov    %edi,%edi
415b02:	55                   	push   %ebp
415b03:	8b ec                	mov    %esp,%ebp
415b05:	6a ff                	push   $0xffffffff
415b07:	68 20 39 42 00       	push   $0x423920
415b0c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
415b12:	50                   	push   %eax
415b13:	83 ec 24             	sub    $0x24,%esp
415b16:	53                   	push   %ebx
415b17:	56                   	push   %esi
415b18:	57                   	push   %edi
415b19:	a1 54 02 45 00       	mov    0x450254,%eax
415b1e:	33 c5                	xor    %ebp,%eax
415b20:	50                   	push   %eax
415b21:	8d 45 f4             	lea    -0xc(%ebp),%eax
415b24:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
415b2a:	89 65 f0             	mov    %esp,-0x10(%ebp)
415b2d:	8b f9                	mov    %ecx,%edi
415b2f:	89 7d dc             	mov    %edi,-0x24(%ebp)
415b32:	8b 37                	mov    (%edi),%esi
415b34:	85 f6                	test   %esi,%esi
415b36:	74 3a                	je     0x415b72
415b38:	8b 5d 08             	mov    0x8(%ebp),%ebx
415b3b:	eb 03                	jmp    0x415b40
415b3d:	8d 49 00             	lea    0x0(%ecx),%ecx
415b40:	85 f6                	test   %esi,%esi
415b42:	0f 84 c7 ed 00 00    	je     0x42490f
415b48:	8b 03                	mov    (%ebx),%eax
415b4a:	3b 06                	cmp    (%esi),%eax
415b4c:	72 15                	jb     0x415b63
415b4e:	0f 84 b1 ed 00 00    	je     0x424905
415b54:	8b 46 08             	mov    0x8(%esi),%eax
415b57:	85 c0                	test   %eax,%eax
415b59:	0f 84 90 00 00 00    	je     0x415bef
415b5f:	8b f0                	mov    %eax,%esi
415b61:	eb dd                	jmp    0x415b40
415b63:	8b 46 04             	mov    0x4(%esi),%eax