416b5b:	7f 93                	jg     0x416af0
416b5d:	8b 7d b4             	mov    -0x4c(%ebp),%edi
416b60:	8b 75 f8             	mov    -0x8(%ebp),%esi
416b63:	81 c7 02 c0 00 00    	add    $0xc002,%edi
416b69:	66 85 ff             	test   %di,%di
416b6c:	0f 8e 9c 00 00 00    	jle    0x416c0e
416b72:	8b 5d f0             	mov    -0x10(%ebp),%ebx
416b75:	89 5d bc             	mov    %ebx,-0x44(%ebp)
416b78:	85 f6                	test   %esi,%esi
416b7a:	78 2c                	js     0x416ba8
416b7c:	8b 45 f4             	mov    -0xc(%ebp),%eax
416b7f:	8b c8                	mov    %eax,%ecx
416b81:	8b d3                	mov    %ebx,%edx
416b83:	03 c0                	add    %eax,%eax
416b85:	c1 ea 1f             	shr    $0x1f,%edx
416b88:	0b c2                	or     %edx,%eax
416b8a:	89 45 f4             	mov    %eax,-0xc(%ebp)
416b8d:	c1 e9 1f             	shr    $0x1f,%ecx
416b90:	03 f6                	add    %esi,%esi
416b92:	b8 ff ff 00 00       	mov    $0xffff,%eax
416b97:	03 db                	add    %ebx,%ebx
416b99:	0b f1                	or     %ecx,%esi
416b9b:	03 f8                	add    %eax,%edi
416b9d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
416ba0:	89 75 f8             	mov    %esi,-0x8(%ebp)
416ba3:	66 85 ff             	test   %di,%di
416ba6:	7f d0                	jg     0x416b78
416ba8:	89 5d bc             	mov    %ebx,-0x44(%ebp)
416bab:	8b 55 bc             	mov    -0x44(%ebp),%edx
416bae:	6a 00                	push   $0x0
416bb0:	5b                   	pop    %ebx
416bb1:	66 85 ff             	test   %di,%di
416bb4:	7e 5b                	jle    0x416c11
416bb6:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
416bba:	b8 00 80 00 00       	mov    $0x8000,%eax
416bbf:	66 3b c8             	cmp    %ax,%cx
416bc2:	77 12                	ja     0x416bd6
416bc4:	81 e2 ff ff 01 00    	and    $0x1ffff,%edx
416bca:	81 fa 00 80 01 00    	cmp    $0x18000,%edx
416bd0:	0f 85 bd 00 00 00    	jne    0x416c93
416bd6:	8b 45 f2             	mov    -0xe(%ebp),%eax
416bd9:	83 f8 ff             	cmp    $0xffffffff,%eax
416bdc:	0f 85 ad 00 00 00    	jne    0x416c8f
416be2:	8b 45 f6             	mov    -0xa(%ebp),%eax
416be5:	89 5d f2             	mov    %ebx,-0xe(%ebp)
416be8:	83 f8 ff             	cmp    $0xffffffff,%eax
416beb:	0f 85 95 00 00 00    	jne    0x416c86
416bf1:	66 8b 45 fa          	mov    -0x6(%ebp),%ax
416bf5:	b9 ff ff 00 00       	mov    $0xffff,%ecx
416bfa:	89 5d f6             	mov    %ebx,-0xa(%ebp)
416bfd:	66 3b c1             	cmp    %cx,%ax
416c00:	75 7c                	jne    0x416c7e
416c02:	b8 00 80 00 00       	mov    $0x8000,%eax
416c07:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
416c0b:	47                   	inc    %edi
416c0c:	eb 7c                	jmp    0x416c8a
416c0e:	8b 55 f0             	mov    -0x10(%ebp),%edx
416c11:	b8 ff ff 00 00       	mov    $0xffff,%eax
416c16:	03 f8                	add    %eax,%edi
416c18:	66 85 ff             	test   %di,%di
416c1b:	79 99                	jns    0x416bb6
416c1d:	8b c7                	mov    %edi,%eax
416c1f:	f7 d8                	neg    %eax
416c21:	0f b7 c0             	movzwl %ax,%eax
416c24:	03 f8                	add    %eax,%edi
416c26:	89 7d b4             	mov    %edi,-0x4c(%ebp)
416c29:	8b 7d 84             	mov    -0x7c(%ebp),%edi
416c2c:	89 45 a4             	mov    %eax,-0x5c(%ebp)
416c2f:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
416c33:	74 01                	je     0x416c36
416c35:	47                   	inc    %edi
416c36:	8b 5d f4             	mov    -0xc(%ebp),%ebx
416c39:	8b cb                	mov    %ebx,%ecx
416c3b:	8b c6                	mov    %esi,%eax
416c3d:	c1 e0 1f             	shl    $0x1f,%eax
416c40:	c1 e1 1f             	shl    $0x1f,%ecx
416c43:	d1 eb                	shr    $1,%ebx
416c45:	d1 ea                	shr    $1,%edx
416c47:	0b d8                	or     %eax,%ebx
416c49:	0b d1                	or     %ecx,%edx
416c4b:	d1 ee                	shr    $1,%esi
416c4d:	ff 4d a4             	decl   -0x5c(%ebp)
416c50:	89 5d f4             	mov    %ebx,-0xc(%ebp)
416c53:	89 55 f0             	mov    %edx,-0x10(%ebp)
416c56:	75 d7                	jne    0x416c2f
416c58:	6a 00                	push   $0x0
416c5a:	85 ff                	test   %edi,%edi
416c5c:	8b 7d b4             	mov    -0x4c(%ebp),%edi
416c5f:	89 75 f8             	mov    %esi,-0x8(%ebp)
416c62:	5b                   	pop    %ebx
416c63:	0f 84 4d ff ff ff    	je     0x416bb6
416c69:	33 c0                	xor    %eax,%eax
416c6b:	66 8b ca             	mov    %dx,%cx
416c6e:	40                   	inc    %eax
416c6f:	66 0b c8             	or     %ax,%cx
416c72:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
416c76:	8b 55 f0             	mov    -0x10(%ebp),%edx
416c79:	e9 3c ff ff ff       	jmp    0x416bba
416c7e:	66 40                	inc    %ax
416c80:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
416c84:	eb 04                	jmp    0x416c8a
416c86:	40                   	inc    %eax
416c87:	89 45 f6             	mov    %eax,-0xa(%ebp)
416c8a:	8b 75 f8             	mov    -0x8(%ebp),%esi
416c8d:	eb 04                	jmp    0x416c93
416c8f:	40                   	inc    %eax
416c90:	89 45 f2             	mov    %eax,-0xe(%ebp)
416c93:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
416c98:	66 3b f8             	cmp    %ax,%di
416c9b:	73 20                	jae    0x416cbd
416c9d:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
416ca1:	0b 7d ac             	or     -0x54(%ebp),%edi
416ca4:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
416ca8:	8b 45 f4             	mov    -0xc(%ebp),%eax
416cab:	89 45 e2             	mov    %eax,-0x1e(%ebp)
416cae:	89 75 e6             	mov    %esi,-0x1a(%ebp)
416cb1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
416cb4:	8b 75 e0             	mov    -0x20(%ebp),%esi
416cb7:	66 89 7d ea          	mov    %di,-0x16(%ebp)
416cbb:	eb 1b                	jmp    0x416cd8
416cbd:	33 c0                	xor    %eax,%eax
416cbf:	66 39 45 ac          	cmp    %ax,-0x54(%ebp)
416cc3:	0f 94 c0             	sete   %al
416cc6:	48                   	dec    %eax
416cc7:	25 00 00 00 80       	and    $0x80000000,%eax
416ccc:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
416cd1:	89 45 e8             	mov    %eax,-0x18(%ebp)
416cd4:	8b f3                	mov    %ebx,%esi
416cd6:	8b d3                	mov    %ebx,%edx
416cd8:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
416cdc:	8b 4d 90             	mov    -0x70(%ebp),%ecx
416cdf:	8b 45 b8             	mov    -0x48(%ebp),%eax
416ce2:	8b 7d 14             	mov    0x14(%ebp),%edi
416ce5:	66 89 01             	mov    %ax,(%ecx)
416ce8:	74 36                	je     0x416d20
416cea:	98                   	cwtl
416ceb:	03 f8                	add    %eax,%edi
416ced:	89 7d b8             	mov    %edi,-0x48(%ebp)
416cf0:	85 ff                	test   %edi,%edi
416cf2:	7f 2f                	jg     0x416d23
416cf4:	33 c0                	xor    %eax,%eax
416cf6:	66 89 01             	mov    %ax,(%ecx)
416cf9:	b8 00 80 00 00       	mov    $0x8000,%eax
416cfe:	66 39 45 88          	cmp    %ax,-0x78(%ebp)
416d02:	0f 95 c0             	setne  %al
416d05:	fe c8                	dec    %al
416d07:	24 0d                	and    $0xd,%al
416d09:	04 20                	add    $0x20,%al
416d0b:	88 41 02             	mov    %al,0x2(%ecx)
416d0e:	33 c0                	xor    %eax,%eax
416d10:	40                   	inc    %eax
416d11:	88 41 03             	mov    %al,0x3(%ecx)
416d14:	c6 41 04 30          	movb   $0x30,0x4(%ecx)
416d18:	88 59 05             	mov    %bl,0x5(%ecx)
416d1b:	e9 ac 01 00 00       	jmp    0x416ecc
416d20:	89 7d b8             	mov    %edi,-0x48(%ebp)
416d23:	6a 15                	push   $0x15
416d25:	58                   	pop    %eax
416d26:	3b f8                	cmp    %eax,%edi
416d28:	7e 03                	jle    0x416d2d
416d2a:	89 45 b8             	mov    %eax,-0x48(%ebp)
416d2d:	8b 7d e8             	mov    -0x18(%ebp),%edi
416d30:	c1 ef 10             	shr    $0x10,%edi
416d33:	81 ef fe 3f 00 00    	sub    $0x3ffe,%edi
416d39:	33 c0                	xor    %eax,%eax
416d3b:	6a 08                	push   $0x8
416d3d:	89 7d 98             	mov    %edi,-0x68(%ebp)
416d40:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
416d44:	8b 5d e8             	mov    -0x18(%ebp),%ebx
416d47:	5f                   	pop    %edi
416d48:	8b ca                	mov    %edx,%ecx
416d4a:	8b c6                	mov    %esi,%eax
416d4c:	c1 e8 1f             	shr    $0x1f,%eax
416d4f:	c1 e9 1f             	shr    $0x1f,%ecx
416d52:	03 d2                	add    %edx,%edx
416d54:	03 db                	add    %ebx,%ebx
416d56:	03 f6                	add    %esi,%esi
416d58:	0b d9                	or     %ecx,%ebx
416d5a:	0b d0                	or     %eax,%edx
416d5c:	89 75 e0             	mov    %esi,-0x20(%ebp)
416d5f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
416d62:	4f                   	dec    %edi
416d63:	75 e3                	jne    0x416d48
416d65:	8b 7d 98             	mov    -0x68(%ebp),%edi
416d68:	6a 00                	push   $0x0
416d6a:	89 5d bc             	mov    %ebx,-0x44(%ebp)
416d6d:	89 55 e4             	mov    %edx,-0x1c(%ebp)
416d70:	89 75 c0             	mov    %esi,-0x40(%ebp)
416d73:	5b                   	pop    %ebx
416d74:	85 ff                	test   %edi,%edi
416d76:	79 37                	jns    0x416daf
416d78:	f7 df                	neg    %edi
416d7a:	81 e7 ff 00 00 00    	and    $0xff,%edi
416d80:	7e 2d                	jle    0x416daf
416d82:	8b 5d bc             	mov    -0x44(%ebp),%ebx
416d85:	8b ca                	mov    %edx,%ecx
416d87:	8b c3                	mov    %ebx,%eax
416d89:	c1 e0 1f             	shl    $0x1f,%eax
416d8c:	c1 e1 1f             	shl    $0x1f,%ecx
416d8f:	d1 ea                	shr    $1,%edx
416d91:	d1 ee                	shr    $1,%esi
416d93:	d1 eb                	shr    $1,%ebx
416d95:	0b f1                	or     %ecx,%esi
416d97:	0b d0                	or     %eax,%edx
416d99:	4f                   	dec    %edi
416d9a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
416d9d:	89 75 e0             	mov    %esi,-0x20(%ebp)
416da0:	85 ff                	test   %edi,%edi
416da2:	7f e1                	jg     0x416d85
416da4:	89 5d bc             	mov    %ebx,-0x44(%ebp)
416da7:	89 55 e4             	mov    %edx,-0x1c(%ebp)
416daa:	89 75 c0             	mov    %esi,-0x40(%ebp)
416dad:	33 db                	xor    %ebx,%ebx
416daf:	8b 75 90             	mov    -0x70(%ebp),%esi
416db2:	8b 45 b8             	mov    -0x48(%ebp),%eax
416db5:	8d 7e 04             	lea    0x4(%esi),%edi
416db8:	40                   	inc    %eax
416db9:	8b cf                	mov    %edi,%ecx
416dbb:	89 7d 98             	mov    %edi,-0x68(%ebp)
416dbe:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
416dc1:	89 45 a8             	mov    %eax,-0x58(%ebp)
416dc4:	85 c0                	test   %eax,%eax
416dc6:	0f 8e c8 00 00 00    	jle    0x416e94
416dcc:	8d 75 e0             	lea    -0x20(%ebp),%esi
416dcf:	8d 7d c4             	lea    -0x3c(%ebp),%edi
416dd2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416dd3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416dd4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416dd5:	8b 7d c0             	mov    -0x40(%ebp),%edi
416dd8:	8b ca                	mov    %edx,%ecx
416dda:	8b c7                	mov    %edi,%eax
416ddc:	c1 e8 1f             	shr    $0x1f,%eax
416ddf:	03 d2                	add    %edx,%edx
416de1:	0b d0                	or     %eax,%edx
416de3:	8b 45 bc             	mov    -0x44(%ebp),%eax
416de6:	c1 e9 1f             	shr    $0x1f,%ecx
416de9:	8d 34 00             	lea    (%eax,%eax,1),%esi
416dec:	0b f1                	or     %ecx,%esi
416dee:	03 ff                	add    %edi,%edi
416df0:	8b c7                	mov    %edi,%eax
416df2:	8b ca                	mov    %edx,%ecx
416df4:	c1 e8 1f             	shr    $0x1f,%eax
416df7:	03 d2                	add    %edx,%edx
416df9:	c1 e9 1f             	shr    $0x1f,%ecx
416dfc:	0b d0                	or     %eax,%edx
416dfe:	8b 45 c4             	mov    -0x3c(%ebp),%eax
416e01:	03 ff                	add    %edi,%edi
416e03:	03 f6                	add    %esi,%esi
416e05:	0b f1                	or     %ecx,%esi
416e07:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
416e0a:	89 4d b8             	mov    %ecx,-0x48(%ebp)
416e0d:	3b cf                	cmp    %edi,%ecx
416e0f:	72 04                	jb     0x416e15
416e11:	3b c8                	cmp    %eax,%ecx
416e13:	73 1b                	jae    0x416e30
416e15:	8d 42 01             	lea    0x1(%edx),%eax
416e18:	8b cb                	mov    %ebx,%ecx
416e1a:	3b c2                	cmp    %edx,%eax
416e1c:	72 05                	jb     0x416e23
416e1e:	83 f8 01             	cmp    $0x1,%eax
416e21:	73 03                	jae    0x416e26
416e23:	33 c9                	xor    %ecx,%ecx
416e25:	41                   	inc    %ecx
416e26:	85 c9                	test   %ecx,%ecx
416e28:	8b 4d b8             	mov    -0x48(%ebp),%ecx
416e2b:	8b d0                	mov    %eax,%edx
416e2d:	74 01                	je     0x416e30
416e2f:	46                   	inc    %esi
416e30:	8b 45 c8             	mov    -0x38(%ebp),%eax
416e33:	8d 3c 10             	lea    (%eax,%edx,1),%edi
416e36:	3b fa                	cmp    %edx,%edi
416e38:	72 04                	jb     0x416e3e
416e3a:	3b f8                	cmp    %eax,%edi
416e3c:	73 01                	jae    0x416e3f
416e3e:	46                   	inc    %esi
416e3f:	8b 55 b8             	mov    -0x48(%ebp),%edx
416e42:	03 75 cc             	add    -0x34(%ebp),%esi
416e45:	03 d2                	add    %edx,%edx
416e47:	8b c1                	mov    %ecx,%eax
416e49:	c1 e8 1f             	shr    $0x1f,%eax
416e4c:	89 55 c0             	mov    %edx,-0x40(%ebp)
416e4f:	89 55 e0             	mov    %edx,-0x20(%ebp)
416e52:	8d 14 3f             	lea    (%edi,%edi,1),%edx
416e55:	0b d0                	or     %eax,%edx
416e57:	8b cf                	mov    %edi,%ecx
416e59:	c1 e9 1f             	shr    $0x1f,%ecx
416e5c:	8d 04 36             	lea    (%esi,%esi,1),%eax
416e5f:	0b c1                	or     %ecx,%eax
416e61:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
416e64:	89 45 e8             	mov    %eax,-0x18(%ebp)
416e67:	c1 e8 18             	shr    $0x18,%eax
416e6a:	04 30                	add    $0x30,%al
416e6c:	88 01                	mov    %al,(%ecx)
416e6e:	8b 45 a8             	mov    -0x58(%ebp),%eax
416e71:	41                   	inc    %ecx
416e72:	48                   	dec    %eax
416e73:	89 55 e4             	mov    %edx,-0x1c(%ebp)
416e76:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
416e79:	88 5d eb             	mov    %bl,-0x15(%ebp)
416e7c:	89 45 a8             	mov    %eax,-0x58(%ebp)
416e7f:	85 c0                	test   %eax,%eax
416e81:	7e 0b                	jle    0x416e8e
416e83:	8b 45 e8             	mov    -0x18(%ebp),%eax
416e86:	89 45 bc             	mov    %eax,-0x44(%ebp)
416e89:	e9 3e ff ff ff       	jmp    0x416dcc
416e8e:	8b 75 90             	mov    -0x70(%ebp),%esi
416e91:	8b 7d 98             	mov    -0x68(%ebp),%edi
416e94:	8a 41 ff             	mov    -0x1(%ecx),%al
416e97:	83 e9 02             	sub    $0x2,%ecx
416e9a:	3c 35                	cmp    $0x35,%al
416e9c:	7c 43                	jl     0x416ee1
416e9e:	eb 09                	jmp    0x416ea9
416ea0:	80 39 39             	cmpb   $0x39,(%ecx)
416ea3:	75 08                	jne    0x416ead
416ea5:	c6 01 30             	movb   $0x30,(%ecx)
416ea8:	49                   	dec    %ecx
416ea9:	3b cf                	cmp    %edi,%ecx
416eab:	73 f3                	jae    0x416ea0
416ead:	3b cf                	cmp    %edi,%ecx
416eaf:	73 04                	jae    0x416eb5
416eb1:	41                   	inc    %ecx
416eb2:	66 ff 06             	incw   (%esi)
416eb5:	fe 01                	incb   (%ecx)
416eb7:	8b 45 90             	mov    -0x70(%ebp),%eax
416eba:	2a c8                	sub    %al,%cl
416ebc:	80 e9 03             	sub    $0x3,%cl
416ebf:	88 48 03             	mov    %cl,0x3(%eax)
416ec2:	0f be c9             	movsbl %cl,%ecx
416ec5:	88 5c 01 04          	mov    %bl,0x4(%ecx,%eax,1)
416ec9:	33 c0                	xor    %eax,%eax
416ecb:	40                   	inc    %eax
416ecc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416ecf:	5f                   	pop    %edi
416ed0:	5e                   	pop    %esi
416ed1:	33 cd                	xor    %ebp,%ecx
416ed3:	5b                   	pop    %ebx
416ed4:	e8 60 d8 fe ff       	call   0x404739
416ed9:	c9                   	leave
416eda:	c3                   	ret
416edb:	80 39 30             	cmpb   $0x30,(%ecx)
416ede:	75 05                	jne    0x416ee5
416ee0:	49                   	dec    %ecx
416ee1:	3b cf                	cmp    %edi,%ecx
416ee3:	73 f6                	jae    0x416edb
416ee5:	3b cf                	cmp    %edi,%ecx
416ee7:	73 ce                	jae    0x416eb7
416ee9:	8b 4d 90             	mov    -0x70(%ebp),%ecx
416eec:	33 c0                	xor    %eax,%eax
416eee:	66 89 01             	mov    %ax,(%ecx)
416ef1:	b8 00 80 00 00       	mov    $0x8000,%eax