509d90:	b8 10 00 00 00       	mov    $0x10,%eax
509d95:	e8 16 7a 0c 00       	call   0x5d17b0
509d9a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
509d9f:	33 c4                	xor    %esp,%eax
509da1:	89 44 24 0c          	mov    %eax,0xc(%esp)
509da5:	8b 44 24 14          	mov    0x14(%esp),%eax
509da9:	8b 54 24 18          	mov    0x18(%esp),%edx
509dad:	56                   	push   %esi
509dae:	57                   	push   %edi
509daf:	89 44 24 08          	mov    %eax,0x8(%esp)
509db3:	8d 74 24 14          	lea    0x14(%esp),%esi
509db7:	8b 44 24 24          	mov    0x24(%esp),%eax
509dbb:	bf 08 00 00 00       	mov    $0x8,%edi
509dc0:	4e                   	dec    %esi
509dc1:	4f                   	dec    %edi
509dc2:	88 16                	mov    %dl,(%esi)
509dc4:	0f ac c2 08          	shrd   $0x8,%eax,%edx
509dc8:	c1 e8 08             	shr    $0x8,%eax
509dcb:	8b ca                	mov    %edx,%ecx
509dcd:	0b c8                	or     %eax,%ecx
509dcf:	75 ef                	jne    0x509dc0
509dd1:	8d 44 24 08          	lea    0x8(%esp),%eax
509dd5:	50                   	push   %eax
509dd6:	ff 74 24 2c          	push   0x2c(%esp)
509dda:	b8 08 00 00 00       	mov    $0x8,%eax
509ddf:	2b c7                	sub    %edi,%eax
509de1:	50                   	push   %eax
509de2:	56                   	push   %esi
509de3:	e8 68 fe ff ff       	call   0x509c50
509de8:	8b 4c 24 24          	mov    0x24(%esp),%ecx
509dec:	83 c4 10             	add    $0x10,%esp
509def:	5f                   	pop    %edi
509df0:	5e                   	pop    %esi
509df1:	33 cc                	xor    %esp,%ecx
509df3:	e8 2e 7c 0c 00       	call   0x5d1a26
509df8:	83 c4 10             	add    $0x10,%esp
509dfb:	c3                   	ret
509dfc:	cc                   	int3
509dfd:	cc                   	int3
509dfe:	cc                   	int3
509dff:	cc                   	int3
509e00:	8a 4c 24 10          	mov    0x10(%esp),%cl
509e04:	53                   	push   %ebx
509e05:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
509e09:	56                   	push   %esi
509e0a:	8b 74 24 14          	mov    0x14(%esp),%esi
509e0e:	03 de                	add    %esi,%ebx
509e10:	57                   	push   %edi
509e11:	8b 7c 24 10          	mov    0x10(%esp),%edi
509e15:	0f b6 c1             	movzbl %cl,%eax
509e18:	03 fe                	add    %esi,%edi
509e1a:	83 e0 01             	and    $0x1,%eax
509e1d:	85 f6                	test   %esi,%esi
509e1f:	74 1f                	je     0x509e40
509e21:	0f b6 53 ff          	movzbl -0x1(%ebx),%edx
509e25:	8d 5b ff             	lea    -0x1(%ebx),%ebx
509e28:	0f b6 c9             	movzbl %cl,%ecx
509e2b:	8d 7f ff             	lea    -0x1(%edi),%edi
509e2e:	33 d1                	xor    %ecx,%edx
509e30:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
509e34:	03 c2                	add    %edx,%eax
509e36:	88 07                	mov    %al,(%edi)
509e38:	c1 e8 08             	shr    $0x8,%eax
509e3b:	83 ee 01             	sub    $0x1,%esi
509e3e:	75 e1                	jne    0x509e21
509e40:	5f                   	pop    %edi
509e41:	5e                   	pop    %esi
509e42:	5b                   	pop    %ebx
509e43:	c3                   	ret
509e44:	cc                   	int3
509e45:	cc                   	int3
509e46:	cc                   	int3
509e47:	cc                   	int3
509e48:	cc                   	int3
509e49:	cc                   	int3
509e4a:	cc                   	int3
509e4b:	cc                   	int3
509e4c:	cc                   	int3
509e4d:	cc                   	int3
509e4e:	cc                   	int3
509e4f:	cc                   	int3
509e50:	56                   	push   %esi
509e51:	8b 74 24 08          	mov    0x8(%esp),%esi
509e55:	85 f6                	test   %esi,%esi
509e57:	74 55                	je     0x509eae
509e59:	8b 46 08             	mov    0x8(%esi),%eax
509e5c:	85 c0                	test   %eax,%eax
509e5e:	74 11                	je     0x509e71
509e60:	f6 46 0c 10          	testb  $0x10,0xc(%esi)
509e64:	75 0b                	jne    0x509e71
509e66:	ff 36                	push   (%esi)
509e68:	50                   	push   %eax
509e69:	e8 72 7b ef ff       	call   0x4019e0
509e6e:	83 c4 08             	add    $0x8,%esp
509e71:	8b 46 0c             	mov    0xc(%esi),%eax
509e74:	57                   	push   %edi
509e75:	8b f8                	mov    %eax,%edi
509e77:	81 e7 80 00 00 00    	and    $0x80,%edi
509e7d:	a8 10                	test   $0x10,%al
509e7f:	75 15                	jne    0x509e96
509e81:	68 55 01 00 00       	push   $0x155
509e86:	68 28 ae 62 00       	push   $0x62ae28
509e8b:	ff 76 08             	push   0x8(%esi)
509e8e:	e8 ed 68 fd ff       	call   0x4e0780
509e93:	83 c4 0c             	add    $0xc,%esp
509e96:	85 ff                	test   %edi,%edi
509e98:	5f                   	pop    %edi
509e99:	75 13                	jne    0x509eae
509e9b:	68 57 01 00 00       	push   $0x157
509ea0:	68 28 ae 62 00       	push   $0x62ae28
509ea5:	56                   	push   %esi
509ea6:	e8 d5 68 fd ff       	call   0x4e0780
509eab:	83 c4 0c             	add    $0xc,%esp
509eae:	5e                   	pop    %esi
509eaf:	c3                   	ret
509eb0:	53                   	push   %ebx
509eb1:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
509eb5:	57                   	push   %edi
509eb6:	8b 7c 24 0c          	mov    0xc(%esp),%edi
509eba:	8b 0f                	mov    (%edi),%ecx
509ebc:	8b c1                	mov    %ecx,%eax
509ebe:	2b 03                	sub    (%ebx),%eax
509ec0:	75 65                	jne    0x509f27
509ec2:	8b 57 08             	mov    0x8(%edi),%edx
509ec5:	56                   	push   %esi
509ec6:	8b 73 08             	mov    0x8(%ebx),%esi
509ec9:	83 e9 04             	sub    $0x4,%ecx
509ecc:	72 13                	jb     0x509ee1
509ece:	66 90                	xchg   %ax,%ax
509ed0:	8b 02                	mov    (%edx),%eax
509ed2:	3b 06                	cmp    (%esi),%eax
509ed4:	75 10                	jne    0x509ee6
509ed6:	83 c2 04             	add    $0x4,%edx
509ed9:	83 c6 04             	add    $0x4,%esi
509edc:	83 e9 04             	sub    $0x4,%ecx
509edf:	73 ef                	jae    0x509ed0
509ee1:	83 f9 fc             	cmp    $0xfffffffc,%ecx
509ee4:	74 34                	je     0x509f1a
509ee6:	8a 02                	mov    (%edx),%al
509ee8:	3a 06                	cmp    (%esi),%al
509eea:	75 27                	jne    0x509f13
509eec:	83 f9 fd             	cmp    $0xfffffffd,%ecx
509eef:	74 29                	je     0x509f1a
509ef1:	8a 42 01             	mov    0x1(%edx),%al
509ef4:	3a 46 01             	cmp    0x1(%esi),%al
509ef7:	75 1a                	jne    0x509f13
509ef9:	83 f9 fe             	cmp    $0xfffffffe,%ecx
509efc:	74 1c                	je     0x509f1a
509efe:	8a 42 02             	mov    0x2(%edx),%al
509f01:	3a 46 02             	cmp    0x2(%esi),%al
509f04:	75 0d                	jne    0x509f13
509f06:	83 f9 ff             	cmp    $0xffffffff,%ecx
509f09:	74 0f                	je     0x509f1a
509f0b:	8a 42 03             	mov    0x3(%edx),%al
509f0e:	3a 46 03             	cmp    0x3(%esi),%al
509f11:	74 07                	je     0x509f1a
509f13:	1b c0                	sbb    %eax,%eax
509f15:	83 c8 01             	or     $0x1,%eax
509f18:	eb 02                	jmp    0x509f1c
509f1a:	33 c0                	xor    %eax,%eax
509f1c:	5e                   	pop    %esi
509f1d:	85 c0                	test   %eax,%eax
509f1f:	75 06                	jne    0x509f27
509f21:	8b 47 04             	mov    0x4(%edi),%eax
509f24:	2b 43 04             	sub    0x4(%ebx),%eax
509f27:	5f                   	pop    %edi
509f28:	5b                   	pop    %ebx
509f29:	c3                   	ret
509f2a:	cc                   	int3
509f2b:	cc                   	int3
509f2c:	cc                   	int3
509f2d:	cc                   	int3
509f2e:	cc                   	int3
509f2f:	cc                   	int3
509f30:	b8 04 00 00 00       	mov    $0x4,%eax
509f35:	e8 76 78 0c 00       	call   0x5d17b0
509f3a:	53                   	push   %ebx
509f3b:	55                   	push   %ebp
509f3c:	8b 6c 24 14          	mov    0x14(%esp),%ebp
509f40:	56                   	push   %esi
509f41:	57                   	push   %edi
509f42:	8b 7c 24 18          	mov    0x18(%esp),%edi
509f46:	85 ed                	test   %ebp,%ebp
509f48:	74 49                	je     0x509f93
509f4a:	8b 45 04             	mov    0x4(%ebp),%eax
509f4d:	89 47 04             	mov    %eax,0x4(%edi)
509f50:	8b 75 00             	mov    0x0(%ebp),%esi
509f53:	8b 4d 08             	mov    0x8(%ebp),%ecx
509f56:	89 4c 24 10          	mov    %ecx,0x10(%esp)
509f5a:	85 f6                	test   %esi,%esi
509f5c:	79 12                	jns    0x509f70
509f5e:	85 c9                	test   %ecx,%ecx
509f60:	74 31                	je     0x509f93
509f62:	8b f1                	mov    %ecx,%esi
509f64:	8d 56 01             	lea    0x1(%esi),%edx
509f67:	8a 06                	mov    (%esi),%al
509f69:	46                   	inc    %esi
509f6a:	84 c0                	test   %al,%al
509f6c:	75 f9                	jne    0x509f67
509f6e:	2b f2                	sub    %edx,%esi
509f70:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
509f76:	76 23                	jbe    0x509f9b
509f78:	68 22 01 00 00       	push   $0x122
509f7d:	68 28 ae 62 00       	push   $0x62ae28
509f82:	68 df 00 00 00       	push   $0xdf
509f87:	6a 00                	push   $0x0
509f89:	6a 0d                	push   $0xd
509f8b:	e8 f0 ef fc ff       	call   0x4d8f80
509f90:	83 c4 14             	add    $0x14,%esp
509f93:	5f                   	pop    %edi
509f94:	5e                   	pop    %esi
509f95:	5d                   	pop    %ebp
509f96:	33 c0                	xor    %eax,%eax
509f98:	5b                   	pop    %ebx
509f99:	59                   	pop    %ecx
509f9a:	c3                   	ret
509f9b:	8d 5f 08             	lea    0x8(%edi),%ebx
509f9e:	39 37                	cmp    %esi,(%edi)
509fa0:	76 06                	jbe    0x509fa8
509fa2:	8b 03                	mov    (%ebx),%eax
509fa4:	85 c0                	test   %eax,%eax
509fa6:	75 50                	jne    0x509ff8
509fa8:	8b 0b                	mov    (%ebx),%ecx
509faa:	8d 46 01             	lea    0x1(%esi),%eax
509fad:	68 27 01 00 00       	push   $0x127
509fb2:	68 28 ae 62 00       	push   $0x62ae28
509fb7:	50                   	push   %eax
509fb8:	51                   	push   %ecx
509fb9:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
509fbd:	e8 de 67 fd ff       	call   0x4e07a0
509fc2:	83 c4 10             	add    $0x10,%esp
509fc5:	89 03                	mov    %eax,(%ebx)
509fc7:	85 c0                	test   %eax,%eax
509fc9:	75 29                	jne    0x509ff4
509fcb:	68 29 01 00 00       	push   $0x129
509fd0:	68 28 ae 62 00       	push   $0x62ae28
509fd5:	6a 41                	push   $0x41
509fd7:	68 ba 00 00 00       	push   $0xba
509fdc:	6a 0d                	push   $0xd
509fde:	e8 9d ef fc ff       	call   0x4d8f80
509fe3:	8b 44 24 30          	mov    0x30(%esp),%eax
509fe7:	83 c4 14             	add    $0x14,%esp
509fea:	89 03                	mov    %eax,(%ebx)
509fec:	33 c0                	xor    %eax,%eax
509fee:	5f                   	pop    %edi
509fef:	5e                   	pop    %esi
509ff0:	5d                   	pop    %ebp
509ff1:	5b                   	pop    %ebx
509ff2:	59                   	pop    %ecx
509ff3:	c3                   	ret
509ff4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
509ff8:	89 37                	mov    %esi,(%edi)
509ffa:	85 c9                	test   %ecx,%ecx
509ffc:	74 11                	je     0x50a00f
509ffe:	56                   	push   %esi
509fff:	51                   	push   %ecx
50a000:	50                   	push   %eax
50a001:	e8 ca 8d 0c 00       	call   0x5d2dd0
50a006:	8b 03                	mov    (%ebx),%eax
50a008:	83 c4 0c             	add    $0xc,%esp
50a00b:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
50a00f:	81 67 0c 80 00 00 00 	andl   $0x80,0xc(%edi)
50a016:	8b 45 0c             	mov    0xc(%ebp),%eax
50a019:	25 7f ff ff ff       	and    $0xffffff7f,%eax
50a01e:	09 47 0c             	or     %eax,0xc(%edi)
50a021:	b8 01 00 00 00       	mov    $0x1,%eax
50a026:	5f                   	pop    %edi
50a027:	5e                   	pop    %esi
50a028:	5d                   	pop    %ebp
50a029:	5b                   	pop    %ebx
50a02a:	59                   	pop    %ecx
50a02b:	c3                   	ret
50a02c:	cc                   	int3
50a02d:	cc                   	int3
50a02e:	cc                   	int3
50a02f:	cc                   	int3
50a030:	b8 04 00 00 00       	mov    $0x4,%eax
50a035:	e8 76 77 0c 00       	call   0x5d17b0
50a03a:	53                   	push   %ebx
50a03b:	55                   	push   %ebp
50a03c:	8b 6c 24 10          	mov    0x10(%esp),%ebp
50a040:	56                   	push   %esi
50a041:	57                   	push   %edi
50a042:	85 ed                	test   %ebp,%ebp
50a044:	74 35                	je     0x50a07b
50a046:	68 47 01 00 00       	push   $0x147
50a04b:	68 28 ae 62 00       	push   $0x62ae28
50a050:	6a 10                	push   $0x10
50a052:	e8 e9 69 fd ff       	call   0x4e0a40
50a057:	8b f8                	mov    %eax,%edi
50a059:	83 c4 0c             	add    $0xc,%esp
50a05c:	85 ff                	test   %edi,%edi
50a05e:	75 23                	jne    0x50a083
50a060:	68 49 01 00 00       	push   $0x149
50a065:	68 28 ae 62 00       	push   $0x62ae28
50a06a:	6a 41                	push   $0x41
50a06c:	68 82 00 00 00       	push   $0x82
50a071:	6a 0d                	push   $0xd
50a073:	e8 08 ef fc ff       	call   0x4d8f80
50a078:	83 c4 14             	add    $0x14,%esp
50a07b:	5f                   	pop    %edi
50a07c:	5e                   	pop    %esi
50a07d:	5d                   	pop    %ebp
50a07e:	33 c0                	xor    %eax,%eax
50a080:	5b                   	pop    %ebx
50a081:	59                   	pop    %ecx
50a082:	c3                   	ret
50a083:	c7 47 04 04 00 00 00 	movl   $0x4,0x4(%edi)
50a08a:	8b 45 04             	mov    0x4(%ebp),%eax
50a08d:	89 47 04             	mov    %eax,0x4(%edi)
50a090:	8b 75 00             	mov    0x0(%ebp),%esi
50a093:	8b 4d 08             	mov    0x8(%ebp),%ecx
50a096:	89 4c 24 10          	mov    %ecx,0x10(%esp)
50a09a:	85 f6                	test   %esi,%esi
50a09c:	79 1b                	jns    0x50a0b9
50a09e:	85 c9                	test   %ecx,%ecx
50a0a0:	0f 84 8a 00 00 00    	je     0x50a130
50a0a6:	8b f1                	mov    %ecx,%esi
50a0a8:	8d 56 01             	lea    0x1(%esi),%edx
50a0ab:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50a0b0:	8a 06                	mov    (%esi),%al
50a0b2:	46                   	inc    %esi
50a0b3:	84 c0                	test   %al,%al
50a0b5:	75 f9                	jne    0x50a0b0
50a0b7:	2b f2                	sub    %edx,%esi
50a0b9:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
50a0bf:	76 1a                	jbe    0x50a0db
50a0c1:	68 22 01 00 00       	push   $0x122
50a0c6:	68 28 ae 62 00       	push   $0x62ae28
50a0cb:	68 df 00 00 00       	push   $0xdf
50a0d0:	6a 00                	push   $0x0
50a0d2:	6a 0d                	push   $0xd
50a0d4:	e8 a7 ee fc ff       	call   0x4d8f80
50a0d9:	eb 52                	jmp    0x50a12d
50a0db:	8d 5f 08             	lea    0x8(%edi),%ebx
50a0de:	39 37                	cmp    %esi,(%edi)
50a0e0:	76 0a                	jbe    0x50a0ec
50a0e2:	8b 03                	mov    (%ebx),%eax
50a0e4:	85 c0                	test   %eax,%eax
50a0e6:	0f 85 8f 00 00 00    	jne    0x50a17b
50a0ec:	8b 0b                	mov    (%ebx),%ecx
50a0ee:	8d 46 01             	lea    0x1(%esi),%eax
50a0f1:	68 27 01 00 00       	push   $0x127
50a0f6:	68 28 ae 62 00       	push   $0x62ae28
50a0fb:	50                   	push   %eax
50a0fc:	51                   	push   %ecx
50a0fd:	89 4c 24 28          	mov    %ecx,0x28(%esp)
50a101:	e8 9a 66 fd ff       	call   0x4e07a0
50a106:	83 c4 10             	add    $0x10,%esp
50a109:	89 03                	mov    %eax,(%ebx)