46a72b:	fe c8                	dec    %al
46a72d:	24 30                	and    $0x30,%al
46a72f:	e9 6d fb ff ff       	jmp    0x46a2a1
46a734:	8b 45 10             	mov    0x10(%ebp),%eax
46a737:	81 78 14 94 f8 ff ff 	cmpl   $0xfffff894,0x14(%eax)
46a73e:	0f 8c 2b fb ff ff    	jl     0x46a26f
46a744:	81 78 14 a3 1f 00 00 	cmpl   $0x1fa3,0x14(%eax)
46a74b:	0f 8f 1e fb ff ff    	jg     0x46a26f
46a751:	6a 30                	push   $0x30
46a753:	ff 75 18             	push   0x18(%ebp)
46a756:	ff 75 14             	push   0x14(%ebp)
46a759:	6a 04                	push   $0x4
46a75b:	ff 70 1c             	push   0x1c(%eax)
46a75e:	ff 70 18             	push   0x18(%eax)
46a761:	ff 70 14             	push   0x14(%eax)
46a764:	e8 bd f7 ff ff       	call   0x469f26
46a769:	83 c4 0c             	add    $0xc,%esp
46a76c:	05 6c 07 00 00       	add    $0x76c,%eax
46a771:	e9 82 f8 ff ff       	jmp    0x469ff8
46a776:	ff 75 20             	push   0x20(%ebp)
46a779:	8b 75 18             	mov    0x18(%ebp),%esi
46a77c:	ff 75 1c             	push   0x1c(%ebp)
46a77f:	8b 7d 14             	mov    0x14(%ebp),%edi
46a782:	56                   	push   %esi
46a783:	57                   	push   %edi
46a784:	ff 75 10             	push   0x10(%ebp)
46a787:	6a 59                	push   $0x59
46a789:	ff 75 08             	push   0x8(%ebp)
46a78c:	e8 df f7 ff ff       	call   0x469f70
46a791:	83 c4 1c             	add    $0x1c,%esp
46a794:	84 c0                	test   %al,%al
46a796:	0f 84 83 f9 ff ff    	je     0x46a11f
46a79c:	56                   	push   %esi
46a79d:	57                   	push   %edi
46a79e:	bb 1c d4 49 00       	mov    $0x49d41c,%ebx
46a7a3:	53                   	push   %ebx
46a7a4:	e8 cc 03 00 00       	call   0x46ab75
46a7a9:	ff 75 20             	push   0x20(%ebp)
46a7ac:	ff 75 1c             	push   0x1c(%ebp)
46a7af:	56                   	push   %esi
46a7b0:	57                   	push   %edi
46a7b1:	ff 75 10             	push   0x10(%ebp)
46a7b4:	6a 6d                	push   $0x6d
46a7b6:	ff 75 08             	push   0x8(%ebp)
46a7b9:	e8 b2 f7 ff ff       	call   0x469f70
46a7be:	83 c4 28             	add    $0x28,%esp
46a7c1:	84 c0                	test   %al,%al
46a7c3:	0f 84 56 f9 ff ff    	je     0x46a11f
46a7c9:	56                   	push   %esi
46a7ca:	57                   	push   %edi
46a7cb:	53                   	push   %ebx
46a7cc:	e8 a4 03 00 00       	call   0x46ab75
46a7d1:	ff 75 20             	push   0x20(%ebp)
46a7d4:	ff 75 1c             	push   0x1c(%ebp)
46a7d7:	56                   	push   %esi
46a7d8:	57                   	push   %edi
46a7d9:	ff 75 10             	push   0x10(%ebp)
46a7dc:	6a 64                	push   $0x64
46a7de:	e9 d9 f9 ff ff       	jmp    0x46a1bc
46a7e3:	8b 45 10             	mov    0x10(%ebp),%eax
46a7e6:	8b 48 04             	mov    0x4(%eax),%ecx
46a7e9:	85 c9                	test   %ecx,%ecx
46a7eb:	0f 88 7e fa ff ff    	js     0x46a26f
46a7f1:	83 f9 3b             	cmp    $0x3b,%ecx
46a7f4:	e9 25 ff ff ff       	jmp    0x46a71e
46a7f9:	6a 07                	push   $0x7
46a7fb:	83 e8 52             	sub    $0x52,%eax
46a7fe:	5f                   	pop    %edi
46a7ff:	3b c7                	cmp    %edi,%eax
46a801:	0f 87 78 fa ff ff    	ja     0x46a27f
46a807:	ff 24 85 4c aa 46 00 	jmp    *0x46aa4c(,%eax,4)
46a80e:	ff 75 20             	push   0x20(%ebp)
46a811:	ff 75 1c             	push   0x1c(%ebp)
46a814:	ff 75 18             	push   0x18(%ebp)
46a817:	ff 75 14             	push   0x14(%ebp)
46a81a:	ff 75 10             	push   0x10(%ebp)
46a81d:	6a 48                	push   $0x48
46a81f:	ff 75 08             	push   0x8(%ebp)
46a822:	e8 49 f7 ff ff       	call   0x469f70
46a827:	83 c4 1c             	add    $0x1c,%esp
46a82a:	84 c0                	test   %al,%al
46a82c:	0f 84 ed f8 ff ff    	je     0x46a11f
46a832:	ff 75 18             	push   0x18(%ebp)
46a835:	ff 75 14             	push   0x14(%ebp)
46a838:	68 24 d4 49 00       	push   $0x49d424
46a83d:	e8 33 03 00 00       	call   0x46ab75
46a842:	ff 75 20             	push   0x20(%ebp)
46a845:	ff 75 1c             	push   0x1c(%ebp)
46a848:	ff 75 18             	push   0x18(%ebp)
46a84b:	ff 75 14             	push   0x14(%ebp)
46a84e:	ff 75 10             	push   0x10(%ebp)
46a851:	6a 4d                	push   $0x4d
46a853:	e9 64 f9 ff ff       	jmp    0x46a1bc
46a858:	8b 45 10             	mov    0x10(%ebp),%eax
46a85b:	8b 08                	mov    (%eax),%ecx
46a85d:	85 c9                	test   %ecx,%ecx
46a85f:	0f 88 0a fa ff ff    	js     0x46a26f
46a865:	83 f9 3c             	cmp    $0x3c,%ecx
46a868:	e9 b1 fe ff ff       	jmp    0x46a71e
46a86d:	ff 75 20             	push   0x20(%ebp)
46a870:	8b 75 18             	mov    0x18(%ebp),%esi
46a873:	ff 75 1c             	push   0x1c(%ebp)
46a876:	8b 7d 14             	mov    0x14(%ebp),%edi
46a879:	56                   	push   %esi
46a87a:	57                   	push   %edi
46a87b:	ff 75 10             	push   0x10(%ebp)
46a87e:	6a 48                	push   $0x48
46a880:	ff 75 08             	push   0x8(%ebp)
46a883:	e8 e8 f6 ff ff       	call   0x469f70
46a888:	83 c4 1c             	add    $0x1c,%esp
46a88b:	84 c0                	test   %al,%al
46a88d:	0f 84 8c f8 ff ff    	je     0x46a11f
46a893:	56                   	push   %esi
46a894:	57                   	push   %edi
46a895:	bb 24 d4 49 00       	mov    $0x49d424,%ebx
46a89a:	53                   	push   %ebx
46a89b:	e8 d5 02 00 00       	call   0x46ab75
46a8a0:	ff 75 20             	push   0x20(%ebp)
46a8a3:	ff 75 1c             	push   0x1c(%ebp)
46a8a6:	56                   	push   %esi
46a8a7:	57                   	push   %edi
46a8a8:	ff 75 10             	push   0x10(%ebp)
46a8ab:	6a 4d                	push   $0x4d
46a8ad:	ff 75 08             	push   0x8(%ebp)
46a8b0:	e8 bb f6 ff ff       	call   0x469f70
46a8b5:	83 c4 28             	add    $0x28,%esp
46a8b8:	84 c0                	test   %al,%al
46a8ba:	0f 84 5f f8 ff ff    	je     0x46a11f
46a8c0:	56                   	push   %esi
46a8c1:	57                   	push   %edi
46a8c2:	53                   	push   %ebx
46a8c3:	e8 ad 02 00 00       	call   0x46ab75
46a8c8:	ff 75 20             	push   0x20(%ebp)
46a8cb:	ff 75 1c             	push   0x1c(%ebp)
46a8ce:	56                   	push   %esi
46a8cf:	57                   	push   %edi
46a8d0:	ff 75 10             	push   0x10(%ebp)
46a8d3:	6a 53                	push   $0x53
46a8d5:	e9 e2 f8 ff ff       	jmp    0x46a1bc
46a8da:	8b 45 10             	mov    0x10(%ebp),%eax
46a8dd:	8b 48 18             	mov    0x18(%eax),%ecx
46a8e0:	85 c9                	test   %ecx,%ecx
46a8e2:	0f 88 87 f9 ff ff    	js     0x46a26f
46a8e8:	83 f9 06             	cmp    $0x6,%ecx
46a8eb:	0f 8f 7e f9 ff ff    	jg     0x46a26f
46a8f1:	66 83 fa 57          	cmp    $0x57,%dx
46a8f5:	75 0a                	jne    0x46a901
46a8f7:	85 c9                	test   %ecx,%ecx
46a8f9:	75 05                	jne    0x46a900
46a8fb:	6a 06                	push   $0x6
46a8fd:	59                   	pop    %ecx
46a8fe:	eb 01                	jmp    0x46a901
46a900:	49                   	dec    %ecx
46a901:	8b 40 1c             	mov    0x1c(%eax),%eax
46a904:	85 c0                	test   %eax,%eax
46a906:	0f 88 63 f9 ff ff    	js     0x46a26f
46a90c:	3d 6d 01 00 00       	cmp    $0x16d,%eax
46a911:	0f 8f 58 f9 ff ff    	jg     0x46a26f
46a917:	33 f6                	xor    %esi,%esi
46a919:	3b c1                	cmp    %ecx,%eax
46a91b:	7c 0a                	jl     0x46a927
46a91d:	99                   	cltd
46a91e:	f7 ff                	idiv   %edi
46a920:	8b f0                	mov    %eax,%esi
46a922:	3b d1                	cmp    %ecx,%edx
46a924:	7c 01                	jl     0x46a927
46a926:	46                   	inc    %esi
46a927:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
46a92b:	0f 95 c1             	setne  %cl
46a92e:	fe c9                	dec    %cl
46a930:	80 e1 30             	and    $0x30,%cl
46a933:	66 0f be c1          	movsbw %cl,%ax
46a937:	0f b7 c0             	movzwl %ax,%eax
46a93a:	50                   	push   %eax
46a93b:	ff 75 18             	push   0x18(%ebp)
46a93e:	ff 75 14             	push   0x14(%ebp)
46a941:	6a 02                	push   $0x2
46a943:	56                   	push   %esi
46a944:	e9 b0 f6 ff ff       	jmp    0x469ff9
46a949:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
46a94d:	0f 95 c0             	setne  %al
46a950:	fe c8                	dec    %al
46a952:	24 30                	and    $0x30,%al
46a954:	66 98                	cbtw
46a956:	0f b7 c0             	movzwl %ax,%eax
46a959:	50                   	push   %eax
46a95a:	ff 75 18             	push   0x18(%ebp)
46a95d:	8b 45 10             	mov    0x10(%ebp),%eax
46a960:	ff 75 14             	push   0x14(%ebp)
46a963:	6a 02                	push   $0x2
46a965:	ff 70 1c             	push   0x1c(%eax)
46a968:	ff 70 18             	push   0x18(%eax)
46a96b:	ff 70 14             	push   0x14(%eax)
46a96e:	e8 d0 f4 ff ff       	call   0x469e43
46a973:	83 c4 0c             	add    $0xc,%esp
46a976:	e9 7d f6 ff ff       	jmp    0x469ff8
46a97b:	ff 75 1c             	push   0x1c(%ebp)
46a97e:	ff 75 18             	push   0x18(%ebp)
46a981:	ff 75 14             	push   0x14(%ebp)
46a984:	ff 75 10             	push   0x10(%ebp)
46a987:	6a 02                	push   $0x2
46a989:	e9 b1 fb ff ff       	jmp    0x46a53f
46a98e:	8b 45 10             	mov    0x10(%ebp),%eax
46a991:	8b 48 14             	mov    0x14(%eax),%ecx
46a994:	81 f9 94 f8 ff ff    	cmp    $0xfffff894,%ecx
46a99a:	0f 8c cf f8 ff ff    	jl     0x46a26f
46a9a0:	81 f9 a3 1f 00 00    	cmp    $0x1fa3,%ecx
46a9a6:	0f 8f c3 f8 ff ff    	jg     0x46a26f
46a9ac:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
46a9b0:	0f 95 c0             	setne  %al
46a9b3:	fe c8                	dec    %al
46a9b5:	24 30                	and    $0x30,%al
46a9b7:	66 98                	cbtw
46a9b9:	0f b7 c0             	movzwl %ax,%eax
46a9bc:	50                   	push   %eax
46a9bd:	ff 75 18             	push   0x18(%ebp)
46a9c0:	8d 81 6c 07 00 00    	lea    0x76c(%ecx),%eax
46a9c6:	ff 75 14             	push   0x14(%ebp)
46a9c9:	6a 04                	push   $0x4
46a9cb:	e9 28 f6 ff ff       	jmp    0x469ff8
46a9d0:	e8 73 1c 01 00       	call   0x47c648
46a9d5:	33 f6                	xor    %esi,%esi
46a9d7:	89 75 f8             	mov    %esi,-0x8(%ebp)
46a9da:	e8 08 13 01 00       	call   0x47bce7
46a9df:	8b 4d 10             	mov    0x10(%ebp),%ecx
46a9e2:	33 d2                	xor    %edx,%edx
46a9e4:	ff 75 08             	push   0x8(%ebp)
46a9e7:	8b 7d 18             	mov    0x18(%ebp),%edi
46a9ea:	8b 5d 14             	mov    0x14(%ebp),%ebx
46a9ed:	39 71 20             	cmp    %esi,0x20(%ecx)
46a9f0:	6a ff                	push   $0xffffffff
46a9f2:	0f 95 c2             	setne  %dl
46a9f5:	8b 04 90             	mov    (%eax,%edx,4),%eax
46a9f8:	50                   	push   %eax
46a9f9:	ff 37                	push   (%edi)
46a9fb:	8d 45 f8             	lea    -0x8(%ebp),%eax
46a9fe:	ff 33                	push   (%ebx)
46aa00:	50                   	push   %eax
46aa01:	e8 a9 fc 00 00       	call   0x47a6af
46aa06:	83 c4 18             	add    $0x18,%esp
46aa09:	85 c0                	test   %eax,%eax
46aa0b:	74 0a                	je     0x46aa17
46aa0d:	83 f8 16             	cmp    $0x16,%eax
46aa10:	74 30                	je     0x46aa42
46aa12:	83 f8 22             	cmp    $0x22,%eax
46aa15:	74 2b                	je     0x46aa42
46aa17:	83 f8 50             	cmp    $0x50,%eax
46aa1a:	75 0a                	jne    0x46aa26
46aa1c:	8b 07                	mov    (%edi),%eax
46aa1e:	03 c0                	add    %eax,%eax
46aa20:	01 03                	add    %eax,(%ebx)
46aa22:	89 37                	mov    %esi,(%edi)
46aa24:	eb 13                	jmp    0x46aa39
46aa26:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46aa29:	33 c0                	xor    %eax,%eax
46aa2b:	40                   	inc    %eax
46aa2c:	2b c1                	sub    %ecx,%eax
46aa2e:	01 07                	add    %eax,(%edi)
46aa30:	8d 04 4d fe ff ff ff 	lea    -0x2(,%ecx,2),%eax
46aa37:	01 03                	add    %eax,(%ebx)
46aa39:	b0 01                	mov    $0x1,%al
46aa3b:	5f                   	pop    %edi
46aa3c:	5e                   	pop    %esi
46aa3d:	5b                   	pop    %ebx
46aa3e:	8b e5                	mov    %ebp,%esp
46aa40:	5d                   	pop    %ebp
46aa41:	c3                   	ret
46aa42:	56                   	push   %esi
46aa43:	56                   	push   %esi
46aa44:	56                   	push   %esi
46aa45:	56                   	push   %esi
46aa46:	56                   	push   %esi
46aa47:	e8 b7 22 fe ff       	call   0x44cd03
46aa4c:	0e                   	push   %cs
46aa4d:	a8 46                	test   $0x46,%al
46aa4f:	00 58 a8             	add    %bl,-0x58(%eax)
46aa52:	46                   	inc    %esi
46aa53:	00 6d a8             	add    %ch,-0x58(%ebp)
46aa56:	46                   	inc    %esi
46aa57:	00 da                	add    %bl,%dl
46aa59:	a8 46                	test   $0x46,%al
46aa5b:	00 49 a9             	add    %cl,-0x57(%ecx)
46aa5e:	46                   	inc    %esi
46aa5f:	00 da                	add    %bl,%dl
46aa61:	a8 46                	test   $0x46,%al
46aa63:	00 7b a9             	add    %bh,-0x57(%ebx)
46aa66:	46                   	inc    %esi
46aa67:	00 8e a9 46 00 8b    	add    %cl,-0x74ffb957(%esi)
46aa6d:	ff 55 8b             	call   *-0x75(%ebp)
46aa70:	ec                   	in     (%dx),%al
46aa71:	83 ec 0c             	sub    $0xc,%esp
46aa74:	66 83 7d 18 00       	cmpw   $0x0,0x18(%ebp)
46aa79:	75 13                	jne    0x46aa8e
46aa7b:	ff 75 14             	push   0x14(%ebp)
46aa7e:	ff 75 10             	push   0x10(%ebp)
46aa81:	ff 75 08             	push   0x8(%ebp)
46aa84:	e8 85 00 00 00       	call   0x46ab0e
46aa89:	83 c4 0c             	add    $0xc,%esp
46aa8c:	eb 7c                	jmp    0x46ab0a
46aa8e:	8b 45 0c             	mov    0xc(%ebp),%eax
46aa91:	56                   	push   %esi
46aa92:	8b 75 14             	mov    0x14(%ebp),%esi
46aa95:	3b 06                	cmp    (%esi),%eax
46aa97:	73 6d                	jae    0x46ab06
46aa99:	53                   	push   %ebx
46aa9a:	33 db                	xor    %ebx,%ebx
46aa9c:	48                   	dec    %eax
46aa9d:	57                   	push   %edi
46aa9e:	8b 7d 10             	mov    0x10(%ebp),%edi
46aaa1:	8d 48 01             	lea    0x1(%eax),%ecx
46aaa4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46aaa7:	85 c9                	test   %ecx,%ecx
46aaa9:	74 50                	je     0x46aafb
46aaab:	8b 4d 08             	mov    0x8(%ebp),%ecx
46aaae:	03 c0                	add    %eax,%eax
46aab0:	66 8b 75 18          	mov    0x18(%ebp),%si
46aab4:	89 45 fc             	mov    %eax,-0x4(%ebp)
46aab7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46aaba:	85 c9                	test   %ecx,%ecx
46aabc:	74 16                	je     0x46aad4
46aabe:	8b c1                	mov    %ecx,%eax
46aac0:	6a 0a                	push   $0xa
46aac2:	99                   	cltd
46aac3:	59                   	pop    %ecx
46aac4:	f7 f9                	idiv   %ecx
46aac6:	8b 07                	mov    (%edi),%eax
46aac8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46aacb:	83 c2 30             	add    $0x30,%edx
46aace:	66 89 14 01          	mov    %dx,(%ecx,%eax,1)
46aad2:	eb 06                	jmp    0x46aada
46aad4:	8b 0f                	mov    (%edi),%ecx
46aad6:	66 89 34 08          	mov    %si,(%eax,%ecx,1)
46aada:	8b 45 f8             	mov    -0x8(%ebp),%eax
46aadd:	99                   	cltd
46aade:	6a 0a                	push   $0xa
46aae0:	59                   	pop    %ecx
46aae1:	f7 f9                	idiv   %ecx
46aae3:	43                   	inc    %ebx
46aae4:	8b c8                	mov    %eax,%ecx
46aae6:	8b 45 fc             	mov    -0x4(%ebp),%eax
46aae9:	83 e8 02             	sub    $0x2,%eax
46aaec:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46aaef:	83 6d f4 01          	subl   $0x1,-0xc(%ebp)
46aaf3:	89 45 fc             	mov    %eax,-0x4(%ebp)
46aaf6:	75 c2                	jne    0x46aaba
46aaf8:	8b 75 14             	mov    0x14(%ebp),%esi
46aafb:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
46aafe:	01 07                	add    %eax,(%edi)
46ab00:	29 1e                	sub    %ebx,(%esi)
46ab02:	5f                   	pop    %edi