405360:	74 01                	je     0x405363
405362:	c3                   	ret
405363:	6a 03                	push   $0x3
405365:	e9 2c 8b 03 00       	jmp    0x43de96
40536a:	6a 02                	push   $0x2
40536c:	e9 25 8b 03 00       	jmp    0x43de96
405371:	56                   	push   %esi
405372:	8b f1                	mov    %ecx,%esi
405374:	8b 46 04             	mov    0x4(%esi),%eax
405377:	ff 08                	decl   (%eax)
405379:	75 11                	jne    0x40538c
40537b:	ff 76 04             	push   0x4(%esi)
40537e:	e8 e9 bc 01 00       	call   0x42106c
405383:	ff 36                	push   (%esi)
405385:	e8 e2 bc 01 00       	call   0x42106c
40538a:	59                   	pop    %ecx
40538b:	59                   	pop    %ecx
40538c:	5e                   	pop    %esi
40538d:	c3                   	ret
40538e:	55                   	push   %ebp
40538f:	8b ec                	mov    %esp,%ebp
405391:	8b 45 08             	mov    0x8(%ebp),%eax
405394:	56                   	push   %esi
405395:	8b f1                	mov    %ecx,%esi
405397:	6a 04                	push   $0x4
405399:	89 06                	mov    %eax,(%esi)
40539b:	e8 56 bc 01 00       	call   0x420ff6
4053a0:	59                   	pop    %ecx
4053a1:	85 c0                	test   %eax,%eax
4053a3:	74 10                	je     0x4053b5
4053a5:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4053ab:	89 46 04             	mov    %eax,0x4(%esi)
4053ae:	8b c6                	mov    %esi,%eax
4053b0:	5e                   	pop    %esi
4053b1:	5d                   	pop    %ebp
4053b2:	c2 04 00             	ret    $0x4
4053b5:	33 c0                	xor    %eax,%eax
4053b7:	eb f2                	jmp    0x4053ab
4053b9:	56                   	push   %esi
4053ba:	8b f1                	mov    %ecx,%esi
4053bc:	56                   	push   %esi
4053bd:	e8 98 e4 01 00       	call   0x42385a
4053c2:	59                   	pop    %ecx
4053c3:	85 c0                	test   %eax,%eax
4053c5:	74 0b                	je     0x4053d2
4053c7:	56                   	push   %esi
4053c8:	e8 b0 e4 01 00       	call   0x42387d
4053cd:	59                   	pop    %ecx
4053ce:	85 c0                	test   %eax,%eax
4053d0:	75 04                	jne    0x4053d6
4053d2:	33 c0                	xor    %eax,%eax
4053d4:	5e                   	pop    %esi
4053d5:	c3                   	ret
4053d6:	33 c0                	xor    %eax,%eax
4053d8:	40                   	inc    %eax
4053d9:	5e                   	pop    %esi
4053da:	c3                   	ret
4053db:	f7 41 28 00 80 00 00 	testl  $0x8000,0x28(%ecx)
4053e2:	74 0d                	je     0x4053f1
4053e4:	8b 41 30             	mov    0x30(%ecx),%eax
4053e7:	6a 00                	push   $0x0
4053e9:	99                   	cltd
4053ea:	52                   	push   %edx
4053eb:	50                   	push   %eax
4053ec:	e8 5d 08 00 00       	call   0x405c4e
4053f1:	c3                   	ret
4053f2:	cc                   	int3
4053f3:	cc                   	int3
4053f4:	cc                   	int3
4053f5:	cc                   	int3
4053f6:	cc                   	int3
4053f7:	cc                   	int3
4053f8:	cc                   	int3
4053f9:	cc                   	int3
4053fa:	cc                   	int3
4053fb:	cc                   	int3
4053fc:	cc                   	int3
4053fd:	cc                   	int3
4053fe:	cc                   	int3
4053ff:	cc                   	int3
405400:	55                   	push   %ebp
405401:	8b ec                	mov    %esp,%ebp
405403:	83 ec 10             	sub    $0x10,%esp
405406:	53                   	push   %ebx
405407:	8b 5d 08             	mov    0x8(%ebp),%ebx
40540a:	56                   	push   %esi
40540b:	57                   	push   %edi
40540c:	8b f9                	mov    %ecx,%edi
40540e:	8b cb                	mov    %ebx,%ecx
405410:	e8 1a 06 00 00       	call   0x405a2f
405415:	32 c0                	xor    %al,%al
405417:	88 45 ff             	mov    %al,-0x1(%ebp)
40541a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
405420:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405424:	0f 84 6e 8a 03 00    	je     0x43de98
40542a:	33 f6                	xor    %esi,%esi
40542c:	8d 64 24 00          	lea    0x0(%esp),%esp
405430:	8b 47 0c             	mov    0xc(%edi),%eax
405433:	3b 47 08             	cmp    0x8(%edi),%eax
405436:	0f 84 dd 00 00 00    	je     0x405519
40543c:	8b 4f 0c             	mov    0xc(%edi),%ecx
40543f:	8b 47 04             	mov    0x4(%edi),%eax
405442:	8a 04 01             	mov    (%ecx,%eax,1),%al
405445:	88 44 35 0b          	mov    %al,0xb(%ebp,%esi,1)
405449:	46                   	inc    %esi
40544a:	8d 41 01             	lea    0x1(%ecx),%eax
40544d:	89 47 0c             	mov    %eax,0xc(%edi)
405450:	83 fe 01             	cmp    $0x1,%esi
405453:	72 db                	jb     0x405430
405455:	01 77 10             	add    %esi,0x10(%edi)
405458:	83 57 14 00          	adcl   $0x0,0x14(%edi)
40545c:	85 f6                	test   %esi,%esi
40545e:	0f 84 e3 00 00 00    	je     0x405547
405464:	8a 45 0b             	mov    0xb(%ebp),%al
405467:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40546b:	3c 0d                	cmp    $0xd,%al
40546d:	74 39                	je     0x4054a8
40546f:	3c 0a                	cmp    $0xa,%al
405471:	74 50                	je     0x4054c3
405473:	8b 4b 0c             	mov    0xc(%ebx),%ecx
405476:	8b 01                	mov    (%ecx),%eax
405478:	83 f8 01             	cmp    $0x1,%eax
40547b:	0f 8f 46 8a 03 00    	jg     0x43dec7
405481:	8b 43 04             	mov    0x4(%ebx),%eax
405484:	83 c0 02             	add    $0x2,%eax
405487:	39 43 08             	cmp    %eax,0x8(%ebx)
40548a:	72 42                	jb     0x4054ce
40548c:	8b 53 04             	mov    0x4(%ebx),%edx
40548f:	8b 0b                	mov    (%ebx),%ecx
405491:	8a 45 0b             	mov    0xb(%ebp),%al
405494:	88 04 0a             	mov    %al,(%edx,%ecx,1)
405497:	ff 43 04             	incl   0x4(%ebx)
40549a:	8b 4b 04             	mov    0x4(%ebx),%ecx
40549d:	8b 03                	mov    (%ebx),%eax
40549f:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
4054a3:	e9 78 ff ff ff       	jmp    0x405420
4054a8:	6a 01                	push   $0x1
4054aa:	8d 45 0b             	lea    0xb(%ebp),%eax
4054ad:	8b cf                	mov    %edi,%ecx
4054af:	50                   	push   %eax
4054b0:	e8 6b 08 00 00       	call   0x405d20
4054b5:	85 c0                	test   %eax,%eax
4054b7:	74 0a                	je     0x4054c3
4054b9:	80 7d 0b 0a          	cmpb   $0xa,0xb(%ebp)
4054bd:	0f 85 f9 8a 03 00    	jne    0x43dfbc
4054c3:	5f                   	pop    %edi
4054c4:	5e                   	pop    %esi
4054c5:	b0 01                	mov    $0x1,%al
4054c7:	5b                   	pop    %ebx
4054c8:	8b e5                	mov    %ebp,%esp
4054ca:	5d                   	pop    %ebp
4054cb:	c2 04 00             	ret    $0x4
4054ce:	3d c2 41 00 00       	cmp    $0x41c2,%eax
4054d3:	0f 83 21 8a 03 00    	jae    0x43defa
4054d9:	03 c0                	add    %eax,%eax
4054db:	89 43 08             	mov    %eax,0x8(%ebx)
4054de:	85 c0                	test   %eax,%eax
4054e0:	74 79                	je     0x40555b
4054e2:	83 c0 0f             	add    $0xf,%eax
4054e5:	83 e0 f0             	and    $0xfffffff0,%eax
4054e8:	50                   	push   %eax
4054e9:	89 43 08             	mov    %eax,0x8(%ebx)
4054ec:	e8 05 bb 01 00       	call   0x420ff6
4054f1:	8b f0                	mov    %eax,%esi
4054f3:	83 c4 04             	add    $0x4,%esp
4054f6:	8b 03                	mov    (%ebx),%eax
4054f8:	85 c0                	test   %eax,%eax
4054fa:	74 16                	je     0x405512
4054fc:	8b 4b 04             	mov    0x4(%ebx),%ecx
4054ff:	41                   	inc    %ecx
405500:	51                   	push   %ecx
405501:	50                   	push   %eax
405502:	56                   	push   %esi
405503:	e8 78 bb 01 00       	call   0x421080
405508:	ff 33                	push   (%ebx)
40550a:	e8 5d bb 01 00       	call   0x42106c
40550f:	83 c4 10             	add    $0x10,%esp
405512:	89 33                	mov    %esi,(%ebx)
405514:	e9 73 ff ff ff       	jmp    0x40548c
405519:	6a 00                	push   $0x0
40551b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40551e:	50                   	push   %eax
40551f:	68 00 00 01 00       	push   $0x10000
405524:	ff 77 04             	push   0x4(%edi)
405527:	ff 37                	push   (%edi)
405529:	ff 15 e0 f1 48 00    	call   *0x48f1e0
40552f:	85 c0                	test   %eax,%eax
405531:	0f 84 1e ff ff ff    	je     0x405455
405537:	8b 45 f8             	mov    -0x8(%ebp),%eax
40553a:	85 c0                	test   %eax,%eax
40553c:	0f 84 13 ff ff ff    	je     0x405455
405542:	e9 71 89 03 00       	jmp    0x43deb8
405547:	8a 45 ff             	mov    -0x1(%ebp),%al
40554a:	84 c0                	test   %al,%al
40554c:	0f 85 71 ff ff ff    	jne    0x4054c3
405552:	5f                   	pop    %edi
405553:	5e                   	pop    %esi
405554:	5b                   	pop    %ebx
405555:	8b e5                	mov    %ebp,%esp
405557:	5d                   	pop    %ebp
405558:	c2 04 00             	ret    $0x4
40555b:	b8 10 00 00 00       	mov    $0x10,%eax
405560:	eb 86                	jmp    0x4054e8
405562:	55                   	push   %ebp
405563:	8b ec                	mov    %esp,%ebp
405565:	83 ec 14             	sub    $0x14,%esp
405568:	53                   	push   %ebx
405569:	56                   	push   %esi
40556a:	8b f1                	mov    %ecx,%esi
40556c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40556f:	e8 a4 06 00 00       	call   0x405c18
405574:	8d 45 ec             	lea    -0x14(%ebp),%eax
405577:	8b ce                	mov    %esi,%ecx
405579:	50                   	push   %eax
40557a:	e8 81 fe ff ff       	call   0x405400
40557f:	84 c0                	test   %al,%al
405581:	74 20                	je     0x4055a3
405583:	ff 75 08             	push   0x8(%ebp)
405586:	8d 45 ec             	lea    -0x14(%ebp),%eax
405589:	50                   	push   %eax
40558a:	e8 32 2c 00 00       	call   0x4081c1
40558f:	b3 01                	mov    $0x1,%bl
405591:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405594:	e8 cb 04 00 00       	call   0x405a64
405599:	5e                   	pop    %esi
40559a:	8a c3                	mov    %bl,%al
40559c:	5b                   	pop    %ebx
40559d:	8b e5                	mov    %ebp,%esp
40559f:	5d                   	pop    %ebp
4055a0:	c2 04 00             	ret    $0x4
4055a3:	32 db                	xor    %bl,%bl
4055a5:	eb ea                	jmp    0x405591
4055a7:	55                   	push   %ebp
4055a8:	8b ec                	mov    %esp,%ebp
4055aa:	83 ec 14             	sub    $0x14,%esp
4055ad:	53                   	push   %ebx
4055ae:	56                   	push   %esi
4055af:	8b f1                	mov    %ecx,%esi
4055b1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4055b4:	e8 5f 06 00 00       	call   0x405c18
4055b9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4055bc:	8b ce                	mov    %esi,%ecx
4055be:	50                   	push   %eax
4055bf:	e8 3c fe ff ff       	call   0x405400
4055c4:	84 c0                	test   %al,%al
4055c6:	74 20                	je     0x4055e8
4055c8:	ff 75 08             	push   0x8(%ebp)
4055cb:	8d 45 ec             	lea    -0x14(%ebp),%eax
4055ce:	50                   	push   %eax
4055cf:	e8 66 23 00 00       	call   0x40793a
4055d4:	b3 01                	mov    $0x1,%bl
4055d6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4055d9:	e8 86 04 00 00       	call   0x405a64
4055de:	5e                   	pop    %esi
4055df:	8a c3                	mov    %bl,%al
4055e1:	5b                   	pop    %ebx
4055e2:	8b e5                	mov    %ebp,%esp
4055e4:	5d                   	pop    %ebp
4055e5:	c2 04 00             	ret    $0x4
4055e8:	32 db                	xor    %bl,%bl
4055ea:	eb ea                	jmp    0x4055d6
4055ec:	55                   	push   %ebp
4055ed:	8b ec                	mov    %esp,%ebp
4055ef:	51                   	push   %ecx
4055f0:	8b 41 2c             	mov    0x2c(%ecx),%eax
4055f3:	83 f8 04             	cmp    $0x4,%eax
4055f6:	75 0d                	jne    0x405605
4055f8:	ff 75 08             	push   0x8(%ebp)
4055fb:	e8 62 ff ff ff       	call   0x405562
405600:	59                   	pop    %ecx
405601:	5d                   	pop    %ebp
405602:	c2 04 00             	ret    $0x4
405605:	83 f8 05             	cmp    $0x5,%eax
405608:	74 1e                	je     0x405628
40560a:	83 f8 06             	cmp    $0x6,%eax
40560d:	74 19                	je     0x405628
40560f:	83 f8 07             	cmp    $0x7,%eax
405612:	74 14                	je     0x405628
405614:	83 f8 08             	cmp    $0x8,%eax
405617:	74 0f                	je     0x405628
405619:	83 f8 03             	cmp    $0x3,%eax
40561c:	74 da                	je     0x4055f8
40561e:	ff 75 08             	push   0x8(%ebp)
405621:	e8 81 ff ff ff       	call   0x4055a7
405626:	eb d8                	jmp    0x405600
405628:	ff 75 08             	push   0x8(%ebp)
40562b:	e8 af de 05 00       	call   0x4634df
405630:	eb ce                	jmp    0x405600
405632:	55                   	push   %ebp
405633:	8b ec                	mov    %esp,%ebp
405635:	51                   	push   %ecx
405636:	53                   	push   %ebx
405637:	56                   	push   %esi
405638:	57                   	push   %edi
405639:	8b f9                	mov    %ecx,%edi
40563b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40563e:	e8 ec 03 00 00       	call   0x405a2f
405643:	8b 75 0c             	mov    0xc(%ebp),%esi
405646:	33 db                	xor    %ebx,%ebx
405648:	88 5d ff             	mov    %bl,-0x1(%ebp)
40564b:	39 1e                	cmp    %ebx,(%esi)
40564d:	76 25                	jbe    0x405674
40564f:	6a 01                	push   $0x1
405651:	8d 45 0c             	lea    0xc(%ebp),%eax
405654:	8b cf                	mov    %edi,%ecx
405656:	50                   	push   %eax
405657:	e8 c4 06 00 00       	call   0x405d20
40565c:	85 c0                	test   %eax,%eax
40565e:	74 21                	je     0x405681
405660:	ff 75 0c             	push   0xc(%ebp)
405663:	8b 4d 08             	mov    0x8(%ebp),%ecx
405666:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40566a:	e8 6b 05 00 00       	call   0x405bda
40566f:	43                   	inc    %ebx
405670:	3b 1e                	cmp    (%esi),%ebx
405672:	72 db                	jb     0x40564f
405674:	89 1e                	mov    %ebx,(%esi)
405676:	b0 01                	mov    $0x1,%al
405678:	5f                   	pop    %edi
405679:	5e                   	pop    %esi
40567a:	5b                   	pop    %ebx
40567b:	8b e5                	mov    %ebp,%esp
40567d:	5d                   	pop    %ebp
40567e:	c2 08 00             	ret    $0x8
405681:	8a 45 ff             	mov    -0x1(%ebp),%al
405684:	84 c0                	test   %al,%al
405686:	75 ec                	jne    0x405674
405688:	eb ee                	jmp    0x405678
40568a:	55                   	push   %ebp
40568b:	8b ec                	mov    %esp,%ebp
40568d:	83 ec 10             	sub    $0x10,%esp
405690:	53                   	push   %ebx
405691:	56                   	push   %esi
405692:	8b f1                	mov    %ecx,%esi
405694:	8d 4d f0             	lea    -0x10(%ebp),%ecx
405697:	e8 7c 05 00 00       	call   0x405c18
40569c:	ff 75 0c             	push   0xc(%ebp)
40569f:	8d 45 f0             	lea    -0x10(%ebp),%eax
4056a2:	8b ce                	mov    %esi,%ecx
4056a4:	50                   	push   %eax
4056a5:	e8 88 ff ff ff       	call   0x405632
4056aa:	84 c0                	test   %al,%al
4056ac:	74 20                	je     0x4056ce
4056ae:	ff 75 08             	push   0x8(%ebp)
4056b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
4056b4:	50                   	push   %eax
4056b5:	e8 07 2b 00 00       	call   0x4081c1
4056ba:	b3 01                	mov    $0x1,%bl
4056bc:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4056bf:	e8 a0 03 00 00       	call   0x405a64