409cb2:	0f 45 f0             	cmovne %eax,%esi
409cb5:	8b c1                	mov    %ecx,%eax
409cb7:	c1 e9 04             	shr    $0x4,%ecx
409cba:	83 e0 0f             	and    $0xf,%eax
409cbd:	8a 04 30             	mov    (%eax,%esi,1),%al
409cc0:	88 02                	mov    %al,(%edx)
409cc2:	4a                   	dec    %edx
409cc3:	85 c9                	test   %ecx,%ecx
409cc5:	75 ee                	jne    0x409cb5
409cc7:	e9 b1 00 00 00       	jmp    0x409d7d
409ccc:	8b 45 08             	mov    0x8(%ebp),%eax
409ccf:	c1 ea 03             	shr    $0x3,%edx
409cd2:	f6 c2 01             	test   $0x1,%dl
409cd5:	74 06                	je     0x409cdd
409cd7:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
409cdc:	46                   	inc    %esi
409cdd:	c1 e8 03             	shr    $0x3,%eax
409ce0:	47                   	inc    %edi
409ce1:	85 c0                	test   %eax,%eax
409ce3:	75 f8                	jne    0x409cdd
409ce5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409ce8:	8d 45 fc             	lea    -0x4(%ebp),%eax
409ceb:	56                   	push   %esi
409cec:	50                   	push   %eax
409ced:	8d 45 0c             	lea    0xc(%ebp),%eax
409cf0:	50                   	push   %eax
409cf1:	57                   	push   %edi
409cf2:	e8 b7 e7 ff ff       	call   0x4084ae
409cf7:	8b d0                	mov    %eax,%edx
409cf9:	8b 45 08             	mov    0x8(%ebp),%eax
409cfc:	8a c8                	mov    %al,%cl
409cfe:	c1 e8 03             	shr    $0x3,%eax
409d01:	80 e1 07             	and    $0x7,%cl
409d04:	80 c1 30             	add    $0x30,%cl
409d07:	88 0a                	mov    %cl,(%edx)
409d09:	4a                   	dec    %edx
409d0a:	85 c0                	test   %eax,%eax
409d0c:	75 ee                	jne    0x409cfc
409d0e:	eb 6d                	jmp    0x409d7d
409d10:	ff 75 08             	push   0x8(%ebp)
409d13:	e8 71 5e 01 00       	call   0x41fb89
409d18:	59                   	pop    %ecx
409d19:	89 45 f0             	mov    %eax,-0x10(%ebp)
409d1c:	e8 bc e0 05 00       	call   0x467ddd
409d21:	8b 50 04             	mov    0x4(%eax),%edx
409d24:	8b ca                	mov    %edx,%ecx
409d26:	8d 41 01             	lea    0x1(%ecx),%eax
409d29:	89 45 f4             	mov    %eax,-0xc(%ebp)
409d2c:	8a 01                	mov    (%ecx),%al
409d2e:	41                   	inc    %ecx
409d2f:	84 c0                	test   %al,%al
409d31:	75 f9                	jne    0x409d2c
409d33:	56                   	push   %esi
409d34:	8b 75 f0             	mov    -0x10(%ebp),%esi
409d37:	8d 45 fc             	lea    -0x4(%ebp),%eax
409d3a:	50                   	push   %eax
409d3b:	8d 45 0c             	lea    0xc(%ebp),%eax
409d3e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
409d41:	50                   	push   %eax
409d42:	6a 03                	push   $0x3
409d44:	89 7d ec             	mov    %edi,-0x14(%ebp)
409d47:	8d 46 ff             	lea    -0x1(%esi),%eax
409d4a:	5f                   	pop    %edi
409d4b:	33 d2                	xor    %edx,%edx
409d4d:	2b 4d f4             	sub    -0xc(%ebp),%ecx
409d50:	f7 f7                	div    %edi
409d52:	89 4d e8             	mov    %ecx,-0x18(%ebp)
409d55:	0f af c1             	imul   %ecx,%eax
409d58:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409d5b:	03 c6                	add    %esi,%eax
409d5d:	50                   	push   %eax
409d5e:	e8 4b e7 ff ff       	call   0x4084ae
409d63:	83 ec 0c             	sub    $0xc,%esp
409d66:	8d 75 e4             	lea    -0x1c(%ebp),%esi
409d69:	8b fc                	mov    %esp,%edi
409d6b:	40                   	inc    %eax
409d6c:	6a 00                	push   $0x0
409d6e:	ff 75 08             	push   0x8(%ebp)
409d71:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409d72:	50                   	push   %eax
409d73:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409d74:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409d75:	e8 ca dc ff ff       	call   0x407a44
409d7a:	83 c4 18             	add    $0x18,%esp
409d7d:	5f                   	pop    %edi
409d7e:	5e                   	pop    %esi
409d7f:	c9                   	leave
409d80:	c2 1c 00             	ret    $0x1c
409d83:	6a 10                	push   $0x10
409d85:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409d88:	e8 18 72 01 00       	call   0x420fa5
409d8d:	84 c0                	test   %al,%al
409d8f:	ba 90 63 49 00       	mov    $0x496390,%edx
409d94:	b9 b8 65 49 00       	mov    $0x4965b8,%ecx
409d99:	0f 44 ca             	cmove  %edx,%ecx
409d9c:	51                   	push   %ecx
409d9d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409da0:	e8 47 96 01 00       	call   0x4233ec
409da5:	0f b6 c0             	movzbl %al,%eax
409da8:	50                   	push   %eax
409da9:	e8 60 89 01 00       	call   0x42270e
409dae:	cc                   	int3
409daf:	55                   	push   %ebp
409db0:	8b ec                	mov    %esp,%ebp
409db2:	83 ec 1c             	sub    $0x1c,%esp
409db5:	8b 45 08             	mov    0x8(%ebp),%eax
409db8:	8b 55 1c             	mov    0x1c(%ebp),%edx
409dbb:	56                   	push   %esi
409dbc:	8b 75 0c             	mov    0xc(%ebp),%esi
409dbf:	89 4d f4             	mov    %ecx,-0xc(%ebp)
409dc2:	33 c9                	xor    %ecx,%ecx
409dc4:	89 45 f8             	mov    %eax,-0x8(%ebp)
409dc7:	89 75 f0             	mov    %esi,-0x10(%ebp)
409dca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
409dcd:	57                   	push   %edi
409dce:	8b f9                	mov    %ecx,%edi
409dd0:	3b f1                	cmp    %ecx,%esi
409dd2:	7f 1b                	jg     0x409def
409dd4:	7c 04                	jl     0x409dda
409dd6:	3b c1                	cmp    %ecx,%eax
409dd8:	73 15                	jae    0x409def
409dda:	33 ff                	xor    %edi,%edi
409ddc:	c6 45 fc 2d          	movb   $0x2d,-0x4(%ebp)
409de0:	47                   	inc    %edi
409de1:	f7 d8                	neg    %eax
409de3:	89 45 f8             	mov    %eax,-0x8(%ebp)
409de6:	13 f1                	adc    %ecx,%esi
409de8:	f7 de                	neg    %esi
409dea:	89 75 f0             	mov    %esi,-0x10(%ebp)
409ded:	eb 1c                	jmp    0x409e0b
409def:	f6 c2 01             	test   $0x1,%dl
409df2:	74 17                	je     0x409e0b
409df4:	8b c2                	mov    %edx,%eax
409df6:	d1 e8                	shr    $1,%eax
409df8:	24 01                	and    $0x1,%al
409dfa:	f6 d8                	neg    %al
409dfc:	1a c0                	sbb    %al,%al
409dfe:	33 ff                	xor    %edi,%edi
409e00:	24 0b                	and    $0xb,%al
409e02:	04 20                	add    $0x20,%al
409e04:	47                   	inc    %edi
409e05:	88 45 fc             	mov    %al,-0x4(%ebp)
409e08:	8b 45 08             	mov    0x8(%ebp),%eax
409e0b:	0f be 55 24          	movsbl 0x24(%ebp),%edx
409e0f:	83 fa 64             	cmp    $0x64,%edx
409e12:	0f 8f b5 00 00 00    	jg     0x409ecd
409e18:	74 7f                	je     0x409e99
409e1a:	85 d2                	test   %edx,%edx
409e1c:	74 7b                	je     0x409e99
409e1e:	83 fa 42             	cmp    $0x42,%edx
409e21:	74 12                	je     0x409e35
409e23:	83 fa 58             	cmp    $0x58,%edx
409e26:	0f 84 bc 00 00 00    	je     0x409ee8
409e2c:	83 fa 62             	cmp    $0x62,%edx
409e2f:	0f 85 f8 01 00 00    	jne    0x40a02d
409e35:	89 45 0c             	mov    %eax,0xc(%ebp)
409e38:	8b d6                	mov    %esi,%edx
409e3a:	8b 45 1c             	mov    0x1c(%ebp),%eax
409e3d:	c1 e8 03             	shr    $0x3,%eax
409e40:	a8 01                	test   $0x1,%al
409e42:	74 0f                	je     0x409e53
409e44:	8a 45 24             	mov    0x24(%ebp),%al
409e47:	c6 44 3d fc 30       	movb   $0x30,-0x4(%ebp,%edi,1)
409e4c:	88 44 3d fd          	mov    %al,-0x3(%ebp,%edi,1)
409e50:	83 c7 02             	add    $0x2,%edi
409e53:	8b 75 0c             	mov    0xc(%ebp),%esi
409e56:	0f ac d6 01          	shrd   $0x1,%edx,%esi
409e5a:	41                   	inc    %ecx
409e5b:	d1 ea                	shr    $1,%edx
409e5d:	8b c6                	mov    %esi,%eax
409e5f:	0b c2                	or     %edx,%eax
409e61:	75 f3                	jne    0x409e56
409e63:	57                   	push   %edi
409e64:	8d 45 fc             	lea    -0x4(%ebp),%eax
409e67:	50                   	push   %eax
409e68:	8d 45 10             	lea    0x10(%ebp),%eax
409e6b:	50                   	push   %eax
409e6c:	51                   	push   %ecx
409e6d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409e70:	e8 39 e6 ff ff       	call   0x4084ae
409e75:	8b 75 f0             	mov    -0x10(%ebp),%esi
409e78:	8b f8                	mov    %eax,%edi
409e7a:	8b 55 f8             	mov    -0x8(%ebp),%edx
409e7d:	8a ca                	mov    %dl,%cl
409e7f:	80 e1 01             	and    $0x1,%cl
409e82:	0f ac f2 01          	shrd   $0x1,%esi,%edx
409e86:	80 c1 30             	add    $0x30,%cl
409e89:	88 0f                	mov    %cl,(%edi)
409e8b:	8b c2                	mov    %edx,%eax
409e8d:	d1 ee                	shr    $1,%esi
409e8f:	4f                   	dec    %edi
409e90:	0b c6                	or     %esi,%eax
409e92:	75 e9                	jne    0x409e7d
409e94:	e9 8e 01 00 00       	jmp    0x40a027
409e99:	56                   	push   %esi
409e9a:	50                   	push   %eax
409e9b:	e8 12 5d 01 00       	call   0x41fbb2
409ea0:	59                   	pop    %ecx
409ea1:	59                   	pop    %ecx
409ea2:	57                   	push   %edi
409ea3:	8d 4d fc             	lea    -0x4(%ebp),%ecx
409ea6:	51                   	push   %ecx
409ea7:	8d 4d 10             	lea    0x10(%ebp),%ecx
409eaa:	51                   	push   %ecx
409eab:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409eae:	50                   	push   %eax
409eaf:	e8 fa e5 ff ff       	call   0x4084ae
409eb4:	ff 75 0c             	push   0xc(%ebp)
409eb7:	8b 55 f8             	mov    -0x8(%ebp),%edx
409eba:	40                   	inc    %eax
409ebb:	6a 00                	push   $0x0
409ebd:	56                   	push   %esi
409ebe:	52                   	push   %edx
409ebf:	50                   	push   %eax
409ec0:	e8 13 dc ff ff       	call   0x407ad8
409ec5:	83 c4 14             	add    $0x14,%esp
409ec8:	e9 5a 01 00 00       	jmp    0x40a027
409ecd:	83 ea 6e             	sub    $0x6e,%edx
409ed0:	0f 84 e3 00 00 00    	je     0x409fb9
409ed6:	83 ea 01             	sub    $0x1,%edx
409ed9:	0f 84 80 00 00 00    	je     0x409f5f
409edf:	83 ea 09             	sub    $0x9,%edx
409ee2:	0f 85 45 01 00 00    	jne    0x40a02d
409ee8:	89 45 0c             	mov    %eax,0xc(%ebp)
409eeb:	8b d6                	mov    %esi,%edx
409eed:	8b 45 1c             	mov    0x1c(%ebp),%eax
409ef0:	c1 e8 03             	shr    $0x3,%eax
409ef3:	a8 01                	test   $0x1,%al
409ef5:	74 0f                	je     0x409f06
409ef7:	8a 45 24             	mov    0x24(%ebp),%al
409efa:	c6 44 3d fc 30       	movb   $0x30,-0x4(%ebp,%edi,1)
409eff:	88 44 3d fd          	mov    %al,-0x3(%ebp,%edi,1)
409f03:	83 c7 02             	add    $0x2,%edi
409f06:	8b 75 0c             	mov    0xc(%ebp),%esi
409f09:	0f ac d6 04          	shrd   $0x4,%edx,%esi
409f0d:	41                   	inc    %ecx
409f0e:	c1 ea 04             	shr    $0x4,%edx
409f11:	8b c6                	mov    %esi,%eax
409f13:	0b c2                	or     %edx,%eax
409f15:	75 f2                	jne    0x409f09
409f17:	57                   	push   %edi
409f18:	8d 45 fc             	lea    -0x4(%ebp),%eax
409f1b:	50                   	push   %eax
409f1c:	8d 45 10             	lea    0x10(%ebp),%eax
409f1f:	50                   	push   %eax
409f20:	51                   	push   %ecx
409f21:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409f24:	e8 85 e5 ff ff       	call   0x4084ae
409f29:	80 7d 24 78          	cmpb   $0x78,0x24(%ebp)
409f2d:	8b c8                	mov    %eax,%ecx
409f2f:	8b 75 f0             	mov    -0x10(%ebp),%esi
409f32:	bf 90 65 49 00       	mov    $0x496590,%edi
409f37:	8b 55 f8             	mov    -0x8(%ebp),%edx
409f3a:	b8 a4 65 49 00       	mov    $0x4965a4,%eax
409f3f:	0f 45 f8             	cmovne %eax,%edi
409f42:	8b c2                	mov    %edx,%eax
409f44:	83 e0 0f             	and    $0xf,%eax
409f47:	0f ac f2 04          	shrd   $0x4,%esi,%edx
409f4b:	c1 ee 04             	shr    $0x4,%esi
409f4e:	8a 04 38             	mov    (%eax,%edi,1),%al
409f51:	88 01                	mov    %al,(%ecx)
409f53:	8b c2                	mov    %edx,%eax
409f55:	49                   	dec    %ecx
409f56:	0b c6                	or     %esi,%eax
409f58:	75 e8                	jne    0x409f42
409f5a:	e9 c8 00 00 00       	jmp    0x40a027
409f5f:	89 45 0c             	mov    %eax,0xc(%ebp)
409f62:	8b d6                	mov    %esi,%edx
409f64:	8b 45 1c             	mov    0x1c(%ebp),%eax
409f67:	c1 e8 03             	shr    $0x3,%eax
409f6a:	a8 01                	test   $0x1,%al
409f6c:	74 06                	je     0x409f74
409f6e:	c6 44 3d fc 30       	movb   $0x30,-0x4(%ebp,%edi,1)
409f73:	47                   	inc    %edi
409f74:	8b 75 0c             	mov    0xc(%ebp),%esi
409f77:	0f ac d6 03          	shrd   $0x3,%edx,%esi
409f7b:	41                   	inc    %ecx
409f7c:	c1 ea 03             	shr    $0x3,%edx
409f7f:	8b c6                	mov    %esi,%eax
409f81:	0b c2                	or     %edx,%eax
409f83:	75 f2                	jne    0x409f77
409f85:	57                   	push   %edi
409f86:	8d 45 fc             	lea    -0x4(%ebp),%eax
409f89:	50                   	push   %eax
409f8a:	8d 45 10             	lea    0x10(%ebp),%eax
409f8d:	50                   	push   %eax
409f8e:	51                   	push   %ecx
409f8f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409f92:	e8 17 e5 ff ff       	call   0x4084ae
409f97:	8b 75 f0             	mov    -0x10(%ebp),%esi
409f9a:	8b f8                	mov    %eax,%edi
409f9c:	8b 55 f8             	mov    -0x8(%ebp),%edx
409f9f:	8a ca                	mov    %dl,%cl
409fa1:	80 e1 07             	and    $0x7,%cl
409fa4:	0f ac f2 03          	shrd   $0x3,%esi,%edx
409fa8:	80 c1 30             	add    $0x30,%cl
409fab:	88 0f                	mov    %cl,(%edi)
409fad:	8b c2                	mov    %edx,%eax
409faf:	c1 ee 03             	shr    $0x3,%esi
409fb2:	4f                   	dec    %edi
409fb3:	0b c6                	or     %esi,%eax
409fb5:	75 e8                	jne    0x409f9f
409fb7:	eb 6e                	jmp    0x40a027
409fb9:	56                   	push   %esi
409fba:	50                   	push   %eax
409fbb:	e8 f2 5b 01 00       	call   0x41fbb2
409fc0:	59                   	pop    %ecx
409fc1:	59                   	pop    %ecx
409fc2:	8b f0                	mov    %eax,%esi
409fc4:	e8 14 de 05 00       	call   0x467ddd
409fc9:	8b 50 04             	mov    0x4(%eax),%edx
409fcc:	8b ca                	mov    %edx,%ecx
409fce:	8d 41 01             	lea    0x1(%ecx),%eax
409fd1:	89 45 0c             	mov    %eax,0xc(%ebp)
409fd4:	8a 01                	mov    (%ecx),%al
409fd6:	41                   	inc    %ecx
409fd7:	84 c0                	test   %al,%al
409fd9:	75 f9                	jne    0x409fd4
409fdb:	57                   	push   %edi
409fdc:	8d 45 fc             	lea    -0x4(%ebp),%eax
409fdf:	89 55 e4             	mov    %edx,-0x1c(%ebp)
409fe2:	50                   	push   %eax
409fe3:	8d 45 10             	lea    0x10(%ebp),%eax
409fe6:	2b 4d 0c             	sub    0xc(%ebp),%ecx
409fe9:	50                   	push   %eax
409fea:	6a 03                	push   $0x3
409fec:	5f                   	pop    %edi
409fed:	33 d2                	xor    %edx,%edx
409fef:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
409ff3:	8d 46 ff             	lea    -0x1(%esi),%eax
409ff6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
409ff9:	f7 f7                	div    %edi
409ffb:	0f af c1             	imul   %ecx,%eax
409ffe:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a001:	03 c6                	add    %esi,%eax
40a003:	50                   	push   %eax
40a004:	e8 a5 e4 ff ff       	call   0x4084ae
40a009:	8b 55 f8             	mov    -0x8(%ebp),%edx
40a00c:	8d 75 e4             	lea    -0x1c(%ebp),%esi
40a00f:	83 ec 0c             	sub    $0xc,%esp
40a012:	40                   	inc    %eax
40a013:	8b fc                	mov    %esp,%edi
40a015:	6a 00                	push   $0x0
40a017:	ff 75 f0             	push   -0x10(%ebp)
40a01a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a01b:	52                   	push   %edx
40a01c:	50                   	push   %eax
40a01d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a01e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a01f:	e8 30 db ff ff       	call   0x407b54