767d38:	cc                   	int3
767d39:	cc                   	int3
767d3a:	cc                   	int3
767d3b:	cc                   	int3
767d3c:	cc                   	int3
767d3d:	cc                   	int3
767d3e:	cc                   	int3
767d3f:	cc                   	int3
767d40:	cc                   	int3
767d41:	cc                   	int3
767d42:	cc                   	int3
767d43:	cc                   	int3
767d44:	cc                   	int3
767d45:	cc                   	int3
767d46:	cc                   	int3
767d47:	cc                   	int3
767d48:	cc                   	int3
767d49:	cc                   	int3
767d4a:	cc                   	int3
767d4b:	cc                   	int3
767d4c:	cc                   	int3
767d4d:	cc                   	int3
767d4e:	cc                   	int3
767d4f:	cc                   	int3
767d50:	53                   	push   %ebx
767d51:	8b 5c 24 08          	mov    0x8(%esp),%ebx
767d55:	56                   	push   %esi
767d56:	57                   	push   %edi
767d57:	8b 7c 24 14          	mov    0x14(%esp),%edi
767d5b:	0f b7 c7             	movzwl %di,%eax
767d5e:	0f b7 cb             	movzwl %bx,%ecx
767d61:	0f af c8             	imul   %eax,%ecx
767d64:	33 c0                	xor    %eax,%eax
767d66:	85 c9                	test   %ecx,%ecx
767d68:	0f 94 c0             	sete   %al
767d6b:	8d 70 ff             	lea    -0x1(%eax),%esi
767d6e:	8b c1                	mov    %ecx,%eax
767d70:	0f b7 c9             	movzwl %cx,%ecx
767d73:	c1 e8 10             	shr    $0x10,%eax
767d76:	3b c8                	cmp    %eax,%ecx
767d78:	1b d2                	sbb    %edx,%edx
767d7a:	f7 da                	neg    %edx
767d7c:	66 2b d0             	sub    %ax,%dx
767d7f:	8d 04 11             	lea    (%ecx,%edx,1),%eax
767d82:	b9 01 00 00 00       	mov    $0x1,%ecx
767d87:	2b cb                	sub    %ebx,%ecx
767d89:	66 23 c6             	and    %si,%ax
767d8c:	2b cf                	sub    %edi,%ecx
767d8e:	f7 d6                	not    %esi
767d90:	5f                   	pop    %edi
767d91:	23 ce                	and    %esi,%ecx
767d93:	5e                   	pop    %esi
767d94:	66 0b c1             	or     %cx,%ax
767d97:	5b                   	pop    %ebx
767d98:	c3                   	ret
767d99:	cc                   	int3
767d9a:	cc                   	int3
767d9b:	cc                   	int3
767d9c:	cc                   	int3
767d9d:	cc                   	int3
767d9e:	cc                   	int3
767d9f:	cc                   	int3
767da0:	cc                   	int3
767da1:	cc                   	int3
767da2:	cc                   	int3
767da3:	cc                   	int3
767da4:	cc                   	int3
767da5:	cc                   	int3
767da6:	cc                   	int3
767da7:	cc                   	int3
767da8:	cc                   	int3
767da9:	cc                   	int3
767daa:	cc                   	int3
767dab:	cc                   	int3
767dac:	cc                   	int3
767dad:	cc                   	int3
767dae:	cc                   	int3
767daf:	cc                   	int3
767db0:	8b 44 24 04          	mov    0x4(%esp),%eax
767db4:	66 83 f8 01          	cmp    $0x1,%ax
767db8:	76 68                	jbe    0x767e22
767dba:	0f b7 c8             	movzwl %ax,%ecx
767dbd:	33 d2                	xor    %edx,%edx
767dbf:	b8 01 00 01 00       	mov    $0x10001,%eax
767dc4:	f7 f1                	div    %ecx
767dc6:	53                   	push   %ebx
767dc7:	55                   	push   %ebp
767dc8:	56                   	push   %esi
767dc9:	57                   	push   %edi
767dca:	bf 01 00 00 00       	mov    $0x1,%edi
767dcf:	0f b7 ea             	movzwl %dx,%ebp
767dd2:	0f b7 d8             	movzwl %ax,%ebx
767dd5:	3b ef                	cmp    %edi,%ebp
767dd7:	74 3e                	je     0x767e17
767dd9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
767de0:	33 d2                	xor    %edx,%edx
767de2:	0f b7 f5             	movzwl %bp,%esi
767de5:	8b c1                	mov    %ecx,%eax
767de7:	f7 f6                	div    %esi
767de9:	8b c1                	mov    %ecx,%eax
767deb:	0f b7 ea             	movzwl %dx,%ebp
767dee:	33 d2                	xor    %edx,%edx
767df0:	f7 f6                	div    %esi
767df2:	0f af c3             	imul   %ebx,%eax
767df5:	03 f8                	add    %eax,%edi
767df7:	83 fd 01             	cmp    $0x1,%ebp
767dfa:	74 27                	je     0x767e23
767dfc:	33 d2                	xor    %edx,%edx
767dfe:	8b cd                	mov    %ebp,%ecx
767e00:	8b c6                	mov    %esi,%eax
767e02:	f7 f1                	div    %ecx
767e04:	8b c6                	mov    %esi,%eax
767e06:	0f b7 ea             	movzwl %dx,%ebp
767e09:	33 d2                	xor    %edx,%edx
767e0b:	f7 f1                	div    %ecx
767e0d:	0f af c7             	imul   %edi,%eax
767e10:	03 d8                	add    %eax,%ebx
767e12:	83 fd 01             	cmp    $0x1,%ebp
767e15:	75 c9                	jne    0x767de0
767e17:	5f                   	pop    %edi
767e18:	5e                   	pop    %esi
767e19:	b8 01 00 00 00       	mov    $0x1,%eax
767e1e:	5d                   	pop    %ebp
767e1f:	2b c3                	sub    %ebx,%eax
767e21:	5b                   	pop    %ebx
767e22:	c3                   	ret
767e23:	66 8b c7             	mov    %di,%ax
767e26:	5f                   	pop    %edi
767e27:	5e                   	pop    %esi
767e28:	5d                   	pop    %ebp
767e29:	5b                   	pop    %ebx
767e2a:	c3                   	ret
767e2b:	cc                   	int3
767e2c:	cc                   	int3
767e2d:	cc                   	int3
767e2e:	cc                   	int3
767e2f:	cc                   	int3
767e30:	cc                   	int3
767e31:	cc                   	int3
767e32:	cc                   	int3
767e33:	cc                   	int3
767e34:	cc                   	int3
767e35:	cc                   	int3
767e36:	cc                   	int3
767e37:	cc                   	int3
767e38:	cc                   	int3
767e39:	cc                   	int3
767e3a:	cc                   	int3
767e3b:	cc                   	int3
767e3c:	cc                   	int3
767e3d:	cc                   	int3
767e3e:	cc                   	int3
767e3f:	cc                   	int3
767e40:	cc                   	int3
767e41:	cc                   	int3
767e42:	cc                   	int3
767e43:	cc                   	int3
767e44:	cc                   	int3
767e45:	cc                   	int3
767e46:	cc                   	int3
767e47:	cc                   	int3
767e48:	cc                   	int3
767e49:	cc                   	int3
767e4a:	cc                   	int3
767e4b:	cc                   	int3
767e4c:	cc                   	int3
767e4d:	cc                   	int3
767e4e:	cc                   	int3
767e4f:	cc                   	int3
767e50:	0f b7 4c 24 04       	movzwl 0x4(%esp),%ecx
767e55:	8b c1                	mov    %ecx,%eax
767e57:	c1 e1 08             	shl    $0x8,%ecx
767e5a:	c1 e8 08             	shr    $0x8,%eax
767e5d:	0b c1                	or     %ecx,%eax
767e5f:	c3                   	ret
767e60:	cc                   	int3
767e61:	cc                   	int3
767e62:	cc                   	int3
767e63:	cc                   	int3
767e64:	cc                   	int3
767e65:	cc                   	int3
767e66:	cc                   	int3
767e67:	cc                   	int3
767e68:	cc                   	int3
767e69:	cc                   	int3
767e6a:	cc                   	int3
767e6b:	cc                   	int3
767e6c:	cc                   	int3
767e6d:	cc                   	int3
767e6e:	cc                   	int3
767e6f:	cc                   	int3
767e70:	8b 44 24 08          	mov    0x8(%esp),%eax
767e74:	66 8b 4c 24 04       	mov    0x4(%esp),%cx
767e79:	66 c1 c1 08          	rol    $0x8,%cx
767e7d:	66 89 08             	mov    %cx,(%eax)
767e80:	c3                   	ret
767e81:	cc                   	int3
767e82:	cc                   	int3
767e83:	cc                   	int3
767e84:	cc                   	int3
767e85:	cc                   	int3
767e86:	cc                   	int3
767e87:	cc                   	int3
767e88:	cc                   	int3
767e89:	cc                   	int3
767e8a:	cc                   	int3
767e8b:	cc                   	int3
767e8c:	cc                   	int3
767e8d:	cc                   	int3
767e8e:	cc                   	int3
767e8f:	cc                   	int3
767e90:	55                   	push   %ebp
767e91:	8b ec                	mov    %esp,%ebp
767e93:	6a ff                	push   $0xffffffff
767e95:	68 38 33 b9 00       	push   $0xb93338
767e9a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
767ea0:	50                   	push   %eax
767ea1:	51                   	push   %ecx
767ea2:	56                   	push   %esi
767ea3:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
767ea8:	33 c5                	xor    %ebp,%eax
767eaa:	50                   	push   %eax
767eab:	8d 45 f4             	lea    -0xc(%ebp),%eax
767eae:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
767eb4:	8b f1                	mov    %ecx,%esi
767eb6:	89 75 f0             	mov    %esi,-0x10(%ebp)
767eb9:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
767ebf:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
767ec6:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
767ecd:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
767ed4:	6a 01                	push   $0x1
767ed6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
767edd:	e8 d1 94 cc ff       	call   0x4313b3
767ee2:	83 c4 04             	add    $0x4,%esp
767ee5:	89 46 0c             	mov    %eax,0xc(%esi)
767ee8:	8b ce                	mov    %esi,%ecx
767eea:	6a 10                	push   $0x10
767eec:	e8 a5 db ca ff       	call   0x415a96
767ef1:	8b c6                	mov    %esi,%eax
767ef3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
767ef6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
767efd:	59                   	pop    %ecx
767efe:	5e                   	pop    %esi
767eff:	8b e5                	mov    %ebp,%esp
767f01:	5d                   	pop    %ebp
767f02:	c3                   	ret
767f03:	cc                   	int3
767f04:	cc                   	int3
767f05:	cc                   	int3
767f06:	cc                   	int3
767f07:	cc                   	int3
767f08:	cc                   	int3
767f09:	cc                   	int3
767f0a:	cc                   	int3
767f0b:	cc                   	int3
767f0c:	cc                   	int3
767f0d:	cc                   	int3
767f0e:	cc                   	int3
767f0f:	cc                   	int3
767f10:	cc                   	int3
767f11:	cc                   	int3
767f12:	cc                   	int3
767f13:	cc                   	int3
767f14:	cc                   	int3
767f15:	cc                   	int3
767f16:	cc                   	int3
767f17:	cc                   	int3
767f18:	cc                   	int3
767f19:	cc                   	int3
767f1a:	cc                   	int3
767f1b:	cc                   	int3
767f1c:	cc                   	int3
767f1d:	cc                   	int3
767f1e:	cc                   	int3
767f1f:	cc                   	int3
767f20:	55                   	push   %ebp
767f21:	8b ec                	mov    %esp,%ebp
767f23:	6a ff                	push   $0xffffffff
767f25:	68 66 33 b9 00       	push   $0xb93366
767f2a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
767f30:	50                   	push   %eax
767f31:	56                   	push   %esi
767f32:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
767f37:	33 c5                	xor    %ebp,%eax
767f39:	50                   	push   %eax
767f3a:	8d 45 f4             	lea    -0xc(%ebp),%eax
767f3d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
767f43:	8b f1                	mov    %ecx,%esi
767f45:	8b 4e 0c             	mov    0xc(%esi),%ecx
767f48:	8b 46 08             	mov    0x8(%esi),%eax
767f4b:	03 c0                	add    %eax,%eax
767f4d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
767f54:	50                   	push   %eax
767f55:	8b 11                	mov    (%ecx),%edx
767f57:	ff 36                	push   (%esi)
767f59:	ff 52 04             	call   *0x4(%edx)
767f5c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
767f5f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
767f66:	59                   	pop    %ecx
767f67:	5e                   	pop    %esi
767f68:	8b e5                	mov    %ebp,%esp
767f6a:	5d                   	pop    %ebp
767f6b:	c3                   	ret
767f6c:	cc                   	int3
767f6d:	cc                   	int3
767f6e:	cc                   	int3
767f6f:	cc                   	int3
767f70:	cc                   	int3
767f71:	cc                   	int3
767f72:	cc                   	int3
767f73:	cc                   	int3
767f74:	cc                   	int3
767f75:	cc                   	int3
767f76:	cc                   	int3
767f77:	cc                   	int3
767f78:	cc                   	int3
767f79:	cc                   	int3
767f7a:	cc                   	int3
767f7b:	cc                   	int3
767f7c:	cc                   	int3
767f7d:	cc                   	int3
767f7e:	cc                   	int3
767f7f:	cc                   	int3
767f80:	66 8b 44 24 04       	mov    0x4(%esp),%ax
767f85:	8a d0                	mov    %al,%dl
767f87:	0f b7 c8             	movzwl %ax,%ecx
767f8a:	80 e2 7f             	and    $0x7f,%dl
767f8d:	c1 e9 07             	shr    $0x7,%ecx
767f90:	0f b6 c2             	movzbl %dl,%eax
767f93:	53                   	push   %ebx
767f94:	66 33 04 4d 40 54 c0 	xor    0xc05440(,%ecx,2),%ax
767f9b:	00
767f9c:	0f b7 c8             	movzwl %ax,%ecx
767f9f:	0f b6 c2             	movzbl %dl,%eax
767fa2:	8b 54 24 0c          	mov    0xc(%esp),%edx
767fa6:	66 8b da             	mov    %dx,%bx
767fa9:	66 c1 eb 09          	shr    $0x9,%bx
767fad:	81 e2 ff 01 00 00    	and    $0x1ff,%edx
767fb3:	33 d1                	xor    %ecx,%edx
767fb5:	32 98 c0 53 c0 00    	xor    0xc053c0(%eax),%bl
767fbb:	8a c1                	mov    %cl,%al
767fbd:	24 7f                	and    $0x7f,%al
767fbf:	32 d8                	xor    %al,%bl
767fc1:	0f b6 c3             	movzbl %bl,%eax
767fc4:	66 33 04 55 40 54 c0 	xor    0xc05440(,%edx,2),%ax
767fcb:	00
767fcc:	0f b7 c8             	movzwl %ax,%ecx
767fcf:	0f b6 c3             	movzbl %bl,%eax
767fd2:	5b                   	pop    %ebx
767fd3:	8a 80 c0 53 c0 00    	mov    0xc053c0(%eax),%al