424a67:	8b 0e                	mov    (%esi),%ecx
424a69:	89 5d fc             	mov    %ebx,-0x4(%ebp)
424a6c:	8d 51 02             	lea    0x2(%ecx),%edx
424a6f:	66 8b 01             	mov    (%ecx),%ax
424a72:	03 cf                	add    %edi,%ecx
424a74:	66 3b c3             	cmp    %bx,%ax
424a77:	75 f6                	jne    0x424a6f
424a79:	2b ca                	sub    %edx,%ecx
424a7b:	33 c0                	xor    %eax,%eax
424a7d:	8b 56 04             	mov    0x4(%esi),%edx
424a80:	d1 f9                	sar    $1,%ecx
424a82:	83 f9 03             	cmp    $0x3,%ecx
424a85:	0f 94 c0             	sete   %al
424a88:	8d 5a 02             	lea    0x2(%edx),%ebx
424a8b:	89 46 10             	mov    %eax,0x10(%esi)
424a8e:	66 8b 02             	mov    (%edx),%ax
424a91:	03 d7                	add    %edi,%edx
424a93:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
424a97:	75 f5                	jne    0x424a8e
424a99:	2b d3                	sub    %ebx,%edx
424a9b:	33 c0                	xor    %eax,%eax
424a9d:	d1 fa                	sar    $1,%edx
424a9f:	83 fa 03             	cmp    $0x3,%edx
424aa2:	0f 94 c0             	sete   %al
424aa5:	89 46 14             	mov    %eax,0x14(%esi)
424aa8:	83 f9 03             	cmp    $0x3,%ecx
424aab:	74 0a                	je     0x424ab7
424aad:	ff 36                	push   (%esi)
424aaf:	e8 94 00 00 00       	call   0x424b48
424ab4:	59                   	pop    %ecx
424ab5:	8b f8                	mov    %eax,%edi
424ab7:	33 db                	xor    %ebx,%ebx
424ab9:	89 7e 0c             	mov    %edi,0xc(%esi)
424abc:	53                   	push   %ebx
424abd:	53                   	push   %ebx
424abe:	6a 03                	push   $0x3
424ac0:	68 7c 4b 42 00       	push   $0x424b7c
424ac5:	e8 30 99 ff ff       	call   0x41e3fa
424aca:	8b 4e 08             	mov    0x8(%esi),%ecx
424acd:	f6 c1 07             	test   $0x7,%cl
424ad0:	0f 95 c2             	setne  %dl
424ad3:	0f ba e1 09          	bt     $0x9,%ecx
424ad7:	0f 92 c0             	setb   %al
424ada:	22 d0                	and    %al,%dl
424adc:	0f ba e1 08          	bt     $0x8,%ecx
424ae0:	0f 92 c0             	setb   %al
424ae3:	84 d0                	test   %dl,%al
424ae5:	75 03                	jne    0x424aea
424ae7:	89 5e 08             	mov    %ebx,0x8(%esi)
424aea:	5f                   	pop    %edi
424aeb:	5e                   	pop    %esi
424aec:	5b                   	pop    %ebx
424aed:	c9                   	leave
424aee:	c3                   	ret
424aef:	8b ff                	mov    %edi,%edi
424af1:	55                   	push   %ebp
424af2:	8b ec                	mov    %esp,%ebp
424af4:	53                   	push   %ebx
424af5:	56                   	push   %esi
424af6:	8b 75 08             	mov    0x8(%ebp),%esi
424af9:	33 db                	xor    %ebx,%ebx
424afb:	57                   	push   %edi
424afc:	6a 02                	push   $0x2
424afe:	5a                   	pop    %edx
424aff:	8b 0e                	mov    (%esi),%ecx
424b01:	8d 79 02             	lea    0x2(%ecx),%edi
424b04:	66 8b 01             	mov    (%ecx),%ax
424b07:	03 ca                	add    %edx,%ecx
424b09:	66 3b c3             	cmp    %bx,%ax
424b0c:	75 f6                	jne    0x424b04
424b0e:	2b cf                	sub    %edi,%ecx
424b10:	33 c0                	xor    %eax,%eax
424b12:	d1 f9                	sar    $1,%ecx
424b14:	83 f9 03             	cmp    $0x3,%ecx
424b17:	0f 94 c0             	sete   %al
424b1a:	89 46 10             	mov    %eax,0x10(%esi)
424b1d:	74 0a                	je     0x424b29
424b1f:	ff 36                	push   (%esi)
424b21:	e8 22 00 00 00       	call   0x424b48
424b26:	59                   	pop    %ecx
424b27:	8b d0                	mov    %eax,%edx
424b29:	53                   	push   %ebx
424b2a:	53                   	push   %ebx
424b2b:	6a 03                	push   $0x3
424b2d:	68 5d 4e 42 00       	push   $0x424e5d
424b32:	89 56 0c             	mov    %edx,0xc(%esi)
424b35:	e8 c0 98 ff ff       	call   0x41e3fa
424b3a:	f6 46 08 04          	testb  $0x4,0x8(%esi)
424b3e:	75 03                	jne    0x424b43
424b40:	89 5e 08             	mov    %ebx,0x8(%esi)
424b43:	5f                   	pop    %edi
424b44:	5e                   	pop    %esi
424b45:	5b                   	pop    %ebx
424b46:	5d                   	pop    %ebp
424b47:	c3                   	ret
424b48:	8b ff                	mov    %edi,%edi
424b4a:	55                   	push   %ebp
424b4b:	8b ec                	mov    %esp,%ebp
424b4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
424b50:	33 d2                	xor    %edx,%edx
424b52:	85 c9                	test   %ecx,%ecx
424b54:	75 04                	jne    0x424b5a
424b56:	33 c0                	xor    %eax,%eax
424b58:	5d                   	pop    %ebp
424b59:	c3                   	ret
424b5a:	0f b7 01             	movzwl (%ecx),%eax
424b5d:	83 c1 02             	add    $0x2,%ecx
424b60:	66 83 f8 41          	cmp    $0x41,%ax
424b64:	72 06                	jb     0x424b6c
424b66:	66 83 f8 5a          	cmp    $0x5a,%ax
424b6a:	76 09                	jbe    0x424b75
424b6c:	83 c0 9f             	add    $0xffffff9f,%eax
424b6f:	66 83 f8 19          	cmp    $0x19,%ax
424b73:	77 03                	ja     0x424b78
424b75:	42                   	inc    %edx
424b76:	eb e2                	jmp    0x424b5a
424b78:	8b c2                	mov    %edx,%eax
424b7a:	5d                   	pop    %ebp
424b7b:	c3                   	ret
424b7c:	8b ff                	mov    %edi,%edi
424b7e:	55                   	push   %ebp
424b7f:	8b ec                	mov    %esp,%ebp
424b81:	81 ec 88 00 00 00    	sub    $0x88,%esp
424b87:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
424b8c:	33 c5                	xor    %ebp,%eax
424b8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
424b91:	56                   	push   %esi
424b92:	57                   	push   %edi
424b93:	8b 7d 08             	mov    0x8(%ebp),%edi
424b96:	e8 4e 77 ff ff       	call   0x41c2e9
424b9b:	8b f0                	mov    %eax,%esi
424b9d:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424ba3:	6a 40                	push   $0x40
424ba5:	50                   	push   %eax
424ba6:	8b 4e 64             	mov    0x64(%esi),%ecx
424ba9:	f7 d9                	neg    %ecx
424bab:	1b c9                	sbb    %ecx,%ecx
424bad:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
424bb3:	81 c1 02 10 00 00    	add    $0x1002,%ecx
424bb9:	51                   	push   %ecx
424bba:	57                   	push   %edi
424bbb:	e8 8d 99 ff ff       	call   0x41e54d
424bc0:	85 c0                	test   %eax,%eax
424bc2:	75 09                	jne    0x424bcd
424bc4:	21 46 58             	and    %eax,0x58(%esi)
424bc7:	40                   	inc    %eax
424bc8:	e9 47 02 00 00       	jmp    0x424e14
424bcd:	53                   	push   %ebx
424bce:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424bd4:	50                   	push   %eax
424bd5:	ff 76 54             	push   0x54(%esi)
424bd8:	e8 58 3b ff ff       	call   0x418735
424bdd:	33 db                	xor    %ebx,%ebx
424bdf:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
424be5:	59                   	pop    %ecx
424be6:	59                   	pop    %ecx
424be7:	85 c0                	test   %eax,%eax
424be9:	0f 85 e0 00 00 00    	jne    0x424ccf
424bef:	6a 40                	push   $0x40
424bf1:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424bf7:	50                   	push   %eax
424bf8:	8b 46 60             	mov    0x60(%esi),%eax
424bfb:	f7 d8                	neg    %eax
424bfd:	1b c0                	sbb    %eax,%eax
424bff:	25 02 f0 ff ff       	and    $0xfffff002,%eax
424c04:	05 01 10 00 00       	add    $0x1001,%eax
424c09:	50                   	push   %eax
424c0a:	57                   	push   %edi
424c0b:	e8 3d 99 ff ff       	call   0x41e54d
424c10:	85 c0                	test   %eax,%eax
424c12:	75 08                	jne    0x424c1c
424c14:	21 5e 58             	and    %ebx,0x58(%esi)
424c17:	e9 ef 00 00 00       	jmp    0x424d0b
424c1c:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424c22:	50                   	push   %eax
424c23:	ff 76 50             	push   0x50(%esi)
424c26:	e8 0a 3b ff ff       	call   0x418735
424c2b:	59                   	pop    %ecx
424c2c:	59                   	pop    %ecx
424c2d:	8b 4e 58             	mov    0x58(%esi),%ecx
424c30:	85 c0                	test   %eax,%eax
424c32:	75 1b                	jne    0x424c4f
424c34:	81 c9 04 03 00 00    	or     $0x304,%ecx
424c3a:	89 4e 58             	mov    %ecx,0x58(%esi)
424c3d:	8b cf                	mov    %edi,%ecx
424c3f:	8d 51 02             	lea    0x2(%ecx),%edx
424c42:	66 8b 01             	mov    (%ecx),%ax
424c45:	83 c1 02             	add    $0x2,%ecx
424c48:	66 3b c3             	cmp    %bx,%ax
424c4b:	75 f5                	jne    0x424c42
424c4d:	eb 5e                	jmp    0x424cad
424c4f:	f6 c1 02             	test   $0x2,%cl
424c52:	75 7b                	jne    0x424ccf
424c54:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
424c57:	74 2f                	je     0x424c88
424c59:	ff 76 5c             	push   0x5c(%esi)
424c5c:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424c62:	50                   	push   %eax
424c63:	ff 76 50             	push   0x50(%esi)
424c66:	e8 e6 38 00 00       	call   0x428551
424c6b:	83 c4 0c             	add    $0xc,%esp
424c6e:	85 c0                	test   %eax,%eax
424c70:	75 16                	jne    0x424c88
424c72:	83 4e 58 02          	orl    $0x2,0x58(%esi)
424c76:	8b cf                	mov    %edi,%ecx
424c78:	8d 51 02             	lea    0x2(%ecx),%edx
424c7b:	66 8b 01             	mov    (%ecx),%ax
424c7e:	83 c1 02             	add    $0x2,%ecx
424c81:	66 3b c3             	cmp    %bx,%ax
424c84:	75 f5                	jne    0x424c7b
424c86:	eb 25                	jmp    0x424cad
424c88:	f6 46 58 01          	testb  $0x1,0x58(%esi)
424c8c:	75 41                	jne    0x424ccf
424c8e:	57                   	push   %edi
424c8f:	e8 78 03 00 00       	call   0x42500c
424c94:	59                   	pop    %ecx
424c95:	85 c0                	test   %eax,%eax
424c97:	74 36                	je     0x424ccf
424c99:	83 4e 58 01          	orl    $0x1,0x58(%esi)
424c9d:	8b cf                	mov    %edi,%ecx
424c9f:	8d 51 02             	lea    0x2(%ecx),%edx
424ca2:	66 8b 01             	mov    (%ecx),%ax
424ca5:	83 c1 02             	add    $0x2,%ecx
424ca8:	66 3b c3             	cmp    %bx,%ax
424cab:	75 f5                	jne    0x424ca2
424cad:	2b ca                	sub    %edx,%ecx
424caf:	d1 f9                	sar    $1,%ecx
424cb1:	8d 41 01             	lea    0x1(%ecx),%eax
424cb4:	50                   	push   %eax
424cb5:	57                   	push   %edi
424cb6:	8d 86 a0 02 00 00    	lea    0x2a0(%esi),%eax
424cbc:	6a 55                	push   $0x55
424cbe:	50                   	push   %eax
424cbf:	e8 09 d1 ff ff       	call   0x421dcd
424cc4:	83 c4 10             	add    $0x10,%esp
424cc7:	85 c0                	test   %eax,%eax
424cc9:	0f 85 83 01 00 00    	jne    0x424e52
424ccf:	8b 46 58             	mov    0x58(%esi),%eax
424cd2:	b9 00 03 00 00       	mov    $0x300,%ecx
424cd7:	23 c1                	and    %ecx,%eax
424cd9:	3b c1                	cmp    %ecx,%eax
424cdb:	0f 84 27 01 00 00    	je     0x424e08
424ce1:	8b 4e 60             	mov    0x60(%esi),%ecx
424ce4:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424cea:	f7 d9                	neg    %ecx
424cec:	6a 40                	push   $0x40
424cee:	1b c9                	sbb    %ecx,%ecx
424cf0:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
424cf6:	50                   	push   %eax
424cf7:	81 c1 01 10 00 00    	add    $0x1001,%ecx
424cfd:	51                   	push   %ecx
424cfe:	57                   	push   %edi
424cff:	e8 49 98 ff ff       	call   0x41e54d
424d04:	85 c0                	test   %eax,%eax
424d06:	75 0b                	jne    0x424d13
424d08:	89 5e 58             	mov    %ebx,0x58(%esi)
424d0b:	33 c0                	xor    %eax,%eax
424d0d:	40                   	inc    %eax
424d0e:	e9 00 01 00 00       	jmp    0x424e13
424d13:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
424d19:	50                   	push   %eax
424d1a:	ff 76 50             	push   0x50(%esi)
424d1d:	e8 13 3a ff ff       	call   0x418735
424d22:	59                   	pop    %ecx
424d23:	59                   	pop    %ecx
424d24:	85 c0                	test   %eax,%eax
424d26:	0f 85 dc 00 00 00    	jne    0x424e08
424d2c:	8b 4e 58             	mov    0x58(%esi),%ecx
424d2f:	81 c9 00 02 00 00    	or     $0x200,%ecx
424d35:	89 4e 58             	mov    %ecx,0x58(%esi)
424d38:	39 5e 60             	cmp    %ebx,0x60(%esi)
424d3b:	74 31                	je     0x424d6e
424d3d:	81 c9 00 01 00 00    	or     $0x100,%ecx
424d43:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
424d49:	89 4e 58             	mov    %ecx,0x58(%esi)
424d4c:	66 39 1a             	cmp    %bx,(%edx)
424d4f:	0f 85 b3 00 00 00    	jne    0x424e08
424d55:	8b cf                	mov    %edi,%ecx
424d57:	8d 59 02             	lea    0x2(%ecx),%ebx
424d5a:	66 8b 01             	mov    (%ecx),%ax
424d5d:	83 c1 02             	add    $0x2,%ecx
424d60:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
424d67:	75 f1                	jne    0x424d5a
424d69:	e9 82 00 00 00       	jmp    0x424df0
424d6e:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
424d71:	0f 84 af 00 00 00    	je     0x424e26
424d77:	8b 56 50             	mov    0x50(%esi),%edx
424d7a:	8d 5a 02             	lea    0x2(%edx),%ebx
424d7d:	66 8b 02             	mov    (%edx),%ax
424d80:	83 c2 02             	add    $0x2,%edx
424d83:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
424d8a:	75 f1                	jne    0x424d7d
424d8c:	2b d3                	sub    %ebx,%edx
424d8e:	d1 fa                	sar    $1,%edx
424d90:	3b 56 5c             	cmp    0x5c(%esi),%edx
424d93:	0f 85 8b 00 00 00    	jne    0x424e24
424d99:	57                   	push   %edi
424d9a:	e8 6d 02 00 00       	call   0x42500c
424d9f:	59                   	pop    %ecx
424da0:	85 c0                	test   %eax,%eax
424da2:	75 24                	jne    0x424dc8
424da4:	8b 5e 50             	mov    0x50(%esi),%ebx
424da7:	33 d2                	xor    %edx,%edx
424da9:	8d 4b 02             	lea    0x2(%ebx),%ecx
424dac:	66 8b 03             	mov    (%ebx),%ax
424daf:	83 c3 02             	add    $0x2,%ebx
424db2:	66 3b c2             	cmp    %dx,%ax
424db5:	75 f5                	jne    0x424dac
424db7:	ff 76 50             	push   0x50(%esi)
424dba:	2b d9                	sub    %ecx,%ebx
424dbc:	d1 fb                	sar    $1,%ebx
424dbe:	e8 85 fd ff ff       	call   0x424b48
424dc3:	59                   	pop    %ecx
424dc4:	3b c3                	cmp    %ebx,%eax
424dc6:	74 40                	je     0x424e08
424dc8:	81 4e 58 00 01 00 00 	orl    $0x100,0x58(%esi)
424dcf:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
424dd5:	33 c0                	xor    %eax,%eax
424dd7:	66 39 02             	cmp    %ax,(%edx)
424dda:	75 2c                	jne    0x424e08
424ddc:	8b cf                	mov    %edi,%ecx
424dde:	8d 59 02             	lea    0x2(%ecx),%ebx
424de1:	66 8b 01             	mov    (%ecx),%ax
424de4:	83 c1 02             	add    $0x2,%ecx
424de7:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
424dee:	75 f1                	jne    0x424de1
424df0:	2b cb                	sub    %ebx,%ecx
424df2:	d1 f9                	sar    $1,%ecx
424df4:	8d 41 01             	lea    0x1(%ecx),%eax
424df7:	50                   	push   %eax
424df8:	57                   	push   %edi
424df9:	6a 55                	push   $0x55
424dfb:	52                   	push   %edx
424dfc:	e8 cc cf ff ff       	call   0x421dcd
424e01:	83 c4 10             	add    $0x10,%esp
424e04:	85 c0                	test   %eax,%eax
424e06:	75 48                	jne    0x424e50
424e08:	8b 46 58             	mov    0x58(%esi),%eax
424e0b:	c1 e8 02             	shr    $0x2,%eax
424e0e:	f7 d0                	not    %eax
424e10:	83 e0 01             	and    $0x1,%eax
424e13:	5b                   	pop    %ebx
424e14:	8b 4d fc             	mov    -0x4(%ebp),%ecx
424e17:	5f                   	pop    %edi
424e18:	33 cd                	xor    %ebp,%ecx
424e1a:	5e                   	pop    %esi
424e1b:	e8 87 4e fe ff       	call   0x409ca7
424e20:	c9                   	leave
424e21:	c2 0c 00             	ret    $0xc
424e24:	33 db                	xor    %ebx,%ebx