401fcf:	cc                   	int3
401fd0:	55                   	push   %ebp
401fd1:	8b ec                	mov    %esp,%ebp
401fd3:	6a ff                	push   $0xffffffff
401fd5:	68 11 a1 41 00       	push   $0x41a111
401fda:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401fe0:	50                   	push   %eax
401fe1:	83 ec 10             	sub    $0x10,%esp
401fe4:	53                   	push   %ebx
401fe5:	56                   	push   %esi
401fe6:	57                   	push   %edi
401fe7:	a1 0c 30 42 00       	mov    0x42300c,%eax
401fec:	33 c5                	xor    %ebp,%eax
401fee:	50                   	push   %eax
401fef:	8d 45 f4             	lea    -0xc(%ebp),%eax
401ff2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401ff8:	8b f2                	mov    %edx,%esi
401ffa:	8b d9                	mov    %ecx,%ebx
401ffc:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
401fff:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402006:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40200d:	8b 06                	mov    (%esi),%eax
40200f:	8b 48 f0             	mov    -0x10(%eax),%ecx
402012:	85 c9                	test   %ecx,%ecx
402014:	74 0b                	je     0x402021
402016:	8b 01                	mov    (%ecx),%eax
402018:	ff 50 10             	call   *0x10(%eax)
40201b:	8b c8                	mov    %eax,%ecx
40201d:	85 c9                	test   %ecx,%ecx
40201f:	75 1c                	jne    0x40203d
402021:	e8 5a f6 ff ff       	call   0x401680
402026:	8b c8                	mov    %eax,%ecx
402028:	8b 10                	mov    (%eax),%edx
40202a:	ff 52 10             	call   *0x10(%edx)
40202d:	8b c8                	mov    %eax,%ecx
40202f:	85 c9                	test   %ecx,%ecx
402031:	75 0a                	jne    0x40203d
402033:	68 05 40 00 80       	push   $0x80004005
402038:	e8 83 f3 ff ff       	call   0x4013c0
40203d:	8b 01                	mov    (%ecx),%eax
40203f:	ff 50 0c             	call   *0xc(%eax)
402042:	83 c0 10             	add    $0x10,%eax
402045:	89 03                	mov    %eax,(%ebx)
402047:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40204e:	8b 06                	mov    (%esi),%eax
402050:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402057:	89 45 ec             	mov    %eax,-0x14(%ebp)
40205a:	8b 70 f4             	mov    -0xc(%eax),%esi
40205d:	89 75 e8             	mov    %esi,-0x18(%ebp)
402060:	8d 56 01             	lea    0x1(%esi),%edx
402063:	85 d2                	test   %edx,%edx
402065:	79 0a                	jns    0x402071
402067:	68 57 00 07 80       	push   $0x80070057
40206c:	e8 4f f3 ff ff       	call   0x4013c0
402071:	8b 03                	mov    (%ebx),%eax
402073:	b9 01 00 00 00       	mov    $0x1,%ecx
402078:	2b 48 fc             	sub    -0x4(%eax),%ecx
40207b:	8b 40 f8             	mov    -0x8(%eax),%eax
40207e:	2b c2                	sub    %edx,%eax
402080:	0b c8                	or     %eax,%ecx
402082:	7d 08                	jge    0x40208c
402084:	52                   	push   %edx
402085:	8b cb                	mov    %ebx,%ecx
402087:	e8 74 06 00 00       	call   0x402700
40208c:	8b 3b                	mov    (%ebx),%edi
40208e:	03 f6                	add    %esi,%esi
402090:	56                   	push   %esi
402091:	ff 75 ec             	push   -0x14(%ebp)
402094:	8b d6                	mov    %esi,%edx
402096:	8b cf                	mov    %edi,%ecx
402098:	e8 83 07 00 00       	call   0x402820
40209d:	6a 02                	push   $0x2
40209f:	68 20 0b 42 00       	push   $0x420b20
4020a4:	8d 0c 3e             	lea    (%esi,%edi,1),%ecx
4020a7:	ba 02 00 00 00       	mov    $0x2,%edx
4020ac:	e8 6f 07 00 00       	call   0x402820
4020b1:	8b 03                	mov    (%ebx),%eax
4020b3:	83 c4 10             	add    $0x10,%esp
4020b6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4020b9:	41                   	inc    %ecx
4020ba:	3b 48 f8             	cmp    -0x8(%eax),%ecx
4020bd:	7f a8                	jg     0x402067
4020bf:	89 48 f4             	mov    %ecx,-0xc(%eax)
4020c2:	33 d2                	xor    %edx,%edx
4020c4:	8b 03                	mov    (%ebx),%eax
4020c6:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
4020ca:	8b c3                	mov    %ebx,%eax
4020cc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4020cf:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4020d6:	59                   	pop    %ecx
4020d7:	5f                   	pop    %edi
4020d8:	5e                   	pop    %esi
4020d9:	5b                   	pop    %ebx
4020da:	8b e5                	mov    %ebp,%esp
4020dc:	5d                   	pop    %ebp
4020dd:	c3                   	ret
4020de:	cc                   	int3
4020df:	cc                   	int3
4020e0:	55                   	push   %ebp
4020e1:	8b ec                	mov    %esp,%ebp
4020e3:	6a ff                	push   $0xffffffff
4020e5:	68 59 a1 41 00       	push   $0x41a159
4020ea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4020f0:	50                   	push   %eax
4020f1:	83 ec 08             	sub    $0x8,%esp
4020f4:	53                   	push   %ebx
4020f5:	56                   	push   %esi
4020f6:	57                   	push   %edi
4020f7:	a1 0c 30 42 00       	mov    0x42300c,%eax
4020fc:	33 c5                	xor    %ebp,%eax
4020fe:	50                   	push   %eax
4020ff:	8d 45 f4             	lea    -0xc(%ebp),%eax
402102:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402108:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40210b:	8b 45 0c             	mov    0xc(%ebp),%eax
40210e:	33 f6                	xor    %esi,%esi
402110:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
402117:	85 c0                	test   %eax,%eax
402119:	8b 19                	mov    (%ecx),%ebx
40211b:	0f 49 f0             	cmovns %eax,%esi
40211e:	8b 7b f4             	mov    -0xc(%ebx),%edi
402121:	3b f7                	cmp    %edi,%esi
402123:	0f 8c 81 00 00 00    	jl     0x4021aa
402129:	8b 4b f0             	mov    -0x10(%ebx),%ecx
40212c:	8d 73 f0             	lea    -0x10(%ebx),%esi
40212f:	8b 01                	mov    (%ecx),%eax
402131:	ff 50 10             	call   *0x10(%eax)
402134:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
402138:	8b c8                	mov    %eax,%ecx
40213a:	8d 46 0c             	lea    0xc(%esi),%eax
40213d:	7c 09                	jl     0x402148
40213f:	3b 0e                	cmp    (%esi),%ecx
402141:	75 05                	jne    0x402148
402143:	f0 ff 00             	lock incl (%eax)
402146:	eb 38                	jmp    0x402180
402148:	8b 01                	mov    (%ecx),%eax
40214a:	8d 7e 04             	lea    0x4(%esi),%edi
40214d:	6a 02                	push   $0x2
40214f:	ff 37                	push   (%edi)
402151:	ff 10                	call   *(%eax)
402153:	8b f0                	mov    %eax,%esi
402155:	85 f6                	test   %esi,%esi
402157:	75 05                	jne    0x40215e
402159:	e8 f2 03 00 00       	call   0x402550
40215e:	8b 07                	mov    (%edi),%eax
402160:	8d 4e 10             	lea    0x10(%esi),%ecx
402163:	89 46 04             	mov    %eax,0x4(%esi)
402166:	8b 17                	mov    (%edi),%edx
402168:	8d 04 55 02 00 00 00 	lea    0x2(,%edx,2),%eax
40216f:	50                   	push   %eax
402170:	53                   	push   %ebx
402171:	8d 14 55 02 00 00 00 	lea    0x2(,%edx,2),%edx
402178:	e8 a3 06 00 00       	call   0x402820
40217d:	83 c4 08             	add    $0x8,%esp
402180:	8b 45 08             	mov    0x8(%ebp),%eax
402183:	8d 4e 10             	lea    0x10(%esi),%ecx
402186:	89 08                	mov    %ecx,(%eax)
402188:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40218f:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402196:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402199:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4021a0:	59                   	pop    %ecx
4021a1:	5f                   	pop    %edi
4021a2:	5e                   	pop    %esi
4021a3:	5b                   	pop    %ebx
4021a4:	8b e5                	mov    %ebp,%esp
4021a6:	5d                   	pop    %ebp
4021a7:	c2 08 00             	ret    $0x8
4021aa:	8b 4b f0             	mov    -0x10(%ebx),%ecx
4021ad:	85 c9                	test   %ecx,%ecx
4021af:	74 0b                	je     0x4021bc
4021b1:	8b 01                	mov    (%ecx),%eax
4021b3:	ff 50 10             	call   *0x10(%eax)
4021b6:	8b d0                	mov    %eax,%edx
4021b8:	85 d2                	test   %edx,%edx
4021ba:	75 0e                	jne    0x4021ca
4021bc:	e8 bf f4 ff ff       	call   0x401680
4021c1:	8b c8                	mov    %eax,%ecx
4021c3:	8b 10                	mov    (%eax),%edx
4021c5:	ff 52 10             	call   *0x10(%edx)
4021c8:	8b d0                	mov    %eax,%edx
4021ca:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4021cd:	2b fe                	sub    %esi,%edi
4021cf:	8b 09                	mov    (%ecx),%ecx
4021d1:	8d 1c 79             	lea    (%ecx,%edi,2),%ebx
4021d4:	85 d2                	test   %edx,%edx
4021d6:	75 0a                	jne    0x4021e2
4021d8:	68 05 40 00 80       	push   $0x80004005
4021dd:	e8 de f1 ff ff       	call   0x4013c0
4021e2:	85 db                	test   %ebx,%ebx
4021e4:	75 0e                	jne    0x4021f4
4021e6:	85 f6                	test   %esi,%esi
4021e8:	74 0a                	je     0x4021f4
4021ea:	68 57 00 07 80       	push   $0x80070057
4021ef:	e8 cc f1 ff ff       	call   0x4013c0
4021f4:	8b 02                	mov    (%edx),%eax
4021f6:	8b ca                	mov    %edx,%ecx
4021f8:	6a 02                	push   $0x2
4021fa:	56                   	push   %esi
4021fb:	ff 10                	call   *(%eax)
4021fd:	85 c0                	test   %eax,%eax
4021ff:	75 05                	jne    0x402206
402201:	e8 4a 03 00 00       	call   0x402550
402206:	8b 7d 08             	mov    0x8(%ebp),%edi
402209:	83 c0 10             	add    $0x10,%eax
40220c:	89 07                	mov    %eax,(%edi)
40220e:	85 f6                	test   %esi,%esi
402210:	78 d8                	js     0x4021ea
402212:	3b 70 f8             	cmp    -0x8(%eax),%esi
402215:	7f d3                	jg     0x4021ea
402217:	89 70 f4             	mov    %esi,-0xc(%eax)
40221a:	8d 14 36             	lea    (%esi,%esi,1),%edx
40221d:	8b 07                	mov    (%edi),%eax
40221f:	33 c9                	xor    %ecx,%ecx
402221:	52                   	push   %edx
402222:	53                   	push   %ebx
402223:	66 89 0c 02          	mov    %cx,(%edx,%eax,1)
402227:	8b 0f                	mov    (%edi),%ecx
402229:	e8 f2 05 00 00       	call   0x402820
40222e:	83 c4 08             	add    $0x8,%esp
402231:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402238:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40223f:	8b c7                	mov    %edi,%eax
402241:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402244:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40224b:	59                   	pop    %ecx
40224c:	5f                   	pop    %edi
40224d:	5e                   	pop    %esi
40224e:	5b                   	pop    %ebx
40224f:	8b e5                	mov    %ebp,%esp
402251:	5d                   	pop    %ebp
402252:	c2 08 00             	ret    $0x8
402255:	cc                   	int3
402256:	cc                   	int3
402257:	cc                   	int3
402258:	cc                   	int3
402259:	cc                   	int3
40225a:	cc                   	int3
40225b:	cc                   	int3
40225c:	cc                   	int3
40225d:	cc                   	int3
40225e:	cc                   	int3
40225f:	cc                   	int3
402260:	55                   	push   %ebp
402261:	8b ec                	mov    %esp,%ebp
402263:	6a ff                	push   $0xffffffff
402265:	68 88 a1 41 00       	push   $0x41a188
40226a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402270:	50                   	push   %eax
402271:	51                   	push   %ecx
402272:	a1 0c 30 42 00       	mov    0x42300c,%eax
402277:	33 c5                	xor    %ebp,%eax
402279:	50                   	push   %eax
40227a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40227d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402283:	89 4d f0             	mov    %ecx,-0x10(%ebp)
402286:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40228d:	83 c8 ff             	or     $0xffffffff,%eax
402290:	8b 11                	mov    (%ecx),%edx
402292:	83 ea 10             	sub    $0x10,%edx
402295:	f0 0f c1 42 0c       	lock xadd %eax,0xc(%edx)
40229a:	48                   	dec    %eax
40229b:	85 c0                	test   %eax,%eax
40229d:	7f 08                	jg     0x4022a7
40229f:	8b 0a                	mov    (%edx),%ecx
4022a1:	52                   	push   %edx
4022a2:	8b 01                	mov    (%ecx),%eax
4022a4:	ff 50 04             	call   *0x4(%eax)
4022a7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4022aa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4022b1:	59                   	pop    %ecx
4022b2:	8b e5                	mov    %ebp,%esp
4022b4:	5d                   	pop    %ebp
4022b5:	c3                   	ret
4022b6:	cc                   	int3
4022b7:	cc                   	int3
4022b8:	cc                   	int3
4022b9:	cc                   	int3
4022ba:	cc                   	int3
4022bb:	cc                   	int3
4022bc:	cc                   	int3
4022bd:	cc                   	int3
4022be:	cc                   	int3
4022bf:	cc                   	int3
4022c0:	55                   	push   %ebp
4022c1:	8b ec                	mov    %esp,%ebp
4022c3:	6a ff                	push   $0xffffffff
4022c5:	68 b8 a1 41 00       	push   $0x41a1b8
4022ca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4022d0:	50                   	push   %eax
4022d1:	51                   	push   %ecx
4022d2:	56                   	push   %esi
4022d3:	57                   	push   %edi
4022d4:	a1 0c 30 42 00       	mov    0x42300c,%eax
4022d9:	33 c5                	xor    %ebp,%eax
4022db:	50                   	push   %eax
4022dc:	8d 45 f4             	lea    -0xc(%ebp),%eax
4022df:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4022e5:	8b f1                	mov    %ecx,%esi
4022e7:	89 75 f0             	mov    %esi,-0x10(%ebp)
4022ea:	e8 91 f3 ff ff       	call   0x401680
4022ef:	8b c8                	mov    %eax,%ecx
4022f1:	85 c9                	test   %ecx,%ecx
4022f3:	75 0a                	jne    0x4022ff
4022f5:	68 05 40 00 80       	push   $0x80004005
4022fa:	e8 c1 f0 ff ff       	call   0x4013c0
4022ff:	8b 01                	mov    (%ecx),%eax
402301:	ff 50 0c             	call   *0xc(%eax)
402304:	83 c0 10             	add    $0x10,%eax
402307:	89 06                	mov    %eax,(%esi)
402309:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402310:	8b 55 08             	mov    0x8(%ebp),%edx
402313:	85 d2                	test   %edx,%edx
402315:	74 3a                	je     0x402351
402317:	f7 c2 00 00 ff ff    	test   $0xffff0000,%edx
40231d:	75 19                	jne    0x402338
40231f:	0f b7 fa             	movzwl %dx,%edi
402322:	8b cf                	mov    %edi,%ecx
402324:	e8 f7 f1 ff ff       	call   0x401520
402329:	85 c0                	test   %eax,%eax
40232b:	74 2f                	je     0x40235c
40232d:	57                   	push   %edi
40232e:	50                   	push   %eax
40232f:	8b ce                	mov    %esi,%ecx
402331:	e8 7a 01 00 00       	call   0x4024b0
402336:	eb 24                	jmp    0x40235c
402338:	8b ca                	mov    %edx,%ecx
40233a:	8d 79 02             	lea    0x2(%ecx),%edi
40233d:	0f 1f 00             	nopl   (%eax)
402340:	66 8b 01             	mov    (%ecx),%ax
402343:	83 c1 02             	add    $0x2,%ecx
402346:	66 85 c0             	test   %ax,%ax
402349:	75 f5                	jne    0x402340
40234b:	2b cf                	sub    %edi,%ecx
40234d:	d1 f9                	sar    $1,%ecx
40234f:	eb 02                	jmp    0x402353
402351:	33 c9                	xor    %ecx,%ecx
402353:	51                   	push   %ecx
402354:	52                   	push   %edx
402355:	8b ce                	mov    %esi,%ecx
402357:	e8 a4 00 00 00       	call   0x402400
40235c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402363:	8b c6                	mov    %esi,%eax
402365:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402368:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40236f:	59                   	pop    %ecx
402370:	5f                   	pop    %edi
402371:	5e                   	pop    %esi
402372:	8b e5                	mov    %ebp,%esp
402374:	5d                   	pop    %ebp