643ad3:	cc                   	int3
643ad4:	cc                   	int3
643ad5:	cc                   	int3
643ad6:	cc                   	int3
643ad7:	cc                   	int3
643ad8:	cc                   	int3
643ad9:	cc                   	int3
643ada:	cc                   	int3
643adb:	cc                   	int3
643adc:	cc                   	int3
643add:	cc                   	int3
643ade:	cc                   	int3
643adf:	cc                   	int3
643ae0:	56                   	push   %esi
643ae1:	8b 71 08             	mov    0x8(%ecx),%esi
643ae4:	ba ff ff ff 3f       	mov    $0x3fffffff,%edx
643ae9:	2b 31                	sub    (%ecx),%esi
643aeb:	c1 fe 02             	sar    $0x2,%esi
643aee:	8b c6                	mov    %esi,%eax
643af0:	d1 e8                	shr    $1,%eax
643af2:	2b d0                	sub    %eax,%edx
643af4:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
643af7:	33 c0                	xor    %eax,%eax
643af9:	3b d6                	cmp    %esi,%edx
643afb:	5e                   	pop    %esi
643afc:	0f 43 c1             	cmovae %ecx,%eax
643aff:	3b 44 24 04          	cmp    0x4(%esp),%eax
643b03:	0f 42 44 24 04       	cmovb  0x4(%esp),%eax
643b08:	c2 04 00             	ret    $0x4
643b0b:	cc                   	int3
643b0c:	cc                   	int3
643b0d:	cc                   	int3
643b0e:	cc                   	int3
643b0f:	cc                   	int3
643b10:	cc                   	int3
643b11:	cc                   	int3
643b12:	cc                   	int3
643b13:	cc                   	int3
643b14:	cc                   	int3
643b15:	cc                   	int3
643b16:	cc                   	int3
643b17:	cc                   	int3
643b18:	cc                   	int3
643b19:	cc                   	int3
643b1a:	cc                   	int3
643b1b:	cc                   	int3
643b1c:	cc                   	int3
643b1d:	cc                   	int3
643b1e:	cc                   	int3
643b1f:	cc                   	int3
643b20:	56                   	push   %esi
643b21:	8b 71 08             	mov    0x8(%ecx),%esi
643b24:	ba ff ff ff 3f       	mov    $0x3fffffff,%edx
643b29:	2b 31                	sub    (%ecx),%esi
643b2b:	c1 fe 02             	sar    $0x2,%esi
643b2e:	8b c6                	mov    %esi,%eax
643b30:	d1 e8                	shr    $1,%eax
643b32:	2b d0                	sub    %eax,%edx
643b34:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
643b37:	33 c0                	xor    %eax,%eax
643b39:	3b d6                	cmp    %esi,%edx
643b3b:	5e                   	pop    %esi
643b3c:	0f 43 c1             	cmovae %ecx,%eax
643b3f:	3b 44 24 04          	cmp    0x4(%esp),%eax
643b43:	0f 42 44 24 04       	cmovb  0x4(%esp),%eax
643b48:	c2 04 00             	ret    $0x4
643b4b:	cc                   	int3
643b4c:	cc                   	int3
643b4d:	cc                   	int3
643b4e:	cc                   	int3
643b4f:	cc                   	int3
643b50:	cc                   	int3
643b51:	cc                   	int3
643b52:	cc                   	int3
643b53:	cc                   	int3
643b54:	cc                   	int3
643b55:	cc                   	int3
643b56:	cc                   	int3
643b57:	cc                   	int3
643b58:	cc                   	int3
643b59:	cc                   	int3
643b5a:	cc                   	int3
643b5b:	cc                   	int3
643b5c:	cc                   	int3
643b5d:	cc                   	int3
643b5e:	cc                   	int3
643b5f:	cc                   	int3
643b60:	56                   	push   %esi
643b61:	8b 71 08             	mov    0x8(%ecx),%esi
643b64:	ba ff ff ff 3f       	mov    $0x3fffffff,%edx
643b69:	2b 31                	sub    (%ecx),%esi
643b6b:	c1 fe 02             	sar    $0x2,%esi
643b6e:	8b c6                	mov    %esi,%eax
643b70:	d1 e8                	shr    $1,%eax
643b72:	2b d0                	sub    %eax,%edx
643b74:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
643b77:	33 c0                	xor    %eax,%eax
643b79:	3b d6                	cmp    %esi,%edx
643b7b:	5e                   	pop    %esi
643b7c:	0f 43 c1             	cmovae %ecx,%eax
643b7f:	3b 44 24 04          	cmp    0x4(%esp),%eax
643b83:	0f 42 44 24 04       	cmovb  0x4(%esp),%eax
643b88:	c2 04 00             	ret    $0x4
643b8b:	cc                   	int3
643b8c:	cc                   	int3
643b8d:	cc                   	int3
643b8e:	cc                   	int3
643b8f:	cc                   	int3
643b90:	cc                   	int3
643b91:	cc                   	int3
643b92:	cc                   	int3
643b93:	cc                   	int3
643b94:	cc                   	int3
643b95:	cc                   	int3
643b96:	cc                   	int3
643b97:	cc                   	int3
643b98:	cc                   	int3
643b99:	cc                   	int3
643b9a:	cc                   	int3
643b9b:	cc                   	int3
643b9c:	cc                   	int3
643b9d:	cc                   	int3
643b9e:	cc                   	int3
643b9f:	cc                   	int3
643ba0:	55                   	push   %ebp
643ba1:	8b ec                	mov    %esp,%ebp
643ba3:	6a ff                	push   $0xffffffff
643ba5:	68 90 83 b7 00       	push   $0xb78390
643baa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
643bb0:	50                   	push   %eax
643bb1:	83 ec 18             	sub    $0x18,%esp
643bb4:	53                   	push   %ebx
643bb5:	56                   	push   %esi
643bb6:	57                   	push   %edi
643bb7:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
643bbc:	33 c5                	xor    %ebp,%eax
643bbe:	50                   	push   %eax
643bbf:	8d 45 f4             	lea    -0xc(%ebp),%eax
643bc2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
643bc8:	89 65 f0             	mov    %esp,-0x10(%ebp)
643bcb:	8b f9                	mov    %ecx,%edi
643bcd:	89 7d e0             	mov    %edi,-0x20(%ebp)
643bd0:	8b 45 0c             	mov    0xc(%ebp),%eax
643bd3:	8b f0                	mov    %eax,%esi
643bd5:	8b 17                	mov    (%edi),%edx
643bd7:	2b f2                	sub    %edx,%esi
643bd9:	c1 fe 02             	sar    $0x2,%esi
643bdc:	89 75 dc             	mov    %esi,-0x24(%ebp)
643bdf:	8b 75 10             	mov    0x10(%ebp),%esi
643be2:	85 f6                	test   %esi,%esi
643be4:	0f 84 e8 01 00 00    	je     0x643dd2
643bea:	8b 4f 08             	mov    0x8(%edi),%ecx
643bed:	8b 5f 04             	mov    0x4(%edi),%ebx
643bf0:	2b cb                	sub    %ebx,%ecx
643bf2:	c1 f9 02             	sar    $0x2,%ecx
643bf5:	3b ce                	cmp    %esi,%ecx
643bf7:	0f 83 f6 00 00 00    	jae    0x643cf3
643bfd:	2b da                	sub    %edx,%ebx
643bff:	b9 ff ff ff 3f       	mov    $0x3fffffff,%ecx
643c04:	c1 fb 02             	sar    $0x2,%ebx
643c07:	8b c1                	mov    %ecx,%eax
643c09:	2b c3                	sub    %ebx,%eax
643c0b:	3b c6                	cmp    %esi,%eax
643c0d:	73 0a                	jae    0x643c19
643c0f:	68 58 20 bd 00       	push   $0xbd2058
643c14:	e8 fd 5b de ff       	call   0x429816
643c19:	8d 04 33             	lea    (%ebx,%esi,1),%eax
643c1c:	8b 5f 08             	mov    0x8(%edi),%ebx
643c1f:	89 45 10             	mov    %eax,0x10(%ebp)
643c22:	2b da                	sub    %edx,%ebx
643c24:	c1 fb 02             	sar    $0x2,%ebx
643c27:	8b c3                	mov    %ebx,%eax
643c29:	d1 e8                	shr    $1,%eax
643c2b:	2b c8                	sub    %eax,%ecx
643c2d:	03 c3                	add    %ebx,%eax
643c2f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
643c32:	33 c9                	xor    %ecx,%ecx
643c34:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
643c37:	0f 43 c8             	cmovae %eax,%ecx
643c3a:	8b 45 10             	mov    0x10(%ebp),%eax
643c3d:	3b c8                	cmp    %eax,%ecx
643c3f:	0f 43 c1             	cmovae %ecx,%eax
643c42:	8b cf                	mov    %edi,%ecx
643c44:	50                   	push   %eax
643c45:	89 45 10             	mov    %eax,0x10(%ebp)
643c48:	89 45 e8             	mov    %eax,-0x18(%ebp)
643c4b:	e8 4d c6 dd ff       	call   0x42029d
643c50:	ff 75 0c             	push   0xc(%ebp)
643c53:	8b d8                	mov    %eax,%ebx
643c55:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
643c5c:	8b 45 0c             	mov    0xc(%ebp),%eax
643c5f:	2b 07                	sub    (%edi),%eax
643c61:	c1 f8 02             	sar    $0x2,%eax
643c64:	57                   	push   %edi
643c65:	ff 75 14             	push   0x14(%ebp)
643c68:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
643c6b:	8d 0c 83             	lea    (%ebx,%eax,4),%ecx
643c6e:	89 45 ec             	mov    %eax,-0x14(%ebp)
643c71:	56                   	push   %esi
643c72:	51                   	push   %ecx
643c73:	e8 fe 87 de ff       	call   0x42c476
643c78:	8b 0f                	mov    (%edi),%ecx
643c7a:	83 c4 14             	add    $0x14,%esp
643c7d:	8b 45 0c             	mov    0xc(%ebp),%eax
643c80:	2b c1                	sub    %ecx,%eax
643c82:	50                   	push   %eax
643c83:	51                   	push   %ecx
643c84:	53                   	push   %ebx
643c85:	e8 f8 ae dd ff       	call   0x41eb82
643c8a:	8b 45 0c             	mov    0xc(%ebp),%eax
643c8d:	8b 4f 04             	mov    0x4(%edi),%ecx
643c90:	2b c8                	sub    %eax,%ecx
643c92:	51                   	push   %ecx
643c93:	50                   	push   %eax
643c94:	8b 45 ec             	mov    -0x14(%ebp),%eax
643c97:	03 c6                	add    %esi,%eax
643c99:	8d 04 83             	lea    (%ebx,%eax,4),%eax
643c9c:	50                   	push   %eax
643c9d:	e8 e0 ae dd ff       	call   0x41eb82
643ca2:	8b 0f                	mov    (%edi),%ecx
643ca4:	83 c4 18             	add    $0x18,%esp
643ca7:	8b 47 04             	mov    0x4(%edi),%eax
643caa:	2b c1                	sub    %ecx,%eax
643cac:	c1 f8 02             	sar    $0x2,%eax
643caf:	03 f0                	add    %eax,%esi
643cb1:	85 c9                	test   %ecx,%ecx
643cb3:	74 11                	je     0x643cc6
643cb5:	8b 47 08             	mov    0x8(%edi),%eax
643cb8:	2b c1                	sub    %ecx,%eax
643cba:	c1 f8 02             	sar    $0x2,%eax
643cbd:	50                   	push   %eax
643cbe:	51                   	push   %ecx
643cbf:	8b cf                	mov    %edi,%ecx
643cc1:	e8 8b 83 df ff       	call   0x43c051
643cc6:	8b 45 10             	mov    0x10(%ebp),%eax
643cc9:	8d 04 83             	lea    (%ebx,%eax,4),%eax
643ccc:	89 47 08             	mov    %eax,0x8(%edi)
643ccf:	8d 04 b3             	lea    (%ebx,%esi,4),%eax
643cd2:	89 47 04             	mov    %eax,0x4(%edi)
643cd5:	89 1f                	mov    %ebx,(%edi)
643cd7:	e9 f6 00 00 00       	jmp    0x643dd2
643cdc:	ff 75 e8             	push   -0x18(%ebp)
643cdf:	8b 4d e0             	mov    -0x20(%ebp),%ecx
643ce2:	ff 75 e4             	push   -0x1c(%ebp)
643ce5:	e8 67 83 df ff       	call   0x43c051
643cea:	6a 00                	push   $0x0
643cec:	6a 00                	push   $0x0
643cee:	e8 9c 9c dd ff       	call   0x41d98f
643cf3:	8b cb                	mov    %ebx,%ecx
643cf5:	2b c8                	sub    %eax,%ecx
643cf7:	c1 f9 02             	sar    $0x2,%ecx
643cfa:	3b ce                	cmp    %esi,%ecx
643cfc:	73 7e                	jae    0x643d7c
643cfe:	8b 4d 14             	mov    0x14(%ebp),%ecx
643d01:	2b d8                	sub    %eax,%ebx
643d03:	53                   	push   %ebx
643d04:	50                   	push   %eax
643d05:	8b 09                	mov    (%ecx),%ecx
643d07:	89 4d 14             	mov    %ecx,0x14(%ebp)
643d0a:	8d 0c b5 00 00 00 00 	lea    0x0(,%esi,4),%ecx
643d11:	89 4d 10             	mov    %ecx,0x10(%ebp)
643d14:	03 c8                	add    %eax,%ecx
643d16:	51                   	push   %ecx
643d17:	e8 66 ae dd ff       	call   0x41eb82
643d1c:	8b 47 04             	mov    0x4(%edi),%eax
643d1f:	2b 45 0c             	sub    0xc(%ebp),%eax
643d22:	ff 75 0c             	push   0xc(%ebp)
643d25:	c1 f8 02             	sar    $0x2,%eax
643d28:	2b f0                	sub    %eax,%esi
643d2a:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
643d31:	57                   	push   %edi
643d32:	8d 45 14             	lea    0x14(%ebp),%eax
643d35:	50                   	push   %eax
643d36:	56                   	push   %esi
643d37:	ff 77 04             	push   0x4(%edi)
643d3a:	e8 37 87 de ff       	call   0x42c476
643d3f:	8b 4d 10             	mov    0x10(%ebp),%ecx
643d42:	33 db                	xor    %ebx,%ebx
643d44:	01 4f 04             	add    %ecx,0x4(%edi)
643d47:	83 c4 20             	add    $0x20,%esp
643d4a:	8b 47 04             	mov    0x4(%edi),%eax
643d4d:	33 d2                	xor    %edx,%edx
643d4f:	2b c1                	sub    %ecx,%eax
643d51:	8b 4d 0c             	mov    0xc(%ebp),%ecx
643d54:	8b f0                	mov    %eax,%esi
643d56:	2b f1                	sub    %ecx,%esi
643d58:	83 c6 03             	add    $0x3,%esi
643d5b:	c1 ee 02             	shr    $0x2,%esi
643d5e:	3b c8                	cmp    %eax,%ecx
643d60:	0f 47 f3             	cmova  %ebx,%esi
643d63:	85 f6                	test   %esi,%esi
643d65:	74 6b                	je     0x643dd2
643d67:	8b 45 14             	mov    0x14(%ebp),%eax
643d6a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
643d70:	42                   	inc    %edx
643d71:	89 01                	mov    %eax,(%ecx)
643d73:	8d 49 04             	lea    0x4(%ecx),%ecx
643d76:	3b d6                	cmp    %esi,%edx
643d78:	75 f6                	jne    0x643d70
643d7a:	eb 56                	jmp    0x643dd2
643d7c:	8b 45 14             	mov    0x14(%ebp),%eax
643d7f:	8b 00                	mov    (%eax),%eax
643d81:	89 45 10             	mov    %eax,0x10(%ebp)
643d84:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
643d8b:	8b f3                	mov    %ebx,%esi
643d8d:	89 45 14             	mov    %eax,0x14(%ebp)
643d90:	50                   	push   %eax
643d91:	2b f0                	sub    %eax,%esi
643d93:	56                   	push   %esi
643d94:	53                   	push   %ebx
643d95:	e8 e8 ad dd ff       	call   0x41eb82
643d9a:	8b 45 14             	mov    0x14(%ebp),%eax
643d9d:	03 c3                	add    %ebx,%eax
643d9f:	89 47 04             	mov    %eax,0x4(%edi)
643da2:	8b 45 0c             	mov    0xc(%ebp),%eax
643da5:	2b f0                	sub    %eax,%esi
643da7:	56                   	push   %esi
643da8:	50                   	push   %eax
643da9:	2b de                	sub    %esi,%ebx
643dab:	53                   	push   %ebx
643dac:	e8 d1 ad dd ff       	call   0x41eb82
643db1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
643db4:	83 c4 18             	add    $0x18,%esp
643db7:	8b 55 14             	mov    0x14(%ebp),%edx
643dba:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
643dbd:	3b c8                	cmp    %eax,%ecx
643dbf:	74 11                	je     0x643dd2
643dc1:	8b 75 10             	mov    0x10(%ebp),%esi
643dc4:	89 31                	mov    %esi,(%ecx)
643dc6:	83 c1 04             	add    $0x4,%ecx
643dc9:	8b 45 0c             	mov    0xc(%ebp),%eax
643dcc:	03 c2                	add    %edx,%eax
643dce:	3b c8                	cmp    %eax,%ecx
643dd0:	75 f2                	jne    0x643dc4
643dd2:	8b 07                	mov    (%edi),%eax
643dd4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
643dd7:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
643dda:	8b 45 08             	mov    0x8(%ebp),%eax
643ddd:	89 08                	mov    %ecx,(%eax)
643ddf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
643de2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
643de9:	59                   	pop    %ecx
643dea:	5f                   	pop    %edi
643deb:	5e                   	pop    %esi
643dec:	5b                   	pop    %ebx
643ded:	8b e5                	mov    %ebp,%esp
643def:	5d                   	pop    %ebp
643df0:	c2 10 00             	ret    $0x10
643df3:	cc                   	int3
643df4:	cc                   	int3