529e6f:	6a 00                	push   $0x0
529e71:	6a 02                	push   $0x2
529e73:	0f 45 f1             	cmovne %ecx,%esi
529e76:	68 13 03 00 00       	push   $0x313
529e7b:	6a 44                	push   $0x44
529e7d:	50                   	push   %eax
529e7e:	c6 46 15 01          	movb   $0x1,0x15(%esi)
529e82:	e8 09 7d 01 00       	call   0x541b90
529e87:	8b 45 08             	mov    0x8(%ebp),%eax
529e8a:	83 c4 1c             	add    $0x1c,%esp
529e8d:	8b 48 6c             	mov    0x6c(%eax),%ecx
529e90:	85 c9                	test   %ecx,%ecx
529e92:	7e 10                	jle    0x529ea4
529e94:	8b 40 68             	mov    0x68(%eax),%eax
529e97:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
529e9a:	ba 04 00 00 00       	mov    $0x4,%edx
529e9f:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
529ea4:	85 db                	test   %ebx,%ebx
529ea6:	74 26                	je     0x529ece
529ea8:	8b 4f 0c             	mov    0xc(%edi),%ecx
529eab:	f7 d3                	not    %ebx
529ead:	8b 41 3c             	mov    0x3c(%ecx),%eax
529eb0:	03 41 38             	add    0x38(%ecx),%eax
529eb3:	79 10                	jns    0x529ec5
529eb5:	53                   	push   %ebx
529eb6:	57                   	push   %edi
529eb7:	51                   	push   %ecx
529eb8:	e8 e3 98 fe ff       	call   0x5137a0
529ebd:	83 c4 0c             	add    $0xc,%esp
529ec0:	5f                   	pop    %edi
529ec1:	5b                   	pop    %ebx
529ec2:	5e                   	pop    %esi
529ec3:	5d                   	pop    %ebp
529ec4:	c3                   	ret
529ec5:	8b 49 40             	mov    0x40(%ecx),%ecx
529ec8:	8b 47 6c             	mov    0x6c(%edi),%eax
529ecb:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
529ece:	5f                   	pop    %edi
529ecf:	5b                   	pop    %ebx
529ed0:	5e                   	pop    %esi
529ed1:	5d                   	pop    %ebp
529ed2:	c3                   	ret
529ed3:	cc                   	int3
529ed4:	cc                   	int3
529ed5:	cc                   	int3
529ed6:	cc                   	int3
529ed7:	cc                   	int3
529ed8:	cc                   	int3
529ed9:	cc                   	int3
529eda:	cc                   	int3
529edb:	cc                   	int3
529edc:	cc                   	int3
529edd:	cc                   	int3
529ede:	cc                   	int3
529edf:	cc                   	int3
529ee0:	55                   	push   %ebp
529ee1:	8b ec                	mov    %esp,%ebp
529ee3:	83 ec 24             	sub    $0x24,%esp
529ee6:	8b 55 10             	mov    0x10(%ebp),%edx
529ee9:	8b 4a 28             	mov    0x28(%edx),%ecx
529eec:	8d 42 28             	lea    0x28(%edx),%eax
529eef:	53                   	push   %ebx
529ef0:	56                   	push   %esi
529ef1:	8b 5a 14             	mov    0x14(%edx),%ebx
529ef4:	33 f6                	xor    %esi,%esi
529ef6:	89 75 fc             	mov    %esi,-0x4(%ebp)
529ef9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
529efc:	89 45 e8             	mov    %eax,-0x18(%ebp)
529eff:	89 4d f4             	mov    %ecx,-0xc(%ebp)
529f02:	57                   	push   %edi
529f03:	83 fb 01             	cmp    $0x1,%ebx
529f06:	75 30                	jne    0x529f38
529f08:	8b 7d 0c             	mov    0xc(%ebp),%edi
529f0b:	0f b7 47 28          	movzwl 0x28(%edi),%eax
529f0f:	66 85 c0             	test   %ax,%ax
529f12:	78 5d                	js     0x529f71
529f14:	85 c9                	test   %ecx,%ecx
529f16:	74 17                	je     0x529f2f
529f18:	98                   	cwtl
529f19:	51                   	push   %ecx
529f1a:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
529f1d:	8b 47 04             	mov    0x4(%edi),%eax
529f20:	ff 34 88             	push   (%eax,%ecx,4)
529f23:	e8 08 3d 01 00       	call   0x53dc30
529f28:	83 c4 08             	add    $0x8,%esp
529f2b:	85 c0                	test   %eax,%eax
529f2d:	75 3f                	jne    0x529f6e
529f2f:	5f                   	pop    %edi
529f30:	5e                   	pop    %esi
529f31:	33 c0                	xor    %eax,%eax
529f33:	5b                   	pop    %ebx
529f34:	8b e5                	mov    %ebp,%esp
529f36:	5d                   	pop    %ebp
529f37:	c3                   	ret
529f38:	8b 75 18             	mov    0x18(%ebp),%esi
529f3b:	85 f6                	test   %esi,%esi
529f3d:	0f 84 98 00 00 00    	je     0x529fdb
529f43:	8d 04 9d 00 00 00 00 	lea    0x0(,%ebx,4),%eax
529f4a:	6a 00                	push   $0x0
529f4c:	50                   	push   %eax
529f4d:	8b 45 08             	mov    0x8(%ebp),%eax
529f50:	ff 30                	push   (%eax)
529f52:	e8 89 74 ff ff       	call   0x5213e0
529f57:	8b d0                	mov    %eax,%edx
529f59:	83 c4 0c             	add    $0xc,%esp
529f5c:	89 55 fc             	mov    %edx,-0x4(%ebp)
529f5f:	85 d2                	test   %edx,%edx
529f61:	0f 84 05 02 00 00    	je     0x52a16c
529f67:	8b 7d 0c             	mov    0xc(%ebp),%edi
529f6a:	89 16                	mov    %edx,(%esi)
529f6c:	8b f0                	mov    %eax,%esi
529f6e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
529f71:	8b 7f 08             	mov    0x8(%edi),%edi
529f74:	89 7d f0             	mov    %edi,-0x10(%ebp)
529f77:	85 ff                	test   %edi,%edi
529f79:	0f 84 48 01 00 00    	je     0x52a0c7
529f7f:	90                   	nop
529f80:	0f b7 47 32          	movzwl 0x32(%edi),%eax
529f84:	3b c3                	cmp    %ebx,%eax
529f86:	0f 85 29 01 00 00    	jne    0x52a0b5
529f8c:	80 7f 36 00          	cmpb   $0x0,0x36(%edi)
529f90:	0f 84 1f 01 00 00    	je     0x52a0b5
529f96:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
529f9a:	0f 85 15 01 00 00    	jne    0x52a0b5
529fa0:	85 c9                	test   %ecx,%ecx
529fa2:	75 3e                	jne    0x529fe2
529fa4:	8b 47 38             	mov    0x38(%edi),%eax
529fa7:	24 03                	and    $0x3,%al
529fa9:	3c 02                	cmp    $0x2,%al
529fab:	0f 85 04 01 00 00    	jne    0x52a0b5
529fb1:	85 f6                	test   %esi,%esi
529fb3:	74 18                	je     0x529fcd
529fb5:	85 db                	test   %ebx,%ebx
529fb7:	7e 14                	jle    0x529fcd
529fb9:	8b 55 10             	mov    0x10(%ebp),%edx
529fbc:	83 c2 24             	add    $0x24,%edx
529fbf:	90                   	nop
529fc0:	8b 02                	mov    (%edx),%eax
529fc2:	8d 52 08             	lea    0x8(%edx),%edx
529fc5:	89 04 8e             	mov    %eax,(%esi,%ecx,4)
529fc8:	41                   	inc    %ecx
529fc9:	3b cb                	cmp    %ebx,%ecx
529fcb:	7c f3                	jl     0x529fc0
529fcd:	8b 45 14             	mov    0x14(%ebp),%eax
529fd0:	89 38                	mov    %edi,(%eax)
529fd2:	33 c0                	xor    %eax,%eax
529fd4:	5f                   	pop    %edi
529fd5:	5e                   	pop    %esi
529fd6:	5b                   	pop    %ebx
529fd7:	8b e5                	mov    %ebp,%esp
529fd9:	5d                   	pop    %ebp
529fda:	c3                   	ret
529fdb:	8b 7d 0c             	mov    0xc(%ebp),%edi
529fde:	33 f6                	xor    %esi,%esi
529fe0:	eb 8f                	jmp    0x529f71
529fe2:	33 d2                	xor    %edx,%edx
529fe4:	89 55 f8             	mov    %edx,-0x8(%ebp)
529fe7:	85 db                	test   %ebx,%ebx
529fe9:	0f 8e be 00 00 00    	jle    0x52a0ad
529fef:	90                   	nop
529ff0:	8b 47 04             	mov    0x4(%edi),%eax
529ff3:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
529ff7:	66 85 c0             	test   %ax,%ax
529ffa:	0f 88 aa 00 00 00    	js     0x52a0aa
52a000:	98                   	cwtl
52a001:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52a004:	8b 45 0c             	mov    0xc(%ebp),%eax
52a007:	8b 40 04             	mov    0x4(%eax),%eax
52a00a:	8d 34 88             	lea    (%eax,%ecx,4),%esi
52a00d:	b9 40 1c 6b 00       	mov    $0x6b1c40,%ecx
52a012:	8b 46 08             	mov    0x8(%esi),%eax
52a015:	85 c0                	test   %eax,%eax
52a017:	0f 45 c8             	cmovne %eax,%ecx
52a01a:	8b 47 20             	mov    0x20(%edi),%eax
52a01d:	c1 e2 02             	shl    $0x2,%edx
52a020:	51                   	push   %ecx
52a021:	89 55 e0             	mov    %edx,-0x20(%ebp)
52a024:	ff 34 10             	push   (%eax,%edx,1)
52a027:	e8 04 3c 01 00       	call   0x53dc30
52a02c:	83 c4 08             	add    $0x8,%esp
52a02f:	85 c0                	test   %eax,%eax
52a031:	75 74                	jne    0x52a0a7
52a033:	8b 0e                	mov    (%esi),%ecx
52a035:	33 ff                	xor    %edi,%edi
52a037:	8b 5d e8             	mov    -0x18(%ebp),%ebx
52a03a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
52a03d:	0f 1f 00             	nopl   (%eax)
52a040:	8b 03                	mov    (%ebx),%eax
52a042:	8b f1                	mov    %ecx,%esi
52a044:	2b f0                	sub    %eax,%esi
52a046:	0f b6 10             	movzbl (%eax),%edx
52a049:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
52a04d:	3b d1                	cmp    %ecx,%edx
52a04f:	75 33                	jne    0x52a084
52a051:	85 d2                	test   %edx,%edx
52a053:	75 41                	jne    0x52a096
52a055:	8b 75 fc             	mov    -0x4(%ebp),%esi
52a058:	85 f6                	test   %esi,%esi
52a05a:	74 0d                	je     0x52a069
52a05c:	8b 45 10             	mov    0x10(%ebp),%eax
52a05f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
52a062:	8b 44 f8 24          	mov    0x24(%eax,%edi,8),%eax
52a066:	89 04 31             	mov    %eax,(%ecx,%esi,1)
52a069:	8b 5d ec             	mov    -0x14(%ebp),%ebx
52a06c:	3b fb                	cmp    %ebx,%edi
52a06e:	8b 55 f8             	mov    -0x8(%ebp),%edx
52a071:	8b 7d f0             	mov    -0x10(%ebp),%edi
52a074:	74 34                	je     0x52a0aa
52a076:	42                   	inc    %edx
52a077:	89 55 f8             	mov    %edx,-0x8(%ebp)
52a07a:	3b d3                	cmp    %ebx,%edx
52a07c:	0f 8c 6e ff ff ff    	jl     0x529ff0
52a082:	eb 26                	jmp    0x52a0aa
52a084:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
52a08b:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
52a092:	2b d1                	sub    %ecx,%edx
52a094:	75 03                	jne    0x52a099
52a096:	40                   	inc    %eax
52a097:	eb ad                	jmp    0x52a046
52a099:	47                   	inc    %edi
52a09a:	83 c3 08             	add    $0x8,%ebx
52a09d:	3b 7d ec             	cmp    -0x14(%ebp),%edi
52a0a0:	7d c7                	jge    0x52a069
52a0a2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
52a0a5:	eb 99                	jmp    0x52a040
52a0a7:	8b 55 f8             	mov    -0x8(%ebp),%edx
52a0aa:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a0ad:	3b d3                	cmp    %ebx,%edx
52a0af:	0f 84 18 ff ff ff    	je     0x529fcd
52a0b5:	8b 7f 14             	mov    0x14(%edi),%edi
52a0b8:	89 7d f0             	mov    %edi,-0x10(%ebp)
52a0bb:	85 ff                	test   %edi,%edi
52a0bd:	74 08                	je     0x52a0c7
52a0bf:	8b 75 fc             	mov    -0x4(%ebp),%esi
52a0c2:	e9 b9 fe ff ff       	jmp    0x529f80
52a0c7:	8b 5d 08             	mov    0x8(%ebp),%ebx
52a0ca:	80 bb 92 00 00 00 00 	cmpb   $0x0,0x92(%ebx)
52a0d1:	75 18                	jne    0x52a0eb
52a0d3:	8b 45 10             	mov    0x10(%ebp),%eax
52a0d6:	ff 70 08             	push   0x8(%eax)
52a0d9:	8b 00                	mov    (%eax),%eax
52a0db:	ff 30                	push   (%eax)
52a0dd:	68 6c a8 6b 00       	push   $0x6ba86c
52a0e2:	53                   	push   %ebx
52a0e3:	e8 78 91 ff ff       	call   0x523260
52a0e8:	83 c4 10             	add    $0x10,%esp
52a0eb:	8b 55 fc             	mov    -0x4(%ebp),%edx
52a0ee:	8b 0b                	mov    (%ebx),%ecx
52a0f0:	85 d2                	test   %edx,%edx
52a0f2:	74 78                	je     0x52a16c
52a0f4:	85 c9                	test   %ecx,%ecx
52a0f6:	74 6b                	je     0x52a163
52a0f8:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
52a0ff:	74 16                	je     0x52a117
52a101:	52                   	push   %edx
52a102:	51                   	push   %ecx
52a103:	e8 68 f3 fd ff       	call   0x509470
52a108:	83 c4 08             	add    $0x8,%esp
52a10b:	b8 01 00 00 00       	mov    $0x1,%eax
52a110:	5f                   	pop    %edi
52a111:	5e                   	pop    %esi
52a112:	5b                   	pop    %ebx
52a113:	8b e5                	mov    %ebp,%esp
52a115:	5d                   	pop    %ebp
52a116:	c3                   	ret
52a117:	3b 91 4c 01 00 00    	cmp    0x14c(%ecx),%edx
52a11d:	73 44                	jae    0x52a163
52a11f:	3b 91 44 01 00 00    	cmp    0x144(%ecx),%edx
52a125:	72 1a                	jb     0x52a141
52a127:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
52a12d:	5f                   	pop    %edi
52a12e:	89 02                	mov    %eax,(%edx)
52a130:	b8 01 00 00 00       	mov    $0x1,%eax
52a135:	5e                   	pop    %esi
52a136:	89 91 40 01 00 00    	mov    %edx,0x140(%ecx)
52a13c:	5b                   	pop    %ebx
52a13d:	8b e5                	mov    %ebp,%esp
52a13f:	5d                   	pop    %ebp
52a140:	c3                   	ret
52a141:	3b 91 48 01 00 00    	cmp    0x148(%ecx),%edx
52a147:	72 1a                	jb     0x52a163
52a149:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
52a14f:	5f                   	pop    %edi
52a150:	89 02                	mov    %eax,(%edx)
52a152:	b8 01 00 00 00       	mov    $0x1,%eax
52a157:	5e                   	pop    %esi
52a158:	89 91 38 01 00 00    	mov    %edx,0x138(%ecx)
52a15e:	5b                   	pop    %ebx
52a15f:	8b e5                	mov    %ebp,%esp
52a161:	5d                   	pop    %ebp
52a162:	c3                   	ret
52a163:	52                   	push   %edx
52a164:	e8 27 0c fc ff       	call   0x4ead90
52a169:	83 c4 04             	add    $0x4,%esp
52a16c:	5f                   	pop    %edi
52a16d:	5e                   	pop    %esi
52a16e:	b8 01 00 00 00       	mov    $0x1,%eax
52a173:	5b                   	pop    %ebx
52a174:	8b e5                	mov    %ebp,%esp
52a176:	5d                   	pop    %ebp
52a177:	c3                   	ret
52a178:	cc                   	int3
52a179:	cc                   	int3
52a17a:	cc                   	int3
52a17b:	cc                   	int3
52a17c:	cc                   	int3
52a17d:	cc                   	int3
52a17e:	cc                   	int3
52a17f:	cc                   	int3
52a180:	55                   	push   %ebp
52a181:	8b ec                	mov    %esp,%ebp
52a183:	51                   	push   %ecx
52a184:	8b 45 08             	mov    0x8(%ebp),%eax
52a187:	56                   	push   %esi
52a188:	33 f6                	xor    %esi,%esi
52a18a:	8b 00                	mov    (%eax),%eax
52a18c:	8b 40 20             	mov    0x20(%eax),%eax
52a18f:	25 00 40 00 00       	and    $0x4000,%eax
52a194:	0b c6                	or     %esi,%eax
52a196:	0f 84 b6 00 00 00    	je     0x52a252
52a19c:	53                   	push   %ebx
52a19d:	57                   	push   %edi
52a19e:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a1a1:	8b 5f 10             	mov    0x10(%edi),%ebx
52a1a4:	85 db                	test   %ebx,%ebx
52a1a6:	74 31                	je     0x52a1d9
52a1a8:	8b 7b 14             	mov    0x14(%ebx),%edi
52a1ab:	85 ff                	test   %edi,%edi
52a1ad:	7e 20                	jle    0x52a1cf
52a1af:	8d 53 24             	lea    0x24(%ebx),%edx
52a1b2:	8b 0a                	mov    (%edx),%ecx
52a1b4:	83 f9 1f             	cmp    $0x1f,%ecx
52a1b7:	7e 05                	jle    0x52a1be
52a1b9:	83 c8 ff             	or     $0xffffffff,%eax
52a1bc:	eb 07                	jmp    0x52a1c5
52a1be:	b8 01 00 00 00       	mov    $0x1,%eax
52a1c3:	d3 e0                	shl    %cl,%eax
52a1c5:	0b f0                	or     %eax,%esi
52a1c7:	83 c2 08             	add    $0x8,%edx
52a1ca:	83 ef 01             	sub    $0x1,%edi
52a1cd:	75 e3                	jne    0x52a1b2
52a1cf:	8b 5b 04             	mov    0x4(%ebx),%ebx
52a1d2:	85 db                	test   %ebx,%ebx
52a1d4:	75 d2                	jne    0x52a1a8
52a1d6:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a1d9:	8b 47 48             	mov    0x48(%edi),%eax
52a1dc:	6a 00                	push   $0x0
52a1de:	ff 37                	push   (%edi)
52a1e0:	83 c0 38             	add    $0x38,%eax
52a1e3:	50                   	push   %eax