616bee:	8d 72 ff             	lea    -0x1(%edx),%esi
616bf1:	0f 44 f2             	cmove  %edx,%esi
616bf4:	56                   	push   %esi
616bf5:	ff 75 10             	push   0x10(%ebp)
616bf8:	ff 75 0c             	push   0xc(%ebp)
616bfb:	ff 75 1c             	push   0x1c(%ebp)
616bfe:	ff 97 88 00 00 00    	call   *0x88(%edi)
616c04:	33 c9                	xor    %ecx,%ecx
616c06:	85 c0                	test   %eax,%eax
616c08:	5f                   	pop    %edi
616c09:	0f 45 4d 08          	cmovne 0x8(%ebp),%ecx
616c0d:	5e                   	pop    %esi
616c0e:	89 4b 14             	mov    %ecx,0x14(%ebx)
616c11:	5b                   	pop    %ebx
616c12:	5d                   	pop    %ebp
616c13:	c2 18 00             	ret    $0x18
616c16:	55                   	push   %ebp
616c17:	8b ec                	mov    %esp,%ebp
616c19:	56                   	push   %esi
616c1a:	57                   	push   %edi
616c1b:	8b 7d 10             	mov    0x10(%ebp),%edi
616c1e:	8b f1                	mov    %ecx,%esi
616c20:	85 ff                	test   %edi,%edi
616c22:	74 2d                	je     0x616c51
616c24:	8b 06                	mov    (%esi),%eax
616c26:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616c2c:	ff 75 14             	push   0x14(%ebp)
616c2f:	8d 4f ff             	lea    -0x1(%edi),%ecx
616c32:	51                   	push   %ecx
616c33:	ff 75 0c             	push   0xc(%ebp)
616c36:	8b 10                	mov    (%eax),%edx
616c38:	8b c8                	mov    %eax,%ecx
616c3a:	ff 75 18             	push   0x18(%ebp)
616c3d:	ff 92 90 00 00 00    	call   *0x90(%edx)
616c43:	84 c0                	test   %al,%al
616c45:	74 0a                	je     0x616c51
616c47:	8b 45 08             	mov    0x8(%ebp),%eax
616c4a:	89 46 14             	mov    %eax,0x14(%esi)
616c4d:	b0 01                	mov    $0x1,%al
616c4f:	eb 06                	jmp    0x616c57
616c51:	83 66 14 00          	andl   $0x0,0x14(%esi)
616c55:	32 c0                	xor    %al,%al
616c57:	5f                   	pop    %edi
616c58:	5e                   	pop    %esi
616c59:	5d                   	pop    %ebp
616c5a:	c2 14 00             	ret    $0x14
616c5d:	55                   	push   %ebp
616c5e:	8b ec                	mov    %esp,%ebp
616c60:	56                   	push   %esi
616c61:	57                   	push   %edi
616c62:	8b 7d 0c             	mov    0xc(%ebp),%edi
616c65:	8b f1                	mov    %ecx,%esi
616c67:	85 ff                	test   %edi,%edi
616c69:	74 2a                	je     0x616c95
616c6b:	8b 06                	mov    (%esi),%eax
616c6d:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616c73:	ff 75 10             	push   0x10(%ebp)
616c76:	8d 4f ff             	lea    -0x1(%edi),%ecx
616c79:	51                   	push   %ecx
616c7a:	8b 10                	mov    (%eax),%edx
616c7c:	8b c8                	mov    %eax,%ecx
616c7e:	ff 75 14             	push   0x14(%ebp)
616c81:	ff 92 94 00 00 00    	call   *0x94(%edx)
616c87:	84 c0                	test   %al,%al
616c89:	74 0a                	je     0x616c95
616c8b:	8b 45 08             	mov    0x8(%ebp),%eax
616c8e:	89 46 14             	mov    %eax,0x14(%esi)
616c91:	b0 01                	mov    $0x1,%al
616c93:	eb 06                	jmp    0x616c9b
616c95:	83 66 14 00          	andl   $0x0,0x14(%esi)
616c99:	32 c0                	xor    %al,%al
616c9b:	5f                   	pop    %edi
616c9c:	5e                   	pop    %esi
616c9d:	5d                   	pop    %ebp
616c9e:	c2 10 00             	ret    $0x10
616ca1:	55                   	push   %ebp
616ca2:	8b ec                	mov    %esp,%ebp
616ca4:	56                   	push   %esi
616ca5:	8b 75 0c             	mov    0xc(%ebp),%esi
616ca8:	85 f6                	test   %esi,%esi
616caa:	74 16                	je     0x616cc2
616cac:	8b 01                	mov    (%ecx),%eax
616cae:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616cb4:	8d 4e ff             	lea    -0x1(%esi),%ecx
616cb7:	51                   	push   %ecx
616cb8:	ff 75 08             	push   0x8(%ebp)
616cbb:	8b 10                	mov    (%eax),%edx
616cbd:	8b c8                	mov    %eax,%ecx
616cbf:	ff 52 28             	call   *0x28(%edx)
616cc2:	5e                   	pop    %esi
616cc3:	5d                   	pop    %ebp
616cc4:	c2 08 00             	ret    $0x8
616cc7:	cc                   	int3
616cc8:	cc                   	int3
616cc9:	cc                   	int3
616cca:	cc                   	int3
616ccb:	cc                   	int3
616ccc:	cc                   	int3
616ccd:	cc                   	int3
616cce:	cc                   	int3
616ccf:	cc                   	int3
616cd0:	55                   	push   %ebp
616cd1:	8b ec                	mov    %esp,%ebp
616cd3:	53                   	push   %ebx
616cd4:	8b 59 0c             	mov    0xc(%ecx),%ebx
616cd7:	56                   	push   %esi
616cd8:	8d 71 18             	lea    0x18(%ecx),%esi
616cdb:	03 1e                	add    (%esi),%ebx
616cdd:	57                   	push   %edi
616cde:	8b 7d 0c             	mov    0xc(%ebp),%edi
616ce1:	3b 5d 08             	cmp    0x8(%ebp),%ebx
616ce4:	74 1e                	je     0x616d04
616ce6:	8d 41 10             	lea    0x10(%ecx),%eax
616ce9:	56                   	push   %esi
616cea:	50                   	push   %eax
616ceb:	e8 1e f9 ff ff       	call   0x61660e
616cf0:	3b c7                	cmp    %edi,%eax
616cf2:	8b cf                	mov    %edi,%ecx
616cf4:	0f 42 c8             	cmovb  %eax,%ecx
616cf7:	51                   	push   %ecx
616cf8:	ff 75 08             	push   0x8(%ebp)
616cfb:	53                   	push   %ebx
616cfc:	e8 ff c1 fc ff       	call   0x5e2f00
616d01:	83 c4 14             	add    $0x14,%esp
616d04:	01 3e                	add    %edi,(%esi)
616d06:	5f                   	pop    %edi
616d07:	83 56 04 00          	adcl   $0x0,0x4(%esi)
616d0b:	33 c0                	xor    %eax,%eax
616d0d:	5e                   	pop    %esi
616d0e:	5b                   	pop    %ebx
616d0f:	5d                   	pop    %ebp
616d10:	c2 10 00             	ret    $0x10
616d13:	cc                   	int3
616d14:	cc                   	int3
616d15:	cc                   	int3
616d16:	cc                   	int3
616d17:	cc                   	int3
616d18:	cc                   	int3
616d19:	cc                   	int3
616d1a:	cc                   	int3
616d1b:	cc                   	int3
616d1c:	cc                   	int3
616d1d:	cc                   	int3
616d1e:	cc                   	int3
616d1f:	cc                   	int3
616d20:	55                   	push   %ebp
616d21:	8b ec                	mov    %esp,%ebp
616d23:	53                   	push   %ebx
616d24:	56                   	push   %esi
616d25:	57                   	push   %edi
616d26:	8b f9                	mov    %ecx,%edi
616d28:	8d 5f 18             	lea    0x18(%edi),%ebx
616d2b:	8d 47 10             	lea    0x10(%edi),%eax
616d2e:	53                   	push   %ebx
616d2f:	50                   	push   %eax
616d30:	e8 d9 f8 ff ff       	call   0x61660e
616d35:	8b 75 0c             	mov    0xc(%ebp),%esi
616d38:	3b c6                	cmp    %esi,%eax
616d3a:	8b ce                	mov    %esi,%ecx
616d3c:	0f 42 c8             	cmovb  %eax,%ecx
616d3f:	8b 47 0c             	mov    0xc(%edi),%eax
616d42:	03 03                	add    (%ebx),%eax
616d44:	51                   	push   %ecx
616d45:	ff 75 08             	push   0x8(%ebp)
616d48:	50                   	push   %eax
616d49:	e8 ec eb ff ff       	call   0x61593a
616d4e:	83 c4 14             	add    $0x14,%esp
616d51:	01 33                	add    %esi,(%ebx)
616d53:	83 53 04 00          	adcl   $0x0,0x4(%ebx)
616d57:	33 c0                	xor    %eax,%eax
616d59:	5f                   	pop    %edi
616d5a:	5e                   	pop    %esi
616d5b:	5b                   	pop    %ebx
616d5c:	5d                   	pop    %ebp
616d5d:	c2 10 00             	ret    $0x10
616d60:	55                   	push   %ebp
616d61:	8b ec                	mov    %esp,%ebp
616d63:	53                   	push   %ebx
616d64:	8b 5d 0c             	mov    0xc(%ebp),%ebx
616d67:	56                   	push   %esi
616d68:	8b f1                	mov    %ecx,%esi
616d6a:	33 c9                	xor    %ecx,%ecx
616d6c:	57                   	push   %edi
616d6d:	6a 01                	push   $0x1
616d6f:	5f                   	pop    %edi
616d70:	8b 46 14             	mov    0x14(%esi),%eax
616d73:	2b c1                	sub    %ecx,%eax
616d75:	74 11                	je     0x616d88
616d77:	2b c7                	sub    %edi,%eax
616d79:	74 15                	je     0x616d90
616d7b:	2b c7                	sub    %edi,%eax
616d7d:	74 79                	je     0x616df8
616d7f:	33 c0                	xor    %eax,%eax
616d81:	5f                   	pop    %edi
616d82:	5e                   	pop    %esi
616d83:	5b                   	pop    %ebx
616d84:	5d                   	pop    %ebp
616d85:	c2 10 00             	ret    $0x10
616d88:	89 4e 10             	mov    %ecx,0x10(%esi)
616d8b:	38 4e 28             	cmp    %cl,0x28(%esi)
616d8e:	74 24                	je     0x616db4
616d90:	8d 46 34             	lea    0x34(%esi),%eax
616d93:	50                   	push   %eax
616d94:	ff 75 14             	push   0x14(%ebp)
616d97:	51                   	push   %ecx
616d98:	53                   	push   %ebx
616d99:	ff 75 08             	push   0x8(%ebp)
616d9c:	8b ce                	mov    %esi,%ecx
616d9e:	57                   	push   %edi
616d9f:	e8 2e fe ff ff       	call   0x616bd2
616da4:	85 c0                	test   %eax,%eax
616da6:	74 0c                	je     0x616db4
616da8:	2b 5e 10             	sub    0x10(%esi),%ebx
616dab:	3b df                	cmp    %edi,%ebx
616dad:	0f 47 fb             	cmova  %ebx,%edi
616db0:	8b c7                	mov    %edi,%eax
616db2:	eb cd                	jmp    0x616d81
616db4:	8b 4e 24             	mov    0x24(%esi),%ecx
616db7:	53                   	push   %ebx
616db8:	ff 75 08             	push   0x8(%ebp)
616dbb:	8b 01                	mov    (%ecx),%eax
616dbd:	ff 50 0c             	call   *0xc(%eax)
616dc0:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
616dc4:	74 b9                	je     0x616d7f
616dc6:	8b 46 2c             	mov    0x2c(%esi),%eax
616dc9:	8d 4d 08             	lea    0x8(%ebp),%ecx
616dcc:	51                   	push   %ecx
616dcd:	50                   	push   %eax
616dce:	50                   	push   %eax
616dcf:	89 45 08             	mov    %eax,0x8(%ebp)
616dd2:	8b ce                	mov    %esi,%ecx
616dd4:	8d 46 4c             	lea    0x4c(%esi),%eax
616dd7:	50                   	push   %eax
616dd8:	8b 06                	mov    (%esi),%eax
616dda:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616de0:	50                   	push   %eax
616de1:	8d 4e 18             	lea    0x18(%esi),%ecx
616de4:	e8 05 fc ff ff       	call   0x6169ee
616de9:	8b 4e 24             	mov    0x24(%esi),%ecx
616dec:	ff 76 2c             	push   0x2c(%esi)
616def:	89 46 30             	mov    %eax,0x30(%esi)
616df2:	50                   	push   %eax
616df3:	8b 11                	mov    (%ecx),%edx
616df5:	ff 52 38             	call   *0x38(%edx)
616df8:	8d 46 4c             	lea    0x4c(%esi),%eax
616dfb:	8b ce                	mov    %esi,%ecx
616dfd:	50                   	push   %eax
616dfe:	ff 75 14             	push   0x14(%ebp)
616e01:	ff 75 10             	push   0x10(%ebp)
616e04:	ff 76 2c             	push   0x2c(%esi)
616e07:	ff 76 30             	push   0x30(%esi)
616e0a:	6a 02                	push   $0x2
616e0c:	e8 c1 fd ff ff       	call   0x616bd2
616e11:	85 c0                	test   %eax,%eax
616e13:	0f 84 66 ff ff ff    	je     0x616d7f
616e19:	8b 4e 2c             	mov    0x2c(%esi),%ecx
616e1c:	2b 4e 10             	sub    0x10(%esi),%ecx
616e1f:	3b cf                	cmp    %edi,%ecx
616e21:	0f 47 f9             	cmova  %ecx,%edi
616e24:	eb 8a                	jmp    0x616db0
616e26:	cc                   	int3
616e27:	cc                   	int3
616e28:	cc                   	int3
616e29:	cc                   	int3
616e2a:	cc                   	int3
616e2b:	cc                   	int3
616e2c:	cc                   	int3
616e2d:	cc                   	int3
616e2e:	cc                   	int3
616e2f:	cc                   	int3
616e30:	6a 5c                	push   $0x5c
616e32:	b8 90 22 66 00       	mov    $0x662290,%eax
616e37:	e8 b3 b1 fc ff       	call   0x5e1fef
616e3c:	8b f9                	mov    %ecx,%edi
616e3e:	8b 75 08             	mov    0x8(%ebp),%esi
616e41:	8d 4d 98             	lea    -0x68(%ebp),%ecx
616e44:	33 db                	xor    %ebx,%ebx
616e46:	53                   	push   %ebx
616e47:	53                   	push   %ebx
616e48:	e8 76 c9 ff ff       	call   0x6137c3
616e4d:	8b 06                	mov    (%esi),%eax
616e4f:	8d 4d 98             	lea    -0x68(%ebp),%ecx
616e52:	51                   	push   %ecx
616e53:	68 f4 bc 72 00       	push   $0x72bcf4
616e58:	68 ec bb 6d 00       	push   $0x6dbbec
616e5d:	8b ce                	mov    %esi,%ecx
616e5f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
616e62:	ff 50 04             	call   *0x4(%eax)
616e65:	84 c0                	test   %al,%al
616e67:	75 34                	jne    0x616e9d
616e69:	68 54 bc 6d 00       	push   $0x6dbc54
616e6e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
616e71:	e8 9a 18 e2 ff       	call   0x438710
616e76:	8d 45 d8             	lea    -0x28(%ebp),%eax
616e79:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
616e7d:	50                   	push   %eax
616e7e:	6a 01                	push   $0x1
616e80:	8d 4d b0             	lea    -0x50(%ebp),%ecx
616e83:	e8 c0 c9 ff ff       	call   0x613848
616e88:	68 6c 27 70 00       	push   $0x70276c
616e8d:	8d 45 b0             	lea    -0x50(%ebp),%eax
616e90:	c7 45 b0 38 37 69 00 	movl   $0x693738,-0x50(%ebp)
616e97:	50                   	push   %eax
616e98:	e8 95 bb fc ff       	call   0x5e2a32
616e9d:	8b 4d 98             	mov    -0x68(%ebp),%ecx
616ea0:	84 c9                	test   %cl,%cl
616ea2:	8b 45 9c             	mov    -0x64(%ebp),%eax
616ea5:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
616ea8:	0f 45 45 ac          	cmovne -0x54(%ebp),%eax
616eac:	89 47 14             	mov    %eax,0x14(%edi)
616eaf:	8b 45 a0             	mov    -0x60(%ebp),%eax
616eb2:	0f 45 45 a8          	cmovne -0x58(%ebp),%eax
616eb6:	89 47 18             	mov    %eax,0x18(%edi)
616eb9:	89 5f 1c             	mov    %ebx,0x1c(%edi)
616ebc:	e8 1f 4c e7 ff       	call   0x48bae0
616ec1:	e8 e4 b0 fc ff       	call   0x5e1faa
616ec6:	c2 04 00             	ret    $0x4
616ec9:	cc                   	int3
616eca:	cc                   	int3
616ecb:	cc                   	int3
616ecc:	cc                   	int3
616ecd:	cc                   	int3
616ece:	cc                   	int3
616ecf:	cc                   	int3
616ed0:	55                   	push   %ebp
616ed1:	8b ec                	mov    %esp,%ebp
616ed3:	8b 01                	mov    (%ecx),%eax
616ed5:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616edb:	8b 10                	mov    (%eax),%edx
616edd:	8b c8                	mov    %eax,%ecx
616edf:	5d                   	pop    %ebp
616ee0:	ff 62 7c             	jmp    *0x7c(%edx)
616ee3:	cc                   	int3
616ee4:	cc                   	int3
616ee5:	cc                   	int3
616ee6:	cc                   	int3
616ee7:	cc                   	int3
616ee8:	cc                   	int3
616ee9:	cc                   	int3
616eea:	cc                   	int3
616eeb:	cc                   	int3
616eec:	cc                   	int3
616eed:	cc                   	int3
616eee:	cc                   	int3
616eef:	cc                   	int3
616ef0:	55                   	push   %ebp
616ef1:	8b ec                	mov    %esp,%ebp
616ef3:	51                   	push   %ecx
616ef4:	51                   	push   %ecx
616ef5:	56                   	push   %esi