96d51f:	6a 00                	push   $0x0
96d521:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
96d527:	6a 00                	push   $0x0
96d529:	52                   	push   %edx
96d52a:	50                   	push   %eax
96d52b:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d531:	03 c7                	add    %edi,%eax
96d533:	50                   	push   %eax
96d534:	56                   	push   %esi
96d535:	e8 71 e8 aa ff       	call   0x41bdab
96d53a:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
96d53e:	8b 9d 48 ff ff ff    	mov    -0xb8(%ebp),%ebx
96d544:	74 06                	je     0x96d54c
96d546:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
96d54a:	75 1f                	jne    0x96d56b
96d54c:	8b bd 6c ff ff ff    	mov    -0x94(%ebp),%edi
96d552:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
96d556:	0f 84 d4 04 00 00    	je     0x96da30
96d55c:	8b 47 2c             	mov    0x2c(%edi),%eax
96d55f:	83 78 f4 00          	cmpl   $0x0,-0xc(%eax)
96d563:	0f 84 c7 04 00 00    	je     0x96da30
96d569:	eb 06                	jmp    0x96d571
96d56b:	8b bd 6c ff ff ff    	mov    -0x94(%ebp),%edi
96d571:	33 f6                	xor    %esi,%esi
96d573:	39 75 1c             	cmp    %esi,0x1c(%ebp)
96d576:	74 05                	je     0x96d57d
96d578:	6a 02                	push   $0x2
96d57a:	5e                   	pop    %esi
96d57b:	eb 0c                	jmp    0x96d589
96d57d:	f7 47 24 00 00 03 00 	testl  $0x30000,0x24(%edi)
96d584:	74 03                	je     0x96d589
96d586:	33 f6                	xor    %esi,%esi
96d588:	46                   	inc    %esi
96d589:	e8 bf 55 aa ff       	call   0x412b4d
96d58e:	8b f8                	mov    %eax,%edi
96d590:	56                   	push   %esi
96d591:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
96d597:	8b 0f                	mov    (%edi),%ecx
96d599:	8b b1 b4 00 00 00    	mov    0xb4(%ecx),%esi
96d59f:	8b ce                	mov    %esi,%ecx
96d5a1:	e8 bf f0 ab ff       	call   0x42c665
96d5a6:	8b cf                	mov    %edi,%ecx
96d5a8:	ff d6                	call   *%esi
96d5aa:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
96d5b0:	50                   	push   %eax
96d5b1:	8b 0f                	mov    (%edi),%ecx
96d5b3:	8b 71 30             	mov    0x30(%ecx),%esi
96d5b6:	8b ce                	mov    %esi,%ecx
96d5b8:	e8 a8 f0 ab ff       	call   0x42c665
96d5bd:	8b cf                	mov    %edi,%ecx
96d5bf:	ff d6                	call   *%esi
96d5c1:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
96d5c7:	8b 41 2c             	mov    0x2c(%ecx),%eax
96d5ca:	83 e8 10             	sub    $0x10,%eax
96d5cd:	50                   	push   %eax
96d5ce:	e8 5b ef ac ff       	call   0x43c52e
96d5d3:	83 c0 10             	add    $0x10,%eax
96d5d6:	59                   	pop    %ecx
96d5d7:	89 45 80             	mov    %eax,-0x80(%ebp)
96d5da:	8d 75 e0             	lea    -0x20(%ebp),%esi
96d5dd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
96d5e1:	8d 7d d0             	lea    -0x30(%ebp),%edi
96d5e4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d5e5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d5e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d5e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d5e8:	8b b5 6c ff ff ff    	mov    -0x94(%ebp),%esi
96d5ee:	8b 7d 14             	mov    0x14(%ebp),%edi
96d5f1:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
96d5f5:	74 6d                	je     0x96d664
96d5f7:	85 ff                	test   %edi,%edi
96d5f9:	74 69                	je     0x96d664
96d5fb:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
96d601:	83 c0 03             	add    $0x3,%eax
96d604:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
96d60b:	00 00 00
96d60e:	03 85 54 ff ff ff    	add    -0xac(%ebp),%eax
96d614:	83 3d 3c ef d5 00 00 	cmpl   $0x0,0xd5ef3c
96d61b:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
96d621:	74 0a                	je     0x96d62d
96d623:	c7 85 70 ff ff ff 11 	movl   $0x11,-0x90(%ebp)
96d62a:	00 00 00
96d62d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
96d630:	8b c1                	mov    %ecx,%eax
96d632:	8b 76 64             	mov    0x64(%esi),%esi
96d635:	2b c6                	sub    %esi,%eax
96d637:	03 45 e0             	add    -0x20(%ebp),%eax
96d63a:	99                   	cltd
96d63b:	2b c2                	sub    %edx,%eax
96d63d:	d1 f8                	sar    $1,%eax
96d63f:	03 85 5c ff ff ff    	add    -0xa4(%ebp),%eax
96d645:	89 45 d0             	mov    %eax,-0x30(%ebp)
96d648:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
96d64b:	03 45 e0             	add    -0x20(%ebp),%eax
96d64e:	8b b5 6c ff ff ff    	mov    -0x94(%ebp),%esi
96d654:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
96d65a:	99                   	cltd
96d65b:	2b c2                	sub    %edx,%eax
96d65d:	d1 f8                	sar    $1,%eax
96d65f:	89 45 d8             	mov    %eax,-0x28(%ebp)
96d662:	eb 5c                	jmp    0x96d6c0
96d664:	8b ce                	mov    %esi,%ecx
96d666:	e8 1a 3f ab ff       	call   0x421585
96d66b:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
96d671:	85 c0                	test   %eax,%eax
96d673:	74 35                	je     0x96d6aa
96d675:	a1 d0 d2 d7 00       	mov    0xd7d2d0,%eax
96d67a:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
96d680:	f7 d8                	neg    %eax
96d682:	1b c0                	sbb    %eax,%eax
96d684:	83 e0 06             	and    $0x6,%eax
96d687:	85 ff                	test   %edi,%edi
96d689:	74 0a                	je     0x96d695
96d68b:	03 85 50 ff ff ff    	add    -0xb0(%ebp),%eax
96d691:	03 d0                	add    %eax,%edx
96d693:	eb 08                	jmp    0x96d69d
96d695:	03 85 54 ff ff ff    	add    -0xac(%ebp),%eax
96d69b:	03 c8                	add    %eax,%ecx
96d69d:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d6a3:	83 c0 03             	add    $0x3,%eax
96d6a6:	03 c2                	add    %edx,%eax
96d6a8:	eb 09                	jmp    0x96d6b3
96d6aa:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d6b0:	83 c0 04             	add    $0x4,%eax
96d6b3:	89 45 d0             	mov    %eax,-0x30(%ebp)
96d6b6:	c7 85 70 ff ff ff 20 	movl   $0x20,-0x90(%ebp)
96d6bd:	00 00 00
96d6c0:	85 ff                	test   %edi,%edi
96d6c2:	0f 84 b7 00 00 00    	je     0x96d77f
96d6c8:	01 4d d4             	add    %ecx,-0x2c(%ebp)
96d6cb:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
96d6cf:	74 3c                	je     0x96d70d
96d6d1:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
96d6d5:	74 36                	je     0x96d70d
96d6d7:	e8 71 54 aa ff       	call   0x412b4d
96d6dc:	8b f8                	mov    %eax,%edi
96d6de:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
96d6e4:	50                   	push   %eax
96d6e5:	8b 0f                	mov    (%edi),%ecx
96d6e7:	8b b1 40 01 00 00    	mov    0x140(%ecx),%esi
96d6ed:	8b ce                	mov    %esi,%ecx
96d6ef:	e8 71 ef ab ff       	call   0x42c665
96d6f4:	8b cf                	mov    %edi,%ecx
96d6f6:	ff d6                	call   *%esi
96d6f8:	8b 40 04             	mov    0x4(%eax),%eax
96d6fb:	99                   	cltd
96d6fc:	2b c2                	sub    %edx,%eax
96d6fe:	d1 f8                	sar    $1,%eax
96d700:	50                   	push   %eax
96d701:	6a 00                	push   $0x0
96d703:	8d 45 d0             	lea    -0x30(%ebp),%eax
96d706:	50                   	push   %eax
96d707:	ff 15 4c 40 d8 00    	call   *0xd8404c
96d70d:	e8 24 ac aa ff       	call   0x418336
96d712:	83 b8 a0 01 00 00 00 	cmpl   $0x0,0x1a0(%eax)
96d719:	75 4e                	jne    0x96d769
96d71b:	83 3d c8 d2 d7 00 00 	cmpl   $0x0,0xd7d2c8
96d722:	75 45                	jne    0x96d769
96d724:	6a 00                	push   $0x0
96d726:	bf ac 7e c4 00       	mov    $0xc47eac,%edi
96d72b:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d72e:	57                   	push   %edi
96d72f:	e8 b1 8c ac ff       	call   0x4363e5
96d734:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d737:	85 c0                	test   %eax,%eax
96d739:	78 22                	js     0x96d75d
96d73b:	be a4 7e c4 00       	mov    $0xc47ea4,%esi
96d740:	56                   	push   %esi
96d741:	57                   	push   %edi
96d742:	e8 cf cb aa ff       	call   0x41a316
96d747:	6a 26                	push   $0x26
96d749:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d74c:	e8 1f e9 ab ff       	call   0x42c070
96d751:	57                   	push   %edi
96d752:	56                   	push   %esi
96d753:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d756:	e8 bb cb aa ff       	call   0x41a316
96d75b:	eb 0c                	jmp    0x96d769
96d75d:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
96d763:	50                   	push   %eax
96d764:	e8 84 4f aa ff       	call   0x4126ed
96d769:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
96d76f:	8b 45 80             	mov    -0x80(%ebp),%eax
96d772:	8d 4d d0             	lea    -0x30(%ebp),%ecx
96d775:	51                   	push   %ecx
96d776:	ff 70 f4             	push   -0xc(%eax)
96d779:	50                   	push   %eax
96d77a:	e9 87 02 00 00       	jmp    0x96da06
96d77f:	8d 75 e0             	lea    -0x20(%ebp),%esi
96d782:	8d 7d d0             	lea    -0x30(%ebp),%edi
96d785:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d786:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d787:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d788:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96d789:	8b 45 d8             	mov    -0x28(%ebp),%eax
96d78c:	03 45 d0             	add    -0x30(%ebp),%eax
96d78f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
96d792:	99                   	cltd
96d793:	03 f1                	add    %ecx,%esi
96d795:	8b 8d 40 ff ff ff    	mov    -0xc0(%ebp),%ecx
96d79b:	2b c2                	sub    %edx,%eax
96d79d:	8b f8                	mov    %eax,%edi
96d79f:	8b c1                	mov    %ecx,%eax
96d7a1:	99                   	cltd
96d7a2:	2b c2                	sub    %edx,%eax
96d7a4:	d1 ff                	sar    $1,%edi
96d7a6:	d1 f8                	sar    $1,%eax
96d7a8:	2b f8                	sub    %eax,%edi
96d7aa:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
96d7b0:	8b 45 dc             	mov    -0x24(%ebp),%eax
96d7b3:	03 cf                	add    %edi,%ecx
96d7b5:	2b c6                	sub    %esi,%eax
96d7b7:	2b 85 3c ff ff ff    	sub    -0xc4(%ebp),%eax
96d7bd:	99                   	cltd
96d7be:	2b c2                	sub    %edx,%eax
96d7c0:	d1 f8                	sar    $1,%eax
96d7c2:	79 02                	jns    0x96d7c6
96d7c4:	33 c0                	xor    %eax,%eax
96d7c6:	89 7d d8             	mov    %edi,-0x28(%ebp)
96d7c9:	03 f0                	add    %eax,%esi
96d7cb:	68 a4 7e c4 00       	push   $0xc47ea4
96d7d0:	89 4d d0             	mov    %ecx,-0x30(%ebp)
96d7d3:	bf ac 7e c4 00       	mov    $0xc47eac,%edi
96d7d8:	57                   	push   %edi
96d7d9:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d7dc:	89 75 d4             	mov    %esi,-0x2c(%ebp)
96d7df:	e8 32 cb aa ff       	call   0x41a316
96d7e4:	6a 00                	push   $0x0
96d7e6:	6a 26                	push   $0x26
96d7e8:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d7eb:	e8 ce e2 a9 ff       	call   0x40babe
96d7f0:	8b f0                	mov    %eax,%esi
96d7f2:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d7f5:	6a 26                	push   $0x26
96d7f7:	89 b5 64 ff ff ff    	mov    %esi,-0x9c(%ebp)
96d7fd:	e8 6e e8 ab ff       	call   0x42c070
96d802:	57                   	push   %edi
96d803:	68 a4 7e c4 00       	push   $0xc47ea4
96d808:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d80b:	e8 06 cb aa ff       	call   0x41a316
96d810:	85 f6                	test   %esi,%esi
96d812:	0f 88 e1 01 00 00    	js     0x96d9f9
96d818:	e8 19 ab aa ff       	call   0x418336
96d81d:	33 c9                	xor    %ecx,%ecx
96d81f:	39 88 a0 01 00 00    	cmp    %ecx,0x1a0(%eax)
96d825:	0f 84 ce 01 00 00    	je     0x96d9f9
96d82b:	39 0d c8 d2 d7 00    	cmp    %ecx,0xd7d2c8
96d831:	0f 85 c2 01 00 00    	jne    0x96d9f9
96d837:	8d 45 c0             	lea    -0x40(%ebp),%eax
96d83a:	89 4d c0             	mov    %ecx,-0x40(%ebp)
96d83d:	50                   	push   %eax
96d83e:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
96d841:	89 4d c8             	mov    %ecx,-0x38(%ebp)
96d844:	89 4d cc             	mov    %ecx,-0x34(%ebp)
96d847:	ff 15 50 40 d8 00    	call   *0xd84050
96d84d:	8d 46 01             	lea    0x1(%esi),%eax
96d850:	50                   	push   %eax
96d851:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
96d857:	50                   	push   %eax
96d858:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d85b:	e8 89 a1 ab ff       	call   0x4279e9
96d860:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
96d866:	8d 4d c0             	lea    -0x40(%ebp),%ecx
96d869:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
96d86f:	68 20 05 00 00       	push   $0x520
96d874:	51                   	push   %ecx
96d875:	ff 70 f4             	push   -0xc(%eax)
96d878:	8b 37                	mov    (%edi),%esi
96d87a:	50                   	push   %eax
96d87b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
96d87f:	8b 4e 68             	mov    0x68(%esi),%ecx
96d882:	e8 de ed ab ff       	call   0x42c665
96d887:	8b cf                	mov    %edi,%ecx
96d889:	ff 56 68             	call   *0x68(%esi)
96d88c:	8b 45 c8             	mov    -0x38(%ebp),%eax
96d88f:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
96d895:	8d 45 c0             	lea    -0x40(%ebp),%eax
96d898:	50                   	push   %eax
96d899:	ff 15 50 40 d8 00    	call   *0xd84050
96d89f:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
96d8a5:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
96d8ab:	50                   	push   %eax
96d8ac:	8d 4d 80             	lea    -0x80(%ebp),%ecx
96d8af:	e8 35 a1 ab ff       	call   0x4279e9
96d8b4:	50                   	push   %eax
96d8b5:	8d 8d 70 ff ff ff    	lea    -0x90(%ebp),%ecx
96d8bb:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
96d8bf:	e8 29 4e aa ff       	call   0x4126ed
96d8c4:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
96d8ca:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
96d8ce:	8d 49 f0             	lea    -0x10(%ecx),%ecx
96d8d1:	e8 3e 73 a9 ff       	call   0x404c14
96d8d6:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
96d8dc:	8d 45 c0             	lea    -0x40(%ebp),%eax
96d8df:	8b 3f                	mov    (%edi),%edi
96d8e1:	68 20 05 00 00       	push   $0x520
96d8e6:	50                   	push   %eax
96d8e7:	ff 76 f4             	push   -0xc(%esi)
96d8ea:	8b 4f 68             	mov    0x68(%edi),%ecx
96d8ed:	56                   	push   %esi
96d8ee:	e8 72 ed ab ff       	call   0x42c665
96d8f3:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
96d8f9:	ff 57 68             	call   *0x68(%edi)
96d8fc:	8b 45 c8             	mov    -0x38(%ebp),%eax
96d8ff:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
96d905:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
96d90b:	68 20 01 00 00       	push   $0x120
96d910:	8b 38                	mov    (%eax),%edi
96d912:	8d 45 d0             	lea    -0x30(%ebp),%eax
96d915:	50                   	push   %eax
96d916:	ff 73 f4             	push   -0xc(%ebx)
96d919:	8b 4f 68             	mov    0x68(%edi),%ecx
96d91c:	53                   	push   %ebx
96d91d:	e8 43 ed ab ff       	call   0x42c665
96d922:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
96d928:	ff 57 68             	call   *0x68(%edi)
96d92b:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
96d931:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
96d937:	8b 41 08             	mov    0x8(%ecx),%eax
96d93a:	03 01                	add    (%ecx),%eax
96d93c:	99                   	cltd
96d93d:	2b c2                	sub    %edx,%eax
96d93f:	d1 f8                	sar    $1,%eax
96d941:	2b 85 74 ff ff ff    	sub    -0x8c(%ebp),%eax
96d947:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
96d94d:	33 c0                	xor    %eax,%eax
96d94f:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
96d955:	ff 77 08             	push   0x8(%edi)
96d958:	ff 15 60 32 d8 00    	call   *0xd83260
96d95e:	50                   	push   %eax
96d95f:	6a 01                	push   $0x1
96d961:	6a 00                	push   $0x0
96d963:	8d 8d 3c ff ff ff    	lea    -0xc4(%ebp),%ecx
96d969:	e8 41 b7 ab ff       	call   0x4290af
96d96e:	ff 77 08             	push   0x8(%edi)
96d971:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
96d975:	ff 15 60 32 d8 00    	call   *0xd83260
96d97b:	85 c0                	test   %eax,%eax
96d97d:	74 14                	je     0x96d993
96d97f:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
96d985:	8b cf                	mov    %edi,%ecx
96d987:	50                   	push   %eax
96d988:	e8 9f 8f ab ff       	call   0x42692c
96d98d:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
96d993:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
96d996:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
96d99c:	03 8d 38 ff ff ff    	add    -0xc8(%ebp),%ecx
96d9a2:	51                   	push   %ecx
96d9a3:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
96d9a9:	8b cf                	mov    %edi,%ecx