424491:	8b 3a                	mov    (%edx),%edi
424493:	89 7e 30             	mov    %edi,0x30(%esi)
424496:	83 fb ff             	cmp    $0xffffffff,%ebx
424499:	75 05                	jne    0x4244a0
42449b:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
4244a0:	ff 76 28             	push   0x28(%esi)
4244a3:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
4244a7:	50                   	push   %eax
4244a8:	ff 76 04             	push   0x4(%esi)
4244ab:	ff 36                	push   (%esi)
4244ad:	e8 05 ce ff ff       	call   0x4212b7
4244b2:	83 c4 10             	add    $0x10,%esp
4244b5:	84 c0                	test   %al,%al
4244b7:	74 1b                	je     0x4244d4
4244b9:	85 ff                	test   %edi,%edi
4244bb:	75 08                	jne    0x4244c5
4244bd:	bf 88 13 44 00       	mov    $0x441388,%edi
4244c2:	89 7e 30             	mov    %edi,0x30(%esi)
4244c5:	53                   	push   %ebx
4244c6:	57                   	push   %edi
4244c7:	c6 46 38 01          	movb   $0x1,0x38(%esi)
4244cb:	e8 0f 4c 00 00       	call   0x4290df
4244d0:	59                   	pop    %ecx
4244d1:	59                   	pop    %ecx
4244d2:	eb 15                	jmp    0x4244e9
4244d4:	85 ff                	test   %edi,%edi
4244d6:	75 07                	jne    0x4244df
4244d8:	c7 46 30 98 13 44 00 	movl   $0x441398,0x30(%esi)
4244df:	6a 00                	push   $0x0
4244e1:	53                   	push   %ebx
4244e2:	8b ce                	mov    %esi,%ecx
4244e4:	e8 09 00 00 00       	call   0x4244f2
4244e9:	5f                   	pop    %edi
4244ea:	89 46 34             	mov    %eax,0x34(%esi)
4244ed:	b0 01                	mov    $0x1,%al
4244ef:	5e                   	pop    %esi
4244f0:	5b                   	pop    %ebx
4244f1:	c3                   	ret
4244f2:	8b ff                	mov    %edi,%edi
4244f4:	55                   	push   %ebp
4244f5:	8b ec                	mov    %esp,%ebp
4244f7:	53                   	push   %ebx
4244f8:	56                   	push   %esi
4244f9:	8b f1                	mov    %ecx,%esi
4244fb:	57                   	push   %edi
4244fc:	8b 5e 08             	mov    0x8(%esi),%ebx
4244ff:	80 7b 14 00          	cmpb   $0x0,0x14(%ebx)
424503:	75 07                	jne    0x42450c
424505:	8b cb                	mov    %ebx,%ecx
424507:	e8 94 00 00 00       	call   0x4245a0
42450c:	8b 76 30             	mov    0x30(%esi),%esi
42450f:	33 ff                	xor    %edi,%edi
424511:	39 7d 08             	cmp    %edi,0x8(%ebp)
424514:	7e 28                	jle    0x42453e
424516:	8a 06                	mov    (%esi),%al
424518:	84 c0                	test   %al,%al
42451a:	74 22                	je     0x42453e
42451c:	0f b6 c0             	movzbl %al,%eax
42451f:	68 00 80 00 00       	push   $0x8000
424524:	50                   	push   %eax
424525:	8b 43 0c             	mov    0xc(%ebx),%eax
424528:	ff 30                	push   (%eax)
42452a:	e8 f0 01 00 00       	call   0x42471f
42452f:	83 c4 0c             	add    $0xc,%esp
424532:	85 c0                	test   %eax,%eax
424534:	74 01                	je     0x424537
424536:	46                   	inc    %esi
424537:	46                   	inc    %esi
424538:	47                   	inc    %edi
424539:	3b 7d 08             	cmp    0x8(%ebp),%edi
42453c:	7c d8                	jl     0x424516
42453e:	8b c7                	mov    %edi,%eax
424540:	5f                   	pop    %edi
424541:	5e                   	pop    %esi
424542:	5b                   	pop    %ebx
424543:	5d                   	pop    %ebp
424544:	c2 08 00             	ret    $0x8
424547:	8b ff                	mov    %edi,%edi
424549:	55                   	push   %ebp
42454a:	8b ec                	mov    %esp,%ebp
42454c:	8b 01                	mov    (%ecx),%eax
42454e:	48                   	dec    %eax
42454f:	89 01                	mov    %eax,(%ecx)
424551:	8a 4d 08             	mov    0x8(%ebp),%cl
424554:	84 c9                	test   %cl,%cl
424556:	74 14                	je     0x42456c
424558:	38 08                	cmp    %cl,(%eax)
42455a:	74 10                	je     0x42456c
42455c:	e8 df 20 00 00       	call   0x426640
424561:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424567:	e8 03 c5 ff ff       	call   0x420a6f
42456c:	5d                   	pop    %ebp
42456d:	c2 04 00             	ret    $0x4
424570:	8b ff                	mov    %edi,%edi
424572:	55                   	push   %ebp
424573:	8b ec                	mov    %esp,%ebp
424575:	8b 01                	mov    (%ecx),%eax
424577:	83 c0 fe             	add    $0xfffffffe,%eax
42457a:	89 01                	mov    %eax,(%ecx)
42457c:	66 8b 4d 08          	mov    0x8(%ebp),%cx
424580:	66 85 c9             	test   %cx,%cx
424583:	74 15                	je     0x42459a
424585:	66 39 08             	cmp    %cx,(%eax)
424588:	74 10                	je     0x42459a
42458a:	e8 b1 20 00 00       	call   0x426640
42458f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424595:	e8 d5 c4 ff ff       	call   0x420a6f
42459a:	5d                   	pop    %ebp
42459b:	c2 04 00             	ret    $0x4
42459e:	cc                   	int3
42459f:	cc                   	int3
4245a0:	8b ff                	mov    %edi,%edi
4245a2:	55                   	push   %ebp
4245a3:	8b ec                	mov    %esp,%ebp
4245a5:	51                   	push   %ecx
4245a6:	53                   	push   %ebx
4245a7:	56                   	push   %esi
4245a8:	57                   	push   %edi
4245a9:	8b d9                	mov    %ecx,%ebx
4245ab:	e8 a6 c2 ff ff       	call   0x420856
4245b0:	ff 73 04             	push   0x4(%ebx)
4245b3:	8d 73 0c             	lea    0xc(%ebx),%esi
4245b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4245b9:	56                   	push   %esi
4245ba:	8b 50 4c             	mov    0x4c(%eax),%edx
4245bd:	8d 7b 10             	lea    0x10(%ebx),%edi
4245c0:	89 16                	mov    %edx,(%esi)
4245c2:	8b 50 48             	mov    0x48(%eax),%edx
4245c5:	50                   	push   %eax
4245c6:	89 17                	mov    %edx,(%edi)
4245c8:	e8 5f 7f 00 00       	call   0x42c52c
4245cd:	ff 73 04             	push   0x4(%ebx)
4245d0:	8b 75 fc             	mov    -0x4(%ebp),%esi
4245d3:	57                   	push   %edi
4245d4:	56                   	push   %esi
4245d5:	e8 b0 7f 00 00       	call   0x42c58a
4245da:	8b 86 50 03 00 00    	mov    0x350(%esi),%eax
4245e0:	83 c4 18             	add    $0x18,%esp
4245e3:	a8 02                	test   $0x2,%al
4245e5:	75 0d                	jne    0x4245f4
4245e7:	83 c8 02             	or     $0x2,%eax
4245ea:	89 86 50 03 00 00    	mov    %eax,0x350(%esi)
4245f0:	c6 43 14 02          	movb   $0x2,0x14(%ebx)
4245f4:	5f                   	pop    %edi
4245f5:	5e                   	pop    %esi
4245f6:	5b                   	pop    %ebx
4245f7:	8b e5                	mov    %ebp,%esp
4245f9:	5d                   	pop    %ebp
4245fa:	c3                   	ret
4245fb:	83 39 00             	cmpl   $0x0,(%ecx)
4245fe:	75 13                	jne    0x424613
424600:	e8 3b 20 00 00       	call   0x426640
424605:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
42460b:	e8 5f c4 ff ff       	call   0x420a6f
424610:	32 c0                	xor    %al,%al
424612:	c3                   	ret
424613:	b0 01                	mov    $0x1,%al
424615:	c3                   	ret
424616:	8b ff                	mov    %edi,%edi
424618:	55                   	push   %ebp
424619:	8b ec                	mov    %esp,%ebp
42461b:	33 d2                	xor    %edx,%edx
42461d:	39 11                	cmp    %edx,(%ecx)
42461f:	75 20                	jne    0x424641
424621:	8b 45 08             	mov    0x8(%ebp),%eax
424624:	50                   	push   %eax
424625:	52                   	push   %edx
424626:	52                   	push   %edx
424627:	52                   	push   %edx
424628:	52                   	push   %edx
424629:	52                   	push   %edx
42462a:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42462e:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
424635:	e8 b8 c3 ff ff       	call   0x4209f2
42463a:	83 c4 18             	add    $0x18,%esp
42463d:	32 c0                	xor    %al,%al
42463f:	eb 02                	jmp    0x424643
424641:	b0 01                	mov    $0x1,%al
424643:	5d                   	pop    %ebp
424644:	c2 04 00             	ret    $0x4
424647:	8b ff                	mov    %edi,%edi
424649:	55                   	push   %ebp
42464a:	8b ec                	mov    %esp,%ebp
42464c:	53                   	push   %ebx
42464d:	57                   	push   %edi
42464e:	8b 7d 0c             	mov    0xc(%ebp),%edi
424651:	8b d9                	mov    %ecx,%ebx
424653:	85 ff                	test   %edi,%edi
424655:	74 51                	je     0x4246a8
424657:	8b 03                	mov    (%ebx),%eax
424659:	56                   	push   %esi
42465a:	8b 70 04             	mov    0x4(%eax),%esi
42465d:	39 70 08             	cmp    %esi,0x8(%eax)
424660:	75 0b                	jne    0x42466d
424662:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
424666:	8b 45 10             	mov    0x10(%ebp),%eax
424669:	74 35                	je     0x4246a0
42466b:	eb 2b                	jmp    0x424698
42466d:	2b 70 08             	sub    0x8(%eax),%esi
424670:	3b f7                	cmp    %edi,%esi
424672:	72 02                	jb     0x424676
424674:	8b f7                	mov    %edi,%esi
424676:	56                   	push   %esi
424677:	ff 75 08             	push   0x8(%ebp)
42467a:	ff 30                	push   (%eax)
42467c:	e8 cf 8d ff ff       	call   0x41d450
424681:	8b 03                	mov    (%ebx),%eax
424683:	83 c4 0c             	add    $0xc,%esp
424686:	01 30                	add    %esi,(%eax)
424688:	8b 03                	mov    (%ebx),%eax
42468a:	01 70 08             	add    %esi,0x8(%eax)
42468d:	8b 03                	mov    (%ebx),%eax
42468f:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
424693:	8b 45 10             	mov    0x10(%ebp),%eax
424696:	74 04                	je     0x42469c
424698:	01 38                	add    %edi,(%eax)
42469a:	eb 0b                	jmp    0x4246a7
42469c:	3b f7                	cmp    %edi,%esi
42469e:	74 05                	je     0x4246a5
4246a0:	83 08 ff             	orl    $0xffffffff,(%eax)
4246a3:	eb 02                	jmp    0x4246a7
4246a5:	01 30                	add    %esi,(%eax)
4246a7:	5e                   	pop    %esi
4246a8:	5f                   	pop    %edi
4246a9:	5b                   	pop    %ebx
4246aa:	5d                   	pop    %ebp
4246ab:	c2 10 00             	ret    $0x10
4246ae:	8b ff                	mov    %edi,%edi
4246b0:	55                   	push   %ebp
4246b1:	8b ec                	mov    %esp,%ebp
4246b3:	51                   	push   %ecx
4246b4:	53                   	push   %ebx
4246b5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4246b8:	8b c1                	mov    %ecx,%eax
4246ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
4246bd:	85 db                	test   %ebx,%ebx
4246bf:	74 59                	je     0x42471a
4246c1:	8b 00                	mov    (%eax),%eax
4246c3:	57                   	push   %edi
4246c4:	8b 78 04             	mov    0x4(%eax),%edi
4246c7:	39 78 08             	cmp    %edi,0x8(%eax)
4246ca:	75 0b                	jne    0x4246d7
4246cc:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
4246d0:	8b 45 10             	mov    0x10(%ebp),%eax
4246d3:	74 3d                	je     0x424712
4246d5:	eb 33                	jmp    0x42470a
4246d7:	2b 78 08             	sub    0x8(%eax),%edi
4246da:	3b fb                	cmp    %ebx,%edi
4246dc:	72 02                	jb     0x4246e0
4246de:	8b fb                	mov    %ebx,%edi
4246e0:	56                   	push   %esi
4246e1:	8d 34 3f             	lea    (%edi,%edi,1),%esi
4246e4:	56                   	push   %esi
4246e5:	ff 75 08             	push   0x8(%ebp)
4246e8:	ff 30                	push   (%eax)
4246ea:	e8 61 8d ff ff       	call   0x41d450
4246ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4246f2:	83 c4 0c             	add    $0xc,%esp
4246f5:	8b 01                	mov    (%ecx),%eax
4246f7:	01 30                	add    %esi,(%eax)
4246f9:	8b 01                	mov    (%ecx),%eax
4246fb:	5e                   	pop    %esi
4246fc:	01 78 08             	add    %edi,0x8(%eax)
4246ff:	8b 01                	mov    (%ecx),%eax
424701:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
424705:	8b 45 10             	mov    0x10(%ebp),%eax
424708:	74 04                	je     0x42470e
42470a:	01 18                	add    %ebx,(%eax)
42470c:	eb 0b                	jmp    0x424719
42470e:	3b fb                	cmp    %ebx,%edi
424710:	74 05                	je     0x424717
424712:	83 08 ff             	orl    $0xffffffff,(%eax)
424715:	eb 02                	jmp    0x424719
424717:	01 38                	add    %edi,(%eax)
424719:	5f                   	pop    %edi
42471a:	5b                   	pop    %ebx
42471b:	c9                   	leave
42471c:	c2 10 00             	ret    $0x10
42471f:	8b ff                	mov    %edi,%edi
424721:	55                   	push   %ebp
424722:	8b ec                	mov    %esp,%ebp
424724:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424727:	8d 41 01             	lea    0x1(%ecx),%eax
42472a:	3d 00 01 00 00       	cmp    $0x100,%eax
42472f:	77 0c                	ja     0x42473d
424731:	8b 45 08             	mov    0x8(%ebp),%eax
424734:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
424738:	23 45 10             	and    0x10(%ebp),%eax
42473b:	5d                   	pop    %ebp
42473c:	c3                   	ret
42473d:	33 c0                	xor    %eax,%eax
42473f:	5d                   	pop    %ebp
424740:	c3                   	ret
424741:	8b ff                	mov    %edi,%edi
424743:	55                   	push   %ebp
424744:	8b ec                	mov    %esp,%ebp
424746:	83 ec 28             	sub    $0x28,%esp
424749:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42474c:	56                   	push   %esi
42474d:	ff 75 20             	push   0x20(%ebp)
424750:	e8 0e c0 ff ff       	call   0x420763
424755:	ff 75 24             	push   0x24(%ebp)
424758:	8d 45 d8             	lea    -0x28(%ebp),%eax
42475b:	50                   	push   %eax
42475c:	ff 75 1c             	push   0x1c(%ebp)
42475f:	ff 75 18             	push   0x18(%ebp)
424762:	ff 75 14             	push   0x14(%ebp)
424765:	ff 75 10             	push   0x10(%ebp)
424768:	ff 75 0c             	push   0xc(%ebp)
42476b:	ff 75 08             	push   0x8(%ebp)
42476e:	e8 68 c3 ff ff       	call   0x420adb
424773:	83 c4 20             	add    $0x20,%esp
424776:	8d 4d d8             	lea    -0x28(%ebp),%ecx
424779:	8b f0                	mov    %eax,%esi
42477b:	e8 2b c0 ff ff       	call   0x4207ab
424780:	8b c6                	mov    %esi,%eax
424782:	5e                   	pop    %esi
424783:	c9                   	leave
424784:	c3                   	ret
424785:	8b ff                	mov    %edi,%edi
424787:	55                   	push   %ebp
424788:	8b ec                	mov    %esp,%ebp
42478a:	83 ec 28             	sub    $0x28,%esp
42478d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
424790:	56                   	push   %esi
424791:	ff 75 20             	push   0x20(%ebp)
424794:	e8 ca bf ff ff       	call   0x420763
424799:	ff 75 24             	push   0x24(%ebp)
42479c:	8d 45 d8             	lea    -0x28(%ebp),%eax
42479f:	50                   	push   %eax
4247a0:	ff 75 1c             	push   0x1c(%ebp)
4247a3:	ff 75 18             	push   0x18(%ebp)
4247a6:	ff 75 14             	push   0x14(%ebp)
4247a9:	ff 75 10             	push   0x10(%ebp)
4247ac:	ff 75 0c             	push   0xc(%ebp)
4247af:	ff 75 08             	push   0x8(%ebp)
4247b2:	e8 25 c4 ff ff       	call   0x420bdc
4247b7:	83 c4 20             	add    $0x20,%esp
4247ba:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4247bd:	8b f0                	mov    %eax,%esi
4247bf:	e8 e7 bf ff ff       	call   0x4207ab
4247c4:	8b c6                	mov    %esi,%eax
4247c6:	5e                   	pop    %esi
4247c7:	c9                   	leave
4247c8:	c3                   	ret
4247c9:	8b ff                	mov    %edi,%edi
4247cb:	55                   	push   %ebp
4247cc:	8b ec                	mov    %esp,%ebp
4247ce:	83 ec 28             	sub    $0x28,%esp
4247d1:	8d 4d d8             	lea    -0x28(%ebp),%ecx