4073bc:	89 01                	mov    %eax,(%ecx)
4073be:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4073c1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4073c4:	89 01                	mov    %eax,(%ecx)
4073c6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4073c9:	85 c9                	test   %ecx,%ecx
4073cb:	74 10                	je     0x4073dd
4073cd:	8b 01                	mov    (%ecx),%eax
4073cf:	51                   	push   %ecx
4073d0:	8b 70 08             	mov    0x8(%eax),%esi
4073d3:	8b ce                	mov    %esi,%ecx
4073d5:	ff 15 20 23 41 00    	call   *0x412320
4073db:	ff d6                	call   *%esi
4073dd:	5e                   	pop    %esi
4073de:	8b c3                	mov    %ebx,%eax
4073e0:	5b                   	pop    %ebx
4073e1:	5f                   	pop    %edi
4073e2:	c9                   	leave
4073e3:	c2 04 00             	ret    $0x4
4073e6:	6a 1c                	push   $0x1c
4073e8:	b8 bb fa 40 00       	mov    $0x40fabb,%eax
4073ed:	e8 5d 7f 00 00       	call   0x40f34f
4073f2:	8b fa                	mov    %edx,%edi
4073f4:	89 7d dc             	mov    %edi,-0x24(%ebp)
4073f7:	8b f1                	mov    %ecx,%esi
4073f9:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4073fc:	ff 15 f8 21 41 00    	call   *0x4121f8
407402:	33 db                	xor    %ebx,%ebx
407404:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407407:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40740a:	ff 15 f8 21 41 00    	call   *0x4121f8
407410:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407414:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407417:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40741b:	85 f6                	test   %esi,%esi
40741d:	75 23                	jne    0x407442
40741f:	88 5d fc             	mov    %bl,-0x4(%ebp)
407422:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407425:	ff 15 30 22 41 00    	call   *0x412230
40742b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40742f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407432:	ff 15 30 22 41 00    	call   *0x412230
407438:	b8 08 10 04 80       	mov    $0x80041008,%eax
40743d:	e9 7f 01 00 00       	jmp    0x4075c1
407442:	8b 45 0c             	mov    0xc(%ebp),%eax
407445:	8b 10                	mov    (%eax),%edx
407447:	85 d2                	test   %edx,%edx
407449:	74 0e                	je     0x407459
40744b:	8b ce                	mov    %esi,%ecx
40744d:	e8 77 01 00 00       	call   0x4075c9
407452:	8b f0                	mov    %eax,%esi
407454:	e9 4d 01 00 00       	jmp    0x4075a6
407459:	85 ff                	test   %edi,%edi
40745b:	8b 7d 08             	mov    0x8(%ebp),%edi
40745e:	75 1e                	jne    0x40747e
407460:	85 ff                	test   %edi,%edi
407462:	75 1a                	jne    0x40747e
407464:	51                   	push   %ecx
407465:	53                   	push   %ebx
407466:	83 ec 0c             	sub    $0xc,%esp
407469:	53                   	push   %ebx
40746a:	6a 0a                	push   $0xa
40746c:	5a                   	pop    %edx
40746d:	8b ce                	mov    %esi,%ecx
40746f:	e8 9e 01 00 00       	call   0x407612
407474:	8b f0                	mov    %eax,%esi
407476:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407479:	e9 28 01 00 00       	jmp    0x4075a6
40747e:	68 98 16 40 00       	push   $0x401698
407483:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407486:	ff 15 2c 22 41 00    	call   *0x41222c
40748c:	ff 75 dc             	push   -0x24(%ebp)
40748f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407492:	ff 15 2c 22 41 00    	call   *0x41222c
407498:	6a 5c                	push   $0x5c
40749a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40749d:	ff 15 10 22 41 00    	call   *0x412210
4074a3:	89 45 d8             	mov    %eax,-0x28(%ebp)
4074a6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4074a9:	83 f8 ff             	cmp    $0xffffffff,%eax
4074ac:	74 55                	je     0x407503
4074ae:	50                   	push   %eax
4074af:	8d 45 dc             	lea    -0x24(%ebp),%eax
4074b2:	50                   	push   %eax
4074b3:	ff 15 20 22 41 00    	call   *0x412220
4074b9:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4074bd:	50                   	push   %eax
4074be:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4074c1:	ff 15 24 22 41 00    	call   *0x412224
4074c7:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4074cb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4074ce:	ff 15 30 22 41 00    	call   *0x412230
4074d4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4074d7:	40                   	inc    %eax
4074d8:	50                   	push   %eax
4074d9:	8d 45 d8             	lea    -0x28(%ebp),%eax
4074dc:	50                   	push   %eax
4074dd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4074e0:	ff 15 0c 22 41 00    	call   *0x41220c
4074e6:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4074ea:	50                   	push   %eax
4074eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4074ee:	ff 15 24 22 41 00    	call   *0x412224
4074f4:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4074f8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4074fb:	ff 15 30 22 41 00    	call   *0x412230
407501:	eb 08                	jmp    0x40750b
407503:	6a 40                	push   $0x40
407505:	ff 15 10 22 41 00    	call   *0x412210
40750b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40750e:	ff 15 38 22 41 00    	call   *0x412238
407514:	8b 40 04             	mov    0x4(%eax),%eax
407517:	85 c0                	test   %eax,%eax
407519:	74 06                	je     0x407521
40751b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40751e:	89 45 e0             	mov    %eax,-0x20(%ebp)
407521:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407524:	ff 15 38 22 41 00    	call   *0x412238
40752a:	8b 40 04             	mov    0x4(%eax),%eax
40752d:	85 c0                	test   %eax,%eax
40752f:	8b 45 ec             	mov    -0x14(%ebp),%eax
407532:	75 02                	jne    0x407536
407534:	8b c3                	mov    %ebx,%eax
407536:	ff 75 0c             	push   0xc(%ebp)
407539:	ff 75 e0             	push   -0x20(%ebp)
40753c:	8b d7                	mov    %edi,%edx
40753e:	8b c8                	mov    %eax,%ecx
407540:	e8 48 02 00 00       	call   0x40778d
407545:	8b f8                	mov    %eax,%edi
407547:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40754a:	85 ff                	test   %edi,%edi
40754c:	79 1d                	jns    0x40756b
40754e:	88 5d fc             	mov    %bl,-0x4(%ebp)
407551:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407554:	ff 15 30 22 41 00    	call   *0x412230
40755a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40755e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407561:	ff 15 30 22 41 00    	call   *0x412230
407567:	8b c7                	mov    %edi,%eax
407569:	eb 56                	jmp    0x4075c1
40756b:	51                   	push   %ecx
40756c:	8b 45 0c             	mov    0xc(%ebp),%eax
40756f:	ff 30                	push   (%eax)
407571:	83 ec 0c             	sub    $0xc,%esp
407574:	53                   	push   %ebx
407575:	6a 0a                	push   $0xa
407577:	5a                   	pop    %edx
407578:	8b ce                	mov    %esi,%ecx
40757a:	e8 93 00 00 00       	call   0x407612
40757f:	8b f0                	mov    %eax,%esi
407581:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407584:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40758b:	eb 19                	jmp    0x4075a6
40758d:	c7 45 e4 06 10 04 80 	movl   $0x80041006,-0x1c(%ebp)
407594:	b8 9a 75 40 00       	mov    $0x40759a,%eax
407599:	c3                   	ret
40759a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4075a1:	33 db                	xor    %ebx,%ebx
4075a3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4075a6:	88 5d fc             	mov    %bl,-0x4(%ebp)
4075a9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4075ac:	ff 15 30 22 41 00    	call   *0x412230
4075b2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4075b6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4075b9:	ff 15 30 22 41 00    	call   *0x412230
4075bf:	8b c6                	mov    %esi,%eax
4075c1:	e8 33 7d 00 00       	call   0x40f2f9
4075c6:	c2 08 00             	ret    $0x8
4075c9:	8b ff                	mov    %edi,%edi
4075cb:	55                   	push   %ebp
4075cc:	8b ec                	mov    %esp,%ebp
4075ce:	51                   	push   %ecx
4075cf:	51                   	push   %ecx
4075d0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4075d4:	56                   	push   %esi
4075d5:	8b f1                	mov    %ecx,%esi
4075d7:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
4075de:	57                   	push   %edi
4075df:	8b fa                	mov    %edx,%edi
4075e1:	85 f6                	test   %esi,%esi
4075e3:	75 07                	jne    0x4075ec
4075e5:	b8 08 10 04 80       	mov    $0x80041008,%eax
4075ea:	eb 22                	jmp    0x40760e
4075ec:	8d 45 f8             	lea    -0x8(%ebp),%eax
4075ef:	50                   	push   %eax
4075f0:	8d 55 fc             	lea    -0x4(%ebp),%edx
4075f3:	e8 54 fd ff ff       	call   0x40734c
4075f8:	85 c0                	test   %eax,%eax
4075fa:	78 12                	js     0x40760e
4075fc:	8b 55 f8             	mov    -0x8(%ebp),%edx
4075ff:	51                   	push   %ecx
407600:	57                   	push   %edi
407601:	83 ec 0c             	sub    $0xc,%esp
407604:	8b ce                	mov    %esi,%ecx
407606:	ff 75 fc             	push   -0x4(%ebp)
407609:	e8 04 00 00 00       	call   0x407612
40760e:	5f                   	pop    %edi
40760f:	5e                   	pop    %esi
407610:	c9                   	leave
407611:	c3                   	ret
407612:	8b ff                	mov    %edi,%edi
407614:	55                   	push   %ebp
407615:	8b ec                	mov    %esp,%ebp
407617:	83 ec 0c             	sub    $0xc,%esp
40761a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40761e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407622:	53                   	push   %ebx
407623:	56                   	push   %esi
407624:	57                   	push   %edi
407625:	8b f9                	mov    %ecx,%edi
407627:	89 55 f4             	mov    %edx,-0xc(%ebp)
40762a:	85 ff                	test   %edi,%edi
40762c:	0f 84 4f 01 00 00    	je     0x407781
407632:	8b 37                	mov    (%edi),%esi
407634:	8d 45 f8             	lea    -0x8(%ebp),%eax
407637:	50                   	push   %eax
407638:	68 40 11 40 00       	push   $0x401140
40763d:	57                   	push   %edi
40763e:	8b 0e                	mov    (%esi),%ecx
407640:	ff 15 20 23 41 00    	call   *0x412320
407646:	ff 16                	call   *(%esi)
407648:	85 c0                	test   %eax,%eax
40764a:	0f 88 36 01 00 00    	js     0x407786
407650:	8b 37                	mov    (%edi),%esi
407652:	8d 45 fc             	lea    -0x4(%ebp),%eax
407655:	50                   	push   %eax
407656:	68 30 11 40 00       	push   $0x401130
40765b:	57                   	push   %edi
40765c:	8b 0e                	mov    (%esi),%ecx
40765e:	ff 15 20 23 41 00    	call   *0x412320
407664:	ff 16                	call   *(%esi)
407666:	8b d8                	mov    %eax,%ebx
407668:	85 db                	test   %ebx,%ebx
40766a:	79 1e                	jns    0x40768a
40766c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40766f:	85 d2                	test   %edx,%edx
407671:	74 10                	je     0x407683
407673:	8b 0a                	mov    (%edx),%ecx
407675:	52                   	push   %edx
407676:	8b 71 08             	mov    0x8(%ecx),%esi
407679:	8b ce                	mov    %esi,%ecx
40767b:	ff 15 20 23 41 00    	call   *0x412320
407681:	ff d6                	call   *%esi
407683:	8b c3                	mov    %ebx,%eax
407685:	e9 fc 00 00 00       	jmp    0x407786
40768a:	8b 5d 18             	mov    0x18(%ebp),%ebx
40768d:	8b 45 fc             	mov    -0x4(%ebp),%eax
407690:	6a 00                	push   $0x0
407692:	53                   	push   %ebx
407693:	6a 03                	push   $0x3
407695:	8b 30                	mov    (%eax),%esi
407697:	6a 06                	push   $0x6
407699:	6a 00                	push   $0x0
40769b:	ff 75 08             	push   0x8(%ebp)
40769e:	8b 4e 10             	mov    0x10(%esi),%ecx
4076a1:	ff 75 f4             	push   -0xc(%ebp)
4076a4:	57                   	push   %edi
4076a5:	50                   	push   %eax
4076a6:	ff 15 20 23 41 00    	call   *0x412320
4076ac:	ff 56 10             	call   *0x10(%esi)
4076af:	8b f8                	mov    %eax,%edi
4076b1:	85 ff                	test   %edi,%edi
4076b3:	79 39                	jns    0x4076ee
4076b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4076b8:	85 c0                	test   %eax,%eax
4076ba:	74 14                	je     0x4076d0
4076bc:	8b 08                	mov    (%eax),%ecx
4076be:	50                   	push   %eax
4076bf:	8b 71 08             	mov    0x8(%ecx),%esi
4076c2:	8b ce                	mov    %esi,%ecx
4076c4:	ff 15 20 23 41 00    	call   *0x412320
4076ca:	ff d6                	call   *%esi
4076cc:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4076d0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4076d3:	85 c9                	test   %ecx,%ecx
4076d5:	74 10                	je     0x4076e7
4076d7:	8b 01                	mov    (%ecx),%eax
4076d9:	51                   	push   %ecx
4076da:	8b 70 08             	mov    0x8(%eax),%esi
4076dd:	8b ce                	mov    %esi,%ecx
4076df:	ff 15 20 23 41 00    	call   *0x412320
4076e5:	ff d6                	call   *%esi
4076e7:	8b c7                	mov    %edi,%eax
4076e9:	e9 98 00 00 00       	jmp    0x407786
4076ee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4076f1:	85 c9                	test   %ecx,%ecx
4076f3:	74 14                	je     0x407709
4076f5:	8b 01                	mov    (%ecx),%eax
4076f7:	51                   	push   %ecx
4076f8:	8b 70 08             	mov    0x8(%eax),%esi
4076fb:	8b ce                	mov    %esi,%ecx
4076fd:	ff 15 20 23 41 00    	call   *0x412320
407703:	ff d6                	call   *%esi
407705:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407709:	85 db                	test   %ebx,%ebx
40770b:	74 6c                	je     0x407779
40770d:	8b 45 f8             	mov    -0x8(%ebp),%eax
407710:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407713:	51                   	push   %ecx
407714:	68 30 11 40 00       	push   $0x401130
407719:	50                   	push   %eax
40771a:	8b 30                	mov    (%eax),%esi
40771c:	8b 0e                	mov    (%esi),%ecx
40771e:	ff 15 20 23 41 00    	call   *0x412320
407724:	ff 16                	call   *(%esi)
407726:	85 c0                	test   %eax,%eax
407728:	78 43                	js     0x40776d
40772a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40772d:	6a 00                	push   $0x0
40772f:	53                   	push   %ebx
407730:	6a 03                	push   $0x3
407732:	8b 30                	mov    (%eax),%esi
407734:	6a 06                	push   $0x6
407736:	6a 00                	push   $0x0
407738:	ff 75 08             	push   0x8(%ebp)
40773b:	8b 4e 10             	mov    0x10(%esi),%ecx
40773e:	ff 75 f4             	push   -0xc(%ebp)
407741:	ff 75 f8             	push   -0x8(%ebp)
407744:	50                   	push   %eax
407745:	ff 15 20 23 41 00    	call   *0x412320
40774b:	ff 56 10             	call   *0x10(%esi)
40774e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407751:	8b f8                	mov    %eax,%edi
407753:	85 c9                	test   %ecx,%ecx
407755:	74 22                	je     0x407779
407757:	8b 01                	mov    (%ecx),%eax
407759:	51                   	push   %ecx
40775a:	8b 70 08             	mov    0x8(%eax),%esi
40775d:	8b ce                	mov    %esi,%ecx
40775f:	ff 15 20 23 41 00    	call   *0x412320
407765:	ff d6                	call   *%esi
407767:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40776b:	eb 0c                	jmp    0x407779
40776d:	8d b8 fe bf ff 7f    	lea    0x7fffbffe(%eax),%edi
407773:	f7 df                	neg    %edi
407775:	1b ff                	sbb    %edi,%edi
407777:	23 f8                	and    %eax,%edi
407779:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40777c:	e9 52 ff ff ff       	jmp    0x4076d3
407781:	b8 08 10 04 80       	mov    $0x80041008,%eax
407786:	5f                   	pop    %edi
407787:	5e                   	pop    %esi
407788:	5b                   	pop    %ebx
407789:	c9                   	leave
40778a:	c2 18 00             	ret    $0x18
40778d:	8b ff                	mov    %edi,%edi
40778f:	55                   	push   %ebp
407790:	8b ec                	mov    %esp,%ebp
407792:	51                   	push   %ecx
407793:	51                   	push   %ecx