410d6e:	8b 7d d8             	mov    -0x28(%ebp),%edi
410d71:	8b 75 dc             	mov    -0x24(%ebp),%esi
410d74:	53                   	push   %ebx
410d75:	e8 ba e9 ff ff       	call   0x40f734
410d7a:	59                   	pop    %ecx
410d7b:	c3                   	ret
410d7c:	8b ff                	mov    %edi,%edi
410d7e:	55                   	push   %ebp
410d7f:	8b ec                	mov    %esp,%ebp
410d81:	51                   	push   %ecx
410d82:	51                   	push   %ecx
410d83:	56                   	push   %esi
410d84:	8b 75 08             	mov    0x8(%ebp),%esi
410d87:	57                   	push   %edi
410d88:	56                   	push   %esi
410d89:	e8 6d eb ff ff       	call   0x40f8fb
410d8e:	83 cf ff             	or     $0xffffffff,%edi
410d91:	59                   	pop    %ecx
410d92:	3b c7                	cmp    %edi,%eax
410d94:	75 14                	jne    0x410daa
410d96:	8b 45 18             	mov    0x18(%ebp),%eax
410d99:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410d9d:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
410da4:	8b c7                	mov    %edi,%eax
410da6:	8b d7                	mov    %edi,%edx
410da8:	eb 51                	jmp    0x410dfb
410daa:	ff 75 14             	push   0x14(%ebp)
410dad:	8d 4d f8             	lea    -0x8(%ebp),%ecx
410db0:	51                   	push   %ecx
410db1:	ff 75 10             	push   0x10(%ebp)
410db4:	ff 75 0c             	push   0xc(%ebp)
410db7:	50                   	push   %eax
410db8:	ff 15 f0 90 41 00    	call   *0x4190f0
410dbe:	85 c0                	test   %eax,%eax
410dc0:	75 13                	jne    0x410dd5
410dc2:	ff 75 18             	push   0x18(%ebp)
410dc5:	ff 15 28 90 41 00    	call   *0x419028
410dcb:	50                   	push   %eax
410dcc:	e8 27 99 ff ff       	call   0x40a6f8
410dd1:	59                   	pop    %ecx
410dd2:	59                   	pop    %ecx
410dd3:	eb cf                	jmp    0x410da4
410dd5:	8b 45 f8             	mov    -0x8(%ebp),%eax
410dd8:	8b 55 fc             	mov    -0x4(%ebp),%edx
410ddb:	23 c2                	and    %edx,%eax
410ddd:	3b c7                	cmp    %edi,%eax
410ddf:	74 c3                	je     0x410da4
410de1:	8b 45 f8             	mov    -0x8(%ebp),%eax
410de4:	8b ce                	mov    %esi,%ecx
410de6:	83 e6 3f             	and    $0x3f,%esi
410de9:	c1 f9 06             	sar    $0x6,%ecx
410dec:	6b f6 38             	imul   $0x38,%esi,%esi
410def:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
410df6:	80 64 31 28 fd       	andb   $0xfd,0x28(%ecx,%esi,1)
410dfb:	5f                   	pop    %edi
410dfc:	5e                   	pop    %esi
410dfd:	c9                   	leave
410dfe:	c3                   	ret
410dff:	8b ff                	mov    %edi,%edi
410e01:	55                   	push   %ebp
410e02:	8b ec                	mov    %esp,%ebp
410e04:	83 ec 28             	sub    $0x28,%esp
410e07:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e0a:	56                   	push   %esi
410e0b:	57                   	push   %edi
410e0c:	6a 00                	push   $0x0
410e0e:	e8 57 59 ff ff       	call   0x40676a
410e13:	8d 45 d8             	lea    -0x28(%ebp),%eax
410e16:	50                   	push   %eax
410e17:	ff 75 14             	push   0x14(%ebp)
410e1a:	ff 75 10             	push   0x10(%ebp)
410e1d:	ff 75 0c             	push   0xc(%ebp)
410e20:	ff 75 08             	push   0x8(%ebp)
410e23:	e8 2f fe ff ff       	call   0x410c57
410e28:	83 c4 14             	add    $0x14,%esp
410e2b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e2e:	8b f0                	mov    %eax,%esi
410e30:	8b fa                	mov    %edx,%edi
410e32:	e8 7b 59 ff ff       	call   0x4067b2
410e37:	8b d7                	mov    %edi,%edx
410e39:	8b c6                	mov    %esi,%eax
410e3b:	5f                   	pop    %edi
410e3c:	5e                   	pop    %esi
410e3d:	c9                   	leave
410e3e:	c3                   	ret
410e3f:	8b ff                	mov    %edi,%edi
410e41:	55                   	push   %ebp
410e42:	8b ec                	mov    %esp,%ebp
410e44:	83 ec 28             	sub    $0x28,%esp
410e47:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e4a:	56                   	push   %esi
410e4b:	57                   	push   %edi
410e4c:	6a 00                	push   $0x0
410e4e:	e8 17 59 ff ff       	call   0x40676a
410e53:	8d 45 d8             	lea    -0x28(%ebp),%eax
410e56:	50                   	push   %eax
410e57:	ff 75 14             	push   0x14(%ebp)
410e5a:	ff 75 10             	push   0x10(%ebp)
410e5d:	ff 75 0c             	push   0xc(%ebp)
410e60:	ff 75 08             	push   0x8(%ebp)
410e63:	e8 14 ff ff ff       	call   0x410d7c
410e68:	83 c4 14             	add    $0x14,%esp
410e6b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e6e:	8b f0                	mov    %eax,%esi
410e70:	8b fa                	mov    %edx,%edi
410e72:	e8 3b 59 ff ff       	call   0x4067b2
410e77:	8b d7                	mov    %edi,%edx
410e79:	8b c6                	mov    %esi,%eax
410e7b:	5f                   	pop    %edi
410e7c:	5e                   	pop    %esi
410e7d:	c9                   	leave
410e7e:	c3                   	ret
410e7f:	8b ff                	mov    %edi,%edi
410e81:	55                   	push   %ebp
410e82:	8b ec                	mov    %esp,%ebp
410e84:	ff 75 18             	push   0x18(%ebp)
410e87:	ff 75 14             	push   0x14(%ebp)
410e8a:	ff 75 10             	push   0x10(%ebp)
410e8d:	ff 75 0c             	push   0xc(%ebp)
410e90:	ff 75 08             	push   0x8(%ebp)
410e93:	e8 e4 fe ff ff       	call   0x410d7c
410e98:	83 c4 14             	add    $0x14,%esp
410e9b:	5d                   	pop    %ebp
410e9c:	c3                   	ret
410e9d:	8b ff                	mov    %edi,%edi
410e9f:	55                   	push   %ebp
410ea0:	8b ec                	mov    %esp,%ebp
410ea2:	8b 4d 08             	mov    0x8(%ebp),%ecx
410ea5:	80 39 00             	cmpb   $0x0,(%ecx)
410ea8:	75 05                	jne    0x410eaf
410eaa:	33 c0                	xor    %eax,%eax
410eac:	40                   	inc    %eax
410ead:	eb 16                	jmp    0x410ec5
410eaf:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
410eb3:	75 05                	jne    0x410eba
410eb5:	6a 02                	push   $0x2
410eb7:	58                   	pop    %eax
410eb8:	eb 0b                	jmp    0x410ec5
410eba:	33 c0                	xor    %eax,%eax
410ebc:	38 41 02             	cmp    %al,0x2(%ecx)
410ebf:	0f 95 c0             	setne  %al
410ec2:	83 c0 03             	add    $0x3,%eax
410ec5:	5d                   	pop    %ebp
410ec6:	c2 04 00             	ret    $0x4
410ec9:	8b ff                	mov    %edi,%edi
410ecb:	55                   	push   %ebp
410ecc:	8b ec                	mov    %esp,%ebp
410ece:	51                   	push   %ecx
410ecf:	ff 75 18             	push   0x18(%ebp)
410ed2:	8d 45 fc             	lea    -0x4(%ebp),%eax
410ed5:	ff 75 14             	push   0x14(%ebp)
410ed8:	ff 75 10             	push   0x10(%ebp)
410edb:	ff 75 0c             	push   0xc(%ebp)
410ede:	50                   	push   %eax
410edf:	e8 60 42 00 00       	call   0x415144
410ee4:	8b d0                	mov    %eax,%edx
410ee6:	83 c4 14             	add    $0x14,%esp
410ee9:	83 fa 04             	cmp    $0x4,%edx
410eec:	77 1a                	ja     0x410f08
410eee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410ef1:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
410ef7:	76 05                	jbe    0x410efe
410ef9:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
410efe:	8b 45 08             	mov    0x8(%ebp),%eax
410f01:	85 c0                	test   %eax,%eax
410f03:	74 03                	je     0x410f08
410f05:	66 89 08             	mov    %cx,(%eax)
410f08:	8b c2                	mov    %edx,%eax
410f0a:	c9                   	leave
410f0b:	c3                   	ret
410f0c:	8b ff                	mov    %edi,%edi
410f0e:	55                   	push   %ebp
410f0f:	8b ec                	mov    %esp,%ebp
410f11:	51                   	push   %ecx
410f12:	51                   	push   %ecx
410f13:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410f17:	53                   	push   %ebx
410f18:	56                   	push   %esi
410f19:	57                   	push   %edi
410f1a:	8b 7d 0c             	mov    0xc(%ebp),%edi
410f1d:	8b 3f                	mov    (%edi),%edi
410f1f:	0f 84 a4 00 00 00    	je     0x410fc9
410f25:	8b 5d 10             	mov    0x10(%ebp),%ebx
410f28:	8b 75 08             	mov    0x8(%ebp),%esi
410f2b:	85 db                	test   %ebx,%ebx
410f2d:	74 6b                	je     0x410f9a
410f2f:	57                   	push   %edi
410f30:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410f33:	e8 65 ff ff ff       	call   0x410e9d
410f38:	ff 75 18             	push   0x18(%ebp)
410f3b:	ff 75 14             	push   0x14(%ebp)
410f3e:	50                   	push   %eax
410f3f:	8d 45 f8             	lea    -0x8(%ebp),%eax
410f42:	57                   	push   %edi
410f43:	50                   	push   %eax
410f44:	e8 fb 41 00 00       	call   0x415144
410f49:	8b d0                	mov    %eax,%edx
410f4b:	83 c4 14             	add    $0x14,%esp
410f4e:	83 fa ff             	cmp    $0xffffffff,%edx
410f51:	74 5e                	je     0x410fb1
410f53:	85 d2                	test   %edx,%edx
410f55:	74 51                	je     0x410fa8
410f57:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410f5a:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
410f60:	76 2b                	jbe    0x410f8d
410f62:	83 fb 01             	cmp    $0x1,%ebx
410f65:	76 33                	jbe    0x410f9a
410f67:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
410f6d:	4b                   	dec    %ebx
410f6e:	8b c1                	mov    %ecx,%eax
410f70:	89 4d f8             	mov    %ecx,-0x8(%ebp)
410f73:	c1 e8 0a             	shr    $0xa,%eax
410f76:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
410f7c:	0d 00 d8 00 00       	or     $0xd800,%eax
410f81:	66 89 06             	mov    %ax,(%esi)
410f84:	83 c6 02             	add    $0x2,%esi
410f87:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
410f8d:	66 89 0e             	mov    %cx,(%esi)
410f90:	03 fa                	add    %edx,%edi
410f92:	83 c6 02             	add    $0x2,%esi
410f95:	83 eb 01             	sub    $0x1,%ebx
410f98:	75 95                	jne    0x410f2f
410f9a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
410f9d:	2b 75 08             	sub    0x8(%ebp),%esi
410fa0:	d1 fe                	sar    $1,%esi
410fa2:	89 3b                	mov    %edi,(%ebx)
410fa4:	8b c6                	mov    %esi,%eax
410fa6:	eb 67                	jmp    0x41100f
410fa8:	33 ff                	xor    %edi,%edi
410faa:	33 c0                	xor    %eax,%eax
410fac:	66 89 06             	mov    %ax,(%esi)
410faf:	eb e9                	jmp    0x410f9a
410fb1:	8b 45 0c             	mov    0xc(%ebp),%eax
410fb4:	89 38                	mov    %edi,(%eax)
410fb6:	8b 45 18             	mov    0x18(%ebp),%eax
410fb9:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410fbd:	c7 40 18 2a 00 00 00 	movl   $0x2a,0x18(%eax)
410fc4:	83 c8 ff             	or     $0xffffffff,%eax
410fc7:	eb 46                	jmp    0x41100f
410fc9:	57                   	push   %edi
410fca:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410fcd:	33 f6                	xor    %esi,%esi
410fcf:	e8 c9 fe ff ff       	call   0x410e9d
410fd4:	8b 5d 18             	mov    0x18(%ebp),%ebx
410fd7:	eb 16                	jmp    0x410fef
410fd9:	85 c0                	test   %eax,%eax
410fdb:	74 c7                	je     0x410fa4
410fdd:	83 f8 04             	cmp    $0x4,%eax
410fe0:	75 01                	jne    0x410fe3
410fe2:	46                   	inc    %esi
410fe3:	03 f8                	add    %eax,%edi
410fe5:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410fe8:	57                   	push   %edi
410fe9:	46                   	inc    %esi
410fea:	e8 ae fe ff ff       	call   0x410e9d
410fef:	53                   	push   %ebx
410ff0:	ff 75 14             	push   0x14(%ebp)
410ff3:	50                   	push   %eax
410ff4:	57                   	push   %edi
410ff5:	6a 00                	push   $0x0
410ff7:	e8 48 41 00 00       	call   0x415144
410ffc:	83 c4 14             	add    $0x14,%esp
410fff:	83 f8 ff             	cmp    $0xffffffff,%eax
411002:	75 d5                	jne    0x410fd9
411004:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
411008:	c7 43 18 2a 00 00 00 	movl   $0x2a,0x18(%ebx)
41100f:	5f                   	pop    %edi
411010:	5e                   	pop    %esi
411011:	5b                   	pop    %ebx
411012:	c9                   	leave
411013:	c3                   	ret
411014:	8b ff                	mov    %edi,%edi
411016:	55                   	push   %ebp
411017:	8b ec                	mov    %esp,%ebp
411019:	51                   	push   %ecx
41101a:	e8 f5 42 00 00       	call   0x415314
41101f:	85 c0                	test   %eax,%eax
411021:	74 1c                	je     0x41103f
411023:	8d 45 fc             	lea    -0x4(%ebp),%eax
411026:	50                   	push   %eax
411027:	8d 45 08             	lea    0x8(%ebp),%eax
41102a:	6a 01                	push   $0x1
41102c:	50                   	push   %eax
41102d:	e8 18 43 00 00       	call   0x41534a
411032:	83 c4 0c             	add    $0xc,%esp
411035:	85 c0                	test   %eax,%eax
411037:	74 06                	je     0x41103f
411039:	66 8b 45 08          	mov    0x8(%ebp),%ax
41103d:	c9                   	leave
41103e:	c3                   	ret
41103f:	b8 ff ff 00 00       	mov    $0xffff,%eax
411044:	c9                   	leave
411045:	c3                   	ret
411046:	8b ff                	mov    %edi,%edi
411048:	55                   	push   %ebp
411049:	8b ec                	mov    %esp,%ebp
41104b:	83 ec 18             	sub    $0x18,%esp
41104e:	8b 45 08             	mov    0x8(%ebp),%eax
411051:	8b c8                	mov    %eax,%ecx
411053:	53                   	push   %ebx
411054:	8b 5d 0c             	mov    0xc(%ebp),%ebx
411057:	83 e0 3f             	and    $0x3f,%eax
41105a:	c1 f9 06             	sar    $0x6,%ecx
41105d:	56                   	push   %esi
41105e:	57                   	push   %edi
41105f:	6b f8 38             	imul   $0x38,%eax,%edi
411062:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
411069:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41106c:	8b 4c 07 18          	mov    0x18(%edi,%eax,1),%ecx
411070:	89 4d ec             	mov    %ecx,-0x14(%ebp)
411073:	8b 4d 10             	mov    0x10(%ebp),%ecx
411076:	85 c9                	test   %ecx,%ecx
411078:	74 0c                	je     0x411086
41107a:	80 3b 0a             	cmpb   $0xa,(%ebx)
41107d:	75 07                	jne    0x411086
41107f:	80 4c 07 28 04       	orb    $0x4,0x28(%edi,%eax,1)
411084:	eb 05                	jmp    0x41108b
411086:	80 64 07 28 fb       	andb   $0xfb,0x28(%edi,%eax,1)
41108b:	03 cb                	add    %ebx,%ecx
41108d:	8b c3                	mov    %ebx,%eax
41108f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
411092:	8b f3                	mov    %ebx,%esi
411094:	89 45 f8             	mov    %eax,-0x8(%ebp)
411097:	3b d9                	cmp    %ecx,%ebx
411099:	0f 83 eb 00 00 00    	jae    0x41118a
41109f:	8a 10                	mov    (%eax),%dl
4110a1:	80 fa 1a             	cmp    $0x1a,%dl
4110a4:	0f 84 c3 00 00 00    	je     0x41116d
4110aa:	40                   	inc    %eax
4110ab:	80 fa 0d             	cmp    $0xd,%dl
4110ae:	74 07                	je     0x4110b7
4110b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4110b3:	88 16                	mov    %dl,(%esi)
4110b5:	eb 26                	jmp    0x4110dd
4110b7:	3b c1                	cmp    %ecx,%eax
4110b9:	73 30                	jae    0x4110eb
4110bb:	8a 08                	mov    (%eax),%cl
4110bd:	33 c0                	xor    %eax,%eax
4110bf:	80 f9 0a             	cmp    $0xa,%cl
4110c2:	0f 94 c0             	sete   %al
4110c5:	40                   	inc    %eax
4110c6:	01 45 f8             	add    %eax,-0x8(%ebp)
4110c9:	80 f9 0a             	cmp    $0xa,%cl
4110cc:	0f 94 c0             	sete   %al
4110cf:	fe c8                	dec    %al
4110d1:	24 03                	and    $0x3,%al
4110d3:	04 0a                	add    $0xa,%al
4110d5:	88 06                	mov    %al,(%esi)
4110d7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4110da:	8b 4d f0             	mov    -0x10(%ebp),%ecx