510b4b:	68 59 fe 00 00       	push   $0xfe59
510b50:	e8 5b f2 00 00       	call   0x51fdb0
510b55:	83 c4 04             	add    $0x4,%esp
510b58:	89 06                	mov    %eax,(%esi)
510b5a:	eb 31                	jmp    0x510b8d
510b5c:	8b 59 04             	mov    0x4(%ecx),%ebx
510b5f:	8a 45 10             	mov    0x10(%ebp),%al
510b62:	03 da                	add    %edx,%ebx
510b64:	8b 7d 14             	mov    0x14(%ebp),%edi
510b67:	3a 03                	cmp    (%ebx),%al
510b69:	75 09                	jne    0x510b74
510b6b:	8b 43 01             	mov    0x1(%ebx),%eax
510b6e:	0f c8                	bswap  %eax
510b70:	3b c7                	cmp    %edi,%eax
510b72:	74 1c                	je     0x510b90
510b74:	51                   	push   %ecx
510b75:	e8 c6 2d 02 00       	call   0x533940
510b7a:	83 c4 04             	add    $0x4,%esp
510b7d:	89 06                	mov    %eax,(%esi)
510b7f:	85 c0                	test   %eax,%eax
510b81:	75 0a                	jne    0x510b8d
510b83:	8a 45 10             	mov    0x10(%ebp),%al
510b86:	0f cf                	bswap  %edi
510b88:	88 03                	mov    %al,(%ebx)
510b8a:	89 7b 01             	mov    %edi,0x1(%ebx)
510b8d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
510b90:	85 c9                	test   %ecx,%ecx
510b92:	74 09                	je     0x510b9d
510b94:	51                   	push   %ecx
510b95:	e8 16 2d 02 00       	call   0x5338b0
510b9a:	83 c4 04             	add    $0x4,%esp
510b9d:	5f                   	pop    %edi
510b9e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
510ba1:	5e                   	pop    %esi
510ba2:	33 cd                	xor    %ebp,%ecx
510ba4:	5b                   	pop    %ebx
510ba5:	e8 30 09 0d 00       	call   0x5e14da
510baa:	8b e5                	mov    %ebp,%esp
510bac:	5d                   	pop    %ebp
510bad:	c3                   	ret
510bae:	cc                   	int3
510baf:	cc                   	int3
510bb0:	55                   	push   %ebp
510bb1:	8b ec                	mov    %esp,%ebp
510bb3:	83 ec 1c             	sub    $0x1c,%esp
510bb6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
510bbb:	33 c5                	xor    %ebp,%eax
510bbd:	89 45 fc             	mov    %eax,-0x4(%ebp)
510bc0:	53                   	push   %ebx
510bc1:	8b 5d 08             	mov    0x8(%ebp),%ebx
510bc4:	56                   	push   %esi
510bc5:	8b 75 10             	mov    0x10(%ebp),%esi
510bc8:	57                   	push   %edi
510bc9:	8b 7d 14             	mov    0x14(%ebp),%edi
510bcc:	83 3f 00             	cmpl   $0x0,(%edi)
510bcf:	75 64                	jne    0x510c35
510bd1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
510bd4:	50                   	push   %eax
510bd5:	8b 43 50             	mov    0x50(%ebx),%eax
510bd8:	56                   	push   %esi
510bd9:	53                   	push   %ebx
510bda:	ff d0                	call   *%eax
510bdc:	0f b7 55 f4          	movzwl -0xc(%ebp),%edx
510be0:	83 c4 0c             	add    $0xc,%esp
510be3:	3b 55 f0             	cmp    -0x10(%ebp),%edx
510be6:	73 4d                	jae    0x510c35
510be8:	8b 45 0c             	mov    0xc(%ebp),%eax
510beb:	8b 48 3c             	mov    0x3c(%eax),%ecx
510bee:	3b ce                	cmp    %esi,%ecx
510bf0:	72 27                	jb     0x510c19
510bf2:	8d 04 32             	lea    (%edx,%esi,1),%eax
510bf5:	3b c8                	cmp    %eax,%ecx
510bf7:	73 20                	jae    0x510c19
510bf9:	68 c8 ff 00 00       	push   $0xffc8
510bfe:	e8 ad f1 00 00       	call   0x51fdb0
510c03:	83 c4 04             	add    $0x4,%esp
510c06:	89 07                	mov    %eax,(%edi)
510c08:	5f                   	pop    %edi
510c09:	5e                   	pop    %esi
510c0a:	5b                   	pop    %ebx
510c0b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
510c0e:	33 cd                	xor    %ebp,%ecx
510c10:	e8 c5 08 0d 00       	call   0x5e14da
510c15:	8b e5                	mov    %ebp,%esp
510c17:	5d                   	pop    %ebp
510c18:	c3                   	ret
510c19:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
510c1d:	57                   	push   %edi
510c1e:	ff 73 04             	push   0x4(%ebx)
510c21:	8b 44 30 fc          	mov    -0x4(%eax,%esi,1),%eax
510c25:	6a 03                	push   $0x3
510c27:	0f c8                	bswap  %eax
510c29:	50                   	push   %eax
510c2a:	ff 73 34             	push   0x34(%ebx)
510c2d:	e8 5e fe ff ff       	call   0x510a90
510c32:	83 c4 14             	add    $0x14,%esp
510c35:	8b 4d fc             	mov    -0x4(%ebp),%ecx
510c38:	5f                   	pop    %edi
510c39:	5e                   	pop    %esi
510c3a:	33 cd                	xor    %ebp,%ecx
510c3c:	5b                   	pop    %ebx
510c3d:	e8 98 08 0d 00       	call   0x5e14da
510c42:	8b e5                	mov    %ebp,%esp
510c44:	5d                   	pop    %ebp
510c45:	c3                   	ret
510c46:	cc                   	int3
510c47:	cc                   	int3
510c48:	cc                   	int3
510c49:	cc                   	int3
510c4a:	cc                   	int3
510c4b:	cc                   	int3
510c4c:	cc                   	int3
510c4d:	cc                   	int3
510c4e:	cc                   	int3
510c4f:	cc                   	int3
510c50:	55                   	push   %ebp
510c51:	8b ec                	mov    %esp,%ebp
510c53:	83 ec 20             	sub    $0x20,%esp
510c56:	a1 d4 89 72 00       	mov    0x7289d4,%eax
510c5b:	33 c5                	xor    %ebp,%eax
510c5d:	89 45 fc             	mov    %eax,-0x4(%ebp)
510c60:	53                   	push   %ebx
510c61:	8b 5d 10             	mov    0x10(%ebp),%ebx
510c64:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
510c6b:	56                   	push   %esi
510c6c:	8b 75 0c             	mov    0xc(%ebp),%esi
510c6f:	57                   	push   %edi
510c70:	8b 7d 08             	mov    0x8(%ebp),%edi
510c73:	89 7d e0             	mov    %edi,-0x20(%ebp)
510c76:	85 db                	test   %ebx,%ebx
510c78:	74 51                	je     0x510ccb
510c7a:	f7 46 04 00 20 00 00 	testl  $0x2000,0x4(%esi)
510c81:	75 48                	jne    0x510ccb
510c83:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
510c87:	75 42                	jne    0x510ccb
510c89:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
510c8d:	75 3c                	jne    0x510ccb
510c8f:	80 3b 2c             	cmpb   $0x2c,(%ebx)
510c92:	8b 45 18             	mov    0x18(%ebp),%eax
510c95:	75 1f                	jne    0x510cb6
510c97:	50                   	push   %eax
510c98:	ff 75 14             	push   0x14(%ebp)
510c9b:	ff 73 10             	push   0x10(%ebx)
510c9e:	56                   	push   %esi
510c9f:	57                   	push   %edi
510ca0:	e8 ab ff ff ff       	call   0x510c50
510ca5:	8b 5b 0c             	mov    0xc(%ebx),%ebx
510ca8:	83 c4 14             	add    $0x14,%esp
510cab:	01 45 e4             	add    %eax,-0x1c(%ebp)
510cae:	8b 45 18             	mov    0x18(%ebp),%eax
510cb1:	80 3b 2c             	cmpb   $0x2c,(%ebx)
510cb4:	74 e1                	je     0x510c97
510cb6:	85 c0                	test   %eax,%eax
510cb8:	74 24                	je     0x510cde
510cba:	f6 43 04 01          	testb  $0x1,0x4(%ebx)
510cbe:	74 0b                	je     0x510ccb
510cc0:	0f bf 43 24          	movswl 0x24(%ebx),%eax
510cc4:	8b 4d 14             	mov    0x14(%ebp),%ecx
510cc7:	3b c1                	cmp    %ecx,%eax
510cc9:	74 16                	je     0x510ce1
510ccb:	5f                   	pop    %edi
510ccc:	5e                   	pop    %esi
510ccd:	33 c0                	xor    %eax,%eax
510ccf:	5b                   	pop    %ebx
510cd0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
510cd3:	33 cd                	xor    %ebp,%ecx
510cd5:	e8 00 08 0d 00       	call   0x5e14da
510cda:	8b e5                	mov    %ebp,%esp
510cdc:	5d                   	pop    %ebp
510cdd:	c3                   	ret
510cde:	8b 4d 14             	mov    0x14(%ebp),%ecx
510ce1:	f6 43 04 01          	testb  $0x1,0x4(%ebx)
510ce5:	74 08                	je     0x510cef
510ce7:	0f bf 43 24          	movswl 0x24(%ebx),%eax
510ceb:	3b c1                	cmp    %ecx,%eax
510ced:	75 dc                	jne    0x510ccb
510cef:	51                   	push   %ecx
510cf0:	53                   	push   %ebx
510cf1:	e8 da 67 01 00       	call   0x5274d0
510cf6:	83 c4 08             	add    $0x8,%esp
510cf9:	85 c0                	test   %eax,%eax
510cfb:	74 70                	je     0x510d6d
510cfd:	ff 45 e4             	incl   -0x1c(%ebp)
510d00:	6a 00                	push   $0x0
510d02:	6a 00                	push   $0x0
510d04:	53                   	push   %ebx
510d05:	ff 37                	push   (%edi)
510d07:	e8 54 fb fe ff       	call   0x500860
510d0c:	8b f8                	mov    %eax,%edi
510d0e:	6a ff                	push   $0xffffffff
510d10:	57                   	push   %edi
510d11:	e8 ea 7c 04 00       	call   0x558a00
510d16:	8b 45 e0             	mov    -0x20(%ebp),%eax
510d19:	89 45 e8             	mov    %eax,-0x18(%ebp)
510d1c:	8b 45 14             	mov    0x14(%ebp),%eax
510d1f:	89 45 ec             	mov    %eax,-0x14(%ebp)
510d22:	89 45 f0             	mov    %eax,-0x10(%ebp)
510d25:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
510d2c:	8b 46 1c             	mov    0x1c(%esi),%eax
510d2f:	89 45 f8             	mov    %eax,-0x8(%ebp)
510d32:	8d 45 e8             	lea    -0x18(%ebp),%eax
510d35:	57                   	push   %edi
510d36:	50                   	push   %eax
510d37:	e8 d4 6e 04 00       	call   0x557c10
510d3c:	8b 7d e0             	mov    -0x20(%ebp),%edi
510d3f:	83 c4 20             	add    $0x20,%esp
510d42:	f6 46 04 08          	testb  $0x8,0x4(%esi)
510d46:	50                   	push   %eax
510d47:	74 0e                	je     0x510d57
510d49:	ff 76 2c             	push   0x2c(%esi)
510d4c:	57                   	push   %edi
510d4d:	e8 ae 2a 01 00       	call   0x523800
510d52:	89 46 2c             	mov    %eax,0x2c(%esi)
510d55:	eb 0c                	jmp    0x510d63
510d57:	ff 76 24             	push   0x24(%esi)
510d5a:	57                   	push   %edi
510d5b:	e8 a0 2a 01 00       	call   0x523800
510d60:	89 46 24             	mov    %eax,0x24(%esi)
510d63:	8b 76 34             	mov    0x34(%esi),%esi
510d66:	83 c4 0c             	add    $0xc,%esp
510d69:	85 f6                	test   %esi,%esi
510d6b:	75 93                	jne    0x510d00
510d6d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
510d70:	8b 45 e4             	mov    -0x1c(%ebp),%eax
510d73:	33 cd                	xor    %ebp,%ecx
510d75:	5f                   	pop    %edi
510d76:	5e                   	pop    %esi
510d77:	5b                   	pop    %ebx
510d78:	e8 5d 07 0d 00       	call   0x5e14da
510d7d:	8b e5                	mov    %ebp,%esp
510d7f:	5d                   	pop    %ebp
510d80:	c3                   	ret
510d81:	cc                   	int3
510d82:	cc                   	int3
510d83:	cc                   	int3
510d84:	cc                   	int3
510d85:	cc                   	int3
510d86:	cc                   	int3
510d87:	cc                   	int3
510d88:	cc                   	int3
510d89:	cc                   	int3
510d8a:	cc                   	int3
510d8b:	cc                   	int3
510d8c:	cc                   	int3
510d8d:	cc                   	int3
510d8e:	cc                   	int3
510d8f:	cc                   	int3
510d90:	55                   	push   %ebp
510d91:	8b ec                	mov    %esp,%ebp
510d93:	83 ec 20             	sub    $0x20,%esp
510d96:	53                   	push   %ebx
510d97:	8b 5d 08             	mov    0x8(%ebp),%ebx
510d9a:	56                   	push   %esi
510d9b:	57                   	push   %edi
510d9c:	8b 7d 0c             	mov    0xc(%ebp),%edi
510d9f:	8b 73 08             	mov    0x8(%ebx),%esi
510da2:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
510da9:	0f b6 4f 20          	movzbl 0x20(%edi),%ecx
510dad:	8b 07                	mov    (%edi),%eax
510daf:	f7 d1                	not    %ecx
510db1:	83 e1 01             	and    $0x1,%ecx
510db4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
510db7:	8b 00                	mov    (%eax),%eax
510db9:	03 c8                	add    %eax,%ecx
510dbb:	03 4d 1c             	add    0x1c(%ebp),%ecx
510dbe:	89 45 f8             	mov    %eax,-0x8(%ebp)
510dc1:	8b 47 04             	mov    0x4(%edi),%eax
510dc4:	89 45 ec             	mov    %eax,-0x14(%ebp)
510dc7:	33 c0                	xor    %eax,%eax
510dc9:	89 45 e0             	mov    %eax,-0x20(%ebp)
510dcc:	8b 45 20             	mov    0x20(%ebp),%eax
510dcf:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
510dd2:	85 c0                	test   %eax,%eax
510dd4:	74 07                	je     0x510ddd
510dd6:	8b 55 14             	mov    0x14(%ebp),%edx
510dd9:	2b d0                	sub    %eax,%edx
510ddb:	eb 0b                	jmp    0x510de8
510ddd:	8b 43 2c             	mov    0x2c(%ebx),%eax
510de0:	8d 50 01             	lea    0x1(%eax),%edx
510de3:	03 c1                	add    %ecx,%eax
510de5:	89 43 2c             	mov    %eax,0x2c(%ebx)
510de8:	8b 4d 10             	mov    0x10(%ebp),%ecx
510deb:	89 55 fc             	mov    %edx,-0x4(%ebp)
510dee:	8b 41 0c             	mov    0xc(%ecx),%eax
510df1:	85 c0                	test   %eax,%eax
510df3:	74 03                	je     0x510df8
510df5:	40                   	inc    %eax
510df6:	eb 03                	jmp    0x510dfb
510df8:	8b 41 08             	mov    0x8(%ecx),%eax
510dfb:	ff 4b 38             	decl   0x38(%ebx)
510dfe:	8b 4d 18             	mov    0x18(%ebp),%ecx
510e01:	85 c9                	test   %ecx,%ecx
510e03:	89 45 e8             	mov    %eax,-0x18(%ebp)
510e06:	8b 43 38             	mov    0x38(%ebx),%eax
510e09:	89 47 18             	mov    %eax,0x18(%edi)
510e0c:	0f 95 c0             	setne  %al
510e0f:	8d 04 85 01 00 00 00 	lea    0x1(,%eax,4),%eax
510e16:	50                   	push   %eax
510e17:	51                   	push   %ecx
510e18:	52                   	push   %edx
510e19:	ff 37                	push   (%edi)
510e1b:	53                   	push   %ebx
510e1c:	e8 af 2e 01 00       	call   0x523cd0
510e21:	8b 4d f4             	mov    -0xc(%ebp),%ecx
510e24:	83 c4 14             	add    $0x14,%esp
510e27:	8b 55 fc             	mov    -0x4(%ebp),%edx
510e2a:	85 c9                	test   %ecx,%ecx
510e2c:	74 62                	je     0x510e90
510e2e:	8b 4f 08             	mov    0x8(%edi),%ecx
510e31:	8b 45 f8             	mov    -0x8(%ebp),%eax
510e34:	89 4d 18             	mov    %ecx,0x18(%ebp)
510e37:	03 c2                	add    %edx,%eax
510e39:	8b 4e 6c             	mov    0x6c(%esi),%ecx
510e3c:	39 4e 70             	cmp    %ecx,0x70(%esi)
510e3f:	7f 16                	jg     0x510e57
510e41:	6a 00                	push   $0x0
510e43:	50                   	push   %eax
510e44:	ff 75 18             	push   0x18(%ebp)
510e47:	6a 77                	push   $0x77
510e49:	56                   	push   %esi
510e4a:	e8 b1 56 ff ff       	call   0x506500
510e4f:	8b 55 fc             	mov    -0x4(%ebp),%edx
510e52:	83 c4 14             	add    $0x14,%esp
510e55:	eb 36                	jmp    0x510e8d
510e57:	8b 7d 18             	mov    0x18(%ebp),%edi
510e5a:	8d 41 01             	lea    0x1(%ecx),%eax
510e5d:	89 46 6c             	mov    %eax,0x6c(%esi)
510e60:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
510e63:	8b 46 68             	mov    0x68(%esi),%eax
510e66:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
510e6a:	8b 7d f8             	mov    -0x8(%ebp),%edi
510e6d:	03 fa                	add    %edx,%edi
510e6f:	c7 04 88 77 00 00 00 	movl   $0x77,(%eax,%ecx,4)
510e76:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
510e7a:	8b 7d 0c             	mov    0xc(%ebp),%edi
510e7d:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
510e84:	00
510e85:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
510e8c:	00
510e8d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
510e90:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
510e94:	75 1c                	jne    0x510eb2
510e96:	8b 45 1c             	mov    0x1c(%ebp),%eax
510e99:	85 c0                	test   %eax,%eax
510e9b:	7e 15                	jle    0x510eb2
510e9d:	50                   	push   %eax
510e9e:	8b 45 f8             	mov    -0x8(%ebp),%eax
510ea1:	03 c2                	add    %edx,%eax
510ea3:	03 c1                	add    %ecx,%eax
510ea5:	50                   	push   %eax