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
422585:	83 ec 14             	sub    $0x14,%esp
422588:	53                   	push   %ebx
422589:	56                   	push   %esi
42258a:	8b 75 0c             	mov    0xc(%ebp),%esi
42258d:	57                   	push   %edi
42258e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
422591:	8b 06                	mov    (%esi),%eax
422593:	89 45 fc             	mov    %eax,-0x4(%ebp)
422596:	ff 06                	incl   (%esi)
422598:	8b 3e                	mov    (%esi),%edi
42259a:	8a 1f                	mov    (%edi),%bl
42259c:	88 5d 0c             	mov    %bl,0xc(%ebp)
42259f:	ff 75 0c             	push   0xc(%ebp)
4225a2:	e8 30 57 fe ff       	call   0x407cd7
4225a7:	59                   	pop    %ecx
4225a8:	84 c0                	test   %al,%al
4225aa:	75 ea                	jne    0x422596
4225ac:	80 fb 30             	cmp    $0x30,%bl
4225af:	7c 05                	jl     0x4225b6
4225b1:	80 fb 39             	cmp    $0x39,%bl
4225b4:	7e e0                	jle    0x422596
4225b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4225b9:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4225bc:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
4225c0:	2b f8                	sub    %eax,%edi
4225c2:	51                   	push   %ecx
4225c3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4225c6:	57                   	push   %edi
4225c7:	50                   	push   %eax
4225c8:	ff 75 08             	push   0x8(%ebp)
4225cb:	e8 95 f6 ff ff       	call   0x421c65
4225d0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4225d4:	75 0a                	jne    0x4225e0
4225d6:	8b 45 08             	mov    0x8(%ebp),%eax
4225d9:	5f                   	pop    %edi
4225da:	5e                   	pop    %esi
4225db:	5b                   	pop    %ebx
4225dc:	c9                   	leave
4225dd:	c2 08 00             	ret    $0x8
4225e0:	51                   	push   %ecx
4225e1:	8b cc                	mov    %esp,%ecx
4225e3:	ff 75 0c             	push   0xc(%ebp)
4225e6:	e8 55 80 fe ff       	call   0x40a640
4225eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4225ee:	e8 ef 96 fe ff       	call   0x40bce2
4225f3:	68 24 16 4b 00       	push   $0x4b1624
4225f8:	8d 45 ec             	lea    -0x14(%ebp),%eax
4225fb:	50                   	push   %eax
4225fc:	e8 c1 1b 02 00       	call   0x4441c2
422601:	cc                   	int3
422602:	b8 ff ff 00 00       	mov    $0xffff,%eax
422607:	c2 04 00             	ret    $0x4
42260a:	55                   	push   %ebp
42260b:	8b ec                	mov    %esp,%ebp
42260d:	8b 41 1c             	mov    0x1c(%ecx),%eax
422610:	56                   	push   %esi
422611:	57                   	push   %edi
422612:	bf ff ff 00 00       	mov    $0xffff,%edi
422617:	8b 30                	mov    (%eax),%esi
422619:	85 f6                	test   %esi,%esi
42261b:	74 41                	je     0x42265e
42261d:	8b 41 0c             	mov    0xc(%ecx),%eax
422620:	3b 30                	cmp    (%eax),%esi
422622:	76 3a                	jbe    0x42265e
422624:	66 8b 55 08          	mov    0x8(%ebp),%dx
422628:	66 3b fa             	cmp    %dx,%di
42262b:	74 0c                	je     0x422639
42262d:	66 3b 56 fe          	cmp    -0x2(%esi),%dx
422631:	74 06                	je     0x422639
422633:	f6 41 3c 02          	testb  $0x2,0x3c(%ecx)
422637:	75 25                	jne    0x42265e
422639:	8b 41 2c             	mov    0x2c(%ecx),%eax
42263c:	ff 00                	incl   (%eax)
42263e:	8b 41 1c             	mov    0x1c(%ecx),%eax
422641:	83 00 fe             	addl   $0xfffffffe,(%eax)
422644:	66 3b fa             	cmp    %dx,%di
422647:	74 08                	je     0x422651
422649:	8b 41 1c             	mov    0x1c(%ecx),%eax
42264c:	8b 00                	mov    (%eax),%eax
42264e:	66 89 10             	mov    %dx,(%eax)
422651:	33 c9                	xor    %ecx,%ecx
422653:	0f b7 c2             	movzwl %dx,%eax
422656:	66 3b d7             	cmp    %di,%dx
422659:	0f 44 c1             	cmove  %ecx,%eax
42265c:	eb 03                	jmp    0x422661
42265e:	66 8b c7             	mov    %di,%ax
422661:	5f                   	pop    %edi
422662:	5e                   	pop    %esi
422663:	5d                   	pop    %ebp
422664:	c2 04 00             	ret    $0x4
422667:	56                   	push   %esi
422668:	8b f1                	mov    %ecx,%esi
42266a:	6a 00                	push   $0x0
42266c:	8b 46 10             	mov    0x10(%esi),%eax
42266f:	8b 56 0c             	mov    0xc(%esi),%edx
422672:	48                   	dec    %eax
422673:	8b 4e 04             	mov    0x4(%esi),%ecx
422676:	03 d0                	add    %eax,%edx
422678:	8b 46 08             	mov    0x8(%esi),%eax
42267b:	48                   	dec    %eax
42267c:	23 d0                	and    %eax,%edx
42267e:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
422681:	e8 14 e2 fe ff       	call   0x41089a
422686:	83 6e 10 01          	subl   $0x1,0x10(%esi)
42268a:	75 04                	jne    0x422690
42268c:	83 66 0c 00          	andl   $0x0,0xc(%esi)
422690:	5e                   	pop    %esi
422691:	c3                   	ret
422692:	55                   	push   %ebp
422693:	8b ec                	mov    %esp,%ebp
422695:	51                   	push   %ecx
422696:	8b 51 10             	mov    0x10(%ecx),%edx
422699:	3b 51 14             	cmp    0x14(%ecx),%edx
42269c:	73 1b                	jae    0x4226b9
42269e:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4226a2:	8d 42 01             	lea    0x1(%edx),%eax
4226a5:	89 41 10             	mov    %eax,0x10(%ecx)
4226a8:	72 02                	jb     0x4226ac
4226aa:	8b 09                	mov    (%ecx),%ecx
4226ac:	8a 45 08             	mov    0x8(%ebp),%al
4226af:	88 04 11             	mov    %al,(%ecx,%edx,1)
4226b2:	c6 44 11 01 00       	movb   $0x0,0x1(%ecx,%edx,1)
4226b7:	eb 11                	jmp    0x4226ca
4226b9:	ff 75 08             	push   0x8(%ebp)
4226bc:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4226c0:	ff 75 fc             	push   -0x4(%ebp)
4226c3:	6a 01                	push   $0x1
4226c5:	e8 6a 28 fe ff       	call   0x404f34
4226ca:	c9                   	leave
4226cb:	c2 04 00             	ret    $0x4
4226ce:	55                   	push   %ebp
4226cf:	8b ec                	mov    %esp,%ebp
4226d1:	51                   	push   %ecx
4226d2:	8b 51 10             	mov    0x10(%ecx),%edx
4226d5:	3b 51 14             	cmp    0x14(%ecx),%edx
4226d8:	73 1f                	jae    0x4226f9
4226da:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
4226de:	8d 42 01             	lea    0x1(%edx),%eax
4226e1:	89 41 10             	mov    %eax,0x10(%ecx)
4226e4:	72 02                	jb     0x4226e8
4226e6:	8b 09                	mov    (%ecx),%ecx
4226e8:	66 8b 45 08          	mov    0x8(%ebp),%ax
4226ec:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
4226f0:	33 c0                	xor    %eax,%eax
4226f2:	66 89 44 51 02       	mov    %ax,0x2(%ecx,%edx,2)
4226f7:	eb 11                	jmp    0x42270a
4226f9:	ff 75 08             	push   0x8(%ebp)
4226fc:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
422700:	ff 75 fc             	push   -0x4(%ebp)
422703:	6a 01                	push   $0x1
422705:	e8 58 29 fe ff       	call   0x405062
42270a:	c9                   	leave
42270b:	c2 04 00             	ret    $0x4
42270e:	6a 30                	push   $0x30
422710:	b8 6c 01 49 00       	mov    $0x49016c,%eax
422715:	e8 30 d3 01 00       	call   0x43fa4a
42271a:	8b 45 0c             	mov    0xc(%ebp),%eax
42271d:	8a 5d 08             	mov    0x8(%ebp),%bl
422720:	89 45 d4             	mov    %eax,-0x2c(%ebp)
422723:	0f b6 c3             	movzbl %bl,%eax
422726:	50                   	push   %eax
422727:	e8 cc 55 04 00       	call   0x467cf8
42272c:	59                   	pop    %ecx
42272d:	85 c0                	test   %eax,%eax
42272f:	74 43                	je     0x422774
422731:	8d 45 d4             	lea    -0x2c(%ebp),%eax
422734:	50                   	push   %eax
422735:	8d 45 08             	lea    0x8(%ebp),%eax
422738:	50                   	push   %eax
422739:	51                   	push   %ecx
42273a:	8b cc                	mov    %esp,%ecx
42273c:	68 b0 49 49 00       	push   $0x4949b0
422741:	e8 fa 7e fe ff       	call   0x40a640
422746:	8d 45 dc             	lea    -0x24(%ebp),%eax
422749:	50                   	push   %eax