96d2af:	03 ce                	add    %esi,%ecx
96d2b1:	03 85 50 ff ff ff    	add    -0xb0(%ebp),%eax
96d2b7:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d2bd:	89 45 c8             	mov    %eax,-0x38(%ebp)
96d2c0:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
96d2c6:	03 c1                	add    %ecx,%eax
96d2c8:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
96d2cb:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
96d2d1:	89 45 cc             	mov    %eax,-0x34(%ebp)
96d2d4:	8d 45 c0             	lea    -0x40(%ebp),%eax
96d2d7:	50                   	push   %eax
96d2d8:	56                   	push   %esi
96d2d9:	e8 bb 44 a9 ff       	call   0x401799
96d2de:	e9 d4 00 00 00       	jmp    0x96d3b7
96d2e3:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%ebp)
96d2ea:	8b cf                	mov    %edi,%ecx
96d2ec:	8b c6                	mov    %esi,%eax
96d2ee:	74 66                	je     0x96d356
96d2f0:	40                   	inc    %eax
96d2f1:	8d 4f 01             	lea    0x1(%edi),%ecx
96d2f4:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
96d2f8:	89 8d 64 ff ff ff    	mov    %ecx,-0x9c(%ebp)
96d2fe:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
96d304:	74 05                	je     0x96d30b
96d306:	8b 73 38             	mov    0x38(%ebx),%esi
96d309:	eb 03                	jmp    0x96d30e
96d30b:	8b 73 34             	mov    0x34(%ebx),%esi
96d30e:	03 85 4c ff ff ff    	add    -0xb4(%ebp),%eax
96d314:	68 ff 00 00 00       	push   $0xff
96d319:	6a 00                	push   $0x0
96d31b:	6a 01                	push   $0x1
96d31d:	6a 00                	push   $0x0
96d31f:	6a 00                	push   $0x0
96d321:	6a 00                	push   $0x0
96d323:	56                   	push   %esi
96d324:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d32a:	50                   	push   %eax
96d32b:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d331:	03 c1                	add    %ecx,%eax
96d333:	8b ca                	mov    %edx,%ecx
96d335:	50                   	push   %eax
96d336:	56                   	push   %esi
96d337:	e8 6f ea aa ff       	call   0x41bdab
96d33c:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
96d342:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
96d348:	83 e9 02             	sub    $0x2,%ecx
96d34b:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
96d351:	83 e8 02             	sub    $0x2,%eax
96d354:	eb 06                	jmp    0x96d35c
96d356:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d35c:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
96d360:	74 11                	je     0x96d373
96d362:	8b 73 38             	mov    0x38(%ebx),%esi
96d365:	89 b5 74 ff ff ff    	mov    %esi,-0x8c(%ebp)
96d36b:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d371:	eb 0f                	jmp    0x96d382
96d373:	8b 53 34             	mov    0x34(%ebx),%edx
96d376:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
96d37c:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
96d382:	03 85 4c ff ff ff    	add    -0xb4(%ebp),%eax
96d388:	33 db                	xor    %ebx,%ebx
96d38a:	68 ff 00 00 00       	push   $0xff
96d38f:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
96d395:	53                   	push   %ebx
96d396:	53                   	push   %ebx
96d397:	53                   	push   %ebx
96d398:	53                   	push   %ebx
96d399:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
96d39f:	50                   	push   %eax
96d3a0:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d3a6:	03 c1                	add    %ecx,%eax
96d3a8:	8b ca                	mov    %edx,%ecx
96d3aa:	50                   	push   %eax
96d3ab:	56                   	push   %esi
96d3ac:	e8 fa e9 aa ff       	call   0x41bdab
96d3b1:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
96d3b7:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
96d3bb:	c7 85 74 ff ff ff 01 	movl   $0x1,-0x8c(%ebp)
96d3c2:	00 00 00
96d3c5:	0f 84 96 00 00 00    	je     0x96d461
96d3cb:	8b 03                	mov    (%ebx),%eax
96d3cd:	8b 70 60             	mov    0x60(%eax),%esi
96d3d0:	8b ce                	mov    %esi,%ecx
96d3d2:	e8 8e f2 ab ff       	call   0x42c665
96d3d7:	8b cb                	mov    %ebx,%ecx
96d3d9:	ff d6                	call   *%esi
96d3db:	85 c0                	test   %eax,%eax
96d3dd:	0f 84 8b 00 00 00    	je     0x96d46e
96d3e3:	33 f6                	xor    %esi,%esi
96d3e5:	89 b5 64 ff ff ff    	mov    %esi,-0x9c(%ebp)
96d3eb:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
96d3f2:	0f 85 42 01 00 00    	jne    0x96d53a
96d3f8:	8b cb                	mov    %ebx,%ecx
96d3fa:	e8 86 41 ab ff       	call   0x421585
96d3ff:	85 c0                	test   %eax,%eax
96d401:	0f 84 33 01 00 00    	je     0x96d53a
96d407:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
96d40d:	85 c9                	test   %ecx,%ecx
96d40f:	0f 84 25 01 00 00    	je     0x96d53a
96d415:	8b 95 38 ff ff ff    	mov    -0xc8(%ebp),%edx
96d41b:	85 d2                	test   %edx,%edx
96d41d:	74 60                	je     0x96d47f
96d41f:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d425:	8b 8d 4c ff ff ff    	mov    -0xb4(%ebp),%ecx
96d42b:	03 c7                	add    %edi,%eax
96d42d:	03 4d 80             	add    -0x80(%ebp),%ecx
96d430:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d436:	89 45 c0             	mov    %eax,-0x40(%ebp)
96d439:	03 85 50 ff ff ff    	add    -0xb0(%ebp),%eax
96d43f:	89 45 c8             	mov    %eax,-0x38(%ebp)
96d442:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
96d448:	03 c1                	add    %ecx,%eax
96d44a:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
96d44d:	89 45 cc             	mov    %eax,-0x34(%ebp)
96d450:	8b ca                	mov    %edx,%ecx
96d452:	8d 45 c0             	lea    -0x40(%ebp),%eax
96d455:	50                   	push   %eax
96d456:	56                   	push   %esi
96d457:	e8 3d 43 a9 ff       	call   0x401799
96d45c:	e9 d9 00 00 00       	jmp    0x96d53a
96d461:	f7 43 24 00 00 04 00 	testl  $0x40000,0x24(%ebx)
96d468:	0f 84 75 ff ff ff    	je     0x96d3e3
96d46e:	c7 85 64 ff ff ff 01 	movl   $0x1,-0x9c(%ebp)
96d475:	00 00 00
96d478:	33 f6                	xor    %esi,%esi
96d47a:	e9 6c ff ff ff       	jmp    0x96d3eb
96d47f:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%ebp)
96d486:	8b 45 80             	mov    -0x80(%ebp),%eax
96d489:	74 4b                	je     0x96d4d6
96d48b:	47                   	inc    %edi
96d48c:	40                   	inc    %eax
96d48d:	89 45 80             	mov    %eax,-0x80(%ebp)
96d490:	39 73 04             	cmp    %esi,0x4(%ebx)
96d493:	74 05                	je     0x96d49a
96d495:	8b 53 38             	mov    0x38(%ebx),%edx
96d498:	eb 03                	jmp    0x96d49d
96d49a:	8b 53 34             	mov    0x34(%ebx),%edx
96d49d:	03 85 4c ff ff ff    	add    -0xb4(%ebp),%eax
96d4a3:	68 ff 00 00 00       	push   $0xff
96d4a8:	56                   	push   %esi
96d4a9:	6a 01                	push   $0x1
96d4ab:	56                   	push   %esi
96d4ac:	56                   	push   %esi
96d4ad:	56                   	push   %esi
96d4ae:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d4b4:	52                   	push   %edx
96d4b5:	50                   	push   %eax
96d4b6:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
96d4bc:	03 c7                	add    %edi,%eax
96d4be:	50                   	push   %eax
96d4bf:	56                   	push   %esi
96d4c0:	e8 e6 e8 aa ff       	call   0x41bdab
96d4c5:	8b 45 80             	mov    -0x80(%ebp),%eax
96d4c8:	83 ef 02             	sub    $0x2,%edi
96d4cb:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
96d4d1:	83 e8 02             	sub    $0x2,%eax
96d4d4:	eb 06                	jmp    0x96d4dc
96d4d6:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
96d4dc:	83 bd 64 ff ff ff 00 	cmpl   $0x0,-0x9c(%ebp)
96d4e3:	74 12                	je     0x96d4f7
96d4e5:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
96d4e9:	74 0c                	je     0x96d4f7
96d4eb:	c7 85 64 ff ff ff 01 	movl   $0x1,-0x9c(%ebp)
96d4f2:	00 00 00
96d4f5:	eb 07                	jmp    0x96d4fe
96d4f7:	83 a5 64 ff ff ff 00 	andl   $0x0,-0x9c(%ebp)
96d4fe:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
96d502:	74 05                	je     0x96d509
96d504:	8b 53 38             	mov    0x38(%ebx),%edx
96d507:	eb 03                	jmp    0x96d50c
96d509:	8b 53 34             	mov    0x34(%ebx),%edx
96d50c:	03 85 4c ff ff ff    	add    -0xb4(%ebp),%eax
96d512:	68 ff 00 00 00       	push   $0xff
96d517:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
96d51d:	6a 00                	push   $0x0
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