407bfc:	89 4f 18             	mov    %ecx,0x18(%edi)
407bff:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c03:	6b c0 0c             	imul   $0xc,%eax,%eax
407c06:	03 c1                	add    %ecx,%eax
407c08:	89 47 1c             	mov    %eax,0x1c(%edi)
407c0b:	33 c0                	xor    %eax,%eax
407c0d:	39 45 d0             	cmp    %eax,-0x30(%ebp)
407c10:	0f 95 c0             	setne  %al
407c13:	89 47 20             	mov    %eax,0x20(%edi)
407c16:	80 3e 02             	cmpb   $0x2,(%esi)
407c19:	75 5a                	jne    0x407c75
407c1b:	80 7e 01 02          	cmpb   $0x2,0x1(%esi)
407c1f:	73 54                	jae    0x407c75
407c21:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c25:	6b d0 0c             	imul   $0xc,%eax,%edx
407c28:	0f b7 46 06          	movzwl 0x6(%esi),%eax
407c2c:	c1 e0 04             	shl    $0x4,%eax
407c2f:	03 d0                	add    %eax,%edx
407c31:	0f b7 46 02          	movzwl 0x2(%esi),%eax
407c35:	03 d0                	add    %eax,%edx
407c37:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
407c3e:	eb 35                	jmp    0x407c75
407c40:	6a 10                	push   $0x10
407c42:	59                   	pop    %ecx
407c43:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407c46:	33 c0                	xor    %eax,%eax
407c48:	8b fe                	mov    %esi,%edi
407c4a:	ab                   	stos   %eax,%es:(%edi)
407c4b:	ab                   	stos   %eax,%es:(%edi)
407c4c:	ab                   	stos   %eax,%es:(%edi)
407c4d:	ab                   	stos   %eax,%es:(%edi)
407c4e:	8b 7d f4             	mov    -0xc(%ebp),%edi
407c51:	66 89 4e 02          	mov    %cx,0x2(%esi)
407c55:	66 c7 06 02 02       	movw   $0x202,(%esi)
407c5a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407c5d:	89 77 14             	mov    %esi,0x14(%edi)
407c60:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
407c64:	03 ce                	add    %esi,%ecx
407c66:	89 4f 18             	mov    %ecx,0x18(%edi)
407c69:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c6d:	6b c0 0c             	imul   $0xc,%eax,%eax
407c70:	03 c1                	add    %ecx,%eax
407c72:	89 47 1c             	mov    %eax,0x1c(%edi)
407c75:	8b 4d dc             	mov    -0x24(%ebp),%ecx
407c78:	89 77 24             	mov    %esi,0x24(%edi)
407c7b:	89 57 28             	mov    %edx,0x28(%edi)
407c7e:	85 c9                	test   %ecx,%ecx
407c80:	75 05                	jne    0x407c87
407c82:	bb c8 00 00 00       	mov    $0xc8,%ebx
407c87:	33 c0                	xor    %eax,%eax
407c89:	89 5f 2c             	mov    %ebx,0x2c(%edi)
407c8c:	3b f1                	cmp    %ecx,%esi
407c8e:	0f 94 c0             	sete   %al
407c91:	89 47 30             	mov    %eax,0x30(%edi)
407c94:	33 c0                	xor    %eax,%eax
407c96:	eb 1a                	jmp    0x407cb2
407c98:	8b 45 dc             	mov    -0x24(%ebp),%eax
407c9b:	85 c0                	test   %eax,%eax
407c9d:	74 10                	je     0x407caf
407c9f:	50                   	push   %eax
407ca0:	6a 00                	push   $0x0
407ca2:	ff 15 7c 60 42 00    	call   *0x42607c
407ca8:	50                   	push   %eax
407ca9:	ff 15 a4 61 42 00    	call   *0x4261a4
407caf:	8b 45 d8             	mov    -0x28(%ebp),%eax
407cb2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407cb5:	5f                   	pop    %edi
407cb6:	5e                   	pop    %esi
407cb7:	33 cd                	xor    %ebp,%ecx
407cb9:	5b                   	pop    %ebx
407cba:	e8 b1 9b 01 00       	call   0x421870
407cbf:	c9                   	leave
407cc0:	c2 0c 00             	ret    $0xc
407cc3:	8b ff                	mov    %edi,%edi
407cc5:	53                   	push   %ebx
407cc6:	57                   	push   %edi
407cc7:	8b f9                	mov    %ecx,%edi
407cc9:	33 db                	xor    %ebx,%ebx
407ccb:	39 5f 30             	cmp    %ebx,0x30(%edi)
407cce:	74 1a                	je     0x407cea
407cd0:	56                   	push   %esi
407cd1:	8b 77 24             	mov    0x24(%edi),%esi
407cd4:	ff 15 7c 60 42 00    	call   *0x42607c
407cda:	56                   	push   %esi
407cdb:	53                   	push   %ebx
407cdc:	50                   	push   %eax
407cdd:	ff 15 a4 61 42 00    	call   *0x4261a4
407ce3:	89 5f 24             	mov    %ebx,0x24(%edi)
407ce6:	89 5f 14             	mov    %ebx,0x14(%edi)
407ce9:	5e                   	pop    %esi
407cea:	5f                   	pop    %edi
407ceb:	5b                   	pop    %ebx
407cec:	c3                   	ret
407ced:	8b ff                	mov    %edi,%edi
407cef:	55                   	push   %ebp
407cf0:	8b ec                	mov    %esp,%ebp
407cf2:	83 ec 20             	sub    $0x20,%esp
407cf5:	53                   	push   %ebx
407cf6:	56                   	push   %esi
407cf7:	57                   	push   %edi
407cf8:	8b f9                	mov    %ecx,%edi
407cfa:	89 55 f8             	mov    %edx,-0x8(%ebp)
407cfd:	33 d2                	xor    %edx,%edx
407cff:	89 7d fc             	mov    %edi,-0x4(%ebp)
407d02:	6a 0c                	push   $0xc
407d04:	8b f2                	mov    %edx,%esi
407d06:	8b ca                	mov    %edx,%ecx
407d08:	8b 5f 14             	mov    0x14(%edi),%ebx
407d0b:	8b 47 18             	mov    0x18(%edi),%eax
407d0e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407d11:	89 5d f0             	mov    %ebx,-0x10(%ebp)
407d14:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
407d18:	89 45 f4             	mov    %eax,-0xc(%ebp)
407d1b:	5b                   	pop    %ebx
407d1c:	85 c0                	test   %eax,%eax
407d1e:	74 44                	je     0x407d64
407d20:	8b 47 18             	mov    0x18(%edi),%eax
407d23:	8b 7d 08             	mov    0x8(%ebp),%edi
407d26:	39 38                	cmp    %edi,(%eax)
407d28:	8b 7d fc             	mov    -0x4(%ebp),%edi
407d2b:	75 2f                	jne    0x407d5c
407d2d:	39 55 0c             	cmp    %edx,0xc(%ebp)
407d30:	74 19                	je     0x407d4b
407d32:	39 57 20             	cmp    %edx,0x20(%edi)
407d35:	74 14                	je     0x407d4b
407d37:	f6 40 04 01          	testb  $0x1,0x4(%eax)
407d3b:	75 1f                	jne    0x407d5c
407d3d:	6b f1 0c             	imul   $0xc,%ecx,%esi
407d40:	8d 7d e0             	lea    -0x20(%ebp),%edi
407d43:	03 75 ec             	add    -0x14(%ebp),%esi
407d46:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d47:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d48:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d49:	eb 23                	jmp    0x407d6e
407d4b:	8b f0                	mov    %eax,%esi
407d4d:	8d 7d e0             	lea    -0x20(%ebp),%edi
407d50:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d51:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d52:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d53:	33 f6                	xor    %esi,%esi
407d55:	46                   	inc    %esi
407d56:	f6 40 04 01          	testb  $0x1,0x4(%eax)
407d5a:	75 08                	jne    0x407d64
407d5c:	41                   	inc    %ecx
407d5d:	03 c3                	add    %ebx,%eax
407d5f:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
407d62:	72 bf                	jb     0x407d23
407d64:	8b c2                	mov    %edx,%eax
407d66:	85 f6                	test   %esi,%esi
407d68:	0f 84 c1 00 00 00    	je     0x407e2f
407d6e:	39 55 0c             	cmp    %edx,0xc(%ebp)
407d71:	74 08                	je     0x407d7b
407d73:	8b 45 fc             	mov    -0x4(%ebp),%eax
407d76:	39 50 20             	cmp    %edx,0x20(%eax)
407d79:	75 03                	jne    0x407d7e
407d7b:	6a 08                	push   $0x8
407d7d:	5b                   	pop    %ebx
407d7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
407d81:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407d84:	8b 04 03             	mov    (%ebx,%eax,1),%eax
407d87:	a8 04                	test   $0x4,%al
407d89:	74 06                	je     0x407d91
407d8b:	81 e1 ff cf ff ff    	and    $0xffffcfff,%ecx
407d91:	a8 02                	test   $0x2,%al
407d93:	74 06                	je     0x407d9b
407d95:	81 e1 ff f3 ff ff    	and    $0xfffff3ff,%ecx
407d9b:	a8 01                	test   $0x1,%al
407d9d:	74 06                	je     0x407da5
407d9f:	81 e1 ff fc ff ff    	and    $0xfffffcff,%ecx
407da5:	a8 08                	test   $0x8,%al
407da7:	74 0b                	je     0x407db4
407da9:	81 e1 ff ff ff c0    	and    $0xc0ffffff,%ecx
407daf:	89 55 f4             	mov    %edx,-0xc(%ebp)
407db2:	eb 06                	jmp    0x407dba
407db4:	8b 45 e8             	mov    -0x18(%ebp),%eax
407db7:	89 45 f4             	mov    %eax,-0xc(%ebp)
407dba:	39 55 e0             	cmp    %edx,-0x20(%ebp)
407dbd:	74 6e                	je     0x407e2d
407dbf:	8b d9                	mov    %ecx,%ebx
407dc1:	8b f9                	mov    %ecx,%edi
407dc3:	c1 eb 0c             	shr    $0xc,%ebx
407dc6:	8b f1                	mov    %ecx,%esi
407dc8:	c1 ef 0a             	shr    $0xa,%edi
407dcb:	8b c3                	mov    %ebx,%eax
407dcd:	c1 ee 08             	shr    $0x8,%esi
407dd0:	0b c7                	or     %edi,%eax
407dd2:	0b c6                	or     %esi,%eax
407dd4:	a8 03                	test   $0x3,%al
407dd6:	75 0d                	jne    0x407de5
407dd8:	f7 c1 00 00 00 3f    	test   $0x3f000000,%ecx
407dde:	75 05                	jne    0x407de5
407de0:	f6 c1 02             	test   $0x2,%cl
407de3:	74 48                	je     0x407e2d
407de5:	8b 45 f8             	mov    -0x8(%ebp),%eax
407de8:	8b 55 f4             	mov    -0xc(%ebp),%edx
407deb:	89 50 0c             	mov    %edx,0xc(%eax)
407dee:	8b c1                	mov    %ecx,%eax
407df0:	8b 55 f8             	mov    -0x8(%ebp),%edx
407df3:	c1 e8 1e             	shr    $0x1e,%eax
407df6:	89 42 08             	mov    %eax,0x8(%edx)
407df9:	8b c1                	mov    %ecx,%eax
407dfb:	c1 e8 18             	shr    $0x18,%eax
407dfe:	24 3f                	and    $0x3f,%al
407e00:	d1 e9                	shr    $1,%ecx
407e02:	88 42 04             	mov    %al,0x4(%edx)
407e05:	83 e1 01             	and    $0x1,%ecx
407e08:	8b c2                	mov    %edx,%eax
407e0a:	89 48 14             	mov    %ecx,0x14(%eax)
407e0d:	83 e3 03             	and    $0x3,%ebx
407e10:	74 04                	je     0x407e16
407e12:	89 18                	mov    %ebx,(%eax)
407e14:	eb 10                	jmp    0x407e26
407e16:	83 e7 03             	and    $0x3,%edi
407e19:	74 04                	je     0x407e1f
407e1b:	89 38                	mov    %edi,(%eax)
407e1d:	eb 07                	jmp    0x407e26
407e1f:	83 e6 03             	and    $0x3,%esi
407e22:	74 02                	je     0x407e26
407e24:	89 30                	mov    %esi,(%eax)
407e26:	33 c0                	xor    %eax,%eax
407e28:	40                   	inc    %eax
407e29:	33 d2                	xor    %edx,%edx
407e2b:	eb 02                	jmp    0x407e2f
407e2d:	8b c2                	mov    %edx,%eax
407e2f:	8b 7d f0             	mov    -0x10(%ebp),%edi
407e32:	8b f2                	mov    %edx,%esi
407e34:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e37:	0f b7 7f 06          	movzwl 0x6(%edi),%edi
407e3b:	8b 49 1c             	mov    0x1c(%ecx),%ecx
407e3e:	85 ff                	test   %edi,%edi
407e40:	74 14                	je     0x407e56
407e42:	8b 5d 08             	mov    0x8(%ebp),%ebx
407e45:	39 19                	cmp    %ebx,(%ecx)
407e47:	74 0a                	je     0x407e53
407e49:	46                   	inc    %esi
407e4a:	83 c1 10             	add    $0x10,%ecx
407e4d:	3b f7                	cmp    %edi,%esi
407e4f:	72 f4                	jb     0x407e45
407e51:	eb 03                	jmp    0x407e56
407e53:	33 d2                	xor    %edx,%edx
407e55:	42                   	inc    %edx
407e56:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407e59:	5f                   	pop    %edi
407e5a:	5e                   	pop    %esi
407e5b:	5b                   	pop    %ebx
407e5c:	89 51 10             	mov    %edx,0x10(%ecx)
407e5f:	c9                   	leave
407e60:	c2 08 00             	ret    $0x8
407e63:	8b ff                	mov    %edi,%edi
407e65:	55                   	push   %ebp
407e66:	8b ec                	mov    %esp,%ebp
407e68:	8b 45 0c             	mov    0xc(%ebp),%eax
407e6b:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
407e71:	33 c0                	xor    %eax,%eax
407e73:	5d                   	pop    %ebp
407e74:	c2 08 00             	ret    $0x8
407e77:	8b ff                	mov    %edi,%edi
407e79:	55                   	push   %ebp
407e7a:	8b ec                	mov    %esp,%ebp
407e7c:	83 ec 14             	sub    $0x14,%esp
407e7f:	8b c1                	mov    %ecx,%eax
407e81:	53                   	push   %ebx
407e82:	56                   	push   %esi
407e83:	33 f6                	xor    %esi,%esi
407e85:	89 45 ec             	mov    %eax,-0x14(%ebp)
407e88:	8b 50 14             	mov    0x14(%eax),%edx
407e8b:	8b de                	mov    %esi,%ebx
407e8d:	8b 48 18             	mov    0x18(%eax),%ecx
407e90:	89 75 fc             	mov    %esi,-0x4(%ebp)
407e93:	89 55 f0             	mov    %edx,-0x10(%ebp)
407e96:	0f b7 42 04          	movzwl 0x4(%edx),%eax
407e9a:	33 d2                	xor    %edx,%edx
407e9c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407e9f:	66 3b d0             	cmp    %ax,%dx
407ea2:	73 5f                	jae    0x407f03
407ea4:	57                   	push   %edi
407ea5:	8b d0                	mov    %eax,%edx
407ea7:	8b f9                	mov    %ecx,%edi
407ea9:	8b cf                	mov    %edi,%ecx
407eab:	e8 6f fb ff ff       	call   0x407a1f
407eb0:	85 c0                	test   %eax,%eax
407eb2:	74 38                	je     0x407eec
407eb4:	f6 47 04 01          	testb  $0x1,0x4(%edi)
407eb8:	75 24                	jne    0x407ede
407eba:	0f b7 c2             	movzwl %dx,%eax
407ebd:	8b ce                	mov    %esi,%ecx
407ebf:	89 45 f4             	mov    %eax,-0xc(%ebp)
407ec2:	85 c0                	test   %eax,%eax
407ec4:	74 18                	je     0x407ede
407ec6:	8b 55 f8             	mov    -0x8(%ebp),%edx
407ec9:	3b cb                	cmp    %ebx,%ecx
407ecb:	74 09                	je     0x407ed6
407ecd:	8b 07                	mov    (%edi),%eax
407ecf:	3b 02                	cmp    (%edx),%eax
407ed1:	74 19                	je     0x407eec
407ed3:	8b 45 f4             	mov    -0xc(%ebp),%eax
407ed6:	41                   	inc    %ecx
407ed7:	83 c2 0c             	add    $0xc,%edx
407eda:	3b c8                	cmp    %eax,%ecx
407edc:	72 eb                	jb     0x407ec9
407ede:	8d 45 fc             	lea    -0x4(%ebp),%eax
407ee1:	50                   	push   %eax
407ee2:	57                   	push   %edi
407ee3:	e8 7b ff ff ff       	call   0x407e63
407ee8:	85 c0                	test   %eax,%eax
407eea:	74 11                	je     0x407efd
407eec:	8b 45 f0             	mov    -0x10(%ebp),%eax
407eef:	43                   	inc    %ebx
407ef0:	83 c7 0c             	add    $0xc,%edi
407ef3:	0f b7 40 04          	movzwl 0x4(%eax),%eax
407ef7:	8b d0                	mov    %eax,%edx
407ef9:	3b d8                	cmp    %eax,%ebx
407efb:	72 ac                	jb     0x407ea9
407efd:	5f                   	pop    %edi
407efe:	39 75 fc             	cmp    %esi,-0x4(%ebp)
407f01:	75 0c                	jne    0x407f0f
407f03:	8b 45 ec             	mov    -0x14(%ebp),%eax
407f06:	8b 40 14             	mov    0x14(%eax),%eax
407f09:	66 39 70 06          	cmp    %si,0x6(%eax)
407f0d:	76 03                	jbe    0x407f12
407f0f:	33 f6                	xor    %esi,%esi
407f11:	46                   	inc    %esi
407f12:	8b c6                	mov    %esi,%eax
407f14:	5e                   	pop    %esi
407f15:	5b                   	pop    %ebx
407f16:	c9                   	leave
407f17:	c3                   	ret
407f18:	8b ff                	mov    %edi,%edi
407f1a:	55                   	push   %ebp
407f1b:	8b ec                	mov    %esp,%ebp
407f1d:	b8 24 10 00 00       	mov    $0x1024,%eax
407f22:	e8 29 ac 01 00       	call   0x422b50
407f27:	a1 10 42 42 00       	mov    0x424210,%eax
407f2c:	33 c5                	xor    %ebp,%eax
407f2e:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f31:	8b 41 14             	mov    0x14(%ecx),%eax
407f34:	53                   	push   %ebx
407f35:	56                   	push   %esi
407f36:	33 f6                	xor    %esi,%esi
407f38:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
407f3e:	21 b5 e4 ef ff ff    	and    %esi,-0x101c(%ebp)
407f44:	33 db                	xor    %ebx,%ebx
407f46:	57                   	push   %edi
407f47:	8b 79 1c             	mov    0x1c(%ecx),%edi
407f4a:	89 8d dc ef ff ff    	mov    %ecx,-0x1024(%ebp)
407f50:	66 3b 58 06          	cmp    0x6(%eax),%bx
407f54:	0f 83 2c 01 00 00    	jae    0x408086
407f5a:	8b 5d 08             	mov    0x8(%ebp),%ebx
407f5d:	83 c7 04             	add    $0x4,%edi
407f60:	39 57 fc             	cmp    %edx,-0x4(%edi)