422054:	83 c6 08             	add    $0x8,%esi
422057:	eb 1a                	jmp    0x422073
422059:	50                   	push   %eax
42205a:	e8 ff a8 ff ff       	call   0x41c95e
42205f:	59                   	pop    %ecx
422060:	3b c3                	cmp    %ebx,%eax
422062:	74 09                	je     0x42206d
422064:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
42206a:	83 c0 08             	add    $0x8,%eax
42206d:	8b f0                	mov    %eax,%esi
42206f:	eb 02                	jmp    0x422073
422071:	33 f6                	xor    %esi,%esi
422073:	3b f3                	cmp    %ebx,%esi
422075:	74 41                	je     0x4220b8
422077:	ff 75 f8             	push   -0x8(%ebp)
42207a:	56                   	push   %esi
42207b:	57                   	push   %edi
42207c:	ff 75 f4             	push   -0xc(%ebp)
42207f:	ff 75 0c             	push   0xc(%ebp)
422082:	ff 75 08             	push   0x8(%ebp)
422085:	ff 15 84 a1 42 00    	call   *0x42a184
42208b:	85 c0                	test   %eax,%eax
42208d:	74 22                	je     0x4220b1
42208f:	53                   	push   %ebx
422090:	53                   	push   %ebx
422091:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
422094:	75 04                	jne    0x42209a
422096:	53                   	push   %ebx
422097:	53                   	push   %ebx
422098:	eb 06                	jmp    0x4220a0
42209a:	ff 75 1c             	push   0x1c(%ebp)
42209d:	ff 75 18             	push   0x18(%ebp)
4220a0:	ff 75 f8             	push   -0x8(%ebp)
4220a3:	56                   	push   %esi
4220a4:	53                   	push   %ebx
4220a5:	ff 75 20             	push   0x20(%ebp)
4220a8:	ff 15 20 a1 42 00    	call   *0x42a120
4220ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
4220b1:	56                   	push   %esi
4220b2:	e8 b8 fd ff ff       	call   0x421e6f
4220b7:	59                   	pop    %ecx
4220b8:	ff 75 f4             	push   -0xc(%ebp)
4220bb:	e8 af fd ff ff       	call   0x421e6f
4220c0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4220c3:	59                   	pop    %ecx
4220c4:	e9 59 01 00 00       	jmp    0x422222
4220c9:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4220cc:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4220cf:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4220d2:	75 08                	jne    0x4220dc
4220d4:	8b 06                	mov    (%esi),%eax
4220d6:	8b 40 14             	mov    0x14(%eax),%eax
4220d9:	89 45 08             	mov    %eax,0x8(%ebp)
4220dc:	39 5d 20             	cmp    %ebx,0x20(%ebp)
4220df:	75 08                	jne    0x4220e9
4220e1:	8b 06                	mov    (%esi),%eax
4220e3:	8b 40 04             	mov    0x4(%eax),%eax
4220e6:	89 45 20             	mov    %eax,0x20(%ebp)
4220e9:	ff 75 08             	push   0x8(%ebp)
4220ec:	e8 bf 39 00 00       	call   0x425ab0
4220f1:	59                   	pop    %ecx
4220f2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4220f5:	83 f8 ff             	cmp    $0xffffffff,%eax
4220f8:	75 07                	jne    0x422101
4220fa:	33 c0                	xor    %eax,%eax
4220fc:	e9 21 01 00 00       	jmp    0x422222
422101:	3b 45 20             	cmp    0x20(%ebp),%eax
422104:	0f 84 db 00 00 00    	je     0x4221e5
42210a:	53                   	push   %ebx
42210b:	53                   	push   %ebx
42210c:	8d 4d 14             	lea    0x14(%ebp),%ecx
42210f:	51                   	push   %ecx
422110:	ff 75 10             	push   0x10(%ebp)
422113:	50                   	push   %eax
422114:	ff 75 20             	push   0x20(%ebp)
422117:	e8 dd 39 00 00       	call   0x425af9
42211c:	83 c4 18             	add    $0x18,%esp
42211f:	89 45 f4             	mov    %eax,-0xc(%ebp)
422122:	3b c3                	cmp    %ebx,%eax
422124:	74 d4                	je     0x4220fa
422126:	8b 35 88 a1 42 00    	mov    0x42a188,%esi
42212c:	53                   	push   %ebx
42212d:	53                   	push   %ebx
42212e:	ff 75 14             	push   0x14(%ebp)
422131:	50                   	push   %eax
422132:	ff 75 0c             	push   0xc(%ebp)
422135:	ff 75 08             	push   0x8(%ebp)
422138:	ff d6                	call   *%esi
42213a:	89 45 f8             	mov    %eax,-0x8(%ebp)
42213d:	3b c3                	cmp    %ebx,%eax
42213f:	75 07                	jne    0x422148
422141:	33 f6                	xor    %esi,%esi
422143:	e9 b7 00 00 00       	jmp    0x4221ff
422148:	7e 3d                	jle    0x422187
42214a:	83 f8 e0             	cmp    $0xffffffe0,%eax
42214d:	77 38                	ja     0x422187
42214f:	83 c0 08             	add    $0x8,%eax
422152:	3d 00 04 00 00       	cmp    $0x400,%eax
422157:	77 16                	ja     0x42216f
422159:	e8 52 3b 00 00       	call   0x425cb0
42215e:	8b fc                	mov    %esp,%edi
422160:	3b fb                	cmp    %ebx,%edi
422162:	74 dd                	je     0x422141
422164:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
42216a:	83 c7 08             	add    $0x8,%edi
42216d:	eb 1a                	jmp    0x422189
42216f:	50                   	push   %eax
422170:	e8 e9 a7 ff ff       	call   0x41c95e
422175:	59                   	pop    %ecx
422176:	3b c3                	cmp    %ebx,%eax
422178:	74 09                	je     0x422183
42217a:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
422180:	83 c0 08             	add    $0x8,%eax
422183:	8b f8                	mov    %eax,%edi
422185:	eb 02                	jmp    0x422189
422187:	33 ff                	xor    %edi,%edi
422189:	3b fb                	cmp    %ebx,%edi
42218b:	74 b4                	je     0x422141
42218d:	ff 75 f8             	push   -0x8(%ebp)
422190:	53                   	push   %ebx
422191:	57                   	push   %edi
422192:	e8 69 80 ff ff       	call   0x41a200
422197:	83 c4 0c             	add    $0xc,%esp
42219a:	ff 75 f8             	push   -0x8(%ebp)
42219d:	57                   	push   %edi
42219e:	ff 75 14             	push   0x14(%ebp)
4221a1:	ff 75 f4             	push   -0xc(%ebp)
4221a4:	ff 75 0c             	push   0xc(%ebp)
4221a7:	ff 75 08             	push   0x8(%ebp)
4221aa:	ff d6                	call   *%esi
4221ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
4221af:	3b c3                	cmp    %ebx,%eax
4221b1:	75 04                	jne    0x4221b7
4221b3:	33 f6                	xor    %esi,%esi
4221b5:	eb 25                	jmp    0x4221dc
4221b7:	ff 75 1c             	push   0x1c(%ebp)
4221ba:	8d 45 f8             	lea    -0x8(%ebp),%eax
4221bd:	ff 75 18             	push   0x18(%ebp)
4221c0:	50                   	push   %eax
4221c1:	57                   	push   %edi
4221c2:	ff 75 20             	push   0x20(%ebp)
4221c5:	ff 75 ec             	push   -0x14(%ebp)
4221c8:	e8 2c 39 00 00       	call   0x425af9
4221cd:	8b f0                	mov    %eax,%esi
4221cf:	89 75 f0             	mov    %esi,-0x10(%ebp)
4221d2:	83 c4 18             	add    $0x18,%esp
4221d5:	f7 de                	neg    %esi
4221d7:	1b f6                	sbb    %esi,%esi
4221d9:	23 75 f8             	and    -0x8(%ebp),%esi
4221dc:	57                   	push   %edi
4221dd:	e8 8d fc ff ff       	call   0x421e6f
4221e2:	59                   	pop    %ecx
4221e3:	eb 1a                	jmp    0x4221ff
4221e5:	ff 75 1c             	push   0x1c(%ebp)
4221e8:	ff 75 18             	push   0x18(%ebp)
4221eb:	ff 75 14             	push   0x14(%ebp)
4221ee:	ff 75 10             	push   0x10(%ebp)
4221f1:	ff 75 0c             	push   0xc(%ebp)
4221f4:	ff 75 08             	push   0x8(%ebp)
4221f7:	ff 15 88 a1 42 00    	call   *0x42a188
4221fd:	8b f0                	mov    %eax,%esi
4221ff:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
422202:	74 09                	je     0x42220d
422204:	ff 75 f4             	push   -0xc(%ebp)
422207:	e8 d6 7c ff ff       	call   0x419ee2
42220c:	59                   	pop    %ecx
42220d:	8b 45 f0             	mov    -0x10(%ebp),%eax
422210:	3b c3                	cmp    %ebx,%eax
422212:	74 0c                	je     0x422220
422214:	39 45 18             	cmp    %eax,0x18(%ebp)
422217:	74 07                	je     0x422220
422219:	50                   	push   %eax
42221a:	e8 c3 7c ff ff       	call   0x419ee2
42221f:	59                   	pop    %ecx
422220:	8b c6                	mov    %esi,%eax
422222:	8d 65 e0             	lea    -0x20(%ebp),%esp
422225:	5f                   	pop    %edi
422226:	5e                   	pop    %esi
422227:	5b                   	pop    %ebx
422228:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42222b:	33 cd                	xor    %ebp,%ecx
42222d:	e8 9c bf ff ff       	call   0x41e1ce
422232:	c9                   	leave
422233:	c3                   	ret
422234:	8b ff                	mov    %edi,%edi
422236:	55                   	push   %ebp
422237:	8b ec                	mov    %esp,%ebp
422239:	83 ec 10             	sub    $0x10,%esp
42223c:	ff 75 08             	push   0x8(%ebp)
42223f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
422242:	e8 a1 a8 ff ff       	call   0x41cae8
422247:	ff 75 28             	push   0x28(%ebp)
42224a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
42224d:	ff 75 24             	push   0x24(%ebp)
422250:	ff 75 20             	push   0x20(%ebp)
422253:	ff 75 1c             	push   0x1c(%ebp)
422256:	ff 75 18             	push   0x18(%ebp)
422259:	ff 75 14             	push   0x14(%ebp)
42225c:	ff 75 10             	push   0x10(%ebp)
42225f:	ff 75 0c             	push   0xc(%ebp)
422262:	e8 28 fc ff ff       	call   0x421e8f
422267:	83 c4 20             	add    $0x20,%esp
42226a:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
42226e:	74 07                	je     0x422277
422270:	8b 4d f8             	mov    -0x8(%ebp),%ecx
422273:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
422277:	c9                   	leave
422278:	c3                   	ret
422279:	8b ff                	mov    %edi,%edi
42227b:	55                   	push   %ebp
42227c:	8b ec                	mov    %esp,%ebp
42227e:	83 ec 10             	sub    $0x10,%esp
422281:	ff 75 0c             	push   0xc(%ebp)
422284:	8d 4d f0             	lea    -0x10(%ebp),%ecx
422287:	e8 5c a8 ff ff       	call   0x41cae8
42228c:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
422290:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422293:	8b 89 c8 00 00 00    	mov    0xc8(%ecx),%ecx
422299:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
42229d:	25 00 80 00 00       	and    $0x8000,%eax
4222a2:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4222a6:	74 07                	je     0x4222af
4222a8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4222ab:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4222af:	c9                   	leave
4222b0:	c3                   	ret
4222b1:	8b ff                	mov    %edi,%edi
4222b3:	55                   	push   %ebp
4222b4:	8b ec                	mov    %esp,%ebp
4222b6:	6a 00                	push   $0x0
4222b8:	ff 75 08             	push   0x8(%ebp)
4222bb:	e8 b9 ff ff ff       	call   0x422279
4222c0:	59                   	pop    %ecx
4222c1:	59                   	pop    %ecx
4222c2:	5d                   	pop    %ebp
4222c3:	c3                   	ret
4222c4:	8b ff                	mov    %edi,%edi
4222c6:	55                   	push   %ebp
4222c7:	8b ec                	mov    %esp,%ebp
4222c9:	83 ec 18             	sub    $0x18,%esp
4222cc:	53                   	push   %ebx
4222cd:	ff 75 10             	push   0x10(%ebp)
4222d0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4222d3:	e8 10 a8 ff ff       	call   0x41cae8
4222d8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4222db:	8d 43 01             	lea    0x1(%ebx),%eax
4222de:	3d 00 01 00 00       	cmp    $0x100,%eax
4222e3:	77 0f                	ja     0x4222f4
4222e5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4222e8:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
4222ee:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
4222f2:	eb 75                	jmp    0x422369
4222f4:	89 5d 08             	mov    %ebx,0x8(%ebp)
4222f7:	c1 7d 08 08          	sarl   $0x8,0x8(%ebp)
4222fb:	8d 45 e8             	lea    -0x18(%ebp),%eax
4222fe:	50                   	push   %eax
4222ff:	8b 45 08             	mov    0x8(%ebp),%eax
422302:	25 ff 00 00 00       	and    $0xff,%eax
422307:	50                   	push   %eax
422308:	e8 6c ff ff ff       	call   0x422279
42230d:	59                   	pop    %ecx
42230e:	59                   	pop    %ecx
42230f:	85 c0                	test   %eax,%eax
422311:	74 12                	je     0x422325
422313:	8a 45 08             	mov    0x8(%ebp),%al
422316:	6a 02                	push   $0x2
422318:	88 45 f8             	mov    %al,-0x8(%ebp)
42231b:	88 5d f9             	mov    %bl,-0x7(%ebp)
42231e:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
422322:	59                   	pop    %ecx
422323:	eb 0a                	jmp    0x42232f
422325:	33 c9                	xor    %ecx,%ecx
422327:	88 5d f8             	mov    %bl,-0x8(%ebp)
42232a:	c6 45 f9 00          	movb   $0x0,-0x7(%ebp)
42232e:	41                   	inc    %ecx
42232f:	8b 45 e8             	mov    -0x18(%ebp),%eax
422332:	6a 01                	push   $0x1
422334:	ff 70 14             	push   0x14(%eax)
422337:	ff 70 04             	push   0x4(%eax)
42233a:	8d 45 fc             	lea    -0x4(%ebp),%eax
42233d:	50                   	push   %eax
42233e:	51                   	push   %ecx
42233f:	8d 45 f8             	lea    -0x8(%ebp),%eax
422342:	50                   	push   %eax
422343:	8d 45 e8             	lea    -0x18(%ebp),%eax
422346:	6a 01                	push   $0x1
422348:	50                   	push   %eax
422349:	e8 1e 34 00 00       	call   0x42576c
42234e:	83 c4 20             	add    $0x20,%esp
422351:	85 c0                	test   %eax,%eax
422353:	75 10                	jne    0x422365
422355:	38 45 f4             	cmp    %al,-0xc(%ebp)
422358:	74 07                	je     0x422361
42235a:	8b 45 f0             	mov    -0x10(%ebp),%eax
42235d:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
422361:	33 c0                	xor    %eax,%eax
422363:	eb 14                	jmp    0x422379
422365:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
422369:	23 45 0c             	and    0xc(%ebp),%eax
42236c:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
422370:	74 07                	je     0x422379
422372:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422375:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
422379:	5b                   	pop    %ebx
42237a:	c9                   	leave
42237b:	c3                   	ret
42237c:	8b ff                	mov    %edi,%edi
42237e:	55                   	push   %ebp
42237f:	8b ec                	mov    %esp,%ebp
422381:	83 ec 10             	sub    $0x10,%esp
422384:	ff 75 08             	push   0x8(%ebp)
422387:	8d 4d f0             	lea    -0x10(%ebp),%ecx
42238a:	e8 59 a7 ff ff       	call   0x41cae8
42238f:	8b 45 18             	mov    0x18(%ebp),%eax
422392:	85 c0                	test   %eax,%eax
422394:	7e 18                	jle    0x4223ae
422396:	8b 4d 14             	mov    0x14(%ebp),%ecx
422399:	8b d0                	mov    %eax,%edx
42239b:	4a                   	dec    %edx
42239c:	66 83 39 00          	cmpw   $0x0,(%ecx)
4223a0:	74 09                	je     0x4223ab
4223a2:	41                   	inc    %ecx
4223a3:	41                   	inc    %ecx
4223a4:	85 d2                	test   %edx,%edx
4223a6:	75 f3                	jne    0x42239b
4223a8:	83 ca ff             	or     $0xffffffff,%edx
4223ab:	2b c2                	sub    %edx,%eax
4223ad:	48                   	dec    %eax
4223ae:	ff 75 20             	push   0x20(%ebp)
4223b1:	ff 75 1c             	push   0x1c(%ebp)
4223b4:	50                   	push   %eax
4223b5:	ff 75 14             	push   0x14(%ebp)
4223b8:	ff 75 10             	push   0x10(%ebp)
4223bb:	ff 75 0c             	push   0xc(%ebp)
4223be:	ff 15 84 a1 42 00    	call   *0x42a184
4223c4:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4223c8:	74 07                	je     0x4223d1
4223ca:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4223cd:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4223d1:	c9                   	leave
4223d2:	c3                   	ret
4223d3:	8b ff                	mov    %edi,%edi
4223d5:	55                   	push   %ebp
4223d6:	8b ec                	mov    %esp,%ebp
4223d8:	b8 ff ff 00 00       	mov    $0xffff,%eax
4223dd:	83 ec 14             	sub    $0x14,%esp
4223e0:	66 39 45 08          	cmp    %ax,0x8(%ebp)
4223e4:	75 06                	jne    0x4223ec
4223e6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4223ea:	eb 65                	jmp    0x422451