407d31:	a8 01                	test   $0x1,%al
407d33:	74 19                	je     0x407d4e
407d35:	39 5e 34             	cmp    %ebx,0x34(%esi)
407d38:	74 08                	je     0x407d42
407d3a:	8b 46 30             	mov    0x30(%esi),%eax
407d3d:	80 38 30             	cmpb   $0x30,(%eax)
407d40:	74 0c                	je     0x407d4e
407d42:	ff 4e 30             	decl   0x30(%esi)
407d45:	8b 4e 30             	mov    0x30(%esi),%ecx
407d48:	c6 01 30             	movb   $0x30,(%ecx)
407d4b:	ff 46 34             	incl   0x34(%esi)
407d4e:	b0 01                	mov    $0x1,%al
407d50:	5f                   	pop    %edi
407d51:	5e                   	pop    %esi
407d52:	5b                   	pop    %ebx
407d53:	c9                   	leave
407d54:	c2 04 00             	ret    $0x4
407d57:	8b ff                	mov    %edi,%edi
407d59:	55                   	push   %ebp
407d5a:	8b ec                	mov    %esp,%ebp
407d5c:	53                   	push   %ebx
407d5d:	56                   	push   %esi
407d5e:	8b f1                	mov    %ecx,%esi
407d60:	57                   	push   %edi
407d61:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407d64:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407d6a:	85 ff                	test   %edi,%edi
407d6c:	75 02                	jne    0x407d70
407d6e:	8b f9                	mov    %ecx,%edi
407d70:	e8 10 f8 ff ff       	call   0x407585
407d75:	8b 55 08             	mov    0x8(%ebp),%edx
407d78:	8d 48 ff             	lea    -0x1(%eax),%ecx
407d7b:	03 cf                	add    %edi,%ecx
407d7d:	89 4e 30             	mov    %ecx,0x30(%esi)
407d80:	8b c1                	mov    %ecx,%eax
407d82:	8b d9                	mov    %ecx,%ebx
407d84:	8b 7e 24             	mov    0x24(%esi),%edi
407d87:	85 ff                	test   %edi,%edi
407d89:	7f 04                	jg     0x407d8f
407d8b:	85 d2                	test   %edx,%edx
407d8d:	74 1b                	je     0x407daa
407d8f:	8d 47 ff             	lea    -0x1(%edi),%eax
407d92:	89 46 24             	mov    %eax,0x24(%esi)
407d95:	8a c2                	mov    %dl,%al
407d97:	24 07                	and    $0x7,%al
407d99:	c1 ea 03             	shr    $0x3,%edx
407d9c:	04 30                	add    $0x30,%al
407d9e:	88 03                	mov    %al,(%ebx)
407da0:	ff 4e 30             	decl   0x30(%esi)
407da3:	8b 46 30             	mov    0x30(%esi),%eax
407da6:	8b d8                	mov    %eax,%ebx
407da8:	eb da                	jmp    0x407d84
407daa:	2b c8                	sub    %eax,%ecx
407dac:	40                   	inc    %eax
407dad:	89 4e 34             	mov    %ecx,0x34(%esi)
407db0:	5f                   	pop    %edi
407db1:	89 46 30             	mov    %eax,0x30(%esi)
407db4:	5e                   	pop    %esi
407db5:	5b                   	pop    %ebx
407db6:	5d                   	pop    %ebp
407db7:	c2 08 00             	ret    $0x8
407dba:	8b ff                	mov    %edi,%edi
407dbc:	55                   	push   %ebp
407dbd:	8b ec                	mov    %esp,%ebp
407dbf:	51                   	push   %ecx
407dc0:	51                   	push   %ecx
407dc1:	53                   	push   %ebx
407dc2:	56                   	push   %esi
407dc3:	8b f1                	mov    %ecx,%esi
407dc5:	57                   	push   %edi
407dc6:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407dc9:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407dcf:	85 ff                	test   %edi,%edi
407dd1:	75 02                	jne    0x407dd5
407dd3:	8b f9                	mov    %ecx,%edi
407dd5:	e8 ab f7 ff ff       	call   0x407585
407dda:	8b 5d 08             	mov    0x8(%ebp),%ebx
407ddd:	48                   	dec    %eax
407dde:	03 f8                	add    %eax,%edi
407de0:	89 7d f8             	mov    %edi,-0x8(%ebp)
407de3:	8b c7                	mov    %edi,%eax
407de5:	89 7e 30             	mov    %edi,0x30(%esi)
407de8:	89 7d fc             	mov    %edi,-0x4(%ebp)
407deb:	8b 4e 24             	mov    0x24(%esi),%ecx
407dee:	85 c9                	test   %ecx,%ecx
407df0:	7f 04                	jg     0x407df6
407df2:	85 db                	test   %ebx,%ebx
407df4:	74 38                	je     0x407e2e
407df6:	49                   	dec    %ecx
407df7:	33 d2                	xor    %edx,%edx
407df9:	6a 0a                	push   $0xa
407dfb:	89 4e 24             	mov    %ecx,0x24(%esi)
407dfe:	8b c3                	mov    %ebx,%eax
407e00:	59                   	pop    %ecx
407e01:	f7 f1                	div    %ecx
407e03:	8b c3                	mov    %ebx,%eax
407e05:	6a 0a                	push   $0xa
407e07:	5b                   	pop    %ebx
407e08:	8d 4a 30             	lea    0x30(%edx),%ecx
407e0b:	33 d2                	xor    %edx,%edx
407e0d:	f7 f3                	div    %ebx
407e0f:	8b d8                	mov    %eax,%ebx
407e11:	80 f9 39             	cmp    $0x39,%cl
407e14:	7e 0c                	jle    0x407e22
407e16:	8a 45 0c             	mov    0xc(%ebp),%al
407e19:	34 01                	xor    $0x1,%al
407e1b:	c0 e0 05             	shl    $0x5,%al
407e1e:	04 07                	add    $0x7,%al
407e20:	02 c8                	add    %al,%cl
407e22:	88 0f                	mov    %cl,(%edi)
407e24:	ff 4e 30             	decl   0x30(%esi)
407e27:	8b 46 30             	mov    0x30(%esi),%eax
407e2a:	8b f8                	mov    %eax,%edi
407e2c:	eb bd                	jmp    0x407deb
407e2e:	8b 7d f8             	mov    -0x8(%ebp),%edi
407e31:	2b f8                	sub    %eax,%edi
407e33:	40                   	inc    %eax
407e34:	89 7e 34             	mov    %edi,0x34(%esi)
407e37:	5f                   	pop    %edi
407e38:	89 46 30             	mov    %eax,0x30(%esi)
407e3b:	5e                   	pop    %esi
407e3c:	5b                   	pop    %ebx
407e3d:	c9                   	leave
407e3e:	c2 08 00             	ret    $0x8
407e41:	8b ff                	mov    %edi,%edi
407e43:	55                   	push   %ebp
407e44:	8b ec                	mov    %esp,%ebp
407e46:	51                   	push   %ecx
407e47:	53                   	push   %ebx
407e48:	56                   	push   %esi
407e49:	8b f1                	mov    %ecx,%esi
407e4b:	57                   	push   %edi
407e4c:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407e4f:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407e55:	85 ff                	test   %edi,%edi
407e57:	75 02                	jne    0x407e5b
407e59:	8b f9                	mov    %ecx,%edi
407e5b:	e8 25 f7 ff ff       	call   0x407585
407e60:	8a 7d 0c             	mov    0xc(%ebp),%bh
407e63:	8b 55 08             	mov    0x8(%ebp),%edx
407e66:	8d 48 ff             	lea    -0x1(%eax),%ecx
407e69:	03 cf                	add    %edi,%ecx
407e6b:	89 4e 30             	mov    %ecx,0x30(%esi)
407e6e:	8b c1                	mov    %ecx,%eax
407e70:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407e73:	8b 7e 24             	mov    0x24(%esi),%edi
407e76:	85 ff                	test   %edi,%edi
407e78:	7f 04                	jg     0x407e7e
407e7a:	85 d2                	test   %edx,%edx
407e7c:	74 30                	je     0x407eae
407e7e:	8d 47 ff             	lea    -0x1(%edi),%eax
407e81:	89 46 24             	mov    %eax,0x24(%esi)
407e84:	8a c2                	mov    %dl,%al
407e86:	24 0f                	and    $0xf,%al
407e88:	c1 ea 04             	shr    $0x4,%edx
407e8b:	04 30                	add    $0x30,%al
407e8d:	8a d8                	mov    %al,%bl
407e8f:	3c 39                	cmp    $0x39,%al
407e91:	76 0b                	jbe    0x407e9e
407e93:	8a c7                	mov    %bh,%al
407e95:	34 01                	xor    $0x1,%al
407e97:	c0 e0 05             	shl    $0x5,%al
407e9a:	04 07                	add    $0x7,%al
407e9c:	02 c3                	add    %bl,%al
407e9e:	8b 7d fc             	mov    -0x4(%ebp),%edi
407ea1:	88 07                	mov    %al,(%edi)
407ea3:	ff 4e 30             	decl   0x30(%esi)
407ea6:	8b 46 30             	mov    0x30(%esi),%eax
407ea9:	89 45 fc             	mov    %eax,-0x4(%ebp)
407eac:	eb c5                	jmp    0x407e73
407eae:	2b c8                	sub    %eax,%ecx
407eb0:	40                   	inc    %eax
407eb1:	89 4e 34             	mov    %ecx,0x34(%esi)
407eb4:	5f                   	pop    %edi
407eb5:	89 46 30             	mov    %eax,0x30(%esi)
407eb8:	5e                   	pop    %esi
407eb9:	5b                   	pop    %ebx
407eba:	c9                   	leave
407ebb:	c2 08 00             	ret    $0x8
407ebe:	8b ff                	mov    %edi,%edi
407ec0:	55                   	push   %ebp
407ec1:	8b ec                	mov    %esp,%ebp
407ec3:	51                   	push   %ecx
407ec4:	51                   	push   %ecx
407ec5:	53                   	push   %ebx
407ec6:	56                   	push   %esi
407ec7:	8b f1                	mov    %ecx,%esi
407ec9:	57                   	push   %edi
407eca:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407ecd:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407ed3:	85 ff                	test   %edi,%edi
407ed5:	75 02                	jne    0x407ed9
407ed7:	8b f9                	mov    %ecx,%edi
407ed9:	e8 a7 f6 ff ff       	call   0x407585
407ede:	8b 5d 08             	mov    0x8(%ebp),%ebx
407ee1:	8d 48 ff             	lea    -0x1(%eax),%ecx
407ee4:	03 cf                	add    %edi,%ecx
407ee6:	8b 7d 0c             	mov    0xc(%ebp),%edi
407ee9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407eec:	8b d1                	mov    %ecx,%edx
407eee:	89 4e 30             	mov    %ecx,0x30(%esi)
407ef1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407ef4:	8b 46 24             	mov    0x24(%esi),%eax
407ef7:	85 c0                	test   %eax,%eax
407ef9:	7f 09                	jg     0x407f04
407efb:	8b c3                	mov    %ebx,%eax
407efd:	0b c7                	or     %edi,%eax
407eff:	74 20                	je     0x407f21
407f01:	8b 46 24             	mov    0x24(%esi),%eax
407f04:	48                   	dec    %eax
407f05:	89 46 24             	mov    %eax,0x24(%esi)
407f08:	8a c3                	mov    %bl,%al
407f0a:	24 07                	and    $0x7,%al
407f0c:	0f ac fb 03          	shrd   $0x3,%edi,%ebx
407f10:	04 30                	add    $0x30,%al
407f12:	88 01                	mov    %al,(%ecx)
407f14:	c1 ef 03             	shr    $0x3,%edi
407f17:	ff 4e 30             	decl   0x30(%esi)
407f1a:	8b 56 30             	mov    0x30(%esi),%edx
407f1d:	8b ca                	mov    %edx,%ecx
407f1f:	eb d3                	jmp    0x407ef4
407f21:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407f24:	8d 42 01             	lea    0x1(%edx),%eax
407f27:	2b ca                	sub    %edx,%ecx
407f29:	89 4e 34             	mov    %ecx,0x34(%esi)
407f2c:	5f                   	pop    %edi
407f2d:	89 46 30             	mov    %eax,0x30(%esi)
407f30:	5e                   	pop    %esi
407f31:	5b                   	pop    %ebx
407f32:	c9                   	leave
407f33:	c2 0c 00             	ret    $0xc
407f36:	8b ff                	mov    %edi,%edi
407f38:	55                   	push   %ebp
407f39:	8b ec                	mov    %esp,%ebp
407f3b:	83 ec 0c             	sub    $0xc,%esp
407f3e:	53                   	push   %ebx
407f3f:	56                   	push   %esi
407f40:	8b f1                	mov    %ecx,%esi
407f42:	57                   	push   %edi
407f43:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407f46:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407f4c:	85 ff                	test   %edi,%edi
407f4e:	75 02                	jne    0x407f52
407f50:	8b f9                	mov    %ecx,%edi
407f52:	e8 2e f6 ff ff       	call   0x407585
407f57:	48                   	dec    %eax
407f58:	03 f8                	add    %eax,%edi
407f5a:	8b 45 08             	mov    0x8(%ebp),%eax
407f5d:	89 7d f4             	mov    %edi,-0xc(%ebp)
407f60:	8b cf                	mov    %edi,%ecx
407f62:	89 7e 30             	mov    %edi,0x30(%esi)
407f65:	89 7d f8             	mov    %edi,-0x8(%ebp)
407f68:	8b 7d 0c             	mov    0xc(%ebp),%edi
407f6b:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f6e:	8b 56 24             	mov    0x24(%esi),%edx
407f71:	85 d2                	test   %edx,%edx
407f73:	7f 04                	jg     0x407f79
407f75:	0b c7                	or     %edi,%eax
407f77:	74 4f                	je     0x407fc8
407f79:	6a 00                	push   $0x0
407f7b:	6a 0a                	push   $0xa
407f7d:	57                   	push   %edi
407f7e:	ff 75 fc             	push   -0x4(%ebp)
407f81:	8d 42 ff             	lea    -0x1(%edx),%eax
407f84:	89 46 24             	mov    %eax,0x24(%esi)
407f87:	e8 e4 fa 00 00       	call   0x417a70
407f8c:	6a 00                	push   $0x0
407f8e:	6a 0a                	push   $0xa
407f90:	8a d8                	mov    %al,%bl
407f92:	57                   	push   %edi
407f93:	ff 75 fc             	push   -0x4(%ebp)
407f96:	80 c3 30             	add    $0x30,%bl
407f99:	8a fb                	mov    %bl,%bh
407f9b:	e8 60 fa 00 00       	call   0x417a00
407fa0:	89 45 fc             	mov    %eax,-0x4(%ebp)
407fa3:	8b fa                	mov    %edx,%edi
407fa5:	80 fb 39             	cmp    $0x39,%bl
407fa8:	7e 0e                	jle    0x407fb8
407faa:	8a 5d 10             	mov    0x10(%ebp),%bl
407fad:	80 f3 01             	xor    $0x1,%bl
407fb0:	c0 e3 05             	shl    $0x5,%bl
407fb3:	80 c3 07             	add    $0x7,%bl
407fb6:	02 df                	add    %bh,%bl
407fb8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407fbb:	88 19                	mov    %bl,(%ecx)
407fbd:	ff 4e 30             	decl   0x30(%esi)
407fc0:	8b 4e 30             	mov    0x30(%esi),%ecx
407fc3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407fc6:	eb a6                	jmp    0x407f6e
407fc8:	8b 7d f4             	mov    -0xc(%ebp),%edi
407fcb:	8d 41 01             	lea    0x1(%ecx),%eax
407fce:	2b f9                	sub    %ecx,%edi
407fd0:	89 7e 34             	mov    %edi,0x34(%esi)
407fd3:	5f                   	pop    %edi
407fd4:	89 46 30             	mov    %eax,0x30(%esi)
407fd7:	5e                   	pop    %esi
407fd8:	5b                   	pop    %ebx
407fd9:	c9                   	leave
407fda:	c2 0c 00             	ret    $0xc
407fdd:	8b ff                	mov    %edi,%edi
407fdf:	55                   	push   %ebp
407fe0:	8b ec                	mov    %esp,%ebp
407fe2:	51                   	push   %ecx
407fe3:	51                   	push   %ecx
407fe4:	53                   	push   %ebx
407fe5:	56                   	push   %esi
407fe6:	8b f1                	mov    %ecx,%esi
407fe8:	57                   	push   %edi
407fe9:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407fec:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
407ff2:	85 ff                	test   %edi,%edi
407ff4:	75 02                	jne    0x407ff8
407ff6:	8b f9                	mov    %ecx,%edi
407ff8:	e8 88 f5 ff ff       	call   0x407585
407ffd:	8b 5d 08             	mov    0x8(%ebp),%ebx
408000:	8d 48 ff             	lea    -0x1(%eax),%ecx
408003:	03 cf                	add    %edi,%ecx
408005:	8b 7d 0c             	mov    0xc(%ebp),%edi
408008:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40800b:	8b d1                	mov    %ecx,%edx
40800d:	89 4e 30             	mov    %ecx,0x30(%esi)
408010:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408013:	8b 46 24             	mov    0x24(%esi),%eax
408016:	85 c0                	test   %eax,%eax
408018:	7f 09                	jg     0x408023
40801a:	8b c3                	mov    %ebx,%eax
40801c:	0b c7                	or     %edi,%eax
40801e:	74 32                	je     0x408052
408020:	8b 46 24             	mov    0x24(%esi),%eax
408023:	48                   	dec    %eax
408024:	89 46 24             	mov    %eax,0x24(%esi)
408027:	8a c3                	mov    %bl,%al
408029:	24 0f                	and    $0xf,%al
40802b:	0f ac fb 04          	shrd   $0x4,%edi,%ebx
40802f:	04 30                	add    $0x30,%al
408031:	c1 ef 04             	shr    $0x4,%edi
408034:	8a d0                	mov    %al,%dl
408036:	3c 39                	cmp    $0x39,%al
408038:	76 0c                	jbe    0x408046
40803a:	8a 45 10             	mov    0x10(%ebp),%al
40803d:	34 01                	xor    $0x1,%al
40803f:	c0 e0 05             	shl    $0x5,%al
408042:	04 07                	add    $0x7,%al
408044:	02 c2                	add    %dl,%al
408046:	88 01                	mov    %al,(%ecx)
408048:	ff 4e 30             	decl   0x30(%esi)
40804b:	8b 56 30             	mov    0x30(%esi),%edx
40804e:	8b ca                	mov    %edx,%ecx
408050:	eb c1                	jmp    0x408013
408052:	8b 4d f8             	mov    -0x8(%ebp),%ecx