40431a:	73 49                	jae    0x404365
40431c:	8b 7d e8             	mov    -0x18(%ebp),%edi
40431f:	0f b7 d0             	movzwl %ax,%edx
404322:	8b 45 e0             	mov    -0x20(%ebp),%eax
404325:	8b f2                	mov    %edx,%esi
404327:	d1 ee                	shr    $1,%esi
404329:	0f b6 0c 02          	movzbl (%edx,%eax,1),%ecx
40432d:	0f b6 44 02 01       	movzbl 0x1(%edx,%eax,1),%eax
404332:	66 c1 e1 08          	shl    $0x8,%cx
404336:	66 0b c8             	or     %ax,%cx
404339:	66 89 0c b3          	mov    %cx,(%ebx,%esi,4)
40433d:	0f b6 4c 3a 0e       	movzbl 0xe(%edx,%edi,1),%ecx
404342:	0f b6 44 17 0f       	movzbl 0xf(%edi,%edx,1),%eax
404347:	66 c1 e1 08          	shl    $0x8,%cx
40434b:	66 0b c8             	or     %ax,%cx
40434e:	8b 45 f0             	mov    -0x10(%ebp),%eax
404351:	83 c0 02             	add    $0x2,%eax
404354:	66 89 4c b3 02       	mov    %cx,0x2(%ebx,%esi,4)
404359:	89 45 f0             	mov    %eax,-0x10(%ebp)
40435c:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
404360:	72 bd                	jb     0x40431f
404362:	8b 7d fc             	mov    -0x4(%ebp),%edi
404365:	8b 75 f8             	mov    -0x8(%ebp),%esi
404368:	83 fe 02             	cmp    $0x2,%esi
40436b:	77 3f                	ja     0x4043ac
40436d:	0f b7 0b             	movzwl (%ebx),%ecx
404370:	ba ff 00 00 00       	mov    $0xff,%edx
404375:	8d 81 00 10 00 00    	lea    0x1000(%ecx),%eax
40437b:	66 3b c2             	cmp    %dx,%ax
40437e:	77 2c                	ja     0x4043ac
404380:	b8 21 f0 00 00       	mov    $0xf021,%eax
404385:	6a 21                	push   $0x21
404387:	5a                   	pop    %edx
404388:	66 3b c8             	cmp    %ax,%cx
40438b:	8b c2                	mov    %edx,%eax
40438d:	72 03                	jb     0x404392
40438f:	0f b6 c1             	movzbl %cl,%eax
404392:	66 89 03             	mov    %ax,(%ebx)
404395:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
404399:	66 3b c2             	cmp    %dx,%ax
40439c:	73 03                	jae    0x4043a1
40439e:	66 89 13             	mov    %dx,(%ebx)
4043a1:	81 cf 00 00 00 20    	or     $0x20000000,%edi
4043a7:	eb 03                	jmp    0x4043ac
4043a9:	8b 75 f8             	mov    -0x8(%ebp),%esi
4043ac:	8b 45 dc             	mov    -0x24(%ebp),%eax
4043af:	85 c0                	test   %eax,%eax
4043b1:	74 07                	je     0x4043ba
4043b3:	50                   	push   %eax
4043b4:	ff 15 b4 30 43 00    	call   *0x4330b4
4043ba:	8b 45 ec             	mov    -0x14(%ebp),%eax
4043bd:	85 c0                	test   %eax,%eax
4043bf:	74 08                	je     0x4043c9
4043c1:	50                   	push   %eax
4043c2:	ff 15 d4 33 43 00    	call   *0x4333d4
4043c8:	59                   	pop    %ecx
4043c9:	ff 75 d8             	push   -0x28(%ebp)
4043cc:	ff 75 f4             	push   -0xc(%ebp)
4043cf:	ff 15 ac 30 43 00    	call   *0x4330ac
4043d5:	ff 75 f4             	push   -0xc(%ebp)
4043d8:	ff 75 14             	push   0x14(%ebp)
4043db:	ff 15 08 33 43 00    	call   *0x433308
4043e1:	eb 21                	jmp    0x404404
4043e3:	6a 04                	push   $0x4
4043e5:	ff 15 f8 33 43 00    	call   *0x4333f8
4043eb:	8b d8                	mov    %eax,%ebx
4043ed:	59                   	pop    %ecx
4043ee:	85 db                	test   %ebx,%ebx
4043f0:	74 32                	je     0x404424
4043f2:	6a 21                	push   $0x21
4043f4:	58                   	pop    %eax
4043f5:	66 89 03             	mov    %ax,(%ebx)
4043f8:	33 f6                	xor    %esi,%esi
4043fa:	b8 ff ff 00 00       	mov    $0xffff,%eax
4043ff:	46                   	inc    %esi
404400:	66 89 43 02          	mov    %ax,0x2(%ebx)
404404:	85 f6                	test   %esi,%esi
404406:	74 1c                	je     0x404424
404408:	8b 4d 08             	mov    0x8(%ebp),%ecx
40440b:	8b d7                	mov    %edi,%edx
40440d:	56                   	push   %esi
40440e:	53                   	push   %ebx
40440f:	e8 a5 03 00 00       	call   0x4047b9
404414:	85 c0                	test   %eax,%eax
404416:	75 0c                	jne    0x404424
404418:	85 db                	test   %ebx,%ebx
40441a:	74 08                	je     0x404424
40441c:	53                   	push   %ebx
40441d:	ff 15 d4 33 43 00    	call   *0x4333d4
404423:	59                   	pop    %ecx
404424:	5e                   	pop    %esi
404425:	33 c0                	xor    %eax,%eax
404427:	5f                   	pop    %edi
404428:	40                   	inc    %eax
404429:	5b                   	pop    %ebx
40442a:	c9                   	leave
40442b:	c2 10 00             	ret    $0x10
40442e:	8b ff                	mov    %edi,%edi
404430:	55                   	push   %ebp
404431:	8b ec                	mov    %esp,%ebp
404433:	81 ec 58 08 00 00    	sub    $0x858,%esp
404439:	a1 64 10 41 00       	mov    0x411064,%eax
40443e:	33 c5                	xor    %ebp,%eax
404440:	89 45 fc             	mov    %eax,-0x4(%ebp)
404443:	53                   	push   %ebx
404444:	56                   	push   %esi
404445:	57                   	push   %edi
404446:	83 a5 c4 f7 ff ff 00 	andl   $0x0,-0x83c(%ebp)
40444d:	8d 7d f0             	lea    -0x10(%ebp),%edi
404450:	83 a5 c0 f7 ff ff 00 	andl   $0x0,-0x840(%ebp)
404457:	8d 85 c0 f7 ff ff    	lea    -0x840(%ebp),%eax
40445d:	be d4 13 40 00       	mov    $0x4013d4,%esi
404462:	89 8d b4 f7 ff ff    	mov    %ecx,-0x84c(%ebp)
404468:	50                   	push   %eax
404469:	33 db                	xor    %ebx,%ebx
40446b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40446e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40446f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
404470:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
404472:	bf 19 00 02 00       	mov    $0x20019,%edi
404477:	33 f6                	xor    %esi,%esi
404479:	57                   	push   %edi
40447a:	53                   	push   %ebx
40447b:	50                   	push   %eax
40447c:	68 01 00 00 80       	push   $0x80000001
404481:	46                   	inc    %esi
404482:	ff 15 04 30 43 00    	call   *0x433004
404488:	85 c0                	test   %eax,%eax
40448a:	74 07                	je     0x404493
40448c:	33 c0                	xor    %eax,%eax
40448e:	e9 46 02 00 00       	jmp    0x4046d9
404493:	ff 15 a4 31 43 00    	call   *0x4331a4
404499:	50                   	push   %eax
40449a:	68 e0 13 40 00       	push   $0x4013e0
40449f:	8d 45 e0             	lea    -0x20(%ebp),%eax
4044a2:	6a 08                	push   $0x8
4044a4:	50                   	push   %eax
4044a5:	e8 fe f4 ff ff       	call   0x4039a8
4044aa:	83 c4 10             	add    $0x10,%esp
4044ad:	85 c0                	test   %eax,%eax
4044af:	0f 88 f6 01 00 00    	js     0x4046ab
4044b5:	8d 85 c4 f7 ff ff    	lea    -0x83c(%ebp),%eax
4044bb:	50                   	push   %eax
4044bc:	57                   	push   %edi
4044bd:	6a 00                	push   $0x0
4044bf:	8d 45 e0             	lea    -0x20(%ebp),%eax
4044c2:	50                   	push   %eax
4044c3:	ff b5 c0 f7 ff ff    	push   -0x840(%ebp)
4044c9:	ff 15 04 30 43 00    	call   *0x433004
4044cf:	85 c0                	test   %eax,%eax
4044d1:	0f 85 d6 01 00 00    	jne    0x4046ad
4044d7:	21 9d b0 f7 ff ff    	and    %ebx,-0x850(%ebp)
4044dd:	8d 85 bc f7 ff ff    	lea    -0x844(%ebp),%eax
4044e3:	50                   	push   %eax
4044e4:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
4044ea:	50                   	push   %eax
4044eb:	8d 85 a8 f7 ff ff    	lea    -0x858(%ebp),%eax
4044f1:	50                   	push   %eax
4044f2:	6a 00                	push   $0x0
4044f4:	8d 85 b8 f7 ff ff    	lea    -0x848(%ebp),%eax
4044fa:	50                   	push   %eax
4044fb:	8d 85 d8 fb ff ff    	lea    -0x428(%ebp),%eax
404501:	50                   	push   %eax
404502:	6a 00                	push   $0x0
404504:	e9 78 01 00 00       	jmp    0x404681
404509:	6a ff                	push   $0xffffffff
40450b:	68 e8 13 40 00       	push   $0x4013e8
404510:	6a ff                	push   $0xffffffff
404512:	8d 85 d8 fb ff ff    	lea    -0x428(%ebp),%eax
404518:	50                   	push   %eax
404519:	56                   	push   %esi
40451a:	6a 7f                	push   $0x7f
40451c:	ff 15 c0 31 43 00    	call   *0x4331c0
404522:	83 f8 02             	cmp    $0x2,%eax
404525:	75 0a                	jne    0x404531
404527:	85 db                	test   %ebx,%ebx
404529:	0f 85 1f 01 00 00    	jne    0x40464e
40452f:	8b de                	mov    %esi,%ebx
404531:	68 04 01 00 00       	push   $0x104
404536:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40453c:	50                   	push   %eax
40453d:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
404543:	50                   	push   %eax
404544:	ff 15 c4 31 43 00    	call   *0x4331c4
40454a:	83 f8 02             	cmp    $0x2,%eax
40454d:	0f 82 58 01 00 00    	jb     0x4046ab
404553:	66 83 bd da fd ff ff 	cmpw   $0x3a,-0x226(%ebp)
40455a:	3a
40455b:	75 18                	jne    0x404575
40455d:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
404563:	68 14 14 40 00       	push   $0x401414
404568:	50                   	push   %eax
404569:	ff 15 ec 33 43 00    	call   *0x4333ec
40456f:	59                   	pop    %ecx
404570:	59                   	pop    %ecx
404571:	85 c0                	test   %eax,%eax
404573:	75 6d                	jne    0x4045e2
404575:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40457b:	ba 04 01 00 00       	mov    $0x104,%edx
404580:	50                   	push   %eax
404581:	8d 8d c8 f7 ff ff    	lea    -0x838(%ebp),%ecx
404587:	e8 d3 f4 ff ff       	call   0x403a5f
40458c:	85 c0                	test   %eax,%eax
40458e:	0f 88 17 01 00 00    	js     0x4046ab
404594:	68 04 01 00 00       	push   $0x104
404599:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40459f:	50                   	push   %eax
4045a0:	ff 15 c8 31 43 00    	call   *0x4331c8
4045a6:	68 20 14 40 00       	push   $0x401420
4045ab:	ba 04 01 00 00       	mov    $0x104,%edx
4045b0:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
4045b6:	e8 7f f3 ff ff       	call   0x40393a
4045bb:	85 c0                	test   %eax,%eax
4045bd:	0f 88 e8 00 00 00    	js     0x4046ab
4045c3:	8d 85 c8 f7 ff ff    	lea    -0x838(%ebp),%eax
4045c9:	ba 04 01 00 00       	mov    $0x104,%edx
4045ce:	50                   	push   %eax
4045cf:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
4045d5:	e8 60 f3 ff ff       	call   0x40393a
4045da:	85 c0                	test   %eax,%eax
4045dc:	0f 88 c9 00 00 00    	js     0x4046ab
4045e2:	8d 95 ac f7 ff ff    	lea    -0x854(%ebp),%edx
4045e8:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
4045ee:	e8 c4 29 00 00       	call   0x406fb7
4045f3:	8b f8                	mov    %eax,%edi
4045f5:	8d 85 d8 fb ff ff    	lea    -0x428(%ebp),%eax
4045fb:	85 ff                	test   %edi,%edi
4045fd:	75 20                	jne    0x40461f
4045ff:	6a ff                	push   $0xffffffff
404601:	68 e8 13 40 00       	push   $0x4013e8
404606:	6a ff                	push   $0xffffffff
404608:	50                   	push   %eax
404609:	56                   	push   %esi
40460a:	6a 7f                	push   $0x7f
40460c:	ff 15 c0 31 43 00    	call   *0x4331c0
404612:	83 f8 02             	cmp    $0x2,%eax
404615:	75 37                	jne    0x40464e
404617:	85 db                	test   %ebx,%ebx
404619:	74 33                	je     0x40464e
40461b:	33 db                	xor    %ebx,%ebx
40461d:	eb 2f                	jmp    0x40464e
40461f:	8b 8d b4 f7 ff ff    	mov    -0x84c(%ebp),%ecx
404625:	50                   	push   %eax
404626:	6a 20                	push   $0x20
404628:	83 c1 1c             	add    $0x1c,%ecx
40462b:	5a                   	pop    %edx
40462c:	e8 2e f4 ff ff       	call   0x403a5f
404631:	85 c0                	test   %eax,%eax
404633:	78 76                	js     0x4046ab
404635:	8b 85 ac f7 ff ff    	mov    -0x854(%ebp),%eax
40463b:	ba 04 00 00 10       	mov    $0x10000004,%edx
404640:	8b 8d b4 f7 ff ff    	mov    -0x84c(%ebp),%ecx
404646:	48                   	dec    %eax
404647:	50                   	push   %eax
404648:	57                   	push   %edi
404649:	e8 6b 01 00 00       	call   0x4047b9
40464e:	8b 85 b0 f7 ff ff    	mov    -0x850(%ebp),%eax
404654:	8d 8d bc f7 ff ff    	lea    -0x844(%ebp),%ecx
40465a:	51                   	push   %ecx
40465b:	8d 8d d0 f9 ff ff    	lea    -0x630(%ebp),%ecx
404661:	40                   	inc    %eax
404662:	51                   	push   %ecx
404663:	8d 8d a8 f7 ff ff    	lea    -0x858(%ebp),%ecx
404669:	89 85 b0 f7 ff ff    	mov    %eax,-0x850(%ebp)
40466f:	51                   	push   %ecx
404670:	6a 00                	push   $0x0
404672:	8d 8d b8 f7 ff ff    	lea    -0x848(%ebp),%ecx
404678:	51                   	push   %ecx
404679:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40467f:	51                   	push   %ecx
404680:	50                   	push   %eax
404681:	ff b5 c4 f7 ff ff    	push   -0x83c(%ebp)
404687:	c7 85 b8 f7 ff ff 00 	movl   $0x100,-0x848(%ebp)
40468e:	01 00 00
404691:	c7 85 bc f7 ff ff 08 	movl   $0x208,-0x844(%ebp)
404698:	02 00 00
40469b:	ff 15 08 30 43 00    	call   *0x433008
4046a1:	85 c0                	test   %eax,%eax
4046a3:	0f 84 60 fe ff ff    	je     0x404509
4046a9:	eb 02                	jmp    0x4046ad
4046ab:	33 f6                	xor    %esi,%esi
4046ad:	83 bd c4 f7 ff ff 00 	cmpl   $0x0,-0x83c(%ebp)
4046b4:	74 0c                	je     0x4046c2
4046b6:	ff b5 c4 f7 ff ff    	push   -0x83c(%ebp)
4046bc:	ff 15 00 30 43 00    	call   *0x433000
4046c2:	83 bd c0 f7 ff ff 00 	cmpl   $0x0,-0x840(%ebp)
4046c9:	74 0c                	je     0x4046d7
4046cb:	ff b5 c0 f7 ff ff    	push   -0x840(%ebp)
4046d1:	ff 15 00 30 43 00    	call   *0x433000
4046d7:	8b c6                	mov    %esi,%eax
4046d9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4046dc:	5f                   	pop    %edi
4046dd:	5e                   	pop    %esi
4046de:	33 cd                	xor    %ebp,%ecx
4046e0:	5b                   	pop    %ebx
4046e1:	e8 4a bd 00 00       	call   0x410430
4046e6:	c9                   	leave
4046e7:	c3                   	ret
4046e8:	8b ff                	mov    %edi,%edi
4046ea:	53                   	push   %ebx
4046eb:	8b 1d b4 16 41 00    	mov    0x4116b4,%ebx
4046f1:	57                   	push   %edi
4046f2:	8b 3d b8 16 41 00    	mov    0x4116b8,%edi
4046f8:	85 ff                	test   %edi,%edi
4046fa:	7e 24                	jle    0x404720
4046fc:	56                   	push   %esi
4046fd:	8d b3 0c 02 00 00    	lea    0x20c(%ebx),%esi
404703:	83 3e 00             	cmpl   $0x0,(%esi)
404706:	74 0c                	je     0x404714
404708:	ff 36                	push   (%esi)
40470a:	ff 15 d4 33 43 00    	call   *0x4333d4
404710:	83 26 00             	andl   $0x0,(%esi)
404713:	59                   	pop    %ecx
404714:	81 c6 14 02 00 00    	add    $0x214,%esi
40471a:	83 ef 01             	sub    $0x1,%edi
40471d:	75 e4                	jne    0x404703
40471f:	5e                   	pop    %esi
404720:	53                   	push   %ebx
404721:	ff 15 d4 33 43 00    	call   *0x4333d4
404727:	83 25 b4 16 41 00 00 	andl   $0x0,0x4116b4
40472e:	33 c0                	xor    %eax,%eax
404730:	83 25 b8 16 41 00 00 	andl   $0x0,0x4116b8
404737:	40                   	inc    %eax
404738:	59                   	pop    %ecx
404739:	5f                   	pop    %edi
40473a:	5b                   	pop    %ebx
40473b:	c3                   	ret
40473c:	8b ff                	mov    %edi,%edi
40473e:	55                   	push   %ebp
40473f:	8b ec                	mov    %esp,%ebp
404741:	83 ec 60             	sub    $0x60,%esp
404744:	a1 64 10 41 00       	mov    0x411064,%eax
404749:	33 c5                	xor    %ebp,%eax
40474b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40474e:	83 3d b4 16 41 00 00 	cmpl   $0x0,0x4116b4
404755:	53                   	push   %ebx
404756:	56                   	push   %esi
404757:	57                   	push   %edi
404758:	8b f9                	mov    %ecx,%edi
40475a:	74 05                	je     0x404761
40475c:	e8 87 ff ff ff       	call   0x4046e8
404761:	33 db                	xor    %ebx,%ebx
404763:	57                   	push   %edi
404764:	89 1d b4 16 41 00    	mov    %ebx,0x4116b4
40476a:	89 1d b8 16 41 00    	mov    %ebx,0x4116b8
404770:	ff 15 0c 33 43 00    	call   *0x43330c
404776:	53                   	push   %ebx
404777:	57                   	push   %edi
404778:	68 10 41 40 00       	push   $0x404110
40477d:	8d 4d a0             	lea    -0x60(%ebp),%ecx