5d7d6a:	89 46 10             	mov    %eax,0x10(%esi)
5d7d6d:	8b 01                	mov    (%ecx),%eax
5d7d6f:	8b 51 04             	mov    0x4(%ecx),%edx
5d7d72:	eb 66                	jmp    0x5d7dda
5d7d74:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7d77:	8b c7                	mov    %edi,%eax
5d7d79:	c1 e8 04             	shr    $0x4,%eax
5d7d7c:	a8 01                	test   $0x1,%al
5d7d7e:	74 0d                	je     0x5d7d8d
5d7d80:	8b 46 10             	mov    0x10(%esi),%eax
5d7d83:	8d 48 04             	lea    0x4(%eax),%ecx
5d7d86:	89 4e 10             	mov    %ecx,0x10(%esi)
5d7d89:	8b 00                	mov    (%eax),%eax
5d7d8b:	eb 4c                	jmp    0x5d7dd9
5d7d8d:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7d90:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5d7d93:	8d 41 04             	lea    0x4(%ecx),%eax
5d7d96:	89 46 10             	mov    %eax,0x10(%esi)
5d7d99:	8b 01                	mov    (%ecx),%eax
5d7d9b:	eb 40                	jmp    0x5d7ddd
5d7d9d:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7da0:	8b c7                	mov    %edi,%eax
5d7da2:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7da5:	c1 e8 04             	shr    $0x4,%eax
5d7da8:	a8 01                	test   $0x1,%al
5d7daa:	8d 41 04             	lea    0x4(%ecx),%eax
5d7dad:	89 46 10             	mov    %eax,0x10(%esi)
5d7db0:	74 05                	je     0x5d7db7
5d7db2:	0f bf 01             	movswl (%ecx),%eax
5d7db5:	eb 22                	jmp    0x5d7dd9
5d7db7:	0f b7 01             	movzwl (%ecx),%eax
5d7dba:	eb 1d                	jmp    0x5d7dd9
5d7dbc:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7dbf:	8b c7                	mov    %edi,%eax
5d7dc1:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7dc4:	c1 e8 04             	shr    $0x4,%eax
5d7dc7:	a8 01                	test   $0x1,%al
5d7dc9:	8d 41 04             	lea    0x4(%ecx),%eax
5d7dcc:	89 46 10             	mov    %eax,0x10(%esi)
5d7dcf:	74 05                	je     0x5d7dd6
5d7dd1:	0f be 01             	movsbl (%ecx),%eax
5d7dd4:	eb 03                	jmp    0x5d7dd9
5d7dd6:	0f b6 01             	movzbl (%ecx),%eax
5d7dd9:	99                   	cltd
5d7dda:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7ddd:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7de0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d7de3:	8b c7                	mov    %edi,%eax
5d7de5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7de8:	c1 e8 04             	shr    $0x4,%eax
5d7deb:	a8 01                	test   $0x1,%al
5d7ded:	74 16                	je     0x5d7e05
5d7def:	3b d3                	cmp    %ebx,%edx
5d7df1:	7f 12                	jg     0x5d7e05
5d7df3:	7c 04                	jl     0x5d7df9
5d7df5:	3b cb                	cmp    %ebx,%ecx
5d7df7:	73 0c                	jae    0x5d7e05
5d7df9:	f7 d9                	neg    %ecx
5d7dfb:	13 d3                	adc    %ebx,%edx
5d7dfd:	f7 da                	neg    %edx
5d7dff:	83 cf 40             	or     $0x40,%edi
5d7e02:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7e05:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
5d7e09:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7e0c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d7e0f:	7d 09                	jge    0x5d7e1a
5d7e11:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
5d7e18:	eb 1a                	jmp    0x5d7e34
5d7e1a:	ff 76 08             	push   0x8(%esi)
5d7e1d:	83 e7 f7             	and    $0xfffffff7,%edi
5d7e20:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7e23:	ff 76 24             	push   0x24(%esi)
5d7e26:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d7e29:	e8 b3 ed ff ff       	call   0x5d6be1
5d7e2e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7e31:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7e34:	8b c1                	mov    %ecx,%eax
5d7e36:	0b c2                	or     %edx,%eax
5d7e38:	75 04                	jne    0x5d7e3e
5d7e3a:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
5d7e3e:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
5d7e42:	ff 75 08             	push   0x8(%ebp)
5d7e45:	c6 46 38 01          	movb   $0x1,0x38(%esi)
5d7e49:	75 0b                	jne    0x5d7e56
5d7e4b:	52                   	push   %edx
5d7e4c:	51                   	push   %ecx
5d7e4d:	8b ce                	mov    %esi,%ecx
5d7e4f:	e8 27 06 00 00       	call   0x5d847b
5d7e54:	eb 08                	jmp    0x5d7e5e
5d7e56:	51                   	push   %ecx
5d7e57:	8b ce                	mov    %esi,%ecx
5d7e59:	e8 a6 02 00 00       	call   0x5d8104
5d7e5e:	8b 46 1c             	mov    0x1c(%esi),%eax
5d7e61:	c1 e8 07             	shr    $0x7,%eax
5d7e64:	a8 01                	test   $0x1,%al
5d7e66:	74 1d                	je     0x5d7e85
5d7e68:	6a 30                	push   $0x30
5d7e6a:	5a                   	pop    %edx
5d7e6b:	39 5e 34             	cmp    %ebx,0x34(%esi)
5d7e6e:	74 08                	je     0x5d7e78
5d7e70:	8b 46 30             	mov    0x30(%esi),%eax
5d7e73:	66 39 10             	cmp    %dx,(%eax)
5d7e76:	74 0d                	je     0x5d7e85
5d7e78:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
5d7e7c:	8b 4e 30             	mov    0x30(%esi),%ecx
5d7e7f:	66 89 11             	mov    %dx,(%ecx)
5d7e82:	ff 46 34             	incl   0x34(%esi)
5d7e85:	b0 01                	mov    $0x1,%al
5d7e87:	5f                   	pop    %edi
5d7e88:	5e                   	pop    %esi
5d7e89:	5b                   	pop    %ebx
5d7e8a:	c9                   	leave
5d7e8b:	c2 04 00             	ret    $0x4
5d7e8e:	8b ff                	mov    %edi,%edi
5d7e90:	55                   	push   %ebp
5d7e91:	8b ec                	mov    %esp,%ebp
5d7e93:	53                   	push   %ebx
5d7e94:	56                   	push   %esi
5d7e95:	8b f1                	mov    %ecx,%esi
5d7e97:	57                   	push   %edi
5d7e98:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7e9b:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5d7ea1:	85 ff                	test   %edi,%edi
5d7ea3:	75 02                	jne    0x5d7ea7
5d7ea5:	8b f9                	mov    %ecx,%edi
5d7ea7:	e8 83 ec ff ff       	call   0x5d6b2f
5d7eac:	8b 55 08             	mov    0x8(%ebp),%edx
5d7eaf:	8d 48 ff             	lea    -0x1(%eax),%ecx
5d7eb2:	03 cf                	add    %edi,%ecx
5d7eb4:	89 4e 30             	mov    %ecx,0x30(%esi)
5d7eb7:	8b c1                	mov    %ecx,%eax
5d7eb9:	8b d9                	mov    %ecx,%ebx
5d7ebb:	8b 7e 24             	mov    0x24(%esi),%edi
5d7ebe:	85 ff                	test   %edi,%edi
5d7ec0:	7f 04                	jg     0x5d7ec6
5d7ec2:	85 d2                	test   %edx,%edx
5d7ec4:	74 1b                	je     0x5d7ee1
5d7ec6:	8d 47 ff             	lea    -0x1(%edi),%eax
5d7ec9:	89 46 24             	mov    %eax,0x24(%esi)
5d7ecc:	8a c2                	mov    %dl,%al
5d7ece:	24 07                	and    $0x7,%al
5d7ed0:	c1 ea 03             	shr    $0x3,%edx
5d7ed3:	04 30                	add    $0x30,%al
5d7ed5:	88 03                	mov    %al,(%ebx)
5d7ed7:	ff 4e 30             	decl   0x30(%esi)
5d7eda:	8b 46 30             	mov    0x30(%esi),%eax
5d7edd:	8b d8                	mov    %eax,%ebx
5d7edf:	eb da                	jmp    0x5d7ebb
5d7ee1:	2b c8                	sub    %eax,%ecx
5d7ee3:	40                   	inc    %eax
5d7ee4:	89 4e 34             	mov    %ecx,0x34(%esi)
5d7ee7:	5f                   	pop    %edi
5d7ee8:	89 46 30             	mov    %eax,0x30(%esi)
5d7eeb:	5e                   	pop    %esi
5d7eec:	5b                   	pop    %ebx
5d7eed:	5d                   	pop    %ebp
5d7eee:	c2 08 00             	ret    $0x8
5d7ef1:	8b ff                	mov    %edi,%edi
5d7ef3:	55                   	push   %ebp
5d7ef4:	8b ec                	mov    %esp,%ebp
5d7ef6:	51                   	push   %ecx
5d7ef7:	51                   	push   %ecx
5d7ef8:	53                   	push   %ebx
5d7ef9:	56                   	push   %esi
5d7efa:	8b f1                	mov    %ecx,%esi
5d7efc:	57                   	push   %edi
5d7efd:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7f00:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5d7f06:	85 ff                	test   %edi,%edi
5d7f08:	75 02                	jne    0x5d7f0c
5d7f0a:	8b f9                	mov    %ecx,%edi
5d7f0c:	e8 36 ec ff ff       	call   0x5d6b47
5d7f11:	8b 55 08             	mov    0x8(%ebp),%edx
5d7f14:	48                   	dec    %eax
5d7f15:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
5d7f18:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5d7f1b:	8b c1                	mov    %ecx,%eax
5d7f1d:	89 4e 30             	mov    %ecx,0x30(%esi)
5d7f20:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d7f23:	8b 5e 24             	mov    0x24(%esi),%ebx
5d7f26:	8b fa                	mov    %edx,%edi
5d7f28:	85 db                	test   %ebx,%ebx
5d7f2a:	7f 04                	jg     0x5d7f30
5d7f2c:	85 d2                	test   %edx,%edx
5d7f2e:	74 1d                	je     0x5d7f4d
5d7f30:	83 e7 07             	and    $0x7,%edi
5d7f33:	c1 ea 03             	shr    $0x3,%edx
5d7f36:	8d 43 ff             	lea    -0x1(%ebx),%eax
5d7f39:	83 c7 30             	add    $0x30,%edi
5d7f3c:	89 46 24             	mov    %eax,0x24(%esi)
5d7f3f:	66 89 39             	mov    %di,(%ecx)
5d7f42:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
5d7f46:	8b 46 30             	mov    0x30(%esi),%eax
5d7f49:	8b c8                	mov    %eax,%ecx
5d7f4b:	eb d6                	jmp    0x5d7f23
5d7f4d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5d7f50:	2b c8                	sub    %eax,%ecx
5d7f52:	d1 f9                	sar    $1,%ecx
5d7f54:	83 c0 02             	add    $0x2,%eax
5d7f57:	89 4e 34             	mov    %ecx,0x34(%esi)
5d7f5a:	5f                   	pop    %edi
5d7f5b:	89 46 30             	mov    %eax,0x30(%esi)
5d7f5e:	5e                   	pop    %esi
5d7f5f:	5b                   	pop    %ebx
5d7f60:	c9                   	leave
5d7f61:	c2 08 00             	ret    $0x8
5d7f64:	8b ff                	mov    %edi,%edi
5d7f66:	55                   	push   %ebp
5d7f67:	8b ec                	mov    %esp,%ebp
5d7f69:	51                   	push   %ecx
5d7f6a:	51                   	push   %ecx
5d7f6b:	53                   	push   %ebx
5d7f6c:	56                   	push   %esi
5d7f6d:	8b f1                	mov    %ecx,%esi
5d7f6f:	57                   	push   %edi
5d7f70:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7f73:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5d7f79:	85 ff                	test   %edi,%edi
5d7f7b:	75 02                	jne    0x5d7f7f
5d7f7d:	8b f9                	mov    %ecx,%edi
5d7f7f:	e8 ab eb ff ff       	call   0x5d6b2f
5d7f84:	8b 5d 08             	mov    0x8(%ebp),%ebx
5d7f87:	48                   	dec    %eax
5d7f88:	03 f8                	add    %eax,%edi
5d7f8a:	89 7d f8             	mov    %edi,-0x8(%ebp)
5d7f8d:	8b c7                	mov    %edi,%eax
5d7f8f:	89 7e 30             	mov    %edi,0x30(%esi)
5d7f92:	89 7d fc             	mov    %edi,-0x4(%ebp)
5d7f95:	8b 4e 24             	mov    0x24(%esi),%ecx
5d7f98:	85 c9                	test   %ecx,%ecx
5d7f9a:	7f 04                	jg     0x5d7fa0
5d7f9c:	85 db                	test   %ebx,%ebx
5d7f9e:	74 38                	je     0x5d7fd8
5d7fa0:	49                   	dec    %ecx
5d7fa1:	33 d2                	xor    %edx,%edx
5d7fa3:	6a 0a                	push   $0xa
5d7fa5:	89 4e 24             	mov    %ecx,0x24(%esi)
5d7fa8:	8b c3                	mov    %ebx,%eax
5d7faa:	59                   	pop    %ecx
5d7fab:	f7 f1                	div    %ecx
5d7fad:	8b c3                	mov    %ebx,%eax
5d7faf:	6a 0a                	push   $0xa
5d7fb1:	5b                   	pop    %ebx
5d7fb2:	8d 4a 30             	lea    0x30(%edx),%ecx
5d7fb5:	33 d2                	xor    %edx,%edx
5d7fb7:	f7 f3                	div    %ebx
5d7fb9:	8b d8                	mov    %eax,%ebx
5d7fbb:	80 f9 39             	cmp    $0x39,%cl
5d7fbe:	7e 0c                	jle    0x5d7fcc
5d7fc0:	8a 45 0c             	mov    0xc(%ebp),%al
5d7fc3:	34 01                	xor    $0x1,%al
5d7fc5:	c0 e0 05             	shl    $0x5,%al
5d7fc8:	04 07                	add    $0x7,%al
5d7fca:	02 c8                	add    %al,%cl
5d7fcc:	88 0f                	mov    %cl,(%edi)
5d7fce:	ff 4e 30             	decl   0x30(%esi)
5d7fd1:	8b 46 30             	mov    0x30(%esi),%eax
5d7fd4:	8b f8                	mov    %eax,%edi
5d7fd6:	eb bd                	jmp    0x5d7f95
5d7fd8:	8b 7d f8             	mov    -0x8(%ebp),%edi
5d7fdb:	2b f8                	sub    %eax,%edi
5d7fdd:	40                   	inc    %eax
5d7fde:	89 7e 34             	mov    %edi,0x34(%esi)
5d7fe1:	5f                   	pop    %edi
5d7fe2:	89 46 30             	mov    %eax,0x30(%esi)
5d7fe5:	5e                   	pop    %esi
5d7fe6:	5b                   	pop    %ebx
5d7fe7:	c9                   	leave
5d7fe8:	c2 08 00             	ret    $0x8
5d7feb:	8b ff                	mov    %edi,%edi
5d7fed:	55                   	push   %ebp
5d7fee:	8b ec                	mov    %esp,%ebp
5d7ff0:	51                   	push   %ecx
5d7ff1:	51                   	push   %ecx
5d7ff2:	53                   	push   %ebx
5d7ff3:	56                   	push   %esi
5d7ff4:	8b f1                	mov    %ecx,%esi
5d7ff6:	57                   	push   %edi
5d7ff7:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7ffa:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5d8000:	85 ff                	test   %edi,%edi
5d8002:	75 02                	jne    0x5d8006
5d8004:	8b f9                	mov    %ecx,%edi
5d8006:	e8 3c eb ff ff       	call   0x5d6b47
5d800b:	8b 5d 08             	mov    0x8(%ebp),%ebx
5d800e:	8d 3c 47             	lea    (%edi,%eax,2),%edi
5d8011:	83 c7 fe             	add    $0xfffffffe,%edi
5d8014:	89 7d f8             	mov    %edi,-0x8(%ebp)
5d8017:	8b c7                	mov    %edi,%eax
5d8019:	89 7e 30             	mov    %edi,0x30(%esi)
5d801c:	89 7d fc             	mov    %edi,-0x4(%ebp)
5d801f:	8b 4e 24             	mov    0x24(%esi),%ecx
5d8022:	85 c9                	test   %ecx,%ecx
5d8024:	7f 04                	jg     0x5d802a
5d8026:	85 db                	test   %ebx,%ebx
5d8028:	74 46                	je     0x5d8070
5d802a:	49                   	dec    %ecx
5d802b:	33 d2                	xor    %edx,%edx
5d802d:	6a 0a                	push   $0xa
5d802f:	89 4e 24             	mov    %ecx,0x24(%esi)
5d8032:	8b c3                	mov    %ebx,%eax
5d8034:	59                   	pop    %ecx
5d8035:	f7 f1                	div    %ecx
5d8037:	8b c3                	mov    %ebx,%eax
5d8039:	83 c2 30             	add    $0x30,%edx
5d803c:	0f b7 ca             	movzwl %dx,%ecx
5d803f:	33 d2                	xor    %edx,%edx
5d8041:	6a 0a                	push   $0xa
5d8043:	5b                   	pop    %ebx
5d8044:	f7 f3                	div    %ebx
5d8046:	8b d8                	mov    %eax,%ebx
5d8048:	83 f9 39             	cmp    $0x39,%ecx
5d804b:	76 11                	jbe    0x5d805e
5d804d:	8a 45 0c             	mov    0xc(%ebp),%al
5d8050:	34 01                	xor    $0x1,%al
5d8052:	c0 e0 05             	shl    $0x5,%al
5d8055:	04 07                	add    $0x7,%al
5d8057:	02 c1                	add    %cl,%al
5d8059:	66 98                	cbtw
5d805b:	0f b7 c8             	movzwl %ax,%ecx
5d805e:	66 0f be c1          	movsbw %cl,%ax
5d8062:	66 89 07             	mov    %ax,(%edi)
5d8065:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
5d8069:	8b 46 30             	mov    0x30(%esi),%eax
5d806c:	8b f8                	mov    %eax,%edi
5d806e:	eb af                	jmp    0x5d801f
5d8070:	8b 7d f8             	mov    -0x8(%ebp),%edi
5d8073:	2b f8                	sub    %eax,%edi
5d8075:	d1 ff                	sar    $1,%edi
5d8077:	83 c0 02             	add    $0x2,%eax
5d807a:	89 7e 34             	mov    %edi,0x34(%esi)
5d807d:	5f                   	pop    %edi
5d807e:	89 46 30             	mov    %eax,0x30(%esi)
5d8081:	5e                   	pop    %esi
5d8082:	5b                   	pop    %ebx
5d8083:	c9                   	leave
5d8084:	c2 08 00             	ret    $0x8
5d8087:	8b ff                	mov    %edi,%edi
5d8089:	55                   	push   %ebp
5d808a:	8b ec                	mov    %esp,%ebp
5d808c:	51                   	push   %ecx
5d808d:	53                   	push   %ebx
5d808e:	56                   	push   %esi
5d808f:	8b f1                	mov    %ecx,%esi
5d8091:	57                   	push   %edi
5d8092:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d8095:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5d809b:	85 ff                	test   %edi,%edi
5d809d:	75 02                	jne    0x5d80a1
5d809f:	8b f9                	mov    %ecx,%edi