507be8:	75 0b                	jne    0x507bf5
507bea:	f6 40 0c 02          	testb  $0x2,0xc(%eax)
507bee:	75 17                	jne    0x507c07
507bf0:	85 f6                	test   %esi,%esi
507bf2:	0f 44 f0             	cmove  %eax,%esi
507bf5:	8d 45 9c             	lea    -0x64(%ebp),%eax
507bf8:	50                   	push   %eax
507bf9:	e8 e2 cc 05 00       	call   0x5648e0
507bfe:	83 c4 04             	add    $0x4,%esp
507c01:	85 c0                	test   %eax,%eax
507c03:	75 dd                	jne    0x507be2
507c05:	8b c6                	mov    %esi,%eax
507c07:	85 c0                	test   %eax,%eax
507c09:	75 3b                	jne    0x507c46
507c0b:	53                   	push   %ebx
507c0c:	57                   	push   %edi
507c0d:	ff 75 98             	push   -0x68(%ebp)
507c10:	ff 75 94             	push   -0x6c(%ebp)
507c13:	ff 75 90             	push   -0x70(%ebp)
507c16:	e8 65 a4 ff ff       	call   0x502080
507c1b:	83 c4 14             	add    $0x14,%esp
507c1e:	85 c0                	test   %eax,%eax
507c20:	78 34                	js     0x507c56
507c22:	8b 47 04             	mov    0x4(%edi),%eax
507c25:	0f bf 0c 58          	movswl (%eax,%ebx,2),%ecx
507c29:	85 c9                	test   %ecx,%ecx
507c2b:	78 14                	js     0x507c41
507c2d:	8b 47 0c             	mov    0xc(%edi),%eax
507c30:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
507c33:	8b 40 04             	mov    0x4(%eax),%eax
507c36:	0f b6 44 88 0c       	movzbl 0xc(%eax,%ecx,4),%eax
507c3b:	85 c0                	test   %eax,%eax
507c3d:	74 17                	je     0x507c56
507c3f:	eb 05                	jmp    0x507c46
507c41:	83 f9 ff             	cmp    $0xffffffff,%ecx
507c44:	75 10                	jne    0x507c56
507c46:	0f b7 47 32          	movzwl 0x32(%edi),%eax
507c4a:	43                   	inc    %ebx
507c4b:	8b 4d 98             	mov    -0x68(%ebp),%ecx
507c4e:	3b d8                	cmp    %eax,%ebx
507c50:	0f 8c 72 ff ff ff    	jl     0x507bc8
507c56:	0f b7 47 32          	movzwl 0x32(%edi),%eax
507c5a:	3b d8                	cmp    %eax,%ebx
507c5c:	74 0f                	je     0x507c6d
507c5e:	8b 7f 14             	mov    0x14(%edi),%edi
507c61:	85 ff                	test   %edi,%edi
507c63:	74 1e                	je     0x507c83
507c65:	8b 4d 98             	mov    -0x68(%ebp),%ecx
507c68:	e9 43 ff ff ff       	jmp    0x507bb0
507c6d:	5f                   	pop    %edi
507c6e:	5b                   	pop    %ebx
507c6f:	b8 01 00 00 00       	mov    $0x1,%eax
507c74:	5e                   	pop    %esi
507c75:	8b 4d fc             	mov    -0x4(%ebp),%ecx
507c78:	33 cd                	xor    %ebp,%ecx
507c7a:	e8 5b 98 0d 00       	call   0x5e14da
507c7f:	8b e5                	mov    %ebp,%esp
507c81:	5d                   	pop    %ebp
507c82:	c3                   	ret
507c83:	8b 4d fc             	mov    -0x4(%ebp),%ecx
507c86:	33 c0                	xor    %eax,%eax
507c88:	5f                   	pop    %edi
507c89:	5b                   	pop    %ebx
507c8a:	33 cd                	xor    %ebp,%ecx
507c8c:	5e                   	pop    %esi
507c8d:	e8 48 98 0d 00       	call   0x5e14da
507c92:	8b e5                	mov    %ebp,%esp
507c94:	5d                   	pop    %ebp
507c95:	c3                   	ret
507c96:	cc                   	int3
507c97:	cc                   	int3
507c98:	cc                   	int3
507c99:	cc                   	int3
507c9a:	cc                   	int3
507c9b:	cc                   	int3
507c9c:	cc                   	int3
507c9d:	cc                   	int3
507c9e:	cc                   	int3
507c9f:	cc                   	int3
507ca0:	55                   	push   %ebp
507ca1:	8b ec                	mov    %esp,%ebp
507ca3:	83 ec 08             	sub    $0x8,%esp
507ca6:	8b 4d 14             	mov    0x14(%ebp),%ecx
507ca9:	53                   	push   %ebx
507caa:	56                   	push   %esi
507cab:	8b 75 10             	mov    0x10(%ebp),%esi
507cae:	57                   	push   %edi
507caf:	33 ff                	xor    %edi,%edi
507cb1:	8b 46 04             	mov    0x4(%esi),%eax
507cb4:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
507cb8:	8b 45 0c             	mov    0xc(%ebp),%eax
507cbb:	89 55 fc             	mov    %edx,-0x4(%ebp)
507cbe:	85 c0                	test   %eax,%eax
507cc0:	7e 6d                	jle    0x507d2f
507cc2:	8b 5d 08             	mov    0x8(%ebp),%ebx
507cc5:	c1 e1 02             	shl    $0x2,%ecx
507cc8:	89 4d 14             	mov    %ecx,0x14(%ebp)
507ccb:	8b 5b 04             	mov    0x4(%ebx),%ebx
507cce:	66 90                	xchg   %ax,%ax
507cd0:	66 39 13             	cmp    %dx,(%ebx)
507cd3:	75 52                	jne    0x507d27
507cd5:	8b 45 08             	mov    0x8(%ebp),%eax
507cd8:	8b 4e 20             	mov    0x20(%esi),%ecx
507cdb:	8b 55 14             	mov    0x14(%ebp),%edx
507cde:	8b 40 20             	mov    0x20(%eax),%eax
507ce1:	8b 34 11             	mov    (%ecx,%edx,1),%esi
507ce4:	8b 04 b8             	mov    (%eax,%edi,4),%eax
507ce7:	2b f0                	sub    %eax,%esi
507ce9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
507cf0:	0f b6 10             	movzbl (%eax),%edx
507cf3:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
507cf7:	3b d1                	cmp    %ecx,%edx
507cf9:	75 0e                	jne    0x507d09
507cfb:	85 d2                	test   %edx,%edx
507cfd:	75 1c                	jne    0x507d1b
507cff:	5f                   	pop    %edi
507d00:	5e                   	pop    %esi
507d01:	8d 42 01             	lea    0x1(%edx),%eax
507d04:	5b                   	pop    %ebx
507d05:	8b e5                	mov    %ebp,%esp
507d07:	5d                   	pop    %ebp
507d08:	c3                   	ret
507d09:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
507d10:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
507d17:	2b d1                	sub    %ecx,%edx
507d19:	75 03                	jne    0x507d1e
507d1b:	40                   	inc    %eax
507d1c:	eb d2                	jmp    0x507cf0
507d1e:	8b 45 0c             	mov    0xc(%ebp),%eax
507d21:	8b 55 fc             	mov    -0x4(%ebp),%edx
507d24:	8b 75 10             	mov    0x10(%ebp),%esi
507d27:	47                   	inc    %edi
507d28:	83 c3 02             	add    $0x2,%ebx
507d2b:	3b f8                	cmp    %eax,%edi
507d2d:	7c a1                	jl     0x507cd0
507d2f:	5f                   	pop    %edi
507d30:	5e                   	pop    %esi
507d31:	33 c0                	xor    %eax,%eax
507d33:	5b                   	pop    %ebx
507d34:	8b e5                	mov    %ebp,%esp
507d36:	5d                   	pop    %ebp
507d37:	c3                   	ret
507d38:	cc                   	int3
507d39:	cc                   	int3
507d3a:	cc                   	int3
507d3b:	cc                   	int3
507d3c:	cc                   	int3
507d3d:	cc                   	int3
507d3e:	cc                   	int3
507d3f:	cc                   	int3
507d40:	55                   	push   %ebp
507d41:	8b ec                	mov    %esp,%ebp
507d43:	83 ec 2c             	sub    $0x2c,%esp
507d46:	8b 45 08             	mov    0x8(%ebp),%eax
507d49:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
507d4c:	53                   	push   %ebx
507d4d:	56                   	push   %esi
507d4e:	8b 75 0c             	mov    0xc(%ebp),%esi
507d51:	33 db                	xor    %ebx,%ebx
507d53:	8b 00                	mov    (%eax),%eax
507d55:	51                   	push   %ecx
507d56:	ff 75 18             	push   0x18(%ebp)
507d59:	89 5d f8             	mov    %ebx,-0x8(%ebp)
507d5c:	56                   	push   %esi
507d5d:	50                   	push   %eax
507d5e:	89 45 f4             	mov    %eax,-0xc(%ebp)
507d61:	89 5d f0             	mov    %ebx,-0x10(%ebp)
507d64:	e8 27 7b 02 00       	call   0x52f890
507d69:	83 c4 10             	add    $0x10,%esp
507d6c:	85 c0                	test   %eax,%eax
507d6e:	75 06                	jne    0x507d76
507d70:	5e                   	pop    %esi
507d71:	5b                   	pop    %ebx
507d72:	8b e5                	mov    %ebp,%esp
507d74:	5d                   	pop    %ebp
507d75:	c3                   	ret
507d76:	8b 46 14             	mov    0x14(%esi),%eax
507d79:	57                   	push   %edi
507d7a:	8b 78 04             	mov    0x4(%eax),%edi
507d7d:	8b 48 18             	mov    0x18(%eax),%ecx
507d80:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
507d83:	89 7d ec             	mov    %edi,-0x14(%ebp)
507d86:	85 ff                	test   %edi,%edi
507d88:	74 19                	je     0x507da3
507d8a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
507d90:	f7 47 04 00 10 00 00 	testl  $0x1000,0x4(%edi)
507d97:	74 07                	je     0x507da0
507d99:	8b 7f 0c             	mov    0xc(%edi),%edi
507d9c:	85 ff                	test   %edi,%edi
507d9e:	75 f0                	jne    0x507d90
507da0:	89 7d ec             	mov    %edi,-0x14(%ebp)
507da3:	0f b6 07             	movzbl (%edi),%eax
507da6:	89 45 dc             	mov    %eax,-0x24(%ebp)
507da9:	3d 99 00 00 00       	cmp    $0x99,%eax
507dae:	0f 85 82 00 00 00    	jne    0x507e36
507db4:	8b 45 f4             	mov    -0xc(%ebp),%eax
507db7:	8b 40 20             	mov    0x20(%eax),%eax
507dba:	25 00 00 80 00       	and    $0x800000,%eax
507dbf:	83 c8 00             	or     $0x0,%eax
507dc2:	0f 85 4d 02 00 00    	jne    0x508015
507dc8:	0f bf 47 20          	movswl 0x20(%edi),%eax
507dcc:	6a 41                	push   $0x41
507dce:	50                   	push   %eax
507dcf:	89 45 e0             	mov    %eax,-0x20(%ebp)
507dd2:	8b 45 08             	mov    0x8(%ebp),%eax
507dd5:	ff b0 dc 00 00 00    	push   0xdc(%eax)
507ddb:	e8 30 22 04 00       	call   0x54a010
507de0:	8b f0                	mov    %eax,%esi
507de2:	83 c4 0c             	add    $0xc,%esp
507de5:	89 75 f0             	mov    %esi,-0x10(%ebp)
507de8:	85 f6                	test   %esi,%esi
507dea:	74 1e                	je     0x507e0a
507dec:	0f b7 46 08          	movzwl 0x8(%esi),%eax
507df0:	83 e0 3f             	and    $0x3f,%eax
507df3:	80 b8 68 30 6b 00 03 	cmpb   $0x3,0x6b3068(%eax)
507dfa:	75 0e                	jne    0x507e0a
507dfc:	56                   	push   %esi
507dfd:	e8 3e a8 fd ff       	call   0x4e2640
507e02:	83 c4 04             	add    $0x4,%esp
507e05:	89 45 f8             	mov    %eax,-0x8(%ebp)
507e08:	8b d8                	mov    %eax,%ebx
507e0a:	8b 45 08             	mov    0x8(%ebp),%eax
507e0d:	8b 50 08             	mov    0x8(%eax),%edx
507e10:	8b 45 e0             	mov    -0x20(%ebp),%eax
507e13:	83 f8 20             	cmp    $0x20,%eax
507e16:	7c 0c                	jl     0x507e24
507e18:	81 8a d4 00 00 00 00 	orl    $0x80000000,0xd4(%edx)
507e1f:	00 00 80
507e22:	eb 21                	jmp    0x507e45
507e24:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
507e2a:	48                   	dec    %eax
507e2b:	0f ab c1             	bts    %eax,%ecx
507e2e:	89 8a d4 00 00 00    	mov    %ecx,0xd4(%edx)
507e34:	eb 0f                	jmp    0x507e45
507e36:	83 f8 73             	cmp    $0x73,%eax
507e39:	0f 85 d6 01 00 00    	jne    0x508015
507e3f:	8b 5f 08             	mov    0x8(%edi),%ebx
507e42:	89 5d f8             	mov    %ebx,-0x8(%ebp)
507e45:	85 db                	test   %ebx,%ebx
507e47:	0f 84 c8 01 00 00    	je     0x508015
507e4d:	8a 2b                	mov    (%ebx),%ch
507e4f:	33 f6                	xor    %esi,%esi
507e51:	8a cd                	mov    %ch,%cl
507e53:	84 c9                	test   %cl,%cl
507e55:	0f 84 b8 01 00 00    	je     0x508013
507e5b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
507e5e:	8b 55 d7             	mov    -0x29(%ebp),%edx
507e61:	3a c8                	cmp    %al,%cl
507e63:	74 1d                	je     0x507e82
507e65:	3a 4d d5             	cmp    -0x2b(%ebp),%cl
507e68:	74 18                	je     0x507e82
507e6a:	3a 4d d6             	cmp    -0x2a(%ebp),%cl
507e6d:	74 13                	je     0x507e82
507e6f:	46                   	inc    %esi
507e70:	3a ca                	cmp    %dl,%cl
507e72:	75 07                	jne    0x507e7b
507e74:	80 3c 1e 00          	cmpb   $0x0,(%esi,%ebx,1)
507e78:	74 01                	je     0x507e7b
507e7a:	46                   	inc    %esi
507e7b:	8a 0c 1e             	mov    (%esi,%ebx,1),%cl
507e7e:	84 c9                	test   %cl,%cl
507e80:	75 df                	jne    0x507e61
507e82:	85 f6                	test   %esi,%esi
507e84:	0f 84 89 01 00 00    	je     0x508013
507e8a:	80 7c 1e ff ff       	cmpb   $0xff,-0x1(%esi,%ebx,1)
507e8f:	0f 84 7e 01 00 00    	je     0x508013
507e95:	83 fe 01             	cmp    $0x1,%esi
507e98:	7f 08                	jg     0x507ea2
507e9a:	3a ea                	cmp    %dl,%ch
507e9c:	0f 84 71 01 00 00    	je     0x508013
507ea2:	3a c8                	cmp    %al,%cl
507ea4:	75 0e                	jne    0x507eb4
507ea6:	80 7c 1e 01 00       	cmpb   $0x0,0x1(%esi,%ebx,1)
507eab:	75 07                	jne    0x507eb4
507ead:	b8 01 00 00 00       	mov    $0x1,%eax
507eb2:	eb 02                	jmp    0x507eb6
507eb4:	33 c0                	xor    %eax,%eax
507eb6:	8b 4d 14             	mov    0x14(%ebp),%ecx
507eb9:	53                   	push   %ebx
507eba:	6a 73                	push   $0x73
507ebc:	ff 75 f4             	push   -0xc(%ebp)
507ebf:	89 01                	mov    %eax,(%ecx)
507ec1:	e8 fa b5 01 00       	call   0x5234c0
507ec6:	83 c4 0c             	add    $0xc,%esp
507ec9:	89 45 e0             	mov    %eax,-0x20(%ebp)
507ecc:	85 c0                	test   %eax,%eax
507ece:	0f 84 d5 00 00 00    	je     0x507fa9
507ed4:	8b 50 08             	mov    0x8(%eax),%edx
507ed7:	89 55 fc             	mov    %edx,-0x4(%ebp)
507eda:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
507ee1:	c6 04 32 00          	movb   $0x0,(%edx,%esi,1)
507ee5:	85 f6                	test   %esi,%esi
507ee7:	7e 31                	jle    0x507f1a
507ee9:	8b 45 d7             	mov    -0x29(%ebp),%eax
507eec:	33 ff                	xor    %edi,%edi
507eee:	0f b6 c0             	movzbl %al,%eax
507ef1:	33 db                	xor    %ebx,%ebx
507ef3:	89 45 e8             	mov    %eax,-0x18(%ebp)
507ef6:	0f be 04 13          	movsbl (%ebx,%edx,1),%eax
507efa:	8d 4b 01             	lea    0x1(%ebx),%ecx
507efd:	3b 45 e8             	cmp    -0x18(%ebp),%eax
507f00:	0f 45 cb             	cmovne %ebx,%ecx
507f03:	8a 04 11             	mov    (%ecx,%edx,1),%al
507f06:	8d 59 01             	lea    0x1(%ecx),%ebx
507f09:	88 04 17             	mov    %al,(%edi,%edx,1)
507f0c:	47                   	inc    %edi
507f0d:	3b de                	cmp    %esi,%ebx
507f0f:	7c e5                	jl     0x507ef6
507f11:	8b 5d f8             	mov    -0x8(%ebp),%ebx
507f14:	89 7d e8             	mov    %edi,-0x18(%ebp)
507f17:	8b 7d ec             	mov    -0x14(%ebp),%edi
507f1a:	8b 75 e8             	mov    -0x18(%ebp),%esi
507f1d:	8d 04 16             	lea    (%esi,%edx,1),%eax
507f20:	c6 00 00             	movb   $0x0,(%eax)
507f23:	89 45 e8             	mov    %eax,-0x18(%ebp)
507f26:	8b 45 e4             	mov    -0x1c(%ebp),%eax
507f29:	80 38 a4             	cmpb   $0xa4,(%eax)
507f2c:	75 1c                	jne    0x507f4a
507f2e:	50                   	push   %eax
507f2f:	e8 7c b6 01 00       	call   0x5235b0
507f34:	83 c4 04             	add    $0x4,%esp
507f37:	3c 42                	cmp    $0x42,%al
507f39:	75 0c                	jne    0x507f47
507f3b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
507f3e:	8b 41 2c             	mov    0x2c(%ecx),%eax
507f41:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
507f45:	74 62                	je     0x507fa9
507f47:	8b 55 fc             	mov    -0x4(%ebp),%edx
507f4a:	6a 01                	push   $0x1
507f4c:	56                   	push   %esi
507f4d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
507f50:	50                   	push   %eax
507f51:	52                   	push   %edx
507f52:	e8 09 11 01 00       	call   0x519060
507f57:	83 c4 10             	add    $0x10,%esp
507f5a:	85 c0                	test   %eax,%eax
507f5c:	7f 2b                	jg     0x507f89
507f5e:	8b 45 fc             	mov    -0x4(%ebp),%eax
507f61:	83 fe 01             	cmp    $0x1,%esi
507f64:	75 05                	jne    0x507f6b
507f66:	80 38 2d             	cmpb   $0x2d,(%eax)
507f69:	74 1e                	je     0x507f89
507f6b:	fe 44 06 ff          	incb   -0x1(%esi,%eax,1)
507f6f:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
507f72:	6a 01                	push   $0x1
507f74:	56                   	push   %esi
507f75:	51                   	push   %ecx
507f76:	50                   	push   %eax
507f77:	e8 e4 10 01 00       	call   0x519060
507f7c:	8b 4d e8             	mov    -0x18(%ebp),%ecx