404fc4:	c2 14 00             	ret    $0x14
404fc7:	8b ff                	mov    %edi,%edi
404fc9:	55                   	push   %ebp
404fca:	8b ec                	mov    %esp,%ebp
404fcc:	51                   	push   %ecx
404fcd:	8b 55 14             	mov    0x14(%ebp),%edx
404fd0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404fd4:	53                   	push   %ebx
404fd5:	56                   	push   %esi
404fd6:	8b 75 10             	mov    0x10(%ebp),%esi
404fd9:	57                   	push   %edi
404fda:	6a 0a                	push   $0xa
404fdc:	5f                   	pop    %edi
404fdd:	85 d2                	test   %edx,%edx
404fdf:	74 1e                	je     0x404fff
404fe1:	8b ca                	mov    %edx,%ecx
404fe3:	8d 59 02             	lea    0x2(%ecx),%ebx
404fe6:	66 8b 01             	mov    (%ecx),%ax
404fe9:	83 c1 02             	add    $0x2,%ecx
404fec:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
404ff0:	75 f4                	jne    0x404fe6
404ff2:	2b cb                	sub    %ebx,%ecx
404ff4:	d1 f9                	sar    $1,%ecx
404ff6:	8d 1c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ebx
404ffd:	eb 02                	jmp    0x405001
404fff:	8b df                	mov    %edi,%ebx
405001:	85 d2                	test   %edx,%edx
405003:	75 05                	jne    0x40500a
405005:	ba b0 1d 40 00       	mov    $0x401db0,%edx
40500a:	85 f6                	test   %esi,%esi
40500c:	74 20                	je     0x40502e
40500e:	8b ce                	mov    %esi,%ecx
405010:	8d 79 02             	lea    0x2(%ecx),%edi
405013:	66 8b 01             	mov    (%ecx),%ax
405016:	83 c1 02             	add    $0x2,%ecx
405019:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
40501d:	75 f4                	jne    0x405013
40501f:	2b cf                	sub    %edi,%ecx
405021:	d1 f9                	sar    $1,%ecx
405023:	8d 3c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%edi
40502a:	85 f6                	test   %esi,%esi
40502c:	75 05                	jne    0x405033
40502e:	be b0 1d 40 00       	mov    $0x401db0,%esi
405033:	33 c0                	xor    %eax,%eax
405035:	50                   	push   %eax
405036:	6a 04                	push   $0x4
405038:	8d 45 18             	lea    0x18(%ebp),%eax
40503b:	50                   	push   %eax
40503c:	53                   	push   %ebx
40503d:	52                   	push   %edx
40503e:	57                   	push   %edi
40503f:	56                   	push   %esi
405040:	6a 10                	push   $0x10
405042:	68 3c 1e 40 00       	push   $0x401e3c
405047:	6a 2b                	push   $0x2b
405049:	ff 75 0c             	push   0xc(%ebp)
40504c:	ff 75 08             	push   0x8(%ebp)
40504f:	ff 15 dc e1 40 00    	call   *0x40e1dc
405055:	83 c4 30             	add    $0x30,%esp
405058:	5f                   	pop    %edi
405059:	5e                   	pop    %esi
40505a:	5b                   	pop    %ebx
40505b:	c9                   	leave
40505c:	c2 14 00             	ret    $0x14
40505f:	8b ff                	mov    %edi,%edi
405061:	55                   	push   %ebp
405062:	8b ec                	mov    %esp,%ebp
405064:	8b 55 10             	mov    0x10(%ebp),%edx
405067:	56                   	push   %esi
405068:	57                   	push   %edi
405069:	85 d2                	test   %edx,%edx
40506b:	74 11                	je     0x40507e
40506d:	8b f2                	mov    %edx,%esi
40506f:	8d 7e 01             	lea    0x1(%esi),%edi
405072:	8a 06                	mov    (%esi),%al
405074:	46                   	inc    %esi
405075:	84 c0                	test   %al,%al
405077:	75 f9                	jne    0x405072
405079:	2b f7                	sub    %edi,%esi
40507b:	46                   	inc    %esi
40507c:	eb 03                	jmp    0x405081
40507e:	6a 05                	push   $0x5
405080:	5e                   	pop    %esi
405081:	85 d2                	test   %edx,%edx
405083:	75 05                	jne    0x40508a
405085:	ba bc 1d 40 00       	mov    $0x401dbc,%edx
40508a:	6a 00                	push   $0x0
40508c:	56                   	push   %esi
40508d:	52                   	push   %edx
40508e:	51                   	push   %ecx
40508f:	68 3c 1e 40 00       	push   $0x401e3c
405094:	6a 2b                	push   $0x2b
405096:	ff 75 0c             	push   0xc(%ebp)
405099:	ff 75 08             	push   0x8(%ebp)
40509c:	ff 15 dc e1 40 00    	call   *0x40e1dc
4050a2:	83 c4 20             	add    $0x20,%esp
4050a5:	5f                   	pop    %edi
4050a6:	5e                   	pop    %esi
4050a7:	5d                   	pop    %ebp
4050a8:	c2 0c 00             	ret    $0xc
4050ab:	8b ff                	mov    %edi,%edi
4050ad:	56                   	push   %esi
4050ae:	8b f1                	mov    %ecx,%esi
4050b0:	8b 06                	mov    (%esi),%eax
4050b2:	81 38 03 00 00 80    	cmpl   $0x80000003,(%eax)
4050b8:	74 1e                	je     0x4050d8
4050ba:	6a 00                	push   $0x0
4050bc:	ff 76 04             	push   0x4(%esi)
4050bf:	50                   	push   %eax
4050c0:	ff 15 e0 e1 40 00    	call   *0x40e1e0
4050c6:	8b 06                	mov    (%esi),%eax
4050c8:	8b 30                	mov    (%eax),%esi
4050ca:	ff 15 a8 e0 40 00    	call   *0x40e0a8
4050d0:	56                   	push   %esi
4050d1:	50                   	push   %eax
4050d2:	ff 15 b0 e0 40 00    	call   *0x40e0b0
4050d8:	33 c0                	xor    %eax,%eax
4050da:	5e                   	pop    %esi
4050db:	c3                   	ret
4050dc:	8b ff                	mov    %edi,%edi
4050de:	55                   	push   %ebp
4050df:	8b ec                	mov    %esp,%ebp
4050e1:	83 e4 f8             	and    $0xfffffff8,%esp
4050e4:	83 ec 6c             	sub    $0x6c,%esp
4050e7:	56                   	push   %esi
4050e8:	8b f1                	mov    %ecx,%esi
4050ea:	85 f6                	test   %esi,%esi
4050ec:	74 14                	je     0x405102
4050ee:	81 3e 48 6f 73 74    	cmpl   $0x74736f48,(%esi)
4050f4:	74 05                	je     0x4050fb
4050f6:	e8 ee 0e 00 00       	call   0x405fe9
4050fb:	8b c6                	mov    %esi,%eax
4050fd:	5e                   	pop    %esi
4050fe:	8b e5                	mov    %ebp,%esp
405100:	5d                   	pop    %ebp
405101:	c3                   	ret
405102:	a1 00 d0 40 00       	mov    0x40d000,%eax
405107:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
40510c:	74 19                	je     0x405127
40510e:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
405112:	72 13                	jb     0x405127
405114:	68 c4 1d 40 00       	push   $0x401dc4
405119:	ff 70 14             	push   0x14(%eax)
40511c:	ff 70 10             	push   0x10(%eax)
40511f:	6a 0a                	push   $0xa
405121:	59                   	pop    %ecx
405122:	e8 38 ff ff ff       	call   0x40505f
405127:	68 03 40 00 80       	push   $0x80004003
40512c:	8d 4c 24 08          	lea    0x8(%esp),%ecx
405130:	e8 39 ed ff ff       	call   0x403e6e
405135:	68 a4 c6 40 00       	push   $0x40c6a4
40513a:	8d 44 24 08          	lea    0x8(%esp),%eax
40513e:	50                   	push   %eax
40513f:	e8 f6 59 00 00       	call   0x40ab3a
405144:	cc                   	int3
405145:	8b ff                	mov    %edi,%edi
405147:	55                   	push   %ebp
405148:	8b ec                	mov    %esp,%ebp
40514a:	83 e4 f8             	and    $0xfffffff8,%esp
40514d:	83 ec 6c             	sub    $0x6c,%esp
405150:	56                   	push   %esi
405151:	8b f1                	mov    %ecx,%esi
405153:	85 f6                	test   %esi,%esi
405155:	74 14                	je     0x40516b
405157:	81 3e 4e 4f 62 6a    	cmpl   $0x6a624f4e,(%esi)
40515d:	74 05                	je     0x405164
40515f:	e8 85 0e 00 00       	call   0x405fe9
405164:	8b c6                	mov    %esi,%eax
405166:	5e                   	pop    %esi
405167:	8b e5                	mov    %ebp,%esp
405169:	5d                   	pop    %ebp
40516a:	c3                   	ret
40516b:	a1 00 d0 40 00       	mov    0x40d000,%eax
405170:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
405175:	74 19                	je     0x405190
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