42441f:	8b f7                	mov    %edi,%esi
424421:	66 85 c0             	test   %ax,%ax
424424:	74 57                	je     0x42447d
424426:	66 83 f8 2f          	cmp    $0x2f,%ax
42442a:	74 10                	je     0x42443c
42442c:	66 83 f8 5c          	cmp    $0x5c,%ax
424430:	74 0a                	je     0x42443c
424432:	66 83 f8 2e          	cmp    $0x2e,%ax
424436:	75 07                	jne    0x42443f
424438:	8b de                	mov    %esi,%ebx
42443a:	eb 03                	jmp    0x42443f
42443c:	8d 4e 02             	lea    0x2(%esi),%ecx
42443f:	83 c6 02             	add    $0x2,%esi
424442:	0f b7 06             	movzwl (%esi),%eax
424445:	66 85 c0             	test   %ax,%ax
424448:	75 dc                	jne    0x424426
42444a:	89 4d 08             	mov    %ecx,0x8(%ebp)
42444d:	85 c9                	test   %ecx,%ecx
42444f:	74 2c                	je     0x42447d
424451:	8b 45 14             	mov    0x14(%ebp),%eax
424454:	85 c0                	test   %eax,%eax
424456:	74 21                	je     0x424479
424458:	8b c1                	mov    %ecx,%eax
42445a:	2b c7                	sub    %edi,%eax
42445c:	d1 f8                	sar    $1,%eax
42445e:	39 45 18             	cmp    %eax,0x18(%ebp)
424461:	0f 86 98 00 00 00    	jbe    0x4244ff
424467:	50                   	push   %eax
424468:	57                   	push   %edi
424469:	6a ff                	push   $0xffffffff
42446b:	ff 75 14             	push   0x14(%ebp)
42446e:	e8 15 8f 00 00       	call   0x42d388
424473:	8b 4d 08             	mov    0x8(%ebp),%ecx
424476:	83 c4 10             	add    $0x10,%esp
424479:	8b f9                	mov    %ecx,%edi
42447b:	eb 0c                	jmp    0x424489
42447d:	8b 45 14             	mov    0x14(%ebp),%eax
424480:	85 c0                	test   %eax,%eax
424482:	74 05                	je     0x424489
424484:	33 c9                	xor    %ecx,%ecx
424486:	66 89 08             	mov    %cx,(%eax)
424489:	85 db                	test   %ebx,%ebx
42448b:	74 45                	je     0x4244d2
42448d:	3b df                	cmp    %edi,%ebx
42448f:	72 41                	jb     0x4244d2
424491:	8b 55 1c             	mov    0x1c(%ebp),%edx
424494:	85 d2                	test   %edx,%edx
424496:	74 1b                	je     0x4244b3
424498:	8b c3                	mov    %ebx,%eax
42449a:	2b c7                	sub    %edi,%eax
42449c:	d1 f8                	sar    $1,%eax
42449e:	39 45 20             	cmp    %eax,0x20(%ebp)
4244a1:	76 5c                	jbe    0x4244ff
4244a3:	50                   	push   %eax
4244a4:	57                   	push   %edi
4244a5:	6a ff                	push   $0xffffffff
4244a7:	52                   	push   %edx
4244a8:	e8 db 8e 00 00       	call   0x42d388
4244ad:	8b 55 1c             	mov    0x1c(%ebp),%edx
4244b0:	83 c4 10             	add    $0x10,%esp
4244b3:	8b 45 24             	mov    0x24(%ebp),%eax
4244b6:	85 c0                	test   %eax,%eax
4244b8:	74 41                	je     0x4244fb
4244ba:	2b f3                	sub    %ebx,%esi
4244bc:	d1 fe                	sar    $1,%esi
4244be:	39 75 28             	cmp    %esi,0x28(%ebp)
4244c1:	76 3f                	jbe    0x424502
4244c3:	56                   	push   %esi
4244c4:	53                   	push   %ebx
4244c5:	6a ff                	push   $0xffffffff
4244c7:	50                   	push   %eax
4244c8:	e8 bb 8e 00 00       	call   0x42d388
4244cd:	83 c4 10             	add    $0x10,%esp
4244d0:	eb 29                	jmp    0x4244fb
4244d2:	8b 55 1c             	mov    0x1c(%ebp),%edx
4244d5:	85 d2                	test   %edx,%edx
4244d7:	74 16                	je     0x4244ef
4244d9:	2b f7                	sub    %edi,%esi
4244db:	d1 fe                	sar    $1,%esi
4244dd:	39 75 20             	cmp    %esi,0x20(%ebp)
4244e0:	76 1d                	jbe    0x4244ff
4244e2:	56                   	push   %esi
4244e3:	57                   	push   %edi
4244e4:	6a ff                	push   $0xffffffff
4244e6:	52                   	push   %edx
4244e7:	e8 9c 8e 00 00       	call   0x42d388
4244ec:	83 c4 10             	add    $0x10,%esp
4244ef:	8b 45 24             	mov    0x24(%ebp),%eax
4244f2:	85 c0                	test   %eax,%eax
4244f4:	74 05                	je     0x4244fb
4244f6:	33 c9                	xor    %ecx,%ecx
4244f8:	66 89 08             	mov    %cx,(%eax)
4244fb:	33 c0                	xor    %eax,%eax
4244fd:	eb 69                	jmp    0x424568
4244ff:	8b 45 24             	mov    0x24(%ebp),%eax
424502:	33 db                	xor    %ebx,%ebx
424504:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424507:	85 c9                	test   %ecx,%ecx
424509:	74 0b                	je     0x424516
42450b:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
42450f:	76 05                	jbe    0x424516
424511:	33 f6                	xor    %esi,%esi
424513:	66 89 31             	mov    %si,(%ecx)
424516:	8b 4d 14             	mov    0x14(%ebp),%ecx
424519:	85 c9                	test   %ecx,%ecx
42451b:	74 0b                	je     0x424528
42451d:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
424521:	76 05                	jbe    0x424528
424523:	33 f6                	xor    %esi,%esi
424525:	66 89 31             	mov    %si,(%ecx)
424528:	85 d2                	test   %edx,%edx
42452a:	74 0b                	je     0x424537
42452c:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
424530:	76 05                	jbe    0x424537
424532:	33 c9                	xor    %ecx,%ecx
424534:	66 89 0a             	mov    %cx,(%edx)
424537:	85 c0                	test   %eax,%eax
424539:	74 0b                	je     0x424546
42453b:	83 7d 28 00          	cmpl   $0x0,0x28(%ebp)
42453f:	76 05                	jbe    0x424546
424541:	33 c9                	xor    %ecx,%ecx
424543:	66 89 08             	mov    %cx,(%eax)
424546:	e8 1d 48 00 00       	call   0x428d68
42454b:	85 ff                	test   %edi,%edi
42454d:	75 0e                	jne    0x42455d
42454f:	6a 16                	push   $0x16
424551:	5e                   	pop    %esi
424552:	89 30                	mov    %esi,(%eax)
424554:	e8 9d 4a 00 00       	call   0x428ff6
424559:	8b c6                	mov    %esi,%eax
42455b:	eb 0b                	jmp    0x424568
42455d:	85 db                	test   %ebx,%ebx
42455f:	75 ee                	jne    0x42454f
424561:	6a 22                	push   $0x22
424563:	59                   	pop    %ecx
424564:	89 08                	mov    %ecx,(%eax)
424566:	8b c1                	mov    %ecx,%eax
424568:	5f                   	pop    %edi
424569:	5e                   	pop    %esi
42456a:	5b                   	pop    %ebx
42456b:	5d                   	pop    %ebp
42456c:	c3                   	ret
42456d:	cc                   	int3
42456e:	cc                   	int3
42456f:	cc                   	int3
424570:	57                   	push   %edi
424571:	8b 7c 24 08          	mov    0x8(%esp),%edi
424575:	eb 6e                	jmp    0x4245e5
424577:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
42457e:	8b ff                	mov    %edi,%edi
424580:	8b 4c 24 04          	mov    0x4(%esp),%ecx
424584:	57                   	push   %edi
424585:	f7 c1 03 00 00 00    	test   $0x3,%ecx
42458b:	74 13                	je     0x4245a0
42458d:	8a 01                	mov    (%ecx),%al
42458f:	83 c1 01             	add    $0x1,%ecx
424592:	84 c0                	test   %al,%al
424594:	74 3d                	je     0x4245d3
424596:	f7 c1 03 00 00 00    	test   $0x3,%ecx
42459c:	75 ef                	jne    0x42458d
42459e:	8b ff                	mov    %edi,%edi
4245a0:	8b 01                	mov    (%ecx),%eax
4245a2:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
4245a7:	03 d0                	add    %eax,%edx
4245a9:	83 f0 ff             	xor    $0xffffffff,%eax
4245ac:	33 c2                	xor    %edx,%eax
4245ae:	83 c1 04             	add    $0x4,%ecx
4245b1:	a9 00 01 01 81       	test   $0x81010100,%eax
4245b6:	74 e8                	je     0x4245a0
4245b8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4245bb:	84 c0                	test   %al,%al
4245bd:	74 23                	je     0x4245e2
4245bf:	84 e4                	test   %ah,%ah
4245c1:	74 1a                	je     0x4245dd
4245c3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4245c8:	74 0e                	je     0x4245d8
4245ca:	a9 00 00 00 ff       	test   $0xff000000,%eax
4245cf:	74 02                	je     0x4245d3
4245d1:	eb cd                	jmp    0x4245a0
4245d3:	8d 79 ff             	lea    -0x1(%ecx),%edi
4245d6:	eb 0d                	jmp    0x4245e5
4245d8:	8d 79 fe             	lea    -0x2(%ecx),%edi
4245db:	eb 08                	jmp    0x4245e5
4245dd:	8d 79 fd             	lea    -0x3(%ecx),%edi
4245e0:	eb 03                	jmp    0x4245e5
4245e2:	8d 79 fc             	lea    -0x4(%ecx),%edi
4245e5:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4245e9:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4245ef:	74 1d                	je     0x42460e
4245f1:	8a 11                	mov    (%ecx),%dl
4245f3:	83 c1 01             	add    $0x1,%ecx
4245f6:	84 d2                	test   %dl,%dl
4245f8:	74 66                	je     0x424660
4245fa:	88 17                	mov    %dl,(%edi)
4245fc:	83 c7 01             	add    $0x1,%edi
4245ff:	f7 c1 03 00 00 00    	test   $0x3,%ecx
424605:	75 ea                	jne    0x4245f1
424607:	eb 05                	jmp    0x42460e
424609:	89 17                	mov    %edx,(%edi)
42460b:	83 c7 04             	add    $0x4,%edi
42460e:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
424613:	8b 01                	mov    (%ecx),%eax
424615:	03 d0                	add    %eax,%edx
424617:	83 f0 ff             	xor    $0xffffffff,%eax
42461a:	33 c2                	xor    %edx,%eax
42461c:	8b 11                	mov    (%ecx),%edx
42461e:	83 c1 04             	add    $0x4,%ecx
424621:	a9 00 01 01 81       	test   $0x81010100,%eax
424626:	74 e1                	je     0x424609
424628:	84 d2                	test   %dl,%dl
42462a:	74 34                	je     0x424660
42462c:	84 f6                	test   %dh,%dh
42462e:	74 27                	je     0x424657
424630:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
424636:	74 12                	je     0x42464a
424638:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
42463e:	74 02                	je     0x424642
424640:	eb c7                	jmp    0x424609
424642:	89 17                	mov    %edx,(%edi)
424644:	8b 44 24 08          	mov    0x8(%esp),%eax
424648:	5f                   	pop    %edi
424649:	c3                   	ret
42464a:	66 89 17             	mov    %dx,(%edi)
42464d:	8b 44 24 08          	mov    0x8(%esp),%eax
424651:	c6 47 02 00          	movb   $0x0,0x2(%edi)
424655:	5f                   	pop    %edi
424656:	c3                   	ret
424657:	66 89 17             	mov    %dx,(%edi)
42465a:	8b 44 24 08          	mov    0x8(%esp),%eax
42465e:	5f                   	pop    %edi
42465f:	c3                   	ret
424660:	88 17                	mov    %dl,(%edi)
424662:	8b 44 24 08          	mov    0x8(%esp),%eax
424666:	5f                   	pop    %edi
424667:	c3                   	ret
424668:	55                   	push   %ebp
424669:	8b ec                	mov    %esp,%ebp
42466b:	51                   	push   %ecx
42466c:	e8 7b 55 00 00       	call   0x429bec
424671:	8b 4d 08             	mov    0x8(%ebp),%ecx
424674:	89 45 fc             	mov    %eax,-0x4(%ebp)
424677:	85 c9                	test   %ecx,%ecx
424679:	75 03                	jne    0x42467e
42467b:	8b 48 1c             	mov    0x1c(%eax),%ecx
42467e:	0f b7 11             	movzwl (%ecx),%edx
424681:	33 c0                	xor    %eax,%eax
424683:	53                   	push   %ebx
424684:	56                   	push   %esi
424685:	57                   	push   %edi
424686:	8b 7d 0c             	mov    0xc(%ebp),%edi
424689:	66 85 d2             	test   %dx,%dx
42468c:	74 30                	je     0x4246be
42468e:	0f b7 1f             	movzwl (%edi),%ebx
424691:	8b c7                	mov    %edi,%eax
424693:	66 85 db             	test   %bx,%bx
424696:	74 12                	je     0x4246aa
424698:	8b f3                	mov    %ebx,%esi
42469a:	66 3b f2             	cmp    %dx,%si
42469d:	74 0b                	je     0x4246aa
42469f:	83 c0 02             	add    $0x2,%eax
4246a2:	0f b7 30             	movzwl (%eax),%esi
4246a5:	66 85 f6             	test   %si,%si
4246a8:	75 f0                	jne    0x42469a
4246aa:	33 d2                	xor    %edx,%edx
4246ac:	66 39 10             	cmp    %dx,(%eax)
4246af:	74 0b                	je     0x4246bc
4246b1:	83 c1 02             	add    $0x2,%ecx
4246b4:	0f b7 11             	movzwl (%ecx),%edx
4246b7:	66 85 d2             	test   %dx,%dx
4246ba:	75 d5                	jne    0x424691
4246bc:	33 c0                	xor    %eax,%eax
4246be:	8b f1                	mov    %ecx,%esi
4246c0:	66 39 01             	cmp    %ax,(%ecx)
4246c3:	74 3e                	je     0x424703
4246c5:	0f b7 1f             	movzwl (%edi),%ebx
4246c8:	33 d2                	xor    %edx,%edx
4246ca:	8b c7                	mov    %edi,%eax
4246cc:	66 85 db             	test   %bx,%bx
4246cf:	74 1b                	je     0x4246ec
4246d1:	0f b7 11             	movzwl (%ecx),%edx
4246d4:	89 55 08             	mov    %edx,0x8(%ebp)
4246d7:	8b d3                	mov    %ebx,%edx
4246d9:	66 3b 55 08          	cmp    0x8(%ebp),%dx
4246dd:	74 0b                	je     0x4246ea
4246df:	83 c0 02             	add    $0x2,%eax
4246e2:	0f b7 10             	movzwl (%eax),%edx
4246e5:	66 85 d2             	test   %dx,%dx
4246e8:	75 ef                	jne    0x4246d9
4246ea:	33 d2                	xor    %edx,%edx
4246ec:	66 39 10             	cmp    %dx,(%eax)
4246ef:	75 0a                	jne    0x4246fb
4246f1:	83 c1 02             	add    $0x2,%ecx
4246f4:	66 39 11             	cmp    %dx,(%ecx)
4246f7:	75 d1                	jne    0x4246ca
4246f9:	eb 08                	jmp    0x424703
4246fb:	33 c0                	xor    %eax,%eax
4246fd:	66 89 01             	mov    %ax,(%ecx)
424700:	83 c1 02             	add    $0x2,%ecx
424703:	8b 45 fc             	mov    -0x4(%ebp),%eax
424706:	5f                   	pop    %edi
424707:	89 48 1c             	mov    %ecx,0x1c(%eax)
42470a:	8b c6                	mov    %esi,%eax
42470c:	2b c1                	sub    %ecx,%eax
42470e:	f7 d8                	neg    %eax
424710:	1b c0                	sbb    %eax,%eax
424712:	23 c6                	and    %esi,%eax
424714:	5e                   	pop    %esi
424715:	5b                   	pop    %ebx
424716:	8b e5                	mov    %ebp,%esp
424718:	5d                   	pop    %ebp
424719:	c3                   	ret
42471a:	55                   	push   %ebp
42471b:	8b ec                	mov    %esp,%ebp
42471d:	8b 4d 08             	mov    0x8(%ebp),%ecx
424720:	85 c9                	test   %ecx,%ecx
424722:	75 15                	jne    0x424739
424724:	e8 3f 46 00 00       	call   0x428d68
424729:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
42472f:	e8 c2 48 00 00       	call   0x428ff6
424734:	6a 16                	push   $0x16
424736:	58                   	pop    %eax
424737:	5d                   	pop    %ebp
424738:	c3                   	ret
424739:	a1 e0 4a 4c 00       	mov    0x4c4ae0,%eax
42473e:	89 01                	mov    %eax,(%ecx)
424740:	33 c0                	xor    %eax,%eax
424742:	5d                   	pop    %ebp
424743:	c3                   	ret
424744:	6a 10                	push   $0x10
424746:	68 d0 bb 4b 00       	push   $0x4bbbd0
42474b:	e8 f0 43 00 00       	call   0x428b40
424750:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
424754:	8b 7d 0c             	mov    0xc(%ebp),%edi
424757:	81 ff 00 40 00 00    	cmp    $0x4000,%edi
42475d:	74 30                	je     0x42478f
42475f:	81 ff 00 80 00 00    	cmp    $0x8000,%edi
424765:	74 28                	je     0x42478f
424767:	81 ff 00 00 01 00    	cmp    $0x10000,%edi
42476d:	74 20                	je     0x42478f
42476f:	81 ff 00 00 04 00    	cmp    $0x40000,%edi
424775:	74 18                	je     0x42478f
424777:	81 ff 00 00 02 00    	cmp    $0x20000,%edi
42477d:	74 10                	je     0x42478f
42477f:	e8 e4 45 00 00       	call   0x428d68
424784:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
42478a:	e9 ac 00 00 00       	jmp    0x42483b
42478f:	8b 75 08             	mov    0x8(%ebp),%esi
424792:	83 fe fe             	cmp    $0xfffffffe,%esi
424795:	75 10                	jne    0x4247a7
424797:	e8 cc 45 00 00       	call   0x428d68