a99959:	8b c6                	mov    %esi,%eax
a9995b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
a9995e:	89 45 f4             	mov    %eax,-0xc(%ebp)
a99961:	83 fa 01             	cmp    $0x1,%edx
a99964:	75 2b                	jne    0xa99991
a99966:	57                   	push   %edi
a99967:	e8 63 22 99 ff       	call   0x42bbcf
a9996c:	89 45 f4             	mov    %eax,-0xc(%ebp)
a9996f:	59                   	pop    %ecx
a99970:	85 c0                	test   %eax,%eax
a99972:	0f 84 8f 06 00 00    	je     0xa9a007
a99978:	57                   	push   %edi
a99979:	56                   	push   %esi
a9997a:	50                   	push   %eax
a9997b:	e8 38 ae 97 ff       	call   0x4147b8
a99980:	8b 45 f4             	mov    -0xc(%ebp),%eax
a99983:	83 c4 0c             	add    $0xc,%esp
a99986:	8b 4d fc             	mov    -0x4(%ebp),%ecx
a99989:	89 7d f0             	mov    %edi,-0x10(%ebp)
a9998c:	bf 64 01 00 00       	mov    $0x164,%edi
a99991:	8b d6                	mov    %esi,%edx
a99993:	89 45 ec             	mov    %eax,-0x14(%ebp)
a99996:	29 4d ec             	sub    %ecx,-0x14(%ebp)
a99999:	8b d9                	mov    %ecx,%ebx
a9999b:	89 55 e8             	mov    %edx,-0x18(%ebp)
a9999e:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a999a2:	75 25                	jne    0xa999c9
a999a4:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
a999a7:	8b 45 ec             	mov    -0x14(%ebp),%eax
a999aa:	89 0c 18             	mov    %ecx,(%eax,%ebx,1)
a999ad:	ff 33                	push   (%ebx)
a999af:	8b 45 f0             	mov    -0x10(%ebp),%eax
a999b2:	2b c7                	sub    %edi,%eax
a999b4:	50                   	push   %eax
a999b5:	51                   	push   %ecx
a999b6:	e8 d9 85 98 ff       	call   0x421f94
a999bb:	83 c4 0c             	add    $0xc,%esp
a999be:	85 c0                	test   %eax,%eax
a999c0:	0f 85 5a 06 00 00    	jne    0xa9a020
a999c6:	8b 55 e8             	mov    -0x18(%ebp),%edx
a999c9:	8b 0b                	mov    (%ebx),%ecx
a999cb:	8d 41 01             	lea    0x1(%ecx),%eax
a999ce:	89 45 e8             	mov    %eax,-0x18(%ebp)
a999d1:	8a 01                	mov    (%ecx),%al
a999d3:	41                   	inc    %ecx
a999d4:	84 c0                	test   %al,%al
a999d6:	75 f9                	jne    0xa999d1
a999d8:	2b 4d e8             	sub    -0x18(%ebp),%ecx
a999db:	47                   	inc    %edi
a999dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
a999df:	03 f9                	add    %ecx,%edi
a999e1:	42                   	inc    %edx
a999e2:	83 c3 04             	add    $0x4,%ebx
a999e5:	89 55 e8             	mov    %edx,-0x18(%ebp)
a999e8:	83 fa 07             	cmp    $0x7,%edx
a999eb:	72 b1                	jb     0xa9999e
a999ed:	8b 5d fc             	mov    -0x4(%ebp),%ebx
a999f0:	8b d6                	mov    %esi,%edx
a999f2:	89 55 e8             	mov    %edx,-0x18(%ebp)
a999f5:	83 c3 1c             	add    $0x1c,%ebx
a999f8:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a999fc:	75 27                	jne    0xa99a25
a999fe:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99a01:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99a04:	03 cf                	add    %edi,%ecx
a99a06:	89 0c 03             	mov    %ecx,(%ebx,%eax,1)
a99a09:	ff 33                	push   (%ebx)
a99a0b:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99a0e:	2b c7                	sub    %edi,%eax
a99a10:	50                   	push   %eax
a99a11:	51                   	push   %ecx
a99a12:	e8 7d 85 98 ff       	call   0x421f94
a99a17:	83 c4 0c             	add    $0xc,%esp
a99a1a:	85 c0                	test   %eax,%eax
a99a1c:	0f 85 fe 05 00 00    	jne    0xa9a020
a99a22:	8b 55 e8             	mov    -0x18(%ebp),%edx
a99a25:	8b 0b                	mov    (%ebx),%ecx
a99a27:	8d 41 01             	lea    0x1(%ecx),%eax
a99a2a:	89 45 e8             	mov    %eax,-0x18(%ebp)
a99a2d:	8a 01                	mov    (%ecx),%al
a99a2f:	41                   	inc    %ecx
a99a30:	84 c0                	test   %al,%al
a99a32:	75 f9                	jne    0xa99a2d
a99a34:	2b 4d e8             	sub    -0x18(%ebp),%ecx
a99a37:	47                   	inc    %edi
a99a38:	03 f9                	add    %ecx,%edi
a99a3a:	83 c3 04             	add    $0x4,%ebx
a99a3d:	42                   	inc    %edx
a99a3e:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99a41:	83 fa 07             	cmp    $0x7,%edx
a99a44:	72 b2                	jb     0xa999f8
a99a46:	8b 5d fc             	mov    -0x4(%ebp),%ebx
a99a49:	8b d6                	mov    %esi,%edx
a99a4b:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99a4e:	83 c3 38             	add    $0x38,%ebx
a99a51:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99a55:	75 27                	jne    0xa99a7e
a99a57:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99a5a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99a5d:	03 cf                	add    %edi,%ecx
a99a5f:	89 0c 03             	mov    %ecx,(%ebx,%eax,1)
a99a62:	ff 33                	push   (%ebx)
a99a64:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99a67:	2b c7                	sub    %edi,%eax
a99a69:	50                   	push   %eax
a99a6a:	51                   	push   %ecx
a99a6b:	e8 24 85 98 ff       	call   0x421f94
a99a70:	83 c4 0c             	add    $0xc,%esp
a99a73:	85 c0                	test   %eax,%eax
a99a75:	0f 85 a5 05 00 00    	jne    0xa9a020
a99a7b:	8b 55 e8             	mov    -0x18(%ebp),%edx
a99a7e:	8b 0b                	mov    (%ebx),%ecx
a99a80:	8d 41 01             	lea    0x1(%ecx),%eax
a99a83:	89 45 e8             	mov    %eax,-0x18(%ebp)
a99a86:	8a 01                	mov    (%ecx),%al
a99a88:	41                   	inc    %ecx
a99a89:	84 c0                	test   %al,%al
a99a8b:	75 f9                	jne    0xa99a86
a99a8d:	2b 4d e8             	sub    -0x18(%ebp),%ecx
a99a90:	47                   	inc    %edi
a99a91:	03 f9                	add    %ecx,%edi
a99a93:	83 c3 04             	add    $0x4,%ebx
a99a96:	42                   	inc    %edx
a99a97:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99a9a:	83 fa 0c             	cmp    $0xc,%edx
a99a9d:	72 b2                	jb     0xa99a51
a99a9f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
a99aa2:	8b d6                	mov    %esi,%edx
a99aa4:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99aa7:	83 c3 68             	add    $0x68,%ebx
a99aaa:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99aae:	75 27                	jne    0xa99ad7
a99ab0:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99ab3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99ab6:	03 cf                	add    %edi,%ecx
a99ab8:	89 0c 03             	mov    %ecx,(%ebx,%eax,1)
a99abb:	ff 33                	push   (%ebx)
a99abd:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99ac0:	2b c7                	sub    %edi,%eax
a99ac2:	50                   	push   %eax
a99ac3:	51                   	push   %ecx
a99ac4:	e8 cb 84 98 ff       	call   0x421f94
a99ac9:	83 c4 0c             	add    $0xc,%esp
a99acc:	85 c0                	test   %eax,%eax
a99ace:	0f 85 4c 05 00 00    	jne    0xa9a020
a99ad4:	8b 55 e8             	mov    -0x18(%ebp),%edx
a99ad7:	8b 0b                	mov    (%ebx),%ecx
a99ad9:	8d 41 01             	lea    0x1(%ecx),%eax
a99adc:	89 45 e8             	mov    %eax,-0x18(%ebp)
a99adf:	8a 01                	mov    (%ecx),%al
a99ae1:	41                   	inc    %ecx
a99ae2:	84 c0                	test   %al,%al
a99ae4:	75 f9                	jne    0xa99adf
a99ae6:	2b 4d e8             	sub    -0x18(%ebp),%ecx
a99ae9:	47                   	inc    %edi
a99aea:	03 f9                	add    %ecx,%edi
a99aec:	83 c3 04             	add    $0x4,%ebx
a99aef:	42                   	inc    %edx
a99af0:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99af3:	83 fa 0c             	cmp    $0xc,%edx
a99af6:	72 b2                	jb     0xa99aaa
a99af8:	8b 5d fc             	mov    -0x4(%ebp),%ebx
a99afb:	8b d6                	mov    %esi,%edx
a99afd:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99b00:	81 c3 98 00 00 00    	add    $0x98,%ebx
a99b06:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99b0a:	75 27                	jne    0xa99b33
a99b0c:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99b0f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99b12:	03 cf                	add    %edi,%ecx
a99b14:	89 0c 03             	mov    %ecx,(%ebx,%eax,1)
a99b17:	ff 33                	push   (%ebx)
a99b19:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99b1c:	2b c7                	sub    %edi,%eax
a99b1e:	50                   	push   %eax
a99b1f:	51                   	push   %ecx
a99b20:	e8 6f 84 98 ff       	call   0x421f94
a99b25:	83 c4 0c             	add    $0xc,%esp
a99b28:	85 c0                	test   %eax,%eax
a99b2a:	0f 85 f0 04 00 00    	jne    0xa9a020
a99b30:	8b 55 e8             	mov    -0x18(%ebp),%edx
a99b33:	8b 0b                	mov    (%ebx),%ecx
a99b35:	8d 41 01             	lea    0x1(%ecx),%eax
a99b38:	89 45 e8             	mov    %eax,-0x18(%ebp)
a99b3b:	8a 01                	mov    (%ecx),%al
a99b3d:	41                   	inc    %ecx
a99b3e:	84 c0                	test   %al,%al
a99b40:	75 f9                	jne    0xa99b3b
a99b42:	2b 4d e8             	sub    -0x18(%ebp),%ecx
a99b45:	47                   	inc    %edi
a99b46:	03 f9                	add    %ecx,%edi
a99b48:	83 c3 04             	add    $0x4,%ebx
a99b4b:	42                   	inc    %edx
a99b4c:	89 55 e8             	mov    %edx,-0x18(%ebp)
a99b4f:	83 fa 02             	cmp    $0x2,%edx
a99b52:	72 b2                	jb     0xa99b06
a99b54:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99b58:	8b 5d f4             	mov    -0xc(%ebp),%ebx
a99b5b:	75 29                	jne    0xa99b86
a99b5d:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99b60:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
a99b63:	89 8b a0 00 00 00    	mov    %ecx,0xa0(%ebx)
a99b69:	ff b0 a0 00 00 00    	push   0xa0(%eax)
a99b6f:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99b72:	2b c7                	sub    %edi,%eax
a99b74:	50                   	push   %eax
a99b75:	51                   	push   %ecx
a99b76:	e8 19 84 98 ff       	call   0x421f94
a99b7b:	83 c4 0c             	add    $0xc,%esp
a99b7e:	85 c0                	test   %eax,%eax
a99b80:	0f 85 9a 04 00 00    	jne    0xa9a020
a99b86:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99b89:	8b 88 a0 00 00 00    	mov    0xa0(%eax),%ecx
a99b8f:	8d 51 01             	lea    0x1(%ecx),%edx
a99b92:	8a 01                	mov    (%ecx),%al
a99b94:	41                   	inc    %ecx
a99b95:	84 c0                	test   %al,%al
a99b97:	75 f9                	jne    0xa99b92
a99b99:	2b ca                	sub    %edx,%ecx
a99b9b:	47                   	inc    %edi
a99b9c:	03 f9                	add    %ecx,%edi
a99b9e:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99ba2:	75 29                	jne    0xa99bcd
a99ba4:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99ba7:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
a99baa:	89 8b a4 00 00 00    	mov    %ecx,0xa4(%ebx)
a99bb0:	ff b0 a4 00 00 00    	push   0xa4(%eax)
a99bb6:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99bb9:	2b c7                	sub    %edi,%eax
a99bbb:	50                   	push   %eax
a99bbc:	51                   	push   %ecx
a99bbd:	e8 d2 83 98 ff       	call   0x421f94
a99bc2:	83 c4 0c             	add    $0xc,%esp
a99bc5:	85 c0                	test   %eax,%eax
a99bc7:	0f 85 53 04 00 00    	jne    0xa9a020
a99bcd:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99bd0:	8b 88 a4 00 00 00    	mov    0xa4(%eax),%ecx
a99bd6:	8d 51 01             	lea    0x1(%ecx),%edx
a99bd9:	8a 01                	mov    (%ecx),%al
a99bdb:	41                   	inc    %ecx
a99bdc:	84 c0                	test   %al,%al
a99bde:	75 f9                	jne    0xa99bd9
a99be0:	2b ca                	sub    %edx,%ecx
a99be2:	47                   	inc    %edi
a99be3:	03 f9                	add    %ecx,%edi
a99be5:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99be9:	75 29                	jne    0xa99c14
a99beb:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99bee:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
a99bf1:	89 8b a8 00 00 00    	mov    %ecx,0xa8(%ebx)
a99bf7:	ff b0 a8 00 00 00    	push   0xa8(%eax)
a99bfd:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99c00:	2b c7                	sub    %edi,%eax
a99c02:	50                   	push   %eax
a99c03:	51                   	push   %ecx
a99c04:	e8 8b 83 98 ff       	call   0x421f94
a99c09:	83 c4 0c             	add    $0xc,%esp
a99c0c:	85 c0                	test   %eax,%eax
a99c0e:	0f 85 0c 04 00 00    	jne    0xa9a020
a99c14:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99c17:	8b 88 a8 00 00 00    	mov    0xa8(%eax),%ecx
a99c1d:	8d 51 01             	lea    0x1(%ecx),%edx
a99c20:	8a 01                	mov    (%ecx),%al
a99c22:	41                   	inc    %ecx
a99c23:	84 c0                	test   %al,%al
a99c25:	75 f9                	jne    0xa99c20
a99c27:	2b ca                	sub    %edx,%ecx
a99c29:	8b 55 f8             	mov    -0x8(%ebp),%edx
a99c2c:	8d 59 01             	lea    0x1(%ecx),%ebx
a99c2f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99c32:	03 df                	add    %edi,%ebx
a99c34:	83 fa 01             	cmp    $0x1,%edx
a99c37:	75 15                	jne    0xa99c4e
a99c39:	8b 45 fc             	mov    -0x4(%ebp),%eax
a99c3c:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
a99c42:	89 81 ac 00 00 00    	mov    %eax,0xac(%ecx)
a99c48:	89 b1 b0 00 00 00    	mov    %esi,0xb0(%ecx)
a99c4e:	8b 7d fc             	mov    -0x4(%ebp),%edi
a99c51:	89 75 e8             	mov    %esi,-0x18(%ebp)
a99c54:	81 c7 b4 00 00 00    	add    $0xb4,%edi
a99c5a:	eb 01                	jmp    0xa99c5d
a99c5c:	43                   	inc    %ebx
a99c5d:	f6 c3 01             	test   $0x1,%bl
a99c60:	75 fa                	jne    0xa99c5c
a99c62:	83 fa 01             	cmp    $0x1,%edx
a99c65:	75 28                	jne    0xa99c8f
a99c67:	8b c3                	mov    %ebx,%eax
a99c69:	d1 e8                	shr    $1,%eax
a99c6b:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
a99c6e:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99c71:	89 0c 07             	mov    %ecx,(%edi,%eax,1)
a99c74:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99c77:	ff 37                	push   (%edi)
a99c79:	2b c3                	sub    %ebx,%eax
a99c7b:	d1 e8                	shr    $1,%eax
a99c7d:	50                   	push   %eax
a99c7e:	51                   	push   %ecx
a99c7f:	e8 e7 89 97 ff       	call   0x41266b
a99c84:	83 c4 0c             	add    $0xc,%esp
a99c87:	85 c0                	test   %eax,%eax
a99c89:	0f 85 91 03 00 00    	jne    0xa9a020
a99c8f:	8b 0f                	mov    (%edi),%ecx
a99c91:	8d 51 02             	lea    0x2(%ecx),%edx
a99c94:	66 8b 01             	mov    (%ecx),%ax
a99c97:	83 c1 02             	add    $0x2,%ecx
a99c9a:	66 3b c6             	cmp    %si,%ax
a99c9d:	75 f5                	jne    0xa99c94
a99c9f:	8b 45 e8             	mov    -0x18(%ebp),%eax
a99ca2:	2b ca                	sub    %edx,%ecx
a99ca4:	8b 55 f8             	mov    -0x8(%ebp),%edx
a99ca7:	83 c7 04             	add    $0x4,%edi
a99caa:	d1 f9                	sar    $1,%ecx
a99cac:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
a99caf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99cb2:	83 c3 02             	add    $0x2,%ebx
a99cb5:	40                   	inc    %eax
a99cb6:	89 45 e8             	mov    %eax,-0x18(%ebp)
a99cb9:	83 f8 07             	cmp    $0x7,%eax
a99cbc:	72 9f                	jb     0xa99c5d
a99cbe:	8b 7d fc             	mov    -0x4(%ebp),%edi
a99cc1:	89 75 e8             	mov    %esi,-0x18(%ebp)
a99cc4:	81 c7 d0 00 00 00    	add    $0xd0,%edi
a99cca:	eb 01                	jmp    0xa99ccd
a99ccc:	43                   	inc    %ebx
a99ccd:	f6 c3 01             	test   $0x1,%bl
a99cd0:	75 fa                	jne    0xa99ccc
a99cd2:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
a99cd6:	75 2b                	jne    0xa99d03
a99cd8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
a99cdb:	8b c3                	mov    %ebx,%eax
a99cdd:	d1 e8                	shr    $1,%eax
a99cdf:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
a99ce2:	8b 45 ec             	mov    -0x14(%ebp),%eax
a99ce5:	89 0c 07             	mov    %ecx,(%edi,%eax,1)
a99ce8:	8b 45 f0             	mov    -0x10(%ebp),%eax
a99ceb:	ff 37                	push   (%edi)
a99ced:	2b c3                	sub    %ebx,%eax
a99cef:	d1 e8                	shr    $1,%eax
a99cf1:	50                   	push   %eax
a99cf2:	51                   	push   %ecx
a99cf3:	e8 73 89 97 ff       	call   0x41266b
a99cf8:	83 c4 0c             	add    $0xc,%esp
a99cfb:	85 c0                	test   %eax,%eax
a99cfd:	0f 85 1d 03 00 00    	jne    0xa9a020
a99d03:	8b 0f                	mov    (%edi),%ecx
a99d05:	8d 51 02             	lea    0x2(%ecx),%edx
a99d08:	66 8b 01             	mov    (%ecx),%ax
a99d0b:	83 c1 02             	add    $0x2,%ecx
a99d0e:	66 3b c6             	cmp    %si,%ax
a99d11:	75 f5                	jne    0xa99d08