945048:	ff d6                	call   *%esi
94504a:	33 db                	xor    %ebx,%ebx
94504c:	85 c0                	test   %eax,%eax
94504e:	75 1c                	jne    0x94506c
945050:	8b 07                	mov    (%edi),%eax
945052:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
945058:	8b ce                	mov    %esi,%ecx
94505a:	e8 06 76 ae ff       	call   0x42c665
94505f:	8b cf                	mov    %edi,%ecx
945061:	ff d6                	call   *%esi
945063:	85 c0                	test   %eax,%eax
945065:	75 05                	jne    0x94506c
945067:	89 5d ac             	mov    %ebx,-0x54(%ebp)
94506a:	eb 6c                	jmp    0x9450d8
94506c:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
945072:	50                   	push   %eax
945073:	e8 e4 94 ac ff       	call   0x40e55c
945078:	8b 00                	mov    (%eax),%eax
94507a:	89 45 ac             	mov    %eax,-0x54(%ebp)
94507d:	89 45 b4             	mov    %eax,-0x4c(%ebp)
945080:	85 c0                	test   %eax,%eax
945082:	74 54                	je     0x9450d8
945084:	e8 ad 32 ad ff       	call   0x418336
945089:	39 98 e8 01 00 00    	cmp    %ebx,0x1e8(%eax)
94508f:	74 0a                	je     0x94509b
945091:	dd 80 e0 01 00 00    	fldl   0x1e0(%eax)
945097:	d9 e8                	fld1
945099:	eb 06                	jmp    0x9450a1
94509b:	d9 e8                	fld1
94509d:	d9 c0                	fld    %st(0)
94509f:	d9 c9                	fxch   %st(1)
9450a1:	de d9                	fcompp
9450a3:	df e0                	fnstsw %ax
9450a5:	f6 c4 05             	test   $0x5,%ah
9450a8:	7a 2e                	jp     0x9450d8
9450aa:	e8 87 32 ad ff       	call   0x418336
9450af:	39 98 e8 01 00 00    	cmp    %ebx,0x1e8(%eax)
9450b5:	74 08                	je     0x9450bf
9450b7:	dd 80 e0 01 00 00    	fldl   0x1e0(%eax)
9450bd:	eb 02                	jmp    0x9450c1
9450bf:	d9 e8                	fld1
9450c1:	db 45 b4             	fildl  -0x4c(%ebp)
9450c4:	dd 5d a0             	fstpl  -0x60(%ebp)
9450c7:	dc 4d a0             	fmull  -0x60(%ebp)
9450ca:	dc 05 f0 b7 bd 00    	faddl  0xbdb7f0
9450d0:	e8 47 e9 ab ff       	call   0x403a1c
9450d5:	89 45 ac             	mov    %eax,-0x54(%ebp)
9450d8:	39 5d 10             	cmp    %ebx,0x10(%ebp)
9450db:	0f 84 82 01 00 00    	je     0x945263
9450e1:	83 8f 54 01 00 00 ff 	orl    $0xffffffff,0x154(%edi)
9450e8:	8b 87 a4 01 00 00    	mov    0x1a4(%edi),%eax
9450ee:	85 c0                	test   %eax,%eax
9450f0:	75 08                	jne    0x9450fa
9450f2:	8b 55 90             	mov    -0x70(%ebp),%edx
9450f5:	e9 51 01 00 00       	jmp    0x94524b
9450fa:	ba ff 7f 00 00       	mov    $0x7fff,%edx
9450ff:	8b cb                	mov    %ebx,%ecx
945101:	89 55 a4             	mov    %edx,-0x5c(%ebp)
945104:	89 4d a8             	mov    %ecx,-0x58(%ebp)
945107:	85 c0                	test   %eax,%eax
945109:	0f 8e 3c 01 00 00    	jle    0x94524b
94510f:	8d 87 9c 01 00 00    	lea    0x19c(%edi),%eax
945115:	51                   	push   %ecx
945116:	8b c8                	mov    %eax,%ecx
945118:	e8 7f c8 ab ff       	call   0x40199c
94511d:	8d 4f 60             	lea    0x60(%edi),%ecx
945120:	8b 00                	mov    (%eax),%eax
945122:	50                   	push   %eax
945123:	89 45 b4             	mov    %eax,-0x4c(%ebp)
945126:	8d 45 bc             	lea    -0x44(%ebp),%eax
945129:	50                   	push   %eax
94512a:	e8 ba 28 ae ff       	call   0x4279e9
94512f:	8b 07                	mov    (%edi),%eax
945131:	89 5d fc             	mov    %ebx,-0x4(%ebp)
945134:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
94513a:	8b ce                	mov    %esi,%ecx
94513c:	e8 24 75 ae ff       	call   0x42c665
945141:	8b cf                	mov    %edi,%ecx
945143:	ff d6                	call   *%esi
945145:	85 c0                	test   %eax,%eax
945147:	75 2b                	jne    0x945174
945149:	be a4 7e c4 00       	mov    $0xc47ea4,%esi
94514e:	8d 4d bc             	lea    -0x44(%ebp),%ecx
945151:	56                   	push   %esi
945152:	68 ac 7e c4 00       	push   $0xc47eac
945157:	e8 ba 51 ad ff       	call   0x41a316
94515c:	6a 26                	push   $0x26
94515e:	8d 4d bc             	lea    -0x44(%ebp),%ecx
945161:	e8 0a 6f ae ff       	call   0x42c070
945166:	68 4c 3a c4 00       	push   $0xc43a4c
94516b:	56                   	push   %esi
94516c:	8d 4d bc             	lea    -0x44(%ebp),%ecx
94516f:	e8 a2 51 ad ff       	call   0x41a316
945174:	8b 4d b8             	mov    -0x48(%ebp),%ecx
945177:	8d 45 bc             	lea    -0x44(%ebp),%eax
94517a:	50                   	push   %eax
94517b:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
945181:	50                   	push   %eax
945182:	e8 09 d8 ac ff       	call   0x412990
945187:	8d 4f 60             	lea    0x60(%edi),%ecx
94518a:	8b 00                	mov    (%eax),%eax
94518c:	89 45 9c             	mov    %eax,-0x64(%ebp)
94518f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
945192:	40                   	inc    %eax
945193:	50                   	push   %eax
945194:	8d 45 b0             	lea    -0x50(%ebp),%eax
945197:	50                   	push   %eax
945198:	e8 a3 ae ad ff       	call   0x420040
94519d:	8b 07                	mov    (%edi),%eax
94519f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
9451a3:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
9451a9:	8b ce                	mov    %esi,%ecx
9451ab:	e8 b5 74 ae ff       	call   0x42c665
9451b0:	8b cf                	mov    %edi,%ecx
9451b2:	ff d6                	call   *%esi
9451b4:	85 c0                	test   %eax,%eax
9451b6:	75 2b                	jne    0x9451e3
9451b8:	be a4 7e c4 00       	mov    $0xc47ea4,%esi
9451bd:	8d 4d b0             	lea    -0x50(%ebp),%ecx
9451c0:	56                   	push   %esi
9451c1:	68 ac 7e c4 00       	push   $0xc47eac
9451c6:	e8 4b 51 ad ff       	call   0x41a316
9451cb:	6a 26                	push   $0x26
9451cd:	8d 4d b0             	lea    -0x50(%ebp),%ecx
9451d0:	e8 9b 6e ae ff       	call   0x42c070
9451d5:	68 4c 3a c4 00       	push   $0xc43a4c
9451da:	56                   	push   %esi
9451db:	8d 4d b0             	lea    -0x50(%ebp),%ecx
9451de:	e8 33 51 ad ff       	call   0x41a316
9451e3:	8b 4d b8             	mov    -0x48(%ebp),%ecx
9451e6:	8d 45 b0             	lea    -0x50(%ebp),%eax
9451e9:	50                   	push   %eax
9451ea:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
9451f0:	50                   	push   %eax
9451f1:	e8 9a d7 ac ff       	call   0x412990
9451f6:	8b 08                	mov    (%eax),%ecx
9451f8:	03 4d ac             	add    -0x54(%ebp),%ecx
9451fb:	8b 45 9c             	mov    -0x64(%ebp),%eax
9451fe:	3b c1                	cmp    %ecx,%eax
945200:	7f 02                	jg     0x945204
945202:	8b c1                	mov    %ecx,%eax
945204:	3b 45 a4             	cmp    -0x5c(%ebp),%eax
945207:	7d 0c                	jge    0x945215
945209:	89 45 a4             	mov    %eax,-0x5c(%ebp)
94520c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
94520f:	89 87 54 01 00 00    	mov    %eax,0x154(%edi)
945215:	8b 4d b0             	mov    -0x50(%ebp),%ecx
945218:	8d 49 f0             	lea    -0x10(%ecx),%ecx
94521b:	e8 f4 f9 ab ff       	call   0x404c14
945220:	8b 4d bc             	mov    -0x44(%ebp),%ecx
945223:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
945227:	8d 49 f0             	lea    -0x10(%ecx),%ecx
94522a:	e8 e5 f9 ab ff       	call   0x404c14
94522f:	8b 4d a8             	mov    -0x58(%ebp),%ecx
945232:	8d 87 9c 01 00 00    	lea    0x19c(%edi),%eax
945238:	41                   	inc    %ecx
945239:	89 4d a8             	mov    %ecx,-0x58(%ebp)
94523c:	3b 8f a4 01 00 00    	cmp    0x1a4(%edi),%ecx
945242:	0f 8c cd fe ff ff    	jl     0x945115
945248:	8b 55 a4             	mov    -0x5c(%ebp),%edx
94524b:	f6 c2 01             	test   $0x1,%dl
94524e:	74 01                	je     0x945251
945250:	4a                   	dec    %edx
945251:	8b 4d 98             	mov    -0x68(%ebp),%ecx
945254:	8b 45 94             	mov    -0x6c(%ebp),%eax
945257:	03 c0                	add    %eax,%eax
945259:	89 11                	mov    %edx,(%ecx)
94525b:	89 41 04             	mov    %eax,0x4(%ecx)
94525e:	e9 df 02 00 00       	jmp    0x945542
945263:	8b 45 8c             	mov    -0x74(%ebp),%eax
945266:	8b 4f 78             	mov    0x78(%edi),%ecx
945269:	83 c0 06             	add    $0x6,%eax
94526c:	03 c8                	add    %eax,%ecx
94526e:	89 5d e0             	mov    %ebx,-0x20(%ebp)
945271:	8b 07                	mov    (%edi),%eax
945273:	89 4d bc             	mov    %ecx,-0x44(%ebp)
945276:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
945279:	89 5d e8             	mov    %ebx,-0x18(%ebp)
94527c:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
945282:	8b ce                	mov    %esi,%ecx
945284:	89 5d ec             	mov    %ebx,-0x14(%ebp)
945287:	e8 d9 73 ae ff       	call   0x42c665
94528c:	8b cf                	mov    %edi,%ecx
94528e:	ff d6                	call   *%esi
945290:	85 c0                	test   %eax,%eax
945292:	8b 45 bc             	mov    -0x44(%ebp),%eax
945295:	74 06                	je     0x94529d
945297:	83 c0 02             	add    $0x2,%eax
94529a:	89 45 bc             	mov    %eax,-0x44(%ebp)
94529d:	8d 77 74             	lea    0x74(%edi),%esi
9452a0:	c7 45 a4 21 00 00 00 	movl   $0x21,-0x5c(%ebp)
9452a7:	8d 7d d0             	lea    -0x30(%ebp),%edi
9452aa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9452ab:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9452ac:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9452ad:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9452ae:	8b 7d a8             	mov    -0x58(%ebp),%edi
9452b1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
9452b4:	8b 07                	mov    (%edi),%eax
9452b6:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
9452bc:	8b ce                	mov    %esi,%ecx
9452be:	e8 a2 73 ae ff       	call   0x42c665
9452c3:	8b cf                	mov    %edi,%ecx
9452c5:	ff d6                	call   *%esi
9452c7:	85 c0                	test   %eax,%eax
9452c9:	74 0a                	je     0x9452d5
9452cb:	b9 21 08 00 00       	mov    $0x821,%ecx
9452d0:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
9452d3:	eb 03                	jmp    0x9452d8
9452d5:	6a 21                	push   $0x21
9452d7:	59                   	pop    %ecx
9452d8:	8b 87 54 01 00 00    	mov    0x154(%edi),%eax
9452de:	83 f8 ff             	cmp    $0xffffffff,%eax
9452e1:	0f 85 95 00 00 00    	jne    0x94537c
9452e7:	8b 47 60             	mov    0x60(%edi),%eax
9452ea:	8b 75 b8             	mov    -0x48(%ebp),%esi
9452ed:	51                   	push   %ecx
9452ee:	8d 4d d0             	lea    -0x30(%ebp),%ecx
9452f1:	51                   	push   %ecx
9452f2:	8b 36                	mov    (%esi),%esi
9452f4:	ff 70 f4             	push   -0xc(%eax)
9452f7:	50                   	push   %eax
9452f8:	8b 4e 68             	mov    0x68(%esi),%ecx
9452fb:	e8 65 73 ae ff       	call   0x42c665
945300:	8b 4d b8             	mov    -0x48(%ebp),%ecx
945303:	ff 56 68             	call   *0x68(%esi)
945306:	8b 07                	mov    (%edi),%eax
945308:	8b b0 38 01 00 00    	mov    0x138(%eax),%esi
94530e:	8b ce                	mov    %esi,%ecx
945310:	e8 50 73 ae ff       	call   0x42c665
945315:	8b cf                	mov    %edi,%ecx
945317:	ff d6                	call   *%esi
945319:	85 c0                	test   %eax,%eax
94531b:	75 1b                	jne    0x945338
94531d:	8b 07                	mov    (%edi),%eax
94531f:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
945325:	8b ce                	mov    %esi,%ecx
945327:	e8 39 73 ae ff       	call   0x42c665
94532c:	8b cf                	mov    %edi,%ecx
94532e:	ff d6                	call   *%esi
945330:	85 c0                	test   %eax,%eax
945332:	0f 84 45 01 00 00    	je     0x94547d
945338:	8b 4d bc             	mov    -0x44(%ebp),%ecx
94533b:	8d 57 74             	lea    0x74(%edi),%edx
94533e:	8b 45 94             	mov    -0x6c(%ebp),%eax
945341:	8d 7d e0             	lea    -0x20(%ebp),%edi
945344:	8b f2                	mov    %edx,%esi
945346:	83 c1 02             	add    $0x2,%ecx
945349:	03 c1                	add    %ecx,%eax
94534b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
94534c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
94534d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
94534e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
94534f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
945352:	8b 42 08             	mov    0x8(%edx),%eax
945355:	03 02                	add    (%edx),%eax
945357:	99                   	cltd
945358:	2b c2                	sub    %edx,%eax
94535a:	8b f0                	mov    %eax,%esi
94535c:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
945362:	50                   	push   %eax
945363:	d1 fe                	sar    $1,%esi
945365:	e8 f2 91 ac ff       	call   0x40e55c
94536a:	8b 00                	mov    (%eax),%eax
94536c:	99                   	cltd
94536d:	2b c2                	sub    %edx,%eax
94536f:	d1 f8                	sar    $1,%eax
945371:	2b f0                	sub    %eax,%esi
945373:	4e                   	dec    %esi
945374:	89 75 e0             	mov    %esi,-0x20(%ebp)
945377:	e9 01 01 00 00       	jmp    0x94547d
94537c:	50                   	push   %eax
94537d:	8d 45 9c             	lea    -0x64(%ebp),%eax
945380:	50                   	push   %eax
945381:	8d 4f 60             	lea    0x60(%edi),%ecx
945384:	e8 60 26 ae ff       	call   0x4279e9
945389:	8b 45 b8             	mov    -0x48(%ebp),%eax
94538c:	ff 75 a4             	push   -0x5c(%ebp)
94538f:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
945392:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
945399:	8b 30                	mov    (%eax),%esi
94539b:	8d 45 d0             	lea    -0x30(%ebp),%eax
94539e:	50                   	push   %eax
94539f:	ff 73 f4             	push   -0xc(%ebx)
9453a2:	8b 4e 68             	mov    0x68(%esi),%ecx
9453a5:	53                   	push   %ebx
9453a6:	e8 ba 72 ae ff       	call   0x42c665
9453ab:	8b 4d b8             	mov    -0x48(%ebp),%ecx
9453ae:	ff 56 68             	call   *0x68(%esi)
9453b1:	8b 45 94             	mov    -0x6c(%ebp),%eax
9453b4:	8d 4f 60             	lea    0x60(%edi),%ecx
9453b7:	03 45 bc             	add    -0x44(%ebp),%eax
9453ba:	89 45 d4             	mov    %eax,-0x2c(%ebp)
9453bd:	8b 45 ac             	mov    -0x54(%ebp),%eax
9453c0:	29 45 d8             	sub    %eax,-0x28(%ebp)
9453c3:	8b 87 54 01 00 00    	mov    0x154(%edi),%eax
9453c9:	40                   	inc    %eax
9453ca:	50                   	push   %eax
9453cb:	8d 45 b4             	lea    -0x4c(%ebp),%eax
9453ce:	50                   	push   %eax
9453cf:	e8 6c ac ad ff       	call   0x420040
9453d4:	ff 75 a4             	push   -0x5c(%ebp)
9453d7:	8b 45 b4             	mov    -0x4c(%ebp),%eax
9453da:	8d 4d d0             	lea    -0x30(%ebp),%ecx
9453dd:	8b 75 b8             	mov    -0x48(%ebp),%esi
9453e0:	51                   	push   %ecx
9453e1:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
9453e5:	ff 70 f4             	push   -0xc(%eax)
9453e8:	8b 36                	mov    (%esi),%esi
9453ea:	50                   	push   %eax
9453eb:	8b 4e 68             	mov    0x68(%esi),%ecx
9453ee:	e8 72 72 ae ff       	call   0x42c665
9453f3:	8b 4d b8             	mov    -0x48(%ebp),%ecx
9453f6:	ff 56 68             	call   *0x68(%esi)
9453f9:	8b 07                	mov    (%edi),%eax
9453fb:	8b b0 38 01 00 00    	mov    0x138(%eax),%esi
945401:	8b ce                	mov    %esi,%ecx
945403:	e8 5d 72 ae ff       	call   0x42c665
945408:	8b cf                	mov    %edi,%ecx
94540a:	ff d6                	call   *%esi
94540c:	85 c0                	test   %eax,%eax
94540e:	75 17                	jne    0x945427
945410:	8b 07                	mov    (%edi),%eax
945412:	8b b0 4c 02 00 00    	mov    0x24c(%eax),%esi
945418:	8b ce                	mov    %esi,%ecx
94541a:	e8 46 72 ae ff       	call   0x42c665
94541f:	8b cf                	mov    %edi,%ecx
945421:	ff d6                	call   *%esi
945423:	85 c0                	test   %eax,%eax
945425:	74 3d                	je     0x945464
945427:	8b 45 d4             	mov    -0x2c(%ebp),%eax
94542a:	8d 75 d0             	lea    -0x30(%ebp),%esi
94542d:	8b 4d b8             	mov    -0x48(%ebp),%ecx
945430:	8d 7d e0             	lea    -0x20(%ebp),%edi
945433:	a5                   	movsl  %ds:(%esi),%es:(%edi)
945434:	83 c0 02             	add    $0x2,%eax
945437:	a5                   	movsl  %ds:(%esi),%es:(%edi)
945438:	a5                   	movsl  %ds:(%esi),%es:(%edi)
945439:	a5                   	movsl  %ds:(%esi),%es:(%edi)
94543a:	8b 75 d8             	mov    -0x28(%ebp),%esi
94543d:	2b 75 d0             	sub    -0x30(%ebp),%esi
945440:	89 45 e4             	mov    %eax,-0x1c(%ebp)
945443:	8d 45 b4             	lea    -0x4c(%ebp),%eax
945446:	50                   	push   %eax
945447:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
94544d:	50                   	push   %eax
94544e:	e8 3d d5 ac ff       	call   0x412990
945453:	8b 4d d8             	mov    -0x28(%ebp),%ecx
945456:	2b 30                	sub    (%eax),%esi
945458:	8b c6                	mov    %esi,%eax