40ec70:	8b 45 d0             	mov    -0x30(%ebp),%eax
40ec73:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40ec79:	89 86 8c 00 00 00    	mov    %eax,0x8c(%esi)
40ec7f:	8b 45 bc             	mov    -0x44(%ebp),%eax
40ec82:	89 06                	mov    %eax,(%esi)
40ec84:	8b 45 b8             	mov    -0x48(%ebp),%eax
40ec87:	89 86 90 00 00 00    	mov    %eax,0x90(%esi)
40ec8d:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40ec90:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
40ec96:	8b 45 b0             	mov    -0x50(%ebp),%eax
40ec99:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
40ec9f:	8b 45 c8             	mov    -0x38(%ebp),%eax
40eca2:	89 46 04             	mov    %eax,0x4(%esi)
40eca5:	eb 24                	jmp    0x40eccb
40eca7:	ff 75 d0             	push   -0x30(%ebp)
40ecaa:	e8 5c 44 00 00       	call   0x41310b
40ecaf:	ff 75 e4             	push   -0x1c(%ebp)
40ecb2:	e8 54 44 00 00       	call   0x41310b
40ecb7:	57                   	push   %edi
40ecb8:	e8 4e 44 00 00       	call   0x41310b
40ecbd:	ff 75 e0             	push   -0x20(%ebp)
40ecc0:	e8 46 44 00 00       	call   0x41310b
40ecc5:	33 db                	xor    %ebx,%ebx
40ecc7:	83 c4 10             	add    $0x10,%esp
40ecca:	43                   	inc    %ebx
40eccb:	ff 75 dc             	push   -0x24(%ebp)
40ecce:	e8 38 44 00 00       	call   0x41310b
40ecd3:	59                   	pop    %ecx
40ecd4:	8b c3                	mov    %ebx,%eax
40ecd6:	eb 3c                	jmp    0x40ed14
40ecd8:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
40ecde:	85 c0                	test   %eax,%eax
40ece0:	74 03                	je     0x40ece5
40ece2:	f0 ff 08             	lock decl (%eax)
40ece5:	89 9e 8c 00 00 00    	mov    %ebx,0x8c(%esi)
40eceb:	33 c0                	xor    %eax,%eax
40eced:	89 9e 90 00 00 00    	mov    %ebx,0x90(%esi)
40ecf3:	c7 06 e0 61 42 00    	movl   $0x4261e0,(%esi)
40ecf9:	c7 86 94 00 00 00 60 	movl   $0x426460,0x94(%esi)
40ed00:	64 42 00
40ed03:	c7 86 98 00 00 00 e0 	movl   $0x4265e0,0x98(%esi)
40ed0a:	65 42 00
40ed0d:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
40ed14:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ed17:	5f                   	pop    %edi
40ed18:	5e                   	pop    %esi
40ed19:	33 cd                	xor    %ebp,%ecx
40ed1b:	5b                   	pop    %ebx
40ed1c:	e8 eb 86 ff ff       	call   0x40740c
40ed21:	c9                   	leave
40ed22:	c3                   	ret
40ed23:	8b ff                	mov    %edi,%edi
40ed25:	55                   	push   %ebp
40ed26:	8b ec                	mov    %esp,%ebp
40ed28:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ed2c:	53                   	push   %ebx
40ed2d:	57                   	push   %edi
40ed2e:	74 3f                	je     0x40ed6f
40ed30:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed33:	33 ff                	xor    %edi,%edi
40ed35:	8d 51 02             	lea    0x2(%ecx),%edx
40ed38:	66 8b 01             	mov    (%ecx),%ax
40ed3b:	83 c1 02             	add    $0x2,%ecx
40ed3e:	66 3b c7             	cmp    %di,%ax
40ed41:	75 f5                	jne    0x40ed38
40ed43:	2b ca                	sub    %edx,%ecx
40ed45:	d1 f9                	sar    $1,%ecx
40ed47:	8d 59 01             	lea    0x1(%ecx),%ebx
40ed4a:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
40ed4d:	50                   	push   %eax
40ed4e:	e8 2a f7 ff ff       	call   0x40e47d
40ed53:	8b f8                	mov    %eax,%edi
40ed55:	59                   	pop    %ecx
40ed56:	85 ff                	test   %edi,%edi
40ed58:	74 15                	je     0x40ed6f
40ed5a:	ff 75 08             	push   0x8(%ebp)
40ed5d:	53                   	push   %ebx
40ed5e:	57                   	push   %edi
40ed5f:	e8 f9 9c 00 00       	call   0x418a5d
40ed64:	83 c4 0c             	add    $0xc,%esp
40ed67:	85 c0                	test   %eax,%eax
40ed69:	75 0a                	jne    0x40ed75
40ed6b:	8b c7                	mov    %edi,%eax
40ed6d:	eb 02                	jmp    0x40ed71
40ed6f:	33 c0                	xor    %eax,%eax
40ed71:	5f                   	pop    %edi
40ed72:	5b                   	pop    %ebx
40ed73:	5d                   	pop    %ebp
40ed74:	c3                   	ret
40ed75:	33 c0                	xor    %eax,%eax
40ed77:	50                   	push   %eax
40ed78:	50                   	push   %eax
40ed79:	50                   	push   %eax
40ed7a:	50                   	push   %eax
40ed7b:	50                   	push   %eax
40ed7c:	e8 2d e3 ff ff       	call   0x40d0ae
40ed81:	cc                   	int3
40ed82:	8b ff                	mov    %edi,%edi
40ed84:	55                   	push   %ebp
40ed85:	8b ec                	mov    %esp,%ebp
40ed87:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed8a:	33 c0                	xor    %eax,%eax
40ed8c:	3b 0c c5 e8 68 42 00 	cmp    0x4268e8(,%eax,8),%ecx
40ed93:	74 27                	je     0x40edbc
40ed95:	40                   	inc    %eax
40ed96:	83 f8 2d             	cmp    $0x2d,%eax
40ed99:	72 f1                	jb     0x40ed8c
40ed9b:	8d 41 ed             	lea    -0x13(%ecx),%eax
40ed9e:	83 f8 11             	cmp    $0x11,%eax
40eda1:	77 05                	ja     0x40eda8
40eda3:	6a 0d                	push   $0xd
40eda5:	58                   	pop    %eax
40eda6:	5d                   	pop    %ebp
40eda7:	c3                   	ret
40eda8:	8d 81 44 ff ff ff    	lea    -0xbc(%ecx),%eax
40edae:	6a 0e                	push   $0xe
40edb0:	59                   	pop    %ecx
40edb1:	3b c8                	cmp    %eax,%ecx
40edb3:	1b c0                	sbb    %eax,%eax
40edb5:	23 c1                	and    %ecx,%eax
40edb7:	83 c0 08             	add    $0x8,%eax
40edba:	5d                   	pop    %ebp
40edbb:	c3                   	ret
40edbc:	8b 04 c5 ec 68 42 00 	mov    0x4268ec(,%eax,8),%eax
40edc3:	5d                   	pop    %ebp
40edc4:	c3                   	ret
40edc5:	8b ff                	mov    %edi,%edi
40edc7:	55                   	push   %ebp
40edc8:	8b ec                	mov    %esp,%ebp
40edca:	56                   	push   %esi
40edcb:	e8 18 00 00 00       	call   0x40ede8
40edd0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40edd3:	51                   	push   %ecx
40edd4:	89 08                	mov    %ecx,(%eax)
40edd6:	e8 a7 ff ff ff       	call   0x40ed82
40eddb:	59                   	pop    %ecx
40eddc:	8b f0                	mov    %eax,%esi
40edde:	e8 18 00 00 00       	call   0x40edfb
40ede3:	89 30                	mov    %esi,(%eax)
40ede5:	5e                   	pop    %esi
40ede6:	5d                   	pop    %ebp
40ede7:	c3                   	ret
40ede8:	e8 3d 55 00 00       	call   0x41432a
40eded:	85 c0                	test   %eax,%eax
40edef:	75 06                	jne    0x40edf7
40edf1:	b8 78 31 43 00       	mov    $0x433178,%eax
40edf6:	c3                   	ret
40edf7:	83 c0 14             	add    $0x14,%eax
40edfa:	c3                   	ret
40edfb:	e8 2a 55 00 00       	call   0x41432a
40ee00:	85 c0                	test   %eax,%eax
40ee02:	75 06                	jne    0x40ee0a
40ee04:	b8 74 31 43 00       	mov    $0x433174,%eax
40ee09:	c3                   	ret
40ee0a:	83 c0 10             	add    $0x10,%eax
40ee0d:	c3                   	ret
40ee0e:	e8 7c 9d 00 00       	call   0x418b8f
40ee13:	85 c0                	test   %eax,%eax
40ee15:	74 08                	je     0x40ee1f
40ee17:	6a 16                	push   $0x16
40ee19:	e8 b6 9d 00 00       	call   0x418bd4
40ee1e:	59                   	pop    %ecx
40ee1f:	f6 05 7c 31 43 00 02 	testb  $0x2,0x43317c
40ee26:	74 22                	je     0x40ee4a
40ee28:	6a 17                	push   $0x17
40ee2a:	ff 15 70 40 42 00    	call   *0x424070
40ee30:	85 c0                	test   %eax,%eax
40ee32:	74 05                	je     0x40ee39
40ee34:	6a 07                	push   $0x7
40ee36:	59                   	pop    %ecx
40ee37:	cd 29                	int    $0x29
40ee39:	6a 01                	push   $0x1
40ee3b:	68 15 00 00 40       	push   $0x40000015
40ee40:	6a 03                	push   $0x3
40ee42:	e8 8e e0 ff ff       	call   0x40ced5
40ee47:	83 c4 0c             	add    $0xc,%esp
40ee4a:	6a 03                	push   $0x3
40ee4c:	e8 de 16 00 00       	call   0x41052f
40ee51:	cc                   	int3
40ee52:	8b ff                	mov    %edi,%edi
40ee54:	55                   	push   %ebp
40ee55:	8b ec                	mov    %esp,%ebp
40ee57:	8b 45 08             	mov    0x8(%ebp),%eax
40ee5a:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ee5d:	8b 55 0c             	mov    0xc(%ebp),%edx
40ee60:	89 10                	mov    %edx,(%eax)
40ee62:	89 48 04             	mov    %ecx,0x4(%eax)
40ee65:	85 c9                	test   %ecx,%ecx
40ee67:	74 02                	je     0x40ee6b
40ee69:	89 11                	mov    %edx,(%ecx)
40ee6b:	5d                   	pop    %ebp
40ee6c:	c3                   	ret
40ee6d:	cc                   	int3
40ee6e:	cc                   	int3
40ee6f:	cc                   	int3
40ee70:	8b ff                	mov    %edi,%edi
40ee72:	55                   	push   %ebp
40ee73:	8b ec                	mov    %esp,%ebp
40ee75:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
40ee7b:	53                   	push   %ebx
40ee7c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ee7f:	56                   	push   %esi
40ee80:	57                   	push   %edi
40ee81:	8b 33                	mov    (%ebx),%esi
40ee83:	85 f6                	test   %esi,%esi
40ee85:	0f 84 72 04 00 00    	je     0x40f2fd
40ee8b:	8b 55 0c             	mov    0xc(%ebp),%edx
40ee8e:	8b 02                	mov    (%edx),%eax
40ee90:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ee93:	85 c0                	test   %eax,%eax
40ee95:	0f 84 62 04 00 00    	je     0x40f2fd
40ee9b:	8d 78 ff             	lea    -0x1(%eax),%edi
40ee9e:	8d 4e ff             	lea    -0x1(%esi),%ecx
40eea1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40eea4:	85 ff                	test   %edi,%edi
40eea6:	0f 85 2b 01 00 00    	jne    0x40efd7
40eeac:	8b 52 04             	mov    0x4(%edx),%edx
40eeaf:	89 55 f8             	mov    %edx,-0x8(%ebp)
40eeb2:	83 fa 01             	cmp    $0x1,%edx
40eeb5:	75 2f                	jne    0x40eee6
40eeb7:	8b 73 04             	mov    0x4(%ebx),%esi
40eeba:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40eec0:	57                   	push   %edi
40eec1:	50                   	push   %eax
40eec2:	8d 4b 04             	lea    0x4(%ebx),%ecx
40eec5:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40eecb:	68 cc 01 00 00       	push   $0x1cc
40eed0:	51                   	push   %ecx
40eed1:	89 3b                	mov    %edi,(%ebx)
40eed3:	e8 76 ec ff ff       	call   0x40db4e
40eed8:	83 c4 10             	add    $0x10,%esp
40eedb:	8b c6                	mov    %esi,%eax
40eedd:	33 d2                	xor    %edx,%edx
40eedf:	5f                   	pop    %edi
40eee0:	5e                   	pop    %esi
40eee1:	5b                   	pop    %ebx
40eee2:	8b e5                	mov    %ebp,%esp
40eee4:	5d                   	pop    %ebp
40eee5:	c3                   	ret
40eee6:	85 c9                	test   %ecx,%ecx
40eee8:	75 40                	jne    0x40ef2a
40eeea:	8b 73 04             	mov    0x4(%ebx),%esi
40eeed:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40eef3:	51                   	push   %ecx
40eef4:	50                   	push   %eax
40eef5:	8d 7b 04             	lea    0x4(%ebx),%edi
40eef8:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
40eefe:	68 cc 01 00 00       	push   $0x1cc
40ef03:	57                   	push   %edi
40ef04:	89 0b                	mov    %ecx,(%ebx)
40ef06:	e8 43 ec ff ff       	call   0x40db4e
40ef0b:	33 d2                	xor    %edx,%edx
40ef0d:	8b c6                	mov    %esi,%eax
40ef0f:	f7 75 f8             	divl   -0x8(%ebp)
40ef12:	83 c4 10             	add    $0x10,%esp
40ef15:	33 c9                	xor    %ecx,%ecx
40ef17:	3b ca                	cmp    %edx,%ecx
40ef19:	89 17                	mov    %edx,(%edi)
40ef1b:	1b c9                	sbb    %ecx,%ecx
40ef1d:	5f                   	pop    %edi
40ef1e:	f7 d9                	neg    %ecx
40ef20:	33 d2                	xor    %edx,%edx
40ef22:	5e                   	pop    %esi
40ef23:	89 0b                	mov    %ecx,(%ebx)
40ef25:	5b                   	pop    %ebx
40ef26:	8b e5                	mov    %ebp,%esp
40ef28:	5d                   	pop    %ebp
40ef29:	c3                   	ret
40ef2a:	33 ff                	xor    %edi,%edi
40ef2c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40ef33:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
40ef3a:	89 7d e8             	mov    %edi,-0x18(%ebp)
40ef3d:	83 f9 ff             	cmp    $0xffffffff,%ecx
40ef40:	74 4b                	je     0x40ef8d
40ef42:	41                   	inc    %ecx
40ef43:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
40ef46:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40ef49:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40ef50:	53                   	push   %ebx
40ef51:	6a 00                	push   $0x0
40ef53:	52                   	push   %edx
40ef54:	33 c0                	xor    %eax,%eax
40ef56:	0b 01                	or     (%ecx),%eax
40ef58:	57                   	push   %edi
40ef59:	50                   	push   %eax
40ef5a:	e8 91 35 01 00       	call   0x4224f0
40ef5f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40ef62:	5b                   	pop    %ebx
40ef63:	90                   	nop
40ef64:	89 55 c0             	mov    %edx,-0x40(%ebp)
40ef67:	8b f9                	mov    %ecx,%edi
40ef69:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ef6c:	33 d2                	xor    %edx,%edx
40ef6e:	03 d0                	add    %eax,%edx
40ef70:	89 55 f4             	mov    %edx,-0xc(%ebp)
40ef73:	8b 55 f8             	mov    -0x8(%ebp),%edx
40ef76:	83 d1 00             	adc    $0x0,%ecx
40ef79:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40ef7c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ef7f:	83 e9 04             	sub    $0x4,%ecx
40ef82:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40ef85:	83 ee 01             	sub    $0x1,%esi
40ef88:	75 c6                	jne    0x40ef50
40ef8a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ef8d:	6a 00                	push   $0x0
40ef8f:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40ef95:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
40ef9c:	00 00 00
40ef9f:	50                   	push   %eax
40efa0:	8d 73 04             	lea    0x4(%ebx),%esi
40efa3:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40efa9:	68 cc 01 00 00       	push   $0x1cc
40efae:	56                   	push   %esi
40efaf:	e8 9a eb ff ff       	call   0x40db4e
40efb4:	8b 45 e8             	mov    -0x18(%ebp),%eax
40efb7:	83 c4 10             	add    $0x10,%esp
40efba:	8b 55 dc             	mov    -0x24(%ebp),%edx
40efbd:	33 c9                	xor    %ecx,%ecx
40efbf:	3b c8                	cmp    %eax,%ecx
40efc1:	89 3e                	mov    %edi,(%esi)
40efc3:	89 43 08             	mov    %eax,0x8(%ebx)
40efc6:	8b 45 f4             	mov    -0xc(%ebp),%eax
40efc9:	1b c9                	sbb    %ecx,%ecx
40efcb:	f7 d9                	neg    %ecx
40efcd:	5f                   	pop    %edi
40efce:	41                   	inc    %ecx
40efcf:	5e                   	pop    %esi
40efd0:	89 0b                	mov    %ecx,(%ebx)
40efd2:	5b                   	pop    %ebx
40efd3:	8b e5                	mov    %ebp,%esp
40efd5:	5d                   	pop    %ebp
40efd6:	c3                   	ret
40efd7:	3b f9                	cmp    %ecx,%edi
40efd9:	0f 87 1e 03 00 00    	ja     0x40f2fd
40efdf:	8b d1                	mov    %ecx,%edx
40efe1:	8b c1                	mov    %ecx,%eax
40efe3:	2b d7                	sub    %edi,%edx
40efe5:	3b ca                	cmp    %edx,%ecx
40efe7:	7c 22                	jl     0x40f00b
40efe9:	8b 75 0c             	mov    0xc(%ebp),%esi
40efec:	41                   	inc    %ecx
40efed:	8d 34 be             	lea    (%esi,%edi,4),%esi
40eff0:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
40eff3:	83 c6 04             	add    $0x4,%esi
40eff6:	8b 3e                	mov    (%esi),%edi
40eff8:	3b 39                	cmp    (%ecx),%edi
40effa:	75 0d                	jne    0x40f009
40effc:	48                   	dec    %eax
40effd:	83 ee 04             	sub    $0x4,%esi
40f000:	83 e9 04             	sub    $0x4,%ecx