42213b:	39 5e 34             	cmp    %ebx,0x34(%esi)
42213e:	74 08                	je     0x422148
422140:	8b 46 30             	mov    0x30(%esi),%eax
422143:	66 39 10             	cmp    %dx,(%eax)
422146:	74 0d                	je     0x422155
422148:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
42214c:	8b 4e 30             	mov    0x30(%esi),%ecx
42214f:	66 89 11             	mov    %dx,(%ecx)
422152:	ff 46 34             	incl   0x34(%esi)
422155:	b0 01                	mov    $0x1,%al
422157:	5f                   	pop    %edi
422158:	5e                   	pop    %esi
422159:	5b                   	pop    %ebx
42215a:	c9                   	leave
42215b:	c2 04 00             	ret    $0x4
42215e:	8b ff                	mov    %edi,%edi
422160:	55                   	push   %ebp
422161:	8b ec                	mov    %esp,%ebp
422163:	83 ec 0c             	sub    $0xc,%esp
422166:	53                   	push   %ebx
422167:	56                   	push   %esi
422168:	8b f1                	mov    %ecx,%esi
42216a:	57                   	push   %edi
42216b:	ff 76 28             	push   0x28(%esi)
42216e:	e8 1f 1c 00 00       	call   0x423d92
422173:	59                   	pop    %ecx
422174:	8b c8                	mov    %eax,%ecx
422176:	89 45 f4             	mov    %eax,-0xc(%ebp)
422179:	6a 00                	push   $0x0
42217b:	5b                   	pop    %ebx
42217c:	83 e9 01             	sub    $0x1,%ecx
42217f:	0f 84 99 00 00 00    	je     0x42221e
422185:	83 e9 01             	sub    $0x1,%ecx
422188:	74 75                	je     0x4221ff
42218a:	49                   	dec    %ecx
42218b:	83 e9 01             	sub    $0x1,%ecx
42218e:	74 46                	je     0x4221d6
422190:	83 e9 04             	sub    $0x4,%ecx
422193:	74 27                	je     0x4221bc
422195:	8b 46 08             	mov    0x8(%esi),%eax
422198:	83 c0 18             	add    $0x18,%eax
42219b:	c6 40 04 01          	movb   $0x1,0x4(%eax)
42219f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4221a5:	ff 76 08             	push   0x8(%esi)
4221a8:	53                   	push   %ebx
4221a9:	53                   	push   %ebx
4221aa:	53                   	push   %ebx
4221ab:	53                   	push   %ebx
4221ac:	53                   	push   %ebx
4221ad:	e8 40 e8 ff ff       	call   0x4209f2
4221b2:	83 c4 18             	add    $0x18,%esp
4221b5:	32 c0                	xor    %al,%al
4221b7:	e9 28 01 00 00       	jmp    0x4222e4
4221bc:	8b 4e 10             	mov    0x10(%esi),%ecx
4221bf:	8b 7e 1c             	mov    0x1c(%esi),%edi
4221c2:	8b c7                	mov    %edi,%eax
4221c4:	c1 e8 04             	shr    $0x4,%eax
4221c7:	a8 01                	test   $0x1,%al
4221c9:	8d 41 08             	lea    0x8(%ecx),%eax
4221cc:	89 46 10             	mov    %eax,0x10(%esi)
4221cf:	8b 01                	mov    (%ecx),%eax
4221d1:	8b 51 04             	mov    0x4(%ecx),%edx
4221d4:	eb 66                	jmp    0x42223c
4221d6:	8b 7e 1c             	mov    0x1c(%esi),%edi
4221d9:	8b c7                	mov    %edi,%eax
4221db:	c1 e8 04             	shr    $0x4,%eax
4221de:	a8 01                	test   $0x1,%al
4221e0:	74 0d                	je     0x4221ef
4221e2:	8b 46 10             	mov    0x10(%esi),%eax
4221e5:	8d 48 04             	lea    0x4(%eax),%ecx
4221e8:	89 4e 10             	mov    %ecx,0x10(%esi)
4221eb:	8b 00                	mov    (%eax),%eax
4221ed:	eb 4c                	jmp    0x42223b
4221ef:	8b 4e 10             	mov    0x10(%esi),%ecx
4221f2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4221f5:	8d 41 04             	lea    0x4(%ecx),%eax
4221f8:	89 46 10             	mov    %eax,0x10(%esi)
4221fb:	8b 01                	mov    (%ecx),%eax
4221fd:	eb 40                	jmp    0x42223f
4221ff:	8b 7e 1c             	mov    0x1c(%esi),%edi
422202:	8b c7                	mov    %edi,%eax
422204:	8b 4e 10             	mov    0x10(%esi),%ecx
422207:	c1 e8 04             	shr    $0x4,%eax
42220a:	a8 01                	test   $0x1,%al
42220c:	8d 41 04             	lea    0x4(%ecx),%eax
42220f:	89 46 10             	mov    %eax,0x10(%esi)
422212:	74 05                	je     0x422219
422214:	0f bf 01             	movswl (%ecx),%eax
422217:	eb 22                	jmp    0x42223b
422219:	0f b7 01             	movzwl (%ecx),%eax
42221c:	eb 1d                	jmp    0x42223b
42221e:	8b 7e 1c             	mov    0x1c(%esi),%edi
422221:	8b c7                	mov    %edi,%eax
422223:	8b 4e 10             	mov    0x10(%esi),%ecx
422226:	c1 e8 04             	shr    $0x4,%eax
422229:	a8 01                	test   $0x1,%al
42222b:	8d 41 04             	lea    0x4(%ecx),%eax
42222e:	89 46 10             	mov    %eax,0x10(%esi)
422231:	74 05                	je     0x422238
422233:	0f be 01             	movsbl (%ecx),%eax
422236:	eb 03                	jmp    0x42223b
422238:	0f b6 01             	movzbl (%ecx),%eax
42223b:	99                   	cltd
42223c:	89 55 f8             	mov    %edx,-0x8(%ebp)
42223f:	8b 55 f8             	mov    -0x8(%ebp),%edx
422242:	89 45 fc             	mov    %eax,-0x4(%ebp)
422245:	8b c7                	mov    %edi,%eax
422247:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42224a:	c1 e8 04             	shr    $0x4,%eax
42224d:	a8 01                	test   $0x1,%al
42224f:	74 16                	je     0x422267
422251:	3b d3                	cmp    %ebx,%edx
422253:	7f 12                	jg     0x422267
422255:	7c 04                	jl     0x42225b
422257:	3b cb                	cmp    %ebx,%ecx
422259:	73 0c                	jae    0x422267
42225b:	f7 d9                	neg    %ecx
42225d:	13 d3                	adc    %ebx,%edx
42225f:	f7 da                	neg    %edx
422261:	83 cf 40             	or     $0x40,%edi
422264:	89 7e 1c             	mov    %edi,0x1c(%esi)
422267:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
42226b:	89 55 f8             	mov    %edx,-0x8(%ebp)
42226e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
422271:	7d 09                	jge    0x42227c
422273:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
42227a:	eb 1a                	jmp    0x422296
42227c:	ff 76 08             	push   0x8(%esi)
42227f:	83 e7 f7             	and    $0xfffffff7,%edi
422282:	8d 4e 3c             	lea    0x3c(%esi),%ecx
422285:	ff 76 24             	push   0x24(%esi)
422288:	89 7e 1c             	mov    %edi,0x1c(%esi)
42228b:	e8 bf ee ff ff       	call   0x42114f
422290:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422293:	8b 55 f8             	mov    -0x8(%ebp),%edx
422296:	8b c1                	mov    %ecx,%eax
422298:	0b c2                	or     %edx,%eax
42229a:	75 04                	jne    0x4222a0
42229c:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
4222a0:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
4222a4:	ff 75 08             	push   0x8(%ebp)
4222a7:	88 5e 38             	mov    %bl,0x38(%esi)
4222aa:	75 0b                	jne    0x4222b7
4222ac:	52                   	push   %edx
4222ad:	51                   	push   %ecx
4222ae:	8b ce                	mov    %esi,%ecx
4222b0:	e8 2b 07 00 00       	call   0x4229e0
4222b5:	eb 08                	jmp    0x4222bf
4222b7:	51                   	push   %ecx
4222b8:	8b ce                	mov    %esi,%ecx
4222ba:	e8 b7 03 00 00       	call   0x422676
4222bf:	8b 46 1c             	mov    0x1c(%esi),%eax
4222c2:	c1 e8 07             	shr    $0x7,%eax
4222c5:	a8 01                	test   $0x1,%al
4222c7:	74 19                	je     0x4222e2
4222c9:	39 5e 34             	cmp    %ebx,0x34(%esi)
4222cc:	74 08                	je     0x4222d6
4222ce:	8b 46 30             	mov    0x30(%esi),%eax
4222d1:	80 38 30             	cmpb   $0x30,(%eax)
4222d4:	74 0c                	je     0x4222e2
4222d6:	ff 4e 30             	decl   0x30(%esi)
4222d9:	8b 4e 30             	mov    0x30(%esi),%ecx
4222dc:	c6 01 30             	movb   $0x30,(%ecx)
4222df:	ff 46 34             	incl   0x34(%esi)
4222e2:	b0 01                	mov    $0x1,%al
4222e4:	5f                   	pop    %edi
4222e5:	5e                   	pop    %esi
4222e6:	5b                   	pop    %ebx
4222e7:	c9                   	leave
4222e8:	c2 04 00             	ret    $0x4
4222eb:	8b ff                	mov    %edi,%edi
4222ed:	55                   	push   %ebp
4222ee:	8b ec                	mov    %esp,%ebp
4222f0:	83 ec 0c             	sub    $0xc,%esp
4222f3:	53                   	push   %ebx
4222f4:	56                   	push   %esi
4222f5:	8b f1                	mov    %ecx,%esi
4222f7:	57                   	push   %edi
4222f8:	ff 76 28             	push   0x28(%esi)
4222fb:	e8 92 1a 00 00       	call   0x423d92
422300:	59                   	pop    %ecx
422301:	8b c8                	mov    %eax,%ecx
422303:	89 45 f4             	mov    %eax,-0xc(%ebp)
422306:	6a 00                	push   $0x0
422308:	5b                   	pop    %ebx
422309:	83 e9 01             	sub    $0x1,%ecx
42230c:	0f 84 99 00 00 00    	je     0x4223ab
422312:	83 e9 01             	sub    $0x1,%ecx
422315:	74 75                	je     0x42238c
422317:	49                   	dec    %ecx
422318:	83 e9 01             	sub    $0x1,%ecx
42231b:	74 46                	je     0x422363
42231d:	83 e9 04             	sub    $0x4,%ecx
422320:	74 27                	je     0x422349
422322:	8b 46 08             	mov    0x8(%esi),%eax
422325:	83 c0 18             	add    $0x18,%eax
422328:	c6 40 04 01          	movb   $0x1,0x4(%eax)
42232c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
422332:	ff 76 08             	push   0x8(%esi)
422335:	53                   	push   %ebx
422336:	53                   	push   %ebx
422337:	53                   	push   %ebx
422338:	53                   	push   %ebx
422339:	53                   	push   %ebx
42233a:	e8 b3 e6 ff ff       	call   0x4209f2
42233f:	83 c4 18             	add    $0x18,%esp
422342:	32 c0                	xor    %al,%al
422344:	e9 2d 01 00 00       	jmp    0x422476
422349:	8b 4e 10             	mov    0x10(%esi),%ecx
42234c:	8b 7e 1c             	mov    0x1c(%esi),%edi
42234f:	8b c7                	mov    %edi,%eax
422351:	c1 e8 04             	shr    $0x4,%eax
422354:	a8 01                	test   $0x1,%al
422356:	8d 41 08             	lea    0x8(%ecx),%eax
422359:	89 46 10             	mov    %eax,0x10(%esi)
42235c:	8b 01                	mov    (%ecx),%eax
42235e:	8b 51 04             	mov    0x4(%ecx),%edx
422361:	eb 66                	jmp    0x4223c9
422363:	8b 7e 1c             	mov    0x1c(%esi),%edi
422366:	8b c7                	mov    %edi,%eax
422368:	c1 e8 04             	shr    $0x4,%eax
42236b:	a8 01                	test   $0x1,%al
42236d:	74 0d                	je     0x42237c
42236f:	8b 46 10             	mov    0x10(%esi),%eax
422372:	8d 48 04             	lea    0x4(%eax),%ecx
422375:	89 4e 10             	mov    %ecx,0x10(%esi)
422378:	8b 00                	mov    (%eax),%eax
42237a:	eb 4c                	jmp    0x4223c8
42237c:	8b 4e 10             	mov    0x10(%esi),%ecx
42237f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
422382:	8d 41 04             	lea    0x4(%ecx),%eax
422385:	89 46 10             	mov    %eax,0x10(%esi)
422388:	8b 01                	mov    (%ecx),%eax
42238a:	eb 40                	jmp    0x4223cc
42238c:	8b 7e 1c             	mov    0x1c(%esi),%edi
42238f:	8b c7                	mov    %edi,%eax
422391:	8b 4e 10             	mov    0x10(%esi),%ecx
422394:	c1 e8 04             	shr    $0x4,%eax
422397:	a8 01                	test   $0x1,%al
422399:	8d 41 04             	lea    0x4(%ecx),%eax
42239c:	89 46 10             	mov    %eax,0x10(%esi)
42239f:	74 05                	je     0x4223a6
4223a1:	0f bf 01             	movswl (%ecx),%eax
4223a4:	eb 22                	jmp    0x4223c8
4223a6:	0f b7 01             	movzwl (%ecx),%eax
4223a9:	eb 1d                	jmp    0x4223c8
4223ab:	8b 7e 1c             	mov    0x1c(%esi),%edi
4223ae:	8b c7                	mov    %edi,%eax
4223b0:	8b 4e 10             	mov    0x10(%esi),%ecx
4223b3:	c1 e8 04             	shr    $0x4,%eax
4223b6:	a8 01                	test   $0x1,%al
4223b8:	8d 41 04             	lea    0x4(%ecx),%eax
4223bb:	89 46 10             	mov    %eax,0x10(%esi)
4223be:	74 05                	je     0x4223c5
4223c0:	0f be 01             	movsbl (%ecx),%eax
4223c3:	eb 03                	jmp    0x4223c8
4223c5:	0f b6 01             	movzbl (%ecx),%eax
4223c8:	99                   	cltd
4223c9:	89 55 f8             	mov    %edx,-0x8(%ebp)
4223cc:	8b 55 f8             	mov    -0x8(%ebp),%edx
4223cf:	89 45 fc             	mov    %eax,-0x4(%ebp)
4223d2:	8b c7                	mov    %edi,%eax
4223d4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4223d7:	c1 e8 04             	shr    $0x4,%eax
4223da:	a8 01                	test   $0x1,%al
4223dc:	74 16                	je     0x4223f4
4223de:	3b d3                	cmp    %ebx,%edx
4223e0:	7f 12                	jg     0x4223f4
4223e2:	7c 04                	jl     0x4223e8
4223e4:	3b cb                	cmp    %ebx,%ecx
4223e6:	73 0c                	jae    0x4223f4
4223e8:	f7 d9                	neg    %ecx
4223ea:	13 d3                	adc    %ebx,%edx
4223ec:	f7 da                	neg    %edx
4223ee:	83 cf 40             	or     $0x40,%edi
4223f1:	89 7e 1c             	mov    %edi,0x1c(%esi)
4223f4:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4223f8:	89 55 f8             	mov    %edx,-0x8(%ebp)
4223fb:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4223fe:	7d 09                	jge    0x422409
422400:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
422407:	eb 1a                	jmp    0x422423
422409:	ff 76 08             	push   0x8(%esi)
42240c:	83 e7 f7             	and    $0xfffffff7,%edi
42240f:	8d 4e 3c             	lea    0x3c(%esi),%ecx
422412:	ff 76 24             	push   0x24(%esi)
422415:	89 7e 1c             	mov    %edi,0x1c(%esi)
422418:	e8 b3 ed ff ff       	call   0x4211d0
42241d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422420:	8b 55 f8             	mov    -0x8(%ebp),%edx
422423:	8b c1                	mov    %ecx,%eax
422425:	0b c2                	or     %edx,%eax
422427:	75 04                	jne    0x42242d
422429:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
42242d:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
422431:	ff 75 08             	push   0x8(%ebp)
422434:	c6 46 38 01          	movb   $0x1,0x38(%esi)
422438:	75 0b                	jne    0x422445
42243a:	52                   	push   %edx
42243b:	51                   	push   %ecx
42243c:	8b ce                	mov    %esi,%ecx
42243e:	e8 27 06 00 00       	call   0x422a6a
422443:	eb 08                	jmp    0x42244d
422445:	51                   	push   %ecx
422446:	8b ce                	mov    %esi,%ecx
422448:	e8 a6 02 00 00       	call   0x4226f3
42244d:	8b 46 1c             	mov    0x1c(%esi),%eax
422450:	c1 e8 07             	shr    $0x7,%eax
422453:	a8 01                	test   $0x1,%al
422455:	74 1d                	je     0x422474
422457:	6a 30                	push   $0x30
422459:	5a                   	pop    %edx
42245a:	39 5e 34             	cmp    %ebx,0x34(%esi)
42245d:	74 08                	je     0x422467
42245f:	8b 46 30             	mov    0x30(%esi),%eax
422462:	66 39 10             	cmp    %dx,(%eax)
422465:	74 0d                	je     0x422474
422467:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
42246b:	8b 4e 30             	mov    0x30(%esi),%ecx
42246e:	66 89 11             	mov    %dx,(%ecx)
422471:	ff 46 34             	incl   0x34(%esi)
422474:	b0 01                	mov    $0x1,%al
422476:	5f                   	pop    %edi
422477:	5e                   	pop    %esi
422478:	5b                   	pop    %ebx
422479:	c9                   	leave
42247a:	c2 04 00             	ret    $0x4
42247d:	8b ff                	mov    %edi,%edi
42247f:	55                   	push   %ebp
422480:	8b ec                	mov    %esp,%ebp
422482:	53                   	push   %ebx
422483:	56                   	push   %esi
422484:	8b f1                	mov    %ecx,%esi
422486:	57                   	push   %edi
422487:	8d 4e 3c             	lea    0x3c(%esi),%ecx
42248a:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
422490:	85 ff                	test   %edi,%edi
422492:	75 02                	jne    0x422496
422494:	8b f9                	mov    %ecx,%edi
422496:	e8 83 ec ff ff       	call   0x42111e
42249b:	8b 55 08             	mov    0x8(%ebp),%edx
42249e:	8d 48 ff             	lea    -0x1(%eax),%ecx
4224a1:	03 cf                	add    %edi,%ecx
4224a3:	89 4e 30             	mov    %ecx,0x30(%esi)
4224a6:	8b c1                	mov    %ecx,%eax
4224a8:	8b d9                	mov    %ecx,%ebx
4224aa:	8b 7e 24             	mov    0x24(%esi),%edi
4224ad:	85 ff                	test   %edi,%edi
4224af:	7f 04                	jg     0x4224b5
4224b1:	85 d2                	test   %edx,%edx