540421:	b9 09 00 00 00       	mov    $0x9,%ecx
540426:	8b c6                	mov    %esi,%eax
540428:	8b 18                	mov    (%eax),%ebx
54042a:	ff 53 08             	call   *0x8(%ebx)
54042d:	8a 45 f3             	mov    -0xd(%ebp),%al
540430:	8b d0                	mov    %eax,%edx
540432:	80 e2 07             	and    $0x7,%dl
540435:	81 e2 ff 00 00 00    	and    $0xff,%edx
54043b:	89 55 c0             	mov    %edx,-0x40(%ebp)
54043e:	a8 40                	test   $0x40,%al
540440:	0f 95 45 bf          	setne  -0x41(%ebp)
540444:	a8 80                	test   $0x80,%al
540446:	0f 95 c3             	setne  %bl
540449:	84 db                	test   %bl,%bl
54044b:	74 1a                	je     0x540467
54044d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
540450:	b8 02 00 00 00       	mov    $0x2,%eax
540455:	d3 e0                	shl    %cl,%eax
540457:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
54045a:	8d 95 9b f9 ff ff    	lea    -0x665(%ebp),%edx
540460:	8b c6                	mov    %esi,%eax
540462:	8b 38                	mov    (%eax),%edi
540464:	ff 57 08             	call   *0x8(%edi)
540467:	8b 45 f8             	mov    -0x8(%ebp),%eax
54046a:	8b 00                	mov    (%eax),%eax
54046c:	3b 45 f4             	cmp    -0xc(%ebp),%eax
54046f:	0f 85 5b 07 00 00    	jne    0x540bd0
540475:	8b 45 14             	mov    0x14(%ebp),%eax
540478:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
54047d:	74 13                	je     0x540492
54047f:	8b 7d 14             	mov    0x14(%ebp),%edi
540482:	8b 55 14             	mov    0x14(%ebp),%edx
540485:	8b 52 08             	mov    0x8(%edx),%edx
540488:	b9 1e 00 00 00       	mov    $0x1e,%ecx
54048d:	8b 47 04             	mov    0x4(%edi),%eax
540490:	ff 17                	call   *(%edi)
540492:	8b 45 14             	mov    0x14(%ebp),%eax
540495:	8b 40 28             	mov    0x28(%eax),%eax
540498:	80 38 00             	cmpb   $0x0,(%eax)
54049b:	0f 85 cb 08 00 00    	jne    0x540d6c
5404a1:	84 db                	test   %bl,%bl
5404a3:	74 56                	je     0x5404fb
5404a5:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5404a8:	b8 02 00 00 00       	mov    $0x2,%eax
5404ad:	d3 e0                	shl    %cl,%eax
5404af:	48                   	dec    %eax
5404b0:	85 c0                	test   %eax,%eax
5404b2:	7c 1c                	jl     0x5404d0
5404b4:	40                   	inc    %eax
5404b5:	89 45 ac             	mov    %eax,-0x54(%ebp)
5404b8:	8d bd 9d f9 ff ff    	lea    -0x663(%ebp),%edi
5404be:	8d 57 fe             	lea    -0x2(%edi),%edx
5404c1:	8b c7                	mov    %edi,%eax
5404c3:	e8 b4 8f 06 00       	call   0x5a947c
5404c8:	83 c7 03             	add    $0x3,%edi
5404cb:	ff 4d ac             	decl   -0x54(%ebp)
5404ce:	75 ee                	jne    0x5404be
5404d0:	8b 45 18             	mov    0x18(%ebp),%eax
5404d3:	8b 00                	mov    (%eax),%eax
5404d5:	33 d2                	xor    %edx,%edx
5404d7:	8a 55 ea             	mov    -0x16(%ebp),%dl
5404da:	8d 14 52             	lea    (%edx,%edx,2),%edx
5404dd:	66 8b 8c 15 9b f9 ff 	mov    -0x665(%ebp,%edx,1),%cx
5404e4:	ff
5404e5:	66 89 88 95 00 00 00 	mov    %cx,0x95(%eax)
5404ec:	8a 8c 15 9d f9 ff ff 	mov    -0x663(%ebp,%edx,1),%cl
5404f3:	88 88 97 00 00 00    	mov    %cl,0x97(%eax)
5404f9:	eb 29                	jmp    0x540524
5404fb:	8b 45 18             	mov    0x18(%ebp),%eax
5404fe:	8b 00                	mov    (%eax),%eax
540500:	33 d2                	xor    %edx,%edx
540502:	8a 55 ea             	mov    -0x16(%ebp),%dl
540505:	8d 14 52             	lea    (%edx,%edx,2),%edx
540508:	66 8b 8c 15 9b fc ff 	mov    -0x365(%ebp,%edx,1),%cx
54050f:	ff
540510:	66 89 88 95 00 00 00 	mov    %cx,0x95(%eax)
540517:	8a 8c 15 9d fc ff ff 	mov    -0x363(%ebp,%edx,1),%cl
54051e:	88 88 97 00 00 00    	mov    %cl,0x97(%eax)
540524:	0f b7 45 eb          	movzwl -0x15(%ebp),%eax
540528:	8b 55 18             	mov    0x18(%ebp),%edx
54052b:	8b 12                	mov    (%edx),%edx
54052d:	89 82 88 00 00 00    	mov    %eax,0x88(%edx)
540533:	0f b7 45 ed          	movzwl -0x13(%ebp),%eax
540537:	8b 55 18             	mov    0x18(%ebp),%edx
54053a:	8b 12                	mov    (%edx),%edx
54053c:	89 82 8c 00 00 00    	mov    %eax,0x8c(%edx)
540542:	0f b7 45 ef          	movzwl -0x11(%ebp),%eax
540546:	8b 55 18             	mov    0x18(%ebp),%edx
540549:	8b 12                	mov    (%edx),%edx
54054b:	89 42 14             	mov    %eax,0x14(%edx)
54054e:	0f b7 45 f1          	movzwl -0xf(%ebp),%eax
540552:	8b 55 18             	mov    0x18(%ebp),%edx
540555:	8b 12                	mov    (%edx),%edx
540557:	89 42 18             	mov    %eax,0x18(%edx)
54055a:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
54055e:	8b 55 18             	mov    0x18(%ebp),%edx
540561:	8b 12                	mov    (%edx),%edx
540563:	89 82 90 00 00 00    	mov    %eax,0x90(%edx)
540569:	f6 45 e7 01          	testb  $0x1,-0x19(%ebp)
54056d:	0f 95 c0             	setne  %al
540570:	8b 55 18             	mov    0x18(%ebp),%edx
540573:	8b 12                	mov    (%edx),%edx
540575:	88 82 94 00 00 00    	mov    %al,0x94(%edx)
54057b:	8b 45 18             	mov    0x18(%ebp),%eax
54057e:	8b 00                	mov    (%eax),%eax
540580:	8a 55 bf             	mov    -0x41(%ebp),%dl
540583:	88 90 98 00 00 00    	mov    %dl,0x98(%eax)
540589:	8a 45 e7             	mov    -0x19(%ebp),%al
54058c:	24 1c                	and    $0x1c,%al
54058e:	25 ff 00 00 00       	and    $0xff,%eax
540593:	c1 e8 02             	shr    $0x2,%eax
540596:	8b 55 18             	mov    0x18(%ebp),%edx
540599:	8b 12                	mov    (%edx),%edx
54059b:	88 82 b0 00 00 00    	mov    %al,0xb0(%edx)
5405a1:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
5405a5:	74 55                	je     0x5405fc
5405a7:	8d 55 e6             	lea    -0x1a(%ebp),%edx
5405aa:	b9 01 00 00 00       	mov    $0x1,%ecx
5405af:	8b c6                	mov    %esi,%eax
5405b1:	8b 38                	mov    (%eax),%edi
5405b3:	ff 57 08             	call   *0x8(%edi)
5405b6:	8d 55 e6             	lea    -0x1a(%ebp),%edx
5405b9:	b9 01 00 00 00       	mov    $0x1,%ecx
5405be:	8b c6                	mov    %esi,%eax
5405c0:	8b 38                	mov    (%eax),%edi
5405c2:	ff 57 08             	call   *0x8(%edi)
5405c5:	33 d2                	xor    %edx,%edx
5405c7:	8a 55 e6             	mov    -0x1a(%ebp),%dl
5405ca:	66 b9 01 00          	mov    $0x1,%cx
5405ce:	8b c6                	mov    %esi,%eax
5405d0:	8b 38                	mov    (%eax),%edi
5405d2:	ff 57 10             	call   *0x10(%edi)
5405d5:	80 7d e6 00          	cmpb   $0x0,-0x1a(%ebp)
5405d9:	0f 84 eb 00 00 00    	je     0x5406ca
5405df:	8b c6                	mov    %esi,%eax
5405e1:	e8 d2 e0 ed ff       	call   0x41e6b8
5405e6:	3b 55 b4             	cmp    -0x4c(%ebp),%edx
5405e9:	75 0a                	jne    0x5405f5
5405eb:	3b 45 b0             	cmp    -0x50(%ebp),%eax
5405ee:	72 c6                	jb     0x5405b6
5405f0:	e9 d5 00 00 00       	jmp    0x5406ca
5405f5:	7c bf                	jl     0x5405b6
5405f7:	e9 ce 00 00 00       	jmp    0x5406ca
5405fc:	0f b7 45 ef          	movzwl -0x11(%ebp),%eax
540600:	0f b7 55 f1          	movzwl -0xf(%ebp),%edx
540604:	f7 ea                	imul   %edx
540606:	e8 a1 21 ec ff       	call   0x4027ac
54060b:	89 45 e0             	mov    %eax,-0x20(%ebp)
54060e:	8b c6                	mov    %esi,%eax
540610:	e8 a3 e0 ed ff       	call   0x41e6b8
540615:	89 45 d8             	mov    %eax,-0x28(%ebp)
540618:	89 55 dc             	mov    %edx,-0x24(%ebp)
54061b:	8b 45 18             	mov    0x18(%ebp),%eax
54061e:	8b 00                	mov    (%eax),%eax
540620:	83 b8 b4 00 00 00 00 	cmpl   $0x0,0xb4(%eax)
540627:	74 1f                	je     0x540648
540629:	8a 45 bf             	mov    -0x41(%ebp),%al
54062c:	50                   	push   %eax
54062d:	8b 45 e0             	mov    -0x20(%ebp),%eax
540630:	50                   	push   %eax
540631:	8b 7d 18             	mov    0x18(%ebp),%edi
540634:	8b 3f                	mov    (%edi),%edi
540636:	0f b7 4d ef          	movzwl -0x11(%ebp),%ecx
54063a:	0f b7 55 f1          	movzwl -0xf(%ebp),%edx
54063e:	8b c6                	mov    %esi,%eax
540640:	ff 97 b4 00 00 00    	call   *0xb4(%edi)
540646:	eb 26                	jmp    0x54066e
540648:	a1 7c 71 6a 00       	mov    0x6a717c,%eax
54064d:	83 38 00             	cmpl   $0x0,(%eax)
540650:	74 1c                	je     0x54066e
540652:	8a 45 bf             	mov    -0x41(%ebp),%al
540655:	50                   	push   %eax
540656:	8b 45 e0             	mov    -0x20(%ebp),%eax
540659:	50                   	push   %eax
54065a:	8b 3d 7c 71 6a 00    	mov    0x6a717c,%edi
540660:	8b 3f                	mov    (%edi),%edi
540662:	0f b7 4d ef          	movzwl -0x11(%ebp),%ecx
540666:	0f b7 55 f1          	movzwl -0xf(%ebp),%edx
54066a:	8b c6                	mov    %esi,%eax
54066c:	ff d7                	call   *%edi
54066e:	8b c6                	mov    %esi,%eax
540670:	e8 43 e0 ed ff       	call   0x41e6b8
540675:	3b 55 dc             	cmp    -0x24(%ebp),%edx
540678:	75 1b                	jne    0x540695
54067a:	3b 45 d8             	cmp    -0x28(%ebp),%eax
54067d:	75 16                	jne    0x540695
54067f:	8b 45 e0             	mov    -0x20(%ebp),%eax
540682:	e8 45 21 ec ff       	call   0x4027cc
540687:	8b 45 14             	mov    0x14(%ebp),%eax
54068a:	8b 40 28             	mov    0x28(%eax),%eax
54068d:	c6 00 01             	movb   $0x1,(%eax)
540690:	e9 d7 06 00 00       	jmp    0x540d6c
540695:	8b 45 14             	mov    0x14(%ebp),%eax
540698:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
54069d:	74 13                	je     0x5406b2
54069f:	8b 7d 14             	mov    0x14(%ebp),%edi
5406a2:	8b 55 14             	mov    0x14(%ebp),%edx
5406a5:	8b 52 08             	mov    0x8(%edx),%edx
5406a8:	b9 46 00 00 00       	mov    $0x46,%ecx
5406ad:	8b 47 04             	mov    0x4(%edi),%eax
5406b0:	ff 17                	call   *(%edi)
5406b2:	8b 45 14             	mov    0x14(%ebp),%eax
5406b5:	8b 40 28             	mov    0x28(%eax),%eax
5406b8:	80 38 00             	cmpb   $0x0,(%eax)
5406bb:	74 0d                	je     0x5406ca
5406bd:	8b 45 e0             	mov    -0x20(%ebp),%eax
5406c0:	e8 07 21 ec ff       	call   0x4027cc
5406c5:	e9 a2 06 00 00       	jmp    0x540d6c
5406ca:	8b 45 18             	mov    0x18(%ebp),%eax
5406cd:	8b 00                	mov    (%eax),%eax
5406cf:	83 b8 a8 03 00 00 00 	cmpl   $0x0,0x3a8(%eax)
5406d6:	74 10                	je     0x5406e8
5406d8:	8b 45 18             	mov    0x18(%ebp),%eax
5406db:	8b 00                	mov    (%eax),%eax
5406dd:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
5406e3:	e8 e4 20 ec ff       	call   0x4027cc
5406e8:	84 db                	test   %bl,%bl
5406ea:	74 6e                	je     0x54075a
5406ec:	8b 45 c0             	mov    -0x40(%ebp),%eax
5406ef:	40                   	inc    %eax
5406f0:	8b 55 18             	mov    0x18(%ebp),%edx
5406f3:	8b 12                	mov    (%edx),%edx
5406f5:	89 42 08             	mov    %eax,0x8(%edx)
5406f8:	8b 45 18             	mov    0x18(%ebp),%eax
5406fb:	8b 00                	mov    (%eax),%eax
5406fd:	8b 48 08             	mov    0x8(%eax),%ecx
540700:	b8 01 00 00 00       	mov    $0x1,%eax
540705:	d3 e0                	shl    %cl,%eax
540707:	8b 55 18             	mov    0x18(%ebp),%edx
54070a:	8b 12                	mov    (%edx),%edx
54070c:	89 82 ac 03 00 00    	mov    %eax,0x3ac(%edx)
540712:	8b 45 18             	mov    0x18(%ebp),%eax
540715:	8b 00                	mov    (%eax),%eax
540717:	8b 80 ac 03 00 00    	mov    0x3ac(%eax),%eax
54071d:	8d 04 40             	lea    (%eax,%eax,2),%eax
540720:	e8 87 20 ec ff       	call   0x4027ac
540725:	8b 55 18             	mov    0x18(%ebp),%edx
540728:	8b 12                	mov    (%edx),%edx
54072a:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
540730:	8b 45 18             	mov    0x18(%ebp),%eax
540733:	8b 00                	mov    (%eax),%eax
540735:	8b 48 08             	mov    0x8(%eax),%ecx
540738:	b8 01 00 00 00       	mov    $0x1,%eax
54073d:	d3 e0                	shl    %cl,%eax
54073f:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
540742:	8d 95 9b f9 ff ff    	lea    -0x665(%ebp),%edx
540748:	8b 45 18             	mov    0x18(%ebp),%eax
54074b:	8b 00                	mov    (%eax),%eax
54074d:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
540753:	e8 68 77 ec ff       	call   0x407ec0
540758:	eb 6c                	jmp    0x5407c6
54075a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
54075d:	40                   	inc    %eax
54075e:	8b 55 18             	mov    0x18(%ebp),%edx
540761:	8b 12                	mov    (%edx),%edx
540763:	89 42 08             	mov    %eax,0x8(%edx)
540766:	8b 45 18             	mov    0x18(%ebp),%eax
540769:	8b 00                	mov    (%eax),%eax
54076b:	8b 48 08             	mov    0x8(%eax),%ecx
54076e:	b8 01 00 00 00       	mov    $0x1,%eax
540773:	d3 e0                	shl    %cl,%eax
540775:	8b 55 18             	mov    0x18(%ebp),%edx
540778:	8b 12                	mov    (%edx),%edx
54077a:	89 82 ac 03 00 00    	mov    %eax,0x3ac(%edx)
540780:	8b 45 18             	mov    0x18(%ebp),%eax
540783:	8b 00                	mov    (%eax),%eax
540785:	8b 80 ac 03 00 00    	mov    0x3ac(%eax),%eax
54078b:	8d 04 40             	lea    (%eax,%eax,2),%eax
54078e:	e8 19 20 ec ff       	call   0x4027ac
540793:	8b 55 18             	mov    0x18(%ebp),%edx
540796:	8b 12                	mov    (%edx),%edx
540798:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
54079e:	8b 45 18             	mov    0x18(%ebp),%eax
5407a1:	8b 00                	mov    (%eax),%eax
5407a3:	8b 48 08             	mov    0x8(%eax),%ecx
5407a6:	b8 01 00 00 00       	mov    $0x1,%eax
5407ab:	d3 e0                	shl    %cl,%eax
5407ad:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5407b0:	8d 95 9b fc ff ff    	lea    -0x365(%ebp),%edx
5407b6:	8b 45 18             	mov    0x18(%ebp),%eax
5407b9:	8b 00                	mov    (%eax),%eax
5407bb:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
5407c1:	e8 fa 76 ec ff       	call   0x407ec0
5407c6:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
5407ca:	0f 85 49 04 00 00    	jne    0x540c19
5407d0:	8b 45 18             	mov    0x18(%ebp),%eax
5407d3:	8b 00                	mov    (%eax),%eax
5407d5:	83 78 08 01          	cmpl   $0x1,0x8(%eax)
5407d9:	0f 85 a0 00 00 00    	jne    0x54087f
5407df:	8b 45 18             	mov    0x18(%ebp),%eax
5407e2:	8b 00                	mov    (%eax),%eax
5407e4:	83 b8 ac 03 00 00 02 	cmpl   $0x2,0x3ac(%eax)
5407eb:	0f 85 8e 00 00 00    	jne    0x54087f
5407f1:	8b 45 18             	mov    0x18(%ebp),%eax
5407f4:	8b 00                	mov    (%eax),%eax
5407f6:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
5407fc:	8a 50 02             	mov    0x2(%eax),%dl
5407ff:	c1 e2 10             	shl    $0x10,%edx
540802:	66 8b 10             	mov    (%eax),%dx
540805:	52                   	push   %edx
540806:	8d 85 84 f9 ff ff    	lea    -0x67c(%ebp),%eax
54080c:	50                   	push   %eax
54080d:	33 c9                	xor    %ecx,%ecx
54080f:	33 d2                	xor    %edx,%edx
540811:	33 c0                	xor    %eax,%eax
540813:	e8 f8 8a 06 00       	call   0x5a9310
540818:	8a 85 86 f9 ff ff    	mov    -0x67a(%ebp),%al
54081e:	c1 e0 10             	shl    $0x10,%eax
540821:	66 8b 85 84 f9 ff ff 	mov    -0x67c(%ebp),%ax
540828:	50                   	push   %eax
540829:	e8 26 8c 06 00       	call   0x5a9454
54082e:	84 c0                	test   %al,%al
540830:	74 46                	je     0x540878
540832:	8b 45 18             	mov    0x18(%ebp),%eax
540835:	8b 00                	mov    (%eax),%eax
540837:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
54083d:	8a 50 05             	mov    0x5(%eax),%dl
540840:	c1 e2 10             	shl    $0x10,%edx
540843:	66 8b 50 03          	mov    0x3(%eax),%dx
540847:	52                   	push   %edx
540848:	8d 85 84 f9 ff ff    	lea    -0x67c(%ebp),%eax
54084e:	50                   	push   %eax
54084f:	b1 ff                	mov    $0xff,%cl
540851:	b2 ff                	mov    $0xff,%dl
540853:	b0 ff                	mov    $0xff,%al
540855:	e8 b6 8a 06 00       	call   0x5a9310
54085a:	8a 85 86 f9 ff ff    	mov    -0x67a(%ebp),%al
540860:	c1 e0 10             	shl    $0x10,%eax
540863:	66 8b 85 84 f9 ff ff 	mov    -0x67c(%ebp),%ax
54086a:	50                   	push   %eax
54086b:	e8 e4 8b 06 00       	call   0x5a9454
540870:	84 c0                	test   %al,%al
540872:	74 04                	je     0x540878
540874:	33 c0                	xor    %eax,%eax
540876:	eb 02                	jmp    0x54087a
540878:	b0 01                	mov    $0x1,%al
54087a:	88 45 cb             	mov    %al,-0x35(%ebp)
54087d:	eb 0d                	jmp    0x54088c
54087f:	8b 45 18             	mov    0x18(%ebp),%eax
540882:	8b 00                	mov    (%eax),%eax
540884:	83 78 08 01          	cmpl   $0x1,0x8(%eax)
540888:	0f 95 45 cb          	setne  -0x35(%ebp)
54088c:	80 7d cb 00          	cmpb   $0x0,-0x35(%ebp)
540890:	74 36                	je     0x5408c8
540892:	8b 45 18             	mov    0x18(%ebp),%eax
540895:	8b 00                	mov    (%eax),%eax
540897:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
54089e:	74 14                	je     0x5408b4
5408a0:	6a 02                	push   $0x2
5408a2:	0f b7 4d f1          	movzwl -0xf(%ebp),%ecx