4073d4:	66 c7 41 0c 01 01    	movw   $0x101,0xc(%ecx)
4073da:	89 0f                	mov    %ecx,(%edi)
4073dc:	8b 46 dc             	mov    -0x24(%esi),%eax
4073df:	89 07                	mov    %eax,(%edi)
4073e1:	8b 46 e0             	mov    -0x20(%esi),%eax
4073e4:	89 4e dc             	mov    %ecx,-0x24(%esi)
4073e7:	8b 4f 04             	mov    0x4(%edi),%ecx
4073ea:	89 47 04             	mov    %eax,0x4(%edi)
4073ed:	33 c0                	xor    %eax,%eax
4073ef:	89 4e e0             	mov    %ecx,-0x20(%esi)
4073f2:	8d 4e fc             	lea    -0x4(%esi),%ecx
4073f5:	89 47 08             	mov    %eax,0x8(%edi)
4073f8:	89 47 0c             	mov    %eax,0xc(%edi)
4073fb:	89 47 10             	mov    %eax,0x10(%edi)
4073fe:	89 47 14             	mov    %eax,0x14(%edi)
407401:	89 47 18             	mov    %eax,0x18(%edi)
407404:	89 47 1c             	mov    %eax,0x1c(%edi)
407407:	8b 46 e4             	mov    -0x1c(%esi),%eax
40740a:	89 47 08             	mov    %eax,0x8(%edi)
40740d:	8b 46 e8             	mov    -0x18(%esi),%eax
407410:	89 47 0c             	mov    %eax,0xc(%edi)
407413:	8b 46 ec             	mov    -0x14(%esi),%eax
407416:	89 47 10             	mov    %eax,0x10(%edi)
407419:	8b 46 f0             	mov    -0x10(%esi),%eax
40741c:	89 47 14             	mov    %eax,0x14(%edi)
40741f:	8b 46 f4             	mov    -0xc(%esi),%eax
407422:	89 47 18             	mov    %eax,0x18(%edi)
407425:	8b 46 f8             	mov    -0x8(%esi),%eax
407428:	89 47 1c             	mov    %eax,0x1c(%edi)
40742b:	33 c0                	xor    %eax,%eax
40742d:	c7 46 f4 00 00 00 00 	movl   $0x0,-0xc(%esi)
407434:	83 c7 20             	add    $0x20,%edi
407437:	c7 46 f8 07 00 00 00 	movl   $0x7,-0x8(%esi)
40743e:	66 89 46 e4          	mov    %ax,-0x1c(%esi)
407442:	89 7d ec             	mov    %edi,-0x14(%ebp)
407445:	3b cb                	cmp    %ebx,%ecx
407447:	0f 85 63 ff ff ff    	jne    0x4073b0
40744d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407450:	8b c7                	mov    %edi,%eax
407452:	5f                   	pop    %edi
407453:	5e                   	pop    %esi
407454:	5b                   	pop    %ebx
407455:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40745c:	8b e5                	mov    %ebp,%esp
40745e:	5d                   	pop    %ebp
40745f:	c3                   	ret
407460:	55                   	push   %ebp
407461:	8b ec                	mov    %esp,%ebp
407463:	56                   	push   %esi
407464:	8b 75 0c             	mov    0xc(%ebp),%esi
407467:	8b 4e 2c             	mov    0x2c(%esi),%ecx
40746a:	83 f9 07             	cmp    $0x7,%ecx
40746d:	76 2e                	jbe    0x40749d
40746f:	8b 46 18             	mov    0x18(%esi),%eax
407472:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407479:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40747f:	72 12                	jb     0x407493
407481:	8b 50 fc             	mov    -0x4(%eax),%edx
407484:	83 c1 23             	add    $0x23,%ecx
407487:	2b c2                	sub    %edx,%eax
407489:	83 c0 fc             	add    $0xfffffffc,%eax
40748c:	83 f8 1f             	cmp    $0x1f,%eax
40748f:	77 6b                	ja     0x4074fc
407491:	8b c2                	mov    %edx,%eax
407493:	51                   	push   %ecx
407494:	50                   	push   %eax
407495:	e8 56 f5 ff ff       	call   0x4069f0
40749a:	83 c4 08             	add    $0x8,%esp
40749d:	33 c0                	xor    %eax,%eax
40749f:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
4074a6:	c7 46 2c 07 00 00 00 	movl   $0x7,0x2c(%esi)
4074ad:	66 89 46 18          	mov    %ax,0x18(%esi)
4074b1:	8b 4e 14             	mov    0x14(%esi),%ecx
4074b4:	83 f9 07             	cmp    $0x7,%ecx
4074b7:	76 2d                	jbe    0x4074e6
4074b9:	8b 06                	mov    (%esi),%eax
4074bb:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4074c2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4074c8:	72 12                	jb     0x4074dc
4074ca:	8b 50 fc             	mov    -0x4(%eax),%edx
4074cd:	83 c1 23             	add    $0x23,%ecx
4074d0:	2b c2                	sub    %edx,%eax
4074d2:	83 c0 fc             	add    $0xfffffffc,%eax
4074d5:	83 f8 1f             	cmp    $0x1f,%eax
4074d8:	77 22                	ja     0x4074fc
4074da:	8b c2                	mov    %edx,%eax
4074dc:	51                   	push   %ecx
4074dd:	50                   	push   %eax
4074de:	e8 0d f5 ff ff       	call   0x4069f0
4074e3:	83 c4 08             	add    $0x8,%esp
4074e6:	33 c0                	xor    %eax,%eax
4074e8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4074ef:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4074f6:	66 89 06             	mov    %ax,(%esi)
4074f9:	5e                   	pop    %esi
4074fa:	5d                   	pop    %ebp
4074fb:	c3                   	ret
4074fc:	e8 fd 5e 00 00       	call   0x40d3fe
407501:	cc                   	int3
407502:	cc                   	int3
407503:	cc                   	int3
407504:	cc                   	int3
407505:	cc                   	int3
407506:	cc                   	int3
407507:	cc                   	int3
407508:	cc                   	int3
407509:	cc                   	int3
40750a:	cc                   	int3
40750b:	cc                   	int3
40750c:	cc                   	int3
40750d:	cc                   	int3
40750e:	cc                   	int3
40750f:	cc                   	int3
407510:	55                   	push   %ebp
407511:	8b ec                	mov    %esp,%ebp
407513:	6a ff                	push   $0xffffffff
407515:	68 37 01 43 00       	push   $0x430137
40751a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407520:	50                   	push   %eax
407521:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
407528:	81 ec 48 07 00 00    	sub    $0x748,%esp
40752e:	53                   	push   %ebx
40752f:	8b d9                	mov    %ecx,%ebx
407531:	33 c0                	xor    %eax,%eax
407533:	89 5d c8             	mov    %ebx,-0x38(%ebp)
407536:	89 45 e8             	mov    %eax,-0x18(%ebp)
407539:	56                   	push   %esi
40753a:	57                   	push   %edi
40753b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40753e:	89 03                	mov    %eax,(%ebx)
407540:	89 43 04             	mov    %eax,0x4(%ebx)
407543:	89 43 08             	mov    %eax,0x8(%ebx)
407546:	8d 7b 1c             	lea    0x1c(%ebx),%edi
407549:	89 45 fc             	mov    %eax,-0x4(%ebp)
40754c:	89 07                	mov    %eax,(%edi)
40754e:	89 47 04             	mov    %eax,0x4(%edi)
407551:	89 47 08             	mov    %eax,0x8(%edi)
407554:	89 47 0c             	mov    %eax,0xc(%edi)
407557:	89 47 10             	mov    %eax,0x10(%edi)
40755a:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
407561:	66 89 07             	mov    %ax,(%edi)
407564:	8d 4b 34             	lea    0x34(%ebx),%ecx
407567:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40756b:	ff 15 1c 12 43 00    	call   *0x43121c
407571:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407575:	ff 15 2c 10 43 00    	call   *0x43102c
40757b:	68 08 02 00 00       	push   $0x208
407580:	89 43 18             	mov    %eax,0x18(%ebx)
407583:	8d 85 ac f8 ff ff    	lea    -0x754(%ebp),%eax
407589:	6a 00                	push   $0x0
40758b:	50                   	push   %eax
40758c:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)
407593:	e8 28 3e 00 00       	call   0x40b3c0
407598:	83 c4 0c             	add    $0xc,%esp
40759b:	8d 85 ac f8 ff ff    	lea    -0x754(%ebp),%eax
4075a1:	68 04 01 00 00       	push   $0x104
4075a6:	50                   	push   %eax
4075a7:	6a 00                	push   $0x0
4075a9:	ff 15 30 10 43 00    	call   *0x431030
4075af:	6a 04                	push   $0x4
4075b1:	68 0a 03 00 00       	push   $0x30a
4075b6:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
4075bc:	50                   	push   %eax
4075bd:	8d 85 ac f8 ff ff    	lea    -0x754(%ebp),%eax
4075c3:	50                   	push   %eax
4075c4:	ff 15 40 12 43 00    	call   *0x431240
4075ca:	8b 35 4c 12 43 00    	mov    0x43124c,%esi
4075d0:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
4075d6:	6a 5c                	push   $0x5c
4075d8:	50                   	push   %eax
4075d9:	ff d6                	call   *%esi
4075db:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
4075e1:	68 0a 03 00 00       	push   $0x30a
4075e6:	50                   	push   %eax
4075e7:	ff 15 48 12 43 00    	call   *0x431248
4075ed:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
4075f3:	50                   	push   %eax
4075f4:	ff 15 44 12 43 00    	call   *0x431244
4075fa:	6a ff                	push   $0xffffffff
4075fc:	68 0a 03 00 00       	push   $0x30a
407601:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
407607:	68 14 15 43 00       	push   $0x431514
40760c:	50                   	push   %eax
40760d:	ff 15 38 12 43 00    	call   *0x431238
407613:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
407619:	6a 5c                	push   $0x5c
40761b:	50                   	push   %eax
40761c:	ff d6                	call   *%esi
40761e:	83 c4 38             	add    $0x38,%esp
407621:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
407627:	8b c4                	mov    %esp,%eax
407629:	89 08                	mov    %ecx,(%eax)
40762b:	e8 c0 18 00 00       	call   0x408ef0
407630:	83 c4 04             	add    $0x4,%esp
407633:	84 c0                	test   %al,%al
407635:	75 13                	jne    0x40764a
407637:	51                   	push   %ecx
407638:	8b c4                	mov    %esp,%eax
40763a:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
407640:	89 08                	mov    %ecx,(%eax)
407642:	e8 09 17 00 00       	call   0x408d50
407647:	83 c4 04             	add    $0x4,%esp
40764a:	6a 04                	push   $0x4
40764c:	68 08 02 00 00       	push   $0x208
407651:	8d 85 b4 fa ff ff    	lea    -0x54c(%ebp),%eax
407657:	50                   	push   %eax
407658:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
40765e:	50                   	push   %eax
40765f:	ff 15 3c 12 43 00    	call   *0x43123c
407665:	8d b5 b4 fa ff ff    	lea    -0x54c(%ebp),%esi
40766b:	83 c4 10             	add    $0x10,%esp
40766e:	8d 4e 02             	lea    0x2(%esi),%ecx
407671:	66 8b 06             	mov    (%esi),%ax
407674:	83 c6 02             	add    $0x2,%esi
407677:	66 85 c0             	test   %ax,%ax
40767a:	75 f5                	jne    0x407671
40767c:	8b 57 14             	mov    0x14(%edi),%edx
40767f:	2b f1                	sub    %ecx,%esi
407681:	d1 fe                	sar    $1,%esi
407683:	89 55 e4             	mov    %edx,-0x1c(%ebp)
407686:	3b f2                	cmp    %edx,%esi
407688:	77 33                	ja     0x4076bd
40768a:	89 7d f0             	mov    %edi,-0x10(%ebp)
40768d:	8b c7                	mov    %edi,%eax
40768f:	83 fa 07             	cmp    $0x7,%edx
407692:	76 05                	jbe    0x407699
407694:	8b 07                	mov    (%edi),%eax
407696:	89 45 f0             	mov    %eax,-0x10(%ebp)
407699:	89 77 10             	mov    %esi,0x10(%edi)
40769c:	8d 8d b4 fa ff ff    	lea    -0x54c(%ebp),%ecx
4076a2:	03 f6                	add    %esi,%esi
4076a4:	56                   	push   %esi
4076a5:	51                   	push   %ecx
4076a6:	50                   	push   %eax
4076a7:	e8 94 37 00 00       	call   0x40ae40
4076ac:	8b 45 f0             	mov    -0x10(%ebp),%eax
4076af:	83 c4 0c             	add    $0xc,%esp
4076b2:	33 c9                	xor    %ecx,%ecx
4076b4:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
4076b8:	e9 b7 00 00 00       	jmp    0x407774
4076bd:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
4076c3:	0f 87 64 02 00 00    	ja     0x40792d
4076c9:	8b ce                	mov    %esi,%ecx
4076cb:	83 c9 07             	or     $0x7,%ecx
4076ce:	81 f9 fe ff ff 7f    	cmp    $0x7ffffffe,%ecx
4076d4:	76 07                	jbe    0x4076dd
4076d6:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
4076db:	eb 24                	jmp    0x407701
4076dd:	8b c2                	mov    %edx,%eax
4076df:	d1 e8                	shr    $1,%eax
4076e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
4076e4:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
4076e9:	2b 45 f0             	sub    -0x10(%ebp),%eax
4076ec:	3b d0                	cmp    %eax,%edx
4076ee:	76 07                	jbe    0x4076f7
4076f0:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
4076f5:	eb 0a                	jmp    0x407701
4076f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
4076fa:	03 c2                	add    %edx,%eax
4076fc:	3b c8                	cmp    %eax,%ecx
4076fe:	0f 42 c8             	cmovb  %eax,%ecx
407701:	8d 45 f0             	lea    -0x10(%ebp),%eax
407704:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407707:	50                   	push   %eax
407708:	57                   	push   %edi
407709:	e8 22 f6 ff ff       	call   0x406d30
40770e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407711:	89 77 10             	mov    %esi,0x10(%edi)
407714:	03 f6                	add    %esi,%esi
407716:	89 4f 14             	mov    %ecx,0x14(%edi)
407719:	8d 8d b4 fa ff ff    	lea    -0x54c(%ebp),%ecx
40771f:	56                   	push   %esi
407720:	51                   	push   %ecx
407721:	50                   	push   %eax
407722:	89 45 e8             	mov    %eax,-0x18(%ebp)
407725:	e8 16 37 00 00       	call   0x40ae40
40772a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40772d:	33 c9                	xor    %ecx,%ecx
40772f:	83 c4 14             	add    $0x14,%esp
407732:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
407736:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407739:	83 f9 07             	cmp    $0x7,%ecx
40773c:	76 34                	jbe    0x407772
40773e:	8b 07                	mov    (%edi),%eax
407740:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407747:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40774d:	72 16                	jb     0x407765
40774f:	8b 50 fc             	mov    -0x4(%eax),%edx
407752:	83 c1 23             	add    $0x23,%ecx
407755:	2b c2                	sub    %edx,%eax
407757:	83 c0 fc             	add    $0xfffffffc,%eax
40775a:	83 f8 1f             	cmp    $0x1f,%eax
40775d:	0f 87 cf 01 00 00    	ja     0x407932
407763:	8b c2                	mov    %edx,%eax
407765:	51                   	push   %ecx
407766:	50                   	push   %eax
407767:	e8 84 f2 ff ff       	call   0x4069f0
40776c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40776f:	83 c4 08             	add    $0x8,%esp
407772:	89 07                	mov    %eax,(%edi)
407774:	6a 24                	push   $0x24
407776:	e8 45 f2 ff ff       	call   0x4069c0
40777b:	8b f0                	mov    %eax,%esi
40777d:	83 c4 04             	add    $0x4,%esp
407780:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407783:	33 c0                	xor    %eax,%eax
407785:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
407789:	85 f6                	test   %esi,%esi
40778b:	74 3a                	je     0x4077c7
40778d:	50                   	push   %eax
40778e:	68 1c 15 43 00       	push   $0x43151c
407793:	8d 4d cc             	lea    -0x34(%ebp),%ecx
407796:	89 45 cc             	mov    %eax,-0x34(%ebp)
407799:	89 45 d0             	mov    %eax,-0x30(%ebp)
40779c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40779f:	89 45 d8             	mov    %eax,-0x28(%ebp)
4077a2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4077a5:	89 45 e0             	mov    %eax,-0x20(%ebp)
4077a8:	e8 e3 f5 ff ff       	call   0x406d90
4077ad:	b8 01 00 00 00       	mov    $0x1,%eax
4077b2:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4077b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4077b9:	8b ce                	mov    %esi,%ecx
4077bb:	89 45 e8             	mov    %eax,-0x18(%ebp)
4077be:	8d 45 cc             	lea    -0x34(%ebp),%eax
4077c1:	50                   	push   %eax
4077c2:	e8 e5 bf ff ff       	call   0x4037ac
4077c7:	89 43 10             	mov    %eax,0x10(%ebx)
4077ca:	8b 45 ec             	mov    -0x14(%ebp),%eax
4077cd:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4077d4:	a8 01                	test   $0x1,%al
4077d6:	74 40                	je     0x407818
4077d8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4077db:	83 e0 fe             	and    $0xfffffffe,%eax
4077de:	89 45 ec             	mov    %eax,-0x14(%ebp)
4077e1:	83 f9 07             	cmp    $0x7,%ecx
4077e4:	76 32                	jbe    0x407818
4077e6:	8b 55 cc             	mov    -0x34(%ebp),%edx
4077e9:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4077f0:	8b c2                	mov    %edx,%eax
4077f2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4077f8:	72 14                	jb     0x40780e
4077fa:	8b 50 fc             	mov    -0x4(%eax),%edx
4077fd:	83 c1 23             	add    $0x23,%ecx
407800:	2b c2                	sub    %edx,%eax
407802:	83 c0 fc             	add    $0xfffffffc,%eax
407805:	83 f8 1f             	cmp    $0x1f,%eax
407808:	0f 87 24 01 00 00    	ja     0x407932
40780e:	51                   	push   %ecx
40780f:	52                   	push   %edx