4073db:	50                   	push   %eax
4073dc:	68 19 00 02 00       	push   $0x20019
4073e1:	51                   	push   %ecx
4073e2:	57                   	push   %edi
4073e3:	ff b5 dc dd ff ff    	push   -0x2224(%ebp)
4073e9:	89 8d e4 dd ff ff    	mov    %ecx,-0x221c(%ebp)
4073ef:	ff 15 0c f0 40 00    	call   *0x40f00c
4073f5:	89 85 d4 dd ff ff    	mov    %eax,-0x222c(%ebp)
4073fb:	85 c0                	test   %eax,%eax
4073fd:	75 2e                	jne    0x40742d
4073ff:	89 85 d4 dd ff ff    	mov    %eax,-0x222c(%ebp)
407405:	85 db                	test   %ebx,%ebx
407407:	74 0d                	je     0x407416
407409:	53                   	push   %ebx
40740a:	ff 15 00 f0 40 00    	call   *0x40f000
407410:	89 85 d4 dd ff ff    	mov    %eax,-0x222c(%ebp)
407416:	8b 9d e4 dd ff ff    	mov    -0x221c(%ebp),%ebx
40741c:	89 9d c8 dd ff ff    	mov    %ebx,-0x2238(%ebp)
407422:	eb 09                	jmp    0x40742d
407424:	6a 02                	push   $0x2
407426:	58                   	pop    %eax
407427:	89 85 d4 dd ff ff    	mov    %eax,-0x222c(%ebp)
40742d:	89 b5 e4 dd ff ff    	mov    %esi,-0x221c(%ebp)
407433:	85 c0                	test   %eax,%eax
407435:	74 0a                	je     0x407441
407437:	c7 85 e4 dd ff ff 01 	movl   $0x1,-0x221c(%ebp)
40743e:	00 00 00
407441:	6a ff                	push   $0xffffffff
407443:	57                   	push   %edi
407444:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40744a:	68 04 01 00 00       	push   $0x104
40744f:	50                   	push   %eax
407450:	ff 15 f8 f1 40 00    	call   *0x40f1f8
407456:	83 c4 10             	add    $0x10,%esp
407459:	8b c8                	mov    %eax,%ecx
40745b:	e8 09 f7 ff ff       	call   0x406b69
407460:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
407466:	57                   	push   %edi
407467:	e8 c9 f9 ff ff       	call   0x406e35
40746c:	8b f0                	mov    %eax,%esi
40746e:	85 f6                	test   %esi,%esi
407470:	0f 88 93 01 00 00    	js     0x407609
407476:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
40747c:	57                   	push   %edi
40747d:	e8 1a f7 ff ff       	call   0x406b9c
407482:	8b f0                	mov    %eax,%esi
407484:	85 f6                	test   %esi,%esi
407486:	0f 88 7d 01 00 00    	js     0x407609
40748c:	6a 7b                	push   $0x7b
40748e:	58                   	pop    %eax
40748f:	66 39 07             	cmp    %ax,(%edi)
407492:	75 5c                	jne    0x4074f0
407494:	8b cf                	mov    %edi,%ecx
407496:	8d 51 02             	lea    0x2(%ecx),%edx
407499:	66 8b 01             	mov    (%ecx),%ax
40749c:	83 c1 02             	add    $0x2,%ecx
40749f:	66 3b 85 c4 dd ff ff 	cmp    -0x223c(%ebp),%ax
4074a6:	75 f1                	jne    0x407499
4074a8:	2b ca                	sub    %edx,%ecx
4074aa:	d1 f9                	sar    $1,%ecx
4074ac:	83 f9 01             	cmp    $0x1,%ecx
4074af:	75 3f                	jne    0x4074f0
4074b1:	ff b5 e4 dd ff ff    	push   -0x221c(%ebp)
4074b7:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
4074bd:	33 c0                	xor    %eax,%eax
4074bf:	50                   	push   %eax
4074c0:	53                   	push   %ebx
4074c1:	57                   	push   %edi
4074c2:	e8 c8 fa ff ff       	call   0x406f8f
4074c7:	8b f0                	mov    %eax,%esi
4074c9:	85 f6                	test   %esi,%esi
4074cb:	79 0d                	jns    0x4074da
4074cd:	83 bd e4 dd ff ff 00 	cmpl   $0x0,-0x221c(%ebp)
4074d4:	0f 84 2f 01 00 00    	je     0x407609
4074da:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
4074e0:	57                   	push   %edi
4074e1:	e8 4f f9 ff ff       	call   0x406e35
4074e6:	8b f0                	mov    %eax,%esi
4074e8:	85 f6                	test   %esi,%esi
4074ea:	0f 88 19 01 00 00    	js     0x407609
4074f0:	8b 8d d4 dd ff ff    	mov    -0x222c(%ebp),%ecx
4074f6:	83 f9 02             	cmp    $0x2,%ecx
4074f9:	0f 84 d0 00 00 00    	je     0x4075cf
4074ff:	85 c9                	test   %ecx,%ecx
407501:	74 0f                	je     0x407512
407503:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
407507:	0f 84 ee 00 00 00    	je     0x4075fb
40750d:	e9 bd 00 00 00       	jmp    0x4075cf
407512:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
407516:	74 45                	je     0x40755d
407518:	53                   	push   %ebx
407519:	e8 24 f8 ff ff       	call   0x406d42
40751e:	85 c0                	test   %eax,%eax
407520:	74 3b                	je     0x40755d
407522:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
407528:	50                   	push   %eax
407529:	e8 d5 f6 ff ff       	call   0x406c03
40752e:	85 c0                	test   %eax,%eax
407530:	0f 84 99 00 00 00    	je     0x4075cf
407536:	83 bd d8 dd ff ff 00 	cmpl   $0x0,-0x2228(%ebp)
40753d:	0f 84 8c 00 00 00    	je     0x4075cf
407543:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
407549:	50                   	push   %eax
40754a:	8d 8d c8 dd ff ff    	lea    -0x2238(%ebp),%ecx
407550:	e8 df f6 ff ff       	call   0x406c34
407555:	8b 9d c8 dd ff ff    	mov    -0x2238(%ebp),%ebx
40755b:	eb 72                	jmp    0x4075cf
40755d:	53                   	push   %ebx
40755e:	e8 df f7 ff ff       	call   0x406d42
407563:	89 85 e4 dd ff ff    	mov    %eax,-0x221c(%ebp)
407569:	85 db                	test   %ebx,%ebx
40756b:	74 1d                	je     0x40758a
40756d:	53                   	push   %ebx
40756e:	ff 15 00 f0 40 00    	call   *0x40f000
407574:	33 c9                	xor    %ecx,%ecx
407576:	8b d9                	mov    %ecx,%ebx
407578:	89 9d c8 dd ff ff    	mov    %ebx,-0x2238(%ebp)
40757e:	85 c0                	test   %eax,%eax
407580:	75 77                	jne    0x4075f9
407582:	8b 85 e4 dd ff ff    	mov    -0x221c(%ebp),%eax
407588:	eb 02                	jmp    0x40758c
40758a:	33 c9                	xor    %ecx,%ecx
40758c:	83 bd d8 dd ff ff 00 	cmpl   $0x0,-0x2228(%ebp)
407593:	74 3a                	je     0x4075cf
407595:	85 c0                	test   %eax,%eax
407597:	75 36                	jne    0x4075cf
407599:	8b 85 dc dd ff ff    	mov    -0x2224(%ebp),%eax
40759f:	89 85 a0 dd ff ff    	mov    %eax,-0x2260(%ebp)
4075a5:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4075ab:	89 8d a4 dd ff ff    	mov    %ecx,-0x225c(%ebp)
4075b1:	89 8d a8 dd ff ff    	mov    %ecx,-0x2258(%ebp)
4075b7:	8d 8d a0 dd ff ff    	lea    -0x2260(%ebp),%ecx
4075bd:	50                   	push   %eax
4075be:	e8 cd f7 ff ff       	call   0x406d90
4075c3:	33 c9                	xor    %ecx,%ecx
4075c5:	89 8d a0 dd ff ff    	mov    %ecx,-0x2260(%ebp)
4075cb:	85 c0                	test   %eax,%eax
4075cd:	75 2a                	jne    0x4075f9
4075cf:	6a 7d                	push   $0x7d
4075d1:	58                   	pop    %eax
4075d2:	66 39 07             	cmp    %ax,(%edi)
4075d5:	0f 85 32 fa ff ff    	jne    0x40700d
4075db:	eb 2c                	jmp    0x407609
4075dd:	8b c8                	mov    %eax,%ecx
4075df:	e8 41 f8 ff ff       	call   0x406e25
4075e4:	8b f0                	mov    %eax,%esi
4075e6:	8b 85 d8 dd ff ff    	mov    -0x2228(%ebp),%eax
4075ec:	85 c0                	test   %eax,%eax
4075ee:	74 19                	je     0x407609
4075f0:	50                   	push   %eax
4075f1:	ff 15 00 f0 40 00    	call   *0x40f000
4075f7:	eb 10                	jmp    0x407609
4075f9:	8b c8                	mov    %eax,%ecx
4075fb:	e8 25 f8 ff ff       	call   0x406e25
407600:	8b f0                	mov    %eax,%esi
407602:	eb 05                	jmp    0x407609
407604:	be 09 00 02 80       	mov    $0x80020009,%esi
407609:	85 db                	test   %ebx,%ebx
40760b:	74 07                	je     0x407614
40760d:	53                   	push   %ebx
40760e:	ff 15 00 f0 40 00    	call   *0x40f000
407614:	8b c6                	mov    %esi,%eax
407616:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407619:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407620:	59                   	pop    %ecx
407621:	5f                   	pop    %edi
407622:	5e                   	pop    %esi
407623:	5b                   	pop    %ebx
407624:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407627:	33 cd                	xor    %ebp,%ecx
407629:	e8 32 22 00 00       	call   0x409860
40762e:	c9                   	leave
40762f:	c2 10 00             	ret    $0x10
407632:	8b ff                	mov    %edi,%edi
407634:	56                   	push   %esi
407635:	8b f1                	mov    %ecx,%esi
407637:	8b 16                	mov    (%esi),%edx
407639:	0f b7 0a             	movzwl (%edx),%ecx
40763c:	8b c1                	mov    %ecx,%eax
40763e:	83 f8 09             	cmp    $0x9,%eax
407641:	72 1a                	jb     0x40765d
407643:	83 f8 0a             	cmp    $0xa,%eax
407646:	76 0a                	jbe    0x407652
407648:	83 f8 0d             	cmp    $0xd,%eax
40764b:	74 05                	je     0x407652
40764d:	83 f9 20             	cmp    $0x20,%ecx
407650:	75 0b                	jne    0x40765d
407652:	52                   	push   %edx
407653:	ff 15 f8 f0 40 00    	call   *0x40f0f8
407659:	89 06                	mov    %eax,(%esi)
40765b:	eb da                	jmp    0x407637
40765d:	5e                   	pop    %esi
40765e:	c3                   	ret
40765f:	8b ff                	mov    %edi,%edi
407661:	55                   	push   %ebp
407662:	8b ec                	mov    %esp,%ebp
407664:	b8 14 20 00 00       	mov    $0x2014,%eax
407669:	e8 42 2d 00 00       	call   0x40a3b0
40766e:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
407673:	33 c5                	xor    %ebp,%eax
407675:	89 45 fc             	mov    %eax,-0x4(%ebp)
407678:	8b 45 08             	mov    0x8(%ebp),%eax
40767b:	83 a5 f4 df ff ff 00 	andl   $0x0,-0x200c(%ebp)
407682:	53                   	push   %ebx
407683:	56                   	push   %esi
407684:	57                   	push   %edi
407685:	8b f9                	mov    %ecx,%edi
407687:	8d 8d f4 df ff ff    	lea    -0x200c(%ebp),%ecx
40768d:	51                   	push   %ecx
40768e:	50                   	push   %eax
40768f:	8b cf                	mov    %edi,%ecx
407691:	e8 93 ed ff ff       	call   0x406429
407696:	8b f0                	mov    %eax,%esi
407698:	85 f6                	test   %esi,%esi
40769a:	0f 88 ff 00 00 00    	js     0x40779f
4076a0:	8b 85 f4 df ff ff    	mov    -0x200c(%ebp),%eax
4076a6:	89 07                	mov    %eax,(%edi)
4076a8:	e9 d2 00 00 00       	jmp    0x40777f
4076ad:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076b3:	8b cf                	mov    %edi,%ecx
4076b5:	50                   	push   %eax
4076b6:	e8 7a f7 ff ff       	call   0x406e35
4076bb:	8b f0                	mov    %eax,%esi
4076bd:	85 f6                	test   %esi,%esi
4076bf:	0f 88 cc 00 00 00    	js     0x407791
4076c5:	33 f6                	xor    %esi,%esi
4076c7:	ff 34 f5 c0 16 40 00 	push   0x4016c0(,%esi,8)
4076ce:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076d4:	50                   	push   %eax
4076d5:	ff 15 8c f0 40 00    	call   *0x40f08c
4076db:	85 c0                	test   %eax,%eax
4076dd:	74 0a                	je     0x4076e9
4076df:	46                   	inc    %esi
4076e0:	83 fe 0e             	cmp    $0xe,%esi
4076e3:	72 e2                	jb     0x4076c7
4076e5:	33 db                	xor    %ebx,%ebx
4076e7:	eb 07                	jmp    0x4076f0
4076e9:	8b 1c f5 c4 16 40 00 	mov    0x4016c4(,%esi,8),%ebx
4076f0:	85 db                	test   %ebx,%ebx
4076f2:	0f 84 94 00 00 00    	je     0x40778c
4076f8:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076fe:	8b cf                	mov    %edi,%ecx
407700:	50                   	push   %eax
407701:	e8 2f f7 ff ff       	call   0x406e35
407706:	8b f0                	mov    %eax,%esi
407708:	85 f6                	test   %esi,%esi
40770a:	0f 88 81 00 00 00    	js     0x407791
407710:	6a 7b                	push   $0x7b
407712:	58                   	pop    %eax
407713:	66 3b 85 f8 df ff ff 	cmp    -0x2008(%ebp),%ax
40771a:	75 70                	jne    0x40778c
40771c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407720:	8b cf                	mov    %edi,%ecx
407722:	6a 00                	push   $0x0
407724:	74 3b                	je     0x407761
407726:	ff 75 0c             	push   0xc(%ebp)
407729:	8b 07                	mov    (%edi),%eax
40772b:	89 85 f0 df ff ff    	mov    %eax,-0x2010(%ebp)
407731:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
407737:	53                   	push   %ebx
407738:	50                   	push   %eax
407739:	e8 51 f8 ff ff       	call   0x406f8f
40773e:	8b f0                	mov    %eax,%esi
407740:	85 f6                	test   %esi,%esi
407742:	79 32                	jns    0x407776
407744:	8b 85 f0 df ff ff    	mov    -0x2010(%ebp),%eax
40774a:	8b cf                	mov    %edi,%ecx
40774c:	6a 00                	push   $0x0
40774e:	6a 00                	push   $0x0
407750:	89 07                	mov    %eax,(%edi)
407752:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
407758:	53                   	push   %ebx
407759:	50                   	push   %eax
40775a:	e8 30 f8 ff ff       	call   0x406f8f
40775f:	eb 30                	jmp    0x407791
407761:	6a 00                	push   $0x0
407763:	53                   	push   %ebx
407764:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
40776a:	50                   	push   %eax
40776b:	e8 1f f8 ff ff       	call   0x406f8f
407770:	8b f0                	mov    %eax,%esi
407772:	85 f6                	test   %esi,%esi
407774:	78 1b                	js     0x407791
407776:	8b cf                	mov    %edi,%ecx
407778:	e8 b5 fe ff ff       	call   0x407632
40777d:	8b 07                	mov    (%edi),%eax
40777f:	33 c9                	xor    %ecx,%ecx
407781:	66 3b 08             	cmp    (%eax),%cx
407784:	0f 85 23 ff ff ff    	jne    0x4076ad
40778a:	eb 05                	jmp    0x407791
40778c:	be 09 00 02 80       	mov    $0x80020009,%esi
407791:	ff b5 f4 df ff ff    	push   -0x200c(%ebp)
407797:	ff 15 28 f1 40 00    	call   *0x40f128
40779d:	8b c6                	mov    %esi,%eax
40779f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4077a2:	5f                   	pop    %edi
4077a3:	5e                   	pop    %esi
4077a4:	33 cd                	xor    %ebp,%ecx
4077a6:	5b                   	pop    %ebx
4077a7:	e8 b4 20 00 00       	call   0x409860
4077ac:	c9                   	leave
4077ad:	c2 08 00             	ret    $0x8
4077b0:	68 2c 04 00 00       	push   $0x42c
4077b5:	b8 6c a6 40 00       	mov    $0x40a66c,%eax
4077ba:	e8 ae 26 00 00       	call   0x409e6d
4077bf:	8b 55 10             	mov    0x10(%ebp),%edx
4077c2:	33 f6                	xor    %esi,%esi
4077c4:	8b 45 08             	mov    0x8(%ebp),%eax
4077c7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4077ca:	89 95 dc fb ff ff    	mov    %edx,-0x424(%ebp)
4077d0:	89 b5 d8 fb ff ff    	mov    %esi,-0x428(%ebp)
4077d6:	89 75 fc             	mov    %esi,-0x4(%ebp)
4077d9:	89 8d cc fb ff ff    	mov    %ecx,-0x434(%ebp)
4077df:	89 b5 c8 fb ff ff    	mov    %esi,-0x438(%ebp)
4077e5:	89 b5 e0 fb ff ff    	mov    %esi,-0x420(%ebp)
4077eb:	6a 02                	push   $0x2
4077ed:	59                   	pop    %ecx
4077ee:	51                   	push   %ecx
4077ef:	56                   	push   %esi
4077f0:	50                   	push   %eax
4077f1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4077f5:	ff 15 84 f0 40 00    	call   *0x40f084
4077fb:	8b f8                	mov    %eax,%edi
4077fd:	89 bd d4 fb ff ff    	mov    %edi,-0x42c(%ebp)
407803:	85 ff                	test   %edi,%edi
407805:	75 0c                	jne    0x407813
407807:	e8 ea ea ff ff       	call   0x4062f6
40780c:	8b f0                	mov    %eax,%esi
40780e:	e9 32 01 00 00       	jmp    0x407945
407813:	56                   	push   %esi
407814:	53                   	push   %ebx
407815:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
40781b:	57                   	push   %edi
40781c:	ff 15 b0 f0 40 00    	call   *0x40f0b0
407822:	8b d8                	mov    %eax,%ebx
407824:	85 db                	test   %ebx,%ebx
407826:	75 0a                	jne    0x407832
407828:	e8 c9 ea ff ff       	call   0x4062f6
40782d:	e9 0a 01 00 00       	jmp    0x40793c
407832:	53                   	push   %ebx
407833:	57                   	push   %edi
407834:	ff 15 b4 f0 40 00    	call   *0x40f0b4
40783a:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
407840:	85 c0                	test   %eax,%eax
407842:	74 e4                	je     0x407828
407844:	53                   	push   %ebx
407845:	57                   	push   %edi
407846:	ff 15 b8 f0 40 00    	call   *0x40f0b8
40784c:	8b d8                	mov    %eax,%ebx
40784e:	89 9d dc fb ff ff    	mov    %ebx,-0x424(%ebp)