405137:	74 0a                	je     0x405143
405139:	8b 85 b0 fb ff ff    	mov    -0x450(%ebp),%eax
40513f:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
405143:	8b 85 e8 fb ff ff    	mov    -0x418(%ebp),%eax
405149:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40514c:	5f                   	pop    %edi
40514d:	5e                   	pop    %esi
40514e:	33 cd                	xor    %ebp,%ecx
405150:	5b                   	pop    %ebx
405151:	e8 4e cc ff ff       	call   0x401da4
405156:	c9                   	leave
405157:	c3                   	ret
405158:	90                   	nop
405159:	ea 48 40 00 d4 46 40 	ljmp   $0x4046,$0xd4004048
405160:	00 06                	add    %al,(%esi)
405162:	47                   	inc    %edi
405163:	40                   	inc    %eax
405164:	00 63 47             	add    %ah,0x47(%ebx)
405167:	40                   	inc    %eax
405168:	00 b0 47 40 00 bc    	add    %dh,-0x43ffbfb9(%eax)
40516e:	47                   	inc    %edi
40516f:	40                   	inc    %eax
405170:	00 03                	add    %al,(%ebx)
405172:	48                   	dec    %eax
405173:	40                   	inc    %eax
405174:	00 0b                	add    %cl,(%ebx)
405176:	49                   	dec    %ecx
405177:	40                   	inc    %eax
405178:	00 6a 00             	add    %ch,0x0(%edx)
40517b:	68 00 10 00 00       	push   $0x1000
405180:	6a 00                	push   $0x0
405182:	ff 15 ac f0 40 00    	call   *0x40f0ac
405188:	33 c9                	xor    %ecx,%ecx
40518a:	85 c0                	test   %eax,%eax
40518c:	0f 95 c1             	setne  %cl
40518f:	a3 24 32 41 00       	mov    %eax,0x413224
405194:	8b c1                	mov    %ecx,%eax
405196:	c3                   	ret
405197:	8b ff                	mov    %edi,%edi
405199:	55                   	push   %ebp
40519a:	8b ec                	mov    %esp,%ebp
40519c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40519f:	85 c9                	test   %ecx,%ecx
4051a1:	74 1b                	je     0x4051be
4051a3:	6a e0                	push   $0xffffffe0
4051a5:	33 d2                	xor    %edx,%edx
4051a7:	58                   	pop    %eax
4051a8:	f7 f1                	div    %ecx
4051aa:	3b 45 0c             	cmp    0xc(%ebp),%eax
4051ad:	73 0f                	jae    0x4051be
4051af:	e8 73 ef ff ff       	call   0x404127
4051b4:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4051ba:	33 c0                	xor    %eax,%eax
4051bc:	5d                   	pop    %ebp
4051bd:	c3                   	ret
4051be:	0f af 4d 0c          	imul   0xc(%ebp),%ecx
4051c2:	56                   	push   %esi
4051c3:	8b f1                	mov    %ecx,%esi
4051c5:	85 f6                	test   %esi,%esi
4051c7:	75 01                	jne    0x4051ca
4051c9:	46                   	inc    %esi
4051ca:	33 c0                	xor    %eax,%eax
4051cc:	83 fe e0             	cmp    $0xffffffe0,%esi
4051cf:	77 13                	ja     0x4051e4
4051d1:	56                   	push   %esi
4051d2:	6a 08                	push   $0x8
4051d4:	ff 35 24 32 41 00    	push   0x413224
4051da:	ff 15 70 f0 40 00    	call   *0x40f070
4051e0:	85 c0                	test   %eax,%eax
4051e2:	75 32                	jne    0x405216
4051e4:	83 3d bc 38 41 00 00 	cmpl   $0x0,0x4138bc
4051eb:	74 1c                	je     0x405209
4051ed:	56                   	push   %esi
4051ee:	e8 5f 14 00 00       	call   0x406652
4051f3:	59                   	pop    %ecx
4051f4:	85 c0                	test   %eax,%eax
4051f6:	75 d2                	jne    0x4051ca
4051f8:	8b 45 10             	mov    0x10(%ebp),%eax
4051fb:	85 c0                	test   %eax,%eax
4051fd:	74 06                	je     0x405205
4051ff:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
405205:	33 c0                	xor    %eax,%eax
405207:	eb 0d                	jmp    0x405216
405209:	8b 4d 10             	mov    0x10(%ebp),%ecx
40520c:	85 c9                	test   %ecx,%ecx
40520e:	74 06                	je     0x405216
405210:	c7 01 0c 00 00 00    	movl   $0xc,(%ecx)
405216:	5e                   	pop    %esi
405217:	5d                   	pop    %ebp
405218:	c3                   	ret
405219:	2d a4 03 00 00       	sub    $0x3a4,%eax
40521e:	74 22                	je     0x405242
405220:	83 e8 04             	sub    $0x4,%eax
405223:	74 17                	je     0x40523c
405225:	83 e8 0d             	sub    $0xd,%eax
405228:	74 0c                	je     0x405236
40522a:	48                   	dec    %eax
40522b:	74 03                	je     0x405230
40522d:	33 c0                	xor    %eax,%eax
40522f:	c3                   	ret
405230:	b8 04 04 00 00       	mov    $0x404,%eax
405235:	c3                   	ret
405236:	b8 12 04 00 00       	mov    $0x412,%eax
40523b:	c3                   	ret
40523c:	b8 04 08 00 00       	mov    $0x804,%eax
405241:	c3                   	ret
405242:	b8 11 04 00 00       	mov    $0x411,%eax
405247:	c3                   	ret
405248:	8b ff                	mov    %edi,%edi
40524a:	56                   	push   %esi
40524b:	57                   	push   %edi
40524c:	8b f0                	mov    %eax,%esi
40524e:	68 01 01 00 00       	push   $0x101
405253:	33 ff                	xor    %edi,%edi
405255:	8d 46 1c             	lea    0x1c(%esi),%eax
405258:	57                   	push   %edi
405259:	50                   	push   %eax
40525a:	e8 81 27 00 00       	call   0x4079e0
40525f:	33 c0                	xor    %eax,%eax
405261:	0f b7 c8             	movzwl %ax,%ecx
405264:	8b c1                	mov    %ecx,%eax
405266:	89 7e 04             	mov    %edi,0x4(%esi)
405269:	89 7e 08             	mov    %edi,0x8(%esi)
40526c:	89 7e 0c             	mov    %edi,0xc(%esi)
40526f:	c1 e1 10             	shl    $0x10,%ecx
405272:	0b c1                	or     %ecx,%eax
405274:	8d 7e 10             	lea    0x10(%esi),%edi
405277:	ab                   	stos   %eax,%es:(%edi)
405278:	ab                   	stos   %eax,%es:(%edi)
405279:	ab                   	stos   %eax,%es:(%edi)
40527a:	b9 00 24 41 00       	mov    $0x412400,%ecx
40527f:	83 c4 0c             	add    $0xc,%esp
405282:	8d 46 1c             	lea    0x1c(%esi),%eax
405285:	2b ce                	sub    %esi,%ecx
405287:	bf 01 01 00 00       	mov    $0x101,%edi
40528c:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40528f:	88 10                	mov    %dl,(%eax)
405291:	40                   	inc    %eax
405292:	4f                   	dec    %edi
405293:	75 f7                	jne    0x40528c
405295:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
40529b:	be 00 01 00 00       	mov    $0x100,%esi
4052a0:	8a 14 08             	mov    (%eax,%ecx,1),%dl
4052a3:	88 10                	mov    %dl,(%eax)
4052a5:	40                   	inc    %eax
4052a6:	4e                   	dec    %esi
4052a7:	75 f7                	jne    0x4052a0
4052a9:	5f                   	pop    %edi
4052aa:	5e                   	pop    %esi
4052ab:	c3                   	ret
4052ac:	8b ff                	mov    %edi,%edi
4052ae:	55                   	push   %ebp
4052af:	8b ec                	mov    %esp,%ebp
4052b1:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
4052b7:	a1 84 22 41 00       	mov    0x412284,%eax
4052bc:	33 c5                	xor    %ebp,%eax
4052be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4052c1:	53                   	push   %ebx
4052c2:	57                   	push   %edi
4052c3:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
4052c9:	50                   	push   %eax
4052ca:	ff 76 04             	push   0x4(%esi)
4052cd:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4052d3:	bf 00 01 00 00       	mov    $0x100,%edi
4052d8:	85 c0                	test   %eax,%eax
4052da:	0f 84 fc 00 00 00    	je     0x4053dc
4052e0:	33 c0                	xor    %eax,%eax
4052e2:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
4052e9:	40                   	inc    %eax
4052ea:	3b c7                	cmp    %edi,%eax
4052ec:	72 f4                	jb     0x4052e2
4052ee:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
4052f4:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
4052fb:	84 c0                	test   %al,%al
4052fd:	74 30                	je     0x40532f
4052ff:	8d 9d ef fa ff ff    	lea    -0x511(%ebp),%ebx
405305:	0f b6 c8             	movzbl %al,%ecx
405308:	0f b6 03             	movzbl (%ebx),%eax
40530b:	3b c8                	cmp    %eax,%ecx
40530d:	77 16                	ja     0x405325
40530f:	2b c1                	sub    %ecx,%eax
405311:	40                   	inc    %eax
405312:	50                   	push   %eax
405313:	8d 94 0d fc fe ff ff 	lea    -0x104(%ebp,%ecx,1),%edx
40531a:	6a 20                	push   $0x20
40531c:	52                   	push   %edx
40531d:	e8 be 26 00 00       	call   0x4079e0
405322:	83 c4 0c             	add    $0xc,%esp
405325:	8a 43 01             	mov    0x1(%ebx),%al
405328:	83 c3 02             	add    $0x2,%ebx
40532b:	84 c0                	test   %al,%al
40532d:	75 d6                	jne    0x405305
40532f:	6a 00                	push   $0x0
405331:	ff 76 0c             	push   0xc(%esi)
405334:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
40533a:	ff 76 04             	push   0x4(%esi)
40533d:	50                   	push   %eax
40533e:	57                   	push   %edi
40533f:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
405345:	50                   	push   %eax
405346:	6a 01                	push   $0x1
405348:	6a 00                	push   $0x0
40534a:	e8 ca 5d 00 00       	call   0x40b119
40534f:	33 db                	xor    %ebx,%ebx
405351:	53                   	push   %ebx
405352:	ff 76 04             	push   0x4(%esi)
405355:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40535b:	57                   	push   %edi
40535c:	50                   	push   %eax
40535d:	57                   	push   %edi
40535e:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
405364:	50                   	push   %eax
405365:	57                   	push   %edi
405366:	ff 76 0c             	push   0xc(%esi)
405369:	53                   	push   %ebx
40536a:	e8 7d 5c 00 00       	call   0x40afec
40536f:	83 c4 44             	add    $0x44,%esp
405372:	53                   	push   %ebx
405373:	ff 76 04             	push   0x4(%esi)
405376:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40537c:	57                   	push   %edi
40537d:	50                   	push   %eax
40537e:	57                   	push   %edi
40537f:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
405385:	50                   	push   %eax
405386:	68 00 02 00 00       	push   $0x200
40538b:	ff 76 0c             	push   0xc(%esi)
40538e:	53                   	push   %ebx
40538f:	e8 58 5c 00 00       	call   0x40afec
405394:	83 c4 24             	add    $0x24,%esp
405397:	33 c0                	xor    %eax,%eax
405399:	0f b7 8c 45 fc fa ff 	movzwl -0x504(%ebp,%eax,2),%ecx
4053a0:	ff
4053a1:	f6 c1 01             	test   $0x1,%cl
4053a4:	74 0e                	je     0x4053b4
4053a6:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
4053ab:	8a 8c 05 fc fd ff ff 	mov    -0x204(%ebp,%eax,1),%cl
4053b2:	eb 11                	jmp    0x4053c5
4053b4:	f6 c1 02             	test   $0x2,%cl
4053b7:	74 15                	je     0x4053ce
4053b9:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
4053be:	8a 8c 05 fc fc ff ff 	mov    -0x304(%ebp,%eax,1),%cl
4053c5:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
4053cc:	eb 07                	jmp    0x4053d5
4053ce:	88 9c 06 1d 01 00 00 	mov    %bl,0x11d(%esi,%eax,1)
4053d5:	40                   	inc    %eax
4053d6:	3b c7                	cmp    %edi,%eax
4053d8:	72 bf                	jb     0x405399
4053da:	eb 52                	jmp    0x40542e
4053dc:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
4053e2:	c7 85 e4 fa ff ff 9f 	movl   $0xffffff9f,-0x51c(%ebp)
4053e9:	ff ff ff
4053ec:	33 c9                	xor    %ecx,%ecx
4053ee:	29 85 e4 fa ff ff    	sub    %eax,-0x51c(%ebp)
4053f4:	8b 95 e4 fa ff ff    	mov    -0x51c(%ebp),%edx
4053fa:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
405401:	03 d0                	add    %eax,%edx
405403:	8d 5a 20             	lea    0x20(%edx),%ebx
405406:	83 fb 19             	cmp    $0x19,%ebx
405409:	77 0a                	ja     0x405415
40540b:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
405410:	8d 51 20             	lea    0x20(%ecx),%edx
405413:	eb 0d                	jmp    0x405422
405415:	83 fa 19             	cmp    $0x19,%edx
405418:	77 0c                	ja     0x405426
40541a:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
40541f:	8d 51 e0             	lea    -0x20(%ecx),%edx
405422:	88 10                	mov    %dl,(%eax)
405424:	eb 03                	jmp    0x405429
405426:	c6 00 00             	movb   $0x0,(%eax)
405429:	41                   	inc    %ecx
40542a:	3b cf                	cmp    %edi,%ecx
40542c:	72 c6                	jb     0x4053f4
40542e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405431:	5f                   	pop    %edi
405432:	33 cd                	xor    %ebp,%ecx
405434:	5b                   	pop    %ebx
405435:	e8 6a c9 ff ff       	call   0x401da4
40543a:	c9                   	leave
40543b:	c3                   	ret
40543c:	6a 0c                	push   $0xc
40543e:	68 f8 11 41 00       	push   $0x4111f8
405443:	e8 28 ed ff ff       	call   0x404170
405448:	e8 99 09 00 00       	call   0x405de6
40544d:	8b f8                	mov    %eax,%edi
40544f:	a1 20 29 41 00       	mov    0x412920,%eax
405454:	85 47 70             	test   %eax,0x70(%edi)
405457:	74 1d                	je     0x405476
405459:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
40545d:	74 17                	je     0x405476
40545f:	8b 77 68             	mov    0x68(%edi),%esi
405462:	85 f6                	test   %esi,%esi
405464:	75 08                	jne    0x40546e
405466:	6a 20                	push   $0x20
405468:	e8 aa 0f 00 00       	call   0x406417
40546d:	59                   	pop    %ecx
40546e:	8b c6                	mov    %esi,%eax
405470:	e8 40 ed ff ff       	call   0x4041b5
405475:	c3                   	ret
405476:	6a 0d                	push   $0xd
405478:	e8 1c 19 00 00       	call   0x406d99
40547d:	59                   	pop    %ecx
40547e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405482:	8b 77 68             	mov    0x68(%edi),%esi
405485:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405488:	3b 35 28 28 41 00    	cmp    0x412828,%esi
40548e:	74 36                	je     0x4054c6
405490:	85 f6                	test   %esi,%esi
405492:	74 1a                	je     0x4054ae
405494:	56                   	push   %esi
405495:	ff 15 b8 f0 40 00    	call   *0x40f0b8
40549b:	85 c0                	test   %eax,%eax
40549d:	75 0f                	jne    0x4054ae
40549f:	81 fe 00 24 41 00    	cmp    $0x412400,%esi
4054a5:	74 07                	je     0x4054ae
4054a7:	56                   	push   %esi
4054a8:	e8 be ca ff ff       	call   0x401f6b
4054ad:	59                   	pop    %ecx
4054ae:	a1 28 28 41 00       	mov    0x412828,%eax
4054b3:	89 47 68             	mov    %eax,0x68(%edi)
4054b6:	8b 35 28 28 41 00    	mov    0x412828,%esi
4054bc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4054bf:	56                   	push   %esi
4054c0:	ff 15 b4 f0 40 00    	call   *0x40f0b4
4054c6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4054cd:	e8 05 00 00 00       	call   0x4054d7
4054d2:	eb 8e                	jmp    0x405462
4054d4:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4054d7:	6a 0d                	push   $0xd
4054d9:	e8 e2 17 00 00       	call   0x406cc0
4054de:	59                   	pop    %ecx
4054df:	c3                   	ret
4054e0:	8b ff                	mov    %edi,%edi
4054e2:	55                   	push   %ebp
4054e3:	8b ec                	mov    %esp,%ebp
4054e5:	83 ec 10             	sub    $0x10,%esp
4054e8:	53                   	push   %ebx
4054e9:	33 db                	xor    %ebx,%ebx
4054eb:	53                   	push   %ebx
4054ec:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4054ef:	e8 f1 ca ff ff       	call   0x401fe5
4054f4:	89 1d 28 32 41 00    	mov    %ebx,0x413228
4054fa:	83 fe fe             	cmp    $0xfffffffe,%esi
4054fd:	75 1e                	jne    0x40551d
4054ff:	c7 05 28 32 41 00 01 	movl   $0x1,0x413228
405506:	00 00 00
405509:	ff 15 c0 f0 40 00    	call   *0x40f0c0
40550f:	38 5d fc             	cmp    %bl,-0x4(%ebp)
405512:	74 45                	je     0x405559
405514:	8b 4d f8             	mov    -0x8(%ebp),%ecx