406cbf:	75 0a                	jne    0x406ccb
406cc1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406cc4:	83 c6 02             	add    $0x2,%esi
406cc7:	3b f3                	cmp    %ebx,%esi
406cc9:	75 d9                	jne    0x406ca4
406ccb:	5f                   	pop    %edi
406ccc:	8b c6                	mov    %esi,%eax
406cce:	5e                   	pop    %esi
406ccf:	5b                   	pop    %ebx
406cd0:	8b e5                	mov    %ebp,%esp
406cd2:	5d                   	pop    %ebp
406cd3:	c2 0c 00             	ret    $0xc
406cd6:	8b c6                	mov    %esi,%eax
406cd8:	5e                   	pop    %esi
406cd9:	5b                   	pop    %ebx
406cda:	8b e5                	mov    %ebp,%esp
406cdc:	5d                   	pop    %ebp
406cdd:	c2 0c 00             	ret    $0xc
406ce0:	55                   	push   %ebp
406ce1:	8b ec                	mov    %esp,%ebp
406ce3:	51                   	push   %ecx
406ce4:	53                   	push   %ebx
406ce5:	8b 5d 10             	mov    0x10(%ebp),%ebx
406ce8:	56                   	push   %esi
406ce9:	8b 75 0c             	mov    0xc(%ebp),%esi
406cec:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406cef:	3b f3                	cmp    %ebx,%esi
406cf1:	74 33                	je     0x406d26
406cf3:	57                   	push   %edi
406cf4:	8b 09                	mov    (%ecx),%ecx
406cf6:	0f b7 06             	movzwl (%esi),%eax
406cf9:	50                   	push   %eax
406cfa:	ff 75 08             	push   0x8(%ebp)
406cfd:	8b 79 10             	mov    0x10(%ecx),%edi
406d00:	8b cf                	mov    %edi,%ecx
406d02:	ff 15 5c e2 43 00    	call   *0x43e25c
406d08:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406d0b:	ff d7                	call   *%edi
406d0d:	84 c0                	test   %al,%al
406d0f:	74 0a                	je     0x406d1b
406d11:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406d14:	83 c6 02             	add    $0x2,%esi
406d17:	3b f3                	cmp    %ebx,%esi
406d19:	75 d9                	jne    0x406cf4
406d1b:	5f                   	pop    %edi
406d1c:	8b c6                	mov    %esi,%eax
406d1e:	5e                   	pop    %esi
406d1f:	5b                   	pop    %ebx
406d20:	8b e5                	mov    %ebp,%esp
406d22:	5d                   	pop    %ebp
406d23:	c2 0c 00             	ret    $0xc
406d26:	8b c6                	mov    %esi,%eax
406d28:	5e                   	pop    %esi
406d29:	5b                   	pop    %ebx
406d2a:	8b e5                	mov    %ebp,%esp
406d2c:	5d                   	pop    %ebp
406d2d:	c2 0c 00             	ret    $0xc
406d30:	55                   	push   %ebp
406d31:	8b ec                	mov    %esp,%ebp
406d33:	8d 41 08             	lea    0x8(%ecx),%eax
406d36:	50                   	push   %eax
406d37:	ff 75 08             	push   0x8(%ebp)
406d3a:	e8 36 29 01 00       	call   0x419675
406d3f:	83 c4 08             	add    $0x8,%esp
406d42:	5d                   	pop    %ebp
406d43:	c2 04 00             	ret    $0x4
406d46:	cc                   	int3
406d47:	cc                   	int3
406d48:	cc                   	int3
406d49:	cc                   	int3
406d4a:	cc                   	int3
406d4b:	cc                   	int3
406d4c:	cc                   	int3
406d4d:	cc                   	int3
406d4e:	cc                   	int3
406d4f:	cc                   	int3
406d50:	55                   	push   %ebp
406d51:	8b ec                	mov    %esp,%ebp
406d53:	56                   	push   %esi
406d54:	8b 75 08             	mov    0x8(%ebp),%esi
406d57:	57                   	push   %edi
406d58:	8b 7d 0c             	mov    0xc(%ebp),%edi
406d5b:	3b f7                	cmp    %edi,%esi
406d5d:	74 1c                	je     0x406d7b
406d5f:	53                   	push   %ebx
406d60:	8d 59 08             	lea    0x8(%ecx),%ebx
406d63:	0f b7 06             	movzwl (%esi),%eax
406d66:	53                   	push   %ebx
406d67:	50                   	push   %eax
406d68:	e8 08 29 01 00       	call   0x419675
406d6d:	66 89 06             	mov    %ax,(%esi)
406d70:	83 c4 08             	add    $0x8,%esp
406d73:	83 c6 02             	add    $0x2,%esi
406d76:	3b f7                	cmp    %edi,%esi
406d78:	75 e9                	jne    0x406d63
406d7a:	5b                   	pop    %ebx
406d7b:	5f                   	pop    %edi
406d7c:	8b c6                	mov    %esi,%eax
406d7e:	5e                   	pop    %esi
406d7f:	5d                   	pop    %ebp
406d80:	c2 08 00             	ret    $0x8
406d83:	cc                   	int3
406d84:	cc                   	int3
406d85:	cc                   	int3
406d86:	cc                   	int3
406d87:	cc                   	int3
406d88:	cc                   	int3
406d89:	cc                   	int3
406d8a:	cc                   	int3
406d8b:	cc                   	int3
406d8c:	cc                   	int3
406d8d:	cc                   	int3
406d8e:	cc                   	int3
406d8f:	cc                   	int3
406d90:	55                   	push   %ebp
406d91:	8b ec                	mov    %esp,%ebp
406d93:	8d 41 08             	lea    0x8(%ecx),%eax
406d96:	50                   	push   %eax
406d97:	ff 75 08             	push   0x8(%ebp)
406d9a:	e8 05 2a 01 00       	call   0x4197a4
406d9f:	83 c4 08             	add    $0x8,%esp
406da2:	5d                   	pop    %ebp
406da3:	c2 04 00             	ret    $0x4
406da6:	cc                   	int3
406da7:	cc                   	int3
406da8:	cc                   	int3
406da9:	cc                   	int3
406daa:	cc                   	int3
406dab:	cc                   	int3
406dac:	cc                   	int3
406dad:	cc                   	int3
406dae:	cc                   	int3
406daf:	cc                   	int3
406db0:	55                   	push   %ebp
406db1:	8b ec                	mov    %esp,%ebp
406db3:	56                   	push   %esi
406db4:	8b 75 08             	mov    0x8(%ebp),%esi
406db7:	57                   	push   %edi
406db8:	8b 7d 0c             	mov    0xc(%ebp),%edi
406dbb:	3b f7                	cmp    %edi,%esi
406dbd:	74 1c                	je     0x406ddb
406dbf:	53                   	push   %ebx
406dc0:	8d 59 08             	lea    0x8(%ecx),%ebx
406dc3:	0f b7 06             	movzwl (%esi),%eax
406dc6:	53                   	push   %ebx
406dc7:	50                   	push   %eax
406dc8:	e8 d7 29 01 00       	call   0x4197a4
406dcd:	66 89 06             	mov    %ax,(%esi)
406dd0:	83 c4 08             	add    $0x8,%esp
406dd3:	83 c6 02             	add    $0x2,%esi
406dd6:	3b f7                	cmp    %edi,%esi
406dd8:	75 e9                	jne    0x406dc3
406dda:	5b                   	pop    %ebx
406ddb:	5f                   	pop    %edi
406ddc:	8b c6                	mov    %esi,%eax
406dde:	5e                   	pop    %esi
406ddf:	5d                   	pop    %ebp
406de0:	c2 08 00             	ret    $0x8
406de3:	cc                   	int3
406de4:	cc                   	int3
406de5:	cc                   	int3
406de6:	cc                   	int3
406de7:	cc                   	int3
406de8:	cc                   	int3
406de9:	cc                   	int3
406dea:	cc                   	int3
406deb:	cc                   	int3
406dec:	cc                   	int3
406ded:	cc                   	int3
406dee:	cc                   	int3
406def:	cc                   	int3
406df0:	55                   	push   %ebp
406df1:	8b ec                	mov    %esp,%ebp
406df3:	83 ec 14             	sub    $0x14,%esp
406df6:	a1 14 50 45 00       	mov    0x455014,%eax
406dfb:	33 c5                	xor    %ebp,%eax
406dfd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406e00:	8a 45 08             	mov    0x8(%ebp),%al
406e03:	0f 57 c0             	xorps  %xmm0,%xmm0
406e06:	88 45 f8             	mov    %al,-0x8(%ebp)
406e09:	8d 41 18             	lea    0x18(%ecx),%eax
406e0c:	50                   	push   %eax
406e0d:	8d 45 ec             	lea    -0x14(%ebp),%eax
406e10:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406e15:	50                   	push   %eax
406e16:	6a 01                	push   $0x1
406e18:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e1b:	50                   	push   %eax
406e1c:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e1f:	50                   	push   %eax
406e20:	e8 88 26 01 00       	call   0x4194ad
406e25:	0f b7 4d f4          	movzwl -0xc(%ebp),%ecx
406e29:	83 c4 14             	add    $0x14,%esp
406e2c:	85 c0                	test   %eax,%eax
406e2e:	ba ff ff 00 00       	mov    $0xffff,%edx
406e33:	0f 48 ca             	cmovs  %edx,%ecx
406e36:	66 8b c1             	mov    %cx,%ax
406e39:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406e3c:	33 cd                	xor    %ebp,%ecx
406e3e:	e8 67 2d 01 00       	call   0x419baa
406e43:	8b e5                	mov    %ebp,%esp
406e45:	5d                   	pop    %ebp
406e46:	c2 04 00             	ret    $0x4
406e49:	cc                   	int3
406e4a:	cc                   	int3
406e4b:	cc                   	int3
406e4c:	cc                   	int3
406e4d:	cc                   	int3
406e4e:	cc                   	int3
406e4f:	cc                   	int3
406e50:	55                   	push   %ebp
406e51:	8b ec                	mov    %esp,%ebp
406e53:	83 ec 18             	sub    $0x18,%esp
406e56:	a1 14 50 45 00       	mov    0x455014,%eax
406e5b:	33 c5                	xor    %ebp,%eax
406e5d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406e60:	53                   	push   %ebx
406e61:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406e64:	56                   	push   %esi
406e65:	8b 75 08             	mov    0x8(%ebp),%esi
406e68:	57                   	push   %edi
406e69:	8b 7d 10             	mov    0x10(%ebp),%edi
406e6c:	3b f3                	cmp    %ebx,%esi
406e6e:	74 47                	je     0x406eb7
406e70:	83 c1 18             	add    $0x18,%ecx
406e73:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406e76:	8a 06                	mov    (%esi),%al
406e78:	0f 57 c0             	xorps  %xmm0,%xmm0
406e7b:	88 45 f8             	mov    %al,-0x8(%ebp)
406e7e:	8d 45 ec             	lea    -0x14(%ebp),%eax
406e81:	51                   	push   %ecx
406e82:	50                   	push   %eax
406e83:	6a 01                	push   $0x1
406e85:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e88:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406e8d:	50                   	push   %eax
406e8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e91:	50                   	push   %eax
406e92:	e8 16 26 01 00       	call   0x4194ad
406e97:	0f b7 4d f4          	movzwl -0xc(%ebp),%ecx
406e9b:	8d 7f 02             	lea    0x2(%edi),%edi
406e9e:	83 c4 14             	add    $0x14,%esp
406ea1:	85 c0                	test   %eax,%eax
406ea3:	b8 ff ff 00 00       	mov    $0xffff,%eax
406ea8:	0f 48 c8             	cmovs  %eax,%ecx
406eab:	46                   	inc    %esi
406eac:	66 89 4f fe          	mov    %cx,-0x2(%edi)
406eb0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406eb3:	3b f3                	cmp    %ebx,%esi
406eb5:	75 bf                	jne    0x406e76
406eb7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406eba:	8b c6                	mov    %esi,%eax
406ebc:	5f                   	pop    %edi
406ebd:	5e                   	pop    %esi
406ebe:	33 cd                	xor    %ebp,%ecx
406ec0:	5b                   	pop    %ebx
406ec1:	e8 e4 2c 01 00       	call   0x419baa
406ec6:	8b e5                	mov    %ebp,%esp
406ec8:	5d                   	pop    %ebp
406ec9:	c2 0c 00             	ret    $0xc
406ecc:	cc                   	int3
406ecd:	cc                   	int3
406ece:	cc                   	int3
406ecf:	cc                   	int3
406ed0:	55                   	push   %ebp
406ed1:	8b ec                	mov    %esp,%ebp
406ed3:	83 ec 14             	sub    $0x14,%esp
406ed6:	a1 14 50 45 00       	mov    0x455014,%eax
406edb:	33 c5                	xor    %ebp,%eax
406edd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ee0:	8d 41 18             	lea    0x18(%ecx),%eax
406ee3:	0f 57 c0             	xorps  %xmm0,%xmm0
406ee6:	50                   	push   %eax
406ee7:	8d 45 ec             	lea    -0x14(%ebp),%eax
406eea:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406eef:	50                   	push   %eax
406ef0:	ff 75 08             	push   0x8(%ebp)
406ef3:	8d 45 f4             	lea    -0xc(%ebp),%eax
406ef6:	50                   	push   %eax
406ef7:	e8 4c 28 01 00       	call   0x419748
406efc:	0f b6 4d 0c          	movzbl 0xc(%ebp),%ecx
406f00:	83 c4 10             	add    $0x10,%esp
406f03:	0f b6 55 f4          	movzbl -0xc(%ebp),%edx
406f07:	83 f8 01             	cmp    $0x1,%eax
406f0a:	0f 45 d1             	cmovne %ecx,%edx
406f0d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f10:	33 cd                	xor    %ebp,%ecx
406f12:	8a c2                	mov    %dl,%al
406f14:	e8 91 2c 01 00       	call   0x419baa
406f19:	8b e5                	mov    %ebp,%esp
406f1b:	5d                   	pop    %ebp
406f1c:	c2 08 00             	ret    $0x8
406f1f:	cc                   	int3
406f20:	55                   	push   %ebp
406f21:	8b ec                	mov    %esp,%ebp
406f23:	83 ec 18             	sub    $0x18,%esp
406f26:	a1 14 50 45 00       	mov    0x455014,%eax
406f2b:	33 c5                	xor    %ebp,%eax
406f2d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406f30:	53                   	push   %ebx
406f31:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406f34:	56                   	push   %esi
406f35:	8b 75 08             	mov    0x8(%ebp),%esi
406f38:	57                   	push   %edi
406f39:	8b 7d 14             	mov    0x14(%ebp),%edi
406f3c:	3b f3                	cmp    %ebx,%esi
406f3e:	74 41                	je     0x406f81
406f40:	83 c1 18             	add    $0x18,%ecx
406f43:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406f46:	0f b7 06             	movzwl (%esi),%eax
406f49:	0f 57 c0             	xorps  %xmm0,%xmm0
406f4c:	51                   	push   %ecx
406f4d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406f50:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406f55:	51                   	push   %ecx
406f56:	50                   	push   %eax
406f57:	8d 45 f4             	lea    -0xc(%ebp),%eax
406f5a:	50                   	push   %eax
406f5b:	e8 e8 27 01 00       	call   0x419748
406f60:	0f b6 4d 10          	movzbl 0x10(%ebp),%ecx
406f64:	8d 7f 01             	lea    0x1(%edi),%edi
406f67:	0f b6 55 f4          	movzbl -0xc(%ebp),%edx
406f6b:	83 c4 10             	add    $0x10,%esp
406f6e:	83 f8 01             	cmp    $0x1,%eax
406f71:	0f 45 d1             	cmovne %ecx,%edx
406f74:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406f77:	83 c6 02             	add    $0x2,%esi
406f7a:	88 57 ff             	mov    %dl,-0x1(%edi)
406f7d:	3b f3                	cmp    %ebx,%esi
406f7f:	75 c5                	jne    0x406f46
406f81:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f84:	8b c6                	mov    %esi,%eax
406f86:	5f                   	pop    %edi
406f87:	5e                   	pop    %esi
406f88:	33 cd                	xor    %ebp,%ecx
406f8a:	5b                   	pop    %ebx
406f8b:	e8 1a 2c 01 00       	call   0x419baa
406f90:	8b e5                	mov    %ebp,%esp
406f92:	5d                   	pop    %ebp
406f93:	c2 10 00             	ret    $0x10
406f96:	cc                   	int3
406f97:	cc                   	int3
406f98:	cc                   	int3
406f99:	cc                   	int3
406f9a:	cc                   	int3
406f9b:	cc                   	int3
406f9c:	cc                   	int3
406f9d:	cc                   	int3
406f9e:	cc                   	int3
406f9f:	cc                   	int3