5f1c53:	8b ec                	mov    %esp,%ebp
5f1c55:	83 ec 10             	sub    $0x10,%esp
5f1c58:	ff 75 08             	push   0x8(%ebp)
5f1c5b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
5f1c5e:	e8 72 90 fe ff       	call   0x5dacd5
5f1c63:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
5f1c67:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f1c6a:	8a 4d 14             	mov    0x14(%ebp),%cl
5f1c6d:	84 4c 10 19          	test   %cl,0x19(%eax,%edx,1)
5f1c71:	75 18                	jne    0x5f1c8b
5f1c73:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f1c76:	85 c9                	test   %ecx,%ecx
5f1c78:	74 0d                	je     0x5f1c87
5f1c7a:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f1c7d:	8b 00                	mov    (%eax),%eax
5f1c7f:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
5f1c83:	85 c1                	test   %eax,%ecx
5f1c85:	75 04                	jne    0x5f1c8b
5f1c87:	33 c0                	xor    %eax,%eax
5f1c89:	eb 03                	jmp    0x5f1c8e
5f1c8b:	33 c0                	xor    %eax,%eax
5f1c8d:	40                   	inc    %eax
5f1c8e:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
5f1c92:	74 0a                	je     0x5f1c9e
5f1c94:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f1c97:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
5f1c9e:	c9                   	leave
5f1c9f:	c3                   	ret
5f1ca0:	8b ff                	mov    %edi,%edi
5f1ca2:	55                   	push   %ebp
5f1ca3:	8b ec                	mov    %esp,%ebp
5f1ca5:	6a 04                	push   $0x4
5f1ca7:	6a 00                	push   $0x0
5f1ca9:	ff 75 08             	push   0x8(%ebp)
5f1cac:	6a 00                	push   $0x0
5f1cae:	e8 9d ff ff ff       	call   0x5f1c50
5f1cb3:	83 c4 10             	add    $0x10,%esp
5f1cb6:	5d                   	pop    %ebp
5f1cb7:	c3                   	ret
5f1cb8:	8b ff                	mov    %edi,%edi
5f1cba:	55                   	push   %ebp
5f1cbb:	8b ec                	mov    %esp,%ebp
5f1cbd:	8b 55 08             	mov    0x8(%ebp),%edx
5f1cc0:	57                   	push   %edi
5f1cc1:	33 ff                	xor    %edi,%edi
5f1cc3:	66 39 3a             	cmp    %di,(%edx)
5f1cc6:	74 21                	je     0x5f1ce9
5f1cc8:	56                   	push   %esi
5f1cc9:	8b ca                	mov    %edx,%ecx
5f1ccb:	8d 71 02             	lea    0x2(%ecx),%esi
5f1cce:	66 8b 01             	mov    (%ecx),%ax
5f1cd1:	83 c1 02             	add    $0x2,%ecx
5f1cd4:	66 3b c7             	cmp    %di,%ax
5f1cd7:	75 f5                	jne    0x5f1cce
5f1cd9:	2b ce                	sub    %esi,%ecx
5f1cdb:	d1 f9                	sar    $1,%ecx
5f1cdd:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
5f1ce0:	83 c2 02             	add    $0x2,%edx
5f1ce3:	66 39 3a             	cmp    %di,(%edx)
5f1ce6:	75 e1                	jne    0x5f1cc9
5f1ce8:	5e                   	pop    %esi
5f1ce9:	8d 42 02             	lea    0x2(%edx),%eax
5f1cec:	5f                   	pop    %edi
5f1ced:	5d                   	pop    %ebp
5f1cee:	c3                   	ret
5f1cef:	8b ff                	mov    %edi,%edi
5f1cf1:	55                   	push   %ebp
5f1cf2:	8b ec                	mov    %esp,%ebp
5f1cf4:	51                   	push   %ecx
5f1cf5:	51                   	push   %ecx
5f1cf6:	56                   	push   %esi
5f1cf7:	ff 15 ac 20 60 00    	call   *0x6020ac
5f1cfd:	8b f0                	mov    %eax,%esi
5f1cff:	85 f6                	test   %esi,%esi
5f1d01:	0f 84 85 00 00 00    	je     0x5f1d8c
5f1d07:	53                   	push   %ebx
5f1d08:	56                   	push   %esi
5f1d09:	e8 aa ff ff ff       	call   0x5f1cb8
5f1d0e:	33 db                	xor    %ebx,%ebx
5f1d10:	2b c6                	sub    %esi,%eax
5f1d12:	53                   	push   %ebx
5f1d13:	53                   	push   %ebx
5f1d14:	53                   	push   %ebx
5f1d15:	53                   	push   %ebx
5f1d16:	d1 f8                	sar    $1,%eax
5f1d18:	50                   	push   %eax
5f1d19:	56                   	push   %esi
5f1d1a:	53                   	push   %ebx
5f1d1b:	53                   	push   %ebx
5f1d1c:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f1d1f:	e8 19 cd ff ff       	call   0x5eea3d
5f1d24:	83 c4 24             	add    $0x24,%esp
5f1d27:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f1d2a:	85 c0                	test   %eax,%eax
5f1d2c:	75 0b                	jne    0x5f1d39
5f1d2e:	56                   	push   %esi
5f1d2f:	ff 15 a8 20 60 00    	call   *0x6020a8
5f1d35:	33 c0                	xor    %eax,%eax
5f1d37:	eb 52                	jmp    0x5f1d8b
5f1d39:	57                   	push   %edi
5f1d3a:	50                   	push   %eax
5f1d3b:	e8 1c 95 ff ff       	call   0x5eb25c
5f1d40:	8b f8                	mov    %eax,%edi
5f1d42:	59                   	pop    %ecx
5f1d43:	53                   	push   %ebx
5f1d44:	85 ff                	test   %edi,%edi
5f1d46:	75 11                	jne    0x5f1d59
5f1d48:	e8 d5 94 ff ff       	call   0x5eb222
5f1d4d:	59                   	pop    %ecx
5f1d4e:	56                   	push   %esi
5f1d4f:	ff 15 a8 20 60 00    	call   *0x6020a8
5f1d55:	33 c0                	xor    %eax,%eax
5f1d57:	eb 31                	jmp    0x5f1d8a
5f1d59:	53                   	push   %ebx
5f1d5a:	ff 75 fc             	push   -0x4(%ebp)
5f1d5d:	57                   	push   %edi
5f1d5e:	ff 75 f8             	push   -0x8(%ebp)
5f1d61:	56                   	push   %esi
5f1d62:	53                   	push   %ebx
5f1d63:	53                   	push   %ebx
5f1d64:	e8 d4 cc ff ff       	call   0x5eea3d
5f1d69:	83 c4 20             	add    $0x20,%esp
5f1d6c:	85 c0                	test   %eax,%eax
5f1d6e:	75 08                	jne    0x5f1d78
5f1d70:	57                   	push   %edi
5f1d71:	e8 ac 94 ff ff       	call   0x5eb222
5f1d76:	eb 08                	jmp    0x5f1d80
5f1d78:	53                   	push   %ebx
5f1d79:	e8 a4 94 ff ff       	call   0x5eb222
5f1d7e:	8b df                	mov    %edi,%ebx
5f1d80:	59                   	pop    %ecx
5f1d81:	56                   	push   %esi
5f1d82:	ff 15 a8 20 60 00    	call   *0x6020a8
5f1d88:	8b c3                	mov    %ebx,%eax
5f1d8a:	5f                   	pop    %edi
5f1d8b:	5b                   	pop    %ebx
5f1d8c:	5e                   	pop    %esi
5f1d8d:	c9                   	leave
5f1d8e:	c3                   	ret
5f1d8f:	8b ff                	mov    %edi,%edi
5f1d91:	56                   	push   %esi
5f1d92:	ff 15 ac 20 60 00    	call   *0x6020ac
5f1d98:	8b f0                	mov    %eax,%esi
5f1d9a:	85 f6                	test   %esi,%esi
5f1d9c:	75 02                	jne    0x5f1da0
5f1d9e:	5e                   	pop    %esi
5f1d9f:	c3                   	ret
5f1da0:	53                   	push   %ebx
5f1da1:	57                   	push   %edi
5f1da2:	56                   	push   %esi
5f1da3:	e8 10 ff ff ff       	call   0x5f1cb8
5f1da8:	8b d8                	mov    %eax,%ebx
5f1daa:	2b de                	sub    %esi,%ebx
5f1dac:	83 e3 fe             	and    $0xfffffffe,%ebx
5f1daf:	53                   	push   %ebx
5f1db0:	e8 a7 94 ff ff       	call   0x5eb25c
5f1db5:	8b f8                	mov    %eax,%edi
5f1db7:	59                   	pop    %ecx
5f1db8:	59                   	pop    %ecx
5f1db9:	85 ff                	test   %edi,%edi
5f1dbb:	74 0b                	je     0x5f1dc8
5f1dbd:	53                   	push   %ebx
5f1dbe:	56                   	push   %esi
5f1dbf:	57                   	push   %edi
5f1dc0:	e8 0b 10 fe ff       	call   0x5d2dd0
5f1dc5:	83 c4 0c             	add    $0xc,%esp
5f1dc8:	6a 00                	push   $0x0
5f1dca:	e8 53 94 ff ff       	call   0x5eb222
5f1dcf:	59                   	pop    %ecx
5f1dd0:	56                   	push   %esi
5f1dd1:	ff 15 a8 20 60 00    	call   *0x6020a8
5f1dd7:	8b c7                	mov    %edi,%eax
5f1dd9:	5f                   	pop    %edi
5f1dda:	5b                   	pop    %ebx
5f1ddb:	5e                   	pop    %esi
5f1ddc:	c3                   	ret
5f1ddd:	8b ff                	mov    %edi,%edi
5f1ddf:	55                   	push   %ebp
5f1de0:	8b ec                	mov    %esp,%ebp
5f1de2:	83 ec 10             	sub    $0x10,%esp
5f1de5:	53                   	push   %ebx
5f1de6:	56                   	push   %esi
5f1de7:	8b 75 08             	mov    0x8(%ebp),%esi
5f1dea:	85 f6                	test   %esi,%esi
5f1dec:	75 13                	jne    0x5f1e01
5f1dee:	e8 95 8e fe ff       	call   0x5dac88
5f1df3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f1df9:	83 c8 ff             	or     $0xffffffff,%eax
5f1dfc:	e9 2d 02 00 00       	jmp    0x5f202e
5f1e01:	57                   	push   %edi
5f1e02:	6a 3d                	push   $0x3d
5f1e04:	56                   	push   %esi
5f1e05:	8b fe                	mov    %esi,%edi
5f1e07:	e8 64 15 fe ff       	call   0x5d3370
5f1e0c:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f1e0f:	59                   	pop    %ecx
5f1e10:	59                   	pop    %ecx
5f1e11:	85 c0                	test   %eax,%eax
5f1e13:	0f 84 ff 01 00 00    	je     0x5f2018
5f1e19:	3b c6                	cmp    %esi,%eax
5f1e1b:	0f 84 f7 01 00 00    	je     0x5f2018
5f1e21:	8a 40 01             	mov    0x1(%eax),%al
5f1e24:	88 45 ff             	mov    %al,-0x1(%ebp)
5f1e27:	e8 0a 06 00 00       	call   0x5f2436
5f1e2c:	33 db                	xor    %ebx,%ebx
5f1e2e:	39 1d 68 6f 71 00    	cmp    %ebx,0x716f68
5f1e34:	75 7c                	jne    0x5f1eb2
5f1e36:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
5f1e39:	74 2c                	je     0x5f1e67
5f1e3b:	39 1d 6c 6f 71 00    	cmp    %ebx,0x716f6c
5f1e41:	74 24                	je     0x5f1e67
5f1e43:	e8 63 74 ff ff       	call   0x5e92ab
5f1e48:	85 c0                	test   %eax,%eax
5f1e4a:	75 14                	jne    0x5f1e60
5f1e4c:	e8 37 8e fe ff       	call   0x5dac88
5f1e51:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f1e57:	83 cb ff             	or     $0xffffffff,%ebx
5f1e5a:	56                   	push   %esi
5f1e5b:	e9 9e 01 00 00       	jmp    0x5f1ffe
5f1e60:	e8 d1 05 00 00       	call   0x5f2436
5f1e65:	eb 4b                	jmp    0x5f1eb2
5f1e67:	38 5d ff             	cmp    %bl,-0x1(%ebp)
5f1e6a:	74 ee                	je     0x5f1e5a
5f1e6c:	6a 04                	push   $0x4
5f1e6e:	6a 01                	push   $0x1
5f1e70:	e8 ce a6 ff ff       	call   0x5ec543
5f1e75:	53                   	push   %ebx
5f1e76:	a3 68 6f 71 00       	mov    %eax,0x716f68
5f1e7b:	e8 a2 93 ff ff       	call   0x5eb222
5f1e80:	83 c4 0c             	add    $0xc,%esp
5f1e83:	39 1d 68 6f 71 00    	cmp    %ebx,0x716f68
5f1e89:	74 cc                	je     0x5f1e57
5f1e8b:	39 1d 6c 6f 71 00    	cmp    %ebx,0x716f6c
5f1e91:	75 1f                	jne    0x5f1eb2
5f1e93:	6a 04                	push   $0x4
5f1e95:	6a 01                	push   $0x1
5f1e97:	e8 a7 a6 ff ff       	call   0x5ec543
5f1e9c:	53                   	push   %ebx
5f1e9d:	a3 6c 6f 71 00       	mov    %eax,0x716f6c
5f1ea2:	e8 7b 93 ff ff       	call   0x5eb222
5f1ea7:	83 c4 0c             	add    $0xc,%esp
5f1eaa:	39 1d 6c 6f 71 00    	cmp    %ebx,0x716f6c
5f1eb0:	74 a5                	je     0x5f1e57
5f1eb2:	a1 68 6f 71 00       	mov    0x716f68,%eax
5f1eb7:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f1eba:	85 c0                	test   %eax,%eax
5f1ebc:	74 99                	je     0x5f1e57
5f1ebe:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f1ec1:	2b c6                	sub    %esi,%eax
5f1ec3:	50                   	push   %eax
5f1ec4:	56                   	push   %esi
5f1ec5:	e8 a0 05 00 00       	call   0x5f246a
5f1eca:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f1ecd:	59                   	pop    %ecx
5f1ece:	59                   	pop    %ecx
5f1ecf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5f1ed2:	85 c0                	test   %eax,%eax
5f1ed4:	78 4f                	js     0x5f1f25
5f1ed6:	39 19                	cmp    %ebx,(%ecx)
5f1ed8:	74 4b                	je     0x5f1f25
5f1eda:	ff 34 81             	push   (%ecx,%eax,4)
5f1edd:	e8 40 93 ff ff       	call   0x5eb222
5f1ee2:	59                   	pop    %ecx
5f1ee3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f1ee6:	38 5d ff             	cmp    %bl,-0x1(%ebp)
5f1ee9:	75 30                	jne    0x5f1f1b
5f1eeb:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f1eee:	eb 08                	jmp    0x5f1ef8
5f1ef0:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
5f1ef4:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
5f1ef7:	41                   	inc    %ecx
5f1ef8:	39 1c 8a             	cmp    %ebx,(%edx,%ecx,4)
5f1efb:	75 f3                	jne    0x5f1ef0
5f1efd:	6a 04                	push   $0x4
5f1eff:	51                   	push   %ecx
5f1f00:	52                   	push   %edx
5f1f01:	e8 27 06 00 00       	call   0x5f252d
5f1f06:	53                   	push   %ebx
5f1f07:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f1f0a:	e8 13 93 ff ff       	call   0x5eb222
5f1f0f:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f1f12:	83 c4 10             	add    $0x10,%esp
5f1f15:	85 c0                	test   %eax,%eax
5f1f17:	74 62                	je     0x5f1f7b
5f1f19:	eb 5b                	jmp    0x5f1f76
5f1f1b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f1f1e:	8b fb                	mov    %ebx,%edi
5f1f20:	89 34 88             	mov    %esi,(%eax,%ecx,4)
5f1f23:	eb 56                	jmp    0x5f1f7b
5f1f25:	38 5d ff             	cmp    %bl,-0x1(%ebp)
5f1f28:	0f 84 2c ff ff ff    	je     0x5f1e5a
5f1f2e:	f7 d8                	neg    %eax
5f1f30:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f1f33:	8d 50 02             	lea    0x2(%eax),%edx
5f1f36:	3b d0                	cmp    %eax,%edx
5f1f38:	0f 82 19 ff ff ff    	jb     0x5f1e57
5f1f3e:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
5f1f44:	0f 83 0d ff ff ff    	jae    0x5f1e57
5f1f4a:	6a 04                	push   $0x4
5f1f4c:	52                   	push   %edx
5f1f4d:	51                   	push   %ecx
5f1f4e:	e8 da 05 00 00       	call   0x5f252d
5f1f53:	53                   	push   %ebx
5f1f54:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f1f57:	e8 c6 92 ff ff       	call   0x5eb222
5f1f5c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f1f5f:	83 c4 10             	add    $0x10,%esp
5f1f62:	85 c0                	test   %eax,%eax
5f1f64:	0f 84 ed fe ff ff    	je     0x5f1e57
5f1f6a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f1f6d:	8b fb                	mov    %ebx,%edi
5f1f6f:	89 34 88             	mov    %esi,(%eax,%ecx,4)
5f1f72:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5f1f76:	a3 68 6f 71 00       	mov    %eax,0x716f68
5f1f7b:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
5f1f7e:	0f 84 8a 00 00 00    	je     0x5f200e
5f1f84:	8d 4e 01             	lea    0x1(%esi),%ecx
5f1f87:	8a 06                	mov    (%esi),%al
5f1f89:	46                   	inc    %esi
5f1f8a:	84 c0                	test   %al,%al
5f1f8c:	75 f9                	jne    0x5f1f87
5f1f8e:	2b f1                	sub    %ecx,%esi
5f1f90:	6a 01                	push   $0x1
5f1f92:	8d 46 02             	lea    0x2(%esi),%eax
5f1f95:	50                   	push   %eax
5f1f96:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f1f99:	e8 a5 a5 ff ff       	call   0x5ec543
5f1f9e:	8b f0                	mov    %eax,%esi
5f1fa0:	59                   	pop    %ecx
5f1fa1:	59                   	pop    %ecx
5f1fa2:	85 f6                	test   %esi,%esi
5f1fa4:	75 08                	jne    0x5f1fae
5f1fa6:	53                   	push   %ebx
5f1fa7:	e8 76 92 ff ff       	call   0x5eb222
5f1fac:	eb 4e                	jmp    0x5f1ffc
5f1fae:	ff 75 08             	push   0x8(%ebp)
5f1fb1:	ff 75 f4             	push   -0xc(%ebp)
5f1fb4:	56                   	push   %esi
5f1fb5:	e8 48 82 ff ff       	call   0x5ea202
5f1fba:	83 c4 0c             	add    $0xc,%esp
5f1fbd:	85 c0                	test   %eax,%eax
5f1fbf:	75 71                	jne    0x5f2032
5f1fc1:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f1fc4:	8b c6                	mov    %esi,%eax
5f1fc6:	2b 45 08             	sub    0x8(%ebp),%eax
5f1fc9:	8d 4a 01             	lea    0x1(%edx),%ecx
5f1fcc:	03 c8                	add    %eax,%ecx
5f1fce:	88 1c 10             	mov    %bl,(%eax,%edx,1)
5f1fd1:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
5f1fd5:	f7 d8                	neg    %eax