405268:	8d 47 01             	lea    0x1(%edi),%eax
40526b:	50                   	push   %eax
40526c:	56                   	push   %esi
40526d:	e8 b8 e2 ff ff       	call   0x40352a
405272:	59                   	pop    %ecx
405273:	59                   	pop    %ecx
405274:	eb 07                	jmp    0x40527d
405276:	53                   	push   %ebx
405277:	50                   	push   %eax
405278:	e8 10 ae 00 00       	call   0x41008d
40527d:	8b 45 f8             	mov    -0x8(%ebp),%eax
405280:	5f                   	pop    %edi
405281:	89 03                	mov    %eax,(%ebx)
405283:	8b c3                	mov    %ebx,%eax
405285:	5e                   	pop    %esi
405286:	5b                   	pop    %ebx
405287:	c9                   	leave
405288:	c2 10 00             	ret    $0x10
40528b:	e8 71 84 01 00       	call   0x41d701
405290:	cc                   	int3
405291:	55                   	push   %ebp
405292:	8b ec                	mov    %esp,%ebp
405294:	51                   	push   %ecx
405295:	51                   	push   %ecx
405296:	8b 55 08             	mov    0x8(%ebp),%edx
405299:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40529e:	53                   	push   %ebx
40529f:	8b d9                	mov    %ecx,%ebx
4052a1:	56                   	push   %esi
4052a2:	57                   	push   %edi
4052a3:	8b 4b 10             	mov    0x10(%ebx),%ecx
4052a6:	2b c1                	sub    %ecx,%eax
4052a8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4052ab:	3b c2                	cmp    %edx,%eax
4052ad:	72 66                	jb     0x405315
4052af:	8b 43 14             	mov    0x14(%ebx),%eax
4052b2:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
4052b5:	57                   	push   %edi
4052b6:	8b cb                	mov    %ebx,%ecx
4052b8:	89 45 08             	mov    %eax,0x8(%ebp)
4052bb:	e8 b5 19 01 00       	call   0x416c75
4052c0:	8b f0                	mov    %eax,%esi
4052c2:	8d 4e 01             	lea    0x1(%esi),%ecx
4052c5:	51                   	push   %ecx
4052c6:	e8 bd d3 ff ff       	call   0x402688
4052cb:	59                   	pop    %ecx
4052cc:	ff 75 14             	push   0x14(%ebp)
4052cf:	89 7b 10             	mov    %edi,0x10(%ebx)
4052d2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4052d5:	ff 75 10             	push   0x10(%ebp)
4052d8:	8b 7d 08             	mov    0x8(%ebp),%edi
4052db:	89 45 f8             	mov    %eax,-0x8(%ebp)
4052de:	89 73 14             	mov    %esi,0x14(%ebx)
4052e1:	ff 75 fc             	push   -0x4(%ebp)
4052e4:	83 ff 10             	cmp    $0x10,%edi
4052e7:	72 17                	jb     0x405300
4052e9:	8b 33                	mov    (%ebx),%esi
4052eb:	56                   	push   %esi
4052ec:	50                   	push   %eax
4052ed:	e8 cc ad 00 00       	call   0x4100be
4052f2:	8d 47 01             	lea    0x1(%edi),%eax
4052f5:	50                   	push   %eax
4052f6:	56                   	push   %esi
4052f7:	e8 2e e2 ff ff       	call   0x40352a
4052fc:	59                   	pop    %ecx
4052fd:	59                   	pop    %ecx
4052fe:	eb 07                	jmp    0x405307
405300:	53                   	push   %ebx
405301:	50                   	push   %eax
405302:	e8 b7 ad 00 00       	call   0x4100be
405307:	8b 45 f8             	mov    -0x8(%ebp),%eax
40530a:	5f                   	pop    %edi
40530b:	89 03                	mov    %eax,(%ebx)
40530d:	8b c3                	mov    %ebx,%eax
40530f:	5e                   	pop    %esi
405310:	5b                   	pop    %ebx
405311:	c9                   	leave
405312:	c2 10 00             	ret    $0x10
405315:	e8 e7 83 01 00       	call   0x41d701
40531a:	cc                   	int3
40531b:	55                   	push   %ebp
40531c:	8b ec                	mov    %esp,%ebp
40531e:	51                   	push   %ecx
40531f:	51                   	push   %ecx
405320:	8b 55 08             	mov    0x8(%ebp),%edx
405323:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
405328:	53                   	push   %ebx
405329:	8b d9                	mov    %ecx,%ebx
40532b:	56                   	push   %esi
40532c:	57                   	push   %edi
40532d:	8b 4b 10             	mov    0x10(%ebx),%ecx
405330:	2b c1                	sub    %ecx,%eax
405332:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405335:	3b c2                	cmp    %edx,%eax
405337:	72 6b                	jb     0x4053a4
405339:	8b 43 14             	mov    0x14(%ebx),%eax
40533c:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
40533f:	57                   	push   %edi
405340:	8b cb                	mov    %ebx,%ecx
405342:	89 45 08             	mov    %eax,0x8(%ebp)
405345:	e8 62 19 01 00       	call   0x416cac
40534a:	8b f0                	mov    %eax,%esi
40534c:	8d 4e 01             	lea    0x1(%esi),%ecx
40534f:	51                   	push   %ecx
405350:	8b cb                	mov    %ebx,%ecx
405352:	e8 9e a1 01 00       	call   0x41f4f5
405357:	ff 75 14             	push   0x14(%ebp)
40535a:	89 7b 10             	mov    %edi,0x10(%ebx)
40535d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
405360:	ff 75 10             	push   0x10(%ebp)
405363:	8b 7d 08             	mov    0x8(%ebp),%edi
405366:	89 45 f8             	mov    %eax,-0x8(%ebp)
405369:	89 73 14             	mov    %esi,0x14(%ebx)
40536c:	ff 75 fc             	push   -0x4(%ebp)
40536f:	83 ff 08             	cmp    $0x8,%edi
405372:	72 1b                	jb     0x40538f
405374:	8b 33                	mov    (%ebx),%esi
405376:	56                   	push   %esi
405377:	50                   	push   %eax
405378:	e8 74 ad 00 00       	call   0x4100f1
40537d:	8d 04 7d 02 00 00 00 	lea    0x2(,%edi,2),%eax
405384:	50                   	push   %eax
405385:	56                   	push   %esi
405386:	e8 9f e1 ff ff       	call   0x40352a
40538b:	59                   	pop    %ecx
40538c:	59                   	pop    %ecx
40538d:	eb 07                	jmp    0x405396
40538f:	53                   	push   %ebx
405390:	50                   	push   %eax
405391:	e8 5b ad 00 00       	call   0x4100f1
405396:	8b 45 f8             	mov    -0x8(%ebp),%eax
405399:	5f                   	pop    %edi
40539a:	89 03                	mov    %eax,(%ebx)
40539c:	8b c3                	mov    %ebx,%eax
40539e:	5e                   	pop    %esi
40539f:	5b                   	pop    %ebx
4053a0:	c9                   	leave
4053a1:	c2 10 00             	ret    $0x10
4053a4:	e8 63 83 01 00       	call   0x41d70c
4053a9:	cc                   	int3
4053aa:	6a 48                	push   $0x48
4053ac:	b8 fa a2 48 00       	mov    $0x48a2fa,%eax
4053b1:	e8 94 a6 03 00       	call   0x43fa4a
4053b6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4053b9:	e8 41 62 00 00       	call   0x40b5ff
4053be:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4053c2:	8d 45 ac             	lea    -0x54(%ebp),%eax
4053c5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4053c8:	8b 7d 20             	mov    0x20(%ebp),%edi
4053cb:	8b df                	mov    %edi,%ebx
4053cd:	51                   	push   %ecx
4053ce:	57                   	push   %edi
4053cf:	ff 75 18             	push   0x18(%ebp)
4053d2:	89 7d 20             	mov    %edi,0x20(%ebp)
4053d5:	50                   	push   %eax
4053d6:	ff 75 14             	push   0x14(%ebp)
4053d9:	51                   	push   %ecx
4053da:	e8 25 01 00 00       	call   0x405504
4053df:	83 c4 18             	add    $0x18,%esp
4053e2:	84 c0                	test   %al,%al
4053e4:	0f 84 e0 00 00 00    	je     0x4054ca
4053ea:	8b 75 1c             	mov    0x1c(%ebp),%esi
4053ed:	8b c7                	mov    %edi,%eax
4053ef:	25 00 08 00 00       	and    $0x800,%eax
4053f4:	89 45 ec             	mov    %eax,-0x14(%ebp)
4053f7:	85 c0                	test   %eax,%eax
4053f9:	75 1c                	jne    0x405417
4053fb:	ff 75 0c             	push   0xc(%ebp)
4053fe:	8d 45 e8             	lea    -0x18(%ebp),%eax
405401:	ff 75 c4             	push   -0x3c(%ebp)
405404:	ff 75 c0             	push   -0x40(%ebp)
405407:	50                   	push   %eax
405408:	e8 4e 18 00 00       	call   0x406c5b
40540d:	83 c4 10             	add    $0x10,%esp
405410:	8b 00                	mov    (%eax),%eax
405412:	89 45 0c             	mov    %eax,0xc(%ebp)
405415:	eb 03                	jmp    0x40541a
405417:	8b 45 0c             	mov    0xc(%ebp),%eax
40541a:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40541e:	8b d6                	mov    %esi,%edx
405420:	72 02                	jb     0x405424
405422:	8b 16                	mov    (%esi),%edx
405424:	8b 4e 10             	mov    0x10(%esi),%ecx
405427:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
40542a:	8b ce                	mov    %esi,%ecx
40542c:	72 02                	jb     0x405430
40542e:	8b 0e                	mov    (%esi),%ecx
405430:	53                   	push   %ebx
405431:	52                   	push   %edx
405432:	51                   	push   %ecx
405433:	50                   	push   %eax
405434:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405437:	50                   	push   %eax
405438:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40543b:	e8 70 e7 ff ff       	call   0x403bb0
405440:	6a 0c                	push   $0xc
405442:	59                   	pop    %ecx
405443:	8b 18                	mov    (%eax),%ebx
405445:	8b 45 b8             	mov    -0x48(%ebp),%eax
405448:	2b 45 b4             	sub    -0x4c(%ebp),%eax
40544b:	99                   	cltd
40544c:	f7 f9                	idiv   %ecx
40544e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
405451:	89 5d 0c             	mov    %ebx,0xc(%ebp)
405454:	8b d0                	mov    %eax,%edx
405456:	85 d2                	test   %edx,%edx
405458:	0f 45 4d b4          	cmovne -0x4c(%ebp),%ecx
40545c:	8b 41 04             	mov    0x4(%ecx),%eax
40545f:	89 45 10             	mov    %eax,0x10(%ebp)
405462:	3b 45 14             	cmp    0x14(%ebp),%eax
405465:	74 69                	je     0x4054d0
405467:	f7 c7 00 10 00 00    	test   $0x1000,%edi
40546d:	75 61                	jne    0x4054d0
40546f:	8b 5d 20             	mov    0x20(%ebp),%ebx
405472:	8d 4d d8             	lea    -0x28(%ebp),%ecx
405475:	85 d2                	test   %edx,%edx
405477:	8d 45 d8             	lea    -0x28(%ebp),%eax
40547a:	0f 45 45 b4          	cmovne -0x4c(%ebp),%eax
40547e:	0f 45 4d b4          	cmovne -0x4c(%ebp),%ecx
405482:	8b 11                	mov    (%ecx),%edx
405484:	8b 48 04             	mov    0x4(%eax),%ecx
405487:	8b c3                	mov    %ebx,%eax
405489:	0d 00 01 00 00       	or     $0x100,%eax
40548e:	3b d1                	cmp    %ecx,%edx
405490:	0f 45 d8             	cmovne %eax,%ebx
405493:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
405497:	3b d1                	cmp    %ecx,%edx
405499:	89 5d 20             	mov    %ebx,0x20(%ebp)
40549c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40549f:	b8 00 20 00 00       	mov    $0x2000,%eax
4054a4:	0f 45 45 f0          	cmovne -0x10(%ebp),%eax
4054a8:	51                   	push   %ecx
4054a9:	0b c3                	or     %ebx,%eax
4054ab:	50                   	push   %eax
4054ac:	ff 75 18             	push   0x18(%ebp)
4054af:	8d 45 ac             	lea    -0x54(%ebp),%eax
4054b2:	50                   	push   %eax
4054b3:	ff 75 14             	push   0x14(%ebp)
4054b6:	51                   	push   %ecx
4054b7:	e8 48 00 00 00       	call   0x405504
4054bc:	83 c4 18             	add    $0x18,%esp
4054bf:	84 c0                	test   %al,%al
4054c1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4054c4:	0f 85 2d ff ff ff    	jne    0x4053f7
4054ca:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4054cd:	8b 45 10             	mov    0x10(%ebp),%eax
4054d0:	f7 c7 00 08 00 00    	test   $0x800,%edi
4054d6:	75 13                	jne    0x4054eb
4054d8:	53                   	push   %ebx
4054d9:	ff 75 14             	push   0x14(%ebp)
4054dc:	50                   	push   %eax
4054dd:	8d 45 10             	lea    0x10(%ebp),%eax
4054e0:	50                   	push   %eax
4054e1:	e8 f3 df ff ff       	call   0x4034d9
4054e6:	83 c4 10             	add    $0x10,%esp
4054e9:	8b 18                	mov    (%eax),%ebx
4054eb:	8b 75 08             	mov    0x8(%ebp),%esi
4054ee:	89 1e                	mov    %ebx,(%esi)
4054f0:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4054f4:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4054f7:	e8 2e 7d 01 00       	call   0x41d22a
4054fc:	8b c6                	mov    %esi,%eax
4054fe:	e8 10 a5 03 00       	call   0x43fa13
405503:	c3                   	ret
405504:	68 80 00 00 00       	push   $0x80
405509:	b8 20 a3 48 00       	mov    $0x48a320,%eax
40550e:	e8 37 a5 03 00       	call   0x43fa4a
405513:	8b 45 14             	mov    0x14(%ebp),%eax
405516:	8b 08                	mov    (%eax),%ecx
405518:	85 c9                	test   %ecx,%ecx
40551a:	75 07                	jne    0x405523
40551c:	32 c0                	xor    %al,%al
40551e:	e9 c4 00 00 00       	jmp    0x4055e7
405523:	ff 75 18             	push   0x18(%ebp)
405526:	8b 7d 0c             	mov    0xc(%ebp),%edi
405529:	83 c0 04             	add    $0x4,%eax
40552c:	ff 71 14             	push   0x14(%ecx)
40552f:	33 db                	xor    %ebx,%ebx
405531:	ff 71 1c             	push   0x1c(%ecx)
405534:	51                   	push   %ecx
405535:	50                   	push   %eax
405536:	57                   	push   %edi
405537:	ff 75 08             	push   0x8(%ebp)
40553a:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
405540:	e8 09 54 00 00       	call   0x40a94e
405545:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405548:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40554e:	8b 75 10             	mov    0x10(%ebp),%esi
405551:	53                   	push   %ebx
405552:	56                   	push   %esi
405553:	e8 53 f1 ff ff       	call   0x4046ab
405558:	84 c0                	test   %al,%al
40555a:	75 60                	jne    0x4055bc
40555c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40555f:	3b cf                	cmp    %edi,%ecx
405561:	74 73                	je     0x4055d6
405563:	f6 45 18 40          	testb  $0x40,0x18(%ebp)
405567:	75 6d                	jne    0x4055d6
405569:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40556c:	0d 00 01 00 00       	or     $0x100,%eax
405571:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405574:	25 ff df ff ff       	and    $0xffffdfff,%eax
405579:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40557c:	8d 41 02             	lea    0x2(%ecx),%eax
40557f:	eb 12                	jmp    0x405593
405581:	89 45 c8             	mov    %eax,-0x38(%ebp)
405584:	e8 22 f1 ff ff       	call   0x4046ab
405589:	84 c0                	test   %al,%al
40558b:	75 2f                	jne    0x4055bc
40558d:	8b 45 14             	mov    0x14(%ebp),%eax
405590:	83 c0 02             	add    $0x2,%eax
405593:	53                   	push   %ebx
405594:	57                   	push   %edi
405595:	50                   	push   %eax
405596:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40559c:	e8 b8 70 01 00       	call   0x41c659
4055a1:	89 45 14             	mov    %eax,0x14(%ebp)
4055a4:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
4055aa:	53                   	push   %ebx
4055ab:	56                   	push   %esi
4055ac:	3b c7                	cmp    %edi,%eax
4055ae:	75 d1                	jne    0x405581
4055b0:	89 7d c8             	mov    %edi,-0x38(%ebp)
4055b3:	e8 f3 f0 ff ff       	call   0x4046ab
4055b8:	84 c0                	test   %al,%al
4055ba:	74 1a                	je     0x4055d6
4055bc:	b3 01                	mov    $0x1,%bl
4055be:	85 f6                	test   %esi,%esi
4055c0:	74 14                	je     0x4055d6
4055c2:	8b 45 1c             	mov    0x1c(%ebp),%eax
4055c5:	89 06                	mov    %eax,(%esi)
4055c7:	8b 45 08             	mov    0x8(%ebp),%eax
4055ca:	3b 46 18             	cmp    0x18(%esi),%eax
4055cd:	89 46 14             	mov    %eax,0x14(%esi)
4055d0:	0f 95 c0             	setne  %al
4055d3:	88 46 1c             	mov    %al,0x1c(%esi)
4055d6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4055da:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
4055e0:	e8 b8 7f 00 00       	call   0x40d59d
4055e5:	8a c3                	mov    %bl,%al
4055e7:	e8 27 a4 03 00       	call   0x43fa13
4055ec:	c3                   	ret
4055ed:	68 84 00 00 00       	push   $0x84
4055f2:	b8 49 a3 48 00       	mov    $0x48a349,%eax
4055f7:	e8 4e a4 03 00       	call   0x43fa4a
4055fc:	8b 45 14             	mov    0x14(%ebp),%eax
4055ff:	8b 08                	mov    (%eax),%ecx
405601:	85 c9                	test   %ecx,%ecx
405603:	75 07                	jne    0x40560c
405605:	32 c0                	xor    %al,%al