405344:	74 09                	je     0x40534f
405346:	ff 40 04             	incl   0x4(%eax)
405349:	83 78 04 08          	cmpl   $0x8,0x4(%eax)
40534d:	72 e5                	jb     0x405334
40534f:	8b 48 04             	mov    0x4(%eax),%ecx
405352:	89 04 8d 5c d8 41 00 	mov    %eax,0x41d85c(,%ecx,4)
405359:	8b 40 04             	mov    0x4(%eax),%eax
40535c:	fe 80 84 d8 41 00    	incb   0x41d884(%eax)
405362:	8d 4d fc             	lea    -0x4(%ebp),%ecx
405365:	e8 2d fc ff ff       	call   0x404f97
40536a:	c9                   	leave
40536b:	c3                   	ret
40536c:	56                   	push   %esi
40536d:	8b 74 24 08          	mov    0x8(%esp),%esi
405371:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
405375:	76 15                	jbe    0x40538c
405377:	8b 46 04             	mov    0x4(%esi),%eax
40537a:	fe 88 84 d8 41 00    	decb   0x41d884(%eax)
405380:	8b 46 04             	mov    0x4(%esi),%eax
405383:	80 b8 84 d8 41 00 00 	cmpb   $0x0,0x41d884(%eax)
40538a:	7f 1c                	jg     0x4053a8
40538c:	56                   	push   %esi
40538d:	e8 44 ff ff ff       	call   0x4052d6
405392:	8b 76 24             	mov    0x24(%esi),%esi
405395:	85 f6                	test   %esi,%esi
405397:	59                   	pop    %ecx
405398:	74 0e                	je     0x4053a8
40539a:	8b ce                	mov    %esi,%ecx
40539c:	e8 10 e2 ff ff       	call   0x4035b1
4053a1:	56                   	push   %esi
4053a2:	e8 88 06 00 00       	call   0x405a2f
4053a7:	59                   	pop    %ecx
4053a8:	5e                   	pop    %esi
4053a9:	c3                   	ret
4053aa:	a1 9c c4 41 00       	mov    0x41c49c,%eax
4053af:	85 c0                	test   %eax,%eax
4053b1:	75 05                	jne    0x4053b8
4053b3:	e9 d7 50 00 00       	jmp    0x40a48f
4053b8:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4053bc:	48                   	dec    %eax
4053bd:	a3 9c c4 41 00       	mov    %eax,0x41c49c
4053c2:	89 0c 85 b0 d8 41 00 	mov    %ecx,0x41d8b0(,%eax,4)
4053c9:	c3                   	ret
4053ca:	eb 18                	jmp    0x4053e4
4053cc:	8b 0c 85 b0 d8 41 00 	mov    0x41d8b0(,%eax,4),%ecx
4053d3:	40                   	inc    %eax
4053d4:	85 c9                	test   %ecx,%ecx
4053d6:	a3 9c c4 41 00       	mov    %eax,0x41c49c
4053db:	74 0c                	je     0x4053e9
4053dd:	ff 14 85 ac d8 41 00 	call   *0x41d8ac(,%eax,4)
4053e4:	a1 9c c4 41 00       	mov    0x41c49c,%eax
4053e9:	83 f8 0a             	cmp    $0xa,%eax
4053ec:	72 de                	jb     0x4053cc
4053ee:	c3                   	ret
4053ef:	55                   	push   %ebp
4053f0:	8b ec                	mov    %esp,%ebp
4053f2:	83 ec 24             	sub    $0x24,%esp
4053f5:	a1 20 c5 41 00       	mov    0x41c520,%eax
4053fa:	33 c5                	xor    %ebp,%eax
4053fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4053ff:	6a 0a                	push   $0xa
405401:	6a 1f                	push   $0x1f
405403:	8d 45 dd             	lea    -0x23(%ebp),%eax
405406:	50                   	push   %eax
405407:	6a 00                	push   $0x0
405409:	ff 75 08             	push   0x8(%ebp)
40540c:	c6 45 dc 2e          	movb   $0x2e,-0x24(%ebp)
405410:	e8 66 53 00 00       	call   0x40a77b
405415:	8d 45 dc             	lea    -0x24(%ebp),%eax
405418:	50                   	push   %eax
405419:	6a 00                	push   $0x0
40541b:	e8 0c 4e 00 00       	call   0x40a22c
405420:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405423:	33 cd                	xor    %ebp,%ecx
405425:	83 c4 1c             	add    $0x1c,%esp
405428:	e8 08 0b 00 00       	call   0x405f35
40542d:	c9                   	leave
40542e:	c3                   	ret
40542f:	8b 44 24 04          	mov    0x4(%esp),%eax
405433:	53                   	push   %ebx
405434:	55                   	push   %ebp
405435:	56                   	push   %esi
405436:	57                   	push   %edi
405437:	6a 3e                	push   $0x3e
405439:	33 d2                	xor    %edx,%edx
40543b:	59                   	pop    %ecx
40543c:	f7 f1                	div    %ecx
40543e:	33 f6                	xor    %esi,%esi
405440:	8d 2c 95 e0 d8 41 00 	lea    0x41d8e0(,%edx,4),%ebp
405447:	8b 7d 00             	mov    0x0(%ebp),%edi
40544a:	85 ff                	test   %edi,%edi
40544c:	8b df                	mov    %edi,%ebx
40544e:	74 0f                	je     0x40545f
405450:	8b 43 04             	mov    0x4(%ebx),%eax
405453:	3b 44 24 14          	cmp    0x14(%esp),%eax
405457:	74 44                	je     0x40549d
405459:	8b 1b                	mov    (%ebx),%ebx
40545b:	85 db                	test   %ebx,%ebx
40545d:	75 f1                	jne    0x405450
40545f:	85 f6                	test   %esi,%esi
405461:	75 23                	jne    0x405486
405463:	6a 0c                	push   $0xc
405465:	e8 82 3e 00 00       	call   0x4092ec
40546a:	8b f0                	mov    %eax,%esi
40546c:	85 f6                	test   %esi,%esi
40546e:	59                   	pop    %ecx
40546f:	74 4c                	je     0x4054bd
405471:	8b 5c 24 14          	mov    0x14(%esp),%ebx
405475:	53                   	push   %ebx
405476:	e8 74 ff ff ff       	call   0x4053ef
40547b:	85 c0                	test   %eax,%eax
40547d:	59                   	pop    %ecx
40547e:	89 46 08             	mov    %eax,0x8(%esi)
405481:	74 33                	je     0x4054b6
405483:	89 5e 04             	mov    %ebx,0x4(%esi)
405486:	57                   	push   %edi
405487:	56                   	push   %esi
405488:	55                   	push   %ebp
405489:	89 3e                	mov    %edi,(%esi)
40548b:	ff 15 9c 70 41 00    	call   *0x41709c
405491:	3b c7                	cmp    %edi,%eax
405493:	75 b2                	jne    0x405447
405495:	8b 46 08             	mov    0x8(%esi),%eax
405498:	5f                   	pop    %edi
405499:	5e                   	pop    %esi
40549a:	5d                   	pop    %ebp
40549b:	5b                   	pop    %ebx
40549c:	c3                   	ret
40549d:	85 f6                	test   %esi,%esi
40549f:	74 10                	je     0x4054b1
4054a1:	ff 76 08             	push   0x8(%esi)
4054a4:	e8 12 43 00 00       	call   0x4097bb
4054a9:	56                   	push   %esi
4054aa:	e8 a4 0f 00 00       	call   0x406453
4054af:	59                   	pop    %ecx
4054b0:	59                   	pop    %ecx
4054b1:	8b 43 08             	mov    0x8(%ebx),%eax
4054b4:	eb e2                	jmp    0x405498
4054b6:	56                   	push   %esi
4054b7:	e8 97 0f 00 00       	call   0x406453
4054bc:	59                   	pop    %ecx
4054bd:	33 c0                	xor    %eax,%eax
4054bf:	eb d7                	jmp    0x405498
4054c1:	53                   	push   %ebx
4054c2:	56                   	push   %esi
4054c3:	57                   	push   %edi
4054c4:	bb e0 d8 41 00       	mov    $0x41d8e0,%ebx
4054c9:	6a 00                	push   $0x0
4054cb:	53                   	push   %ebx
4054cc:	ff 15 7c 70 41 00    	call   *0x41707c
4054d2:	8b f0                	mov    %eax,%esi
4054d4:	85 f6                	test   %esi,%esi
4054d6:	74 18                	je     0x4054f0
4054d8:	ff 76 08             	push   0x8(%esi)
4054db:	8b 3e                	mov    (%esi),%edi
4054dd:	e8 d9 42 00 00       	call   0x4097bb
4054e2:	56                   	push   %esi
4054e3:	e8 6b 0f 00 00       	call   0x406453
4054e8:	85 ff                	test   %edi,%edi
4054ea:	59                   	pop    %ecx
4054eb:	59                   	pop    %ecx
4054ec:	8b f7                	mov    %edi,%esi
4054ee:	75 e8                	jne    0x4054d8
4054f0:	83 c3 04             	add    $0x4,%ebx
4054f3:	81 fb d8 d9 41 00    	cmp    $0x41d9d8,%ebx
4054f9:	7c ce                	jl     0x4054c9
4054fb:	5f                   	pop    %edi
4054fc:	5e                   	pop    %esi
4054fd:	5b                   	pop    %ebx
4054fe:	c3                   	ret
4054ff:	68 c1 54 40 00       	push   $0x4054c1
405504:	e8 13 33 00 00       	call   0x40881c
405509:	f7 d8                	neg    %eax
40550b:	1b c0                	sbb    %eax,%eax
40550d:	59                   	pop    %ecx
40550e:	83 e0 18             	and    $0x18,%eax
405511:	c3                   	ret
405512:	55                   	push   %ebp
405513:	8b ec                	mov    %esp,%ebp
405515:	53                   	push   %ebx
405516:	56                   	push   %esi
405517:	57                   	push   %edi
405518:	8b 7d 0c             	mov    0xc(%ebp),%edi
40551b:	85 ff                	test   %edi,%edi
40551d:	74 16                	je     0x405535
40551f:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
405523:	74 10                	je     0x405535
405525:	80 3f 00             	cmpb   $0x0,(%edi)
405528:	75 12                	jne    0x40553c
40552a:	8b 45 08             	mov    0x8(%ebp),%eax
40552d:	85 c0                	test   %eax,%eax
40552f:	74 04                	je     0x405535
405531:	66 83 20 00          	andw   $0x0,(%eax)
405535:	33 c0                	xor    %eax,%eax
405537:	5f                   	pop    %edi
405538:	5e                   	pop    %esi
405539:	5b                   	pop    %ebx
40553a:	5d                   	pop    %ebp
40553b:	c3                   	ret
40553c:	8b 45 18             	mov    0x18(%ebp),%eax
40553f:	85 c0                	test   %eax,%eax
405541:	75 0f                	jne    0x405552
405543:	e8 7e 3d 00 00       	call   0x4092c6
405548:	8b 70 08             	mov    0x8(%eax),%esi
40554b:	e8 50 3d 00 00       	call   0x4092a0
405550:	eb 05                	jmp    0x405557
405552:	8b 30                	mov    (%eax),%esi
405554:	8b 40 04             	mov    0x4(%eax),%eax
405557:	85 f6                	test   %esi,%esi
405559:	89 45 0c             	mov    %eax,0xc(%ebp)
40555c:	75 13                	jne    0x405571
40555e:	8b 45 08             	mov    0x8(%ebp),%eax
405561:	85 c0                	test   %eax,%eax
405563:	74 07                	je     0x40556c
405565:	66 0f b6 0f          	movzbw (%edi),%cx
405569:	66 89 08             	mov    %cx,(%eax)
40556c:	33 c0                	xor    %eax,%eax
40556e:	40                   	inc    %eax
40556f:	eb c6                	jmp    0x405537
405571:	ff 75 0c             	push   0xc(%ebp)
405574:	e8 b6 fe ff ff       	call   0x40542f
405579:	8b 75 14             	mov    0x14(%ebp),%esi
40557c:	83 3e 00             	cmpl   $0x0,(%esi)
40557f:	59                   	pop    %ecx
405580:	8b d8                	mov    %eax,%ebx
405582:	74 54                	je     0x4055d8
405584:	8a 07                	mov    (%edi),%al
405586:	53                   	push   %ebx
405587:	88 46 01             	mov    %al,0x1(%esi)
40558a:	e8 fb 3c 00 00       	call   0x40928a
40558f:	83 f8 01             	cmp    $0x1,%eax
405592:	59                   	pop    %ecx
405593:	7e 2d                	jle    0x4055c2
405595:	33 c0                	xor    %eax,%eax
405597:	39 45 08             	cmp    %eax,0x8(%ebp)
40559a:	0f 95 c0             	setne  %al
40559d:	50                   	push   %eax
40559e:	ff 75 08             	push   0x8(%ebp)
4055a1:	6a 02                	push   $0x2
4055a3:	56                   	push   %esi
4055a4:	6a 09                	push   $0x9
4055a6:	ff 75 0c             	push   0xc(%ebp)
4055a9:	ff 15 a0 70 41 00    	call   *0x4170a0
4055af:	85 c0                	test   %eax,%eax
4055b1:	74 0f                	je     0x4055c2
4055b3:	83 26 00             	andl   $0x0,(%esi)
4055b6:	53                   	push   %ebx
4055b7:	e8 ce 3c 00 00       	call   0x40928a
4055bc:	59                   	pop    %ecx
4055bd:	e9 75 ff ff ff       	jmp    0x405537
4055c2:	83 26 00             	andl   $0x0,(%esi)
4055c5:	e8 30 3e 00 00       	call   0x4093fa
4055ca:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4055d0:	83 c8 ff             	or     $0xffffffff,%eax
4055d3:	e9 5f ff ff ff       	jmp    0x405537
4055d8:	85 db                	test   %ebx,%ebx
4055da:	75 13                	jne    0x4055ef
4055dc:	e8 4a 38 00 00       	call   0x408e2b
4055e1:	0f b6 0f             	movzbl (%edi),%ecx
4055e4:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4055e8:	25 00 80 00 00       	and    $0x8000,%eax
4055ed:	eb 0e                	jmp    0x4055fd
4055ef:	0f b6 07             	movzbl (%edi),%eax
4055f2:	8b 4b 04             	mov    0x4(%ebx),%ecx
4055f5:	0f b6 44 01 1d       	movzbl 0x1d(%ecx,%eax,1),%eax
4055fa:	83 e0 04             	and    $0x4,%eax
4055fd:	85 c0                	test   %eax,%eax
4055ff:	74 5b                	je     0x40565c
405601:	53                   	push   %ebx
405602:	e8 83 3c 00 00       	call   0x40928a
405607:	39 45 10             	cmp    %eax,0x10(%ebp)
40560a:	59                   	pop    %ecx
40560b:	73 0c                	jae    0x405619
40560d:	8a 07                	mov    (%edi),%al
40560f:	6a fe                	push   $0xfffffffe
405611:	88 06                	mov    %al,(%esi)
405613:	58                   	pop    %eax
405614:	e9 1e ff ff ff       	jmp    0x405537
405619:	53                   	push   %ebx
40561a:	e8 6b 3c 00 00       	call   0x40928a
40561f:	83 f8 01             	cmp    $0x1,%eax
405622:	59                   	pop    %ecx
405623:	7e 28                	jle    0x40564d
405625:	33 c0                	xor    %eax,%eax
405627:	39 45 08             	cmp    %eax,0x8(%ebp)
40562a:	0f 95 c0             	setne  %al
40562d:	50                   	push   %eax
40562e:	ff 75 08             	push   0x8(%ebp)
405631:	53                   	push   %ebx
405632:	e8 53 3c 00 00       	call   0x40928a
405637:	59                   	pop    %ecx
405638:	50                   	push   %eax
405639:	57                   	push   %edi
40563a:	6a 09                	push   $0x9
40563c:	ff 75 0c             	push   0xc(%ebp)
40563f:	ff 15 a0 70 41 00    	call   *0x4170a0
405645:	85 c0                	test   %eax,%eax
405647:	0f 85 69 ff ff ff    	jne    0x4055b6
40564d:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
405651:	0f 85 5f ff ff ff    	jne    0x4055b6
405657:	e9 66 ff ff ff       	jmp    0x4055c2
40565c:	33 c0                	xor    %eax,%eax
40565e:	39 45 08             	cmp    %eax,0x8(%ebp)
405661:	0f 95 c0             	setne  %al
405664:	50                   	push   %eax
405665:	ff 75 08             	push   0x8(%ebp)
405668:	6a 01                	push   $0x1
40566a:	57                   	push   %edi
40566b:	6a 09                	push   $0x9
40566d:	ff 75 0c             	push   0xc(%ebp)
405670:	ff 15 a0 70 41 00    	call   *0x4170a0
405676:	85 c0                	test   %eax,%eax
405678:	0f 85 ee fe ff ff    	jne    0x40556c
40567e:	e9 42 ff ff ff       	jmp    0x4055c5
405683:	55                   	push   %ebp
405684:	8b ec                	mov    %esp,%ebp
405686:	8b 45 0c             	mov    0xc(%ebp),%eax
405689:	ff 30                	push   (%eax)
40568b:	ff 70 04             	push   0x4(%eax)
40568e:	8d 45 0c             	lea    0xc(%ebp),%eax
405691:	50                   	push   %eax
405692:	6a 01                	push   $0x1
405694:	8d 45 08             	lea    0x8(%ebp),%eax
405697:	50                   	push   %eax
405698:	6a 01                	push   $0x1
40569a:	6a 00                	push   $0x0
40569c:	e8 1b 53 00 00       	call   0x40a9bc
4056a1:	0f bf 4d 0c          	movswl 0xc(%ebp),%ecx
4056a5:	83 c4 1c             	add    $0x1c,%esp
4056a8:	f7 d8                	neg    %eax
4056aa:	1b c0                	sbb    %eax,%eax
4056ac:	23 c1                	and    %ecx,%eax
4056ae:	5d                   	pop    %ebp
4056af:	c3                   	ret
4056b0:	55                   	push   %ebp
4056b1:	8b ec                	mov    %esp,%ebp
4056b3:	8b 45 14             	mov    0x14(%ebp),%eax
4056b6:	ff 30                	push   (%eax)
4056b8:	ff 70 04             	push   0x4(%eax)
4056bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4056be:	ff 75 10             	push   0x10(%ebp)
4056c1:	2b 45 08             	sub    0x8(%ebp),%eax
4056c4:	d1 f8                	sar    $1,%eax
4056c6:	50                   	push   %eax
4056c7:	ff 75 08             	push   0x8(%ebp)
4056ca:	6a 01                	push   $0x1
4056cc:	6a 00                	push   $0x0
4056ce:	e8 e9 52 00 00       	call   0x40a9bc
4056d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4056d6:	83 c4 1c             	add    $0x1c,%esp