406146:	8b 55 fc             	mov    -0x4(%ebp),%edx
406149:	8b c3                	mov    %ebx,%eax
40614b:	e8 60 fd ff ff       	call   0x405eb0
406150:	eb 10                	jmp    0x406162
406152:	8b ce                	mov    %esi,%ecx
406154:	0f af 4d f4          	imul   -0xc(%ebp),%ecx
406158:	8b d3                	mov    %ebx,%edx
40615a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40615d:	e8 be c8 ff ff       	call   0x402a20
406162:	8b 45 08             	mov    0x8(%ebp),%eax
406165:	8b 55 f8             	mov    -0x8(%ebp),%edx
406168:	e8 5b fd ff ff       	call   0x405ec8
40616d:	8b 45 08             	mov    0x8(%ebp),%eax
406170:	89 18                	mov    %ebx,(%eax)
406172:	5f                   	pop    %edi
406173:	5e                   	pop    %esi
406174:	5b                   	pop    %ebx
406175:	8b e5                	mov    %ebp,%esp
406177:	5d                   	pop    %ebp
406178:	c2 08 00             	ret    $0x8
40617b:	90                   	nop
40617c:	8b 08                	mov    (%eax),%ecx
40617e:	85 c9                	test   %ecx,%ecx
406180:	74 33                	je     0x4061b5
406182:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
406188:	f0 ff 49 f8          	lock decl -0x8(%ecx)
40618c:	75 27                	jne    0x4061b5
40618e:	50                   	push   %eax
40618f:	89 c8                	mov    %ecx,%eax
406191:	31 c9                	xor    %ecx,%ecx
406193:	8a 4a 01             	mov    0x1(%edx),%cl
406196:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
40619a:	85 d2                	test   %edx,%edx
40619c:	74 0e                	je     0x4061ac
40619e:	8b 48 fc             	mov    -0x4(%eax),%ecx
4061a1:	85 c9                	test   %ecx,%ecx
4061a3:	74 07                	je     0x4061ac
4061a5:	8b 12                	mov    (%edx),%edx
4061a7:	e8 b4 f2 ff ff       	call   0x405460
4061ac:	83 e8 08             	sub    $0x8,%eax
4061af:	e8 18 c6 ff ff       	call   0x4027cc
4061b4:	58                   	pop    %eax
4061b5:	c3                   	ret
4061b6:	8b c0                	mov    %eax,%eax
4061b8:	53                   	push   %ebx
4061b9:	8b 18                	mov    (%eax),%ebx
4061bb:	85 d2                	test   %edx,%edx
4061bd:	74 04                	je     0x4061c3
4061bf:	f0 ff 42 f8          	lock incl -0x8(%edx)
4061c3:	85 db                	test   %ebx,%ebx
4061c5:	74 14                	je     0x4061db
4061c7:	f0 ff 4b f8          	lock decl -0x8(%ebx)
4061cb:	75 0e                	jne    0x4061db
4061cd:	50                   	push   %eax
4061ce:	52                   	push   %edx
4061cf:	89 ca                	mov    %ecx,%edx
4061d1:	ff 43 f8             	incl   -0x8(%ebx)
4061d4:	e8 a3 ff ff ff       	call   0x40617c
4061d9:	5a                   	pop    %edx
4061da:	58                   	pop    %eax
4061db:	89 10                	mov    %edx,(%eax)
4061dd:	5b                   	pop    %ebx
4061de:	c3                   	ret
4061df:	90                   	nop
4061e0:	85 c0                	test   %eax,%eax
4061e2:	74 04                	je     0x4061e8
4061e4:	f0 ff 40 f8          	lock incl -0x8(%eax)
4061e8:	c3                   	ret
4061e9:	8d 40 00             	lea    0x0(%eax),%eax
4061ec:	83 c4 e4             	add    $0xffffffe4,%esp
4061ef:	6a 1c                	push   $0x1c
4061f1:	8d 54 24 04          	lea    0x4(%esp),%edx
4061f5:	52                   	push   %edx
4061f6:	50                   	push   %eax
4061f7:	e8 d4 b1 ff ff       	call   0x4013d0
4061fc:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
406203:	00
406204:	75 06                	jne    0x40620c
406206:	8b 44 24 04          	mov    0x4(%esp),%eax
40620a:	eb 02                	jmp    0x40620e
40620c:	33 c0                	xor    %eax,%eax
40620e:	83 c4 1c             	add    $0x1c,%esp
406211:	c3                   	ret
406212:	8b c0                	mov    %eax,%eax
406214:	e8 d3 ff ff ff       	call   0x4061ec
406219:	c3                   	ret
40621a:	8b c0                	mov    %eax,%eax
40621c:	53                   	push   %ebx
40621d:	56                   	push   %esi
40621e:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
406224:	8b d8                	mov    %eax,%ebx
406226:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
40622a:	75 2b                	jne    0x406257
40622c:	68 05 01 00 00       	push   $0x105
406231:	8d 44 24 04          	lea    0x4(%esp),%eax
406235:	50                   	push   %eax
406236:	8b 43 04             	mov    0x4(%ebx),%eax
406239:	50                   	push   %eax
40623a:	e8 19 b1 ff ff       	call   0x401358
40623f:	8b c4                	mov    %esp,%eax
406241:	b2 01                	mov    $0x1,%dl
406243:	e8 10 02 00 00       	call   0x406458
406248:	8b f0                	mov    %eax,%esi
40624a:	89 73 10             	mov    %esi,0x10(%ebx)
40624d:	85 f6                	test   %esi,%esi
40624f:	75 06                	jne    0x406257
406251:	8b 43 04             	mov    0x4(%ebx),%eax
406254:	89 43 10             	mov    %eax,0x10(%ebx)
406257:	8b 43 10             	mov    0x10(%ebx),%eax
40625a:	81 c4 08 01 00 00    	add    $0x108,%esp
406260:	5e                   	pop    %esi
406261:	5b                   	pop    %ebx
406262:	c3                   	ret
406263:	90                   	nop
406264:	8b 15 28 a0 68 00    	mov    0x68a028,%edx
40626a:	85 d2                	test   %edx,%edx
40626c:	74 1d                	je     0x40628b
40626e:	3b 42 04             	cmp    0x4(%edx),%eax
406271:	74 0a                	je     0x40627d
406273:	3b 42 08             	cmp    0x8(%edx),%eax
406276:	74 05                	je     0x40627d
406278:	3b 42 0c             	cmp    0xc(%edx),%eax
40627b:	75 08                	jne    0x406285
40627d:	8b c2                	mov    %edx,%eax
40627f:	e8 98 ff ff ff       	call   0x40621c
406284:	c3                   	ret
406285:	8b 12                	mov    (%edx),%edx
406287:	85 d2                	test   %edx,%edx
406289:	75 e3                	jne    0x40626e
40628b:	c3                   	ret
40628c:	eb 06                	jmp    0x406294
40628e:	50                   	push   %eax
40628f:	e8 64 b0 ff ff       	call   0x4012f8
406294:	8a 10                	mov    (%eax),%dl
406296:	84 d2                	test   %dl,%dl
406298:	74 05                	je     0x40629f
40629a:	80 fa 5c             	cmp    $0x5c,%dl
40629d:	75 ef                	jne    0x40628e
40629f:	c3                   	ret
4062a0:	55                   	push   %ebp
4062a1:	8b ec                	mov    %esp,%ebp
4062a3:	81 c4 b0 fd ff ff    	add    $0xfffffdb0,%esp
4062a9:	53                   	push   %ebx
4062aa:	56                   	push   %esi
4062ab:	57                   	push   %edi
4062ac:	89 55 f8             	mov    %edx,-0x8(%ebp)
4062af:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062b5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4062b8:	68 34 64 40 00       	push   $0x406434
4062bd:	e8 9e b0 ff ff       	call   0x401360
4062c2:	8b f0                	mov    %eax,%esi
4062c4:	85 f6                	test   %esi,%esi
4062c6:	74 40                	je     0x406308
4062c8:	68 44 64 40 00       	push   $0x406444
4062cd:	56                   	push   %esi
4062ce:	e8 95 b0 ff ff       	call   0x401368
4062d3:	89 c3                	mov    %eax,%ebx
4062d5:	85 db                	test   %ebx,%ebx
4062d7:	74 2f                	je     0x406308
4062d9:	68 05 01 00 00       	push   $0x105
4062de:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4062e4:	50                   	push   %eax
4062e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062e8:	50                   	push   %eax
4062e9:	ff d3                	call   *%ebx
4062eb:	85 c0                	test   %eax,%eax
4062ed:	74 19                	je     0x406308
4062ef:	8b 45 f8             	mov    -0x8(%ebp),%eax
4062f2:	50                   	push   %eax
4062f3:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4062f9:	50                   	push   %eax
4062fa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062fd:	50                   	push   %eax
4062fe:	e8 8d b0 ff ff       	call   0x401390
406303:	e9 22 01 00 00       	jmp    0x40642a
406308:	8b 45 fc             	mov    -0x4(%ebp),%eax
40630b:	80 38 5c             	cmpb   $0x5c,(%eax)
40630e:	75 38                	jne    0x406348
406310:	8b 45 fc             	mov    -0x4(%ebp),%eax
406313:	80 78 01 5c          	cmpb   $0x5c,0x1(%eax)
406317:	0f 85 0d 01 00 00    	jne    0x40642a
40631d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406320:	83 c0 02             	add    $0x2,%eax
406323:	e8 64 ff ff ff       	call   0x40628c
406328:	8b f0                	mov    %eax,%esi
40632a:	80 3e 00             	cmpb   $0x0,(%esi)
40632d:	0f 84 f7 00 00 00    	je     0x40642a
406333:	8d 46 01             	lea    0x1(%esi),%eax
406336:	e8 51 ff ff ff       	call   0x40628c
40633b:	8b f0                	mov    %eax,%esi
40633d:	80 3e 00             	cmpb   $0x0,(%esi)
406340:	0f 84 e4 00 00 00    	je     0x40642a
406346:	eb 06                	jmp    0x40634e
406348:	8b 75 fc             	mov    -0x4(%ebp),%esi
40634b:	83 c6 02             	add    $0x2,%esi
40634e:	8b de                	mov    %esi,%ebx
406350:	2b 5d fc             	sub    -0x4(%ebp),%ebx
406353:	8d 43 01             	lea    0x1(%ebx),%eax
406356:	50                   	push   %eax
406357:	8b 45 fc             	mov    -0x4(%ebp),%eax
40635a:	50                   	push   %eax
40635b:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
406361:	50                   	push   %eax
406362:	e8 29 b0 ff ff       	call   0x401390
406367:	e9 a1 00 00 00       	jmp    0x40640d
40636c:	8d 46 01             	lea    0x1(%esi),%eax
40636f:	e8 18 ff ff ff       	call   0x40628c
406374:	8b f8                	mov    %eax,%edi
406376:	8b c7                	mov    %edi,%eax
406378:	2b c6                	sub    %esi,%eax
40637a:	8b d0                	mov    %eax,%edx
40637c:	03 d3                	add    %ebx,%edx
40637e:	42                   	inc    %edx
40637f:	81 fa 05 01 00 00    	cmp    $0x105,%edx
406385:	0f 8f 9f 00 00 00    	jg     0x40642a
40638b:	40                   	inc    %eax
40638c:	50                   	push   %eax
40638d:	56                   	push   %esi
40638e:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
406394:	03 c3                	add    %ebx,%eax
406396:	50                   	push   %eax
406397:	e8 f4 af ff ff       	call   0x401390
40639c:	8d 85 b6 fe ff ff    	lea    -0x14a(%ebp),%eax
4063a2:	50                   	push   %eax
4063a3:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4063a9:	50                   	push   %eax
4063aa:	e8 79 af ff ff       	call   0x401328
4063af:	8b f0                	mov    %eax,%esi
4063b1:	83 fe ff             	cmp    $0xffffffff,%esi
4063b4:	74 74                	je     0x40642a
4063b6:	56                   	push   %esi
4063b7:	e8 64 af ff ff       	call   0x401320
4063bc:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
4063c2:	50                   	push   %eax
4063c3:	e8 d0 af ff ff       	call   0x401398
4063c8:	8d 53 01             	lea    0x1(%ebx),%edx
4063cb:	03 c2                	add    %edx,%eax
4063cd:	40                   	inc    %eax
4063ce:	3d 05 01 00 00       	cmp    $0x105,%eax
4063d3:	7f 55                	jg     0x40642a
4063d5:	c6 84 1d b1 fd ff ff 	movb   $0x5c,-0x24f(%ebp,%ebx,1)
4063dc:	5c
4063dd:	b8 05 01 00 00       	mov    $0x105,%eax
4063e2:	2b c3                	sub    %ebx,%eax
4063e4:	48                   	dec    %eax
4063e5:	50                   	push   %eax
4063e6:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
4063ec:	50                   	push   %eax
4063ed:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4063f3:	03 c3                	add    %ebx,%eax
4063f5:	40                   	inc    %eax
4063f6:	50                   	push   %eax
4063f7:	e8 94 af ff ff       	call   0x401390
4063fc:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
406402:	50                   	push   %eax
406403:	e8 90 af ff ff       	call   0x401398
406408:	40                   	inc    %eax
406409:	03 d8                	add    %eax,%ebx
40640b:	8b f7                	mov    %edi,%esi
40640d:	80 3e 00             	cmpb   $0x0,(%esi)
406410:	0f 85 56 ff ff ff    	jne    0x40636c
406416:	8b 45 f8             	mov    -0x8(%ebp),%eax
406419:	50                   	push   %eax
40641a:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
406420:	50                   	push   %eax
406421:	8b 45 fc             	mov    -0x4(%ebp),%eax
406424:	50                   	push   %eax
406425:	e8 66 af ff ff       	call   0x401390
40642a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40642d:	5f                   	pop    %edi
40642e:	5e                   	pop    %esi
40642f:	5b                   	pop    %ebx
406430:	8b e5                	mov    %ebp,%esp
406432:	5d                   	pop    %ebp
406433:	c3                   	ret
406434:	6b 65 72 6e          	imul   $0x6e,0x72(%ebp),%esp
406438:	65 6c                	gs insb (%dx),%es:(%edi)
40643a:	33 32                	xor    (%edx),%esi
40643c:	2e 64 6c             	cs fs insb (%dx),%es:(%edi)
40643f:	6c                   	insb   (%dx),%es:(%edi)
406440:	00 00                	add    %al,(%eax)
406442:	00 00                	add    %al,(%eax)
406444:	47                   	inc    %edi
406445:	65 74 4c             	gs je  0x406494
406448:	6f                   	outsl  %ds:(%esi),(%dx)
406449:	6e                   	outsb  %ds:(%esi),(%dx)
40644a:	67 50                	addr16 push %eax
40644c:	61                   	popa
40644d:	74 68                	je     0x4064b7
40644f:	4e                   	dec    %esi
406450:	61                   	popa
406451:	6d                   	insl   (%dx),%es:(%edi)
406452:	65 41                	gs inc %ecx
406454:	00 00                	add    %al,(%eax)
406456:	00 00                	add    %al,(%eax)
406458:	55                   	push   %ebp
406459:	8b ec                	mov    %esp,%ebp
40645b:	81 c4 e0 fe ff ff    	add    $0xfffffee0,%esp
406461:	53                   	push   %ebx
406462:	56                   	push   %esi
406463:	89 45 fc             	mov    %eax,-0x4(%ebp)
406466:	68 05 01 00 00       	push   $0x105
40646b:	8d 85 e3 fe ff ff    	lea    -0x11d(%ebp),%eax
406471:	50                   	push   %eax
406472:	6a 00                	push   $0x0
406474:	e8 df ae ff ff       	call   0x401358
406479:	c6 45 ee 00          	movb   $0x0,-0x12(%ebp)
40647d:	8d 45 f8             	lea    -0x8(%ebp),%eax
406480:	50                   	push   %eax
406481:	68 19 00 0f 00       	push   $0xf0019
406486:	6a 00                	push   $0x0
406488:	68 88 66 40 00       	push   $0x406688
40648d:	68 01 00 00 80       	push   $0x80000001
406492:	e8 19 af ff ff       	call   0x4013b0
406497:	85 c0                	test   %eax,%eax
406499:	74 40                	je     0x4064db
40649b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40649e:	50                   	push   %eax
40649f:	68 19 00 0f 00       	push   $0xf0019
4064a4:	6a 00                	push   $0x0
4064a6:	68 88 66 40 00       	push   $0x406688
4064ab:	68 02 00 00 80       	push   $0x80000002
4064b0:	e8 fb ae ff ff       	call   0x4013b0
4064b5:	85 c0                	test   %eax,%eax
4064b7:	74 22                	je     0x4064db
4064b9:	8d 45 f8             	lea    -0x8(%ebp),%eax
4064bc:	50                   	push   %eax
4064bd:	68 19 00 0f 00       	push   $0xf0019
4064c2:	6a 00                	push   $0x0
4064c4:	68 a4 66 40 00       	push   $0x4066a4
4064c9:	68 01 00 00 80       	push   $0x80000001
4064ce:	e8 dd ae ff ff       	call   0x4013b0
4064d3:	85 c0                	test   %eax,%eax
4064d5:	0f 85 89 00 00 00    	jne    0x406564
4064db:	33 c0                	xor    %eax,%eax
4064dd:	55                   	push   %ebp
4064de:	68 5d 65 40 00       	push   $0x40655d
4064e3:	64 ff 30             	push   %fs:(%eax)
4064e6:	64 89 20             	mov    %esp,%fs:(%eax)
4064e9:	c7 45 e8 05 00 00 00 	movl   $0x5,-0x18(%ebp)
4064f0:	8d 85 e3 fe ff ff    	lea    -0x11d(%ebp),%eax
4064f6:	ba 05 01 00 00       	mov    $0x105,%edx
4064fb:	e8 a0 fd ff ff       	call   0x4062a0
406500:	8d 45 e8             	lea    -0x18(%ebp),%eax
406503:	50                   	push   %eax
406504:	8d 45 ee             	lea    -0x12(%ebp),%eax
406507:	50                   	push   %eax
406508:	6a 00                	push   $0x0
40650a:	6a 00                	push   $0x0