407371:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
407374:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407377:	8d 04 42             	lea    (%edx,%eax,2),%eax
40737a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40737d:	0f b7 44 72 0e       	movzwl 0xe(%edx,%esi,2),%eax
407382:	8b c8                	mov    %eax,%ecx
407384:	66 c1 e8 08          	shr    $0x8,%ax
407388:	c1 e1 08             	shl    $0x8,%ecx
40738b:	66 03 c8             	add    %ax,%cx
40738e:	8b 45 f0             	mov    -0x10(%ebp),%eax
407391:	83 45 f0 02          	addl   $0x2,-0x10(%ebp)
407395:	66 89 4b fe          	mov    %cx,-0x2(%ebx)
407399:	0f b7 00             	movzwl (%eax),%eax
40739c:	8b c8                	mov    %eax,%ecx
40739e:	66 c1 e8 08          	shr    $0x8,%ax
4073a2:	c1 e1 08             	shl    $0x8,%ecx
4073a5:	66 03 c8             	add    %ax,%cx
4073a8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4073ab:	83 45 ec 02          	addl   $0x2,-0x14(%ebp)
4073af:	66 89 4b fc          	mov    %cx,-0x4(%ebx)
4073b3:	0f b7 00             	movzwl (%eax),%eax
4073b6:	8b c8                	mov    %eax,%ecx
4073b8:	66 c1 e8 08          	shr    $0x8,%ax
4073bc:	c1 e1 08             	shl    $0x8,%ecx
4073bf:	66 03 c8             	add    %ax,%cx
4073c2:	46                   	inc    %esi
4073c3:	66 89 0b             	mov    %cx,(%ebx)
4073c6:	8d 5b 06             	lea    0x6(%ebx),%ebx
4073c9:	3b f7                	cmp    %edi,%esi
4073cb:	7c b0                	jl     0x40737d
4073cd:	8b 75 d4             	mov    -0x2c(%ebp),%esi
4073d0:	8b 7d c0             	mov    -0x40(%ebp),%edi
4073d3:	8b 5d d0             	mov    -0x30(%ebp),%ebx
4073d6:	e9 40 fd ff ff       	jmp    0x40711b
4073db:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4073de:	8b 55 fc             	mov    -0x4(%ebp),%edx
4073e1:	e9 3b fd ff ff       	jmp    0x407121
4073e6:	0f b7 c0             	movzwl %ax,%eax
4073e9:	6b c0 06             	imul   $0x6,%eax,%eax
4073ec:	0f b7 54 08 02       	movzwl 0x2(%eax,%ecx,1),%edx
4073f1:	0f b7 34 08          	movzwl (%eax,%ecx,1),%esi
4073f5:	89 55 c0             	mov    %edx,-0x40(%ebp)
4073f8:	66 3b f2             	cmp    %dx,%si
4073fb:	0f 87 ec 00 00 00    	ja     0x4074ed
407401:	66 8b 44 08 04       	mov    0x4(%eax,%ecx,1),%ax
407406:	66 03 c6             	add    %si,%ax
407409:	0f b7 c0             	movzwl %ax,%eax
40740c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40740f:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
407413:	0f 87 e7 00 00 00    	ja     0x407500
407419:	33 c9                	xor    %ecx,%ecx
40741b:	0f b7 c0             	movzwl %ax,%eax
40741e:	66 39 4d e4          	cmp    %cx,-0x1c(%ebp)
407422:	0f 95 c1             	setne  %cl
407425:	8d 50 01             	lea    0x1(%eax),%edx
407428:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40742f:	0f af d1             	imul   %ecx,%edx
407432:	0f af c8             	imul   %eax,%ecx
407435:	66 83 7d e4 00       	cmpw   $0x0,-0x1c(%ebp)
40743a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40743d:	75 15                	jne    0x407454
40743f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
407442:	66 8b 04 01          	mov    (%ecx,%eax,1),%ax
407446:	33 c9                	xor    %ecx,%ecx
407448:	66 3b 04 1a          	cmp    (%edx,%ebx,1),%ax
40744c:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40744f:	0f 95 c1             	setne  %cl
407452:	eb 10                	jmp    0x407464
407454:	8b 04 01             	mov    (%ecx,%eax,1),%eax
407457:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40745a:	3b 04 0a             	cmp    (%edx,%ecx,1),%eax
40745d:	74 79                	je     0x4074d8
40745f:	33 c0                	xor    %eax,%eax
407461:	8d 48 01             	lea    0x1(%eax),%ecx
407464:	85 c9                	test   %ecx,%ecx
407466:	74 70                	je     0x4074d8
407468:	8b 45 e0             	mov    -0x20(%ebp),%eax
40746b:	85 ff                	test   %edi,%edi
40746d:	75 20                	jne    0x40748f
40746f:	ff 00                	incl   (%eax)
407471:	6a 04                	push   $0x4
407473:	58                   	pop    %eax
407474:	50                   	push   %eax
407475:	ff 15 f8 33 43 00    	call   *0x4333f8
40747b:	8b f8                	mov    %eax,%edi
40747d:	59                   	pop    %ecx
40747e:	85 ff                	test   %edi,%edi
407480:	0f 84 88 00 00 00    	je     0x40750e
407486:	66 89 37             	mov    %si,(%edi)
407489:	66 89 77 02          	mov    %si,0x2(%edi)
40748d:	eb 49                	jmp    0x4074d8
40748f:	8b 10                	mov    (%eax),%edx
407491:	0f b7 ce             	movzwl %si,%ecx
407494:	0f b7 44 97 fe       	movzwl -0x2(%edi,%edx,4),%eax
407499:	2b c8                	sub    %eax,%ecx
40749b:	33 c0                	xor    %eax,%eax
40749d:	40                   	inc    %eax
40749e:	3b c8                	cmp    %eax,%ecx
4074a0:	75 07                	jne    0x4074a9
4074a2:	66 ff 44 97 fe       	incw   -0x2(%edi,%edx,4)
4074a7:	eb 2f                	jmp    0x4074d8
4074a9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4074ac:	8d 42 01             	lea    0x1(%edx),%eax
4074af:	89 01                	mov    %eax,(%ecx)
4074b1:	85 c0                	test   %eax,%eax
4074b3:	74 59                	je     0x40750e
4074b5:	c1 e0 02             	shl    $0x2,%eax
4074b8:	50                   	push   %eax
4074b9:	57                   	push   %edi
4074ba:	89 45 bc             	mov    %eax,-0x44(%ebp)
4074bd:	ff 15 f4 33 43 00    	call   *0x4333f4
4074c3:	59                   	pop    %ecx
4074c4:	59                   	pop    %ecx
4074c5:	85 c0                	test   %eax,%eax
4074c7:	74 45                	je     0x40750e
4074c9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4074cc:	8b f8                	mov    %eax,%edi
4074ce:	66 89 74 01 fc       	mov    %si,-0x4(%ecx,%eax,1)
4074d3:	66 89 74 01 fe       	mov    %si,-0x2(%ecx,%eax,1)
4074d8:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4074db:	46                   	inc    %esi
4074dc:	40                   	inc    %eax
4074dd:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4074e0:	66 3b 75 c0          	cmp    -0x40(%ebp),%si
4074e4:	0f 86 25 ff ff ff    	jbe    0x40740f
4074ea:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4074ed:	8b 45 d8             	mov    -0x28(%ebp),%eax
4074f0:	40                   	inc    %eax
4074f1:	66 3b 45 dc          	cmp    -0x24(%ebp),%ax
4074f5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4074f8:	0f 82 e8 fe ff ff    	jb     0x4073e6
4074fe:	eb 0e                	jmp    0x40750e
407500:	85 ff                	test   %edi,%edi
407502:	74 08                	je     0x40750c
407504:	57                   	push   %edi
407505:	ff 15 d4 33 43 00    	call   *0x4333d4
40750b:	59                   	pop    %ecx
40750c:	33 ff                	xor    %edi,%edi
40750e:	53                   	push   %ebx
40750f:	ff 15 58 31 43 00    	call   *0x433158
407515:	ff 75 cc             	push   -0x34(%ebp)
407518:	ff 15 74 31 43 00    	call   *0x433174
40751e:	ff 75 c8             	push   -0x38(%ebp)
407521:	ff 15 74 31 43 00    	call   *0x433174
407527:	8b 45 f8             	mov    -0x8(%ebp),%eax
40752a:	85 c0                	test   %eax,%eax
40752c:	74 08                	je     0x407536
40752e:	50                   	push   %eax
40752f:	ff 15 d4 33 43 00    	call   *0x4333d4
407535:	59                   	pop    %ecx
407536:	8b c7                	mov    %edi,%eax
407538:	5f                   	pop    %edi
407539:	5e                   	pop    %esi
40753a:	5b                   	pop    %ebx
40753b:	c9                   	leave
40753c:	c3                   	ret
40753d:	8b ff                	mov    %edi,%edi
40753f:	55                   	push   %ebp
407540:	8b ec                	mov    %esp,%ebp
407542:	81 ec 04 03 00 00    	sub    $0x304,%esp
407548:	a1 64 10 41 00       	mov    0x411064,%eax
40754d:	33 c5                	xor    %ebp,%eax
40754f:	89 45 fc             	mov    %eax,-0x4(%ebp)
407552:	53                   	push   %ebx
407553:	56                   	push   %esi
407554:	57                   	push   %edi
407555:	33 db                	xor    %ebx,%ebx
407557:	8b f9                	mov    %ecx,%edi
407559:	53                   	push   %ebx
40755a:	53                   	push   %ebx
40755b:	68 4b 01 00 00       	push   $0x14b
407560:	57                   	push   %edi
407561:	ff 15 10 33 43 00    	call   *0x433310
407567:	68 80 00 00 00       	push   $0x80
40756c:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
407572:	50                   	push   %eax
407573:	68 59 1b 00 00       	push   $0x1b59
407578:	ff 35 0c 19 41 00    	push   0x41190c
40757e:	ff 15 20 33 43 00    	call   *0x433320
407584:	85 c0                	test   %eax,%eax
407586:	74 40                	je     0x4075c8
407588:	66 39 9d fc fe ff ff 	cmp    %bx,-0x104(%ebp)
40758f:	74 37                	je     0x4075c8
407591:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
407597:	50                   	push   %eax
407598:	53                   	push   %ebx
407599:	68 43 01 00 00       	push   $0x143
40759e:	57                   	push   %edi
40759f:	ff 15 10 33 43 00    	call   *0x433310
4075a5:	8b f0                	mov    %eax,%esi
4075a7:	83 fe ff             	cmp    $0xffffffff,%esi
4075aa:	74 0e                	je     0x4075ba
4075ac:	53                   	push   %ebx
4075ad:	56                   	push   %esi
4075ae:	68 51 01 00 00       	push   $0x151
4075b3:	57                   	push   %edi
4075b4:	ff 15 10 33 43 00    	call   *0x433310
4075ba:	53                   	push   %ebx
4075bb:	56                   	push   %esi
4075bc:	68 4e 01 00 00       	push   $0x14e
4075c1:	57                   	push   %edi
4075c2:	ff 15 10 33 43 00    	call   *0x433310
4075c8:	8b 1d b4 26 43 00    	mov    0x4326b4,%ebx
4075ce:	8b 35 48 10 41 00    	mov    0x411048,%esi
4075d4:	85 db                	test   %ebx,%ebx
4075d6:	0f 8e a8 00 00 00    	jle    0x407684
4075dc:	83 c6 08             	add    $0x8,%esi
4075df:	8b 0e                	mov    (%esi),%ecx
4075e1:	ba b0 04 00 00       	mov    $0x4b0,%edx
4075e6:	66 8b 41 08          	mov    0x8(%ecx),%ax
4075ea:	66 03 c1             	add    %cx,%ax
4075ed:	0f b7 c0             	movzwl %ax,%eax
4075f0:	66 3b c2             	cmp    %dx,%ax
4075f3:	75 05                	jne    0x4075fa
4075f5:	33 c0                	xor    %eax,%eax
4075f7:	40                   	inc    %eax
4075f8:	eb 23                	jmp    0x40761d
4075fa:	8b 0d a8 16 41 00    	mov    0x4116a8,%ecx
407600:	85 c9                	test   %ecx,%ecx
407602:	7e 15                	jle    0x407619
407604:	8b d0                	mov    %eax,%edx
407606:	a1 ac 16 41 00       	mov    0x4116ac,%eax
40760b:	49                   	dec    %ecx
40760c:	39 14 88             	cmp    %edx,(%eax,%ecx,4)
40760f:	0f 84 81 00 00 00    	je     0x407696
407615:	85 c9                	test   %ecx,%ecx
407617:	7f ed                	jg     0x407606
407619:	33 c0                	xor    %eax,%eax
40761b:	8b 0e                	mov    (%esi),%ecx
40761d:	85 c0                	test   %eax,%eax
40761f:	74 57                	je     0x407678
407621:	8b 41 04             	mov    0x4(%ecx),%eax
407624:	03 c1                	add    %ecx,%eax
407626:	66 83 38 30          	cmpw   $0x30,(%eax)
40762a:	75 27                	jne    0x407653
40762c:	68 ff 00 00 00       	push   $0xff
407631:	8d 8d fc fc ff ff    	lea    -0x304(%ebp),%ecx
407637:	51                   	push   %ecx
407638:	50                   	push   %eax
407639:	ff 15 fc 33 43 00    	call   *0x4333fc
40763f:	59                   	pop    %ecx
407640:	50                   	push   %eax
407641:	ff 35 0c 19 41 00    	push   0x41190c
407647:	ff 15 20 33 43 00    	call   *0x433320
40764d:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
407653:	50                   	push   %eax
407654:	6a 00                	push   $0x0
407656:	68 43 01 00 00       	push   $0x143
40765b:	57                   	push   %edi
40765c:	ff 15 10 33 43 00    	call   *0x433310
407662:	83 f8 ff             	cmp    $0xffffffff,%eax
407665:	74 11                	je     0x407678
407667:	8d 4e f8             	lea    -0x8(%esi),%ecx
40766a:	51                   	push   %ecx
40766b:	50                   	push   %eax
40766c:	68 51 01 00 00       	push   $0x151
407671:	57                   	push   %edi
407672:	ff 15 10 33 43 00    	call   *0x433310
407678:	83 c6 0c             	add    $0xc,%esi
40767b:	83 eb 01             	sub    $0x1,%ebx
40767e:	0f 85 5b ff ff ff    	jne    0x4075df
407684:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407687:	33 c0                	xor    %eax,%eax
407689:	5f                   	pop    %edi
40768a:	5e                   	pop    %esi
40768b:	33 cd                	xor    %ebp,%ecx
40768d:	40                   	inc    %eax
40768e:	5b                   	pop    %ebx
40768f:	e8 9c 8d 00 00       	call   0x410430
407694:	c9                   	leave
407695:	c3                   	ret
407696:	33 c0                	xor    %eax,%eax
407698:	40                   	inc    %eax
407699:	eb 80                	jmp    0x40761b
40769b:	8b ff                	mov    %edi,%edi
40769d:	53                   	push   %ebx
40769e:	56                   	push   %esi
40769f:	57                   	push   %edi
4076a0:	33 f6                	xor    %esi,%esi
4076a2:	8b fa                	mov    %edx,%edi
4076a4:	56                   	push   %esi
4076a5:	56                   	push   %esi
4076a6:	68 47 01 00 00       	push   $0x147
4076ab:	68 ca 00 00 00       	push   $0xca
4076b0:	57                   	push   %edi
4076b1:	8b d9                	mov    %ecx,%ebx
4076b3:	ff 15 18 33 43 00    	call   *0x433318
4076b9:	83 f8 ff             	cmp    $0xffffffff,%eax
4076bc:	74 16                	je     0x4076d4
4076be:	56                   	push   %esi
4076bf:	50                   	push   %eax
4076c0:	68 50 01 00 00       	push   $0x150
4076c5:	68 ca 00 00 00       	push   $0xca
4076ca:	57                   	push   %edi
4076cb:	ff 15 18 33 43 00    	call   *0x433318
4076d1:	89 03                	mov    %eax,(%ebx)
4076d3:	46                   	inc    %esi
4076d4:	5f                   	pop    %edi
4076d5:	8b c6                	mov    %esi,%eax
4076d7:	5e                   	pop    %esi
4076d8:	5b                   	pop    %ebx
4076d9:	c2 04 00             	ret    $0x4
4076dc:	8b ff                	mov    %edi,%edi
4076de:	55                   	push   %ebp
4076df:	8b ec                	mov    %esp,%ebp
4076e1:	51                   	push   %ecx
4076e2:	53                   	push   %ebx
4076e3:	56                   	push   %esi
4076e4:	57                   	push   %edi
4076e5:	8b f1                	mov    %ecx,%esi
4076e7:	33 ff                	xor    %edi,%edi
4076e9:	68 ca 00 00 00       	push   $0xca
4076ee:	56                   	push   %esi
4076ef:	89 7d fc             	mov    %edi,-0x4(%ebp)
4076f2:	ff 15 14 33 43 00    	call   *0x433314
4076f8:	85 c0                	test   %eax,%eax
4076fa:	74 7b                	je     0x407777
4076fc:	51                   	push   %ecx
4076fd:	8b d6                	mov    %esi,%edx
4076ff:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407702:	e8 94 ff ff ff       	call   0x40769b
407707:	85 c0                	test   %eax,%eax
407709:	74 4e                	je     0x407759
40770b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40770e:	85 d2                	test   %edx,%edx
407710:	74 47                	je     0x407759
407712:	8b 42 08             	mov    0x8(%edx),%eax
407715:	ff 75 14             	push   0x14(%ebp)
407718:	66 39 78 0c          	cmp    %di,0xc(%eax)
40771c:	8b 7d 10             	mov    0x10(%ebp),%edi
40771f:	57                   	push   %edi
407720:	74 07                	je     0x407729
407722:	e8 fd f3 ff ff       	call   0x406b24
407727:	eb 08                	jmp    0x407731
407729:	51                   	push   %ecx
40772a:	8b ce                	mov    %esi,%ecx
40772c:	e8 3d df ff ff       	call   0x40566e
407731:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407734:	be 10 19 41 00       	mov    $0x411910,%esi
407739:	89 33                	mov    %esi,(%ebx)
40773b:	85 c0                	test   %eax,%eax
40773d:	75 15                	jne    0x407754
40773f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407742:	8b d6                	mov    %esi,%edx
407744:	68 00 00 01 00       	push   $0x10000
407749:	e8 8f f6 ff ff       	call   0x406ddd
40774e:	89 07                	mov    %eax,(%edi)
407750:	89 33                	mov    %esi,(%ebx)
407752:	eb 23                	jmp    0x407777
407754:	33 c0                	xor    %eax,%eax