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
415b66:	85 c0                	test   %eax,%eax
415b68:	0f 84 43 01 00 00    	je     0x415cb1
415b6e:	8b f0                	mov    %eax,%esi
415b70:	eb ce                	jmp    0x415b40
415b72:	8b 47 08             	mov    0x8(%edi),%eax
415b75:	8b 48 08             	mov    0x8(%eax),%ecx
415b78:	83 e1 05             	and    $0x5,%ecx
415b7b:	83 c9 08             	or     $0x8,%ecx
415b7e:	33 f6                	xor    %esi,%esi
415b80:	8b 40 04             	mov    0x4(%eax),%eax
415b83:	85 c0                	test   %eax,%eax
415b85:	0f 84 d3 ed 00 00    	je     0x42495e
415b8b:	6a 18                	push   $0x18
415b8d:	51                   	push   %ecx
415b8e:	50                   	push   %eax
415b8f:	ff 15 78 10 45 00    	call   *0x451078
415b95:	8b c8                	mov    %eax,%ecx
415b97:	89 4d e0             	mov    %ecx,-0x20(%ebp)
415b9a:	85 c9                	test   %ecx,%ecx
415b9c:	0f 84 77 ed 00 00    	je     0x424919
415ba2:	89 71 0c             	mov    %esi,0xc(%ecx)
415ba5:	89 71 08             	mov    %esi,0x8(%ecx)
415ba8:	89 71 04             	mov    %esi,0x4(%ecx)
415bab:	89 71 10             	mov    %esi,0x10(%ecx)
415bae:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
415bb5:	8b 45 0c             	mov    0xc(%ebp),%eax
415bb8:	8b 00                	mov    (%eax),%eax
415bba:	89 41 14             	mov    %eax,0x14(%ecx)
415bbd:	8b 45 08             	mov    0x8(%ebp),%eax
415bc0:	8b 00                	mov    (%eax),%eax
415bc2:	89 01                	mov    %eax,(%ecx)
415bc4:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
415bcb:	8b 45 10             	mov    0x10(%ebp),%eax
415bce:	89 08                	mov    %ecx,(%eax)
415bd0:	89 0f                	mov    %ecx,(%edi)
415bd2:	ff 47 04             	incl   0x4(%edi)
415bd5:	8b c6                	mov    %esi,%eax
415bd7:	eb 02                	jmp    0x415bdb
415bd9:	33 c0                	xor    %eax,%eax
415bdb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
415bde:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415be5:	59                   	pop    %ecx
415be6:	5f                   	pop    %edi
415be7:	5e                   	pop    %esi
415be8:	5b                   	pop    %ebx
415be9:	8b e5                	mov    %ebp,%esp
415beb:	5d                   	pop    %ebp
415bec:	c2 0c 00             	ret    $0xc
415bef:	8b 47 08             	mov    0x8(%edi),%eax
415bf2:	8b 48 08             	mov    0x8(%eax),%ecx
415bf5:	83 e1 05             	and    $0x5,%ecx
415bf8:	83 c9 08             	or     $0x8,%ecx
415bfb:	8b 40 04             	mov    0x4(%eax),%eax
415bfe:	85 c0                	test   %eax,%eax
415c00:	0f 84 49 eb 00 00    	je     0x42474f
415c06:	6a 18                	push   $0x18
415c08:	51                   	push   %ecx
415c09:	50                   	push   %eax
415c0a:	ff 15 78 10 45 00    	call   *0x451078
415c10:	8b c8                	mov    %eax,%ecx
415c12:	89 4d e0             	mov    %ecx,-0x20(%ebp)
415c15:	85 c9                	test   %ecx,%ecx
415c17:	0f 84 c7 e9 00 00    	je     0x4245e4
415c1d:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
415c24:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
415c2b:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
415c32:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
415c39:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
415c40:	8b 45 0c             	mov    0xc(%ebp),%eax
415c43:	8b 00                	mov    (%eax),%eax
415c45:	89 41 14             	mov    %eax,0x14(%ecx)
415c48:	8b 03                	mov    (%ebx),%eax
415c4a:	89 01                	mov    %eax,(%ecx)
415c4c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
415c53:	8b 45 10             	mov    0x10(%ebp),%eax
415c56:	89 08                	mov    %ecx,(%eax)
415c58:	ff 47 04             	incl   0x4(%edi)
415c5b:	b0 01                	mov    $0x1,%al
415c5d:	88 45 ef             	mov    %al,-0x11(%ebp)
415c60:	89 71 0c             	mov    %esi,0xc(%ecx)
415c63:	89 4e 08             	mov    %ecx,0x8(%esi)
415c66:	8b 56 10             	mov    0x10(%esi),%edx
415c69:	85 d2                	test   %edx,%edx
415c6b:	0f 85 12 02 00 00    	jne    0x415e83
415c71:	c7 46 10 02 00 00 00 	movl   $0x2,0x10(%esi)
415c78:	8b 4e 0c             	mov    0xc(%esi),%ecx
415c7b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415c7e:	85 c9                	test   %ecx,%ecx
415c80:	0f 84 53 ff ff ff    	je     0x415bd9
415c86:	39 71 04             	cmp    %esi,0x4(%ecx)
415c89:	0f 84 00 01 00 00    	je     0x415d8f
415c8f:	84 c0                	test   %al,%al
415c91:	74 13                	je     0x415ca6
415c93:	8b 51 10             	mov    0x10(%ecx),%edx
415c96:	83 ea 00             	sub    $0x0,%edx
415c99:	0f 85 0b 01 00 00    	jne    0x415daa
415c9f:	c7 41 10 02 00 00 00 	movl   $0x2,0x10(%ecx)
415ca6:	8b f1                	mov    %ecx,%esi
415ca8:	84 c0                	test   %al,%al
415caa:	75 cc                	jne    0x415c78
415cac:	e9 28 ff ff ff       	jmp    0x415bd9
415cb1:	8b 47 08             	mov    0x8(%edi),%eax
415cb4:	8b 48 08             	mov    0x8(%eax),%ecx
415cb7:	83 e1 05             	and    $0x5,%ecx
415cba:	83 c9 08             	or     $0x8,%ecx
415cbd:	8b 40 04             	mov    0x4(%eax),%eax
415cc0:	85 c0                	test   %eax,%eax
415cc2:	0f 84 87 ea 00 00    	je     0x42474f
415cc8:	6a 18                	push   $0x18
415cca:	51                   	push   %ecx
415ccb:	50                   	push   %eax
415ccc:	ff 15 78 10 45 00    	call   *0x451078
415cd2:	8b c8                	mov    %eax,%ecx
415cd4:	89 4d e0             	mov    %ecx,-0x20(%ebp)
415cd7:	85 c9                	test   %ecx,%ecx
415cd9:	0f 84 05 e9 00 00    	je     0x4245e4
415cdf:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
415ce6:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
415ced:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
415cf4:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
415cfb:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
415d02:	8b 45 0c             	mov    0xc(%ebp),%eax
415d05:	8b 00                	mov    (%eax),%eax
415d07:	89 41 14             	mov    %eax,0x14(%ecx)
415d0a:	8b 03                	mov    (%ebx),%eax
415d0c:	89 01                	mov    %eax,(%ecx)
415d0e:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
415d15:	8b 45 10             	mov    0x10(%ebp),%eax
415d18:	89 08                	mov    %ecx,(%eax)
415d1a:	ff 47 04             	incl   0x4(%edi)
415d1d:	b2 01                	mov    $0x1,%dl
415d1f:	88 55 ef             	mov    %dl,-0x11(%ebp)
415d22:	89 71 0c             	mov    %esi,0xc(%ecx)
415d25:	89 4e 04             	mov    %ecx,0x4(%esi)
415d28:	8b 46 10             	mov    0x10(%esi),%eax
415d2b:	85 c0                	test   %eax,%eax
415d2d:	0f 85 32 01 00 00    	jne    0x415e65
415d33:	c7 46 10 01 00 00 00 	movl   $0x1,0x10(%esi)
415d3a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
415d40:	8d 5e 0c             	lea    0xc(%esi),%ebx
415d43:	89 5d e8             	mov    %ebx,-0x18(%ebp)
415d46:	8b 0b                	mov    (%ebx),%ecx
415d48:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415d4b:	85 c9                	test   %ecx,%ecx
415d4d:	0f 84 86 fe ff ff    	je     0x415bd9
415d53:	39 71 04             	cmp    %esi,0x4(%ecx)
415d56:	75 19                	jne    0x415d71
415d58:	84 d2                	test   %dl,%dl
415d5a:	74 28                	je     0x415d84
415d5c:	8b 41 10             	mov    0x10(%ecx),%eax
415d5f:	83 e8 00             	sub    $0x0,%eax
415d62:	0f 85 9a 00 00 00    	jne    0x415e02
415d68:	c7 41 10 01 00 00 00 	movl   $0x1,0x10(%ecx)
415d6f:	eb 13                	jmp    0x415d84
415d71:	8d 45 ef             	lea    -0x11(%ebp),%eax
415d74:	50                   	push   %eax
415d75:	56                   	push   %esi
415d76:	8d 45 dc             	lea    -0x24(%ebp),%eax
415d79:	50                   	push   %eax
415d7a:	8b cf                	mov    %edi,%ecx
415d7c:	e8 78 07 00 00       	call   0x4164f9
415d81:	8a 55 ef             	mov    -0x11(%ebp),%dl
415d84:	8b 33                	mov    (%ebx),%esi
415d86:	84 d2                	test   %dl,%dl
415d88:	75 b6                	jne    0x415d40
415d8a:	e9 4a fe ff ff       	jmp    0x415bd9
415d8f:	8d 45 ef             	lea    -0x11(%ebp),%eax
415d92:	50                   	push   %eax
415d93:	56                   	push   %esi
415d94:	8d 45 dc             	lea    -0x24(%ebp),%eax
415d97:	50                   	push   %eax
415d98:	8b cf                	mov    %edi,%ecx
415d9a:	e8 43 06 00 00       	call   0x4163e2
415d9f:	8a 45 ef             	mov    -0x11(%ebp),%al
415da2:	8b 4d dc             	mov    -0x24(%ebp),%ecx