a61808:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
a6180c:	32 c0                	xor    %al,%al
a6180e:	88 45 9f             	mov    %al,-0x61(%ebp)
a61811:	33 c0                	xor    %eax,%eax
a61813:	c6 45 a7 00          	movb   $0x0,-0x59(%ebp)
a61817:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
a6181e:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
a61822:	8b 06                	mov    (%esi),%eax
a61824:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
a6182a:	51                   	push   %ecx
a6182b:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
a61832:	8b 70 2c             	mov    0x2c(%eax),%esi
a61835:	8b ce                	mov    %esi,%ecx
a61837:	e8 29 ae 9c ff       	call   0x42c665
a6183c:	8b 4d 98             	mov    -0x68(%ebp),%ecx
a6183f:	ff d6                	call   *%esi
a61841:	33 c9                	xor    %ecx,%ecx
a61843:	c7 43 14 0f 00 00 00 	movl   $0xf,0x14(%ebx)
a6184a:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
a6184e:	89 4b 10             	mov    %ecx,0x10(%ebx)
a61851:	72 04                	jb     0xa61857
a61853:	8b 03                	mov    (%ebx),%eax
a61855:	eb 02                	jmp    0xa61859
a61857:	8b c3                	mov    %ebx,%eax
a61859:	88 08                	mov    %cl,(%eax)
a6185b:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
a6185e:	33 c0                	xor    %eax,%eax
a61860:	40                   	inc    %eax
a61861:	8b cb                	mov    %ebx,%ecx
a61863:	89 45 a0             	mov    %eax,-0x60(%ebp)
a61866:	89 45 84             	mov    %eax,-0x7c(%ebp)
a61869:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
a6186f:	50                   	push   %eax
a61870:	e8 7d 19 9a ff       	call   0x4031f2
a61875:	50                   	push   %eax
a61876:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
a6187a:	e8 df dc 9c ff       	call   0x42f55e
a6187f:	59                   	pop    %ecx
a61880:	8b f0                	mov    %eax,%esi
a61882:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
a61886:	8d 8d 3c ff ff ff    	lea    -0xc4(%ebp),%ecx
a6188c:	89 b5 74 ff ff ff    	mov    %esi,-0x8c(%ebp)
a61892:	e8 af 03 9d ff       	call   0x431c46
a61897:	8b 0e                	mov    (%esi),%ecx
a61899:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
a6189f:	68 fc b6 c7 00       	push   $0xc7b6fc
a618a4:	8b 71 2c             	mov    0x2c(%ecx),%esi
a618a7:	8b ce                	mov    %esi,%ecx
a618a9:	68 f0 b6 c7 00       	push   $0xc7b6f0
a618ae:	e8 b2 ad 9c ff       	call   0x42c665
a618b3:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
a618b9:	ff d6                	call   *%esi
a618bb:	83 65 80 00          	andl   $0x0,-0x80(%ebp)
a618bf:	8a 45 a7             	mov    -0x59(%ebp),%al
a618c2:	8b 4d 80             	mov    -0x80(%ebp),%ecx
a618c5:	83 f9 04             	cmp    $0x4,%ecx
a618c8:	0f 83 56 02 00 00    	jae    0xa61b24
a618ce:	8b 45 80             	mov    -0x80(%ebp),%eax
a618d1:	0f be 84 05 6c ff ff 	movsbl -0x94(%ebp,%eax,1),%eax
a618d8:	ff
a618d9:	83 e8 20             	sub    $0x20,%eax
a618dc:	74 21                	je     0xa618ff
a618de:	83 e8 04             	sub    $0x4,%eax
a618e1:	0f 84 01 06 00 00    	je     0xa61ee8
a618e7:	83 e8 07             	sub    $0x7,%eax
a618ea:	0f 84 e7 03 00 00    	je     0xa61cd7
a618f0:	83 e8 4b             	sub    $0x4b,%eax
a618f3:	74 1b                	je     0xa61910
a618f5:	48                   	dec    %eax
a618f6:	83 e8 01             	sub    $0x1,%eax
a618f9:	0f 85 13 02 00 00    	jne    0xa61b12
a618ff:	83 7d 80 03          	cmpl   $0x3,-0x80(%ebp)
a61903:	0f 84 09 02 00 00    	je     0xa61b12
a61909:	32 db                	xor    %bl,%bl
a6190b:	e9 12 07 00 00       	jmp    0xa62022
a61910:	8b 5d 98             	mov    -0x68(%ebp),%ebx
a61913:	83 a5 7c ff ff ff 00 	andl   $0x0,-0x84(%ebp)
a6191a:	8b 03                	mov    (%ebx),%eax
a6191c:	8b 70 24             	mov    0x24(%eax),%esi
a6191f:	8b ce                	mov    %esi,%ecx
a61921:	e8 3f ad 9c ff       	call   0x42c665
a61926:	8b cb                	mov    %ebx,%ecx
a61928:	ff d6                	call   *%esi
a6192a:	8b 75 98             	mov    -0x68(%ebp),%esi
a6192d:	8b d8                	mov    %eax,%ebx
a6192f:	8d 45 c0             	lea    -0x40(%ebp),%eax
a61932:	89 9d 70 ff ff ff    	mov    %ebx,-0x90(%ebp)
a61938:	50                   	push   %eax
a61939:	8b ce                	mov    %esi,%ecx
a6193b:	e8 64 0c 9a ff       	call   0x4025a4
a61940:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
a61944:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
a61948:	0f 84 1c 02 00 00    	je     0xa61b6a
a6194e:	8b 06                	mov    (%esi),%eax
a61950:	8b 70 10             	mov    0x10(%eax),%esi
a61953:	8b ce                	mov    %esi,%ecx
a61955:	e8 0b ad 9c ff       	call   0x42c665
a6195a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
a6195d:	ff d6                	call   *%esi
a6195f:	0f b7 c0             	movzwl %ax,%eax
a61962:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
a61968:	66 85 c0             	test   %ax,%ax
a6196b:	0f 84 f9 01 00 00    	je     0xa61b6a
a61971:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
a61975:	8b 45 c0             	mov    -0x40(%ebp),%eax
a61978:	73 03                	jae    0xa6197d
a6197a:	8d 45 c0             	lea    -0x40(%ebp),%eax
a6197d:	80 38 7f             	cmpb   $0x7f,(%eax)
a61980:	0f 83 e4 01 00 00    	jae    0xa61b6a
a61986:	33 db                	xor    %ebx,%ebx
a61988:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
a6198f:	53                   	push   %ebx
a61990:	6a 01                	push   $0x1
a61992:	8d 4d d8             	lea    -0x28(%ebp),%ecx
a61995:	89 5d e8             	mov    %ebx,-0x18(%ebp)
a61998:	88 5d d8             	mov    %bl,-0x28(%ebp)
a6199b:	e8 83 43 9d ff       	call   0x435d23
a619a0:	ff 75 90             	push   -0x70(%ebp)
a619a3:	8b cf                	mov    %edi,%ecx
a619a5:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
a619a9:	8b f3                	mov    %ebx,%esi
a619ab:	e8 10 49 9b ff       	call   0x4162c0
a619b0:	8b 5d ec             	mov    -0x14(%ebp),%ebx
a619b3:	84 c0                	test   %al,%al
a619b5:	8b 45 d8             	mov    -0x28(%ebp),%eax
a619b8:	89 45 8c             	mov    %eax,-0x74(%ebp)
a619bb:	0f 85 d0 00 00 00    	jne    0xa61a91
a619c1:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
a619c5:	75 07                	jne    0xa619ce
a619c7:	8b cf                	mov    %edi,%ecx
a619c9:	e8 7c 2d 9b ff       	call   0x41474a
a619ce:	0f b7 47 06          	movzwl 0x6(%edi),%eax
a619d2:	50                   	push   %eax
a619d3:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
a619d9:	e8 aa bb 9c ff       	call   0x42d588
a619de:	59                   	pop    %ecx
a619df:	59                   	pop    %ecx
a619e0:	83 f8 0a             	cmp    $0xa,%eax
a619e3:	73 3c                	jae    0xa61a21
a619e5:	8a 80 f0 b6 c7 00    	mov    0xc7b6f0(%eax),%al
a619eb:	8b 4d 88             	mov    -0x78(%ebp),%ecx
a619ee:	88 85 68 ff ff ff    	mov    %al,-0x98(%ebp)
a619f4:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
a619fa:	6a 01                	push   $0x1
a619fc:	e8 39 8c 9c ff       	call   0x42a63a
a61a01:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
a61a04:	8b c1                	mov    %ecx,%eax
a61a06:	83 fb 10             	cmp    $0x10,%ebx
a61a09:	73 03                	jae    0xa61a0e
a61a0b:	8d 45 d8             	lea    -0x28(%ebp),%eax
a61a0e:	80 3c 30 7f          	cmpb   $0x7f,(%eax,%esi,1)
a61a12:	74 4e                	je     0xa61a62
a61a14:	83 fb 10             	cmp    $0x10,%ebx
a61a17:	73 03                	jae    0xa61a1c
a61a19:	8d 4d d8             	lea    -0x28(%ebp),%ecx
a61a1c:	fe 04 31             	incb   (%ecx,%esi,1)
a61a1f:	eb 38                	jmp    0xa61a59
a61a21:	8b 45 8c             	mov    -0x74(%ebp),%eax
a61a24:	83 fb 10             	cmp    $0x10,%ebx
a61a27:	73 03                	jae    0xa61a2c
a61a29:	8d 45 d8             	lea    -0x28(%ebp),%eax
a61a2c:	80 3c 30 00          	cmpb   $0x0,(%eax,%esi,1)
a61a30:	74 49                	je     0xa61a7b
a61a32:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
a61a36:	75 07                	jne    0xa61a3f
a61a38:	8b cf                	mov    %edi,%ecx
a61a3a:	e8 0b 2d 9b ff       	call   0x41474a
a61a3f:	0f b7 47 06          	movzwl 0x6(%edi),%eax
a61a43:	66 3b 85 64 ff ff ff 	cmp    -0x9c(%ebp),%ax
a61a4a:	75 2f                	jne    0xa61a7b
a61a4c:	6a 00                	push   $0x0
a61a4e:	6a 01                	push   $0x1
a61a50:	8d 4d d8             	lea    -0x28(%ebp),%ecx
a61a53:	e8 e2 8b 9c ff       	call   0x42a63a
a61a58:	46                   	inc    %esi
a61a59:	8b 45 d8             	mov    -0x28(%ebp),%eax
a61a5c:	8b 5d ec             	mov    -0x14(%ebp),%ebx
a61a5f:	89 45 8c             	mov    %eax,-0x74(%ebp)
a61a62:	8b cf                	mov    %edi,%ecx
a61a64:	e8 1e be 9a ff       	call   0x40d887
a61a69:	ff 75 90             	push   -0x70(%ebp)
a61a6c:	8b cf                	mov    %edi,%ecx
a61a6e:	e8 4d 48 9b ff       	call   0x4162c0
a61a73:	84 c0                	test   %al,%al
a61a75:	0f 84 46 ff ff ff    	je     0xa619c1
a61a7b:	85 f6                	test   %esi,%esi
a61a7d:	74 12                	je     0xa61a91
a61a7f:	8b 45 8c             	mov    -0x74(%ebp),%eax
a61a82:	83 fb 10             	cmp    $0x10,%ebx
a61a85:	73 03                	jae    0xa61a8a
a61a87:	8d 45 d8             	lea    -0x28(%ebp),%eax
a61a8a:	80 3c 30 00          	cmpb   $0x0,(%eax,%esi,1)
a61a8e:	7e 58                	jle    0xa61ae8
a61a90:	46                   	inc    %esi
a61a91:	8a 45 a7             	mov    -0x59(%ebp),%al
a61a94:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
a61a98:	8b 55 c0             	mov    -0x40(%ebp),%edx
a61a9b:	73 03                	jae    0xa61aa0
a61a9d:	8d 55 c0             	lea    -0x40(%ebp),%edx
a61aa0:	84 c0                	test   %al,%al
a61aa2:	75 4f                	jne    0xa61af3
a61aa4:	85 f6                	test   %esi,%esi
a61aa6:	0f 84 ac 00 00 00    	je     0xa61b58
a61aac:	8a 0a                	mov    (%edx),%cl
a61aae:	80 f9 7f             	cmp    $0x7f,%cl
a61ab1:	0f 84 a1 00 00 00    	je     0xa61b58
a61ab7:	83 ee 01             	sub    $0x1,%esi
a61aba:	74 10                	je     0xa61acc
a61abc:	8b 45 8c             	mov    -0x74(%ebp),%eax
a61abf:	83 fb 10             	cmp    $0x10,%ebx
a61ac2:	73 03                	jae    0xa61ac7
a61ac4:	8d 45 d8             	lea    -0x28(%ebp),%eax
a61ac7:	3a 0c 30             	cmp    (%eax,%esi,1),%cl
a61aca:	75 23                	jne    0xa61aef
a61acc:	85 f6                	test   %esi,%esi
a61ace:	75 0f                	jne    0xa61adf
a61ad0:	8b 45 8c             	mov    -0x74(%ebp),%eax
a61ad3:	83 fb 10             	cmp    $0x10,%ebx
a61ad6:	73 03                	jae    0xa61adb
a61ad8:	8d 45 d8             	lea    -0x28(%ebp),%eax
a61adb:	3a 08                	cmp    (%eax),%cl
a61add:	7c 10                	jl     0xa61aef
a61adf:	80 7a 01 00          	cmpb   $0x0,0x1(%edx)
a61ae3:	7e bf                	jle    0xa61aa4
a61ae5:	42                   	inc    %edx
a61ae6:	eb bc                	jmp    0xa61aa4
a61ae8:	b0 01                	mov    $0x1,%al
a61aea:	88 45 a7             	mov    %al,-0x59(%ebp)
a61aed:	eb a5                	jmp    0xa61a94
a61aef:	c6 45 a7 01          	movb   $0x1,-0x59(%ebp)
a61af3:	6a 00                	push   $0x0
a61af5:	6a 01                	push   $0x1
a61af7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
a61afa:	e8 2c 88 9a ff       	call   0x40a32b
a61aff:	6a 00                	push   $0x0
a61b01:	6a 01                	push   $0x1
a61b03:	8d 4d c0             	lea    -0x40(%ebp),%ecx
a61b06:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
a61b0a:	e8 1c 88 9a ff       	call   0x40a32b
a61b0f:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
a61b12:	8a 45 a7             	mov    -0x59(%ebp),%al
a61b15:	8b 4d 80             	mov    -0x80(%ebp),%ecx
a61b18:	41                   	inc    %ecx
a61b19:	89 4d 80             	mov    %ecx,-0x80(%ebp)
a61b1c:	84 c0                	test   %al,%al
a61b1e:	0f 84 a1 fd ff ff    	je     0xa618c5
a61b24:	84 c0                	test   %al,%al
a61b26:	0f 85 9e 05 00 00    	jne    0xa620ca
a61b2c:	8b 5d b8             	mov    -0x48(%ebp),%ebx
a61b2f:	83 fb 01             	cmp    $0x1,%ebx
a61b32:	0f 86 7b 05 00 00    	jbe    0xa620b3
a61b38:	8b 55 bc             	mov    -0x44(%ebp),%edx
a61b3b:	8b 4d a8             	mov    -0x58(%ebp),%ecx
a61b3e:	8b f1                	mov    %ecx,%esi
a61b40:	83 fa 08             	cmp    $0x8,%edx
a61b43:	73 0c                	jae    0xa61b51
a61b45:	8d 75 a8             	lea    -0x58(%ebp),%esi
a61b48:	83 fa 08             	cmp    $0x8,%edx
a61b4b:	0f 82 05 05 00 00    	jb     0xa62056
a61b51:	8b c1                	mov    %ecx,%eax
a61b53:	e9 01 05 00 00       	jmp    0xa62059
a61b58:	6a 00                	push   $0x0
a61b5a:	6a 01                	push   $0x1
a61b5c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
a61b5f:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
a61b63:	e8 c3 87 9a ff       	call   0x40a32b
a61b68:	eb 64                	jmp    0xa61bce
a61b6a:	8b 75 90             	mov    -0x70(%ebp),%esi
a61b6d:	8b cf                	mov    %edi,%ecx
a61b6f:	56                   	push   %esi
a61b70:	e8 4b 47 9b ff       	call   0x4162c0
a61b75:	84 c0                	test   %al,%al
a61b77:	75 5b                	jne    0xa61bd4
a61b79:	8b 5d 88             	mov    -0x78(%ebp),%ebx
a61b7c:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
a61b80:	75 07                	jne    0xa61b89
a61b82:	8b cf                	mov    %edi,%ecx
a61b84:	e8 c1 2b 9b ff       	call   0x41474a
a61b89:	0f b7 47 06          	movzwl 0x6(%edi),%eax
a61b8d:	50                   	push   %eax
a61b8e:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
a61b94:	e8 ef b9 9c ff       	call   0x42d588
a61b99:	59                   	pop    %ecx
a61b9a:	59                   	pop    %ecx
a61b9b:	83 f8 0a             	cmp    $0xa,%eax
a61b9e:	73 2e                	jae    0xa61bce
a61ba0:	8a 80 f0 b6 c7 00    	mov    0xc7b6f0(%eax),%al
a61ba6:	8b cb                	mov    %ebx,%ecx
a61ba8:	88 85 60 ff ff ff    	mov    %al,-0xa0(%ebp)
a61bae:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
a61bb4:	6a 01                	push   $0x1
a61bb6:	e8 7f 8a 9c ff       	call   0x42a63a
a61bbb:	8b cf                	mov    %edi,%ecx
a61bbd:	e8 c5 bc 9a ff       	call   0x40d887
a61bc2:	56                   	push   %esi
a61bc3:	8b cf                	mov    %edi,%ecx
a61bc5:	e8 f6 46 9b ff       	call   0x4162c0
a61bca:	84 c0                	test   %al,%al
a61bcc:	74 ae                	je     0xa61b7c
a61bce:	8b 9d 70 ff ff ff    	mov    -0x90(%ebp),%ebx
a61bd4:	8b 45 98             	mov    -0x68(%ebp),%eax
a61bd7:	8b 00                	mov    (%eax),%eax
a61bd9:	8b 70 0c             	mov    0xc(%eax),%esi
a61bdc:	8b ce                	mov    %esi,%ecx
a61bde:	e8 82 aa 9c ff       	call   0x42c665
a61be3:	8b 4d 98             	mov    -0x68(%ebp),%ecx
a61be6:	ff d6                	call   *%esi
a61be8:	ff 75 90             	push   -0x70(%ebp)
a61beb:	8b cf                	mov    %edi,%ecx
a61bed:	0f b7 f0             	movzwl %ax,%esi
a61bf0:	e8 cb 46 9b ff       	call   0x4162c0
a61bf5:	84 c0                	test   %al,%al
a61bf7:	0f 85 9a 00 00 00    	jne    0xa61c97
a61bfd:	66 85 f6             	test   %si,%si
a61c00:	0f 84 91 00 00 00    	je     0xa61c97
a61c06:	38 47 04             	cmp    %al,0x4(%edi)
a61c09:	75 07                	jne    0xa61c12
a61c0b:	8b cf                	mov    %edi,%ecx
a61c0d:	e8 38 2b 9b ff       	call   0x41474a
a61c12:	0f b7 47 06          	movzwl 0x6(%edi),%eax
a61c16:	66 3b c6             	cmp    %si,%ax
a61c19:	75 7c                	jne    0xa61c97
a61c1b:	8b cf                	mov    %edi,%ecx
a61c1d:	e8 65 bc 9a ff       	call   0x40d887
a61c22:	ff 75 90             	push   -0x70(%ebp)
a61c25:	8b cf                	mov    %edi,%ecx
a61c27:	e8 94 46 9b ff       	call   0x4162c0
a61c2c:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
a61c32:	84 c0                	test   %al,%al
a61c34:	75 57                	jne    0xa61c8d
a61c36:	3b f3                	cmp    %ebx,%esi
a61c38:	7d 63                	jge    0xa61c9d
a61c3a:	38 47 04             	cmp    %al,0x4(%edi)
a61c3d:	75 07                	jne    0xa61c46
a61c3f:	8b cf                	mov    %edi,%ecx
a61c41:	e8 04 2b 9b ff       	call   0x41474a
a61c46:	0f b7 47 06          	movzwl 0x6(%edi),%eax
a61c4a:	50                   	push   %eax
a61c4b:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
a61c51:	e8 32 b9 9c ff       	call   0x42d588
a61c56:	59                   	pop    %ecx
a61c57:	59                   	pop    %ecx
a61c58:	83 f8 0a             	cmp    $0xa,%eax
a61c5b:	73 30                	jae    0xa61c8d
a61c5d:	8a 80 f0 b6 c7 00    	mov    0xc7b6f0(%eax),%al
a61c63:	8b 4d 88             	mov    -0x78(%ebp),%ecx
a61c66:	88 85 5c ff ff ff    	mov    %al,-0xa4(%ebp)
a61c6c:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
a61c72:	6a 01                	push   $0x1
a61c74:	e8 c1 89 9c ff       	call   0x42a63a