405177:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
40517b:	72 13                	jb     0x405190
40517d:	68 dc 1d 40 00       	push   $0x401ddc
405182:	ff 70 14             	push   0x14(%eax)
405185:	ff 70 10             	push   0x10(%eax)
405188:	6a 0b                	push   $0xb
40518a:	59                   	pop    %ecx
40518b:	e8 cf fe ff ff       	call   0x40505f
405190:	68 03 40 00 80       	push   $0x80004003
405195:	8d 4c 24 08          	lea    0x8(%esp),%ecx
405199:	e8 d0 ec ff ff       	call   0x403e6e
40519e:	68 a4 c6 40 00       	push   $0x40c6a4
4051a3:	8d 44 24 08          	lea    0x8(%esp),%eax
4051a7:	50                   	push   %eax
4051a8:	e8 8d 59 00 00       	call   0x40ab3a
4051ad:	cc                   	int3
4051ae:	cc                   	int3
4051af:	cc                   	int3
4051b0:	8b ff                	mov    %edi,%edi
4051b2:	55                   	push   %ebp
4051b3:	8b ec                	mov    %esp,%ebp
4051b5:	83 e4 f8             	and    $0xfffffff8,%esp
4051b8:	83 ec 30             	sub    $0x30,%esp
4051bb:	a1 50 d1 40 00       	mov    0x40d150,%eax
4051c0:	33 c4                	xor    %esp,%eax
4051c2:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4051c6:	56                   	push   %esi
4051c7:	57                   	push   %edi
4051c8:	8d 75 0c             	lea    0xc(%ebp),%esi
4051cb:	8d 7c 24 20          	lea    0x20(%esp),%edi
4051cf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051d0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051d1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051d3:	8b 75 1c             	mov    0x1c(%ebp),%esi
4051d6:	ff 15 ac e0 40 00    	call   *0x40e0ac
4051dc:	89 06                	mov    %eax,(%esi)
4051de:	8d 7c 24 10          	lea    0x10(%esp),%edi
4051e2:	8b 45 20             	mov    0x20(%ebp),%eax
4051e5:	8d 74 24 20          	lea    0x20(%esp),%esi
4051e9:	89 44 24 08          	mov    %eax,0x8(%esp)
4051ed:	83 ec 18             	sub    $0x18,%esp
4051f0:	8b 45 08             	mov    0x8(%ebp),%eax
4051f3:	89 44 24 24          	mov    %eax,0x24(%esp)
4051f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051f8:	6a 06                	push   $0x6
4051fa:	59                   	pop    %ecx
4051fb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4051fe:	8b fc                	mov    %esp,%edi
405200:	8d 74 24 20          	lea    0x20(%esp),%esi
405204:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405206:	e8 73 0e 00 00       	call   0x40607e
40520b:	8b 4c 24 34          	mov    0x34(%esp),%ecx
40520f:	5f                   	pop    %edi
405210:	5e                   	pop    %esi
405211:	33 cc                	xor    %esp,%ecx
405213:	e8 48 4c 00 00       	call   0x409e60
405218:	8b e5                	mov    %ebp,%esp
40521a:	5d                   	pop    %ebp
40521b:	c2 1c 00             	ret    $0x1c
40521e:	6a 7c                	push   $0x7c
405220:	b8 d6 ad 40 00       	mov    $0x40add6,%eax
405225:	e8 ea 59 00 00       	call   0x40ac14
40522a:	8b d9                	mov    %ecx,%ebx
40522c:	8b 03                	mov    (%ebx),%eax
40522e:	85 c0                	test   %eax,%eax
405230:	74 56                	je     0x405288
405232:	83 20 00             	andl   $0x0,(%eax)
405235:	6a 14                	push   $0x14
405237:	e8 ba 57 00 00       	call   0x40a9f6
40523c:	59                   	pop    %ecx
40523d:	8d 4b 08             	lea    0x8(%ebx),%ecx
405240:	89 45 e8             	mov    %eax,-0x18(%ebp)
405243:	8b f1                	mov    %ecx,%esi
405245:	89 45 ec             	mov    %eax,-0x14(%ebp)
405248:	c7 00 48 6f 73 74    	movl   $0x74736f48,(%eax)
40524e:	8d 78 04             	lea    0x4(%eax),%edi
405251:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405252:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405253:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405254:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405255:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405259:	e8 65 f9 ff ff       	call   0x404bc3
40525e:	33 c9                	xor    %ecx,%ecx
405260:	41                   	inc    %ecx
405261:	f0 0f c1 48 34       	lock xadd %ecx,0x34(%eax)
405266:	41                   	inc    %ecx
405267:	83 f9 01             	cmp    $0x1,%ecx
40526a:	75 0f                	jne    0x40527b
40526c:	8b 40 2c             	mov    0x2c(%eax),%eax
40526f:	85 c0                	test   %eax,%eax
405271:	74 08                	je     0x40527b
405273:	ff 30                	push   (%eax)
405275:	ff 15 e4 e0 40 00    	call   *0x40e0e4
40527b:	8b 03                	mov    (%ebx),%eax
40527d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405280:	89 08                	mov    %ecx,(%eax)
405282:	e8 48 59 00 00       	call   0x40abcf
405287:	c3                   	ret
405288:	a1 00 d0 40 00       	mov    0x40d000,%eax
40528d:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
405292:	74 19                	je     0x4052ad
405294:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
405298:	72 13                	jb     0x4052ad
40529a:	68 c4 1d 40 00       	push   $0x401dc4
40529f:	ff 70 14             	push   0x14(%eax)
4052a2:	ff 70 10             	push   0x10(%eax)
4052a5:	6a 0d                	push   $0xd
4052a7:	59                   	pop    %ecx
4052a8:	e8 b2 fd ff ff       	call   0x40505f
4052ad:	68 03 40 00 80       	push   $0x80004003
4052b2:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4052b8:	e8 b1 eb ff ff       	call   0x403e6e
4052bd:	68 a4 c6 40 00       	push   $0x40c6a4
4052c2:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4052c8:	50                   	push   %eax
4052c9:	e8 6c 58 00 00       	call   0x40ab3a
4052ce:	cc                   	int3
4052cf:	cc                   	int3
4052d0:	e9 ff 0d 00 00       	jmp    0x4060d4
4052d5:	8b ff                	mov    %edi,%edi
4052d7:	55                   	push   %ebp
4052d8:	8b ec                	mov    %esp,%ebp
4052da:	83 e4 f8             	and    $0xfffffff8,%esp
4052dd:	81 ec 84 00 00 00    	sub    $0x84,%esp
4052e3:	a1 50 d1 40 00       	mov    0x40d150,%eax
4052e8:	33 c4                	xor    %esp,%eax
4052ea:	89 84 24 80 00 00 00 	mov    %eax,0x80(%esp)
4052f1:	53                   	push   %ebx
4052f2:	8b d9                	mov    %ecx,%ebx
4052f4:	56                   	push   %esi
4052f5:	57                   	push   %edi
4052f6:	8b 0b                	mov    (%ebx),%ecx
4052f8:	85 c9                	test   %ecx,%ecx
4052fa:	74 5e                	je     0x40535a
4052fc:	8b 09                	mov    (%ecx),%ecx
4052fe:	e8 d9 fd ff ff       	call   0x4050dc
405303:	8d 7c 24 7c          	lea    0x7c(%esp),%edi
405307:	6a 14                	push   $0x14
405309:	50                   	push   %eax
40530a:	8d 70 04             	lea    0x4(%eax),%esi
40530d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40530e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40530f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405310:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405311:	81 08 00 80 00 00    	orl    $0x8000,(%eax)
405317:	e8 23 4f 00 00       	call   0x40a23f
40531c:	8b 03                	mov    (%ebx),%eax
40531e:	59                   	pop    %ecx
40531f:	59                   	pop    %ecx
405320:	8d 4c 24 7c          	lea    0x7c(%esp),%ecx
405324:	83 20 00             	andl   $0x0,(%eax)
405327:	e8 97 f8 ff ff       	call   0x404bc3
40532c:	83 c9 ff             	or     $0xffffffff,%ecx
40532f:	f0 0f c1 48 34       	lock xadd %ecx,0x34(%eax)
405334:	75 0f                	jne    0x405345
405336:	8b 40 2c             	mov    0x2c(%eax),%eax
405339:	85 c0                	test   %eax,%eax
40533b:	74 08                	je     0x405345
40533d:	ff 30                	push   (%eax)
40533f:	ff 15 d0 e0 40 00    	call   *0x40e0d0
405345:	8b 8c 24 8c 00 00 00 	mov    0x8c(%esp),%ecx
40534c:	5f                   	pop    %edi
40534d:	5e                   	pop    %esi
40534e:	5b                   	pop    %ebx
40534f:	33 cc                	xor    %esp,%ecx
405351:	e8 0a 4b 00 00       	call   0x409e60
405356:	8b e5                	mov    %ebp,%esp
405358:	5d                   	pop    %ebp
405359:	c3                   	ret
40535a:	a1 00 d0 40 00       	mov    0x40d000,%eax
40535f:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
405364:	74 19                	je     0x40537f
405366:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
40536a:	72 13                	jb     0x40537f
40536c:	68 c4 1d 40 00       	push   $0x401dc4
405371:	ff 70 14             	push   0x14(%eax)
405374:	ff 70 10             	push   0x10(%eax)
405377:	6a 0e                	push   $0xe
405379:	59                   	pop    %ecx
40537a:	e8 e0 fc ff ff       	call   0x40505f
40537f:	68 03 40 00 80       	push   $0x80004003
405384:	8d 4c 24 14          	lea    0x14(%esp),%ecx
405388:	e8 e1 ea ff ff       	call   0x403e6e
40538d:	68 a4 c6 40 00       	push   $0x40c6a4
405392:	8d 44 24 14          	lea    0x14(%esp),%eax
405396:	50                   	push   %eax
405397:	e8 9e 57 00 00       	call   0x40ab3a
40539c:	cc                   	int3
40539d:	cc                   	int3
40539e:	cc                   	int3
40539f:	cc                   	int3
4053a0:	8b ff                	mov    %edi,%edi
4053a2:	55                   	push   %ebp
4053a3:	8b ec                	mov    %esp,%ebp
4053a5:	83 ec 0c             	sub    $0xc,%esp
4053a8:	8b 45 08             	mov    0x8(%ebp),%eax
4053ab:	56                   	push   %esi
4053ac:	57                   	push   %edi
4053ad:	89 45 f4             	mov    %eax,-0xc(%ebp)
4053b0:	8d 75 f4             	lea    -0xc(%ebp),%esi
4053b3:	8b 45 0c             	mov    0xc(%ebp),%eax
4053b6:	83 ec 0c             	sub    $0xc,%esp
4053b9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4053bc:	8b fc                	mov    %esp,%edi
4053be:	8b 45 10             	mov    0x10(%ebp),%eax
4053c1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4053c4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053c6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053c7:	e8 54 0d 00 00       	call   0x406120
4053cc:	5f                   	pop    %edi
4053cd:	5e                   	pop    %esi
4053ce:	c9                   	leave
4053cf:	c2 0c 00             	ret    $0xc
4053d2:	6a 78                	push   $0x78
4053d4:	b8 0e ae 40 00       	mov    $0x40ae0e,%eax
4053d9:	e8 36 58 00 00       	call   0x40ac14
4053de:	8b f9                	mov    %ecx,%edi
4053e0:	8d 4d eb             	lea    -0x15(%ebp),%ecx
4053e3:	e8 4a ec ff ff       	call   0x404032
4053e8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4053ec:	8b 0f                	mov    (%edi),%ecx
4053ee:	e8 e9 fc ff ff       	call   0x4050dc
4053f3:	68 00 08 00 00       	push   $0x800
4053f8:	6a 00                	push   $0x0
4053fa:	68 f8 1d 40 00       	push   $0x401df8
4053ff:	ff 15 90 e0 40 00    	call   *0x40e090
405405:	8b f0                	mov    %eax,%esi
405407:	85 f6                	test   %esi,%esi
405409:	74 73                	je     0x40547e
40540b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40540e:	68 1c 1e 40 00       	push   $0x401e1c
405413:	56                   	push   %esi
405414:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405418:	ff 15 80 e0 40 00    	call   *0x40e080
40541e:	8b d8                	mov    %eax,%ebx
405420:	85 db                	test   %ebx,%ebx
405422:	74 5f                	je     0x405483
405424:	ff 77 08             	push   0x8(%edi)
405427:	8b cb                	mov    %ebx,%ecx
405429:	ff 77 04             	push   0x4(%edi)
40542c:	ff 15 f0 e1 40 00    	call   *0x40e1f0
405432:	ff d3                	call   *%ebx
405434:	8b d8                	mov    %eax,%ebx
405436:	85 db                	test   %ebx,%ebx
405438:	79 2b                	jns    0x405465
40543a:	8b 0d 00 d0 40 00    	mov    0x40d000,%ecx
405440:	81 f9 00 d0 40 00    	cmp    $0x40d000,%ecx
405446:	74 1a                	je     0x405462
405448:	80 79 19 02          	cmpb   $0x2,0x19(%ecx)
40544c:	72 14                	jb     0x405462
40544e:	8b 47 08             	mov    0x8(%edi),%eax
405451:	53                   	push   %ebx
405452:	ff 30                	push   (%eax)
405454:	ff 77 04             	push   0x4(%edi)
405457:	ff 71 14             	push   0x14(%ecx)
40545a:	ff 71 10             	push   0x10(%ecx)
40545d:	e8 65 fb ff ff       	call   0x404fc7
405462:	53                   	push   %ebx
405463:	eb 56                	jmp    0x4054bb
405465:	56                   	push   %esi
405466:	ff 15 84 e0 40 00    	call   *0x40e084
40546c:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)
405470:	74 06                	je     0x405478
405472:	ff 15 24 e0 40 00    	call   *0x40e024
405478:	e8 52 57 00 00       	call   0x40abcf
40547d:	c3                   	ret
40547e:	e8 bc ea ff ff       	call   0x403f3f
405483:	a1 00 d0 40 00       	mov    0x40d000,%eax
405488:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
40548d:	74 19                	je     0x4054a8
40548f:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
405493:	72 13                	jb     0x4054a8
405495:	ff 70 14             	push   0x14(%eax)
405498:	ba 3c 1e 40 00       	mov    $0x401e3c,%edx
40549d:	ff 70 10             	push   0x10(%eax)
4054a0:	6a 0f                	push   $0xf
4054a2:	59                   	pop    %ecx
4054a3:	e8 e5 ea ff ff       	call   0x403f8d
4054a8:	ff 15 44 e0 40 00    	call   *0x40e044
4054ae:	85 c0                	test   %eax,%eax
4054b0:	7e 08                	jle    0x4054ba
4054b2:	0f b7 c0             	movzwl %ax,%eax
4054b5:	0d 00 00 07 80       	or     $0x80070000,%eax
4054ba:	50                   	push   %eax
4054bb:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4054c1:	e8 a8 e9 ff ff       	call   0x403e6e
4054c6:	68 a4 c6 40 00       	push   $0x40c6a4
4054cb:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4054d1:	50                   	push   %eax
4054d2:	e8 63 56 00 00       	call   0x40ab3a
4054d7:	cc                   	int3
4054d8:	cc                   	int3
4054d9:	cc                   	int3
4054da:	cc                   	int3
4054db:	cc                   	int3
4054dc:	cc                   	int3
4054dd:	cc                   	int3
4054de:	cc                   	int3
4054df:	cc                   	int3
4054e0:	8b ff                	mov    %edi,%edi
4054e2:	55                   	push   %ebp
4054e3:	8b ec                	mov    %esp,%ebp
4054e5:	83 e4 f8             	and    $0xfffffff8,%esp
4054e8:	83 ec 78             	sub    $0x78,%esp
4054eb:	a1 50 d1 40 00       	mov    0x40d150,%eax
4054f0:	33 c4                	xor    %esp,%eax
4054f2:	89 44 24 74          	mov    %eax,0x74(%esp)
4054f6:	56                   	push   %esi
4054f7:	57                   	push   %edi
4054f8:	8d 75 0c             	lea    0xc(%ebp),%esi
4054fb:	8b 45 08             	mov    0x8(%ebp),%eax
4054fe:	8d 7c 24 58          	lea    0x58(%esp),%edi
405502:	89 44 24 08          	mov    %eax,0x8(%esp)
405506:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405507:	83 ec 40             	sub    $0x40,%esp
40550a:	8b 45 44             	mov    0x44(%ebp),%eax
40550d:	89 44 24 4c          	mov    %eax,0x4c(%esp)
405511:	8b 45 30             	mov    0x30(%ebp),%eax
405514:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405515:	89 44 24 50          	mov    %eax,0x50(%esp)
405519:	8b 45 2c             	mov    0x2c(%ebp),%eax
40551c:	6a 10                	push   $0x10
40551e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40551f:	59                   	pop    %ecx
405520:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405521:	8d 75 1c             	lea    0x1c(%ebp),%esi
405524:	8d bc 24 a8 00 00 00 	lea    0xa8(%esp),%edi
40552b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40552c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40552d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40552e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40552f:	8d 75 34             	lea    0x34(%ebp),%esi
405532:	8d bc 24 88 00 00 00 	lea    0x88(%esp),%edi
405539:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40553a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40553b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40553c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40553d:	8d b4 24 88 00 00 00 	lea    0x88(%esp),%esi
405544:	8d 7c 24 54          	lea    0x54(%esp),%edi
405548:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405549:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40554a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40554b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40554c:	8d b4 24 98 00 00 00 	lea    0x98(%esp),%esi
405553:	8d 7c 24 64          	lea    0x64(%esp),%edi
405557:	a5                   	movsl  %ds:(%esi),%es:(%edi)