423a10:	2b c1                	sub    %ecx,%eax
423a12:	0f 85 87 00 00 00    	jne    0x423a9f
423a18:	53                   	push   %ebx
423a19:	8b ce                	mov    %esi,%ecx
423a1b:	e8 59 08 00 00       	call   0x424279
423a20:	eb 79                	jmp    0x423a9b
423a22:	8b ce                	mov    %esi,%ecx
423a24:	e8 20 04 00 00       	call   0x423e49
423a29:	eb 70                	jmp    0x423a9b
423a2b:	6a 01                	push   $0x1
423a2d:	8b ce                	mov    %esi,%ecx
423a2f:	e8 b7 e8 ff ff       	call   0x4222eb
423a34:	eb 65                	jmp    0x423a9b
423a36:	83 f8 6f             	cmp    $0x6f,%eax
423a39:	77 3a                	ja     0x423a75
423a3b:	74 2f                	je     0x423a6c
423a3d:	83 e8 65             	sub    $0x65,%eax
423a40:	74 b5                	je     0x4239f7
423a42:	83 e8 01             	sub    $0x1,%eax
423a45:	74 b0                	je     0x4239f7
423a47:	83 e8 01             	sub    $0x1,%eax
423a4a:	74 ab                	je     0x4239f7
423a4c:	2b c1                	sub    %ecx,%eax
423a4e:	74 0e                	je     0x423a5e
423a50:	83 e8 05             	sub    $0x5,%eax
423a53:	75 4a                	jne    0x423a9f
423a55:	8b ce                	mov    %esi,%ecx
423a57:	e8 c5 08 00 00       	call   0x424321
423a5c:	eb 3d                	jmp    0x423a9b
423a5e:	83 4e 1c 10          	orl    $0x10,0x1c(%esi)
423a62:	53                   	push   %ebx
423a63:	8b ce                	mov    %esi,%ecx
423a65:	e8 62 e5 ff ff       	call   0x421fcc
423a6a:	eb 2f                	jmp    0x423a9b
423a6c:	8b ce                	mov    %esi,%ecx
423a6e:	e8 50 09 00 00       	call   0x4243c3
423a73:	eb 26                	jmp    0x423a9b
423a75:	83 e8 70             	sub    $0x70,%eax
423a78:	74 1a                	je     0x423a94
423a7a:	83 e8 03             	sub    $0x3,%eax
423a7d:	74 0c                	je     0x423a8b
423a7f:	2b c1                	sub    %ecx,%eax
423a81:	74 df                	je     0x423a62
423a83:	83 e8 03             	sub    $0x3,%eax
423a86:	75 17                	jne    0x423a9f
423a88:	53                   	push   %ebx
423a89:	eb a2                	jmp    0x423a2d
423a8b:	8b ce                	mov    %esi,%ecx
423a8d:	e8 ec 09 00 00       	call   0x42447e
423a92:	eb 07                	jmp    0x423a9b
423a94:	8b ce                	mov    %esi,%ecx
423a96:	e8 5b 09 00 00       	call   0x4243f6
423a9b:	84 c0                	test   %al,%al
423a9d:	75 07                	jne    0x423aa6
423a9f:	32 c0                	xor    %al,%al
423aa1:	e9 dd 02 00 00       	jmp    0x423d83
423aa6:	38 5e 2c             	cmp    %bl,0x2c(%esi)
423aa9:	0f 85 d2 02 00 00    	jne    0x423d81
423aaf:	8b 46 1c             	mov    0x1c(%esi),%eax
423ab2:	33 d2                	xor    %edx,%edx
423ab4:	c1 e8 04             	shr    $0x4,%eax
423ab7:	42                   	inc    %edx
423ab8:	89 5d f4             	mov    %ebx,-0xc(%ebp)
423abb:	8b cb                	mov    %ebx,%ecx
423abd:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
423ac1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
423ac4:	6a 20                	push   $0x20
423ac6:	5f                   	pop    %edi
423ac7:	84 c2                	test   %al,%dl
423ac9:	74 33                	je     0x423afe
423acb:	8b 46 1c             	mov    0x1c(%esi),%eax
423ace:	c1 e8 06             	shr    $0x6,%eax
423ad1:	84 c2                	test   %al,%dl
423ad3:	74 04                	je     0x423ad9
423ad5:	6a 2d                	push   $0x2d
423ad7:	eb 07                	jmp    0x423ae0
423ad9:	84 56 1c             	test   %dl,0x1c(%esi)
423adc:	74 0e                	je     0x423aec
423ade:	6a 2b                	push   $0x2b
423ae0:	58                   	pop    %eax
423ae1:	8b ca                	mov    %edx,%ecx
423ae3:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
423ae7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
423aea:	eb 12                	jmp    0x423afe
423aec:	8b 46 1c             	mov    0x1c(%esi),%eax
423aef:	d1 e8                	shr    $1,%eax
423af1:	84 c2                	test   %al,%dl
423af3:	74 09                	je     0x423afe
423af5:	66 89 7d f4          	mov    %di,-0xc(%ebp)
423af9:	8b ca                	mov    %edx,%ecx
423afb:	89 55 f0             	mov    %edx,-0x10(%ebp)
423afe:	0f b7 56 2e          	movzwl 0x2e(%esi),%edx
423b02:	6a 78                	push   $0x78
423b04:	5f                   	pop    %edi
423b05:	66 3b d7             	cmp    %di,%dx
423b08:	74 08                	je     0x423b12
423b0a:	6a 58                	push   $0x58
423b0c:	58                   	pop    %eax
423b0d:	66 3b d0             	cmp    %ax,%dx
423b10:	75 0c                	jne    0x423b1e
423b12:	8b 46 1c             	mov    0x1c(%esi),%eax
423b15:	c1 e8 05             	shr    $0x5,%eax
423b18:	b4 01                	mov    $0x1,%ah
423b1a:	a8 01                	test   $0x1,%al
423b1c:	75 02                	jne    0x423b20
423b1e:	8a e3                	mov    %bl,%ah
423b20:	83 fa 61             	cmp    $0x61,%edx
423b23:	74 08                	je     0x423b2d
423b25:	8a c3                	mov    %bl,%al
423b27:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
423b2b:	75 02                	jne    0x423b2f
423b2d:	b0 01                	mov    $0x1,%al
423b2f:	c7 45 e8 30 00 00 00 	movl   $0x30,-0x18(%ebp)
423b36:	84 e4                	test   %ah,%ah
423b38:	75 04                	jne    0x423b3e
423b3a:	84 c0                	test   %al,%al
423b3c:	74 23                	je     0x423b61
423b3e:	8b 45 e8             	mov    -0x18(%ebp),%eax
423b41:	6a 58                	push   $0x58
423b43:	66 89 44 4d f4       	mov    %ax,-0xc(%ebp,%ecx,2)
423b48:	58                   	pop    %eax
423b49:	66 3b d0             	cmp    %ax,%dx
423b4c:	74 06                	je     0x423b54
423b4e:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
423b52:	75 02                	jne    0x423b56
423b54:	8b f8                	mov    %eax,%edi
423b56:	66 89 7c 4d f6       	mov    %di,-0xa(%ebp,%ecx,2)
423b5b:	83 c1 02             	add    $0x2,%ecx
423b5e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
423b61:	8b 56 20             	mov    0x20(%esi),%edx
423b64:	2b 56 34             	sub    0x34(%esi),%edx
423b67:	2b d1                	sub    %ecx,%edx
423b69:	f6 46 1c 0c          	testb  $0xc,0x1c(%esi)
423b6d:	89 55 dc             	mov    %edx,-0x24(%ebp)
423b70:	75 5e                	jne    0x423bd0
423b72:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
423b75:	85 d2                	test   %edx,%edx
423b77:	7e 57                	jle    0x423bd0
423b79:	8b 5e 14             	mov    0x14(%esi),%ebx
423b7c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
423b7f:	8b be 48 04 00 00    	mov    0x448(%esi),%edi
423b85:	8b 47 08             	mov    0x8(%edi),%eax
423b88:	3b 47 04             	cmp    0x4(%edi),%eax
423b8b:	75 11                	jne    0x423b9e
423b8d:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
423b91:	74 03                	je     0x423b96
423b93:	43                   	inc    %ebx
423b94:	eb 03                	jmp    0x423b99
423b96:	83 cb ff             	or     $0xffffffff,%ebx
423b99:	89 5e 14             	mov    %ebx,0x14(%esi)
423b9c:	eb 20                	jmp    0x423bbe
423b9e:	8d 43 01             	lea    0x1(%ebx),%eax
423ba1:	89 46 14             	mov    %eax,0x14(%esi)
423ba4:	ff 47 08             	incl   0x8(%edi)
423ba7:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
423bad:	6a 20                	push   $0x20
423baf:	5b                   	pop    %ebx
423bb0:	8b 00                	mov    (%eax),%eax
423bb2:	66 89 18             	mov    %bx,(%eax)
423bb5:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
423bbb:	83 00 02             	addl   $0x2,(%eax)
423bbe:	8b 5e 14             	mov    0x14(%esi),%ebx
423bc1:	83 fb ff             	cmp    $0xffffffff,%ebx
423bc4:	74 05                	je     0x423bcb
423bc6:	41                   	inc    %ecx
423bc7:	3b ca                	cmp    %edx,%ecx
423bc9:	7c b4                	jl     0x423b7f
423bcb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
423bce:	33 db                	xor    %ebx,%ebx
423bd0:	ff 76 08             	push   0x8(%esi)
423bd3:	8d 7e 14             	lea    0x14(%esi),%edi
423bd6:	57                   	push   %edi
423bd7:	51                   	push   %ecx
423bd8:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
423bde:	8d 4d f4             	lea    -0xc(%ebp),%ecx
423be1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
423be4:	51                   	push   %ecx
423be5:	8b c8                	mov    %eax,%ecx
423be7:	e8 c2 0a 00 00       	call   0x4246ae
423bec:	8b 4e 1c             	mov    0x1c(%esi),%ecx
423bef:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
423bf5:	8b c1                	mov    %ecx,%eax
423bf7:	c1 e8 03             	shr    $0x3,%eax
423bfa:	a8 01                	test   $0x1,%al
423bfc:	74 5b                	je     0x423c59
423bfe:	c1 e9 02             	shr    $0x2,%ecx
423c01:	f6 c1 01             	test   $0x1,%cl
423c04:	75 53                	jne    0x423c59
423c06:	8b 4d dc             	mov    -0x24(%ebp),%ecx
423c09:	89 5d ec             	mov    %ebx,-0x14(%ebp)
423c0c:	85 c9                	test   %ecx,%ecx
423c0e:	7e 49                	jle    0x423c59
423c10:	8b 02                	mov    (%edx),%eax
423c12:	89 45 f0             	mov    %eax,-0x10(%ebp)
423c15:	8b d8                	mov    %eax,%ebx
423c17:	8b 40 08             	mov    0x8(%eax),%eax
423c1a:	3b 43 04             	cmp    0x4(%ebx),%eax
423c1d:	8b c3                	mov    %ebx,%eax
423c1f:	75 12                	jne    0x423c33
423c21:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
423c25:	74 05                	je     0x423c2c
423c27:	8b 07                	mov    (%edi),%eax
423c29:	40                   	inc    %eax
423c2a:	eb 03                	jmp    0x423c2f
423c2c:	83 c8 ff             	or     $0xffffffff,%eax
423c2f:	89 07                	mov    %eax,(%edi)
423c31:	eb 14                	jmp    0x423c47
423c33:	ff 07                	incl   (%edi)
423c35:	ff 40 08             	incl   0x8(%eax)
423c38:	8b 02                	mov    (%edx),%eax
423c3a:	8b 5d e8             	mov    -0x18(%ebp),%ebx
423c3d:	8b 00                	mov    (%eax),%eax
423c3f:	66 89 18             	mov    %bx,(%eax)
423c42:	8b 02                	mov    (%edx),%eax
423c44:	83 00 02             	addl   $0x2,(%eax)
423c47:	83 3f ff             	cmpl   $0xffffffff,(%edi)
423c4a:	74 0b                	je     0x423c57
423c4c:	8b 45 ec             	mov    -0x14(%ebp),%eax
423c4f:	40                   	inc    %eax
423c50:	89 45 ec             	mov    %eax,-0x14(%ebp)
423c53:	3b c1                	cmp    %ecx,%eax
423c55:	7c b9                	jl     0x423c10
423c57:	33 db                	xor    %ebx,%ebx
423c59:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
423c5d:	0f 85 ad 00 00 00    	jne    0x423d10
423c63:	39 5e 34             	cmp    %ebx,0x34(%esi)
423c66:	0f 8e a4 00 00 00    	jle    0x423d10
423c6c:	8b 46 08             	mov    0x8(%esi),%eax
423c6f:	89 45 e0             	mov    %eax,-0x20(%ebp)
423c72:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
423c76:	75 0a                	jne    0x423c82
423c78:	8b c8                	mov    %eax,%ecx
423c7a:	e8 21 09 00 00       	call   0x4245a0
423c7f:	8b 45 e0             	mov    -0x20(%ebp),%eax
423c82:	8b 4e 30             	mov    0x30(%esi),%ecx
423c85:	89 4d e8             	mov    %ecx,-0x18(%ebp)
423c88:	89 5d ec             	mov    %ebx,-0x14(%ebp)
423c8b:	39 5e 34             	cmp    %ebx,0x34(%esi)
423c8e:	0f 84 8d 00 00 00    	je     0x423d21
423c94:	8b 40 0c             	mov    0xc(%eax),%eax
423c97:	33 d2                	xor    %edx,%edx
423c99:	ff 76 08             	push   0x8(%esi)
423c9c:	66 89 55 f0          	mov    %dx,-0x10(%ebp)
423ca0:	ff 70 04             	push   0x4(%eax)
423ca3:	8d 45 f0             	lea    -0x10(%ebp),%eax
423ca6:	51                   	push   %ecx
423ca7:	50                   	push   %eax
423ca8:	e8 d1 95 00 00       	call   0x42d27e
423cad:	83 c4 10             	add    $0x10,%esp
423cb0:	89 45 f4             	mov    %eax,-0xc(%ebp)
423cb3:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
423cb9:	85 c0                	test   %eax,%eax
423cbb:	7e 4e                	jle    0x423d0b
423cbd:	8b 0a                	mov    (%edx),%ecx
423cbf:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
423cc3:	89 45 d8             	mov    %eax,-0x28(%ebp)
423cc6:	8b 41 08             	mov    0x8(%ecx),%eax
423cc9:	3b 41 04             	cmp    0x4(%ecx),%eax
423ccc:	75 0f                	jne    0x423cdd
423cce:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
423cd2:	74 04                	je     0x423cd8
423cd4:	ff 07                	incl   (%edi)
423cd6:	eb 19                	jmp    0x423cf1
423cd8:	83 0f ff             	orl    $0xffffffff,(%edi)
423cdb:	eb 14                	jmp    0x423cf1
423cdd:	ff 07                	incl   (%edi)
423cdf:	ff 41 08             	incl   0x8(%ecx)
423ce2:	8b 02                	mov    (%edx),%eax
423ce4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
423ce7:	8b 00                	mov    (%eax),%eax
423ce9:	66 89 08             	mov    %cx,(%eax)
423cec:	8b 02                	mov    (%edx),%eax
423cee:	83 00 02             	addl   $0x2,(%eax)
423cf1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
423cf4:	03 4d f4             	add    -0xc(%ebp),%ecx
423cf7:	8b 45 ec             	mov    -0x14(%ebp),%eax
423cfa:	40                   	inc    %eax
423cfb:	89 4d e8             	mov    %ecx,-0x18(%ebp)
423cfe:	3b 46 34             	cmp    0x34(%esi),%eax
423d01:	89 45 ec             	mov    %eax,-0x14(%ebp)
423d04:	8b 45 e0             	mov    -0x20(%ebp),%eax
423d07:	75 8b                	jne    0x423c94
423d09:	eb 1c                	jmp    0x423d27
423d0b:	83 0f ff             	orl    $0xffffffff,(%edi)
423d0e:	eb 17                	jmp    0x423d27
423d10:	ff 76 08             	push   0x8(%esi)
423d13:	8b ca                	mov    %edx,%ecx
423d15:	57                   	push   %edi
423d16:	ff 76 34             	push   0x34(%esi)
423d19:	ff 76 30             	push   0x30(%esi)
423d1c:	e8 8d 09 00 00       	call   0x4246ae
423d21:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
423d27:	8b 0f                	mov    (%edi),%ecx
423d29:	85 c9                	test   %ecx,%ecx
423d2b:	78 54                	js     0x423d81
423d2d:	8b 46 1c             	mov    0x1c(%esi),%eax
423d30:	c1 e8 02             	shr    $0x2,%eax
423d33:	a8 01                	test   $0x1,%al
423d35:	74 4a                	je     0x423d81
423d37:	8b 75 dc             	mov    -0x24(%ebp),%esi
423d3a:	85 f6                	test   %esi,%esi
423d3c:	7e 43                	jle    0x423d81
423d3e:	8b 12                	mov    (%edx),%edx
423d40:	8b 42 08             	mov    0x8(%edx),%eax
423d43:	3b 42 04             	cmp    0x4(%edx),%eax
423d46:	75 13                	jne    0x423d5b
423d48:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
423d4c:	74 03                	je     0x423d51
423d4e:	41                   	inc    %ecx
423d4f:	eb 03                	jmp    0x423d54
423d51:	83 c9 ff             	or     $0xffffffff,%ecx
423d54:	8b 55 e4             	mov    -0x1c(%ebp),%edx
423d57:	89 0f                	mov    %ecx,(%edi)
423d59:	eb 1a                	jmp    0x423d75
423d5b:	8d 41 01             	lea    0x1(%ecx),%eax
423d5e:	89 07                	mov    %eax,(%edi)
423d60:	ff 42 08             	incl   0x8(%edx)
423d63:	8b 55 e4             	mov    -0x1c(%ebp),%edx
423d66:	6a 20                	push   $0x20
423d68:	59                   	pop    %ecx
423d69:	8b 02                	mov    (%edx),%eax
423d6b:	8b 00                	mov    (%eax),%eax
423d6d:	66 89 08             	mov    %cx,(%eax)
423d70:	8b 02                	mov    (%edx),%eax
423d72:	83 00 02             	addl   $0x2,(%eax)
423d75:	8b 0f                	mov    (%edi),%ecx
423d77:	83 f9 ff             	cmp    $0xffffffff,%ecx
423d7a:	74 05                	je     0x423d81
423d7c:	43                   	inc    %ebx
423d7d:	3b de                	cmp    %esi,%ebx
423d7f:	7c bd                	jl     0x423d3e
423d81:	b0 01                	mov    $0x1,%al
423d83:	8b 4d fc             	mov    -0x4(%ebp),%ecx
423d86:	5f                   	pop    %edi
423d87:	5e                   	pop    %esi
423d88:	33 cd                	xor    %ebp,%ecx
423d8a:	5b                   	pop    %ebx
423d8b:	e8 40 7b ff ff       	call   0x41b8d0
423d90:	c9                   	leave
423d91:	c3                   	ret
423d92:	8b ff                	mov    %edi,%edi
423d94:	55                   	push   %ebp
423d95:	8b ec                	mov    %esp,%ebp
423d97:	8b 45 08             	mov    0x8(%ebp),%eax
423d9a:	83 f8 0b             	cmp    $0xb,%eax
423d9d:	77 20                	ja     0x423dbf
423d9f:	0f b6 80 da 3d 42 00 	movzbl 0x423dda(%eax),%eax
423da6:	ff 24 85 c6 3d 42 00 	jmp    *0x423dc6(,%eax,4)
423dad:	33 c0                	xor    %eax,%eax
423daf:	40                   	inc    %eax