428421:	8b f0                	mov    %eax,%esi
428423:	8b 46 14             	mov    0x14(%esi),%eax
428426:	85 c0                	test   %eax,%eax
428428:	74 13                	je     0x42843d
42842a:	e8 55 fd ff ff       	call   0x428184
42842f:	8b 46 14             	mov    0x14(%esi),%eax
428432:	50                   	push   %eax
428433:	e8 04 e1 fd ff       	call   0x40653c
428438:	33 c0                	xor    %eax,%eax
42843a:	89 46 14             	mov    %eax,0x14(%esi)
42843d:	8b c6                	mov    %esi,%eax
42843f:	8b 10                	mov    (%eax),%edx
428441:	ff 12                	call   *(%edx)
428443:	8b 46 64             	mov    0x64(%esi),%eax
428446:	85 c0                	test   %eax,%eax
428448:	74 06                	je     0x428450
42844a:	50                   	push   %eax
42844b:	e8 24 de fd ff       	call   0x406274
428450:	8d 46 6c             	lea    0x6c(%esi),%eax
428453:	e8 80 50 fe ff       	call   0x40d4d8
428458:	8b d3                	mov    %ebx,%edx
42845a:	80 e2 fc             	and    $0xfc,%dl
42845d:	8b c6                	mov    %esi,%eax
42845f:	e8 4c ae fd ff       	call   0x4032b0
428464:	84 db                	test   %bl,%bl
428466:	7e 07                	jle    0x42846f
428468:	8b c6                	mov    %esi,%eax
42846a:	e8 05 b2 fd ff       	call   0x403674
42846f:	5e                   	pop    %esi
428470:	5b                   	pop    %ebx
428471:	c3                   	ret
428472:	8b c0                	mov    %eax,%eax
428474:	53                   	push   %ebx
428475:	8b d8                	mov    %eax,%ebx
428477:	8b 43 08             	mov    0x8(%ebx),%eax
42847a:	85 c0                	test   %eax,%eax
42847c:	74 13                	je     0x428491
42847e:	3b 43 14             	cmp    0x14(%ebx),%eax
428481:	74 0e                	je     0x428491
428483:	e8 fc fc ff ff       	call   0x428184
428488:	8b 43 08             	mov    0x8(%ebx),%eax
42848b:	50                   	push   %eax
42848c:	e8 ab e0 fd ff       	call   0x40653c
428491:	8b 43 0c             	mov    0xc(%ebx),%eax
428494:	85 c0                	test   %eax,%eax
428496:	74 13                	je     0x4284ab
428498:	e8 e7 fc ff ff       	call   0x428184
42849d:	8b 43 0c             	mov    0xc(%ebx),%eax
4284a0:	50                   	push   %eax
4284a1:	e8 96 e0 fd ff       	call   0x40653c
4284a6:	33 c0                	xor    %eax,%eax
4284a8:	89 43 0c             	mov    %eax,0xc(%ebx)
4284ab:	8b 43 10             	mov    0x10(%ebx),%eax
4284ae:	e8 01 ac ff ff       	call   0x4230b4
4284b3:	33 c0                	xor    %eax,%eax
4284b5:	89 43 08             	mov    %eax,0x8(%ebx)
4284b8:	33 c0                	xor    %eax,%eax
4284ba:	89 43 10             	mov    %eax,0x10(%ebx)
4284bd:	5b                   	pop    %ebx
4284be:	c3                   	ret
4284bf:	90                   	nop
4284c0:	55                   	push   %ebp
4284c1:	8b ec                	mov    %esp,%ebp
4284c3:	81 c4 f0 fb ff ff    	add    $0xfffffbf0,%esp
4284c9:	53                   	push   %ebx
4284ca:	56                   	push   %esi
4284cb:	89 55 fc             	mov    %edx,-0x4(%ebp)
4284ce:	8b f0                	mov    %eax,%esi
4284d0:	85 f6                	test   %esi,%esi
4284d2:	0f 84 9e 00 00 00    	je     0x428576
4284d8:	66 83 79 26 08       	cmpw   $0x8,0x26(%ecx)
4284dd:	0f 87 93 00 00 00    	ja     0x428576
4284e3:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
4284e9:	b9 ff 00 00 00       	mov    $0xff,%ecx
4284ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
4284f1:	e8 b2 d3 ff ff       	call   0x4258a8
4284f6:	8b d8                	mov    %eax,%ebx
4284f8:	85 db                	test   %ebx,%ebx
4284fa:	74 7a                	je     0x428576
4284fc:	6a 00                	push   $0x0
4284fe:	e8 49 e3 fd ff       	call   0x40684c
428503:	89 45 f8             	mov    %eax,-0x8(%ebp)
428506:	8b 45 f8             	mov    -0x8(%ebp),%eax
428509:	50                   	push   %eax
42850a:	e8 dd df fd ff       	call   0x4064ec
42850f:	89 45 f4             	mov    %eax,-0xc(%ebp)
428512:	56                   	push   %esi
428513:	8b 45 f4             	mov    -0xc(%ebp),%eax
428516:	50                   	push   %eax
428517:	e8 38 e1 fd ff       	call   0x406654
42851c:	89 45 f0             	mov    %eax,-0x10(%ebp)
42851f:	33 c0                	xor    %eax,%eax
428521:	55                   	push   %ebp
428522:	68 6f 85 42 00       	push   $0x42856f
428527:	64 ff 30             	push   %fs:(%eax)
42852a:	64 89 20             	mov    %esp,%fs:(%eax)
42852d:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
428533:	50                   	push   %eax
428534:	53                   	push   %ebx
428535:	6a 00                	push   $0x0
428537:	8b 45 f4             	mov    -0xc(%ebp),%eax
42853a:	50                   	push   %eax
42853b:	e8 3c e1 fd ff       	call   0x40667c
428540:	33 c0                	xor    %eax,%eax
428542:	5a                   	pop    %edx
428543:	59                   	pop    %ecx
428544:	59                   	pop    %ecx
428545:	64 89 10             	mov    %edx,%fs:(%eax)
428548:	68 76 85 42 00       	push   $0x428576
42854d:	8b 45 f0             	mov    -0x10(%ebp),%eax
428550:	50                   	push   %eax
428551:	8b 45 f4             	mov    -0xc(%ebp),%eax
428554:	50                   	push   %eax
428555:	e8 fa e0 fd ff       	call   0x406654
42855a:	8b 45 f4             	mov    -0xc(%ebp),%eax
42855d:	50                   	push   %eax
42855e:	e8 c9 df fd ff       	call   0x40652c
428563:	8b 45 f8             	mov    -0x8(%ebp),%eax
428566:	50                   	push   %eax
428567:	6a 00                	push   $0x0
428569:	e8 26 e5 fd ff       	call   0x406a94
42856e:	c3                   	ret
42856f:	e9 e0 b4 fd ff       	jmp    0x403a54
428574:	eb d7                	jmp    0x42854d
428576:	5e                   	pop    %esi
428577:	5b                   	pop    %ebx
428578:	8b e5                	mov    %ebp,%esp
42857a:	5d                   	pop    %ebp
42857b:	c3                   	ret
42857c:	f6 40 28 03          	testb  $0x3,0x28(%eax)
428580:	74 42                	je     0x4285c4
428582:	83 78 40 00          	cmpl   $0x0,0x40(%eax)
428586:	75 3c                	jne    0x4285c4
428588:	66 8b 50 26          	mov    0x26(%eax),%dx
42858c:	66 83 fa 10          	cmp    $0x10,%dx
428590:	75 17                	jne    0x4285a9
428592:	c7 40 40 00 f8 00 00 	movl   $0xf800,0x40(%eax)
428599:	c7 40 44 e0 07 00 00 	movl   $0x7e0,0x44(%eax)
4285a0:	c7 40 48 1f 00 00 00 	movl   $0x1f,0x48(%eax)
4285a7:	eb 1b                	jmp    0x4285c4
4285a9:	66 83 fa 20          	cmp    $0x20,%dx
4285ad:	75 15                	jne    0x4285c4
4285af:	c7 40 40 00 00 ff 00 	movl   $0xff0000,0x40(%eax)
4285b6:	c7 40 44 00 ff 00 00 	movl   $0xff00,0x44(%eax)
4285bd:	c7 40 48 ff 00 00 00 	movl   $0xff,0x48(%eax)
4285c4:	c3                   	ret
4285c5:	8d 40 00             	lea    0x0(%eax),%eax
4285c8:	55                   	push   %ebp
4285c9:	8b ec                	mov    %esp,%ebp
4285cb:	81 c4 68 ff ff ff    	add    $0xffffff68,%esp
4285d1:	53                   	push   %ebx
4285d2:	56                   	push   %esi
4285d3:	57                   	push   %edi
4285d4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4285d7:	89 55 f8             	mov    %edx,-0x8(%ebp)
4285da:	89 45 fc             	mov    %eax,-0x4(%ebp)
4285dd:	33 c0                	xor    %eax,%eax
4285df:	89 45 f0             	mov    %eax,-0x10(%ebp)
4285e2:	8b 45 0c             	mov    0xc(%ebp),%eax
4285e5:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
4285e9:	74 1a                	je     0x428605
4285eb:	8b 45 0c             	mov    0xc(%ebp),%eax
4285ee:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
4285f2:	0f 84 25 06 00 00    	je     0x428c1d
4285f8:	8b 45 0c             	mov    0xc(%ebp),%eax
4285fb:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
4285ff:	0f 84 18 06 00 00    	je     0x428c1d
428605:	8b 45 0c             	mov    0xc(%ebp),%eax
428608:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
42860c:	75 1a                	jne    0x428628
42860e:	8b 45 0c             	mov    0xc(%ebp),%eax
428611:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
428615:	0f 84 02 06 00 00    	je     0x428c1d
42861b:	8b 45 0c             	mov    0xc(%ebp),%eax
42861e:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
428622:	0f 84 f5 05 00 00    	je     0x428c1d
428628:	8b 45 fc             	mov    -0x4(%ebp),%eax
42862b:	e8 54 fb ff ff       	call   0x428184
428630:	33 c0                	xor    %eax,%eax
428632:	89 45 90             	mov    %eax,-0x70(%ebp)
428635:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
428639:	74 1c                	je     0x428657
42863b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
428641:	50                   	push   %eax
428642:	6a 54                	push   $0x54
428644:	8b 45 fc             	mov    -0x4(%ebp),%eax
428647:	50                   	push   %eax
428648:	e8 57 df fd ff       	call   0x4065a4
42864d:	83 f8 18             	cmp    $0x18,%eax
428650:	7d 05                	jge    0x428657
428652:	e8 9d c9 ff ff       	call   0x424ff4
428657:	6a 00                	push   $0x0
428659:	e8 ee e1 fd ff       	call   0x40684c
42865e:	e8 b1 ca ff ff       	call   0x425114
428663:	89 45 e8             	mov    %eax,-0x18(%ebp)
428666:	8b 45 e8             	mov    -0x18(%ebp),%eax
428669:	50                   	push   %eax
42866a:	e8 7d de fd ff       	call   0x4064ec
42866f:	e8 a0 ca ff ff       	call   0x425114
428674:	89 45 e4             	mov    %eax,-0x1c(%ebp)
428677:	33 d2                	xor    %edx,%edx
428679:	55                   	push   %ebp
42867a:	68 16 8c 42 00       	push   $0x428c16
42867f:	64 ff 32             	push   %fs:(%edx)
428682:	64 89 22             	mov    %esp,%fs:(%edx)
428685:	8b 45 0c             	mov    0xc(%ebp),%eax
428688:	83 78 18 28          	cmpl   $0x28,0x18(%eax)
42868c:	73 5e                	jae    0x4286ec
42868e:	8b 45 0c             	mov    0xc(%ebp),%eax
428691:	66 8b 40 10          	mov    0x10(%eax),%ax
428695:	8b 55 0c             	mov    0xc(%ebp),%edx
428698:	66 0b 42 12          	or     0x12(%edx),%ax
42869c:	66 83 f8 01          	cmp    $0x1,%ax
4286a0:	75 26                	jne    0x4286c8
4286a2:	6a 00                	push   $0x0
4286a4:	6a 01                	push   $0x1
4286a6:	6a 01                	push   $0x1
4286a8:	8b 45 0c             	mov    0xc(%ebp),%eax
4286ab:	8b 40 08             	mov    0x8(%eax),%eax
4286ae:	50                   	push   %eax
4286af:	8b 45 0c             	mov    0xc(%ebp),%eax
4286b2:	8b 40 04             	mov    0x4(%eax),%eax
4286b5:	50                   	push   %eax
4286b6:	e8 19 de fd ff       	call   0x4064d4
4286bb:	e8 54 ca ff ff       	call   0x425114
4286c0:	89 45 f0             	mov    %eax,-0x10(%ebp)
4286c3:	e9 5f 02 00 00       	jmp    0x428927
4286c8:	8b 45 0c             	mov    0xc(%ebp),%eax
4286cb:	8b 40 08             	mov    0x8(%eax),%eax
4286ce:	50                   	push   %eax
4286cf:	8b 45 0c             	mov    0xc(%ebp),%eax
4286d2:	8b 40 04             	mov    0x4(%eax),%eax
4286d5:	50                   	push   %eax
4286d6:	8b 45 e8             	mov    -0x18(%ebp),%eax
4286d9:	50                   	push   %eax
4286da:	e8 05 de fd ff       	call   0x4064e4
4286df:	e8 30 ca ff ff       	call   0x425114
4286e4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4286e7:	e9 3b 02 00 00       	jmp    0x428927
4286ec:	b8 2c 04 00 00       	mov    $0x42c,%eax
4286f1:	e8 fe 9f fd ff       	call   0x4026f4
4286f6:	89 45 dc             	mov    %eax,-0x24(%ebp)
4286f9:	33 d2                	xor    %edx,%edx
4286fb:	55                   	push   %ebp
4286fc:	68 20 89 42 00       	push   $0x428920
428701:	64 ff 32             	push   %fs:(%edx)
428704:	64 89 22             	mov    %esp,%fs:(%edx)
428707:	8b 45 0c             	mov    0xc(%ebp),%eax
42870a:	c7 40 18 28 00 00 00 	movl   $0x28,0x18(%eax)
428711:	8b 45 0c             	mov    0xc(%ebp),%eax
428714:	66 c7 40 24 01 00    	movw   $0x1,0x24(%eax)
42871a:	8b 45 0c             	mov    0xc(%ebp),%eax
42871d:	66 83 78 26 00       	cmpw   $0x0,0x26(%eax)
428722:	75 23                	jne    0x428747
428724:	6a 0c                	push   $0xc
428726:	8b 45 e8             	mov    -0x18(%ebp),%eax
428729:	50                   	push   %eax
42872a:	e8 55 de fd ff       	call   0x406584
42872f:	8b d8                	mov    %eax,%ebx
428731:	6a 0e                	push   $0xe
428733:	8b 45 e8             	mov    -0x18(%ebp),%eax
428736:	50                   	push   %eax
428737:	e8 48 de fd ff       	call   0x406584
42873c:	66 0f af d8          	imul   %ax,%bx
428740:	8b 45 0c             	mov    0xc(%ebp),%eax
428743:	66 89 58 26          	mov    %bx,0x26(%eax)
428747:	8b 45 0c             	mov    0xc(%ebp),%eax
42874a:	8b 55 dc             	mov    -0x24(%ebp),%edx
42874d:	8d 70 18             	lea    0x18(%eax),%esi
428750:	8b fa                	mov    %edx,%edi
428752:	b9 0a 00 00 00       	mov    $0xa,%ecx
428757:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428759:	8b 45 0c             	mov    0xc(%ebp),%eax
42875c:	8b 40 1c             	mov    0x1c(%eax),%eax
42875f:	8b 55 0c             	mov    0xc(%ebp),%edx
428762:	89 42 04             	mov    %eax,0x4(%edx)
428765:	8b 45 0c             	mov    0xc(%ebp),%eax
428768:	8b 40 20             	mov    0x20(%eax),%eax
42876b:	8b 55 0c             	mov    0xc(%ebp),%edx
42876e:	89 42 08             	mov    %eax,0x8(%edx)
428771:	8b 45 0c             	mov    0xc(%ebp),%eax
428774:	66 83 78 26 08       	cmpw   $0x8,0x26(%eax)
428779:	0f 87 c7 00 00 00    	ja     0x428846
42877f:	8b 45 0c             	mov    0xc(%ebp),%eax
428782:	66 83 78 26 01       	cmpw   $0x1,0x26(%eax)
428787:	75 28                	jne    0x4287b1
428789:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
42878d:	74 06                	je     0x428795
42878f:	83 7d 8c 00          	cmpl   $0x0,-0x74(%ebp)
428793:	75 1c                	jne    0x4287b1
428795:	8b 45 dc             	mov    -0x24(%ebp),%eax
428798:	33 d2                	xor    %edx,%edx
42879a:	89 50 28             	mov    %edx,0x28(%eax)
42879d:	8b 45 dc             	mov    -0x24(%ebp),%eax
4287a0:	83 c0 28             	add    $0x28,%eax
4287a3:	83 c0 04             	add    $0x4,%eax
4287a6:	c7 00 ff ff ff 00    	movl   $0xffffff,(%eax)
4287ac:	e9 d2 00 00 00       	jmp    0x428883
4287b1:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4287b5:	74 18                	je     0x4287cf
4287b7:	8b 45 dc             	mov    -0x24(%ebp),%eax
4287ba:	8d 50 28             	lea    0x28(%eax),%edx
4287bd:	b9 ff 00 00 00       	mov    $0xff,%ecx
4287c2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4287c5:	e8 de d0 ff ff       	call   0x4258a8
4287ca:	e9 b4 00 00 00       	jmp    0x428883
4287cf:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4287d3:	0f 84 aa 00 00 00    	je     0x428883
4287d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4287dc:	50                   	push   %eax
4287dd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4287e0:	50                   	push   %eax
4287e1:	e8 6e de fd ff       	call   0x406654
4287e6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4287e9:	83 7d 90 00          	cmpl   $0x0,-0x70(%ebp)
4287ed:	76 25                	jbe    0x428814
4287ef:	83 7d 8c 00          	cmpl   $0x0,-0x74(%ebp)
4287f3:	74 1f                	je     0x428814
4287f5:	8b 45 dc             	mov    -0x24(%ebp),%eax
4287f8:	83 c0 28             	add    $0x28,%eax
4287fb:	50                   	push   %eax
4287fc:	68 00 01 00 00       	push   $0x100
428801:	6a 00                	push   $0x0
428803:	8b 45 e4             	mov    -0x1c(%ebp),%eax
428806:	50                   	push   %eax
428807:	e8 68 dd fd ff       	call   0x406574
42880c:	8b 55 0c             	mov    0xc(%ebp),%edx
42880f:	89 42 38             	mov    %eax,0x38(%edx)
428812:	eb 23                	jmp    0x428837
428814:	6a 00                	push   $0x0
428816:	8b 45 dc             	mov    -0x24(%ebp),%eax
428819:	50                   	push   %eax
42881a:	6a 00                	push   $0x0
42881c:	8b 45 0c             	mov    0xc(%ebp),%eax
42881f:	8b 40 20             	mov    0x20(%eax),%eax
428822:	99                   	cltd
428823:	33 c2                	xor    %edx,%eax
428825:	2b c2                	sub    %edx,%eax
428827:	50                   	push   %eax
428828:	6a 00                	push   $0x0
42882a:	8b 45 fc             	mov    -0x4(%ebp),%eax
42882d:	50                   	push   %eax
42882e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
428831:	50                   	push   %eax
428832:	e8 45 dd fd ff       	call   0x40657c
428837:	8b 45 ec             	mov    -0x14(%ebp),%eax
42883a:	50                   	push   %eax
42883b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42883e:	50                   	push   %eax
42883f:	e8 10 de fd ff       	call   0x406654