4094a8:	8b 55 08             	mov    0x8(%ebp),%edx
4094ab:	89 11                	mov    %edx,(%ecx)
4094ad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4094b0:	79 d1                	jns    0x409483
4094b2:	89 4d 08             	mov    %ecx,0x8(%ebp)
4094b5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4094b8:	83 c8 ff             	or     $0xffffffff,%eax
4094bb:	d3 e0                	shl    %cl,%eax
4094bd:	21 07                	and    %eax,(%edi)
4094bf:	8b 45 f4             	mov    -0xc(%ebp),%eax
4094c2:	40                   	inc    %eax
4094c3:	83 f8 03             	cmp    $0x3,%eax
4094c6:	7d 0d                	jge    0x4094d5
4094c8:	6a 03                	push   $0x3
4094ca:	59                   	pop    %ecx
4094cb:	8d 7c 85 e0          	lea    -0x20(%ebp,%eax,4),%edi
4094cf:	2b c8                	sub    %eax,%ecx
4094d1:	33 c0                	xor    %eax,%eax
4094d3:	f3 ab                	rep stos %eax,%es:(%edi)
4094d5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4094d9:	74 01                	je     0x4094dc
4094db:	43                   	inc    %ebx
4094dc:	a1 3c fd 41 00       	mov    0x41fd3c,%eax
4094e1:	8b c8                	mov    %eax,%ecx
4094e3:	2b 0d 40 fd 41 00    	sub    0x41fd40,%ecx
4094e9:	3b d9                	cmp    %ecx,%ebx
4094eb:	7d 0d                	jge    0x4094fa
4094ed:	33 c0                	xor    %eax,%eax
4094ef:	8d 7d e0             	lea    -0x20(%ebp),%edi
4094f2:	ab                   	stos   %eax,%es:(%edi)
4094f3:	ab                   	stos   %eax,%es:(%edi)
4094f4:	ab                   	stos   %eax,%es:(%edi)
4094f5:	e9 0d 02 00 00       	jmp    0x409707
4094fa:	3b d8                	cmp    %eax,%ebx
4094fc:	0f 8f 0f 02 00 00    	jg     0x409711
409502:	2b 45 f0             	sub    -0x10(%ebp),%eax
409505:	8d 75 d4             	lea    -0x2c(%ebp),%esi
409508:	8b c8                	mov    %eax,%ecx
40950a:	8d 7d e0             	lea    -0x20(%ebp),%edi
40950d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40950e:	99                   	cltd
40950f:	83 e2 1f             	and    $0x1f,%edx
409512:	03 c2                	add    %edx,%eax
409514:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409515:	8b d1                	mov    %ecx,%edx
409517:	c1 f8 05             	sar    $0x5,%eax
40951a:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
409520:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409521:	79 05                	jns    0x409528
409523:	4a                   	dec    %edx
409524:	83 ca e0             	or     $0xffffffe0,%edx
409527:	42                   	inc    %edx
409528:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40952c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409530:	83 cf ff             	or     $0xffffffff,%edi
409533:	8b ca                	mov    %edx,%ecx
409535:	d3 e7                	shl    %cl,%edi
409537:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
40953e:	29 55 fc             	sub    %edx,-0x4(%ebp)
409541:	f7 d7                	not    %edi
409543:	8b 5d 08             	mov    0x8(%ebp),%ebx
409546:	8d 5c 9d e0          	lea    -0x20(%ebp,%ebx,4),%ebx
40954a:	8b 33                	mov    (%ebx),%esi
40954c:	8b ce                	mov    %esi,%ecx
40954e:	23 cf                	and    %edi,%ecx
409550:	89 4d f0             	mov    %ecx,-0x10(%ebp)
409553:	8b ca                	mov    %edx,%ecx
409555:	d3 ee                	shr    %cl,%esi
409557:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40955a:	0b 75 f4             	or     -0xc(%ebp),%esi
40955d:	89 33                	mov    %esi,(%ebx)
40955f:	8b 75 f0             	mov    -0x10(%ebp),%esi
409562:	d3 e6                	shl    %cl,%esi
409564:	ff 45 08             	incl   0x8(%ebp)
409567:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
40956b:	89 75 f4             	mov    %esi,-0xc(%ebp)
40956e:	7c d3                	jl     0x409543
409570:	8b f0                	mov    %eax,%esi
409572:	6a 02                	push   $0x2
409574:	c1 e6 02             	shl    $0x2,%esi
409577:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40957a:	5a                   	pop    %edx
40957b:	2b ce                	sub    %esi,%ecx
40957d:	3b d0                	cmp    %eax,%edx
40957f:	7c 08                	jl     0x409589
409581:	8b 31                	mov    (%ecx),%esi
409583:	89 74 95 e0          	mov    %esi,-0x20(%ebp,%edx,4)
409587:	eb 05                	jmp    0x40958e
409589:	83 64 95 e0 00       	andl   $0x0,-0x20(%ebp,%edx,4)
40958e:	4a                   	dec    %edx
40958f:	83 e9 04             	sub    $0x4,%ecx
409592:	85 d2                	test   %edx,%edx
409594:	7d e7                	jge    0x40957d
409596:	8b 35 40 fd 41 00    	mov    0x41fd40,%esi
40959c:	4e                   	dec    %esi
40959d:	8d 4e 01             	lea    0x1(%esi),%ecx
4095a0:	8b c1                	mov    %ecx,%eax
4095a2:	99                   	cltd
4095a3:	83 e2 1f             	and    $0x1f,%edx
4095a6:	03 c2                	add    %edx,%eax
4095a8:	c1 f8 05             	sar    $0x5,%eax
4095ab:	8b d1                	mov    %ecx,%edx
4095ad:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
4095b3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4095b6:	79 05                	jns    0x4095bd
4095b8:	4a                   	dec    %edx
4095b9:	83 ca e0             	or     $0xffffffe0,%edx
4095bc:	42                   	inc    %edx
4095bd:	6a 1f                	push   $0x1f
4095bf:	59                   	pop    %ecx
4095c0:	2b ca                	sub    %edx,%ecx
4095c2:	33 d2                	xor    %edx,%edx
4095c4:	42                   	inc    %edx
4095c5:	d3 e2                	shl    %cl,%edx
4095c7:	8d 5c 85 e0          	lea    -0x20(%ebp,%eax,4),%ebx
4095cb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4095ce:	85 13                	test   %edx,(%ebx)
4095d0:	0f 84 82 00 00 00    	je     0x409658
4095d6:	83 ca ff             	or     $0xffffffff,%edx
4095d9:	d3 e2                	shl    %cl,%edx
4095db:	f7 d2                	not    %edx
4095dd:	85 54 85 e0          	test   %edx,-0x20(%ebp,%eax,4)
4095e1:	eb 05                	jmp    0x4095e8
4095e3:	83 7c 85 e0 00       	cmpl   $0x0,-0x20(%ebp,%eax,4)
4095e8:	75 08                	jne    0x4095f2
4095ea:	40                   	inc    %eax
4095eb:	83 f8 03             	cmp    $0x3,%eax
4095ee:	7c f3                	jl     0x4095e3
4095f0:	eb 66                	jmp    0x409658
4095f2:	8b c6                	mov    %esi,%eax
4095f4:	99                   	cltd
4095f5:	6a 1f                	push   $0x1f
4095f7:	59                   	pop    %ecx
4095f8:	23 d1                	and    %ecx,%edx
4095fa:	03 c2                	add    %edx,%eax
4095fc:	c1 f8 05             	sar    $0x5,%eax
4095ff:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
409605:	79 05                	jns    0x40960c
409607:	4e                   	dec    %esi
409608:	83 ce e0             	or     $0xffffffe0,%esi
40960b:	46                   	inc    %esi
40960c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409610:	33 d2                	xor    %edx,%edx
409612:	2b ce                	sub    %esi,%ecx
409614:	42                   	inc    %edx
409615:	d3 e2                	shl    %cl,%edx
409617:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
40961b:	8b 31                	mov    (%ecx),%esi
40961d:	8d 3c 16             	lea    (%esi,%edx,1),%edi
409620:	3b fe                	cmp    %esi,%edi
409622:	72 04                	jb     0x409628
409624:	3b fa                	cmp    %edx,%edi
409626:	73 07                	jae    0x40962f
409628:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
40962f:	89 39                	mov    %edi,(%ecx)
409631:	8b 4d 08             	mov    0x8(%ebp),%ecx
409634:	eb 1f                	jmp    0x409655
409636:	85 c9                	test   %ecx,%ecx
409638:	74 1e                	je     0x409658
40963a:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
40963e:	8b 11                	mov    (%ecx),%edx
409640:	8d 72 01             	lea    0x1(%edx),%esi
409643:	33 ff                	xor    %edi,%edi
409645:	3b f2                	cmp    %edx,%esi
409647:	72 05                	jb     0x40964e
409649:	83 fe 01             	cmp    $0x1,%esi
40964c:	73 03                	jae    0x409651
40964e:	33 ff                	xor    %edi,%edi
409650:	47                   	inc    %edi
409651:	89 31                	mov    %esi,(%ecx)
409653:	8b cf                	mov    %edi,%ecx
409655:	48                   	dec    %eax
409656:	79 de                	jns    0x409636
409658:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40965b:	83 c8 ff             	or     $0xffffffff,%eax
40965e:	d3 e0                	shl    %cl,%eax
409660:	21 03                	and    %eax,(%ebx)
409662:	8b 45 f4             	mov    -0xc(%ebp),%eax
409665:	40                   	inc    %eax
409666:	83 f8 03             	cmp    $0x3,%eax
409669:	7d 0d                	jge    0x409678
40966b:	6a 03                	push   $0x3
40966d:	59                   	pop    %ecx
40966e:	8d 7c 85 e0          	lea    -0x20(%ebp,%eax,4),%edi
409672:	2b c8                	sub    %eax,%ecx
409674:	33 c0                	xor    %eax,%eax
409676:	f3 ab                	rep stos %eax,%es:(%edi)
409678:	8b 0d 44 fd 41 00    	mov    0x41fd44,%ecx
40967e:	41                   	inc    %ecx
40967f:	8b c1                	mov    %ecx,%eax
409681:	99                   	cltd
409682:	83 e2 1f             	and    $0x1f,%edx
409685:	03 c2                	add    %edx,%eax
409687:	8b d1                	mov    %ecx,%edx
409689:	c1 f8 05             	sar    $0x5,%eax
40968c:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
409692:	79 05                	jns    0x409699
409694:	4a                   	dec    %edx
409695:	83 ca e0             	or     $0xffffffe0,%edx
409698:	42                   	inc    %edx
409699:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40969d:	83 65 08 00          	andl   $0x0,0x8(%ebp)
4096a1:	83 cf ff             	or     $0xffffffff,%edi
4096a4:	8b ca                	mov    %edx,%ecx
4096a6:	d3 e7                	shl    %cl,%edi
4096a8:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
4096af:	29 55 fc             	sub    %edx,-0x4(%ebp)
4096b2:	f7 d7                	not    %edi
4096b4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4096b7:	8d 5c 9d e0          	lea    -0x20(%ebp,%ebx,4),%ebx
4096bb:	8b 33                	mov    (%ebx),%esi
4096bd:	8b ce                	mov    %esi,%ecx
4096bf:	23 cf                	and    %edi,%ecx
4096c1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4096c4:	8b ca                	mov    %edx,%ecx
4096c6:	d3 ee                	shr    %cl,%esi
4096c8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4096cb:	0b 75 f4             	or     -0xc(%ebp),%esi
4096ce:	89 33                	mov    %esi,(%ebx)
4096d0:	8b 75 f0             	mov    -0x10(%ebp),%esi
4096d3:	d3 e6                	shl    %cl,%esi
4096d5:	ff 45 08             	incl   0x8(%ebp)
4096d8:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
4096dc:	89 75 f4             	mov    %esi,-0xc(%ebp)
4096df:	7c d3                	jl     0x4096b4
4096e1:	8b f0                	mov    %eax,%esi
4096e3:	6a 02                	push   $0x2
4096e5:	c1 e6 02             	shl    $0x2,%esi
4096e8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4096eb:	5a                   	pop    %edx
4096ec:	2b ce                	sub    %esi,%ecx
4096ee:	3b d0                	cmp    %eax,%edx
4096f0:	7c 08                	jl     0x4096fa
4096f2:	8b 31                	mov    (%ecx),%esi
4096f4:	89 74 95 e0          	mov    %esi,-0x20(%ebp,%edx,4)
4096f8:	eb 05                	jmp    0x4096ff
4096fa:	83 64 95 e0 00       	andl   $0x0,-0x20(%ebp,%edx,4)
4096ff:	4a                   	dec    %edx
409700:	83 e9 04             	sub    $0x4,%ecx
409703:	85 d2                	test   %edx,%edx
409705:	7d e7                	jge    0x4096ee
409707:	6a 02                	push   $0x2
409709:	33 db                	xor    %ebx,%ebx
40970b:	58                   	pop    %eax
40970c:	e9 5a 01 00 00       	jmp    0x40986b
409711:	3b 1d 38 fd 41 00    	cmp    0x41fd38,%ebx
409717:	8b 0d 44 fd 41 00    	mov    0x41fd44,%ecx
40971d:	0f 8c ad 00 00 00    	jl     0x4097d0
409723:	33 c0                	xor    %eax,%eax
409725:	8d 7d e0             	lea    -0x20(%ebp),%edi
409728:	ab                   	stos   %eax,%es:(%edi)
409729:	ab                   	stos   %eax,%es:(%edi)
40972a:	ab                   	stos   %eax,%es:(%edi)
40972b:	81 4d e0 00 00 00 80 	orl    $0x80000000,-0x20(%ebp)
409732:	8b c1                	mov    %ecx,%eax
409734:	99                   	cltd
409735:	83 e2 1f             	and    $0x1f,%edx
409738:	03 c2                	add    %edx,%eax
40973a:	8b d1                	mov    %ecx,%edx
40973c:	c1 f8 05             	sar    $0x5,%eax
40973f:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
409745:	79 05                	jns    0x40974c
409747:	4a                   	dec    %edx
409748:	83 ca e0             	or     $0xffffffe0,%edx
40974b:	42                   	inc    %edx
40974c:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
409750:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409754:	83 cf ff             	or     $0xffffffff,%edi
409757:	8b ca                	mov    %edx,%ecx
409759:	d3 e7                	shl    %cl,%edi
40975b:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
409762:	29 55 fc             	sub    %edx,-0x4(%ebp)
409765:	f7 d7                	not    %edi
409767:	8b 5d 08             	mov    0x8(%ebp),%ebx
40976a:	8d 5c 9d e0          	lea    -0x20(%ebp,%ebx,4),%ebx
40976e:	8b 33                	mov    (%ebx),%esi
409770:	8b ce                	mov    %esi,%ecx
409772:	23 cf                	and    %edi,%ecx
409774:	89 4d f0             	mov    %ecx,-0x10(%ebp)
409777:	8b ca                	mov    %edx,%ecx
409779:	d3 ee                	shr    %cl,%esi
40977b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40977e:	0b 75 f4             	or     -0xc(%ebp),%esi
409781:	89 33                	mov    %esi,(%ebx)
409783:	8b 75 f0             	mov    -0x10(%ebp),%esi
409786:	d3 e6                	shl    %cl,%esi
409788:	ff 45 08             	incl   0x8(%ebp)
40978b:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
40978f:	89 75 f4             	mov    %esi,-0xc(%ebp)
409792:	7c d3                	jl     0x409767
409794:	8b f0                	mov    %eax,%esi
409796:	6a 02                	push   $0x2
409798:	c1 e6 02             	shl    $0x2,%esi
40979b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40979e:	5a                   	pop    %edx
40979f:	2b ce                	sub    %esi,%ecx
4097a1:	3b d0                	cmp    %eax,%edx
4097a3:	7c 08                	jl     0x4097ad
4097a5:	8b 31                	mov    (%ecx),%esi
4097a7:	89 74 95 e0          	mov    %esi,-0x20(%ebp,%edx,4)
4097ab:	eb 05                	jmp    0x4097b2
4097ad:	83 64 95 e0 00       	andl   $0x0,-0x20(%ebp,%edx,4)
4097b2:	4a                   	dec    %edx
4097b3:	83 e9 04             	sub    $0x4,%ecx
4097b6:	85 d2                	test   %edx,%edx
4097b8:	7d e7                	jge    0x4097a1
4097ba:	a1 38 fd 41 00       	mov    0x41fd38,%eax
4097bf:	8b 0d 4c fd 41 00    	mov    0x41fd4c,%ecx
4097c5:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
4097c8:	33 c0                	xor    %eax,%eax
4097ca:	40                   	inc    %eax
4097cb:	e9 9b 00 00 00       	jmp    0x40986b
4097d0:	a1 4c fd 41 00       	mov    0x41fd4c,%eax
4097d5:	81 65 e0 ff ff ff 7f 	andl   $0x7fffffff,-0x20(%ebp)
4097dc:	03 d8                	add    %eax,%ebx
4097de:	8b c1                	mov    %ecx,%eax
4097e0:	99                   	cltd
4097e1:	83 e2 1f             	and    $0x1f,%edx
4097e4:	03 c2                	add    %edx,%eax
4097e6:	8b d1                	mov    %ecx,%edx
4097e8:	c1 f8 05             	sar    $0x5,%eax
4097eb:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
4097f1:	79 05                	jns    0x4097f8
4097f3:	4a                   	dec    %edx
4097f4:	83 ca e0             	or     $0xffffffe0,%edx
4097f7:	42                   	inc    %edx
4097f8:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4097fc:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409800:	83 ce ff             	or     $0xffffffff,%esi
409803:	8b ca                	mov    %edx,%ecx
409805:	d3 e6                	shl    %cl,%esi
409807:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
40980e:	29 55 fc             	sub    %edx,-0x4(%ebp)
409811:	f7 d6                	not    %esi
409813:	8b 4d 08             	mov    0x8(%ebp),%ecx
409816:	8b 7c 8d e0          	mov    -0x20(%ebp,%ecx,4),%edi
40981a:	8b cf                	mov    %edi,%ecx
40981c:	23 ce                	and    %esi,%ecx
40981e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
409821:	8b ca                	mov    %edx,%ecx
409823:	d3 ef                	shr    %cl,%edi
409825:	8b 4d 08             	mov    0x8(%ebp),%ecx
409828:	0b 7d f4             	or     -0xc(%ebp),%edi
40982b:	89 7c 8d e0          	mov    %edi,-0x20(%ebp,%ecx,4)
40982f:	8b 7d f0             	mov    -0x10(%ebp),%edi
409832:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409835:	d3 e7                	shl    %cl,%edi
409837:	ff 45 08             	incl   0x8(%ebp)
40983a:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
40983e:	89 7d f4             	mov    %edi,-0xc(%ebp)