4050ed:	88 07                	mov    %al,(%edi)
4050ef:	e8 ea e4 ff ff       	call   0x4035de
4050f4:	ff 35 68 d2 40 00    	push   0x40d268
4050fa:	8b cf                	mov    %edi,%ecx
4050fc:	6a 00                	push   $0x0
4050fe:	53                   	push   %ebx
4050ff:	e8 fe fa ff ff       	call   0x404c02
405104:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405107:	c7 06 b4 d3 40 00    	movl   $0x40d3b4,(%esi)
40510d:	8b c6                	mov    %esi,%eax
40510f:	5f                   	pop    %edi
405110:	5e                   	pop    %esi
405111:	5b                   	pop    %ebx
405112:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405119:	c9                   	leave
40511a:	c2 04 00             	ret    $0x4
40511d:	b8 18 c8 40 00       	mov    $0x40c818,%eax
405122:	e8 19 0c 00 00       	call   0x405d40
405127:	51                   	push   %ecx
405128:	56                   	push   %esi
405129:	8b f1                	mov    %ecx,%esi
40512b:	89 75 f0             	mov    %esi,-0x10(%ebp)
40512e:	c7 06 b4 d3 40 00    	movl   $0x40d3b4,(%esi)
405134:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405138:	6a 01                	push   $0x1
40513a:	8d 4e 0c             	lea    0xc(%esi),%ecx
40513d:	e8 9c e4 ff ff       	call   0x4035de
405142:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405146:	8b ce                	mov    %esi,%ecx
405148:	e8 2d 1d 00 00       	call   0x406e7a
40514d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405150:	5e                   	pop    %esi
405151:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405158:	c9                   	leave
405159:	c3                   	ret
40515a:	55                   	push   %ebp
40515b:	8b ec                	mov    %esp,%ebp
40515d:	83 ec 1c             	sub    $0x1c,%esp
405160:	51                   	push   %ecx
405161:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
405164:	e8 2a 00 00 00       	call   0x405193
405169:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40516c:	68 00 e6 40 00       	push   $0x40e600
405171:	50                   	push   %eax
405172:	e8 26 1d 00 00       	call   0x406e9d
405177:	56                   	push   %esi
405178:	8b f1                	mov    %ecx,%esi
40517a:	e8 9e ff ff ff       	call   0x40511d
40517f:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
405184:	74 07                	je     0x40518d
405186:	56                   	push   %esi
405187:	e8 f5 fd ff ff       	call   0x404f81
40518c:	59                   	pop    %ecx
40518d:	8b c6                	mov    %esi,%eax
40518f:	5e                   	pop    %esi
405190:	c2 04 00             	ret    $0x4
405193:	56                   	push   %esi
405194:	8b f1                	mov    %ecx,%esi
405196:	ff 74 24 08          	push   0x8(%esp)
40519a:	e8 21 ff ff ff       	call   0x4050c0
40519f:	c7 06 94 d3 40 00    	movl   $0x40d394,(%esi)
4051a5:	8b c6                	mov    %esi,%eax
4051a7:	5e                   	pop    %esi
4051a8:	c2 04 00             	ret    $0x4
4051ab:	b8 2c c8 40 00       	mov    $0x40c82c,%eax
4051b0:	e8 8b 0b 00 00       	call   0x405d40
4051b5:	83 ec 30             	sub    $0x30,%esp
4051b8:	8a 45 f3             	mov    -0xd(%ebp),%al
4051bb:	56                   	push   %esi
4051bc:	6a 00                	push   $0x0
4051be:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4051c1:	88 45 e0             	mov    %al,-0x20(%ebp)
4051c4:	e8 15 e4 ff ff       	call   0x4035de
4051c9:	be d0 d3 40 00       	mov    $0x40d3d0,%esi
4051ce:	56                   	push   %esi
4051cf:	e8 2c 18 00 00       	call   0x406a00
4051d4:	59                   	pop    %ecx
4051d5:	50                   	push   %eax
4051d6:	56                   	push   %esi
4051d7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4051da:	e8 65 e6 ff ff       	call   0x403844
4051df:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4051e3:	8d 45 e0             	lea    -0x20(%ebp),%eax
4051e6:	50                   	push   %eax
4051e7:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4051ea:	e8 f7 fd ff ff       	call   0x404fe6
4051ef:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4051f2:	68 28 e7 40 00       	push   $0x40e728
4051f7:	50                   	push   %eax
4051f8:	c7 45 c4 c4 d3 40 00 	movl   $0x40d3c4,-0x3c(%ebp)
4051ff:	e8 99 1c 00 00       	call   0x406e9d
405204:	5e                   	pop    %esi
405205:	b8 40 c8 40 00       	mov    $0x40c840,%eax
40520a:	e8 31 0b 00 00       	call   0x405d40
40520f:	51                   	push   %ecx
405210:	56                   	push   %esi
405211:	8b f1                	mov    %ecx,%esi
405213:	89 75 f0             	mov    %esi,-0x10(%ebp)
405216:	c7 06 b4 d3 40 00    	movl   $0x40d3b4,(%esi)
40521c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405220:	6a 01                	push   $0x1
405222:	8d 4e 0c             	lea    0xc(%esi),%ecx
405225:	e8 b4 e3 ff ff       	call   0x4035de
40522a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40522e:	8b ce                	mov    %esi,%ecx
405230:	e8 45 1c 00 00       	call   0x406e7a
405235:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405238:	5e                   	pop    %esi
405239:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405240:	c9                   	leave
405241:	c3                   	ret
405242:	55                   	push   %ebp
405243:	8b ec                	mov    %esp,%ebp
405245:	83 ec 1c             	sub    $0x1c,%esp
405248:	51                   	push   %ecx
405249:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40524c:	e8 2a 00 00 00       	call   0x40527b
405251:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405254:	68 28 e7 40 00       	push   $0x40e728
405259:	50                   	push   %eax
40525a:	e8 3e 1c 00 00       	call   0x406e9d
40525f:	56                   	push   %esi
405260:	8b f1                	mov    %ecx,%esi
405262:	e8 9e ff ff ff       	call   0x405205
405267:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40526c:	74 07                	je     0x405275
40526e:	56                   	push   %esi
40526f:	e8 0d fd ff ff       	call   0x404f81
405274:	59                   	pop    %ecx
405275:	8b c6                	mov    %esi,%eax
405277:	5e                   	pop    %esi
405278:	c2 04 00             	ret    $0x4
40527b:	56                   	push   %esi
40527c:	8b f1                	mov    %ecx,%esi
40527e:	ff 74 24 08          	push   0x8(%esp)
405282:	e8 39 fe ff ff       	call   0x4050c0
405287:	c7 06 c4 d3 40 00    	movl   $0x40d3c4,(%esi)
40528d:	8b c6                	mov    %esi,%eax
40528f:	5e                   	pop    %esi
405290:	c2 04 00             	ret    $0x4
405293:	f6 05 50 1b 41 00 01 	testb  $0x1,0x411b50
40529a:	75 07                	jne    0x4052a3
40529c:	80 0d 50 1b 41 00 01 	orb    $0x1,0x411b50
4052a3:	e8 15 00 00 00       	call   0x4052bd
4052a8:	f6 05 58 1b 41 00 01 	testb  $0x1,0x411b58
4052af:	75 07                	jne    0x4052b8
4052b1:	80 0d 58 1b 41 00 01 	orb    $0x1,0x411b58
4052b8:	e9 0c 00 00 00       	jmp    0x4052c9
4052bd:	68 d0 28 40 00       	push   $0x4028d0
4052c2:	e8 43 02 00 00       	call   0x40550a
4052c7:	59                   	pop    %ecx
4052c8:	c3                   	ret
4052c9:	68 07 3a 40 00       	push   $0x403a07
4052ce:	e8 37 02 00 00       	call   0x40550a
4052d3:	59                   	pop    %ecx
4052d4:	c3                   	ret
4052d5:	55                   	push   %ebp
4052d6:	8b ec                	mov    %esp,%ebp
4052d8:	53                   	push   %ebx
4052d9:	56                   	push   %esi
4052da:	be dc 1e 41 00       	mov    $0x411edc,%esi
4052df:	57                   	push   %edi
4052e0:	56                   	push   %esi
4052e1:	ff 15 d0 d0 40 00    	call   *0x40d0d0
4052e7:	8b 3d cc d0 40 00    	mov    0x40d0cc,%edi
4052ed:	33 db                	xor    %ebx,%ebx
4052ef:	39 1d d8 1e 41 00    	cmp    %ebx,0x411ed8
4052f5:	74 0e                	je     0x405305
4052f7:	56                   	push   %esi
4052f8:	ff d7                	call   *%edi
4052fa:	6a 13                	push   $0x13
4052fc:	e8 f4 1c 00 00       	call   0x406ff5
405301:	59                   	pop    %ecx
405302:	6a 01                	push   $0x1
405304:	5b                   	pop    %ebx
405305:	ff 75 18             	push   0x18(%ebp)
405308:	ff 75 14             	push   0x14(%ebp)
40530b:	ff 75 10             	push   0x10(%ebp)
40530e:	ff 75 0c             	push   0xc(%ebp)
405311:	ff 75 08             	push   0x8(%ebp)
405314:	e8 1f 00 00 00       	call   0x405338
405319:	83 c4 14             	add    $0x14,%esp
40531c:	89 45 18             	mov    %eax,0x18(%ebp)
40531f:	85 db                	test   %ebx,%ebx
405321:	74 0a                	je     0x40532d
405323:	6a 13                	push   $0x13
405325:	e8 2c 1d 00 00       	call   0x407056
40532a:	59                   	pop    %ecx
40532b:	eb 03                	jmp    0x405330
40532d:	56                   	push   %esi
40532e:	ff d7                	call   *%edi
405330:	8b 45 18             	mov    0x18(%ebp),%eax
405333:	5f                   	pop    %edi
405334:	5e                   	pop    %esi
405335:	5b                   	pop    %ebx
405336:	5d                   	pop    %ebp
405337:	c3                   	ret
405338:	55                   	push   %ebp
405339:	8b ec                	mov    %esp,%ebp
40533b:	53                   	push   %ebx
40533c:	56                   	push   %esi
40533d:	57                   	push   %edi
40533e:	8b 7d 0c             	mov    0xc(%ebp),%edi
405341:	33 db                	xor    %ebx,%ebx
405343:	3b fb                	cmp    %ebx,%edi
405345:	74 15                	je     0x40535c
405347:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40534a:	74 10                	je     0x40535c
40534c:	8a 17                	mov    (%edi),%dl
40534e:	3a d3                	cmp    %bl,%dl
405350:	75 11                	jne    0x405363
405352:	8b 45 08             	mov    0x8(%ebp),%eax
405355:	3b c3                	cmp    %ebx,%eax
405357:	74 03                	je     0x40535c
405359:	66 89 18             	mov    %bx,(%eax)
40535c:	33 c0                	xor    %eax,%eax
40535e:	5f                   	pop    %edi
40535f:	5e                   	pop    %esi
405360:	5b                   	pop    %ebx
405361:	5d                   	pop    %ebp
405362:	c3                   	ret
405363:	8b 45 18             	mov    0x18(%ebp),%eax
405366:	3b c3                	cmp    %ebx,%eax
405368:	75 0d                	jne    0x405377
40536a:	8b 0d 6c 18 41 00    	mov    0x41186c,%ecx
405370:	a1 7c 18 41 00       	mov    0x41187c,%eax
405375:	eb 05                	jmp    0x40537c
405377:	8b 08                	mov    (%eax),%ecx
405379:	8b 40 04             	mov    0x4(%eax),%eax
40537c:	3b cb                	cmp    %ebx,%ecx
40537e:	75 13                	jne    0x405393
405380:	8b 45 08             	mov    0x8(%ebp),%eax
405383:	3b c3                	cmp    %ebx,%eax
405385:	74 07                	je     0x40538e
405387:	66 0f b6 ca          	movzbw %dl,%cx
40538b:	66 89 08             	mov    %cx,(%eax)
40538e:	6a 01                	push   $0x1
405390:	58                   	pop    %eax
405391:	eb cb                	jmp    0x40535e
405393:	8b 75 14             	mov    0x14(%ebp),%esi
405396:	39 1e                	cmp    %ebx,(%esi)
405398:	74 43                	je     0x4053dd
40539a:	88 56 01             	mov    %dl,0x1(%esi)
40539d:	83 3d 60 0d 41 00 01 	cmpl   $0x1,0x410d60
4053a4:	7e 25                	jle    0x4053cb
4053a6:	33 c9                	xor    %ecx,%ecx
4053a8:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4053ab:	0f 95 c1             	setne  %cl
4053ae:	51                   	push   %ecx
4053af:	ff 75 08             	push   0x8(%ebp)
4053b2:	6a 02                	push   $0x2
4053b4:	56                   	push   %esi
4053b5:	6a 09                	push   $0x9
4053b7:	50                   	push   %eax
4053b8:	ff 15 d4 d0 40 00    	call   *0x40d0d4
4053be:	85 c0                	test   %eax,%eax
4053c0:	74 09                	je     0x4053cb
4053c2:	89 1e                	mov    %ebx,(%esi)
4053c4:	a1 60 0d 41 00       	mov    0x410d60,%eax
4053c9:	eb 93                	jmp    0x40535e
4053cb:	89 1e                	mov    %ebx,(%esi)
4053cd:	e8 0c 1d 00 00       	call   0x4070de
4053d2:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4053d8:	83 c8 ff             	or     $0xffffffff,%eax
4053db:	eb 81                	jmp    0x40535e
4053dd:	8b 1d ec 09 41 00    	mov    0x4109ec,%ebx
4053e3:	0f b6 ca             	movzbl %dl,%ecx
4053e6:	f6 44 4b 01 80       	testb  $0x80,0x1(%ebx,%ecx,2)
4053eb:	74 3c                	je     0x405429
4053ed:	8b 0d 60 0d 41 00    	mov    0x410d60,%ecx
4053f3:	39 4d 10             	cmp    %ecx,0x10(%ebp)
4053f6:	73 06                	jae    0x4053fe
4053f8:	88 16                	mov    %dl,(%esi)
4053fa:	6a fe                	push   $0xfffffffe
4053fc:	eb 92                	jmp    0x405390
4053fe:	83 f9 01             	cmp    $0x1,%ecx
405401:	7e 1b                	jle    0x40541e
405403:	33 d2                	xor    %edx,%edx
405405:	39 55 08             	cmp    %edx,0x8(%ebp)
405408:	0f 95 c2             	setne  %dl
40540b:	52                   	push   %edx
40540c:	ff 75 08             	push   0x8(%ebp)
40540f:	51                   	push   %ecx
405410:	57                   	push   %edi
405411:	6a 09                	push   $0x9
405413:	50                   	push   %eax
405414:	ff 15 d4 d0 40 00    	call   *0x40d0d4
40541a:	85 c0                	test   %eax,%eax
40541c:	75 a6                	jne    0x4053c4
40541e:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
405422:	75 a0                	jne    0x4053c4
405424:	83 26 00             	andl   $0x0,(%esi)
405427:	eb a4                	jmp    0x4053cd
405429:	33 c9                	xor    %ecx,%ecx
40542b:	39 4d 08             	cmp    %ecx,0x8(%ebp)
40542e:	0f 95 c1             	setne  %cl
405431:	51                   	push   %ecx
405432:	ff 75 08             	push   0x8(%ebp)
405435:	6a 01                	push   $0x1
405437:	57                   	push   %edi
405438:	6a 09                	push   $0x9
40543a:	50                   	push   %eax
40543b:	ff 15 d4 d0 40 00    	call   *0x40d0d4
405441:	85 c0                	test   %eax,%eax
405443:	0f 85 45 ff ff ff    	jne    0x40538e
405449:	eb 82                	jmp    0x4053cd
40544b:	55                   	push   %ebp
40544c:	8b ec                	mov    %esp,%ebp
40544e:	51                   	push   %ecx
40544f:	51                   	push   %ecx
405450:	8b 45 08             	mov    0x8(%ebp),%eax
405453:	83 f8 ff             	cmp    $0xffffffff,%eax
405456:	75 06                	jne    0x40545e
405458:	66 0d ff ff          	or     $0xffff,%ax
40545c:	c9                   	leave
40545d:	c3                   	ret
40545e:	88 45 0b             	mov    %al,0xb(%ebp)
405461:	8d 45 f8             	lea    -0x8(%ebp),%eax
405464:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
405468:	6a 00                	push   $0x0
40546a:	50                   	push   %eax
40546b:	8d 45 0b             	lea    0xb(%ebp),%eax
40546e:	6a 01                	push   $0x1
405470:	50                   	push   %eax
405471:	8d 45 fe             	lea    -0x2(%ebp),%eax
405474:	50                   	push   %eax
405475:	e8 5b fe ff ff       	call   0x4052d5
40547a:	83 c4 14             	add    $0x14,%esp
40547d:	85 c0                	test   %eax,%eax
40547f:	b8 ff ff 00 00       	mov    $0xffff,%eax
405484:	7c 04                	jl     0x40548a
405486:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
40548a:	c9                   	leave
40548b:	c3                   	ret
40548c:	56                   	push   %esi
40548d:	e8 52 1d 00 00       	call   0x4071e4
405492:	ff 35 d0 1e 41 00    	push   0x411ed0
405498:	e8 ab 1e 00 00       	call   0x407348
40549d:	8b 15 d0 1e 41 00    	mov    0x411ed0,%edx
4054a3:	59                   	pop    %ecx
4054a4:	8b 0d cc 1e 41 00    	mov    0x411ecc,%ecx
4054aa:	8b f1                	mov    %ecx,%esi
4054ac:	2b f2                	sub    %edx,%esi
4054ae:	83 c6 04             	add    $0x4,%esi
4054b1:	3b c6                	cmp    %esi,%eax
4054b3:	73 3d                	jae    0x4054f2
4054b5:	52                   	push   %edx
4054b6:	e8 8d 1e 00 00       	call   0x407348
4054bb:	83 c0 10             	add    $0x10,%eax
4054be:	50                   	push   %eax