477d85:	83 3a 2d             	cmpl   $0x2d,(%edx)
477d88:	0f 94 c0             	sete   %al
477d8b:	03 c1                	add    %ecx,%eax
477d8d:	66 c7 04 18 30 00    	movw   $0x30,(%eax,%ebx,1)
477d93:	83 3a 2d             	cmpl   $0x2d,(%edx)
477d96:	8b f3                	mov    %ebx,%esi
477d98:	75 06                	jne    0x477da0
477d9a:	c6 03 2d             	movb   $0x2d,(%ebx)
477d9d:	8d 73 01             	lea    0x1(%ebx),%esi
477da0:	8b 42 04             	mov    0x4(%edx),%eax
477da3:	85 c0                	test   %eax,%eax
477da5:	7f 15                	jg     0x477dbc
477da7:	6a 01                	push   $0x1
477da9:	56                   	push   %esi
477daa:	ff 75 0c             	push   0xc(%ebp)
477dad:	53                   	push   %ebx
477dae:	e8 3a 02 00 00       	call   0x477fed
477db3:	83 c4 10             	add    $0x10,%esp
477db6:	c6 06 30             	movb   $0x30,(%esi)
477db9:	46                   	inc    %esi
477dba:	eb 02                	jmp    0x477dbe
477dbc:	03 f0                	add    %eax,%esi
477dbe:	85 ff                	test   %edi,%edi
477dc0:	7e 52                	jle    0x477e14
477dc2:	6a 01                	push   $0x1
477dc4:	56                   	push   %esi
477dc5:	ff 75 0c             	push   0xc(%ebp)
477dc8:	53                   	push   %ebx
477dc9:	e8 1f 02 00 00       	call   0x477fed
477dce:	8b 45 f4             	mov    -0xc(%ebp),%eax
477dd1:	83 c4 10             	add    $0x10,%esp
477dd4:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
477dda:	8b 00                	mov    (%eax),%eax
477ddc:	8a 00                	mov    (%eax),%al
477dde:	88 06                	mov    %al,(%esi)
477de0:	46                   	inc    %esi
477de1:	8b 45 14             	mov    0x14(%ebp),%eax
477de4:	8b 48 04             	mov    0x4(%eax),%ecx
477de7:	85 c9                	test   %ecx,%ecx
477de9:	79 29                	jns    0x477e14
477deb:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
477def:	75 08                	jne    0x477df9
477df1:	8b c1                	mov    %ecx,%eax
477df3:	f7 d8                	neg    %eax
477df5:	3b c7                	cmp    %edi,%eax
477df7:	7d 04                	jge    0x477dfd
477df9:	8b f9                	mov    %ecx,%edi
477dfb:	f7 df                	neg    %edi
477dfd:	57                   	push   %edi
477dfe:	56                   	push   %esi
477dff:	ff 75 0c             	push   0xc(%ebp)
477e02:	53                   	push   %ebx
477e03:	e8 e5 01 00 00       	call   0x477fed
477e08:	57                   	push   %edi
477e09:	6a 30                	push   $0x30
477e0b:	56                   	push   %esi
477e0c:	e8 4f c0 fc ff       	call   0x443e60
477e11:	83 c4 1c             	add    $0x1c,%esp
477e14:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
477e18:	5f                   	pop    %edi
477e19:	5e                   	pop    %esi
477e1a:	5b                   	pop    %ebx
477e1b:	74 0a                	je     0x477e27
477e1d:	8b 45 f0             	mov    -0x10(%ebp),%eax
477e20:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
477e27:	33 c0                	xor    %eax,%eax
477e29:	8b e5                	mov    %ebp,%esp
477e2b:	5d                   	pop    %ebp
477e2c:	c3                   	ret
477e2d:	8b ff                	mov    %edi,%edi
477e2f:	55                   	push   %ebp
477e30:	8b ec                	mov    %esp,%ebp
477e32:	83 ec 10             	sub    $0x10,%esp
477e35:	53                   	push   %ebx
477e36:	56                   	push   %esi
477e37:	57                   	push   %edi
477e38:	ff 75 18             	push   0x18(%ebp)
477e3b:	33 c0                	xor    %eax,%eax
477e3d:	8d 7d f0             	lea    -0x10(%ebp),%edi
477e40:	ff 75 14             	push   0x14(%ebp)
477e43:	ab                   	stos   %eax,%es:(%edi)
477e44:	ab                   	stos   %eax,%es:(%edi)
477e45:	ab                   	stos   %eax,%es:(%edi)
477e46:	8d 45 f0             	lea    -0x10(%ebp),%eax
477e49:	8b 7d 1c             	mov    0x1c(%ebp),%edi
477e4c:	50                   	push   %eax
477e4d:	8b 45 08             	mov    0x8(%ebp),%eax
477e50:	57                   	push   %edi
477e51:	ff 70 04             	push   0x4(%eax)
477e54:	ff 30                	push   (%eax)
477e56:	e8 91 d8 00 00       	call   0x4856ec
477e5b:	8b 45 f4             	mov    -0xc(%ebp),%eax
477e5e:	33 c9                	xor    %ecx,%ecx
477e60:	8b 5d 0c             	mov    0xc(%ebp),%ebx
477e63:	83 c4 18             	add    $0x18,%esp
477e66:	83 7d f0 2d          	cmpl   $0x2d,-0x10(%ebp)
477e6a:	0f 94 c1             	sete   %cl
477e6d:	48                   	dec    %eax
477e6e:	89 45 fc             	mov    %eax,-0x4(%ebp)
477e71:	83 c8 ff             	or     $0xffffffff,%eax
477e74:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
477e77:	39 45 10             	cmp    %eax,0x10(%ebp)
477e7a:	74 05                	je     0x477e81
477e7c:	8b 45 10             	mov    0x10(%ebp),%eax
477e7f:	2b c1                	sub    %ecx,%eax
477e81:	8d 4d f0             	lea    -0x10(%ebp),%ecx
477e84:	51                   	push   %ecx
477e85:	57                   	push   %edi
477e86:	50                   	push   %eax
477e87:	56                   	push   %esi
477e88:	e8 d4 c3 00 00       	call   0x484261
477e8d:	83 c4 10             	add    $0x10,%esp
477e90:	85 c0                	test   %eax,%eax
477e92:	74 05                	je     0x477e99
477e94:	c6 03 00             	movb   $0x0,(%ebx)
477e97:	eb 55                	jmp    0x477eee
477e99:	8b 45 f4             	mov    -0xc(%ebp),%eax
477e9c:	48                   	dec    %eax
477e9d:	39 45 fc             	cmp    %eax,-0x4(%ebp)
477ea0:	0f 9c c1             	setl   %cl
477ea3:	83 f8 fc             	cmp    $0xfffffffc,%eax
477ea6:	7c 2a                	jl     0x477ed2
477ea8:	3b c7                	cmp    %edi,%eax
477eaa:	7d 26                	jge    0x477ed2
477eac:	84 c9                	test   %cl,%cl
477eae:	74 0a                	je     0x477eba
477eb0:	8a 06                	mov    (%esi),%al
477eb2:	46                   	inc    %esi
477eb3:	84 c0                	test   %al,%al
477eb5:	75 f9                	jne    0x477eb0
477eb7:	88 46 fe             	mov    %al,-0x2(%esi)
477eba:	ff 75 28             	push   0x28(%ebp)
477ebd:	8d 45 f0             	lea    -0x10(%ebp),%eax
477ec0:	6a 01                	push   $0x1
477ec2:	50                   	push   %eax
477ec3:	57                   	push   %edi
477ec4:	ff 75 10             	push   0x10(%ebp)
477ec7:	53                   	push   %ebx
477ec8:	e8 89 fe ff ff       	call   0x477d56
477ecd:	83 c4 18             	add    $0x18,%esp
477ed0:	eb 1c                	jmp    0x477eee
477ed2:	ff 75 28             	push   0x28(%ebp)
477ed5:	8d 45 f0             	lea    -0x10(%ebp),%eax
477ed8:	6a 01                	push   $0x1
477eda:	50                   	push   %eax
477edb:	ff 75 24             	push   0x24(%ebp)
477ede:	ff 75 20             	push   0x20(%ebp)
477ee1:	57                   	push   %edi
477ee2:	ff 75 10             	push   0x10(%ebp)
477ee5:	53                   	push   %ebx
477ee6:	e8 93 fc ff ff       	call   0x477b7e
477eeb:	83 c4 20             	add    $0x20,%esp
477eee:	5f                   	pop    %edi
477eef:	5e                   	pop    %esi
477ef0:	5b                   	pop    %ebx
477ef1:	8b e5                	mov    %ebp,%esp
477ef3:	5d                   	pop    %ebp
477ef4:	c3                   	ret
477ef5:	8b ff                	mov    %edi,%edi
477ef7:	55                   	push   %ebp
477ef8:	8b ec                	mov    %esp,%ebp
477efa:	83 ec 48             	sub    $0x48,%esp
477efd:	a1 94 80 4b 00       	mov    0x4b8094,%eax
477f02:	33 c5                	xor    %ebp,%eax
477f04:	89 45 fc             	mov    %eax,-0x4(%ebp)
477f07:	8b 55 14             	mov    0x14(%ebp),%edx
477f0a:	8b 4d 10             	mov    0x10(%ebp),%ecx
477f0d:	53                   	push   %ebx
477f0e:	8a 5d 0c             	mov    0xc(%ebp),%bl
477f11:	0f b6 c3             	movzbl %bl,%eax
477f14:	83 c0 04             	add    $0x4,%eax
477f17:	3b d0                	cmp    %eax,%edx
477f19:	73 15                	jae    0x477f30
477f1b:	6a 0c                	push   $0xc
477f1d:	c6 01 00             	movb   $0x0,(%ecx)
477f20:	58                   	pop    %eax
477f21:	8b 4d fc             	mov    -0x4(%ebp),%ecx
477f24:	33 cd                	xor    %ebp,%ecx
477f26:	5b                   	pop    %ebx
477f27:	e8 d6 7a fc ff       	call   0x43fa02
477f2c:	8b e5                	mov    %ebp,%esp
477f2e:	5d                   	pop    %ebp
477f2f:	c3                   	ret
477f30:	84 db                	test   %bl,%bl
477f32:	74 08                	je     0x477f3c
477f34:	c6 01 2d             	movb   $0x2d,(%ecx)
477f37:	41                   	inc    %ecx
477f38:	4a                   	dec    %edx
477f39:	c6 01 00             	movb   $0x0,(%ecx)
477f3c:	b8 00 ea 49 00       	mov    $0x49ea00,%eax
477f41:	c7 45 dc 10 ea 49 00 	movl   $0x49ea10,-0x24(%ebp)
477f48:	89 45 bc             	mov    %eax,-0x44(%ebp)
477f4b:	33 db                	xor    %ebx,%ebx
477f4d:	38 5d 18             	cmp    %bl,0x18(%ebp)
477f50:	89 45 c0             	mov    %eax,-0x40(%ebp)
477f53:	b8 04 ea 49 00       	mov    $0x49ea04,%eax
477f58:	89 45 c4             	mov    %eax,-0x3c(%ebp)
477f5b:	0f 95 c3             	setne  %bl
477f5e:	89 45 c8             	mov    %eax,-0x38(%ebp)
477f61:	4b                   	dec    %ebx
477f62:	b8 0c ea 49 00       	mov    $0x49ea0c,%eax
477f67:	c7 45 e4 1c ea 49 00 	movl   $0x49ea1c,-0x1c(%ebp)
477f6e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
477f71:	83 e3 02             	and    $0x2,%ebx
477f74:	89 45 d8             	mov    %eax,-0x28(%ebp)
477f77:	89 45 e8             	mov    %eax,-0x18(%ebp)
477f7a:	89 45 f8             	mov    %eax,-0x8(%ebp)
477f7d:	8b 45 08             	mov    0x8(%ebp),%eax
477f80:	56                   	push   %esi
477f81:	be 08 ea 49 00       	mov    $0x49ea08,%esi
477f86:	c7 45 ec 28 ea 49 00 	movl   $0x49ea28,-0x14(%ebp)
477f8d:	57                   	push   %edi
477f8e:	8d 3c 85 fc ff ff ff 	lea    -0x4(,%eax,4),%edi
477f95:	89 75 cc             	mov    %esi,-0x34(%ebp)
477f98:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
477f9b:	89 75 d0             	mov    %esi,-0x30(%ebp)
477f9e:	89 75 e0             	mov    %esi,-0x20(%ebp)
477fa1:	89 75 f0             	mov    %esi,-0x10(%ebp)
477fa4:	c7 45 f4 34 ea 49 00 	movl   $0x49ea34,-0xc(%ebp)
477fab:	8b 74 85 bc          	mov    -0x44(%ebp,%eax,4),%esi
477faf:	8d 46 01             	lea    0x1(%esi),%eax
477fb2:	89 45 b8             	mov    %eax,-0x48(%ebp)
477fb5:	8a 06                	mov    (%esi),%al
477fb7:	46                   	inc    %esi
477fb8:	84 c0                	test   %al,%al
477fba:	75 f9                	jne    0x477fb5
477fbc:	2b 75 b8             	sub    -0x48(%ebp),%esi
477fbf:	3b f2                	cmp    %edx,%esi
477fc1:	1b c0                	sbb    %eax,%eax
477fc3:	47                   	inc    %edi
477fc4:	03 c7                	add    %edi,%eax
477fc6:	03 c3                	add    %ebx,%eax
477fc8:	ff 74 85 bc          	push   -0x44(%ebp,%eax,4)
477fcc:	52                   	push   %edx
477fcd:	51                   	push   %ecx
477fce:	e8 63 82 ff ff       	call   0x470236
477fd3:	83 c4 0c             	add    $0xc,%esp
477fd6:	5f                   	pop    %edi
477fd7:	5e                   	pop    %esi
477fd8:	85 c0                	test   %eax,%eax
477fda:	0f 84 41 ff ff ff    	je     0x477f21
477fe0:	33 c0                	xor    %eax,%eax
477fe2:	50                   	push   %eax
477fe3:	50                   	push   %eax
477fe4:	50                   	push   %eax
477fe5:	50                   	push   %eax
477fe6:	50                   	push   %eax
477fe7:	e8 17 4d fd ff       	call   0x44cd03
477fec:	cc                   	int3
477fed:	8b ff                	mov    %edi,%edi
477fef:	55                   	push   %ebp
477ff0:	8b ec                	mov    %esp,%ebp
477ff2:	8b 55 14             	mov    0x14(%ebp),%edx
477ff5:	85 d2                	test   %edx,%edx
477ff7:	74 26                	je     0x47801f
477ff9:	56                   	push   %esi
477ffa:	8b 75 10             	mov    0x10(%ebp),%esi
477ffd:	8b ce                	mov    %esi,%ecx
477fff:	57                   	push   %edi
478000:	8d 79 01             	lea    0x1(%ecx),%edi
478003:	8a 01                	mov    (%ecx),%al
478005:	41                   	inc    %ecx
478006:	84 c0                	test   %al,%al
478008:	75 f9                	jne    0x478003
47800a:	2b cf                	sub    %edi,%ecx
47800c:	8d 41 01             	lea    0x1(%ecx),%eax
47800f:	50                   	push   %eax
478010:	8d 04 16             	lea    (%esi,%edx,1),%eax
478013:	56                   	push   %esi
478014:	50                   	push   %eax
478015:	e8 c6 b8 fc ff       	call   0x4438e0
47801a:	83 c4 0c             	add    $0xc,%esp
47801d:	5f                   	pop    %edi
47801e:	5e                   	pop    %esi
47801f:	5d                   	pop    %ebp
478020:	c3                   	ret
478021:	8b ff                	mov    %edi,%edi
478023:	55                   	push   %ebp
478024:	8b ec                	mov    %esp,%ebp
478026:	5d                   	pop    %ebp
478027:	e9 24 1a 01 00       	jmp    0x489a50
47802c:	8b ff                	mov    %edi,%edi
47802e:	55                   	push   %ebp
47802f:	8b ec                	mov    %esp,%ebp
478031:	51                   	push   %ecx
478032:	51                   	push   %ecx
478033:	56                   	push   %esi
478034:	57                   	push   %edi
478035:	8b 7d 0c             	mov    0xc(%ebp),%edi
478038:	85 ff                	test   %edi,%edi
47803a:	75 16                	jne    0x478052
47803c:	e8 ee 4d fd ff       	call   0x44ce2f
478041:	6a 16                	push   $0x16
478043:	5e                   	pop    %esi
478044:	89 30                	mov    %esi,(%eax)
478046:	e8 8b 4c fd ff       	call   0x44ccd6
47804b:	8b c6                	mov    %esi,%eax
47804d:	e9 1e 01 00 00       	jmp    0x478170
478052:	53                   	push   %ebx
478053:	8b 5d 10             	mov    0x10(%ebp),%ebx
478056:	85 db                	test   %ebx,%ebx
478058:	74 0c                	je     0x478066
47805a:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
47805e:	74 06                	je     0x478066
478060:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
478064:	77 16                	ja     0x47807c
478066:	e8 c4 4d fd ff       	call   0x44ce2f
47806b:	6a 16                	push   $0x16
47806d:	5e                   	pop    %esi
47806e:	89 30                	mov    %esi,(%eax)
478070:	e8 61 4c fd ff       	call   0x44ccd6
478075:	8b c6                	mov    %esi,%eax
478077:	e9 f3 00 00 00       	jmp    0x47816f
47807c:	8b 75 1c             	mov    0x1c(%ebp),%esi
47807f:	83 fe 41             	cmp    $0x41,%esi
478082:	74 13                	je     0x478097
478084:	83 fe 45             	cmp    $0x45,%esi
478087:	74 0e                	je     0x478097
478089:	83 fe 46             	cmp    $0x46,%esi
47808c:	74 09                	je     0x478097
47808e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
478092:	83 fe 47             	cmp    $0x47,%esi
478095:	75 04                	jne    0x47809b
478097:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
47809b:	8b 45 24             	mov    0x24(%ebp),%eax
47809e:	83 e0 08             	and    $0x8,%eax
4780a1:	83 c8 00             	or     $0x0,%eax
4780a4:	75 32                	jne    0x4780d8
4780a6:	ff 75 08             	push   0x8(%ebp)
4780a9:	e8 9b f6 ff ff       	call   0x477749
4780ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
4780b1:	59                   	pop    %ecx
4780b2:	85 c0                	test   %eax,%eax
4780b4:	74 22                	je     0x4780d8
4780b6:	ff 75 fc             	push   -0x4(%ebp)
4780b9:	53                   	push   %ebx
4780ba:	57                   	push   %edi
4780bb:	ff 75 08             	push   0x8(%ebp)
4780be:	e8 ee f6 ff ff       	call   0x4777b1
4780c3:	59                   	pop    %ecx
4780c4:	0f b6 c0             	movzbl %al,%eax
4780c7:	50                   	push   %eax
4780c8:	ff 75 f8             	push   -0x8(%ebp)
4780cb:	e8 25 fe ff ff       	call   0x477ef5
4780d0:	83 c4 14             	add    $0x14,%esp
4780d3:	e9 97 00 00 00       	jmp    0x47816f
4780d8:	8b 45 24             	mov    0x24(%ebp),%eax
4780db:	83 e0 10             	and    $0x10,%eax
4780de:	83 c8 00             	or     $0x0,%eax
4780e1:	74 04                	je     0x4780e7