405355:	81 ec 94 00 00 00    	sub    $0x94,%esp
40535b:	a1 64 10 41 00       	mov    0x411064,%eax
405360:	33 c5                	xor    %ebp,%eax
405362:	89 45 fc             	mov    %eax,-0x4(%ebp)
405365:	8b 45 0c             	mov    0xc(%ebp),%eax
405368:	53                   	push   %ebx
405369:	56                   	push   %esi
40536a:	8b 75 08             	mov    0x8(%ebp),%esi
40536d:	57                   	push   %edi
40536e:	83 e8 01             	sub    $0x1,%eax
405371:	0f 84 cd 01 00 00    	je     0x405544
405377:	83 e8 01             	sub    $0x1,%eax
40537a:	0f 84 81 01 00 00    	je     0x405501
405380:	83 e8 05             	sub    $0x5,%eax
405383:	0f 84 6a 01 00 00    	je     0x4054f3
405389:	83 e8 08             	sub    $0x8,%eax
40538c:	0f 84 db 00 00 00    	je     0x40546d
405392:	83 e8 01             	sub    $0x1,%eax
405395:	74 44                	je     0x4053db
405397:	2d 01 01 00 00       	sub    $0x101,%eax
40539c:	0f 85 94 01 00 00    	jne    0x405536
4053a2:	b8 2d 01 00 00       	mov    $0x12d,%eax
4053a7:	66 39 45 10          	cmp    %ax,0x10(%ebp)
4053ab:	75 17                	jne    0x4053c4
4053ad:	8b 45 10             	mov    0x10(%ebp),%eax
4053b0:	c1 e8 10             	shr    $0x10,%eax
4053b3:	66 83 f8 01          	cmp    $0x1,%ax
4053b7:	75 0b                	jne    0x4053c4
4053b9:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
4053bf:	e8 76 81 00 00       	call   0x40d53a
4053c4:	ff 75 14             	push   0x14(%ebp)
4053c7:	ff 75 10             	push   0x10(%ebp)
4053ca:	68 11 01 00 00       	push   $0x111
4053cf:	56                   	push   %esi
4053d0:	ff 15 08 32 43 00    	call   *0x433208
4053d6:	e9 84 01 00 00       	jmp    0x40555f
4053db:	33 d2                	xor    %edx,%edx
4053dd:	52                   	push   %edx
4053de:	52                   	push   %edx
4053df:	68 4e 01 00 00       	push   $0x14e
4053e4:	68 ca 00 00 00       	push   $0xca
4053e9:	ff 35 10 19 43 00    	push   0x431910
4053ef:	ff 15 14 33 43 00    	call   *0x433314
4053f5:	50                   	push   %eax
4053f6:	ff 15 10 33 43 00    	call   *0x433310
4053fc:	6a 40                	push   $0x40
4053fe:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405404:	50                   	push   %eax
405405:	68 95 01 00 00       	push   $0x195
40540a:	ff 35 0c 19 41 00    	push   0x41190c
405410:	ff 15 20 33 43 00    	call   *0x433320
405416:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40541c:	bb 85 00 00 00       	mov    $0x85,%ebx
405421:	50                   	push   %eax
405422:	53                   	push   %ebx
405423:	ff 35 10 19 43 00    	push   0x431910
405429:	ff 15 10 32 43 00    	call   *0x433210
40542f:	33 ff                	xor    %edi,%edi
405431:	47                   	inc    %edi
405432:	57                   	push   %edi
405433:	53                   	push   %ebx
405434:	ff 35 10 19 43 00    	push   0x431910
40543a:	ff 15 14 33 43 00    	call   *0x433314
405440:	50                   	push   %eax
405441:	ff 15 14 32 43 00    	call   *0x433214
405447:	53                   	push   %ebx
405448:	ff 35 10 19 43 00    	push   0x431910
40544e:	89 3d 78 26 43 00    	mov    %edi,0x432678
405454:	ff 15 14 33 43 00    	call   *0x433314
40545a:	50                   	push   %eax
40545b:	ff 15 28 33 43 00    	call   *0x433328
405461:	56                   	push   %esi
405462:	ff 15 00 33 43 00    	call   *0x433300
405468:	e9 f0 00 00 00       	jmp    0x40555d
40546d:	8d 45 b8             	lea    -0x48(%ebp),%eax
405470:	50                   	push   %eax
405471:	56                   	push   %esi
405472:	ff 15 ec 32 43 00    	call   *0x4332ec
405478:	ff 35 7c 25 43 00    	push   0x43257c
40547e:	8b 7d b8             	mov    -0x48(%ebp),%edi
405481:	57                   	push   %edi
405482:	ff 15 ac 30 43 00    	call   *0x4330ac
405488:	6a 0f                	push   $0xf
40548a:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
405490:	ff 15 0c 32 43 00    	call   *0x43320c
405496:	50                   	push   %eax
405497:	57                   	push   %edi
405498:	ff 15 94 30 43 00    	call   *0x433094
40549e:	8b 1d c0 18 41 00    	mov    0x4118c0,%ebx
4054a4:	33 d2                	xor    %edx,%edx
4054a6:	8b cb                	mov    %ebx,%ecx
4054a8:	8d 41 02             	lea    0x2(%ecx),%eax
4054ab:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
4054b1:	66 8b 01             	mov    (%ecx),%ax
4054b4:	83 c1 02             	add    $0x2,%ecx
4054b7:	66 3b c2             	cmp    %dx,%ax
4054ba:	75 f5                	jne    0x4054b1
4054bc:	2b 8d 74 ff ff ff    	sub    -0x8c(%ebp),%ecx
4054c2:	d1 f9                	sar    $1,%ecx
4054c4:	51                   	push   %ecx
4054c5:	53                   	push   %ebx
4054c6:	ff 35 e0 18 41 00    	push   0x4118e0
4054cc:	ff 35 e4 18 41 00    	push   0x4118e4
4054d2:	57                   	push   %edi
4054d3:	ff 15 90 30 43 00    	call   *0x433090
4054d9:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
4054df:	57                   	push   %edi
4054e0:	ff 15 ac 30 43 00    	call   *0x4330ac
4054e6:	8d 45 b8             	lea    -0x48(%ebp),%eax
4054e9:	50                   	push   %eax
4054ea:	56                   	push   %esi
4054eb:	ff 15 f4 32 43 00    	call   *0x4332f4
4054f1:	eb 6a                	jmp    0x40555d
4054f3:	ff 35 8c 25 43 00    	push   0x43258c
4054f9:	ff 15 28 33 43 00    	call   *0x433328
4054ff:	eb 5c                	jmp    0x40555d
405501:	6a 01                	push   $0x1
405503:	68 82 00 00 00       	push   $0x82
405508:	ff 35 10 19 43 00    	push   0x431910
40550e:	ff 15 14 33 43 00    	call   *0x433314
405514:	50                   	push   %eax
405515:	ff 15 14 32 43 00    	call   *0x433214
40551b:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
405521:	33 d2                	xor    %edx,%edx
405523:	e8 63 8f 00 00       	call   0x40e48b
405528:	33 d2                	xor    %edx,%edx
40552a:	89 15 90 25 43 00    	mov    %edx,0x432590
405530:	89 15 8c 25 43 00    	mov    %edx,0x43258c
405536:	ff 75 14             	push   0x14(%ebp)
405539:	ff 75 10             	push   0x10(%ebp)
40553c:	ff 75 0c             	push   0xc(%ebp)
40553f:	e9 8b fe ff ff       	jmp    0x4053cf
405544:	6a 00                	push   $0x0
405546:	ff 35 04 19 41 00    	push   0x411904
40554c:	68 94 01 00 00       	push   $0x194
405551:	ff 35 8c 25 43 00    	push   0x43258c
405557:	ff 15 10 33 43 00    	call   *0x433310
40555d:	33 c0                	xor    %eax,%eax
40555f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405562:	5f                   	pop    %edi
405563:	5e                   	pop    %esi
405564:	33 cd                	xor    %ebp,%ecx
405566:	5b                   	pop    %ebx
405567:	e8 c4 ae 00 00       	call   0x410430
40556c:	c9                   	leave
40556d:	c2 10 00             	ret    $0x10
405570:	8b ff                	mov    %edi,%edi
405572:	55                   	push   %ebp
405573:	8b ec                	mov    %esp,%ebp
405575:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40557b:	a1 64 10 41 00       	mov    0x411064,%eax
405580:	33 c5                	xor    %ebp,%eax
405582:	89 45 fc             	mov    %eax,-0x4(%ebp)
405585:	a1 8c 25 43 00       	mov    0x43258c,%eax
40558a:	53                   	push   %ebx
40558b:	8b 5a 08             	mov    0x8(%edx),%ebx
40558e:	56                   	push   %esi
40558f:	57                   	push   %edi
405590:	0f b7 7b 0a          	movzwl 0xa(%ebx),%edi
405594:	8d 73 10             	lea    0x10(%ebx),%esi
405597:	85 c0                	test   %eax,%eax
405599:	75 14                	jne    0x4055af
40559b:	8b 53 04             	mov    0x4(%ebx),%edx
40559e:	03 d3                	add    %ebx,%edx
4055a0:	e8 fb fa ff ff       	call   0x4050a0
4055a5:	85 c0                	test   %eax,%eax
4055a7:	0f 84 b2 00 00 00    	je     0x40565f
4055ad:	eb 10                	jmp    0x4055bf
4055af:	6a 00                	push   $0x0
4055b1:	6a 00                	push   $0x0
4055b3:	68 84 01 00 00       	push   $0x184
4055b8:	50                   	push   %eax
4055b9:	ff 15 10 33 43 00    	call   *0x433310
4055bf:	a1 8c 25 43 00       	mov    0x43258c,%eax
4055c4:	85 c0                	test   %eax,%eax
4055c6:	0f 84 93 00 00 00    	je     0x40565f
4055cc:	6a 01                	push   $0x1
4055ce:	ff 35 80 25 43 00    	push   0x432580
4055d4:	6a 30                	push   $0x30
4055d6:	59                   	pop    %ecx
4055d7:	51                   	push   %ecx
4055d8:	50                   	push   %eax
4055d9:	ff 15 10 33 43 00    	call   *0x433310
4055df:	85 ff                	test   %edi,%edi
4055e1:	74 67                	je     0x40564a
4055e3:	8b 06                	mov    (%esi),%eax
4055e5:	03 c3                	add    %ebx,%eax
4055e7:	6a 30                	push   $0x30
4055e9:	59                   	pop    %ecx
4055ea:	66 39 08             	cmp    %cx,(%eax)
4055ed:	75 27                	jne    0x405616
4055ef:	68 ff 00 00 00       	push   $0xff
4055f4:	8d 8d f8 fd ff ff    	lea    -0x208(%ebp),%ecx
4055fa:	51                   	push   %ecx
4055fb:	50                   	push   %eax
4055fc:	ff 15 fc 33 43 00    	call   *0x4333fc
405602:	59                   	pop    %ecx
405603:	50                   	push   %eax
405604:	ff 35 0c 19 41 00    	push   0x41190c
40560a:	ff 15 20 33 43 00    	call   *0x433320
405610:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
405616:	50                   	push   %eax
405617:	6a 00                	push   $0x0
405619:	68 80 01 00 00       	push   $0x180
40561e:	ff 35 8c 25 43 00    	push   0x43258c
405624:	ff 15 10 33 43 00    	call   *0x433310
40562a:	83 f8 ff             	cmp    $0xffffffff,%eax
40562d:	74 13                	je     0x405642
40562f:	56                   	push   %esi
405630:	50                   	push   %eax
405631:	68 9a 01 00 00       	push   $0x19a
405636:	ff 35 8c 25 43 00    	push   0x43258c
40563c:	ff 15 10 33 43 00    	call   *0x433310
405642:	83 c6 10             	add    $0x10,%esi
405645:	83 ef 01             	sub    $0x1,%edi
405648:	75 99                	jne    0x4055e3
40564a:	6a 00                	push   $0x0
40564c:	6a 00                	push   $0x0
40564e:	68 86 01 00 00       	push   $0x186
405653:	ff 35 8c 25 43 00    	push   0x43258c
405659:	ff 15 10 33 43 00    	call   *0x433310
40565f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405662:	5f                   	pop    %edi
405663:	5e                   	pop    %esi
405664:	33 cd                	xor    %ebp,%ecx
405666:	5b                   	pop    %ebx
405667:	e8 c4 ad 00 00       	call   0x410430
40566c:	c9                   	leave
40566d:	c3                   	ret
40566e:	8b ff                	mov    %edi,%edi
405670:	55                   	push   %ebp
405671:	8b ec                	mov    %esp,%ebp
405673:	a1 8c 25 43 00       	mov    0x43258c,%eax
405678:	53                   	push   %ebx
405679:	8b 5a 08             	mov    0x8(%edx),%ebx
40567c:	56                   	push   %esi
40567d:	33 f6                	xor    %esi,%esi
40567f:	57                   	push   %edi
405680:	85 c0                	test   %eax,%eax
405682:	75 1b                	jne    0x40569f
405684:	8b 53 04             	mov    0x4(%ebx),%edx
405687:	03 d3                	add    %ebx,%edx
405689:	e8 12 fa ff ff       	call   0x4050a0
40568e:	85 c0                	test   %eax,%eax
405690:	74 09                	je     0x40569b
405692:	a1 8c 25 43 00       	mov    0x43258c,%eax
405697:	85 c0                	test   %eax,%eax
405699:	75 04                	jne    0x40569f
40569b:	33 c0                	xor    %eax,%eax
40569d:	eb 7c                	jmp    0x40571b
40569f:	56                   	push   %esi
4056a0:	56                   	push   %esi
4056a1:	68 88 01 00 00       	push   $0x188
4056a6:	50                   	push   %eax
4056a7:	ff 15 10 33 43 00    	call   *0x433310
4056ad:	83 f8 ff             	cmp    $0xffffffff,%eax
4056b0:	74 67                	je     0x405719
4056b2:	56                   	push   %esi
4056b3:	50                   	push   %eax
4056b4:	68 99 01 00 00       	push   $0x199
4056b9:	ff 35 8c 25 43 00    	push   0x43258c
4056bf:	ff 15 10 33 43 00    	call   *0x433310
4056c5:	ff 75 10             	push   0x10(%ebp)
4056c8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4056cb:	8b f0                	mov    %eax,%esi
4056cd:	57                   	push   %edi
4056ce:	8b 4e 08             	mov    0x8(%esi),%ecx
4056d1:	8b 56 04             	mov    0x4(%esi),%edx
4056d4:	51                   	push   %ecx
4056d5:	03 d3                	add    %ebx,%edx
4056d7:	89 0f                	mov    %ecx,(%edi)
4056d9:	e8 92 14 00 00       	call   0x406b70
4056de:	81 3e b2 6d 01 00    	cmpl   $0x16db2,(%esi)
4056e4:	75 30                	jne    0x405716
4056e6:	8b 17                	mov    (%edi),%edx
4056e8:	be dc 00 00 00       	mov    $0xdc,%esi
4056ed:	8b ca                	mov    %edx,%ecx
4056ef:	eb 11                	jmp    0x405702
4056f1:	66 8b 04 4d 0e 19 41 	mov    0x41190e(,%ecx,2),%ax
4056f8:	00
4056f9:	66 89 04 4d 10 19 41 	mov    %ax,0x411910(,%ecx,2)
405700:	00
405701:	49                   	dec    %ecx
405702:	3b ce                	cmp    %esi,%ecx
405704:	77 eb                	ja     0x4056f1
405706:	b8 ff 32 00 00       	mov    $0x32ff,%eax
40570b:	66 a3 c8 1a 41 00    	mov    %ax,0x411ac8
405711:	8d 42 01             	lea    0x1(%edx),%eax
405714:	89 07                	mov    %eax,(%edi)
405716:	33 f6                	xor    %esi,%esi
405718:	46                   	inc    %esi
405719:	8b c6                	mov    %esi,%eax
40571b:	5f                   	pop    %edi
40571c:	5e                   	pop    %esi
40571d:	5b                   	pop    %ebx
40571e:	5d                   	pop    %ebp
40571f:	c2 0c 00             	ret    $0xc
405722:	8b ff                	mov    %edi,%edi
405724:	55                   	push   %ebp
405725:	8b ec                	mov    %esp,%ebp
405727:	81 ec c8 00 00 00    	sub    $0xc8,%esp
40572d:	a1 64 10 41 00       	mov    0x411064,%eax
405732:	33 c5                	xor    %ebp,%eax
405734:	89 45 f8             	mov    %eax,-0x8(%ebp)
405737:	53                   	push   %ebx
405738:	8b 5d 08             	mov    0x8(%ebp),%ebx
40573b:	56                   	push   %esi
40573c:	57                   	push   %edi
40573d:	6a fe                	push   $0xfffffffe
40573f:	8b f9                	mov    %ecx,%edi
405741:	ff 15 e4 31 43 00    	call   *0x4331e4
405747:	83 3d 88 25 43 00 00 	cmpl   $0x0,0x432588
40574e:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
405754:	0f 85 44 02 00 00    	jne    0x40599e
40575a:	8b cf                	mov    %edi,%ecx
40575c:	e8 41 f7 ff ff       	call   0x404ea2
405761:	8b 43 08             	mov    0x8(%ebx),%eax
405764:	8b 48 04             	mov    0x4(%eax),%ecx
405767:	03 c8                	add    %eax,%ecx
405769:	89 0d c0 18 41 00    	mov    %ecx,0x4118c0
40576f:	66 83 39 30          	cmpw   $0x30,(%ecx)
405773:	75 26                	jne    0x40579b
405775:	68 00 01 00 00       	push   $0x100
40577a:	be c0 16 41 00       	mov    $0x4116c0,%esi
40577f:	56                   	push   %esi
405780:	51                   	push   %ecx
405781:	ff 15 fc 33 43 00    	call   *0x4333fc
405787:	59                   	pop    %ecx
405788:	50                   	push   %eax
405789:	ff 35 0c 19 41 00    	push   0x41190c
40578f:	ff 15 20 33 43 00    	call   *0x433320
405795:	89 35 c0 18 41 00    	mov    %esi,0x4118c0
40579b:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
4057a1:	50                   	push   %eax
4057a2:	57                   	push   %edi
4057a3:	ff 15 e0 31 43 00    	call   *0x4331e0
4057a9:	6a ec                	push   $0xffffffec
4057ab:	57                   	push   %edi
4057ac:	ff 15 fc 32 43 00    	call   *0x4332fc
4057b2:	51                   	push   %ecx
4057b3:	8b f0                	mov    %eax,%esi
4057b5:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
4057bb:	51                   	push   %ecx
4057bc:	81 e6 00 00 40 00    	and    $0x400000,%esi
4057c2:	8b cb                	mov    %ebx,%ecx
4057c4:	50                   	push   %eax
4057c5:	81 ce 00 02 00 00    	or     $0x200,%esi
4057cb:	56                   	push   %esi
4057cc:	e8 f2 01 00 00       	call   0x4059c3
4057d1:	6a 40                	push   $0x40