42c606:	58                   	pop    %eax
42c607:	eb 10                	jmp    0x42c619
42c609:	23 d0                	and    %eax,%edx
42c60b:	0b ca                	or     %edx,%ecx
42c60d:	74 04                	je     0x42c613
42c60f:	6a 02                	push   $0x2
42c611:	eb f3                	jmp    0x42c606
42c613:	6a 03                	push   $0x3
42c615:	eb ef                	jmp    0x42c606
42c617:	33 c0                	xor    %eax,%eax
42c619:	5f                   	pop    %edi
42c61a:	5e                   	pop    %esi
42c61b:	5d                   	pop    %ebp
42c61c:	c3                   	ret
42c61d:	8b ff                	mov    %edi,%edi
42c61f:	55                   	push   %ebp
42c620:	8b ec                	mov    %esp,%ebp
42c622:	8b 45 08             	mov    0x8(%ebp),%eax
42c625:	53                   	push   %ebx
42c626:	0f bf 5d 14          	movswl 0x14(%ebp),%ebx
42c62a:	56                   	push   %esi
42c62b:	8b 70 04             	mov    0x4(%eax),%esi
42c62e:	8b cb                	mov    %ebx,%ecx
42c630:	57                   	push   %edi
42c631:	8b 38                	mov    (%eax),%edi
42c633:	8b d6                	mov    %esi,%edx
42c635:	23 55 10             	and    0x10(%ebp),%edx
42c638:	8b c7                	mov    %edi,%eax
42c63a:	23 45 0c             	and    0xc(%ebp),%eax
42c63d:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
42c643:	e8 d8 fc 00 00       	call   0x43c320
42c648:	6a 08                	push   $0x8
42c64a:	0f b7 c0             	movzwl %ax,%eax
42c64d:	59                   	pop    %ecx
42c64e:	66 3b c1             	cmp    %cx,%ax
42c651:	77 66                	ja     0x42c6b9
42c653:	73 04                	jae    0x42c659
42c655:	32 c0                	xor    %al,%al
42c657:	eb 62                	jmp    0x42c6bb
42c659:	33 c0                	xor    %eax,%eax
42c65b:	33 d2                	xor    %edx,%edx
42c65d:	40                   	inc    %eax
42c65e:	8b cb                	mov    %ebx,%ecx
42c660:	e8 9b fc 00 00       	call   0x43c300
42c665:	83 c0 ff             	add    $0xffffffff,%eax
42c668:	83 d2 ff             	adc    $0xffffffff,%edx
42c66b:	23 c7                	and    %edi,%eax
42c66d:	23 d6                	and    %esi,%edx
42c66f:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
42c675:	0b c2                	or     %edx,%eax
42c677:	75 40                	jne    0x42c6b9
42c679:	66 83 7d 14 30       	cmpw   $0x30,0x14(%ebp)
42c67e:	74 22                	je     0x42c6a2
42c680:	0f ac f7 04          	shrd   $0x4,%esi,%edi
42c684:	8b cb                	mov    %ebx,%ecx
42c686:	23 7d 0c             	and    0xc(%ebp),%edi
42c689:	c1 ee 04             	shr    $0x4,%esi
42c68c:	8b c7                	mov    %edi,%eax
42c68e:	23 75 10             	and    0x10(%ebp),%esi
42c691:	81 e6 ff ff 00 00    	and    $0xffff,%esi
42c697:	8b d6                	mov    %esi,%edx
42c699:	e8 82 fc 00 00       	call   0x43c320
42c69e:	8a c8                	mov    %al,%cl
42c6a0:	eb 10                	jmp    0x42c6b2
42c6a2:	33 c9                	xor    %ecx,%ecx
42c6a4:	81 e6 00 00 f0 7f    	and    $0x7ff00000,%esi
42c6aa:	8b c1                	mov    %ecx,%eax
42c6ac:	0b c6                	or     %esi,%eax
42c6ae:	74 02                	je     0x42c6b2
42c6b0:	b1 01                	mov    $0x1,%cl
42c6b2:	80 e1 01             	and    $0x1,%cl
42c6b5:	8a c1                	mov    %cl,%al
42c6b7:	eb 02                	jmp    0x42c6bb
42c6b9:	b0 01                	mov    $0x1,%al
42c6bb:	5f                   	pop    %edi
42c6bc:	5e                   	pop    %esi
42c6bd:	5b                   	pop    %ebx
42c6be:	5d                   	pop    %ebp
42c6bf:	c3                   	ret
42c6c0:	8b ff                	mov    %edi,%edi
42c6c2:	55                   	push   %ebp
42c6c3:	8b ec                	mov    %esp,%ebp
42c6c5:	83 ec 2c             	sub    $0x2c,%esp
42c6c8:	33 d2                	xor    %edx,%edx
42c6ca:	56                   	push   %esi
42c6cb:	8b 75 1c             	mov    0x1c(%ebp),%esi
42c6ce:	57                   	push   %edi
42c6cf:	85 f6                	test   %esi,%esi
42c6d1:	79 02                	jns    0x42c6d5
42c6d3:	8b f2                	mov    %edx,%esi
42c6d5:	8b 7d 0c             	mov    0xc(%ebp),%edi
42c6d8:	8d 46 0b             	lea    0xb(%esi),%eax
42c6db:	88 17                	mov    %dl,(%edi)
42c6dd:	39 45 10             	cmp    %eax,0x10(%ebp)
42c6e0:	77 22                	ja     0x42c704
42c6e2:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
42c6e5:	6a 22                	push   $0x22
42c6e7:	5e                   	pop    %esi
42c6e8:	51                   	push   %ecx
42c6e9:	52                   	push   %edx
42c6ea:	52                   	push   %edx
42c6eb:	52                   	push   %edx
42c6ec:	52                   	push   %edx
42c6ed:	52                   	push   %edx
42c6ee:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
42c6f2:	89 71 18             	mov    %esi,0x18(%ecx)
42c6f5:	e8 f8 42 ff ff       	call   0x4209f2
42c6fa:	83 c4 18             	add    $0x18,%esp
42c6fd:	8b c6                	mov    %esi,%eax
42c6ff:	e9 e5 02 00 00       	jmp    0x42c9e9
42c704:	53                   	push   %ebx
42c705:	8b 5d 08             	mov    0x8(%ebp),%ebx
42c708:	b9 ff 07 00 00       	mov    $0x7ff,%ecx
42c70d:	8b 43 04             	mov    0x4(%ebx),%eax
42c710:	c1 e8 14             	shr    $0x14,%eax
42c713:	23 c1                	and    %ecx,%eax
42c715:	3b c1                	cmp    %ecx,%eax
42c717:	75 53                	jne    0x42c76c
42c719:	ff 75 2c             	push   0x2c(%ebp)
42c71c:	ff 75 28             	push   0x28(%ebp)
42c71f:	ff 75 24             	push   0x24(%ebp)
42c722:	52                   	push   %edx
42c723:	56                   	push   %esi
42c724:	ff 75 18             	push   0x18(%ebp)
42c727:	ff 75 14             	push   0x14(%ebp)
42c72a:	ff 75 10             	push   0x10(%ebp)
42c72d:	57                   	push   %edi
42c72e:	53                   	push   %ebx
42c72f:	e8 b9 02 00 00       	call   0x42c9ed
42c734:	83 c4 28             	add    $0x28,%esp
42c737:	85 c0                	test   %eax,%eax
42c739:	74 08                	je     0x42c743
42c73b:	c6 07 00             	movb   $0x0,(%edi)
42c73e:	e9 a5 02 00 00       	jmp    0x42c9e8
42c743:	6a 65                	push   $0x65
42c745:	57                   	push   %edi
42c746:	e8 85 fc 00 00       	call   0x43c3d0
42c74b:	59                   	pop    %ecx
42c74c:	59                   	pop    %ecx
42c74d:	85 c0                	test   %eax,%eax
42c74f:	0f 84 91 02 00 00    	je     0x42c9e6
42c755:	8a 4d 20             	mov    0x20(%ebp),%cl
42c758:	80 f1 01             	xor    $0x1,%cl
42c75b:	c0 e1 05             	shl    $0x5,%cl
42c75e:	80 c1 50             	add    $0x50,%cl
42c761:	88 08                	mov    %cl,(%eax)
42c763:	c6 40 03 00          	movb   $0x0,0x3(%eax)
42c767:	e9 7a 02 00 00       	jmp    0x42c9e6
42c76c:	39 53 04             	cmp    %edx,0x4(%ebx)
42c76f:	7f 0a                	jg     0x42c77b
42c771:	7c 04                	jl     0x42c777
42c773:	39 13                	cmp    %edx,(%ebx)
42c775:	73 04                	jae    0x42c77b
42c777:	c6 07 2d             	movb   $0x2d,(%edi)
42c77a:	47                   	inc    %edi
42c77b:	8a 45 20             	mov    0x20(%ebp),%al
42c77e:	8d 57 01             	lea    0x1(%edi),%edx
42c781:	8b 4b 04             	mov    0x4(%ebx),%ecx
42c784:	34 01                	xor    $0x1,%al
42c786:	88 45 ff             	mov    %al,-0x1(%ebp)
42c789:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
42c78f:	0f b6 c0             	movzbl %al,%eax
42c792:	c1 e0 05             	shl    $0x5,%eax
42c795:	83 c0 07             	add    $0x7,%eax
42c798:	c7 45 f0 ff 03 00 00 	movl   $0x3ff,-0x10(%ebp)
42c79f:	89 45 d8             	mov    %eax,-0x28(%ebp)
42c7a2:	33 c0                	xor    %eax,%eax
42c7a4:	0b c1                	or     %ecx,%eax
42c7a6:	89 55 f4             	mov    %edx,-0xc(%ebp)
42c7a9:	6a 30                	push   $0x30
42c7ab:	58                   	pop    %eax
42c7ac:	75 1e                	jne    0x42c7cc
42c7ae:	88 07                	mov    %al,(%edi)
42c7b0:	8b 43 04             	mov    0x4(%ebx),%eax
42c7b3:	8b 0b                	mov    (%ebx),%ecx
42c7b5:	25 ff ff 0f 00       	and    $0xfffff,%eax
42c7ba:	0b c8                	or     %eax,%ecx
42c7bc:	75 05                	jne    0x42c7c3
42c7be:	21 4d f0             	and    %ecx,-0x10(%ebp)
42c7c1:	eb 0c                	jmp    0x42c7cf
42c7c3:	c7 45 f0 fe 03 00 00 	movl   $0x3fe,-0x10(%ebp)
42c7ca:	eb 03                	jmp    0x42c7cf
42c7cc:	c6 07 31             	movb   $0x31,(%edi)
42c7cf:	8d 7a 01             	lea    0x1(%edx),%edi
42c7d2:	85 f6                	test   %esi,%esi
42c7d4:	75 04                	jne    0x42c7da
42c7d6:	32 c0                	xor    %al,%al
42c7d8:	eb 23                	jmp    0x42c7fd
42c7da:	8b 45 2c             	mov    0x2c(%ebp),%eax
42c7dd:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
42c7e1:	75 0d                	jne    0x42c7f0
42c7e3:	8b c8                	mov    %eax,%ecx
42c7e5:	e8 b6 7d ff ff       	call   0x4245a0
42c7ea:	8b 45 2c             	mov    0x2c(%ebp),%eax
42c7ed:	8b 55 f4             	mov    -0xc(%ebp),%edx
42c7f0:	8b 40 0c             	mov    0xc(%eax),%eax
42c7f3:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
42c7f9:	8b 00                	mov    (%eax),%eax
42c7fb:	8a 00                	mov    (%eax),%al
42c7fd:	88 02                	mov    %al,(%edx)
42c7ff:	8b 43 04             	mov    0x4(%ebx),%eax
42c802:	25 ff ff 0f 00       	and    $0xfffff,%eax
42c807:	89 45 e0             	mov    %eax,-0x20(%ebp)
42c80a:	77 09                	ja     0x42c815
42c80c:	83 3b 00             	cmpl   $0x0,(%ebx)
42c80f:	0f 86 bf 00 00 00    	jbe    0x42c8d4
42c815:	6a 30                	push   $0x30
42c817:	58                   	pop    %eax
42c818:	89 45 f8             	mov    %eax,-0x8(%ebp)
42c81b:	b9 00 00 0f 00       	mov    $0xf0000,%ecx
42c820:	33 c0                	xor    %eax,%eax
42c822:	89 4d e8             	mov    %ecx,-0x18(%ebp)
42c825:	89 45 ec             	mov    %eax,-0x14(%ebp)
42c828:	8b 55 f8             	mov    -0x8(%ebp),%edx
42c82b:	0f b7 d2             	movzwl %dx,%edx
42c82e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
42c831:	8b d7                	mov    %edi,%edx
42c833:	89 7d e0             	mov    %edi,-0x20(%ebp)
42c836:	85 f6                	test   %esi,%esi
42c838:	7e 50                	jle    0x42c88a
42c83a:	8b 53 04             	mov    0x4(%ebx),%edx
42c83d:	23 03                	and    (%ebx),%eax
42c83f:	23 d1                	and    %ecx,%edx
42c841:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
42c844:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
42c84a:	0f b7 c9             	movzwl %cx,%ecx
42c84d:	e8 ce fa 00 00       	call   0x43c320
42c852:	6a 30                	push   $0x30
42c854:	59                   	pop    %ecx
42c855:	66 03 c1             	add    %cx,%ax
42c858:	0f b7 c0             	movzwl %ax,%eax
42c85b:	83 f8 39             	cmp    $0x39,%eax
42c85e:	76 03                	jbe    0x42c863
42c860:	03 45 d8             	add    -0x28(%ebp),%eax
42c863:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42c866:	8b 55 f8             	mov    -0x8(%ebp),%edx
42c869:	88 07                	mov    %al,(%edi)
42c86b:	83 ea 04             	sub    $0x4,%edx
42c86e:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c871:	47                   	inc    %edi
42c872:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
42c876:	89 55 f8             	mov    %edx,-0x8(%ebp)
42c879:	c1 e9 04             	shr    $0x4,%ecx
42c87c:	4e                   	dec    %esi
42c87d:	89 45 ec             	mov    %eax,-0x14(%ebp)
42c880:	89 4d e8             	mov    %ecx,-0x18(%ebp)
42c883:	66 85 d2             	test   %dx,%dx
42c886:	79 a0                	jns    0x42c828
42c888:	eb 4a                	jmp    0x42c8d4
42c88a:	ff 75 28             	push   0x28(%ebp)
42c88d:	8b fa                	mov    %edx,%edi
42c88f:	ff 75 e4             	push   -0x1c(%ebp)
42c892:	51                   	push   %ecx
42c893:	50                   	push   %eax
42c894:	53                   	push   %ebx
42c895:	e8 66 06 00 00       	call   0x42cf00
42c89a:	83 c4 14             	add    $0x14,%esp
42c89d:	84 c0                	test   %al,%al
42c89f:	74 47                	je     0x42c8e8
42c8a1:	8b 7d e0             	mov    -0x20(%ebp),%edi
42c8a4:	6a 30                	push   $0x30
42c8a6:	5b                   	pop    %ebx
42c8a7:	8d 47 ff             	lea    -0x1(%edi),%eax
42c8aa:	8a 08                	mov    (%eax),%cl
42c8ac:	80 f9 66             	cmp    $0x66,%cl
42c8af:	74 05                	je     0x42c8b6
42c8b1:	80 f9 46             	cmp    $0x46,%cl
42c8b4:	75 05                	jne    0x42c8bb
42c8b6:	88 18                	mov    %bl,(%eax)
42c8b8:	48                   	dec    %eax
42c8b9:	eb ef                	jmp    0x42c8aa
42c8bb:	8b 5d 08             	mov    0x8(%ebp),%ebx
42c8be:	3b 45 f4             	cmp    -0xc(%ebp),%eax
42c8c1:	74 0e                	je     0x42c8d1
42c8c3:	80 f9 39             	cmp    $0x39,%cl
42c8c6:	75 03                	jne    0x42c8cb
42c8c8:	02 4d d8             	add    -0x28(%ebp),%cl
42c8cb:	fe c1                	inc    %cl
42c8cd:	88 08                	mov    %cl,(%eax)
42c8cf:	eb 03                	jmp    0x42c8d4
42c8d1:	fe 40 ff             	incb   -0x1(%eax)
42c8d4:	85 f6                	test   %esi,%esi
42c8d6:	7e 10                	jle    0x42c8e8
42c8d8:	56                   	push   %esi
42c8d9:	6a 30                	push   $0x30
42c8db:	58                   	pop    %eax
42c8dc:	50                   	push   %eax
42c8dd:	57                   	push   %edi
42c8de:	e8 fd 10 ff ff       	call   0x41d9e0
42c8e3:	83 c4 0c             	add    $0xc,%esp
42c8e6:	03 fe                	add    %esi,%edi
42c8e8:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c8eb:	80 38 00             	cmpb   $0x0,(%eax)
42c8ee:	75 02                	jne    0x42c8f2
42c8f0:	8b f8                	mov    %eax,%edi
42c8f2:	8a 45 ff             	mov    -0x1(%ebp),%al
42c8f5:	b1 34                	mov    $0x34,%cl
42c8f7:	c0 e0 05             	shl    $0x5,%al
42c8fa:	04 50                	add    $0x50,%al
42c8fc:	88 07                	mov    %al,(%edi)
42c8fe:	8b 03                	mov    (%ebx),%eax
42c900:	8b 53 04             	mov    0x4(%ebx),%edx
42c903:	e8 18 fa 00 00       	call   0x43c320
42c908:	8b d8                	mov    %eax,%ebx
42c90a:	33 f6                	xor    %esi,%esi
42c90c:	81 e3 ff 07 00 00    	and    $0x7ff,%ebx
42c912:	8d 47 02             	lea    0x2(%edi),%eax
42c915:	2b 5d f0             	sub    -0x10(%ebp),%ebx
42c918:	89 45 f0             	mov    %eax,-0x10(%ebp)
42c91b:	1b f6                	sbb    %esi,%esi
42c91d:	78 0a                	js     0x42c929
42c91f:	7f 04                	jg     0x42c925
42c921:	85 db                	test   %ebx,%ebx
42c923:	72 04                	jb     0x42c929
42c925:	b1 2b                	mov    $0x2b,%cl
42c927:	eb 0a                	jmp    0x42c933
42c929:	f7 db                	neg    %ebx
42c92b:	6a 2d                	push   $0x2d
42c92d:	83 d6 00             	adc    $0x0,%esi
42c930:	f7 de                	neg    %esi
42c932:	59                   	pop    %ecx
42c933:	88 4f 01             	mov    %cl,0x1(%edi)
42c936:	8b f8                	mov    %eax,%edi
42c938:	6a 30                	push   $0x30
42c93a:	59                   	pop    %ecx
42c93b:	88 08                	mov    %cl,(%eax)
42c93d:	85 f6                	test   %esi,%esi
42c93f:	0f 8c 96 00 00 00    	jl     0x42c9db
42c945:	b8 e8 03 00 00       	mov    $0x3e8,%eax
42c94a:	7f 04                	jg     0x42c950
42c94c:	3b d8                	cmp    %eax,%ebx
42c94e:	72 2e                	jb     0x42c97e
42c950:	6a 00                	push   $0x0
42c952:	50                   	push   %eax
42c953:	56                   	push   %esi
42c954:	53                   	push   %ebx
42c955:	e8 36 f8 00 00       	call   0x43c190
42c95a:	6a 30                	push   $0x30
42c95c:	59                   	pop    %ecx
42c95d:	6a 00                	push   $0x0
42c95f:	02 c1                	add    %cl,%al
42c961:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42c964:	68 e8 03 00 00       	push   $0x3e8
42c969:	56                   	push   %esi
42c96a:	53                   	push   %ebx
42c96b:	88 01                	mov    %al,(%ecx)
42c96d:	8d 79 01             	lea    0x1(%ecx),%edi
42c970:	e8 cb f8 00 00       	call   0x43c240
42c975:	8b d8                	mov    %eax,%ebx
42c977:	8b f2                	mov    %edx,%esi