407352:	8b 75 0c             	mov    0xc(%ebp),%esi
407355:	e8 40 fc ff ff       	call   0x406f9a
40735a:	8b 75 08             	mov    0x8(%ebp),%esi
40735d:	83 c4 1c             	add    $0x1c,%esp
407360:	ff 45 f0             	incl   -0x10(%ebp)
407363:	83 c7 14             	add    $0x14,%edi
407366:	e9 5d ff ff ff       	jmp    0x4072c8
40736b:	8b 7d 18             	mov    0x18(%ebp),%edi
40736e:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
407372:	74 0a                	je     0x40737e
407374:	6a 01                	push   $0x1
407376:	56                   	push   %esi
407377:	e8 24 f7 ff ff       	call   0x406aa0
40737c:	59                   	pop    %ecx
40737d:	59                   	pop    %ecx
40737e:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
407382:	0f 85 ae 00 00 00    	jne    0x407436
407388:	8b 07                	mov    (%edi),%eax
40738a:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40738f:	3d 21 05 93 19       	cmp    $0x19930521,%eax
407394:	0f 82 9c 00 00 00    	jb     0x407436
40739a:	8b 7f 1c             	mov    0x1c(%edi),%edi
40739d:	85 ff                	test   %edi,%edi
40739f:	0f 84 91 00 00 00    	je     0x407436
4073a5:	56                   	push   %esi
4073a6:	e8 81 f7 ff ff       	call   0x406b2c
4073ab:	84 c0                	test   %al,%al
4073ad:	59                   	pop    %ecx
4073ae:	0f 85 82 00 00 00    	jne    0x407436
4073b4:	e8 93 51 00 00       	call   0x40c54c
4073b9:	e8 8e 51 00 00       	call   0x40c54c
4073be:	e8 89 51 00 00       	call   0x40c54c
4073c3:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
4073c9:	e8 7e 51 00 00       	call   0x40c54c
4073ce:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
4073d2:	8b 4d 10             	mov    0x10(%ebp),%ecx
4073d5:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
4073db:	56                   	push   %esi
4073dc:	75 05                	jne    0x4073e3
4073de:	ff 75 0c             	push   0xc(%ebp)
4073e1:	eb 03                	jmp    0x4073e6
4073e3:	ff 75 24             	push   0x24(%ebp)
4073e6:	e8 d8 ec ff ff       	call   0x4060c3
4073eb:	8b 75 18             	mov    0x18(%ebp),%esi
4073ee:	6a ff                	push   $0xffffffff
4073f0:	56                   	push   %esi
4073f1:	ff 75 14             	push   0x14(%ebp)
4073f4:	ff 75 0c             	push   0xc(%ebp)
4073f7:	e8 7e f5 ff ff       	call   0x40697a
4073fc:	83 c4 10             	add    $0x10,%esp
4073ff:	ff 76 1c             	push   0x1c(%esi)
407402:	e8 9e f7 ff ff       	call   0x406ba5
407407:	8b 5d 18             	mov    0x18(%ebp),%ebx
40740a:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40740e:	76 26                	jbe    0x407436
407410:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
407414:	0f 85 1c fe ff ff    	jne    0x407236
40741a:	ff 75 24             	push   0x24(%ebp)
40741d:	ff 75 20             	push   0x20(%ebp)
407420:	ff 75 f8             	push   -0x8(%ebp)
407423:	53                   	push   %ebx
407424:	ff 75 14             	push   0x14(%ebp)
407427:	ff 75 10             	push   0x10(%ebp)
40742a:	ff 75 0c             	push   0xc(%ebp)
40742d:	56                   	push   %esi
40742e:	e8 d3 fb ff ff       	call   0x407006
407433:	83 c4 20             	add    $0x20,%esp
407436:	e8 11 51 00 00       	call   0x40c54c
40743b:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
407442:	74 05                	je     0x407449
407444:	e8 0c 54 00 00       	call   0x40c855
407449:	5f                   	pop    %edi
40744a:	5e                   	pop    %esi
40744b:	5b                   	pop    %ebx
40744c:	c9                   	leave
40744d:	c3                   	ret
40744e:	56                   	push   %esi
40744f:	ff 74 24 08          	push   0x8(%esp)
407453:	8b f1                	mov    %ecx,%esi
407455:	e8 9b e4 ff ff       	call   0x4058f5
40745a:	c7 06 70 76 41 00    	movl   $0x417670,(%esi)
407460:	8b c6                	mov    %esi,%eax
407462:	5e                   	pop    %esi
407463:	c2 04 00             	ret    $0x4
407466:	55                   	push   %ebp
407467:	8b ec                	mov    %esp,%ebp
407469:	53                   	push   %ebx
40746a:	56                   	push   %esi
40746b:	57                   	push   %edi
40746c:	e8 db 50 00 00       	call   0x40c54c
407471:	83 b8 0c 02 00 00 00 	cmpl   $0x0,0x20c(%eax)
407478:	8b 45 18             	mov    0x18(%ebp),%eax
40747b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40747e:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
407483:	be ff ff ff 1f       	mov    $0x1fffffff,%esi
407488:	bb 22 05 93 19       	mov    $0x19930522,%ebx
40748d:	75 20                	jne    0x4074af
40748f:	8b 11                	mov    (%ecx),%edx
407491:	3b d7                	cmp    %edi,%edx
407493:	74 1a                	je     0x4074af
407495:	81 fa 26 00 00 80    	cmp    $0x80000026,%edx
40749b:	74 12                	je     0x4074af
40749d:	8b 10                	mov    (%eax),%edx
40749f:	23 d6                	and    %esi,%edx
4074a1:	3b d3                	cmp    %ebx,%edx
4074a3:	72 0a                	jb     0x4074af
4074a5:	f6 40 20 01          	testb  $0x1,0x20(%eax)
4074a9:	0f 85 93 00 00 00    	jne    0x407542
4074af:	f6 41 04 66          	testb  $0x66,0x4(%ecx)
4074b3:	74 23                	je     0x4074d8
4074b5:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4074b9:	0f 84 83 00 00 00    	je     0x407542
4074bf:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
4074c3:	75 7d                	jne    0x407542
4074c5:	6a ff                	push   $0xffffffff
4074c7:	50                   	push   %eax
4074c8:	ff 75 14             	push   0x14(%ebp)
4074cb:	ff 75 0c             	push   0xc(%ebp)
4074ce:	e8 a7 f4 ff ff       	call   0x40697a
4074d3:	83 c4 10             	add    $0x10,%esp
4074d6:	eb 6a                	jmp    0x407542
4074d8:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
4074dc:	75 12                	jne    0x4074f0
4074de:	8b 10                	mov    (%eax),%edx
4074e0:	23 d6                	and    %esi,%edx
4074e2:	81 fa 21 05 93 19    	cmp    $0x19930521,%edx
4074e8:	72 58                	jb     0x407542
4074ea:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
4074ee:	74 52                	je     0x407542
4074f0:	39 39                	cmp    %edi,(%ecx)
4074f2:	75 32                	jne    0x407526
4074f4:	83 79 10 03          	cmpl   $0x3,0x10(%ecx)
4074f8:	72 2c                	jb     0x407526
4074fa:	39 59 14             	cmp    %ebx,0x14(%ecx)
4074fd:	76 27                	jbe    0x407526
4074ff:	8b 51 1c             	mov    0x1c(%ecx),%edx
407502:	8b 52 08             	mov    0x8(%edx),%edx
407505:	85 d2                	test   %edx,%edx
407507:	74 1d                	je     0x407526
407509:	0f b6 75 24          	movzbl 0x24(%ebp),%esi
40750d:	56                   	push   %esi
40750e:	ff 75 20             	push   0x20(%ebp)
407511:	ff 75 1c             	push   0x1c(%ebp)
407514:	50                   	push   %eax
407515:	ff 75 14             	push   0x14(%ebp)
407518:	ff 75 10             	push   0x10(%ebp)
40751b:	ff 75 0c             	push   0xc(%ebp)
40751e:	51                   	push   %ecx
40751f:	ff d2                	call   *%edx
407521:	83 c4 20             	add    $0x20,%esp
407524:	eb 1f                	jmp    0x407545
407526:	ff 75 20             	push   0x20(%ebp)
407529:	ff 75 1c             	push   0x1c(%ebp)
40752c:	ff 75 24             	push   0x24(%ebp)
40752f:	50                   	push   %eax
407530:	ff 75 14             	push   0x14(%ebp)
407533:	ff 75 10             	push   0x10(%ebp)
407536:	ff 75 0c             	push   0xc(%ebp)
407539:	51                   	push   %ecx
40753a:	e8 b9 fb ff ff       	call   0x4070f8
40753f:	83 c4 20             	add    $0x20,%esp
407542:	33 c0                	xor    %eax,%eax
407544:	40                   	inc    %eax
407545:	5f                   	pop    %edi
407546:	5e                   	pop    %esi
407547:	5b                   	pop    %ebx
407548:	5d                   	pop    %ebp
407549:	c3                   	ret
40754a:	8b 44 24 04          	mov    0x4(%esp),%eax
40754e:	a3 f4 d9 41 00       	mov    %eax,0x41d9f4
407553:	c3                   	ret
407554:	55                   	push   %ebp
407555:	8d ac 24 58 fd ff ff 	lea    -0x2a8(%esp),%ebp
40755c:	81 ec 28 03 00 00    	sub    $0x328,%esp
407562:	a1 20 c5 41 00       	mov    0x41c520,%eax
407567:	33 c5                	xor    %ebp,%eax
407569:	89 85 a4 02 00 00    	mov    %eax,0x2a4(%ebp)
40756f:	56                   	push   %esi
407570:	89 85 88 00 00 00    	mov    %eax,0x88(%ebp)
407576:	89 8d 84 00 00 00    	mov    %ecx,0x84(%ebp)
40757c:	89 95 80 00 00 00    	mov    %edx,0x80(%ebp)
407582:	89 5d 7c             	mov    %ebx,0x7c(%ebp)
407585:	89 75 78             	mov    %esi,0x78(%ebp)
407588:	89 7d 74             	mov    %edi,0x74(%ebp)
40758b:	66 8c 95 a0 00 00 00 	data16 mov %ss,0xa0(%ebp)
407592:	66 8c 8d 94 00 00 00 	data16 mov %cs,0x94(%ebp)
407599:	66 8c 5d 70          	data16 mov %ds,0x70(%ebp)
40759d:	66 8c 45 6c          	data16 mov %es,0x6c(%ebp)
4075a1:	66 8c 65 68          	data16 mov %fs,0x68(%ebp)
4075a5:	66 8c 6d 64          	data16 mov %gs,0x64(%ebp)
4075a9:	9c                   	pushf
4075aa:	8f 85 98 00 00 00    	pop    0x98(%ebp)
4075b0:	8b b5 ac 02 00 00    	mov    0x2ac(%ebp),%esi
4075b6:	8d 85 ac 02 00 00    	lea    0x2ac(%ebp),%eax
4075bc:	89 85 9c 00 00 00    	mov    %eax,0x9c(%ebp)
4075c2:	c7 45 d8 01 00 01 00 	movl   $0x10001,-0x28(%ebp)
4075c9:	89 b5 90 00 00 00    	mov    %esi,0x90(%ebp)
4075cf:	8b 40 fc             	mov    -0x4(%eax),%eax
4075d2:	6a 50                	push   $0x50
4075d4:	89 85 8c 00 00 00    	mov    %eax,0x8c(%ebp)
4075da:	8d 45 80             	lea    -0x80(%ebp),%eax
4075dd:	6a 00                	push   $0x0
4075df:	50                   	push   %eax
4075e0:	e8 6b e5 ff ff       	call   0x405b50
4075e5:	8d 45 80             	lea    -0x80(%ebp),%eax
4075e8:	89 45 d0             	mov    %eax,-0x30(%ebp)
4075eb:	8d 45 d8             	lea    -0x28(%ebp),%eax
4075ee:	83 c4 0c             	add    $0xc,%esp
4075f1:	c7 45 80 0d 00 00 c0 	movl   $0xc000000d,-0x80(%ebp)
4075f8:	89 75 8c             	mov    %esi,-0x74(%ebp)
4075fb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4075fe:	ff 15 d4 70 41 00    	call   *0x4170d4
407604:	6a 00                	push   $0x0
407606:	8b f0                	mov    %eax,%esi
407608:	ff 15 d0 70 41 00    	call   *0x4170d0
40760e:	8d 45 d0             	lea    -0x30(%ebp),%eax
407611:	50                   	push   %eax
407612:	ff 15 cc 70 41 00    	call   *0x4170cc
407618:	85 c0                	test   %eax,%eax
40761a:	75 0c                	jne    0x407628
40761c:	85 f6                	test   %esi,%esi
40761e:	75 08                	jne    0x407628
407620:	6a 02                	push   $0x2
407622:	e8 57 70 00 00       	call   0x40e67e
407627:	59                   	pop    %ecx
407628:	68 0d 00 00 c0       	push   $0xc000000d
40762d:	ff 15 0c 70 41 00    	call   *0x41700c
407633:	50                   	push   %eax
407634:	ff 15 74 70 41 00    	call   *0x417074
40763a:	8b 8d a4 02 00 00    	mov    0x2a4(%ebp),%ecx
407640:	33 cd                	xor    %ebp,%ecx
407642:	5e                   	pop    %esi
407643:	e8 ed e8 ff ff       	call   0x405f35
407648:	81 c5 a8 02 00 00    	add    $0x2a8,%ebp
40764e:	c9                   	leave
40764f:	c3                   	ret
407650:	55                   	push   %ebp
407651:	8b ec                	mov    %esp,%ebp
407653:	ff 35 f4 d9 41 00    	push   0x41d9f4
407659:	e8 e4 4c 00 00       	call   0x40c342
40765e:	85 c0                	test   %eax,%eax
407660:	59                   	pop    %ecx
407661:	74 03                	je     0x407666
407663:	5d                   	pop    %ebp
407664:	ff e0                	jmp    *%eax
407666:	6a 02                	push   $0x2
407668:	e8 11 70 00 00       	call   0x40e67e
40766d:	59                   	pop    %ecx
40766e:	5d                   	pop    %ebp
40766f:	e9 e0 fe ff ff       	jmp    0x407554
407674:	33 c0                	xor    %eax,%eax
407676:	50                   	push   %eax
407677:	50                   	push   %eax
407678:	50                   	push   %eax
407679:	50                   	push   %eax
40767a:	50                   	push   %eax
40767b:	e8 d0 ff ff ff       	call   0x407650
407680:	83 c4 14             	add    $0x14,%esp
407683:	c3                   	ret
407684:	55                   	push   %ebp
407685:	8b ec                	mov    %esp,%ebp
407687:	51                   	push   %ecx
407688:	53                   	push   %ebx
407689:	56                   	push   %esi
40768a:	8b 75 08             	mov    0x8(%ebp),%esi
40768d:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
407691:	57                   	push   %edi
407692:	bb f0 cb 41 00       	mov    $0x41cbf0,%ebx
407697:	0f 85 70 01 00 00    	jne    0x40780d
40769d:	56                   	push   %esi
40769e:	e8 a3 73 00 00       	call   0x40ea46
4076a3:	83 f8 ff             	cmp    $0xffffffff,%eax
4076a6:	59                   	pop    %ecx
4076a7:	74 2e                	je     0x4076d7
4076a9:	56                   	push   %esi
4076aa:	e8 97 73 00 00       	call   0x40ea46
4076af:	83 f8 fe             	cmp    $0xfffffffe,%eax
4076b2:	59                   	pop    %ecx
4076b3:	74 22                	je     0x4076d7
4076b5:	56                   	push   %esi
4076b6:	e8 8b 73 00 00       	call   0x40ea46
4076bb:	c1 f8 05             	sar    $0x5,%eax
4076be:	56                   	push   %esi
4076bf:	8d 3c 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%edi
4076c6:	e8 7b 73 00 00       	call   0x40ea46
4076cb:	83 e0 1f             	and    $0x1f,%eax
4076ce:	6b c0 28             	imul   $0x28,%eax,%eax
4076d1:	03 07                	add    (%edi),%eax
4076d3:	59                   	pop    %ecx
4076d4:	59                   	pop    %ecx
4076d5:	eb 02                	jmp    0x4076d9
4076d7:	8b c3                	mov    %ebx,%eax
4076d9:	f6 40 24 7f          	testb  $0x7f,0x24(%eax)
4076dd:	74 4e                	je     0x40772d
4076df:	ff 4e 04             	decl   0x4(%esi)
4076e2:	78 0a                	js     0x4076ee
4076e4:	8b 0e                	mov    (%esi),%ecx
4076e6:	0f b6 01             	movzbl (%ecx),%eax
4076e9:	41                   	inc    %ecx
4076ea:	89 0e                	mov    %ecx,(%esi)
4076ec:	eb 07                	jmp    0x4076f5
4076ee:	56                   	push   %esi
4076ef:	e8 32 72 00 00       	call   0x40e926
4076f4:	59                   	pop    %ecx
4076f5:	83 f8 ff             	cmp    $0xffffffff,%eax
4076f8:	75 09                	jne    0x407703
4076fa:	66 0d ff ff          	or     $0xffff,%ax
4076fe:	e9 23 01 00 00       	jmp    0x407826
407703:	ff 4e 04             	decl   0x4(%esi)
407706:	88 45 08             	mov    %al,0x8(%ebp)
407709:	78 0a                	js     0x407715
40770b:	8b 0e                	mov    (%esi),%ecx
40770d:	0f b6 01             	movzbl (%ecx),%eax
407710:	41                   	inc    %ecx
407711:	89 0e                	mov    %ecx,(%esi)
407713:	eb 07                	jmp    0x40771c
407715:	56                   	push   %esi
407716:	e8 0b 72 00 00       	call   0x40e926
40771b:	59                   	pop    %ecx
40771c:	83 f8 ff             	cmp    $0xffffffff,%eax
40771f:	74 d9                	je     0x4076fa
407721:	88 45 09             	mov    %al,0x9(%ebp)
407724:	66 8b 45 08          	mov    0x8(%ebp),%ax
407728:	e9 f9 00 00 00       	jmp    0x407826
40772d:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
407731:	0f 85 d6 00 00 00    	jne    0x40780d
407737:	56                   	push   %esi
407738:	e8 09 73 00 00       	call   0x40ea46
40773d:	83 f8 ff             	cmp    $0xffffffff,%eax
407740:	59                   	pop    %ecx
407741:	74 2e                	je     0x407771
407743:	56                   	push   %esi
407744:	e8 fd 72 00 00       	call   0x40ea46
407749:	83 f8 fe             	cmp    $0xfffffffe,%eax
40774c:	59                   	pop    %ecx
40774d:	74 22                	je     0x407771
40774f:	56                   	push   %esi
407750:	e8 f1 72 00 00       	call   0x40ea46
407755:	c1 f8 05             	sar    $0x5,%eax
407758:	56                   	push   %esi
407759:	8d 3c 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%edi
407760:	e8 e1 72 00 00       	call   0x40ea46
407765:	83 e0 1f             	and    $0x1f,%eax
407768:	6b c0 28             	imul   $0x28,%eax,%eax
40776b:	03 07                	add    (%edi),%eax
40776d:	59                   	pop    %ecx
40776e:	59                   	pop    %ecx
40776f:	eb 02                	jmp    0x407773
407771:	8b c3                	mov    %ebx,%eax
407773:	f6 40 04 80          	testb  $0x80,0x4(%eax)