42220b:	85 c0                	test   %eax,%eax
42220d:	75 1d                	jne    0x42222c
42220f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
422212:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
422215:	89 5d d0             	mov    %ebx,-0x30(%ebp)
422218:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
42221f:	88 5d c0             	mov    %bl,-0x40(%ebp)
422222:	8d 45 c0             	lea    -0x40(%ebp),%eax
422225:	89 4d fc             	mov    %ecx,-0x4(%ebp)
422228:	8b d9                	mov    %ecx,%ebx
42222a:	eb 3e                	jmp    0x42226a
42222c:	8b 50 18             	mov    0x18(%eax),%edx
42222f:	85 d2                	test   %edx,%edx
422231:	75 03                	jne    0x422236
422233:	8d 50 1c             	lea    0x1c(%eax),%edx
422236:	8b ca                	mov    %edx,%ecx
422238:	89 5d e8             	mov    %ebx,-0x18(%ebp)
42223b:	89 5d ec             	mov    %ebx,-0x14(%ebp)
42223e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
422241:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
422248:	88 5d d8             	mov    %bl,-0x28(%ebp)
42224b:	8d 79 01             	lea    0x1(%ecx),%edi
42224e:	8a 01                	mov    (%ecx),%al
422250:	41                   	inc    %ecx
422251:	84 c0                	test   %al,%al
422253:	75 f9                	jne    0x42224e
422255:	2b cf                	sub    %edi,%ecx
422257:	51                   	push   %ecx
422258:	52                   	push   %edx
422259:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42225c:	e8 49 d5 ff ff       	call   0x41f7aa
422261:	6a 02                	push   $0x2
422263:	5b                   	pop    %ebx
422264:	8d 45 d8             	lea    -0x28(%ebp),%eax
422267:	89 5d fc             	mov    %ebx,-0x4(%ebp)
42226a:	50                   	push   %eax
42226b:	8b ce                	mov    %esi,%ecx
42226d:	89 5d bc             	mov    %ebx,-0x44(%ebp)
422270:	e8 2d 90 fe ff       	call   0x40b2a2
422275:	83 cb 04             	or     $0x4,%ebx
422278:	89 5d bc             	mov    %ebx,-0x44(%ebp)
42227b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
422282:	f6 c3 02             	test   $0x2,%bl
422285:	74 0e                	je     0x422295
422287:	83 e3 fd             	and    $0xfffffffd,%ebx
42228a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42228d:	89 5d bc             	mov    %ebx,-0x44(%ebp)
422290:	e8 3f b0 ff ff       	call   0x41d2d4
422295:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422299:	f6 c3 01             	test   $0x1,%bl
42229c:	74 0e                	je     0x4222ac
42229e:	83 e3 fe             	and    $0xfffffffe,%ebx
4222a1:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4222a4:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4222a7:	e8 28 b0 ff ff       	call   0x41d2d4
4222ac:	8b c6                	mov    %esi,%eax
4222ae:	e8 75 d7 01 00       	call   0x43fa28
4222b3:	c2 04 00             	ret    $0x4
4222b6:	55                   	push   %ebp
4222b7:	8b ec                	mov    %esp,%ebp
4222b9:	8b 51 10             	mov    0x10(%ecx),%edx
4222bc:	85 d2                	test   %edx,%edx
4222be:	78 14                	js     0x4222d4
4222c0:	ff 75 0c             	push   0xc(%ebp)
4222c3:	8d 42 01             	lea    0x1(%edx),%eax
4222c6:	52                   	push   %edx
4222c7:	ff 75 08             	push   0x8(%ebp)
4222ca:	89 41 10             	mov    %eax,0x10(%ecx)
4222cd:	e8 07 e4 ff ff       	call   0x4206d9
4222d2:	eb 14                	jmp    0x4222e8
4222d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4222d7:	57                   	push   %edi
4222d8:	8b 7d 08             	mov    0x8(%ebp),%edi
4222db:	c7 00 ec 48 49 00    	movl   $0x4948ec,(%eax)
4222e1:	33 c0                	xor    %eax,%eax
4222e3:	ab                   	stos   %eax,%es:(%edi)
4222e4:	ab                   	stos   %eax,%es:(%edi)
4222e5:	ab                   	stos   %eax,%es:(%edi)
4222e6:	ab                   	stos   %eax,%es:(%edi)
4222e7:	5f                   	pop    %edi
4222e8:	8b 45 08             	mov    0x8(%ebp),%eax
4222eb:	5d                   	pop    %ebp
4222ec:	c2 08 00             	ret    $0x8
4222ef:	55                   	push   %ebp
4222f0:	8b ec                	mov    %esp,%ebp
4222f2:	6a ff                	push   $0xffffffff
4222f4:	68 41 01 49 00       	push   $0x490141
4222f9:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4222ff:	50                   	push   %eax
422300:	51                   	push   %ecx
422301:	51                   	push   %ecx
422302:	53                   	push   %ebx
422303:	56                   	push   %esi
422304:	57                   	push   %edi
422305:	a1 94 80 4b 00       	mov    0x4b8094,%eax
42230a:	33 c5                	xor    %ebp,%eax
42230c:	50                   	push   %eax
42230d:	8d 45 f4             	lea    -0xc(%ebp),%eax
422310:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
422316:	e8 eb 59 00 00       	call   0x427d06
42231b:	8b d8                	mov    %eax,%ebx
42231d:	8b fa                	mov    %edx,%edi
42231f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
422322:	e8 c8 59 00 00       	call   0x427cef
422327:	53                   	push   %ebx
422328:	57                   	push   %edi
422329:	53                   	push   %ebx
42232a:	52                   	push   %edx
42232b:	50                   	push   %eax
42232c:	e8 af d8 01 00       	call   0x43fbe0
422331:	8b f3                	mov    %ebx,%esi
422333:	5b                   	pop    %ebx
422334:	6a 00                	push   $0x0
422336:	68 00 ca 9a 3b       	push   $0x3b9aca00
42233b:	56                   	push   %esi
42233c:	51                   	push   %ecx
42233d:	89 45 ec             	mov    %eax,-0x14(%ebp)
422340:	8b da                	mov    %edx,%ebx
422342:	e8 79 d9 01 00       	call   0x43fcc0
422347:	57                   	push   %edi
422348:	ff 75 f0             	push   -0x10(%ebp)
42234b:	52                   	push   %edx
42234c:	50                   	push   %eax
42234d:	e8 de d7 01 00       	call   0x43fb30
422352:	6a 00                	push   $0x0
422354:	68 00 ca 9a 3b       	push   $0x3b9aca00
422359:	53                   	push   %ebx
42235a:	ff 75 ec             	push   -0x14(%ebp)
42235d:	8b f0                	mov    %eax,%esi
42235f:	8b fa                	mov    %edx,%edi
422361:	e8 5a d9 01 00       	call   0x43fcc0
422366:	03 f0                	add    %eax,%esi
422368:	8b 45 08             	mov    0x8(%ebp),%eax
42236b:	13 fa                	adc    %edx,%edi
42236d:	89 30                	mov    %esi,(%eax)
42236f:	89 78 04             	mov    %edi,0x4(%eax)
422372:	8b 4d f4             	mov    -0xc(%ebp),%ecx
422375:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
42237c:	59                   	pop    %ecx
42237d:	5f                   	pop    %edi
42237e:	5e                   	pop    %esi
42237f:	5b                   	pop    %ebx
422380:	c9                   	leave
422381:	c3                   	ret
422382:	b8 ff ff 00 00       	mov    $0xffff,%eax
422387:	c2 04 00             	ret    $0x4
42238a:	55                   	push   %ebp
42238b:	8b ec                	mov    %esp,%ebp
42238d:	83 ec 0c             	sub    $0xc,%esp
422390:	b8 ff ff 00 00       	mov    $0xffff,%eax
422395:	53                   	push   %ebx
422396:	56                   	push   %esi
422397:	57                   	push   %edi
422398:	8b f9                	mov    %ecx,%edi
42239a:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
42239e:	0f 85 37 01 00 00    	jne    0x4224db
4223a4:	66 3b 45 08          	cmp    0x8(%ebp),%ax
4223a8:	75 07                	jne    0x4223b1
4223aa:	33 c0                	xor    %eax,%eax
4223ac:	e9 2a 01 00 00       	jmp    0x4224db
4223b1:	8b 47 20             	mov    0x20(%edi),%eax
4223b4:	8b 77 30             	mov    0x30(%edi),%esi
4223b7:	8b 18                	mov    (%eax),%ebx
4223b9:	8b 0e                	mov    (%esi),%ecx
4223bb:	8d 14 4b             	lea    (%ebx,%ecx,2),%edx
4223be:	85 db                	test   %ebx,%ebx
4223c0:	74 23                	je     0x4223e5
4223c2:	3b da                	cmp    %edx,%ebx
4223c4:	73 1f                	jae    0x4223e5
4223c6:	66 8b 45 08          	mov    0x8(%ebp),%ax
4223ca:	49                   	dec    %ecx
4223cb:	89 0e                	mov    %ecx,(%esi)
4223cd:	8b 57 20             	mov    0x20(%edi),%edx
4223d0:	8b 32                	mov    (%edx),%esi
4223d2:	8d 4e 02             	lea    0x2(%esi),%ecx
4223d5:	89 0a                	mov    %ecx,(%edx)
4223d7:	8d 4b 02             	lea    0x2(%ebx),%ecx
4223da:	66 89 06             	mov    %ax,(%esi)
4223dd:	89 4f 38             	mov    %ecx,0x38(%edi)
4223e0:	e9 f6 00 00 00       	jmp    0x4224db
4223e5:	8b 47 0c             	mov    0xc(%edi),%eax
4223e8:	33 f6                	xor    %esi,%esi
4223ea:	6a 20                	push   $0x20
4223ec:	8b 08                	mov    (%eax),%ecx
4223ee:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4223f1:	58                   	pop    %eax
4223f2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4223f5:	85 db                	test   %ebx,%ebx
4223f7:	74 2a                	je     0x422423
4223f9:	8b f2                	mov    %edx,%esi
4223fb:	2b f1                	sub    %ecx,%esi
4223fd:	d1 fe                	sar    $1,%esi
4223ff:	3b f0                	cmp    %eax,%esi
422401:	72 20                	jb     0x422423
422403:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
422409:	73 08                	jae    0x422413
42240b:	8d 04 36             	lea    (%esi,%esi,1),%eax
42240e:	89 45 fc             	mov    %eax,-0x4(%ebp)
422411:	eb 10                	jmp    0x422423
422413:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
422418:	89 45 fc             	mov    %eax,-0x4(%ebp)
42241b:	3b f0                	cmp    %eax,%esi
42241d:	0f 83 b3 00 00 00    	jae    0x4224d6
422423:	50                   	push   %eax
422424:	8d 4f 40             	lea    0x40(%edi),%ecx
422427:	e8 c9 d0 ff ff       	call   0x41f4f5
42242c:	8b d8                	mov    %eax,%ebx
42242e:	8d 04 36             	lea    (%esi,%esi,1),%eax
422431:	8b 75 f4             	mov    -0xc(%ebp),%esi
422434:	50                   	push   %eax
422435:	56                   	push   %esi
422436:	53                   	push   %ebx
422437:	89 45 f8             	mov    %eax,-0x8(%ebp)
42243a:	e8 21 0f 02 00       	call   0x443360
42243f:	8b 55 f8             	mov    -0x8(%ebp),%edx
422442:	83 c4 0c             	add    $0xc,%esp
422445:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422448:	03 d3                	add    %ebx,%edx
42244a:	03 c9                	add    %ecx,%ecx
42244c:	2b ca                	sub    %edx,%ecx
42244e:	03 cb                	add    %ebx,%ecx
422450:	8d 42 02             	lea    0x2(%edx),%eax
422453:	d1 f9                	sar    $1,%ecx
422455:	89 47 38             	mov    %eax,0x38(%edi)
422458:	8b 47 10             	mov    0x10(%edi),%eax
42245b:	89 18                	mov    %ebx,(%eax)
42245d:	8b 47 20             	mov    0x20(%edi),%eax
422460:	89 10                	mov    %edx,(%eax)
422462:	8b 47 30             	mov    0x30(%edi),%eax
422465:	89 08                	mov    %ecx,(%eax)
422467:	f6 47 3c 04          	testb  $0x4,0x3c(%edi)
42246b:	74 14                	je     0x422481
42246d:	8b 47 0c             	mov    0xc(%edi),%eax
422470:	89 18                	mov    %ebx,(%eax)
422472:	8b 47 1c             	mov    0x1c(%edi),%eax
422475:	83 20 00             	andl   $0x0,(%eax)
422478:	8b 47 2c             	mov    0x2c(%edi),%eax
42247b:	d1 fb                	sar    $1,%ebx
42247d:	89 18                	mov    %ebx,(%eax)
42247f:	eb 22                	jmp    0x4224a3
422481:	8b 47 1c             	mov    0x1c(%edi),%eax
422484:	8b 57 38             	mov    0x38(%edi),%edx
422487:	8b 00                	mov    (%eax),%eax
422489:	2b c6                	sub    %esi,%eax
42248b:	d1 f8                	sar    $1,%eax
42248d:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
422490:	8b 47 0c             	mov    0xc(%edi),%eax
422493:	2b d1                	sub    %ecx,%edx
422495:	d1 fa                	sar    $1,%edx
422497:	89 18                	mov    %ebx,(%eax)
422499:	8b 47 1c             	mov    0x1c(%edi),%eax
42249c:	89 08                	mov    %ecx,(%eax)
42249e:	8b 47 2c             	mov    0x2c(%edi),%eax
4224a1:	89 10                	mov    %edx,(%eax)
4224a3:	8b 47 3c             	mov    0x3c(%edi),%eax
4224a6:	a8 01                	test   $0x1,%al
4224a8:	74 0e                	je     0x4224b8
4224aa:	ff 75 f8             	push   -0x8(%ebp)
4224ad:	56                   	push   %esi
4224ae:	e8 77 10 fe ff       	call   0x40352a
4224b3:	8b 47 3c             	mov    0x3c(%edi),%eax
4224b6:	59                   	pop    %ecx
4224b7:	59                   	pop    %ecx
4224b8:	83 c8 01             	or     $0x1,%eax
4224bb:	89 47 3c             	mov    %eax,0x3c(%edi)
4224be:	8b 47 30             	mov    0x30(%edi),%eax
4224c1:	ff 08                	decl   (%eax)
4224c3:	8b 4f 20             	mov    0x20(%edi),%ecx
4224c6:	8b 11                	mov    (%ecx),%edx
4224c8:	8d 42 02             	lea    0x2(%edx),%eax
4224cb:	89 01                	mov    %eax,(%ecx)
4224cd:	66 8b 45 08          	mov    0x8(%ebp),%ax
4224d1:	66 89 02             	mov    %ax,(%edx)
4224d4:	eb 05                	jmp    0x4224db
4224d6:	b8 ff ff 00 00       	mov    $0xffff,%eax
4224db:	5f                   	pop    %edi
4224dc:	5e                   	pop    %esi
4224dd:	5b                   	pop    %ebx
4224de:	c9                   	leave
4224df:	c2 04 00             	ret    $0x4
4224e2:	55                   	push   %ebp
4224e3:	8b ec                	mov    %esp,%ebp
4224e5:	83 ec 2c             	sub    $0x2c,%esp
4224e8:	a1 94 80 4b 00       	mov    0x4b8094,%eax
4224ed:	33 c5                	xor    %ebp,%eax
4224ef:	89 45 fc             	mov    %eax,-0x4(%ebp)
4224f2:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
4224f6:	53                   	push   %ebx
4224f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4224fa:	56                   	push   %esi
4224fb:	57                   	push   %edi
4224fc:	8b 7d 08             	mov    0x8(%ebp),%edi
4224ff:	8b f1                	mov    %ecx,%esi
422501:	8b 03                	mov    (%ebx),%eax
422503:	89 7d d4             	mov    %edi,-0x2c(%ebp)
422506:	8a 00                	mov    (%eax),%al
422508:	2c 30                	sub    $0x30,%al
42250a:	3c 09                	cmp    $0x9,%al
42250c:	8d 45 d8             	lea    -0x28(%ebp),%eax
42250f:	50                   	push   %eax
422510:	77 15                	ja     0x422527
422512:	53                   	push   %ebx
422513:	e8 58 5d fe ff       	call   0x408270
422518:	59                   	pop    %ecx
422519:	50                   	push   %eax
42251a:	8d 45 ec             	lea    -0x14(%ebp),%eax
42251d:	8b ce                	mov    %esi,%ecx
42251f:	50                   	push   %eax
422520:	e8 94 f7 ff ff       	call   0x421cb9
422525:	eb 09                	jmp    0x422530
422527:	8d 45 dc             	lea    -0x24(%ebp),%eax
42252a:	50                   	push   %eax
42252b:	e8 86 fd ff ff       	call   0x4222b6
422530:	8b 55 d8             	mov    -0x28(%ebp),%edx
422533:	8b f0                	mov    %eax,%esi
422535:	a5                   	movsl  %ds:(%esi),%es:(%edi)
422536:	a5                   	movsl  %ds:(%esi),%es:(%edi)
422537:	a5                   	movsl  %ds:(%esi),%es:(%edi)
422538:	a5                   	movsl  %ds:(%esi),%es:(%edi)
422539:	85 d2                	test   %edx,%edx
42253b:	75 14                	jne    0x422551
42253d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422540:	8b 45 d4             	mov    -0x2c(%ebp),%eax
422543:	33 cd                	xor    %ebp,%ecx
422545:	5f                   	pop    %edi
422546:	5e                   	pop    %esi
422547:	5b                   	pop    %ebx
422548:	e8 b5 d4 01 00       	call   0x43fa02
42254d:	c9                   	leave
42254e:	c2 08 00             	ret    $0x8
422551:	8b 03                	mov    (%ebx),%eax
422553:	8a 00                	mov    (%eax),%al
422555:	3c 7d                	cmp    $0x7d,%al
422557:	74 09                	je     0x422562
422559:	3c 3a                	cmp    $0x3a,%al
42255b:	74 05                	je     0x422562
42255d:	ba cc 62 49 00       	mov    $0x4962cc,%edx
422562:	51                   	push   %ecx
422563:	8b cc                	mov    %esp,%ecx
422565:	52                   	push   %edx
422566:	e8 d5 80 fe ff       	call   0x40a640
42256b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
42256e:	e8 6f 97 fe ff       	call   0x40bce2
422573:	68 24 16 4b 00       	push   $0x4b1624
422578:	8d 45 f0             	lea    -0x10(%ebp),%eax
42257b:	50                   	push   %eax
42257c:	e8 41 1c 02 00       	call   0x4441c2
422581:	cc                   	int3
422582:	55                   	push   %ebp
422583:	8b ec                	mov    %esp,%ebp