407320:	8b ff                	mov    %edi,%edi
407322:	55                   	push   %ebp
407323:	8b ec                	mov    %esp,%ebp
407325:	8b 4d 08             	mov    0x8(%ebp),%ecx
407328:	8b 49 3c             	mov    0x3c(%ecx),%ecx
40732b:	e8 04 00 00 00       	call   0x407334
407330:	5d                   	pop    %ebp
407331:	c2 04 00             	ret    $0x4
407334:	8b ff                	mov    %edi,%edi
407336:	55                   	push   %ebp
407337:	8b ec                	mov    %esp,%ebp
407339:	83 e4 f8             	and    $0xfffffff8,%esp
40733c:	81 ec 7c 04 00 00    	sub    $0x47c,%esp
407342:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407347:	33 c4                	xor    %esp,%eax
407349:	89 84 24 78 04 00 00 	mov    %eax,0x478(%esp)
407350:	53                   	push   %ebx
407351:	56                   	push   %esi
407352:	57                   	push   %edi
407353:	8b f9                	mov    %ecx,%edi
407355:	85 ff                	test   %edi,%edi
407357:	0f 84 4c 01 00 00    	je     0x4074a9
40735d:	b8 04 01 00 00       	mov    $0x104,%eax
407362:	c6 84 24 24 02 00 00 	movb   $0x1,0x224(%esp)
407369:	01
40736a:	50                   	push   %eax
40736b:	33 f6                	xor    %esi,%esi
40736d:	89 84 24 2c 02 00 00 	mov    %eax,0x22c(%esp)
407374:	8d 44 24 1c          	lea    0x1c(%esp),%eax
407378:	89 b4 24 24 02 00 00 	mov    %esi,0x224(%esp)
40737f:	56                   	push   %esi
407380:	50                   	push   %eax
407381:	e8 37 0c 01 00       	call   0x417fbd
407386:	33 c0                	xor    %eax,%eax
407388:	8d 4c 24 24          	lea    0x24(%esp),%ecx
40738c:	83 c4 0c             	add    $0xc,%esp
40738f:	38 84 24 24 02 00 00 	cmp    %al,0x224(%esp)
407396:	0f 94 c0             	sete   %al
407399:	48                   	dec    %eax
40739a:	25 c6 fd 00 00       	and    $0xfdc6,%eax
40739f:	05 08 02 00 00       	add    $0x208,%eax
4073a4:	50                   	push   %eax
4073a5:	e8 46 70 00 00       	call   0x40e3f0
4073aa:	85 c0                	test   %eax,%eax
4073ac:	0f 88 fb 00 00 00    	js     0x4074ad
4073b2:	8b 84 24 20 02 00 00 	mov    0x220(%esp),%eax
4073b9:	85 c0                	test   %eax,%eax
4073bb:	0f 84 a2 34 01 00    	je     0x41a863
4073c1:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4073c5:	51                   	push   %ecx
4073c6:	50                   	push   %eax
4073c7:	ff b4 24 30 02 00 00 	push   0x230(%esp)
4073ce:	8b cf                	mov    %edi,%ecx
4073d0:	e8 8b 8c 00 00       	call   0x410060
4073d5:	50                   	push   %eax
4073d6:	ff 15 a4 a0 44 00    	call   *0x44a0a4
4073dc:	8b d8                	mov    %eax,%ebx
4073de:	85 db                	test   %ebx,%ebx
4073e0:	74 70                	je     0x407452
4073e2:	8b b4 24 20 02 00 00 	mov    0x220(%esp),%esi
4073e9:	85 f6                	test   %esi,%esi
4073eb:	0f 84 7b 34 01 00    	je     0x41a86c
4073f1:	6a 04                	push   $0x4
4073f3:	68 08 20 40 00       	push   $0x402008
4073f8:	56                   	push   %esi
4073f9:	ff 15 9c a3 44 00    	call   *0x44a39c
4073ff:	83 c4 0c             	add    $0xc,%esp
407402:	85 c0                	test   %eax,%eax
407404:	0f 84 6b 34 01 00    	je     0x41a875
40740a:	8b 44 24 10          	mov    0x10(%esp),%eax
40740e:	85 c0                	test   %eax,%eax
407410:	0f 84 c7 34 01 00    	je     0x41a8dd
407416:	33 ff                	xor    %edi,%edi
407418:	66 39 38             	cmp    %di,(%eax)
40741b:	0f 84 bc 34 01 00    	je     0x41a8dd
407421:	8d 44 24 14          	lea    0x14(%esp),%eax
407425:	8b d6                	mov    %esi,%edx
407427:	50                   	push   %eax
407428:	8d 84 24 34 02 00 00 	lea    0x234(%esp),%eax
40742f:	b9 d0 59 41 00       	mov    $0x4159d0,%ecx
407434:	50                   	push   %eax
407435:	57                   	push   %edi
407436:	68 37 10 00 00       	push   $0x1037
40743b:	e8 5a e4 00 00       	call   0x41589a
407440:	8b 4c 24 14          	mov    0x14(%esp),%ecx
407444:	0f b6 d8             	movzbl %al,%ebx
407447:	e8 01 17 00 00       	call   0x408b4d
40744c:	85 db                	test   %ebx,%ebx
40744e:	74 33                	je     0x407483
407450:	33 f6                	xor    %esi,%esi
407452:	8b 84 24 20 02 00 00 	mov    0x220(%esp),%eax
407459:	89 b4 24 20 02 00 00 	mov    %esi,0x220(%esp)
407460:	85 c0                	test   %eax,%eax
407462:	74 08                	je     0x40746c
407464:	50                   	push   %eax
407465:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40746b:	59                   	pop    %ecx
40746c:	8b c3                	mov    %ebx,%eax
40746e:	8b 8c 24 84 04 00 00 	mov    0x484(%esp),%ecx
407475:	5f                   	pop    %edi
407476:	5e                   	pop    %esi
407477:	5b                   	pop    %ebx
407478:	33 cc                	xor    %esp,%ecx
40747a:	e8 b1 f6 00 00       	call   0x416b30
40747f:	8b e5                	mov    %ebp,%esp
407481:	5d                   	pop    %ebp
407482:	c3                   	ret
407483:	0f b7 46 02          	movzwl 0x2(%esi),%eax
407487:	6a 5c                	push   $0x5c
407489:	59                   	pop    %ecx
40748a:	66 3b c1             	cmp    %cx,%ax
40748d:	0f 84 32 34 01 00    	je     0x41a8c5
407493:	83 f8 3a             	cmp    $0x3a,%eax
407496:	75 b8                	jne    0x407450
407498:	66 39 4e 04          	cmp    %cx,0x4(%esi)
40749c:	75 b2                	jne    0x407450
40749e:	66 39 7e 06          	cmp    %di,0x6(%esi)
4074a2:	75 ac                	jne    0x407450
4074a4:	e9 1c 34 01 00       	jmp    0x41a8c5
4074a9:	33 c0                	xor    %eax,%eax
4074ab:	eb c1                	jmp    0x40746e
4074ad:	8b de                	mov    %esi,%ebx
4074af:	eb a1                	jmp    0x407452
4074b1:	8b ff                	mov    %edi,%edi
4074b3:	55                   	push   %ebp
4074b4:	8b ec                	mov    %esp,%ebp
4074b6:	83 ec 2c             	sub    $0x2c,%esp
4074b9:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4074be:	33 c5                	xor    %ebp,%eax
4074c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4074c3:	53                   	push   %ebx
4074c4:	56                   	push   %esi
4074c5:	57                   	push   %edi
4074c6:	6a 2f                	push   $0x2f
4074c8:	58                   	pop    %eax
4074c9:	8b f2                	mov    %edx,%esi
4074cb:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
4074cf:	33 c0                	xor    %eax,%eax
4074d1:	89 75 e0             	mov    %esi,-0x20(%ebp)
4074d4:	6a 02                	push   $0x2
4074d6:	8d 55 e8             	lea    -0x18(%ebp),%edx
4074d9:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
4074dd:	e8 4e 47 00 00       	call   0x40bc30
4074e2:	33 d2                	xor    %edx,%edx
4074e4:	8d 5e 4c             	lea    0x4c(%esi),%ebx
4074e7:	8b f8                	mov    %eax,%edi
4074e9:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4074ec:	39 56 48             	cmp    %edx,0x48(%esi)
4074ef:	0f 85 fc 33 01 00    	jne    0x41a8f1
4074f5:	0f b7 07             	movzwl (%edi),%eax
4074f8:	66 85 c0             	test   %ax,%ax
4074fb:	0f 84 dc 00 00 00    	je     0x4075dd
407501:	6a 2f                	push   $0x2f
407503:	59                   	pop    %ecx
407504:	88 55 e7             	mov    %dl,-0x19(%ebp)
407507:	66 3b c1             	cmp    %cx,%ax
40750a:	0f 85 a8 00 00 00    	jne    0x4075b8
407510:	8d 4f 04             	lea    0x4(%edi),%ecx
407513:	8b c2                	mov    %edx,%eax
407515:	66 83 39 2d          	cmpw   $0x2d,(%ecx)
407519:	89 4d d8             	mov    %ecx,-0x28(%ebp)
40751c:	89 45 e0             	mov    %eax,-0x20(%ebp)
40751f:	0f 84 ee 33 01 00    	je     0x41a913
407525:	0f b7 c0             	movzwl %ax,%eax
407528:	83 c0 02             	add    $0x2,%eax
40752b:	8d 1c 47             	lea    (%edi,%eax,2),%ebx
40752e:	0f b7 03             	movzwl (%ebx),%eax
407531:	50                   	push   %eax
407532:	ff 15 18 a4 44 00    	call   *0x44a418
407538:	0f b7 c0             	movzwl %ax,%eax
40753b:	59                   	pop    %ecx
40753c:	83 e8 3f             	sub    $0x3f,%eax
40753f:	0f 84 df 34 01 00    	je     0x41aa24
407545:	48                   	dec    %eax
407546:	83 e8 01             	sub    $0x1,%eax
407549:	0f 84 05 34 01 00    	je     0x41a954
40754f:	83 e8 05             	sub    $0x5,%eax
407552:	74 23                	je     0x407577
407554:	83 e8 0a             	sub    $0xa,%eax
407557:	0f 84 d0 33 01 00    	je     0x41a92d
40755d:	83 e8 01             	sub    $0x1,%eax
407560:	0f 85 88 00 00 00    	jne    0x4075ee
407566:	38 45 e7             	cmp    %al,-0x19(%ebp)
407569:	0f 85 b3 33 01 00    	jne    0x41a922
40756f:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
407575:	eb 10                	jmp    0x407587
407577:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
40757b:	0f 85 c8 33 01 00    	jne    0x41a949
407581:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
407587:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40758a:	33 d2                	xor    %edx,%edx
40758c:	0f b7 c1             	movzwl %cx,%eax
40758f:	66 39 54 47 06       	cmp    %dx,0x6(%edi,%eax,2)
407594:	0f 85 6f 34 01 00    	jne    0x41aa09
40759a:	8b 7d d8             	mov    -0x28(%ebp),%edi
40759d:	8b 5d dc             	mov    -0x24(%ebp),%ebx
4075a0:	8b cf                	mov    %edi,%ecx
4075a2:	e8 2e 32 00 00       	call   0x40a7d5
4075a7:	8b f8                	mov    %eax,%edi
4075a9:	0f b7 07             	movzwl (%edi),%eax
4075ac:	66 85 c0             	test   %ax,%ax
4075af:	74 2c                	je     0x4075dd
4075b1:	33 d2                	xor    %edx,%edx
4075b3:	e9 49 ff ff ff       	jmp    0x407501
4075b8:	8b 46 48             	mov    0x48(%esi),%eax
4075bb:	85 c0                	test   %eax,%eax
4075bd:	0f 85 f3 33 01 00    	jne    0x41a9b6
4075c3:	40                   	inc    %eax
4075c4:	8b cf                	mov    %edi,%ecx
4075c6:	89 46 48             	mov    %eax,0x48(%esi)
4075c9:	e8 92 8a 00 00       	call   0x410060
4075ce:	8b c8                	mov    %eax,%ecx
4075d0:	e8 76 8f 00 00       	call   0x41054b
4075d5:	89 03                	mov    %eax,(%ebx)
4075d7:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
4075db:	eb c3                	jmp    0x4075a0
4075dd:	33 c0                	xor    %eax,%eax
4075df:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075e2:	5f                   	pop    %edi
4075e3:	5e                   	pop    %esi
4075e4:	33 cd                	xor    %ebp,%ecx
4075e6:	5b                   	pop    %ebx
4075e7:	e8 44 f5 00 00       	call   0x416b30
4075ec:	c9                   	leave
4075ed:	c3                   	ret
4075ee:	48                   	dec    %eax
4075ef:	83 e8 01             	sub    $0x1,%eax
4075f2:	0f 85 e3 33 01 00    	jne    0x41a9db
4075f8:	38 45 e7             	cmp    %al,-0x19(%ebp)
4075fb:	75 05                	jne    0x407602
4075fd:	83 0e 10             	orl    $0x10,(%esi)
407600:	eb 85                	jmp    0x407587
407602:	83 36 10             	xorl   $0x10,(%esi)
407605:	eb 80                	jmp    0x407587
407607:	cc                   	int3
407608:	cc                   	int3
407609:	cc                   	int3
40760a:	cc                   	int3
40760b:	cc                   	int3
40760c:	cc                   	int3
40760d:	cc                   	int3
40760e:	cc                   	int3
40760f:	cc                   	int3
407610:	8b ff                	mov    %edi,%edi
407612:	53                   	push   %ebx
407613:	8b dc                	mov    %esp,%ebx
407615:	51                   	push   %ecx
407616:	51                   	push   %ecx
407617:	83 e4 f8             	and    $0xfffffff8,%esp
40761a:	83 c4 04             	add    $0x4,%esp
40761d:	55                   	push   %ebp
40761e:	8b 6b 04             	mov    0x4(%ebx),%ebp
407621:	89 6c 24 04          	mov    %ebp,0x4(%esp)
407625:	8b ec                	mov    %esp,%ebp
407627:	a1 48 67 43 00       	mov    0x436748,%eax
40762c:	56                   	push   %esi
40762d:	57                   	push   %edi
40762e:	85 c0                	test   %eax,%eax
407630:	0f 84 37 01 00 00    	je     0x40776d
407636:	83 78 14 20          	cmpl   $0x20,0x14(%eax)
40763a:	0f 83 74 34 01 00    	jae    0x41aab4
407640:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
407646:	85 c9                	test   %ecx,%ecx
407648:	0f 84 11 34 01 00    	je     0x41aa5f
40764e:	8d 51 02             	lea    0x2(%ecx),%edx
407651:	33 f6                	xor    %esi,%esi
407653:	66 8b 01             	mov    (%ecx),%ax
407656:	83 c1 02             	add    $0x2,%ecx
407659:	66 3b c6             	cmp    %si,%ax
40765c:	75 f5                	jne    0x407653
40765e:	2b ca                	sub    %edx,%ecx
407660:	d1 f9                	sar    $1,%ecx
407662:	6a 0c                	push   $0xc
407664:	6a 08                	push   $0x8
407666:	8d 79 01             	lea    0x1(%ecx),%edi
407669:	ff 15 34 a1 44 00    	call   *0x44a134
40766f:	50                   	push   %eax
407670:	ff 15 28 a1 44 00    	call   *0x44a128
407676:	8b f0                	mov    %eax,%esi
407678:	85 f6                	test   %esi,%esi
40767a:	0f 84 42 34 01 00    	je     0x41aac2
407680:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
407683:	51                   	push   %ecx
407684:	6a 08                	push   $0x8
407686:	ff 15 34 a1 44 00    	call   *0x44a134
40768c:	50                   	push   %eax
40768d:	ff 15 28 a1 44 00    	call   *0x44a128
407693:	89 06                	mov    %eax,(%esi)
407695:	85 c0                	test   %eax,%eax
407697:	0f 84 25 34 01 00    	je     0x41aac2
40769d:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
4076a3:	85 c9                	test   %ecx,%ecx
4076a5:	0f 84 be 33 01 00    	je     0x41aa69
4076ab:	51                   	push   %ecx
4076ac:	8b d7                	mov    %edi,%edx
4076ae:	8b c8                	mov    %eax,%ecx
4076b0:	e8 eb 7c 00 00       	call   0x40f3a0
4076b5:	e8 dc 14 00 00       	call   0x408b96
4076ba:	89 46 04             	mov    %eax,0x4(%esi)
4076bd:	85 c0                	test   %eax,%eax
4076bf:	0f 84 fd 33 01 00    	je     0x41aac2
4076c5:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
4076cb:	a0 55 67 43 00       	mov    0x436755,%al
4076d0:	88 46 08             	mov    %al,0x8(%esi)
4076d3:	a0 54 67 43 00       	mov    0x436754,%al
4076d8:	88 46 09             	mov    %al,0x9(%esi)
4076db:	8b 41 14             	mov    0x14(%ecx),%eax
4076de:	89 b4 81 90 00 00 00 	mov    %esi,0x90(%ecx,%eax,4)
4076e5:	a1 78 67 43 00       	mov    0x436778,%eax
4076ea:	ff 41 14             	incl   0x14(%ecx)
4076ed:	89 41 0c             	mov    %eax,0xc(%ecx)
4076f0:	39 41 10             	cmp    %eax,0x10(%ecx)
4076f3:	7d 03                	jge    0x4076f8
4076f5:	89 41 10             	mov    %eax,0x10(%ecx)
4076f8:	8b 4b 08             	mov    0x8(%ebx),%ecx
4076fb:	33 c0                	xor    %eax,%eax
4076fd:	50                   	push   %eax
4076fe:	33 d2                	xor    %edx,%edx
407700:	8b 49 3c             	mov    0x3c(%ecx),%ecx
407703:	e8 28 45 00 00       	call   0x40bc30
407708:	8b f0                	mov    %eax,%esi
40770a:	33 c0                	xor    %eax,%eax
40770c:	a3 dc 65 43 00       	mov    %eax,0x4365dc
407711:	eb 3a                	jmp    0x40774d
407713:	68 ac 1f 40 00       	push   $0x401fac
407718:	56                   	push   %esi
407719:	ff 15 40 a4 44 00    	call   *0x44a440
40771f:	59                   	pop    %ecx
407720:	59                   	pop    %ecx
407721:	85 c0                	test   %eax,%eax
407723:	74 55                	je     0x40777a
407725:	68 d0 1f 40 00       	push   $0x401fd0
40772a:	56                   	push   %esi
40772b:	ff 15 40 a4 44 00    	call   *0x44a440
407731:	59                   	pop    %ecx
407732:	59                   	pop    %ecx
407733:	85 c0                	test   %eax,%eax
407735:	0f 85 38 33 01 00    	jne    0x41aa73
40773b:	c6 05 54 67 43 00 01 	movb   $0x1,0x436754
407742:	8b ce                	mov    %esi,%ecx
407744:	e8 8c 30 00 00       	call   0x40a7d5
407749:	8b f0                	mov    %eax,%esi
40774b:	33 c0                	xor    %eax,%eax
40774d:	66 39 06             	cmp    %ax,(%esi)
407750:	74 1b                	je     0x40776d
407752:	68 2c 20 40 00       	push   $0x40202c
407757:	56                   	push   %esi
407758:	ff 15 40 a4 44 00    	call   *0x44a440
40775e:	59                   	pop    %ecx
40775f:	59                   	pop    %ecx