5d79e7:	8b f1                	mov    %ecx,%esi
5d79e9:	57                   	push   %edi
5d79ea:	ff 76 28             	push   0x28(%esi)
5d79ed:	e8 80 25 00 00       	call   0x5d9f72
5d79f2:	59                   	pop    %ecx
5d79f3:	8b c8                	mov    %eax,%ecx
5d79f5:	89 45 f4             	mov    %eax,-0xc(%ebp)
5d79f8:	6a 00                	push   $0x0
5d79fa:	5b                   	pop    %ebx
5d79fb:	83 e9 01             	sub    $0x1,%ecx
5d79fe:	0f 84 99 00 00 00    	je     0x5d7a9d
5d7a04:	83 e9 01             	sub    $0x1,%ecx
5d7a07:	74 75                	je     0x5d7a7e
5d7a09:	49                   	dec    %ecx
5d7a0a:	83 e9 01             	sub    $0x1,%ecx
5d7a0d:	74 46                	je     0x5d7a55
5d7a0f:	83 e9 04             	sub    $0x4,%ecx
5d7a12:	74 27                	je     0x5d7a3b
5d7a14:	8b 46 08             	mov    0x8(%esi),%eax
5d7a17:	83 c0 18             	add    $0x18,%eax
5d7a1a:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5d7a1e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5d7a24:	ff 76 08             	push   0x8(%esi)
5d7a27:	53                   	push   %ebx
5d7a28:	53                   	push   %ebx
5d7a29:	53                   	push   %ebx
5d7a2a:	53                   	push   %ebx
5d7a2b:	53                   	push   %ebx
5d7a2c:	e8 32 e7 ff ff       	call   0x5d6163
5d7a31:	83 c4 18             	add    $0x18,%esp
5d7a34:	32 c0                	xor    %al,%al
5d7a36:	e9 2d 01 00 00       	jmp    0x5d7b68
5d7a3b:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7a3e:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7a41:	8b c7                	mov    %edi,%eax
5d7a43:	c1 e8 04             	shr    $0x4,%eax
5d7a46:	a8 01                	test   $0x1,%al
5d7a48:	8d 41 08             	lea    0x8(%ecx),%eax
5d7a4b:	89 46 10             	mov    %eax,0x10(%esi)
5d7a4e:	8b 01                	mov    (%ecx),%eax
5d7a50:	8b 51 04             	mov    0x4(%ecx),%edx
5d7a53:	eb 66                	jmp    0x5d7abb
5d7a55:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7a58:	8b c7                	mov    %edi,%eax
5d7a5a:	c1 e8 04             	shr    $0x4,%eax
5d7a5d:	a8 01                	test   $0x1,%al
5d7a5f:	74 0d                	je     0x5d7a6e
5d7a61:	8b 46 10             	mov    0x10(%esi),%eax
5d7a64:	8d 48 04             	lea    0x4(%eax),%ecx
5d7a67:	89 4e 10             	mov    %ecx,0x10(%esi)
5d7a6a:	8b 00                	mov    (%eax),%eax
5d7a6c:	eb 4c                	jmp    0x5d7aba
5d7a6e:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7a71:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5d7a74:	8d 41 04             	lea    0x4(%ecx),%eax
5d7a77:	89 46 10             	mov    %eax,0x10(%esi)
5d7a7a:	8b 01                	mov    (%ecx),%eax
5d7a7c:	eb 40                	jmp    0x5d7abe
5d7a7e:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7a81:	8b c7                	mov    %edi,%eax
5d7a83:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7a86:	c1 e8 04             	shr    $0x4,%eax
5d7a89:	a8 01                	test   $0x1,%al
5d7a8b:	8d 41 04             	lea    0x4(%ecx),%eax
5d7a8e:	89 46 10             	mov    %eax,0x10(%esi)
5d7a91:	74 05                	je     0x5d7a98
5d7a93:	0f bf 01             	movswl (%ecx),%eax
5d7a96:	eb 22                	jmp    0x5d7aba
5d7a98:	0f b7 01             	movzwl (%ecx),%eax
5d7a9b:	eb 1d                	jmp    0x5d7aba
5d7a9d:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7aa0:	8b c7                	mov    %edi,%eax
5d7aa2:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7aa5:	c1 e8 04             	shr    $0x4,%eax
5d7aa8:	a8 01                	test   $0x1,%al
5d7aaa:	8d 41 04             	lea    0x4(%ecx),%eax
5d7aad:	89 46 10             	mov    %eax,0x10(%esi)
5d7ab0:	74 05                	je     0x5d7ab7
5d7ab2:	0f be 01             	movsbl (%ecx),%eax
5d7ab5:	eb 03                	jmp    0x5d7aba
5d7ab7:	0f b6 01             	movzbl (%ecx),%eax
5d7aba:	99                   	cltd
5d7abb:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7abe:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7ac1:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d7ac4:	8b c7                	mov    %edi,%eax
5d7ac6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7ac9:	c1 e8 04             	shr    $0x4,%eax
5d7acc:	a8 01                	test   $0x1,%al
5d7ace:	74 16                	je     0x5d7ae6
5d7ad0:	3b d3                	cmp    %ebx,%edx
5d7ad2:	7f 12                	jg     0x5d7ae6
5d7ad4:	7c 04                	jl     0x5d7ada
5d7ad6:	3b cb                	cmp    %ebx,%ecx
5d7ad8:	73 0c                	jae    0x5d7ae6
5d7ada:	f7 d9                	neg    %ecx
5d7adc:	13 d3                	adc    %ebx,%edx
5d7ade:	f7 da                	neg    %edx
5d7ae0:	83 cf 40             	or     $0x40,%edi
5d7ae3:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7ae6:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
5d7aea:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7aed:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d7af0:	7d 09                	jge    0x5d7afb
5d7af2:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
5d7af9:	eb 1a                	jmp    0x5d7b15
5d7afb:	ff 76 08             	push   0x8(%esi)
5d7afe:	83 e7 f7             	and    $0xfffffff7,%edi
5d7b01:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7b04:	ff 76 24             	push   0x24(%esi)
5d7b07:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7b0a:	e8 d2 f0 ff ff       	call   0x5d6be1
5d7b0f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7b12:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7b15:	8b c1                	mov    %ecx,%eax
5d7b17:	0b c2                	or     %edx,%eax
5d7b19:	75 04                	jne    0x5d7b1f
5d7b1b:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
5d7b1f:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
5d7b23:	ff 75 08             	push   0x8(%ebp)
5d7b26:	c6 46 38 01          	movb   $0x1,0x38(%esi)
5d7b2a:	75 0b                	jne    0x5d7b37
5d7b2c:	52                   	push   %edx
5d7b2d:	51                   	push   %ecx
5d7b2e:	8b ce                	mov    %esi,%ecx
5d7b30:	e8 ff 07 00 00       	call   0x5d8334
5d7b35:	eb 08                	jmp    0x5d7b3f
5d7b37:	51                   	push   %ecx
5d7b38:	8b ce                	mov    %esi,%ecx
5d7b3a:	e8 ac 04 00 00       	call   0x5d7feb
5d7b3f:	8b 46 1c             	mov    0x1c(%esi),%eax
5d7b42:	c1 e8 07             	shr    $0x7,%eax
5d7b45:	a8 01                	test   $0x1,%al
5d7b47:	74 1d                	je     0x5d7b66
5d7b49:	6a 30                	push   $0x30
5d7b4b:	5a                   	pop    %edx
5d7b4c:	39 5e 34             	cmp    %ebx,0x34(%esi)
5d7b4f:	74 08                	je     0x5d7b59
5d7b51:	8b 46 30             	mov    0x30(%esi),%eax
5d7b54:	66 39 10             	cmp    %dx,(%eax)
5d7b57:	74 0d                	je     0x5d7b66
5d7b59:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
5d7b5d:	8b 4e 30             	mov    0x30(%esi),%ecx
5d7b60:	66 89 11             	mov    %dx,(%ecx)
5d7b63:	ff 46 34             	incl   0x34(%esi)
5d7b66:	b0 01                	mov    $0x1,%al
5d7b68:	5f                   	pop    %edi
5d7b69:	5e                   	pop    %esi
5d7b6a:	5b                   	pop    %ebx
5d7b6b:	c9                   	leave
5d7b6c:	c2 04 00             	ret    $0x4
5d7b6f:	8b ff                	mov    %edi,%edi
5d7b71:	55                   	push   %ebp
5d7b72:	8b ec                	mov    %esp,%ebp
5d7b74:	83 ec 0c             	sub    $0xc,%esp
5d7b77:	53                   	push   %ebx
5d7b78:	56                   	push   %esi
5d7b79:	8b f1                	mov    %ecx,%esi
5d7b7b:	57                   	push   %edi
5d7b7c:	ff 76 28             	push   0x28(%esi)
5d7b7f:	e8 ee 23 00 00       	call   0x5d9f72
5d7b84:	59                   	pop    %ecx
5d7b85:	8b c8                	mov    %eax,%ecx
5d7b87:	89 45 f4             	mov    %eax,-0xc(%ebp)
5d7b8a:	6a 00                	push   $0x0
5d7b8c:	5b                   	pop    %ebx
5d7b8d:	83 e9 01             	sub    $0x1,%ecx
5d7b90:	0f 84 99 00 00 00    	je     0x5d7c2f
5d7b96:	83 e9 01             	sub    $0x1,%ecx
5d7b99:	74 75                	je     0x5d7c10
5d7b9b:	49                   	dec    %ecx
5d7b9c:	83 e9 01             	sub    $0x1,%ecx
5d7b9f:	74 46                	je     0x5d7be7
5d7ba1:	83 e9 04             	sub    $0x4,%ecx
5d7ba4:	74 27                	je     0x5d7bcd
5d7ba6:	8b 46 08             	mov    0x8(%esi),%eax
5d7ba9:	83 c0 18             	add    $0x18,%eax
5d7bac:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5d7bb0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5d7bb6:	ff 76 08             	push   0x8(%esi)
5d7bb9:	53                   	push   %ebx
5d7bba:	53                   	push   %ebx
5d7bbb:	53                   	push   %ebx
5d7bbc:	53                   	push   %ebx
5d7bbd:	53                   	push   %ebx
5d7bbe:	e8 a0 e5 ff ff       	call   0x5d6163
5d7bc3:	83 c4 18             	add    $0x18,%esp
5d7bc6:	32 c0                	xor    %al,%al
5d7bc8:	e9 28 01 00 00       	jmp    0x5d7cf5
5d7bcd:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7bd0:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7bd3:	8b c7                	mov    %edi,%eax
5d7bd5:	c1 e8 04             	shr    $0x4,%eax
5d7bd8:	a8 01                	test   $0x1,%al
5d7bda:	8d 41 08             	lea    0x8(%ecx),%eax
5d7bdd:	89 46 10             	mov    %eax,0x10(%esi)
5d7be0:	8b 01                	mov    (%ecx),%eax
5d7be2:	8b 51 04             	mov    0x4(%ecx),%edx
5d7be5:	eb 66                	jmp    0x5d7c4d
5d7be7:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7bea:	8b c7                	mov    %edi,%eax
5d7bec:	c1 e8 04             	shr    $0x4,%eax
5d7bef:	a8 01                	test   $0x1,%al
5d7bf1:	74 0d                	je     0x5d7c00
5d7bf3:	8b 46 10             	mov    0x10(%esi),%eax
5d7bf6:	8d 48 04             	lea    0x4(%eax),%ecx
5d7bf9:	89 4e 10             	mov    %ecx,0x10(%esi)
5d7bfc:	8b 00                	mov    (%eax),%eax
5d7bfe:	eb 4c                	jmp    0x5d7c4c
5d7c00:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7c03:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5d7c06:	8d 41 04             	lea    0x4(%ecx),%eax
5d7c09:	89 46 10             	mov    %eax,0x10(%esi)
5d7c0c:	8b 01                	mov    (%ecx),%eax
5d7c0e:	eb 40                	jmp    0x5d7c50
5d7c10:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7c13:	8b c7                	mov    %edi,%eax
5d7c15:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7c18:	c1 e8 04             	shr    $0x4,%eax
5d7c1b:	a8 01                	test   $0x1,%al
5d7c1d:	8d 41 04             	lea    0x4(%ecx),%eax
5d7c20:	89 46 10             	mov    %eax,0x10(%esi)
5d7c23:	74 05                	je     0x5d7c2a
5d7c25:	0f bf 01             	movswl (%ecx),%eax
5d7c28:	eb 22                	jmp    0x5d7c4c
5d7c2a:	0f b7 01             	movzwl (%ecx),%eax
5d7c2d:	eb 1d                	jmp    0x5d7c4c
5d7c2f:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7c32:	8b c7                	mov    %edi,%eax
5d7c34:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7c37:	c1 e8 04             	shr    $0x4,%eax
5d7c3a:	a8 01                	test   $0x1,%al
5d7c3c:	8d 41 04             	lea    0x4(%ecx),%eax
5d7c3f:	89 46 10             	mov    %eax,0x10(%esi)
5d7c42:	74 05                	je     0x5d7c49
5d7c44:	0f be 01             	movsbl (%ecx),%eax
5d7c47:	eb 03                	jmp    0x5d7c4c
5d7c49:	0f b6 01             	movzbl (%ecx),%eax
5d7c4c:	99                   	cltd
5d7c4d:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7c50:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7c53:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d7c56:	8b c7                	mov    %edi,%eax
5d7c58:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7c5b:	c1 e8 04             	shr    $0x4,%eax
5d7c5e:	a8 01                	test   $0x1,%al
5d7c60:	74 16                	je     0x5d7c78
5d7c62:	3b d3                	cmp    %ebx,%edx
5d7c64:	7f 12                	jg     0x5d7c78
5d7c66:	7c 04                	jl     0x5d7c6c
5d7c68:	3b cb                	cmp    %ebx,%ecx
5d7c6a:	73 0c                	jae    0x5d7c78
5d7c6c:	f7 d9                	neg    %ecx
5d7c6e:	13 d3                	adc    %ebx,%edx
5d7c70:	f7 da                	neg    %edx
5d7c72:	83 cf 40             	or     $0x40,%edi
5d7c75:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7c78:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
5d7c7c:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7c7f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d7c82:	7d 09                	jge    0x5d7c8d
5d7c84:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
5d7c8b:	eb 1a                	jmp    0x5d7ca7
5d7c8d:	ff 76 08             	push   0x8(%esi)
5d7c90:	83 e7 f7             	and    $0xfffffff7,%edi
5d7c93:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7c96:	ff 76 24             	push   0x24(%esi)
5d7c99:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7c9c:	e8 bf ee ff ff       	call   0x5d6b60
5d7ca1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7ca4:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7ca7:	8b c1                	mov    %ecx,%eax
5d7ca9:	0b c2                	or     %edx,%eax
5d7cab:	75 04                	jne    0x5d7cb1
5d7cad:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
5d7cb1:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
5d7cb5:	ff 75 08             	push   0x8(%ebp)
5d7cb8:	88 5e 38             	mov    %bl,0x38(%esi)
5d7cbb:	75 0b                	jne    0x5d7cc8
5d7cbd:	52                   	push   %edx
5d7cbe:	51                   	push   %ecx
5d7cbf:	8b ce                	mov    %esi,%ecx
5d7cc1:	e8 2b 07 00 00       	call   0x5d83f1
5d7cc6:	eb 08                	jmp    0x5d7cd0
5d7cc8:	51                   	push   %ecx
5d7cc9:	8b ce                	mov    %esi,%ecx
5d7ccb:	e8 b7 03 00 00       	call   0x5d8087
5d7cd0:	8b 46 1c             	mov    0x1c(%esi),%eax
5d7cd3:	c1 e8 07             	shr    $0x7,%eax
5d7cd6:	a8 01                	test   $0x1,%al
5d7cd8:	74 19                	je     0x5d7cf3
5d7cda:	39 5e 34             	cmp    %ebx,0x34(%esi)
5d7cdd:	74 08                	je     0x5d7ce7
5d7cdf:	8b 46 30             	mov    0x30(%esi),%eax
5d7ce2:	80 38 30             	cmpb   $0x30,(%eax)
5d7ce5:	74 0c                	je     0x5d7cf3
5d7ce7:	ff 4e 30             	decl   0x30(%esi)
5d7cea:	8b 4e 30             	mov    0x30(%esi),%ecx
5d7ced:	c6 01 30             	movb   $0x30,(%ecx)
5d7cf0:	ff 46 34             	incl   0x34(%esi)
5d7cf3:	b0 01                	mov    $0x1,%al
5d7cf5:	5f                   	pop    %edi
5d7cf6:	5e                   	pop    %esi
5d7cf7:	5b                   	pop    %ebx
5d7cf8:	c9                   	leave
5d7cf9:	c2 04 00             	ret    $0x4
5d7cfc:	8b ff                	mov    %edi,%edi
5d7cfe:	55                   	push   %ebp
5d7cff:	8b ec                	mov    %esp,%ebp
5d7d01:	83 ec 0c             	sub    $0xc,%esp
5d7d04:	53                   	push   %ebx
5d7d05:	56                   	push   %esi
5d7d06:	8b f1                	mov    %ecx,%esi
5d7d08:	57                   	push   %edi
5d7d09:	ff 76 28             	push   0x28(%esi)
5d7d0c:	e8 61 22 00 00       	call   0x5d9f72
5d7d11:	59                   	pop    %ecx
5d7d12:	8b c8                	mov    %eax,%ecx
5d7d14:	89 45 f4             	mov    %eax,-0xc(%ebp)
5d7d17:	6a 00                	push   $0x0
5d7d19:	5b                   	pop    %ebx
5d7d1a:	83 e9 01             	sub    $0x1,%ecx
5d7d1d:	0f 84 99 00 00 00    	je     0x5d7dbc
5d7d23:	83 e9 01             	sub    $0x1,%ecx
5d7d26:	74 75                	je     0x5d7d9d
5d7d28:	49                   	dec    %ecx
5d7d29:	83 e9 01             	sub    $0x1,%ecx
5d7d2c:	74 46                	je     0x5d7d74
5d7d2e:	83 e9 04             	sub    $0x4,%ecx
5d7d31:	74 27                	je     0x5d7d5a
5d7d33:	8b 46 08             	mov    0x8(%esi),%eax
5d7d36:	83 c0 18             	add    $0x18,%eax
5d7d39:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5d7d3d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5d7d43:	ff 76 08             	push   0x8(%esi)
5d7d46:	53                   	push   %ebx
5d7d47:	53                   	push   %ebx
5d7d48:	53                   	push   %ebx
5d7d49:	53                   	push   %ebx
5d7d4a:	53                   	push   %ebx
5d7d4b:	e8 13 e4 ff ff       	call   0x5d6163
5d7d50:	83 c4 18             	add    $0x18,%esp
5d7d53:	32 c0                	xor    %al,%al
5d7d55:	e9 2d 01 00 00       	jmp    0x5d7e87
5d7d5a:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7d5d:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7d60:	8b c7                	mov    %edi,%eax
5d7d62:	c1 e8 04             	shr    $0x4,%eax
5d7d65:	a8 01                	test   $0x1,%al
5d7d67:	8d 41 08             	lea    0x8(%ecx),%eax