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
416ef6:	66 39 45 88          	cmp    %ax,-0x78(%ebp)
416efa:	0f 95 c0             	setne  %al
416efd:	fe c8                	dec    %al
416eff:	24 0d                	and    $0xd,%al
416f01:	04 20                	add    $0x20,%al
416f03:	88 41 02             	mov    %al,0x2(%ecx)
416f06:	33 c0                	xor    %eax,%eax
416f08:	40                   	inc    %eax
416f09:	88 41 03             	mov    %al,0x3(%ecx)
416f0c:	c6 07 30             	movb   $0x30,(%edi)
416f0f:	e9 04 fe ff ff       	jmp    0x416d18
416f14:	33 db                	xor    %ebx,%ebx
416f16:	53                   	push   %ebx
416f17:	53                   	push   %ebx
416f18:	53                   	push   %ebx
416f19:	53                   	push   %ebx
416f1a:	53                   	push   %ebx
416f1b:	e8 e5 46 ff ff       	call   0x40b605
416f20:	cc                   	int3
416f21:	55                   	push   %ebp
416f22:	8b ec                	mov    %esp,%ebp
416f24:	8b 4d 08             	mov    0x8(%ebp),%ecx
416f27:	33 c0                	xor    %eax,%eax
416f29:	f6 c1 10             	test   $0x10,%cl
416f2c:	74 05                	je     0x416f33
416f2e:	b8 80 00 00 00       	mov    $0x80,%eax
416f33:	53                   	push   %ebx
416f34:	56                   	push   %esi
416f35:	57                   	push   %edi
416f36:	bf 00 02 00 00       	mov    $0x200,%edi
416f3b:	f6 c1 08             	test   $0x8,%cl
416f3e:	74 02                	je     0x416f42
416f40:	0b c7                	or     %edi,%eax
416f42:	f6 c1 04             	test   $0x4,%cl
416f45:	74 05                	je     0x416f4c
416f47:	0d 00 04 00 00       	or     $0x400,%eax
416f4c:	f6 c1 02             	test   $0x2,%cl
416f4f:	74 05                	je     0x416f56
416f51:	0d 00 08 00 00       	or     $0x800,%eax
416f56:	f6 c1 01             	test   $0x1,%cl
416f59:	74 05                	je     0x416f60
416f5b:	0d 00 10 00 00       	or     $0x1000,%eax
416f60:	be 00 01 00 00       	mov    $0x100,%esi
416f65:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
416f6b:	74 02                	je     0x416f6f
416f6d:	0b c6                	or     %esi,%eax
416f6f:	8b d1                	mov    %ecx,%edx
416f71:	bb 00 03 00 00       	mov    $0x300,%ebx
416f76:	23 d3                	and    %ebx,%edx
416f78:	74 1f                	je     0x416f99
416f7a:	3b d6                	cmp    %esi,%edx
416f7c:	74 16                	je     0x416f94
416f7e:	3b d7                	cmp    %edi,%edx
416f80:	74 0b                	je     0x416f8d
416f82:	3b d3                	cmp    %ebx,%edx
416f84:	75 13                	jne    0x416f99
416f86:	0d 00 60 00 00       	or     $0x6000,%eax
416f8b:	eb 0c                	jmp    0x416f99
416f8d:	0d 00 40 00 00       	or     $0x4000,%eax
416f92:	eb 05                	jmp    0x416f99
416f94:	0d 00 20 00 00       	or     $0x2000,%eax
416f99:	ba 00 00 00 03       	mov    $0x3000000,%edx
416f9e:	5f                   	pop    %edi
416f9f:	23 ca                	and    %edx,%ecx
416fa1:	5e                   	pop    %esi
416fa2:	5b                   	pop    %ebx
416fa3:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
416fa9:	74 18                	je     0x416fc3
416fab:	81 f9 00 00 00 02    	cmp    $0x2000000,%ecx
416fb1:	74 0b                	je     0x416fbe
416fb3:	3b ca                	cmp    %edx,%ecx
416fb5:	75 11                	jne    0x416fc8
416fb7:	0d 00 80 00 00       	or     $0x8000,%eax
416fbc:	5d                   	pop    %ebp
416fbd:	c3                   	ret
416fbe:	83 c8 40             	or     $0x40,%eax
416fc1:	5d                   	pop    %ebp
416fc2:	c3                   	ret
416fc3:	0d 40 80 00 00       	or     $0x8040,%eax
416fc8:	5d                   	pop    %ebp
416fc9:	c3                   	ret
416fca:	55                   	push   %ebp
416fcb:	8b ec                	mov    %esp,%ebp
416fcd:	83 ec 0c             	sub    $0xc,%esp
416fd0:	9b d9 7d fc          	fstcw  -0x4(%ebp)
416fd4:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
416fd8:	33 c9                	xor    %ecx,%ecx
416fda:	a8 01                	test   $0x1,%al
416fdc:	74 03                	je     0x416fe1
416fde:	6a 10                	push   $0x10
416fe0:	59                   	pop    %ecx
416fe1:	a8 04                	test   $0x4,%al
416fe3:	74 03                	je     0x416fe8
416fe5:	83 c9 08             	or     $0x8,%ecx
416fe8:	a8 08                	test   $0x8,%al
416fea:	74 03                	je     0x416fef
416fec:	83 c9 04             	or     $0x4,%ecx
416fef:	a8 10                	test   $0x10,%al
416ff1:	74 03                	je     0x416ff6
416ff3:	83 c9 02             	or     $0x2,%ecx
416ff6:	a8 20                	test   $0x20,%al
416ff8:	74 03                	je     0x416ffd
416ffa:	83 c9 01             	or     $0x1,%ecx
416ffd:	a8 02                	test   $0x2,%al
416fff:	74 06                	je     0x417007
417001:	81 c9 00 00 08 00    	or     $0x80000,%ecx
417007:	53                   	push   %ebx
417008:	56                   	push   %esi
417009:	0f b7 f0             	movzwl %ax,%esi
41700c:	8b d6                	mov    %esi,%edx
41700e:	bb 00 0c 00 00       	mov    $0xc00,%ebx
417013:	57                   	push   %edi
417014:	bf 00 02 00 00       	mov    $0x200,%edi
417019:	23 d3                	and    %ebx,%edx
41701b:	74 26                	je     0x417043
41701d:	81 fa 00 04 00 00    	cmp    $0x400,%edx
417023:	74 18                	je     0x41703d
417025:	81 fa 00 08 00 00    	cmp    $0x800,%edx
41702b:	74 0c                	je     0x417039
41702d:	3b d3                	cmp    %ebx,%edx
41702f:	75 12                	jne    0x417043
417031:	81 c9 00 03 00 00    	or     $0x300,%ecx
417037:	eb 0a                	jmp    0x417043
417039:	0b cf                	or     %edi,%ecx
41703b:	eb 06                	jmp    0x417043
41703d:	81 c9 00 01 00 00    	or     $0x100,%ecx
417043:	81 e6 00 03 00 00    	and    $0x300,%esi
417049:	74 0c                	je     0x417057
41704b:	3b f7                	cmp    %edi,%esi
41704d:	75 0e                	jne    0x41705d
41704f:	81 c9 00 00 01 00    	or     $0x10000,%ecx
417055:	eb 06                	jmp    0x41705d
417057:	81 c9 00 00 02 00    	or     $0x20000,%ecx
41705d:	0f b7 c0             	movzwl %ax,%eax
417060:	ba 00 10 00 00       	mov    $0x1000,%edx
417065:	85 c2                	test   %eax,%edx
417067:	74 06                	je     0x41706f
417069:	81 c9 00 00 04 00    	or     $0x40000,%ecx
41706f:	8b 7d 0c             	mov    0xc(%ebp),%edi
417072:	8b 45 08             	mov    0x8(%ebp),%eax
417075:	8b f7                	mov    %edi,%esi
417077:	f7 d6                	not    %esi
417079:	23 f1                	and    %ecx,%esi
41707b:	23 c7                	and    %edi,%eax
41707d:	0b f0                	or     %eax,%esi
41707f:	3b f1                	cmp    %ecx,%esi
417081:	0f 84 a6 00 00 00    	je     0x41712d
417087:	56                   	push   %esi
417088:	e8 3d 02 00 00       	call   0x4172ca
41708d:	0f b7 c0             	movzwl %ax,%eax
417090:	59                   	pop    %ecx
417091:	89 45 f8             	mov    %eax,-0x8(%ebp)
417094:	d9 6d f8             	fldcw  -0x8(%ebp)
417097:	9b d9 7d f8          	fstcw  -0x8(%ebp)
41709b:	8b 45 f8             	mov    -0x8(%ebp),%eax
41709e:	33 f6                	xor    %esi,%esi
4170a0:	a8 01                	test   $0x1,%al
4170a2:	74 03                	je     0x4170a7
4170a4:	6a 10                	push   $0x10
4170a6:	5e                   	pop    %esi
4170a7:	a8 04                	test   $0x4,%al
4170a9:	74 03                	je     0x4170ae
4170ab:	83 ce 08             	or     $0x8,%esi
4170ae:	a8 08                	test   $0x8,%al
4170b0:	74 03                	je     0x4170b5
4170b2:	83 ce 04             	or     $0x4,%esi
4170b5:	a8 10                	test   $0x10,%al
4170b7:	74 03                	je     0x4170bc
4170b9:	83 ce 02             	or     $0x2,%esi
4170bc:	a8 20                	test   $0x20,%al
4170be:	74 03                	je     0x4170c3
4170c0:	83 ce 01             	or     $0x1,%esi
4170c3:	a8 02                	test   $0x2,%al
4170c5:	74 06                	je     0x4170cd
4170c7:	81 ce 00 00 08 00    	or     $0x80000,%esi