405104:	2b c8                	sub    %eax,%ecx
405106:	8d 45 c8             	lea    -0x38(%ebp),%eax
405109:	50                   	push   %eax
40510a:	53                   	push   %ebx
40510b:	68 1b 10 00 00       	push   $0x101b
405110:	89 4d d0             	mov    %ecx,-0x30(%ebp)
405113:	ff 75 fc             	push   -0x4(%ebp)
405116:	ff d6                	call   *%esi
405118:	b8 00 40 00 00       	mov    $0x4000,%eax
40511d:	50                   	push   %eax
40511e:	50                   	push   %eax
40511f:	68 36 10 00 00       	push   $0x1036
405124:	ff 75 fc             	push   -0x4(%ebp)
405127:	ff d6                	call   *%esi
405129:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40512c:	7c 1c                	jl     0x40514a
40512e:	ff 75 0c             	push   0xc(%ebp)
405131:	53                   	push   %ebx
405132:	68 01 10 00 00       	push   $0x1001
405137:	ff 75 fc             	push   -0x4(%ebp)
40513a:	ff d6                	call   *%esi
40513c:	ff 75 0c             	push   0xc(%ebp)
40513f:	53                   	push   %ebx
405140:	68 26 10 00 00       	push   $0x1026
405145:	ff 75 fc             	push   -0x4(%ebp)
405148:	ff d6                	call   *%esi
40514a:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40514d:	7c 0e                	jl     0x40515d
40514f:	ff 75 10             	push   0x10(%ebp)
405152:	53                   	push   %ebx
405153:	68 24 10 00 00       	push   $0x1024
405158:	ff 75 fc             	push   -0x4(%ebp)
40515b:	ff d6                	call   *%esi
40515d:	8b 45 14             	mov    0x14(%ebp),%eax
405160:	ff 70 30             	push   0x30(%eax)
405163:	6a 1b                	push   $0x1b
405165:	ff 75 08             	push   0x8(%ebp)
405168:	e8 ab ed ff ff       	call   0x403f18
40516d:	f6 05 b8 3e 42 00 03 	testb  $0x3,0x423eb8
405174:	74 34                	je     0x4051aa
405176:	53                   	push   %ebx
405177:	ff 35 70 36 42 00    	push   0x423670
40517d:	ff 15 60 72 40 00    	call   *0x407260
405183:	f6 05 b8 3e 42 00 02 	testb  $0x2,0x423eb8
40518a:	75 0d                	jne    0x405199
40518c:	6a 08                	push   $0x8
40518e:	ff 75 fc             	push   -0x4(%ebp)
405191:	ff 15 60 72 40 00    	call   *0x407260
405197:	eb 06                	jmp    0x40519f
405199:	89 1d 70 36 42 00    	mov    %ebx,0x423670
40519f:	ff 35 68 36 42 00    	push   0x423668
4051a5:	e8 a3 ed ff ff       	call   0x403f4d
4051aa:	68 ec 03 00 00       	push   $0x3ec
4051af:	ff 75 08             	push   0x8(%ebp)
4051b2:	ff d7                	call   *%edi
4051b4:	68 00 00 30 75       	push   $0x75300000
4051b9:	8b f8                	mov    %eax,%edi
4051bb:	53                   	push   %ebx
4051bc:	68 01 04 00 00       	push   $0x401
4051c1:	57                   	push   %edi
4051c2:	ff d6                	call   *%esi
4051c4:	f6 05 b8 3e 42 00 04 	testb  $0x4,0x423eb8
4051cb:	0f 84 ee 01 00 00    	je     0x4053bf
4051d1:	ff 75 10             	push   0x10(%ebp)
4051d4:	53                   	push   %ebx
4051d5:	68 09 04 00 00       	push   $0x409
4051da:	57                   	push   %edi
4051db:	ff d6                	call   *%esi
4051dd:	ff 75 0c             	push   0xc(%ebp)
4051e0:	53                   	push   %ebx
4051e1:	68 01 20 00 00       	push   $0x2001
4051e6:	57                   	push   %edi
4051e7:	ff d6                	call   *%esi
4051e9:	e9 d1 01 00 00       	jmp    0x4053bf
4051ee:	81 7d 0c 05 04 00 00 	cmpl   $0x405,0xc(%ebp)
4051f5:	75 28                	jne    0x40521f
4051f7:	8d 45 f8             	lea    -0x8(%ebp),%eax
4051fa:	50                   	push   %eax
4051fb:	53                   	push   %ebx
4051fc:	68 ec 03 00 00       	push   $0x3ec
405201:	ff 75 08             	push   0x8(%ebp)
405204:	ff 15 2c 72 40 00    	call   *0x40722c
40520a:	50                   	push   %eax
40520b:	68 d6 4f 40 00       	push   $0x404fd6
405210:	53                   	push   %ebx
405211:	53                   	push   %ebx
405212:	ff 15 cc 70 40 00    	call   *0x4070cc
405218:	50                   	push   %eax
405219:	ff 15 ec 70 40 00    	call   *0x4070ec
40521f:	81 7d 0c 11 01 00 00 	cmpl   $0x111,0xc(%ebp)
405226:	8b 35 60 72 40 00    	mov    0x407260,%esi
40522c:	75 1c                	jne    0x40524a
40522e:	66 81 7d 10 03 04    	cmpw   $0x403,0x10(%ebp)
405234:	75 36                	jne    0x40526c
405236:	53                   	push   %ebx
405237:	ff 35 70 36 42 00    	push   0x423670
40523d:	ff d6                	call   *%esi
40523f:	6a 08                	push   $0x8
405241:	57                   	push   %edi
405242:	ff d6                	call   *%esi
405244:	57                   	push   %edi
405245:	e8 03 ed ff ff       	call   0x403f4d
40524a:	81 7d 0c 04 04 00 00 	cmpl   $0x404,0xc(%ebp)
405251:	75 55                	jne    0x4052a8
405253:	39 1d 6c 36 42 00    	cmp    %ebx,0x42366c
405259:	74 26                	je     0x405281
40525b:	6a 78                	push   $0x78
40525d:	c7 05 68 f8 41 00 02 	movl   $0x2,0x41f868
405264:	00 00 00
405267:	e8 85 ec ff ff       	call   0x403ef1
40526c:	ff 75 14             	push   0x14(%ebp)
40526f:	ff 75 10             	push   0x10(%ebp)
405272:	ff 75 0c             	push   0xc(%ebp)
405275:	e8 05 ed ff ff       	call   0x403f7f
40527a:	5f                   	pop    %edi
40527b:	5e                   	pop    %esi
40527c:	5b                   	pop    %ebx
40527d:	c9                   	leave
40527e:	c2 10 00             	ret    $0x10
405281:	6a 08                	push   $0x8
405283:	ff 35 a8 3e 42 00    	push   0x423ea8
405289:	ff d6                	call   *%esi
40528b:	39 1d 2c 3f 42 00    	cmp    %ebx,0x423f2c
405291:	75 0e                	jne    0x4052a1
405293:	a1 70 fc 41 00       	mov    0x41fc70,%eax
405298:	53                   	push   %ebx
405299:	ff 70 34             	push   0x34(%eax)
40529c:	e8 63 fc ff ff       	call   0x404f04
4052a1:	6a 01                	push   $0x1
4052a3:	e8 49 ec ff ff       	call   0x403ef1
4052a8:	83 7d 0c 7b          	cmpl   $0x7b,0xc(%ebp)
4052ac:	75 be                	jne    0x40526c
4052ae:	39 7d 10             	cmp    %edi,0x10(%ebp)
4052b1:	75 b9                	jne    0x40526c
4052b3:	53                   	push   %ebx
4052b4:	53                   	push   %ebx
4052b5:	68 04 10 00 00       	push   $0x1004
4052ba:	57                   	push   %edi
4052bb:	ff 15 44 72 40 00    	call   *0x407244
4052c1:	3b c3                	cmp    %ebx,%eax
4052c3:	89 45 0c             	mov    %eax,0xc(%ebp)
4052c6:	0f 8e f3 00 00 00    	jle    0x4053bf
4052cc:	ff 15 c8 71 40 00    	call   *0x4071c8
4052d2:	6a e1                	push   $0xffffffe1
4052d4:	53                   	push   %ebx
4052d5:	8b f0                	mov    %eax,%esi
4052d7:	e8 ac 08 00 00       	call   0x405b88
4052dc:	50                   	push   %eax
4052dd:	6a 01                	push   $0x1
4052df:	53                   	push   %ebx
4052e0:	56                   	push   %esi
4052e1:	ff 15 c4 71 40 00    	call   *0x4071c4
4052e7:	8b 45 14             	mov    0x14(%ebp),%eax
4052ea:	83 f8 ff             	cmp    $0xffffffff,%eax
4052ed:	75 13                	jne    0x405302
4052ef:	8d 45 e8             	lea    -0x18(%ebp),%eax
4052f2:	50                   	push   %eax
4052f3:	57                   	push   %edi
4052f4:	ff 15 74 71 40 00    	call   *0x407174
4052fa:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4052fd:	8b 45 ec             	mov    -0x14(%ebp),%eax
405300:	eb 09                	jmp    0x40530b
405302:	0f bf c8             	movswl %ax,%ecx
405305:	c1 e8 10             	shr    $0x10,%eax
405308:	0f bf c0             	movswl %ax,%eax
40530b:	53                   	push   %ebx
40530c:	ff 75 08             	push   0x8(%ebp)
40530f:	53                   	push   %ebx
405310:	50                   	push   %eax
405311:	51                   	push   %ecx
405312:	68 80 01 00 00       	push   $0x180
405317:	56                   	push   %esi
405318:	ff 15 c0 71 40 00    	call   *0x4071c0
40531e:	33 f6                	xor    %esi,%esi
405320:	46                   	inc    %esi
405321:	3b c6                	cmp    %esi,%eax
405323:	0f 85 96 00 00 00    	jne    0x4053bf
405329:	8b 45 0c             	mov    0xc(%ebp),%eax
40532c:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40532f:	c7 45 d4 a0 04 42 00 	movl   $0x4204a0,-0x2c(%ebp)
405336:	c7 45 d8 ff 0f 00 00 	movl   $0xfff,-0x28(%ebp)
40533d:	89 45 08             	mov    %eax,0x8(%ebp)
405340:	bf 2d 10 00 00       	mov    $0x102d,%edi
405345:	ff 4d 08             	decl   0x8(%ebp)
405348:	8d 45 c0             	lea    -0x40(%ebp),%eax
40534b:	50                   	push   %eax
40534c:	ff 75 08             	push   0x8(%ebp)
40534f:	57                   	push   %edi
405350:	ff 75 fc             	push   -0x4(%ebp)
405353:	ff 15 44 72 40 00    	call   *0x407244
405359:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40535c:	8d 74 06 02          	lea    0x2(%esi,%eax,1),%esi
405360:	75 e3                	jne    0x405345
405362:	53                   	push   %ebx
405363:	ff 15 20 72 40 00    	call   *0x407220
405369:	ff 15 b8 71 40 00    	call   *0x4071b8
40536f:	56                   	push   %esi
405370:	6a 42                	push   $0x42
405372:	ff 15 00 71 40 00    	call   *0x407100
405378:	50                   	push   %eax
405379:	89 45 08             	mov    %eax,0x8(%ebp)
40537c:	ff 15 c8 70 40 00    	call   *0x4070c8
405382:	8b f0                	mov    %eax,%esi
405384:	8d 45 c0             	lea    -0x40(%ebp),%eax
405387:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40538a:	50                   	push   %eax
40538b:	53                   	push   %ebx
40538c:	57                   	push   %edi
40538d:	ff 75 fc             	push   -0x4(%ebp)
405390:	ff 15 44 72 40 00    	call   *0x407244
405396:	03 f0                	add    %eax,%esi
405398:	66 c7 06 0d 0a       	movw   $0xa0d,(%esi)
40539d:	46                   	inc    %esi
40539e:	46                   	inc    %esi
40539f:	43                   	inc    %ebx
4053a0:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
4053a3:	7c df                	jl     0x405384
4053a5:	ff 75 08             	push   0x8(%ebp)
4053a8:	ff 15 c4 70 40 00    	call   *0x4070c4
4053ae:	ff 75 08             	push   0x8(%ebp)
4053b1:	6a 01                	push   $0x1
4053b3:	ff 15 b4 71 40 00    	call   *0x4071b4
4053b9:	ff 15 b0 71 40 00    	call   *0x4071b0
4053bf:	33 c0                	xor    %eax,%eax
4053c1:	e9 b4 fe ff ff       	jmp    0x40527a
4053c6:	55                   	push   %ebp
4053c7:	8b ec                	mov    %esp,%ebp
4053c9:	83 ec 10             	sub    $0x10,%esp
4053cc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4053cf:	c7 05 a8 24 42 00 44 	movl   $0x44,0x4224a8
4053d6:	00 00 00
4053d9:	50                   	push   %eax
4053da:	33 c0                	xor    %eax,%eax
4053dc:	68 a8 24 42 00       	push   $0x4224a8
4053e1:	50                   	push   %eax
4053e2:	50                   	push   %eax
4053e3:	50                   	push   %eax
4053e4:	50                   	push   %eax
4053e5:	50                   	push   %eax
4053e6:	50                   	push   %eax
4053e7:	ff 75 08             	push   0x8(%ebp)
4053ea:	50                   	push   %eax
4053eb:	ff 15 d0 70 40 00    	call   *0x4070d0
4053f1:	85 c0                	test   %eax,%eax
4053f3:	74 0c                	je     0x405401
4053f5:	ff 75 f4             	push   -0xc(%ebp)
4053f8:	ff 15 ec 70 40 00    	call   *0x4070ec
4053fe:	8b 45 f0             	mov    -0x10(%ebp),%eax
405401:	c9                   	leave
405402:	c2 04 00             	ret    $0x4
405405:	ff 25 d0 71 40 00    	jmp    *0x4071d0
40540b:	68 00 04 00 00       	push   $0x400
405410:	ff 74 24 0c          	push   0xc(%esp)
405414:	ff 74 24 0c          	push   0xc(%esp)
405418:	ff 35 78 36 42 00    	push   0x423678
40541e:	ff 15 d4 71 40 00    	call   *0x4071d4
405424:	c2 08 00             	ret    $0x8
405427:	8b 44 24 08          	mov    0x8(%esp),%eax
40542b:	8b c8                	mov    %eax,%ecx
40542d:	81 e1 ff ff 1f 00    	and    $0x1fffff,%ecx
405433:	83 3d 40 3f 42 00 00 	cmpl   $0x0,0x423f40
40543a:	74 05                	je     0x405441
40543c:	c1 e8 15             	shr    $0x15,%eax
40543f:	75 47                	jne    0x405488
405441:	83 3d 48 3f 42 00 00 	cmpl   $0x0,0x423f48
405448:	74 06                	je     0x405450
40544a:	81 f1 00 00 18 00    	xor    $0x180000,%ecx
405450:	a1 a8 3e 42 00       	mov    0x423ea8,%eax
405455:	68 f8 91 40 00       	push   $0x4091f8
40545a:	a3 fc 91 40 00       	mov    %eax,0x4091fc
40545f:	a1 a0 3e 42 00       	mov    0x423ea0,%eax
405464:	a3 00 92 40 00       	mov    %eax,0x409200
405469:	8b 44 24 08          	mov    0x8(%esp),%eax
40546d:	a3 04 92 40 00       	mov    %eax,0x409204
405472:	c7 05 08 92 40 00 a0 	movl   $0x4236a0,0x409208
405479:	36 42 00
40547c:	89 0d 0c 92 40 00    	mov    %ecx,0x40920c
405482:	ff 15 d8 71 40 00    	call   *0x4071d8
405488:	c2 08 00             	ret    $0x8
40548b:	55                   	push   %ebp
40548c:	8b ec                	mov    %esp,%ebp
40548e:	81 ec 48 01 00 00    	sub    $0x148,%esp
405494:	56                   	push   %esi
405495:	57                   	push   %edi
405496:	8b 7d 08             	mov    0x8(%ebp),%edi
405499:	57                   	push   %edi
40549a:	e8 9b 02 00 00       	call   0x40573a
40549f:	f6 45 0c 08          	testb  $0x8,0xc(%ebp)
4054a3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4054a6:	74 17                	je     0x4054bf
4054a8:	57                   	push   %edi
4054a9:	ff 15 44 71 40 00    	call   *0x407144
4054af:	f7 d8                	neg    %eax
4054b1:	1b c0                	sbb    %eax,%eax
4054b3:	40                   	inc    %eax
4054b4:	01 05 28 3f 42 00    	add    %eax,0x423f28
4054ba:	e9 94 01 00 00       	jmp    0x405653
4054bf:	53                   	push   %ebx
4054c0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4054c3:	83 e3 01             	and    $0x1,%ebx
4054c6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4054c9:	74 12                	je     0x4054dd
4054cb:	85 c0                	test   %eax,%eax
4054cd:	0f 84 2b 01 00 00    	je     0x4055fe
4054d3:	f6 45 0c 02          	testb  $0x2,0xc(%ebp)
4054d7:	0f 84 21 01 00 00    	je     0x4055fe
4054dd:	be a8 14 42 00       	mov    $0x4214a8,%esi
4054e2:	57                   	push   %edi
4054e3:	56                   	push   %esi
4054e4:	e8 7d 06 00 00       	call   0x405b66
4054e9:	85 db                	test   %ebx,%ebx
4054eb:	74 0d                	je     0x4054fa
4054ed:	68 48 93 40 00       	push   $0x409348
4054f2:	56                   	push   %esi
4054f3:	e8 8a 06 00 00       	call   0x405b82
4054f8:	eb 06                	jmp    0x405500
4054fa:	57                   	push   %edi
4054fb:	e8 a0 01 00 00       	call   0x4056a0
405500:	80 3f 00             	cmpb   $0x0,(%edi)
405503:	75 09                	jne    0x40550e
405505:	80 3d a8 14 42 00 5c 	cmpb   $0x5c,0x4214a8
40550c:	75 0b                	jne    0x405519
40550e:	68 10 90 40 00       	push   $0x409010
405513:	57                   	push   %edi
405514:	e8 69 06 00 00       	call   0x405b82
405519:	57                   	push   %edi
40551a:	e8 5d 06 00 00       	call   0x405b7c
40551f:	8b d8                	mov    %eax,%ebx
405521:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
405527:	50                   	push   %eax
405528:	56                   	push   %esi
405529:	03 df                	add    %edi,%ebx
40552b:	ff 15 40 71 40 00    	call   *0x407140
405531:	83 f8 ff             	cmp    $0xffffffff,%eax
405534:	89 45 08             	mov    %eax,0x8(%ebp)
405537:	0f 84 b7 00 00 00    	je     0x4055f4
40553d:	8d 85 e4 fe ff ff    	lea    -0x11c(%ebp),%eax
405543:	6a 3f                	push   $0x3f
405545:	50                   	push   %eax
405546:	8d b5 e4 fe ff ff    	lea    -0x11c(%ebp),%esi
40554c:	e8 33 01 00 00       	call   0x405684
405551:	80 38 00             	cmpb   $0x0,(%eax)
405554:	74 09                	je     0x40555f
405556:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
40555a:	74 03                	je     0x40555f
40555c:	8d 75 e8             	lea    -0x18(%ebp),%esi
40555f:	80 3e 2e             	cmpb   $0x2e,(%esi)
405562:	75 11                	jne    0x405575
405564:	8a 46 01             	mov    0x1(%esi),%al
405567:	84 c0                	test   %al,%al