40446d:	51                   	push   %ecx
40446e:	50                   	push   %eax
40446f:	8b cf                	mov    %edi,%ecx
404471:	e8 cc 45 00 00       	call   0x408a42
404476:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40447a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40447d:	50                   	push   %eax
40447e:	e8 c5 b2 00 00       	call   0x40f748
404483:	88 5d fc             	mov    %bl,-0x4(%ebp)
404486:	8d 4d a8             	lea    -0x58(%ebp),%ecx
404489:	e8 6c 8e 01 00       	call   0x41d2fa
40448e:	eb 73                	jmp    0x404503
404490:	33 ff                	xor    %edi,%edi
404492:	39 7e 08             	cmp    %edi,0x8(%esi)
404495:	76 69                	jbe    0x404500
404497:	8b 0e                	mov    (%esi),%ecx
404499:	8b 46 0c             	mov    0xc(%esi),%eax
40449c:	51                   	push   %ecx
40449d:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4044a0:	8d 04 78             	lea    (%eax,%edi,2),%eax
4044a3:	50                   	push   %eax
4044a4:	e8 fa b3 01 00       	call   0x41f8a3
4044a9:	83 7d d4 08          	cmpl   $0x8,-0x2c(%ebp)
4044ad:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4044b0:	8b 45 d0             	mov    -0x30(%ebp),%eax
4044b3:	0f 43 4d c0          	cmovae -0x40(%ebp),%ecx
4044b7:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4044ba:	50                   	push   %eax
4044bb:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4044be:	0f 43 4d c0          	cmovae -0x40(%ebp),%ecx
4044c2:	8d 45 a8             	lea    -0x58(%ebp),%eax
4044c5:	51                   	push   %ecx
4044c6:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4044c9:	50                   	push   %eax
4044ca:	e8 73 45 00 00       	call   0x408a42
4044cf:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4044d3:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4044d6:	50                   	push   %eax
4044d7:	e8 6c b2 00 00       	call   0x40f748
4044dc:	88 5d fc             	mov    %bl,-0x4(%ebp)
4044df:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4044e2:	e8 13 8e 01 00       	call   0x41d2fa
4044e7:	8d 45 d8             	lea    -0x28(%ebp),%eax
4044ea:	50                   	push   %eax
4044eb:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4044ee:	e8 e4 50 01 00       	call   0x4195d7
4044f3:	84 c0                	test   %al,%al
4044f5:	75 12                	jne    0x404509
4044f7:	8b 0e                	mov    (%esi),%ecx
4044f9:	03 f9                	add    %ecx,%edi
4044fb:	3b 7e 08             	cmp    0x8(%esi),%edi
4044fe:	72 99                	jb     0x404499
404500:	8b 76 10             	mov    0x10(%esi),%esi
404503:	85 f6                	test   %esi,%esi
404505:	75 89                	jne    0x404490
404507:	32 db                	xor    %bl,%bl
404509:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40450d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404510:	e8 e5 8d 01 00       	call   0x41d2fa
404515:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404519:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40451c:	e8 d9 8d 01 00       	call   0x41d2fa
404521:	8a c3                	mov    %bl,%al
404523:	e8 00 b5 03 00       	call   0x43fa28
404528:	c3                   	ret
404529:	55                   	push   %ebp
40452a:	8b ec                	mov    %esp,%ebp
40452c:	8b 45 0c             	mov    0xc(%ebp),%eax
40452f:	33 c9                	xor    %ecx,%ecx
404531:	56                   	push   %esi
404532:	8b 50 04             	mov    0x4(%eax),%edx
404535:	85 d2                	test   %edx,%edx
404537:	74 1d                	je     0x404556
404539:	8b 70 08             	mov    0x8(%eax),%esi
40453c:	0f b6 04 0e          	movzbl (%esi,%ecx,1),%eax
404540:	3b 45 08             	cmp    0x8(%ebp),%eax
404543:	77 0a                	ja     0x40454f
404545:	0f b6 44 0e 01       	movzbl 0x1(%esi,%ecx,1),%eax
40454a:	39 45 08             	cmp    %eax,0x8(%ebp)
40454d:	76 0c                	jbe    0x40455b
40454f:	83 c1 02             	add    $0x2,%ecx
404552:	3b ca                	cmp    %edx,%ecx
404554:	72 e6                	jb     0x40453c
404556:	32 c0                	xor    %al,%al
404558:	5e                   	pop    %esi
404559:	5d                   	pop    %ebp
40455a:	c3                   	ret
40455b:	b0 01                	mov    $0x1,%al
40455d:	eb f9                	jmp    0x404558
40455f:	55                   	push   %ebp
404560:	8b ec                	mov    %esp,%ebp
404562:	8b 45 0c             	mov    0xc(%ebp),%eax
404565:	33 c9                	xor    %ecx,%ecx
404567:	56                   	push   %esi
404568:	8b 50 04             	mov    0x4(%eax),%edx
40456b:	85 d2                	test   %edx,%edx
40456d:	74 1d                	je     0x40458c
40456f:	8b 70 08             	mov    0x8(%eax),%esi
404572:	0f b7 04 4e          	movzwl (%esi,%ecx,2),%eax
404576:	3b 45 08             	cmp    0x8(%ebp),%eax
404579:	77 0a                	ja     0x404585
40457b:	0f b7 44 4e 02       	movzwl 0x2(%esi,%ecx,2),%eax
404580:	39 45 08             	cmp    %eax,0x8(%ebp)
404583:	76 0c                	jbe    0x404591
404585:	83 c1 02             	add    $0x2,%ecx
404588:	3b ca                	cmp    %edx,%ecx
40458a:	72 e6                	jb     0x404572
40458c:	32 c0                	xor    %al,%al
40458e:	5e                   	pop    %esi
40458f:	5d                   	pop    %ebp
404590:	c3                   	ret
404591:	b0 01                	mov    $0x1,%al
404593:	eb f9                	jmp    0x40458e
404595:	55                   	push   %ebp
404596:	8b ec                	mov    %esp,%ebp
404598:	83 ec 0c             	sub    $0xc,%esp
40459b:	ff 75 10             	push   0x10(%ebp)
40459e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4045a2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4045a5:	50                   	push   %eax
4045a6:	6a 01                	push   $0x1
4045a8:	8d 45 08             	lea    0x8(%ebp),%eax
4045ab:	0f 57 c0             	xorps  %xmm0,%xmm0
4045ae:	50                   	push   %eax
4045af:	8d 45 fc             	lea    -0x4(%ebp),%eax
4045b2:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
4045b7:	50                   	push   %eax
4045b8:	e8 e4 1a 02 00       	call   0x4260a1
4045bd:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4045c1:	83 c4 14             	add    $0x14,%esp
4045c4:	c9                   	leave
4045c5:	c3                   	ret
4045c6:	55                   	push   %ebp
4045c7:	8b ec                	mov    %esp,%ebp
4045c9:	56                   	push   %esi
4045ca:	57                   	push   %edi
4045cb:	8b 7d 08             	mov    0x8(%ebp),%edi
4045ce:	57                   	push   %edi
4045cf:	e8 7c 30 06 00       	call   0x467650
4045d4:	6a 01                	push   $0x1
4045d6:	8d 70 01             	lea    0x1(%eax),%esi
4045d9:	56                   	push   %esi
4045da:	e8 a4 87 04 00       	call   0x44cd83
4045df:	8b d0                	mov    %eax,%edx
4045e1:	83 c4 0c             	add    $0xc,%esp
4045e4:	85 d2                	test   %edx,%edx
4045e6:	74 19                	je     0x404601
4045e8:	85 f6                	test   %esi,%esi
4045ea:	74 0f                	je     0x4045fb
4045ec:	8b ca                	mov    %edx,%ecx
4045ee:	2b cf                	sub    %edi,%ecx
4045f0:	8a 07                	mov    (%edi),%al
4045f2:	88 04 39             	mov    %al,(%ecx,%edi,1)
4045f5:	47                   	inc    %edi
4045f6:	83 ee 01             	sub    $0x1,%esi
4045f9:	75 f5                	jne    0x4045f0
4045fb:	5f                   	pop    %edi
4045fc:	8b c2                	mov    %edx,%eax
4045fe:	5e                   	pop    %esi
4045ff:	5d                   	pop    %ebp
404600:	c3                   	ret
404601:	e8 80 16 02 00       	call   0x425c86
404606:	cc                   	int3
404607:	55                   	push   %ebp
404608:	8b ec                	mov    %esp,%ebp
40460a:	83 ec 1c             	sub    $0x1c,%esp
40460d:	53                   	push   %ebx
40460e:	8b 5d 08             	mov    0x8(%ebp),%ebx
404611:	0f 57 c0             	xorps  %xmm0,%xmm0
404614:	56                   	push   %esi
404615:	57                   	push   %edi
404616:	53                   	push   %ebx
404617:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
40461c:	e8 2f 30 06 00       	call   0x467650
404621:	59                   	pop    %ecx
404622:	83 c0 01             	add    $0x1,%eax
404625:	6a 00                	push   $0x0
404627:	89 45 f8             	mov    %eax,-0x8(%ebp)
40462a:	8b f8                	mov    %eax,%edi
40462c:	5e                   	pop    %esi
40462d:	74 20                	je     0x40464f
40462f:	ff 75 10             	push   0x10(%ebp)
404632:	8d 45 ec             	lea    -0x14(%ebp),%eax
404635:	50                   	push   %eax
404636:	57                   	push   %edi
404637:	8d 45 fc             	lea    -0x4(%ebp),%eax
40463a:	53                   	push   %ebx
40463b:	50                   	push   %eax
40463c:	e8 60 1a 02 00       	call   0x4260a1
404641:	83 c4 14             	add    $0x14,%esp
404644:	85 c0                	test   %eax,%eax
404646:	7e 07                	jle    0x40464f
404648:	03 d8                	add    %eax,%ebx
40464a:	46                   	inc    %esi
40464b:	2b f8                	sub    %eax,%edi
40464d:	75 e0                	jne    0x40462f
40464f:	46                   	inc    %esi
404650:	6a 02                	push   $0x2
404652:	56                   	push   %esi
404653:	e8 2b 87 04 00       	call   0x44cd83
404658:	8b d8                	mov    %eax,%ebx
40465a:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40465d:	59                   	pop    %ecx
40465e:	59                   	pop    %ecx
40465f:	85 db                	test   %ebx,%ebx
404661:	74 42                	je     0x4046a5
404663:	0f 57 c0             	xorps  %xmm0,%xmm0
404666:	8b fb                	mov    %ebx,%edi
404668:	66 0f 13 45 e4       	movlpd %xmm0,-0x1c(%ebp)
40466d:	85 f6                	test   %esi,%esi
40466f:	74 28                	je     0x404699
404671:	8b 5d 08             	mov    0x8(%ebp),%ebx
404674:	ff 75 10             	push   0x10(%ebp)
404677:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40467a:	50                   	push   %eax
40467b:	ff 75 f8             	push   -0x8(%ebp)
40467e:	53                   	push   %ebx
40467f:	57                   	push   %edi
404680:	e8 1c 1a 02 00       	call   0x4260a1
404685:	83 c4 14             	add    $0x14,%esp
404688:	85 c0                	test   %eax,%eax
40468a:	7e 0a                	jle    0x404696
40468c:	03 d8                	add    %eax,%ebx
40468e:	83 c7 02             	add    $0x2,%edi
404691:	83 ee 01             	sub    $0x1,%esi
404694:	75 de                	jne    0x404674
404696:	8b 5d f4             	mov    -0xc(%ebp),%ebx
404699:	33 c0                	xor    %eax,%eax
40469b:	66 89 07             	mov    %ax,(%edi)
40469e:	8b c3                	mov    %ebx,%eax
4046a0:	5f                   	pop    %edi
4046a1:	5e                   	pop    %esi
4046a2:	5b                   	pop    %ebx
4046a3:	c9                   	leave
4046a4:	c3                   	ret
4046a5:	e8 dc 15 02 00       	call   0x425c86
4046aa:	cc                   	int3
4046ab:	55                   	push   %ebp
4046ac:	8b ec                	mov    %esp,%ebp
4046ae:	51                   	push   %ecx
4046af:	53                   	push   %ebx
4046b0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4046b3:	56                   	push   %esi
4046b4:	57                   	push   %edi
4046b5:	8b f9                	mov    %ecx,%edi
4046b7:	85 db                	test   %ebx,%ebx
4046b9:	74 13                	je     0x4046ce
4046bb:	8d 73 08             	lea    0x8(%ebx),%esi
4046be:	c6 43 04 01          	movb   $0x1,0x4(%ebx)
4046c2:	56                   	push   %esi
4046c3:	6a 00                	push   $0x0
4046c5:	8b ce                	mov    %esi,%ecx
4046c7:	e8 e3 17 00 00       	call   0x405eaf
4046cc:	eb 03                	jmp    0x4046d1
4046ce:	6a 08                	push   $0x8
4046d0:	5e                   	pop    %esi
4046d1:	8b 47 54             	mov    0x54(%edi),%eax
4046d4:	8d 4f 04             	lea    0x4(%edi),%ecx
4046d7:	6a 00                	push   $0x0
4046d9:	ff 77 68             	push   0x68(%edi)
4046dc:	89 47 4c             	mov    %eax,0x4c(%edi)
4046df:	89 07                	mov    %eax,(%edi)
4046e1:	e8 ec e1 01 00       	call   0x4228d2
4046e6:	8d 4f 14             	lea    0x14(%edi),%ecx
4046e9:	51                   	push   %ecx
4046ea:	ff 77 68             	push   0x68(%edi)
4046ed:	e8 e0 12 00 00       	call   0x4059d2
4046f2:	ff 77 58             	push   0x58(%edi)
4046f5:	85 db                	test   %ebx,%ebx
4046f7:	c7 47 78 80 96 98 00 	movl   $0x989680,0x78(%edi)
4046fe:	8b cf                	mov    %edi,%ecx
404700:	c7 47 7c e8 03 00 00 	movl   $0x3e8,0x7c(%edi)
404707:	0f 95 c0             	setne  %al
40470a:	c6 47 64 00          	movb   $0x0,0x64(%edi)
40470e:	88 47 65             	mov    %al,0x65(%edi)
404711:	8a 45 0c             	mov    0xc(%ebp),%al
404714:	88 47 74             	mov    %al,0x74(%edi)
404717:	e8 f6 70 01 00       	call   0x41b812
40471c:	84 c0                	test   %al,%al
40471e:	0f 84 bc 00 00 00    	je     0x4047e0
404724:	85 db                	test   %ebx,%ebx
404726:	0f 84 b2 00 00 00    	je     0x4047de
40472c:	8b c6                	mov    %esi,%eax
40472e:	50                   	push   %eax
40472f:	ff 77 68             	push   0x68(%edi)
404732:	8b c8                	mov    %eax,%ecx
404734:	e8 76 17 00 00       	call   0x405eaf
404739:	33 c0                	xor    %eax,%eax
40473b:	89 45 0c             	mov    %eax,0xc(%ebp)
40473e:	39 47 68             	cmp    %eax,0x68(%edi)
404741:	76 5f                	jbe    0x4047a2
404743:	33 db                	xor    %ebx,%ebx
404745:	8b c8                	mov    %eax,%ecx
404747:	33 d2                	xor    %edx,%edx
404749:	83 e1 1f             	and    $0x1f,%ecx
40474c:	42                   	inc    %edx
40474d:	d3 e2                	shl    %cl,%edx
40474f:	8b c8                	mov    %eax,%ecx
404751:	8b 47 24             	mov    0x24(%edi),%eax
404754:	c1 e9 05             	shr    $0x5,%ecx
404757:	85 14 88             	test   %edx,(%eax,%ecx,4)
40475a:	8b 06                	mov    (%esi),%eax
40475c:	74 1c                	je     0x40477a
40475e:	8b 55 0c             	mov    0xc(%ebp),%edx
404761:	c6 44 03 08 01       	movb   $0x1,0x8(%ebx,%eax,1)
404766:	8b 47 34             	mov    0x34(%edi),%eax
404769:	8b 0e                	mov    (%esi),%ecx
40476b:	8b 04 d0             	mov    (%eax,%edx,8),%eax
40476e:	89 04 0b             	mov    %eax,(%ebx,%ecx,1)
404771:	8b 47 34             	mov    0x34(%edi),%eax
404774:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
404778:	eb 10                	jmp    0x40478a
40477a:	c6 44 03 08 00       	movb   $0x0,0x8(%ebx,%eax,1)
40477f:	8b 0e                	mov    (%esi),%ecx
404781:	8b 47 50             	mov    0x50(%edi),%eax
404784:	89 04 0b             	mov    %eax,(%ebx,%ecx,1)
404787:	8b 47 50             	mov    0x50(%edi),%eax
40478a:	8b 0e                	mov    (%esi),%ecx
40478c:	89 44 0b 04          	mov    %eax,0x4(%ebx,%ecx,1)
404790:	83 c3 0c             	add    $0xc,%ebx
404793:	8b 45 0c             	mov    0xc(%ebp),%eax
404796:	40                   	inc    %eax
404797:	89 45 0c             	mov    %eax,0xc(%ebp)
40479a:	3b 47 68             	cmp    0x68(%edi),%eax
40479d:	72 a6                	jb     0x404745
40479f:	8b 5d 08             	mov    0x8(%ebp),%ebx
4047a2:	8b 47 4c             	mov    0x4c(%edi),%eax
4047a5:	89 03                	mov    %eax,(%ebx)
4047a7:	8b 4f 4c             	mov    0x4c(%edi),%ecx
4047aa:	89 4b 14             	mov    %ecx,0x14(%ebx)
4047ad:	8b 06                	mov    (%esi),%eax
4047af:	8b 00                	mov    (%eax),%eax
4047b1:	3b c8                	cmp    %eax,%ecx
4047b3:	89 43 18             	mov    %eax,0x18(%ebx)
4047b6:	0f 95 c0             	setne  %al
4047b9:	88 43 1c             	mov    %al,0x1c(%ebx)
4047bc:	8b 06                	mov    (%esi),%eax
4047be:	8b 50 04             	mov    0x4(%eax),%edx
4047c1:	89 53 20             	mov    %edx,0x20(%ebx)
4047c4:	8b 4f 50             	mov    0x50(%edi),%ecx
4047c7:	3b d1                	cmp    %ecx,%edx
4047c9:	89 4b 24             	mov    %ecx,0x24(%ebx)
4047cc:	0f 95 c1             	setne  %cl
4047cf:	88 4b 28             	mov    %cl,0x28(%ebx)
4047d2:	8b 4f 50             	mov    0x50(%edi),%ecx
4047d5:	89 4b 2c             	mov    %ecx,0x2c(%ebx)
4047d8:	8b 4f 50             	mov    0x50(%edi),%ecx
4047db:	89 4b 30             	mov    %ecx,0x30(%ebx)
4047de:	b0 01                	mov    $0x1,%al
4047e0:	5f                   	pop    %edi