5099f1:	5e                   	pop    %esi
5099f2:	5d                   	pop    %ebp
5099f3:	5b                   	pop    %ebx
5099f4:	59                   	pop    %ecx
5099f5:	c3                   	ret
5099f6:	cc                   	int3
5099f7:	cc                   	int3
5099f8:	cc                   	int3
5099f9:	cc                   	int3
5099fa:	cc                   	int3
5099fb:	cc                   	int3
5099fc:	cc                   	int3
5099fd:	cc                   	int3
5099fe:	cc                   	int3
5099ff:	cc                   	int3
509a00:	56                   	push   %esi
509a01:	8b 74 24 14          	mov    0x14(%esp),%esi
509a05:	85 f6                	test   %esi,%esi
509a07:	75 22                	jne    0x509a2b
509a09:	68 9a 00 00 00       	push   $0x9a
509a0e:	68 14 ae 62 00       	push   $0x62ae14
509a13:	68 de 00 00 00       	push   $0xde
509a18:	68 e2 00 00 00       	push   $0xe2
509a1d:	6a 0d                	push   $0xd
509a1f:	e8 5c f5 fc ff       	call   0x4d8f80
509a24:	83 c4 14             	add    $0x14,%esp
509a27:	33 c0                	xor    %eax,%eax
509a29:	5e                   	pop    %esi
509a2a:	c3                   	ret
509a2b:	8b 54 24 10          	mov    0x10(%esp),%edx
509a2f:	8b 44 24 0c          	mov    0xc(%esp),%eax
509a33:	53                   	push   %ebx
509a34:	0f b6 1a             	movzbl (%edx),%ebx
509a37:	81 e3 80 00 00 00    	and    $0x80,%ebx
509a3d:	85 c0                	test   %eax,%eax
509a3f:	74 02                	je     0x509a43
509a41:	89 18                	mov    %ebx,(%eax)
509a43:	83 fe 01             	cmp    $0x1,%esi
509a46:	75 1c                	jne    0x509a64
509a48:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
509a4c:	85 c9                	test   %ecx,%ecx
509a4e:	74 0c                	je     0x509a5c
509a50:	8a 02                	mov    (%edx),%al
509a52:	85 db                	test   %ebx,%ebx
509a54:	74 04                	je     0x509a5a
509a56:	f6 d0                	not    %al
509a58:	fe c0                	inc    %al
509a5a:	88 01                	mov    %al,(%ecx)
509a5c:	5b                   	pop    %ebx
509a5d:	b8 01 00 00 00       	mov    $0x1,%eax
509a62:	5e                   	pop    %esi
509a63:	c3                   	ret
509a64:	8a 02                	mov    (%edx),%al
509a66:	33 c9                	xor    %ecx,%ecx
509a68:	89 4c 24 18          	mov    %ecx,0x18(%esp)
509a6c:	57                   	push   %edi
509a6d:	84 c0                	test   %al,%al
509a6f:	75 0e                	jne    0x509a7f
509a71:	b9 01 00 00 00       	mov    $0x1,%ecx
509a76:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
509a7a:	e9 9c 00 00 00       	jmp    0x509b1b
509a7f:	3c ff                	cmp    $0xff,%al
509a81:	0f 85 c5 00 00 00    	jne    0x509b4c
509a87:	33 ff                	xor    %edi,%edi
509a89:	8d 46 ff             	lea    -0x1(%esi),%eax
509a8c:	8d 4f 01             	lea    0x1(%edi),%ecx
509a8f:	3b f1                	cmp    %ecx,%esi
509a91:	76 79                	jbe    0x509b0c
509a93:	83 f8 08             	cmp    $0x8,%eax
509a96:	72 69                	jb     0x509b01
509a98:	83 e0 07             	and    $0x7,%eax
509a9b:	8b fe                	mov    %esi,%edi
509a9d:	2b f8                	sub    %eax,%edi
509a9f:	0f 57 db             	xorps  %xmm3,%xmm3
509aa2:	0f 57 d2             	xorps  %xmm2,%xmm2
509aa5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
509aac:	00 00 00 00
509ab0:	66 0f 6e 0c 11       	movd   (%ecx,%edx,1),%xmm1
509ab5:	0f 57 c0             	xorps  %xmm0,%xmm0
509ab8:	66 0f 60 c8          	punpcklbw %xmm0,%xmm1
509abc:	66 0f 61 c8          	punpcklwd %xmm0,%xmm1
509ac0:	66 0f eb d9          	por    %xmm1,%xmm3
509ac4:	66 0f 6e 4c 11 04    	movd   0x4(%ecx,%edx,1),%xmm1
509aca:	66 0f 60 c8          	punpcklbw %xmm0,%xmm1
509ace:	83 c1 08             	add    $0x8,%ecx
509ad1:	66 0f 61 c8          	punpcklwd %xmm0,%xmm1
509ad5:	66 0f eb d1          	por    %xmm1,%xmm2
509ad9:	3b cf                	cmp    %edi,%ecx
509adb:	72 d3                	jb     0x509ab0
509add:	66 0f eb d3          	por    %xmm3,%xmm2
509ae1:	0f 28 c2             	movaps %xmm2,%xmm0
509ae4:	66 0f 73 d8 08       	psrldq $0x8,%xmm0
509ae9:	66 0f eb d0          	por    %xmm0,%xmm2
509aed:	0f 10 c2             	movups %xmm2,%xmm0
509af0:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
509af5:	66 0f eb d0          	por    %xmm0,%xmm2
509af9:	66 0f 7e d7          	movd   %xmm2,%edi
509afd:	3b ce                	cmp    %esi,%ecx
509aff:	73 0b                	jae    0x509b0c
509b01:	0f b6 04 11          	movzbl (%ecx,%edx,1),%eax
509b05:	41                   	inc    %ecx
509b06:	0b f8                	or     %eax,%edi
509b08:	3b ce                	cmp    %esi,%ecx
509b0a:	72 f5                	jb     0x509b01
509b0c:	33 c9                	xor    %ecx,%ecx
509b0e:	85 ff                	test   %edi,%edi
509b10:	0f 95 c1             	setne  %cl
509b13:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
509b17:	85 ff                	test   %edi,%edi
509b19:	74 31                	je     0x509b4c
509b1b:	0f b6 42 01          	movzbl 0x1(%edx),%eax
509b1f:	25 80 00 00 00       	and    $0x80,%eax
509b24:	3b d8                	cmp    %eax,%ebx
509b26:	75 24                	jne    0x509b4c
509b28:	68 bb 00 00 00       	push   $0xbb
509b2d:	68 14 ae 62 00       	push   $0x62ae14
509b32:	68 dd 00 00 00       	push   $0xdd
509b37:	68 e2 00 00 00       	push   $0xe2
509b3c:	6a 0d                	push   $0xd
509b3e:	e8 3d f4 fc ff       	call   0x4d8f80
509b43:	83 c4 14             	add    $0x14,%esp
509b46:	33 c0                	xor    %eax,%eax
509b48:	5f                   	pop    %edi
509b49:	5b                   	pop    %ebx
509b4a:	5e                   	pop    %esi
509b4b:	c3                   	ret
509b4c:	8b 7c 24 10          	mov    0x10(%esp),%edi
509b50:	2b f1                	sub    %ecx,%esi
509b52:	85 ff                	test   %edi,%edi
509b54:	74 19                	je     0x509b6f
509b56:	f7 db                	neg    %ebx
509b58:	1a db                	sbb    %bl,%bl
509b5a:	0f b6 cb             	movzbl %bl,%ecx
509b5d:	51                   	push   %ecx
509b5e:	8b 4c 24 20          	mov    0x20(%esp),%ecx
509b62:	56                   	push   %esi
509b63:	03 ca                	add    %edx,%ecx
509b65:	51                   	push   %ecx
509b66:	57                   	push   %edi
509b67:	e8 94 02 00 00       	call   0x509e00
509b6c:	83 c4 10             	add    $0x10,%esp
509b6f:	5f                   	pop    %edi
509b70:	5b                   	pop    %ebx
509b71:	8b c6                	mov    %esi,%eax
509b73:	5e                   	pop    %esi
509b74:	c3                   	ret
509b75:	cc                   	int3
509b76:	cc                   	int3
509b77:	cc                   	int3
509b78:	cc                   	int3
509b79:	cc                   	int3
509b7a:	cc                   	int3
509b7b:	cc                   	int3
509b7c:	cc                   	int3
509b7d:	cc                   	int3
509b7e:	cc                   	int3
509b7f:	cc                   	int3
509b80:	b8 0c 00 00 00       	mov    $0xc,%eax
509b85:	e8 26 7c 0c 00       	call   0x5d17b0
509b8a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
509b8f:	33 c4                	xor    %esp,%eax
509b91:	89 44 24 08          	mov    %eax,0x8(%esp)
509b95:	8b 44 24 14          	mov    0x14(%esp),%eax
509b99:	55                   	push   %ebp
509b9a:	8b 6c 24 14          	mov    0x14(%esp),%ebp
509b9e:	56                   	push   %esi
509b9f:	57                   	push   %edi
509ba0:	8b 7c 24 24          	mov    0x24(%esp),%edi
509ba4:	ff 74 24 28          	push   0x28(%esp)
509ba8:	89 44 24 10          	mov    %eax,0x10(%esp)
509bac:	ff 37                	push   (%edi)
509bae:	6a 00                	push   $0x0
509bb0:	6a 00                	push   $0x0
509bb2:	e8 49 fe ff ff       	call   0x509a00
509bb7:	8b f0                	mov    %eax,%esi
509bb9:	83 c4 10             	add    $0x10,%esp
509bbc:	85 f6                	test   %esi,%esi
509bbe:	74 20                	je     0x509be0
509bc0:	83 fe 08             	cmp    $0x8,%esi
509bc3:	76 2f                	jbe    0x509bf4
509bc5:	68 67 02 00 00       	push   $0x267
509bca:	68 14 ae 62 00       	push   $0x62ae14
509bcf:	68 df 00 00 00       	push   $0xdf
509bd4:	6a 65                	push   $0x65
509bd6:	6a 0d                	push   $0xd
509bd8:	e8 a3 f3 fc ff       	call   0x4d8f80
509bdd:	83 c4 14             	add    $0x14,%esp
509be0:	5f                   	pop    %edi
509be1:	5e                   	pop    %esi
509be2:	33 c0                	xor    %eax,%eax
509be4:	5d                   	pop    %ebp
509be5:	8b 4c 24 08          	mov    0x8(%esp),%ecx
509be9:	33 cc                	xor    %esp,%ecx
509beb:	e8 36 7e 0c 00       	call   0x5d1a26
509bf0:	83 c4 0c             	add    $0xc,%esp
509bf3:	c3                   	ret
509bf4:	ff 74 24 28          	push   0x28(%esp)
509bf8:	8d 44 24 10          	lea    0x10(%esp),%eax
509bfc:	ff 37                	push   (%edi)
509bfe:	ff 74 24 14          	push   0x14(%esp)
509c02:	50                   	push   %eax
509c03:	e8 f8 fd ff ff       	call   0x509a00
509c08:	56                   	push   %esi
509c09:	8d 44 24 20          	lea    0x20(%esp),%eax
509c0d:	50                   	push   %eax
509c0e:	55                   	push   %ebp
509c0f:	e8 0c f9 ff ff       	call   0x509520
509c14:	8b 4c 24 30          	mov    0x30(%esp),%ecx
509c18:	83 c4 1c             	add    $0x1c,%esp
509c1b:	5f                   	pop    %edi
509c1c:	5e                   	pop    %esi
509c1d:	5d                   	pop    %ebp
509c1e:	33 cc                	xor    %esp,%ecx
509c20:	e8 01 7e 0c 00       	call   0x5d1a26
509c25:	83 c4 0c             	add    $0xc,%esp
509c28:	c3                   	ret
509c29:	cc                   	int3
509c2a:	cc                   	int3
509c2b:	cc                   	int3
509c2c:	cc                   	int3
509c2d:	cc                   	int3
509c2e:	cc                   	int3
509c2f:	cc                   	int3
509c30:	8b 4c 24 04          	mov    0x4(%esp),%ecx
509c34:	ff 74 24 08          	push   0x8(%esp)
509c38:	8b 41 04             	mov    0x4(%ecx),%eax
509c3b:	25 00 01 00 00       	and    $0x100,%eax
509c40:	50                   	push   %eax
509c41:	ff 31                	push   (%ecx)
509c43:	ff 71 08             	push   0x8(%ecx)
509c46:	e8 05 00 00 00       	call   0x509c50
509c4b:	83 c4 10             	add    $0x10,%esp
509c4e:	c3                   	ret
509c4f:	cc                   	int3
509c50:	b8 04 00 00 00       	mov    $0x4,%eax
509c55:	e8 56 7b 0c 00       	call   0x5d17b0
509c5a:	53                   	push   %ebx
509c5b:	55                   	push   %ebp
509c5c:	56                   	push   %esi
509c5d:	57                   	push   %edi
509c5e:	8b 7c 24 18          	mov    0x18(%esp),%edi
509c62:	32 d2                	xor    %dl,%dl
509c64:	33 c0                	xor    %eax,%eax
509c66:	88 54 24 10          	mov    %dl,0x10(%esp)
509c6a:	85 ff                	test   %edi,%edi
509c6c:	0f 84 dd 00 00 00    	je     0x509d4f
509c72:	8b 74 24 1c          	mov    0x1c(%esp),%esi
509c76:	85 f6                	test   %esi,%esi
509c78:	0f 84 d1 00 00 00    	je     0x509d4f
509c7e:	8a 0f                	mov    (%edi),%cl
509c80:	39 44 24 20          	cmp    %eax,0x20(%esp)
509c84:	75 1a                	jne    0x509ca0
509c86:	80 f9 7f             	cmp    $0x7f,%cl
509c89:	0f 86 bb 00 00 00    	jbe    0x509d4a
509c8f:	b8 01 00 00 00       	mov    $0x1,%eax
509c94:	88 54 24 10          	mov    %dl,0x10(%esp)
509c98:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
509c9b:	e9 b6 00 00 00       	jmp    0x509d56
509ca0:	80 ca ff             	or     $0xff,%dl
509ca3:	88 54 24 10          	mov    %dl,0x10(%esp)
509ca7:	80 f9 80             	cmp    $0x80,%cl
509caa:	76 0d                	jbe    0x509cb9
509cac:	b8 01 00 00 00       	mov    $0x1,%eax
509cb1:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
509cb4:	e9 9d 00 00 00       	jmp    0x509d56
509cb9:	0f 85 8b 00 00 00    	jne    0x509d4a
509cbf:	33 d2                	xor    %edx,%edx
509cc1:	8d 4e ff             	lea    -0x1(%esi),%ecx
509cc4:	8d 42 01             	lea    0x1(%edx),%eax
509cc7:	3b f0                	cmp    %eax,%esi
509cc9:	76 71                	jbe    0x509d3c
509ccb:	83 f9 08             	cmp    $0x8,%ecx
509cce:	72 61                	jb     0x509d31
509cd0:	83 e1 07             	and    $0x7,%ecx
509cd3:	8b d6                	mov    %esi,%edx
509cd5:	2b d1                	sub    %ecx,%edx
509cd7:	0f 57 db             	xorps  %xmm3,%xmm3
509cda:	0f 57 d2             	xorps  %xmm2,%xmm2
509cdd:	0f 1f 00             	nopl   (%eax)
509ce0:	66 0f 6e 0c 38       	movd   (%eax,%edi,1),%xmm1
509ce5:	0f 57 c0             	xorps  %xmm0,%xmm0
509ce8:	66 0f 60 c8          	punpcklbw %xmm0,%xmm1
509cec:	66 0f 61 c8          	punpcklwd %xmm0,%xmm1
509cf0:	66 0f eb d9          	por    %xmm1,%xmm3
509cf4:	66 0f 6e 4c 38 04    	movd   0x4(%eax,%edi,1),%xmm1
509cfa:	66 0f 60 c8          	punpcklbw %xmm0,%xmm1
509cfe:	83 c0 08             	add    $0x8,%eax
509d01:	66 0f 61 c8          	punpcklwd %xmm0,%xmm1
509d05:	66 0f eb d1          	por    %xmm1,%xmm2
509d09:	3b c2                	cmp    %edx,%eax
509d0b:	72 d3                	jb     0x509ce0
509d0d:	66 0f eb d3          	por    %xmm3,%xmm2
509d11:	0f 28 c2             	movaps %xmm2,%xmm0
509d14:	66 0f 73 d8 08       	psrldq $0x8,%xmm0
509d19:	66 0f eb d0          	por    %xmm0,%xmm2
509d1d:	0f 10 c2             	movups %xmm2,%xmm0
509d20:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
509d25:	66 0f eb d0          	por    %xmm0,%xmm2
509d29:	66 0f 7e d2          	movd   %xmm2,%edx
509d2d:	3b c6                	cmp    %esi,%eax
509d2f:	73 0b                	jae    0x509d3c
509d31:	0f b6 0c 38          	movzbl (%eax,%edi,1),%ecx
509d35:	40                   	inc    %eax
509d36:	0b d1                	or     %ecx,%edx
509d38:	3b c6                	cmp    %esi,%eax
509d3a:	72 f5                	jb     0x509d31
509d3c:	f7 da                	neg    %edx
509d3e:	1a d2                	sbb    %dl,%dl
509d40:	0f b6 c2             	movzbl %dl,%eax
509d43:	83 e0 01             	and    $0x1,%eax
509d46:	88 54 24 10          	mov    %dl,0x10(%esp)
509d4a:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
509d4d:	eb 07                	jmp    0x509d56
509d4f:	bb 01 00 00 00       	mov    $0x1,%ebx
509d54:	33 f6                	xor    %esi,%esi
509d56:	8b 6c 24 24          	mov    0x24(%esp),%ebp
509d5a:	85 ed                	test   %ebp,%ebp
509d5c:	74 1d                	je     0x509d7b
509d5e:	8b 4d 00             	mov    0x0(%ebp),%ecx
509d61:	85 c9                	test   %ecx,%ecx
509d63:	74 16                	je     0x509d7b
509d65:	ff 74 24 10          	push   0x10(%esp)
509d69:	88 11                	mov    %dl,(%ecx)
509d6b:	03 c8                	add    %eax,%ecx
509d6d:	56                   	push   %esi
509d6e:	57                   	push   %edi
509d6f:	51                   	push   %ecx
509d70:	e8 8b 00 00 00       	call   0x509e00
509d75:	83 c4 10             	add    $0x10,%esp
509d78:	01 5d 00             	add    %ebx,0x0(%ebp)
509d7b:	5f                   	pop    %edi
509d7c:	5e                   	pop    %esi
509d7d:	5d                   	pop    %ebp
509d7e:	8b c3                	mov    %ebx,%eax
509d80:	5b                   	pop    %ebx
509d81:	59                   	pop    %ecx
509d82:	c3                   	ret
509d83:	cc                   	int3
509d84:	cc                   	int3
509d85:	cc                   	int3
509d86:	cc                   	int3
509d87:	cc                   	int3
509d88:	cc                   	int3
509d89:	cc                   	int3
509d8a:	cc                   	int3
509d8b:	cc                   	int3
509d8c:	cc                   	int3
509d8d:	cc                   	int3
509d8e:	cc                   	int3
509d8f:	cc                   	int3