40730b:	50                   	push   %eax
40730c:	e8 f6 8f 00 00       	call   0x410307
407311:	83 c4 0c             	add    $0xc,%esp
407314:	f7 d8                	neg    %eax
407316:	1b c0                	sbb    %eax,%eax
407318:	40                   	inc    %eax
407319:	89 47 04             	mov    %eax,0x4(%edi)
40731c:	eb 04                	jmp    0x407322
40731e:	83 67 04 00          	andl   $0x0,0x4(%edi)
407322:	8b 46 04             	mov    0x4(%esi),%eax
407325:	89 07                	mov    %eax,(%edi)
407327:	8b 47 04             	mov    0x4(%edi),%eax
40732a:	89 86 a8 00 00 00    	mov    %eax,0xa8(%esi)
407330:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
407334:	75 09                	jne    0x40733f
407336:	8b 85 68 fe ff ff    	mov    -0x198(%ebp),%eax
40733c:	89 46 08             	mov    %eax,0x8(%esi)
40733f:	8b 45 08             	mov    0x8(%ebp),%eax
407342:	6b c0 0c             	imul   $0xc,%eax,%eax
407345:	56                   	push   %esi
407346:	ff 90 10 a3 41 00    	call   *0x41a310(%eax)
40734c:	59                   	pop    %ecx
40734d:	85 c0                	test   %eax,%eax
40734f:	74 31                	je     0x407382
407351:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
407357:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
40735d:	89 43 48             	mov    %eax,0x48(%ebx)
407360:	e8 bb dc ff ff       	call   0x405020
407365:	8b 85 58 fe ff ff    	mov    -0x1a8(%ebp),%eax
40736b:	59                   	pop    %ecx
40736c:	8b 8d 6c fe ff ff    	mov    -0x194(%ebp),%ecx
407372:	89 01                	mov    %eax,(%ecx)
407374:	8b 85 4c fe ff ff    	mov    -0x1b4(%ebp),%eax
40737a:	89 46 04             	mov    %eax,0x4(%esi)
40737d:	e9 b0 fd ff ff       	jmp    0x407132
407382:	81 bd 5c fe ff ff a8 	cmpl   $0x42b7a8,-0x1a4(%ebp)
407389:	b7 42 00
40738c:	74 2d                	je     0x4073bb
40738e:	8b 45 08             	mov    0x8(%ebp),%eax
407391:	83 c0 05             	add    $0x5,%eax
407394:	c1 e0 04             	shl    $0x4,%eax
407397:	8d 3c 30             	lea    (%eax,%esi,1),%edi
40739a:	ff 37                	push   (%edi)
40739c:	ff 15 78 a0 41 00    	call   *0x41a078
4073a2:	85 c0                	test   %eax,%eax
4073a4:	75 15                	jne    0x4073bb
4073a6:	ff 37                	push   (%edi)
4073a8:	e8 73 dc ff ff       	call   0x405020
4073ad:	ff 73 54             	push   0x54(%ebx)
4073b0:	e8 6b dc ff ff       	call   0x405020
4073b5:	83 63 4c 00          	andl   $0x0,0x4c(%ebx)
4073b9:	59                   	pop    %ecx
4073ba:	59                   	pop    %ecx
4073bb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4073be:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
4073c4:	83 c1 05             	add    $0x5,%ecx
4073c7:	c1 e1 04             	shl    $0x4,%ecx
4073ca:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4073d0:	89 04 31             	mov    %eax,(%ecx,%esi,1)
4073d3:	8b 43 48             	mov    0x48(%ebx),%eax
4073d6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4073d9:	5f                   	pop    %edi
4073da:	33 cd                	xor    %ebp,%ecx
4073dc:	5b                   	pop    %ebx
4073dd:	e8 44 f2 ff ff       	call   0x406626
4073e2:	c9                   	leave
4073e3:	c3                   	ret
4073e4:	8b ff                	mov    %edi,%edi
4073e6:	55                   	push   %ebp
4073e7:	8b ec                	mov    %esp,%ebp
4073e9:	81 ec 98 00 00 00    	sub    $0x98,%esp
4073ef:	a1 68 b2 42 00       	mov    0x42b268,%eax
4073f4:	33 c5                	xor    %ebp,%eax
4073f6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4073f9:	8b 45 08             	mov    0x8(%ebp),%eax
4073fc:	53                   	push   %ebx
4073fd:	56                   	push   %esi
4073fe:	33 db                	xor    %ebx,%ebx
407400:	8b f2                	mov    %edx,%esi
407402:	57                   	push   %edi
407403:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
407409:	3b c3                	cmp    %ebx,%eax
40740b:	74 1c                	je     0x407429
40740d:	3b cb                	cmp    %ebx,%ecx
40740f:	74 0c                	je     0x40741d
407411:	50                   	push   %eax
407412:	e8 cb fc ff ff       	call   0x4070e2
407417:	59                   	pop    %ecx
407418:	e9 d3 01 00 00       	jmp    0x4075f0
40741d:	c1 e0 04             	shl    $0x4,%eax
407420:	8b 44 30 48          	mov    0x48(%eax,%esi,1),%eax
407424:	e9 c7 01 00 00       	jmp    0x4075f0
407429:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
407430:	00 00 00
407433:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
407439:	3b cb                	cmp    %ebx,%ecx
40743b:	0f 84 aa 01 00 00    	je     0x4075eb
407441:	80 39 4c             	cmpb   $0x4c,(%ecx)
407444:	0f 85 30 01 00 00    	jne    0x40757a
40744a:	80 79 01 43          	cmpb   $0x43,0x1(%ecx)
40744e:	0f 85 26 01 00 00    	jne    0x40757a
407454:	80 79 02 5f          	cmpb   $0x5f,0x2(%ecx)
407458:	0f 85 1c 01 00 00    	jne    0x40757a
40745e:	8b f9                	mov    %ecx,%edi
407460:	68 e4 a3 41 00       	push   $0x41a3e4
407465:	57                   	push   %edi
407466:	e8 e5 a5 00 00       	call   0x411a50
40746b:	8b d8                	mov    %eax,%ebx
40746d:	59                   	pop    %ecx
40746e:	59                   	pop    %ecx
40746f:	85 db                	test   %ebx,%ebx
407471:	0f 84 ff 00 00 00    	je     0x407576
407477:	2b c7                	sub    %edi,%eax
407479:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40747f:	0f 84 f1 00 00 00    	je     0x407576
407485:	80 3b 3b             	cmpb   $0x3b,(%ebx)
407488:	0f 84 e8 00 00 00    	je     0x407576
40748e:	c7 85 6c ff ff ff 01 	movl   $0x1,-0x94(%ebp)
407495:	00 00 00
407498:	be 14 a3 41 00       	mov    $0x41a314,%esi
40749d:	eb 06                	jmp    0x4074a5
40749f:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
4074a5:	50                   	push   %eax
4074a6:	57                   	push   %edi
4074a7:	ff 36                	push   (%esi)
4074a9:	e8 d9 a4 00 00       	call   0x411987
4074ae:	83 c4 0c             	add    $0xc,%esp
4074b1:	85 c0                	test   %eax,%eax
4074b3:	75 10                	jne    0x4074c5
4074b5:	ff 36                	push   (%esi)
4074b7:	e8 a4 ea ff ff       	call   0x405f60
4074bc:	59                   	pop    %ecx
4074bd:	39 85 70 ff ff ff    	cmp    %eax,-0x90(%ebp)
4074c3:	74 11                	je     0x4074d6
4074c5:	ff 85 6c ff ff ff    	incl   -0x94(%ebp)
4074cb:	83 c6 0c             	add    $0xc,%esi
4074ce:	81 fe 44 a3 41 00    	cmp    $0x41a344,%esi
4074d4:	7e c9                	jle    0x40749f
4074d6:	43                   	inc    %ebx
4074d7:	68 dc a3 41 00       	push   $0x41a3dc
4074dc:	53                   	push   %ebx
4074dd:	e8 7e 85 00 00       	call   0x40fa60
4074e2:	8b f8                	mov    %eax,%edi
4074e4:	33 f6                	xor    %esi,%esi
4074e6:	59                   	pop    %ecx
4074e7:	59                   	pop    %ecx
4074e8:	3b fe                	cmp    %esi,%edi
4074ea:	75 09                	jne    0x4074f5
4074ec:	80 3b 3b             	cmpb   $0x3b,(%ebx)
4074ef:	0f 85 81 00 00 00    	jne    0x407576
4074f5:	83 bd 6c ff ff ff 05 	cmpl   $0x5,-0x94(%ebp)
4074fc:	7f 51                	jg     0x40754f
4074fe:	57                   	push   %edi
4074ff:	53                   	push   %ebx
407500:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
407506:	68 83 00 00 00       	push   $0x83
40750b:	50                   	push   %eax
40750c:	e8 95 85 00 00       	call   0x40faa6
407511:	83 c4 10             	add    $0x10,%esp
407514:	85 c0                	test   %eax,%eax
407516:	74 0d                	je     0x407525
407518:	56                   	push   %esi
407519:	56                   	push   %esi
40751a:	56                   	push   %esi
40751b:	56                   	push   %esi
40751c:	56                   	push   %esi
40751d:	e8 db db ff ff       	call   0x4050fd
407522:	83 c4 14             	add    $0x14,%esp
407525:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40752b:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
407531:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
407537:	c6 84 3d 78 ff ff ff 	movb   $0x0,-0x88(%ebp,%edi,1)
40753e:	00
40753f:	e8 9e fb ff ff       	call   0x4070e2
407544:	59                   	pop    %ecx
407545:	85 c0                	test   %eax,%eax
407547:	74 06                	je     0x40754f
407549:	ff 85 74 ff ff ff    	incl   -0x8c(%ebp)
40754f:	03 fb                	add    %ebx,%edi
407551:	80 3f 00             	cmpb   $0x0,(%edi)
407554:	74 0a                	je     0x407560
407556:	47                   	inc    %edi
407557:	80 3f 00             	cmpb   $0x0,(%edi)
40755a:	0f 85 00 ff ff ff    	jne    0x407460
407560:	33 c0                	xor    %eax,%eax
407562:	39 85 74 ff ff ff    	cmp    %eax,-0x8c(%ebp)
407568:	0f 84 82 00 00 00    	je     0x4075f0
40756e:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
407574:	eb 75                	jmp    0x4075eb
407576:	33 c0                	xor    %eax,%eax
407578:	eb 76                	jmp    0x4075f0
40757a:	53                   	push   %ebx
40757b:	53                   	push   %ebx
40757c:	53                   	push   %ebx
40757d:	68 83 00 00 00       	push   $0x83
407582:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
407588:	50                   	push   %eax
407589:	51                   	push   %ecx
40758a:	e8 22 f9 ff ff       	call   0x406eb1
40758f:	83 c4 18             	add    $0x18,%esp
407592:	3b c3                	cmp    %ebx,%eax
407594:	74 5a                	je     0x4075f0
407596:	8d 7e 48             	lea    0x48(%esi),%edi
407599:	85 db                	test   %ebx,%ebx
40759b:	74 33                	je     0x4075d0
40759d:	ff 37                	push   (%edi)
40759f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4075a5:	50                   	push   %eax
4075a6:	e8 85 4c 00 00       	call   0x40c230
4075ab:	59                   	pop    %ecx
4075ac:	59                   	pop    %ecx
4075ad:	85 c0                	test   %eax,%eax
4075af:	74 19                	je     0x4075ca
4075b1:	53                   	push   %ebx
4075b2:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
4075b8:	e8 25 fb ff ff       	call   0x4070e2
4075bd:	59                   	pop    %ecx
4075be:	85 c0                	test   %eax,%eax
4075c0:	75 08                	jne    0x4075ca
4075c2:	21 85 70 ff ff ff    	and    %eax,-0x90(%ebp)
4075c8:	eb 06                	jmp    0x4075d0
4075ca:	ff 85 74 ff ff ff    	incl   -0x8c(%ebp)
4075d0:	43                   	inc    %ebx
4075d1:	83 c7 10             	add    $0x10,%edi
4075d4:	83 fb 05             	cmp    $0x5,%ebx
4075d7:	7e c0                	jle    0x407599
4075d9:	33 c0                	xor    %eax,%eax
4075db:	39 85 70 ff ff ff    	cmp    %eax,-0x90(%ebp)
4075e1:	75 08                	jne    0x4075eb
4075e3:	39 85 74 ff ff ff    	cmp    %eax,-0x8c(%ebp)
4075e9:	74 05                	je     0x4075f0
4075eb:	e8 44 f7 ff ff       	call   0x406d34
4075f0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075f3:	5f                   	pop    %edi
4075f4:	5e                   	pop    %esi
4075f5:	33 cd                	xor    %ebp,%ecx
4075f7:	5b                   	pop    %ebx
4075f8:	e8 29 f0 ff ff       	call   0x406626
4075fd:	c9                   	leave
4075fe:	c3                   	ret
4075ff:	8b ff                	mov    %edi,%edi
407601:	55                   	push   %ebp
407602:	8b ec                	mov    %esp,%ebp
407604:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
407608:	56                   	push   %esi
407609:	57                   	push   %edi
40760a:	77 24                	ja     0x407630
40760c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407610:	74 1e                	je     0x407630
407612:	33 ff                	xor    %edi,%edi
407614:	47                   	inc    %edi
407615:	57                   	push   %edi
407616:	6a 08                	push   $0x8
407618:	e8 88 05 00 00       	call   0x407ba5
40761d:	8b f0                	mov    %eax,%esi
40761f:	59                   	pop    %ecx
407620:	59                   	pop    %ecx
407621:	85 f6                	test   %esi,%esi
407623:	75 11                	jne    0x407636
407625:	e8 ab e4 ff ff       	call   0x405ad5
40762a:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407630:	33 c0                	xor    %eax,%eax
407632:	5f                   	pop    %edi
407633:	5e                   	pop    %esi
407634:	5d                   	pop    %ebp
407635:	c3                   	ret
407636:	57                   	push   %edi
407637:	68 d8 00 00 00       	push   $0xd8
40763c:	e8 64 05 00 00       	call   0x407ba5
407641:	59                   	pop    %ecx
407642:	59                   	pop    %ecx
407643:	89 06                	mov    %eax,(%esi)
407645:	85 c0                	test   %eax,%eax
407647:	75 09                	jne    0x407652
407649:	56                   	push   %esi
40764a:	e8 d1 d9 ff ff       	call   0x405020
40764f:	59                   	pop    %ecx
407650:	eb d3                	jmp    0x407625
407652:	57                   	push   %edi
407653:	68 20 02 00 00       	push   $0x220
407658:	e8 48 05 00 00       	call   0x407ba5
40765d:	59                   	pop    %ecx
40765e:	59                   	pop    %ecx
40765f:	89 46 04             	mov    %eax,0x4(%esi)
407662:	85 c0                	test   %eax,%eax
407664:	75 10                	jne    0x407676
407666:	ff 36                	push   (%esi)
407668:	e8 b3 d9 ff ff       	call   0x405020
40766d:	56                   	push   %esi
40766e:	e8 ad d9 ff ff       	call   0x405020
407673:	59                   	pop    %ecx
407674:	eb d9                	jmp    0x40764f
407676:	8b 06                	mov    (%esi),%eax
407678:	b9 b0 b7 42 00       	mov    $0x42b7b0,%ecx
40767d:	e8 ed f2 ff ff       	call   0x40696f
407682:	ff 75 08             	push   0x8(%ebp)
407685:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407688:	8b 16                	mov    (%esi),%edx
40768a:	e8 55 fd ff ff       	call   0x4073e4
40768f:	59                   	pop    %ecx
407690:	85 c0                	test   %eax,%eax
407692:	75 19                	jne    0x4076ad
407694:	ff 36                	push   (%esi)
407696:	e8 3b f2 ff ff       	call   0x4068d6
40769b:	ff 36                	push   (%esi)
40769d:	e8 5c f0 ff ff       	call   0x4066fe
4076a2:	56                   	push   %esi
4076a3:	e8 78 d9 ff ff       	call   0x405020
4076a8:	83 c4 0c             	add    $0xc,%esp
4076ab:	eb 32                	jmp    0x4076df
4076ad:	ff 76 04             	push   0x4(%esi)
4076b0:	8b 06                	mov    (%esi),%eax
4076b2:	ff 70 04             	push   0x4(%eax)
4076b5:	e8 8a 7f 00 00       	call   0x40f644
4076ba:	59                   	pop    %ecx
4076bb:	59                   	pop    %ecx
4076bc:	85 c0                	test   %eax,%eax
4076be:	74 23                	je     0x4076e3
4076c0:	ff 76 04             	push   0x4(%esi)
4076c3:	e8 58 d9 ff ff       	call   0x405020
4076c8:	ff 36                	push   (%esi)
4076ca:	e8 07 f2 ff ff       	call   0x4068d6
4076cf:	ff 36                	push   (%esi)
4076d1:	e8 28 f0 ff ff       	call   0x4066fe
4076d6:	56                   	push   %esi
4076d7:	e8 44 d9 ff ff       	call   0x405020
4076dc:	83 c4 10             	add    $0x10,%esp
4076df:	33 f6                	xor    %esi,%esi
4076e1:	eb 0a                	jmp    0x4076ed
4076e3:	8b 46 04             	mov    0x4(%esi),%eax
4076e6:	89 38                	mov    %edi,(%eax)
4076e8:	8b 46 04             	mov    0x4(%esi),%eax
4076eb:	89 38                	mov    %edi,(%eax)
4076ed:	8b c6                	mov    %esi,%eax
4076ef:	e9 3e ff ff ff       	jmp    0x407632
4076f4:	6a 14                	push   $0x14
4076f6:	68 00 96 42 00       	push   $0x429600
4076fb:	e8 dc 2c 00 00       	call   0x40a3dc
407700:	33 db                	xor    %ebx,%ebx
407702:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407705:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
407709:	76 1f                	jbe    0x40772a
40770b:	e8 c5 e3 ff ff       	call   0x405ad5
407710:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
407716:	53                   	push   %ebx
407717:	53                   	push   %ebx
407718:	53                   	push   %ebx
407719:	53                   	push   %ebx
40771a:	53                   	push   %ebx
40771b:	e8 05 db ff ff       	call   0x405225