522eaa:	85 c0                	test   %eax,%eax
522eac:	0f 45 c8             	cmovne %eax,%ecx
522eaf:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
522eb3:	ff 73 5c             	push   0x5c(%ebx)
522eb6:	6a 01                	push   $0x1
522eb8:	6a 61                	push   $0x61
522eba:	52                   	push   %edx
522ebb:	e8 80 ec 01 00       	call   0x541b40
522ec0:	8b 55 08             	mov    0x8(%ebp),%edx
522ec3:	83 c4 14             	add    $0x14,%esp
522ec6:	8b 42 6c             	mov    0x6c(%edx),%eax
522ec9:	85 c0                	test   %eax,%eax
522ecb:	7e 13                	jle    0x522ee0
522ecd:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
522ed0:	be 10 00 00 00       	mov    $0x10,%esi
522ed5:	8b 42 68             	mov    0x68(%edx),%eax
522ed8:	66 89 74 88 ee       	mov    %si,-0x12(%eax,%ecx,4)
522edd:	8b 75 fc             	mov    -0x4(%ebp),%esi
522ee0:	c7 43 28 02 00 00 00 	movl   $0x2,0x28(%ebx)
522ee7:	8b 42 6c             	mov    0x6c(%edx),%eax
522eea:	89 45 e8             	mov    %eax,-0x18(%ebp)
522eed:	40                   	inc    %eax
522eee:	50                   	push   %eax
522eef:	6a 00                	push   $0x0
522ef1:	ff 75 f0             	push   -0x10(%ebp)
522ef4:	6a 0d                	push   $0xd
522ef6:	52                   	push   %edx
522ef7:	e8 44 ec 01 00       	call   0x541b40
522efc:	83 c4 14             	add    $0x14,%esp
522eff:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522f03:	0f 85 39 02 00 00    	jne    0x523142
522f09:	6a 41                	push   $0x41
522f0b:	ff 75 18             	push   0x18(%ebp)
522f0e:	53                   	push   %ebx
522f0f:	e8 2c 56 01 00       	call   0x538540
522f14:	83 c4 0c             	add    $0xc,%esp
522f17:	85 c0                	test   %eax,%eax
522f19:	0f 84 23 02 00 00    	je     0x523142
522f1f:	0f b7 48 2a          	movzwl 0x2a(%eax),%ecx
522f23:	66 89 4f 2c          	mov    %cx,0x2c(%edi)
522f27:	66 89 4f 2a          	mov    %cx,0x2a(%edi)
522f2b:	8b 48 04             	mov    0x4(%eax),%ecx
522f2e:	89 4f 04             	mov    %ecx,0x4(%edi)
522f31:	33 c9                	xor    %ecx,%ecx
522f33:	50                   	push   %eax
522f34:	56                   	push   %esi
522f35:	66 89 48 2a          	mov    %cx,0x2a(%eax)
522f39:	89 48 04             	mov    %ecx,0x4(%eax)
522f3c:	e8 7f f2 ff ff       	call   0x5221c0
522f41:	8b 75 f0             	mov    -0x10(%ebp),%esi
522f44:	8d 45 cc             	lea    -0x34(%ebp),%eax
522f47:	50                   	push   %eax
522f48:	ff 75 18             	push   0x18(%ebp)
522f4b:	c6 45 cc 0d          	movb   $0xd,-0x34(%ebp)
522f4f:	53                   	push   %ebx
522f50:	89 75 d0             	mov    %esi,-0x30(%ebp)
522f53:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
522f5a:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
522f61:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
522f68:	e8 33 6b 01 00       	call   0x539aa0
522f6d:	83 c4 14             	add    $0x14,%esp
522f70:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522f74:	0f 85 c8 01 00 00    	jne    0x523142
522f7a:	56                   	push   %esi
522f7b:	8b 75 08             	mov    0x8(%ebp),%esi
522f7e:	56                   	push   %esi
522f7f:	e8 2c f7 01 00       	call   0x5426b0
522f84:	ff 75 e8             	push   -0x18(%ebp)
522f87:	56                   	push   %esi
522f88:	e8 d3 77 02 00       	call   0x54a760
522f8d:	ff 75 d0             	push   -0x30(%ebp)
522f90:	6a 0e                	push   $0xe
522f92:	56                   	push   %esi
522f93:	e8 e8 ea 01 00       	call   0x541a80
522f98:	ff 75 ec             	push   -0x14(%ebp)
522f9b:	8b f0                	mov    %eax,%esi
522f9d:	ff 75 d8             	push   -0x28(%ebp)
522fa0:	ff 75 d4             	push   -0x2c(%ebp)
522fa3:	6a 5b                	push   $0x5b
522fa5:	ff 75 08             	push   0x8(%ebp)
522fa8:	e8 93 eb 01 00       	call   0x541b40
522fad:	6a 00                	push   $0x0
522faf:	57                   	push   %edi
522fb0:	ff 75 08             	push   0x8(%ebp)
522fb3:	e8 88 ad 01 00       	call   0x53dd40
522fb8:	ff 75 f4             	push   -0xc(%ebp)
522fbb:	6a 01                	push   $0x1
522fbd:	6a 78                	push   $0x78
522fbf:	ff 75 08             	push   0x8(%ebp)
522fc2:	e8 19 eb 01 00       	call   0x541ae0
522fc7:	83 c4 4c             	add    $0x4c,%esp
522fca:	ff 75 f4             	push   -0xc(%ebp)
522fcd:	ff 75 ec             	push   -0x14(%ebp)
522fd0:	6a 01                	push   $0x1
522fd2:	6a 79                	push   $0x79
522fd4:	ff 75 08             	push   0x8(%ebp)
522fd7:	e8 64 eb 01 00       	call   0x541b40
522fdc:	56                   	push   %esi
522fdd:	ff 75 08             	push   0x8(%ebp)
522fe0:	e8 bb 70 02 00       	call   0x54a0a0
522fe5:	56                   	push   %esi
522fe6:	8b 75 08             	mov    0x8(%ebp),%esi
522fe9:	56                   	push   %esi
522fea:	e8 71 77 02 00       	call   0x54a760
522fef:	6a 01                	push   $0x1
522ff1:	6a 74                	push   $0x74
522ff3:	56                   	push   %esi
522ff4:	e8 87 ea 01 00       	call   0x541a80
522ff9:	8b 75 fc             	mov    -0x4(%ebp),%esi
522ffc:	57                   	push   %edi
522ffd:	56                   	push   %esi
522ffe:	e8 8d 9e fd ff       	call   0x4fce90
523003:	8b c8                	mov    %eax,%ecx
523005:	83 c4 38             	add    $0x38,%esp
523008:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52300b:	eb 3e                	jmp    0x52304b
52300d:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
523011:	8d 93 bc 00 00 00    	lea    0xbc(%ebx),%edx
523017:	75 03                	jne    0x52301c
523019:	8b 55 10             	mov    0x10(%ebp),%edx
52301c:	8b 02                	mov    (%edx),%eax
52301e:	8b c8                	mov    %eax,%ecx
523020:	2b 8b b4 00 00 00    	sub    0xb4(%ebx),%ecx
523026:	80 38 3b             	cmpb   $0x3b,(%eax)
523029:	74 03                	je     0x52302e
52302b:	03 4a 04             	add    0x4(%edx),%ecx
52302e:	ff b3 b4 00 00 00    	push   0xb4(%ebx)
523034:	51                   	push   %ecx
523035:	ff 75 e8             	push   -0x18(%ebp)
523038:	68 c0 a0 6b 00       	push   $0x6ba0c0
52303d:	56                   	push   %esi
52303e:	e8 fd de 00 00       	call   0x530f40
523043:	83 c4 14             	add    $0x14,%esp
523046:	89 45 ec             	mov    %eax,-0x14(%ebp)
523049:	8b c8                	mov    %eax,%ecx
52304b:	ff 73 58             	push   0x58(%ebx)
52304e:	8b 07                	mov    (%edi),%eax
523050:	8b 55 f8             	mov    -0x8(%ebp),%edx
523053:	51                   	push   %ecx
523054:	ff 73 5c             	push   0x5c(%ebx)
523057:	c1 e2 04             	shl    $0x4,%edx
52305a:	50                   	push   %eax
52305b:	50                   	push   %eax
52305c:	ff 75 e4             	push   -0x1c(%ebp)
52305f:	8b 46 10             	mov    0x10(%esi),%eax
523062:	68 24 8a 6b 00       	push   $0x6b8a24
523067:	89 55 e8             	mov    %edx,-0x18(%ebp)
52306a:	ff 34 02             	push   (%edx,%eax,1)
52306d:	68 d0 a0 6b 00       	push   $0x6ba0d0
523072:	53                   	push   %ebx
523073:	e8 28 e6 00 00       	call   0x5316a0
523078:	8b 45 ec             	mov    -0x14(%ebp),%eax
52307b:	83 c4 28             	add    $0x28,%esp
52307e:	85 c0                	test   %eax,%eax
523080:	74 0a                	je     0x52308c
523082:	50                   	push   %eax
523083:	56                   	push   %esi
523084:	e8 e7 e2 ff ff       	call   0x521370
523089:	83 c4 08             	add    $0x8,%esp
52308c:	ff 75 f8             	push   -0x8(%ebp)
52308f:	53                   	push   %ebx
523090:	e8 bb ae ff ff       	call   0x51df50
523095:	83 c4 08             	add    $0x8,%esp
523098:	f6 47 24 08          	testb  $0x8,0x24(%edi)
52309c:	74 1f                	je     0x5230bd
52309e:	8b 4e 10             	mov    0x10(%esi),%ecx
5230a1:	03 4d e8             	add    -0x18(%ebp),%ecx
5230a4:	8b 41 0c             	mov    0xc(%ecx),%eax
5230a7:	83 78 48 00          	cmpl   $0x0,0x48(%eax)
5230ab:	75 10                	jne    0x5230bd
5230ad:	ff 31                	push   (%ecx)
5230af:	68 28 a1 6b 00       	push   $0x6ba128
5230b4:	53                   	push   %ebx
5230b5:	e8 e6 e5 00 00       	call   0x5316a0
5230ba:	83 c4 0c             	add    $0xc,%esp
5230bd:	ff 37                	push   (%edi)
5230bf:	68 54 a1 6b 00       	push   $0x6ba154
5230c4:	56                   	push   %esi
5230c5:	e8 76 de 00 00       	call   0x530f40
5230ca:	50                   	push   %eax
5230cb:	ff 75 f8             	push   -0x8(%ebp)
5230ce:	ff 75 08             	push   0x8(%ebp)
5230d1:	e8 7a ec 01 00       	call   0x541d50
5230d6:	83 c4 18             	add    $0x18,%esp
5230d9:	80 be a5 00 00 00 00 	cmpb   $0x0,0xa5(%esi)
5230e0:	74 60                	je     0x523142
5230e2:	8b 47 48             	mov    0x48(%edi),%eax
5230e5:	57                   	push   %edi
5230e6:	ff 37                	push   (%edi)
5230e8:	83 c0 08             	add    $0x8,%eax
5230eb:	50                   	push   %eax
5230ec:	e8 af a9 00 00       	call   0x52daa0
5230f1:	83 c4 0c             	add    $0xc,%esp
5230f4:	85 c0                	test   %eax,%eax
5230f6:	74 10                	je     0x523108
5230f8:	56                   	push   %esi
5230f9:	e8 92 e7 00 00       	call   0x531890
5230fe:	83 c4 04             	add    $0x4,%esp
523101:	5f                   	pop    %edi
523102:	5e                   	pop    %esi
523103:	5b                   	pop    %ebx
523104:	8b e5                	mov    %ebp,%esp
523106:	5d                   	pop    %ebp
523107:	c3                   	ret
523108:	c7 83 e4 00 00 00 00 	movl   $0x0,0xe4(%ebx)
52310f:	00 00 00
523112:	83 4e 18 01          	orl    $0x1,0x18(%esi)
523116:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
52311a:	75 26                	jne    0x523142
52311c:	8b 45 0c             	mov    0xc(%ebp),%eax
52311f:	8b 55 10             	mov    0x10(%ebp),%edx
523122:	8b 8b b4 00 00 00    	mov    0xb4(%ebx),%ecx
523128:	83 38 00             	cmpl   $0x0,(%eax)
52312b:	0f 45 d0             	cmovne %eax,%edx
52312e:	8b 02                	mov    (%edx),%eax
523130:	2b c1                	sub    %ecx,%eax
523132:	50                   	push   %eax
523133:	51                   	push   %ecx
523134:	e8 b7 e3 01 00       	call   0x5414f0
523139:	83 c4 08             	add    $0x8,%esp
52313c:	83 c0 0d             	add    $0xd,%eax
52313f:	89 47 34             	mov    %eax,0x34(%edi)
523142:	5f                   	pop    %edi
523143:	5e                   	pop    %esi
523144:	5b                   	pop    %ebx
523145:	8b e5                	mov    %ebp,%esp
523147:	5d                   	pop    %ebp
523148:	c3                   	ret
523149:	cc                   	int3
52314a:	cc                   	int3
52314b:	cc                   	int3
52314c:	cc                   	int3
52314d:	cc                   	int3
52314e:	cc                   	int3
52314f:	cc                   	int3
523150:	55                   	push   %ebp
523151:	8b ec                	mov    %esp,%ebp
523153:	53                   	push   %ebx
523154:	33 db                	xor    %ebx,%ebx
523156:	ba 44 0e 6b 00       	mov    $0x6b0e44,%edx
52315b:	83 7d 0c 0c          	cmpl   $0xc,0xc(%ebp)
52315f:	b8 38 0e 6b 00       	mov    $0x6b0e38,%eax
523164:	56                   	push   %esi
523165:	8b 75 08             	mov    0x8(%ebp),%esi
523168:	0f 94 c3             	sete   %bl
52316b:	83 7d 0c 0c          	cmpl   $0xc,0xc(%ebp)
52316f:	6a 00                	push   $0x0
523171:	6a 00                	push   $0x0
523173:	0f 45 c2             	cmovne %edx,%eax
523176:	50                   	push   %eax
523177:	6a 16                	push   $0x16
523179:	56                   	push   %esi
52317a:	e8 21 66 ff ff       	call   0x5197a0
52317f:	83 c4 14             	add    $0x14,%esp
523182:	85 c0                	test   %eax,%eax
523184:	75 33                	jne    0x5231b9
523186:	8b 46 08             	mov    0x8(%esi),%eax
523189:	85 c0                	test   %eax,%eax
52318b:	75 1e                	jne    0x5231ab
52318d:	39 46 74             	cmp    %eax,0x74(%esi)
523190:	75 0c                	jne    0x52319e
523192:	8b 06                	mov    (%esi),%eax
523194:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
523198:	75 04                	jne    0x52319e
52319a:	c6 46 17 01          	movb   $0x1,0x17(%esi)
52319e:	56                   	push   %esi
52319f:	e8 6c f2 01 00       	call   0x542410
5231a4:	83 c4 04             	add    $0x4,%esp
5231a7:	85 c0                	test   %eax,%eax
5231a9:	74 0e                	je     0x5231b9
5231ab:	53                   	push   %ebx
5231ac:	6a 01                	push   $0x1
5231ae:	6a 01                	push   $0x1
5231b0:	50                   	push   %eax
5231b1:	e8 2a e9 01 00       	call   0x541ae0
5231b6:	83 c4 10             	add    $0x10,%esp
5231b9:	5e                   	pop    %esi
5231ba:	5b                   	pop    %ebx
5231bb:	5d                   	pop    %ebp
5231bc:	c3                   	ret
5231bd:	cc                   	int3
5231be:	cc                   	int3
5231bf:	cc                   	int3
5231c0:	55                   	push   %ebp
5231c1:	8b ec                	mov    %esp,%ebp
5231c3:	8b 45 08             	mov    0x8(%ebp),%eax
5231c6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5231c9:	89 48 40             	mov    %ecx,0x40(%eax)
5231cc:	85 c9                	test   %ecx,%ecx
5231ce:	75 08                	jne    0x5231d8
5231d0:	39 88 0c 01 00 00    	cmp    %ecx,0x10c(%eax)
5231d6:	74 0c                	je     0x5231e4
5231d8:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5231db:	89 45 08             	mov    %eax,0x8(%ebp)
5231de:	5d                   	pop    %ebp
5231df:	e9 0c 00 00 00       	jmp    0x5231f0
5231e4:	5d                   	pop    %ebp
5231e5:	c3                   	ret
5231e6:	cc                   	int3
5231e7:	cc                   	int3
5231e8:	cc                   	int3
5231e9:	cc                   	int3
5231ea:	cc                   	int3
5231eb:	cc                   	int3
5231ec:	cc                   	int3
5231ed:	cc                   	int3
5231ee:	cc                   	int3
5231ef:	cc                   	int3
5231f0:	55                   	push   %ebp
5231f1:	8b ec                	mov    %esp,%ebp
5231f3:	56                   	push   %esi
5231f4:	8b 75 08             	mov    0x8(%ebp),%esi
5231f7:	8b 86 0c 01 00 00    	mov    0x10c(%esi),%eax
5231fd:	85 c0                	test   %eax,%eax
5231ff:	74 1f                	je     0x523220
523201:	b9 00 24 00 00       	mov    $0x2400,%ecx
523206:	66 85 48 08          	test   %cx,0x8(%eax)
52320a:	74 0b                	je     0x523217
52320c:	50                   	push   %eax
52320d:	e8 3e 7c 03 00       	call   0x55ae50
523212:	83 c4 04             	add    $0x4,%esp
523215:	eb 09                	jmp    0x523220
523217:	b9 01 00 00 00       	mov    $0x1,%ecx
52321c:	66 89 48 08          	mov    %cx,0x8(%eax)
523220:	8b 45 0c             	mov    0xc(%ebp),%eax
523223:	3d 0a 0c 00 00       	cmp    $0xc0a,%eax
523228:	74 2b                	je     0x523255
52322a:	0f b6 c0             	movzbl %al,%eax
52322d:	83 f8 0e             	cmp    $0xe,%eax
523230:	74 05                	je     0x523237
523232:	83 f8 0a             	cmp    $0xa,%eax
523235:	75 1e                	jne    0x523255
523237:	8b 06                	mov    (%esi),%eax
523239:	8b 48 44             	mov    0x44(%eax),%ecx
52323c:	85 c9                	test   %ecx,%ecx
52323e:	74 10                	je     0x523250
523240:	6a 00                	push   $0x0
523242:	6a 00                	push   $0x0
523244:	50                   	push   %eax
523245:	ff d1                	call   *%ecx
523247:	83 c4 0c             	add    $0xc,%esp
52324a:	89 46 48             	mov    %eax,0x48(%esi)
52324d:	5e                   	pop    %esi
52324e:	5d                   	pop    %ebp
52324f:	c3                   	ret
523250:	33 c0                	xor    %eax,%eax
523252:	89 46 48             	mov    %eax,0x48(%esi)
523255:	5e                   	pop    %esi
523256:	5d                   	pop    %ebp
523257:	c3                   	ret