422c53:	e8 2c 00 00 00       	call   0x422c84
422c58:	59                   	pop    %ecx
422c59:	85 c0                	test   %eax,%eax
422c5b:	74 05                	je     0x422c62
422c5d:	83 c8 ff             	or     $0xffffffff,%eax
422c60:	eb 1f                	jmp    0x422c81
422c62:	f7 46 0c 00 40 00 00 	testl  $0x4000,0xc(%esi)
422c69:	74 14                	je     0x422c7f
422c6b:	56                   	push   %esi
422c6c:	e8 c2 fc ff ff       	call   0x422933
422c71:	50                   	push   %eax
422c72:	e8 68 98 00 00       	call   0x42c4df
422c77:	59                   	pop    %ecx
422c78:	f7 d8                	neg    %eax
422c7a:	59                   	pop    %ecx
422c7b:	1b c0                	sbb    %eax,%eax
422c7d:	eb 02                	jmp    0x422c81
422c7f:	33 c0                	xor    %eax,%eax
422c81:	5e                   	pop    %esi
422c82:	5d                   	pop    %ebp
422c83:	c3                   	ret
422c84:	55                   	push   %ebp
422c85:	8b ec                	mov    %esp,%ebp
422c87:	53                   	push   %ebx
422c88:	56                   	push   %esi
422c89:	8b 75 08             	mov    0x8(%ebp),%esi
422c8c:	33 db                	xor    %ebx,%ebx
422c8e:	8b 46 0c             	mov    0xc(%esi),%eax
422c91:	24 03                	and    $0x3,%al
422c93:	3c 02                	cmp    $0x2,%al
422c95:	75 42                	jne    0x422cd9
422c97:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
422c9e:	74 39                	je     0x422cd9
422ca0:	57                   	push   %edi
422ca1:	8b 3e                	mov    (%esi),%edi
422ca3:	2b 7e 08             	sub    0x8(%esi),%edi
422ca6:	85 ff                	test   %edi,%edi
422ca8:	7e 2e                	jle    0x422cd8
422caa:	57                   	push   %edi
422cab:	ff 76 08             	push   0x8(%esi)
422cae:	56                   	push   %esi
422caf:	e8 7f fc ff ff       	call   0x422933
422cb4:	59                   	pop    %ecx
422cb5:	50                   	push   %eax
422cb6:	e8 a6 82 00 00       	call   0x42af61
422cbb:	83 c4 0c             	add    $0xc,%esp
422cbe:	3b c7                	cmp    %edi,%eax
422cc0:	75 0f                	jne    0x422cd1
422cc2:	8b 46 0c             	mov    0xc(%esi),%eax
422cc5:	84 c0                	test   %al,%al
422cc7:	79 0f                	jns    0x422cd8
422cc9:	83 e0 fd             	and    $0xfffffffd,%eax
422ccc:	89 46 0c             	mov    %eax,0xc(%esi)
422ccf:	eb 07                	jmp    0x422cd8
422cd1:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
422cd5:	83 cb ff             	or     $0xffffffff,%ebx
422cd8:	5f                   	pop    %edi
422cd9:	8b 4e 08             	mov    0x8(%esi),%ecx
422cdc:	83 66 04 00          	andl   $0x0,0x4(%esi)
422ce0:	89 0e                	mov    %ecx,(%esi)
422ce2:	5e                   	pop    %esi
422ce3:	8b c3                	mov    %ebx,%eax
422ce5:	5b                   	pop    %ebx
422ce6:	5d                   	pop    %ebp
422ce7:	c3                   	ret
422ce8:	6a 01                	push   $0x1
422cea:	e8 57 00 00 00       	call   0x422d46
422cef:	59                   	pop    %ecx
422cf0:	c3                   	ret
422cf1:	6a 0c                	push   $0xc
422cf3:	68 68 6b 4b 00       	push   $0x4b6b68
422cf8:	e8 c3 3d 00 00       	call   0x426ac0
422cfd:	8b 75 08             	mov    0x8(%ebp),%esi
422d00:	85 f6                	test   %esi,%esi
422d02:	75 09                	jne    0x422d0d
422d04:	56                   	push   %esi
422d05:	e8 3c 00 00 00       	call   0x422d46
422d0a:	59                   	pop    %ecx
422d0b:	eb 25                	jmp    0x422d32
422d0d:	56                   	push   %esi
422d0e:	e8 09 21 00 00       	call   0x424e1c
422d13:	59                   	pop    %ecx
422d14:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422d18:	56                   	push   %esi
422d19:	e8 20 ff ff ff       	call   0x422c3e
422d1e:	59                   	pop    %ecx
422d1f:	8b f8                	mov    %eax,%edi
422d21:	89 7d e4             	mov    %edi,-0x1c(%ebp)
422d24:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
422d2b:	e8 0e 00 00 00       	call   0x422d3e
422d30:	8b c7                	mov    %edi,%eax
422d32:	e8 ce 3d 00 00       	call   0x426b05
422d37:	c3                   	ret
422d38:	8b 75 08             	mov    0x8(%ebp),%esi
422d3b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
422d3e:	56                   	push   %esi
422d3f:	e8 47 21 00 00       	call   0x424e8b
422d44:	59                   	pop    %ecx
422d45:	c3                   	ret
422d46:	6a 14                	push   $0x14
422d48:	68 88 6b 4b 00       	push   $0x4b6b88
422d4d:	e8 6e 3d 00 00       	call   0x426ac0
422d52:	33 ff                	xor    %edi,%edi
422d54:	89 7d e4             	mov    %edi,-0x1c(%ebp)
422d57:	21 7d dc             	and    %edi,-0x24(%ebp)
422d5a:	6a 01                	push   $0x1
422d5c:	e8 93 4f 00 00       	call   0x427cf4
422d61:	59                   	pop    %ecx
422d62:	21 7d fc             	and    %edi,-0x4(%ebp)
422d65:	33 f6                	xor    %esi,%esi
422d67:	8b 5d 08             	mov    0x8(%ebp),%ebx
422d6a:	89 75 e0             	mov    %esi,-0x20(%ebp)
422d6d:	3b 35 c0 22 4c 00    	cmp    0x4c22c0,%esi
422d73:	0f 8d 86 00 00 00    	jge    0x422dff
422d79:	a1 bc 22 4c 00       	mov    0x4c22bc,%eax
422d7e:	8b 04 b0             	mov    (%eax,%esi,4),%eax
422d81:	85 c0                	test   %eax,%eax
422d83:	74 5d                	je     0x422de2
422d85:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
422d89:	74 57                	je     0x422de2
422d8b:	50                   	push   %eax
422d8c:	56                   	push   %esi
422d8d:	e8 c9 20 00 00       	call   0x424e5b
422d92:	59                   	pop    %ecx
422d93:	59                   	pop    %ecx
422d94:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
422d9b:	a1 bc 22 4c 00       	mov    0x4c22bc,%eax
422da0:	8b 04 b0             	mov    (%eax,%esi,4),%eax
422da3:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
422da7:	74 30                	je     0x422dd9
422da9:	83 fb 01             	cmp    $0x1,%ebx
422dac:	75 12                	jne    0x422dc0
422dae:	50                   	push   %eax
422daf:	e8 8a fe ff ff       	call   0x422c3e
422db4:	59                   	pop    %ecx
422db5:	83 f8 ff             	cmp    $0xffffffff,%eax
422db8:	74 1f                	je     0x422dd9
422dba:	47                   	inc    %edi
422dbb:	89 7d e4             	mov    %edi,-0x1c(%ebp)
422dbe:	eb 19                	jmp    0x422dd9
422dc0:	85 db                	test   %ebx,%ebx
422dc2:	75 15                	jne    0x422dd9
422dc4:	f6 40 0c 02          	testb  $0x2,0xc(%eax)
422dc8:	74 0f                	je     0x422dd9
422dca:	50                   	push   %eax
422dcb:	e8 6e fe ff ff       	call   0x422c3e
422dd0:	59                   	pop    %ecx
422dd1:	83 f8 ff             	cmp    $0xffffffff,%eax
422dd4:	75 03                	jne    0x422dd9
422dd6:	09 45 dc             	or     %eax,-0x24(%ebp)
422dd9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422ddd:	e8 0c 00 00 00       	call   0x422dee
422de2:	46                   	inc    %esi
422de3:	eb 85                	jmp    0x422d6a
422de5:	8b 5d 08             	mov    0x8(%ebp),%ebx
422de8:	8b 7d e4             	mov    -0x1c(%ebp),%edi
422deb:	8b 75 e0             	mov    -0x20(%ebp),%esi
422dee:	a1 bc 22 4c 00       	mov    0x4c22bc,%eax
422df3:	ff 34 b0             	push   (%eax,%esi,4)
422df6:	56                   	push   %esi
422df7:	e8 c9 20 00 00       	call   0x424ec5
422dfc:	59                   	pop    %ecx
422dfd:	59                   	pop    %ecx
422dfe:	c3                   	ret
422dff:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
422e06:	e8 16 00 00 00       	call   0x422e21
422e0b:	83 fb 01             	cmp    $0x1,%ebx
422e0e:	8b c7                	mov    %edi,%eax
422e10:	74 03                	je     0x422e15
422e12:	8b 45 dc             	mov    -0x24(%ebp),%eax
422e15:	e8 eb 3c 00 00       	call   0x426b05
422e1a:	c3                   	ret
422e1b:	8b 5d 08             	mov    0x8(%ebp),%ebx
422e1e:	8b 7d e4             	mov    -0x1c(%ebp),%edi
422e21:	6a 01                	push   $0x1
422e23:	e8 30 50 00 00       	call   0x427e58
422e28:	59                   	pop    %ecx
422e29:	c3                   	ret
422e2a:	55                   	push   %ebp
422e2b:	8b ec                	mov    %esp,%ebp
422e2d:	b8 ff ff 00 00       	mov    $0xffff,%eax
422e32:	83 ec 14             	sub    $0x14,%esp
422e35:	66 39 45 08          	cmp    %ax,0x8(%ebp)
422e39:	0f 84 9b 00 00 00    	je     0x422eda
422e3f:	56                   	push   %esi
422e40:	ff 75 0c             	push   0xc(%ebp)
422e43:	8d 4d ec             	lea    -0x14(%ebp),%ecx
422e46:	e8 d4 e0 ff ff       	call   0x420f1f
422e4b:	8b 75 ec             	mov    -0x14(%ebp),%esi
422e4e:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
422e54:	85 c0                	test   %eax,%eax
422e56:	75 18                	jne    0x422e70
422e58:	8b 4d 08             	mov    0x8(%ebp),%ecx
422e5b:	8d 41 bf             	lea    -0x41(%ecx),%eax
422e5e:	66 83 f8 19          	cmp    $0x19,%ax
422e62:	77 04                	ja     0x422e68
422e64:	66 83 c1 20          	add    $0x20,%cx
422e68:	0f b7 c1             	movzwl %cx,%eax
422e6b:	0f b7 c0             	movzwl %ax,%eax
422e6e:	eb 1f                	jmp    0x422e8f
422e70:	ba 00 01 00 00       	mov    $0x100,%edx
422e75:	6a 01                	push   $0x1
422e77:	66 39 55 08          	cmp    %dx,0x8(%ebp)
422e7b:	73 2a                	jae    0x422ea7
422e7d:	ff 75 08             	push   0x8(%ebp)
422e80:	e8 8c 5f 00 00       	call   0x428e11
422e85:	59                   	pop    %ecx
422e86:	59                   	pop    %ecx
422e87:	85 c0                	test   %eax,%eax
422e89:	75 09                	jne    0x422e94
422e8b:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
422e8f:	0f b7 c0             	movzwl %ax,%eax
422e92:	eb 0e                	jmp    0x422ea2
422e94:	0f b7 4d 08          	movzwl 0x8(%ebp),%ecx
422e98:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
422e9e:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
422ea2:	0f b7 c0             	movzwl %ax,%eax
422ea5:	eb 1c                	jmp    0x422ec3
422ea7:	8d 4d fc             	lea    -0x4(%ebp),%ecx
422eaa:	51                   	push   %ecx
422eab:	6a 01                	push   $0x1
422ead:	8d 4d 08             	lea    0x8(%ebp),%ecx
422eb0:	51                   	push   %ecx
422eb1:	52                   	push   %edx
422eb2:	50                   	push   %eax
422eb3:	e8 0d 97 00 00       	call   0x42c5c5
422eb8:	83 c4 18             	add    $0x18,%esp
422ebb:	85 c0                	test   %eax,%eax
422ebd:	75 09                	jne    0x422ec8
422ebf:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
422ec3:	0f b7 c0             	movzwl %ax,%eax
422ec6:	eb 04                	jmp    0x422ecc
422ec8:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
422ecc:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
422ed0:	5e                   	pop    %esi
422ed1:	74 07                	je     0x422eda
422ed3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
422ed6:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
422eda:	c9                   	leave
422edb:	c3                   	ret
422edc:	55                   	push   %ebp
422edd:	8b ec                	mov    %esp,%ebp
422edf:	6a 00                	push   $0x0
422ee1:	ff 75 08             	push   0x8(%ebp)
422ee4:	e8 41 ff ff ff       	call   0x422e2a
422ee9:	59                   	pop    %ecx
422eea:	59                   	pop    %ecx
422eeb:	5d                   	pop    %ebp
422eec:	c3                   	ret
422eed:	55                   	push   %ebp
422eee:	8b ec                	mov    %esp,%ebp
422ef0:	83 ec 18             	sub    $0x18,%esp
422ef3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
422ef6:	53                   	push   %ebx
422ef7:	57                   	push   %edi
422ef8:	ff 75 0c             	push   0xc(%ebp)
422efb:	e8 1f e0 ff ff       	call   0x420f1f
422f00:	8b 5d 08             	mov    0x8(%ebp),%ebx
422f03:	bf 00 01 00 00       	mov    $0x100,%edi
422f08:	3b df                	cmp    %edi,%ebx
422f0a:	73 60                	jae    0x422f6c
422f0c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
422f0f:	83 79 74 01          	cmpl   $0x1,0x74(%ecx)
422f13:	7e 14                	jle    0x422f29
422f15:	8d 45 e8             	lea    -0x18(%ebp),%eax
422f18:	50                   	push   %eax
422f19:	6a 01                	push   $0x1
422f1b:	53                   	push   %ebx
422f1c:	e8 9b 6d 00 00       	call   0x429cbc
422f21:	8b 4d e8             	mov    -0x18(%ebp),%ecx
422f24:	83 c4 0c             	add    $0xc,%esp
422f27:	eb 0d                	jmp    0x422f36
422f29:	8b 81 90 00 00 00    	mov    0x90(%ecx),%eax
422f2f:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
422f33:	83 e0 01             	and    $0x1,%eax
422f36:	85 c0                	test   %eax,%eax
422f38:	74 1e                	je     0x422f58
422f3a:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
422f3e:	8b 81 94 00 00 00    	mov    0x94(%ecx),%eax
422f44:	0f b6 0c 18          	movzbl (%eax,%ebx,1),%ecx
422f48:	74 07                	je     0x422f51
422f4a:	8b 45 f0             	mov    -0x10(%ebp),%eax
422f4d:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
422f51:	8b c1                	mov    %ecx,%eax
422f53:	e9 d2 00 00 00       	jmp    0x42302a
422f58:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
422f5c:	74 07                	je     0x422f65
422f5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422f61:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
422f65:	8b c3                	mov    %ebx,%eax
422f67:	e9 be 00 00 00       	jmp    0x42302a
422f6c:	8b 45 e8             	mov    -0x18(%ebp),%eax
422f6f:	83 78 74 01          	cmpl   $0x1,0x74(%eax)
422f73:	7e 2d                	jle    0x422fa2
422f75:	8b c3                	mov    %ebx,%eax
422f77:	c1 f8 08             	sar    $0x8,%eax
422f7a:	89 45 08             	mov    %eax,0x8(%ebp)
422f7d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
422f80:	0f b6 c0             	movzbl %al,%eax
422f83:	51                   	push   %ecx
422f84:	50                   	push   %eax
422f85:	e8 c8 e6 ff ff       	call   0x421652
422f8a:	59                   	pop    %ecx
422f8b:	59                   	pop    %ecx
422f8c:	85 c0                	test   %eax,%eax
422f8e:	74 12                	je     0x422fa2
422f90:	8b 45 08             	mov    0x8(%ebp),%eax
422f93:	6a 02                	push   $0x2
422f95:	88 45 fc             	mov    %al,-0x4(%ebp)
422f98:	88 5d fd             	mov    %bl,-0x3(%ebp)
422f9b:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
422f9f:	59                   	pop    %ecx
422fa0:	eb 15                	jmp    0x422fb7
422fa2:	e8 67 4c 00 00       	call   0x427c0e
422fa7:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
422fad:	33 c9                	xor    %ecx,%ecx
422faf:	88 5d fc             	mov    %bl,-0x4(%ebp)
422fb2:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
422fb6:	41                   	inc    %ecx
422fb7:	8b 45 e8             	mov    -0x18(%ebp),%eax
422fba:	6a 01                	push   $0x1
422fbc:	ff 70 04             	push   0x4(%eax)
422fbf:	8d 55 f8             	lea    -0x8(%ebp),%edx
422fc2:	6a 03                	push   $0x3
422fc4:	52                   	push   %edx
422fc5:	51                   	push   %ecx
422fc6:	8d 4d fc             	lea    -0x4(%ebp),%ecx
422fc9:	51                   	push   %ecx
422fca:	57                   	push   %edi
422fcb:	ff b0 a8 00 00 00    	push   0xa8(%eax)
422fd1:	8d 45 e8             	lea    -0x18(%ebp),%eax
422fd4:	50                   	push   %eax
422fd5:	e8 03 98 00 00       	call   0x42c7dd
422fda:	83 c4 24             	add    $0x24,%esp
422fdd:	85 c0                	test   %eax,%eax
422fdf:	75 15                	jne    0x422ff6
422fe1:	38 45 f4             	cmp    %al,-0xc(%ebp)
422fe4:	0f 84 7b ff ff ff    	je     0x422f65
422fea:	8b 45 f0             	mov    -0x10(%ebp),%eax
422fed:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
422ff1:	e9 6f ff ff ff       	jmp    0x422f65
422ff6:	83 f8 01             	cmp    $0x1,%eax
422ff9:	75 13                	jne    0x42300e
422ffb:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
422fff:	0f b6 45 f8          	movzbl -0x8(%ebp),%eax
423003:	74 25                	je     0x42302a
423005:	8b 4d f0             	mov    -0x10(%ebp),%ecx
423008:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
42300c:	eb 1c                	jmp    0x42302a
42300e:	0f b6 55 f8          	movzbl -0x8(%ebp),%edx