40ef3d:	03 d9                	add    %ecx,%ebx
40ef3f:	2b c3                	sub    %ebx,%eax
40ef41:	83 f8 02             	cmp    $0x2,%eax
40ef44:	7e 32                	jle    0x40ef78
40ef46:	c6 03 5c             	movb   $0x5c,(%ebx)
40ef49:	43                   	inc    %ebx
40ef4a:	8b 4a 04             	mov    0x4(%edx),%ecx
40ef4d:	8d 79 01             	lea    0x1(%ecx),%edi
40ef50:	8a 01                	mov    (%ecx),%al
40ef52:	41                   	inc    %ecx
40ef53:	84 c0                	test   %al,%al
40ef55:	75 f9                	jne    0x40ef50
40ef57:	2b cf                	sub    %edi,%ecx
40ef59:	2b f3                	sub    %ebx,%esi
40ef5b:	8d 79 01             	lea    0x1(%ecx),%edi
40ef5e:	3b fe                	cmp    %esi,%edi
40ef60:	72 02                	jb     0x40ef64
40ef62:	8b fe                	mov    %esi,%edi
40ef64:	57                   	push   %edi
40ef65:	ff 72 04             	push   0x4(%edx)
40ef68:	56                   	push   %esi
40ef69:	53                   	push   %ebx
40ef6a:	ff 15 60 c3 42 00    	call   *0x42c360
40ef70:	83 c4 10             	add    $0x10,%esp
40ef73:	c6 44 1f ff 00       	movb   $0x0,-0x1(%edi,%ebx,1)
40ef78:	b0 01                	mov    $0x1,%al
40ef7a:	5f                   	pop    %edi
40ef7b:	5e                   	pop    %esi
40ef7c:	5b                   	pop    %ebx
40ef7d:	c9                   	leave
40ef7e:	c2 08 00             	ret    $0x8
40ef81:	cc                   	int3
40ef82:	8b ff                	mov    %edi,%edi
40ef84:	55                   	push   %ebp
40ef85:	8b ec                	mov    %esp,%ebp
40ef87:	83 ec 0c             	sub    $0xc,%esp
40ef8a:	53                   	push   %ebx
40ef8b:	56                   	push   %esi
40ef8c:	57                   	push   %edi
40ef8d:	8b fa                	mov    %edx,%edi
40ef8f:	33 db                	xor    %ebx,%ebx
40ef91:	8b c1                	mov    %ecx,%eax
40ef93:	88 5d f4             	mov    %bl,-0xc(%ebp)
40ef96:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ef99:	88 1f                	mov    %bl,(%edi)
40ef9b:	8b 35 64 ba 42 00    	mov    0x42ba64,%esi
40efa1:	85 f6                	test   %esi,%esi
40efa3:	74 27                	je     0x40efcc
40efa5:	ff 15 74 c2 42 00    	call   *0x42c274
40efab:	33 d2                	xor    %edx,%edx
40efad:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
40efb4:	8b c8                	mov    %eax,%ecx
40efb6:	f7 75 f8             	divl   -0x8(%ebp)
40efb9:	8b 34 96             	mov    (%esi,%edx,4),%esi
40efbc:	eb 07                	jmp    0x40efc5
40efbe:	39 0e                	cmp    %ecx,(%esi)
40efc0:	74 7c                	je     0x40f03e
40efc2:	8b 76 04             	mov    0x4(%esi),%esi
40efc5:	85 f6                	test   %esi,%esi
40efc7:	75 f5                	jne    0x40efbe
40efc9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40efcc:	8b f3                	mov    %ebx,%esi
40efce:	85 f6                	test   %esi,%esi
40efd0:	74 4b                	je     0x40f01d
40efd2:	39 1e                	cmp    %ebx,(%esi)
40efd4:	74 47                	je     0x40f01d
40efd6:	ff 75 08             	push   0x8(%ebp)
40efd9:	88 1f                	mov    %bl,(%edi)
40efdb:	8b c8                	mov    %eax,%ecx
40efdd:	8b 16                	mov    (%esi),%edx
40efdf:	57                   	push   %edi
40efe0:	e8 e4 fe ff ff       	call   0x40eec9
40efe5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40efe8:	84 c0                	test   %al,%al
40efea:	74 03                	je     0x40efef
40efec:	89 79 28             	mov    %edi,0x28(%ecx)
40efef:	8b 06                	mov    (%esi),%eax
40eff1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40eff4:	8b 78 04             	mov    0x4(%eax),%edi
40eff7:	51                   	push   %ecx
40eff8:	8b 07                	mov    (%edi),%eax
40effa:	8b 30                	mov    (%eax),%esi
40effc:	8b ce                	mov    %esi,%ecx
40effe:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f004:	8b cf                	mov    %edi,%ecx
40f006:	ff d6                	call   *%esi
40f008:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f00b:	0a d8                	or     %al,%bl
40f00d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f010:	88 5d f4             	mov    %bl,-0xc(%ebp)
40f013:	8b 40 08             	mov    0x8(%eax),%eax
40f016:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f019:	85 c0                	test   %eax,%eax
40f01b:	75 d7                	jne    0x40eff4
40f01d:	8b 35 4c bb 42 00    	mov    0x42bb4c,%esi
40f023:	85 f6                	test   %esi,%esi
40f025:	74 10                	je     0x40f037
40f027:	ff 75 fc             	push   -0x4(%ebp)
40f02a:	8b ce                	mov    %esi,%ecx
40f02c:	ff 75 f4             	push   -0xc(%ebp)
40f02f:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f035:	ff d6                	call   *%esi
40f037:	5f                   	pop    %edi
40f038:	5e                   	pop    %esi
40f039:	5b                   	pop    %ebx
40f03a:	c9                   	leave
40f03b:	c2 04 00             	ret    $0x4
40f03e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f041:	83 c6 08             	add    $0x8,%esi
40f044:	eb 88                	jmp    0x40efce
40f046:	cc                   	int3
40f047:	cc                   	int3
40f048:	cc                   	int3
40f049:	cc                   	int3
40f04a:	cc                   	int3
40f04b:	cc                   	int3
40f04c:	cc                   	int3
40f04d:	cc                   	int3
40f04e:	cc                   	int3
40f04f:	cc                   	int3
40f050:	8b ff                	mov    %edi,%edi
40f052:	55                   	push   %ebp
40f053:	8b ec                	mov    %esp,%ebp
40f055:	ff 75 10             	push   0x10(%ebp)
40f058:	8b 55 0c             	mov    0xc(%ebp),%edx
40f05b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f05e:	e8 1f ff ff ff       	call   0x40ef82
40f063:	ff 15 74 c2 42 00    	call   *0x42c274
40f069:	39 05 6c ba 42 00    	cmp    %eax,0x42ba6c
40f06f:	74 3a                	je     0x40f0ab
40f071:	33 c9                	xor    %ecx,%ecx
40f073:	41                   	inc    %ecx
40f074:	f0 0f c1 0d 68 ba 42 	lock xadd %ecx,0x42ba68
40f07b:	00
40f07c:	41                   	inc    %ecx
40f07d:	83 f9 04             	cmp    $0x4,%ecx
40f080:	7d 22                	jge    0x40f0a4
40f082:	a3 6c ba 42 00       	mov    %eax,0x42ba6c
40f087:	e8 ba fd ff ff       	call   0x40ee46
40f08c:	85 c0                	test   %eax,%eax
40f08e:	74 0a                	je     0x40f09a
40f090:	ff 75 08             	push   0x8(%ebp)
40f093:	8b c8                	mov    %eax,%ecx
40f095:	e8 e8 fc ff ff       	call   0x40ed82
40f09a:	c7 05 6c ba 42 00 00 	movl   $0x0,0x42ba6c
40f0a1:	00 00 00
40f0a4:	f0 ff 0d 68 ba 42 00 	lock decl 0x42ba68
40f0ab:	5d                   	pop    %ebp
40f0ac:	c2 0c 00             	ret    $0xc
40f0af:	8b ff                	mov    %edi,%edi
40f0b1:	55                   	push   %ebp
40f0b2:	8b ec                	mov    %esp,%ebp
40f0b4:	51                   	push   %ecx
40f0b5:	51                   	push   %ecx
40f0b6:	53                   	push   %ebx
40f0b7:	57                   	push   %edi
40f0b8:	8b 39                	mov    (%ecx),%edi
40f0ba:	8b da                	mov    %edx,%ebx
40f0bc:	85 ff                	test   %edi,%edi
40f0be:	74 2f                	je     0x40f0ef
40f0c0:	56                   	push   %esi
40f0c1:	8b 75 08             	mov    0x8(%ebp),%esi
40f0c4:	6a ff                	push   $0xffffffff
40f0c6:	68 f0 d8 ff ff       	push   $0xffffd8f0
40f0cb:	ff 75 0c             	push   0xc(%ebp)
40f0ce:	56                   	push   %esi
40f0cf:	e8 ec 91 01 00       	call   0x4282c0
40f0d4:	c1 ee 02             	shr    $0x2,%esi
40f0d7:	56                   	push   %esi
40f0d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f0db:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f0de:	6a 00                	push   $0x0
40f0e0:	50                   	push   %eax
40f0e1:	57                   	push   %edi
40f0e2:	89 55 fc             	mov    %edx,-0x4(%ebp)
40f0e5:	ff 15 68 c1 42 00    	call   *0x42c168
40f0eb:	c6 03 01             	movb   $0x1,(%ebx)
40f0ee:	5e                   	pop    %esi
40f0ef:	5f                   	pop    %edi
40f0f0:	5b                   	pop    %ebx
40f0f1:	c9                   	leave
40f0f2:	c2 08 00             	ret    $0x8
40f0f5:	6a 0c                	push   $0xc
40f0f7:	b8 ed 86 42 00       	mov    $0x4286ed,%eax
40f0fc:	e8 67 8f 01 00       	call   0x428068
40f101:	8b f9                	mov    %ecx,%edi
40f103:	8b 47 08             	mov    0x8(%edi),%eax
40f106:	2b 07                	sub    (%edi),%eax
40f108:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f10b:	3b c3                	cmp    %ebx,%eax
40f10d:	73 6c                	jae    0x40f17b
40f10f:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
40f113:	ff 15 18 c2 42 00    	call   *0x42c218
40f119:	8b f0                	mov    %eax,%esi
40f11b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40f11e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f122:	83 e3 c0             	and    $0xffffffc0,%ebx
40f125:	83 c3 40             	add    $0x40,%ebx
40f128:	33 c9                	xor    %ecx,%ecx
40f12a:	8b d3                	mov    %ebx,%edx
40f12c:	e8 ae e3 ff ff       	call   0x40d4df
40f131:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f134:	85 c0                	test   %eax,%eax
40f136:	75 0b                	jne    0x40f143
40f138:	56                   	push   %esi
40f139:	ff 15 70 c1 42 00    	call   *0x42c170
40f13f:	32 c0                	xor    %al,%al
40f141:	eb 3a                	jmp    0x40f17d
40f143:	8b 77 04             	mov    0x4(%edi),%esi
40f146:	2b 37                	sub    (%edi),%esi
40f148:	56                   	push   %esi
40f149:	ff 37                	push   (%edi)
40f14b:	53                   	push   %ebx
40f14c:	50                   	push   %eax
40f14d:	ff 15 60 c3 42 00    	call   *0x42c360
40f153:	83 c4 10             	add    $0x10,%esp
40f156:	8d 4f 0c             	lea    0xc(%edi),%ecx
40f159:	ff 75 f0             	push   -0x10(%ebp)
40f15c:	e8 f8 37 00 00       	call   0x412959
40f161:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f164:	ff 75 ec             	push   -0x14(%ebp)
40f167:	89 0f                	mov    %ecx,(%edi)
40f169:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
40f16c:	89 47 04             	mov    %eax,0x4(%edi)
40f16f:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40f172:	89 47 08             	mov    %eax,0x8(%edi)
40f175:	ff 15 70 c1 42 00    	call   *0x42c170
40f17b:	b0 01                	mov    $0x1,%al
40f17d:	e8 b4 8e 01 00       	call   0x428036
40f182:	c2 04 00             	ret    $0x4
40f185:	8b ff                	mov    %edi,%edi
40f187:	55                   	push   %ebp
40f188:	8b ec                	mov    %esp,%ebp
40f18a:	8b 41 04             	mov    0x4(%ecx),%eax
40f18d:	2b 01                	sub    (%ecx),%eax
40f18f:	8b 51 08             	mov    0x8(%ecx),%edx
40f192:	2b 11                	sub    (%ecx),%edx
40f194:	03 45 08             	add    0x8(%ebp),%eax
40f197:	3b c2                	cmp    %edx,%eax
40f199:	73 04                	jae    0x40f19f
40f19b:	b0 01                	mov    $0x1,%al
40f19d:	eb 11                	jmp    0x40f1b0
40f19f:	8d 04 12             	lea    (%edx,%edx,1),%eax
40f1a2:	39 45 08             	cmp    %eax,0x8(%ebp)
40f1a5:	72 03                	jb     0x40f1aa
40f1a7:	8b 45 08             	mov    0x8(%ebp),%eax
40f1aa:	50                   	push   %eax
40f1ab:	e8 45 ff ff ff       	call   0x40f0f5
40f1b0:	5d                   	pop    %ebp
40f1b1:	c2 04 00             	ret    $0x4
40f1b4:	8b ff                	mov    %edi,%edi
40f1b6:	55                   	push   %ebp
40f1b7:	8b ec                	mov    %esp,%ebp
40f1b9:	56                   	push   %esi
40f1ba:	57                   	push   %edi
40f1bb:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f1be:	8b f1                	mov    %ecx,%esi
40f1c0:	57                   	push   %edi
40f1c1:	e8 bf ff ff ff       	call   0x40f185
40f1c6:	84 c0                	test   %al,%al
40f1c8:	74 23                	je     0x40f1ed
40f1ca:	8b 56 04             	mov    0x4(%esi),%edx
40f1cd:	8b 4e 08             	mov    0x8(%esi),%ecx
40f1d0:	2b ca                	sub    %edx,%ecx
40f1d2:	3b 56 08             	cmp    0x8(%esi),%edx
40f1d5:	57                   	push   %edi
40f1d6:	ff 75 08             	push   0x8(%ebp)
40f1d9:	1b c0                	sbb    %eax,%eax
40f1db:	23 c1                	and    %ecx,%eax
40f1dd:	50                   	push   %eax
40f1de:	52                   	push   %edx
40f1df:	ff 15 60 c3 42 00    	call   *0x42c360
40f1e5:	83 c4 10             	add    $0x10,%esp
40f1e8:	b0 01                	mov    $0x1,%al
40f1ea:	01 7e 04             	add    %edi,0x4(%esi)
40f1ed:	5f                   	pop    %edi
40f1ee:	5e                   	pop    %esi
40f1ef:	5d                   	pop    %ebp
40f1f0:	c2 08 00             	ret    $0x8
40f1f3:	cc                   	int3
40f1f4:	cc                   	int3
40f1f5:	cc                   	int3
40f1f6:	cc                   	int3
40f1f7:	cc                   	int3
40f1f8:	cc                   	int3
40f1f9:	cc                   	int3
40f1fa:	cc                   	int3
40f1fb:	cc                   	int3
40f1fc:	cc                   	int3
40f1fd:	cc                   	int3
40f1fe:	cc                   	int3
40f1ff:	cc                   	int3
40f200:	c2 00 00             	ret    $0x0
40f203:	cc                   	int3
40f204:	cc                   	int3
40f205:	cc                   	int3
40f206:	cc                   	int3
40f207:	cc                   	int3
40f208:	cc                   	int3
40f209:	cc                   	int3
40f20a:	cc                   	int3
40f20b:	cc                   	int3
40f20c:	cc                   	int3
40f20d:	cc                   	int3
40f20e:	cc                   	int3
40f20f:	cc                   	int3
40f210:	8b ff                	mov    %edi,%edi
40f212:	55                   	push   %ebp
40f213:	8b ec                	mov    %esp,%ebp
40f215:	83 e4 f8             	and    $0xfffffff8,%esp
40f218:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40f21c:	75 1e                	jne    0x40f23c
40f21e:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
40f222:	75 0a                	jne    0x40f22e
40f224:	ff 75 0c             	push   0xc(%ebp)
40f227:	e8 2f 00 00 00       	call   0x40f25b
40f22c:	eb 0e                	jmp    0x40f23c
40f22e:	83 79 0c 02          	cmpl   $0x2,0xc(%ecx)
40f232:	75 08                	jne    0x40f23c
40f234:	ff 75 0c             	push   0xc(%ebp)
40f237:	e8 00 01 00 00       	call   0x40f33c
40f23c:	8b e5                	mov    %ebp,%esp
40f23e:	5d                   	pop    %ebp
40f23f:	c2 08 00             	ret    $0x8
40f242:	8b ff                	mov    %edi,%edi
40f244:	51                   	push   %ecx
40f245:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40f249:	c7 01 ac 10 40 00    	movl   $0x4010ac,(%ecx)
40f24f:	74 08                	je     0x40f259
40f251:	8b 49 04             	mov    0x4(%ecx),%ecx
40f254:	e8 82 76 ff ff       	call   0x4068db
40f259:	59                   	pop    %ecx
40f25a:	c3                   	ret
40f25b:	8b ff                	mov    %edi,%edi
40f25d:	55                   	push   %ebp
40f25e:	8b ec                	mov    %esp,%ebp
40f260:	83 ec 48             	sub    $0x48,%esp
40f263:	56                   	push   %esi
40f264:	8b 71 04             	mov    0x4(%ecx),%esi
40f267:	83 3e 02             	cmpl   $0x2,(%esi)
40f26a:	0f 86 c7 00 00 00    	jbe    0x40f337
40f270:	68 00 20 00 00       	push   $0x2000
40f275:	6a 00                	push   $0x0
40f277:	8b ce                	mov    %esi,%ecx
40f279:	e8 7e 77 ff ff       	call   0x4069fc
40f27e:	84 c0                	test   %al,%al
40f280:	0f 84 b1 00 00 00    	je     0x40f337
40f286:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f289:	ba 30 62 40 00       	mov    $0x406230,%edx
40f28e:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)