422bac:	0f b6 38             	movzbl (%eax),%edi
422baf:	0f b6 c9             	movzbl %cl,%ecx
422bb2:	3b f9                	cmp    %ecx,%edi
422bb4:	77 11                	ja     0x422bc7
422bb6:	8d 56 19             	lea    0x19(%esi),%edx
422bb9:	2b cf                	sub    %edi,%ecx
422bbb:	03 d7                	add    %edi,%edx
422bbd:	41                   	inc    %ecx
422bbe:	80 0a 04             	orb    $0x4,(%edx)
422bc1:	42                   	inc    %edx
422bc2:	83 e9 01             	sub    $0x1,%ecx
422bc5:	75 f7                	jne    0x422bbe
422bc7:	83 c0 02             	add    $0x2,%eax
422bca:	80 38 00             	cmpb   $0x0,(%eax)
422bcd:	75 d6                	jne    0x422ba5
422bcf:	8d 46 1a             	lea    0x1a(%esi),%eax
422bd2:	b9 fe 00 00 00       	mov    $0xfe,%ecx
422bd7:	80 08 08             	orb    $0x8,(%eax)
422bda:	40                   	inc    %eax
422bdb:	83 e9 01             	sub    $0x1,%ecx
422bde:	75 f7                	jne    0x422bd7
422be0:	ff 76 04             	push   0x4(%esi)
422be3:	e8 e5 f9 ff ff       	call   0x4225cd
422be8:	33 ff                	xor    %edi,%edi
422bea:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
422bf0:	83 c4 04             	add    $0x4,%esp
422bf3:	47                   	inc    %edi
422bf4:	e9 63 ff ff ff       	jmp    0x422b5c
422bf9:	39 3d c8 fb 43 00    	cmp    %edi,0x43fbc8
422bff:	0f 85 bc 00 00 00    	jne    0x422cc1
422c05:	83 c8 ff             	or     $0xffffffff,%eax
422c08:	e9 bd 00 00 00       	jmp    0x422cca
422c0d:	68 01 01 00 00       	push   $0x101
422c12:	8d 46 18             	lea    0x18(%esi),%eax
422c15:	57                   	push   %edi
422c16:	50                   	push   %eax
422c17:	e8 a4 87 fe ff       	call   0x40b3c0
422c1c:	83 c4 0c             	add    $0xc,%esp
422c1f:	6b 45 e4 30          	imul   $0x30,-0x1c(%ebp),%eax
422c23:	89 45 dc             	mov    %eax,-0x24(%ebp)
422c26:	8d 80 f8 d9 43 00    	lea    0x43d9f8(%eax),%eax
422c2c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
422c2f:	80 38 00             	cmpb   $0x0,(%eax)
422c32:	8b c8                	mov    %eax,%ecx
422c34:	74 3b                	je     0x422c71
422c36:	8a 41 01             	mov    0x1(%ecx),%al
422c39:	84 c0                	test   %al,%al
422c3b:	74 31                	je     0x422c6e
422c3d:	0f b6 11             	movzbl (%ecx),%edx
422c40:	0f b6 c0             	movzbl %al,%eax
422c43:	3b d0                	cmp    %eax,%edx
422c45:	77 1f                	ja     0x422c66
422c47:	8d 5e 19             	lea    0x19(%esi),%ebx
422c4a:	03 da                	add    %edx,%ebx
422c4c:	81 fa 00 01 00 00    	cmp    $0x100,%edx
422c52:	73 12                	jae    0x422c66
422c54:	8a 87 e0 d9 43 00    	mov    0x43d9e0(%edi),%al
422c5a:	08 03                	or     %al,(%ebx)
422c5c:	42                   	inc    %edx
422c5d:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
422c61:	43                   	inc    %ebx
422c62:	3b d0                	cmp    %eax,%edx
422c64:	76 e6                	jbe    0x422c4c
422c66:	83 c1 02             	add    $0x2,%ecx
422c69:	80 39 00             	cmpb   $0x0,(%ecx)
422c6c:	75 c8                	jne    0x422c36
422c6e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
422c71:	47                   	inc    %edi
422c72:	83 c0 08             	add    $0x8,%eax
422c75:	89 45 e4             	mov    %eax,-0x1c(%ebp)
422c78:	83 ff 04             	cmp    $0x4,%edi
422c7b:	72 b2                	jb     0x422c2f
422c7d:	8b 5d e0             	mov    -0x20(%ebp),%ebx
422c80:	53                   	push   %ebx
422c81:	89 5e 04             	mov    %ebx,0x4(%esi)
422c84:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
422c8b:	e8 3d f9 ff ff       	call   0x4225cd
422c90:	83 c4 04             	add    $0x4,%esp
422c93:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
422c99:	8b 45 dc             	mov    -0x24(%ebp),%eax
422c9c:	8d 4e 0c             	lea    0xc(%esi),%ecx
422c9f:	6a 06                	push   $0x6
422ca1:	8d 90 ec d9 43 00    	lea    0x43d9ec(%eax),%edx
422ca7:	5f                   	pop    %edi
422ca8:	66 8b 02             	mov    (%edx),%ax
422cab:	8d 52 02             	lea    0x2(%edx),%edx
422cae:	66 89 01             	mov    %ax,(%ecx)
422cb1:	8d 49 02             	lea    0x2(%ecx),%ecx
422cb4:	83 ef 01             	sub    $0x1,%edi
422cb7:	75 ef                	jne    0x422ca8
422cb9:	56                   	push   %esi
422cba:	e8 20 fa ff ff       	call   0x4226df
422cbf:	eb 06                	jmp    0x422cc7
422cc1:	56                   	push   %esi
422cc2:	e8 b5 f9 ff ff       	call   0x42267c
422cc7:	33 c0                	xor    %eax,%eax
422cc9:	59                   	pop    %ecx
422cca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422ccd:	5f                   	pop    %edi
422cce:	5e                   	pop    %esi
422ccf:	33 cd                	xor    %ebp,%ecx
422cd1:	5b                   	pop    %ebx
422cd2:	e8 d0 6f fe ff       	call   0x409ca7
422cd7:	c9                   	leave
422cd8:	c3                   	ret
422cd9:	8b ff                	mov    %edi,%edi
422cdb:	55                   	push   %ebp
422cdc:	8b ec                	mov    %esp,%ebp
422cde:	83 ec 10             	sub    $0x10,%esp
422ce1:	ff 75 08             	push   0x8(%ebp)
422ce4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
422ce7:	e8 08 05 ff ff       	call   0x4131f4
422cec:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
422cf0:	8b 45 f8             	mov    -0x8(%ebp),%eax
422cf3:	8a 4d 14             	mov    0x14(%ebp),%cl
422cf6:	84 4c 10 19          	test   %cl,0x19(%eax,%edx,1)
422cfa:	75 18                	jne    0x422d14
422cfc:	8b 4d 10             	mov    0x10(%ebp),%ecx
422cff:	85 c9                	test   %ecx,%ecx
422d01:	74 0d                	je     0x422d10
422d03:	8b 45 f4             	mov    -0xc(%ebp),%eax
422d06:	8b 00                	mov    (%eax),%eax
422d08:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
422d0c:	85 c1                	test   %eax,%ecx
422d0e:	75 04                	jne    0x422d14
422d10:	33 c0                	xor    %eax,%eax
422d12:	eb 03                	jmp    0x422d17
422d14:	33 c0                	xor    %eax,%eax
422d16:	40                   	inc    %eax
422d17:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
422d1b:	74 0a                	je     0x422d27
422d1d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422d20:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
422d27:	c9                   	leave
422d28:	c3                   	ret
422d29:	8b ff                	mov    %edi,%edi
422d2b:	55                   	push   %ebp
422d2c:	8b ec                	mov    %esp,%ebp
422d2e:	6a 04                	push   $0x4
422d30:	6a 00                	push   $0x0
422d32:	ff 75 08             	push   0x8(%ebp)
422d35:	6a 00                	push   $0x0
422d37:	e8 9d ff ff ff       	call   0x422cd9
422d3c:	83 c4 10             	add    $0x10,%esp
422d3f:	5d                   	pop    %ebp
422d40:	c3                   	ret
422d41:	ff 15 60 10 43 00    	call   *0x431060
422d47:	a3 e0 fb 43 00       	mov    %eax,0x43fbe0
422d4c:	ff 15 5c 10 43 00    	call   *0x43105c
422d52:	a3 e4 fb 43 00       	mov    %eax,0x43fbe4
422d57:	b0 01                	mov    $0x1,%al
422d59:	c3                   	ret
422d5a:	8b ff                	mov    %edi,%edi
422d5c:	55                   	push   %ebp
422d5d:	8b ec                	mov    %esp,%ebp
422d5f:	8b 45 08             	mov    0x8(%ebp),%eax
422d62:	b9 ac de 00 00       	mov    $0xdeac,%ecx
422d67:	3b c1                	cmp    %ecx,%eax
422d69:	77 3d                	ja     0x422da8
422d6b:	74 79                	je     0x422de6
422d6d:	b9 33 c4 00 00       	mov    $0xc433,%ecx
422d72:	3b c1                	cmp    %ecx,%eax
422d74:	77 1d                	ja     0x422d93
422d76:	74 6e                	je     0x422de6
422d78:	83 e8 2a             	sub    $0x2a,%eax
422d7b:	74 69                	je     0x422de6
422d7d:	2d 02 c4 00 00       	sub    $0xc402,%eax
422d82:	74 62                	je     0x422de6
422d84:	83 e8 01             	sub    $0x1,%eax
422d87:	74 5d                	je     0x422de6
422d89:	83 e8 01             	sub    $0x1,%eax
422d8c:	74 58                	je     0x422de6
422d8e:	83 e8 03             	sub    $0x3,%eax
422d91:	eb 47                	jmp    0x422dda
422d93:	2d 35 c4 00 00       	sub    $0xc435,%eax
422d98:	74 4c                	je     0x422de6
422d9a:	2d 63 12 00 00       	sub    $0x1263,%eax
422d9f:	74 45                	je     0x422de6
422da1:	2d 12 08 00 00       	sub    $0x812,%eax
422da6:	eb 2d                	jmp    0x422dd5
422da8:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
422dad:	3b c1                	cmp    %ecx,%eax
422daf:	77 13                	ja     0x422dc4
422db1:	74 33                	je     0x422de6
422db3:	2d ad de 00 00       	sub    $0xdead,%eax
422db8:	74 2c                	je     0x422de6
422dba:	83 e8 01             	sub    $0x1,%eax
422dbd:	74 27                	je     0x422de6
422dbf:	83 e8 01             	sub    $0x1,%eax
422dc2:	eb 11                	jmp    0x422dd5
422dc4:	2d b2 de 00 00       	sub    $0xdeb2,%eax
422dc9:	74 1b                	je     0x422de6
422dcb:	83 e8 01             	sub    $0x1,%eax
422dce:	74 16                	je     0x422de6
422dd0:	2d 35 1f 00 00       	sub    $0x1f35,%eax
422dd5:	74 0f                	je     0x422de6
422dd7:	83 e8 01             	sub    $0x1,%eax
422dda:	74 0a                	je     0x422de6
422ddc:	8b 45 0c             	mov    0xc(%ebp),%eax
422ddf:	25 7f ff ff ff       	and    $0xffffff7f,%eax
422de4:	5d                   	pop    %ebp
422de5:	c3                   	ret
422de6:	33 c0                	xor    %eax,%eax
422de8:	5d                   	pop    %ebp
422de9:	c3                   	ret
422dea:	8b ff                	mov    %edi,%edi
422dec:	55                   	push   %ebp
422ded:	8b ec                	mov    %esp,%ebp
422def:	8b 55 08             	mov    0x8(%ebp),%edx
422df2:	53                   	push   %ebx
422df3:	56                   	push   %esi
422df4:	57                   	push   %edi
422df5:	81 fa e8 fd 00 00    	cmp    $0xfde8,%edx
422dfb:	74 0c                	je     0x422e09
422dfd:	81 fa e9 fd 00 00    	cmp    $0xfde9,%edx
422e03:	74 04                	je     0x422e09
422e05:	32 db                	xor    %bl,%bl
422e07:	eb 02                	jmp    0x422e0b
422e09:	b3 01                	mov    $0x1,%bl
422e0b:	ff 75 0c             	push   0xc(%ebp)
422e0e:	52                   	push   %edx
422e0f:	e8 46 ff ff ff       	call   0x422d5a
422e14:	8b 7d 24             	mov    0x24(%ebp),%edi
422e17:	59                   	pop    %ecx
422e18:	59                   	pop    %ecx
422e19:	0f b6 cb             	movzbl %bl,%ecx
422e1c:	f7 d9                	neg    %ecx
422e1e:	0f b6 f3             	movzbl %bl,%esi
422e21:	1b c9                	sbb    %ecx,%ecx
422e23:	f7 d1                	not    %ecx
422e25:	23 cf                	and    %edi,%ecx
422e27:	f7 de                	neg    %esi
422e29:	1b f6                	sbb    %esi,%esi
422e2b:	f7 d6                	not    %esi
422e2d:	23 75 20             	and    0x20(%ebp),%esi
422e30:	84 db                	test   %bl,%bl
422e32:	74 07                	je     0x422e3b
422e34:	85 ff                	test   %edi,%edi
422e36:	74 03                	je     0x422e3b
422e38:	83 27 00             	andl   $0x0,(%edi)
422e3b:	51                   	push   %ecx
422e3c:	56                   	push   %esi
422e3d:	ff 75 1c             	push   0x1c(%ebp)
422e40:	ff 75 18             	push   0x18(%ebp)
422e43:	ff 75 14             	push   0x14(%ebp)
422e46:	ff 75 10             	push   0x10(%ebp)
422e49:	50                   	push   %eax
422e4a:	52                   	push   %edx
422e4b:	ff 15 58 10 43 00    	call   *0x431058
422e51:	5f                   	pop    %edi
422e52:	5e                   	pop    %esi
422e53:	5b                   	pop    %ebx
422e54:	5d                   	pop    %ebp
422e55:	c3                   	ret
422e56:	8b ff                	mov    %edi,%edi
422e58:	55                   	push   %ebp
422e59:	8b ec                	mov    %esp,%ebp
422e5b:	8b 55 08             	mov    0x8(%ebp),%edx
422e5e:	57                   	push   %edi
422e5f:	33 ff                	xor    %edi,%edi
422e61:	66 39 3a             	cmp    %di,(%edx)
422e64:	74 21                	je     0x422e87
422e66:	56                   	push   %esi
422e67:	8b ca                	mov    %edx,%ecx
422e69:	8d 71 02             	lea    0x2(%ecx),%esi
422e6c:	66 8b 01             	mov    (%ecx),%ax
422e6f:	83 c1 02             	add    $0x2,%ecx
422e72:	66 3b c7             	cmp    %di,%ax
422e75:	75 f5                	jne    0x422e6c
422e77:	2b ce                	sub    %esi,%ecx
422e79:	d1 f9                	sar    $1,%ecx
422e7b:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
422e7e:	83 c2 02             	add    $0x2,%edx
422e81:	66 39 3a             	cmp    %di,(%edx)
422e84:	75 e1                	jne    0x422e67
422e86:	5e                   	pop    %esi
422e87:	8d 42 02             	lea    0x2(%edx),%eax
422e8a:	5f                   	pop    %edi
422e8b:	5d                   	pop    %ebp
422e8c:	c3                   	ret
422e8d:	8b ff                	mov    %edi,%edi
422e8f:	55                   	push   %ebp
422e90:	8b ec                	mov    %esp,%ebp
422e92:	51                   	push   %ecx
422e93:	51                   	push   %ecx
422e94:	56                   	push   %esi
422e95:	ff 15 54 10 43 00    	call   *0x431054
422e9b:	8b f0                	mov    %eax,%esi
422e9d:	85 f6                	test   %esi,%esi
422e9f:	0f 84 85 00 00 00    	je     0x422f2a
422ea5:	53                   	push   %ebx
422ea6:	56                   	push   %esi
422ea7:	e8 aa ff ff ff       	call   0x422e56
422eac:	33 db                	xor    %ebx,%ebx
422eae:	2b c6                	sub    %esi,%eax
422eb0:	53                   	push   %ebx
422eb1:	53                   	push   %ebx
422eb2:	53                   	push   %ebx
422eb3:	53                   	push   %ebx
422eb4:	d1 f8                	sar    $1,%eax
422eb6:	50                   	push   %eax
422eb7:	56                   	push   %esi
422eb8:	53                   	push   %ebx
422eb9:	53                   	push   %ebx
422eba:	89 45 f8             	mov    %eax,-0x8(%ebp)
422ebd:	e8 28 ff ff ff       	call   0x422dea
422ec2:	83 c4 24             	add    $0x24,%esp
422ec5:	89 45 fc             	mov    %eax,-0x4(%ebp)
422ec8:	85 c0                	test   %eax,%eax
422eca:	75 0b                	jne    0x422ed7
422ecc:	56                   	push   %esi
422ecd:	ff 15 50 10 43 00    	call   *0x431050
422ed3:	33 c0                	xor    %eax,%eax
422ed5:	eb 52                	jmp    0x422f29
422ed7:	57                   	push   %edi
422ed8:	50                   	push   %eax
422ed9:	e8 52 3d fe ff       	call   0x406c30
422ede:	8b f8                	mov    %eax,%edi
422ee0:	59                   	pop    %ecx
422ee1:	53                   	push   %ebx
422ee2:	85 ff                	test   %edi,%edi
422ee4:	75 11                	jne    0x422ef7
422ee6:	e8 25 3d fe ff       	call   0x406c10
422eeb:	59                   	pop    %ecx
422eec:	56                   	push   %esi
422eed:	ff 15 50 10 43 00    	call   *0x431050
422ef3:	33 c0                	xor    %eax,%eax
422ef5:	eb 31                	jmp    0x422f28
422ef7:	53                   	push   %ebx
422ef8:	ff 75 fc             	push   -0x4(%ebp)
422efb:	57                   	push   %edi
422efc:	ff 75 f8             	push   -0x8(%ebp)
422eff:	56                   	push   %esi
422f00:	53                   	push   %ebx
422f01:	53                   	push   %ebx
422f02:	e8 e3 fe ff ff       	call   0x422dea
422f07:	83 c4 20             	add    $0x20,%esp
422f0a:	85 c0                	test   %eax,%eax
422f0c:	75 08                	jne    0x422f16
422f0e:	57                   	push   %edi
422f0f:	e8 fc 3c fe ff       	call   0x406c10
422f14:	eb 08                	jmp    0x422f1e
422f16:	53                   	push   %ebx
422f17:	e8 f4 3c fe ff       	call   0x406c10
422f1c:	8b df                	mov    %edi,%ebx
422f1e:	59                   	pop    %ecx
422f1f:	56                   	push   %esi
422f20:	ff 15 50 10 43 00    	call   *0x431050
422f26:	8b c3                	mov    %ebx,%eax
422f28:	5f                   	pop    %edi