4089f2:	3a 01                	cmp    (%ecx),%al
4089f4:	75 2e                	jne    0x408a24
4089f6:	0a c0                	or     %al,%al
4089f8:	74 26                	je     0x408a20
4089fa:	3a 61 01             	cmp    0x1(%ecx),%ah
4089fd:	75 25                	jne    0x408a24
4089ff:	0a e4                	or     %ah,%ah
408a01:	74 1d                	je     0x408a20
408a03:	c1 e8 10             	shr    $0x10,%eax
408a06:	3a 41 02             	cmp    0x2(%ecx),%al
408a09:	75 19                	jne    0x408a24
408a0b:	0a c0                	or     %al,%al
408a0d:	74 11                	je     0x408a20
408a0f:	3a 61 03             	cmp    0x3(%ecx),%ah
408a12:	75 10                	jne    0x408a24
408a14:	83 c1 04             	add    $0x4,%ecx
408a17:	83 c2 04             	add    $0x4,%edx
408a1a:	0a e4                	or     %ah,%ah
408a1c:	75 d2                	jne    0x4089f0
408a1e:	8b ff                	mov    %edi,%edi
408a20:	33 c0                	xor    %eax,%eax
408a22:	c3                   	ret
408a23:	90                   	nop
408a24:	1b c0                	sbb    %eax,%eax
408a26:	d1 e0                	shl    $1,%eax
408a28:	40                   	inc    %eax
408a29:	c3                   	ret
408a2a:	8b ff                	mov    %edi,%edi
408a2c:	f7 c2 01 00 00 00    	test   $0x1,%edx
408a32:	74 14                	je     0x408a48
408a34:	8a 02                	mov    (%edx),%al
408a36:	42                   	inc    %edx
408a37:	3a 01                	cmp    (%ecx),%al
408a39:	75 e9                	jne    0x408a24
408a3b:	41                   	inc    %ecx
408a3c:	0a c0                	or     %al,%al
408a3e:	74 e0                	je     0x408a20
408a40:	f7 c2 02 00 00 00    	test   $0x2,%edx
408a46:	74 a8                	je     0x4089f0
408a48:	66 8b 02             	mov    (%edx),%ax
408a4b:	83 c2 02             	add    $0x2,%edx
408a4e:	3a 01                	cmp    (%ecx),%al
408a50:	75 d2                	jne    0x408a24
408a52:	0a c0                	or     %al,%al
408a54:	74 ca                	je     0x408a20
408a56:	3a 61 01             	cmp    0x1(%ecx),%ah
408a59:	75 c9                	jne    0x408a24
408a5b:	0a e4                	or     %ah,%ah
408a5d:	74 c1                	je     0x408a20
408a5f:	83 c1 02             	add    $0x2,%ecx
408a62:	eb 8c                	jmp    0x4089f0
408a64:	53                   	push   %ebx
408a65:	56                   	push   %esi
408a66:	8b 74 24 0c          	mov    0xc(%esp),%esi
408a6a:	57                   	push   %edi
408a6b:	0f af 74 24 14       	imul   0x14(%esp),%esi
408a70:	83 fe e0             	cmp    $0xffffffe0,%esi
408a73:	8b de                	mov    %esi,%ebx
408a75:	77 0d                	ja     0x408a84
408a77:	85 f6                	test   %esi,%esi
408a79:	75 03                	jne    0x408a7e
408a7b:	6a 01                	push   $0x1
408a7d:	5e                   	pop    %esi
408a7e:	83 c6 0f             	add    $0xf,%esi
408a81:	83 e6 f0             	and    $0xfffffff0,%esi
408a84:	33 ff                	xor    %edi,%edi
408a86:	83 fe e0             	cmp    $0xffffffe0,%esi
408a89:	77 3a                	ja     0x408ac5
408a8b:	3b 1d f0 0e 41 00    	cmp    0x410ef0,%ebx
408a91:	77 1d                	ja     0x408ab0
408a93:	6a 09                	push   $0x9
408a95:	e8 5b e5 ff ff       	call   0x406ff5
408a9a:	53                   	push   %ebx
408a9b:	e8 38 1c 00 00       	call   0x40a6d8
408aa0:	6a 09                	push   $0x9
408aa2:	8b f8                	mov    %eax,%edi
408aa4:	e8 ad e5 ff ff       	call   0x407056
408aa9:	83 c4 0c             	add    $0xc,%esp
408aac:	85 ff                	test   %edi,%edi
408aae:	75 2b                	jne    0x408adb
408ab0:	56                   	push   %esi
408ab1:	6a 08                	push   $0x8
408ab3:	ff 35 a0 1d 41 00    	push   0x411da0
408ab9:	ff 15 00 d1 40 00    	call   *0x40d100
408abf:	8b f8                	mov    %eax,%edi
408ac1:	85 ff                	test   %edi,%edi
408ac3:	75 22                	jne    0x408ae7
408ac5:	83 3d 48 1a 41 00 00 	cmpl   $0x0,0x411a48
408acc:	74 19                	je     0x408ae7
408ace:	56                   	push   %esi
408acf:	e8 76 25 00 00       	call   0x40b04a
408ad4:	85 c0                	test   %eax,%eax
408ad6:	59                   	pop    %ecx
408ad7:	74 14                	je     0x408aed
408ad9:	eb a9                	jmp    0x408a84
408adb:	53                   	push   %ebx
408adc:	6a 00                	push   $0x0
408ade:	57                   	push   %edi
408adf:	e8 fc da ff ff       	call   0x4065e0
408ae4:	83 c4 0c             	add    $0xc,%esp
408ae7:	8b c7                	mov    %edi,%eax
408ae9:	5f                   	pop    %edi
408aea:	5e                   	pop    %esi
408aeb:	5b                   	pop    %ebx
408aec:	c3                   	ret
408aed:	33 c0                	xor    %eax,%eax
408aef:	eb f8                	jmp    0x408ae9
408af1:	53                   	push   %ebx
408af2:	57                   	push   %edi
408af3:	6a 02                	push   $0x2
408af5:	33 db                	xor    %ebx,%ebx
408af7:	e8 f9 e4 ff ff       	call   0x406ff5
408afc:	59                   	pop    %ecx
408afd:	6a 03                	push   $0x3
408aff:	5f                   	pop    %edi
408b00:	39 3d 00 2f 41 00    	cmp    %edi,0x412f00
408b06:	7e 5d                	jle    0x408b65
408b08:	56                   	push   %esi
408b09:	a1 e0 1e 41 00       	mov    0x411ee0,%eax
408b0e:	8b f7                	mov    %edi,%esi
408b10:	c1 e6 02             	shl    $0x2,%esi
408b13:	8b 04 06             	mov    (%esi,%eax,1),%eax
408b16:	85 c0                	test   %eax,%eax
408b18:	74 41                	je     0x408b5b
408b1a:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
408b1e:	74 0d                	je     0x408b2d
408b20:	50                   	push   %eax
408b21:	e8 4f de ff ff       	call   0x406975
408b26:	83 f8 ff             	cmp    $0xffffffff,%eax
408b29:	59                   	pop    %ecx
408b2a:	74 01                	je     0x408b2d
408b2c:	43                   	inc    %ebx
408b2d:	83 ff 14             	cmp    $0x14,%edi
408b30:	7c 29                	jl     0x408b5b
408b32:	a1 e0 1e 41 00       	mov    0x411ee0,%eax
408b37:	8b 04 06             	mov    (%esi,%eax,1),%eax
408b3a:	83 c0 20             	add    $0x20,%eax
408b3d:	50                   	push   %eax
408b3e:	ff 15 c4 d0 40 00    	call   *0x40d0c4
408b44:	a1 e0 1e 41 00       	mov    0x411ee0,%eax
408b49:	ff 34 06             	push   (%esi,%eax,1)
408b4c:	e8 86 e3 ff ff       	call   0x406ed7
408b51:	a1 e0 1e 41 00       	mov    0x411ee0,%eax
408b56:	59                   	pop    %ecx
408b57:	83 24 06 00          	andl   $0x0,(%esi,%eax,1)
408b5b:	47                   	inc    %edi
408b5c:	3b 3d 00 2f 41 00    	cmp    0x412f00,%edi
408b62:	7c a5                	jl     0x408b09
408b64:	5e                   	pop    %esi
408b65:	6a 02                	push   $0x2
408b67:	e8 ea e4 ff ff       	call   0x407056
408b6c:	59                   	pop    %ecx
408b6d:	8b c3                	mov    %ebx,%eax
408b6f:	5f                   	pop    %edi
408b70:	5b                   	pop    %ebx
408b71:	c3                   	ret
408b72:	55                   	push   %ebp
408b73:	8b ec                	mov    %esp,%ebp
408b75:	56                   	push   %esi
408b76:	8b 75 18             	mov    0x18(%ebp),%esi
408b79:	57                   	push   %edi
408b7a:	bf 20 05 93 19       	mov    $0x19930520,%edi
408b7f:	39 3e                	cmp    %edi,(%esi)
408b81:	74 05                	je     0x408b88
408b83:	e8 b5 08 00 00       	call   0x40943d
408b88:	8b 45 08             	mov    0x8(%ebp),%eax
408b8b:	f6 40 04 66          	testb  $0x66,0x4(%eax)
408b8f:	74 1f                	je     0x408bb0
408b91:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
408b95:	74 6f                	je     0x408c06
408b97:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
408b9b:	75 69                	jne    0x408c06
408b9d:	6a ff                	push   $0xffffffff
408b9f:	56                   	push   %esi
408ba0:	ff 75 14             	push   0x14(%ebp)
408ba3:	ff 75 0c             	push   0xc(%ebp)
408ba6:	e8 1c 03 00 00       	call   0x408ec7
408bab:	83 c4 10             	add    $0x10,%esp
408bae:	eb 56                	jmp    0x408c06
408bb0:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
408bb4:	74 50                	je     0x408c06
408bb6:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
408bbc:	75 2c                	jne    0x408bea
408bbe:	39 78 14             	cmp    %edi,0x14(%eax)
408bc1:	76 27                	jbe    0x408bea
408bc3:	8b 48 1c             	mov    0x1c(%eax),%ecx
408bc6:	8b 49 08             	mov    0x8(%ecx),%ecx
408bc9:	85 c9                	test   %ecx,%ecx
408bcb:	74 1d                	je     0x408bea
408bcd:	0f b6 55 24          	movzbl 0x24(%ebp),%edx
408bd1:	52                   	push   %edx
408bd2:	ff 75 20             	push   0x20(%ebp)
408bd5:	ff 75 1c             	push   0x1c(%ebp)
408bd8:	56                   	push   %esi
408bd9:	ff 75 14             	push   0x14(%ebp)
408bdc:	ff 75 10             	push   0x10(%ebp)
408bdf:	ff 75 0c             	push   0xc(%ebp)
408be2:	50                   	push   %eax
408be3:	ff d1                	call   *%ecx
408be5:	83 c4 20             	add    $0x20,%esp
408be8:	eb 1f                	jmp    0x408c09
408bea:	ff 75 20             	push   0x20(%ebp)
408bed:	ff 75 1c             	push   0x1c(%ebp)
408bf0:	ff 75 24             	push   0x24(%ebp)
408bf3:	56                   	push   %esi
408bf4:	ff 75 14             	push   0x14(%ebp)
408bf7:	ff 75 10             	push   0x10(%ebp)
408bfa:	ff 75 0c             	push   0xc(%ebp)
408bfd:	50                   	push   %eax
408bfe:	e8 0a 00 00 00       	call   0x408c0d
408c03:	83 c4 20             	add    $0x20,%esp
408c06:	6a 01                	push   $0x1
408c08:	58                   	pop    %eax
408c09:	5f                   	pop    %edi
408c0a:	5e                   	pop    %esi
408c0b:	5d                   	pop    %ebp
408c0c:	c3                   	ret
408c0d:	55                   	push   %ebp
408c0e:	8b ec                	mov    %esp,%ebp
408c10:	83 ec 18             	sub    $0x18,%esp
408c13:	8b 45 0c             	mov    0xc(%ebp),%eax
408c16:	80 65 ec 00          	andb   $0x0,-0x14(%ebp)
408c1a:	8b 40 08             	mov    0x8(%eax),%eax
408c1d:	83 f8 ff             	cmp    $0xffffffff,%eax
408c20:	89 45 f0             	mov    %eax,-0x10(%ebp)
408c23:	7c 08                	jl     0x408c2d
408c25:	8b 4d 18             	mov    0x18(%ebp),%ecx
408c28:	3b 41 04             	cmp    0x4(%ecx),%eax
408c2b:	7c 05                	jl     0x408c32
408c2d:	e8 0b 08 00 00       	call   0x40943d
408c32:	53                   	push   %ebx
408c33:	56                   	push   %esi
408c34:	8b 75 08             	mov    0x8(%ebp),%esi
408c37:	bb 63 73 6d e0       	mov    $0xe06d7363,%ebx
408c3c:	57                   	push   %edi
408c3d:	bf 20 05 93 19       	mov    $0x19930520,%edi
408c42:	39 1e                	cmp    %ebx,(%esi)
408c44:	0f 85 4b 01 00 00    	jne    0x408d95
408c4a:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408c4e:	75 62                	jne    0x408cb2
408c50:	39 7e 14             	cmp    %edi,0x14(%esi)
408c53:	75 5d                	jne    0x408cb2
408c55:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
408c59:	75 57                	jne    0x408cb2
408c5b:	e8 67 fa ff ff       	call   0x4086c7
408c60:	83 78 6c 00          	cmpl   $0x0,0x6c(%eax)
408c64:	0f 84 26 01 00 00    	je     0x408d90
408c6a:	e8 58 fa ff ff       	call   0x4086c7
408c6f:	8b 70 6c             	mov    0x6c(%eax),%esi
408c72:	e8 50 fa ff ff       	call   0x4086c7
408c77:	8b 40 70             	mov    0x70(%eax),%eax
408c7a:	6a 01                	push   $0x1
408c7c:	56                   	push   %esi
408c7d:	89 45 10             	mov    %eax,0x10(%ebp)
408c80:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
408c84:	e8 f4 2a 00 00       	call   0x40b77d
408c89:	59                   	pop    %ecx
408c8a:	85 c0                	test   %eax,%eax
408c8c:	59                   	pop    %ecx
408c8d:	75 05                	jne    0x408c94
408c8f:	e8 a9 07 00 00       	call   0x40943d
408c94:	39 1e                	cmp    %ebx,(%esi)
408c96:	0f 85 f9 00 00 00    	jne    0x408d95
408c9c:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408ca0:	75 10                	jne    0x408cb2
408ca2:	39 7e 14             	cmp    %edi,0x14(%esi)
408ca5:	75 0b                	jne    0x408cb2
408ca7:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
408cab:	75 05                	jne    0x408cb2
408cad:	e8 8b 07 00 00       	call   0x40943d
408cb2:	39 1e                	cmp    %ebx,(%esi)
408cb4:	0f 85 db 00 00 00    	jne    0x408d95
408cba:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408cbe:	0f 85 d1 00 00 00    	jne    0x408d95
408cc4:	39 7e 14             	cmp    %edi,0x14(%esi)
408cc7:	0f 85 c8 00 00 00    	jne    0x408d95
408ccd:	8b 7d f0             	mov    -0x10(%ebp),%edi
408cd0:	8d 45 e8             	lea    -0x18(%ebp),%eax
408cd3:	50                   	push   %eax
408cd4:	8d 45 fc             	lea    -0x4(%ebp),%eax
408cd7:	50                   	push   %eax
408cd8:	57                   	push   %edi
408cd9:	ff 75 20             	push   0x20(%ebp)
408cdc:	ff 75 18             	push   0x18(%ebp)
408cdf:	e8 f1 ce ff ff       	call   0x405bd5
408ce4:	83 c4 14             	add    $0x14,%esp
408ce7:	8b d8                	mov    %eax,%ebx
408ce9:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cec:	3b 45 e8             	cmp    -0x18(%ebp),%eax
408cef:	0f 83 8b 00 00 00    	jae    0x408d80
408cf5:	39 3b                	cmp    %edi,(%ebx)
408cf7:	7f 7c                	jg     0x408d75
408cf9:	3b 7b 04             	cmp    0x4(%ebx),%edi
408cfc:	7f 77                	jg     0x408d75
408cfe:	8b 43 10             	mov    0x10(%ebx),%eax
408d01:	89 45 08             	mov    %eax,0x8(%ebp)
408d04:	8b 43 0c             	mov    0xc(%ebx),%eax
408d07:	85 c0                	test   %eax,%eax
408d09:	89 45 f4             	mov    %eax,-0xc(%ebp)
408d0c:	7e 64                	jle    0x408d72
408d0e:	8b 46 1c             	mov    0x1c(%esi),%eax
408d11:	8b 40 0c             	mov    0xc(%eax),%eax
408d14:	8d 78 04             	lea    0x4(%eax),%edi
408d17:	8b 00                	mov    (%eax),%eax
408d19:	85 c0                	test   %eax,%eax
408d1b:	89 45 f8             	mov    %eax,-0x8(%ebp)
408d1e:	7e 1f                	jle    0x408d3f
408d20:	ff 76 1c             	push   0x1c(%esi)
408d23:	ff 37                	push   (%edi)
408d25:	ff 75 08             	push   0x8(%ebp)
408d28:	e8 3d 01 00 00       	call   0x408e6a
408d2d:	83 c4 0c             	add    $0xc,%esp
408d30:	85 c0                	test   %eax,%eax
408d32:	75 1a                	jne    0x408d4e
408d34:	ff 4d f8             	decl   -0x8(%ebp)
408d37:	83 c7 04             	add    $0x4,%edi
408d3a:	39 45 f8             	cmp    %eax,-0x8(%ebp)
408d3d:	7f e1                	jg     0x408d20
408d3f:	ff 4d f4             	decl   -0xc(%ebp)
408d42:	83 45 08 10          	addl   $0x10,0x8(%ebp)
408d46:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
408d4a:	7f c2                	jg     0x408d0e
408d4c:	eb 24                	jmp    0x408d72
408d4e:	ff 75 ec             	push   -0x14(%ebp)
408d51:	ff 75 24             	push   0x24(%ebp)
408d54:	ff 75 20             	push   0x20(%ebp)
408d57:	53                   	push   %ebx
408d58:	ff 37                	push   (%edi)
408d5a:	ff 75 08             	push   0x8(%ebp)
408d5d:	ff 75 18             	push   0x18(%ebp)
408d60:	ff 75 14             	push   0x14(%ebp)
408d63:	ff 75 10             	push   0x10(%ebp)
408d66:	ff 75 0c             	push   0xc(%ebp)
408d69:	56                   	push   %esi
408d6a:	e8 0c 02 00 00       	call   0x408f7b
408d6f:	83 c4 2c             	add    $0x2c,%esp
408d72:	8b 7d f0             	mov    -0x10(%ebp),%edi
408d75:	ff 45 fc             	incl   -0x4(%ebp)
408d78:	83 c3 14             	add    $0x14,%ebx
408d7b:	e9 69 ff ff ff       	jmp    0x408ce9
408d80:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
408d84:	74 0a                	je     0x408d90
408d86:	6a 01                	push   $0x1
408d88:	56                   	push   %esi
408d89:	e8 71 05 00 00       	call   0x4092ff
408d8e:	59                   	pop    %ecx
408d8f:	59                   	pop    %ecx
408d90:	5f                   	pop    %edi
408d91:	5e                   	pop    %esi
408d92:	5b                   	pop    %ebx