40dacd:	74 02                	je     0x40dad1
40dacf:	89 18                	mov    %ebx,(%eax)
40dad1:	33 c0                	xor    %eax,%eax
40dad3:	eb 7b                	jmp    0x40db50
40dad5:	8b 45 08             	mov    0x8(%ebp),%eax
40dad8:	3b c3                	cmp    %ebx,%eax
40dada:	74 03                	je     0x40dadf
40dadc:	83 08 ff             	orl    $0xffffffff,(%eax)
40dadf:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40dae5:	76 13                	jbe    0x40dafa
40dae7:	e8 3b 66 ff ff       	call   0x404127
40daec:	6a 16                	push   $0x16
40daee:	5e                   	pop    %esi
40daef:	89 30                	mov    %esi,(%eax)
40daf1:	e8 91 51 ff ff       	call   0x402c87
40daf6:	8b c6                	mov    %esi,%eax
40daf8:	eb 56                	jmp    0x40db50
40dafa:	ff 75 18             	push   0x18(%ebp)
40dafd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40db00:	e8 e0 44 ff ff       	call   0x401fe5
40db05:	8b 45 f0             	mov    -0x10(%ebp),%eax
40db08:	39 58 14             	cmp    %ebx,0x14(%eax)
40db0b:	0f 85 90 00 00 00    	jne    0x40dba1
40db11:	66 8b 45 14          	mov    0x14(%ebp),%ax
40db15:	b9 ff 00 00 00       	mov    $0xff,%ecx
40db1a:	66 3b c1             	cmp    %cx,%ax
40db1d:	76 36                	jbe    0x40db55
40db1f:	3b f3                	cmp    %ebx,%esi
40db21:	74 0f                	je     0x40db32
40db23:	3b fb                	cmp    %ebx,%edi
40db25:	76 0b                	jbe    0x40db32
40db27:	57                   	push   %edi
40db28:	53                   	push   %ebx
40db29:	56                   	push   %esi
40db2a:	e8 b1 9e ff ff       	call   0x4079e0
40db2f:	83 c4 0c             	add    $0xc,%esp
40db32:	e8 f0 65 ff ff       	call   0x404127
40db37:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40db3d:	e8 e5 65 ff ff       	call   0x404127
40db42:	8b 00                	mov    (%eax),%eax
40db44:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db47:	74 07                	je     0x40db50
40db49:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40db4c:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40db50:	5f                   	pop    %edi
40db51:	5e                   	pop    %esi
40db52:	5b                   	pop    %ebx
40db53:	c9                   	leave
40db54:	c3                   	ret
40db55:	3b f3                	cmp    %ebx,%esi
40db57:	74 26                	je     0x40db7f
40db59:	3b fb                	cmp    %ebx,%edi
40db5b:	77 20                	ja     0x40db7d
40db5d:	e8 c5 65 ff ff       	call   0x404127
40db62:	6a 22                	push   $0x22
40db64:	5e                   	pop    %esi
40db65:	89 30                	mov    %esi,(%eax)
40db67:	e8 1b 51 ff ff       	call   0x402c87
40db6c:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db6f:	74 85                	je     0x40daf6
40db71:	8b 45 f8             	mov    -0x8(%ebp),%eax
40db74:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40db78:	e9 79 ff ff ff       	jmp    0x40daf6
40db7d:	88 06                	mov    %al,(%esi)
40db7f:	8b 45 08             	mov    0x8(%ebp),%eax
40db82:	3b c3                	cmp    %ebx,%eax
40db84:	74 06                	je     0x40db8c
40db86:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40db8c:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db8f:	0f 84 3c ff ff ff    	je     0x40dad1
40db95:	8b 45 f8             	mov    -0x8(%ebp),%eax
40db98:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40db9c:	e9 30 ff ff ff       	jmp    0x40dad1
40dba1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40dba4:	51                   	push   %ecx
40dba5:	53                   	push   %ebx
40dba6:	57                   	push   %edi
40dba7:	56                   	push   %esi
40dba8:	6a 01                	push   $0x1
40dbaa:	8d 4d 14             	lea    0x14(%ebp),%ecx
40dbad:	51                   	push   %ecx
40dbae:	53                   	push   %ebx
40dbaf:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40dbb2:	ff 70 04             	push   0x4(%eax)
40dbb5:	ff 15 10 f1 40 00    	call   *0x40f110
40dbbb:	3b c3                	cmp    %ebx,%eax
40dbbd:	74 14                	je     0x40dbd3
40dbbf:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40dbc2:	0f 85 6a ff ff ff    	jne    0x40db32
40dbc8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dbcb:	3b cb                	cmp    %ebx,%ecx
40dbcd:	74 bd                	je     0x40db8c
40dbcf:	89 01                	mov    %eax,(%ecx)
40dbd1:	eb b9                	jmp    0x40db8c
40dbd3:	ff 15 44 f0 40 00    	call   *0x40f044
40dbd9:	83 f8 7a             	cmp    $0x7a,%eax
40dbdc:	0f 85 50 ff ff ff    	jne    0x40db32
40dbe2:	3b f3                	cmp    %ebx,%esi
40dbe4:	0f 84 73 ff ff ff    	je     0x40db5d
40dbea:	3b fb                	cmp    %ebx,%edi
40dbec:	0f 86 6b ff ff ff    	jbe    0x40db5d
40dbf2:	57                   	push   %edi
40dbf3:	53                   	push   %ebx
40dbf4:	56                   	push   %esi
40dbf5:	e8 e6 9d ff ff       	call   0x4079e0
40dbfa:	83 c4 0c             	add    $0xc,%esp
40dbfd:	e9 5b ff ff ff       	jmp    0x40db5d
40dc02:	8b ff                	mov    %edi,%edi
40dc04:	55                   	push   %ebp
40dc05:	8b ec                	mov    %esp,%ebp
40dc07:	6a 00                	push   $0x0
40dc09:	ff 75 14             	push   0x14(%ebp)
40dc0c:	ff 75 10             	push   0x10(%ebp)
40dc0f:	ff 75 0c             	push   0xc(%ebp)
40dc12:	ff 75 08             	push   0x8(%ebp)
40dc15:	e8 93 fe ff ff       	call   0x40daad
40dc1a:	83 c4 14             	add    $0x14,%esp
40dc1d:	5d                   	pop    %ebp
40dc1e:	c3                   	ret
40dc1f:	8b ff                	mov    %edi,%edi
40dc21:	55                   	push   %ebp
40dc22:	8b ec                	mov    %esp,%ebp
40dc24:	56                   	push   %esi
40dc25:	8b 75 14             	mov    0x14(%ebp),%esi
40dc28:	85 f6                	test   %esi,%esi
40dc2a:	7e 0d                	jle    0x40dc39
40dc2c:	56                   	push   %esi
40dc2d:	ff 75 10             	push   0x10(%ebp)
40dc30:	e8 9c 93 ff ff       	call   0x406fd1
40dc35:	59                   	pop    %ecx
40dc36:	59                   	pop    %ecx
40dc37:	8b f0                	mov    %eax,%esi
40dc39:	8b 45 1c             	mov    0x1c(%ebp),%eax
40dc3c:	85 c0                	test   %eax,%eax
40dc3e:	7e 0b                	jle    0x40dc4b
40dc40:	50                   	push   %eax
40dc41:	ff 75 18             	push   0x18(%ebp)
40dc44:	e8 88 93 ff ff       	call   0x406fd1
40dc49:	59                   	pop    %ecx
40dc4a:	59                   	pop    %ecx
40dc4b:	85 f6                	test   %esi,%esi
40dc4d:	74 1a                	je     0x40dc69
40dc4f:	85 c0                	test   %eax,%eax
40dc51:	74 16                	je     0x40dc69
40dc53:	50                   	push   %eax
40dc54:	ff 75 18             	push   0x18(%ebp)
40dc57:	56                   	push   %esi
40dc58:	ff 75 10             	push   0x10(%ebp)
40dc5b:	ff 75 0c             	push   0xc(%ebp)
40dc5e:	ff 75 08             	push   0x8(%ebp)
40dc61:	ff 15 40 f1 40 00    	call   *0x40f140
40dc67:	eb 16                	jmp    0x40dc7f
40dc69:	8b ce                	mov    %esi,%ecx
40dc6b:	2b c8                	sub    %eax,%ecx
40dc6d:	75 05                	jne    0x40dc74
40dc6f:	6a 02                	push   $0x2
40dc71:	58                   	pop    %eax
40dc72:	eb 0b                	jmp    0x40dc7f
40dc74:	33 c0                	xor    %eax,%eax
40dc76:	85 c9                	test   %ecx,%ecx
40dc78:	0f 99 c0             	setns  %al
40dc7b:	8d 44 00 01          	lea    0x1(%eax,%eax,1),%eax
40dc7f:	5e                   	pop    %esi
40dc80:	5d                   	pop    %ebp
40dc81:	c3                   	ret
40dc82:	8b ff                	mov    %edi,%edi
40dc84:	55                   	push   %ebp
40dc85:	8b ec                	mov    %esp,%ebp
40dc87:	56                   	push   %esi
40dc88:	8b 35 70 32 41 00    	mov    0x413270,%esi
40dc8e:	eb 24                	jmp    0x40dcb4
40dc90:	57                   	push   %edi
40dc91:	50                   	push   %eax
40dc92:	ff 75 08             	push   0x8(%ebp)
40dc95:	e8 c2 b8 ff ff       	call   0x40955c
40dc9a:	83 c4 0c             	add    $0xc,%esp
40dc9d:	85 c0                	test   %eax,%eax
40dc9f:	75 10                	jne    0x40dcb1
40dca1:	8b 06                	mov    (%esi),%eax
40dca3:	0f b7 04 78          	movzwl (%eax,%edi,2),%eax
40dca7:	83 f8 3d             	cmp    $0x3d,%eax
40dcaa:	74 1e                	je     0x40dcca
40dcac:	66 85 c0             	test   %ax,%ax
40dcaf:	74 19                	je     0x40dcca
40dcb1:	83 c6 04             	add    $0x4,%esi
40dcb4:	8b 06                	mov    (%esi),%eax
40dcb6:	85 c0                	test   %eax,%eax
40dcb8:	75 d6                	jne    0x40dc90
40dcba:	8b c6                	mov    %esi,%eax
40dcbc:	2b 05 70 32 41 00    	sub    0x413270,%eax
40dcc2:	c1 f8 02             	sar    $0x2,%eax
40dcc5:	f7 d8                	neg    %eax
40dcc7:	5e                   	pop    %esi
40dcc8:	5d                   	pop    %ebp
40dcc9:	c3                   	ret
40dcca:	8b c6                	mov    %esi,%eax
40dccc:	2b 05 70 32 41 00    	sub    0x413270,%eax
40dcd2:	c1 f8 02             	sar    $0x2,%eax
40dcd5:	eb f0                	jmp    0x40dcc7
40dcd7:	8b ff                	mov    %edi,%edi
40dcd9:	55                   	push   %ebp
40dcda:	8b ec                	mov    %esp,%ebp
40dcdc:	51                   	push   %ecx
40dcdd:	57                   	push   %edi
40dcde:	8b f8                	mov    %eax,%edi
40dce0:	33 c0                	xor    %eax,%eax
40dce2:	8b cf                	mov    %edi,%ecx
40dce4:	85 ff                	test   %edi,%edi
40dce6:	74 4c                	je     0x40dd34
40dce8:	39 07                	cmp    %eax,(%edi)
40dcea:	74 09                	je     0x40dcf5
40dcec:	83 c1 04             	add    $0x4,%ecx
40dcef:	40                   	inc    %eax
40dcf0:	83 39 00             	cmpl   $0x0,(%ecx)
40dcf3:	75 f7                	jne    0x40dcec
40dcf5:	56                   	push   %esi
40dcf6:	40                   	inc    %eax
40dcf7:	6a 04                	push   $0x4
40dcf9:	50                   	push   %eax
40dcfa:	e8 05 8c ff ff       	call   0x406904
40dcff:	8b f0                	mov    %eax,%esi
40dd01:	59                   	pop    %ecx
40dd02:	59                   	pop    %ecx
40dd03:	89 75 fc             	mov    %esi,-0x4(%ebp)
40dd06:	85 f6                	test   %esi,%esi
40dd08:	75 08                	jne    0x40dd12
40dd0a:	6a 09                	push   $0x9
40dd0c:	e8 06 87 ff ff       	call   0x406417
40dd11:	59                   	pop    %ecx
40dd12:	8b 07                	mov    (%edi),%eax
40dd14:	85 c0                	test   %eax,%eax
40dd16:	74 15                	je     0x40dd2d
40dd18:	2b fe                	sub    %esi,%edi
40dd1a:	50                   	push   %eax
40dd1b:	e8 c8 08 00 00       	call   0x40e5e8
40dd20:	89 06                	mov    %eax,(%esi)
40dd22:	83 c6 04             	add    $0x4,%esi
40dd25:	8b 04 37             	mov    (%edi,%esi,1),%eax
40dd28:	59                   	pop    %ecx
40dd29:	85 c0                	test   %eax,%eax
40dd2b:	75 ed                	jne    0x40dd1a
40dd2d:	83 26 00             	andl   $0x0,(%esi)
40dd30:	8b 45 fc             	mov    -0x4(%ebp),%eax
40dd33:	5e                   	pop    %esi
40dd34:	5f                   	pop    %edi
40dd35:	c9                   	leave
40dd36:	c3                   	ret
40dd37:	8b ff                	mov    %edi,%edi
40dd39:	55                   	push   %ebp
40dd3a:	8b ec                	mov    %esp,%ebp
40dd3c:	83 ec 10             	sub    $0x10,%esp
40dd3f:	8b 45 08             	mov    0x8(%ebp),%eax
40dd42:	56                   	push   %esi
40dd43:	33 f6                	xor    %esi,%esi
40dd45:	89 75 f4             	mov    %esi,-0xc(%ebp)
40dd48:	3b c6                	cmp    %esi,%eax
40dd4a:	75 18                	jne    0x40dd64
40dd4c:	e8 d6 63 ff ff       	call   0x404127
40dd51:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40dd57:	e8 2b 4f ff ff       	call   0x402c87
40dd5c:	83 c8 ff             	or     $0xffffffff,%eax
40dd5f:	e9 80 00 00 00       	jmp    0x40dde4
40dd64:	53                   	push   %ebx
40dd65:	8b 18                	mov    (%eax),%ebx
40dd67:	57                   	push   %edi
40dd68:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40dd6b:	3b de                	cmp    %esi,%ebx
40dd6d:	74 65                	je     0x40ddd4
40dd6f:	6a 3d                	push   $0x3d
40dd71:	53                   	push   %ebx
40dd72:	e8 41 41 ff ff       	call   0x401eb8
40dd77:	8b f8                	mov    %eax,%edi
40dd79:	59                   	pop    %ecx
40dd7a:	59                   	pop    %ecx
40dd7b:	3b fe                	cmp    %esi,%edi
40dd7d:	74 55                	je     0x40ddd4
40dd7f:	3b df                	cmp    %edi,%ebx
40dd81:	74 51                	je     0x40ddd4
40dd83:	33 c0                	xor    %eax,%eax
40dd85:	66 39 77 02          	cmp    %si,0x2(%edi)
40dd89:	0f 94 c0             	sete   %al
40dd8c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dd8f:	a1 70 32 41 00       	mov    0x413270,%eax
40dd94:	3b 05 74 32 41 00    	cmp    0x413274,%eax
40dd9a:	75 0a                	jne    0x40dda6
40dd9c:	e8 36 ff ff ff       	call   0x40dcd7
40dda1:	a3 70 32 41 00       	mov    %eax,0x413270
40dda6:	3b c6                	cmp    %esi,%eax
40dda8:	75 78                	jne    0x40de22
40ddaa:	a1 68 32 41 00       	mov    0x413268,%eax
40ddaf:	39 75 0c             	cmp    %esi,0xc(%ebp)
40ddb2:	74 33                	je     0x40dde7
40ddb4:	3b c6                	cmp    %esi,%eax
40ddb6:	74 2f                	je     0x40dde7
40ddb8:	e8 d7 b9 ff ff       	call   0x409794
40ddbd:	a3 ec 2e 41 00       	mov    %eax,0x412eec
40ddc2:	e8 f1 b8 ff ff       	call   0x4096b8
40ddc7:	85 c0                	test   %eax,%eax
40ddc9:	79 57                	jns    0x40de22
40ddcb:	e8 61 b8 ff ff       	call   0x409631
40ddd0:	85 c0                	test   %eax,%eax
40ddd2:	74 4e                	je     0x40de22
40ddd4:	e8 4e 63 ff ff       	call   0x404127
40ddd9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40dddf:	83 c8 ff             	or     $0xffffffff,%eax
40dde2:	5f                   	pop    %edi
40dde3:	5b                   	pop    %ebx
40dde4:	5e                   	pop    %esi
40dde5:	c9                   	leave
40dde6:	c3                   	ret
40dde7:	39 75 f8             	cmp    %esi,-0x8(%ebp)
40ddea:	0f 85 c0 01 00 00    	jne    0x40dfb0
40ddf0:	3b c6                	cmp    %esi,%eax
40ddf2:	75 1b                	jne    0x40de0f
40ddf4:	6a 04                	push   $0x4
40ddf6:	e8 c4 8a ff ff       	call   0x4068bf
40ddfb:	59                   	pop    %ecx
40ddfc:	a3 68 32 41 00       	mov    %eax,0x413268
40de01:	3b c6                	cmp    %esi,%eax
40de03:	74 da                	je     0x40dddf
40de05:	89 30                	mov    %esi,(%eax)
40de07:	39 35 70 32 41 00    	cmp    %esi,0x413270
40de0d:	75 13                	jne    0x40de22
40de0f:	6a 04                	push   $0x4
40de11:	e8 a9 8a ff ff       	call   0x4068bf
40de16:	59                   	pop    %ecx
40de17:	a3 70 32 41 00       	mov    %eax,0x413270
40de1c:	3b c6                	cmp    %esi,%eax
40de1e:	74 bf                	je     0x40dddf
40de20:	89 30                	mov    %esi,(%eax)
40de22:	8b 1d 70 32 41 00    	mov    0x413270,%ebx
40de28:	3b de                	cmp    %esi,%ebx
40de2a:	74 b3                	je     0x40dddf
40de2c:	2b 7d fc             	sub    -0x4(%ebp),%edi
40de2f:	ff 75 fc             	push   -0x4(%ebp)
40de32:	d1 ff                	sar    $1,%edi
40de34:	89 7d f0             	mov    %edi,-0x10(%ebp)
40de37:	e8 46 fe ff ff       	call   0x40dc82
40de3c:	8b f8                	mov    %eax,%edi
40de3e:	59                   	pop    %ecx
40de3f:	3b fe                	cmp    %esi,%edi
40de41:	0f 8c fd 00 00 00    	jl     0x40df44
40de47:	39 33                	cmp    %esi,(%ebx)
40de49:	0f 84 f5 00 00 00    	je     0x40df44
40de4f:	8d 34 bb             	lea    (%ebx,%edi,4),%esi
40de52:	ff 36                	push   (%esi)
40de54:	e8 12 41 ff ff       	call   0x401f6b
40de59:	33 c0                	xor    %eax,%eax
40de5b:	59                   	pop    %ecx
40de5c:	39 45 f8             	cmp    %eax,-0x8(%ebp)