466e6b:	89 41 08             	mov    %eax,0x8(%ecx)
466e6e:	8b 45 14             	mov    0x14(%ebp),%eax
466e71:	89 41 0c             	mov    %eax,0xc(%ecx)
466e74:	8b c1                	mov    %ecx,%eax
466e76:	5d                   	pop    %ebp
466e77:	c2 10 00             	ret    $0x10
466e7a:	8b ff                	mov    %edi,%edi
466e7c:	55                   	push   %ebp
466e7d:	8b ec                	mov    %esp,%ebp
466e7f:	8b 45 08             	mov    0x8(%ebp),%eax
466e82:	8b 00                	mov    (%eax),%eax
466e84:	89 01                	mov    %eax,(%ecx)
466e86:	8b c1                	mov    %ecx,%eax
466e88:	5d                   	pop    %ebp
466e89:	c2 04 00             	ret    $0x4
466e8c:	8b ff                	mov    %edi,%edi
466e8e:	55                   	push   %ebp
466e8f:	8b ec                	mov    %esp,%ebp
466e91:	8b 45 08             	mov    0x8(%ebp),%eax
466e94:	8b 00                	mov    (%eax),%eax
466e96:	89 01                	mov    %eax,(%ecx)
466e98:	8b c1                	mov    %ecx,%eax
466e9a:	5d                   	pop    %ebp
466e9b:	c2 04 00             	ret    $0x4
466e9e:	8b ff                	mov    %edi,%edi
466ea0:	55                   	push   %ebp
466ea1:	8b ec                	mov    %esp,%ebp
466ea3:	51                   	push   %ecx
466ea4:	51                   	push   %ecx
466ea5:	56                   	push   %esi
466ea6:	8b f1                	mov    %ecx,%esi
466ea8:	57                   	push   %edi
466ea9:	8b 06                	mov    (%esi),%eax
466eab:	8b 38                	mov    (%eax),%edi
466ead:	57                   	push   %edi
466eae:	e8 34 13 01 00       	call   0x4781e7
466eb3:	88 45 fc             	mov    %al,-0x4(%ebp)
466eb6:	8b 06                	mov    (%esi),%eax
466eb8:	ff 30                	push   (%eax)
466eba:	8b 46 0c             	mov    0xc(%esi),%eax
466ebd:	ff 30                	push   (%eax)
466ebf:	8b 46 08             	mov    0x8(%esi),%eax
466ec2:	ff 30                	push   (%eax)
466ec4:	8b 46 04             	mov    0x4(%esi),%eax
466ec7:	ff 30                	push   (%eax)
466ec9:	e8 28 00 00 00       	call   0x466ef6
466ece:	57                   	push   %edi
466ecf:	ff 75 fc             	push   -0x4(%ebp)
466ed2:	8b f0                	mov    %eax,%esi
466ed4:	e8 c3 13 01 00       	call   0x47829c
466ed9:	83 c4 1c             	add    $0x1c,%esp
466edc:	8b c6                	mov    %esi,%eax
466ede:	5f                   	pop    %edi
466edf:	5e                   	pop    %esi
466ee0:	8b e5                	mov    %ebp,%esp
466ee2:	5d                   	pop    %ebp
466ee3:	c3                   	ret
466ee4:	ff 31                	push   (%ecx)
466ee6:	e8 d2 d2 fe ff       	call   0x4541bd
466eeb:	59                   	pop    %ecx
466eec:	c3                   	ret
466eed:	ff 31                	push   (%ecx)
466eef:	e8 b5 d2 fe ff       	call   0x4541a9
466ef4:	59                   	pop    %ecx
466ef5:	c3                   	ret
466ef6:	8b ff                	mov    %edi,%edi
466ef8:	55                   	push   %ebp
466ef9:	8b ec                	mov    %esp,%ebp
466efb:	83 ec 0c             	sub    $0xc,%esp
466efe:	53                   	push   %ebx
466eff:	56                   	push   %esi
466f00:	8b 75 0c             	mov    0xc(%ebp),%esi
466f03:	57                   	push   %edi
466f04:	85 f6                	test   %esi,%esi
466f06:	74 1e                	je     0x466f26
466f08:	8b 7d 10             	mov    0x10(%ebp),%edi
466f0b:	85 ff                	test   %edi,%edi
466f0d:	74 17                	je     0x466f26
466f0f:	8b 5d 14             	mov    0x14(%ebp),%ebx
466f12:	85 db                	test   %ebx,%ebx
466f14:	75 19                	jne    0x466f2f
466f16:	e8 14 5f fe ff       	call   0x44ce2f
466f1b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
466f21:	e8 b0 5d fe ff       	call   0x44ccd6
466f26:	33 c0                	xor    %eax,%eax
466f28:	5f                   	pop    %edi
466f29:	5e                   	pop    %esi
466f2a:	5b                   	pop    %ebx
466f2b:	8b e5                	mov    %ebp,%esp
466f2d:	5d                   	pop    %ebp
466f2e:	c3                   	ret
466f2f:	8b 4d 08             	mov    0x8(%ebp),%ecx
466f32:	85 c9                	test   %ecx,%ecx
466f34:	74 e0                	je     0x466f16
466f36:	83 c8 ff             	or     $0xffffffff,%eax
466f39:	33 d2                	xor    %edx,%edx
466f3b:	f7 f6                	div    %esi
466f3d:	3b f8                	cmp    %eax,%edi
466f3f:	77 d5                	ja     0x466f16
466f41:	8d 43 0c             	lea    0xc(%ebx),%eax
466f44:	89 45 f4             	mov    %eax,-0xc(%ebp)
466f47:	8b 00                	mov    (%eax),%eax
466f49:	a9 c0 04 00 00       	test   $0x4c0,%eax
466f4e:	74 05                	je     0x466f55
466f50:	8b 53 18             	mov    0x18(%ebx),%edx
466f53:	eb 05                	jmp    0x466f5a
466f55:	ba 00 10 00 00       	mov    $0x1000,%edx
466f5a:	0f af f7             	imul   %edi,%esi
466f5d:	89 55 fc             	mov    %edx,-0x4(%ebp)
466f60:	8b fe                	mov    %esi,%edi
466f62:	85 f6                	test   %esi,%esi
466f64:	0f 84 e6 00 00 00    	je     0x467050
466f6a:	8b 43 0c             	mov    0xc(%ebx),%eax
466f6d:	a8 c0                	test   $0xc0,%al
466f6f:	74 39                	je     0x466faa
466f71:	8b 43 08             	mov    0x8(%ebx),%eax
466f74:	89 45 f8             	mov    %eax,-0x8(%ebp)
466f77:	85 c0                	test   %eax,%eax
466f79:	74 2f                	je     0x466faa
466f7b:	0f 88 d7 00 00 00    	js     0x467058
466f81:	3b f8                	cmp    %eax,%edi
466f83:	73 05                	jae    0x466f8a
466f85:	8b c7                	mov    %edi,%eax
466f87:	89 7d f8             	mov    %edi,-0x8(%ebp)
466f8a:	50                   	push   %eax
466f8b:	51                   	push   %ecx
466f8c:	ff 33                	push   (%ebx)
466f8e:	e8 cd c3 fd ff       	call   0x443360
466f93:	8b 45 f8             	mov    -0x8(%ebp),%eax
466f96:	83 c4 0c             	add    $0xc,%esp
466f99:	29 43 08             	sub    %eax,0x8(%ebx)
466f9c:	2b f8                	sub    %eax,%edi
466f9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
466fa1:	01 03                	add    %eax,(%ebx)
466fa3:	03 c8                	add    %eax,%ecx
466fa5:	89 4d 08             	mov    %ecx,0x8(%ebp)
466fa8:	eb 70                	jmp    0x46701a
466faa:	3b fa                	cmp    %edx,%edi
466fac:	72 71                	jb     0x46701f
466fae:	8b 43 0c             	mov    0xc(%ebx),%eax
466fb1:	a8 c0                	test   $0xc0,%al
466fb3:	74 15                	je     0x466fca
466fb5:	53                   	push   %ebx
466fb6:	e8 31 ee 00 00       	call   0x475dec
466fbb:	59                   	pop    %ecx
466fbc:	85 c0                	test   %eax,%eax
466fbe:	0f 85 9d 00 00 00    	jne    0x467061
466fc4:	8b 4d 08             	mov    0x8(%ebp),%ecx
466fc7:	8b 55 fc             	mov    -0x4(%ebp),%edx
466fca:	8b c7                	mov    %edi,%eax
466fcc:	85 d2                	test   %edx,%edx
466fce:	74 0e                	je     0x466fde
466fd0:	33 d2                	xor    %edx,%edx
466fd2:	f7 75 fc             	divl   -0x4(%ebp)
466fd5:	8b c7                	mov    %edi,%eax
466fd7:	2b c2                	sub    %edx,%eax
466fd9:	89 45 f8             	mov    %eax,-0x8(%ebp)
466fdc:	eb 03                	jmp    0x466fe1
466fde:	89 7d f8             	mov    %edi,-0x8(%ebp)
466fe1:	83 f8 fe             	cmp    $0xfffffffe,%eax
466fe4:	72 06                	jb     0x466fec
466fe6:	6a fe                	push   $0xfffffffe
466fe8:	58                   	pop    %eax
466fe9:	89 45 f8             	mov    %eax,-0x8(%ebp)
466fec:	50                   	push   %eax
466fed:	51                   	push   %ecx
466fee:	53                   	push   %ebx
466fef:	e8 82 11 01 00       	call   0x478176
466ff4:	59                   	pop    %ecx
466ff5:	50                   	push   %eax
466ff6:	e8 44 31 01 00       	call   0x47a13f
466ffb:	83 c4 0c             	add    $0xc,%esp
466ffe:	83 f8 ff             	cmp    $0xffffffff,%eax
467001:	74 55                	je     0x467058
467003:	8b 4d f8             	mov    -0x8(%ebp),%ecx
467006:	8b d1                	mov    %ecx,%edx
467008:	3b c1                	cmp    %ecx,%eax
46700a:	77 02                	ja     0x46700e
46700c:	8b d0                	mov    %eax,%edx
46700e:	01 55 08             	add    %edx,0x8(%ebp)
467011:	2b fa                	sub    %edx,%edi
467013:	3b c1                	cmp    %ecx,%eax
467015:	72 41                	jb     0x467058
467017:	8b 4d 08             	mov    0x8(%ebp),%ecx
46701a:	8b 55 fc             	mov    -0x4(%ebp),%edx
46701d:	eb 29                	jmp    0x467048
46701f:	0f be 01             	movsbl (%ecx),%eax
467022:	53                   	push   %ebx
467023:	50                   	push   %eax
467024:	e8 20 19 01 00       	call   0x478949
467029:	59                   	pop    %ecx
46702a:	59                   	pop    %ecx
46702b:	83 f8 ff             	cmp    $0xffffffff,%eax
46702e:	74 31                	je     0x467061
467030:	8b 4d 08             	mov    0x8(%ebp),%ecx
467033:	8b 53 18             	mov    0x18(%ebx),%edx
467036:	41                   	inc    %ecx
467037:	4f                   	dec    %edi
467038:	89 4d 08             	mov    %ecx,0x8(%ebp)
46703b:	89 55 fc             	mov    %edx,-0x4(%ebp)
46703e:	85 d2                	test   %edx,%edx
467040:	7f 06                	jg     0x467048
467042:	33 d2                	xor    %edx,%edx
467044:	42                   	inc    %edx
467045:	89 55 fc             	mov    %edx,-0x4(%ebp)
467048:	85 ff                	test   %edi,%edi
46704a:	0f 85 1a ff ff ff    	jne    0x466f6a
467050:	8b 45 10             	mov    0x10(%ebp),%eax
467053:	e9 d0 fe ff ff       	jmp    0x466f28
467058:	8b 45 f4             	mov    -0xc(%ebp),%eax
46705b:	6a 10                	push   $0x10
46705d:	59                   	pop    %ecx
46705e:	f0 09 08             	lock or %ecx,(%eax)
467061:	2b f7                	sub    %edi,%esi
467063:	33 d2                	xor    %edx,%edx
467065:	8b c6                	mov    %esi,%eax
467067:	f7 75 0c             	divl   0xc(%ebp)
46706a:	e9 b9 fe ff ff       	jmp    0x466f28
46706f:	8b ff                	mov    %edi,%edi
467071:	55                   	push   %ebp
467072:	8b ec                	mov    %esp,%ebp
467074:	83 ec 10             	sub    $0x10,%esp
467077:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46707b:	74 1c                	je     0x467099
46707d:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
467081:	74 16                	je     0x467099
467083:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
467087:	75 16                	jne    0x46709f
467089:	e8 a1 5d fe ff       	call   0x44ce2f
46708e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
467094:	e8 3d 5c fe ff       	call   0x44ccd6
467099:	33 c0                	xor    %eax,%eax
46709b:	8b e5                	mov    %ebp,%esp
46709d:	5d                   	pop    %ebp
46709e:	c3                   	ret
46709f:	8d 45 14             	lea    0x14(%ebp),%eax
4670a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4670a5:	8d 45 08             	lea    0x8(%ebp),%eax
4670a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4670ab:	8d 45 0c             	lea    0xc(%ebp),%eax
4670ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
4670b1:	8d 45 10             	lea    0x10(%ebp),%eax
4670b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4670b7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4670ba:	50                   	push   %eax
4670bb:	ff 75 14             	push   0x14(%ebp)
4670be:	e8 6d fd ff ff       	call   0x466e30
4670c3:	59                   	pop    %ecx
4670c4:	59                   	pop    %ecx
4670c5:	eb d4                	jmp    0x46709b
4670c7:	8b ff                	mov    %edi,%edi
4670c9:	55                   	push   %ebp
4670ca:	8b ec                	mov    %esp,%ebp
4670cc:	8b 55 0c             	mov    0xc(%ebp),%edx
4670cf:	56                   	push   %esi
4670d0:	8b 75 08             	mov    0x8(%ebp),%esi
4670d3:	57                   	push   %edi
4670d4:	0f b7 3a             	movzwl (%edx),%edi
4670d7:	0f b7 0e             	movzwl (%esi),%ecx
4670da:	2b cf                	sub    %edi,%ecx
4670dc:	75 15                	jne    0x4670f3
4670de:	2b f2                	sub    %edx,%esi
4670e0:	66 85 ff             	test   %di,%di
4670e3:	74 0e                	je     0x4670f3
4670e5:	83 c2 02             	add    $0x2,%edx
4670e8:	0f b7 3a             	movzwl (%edx),%edi
4670eb:	0f b7 0c 16          	movzwl (%esi,%edx,1),%ecx
4670ef:	2b cf                	sub    %edi,%ecx
4670f1:	74 ed                	je     0x4670e0
4670f3:	5f                   	pop    %edi
4670f4:	5e                   	pop    %esi
4670f5:	85 c9                	test   %ecx,%ecx
4670f7:	79 05                	jns    0x4670fe
4670f9:	83 c8 ff             	or     $0xffffffff,%eax
4670fc:	5d                   	pop    %ebp
4670fd:	c3                   	ret
4670fe:	33 c0                	xor    %eax,%eax
467100:	85 c9                	test   %ecx,%ecx
467102:	0f 9f c0             	setg   %al
467105:	5d                   	pop    %ebp
467106:	c3                   	ret
467107:	8b ff                	mov    %edi,%edi
467109:	55                   	push   %ebp
46710a:	8b ec                	mov    %esp,%ebp
46710c:	83 3d 08 bf 4b 00 00 	cmpl   $0x0,0x4bbf08
467113:	75 75                	jne    0x46718a
467115:	8b 55 08             	mov    0x8(%ebp),%edx
467118:	85 d2                	test   %edx,%edx
46711a:	75 17                	jne    0x467133
46711c:	e8 0e 5d fe ff       	call   0x44ce2f
467121:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
467127:	e8 aa 5b fe ff       	call   0x44ccd6
46712c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
467131:	5d                   	pop    %ebp
467132:	c3                   	ret
467133:	8b 4d 0c             	mov    0xc(%ebp),%ecx
467136:	85 c9                	test   %ecx,%ecx
467138:	74 e2                	je     0x46711c
46713a:	53                   	push   %ebx
46713b:	56                   	push   %esi
46713c:	57                   	push   %edi
46713d:	6a 41                	push   $0x41
46713f:	5f                   	pop    %edi
467140:	6a 5a                	push   $0x5a
467142:	2b d1                	sub    %ecx,%edx
467144:	5b                   	pop    %ebx
467145:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
467149:	66 3b c7             	cmp    %di,%ax
46714c:	72 0d                	jb     0x46715b
46714e:	66 3b c3             	cmp    %bx,%ax
467151:	77 08                	ja     0x46715b
467153:	83 c0 20             	add    $0x20,%eax
467156:	0f b7 f0             	movzwl %ax,%esi
467159:	eb 02                	jmp    0x46715d
46715b:	8b f0                	mov    %eax,%esi
46715d:	0f b7 01             	movzwl (%ecx),%eax
467160:	66 3b c7             	cmp    %di,%ax
467163:	72 0b                	jb     0x467170
467165:	66 3b c3             	cmp    %bx,%ax
467168:	77 06                	ja     0x467170
46716a:	83 c0 20             	add    $0x20,%eax
46716d:	0f b7 c0             	movzwl %ax,%eax
467170:	83 c1 02             	add    $0x2,%ecx
467173:	66 85 f6             	test   %si,%si
467176:	74 05                	je     0x46717d
467178:	66 3b f0             	cmp    %ax,%si
46717b:	74 c8                	je     0x467145
46717d:	0f b7 c8             	movzwl %ax,%ecx
467180:	5f                   	pop    %edi
467181:	0f b7 c6             	movzwl %si,%eax
467184:	5e                   	pop    %esi
467185:	2b c1                	sub    %ecx,%eax
467187:	5b                   	pop    %ebx
467188:	5d                   	pop    %ebp
467189:	c3                   	ret
46718a:	6a 00                	push   $0x0
46718c:	ff 75 0c             	push   0xc(%ebp)
46718f:	ff 75 08             	push   0x8(%ebp)
467192:	e8 05 00 00 00       	call   0x46719c
467197:	83 c4 0c             	add    $0xc,%esp
46719a:	5d                   	pop    %ebp
46719b:	c3                   	ret
46719c:	8b ff                	mov    %edi,%edi
46719e:	55                   	push   %ebp
46719f:	8b ec                	mov    %esp,%ebp
4671a1:	83 ec 10             	sub    $0x10,%esp
4671a4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4671a7:	53                   	push   %ebx
4671a8:	56                   	push   %esi
4671a9:	ff 75 10             	push   0x10(%ebp)