95ffd8:	8b 8b c4 02 00 00    	mov    0x2c4(%ebx),%ecx
95ffde:	89 55 88             	mov    %edx,-0x78(%ebp)
95ffe1:	85 c9                	test   %ecx,%ecx
95ffe3:	74 06                	je     0x95ffeb
95ffe5:	83 c2 14             	add    $0x14,%edx
95ffe8:	89 55 88             	mov    %edx,-0x78(%ebp)
95ffeb:	39 bb 58 04 00 00    	cmp    %edi,0x458(%ebx)
95fff1:	74 16                	je     0x960009
95fff3:	39 bb 80 04 00 00    	cmp    %edi,0x480(%ebx)
95fff9:	74 0e                	je     0x960009
95fffb:	39 bb 84 04 00 00    	cmp    %edi,0x484(%ebx)
960001:	74 06                	je     0x960009
960003:	83 c2 0a             	add    $0xa,%edx
960006:	89 55 88             	mov    %edx,-0x78(%ebp)
960009:	8b 45 98             	mov    -0x68(%ebp),%eax
96000c:	89 83 64 04 00 00    	mov    %eax,0x464(%ebx)
960012:	8b 45 a0             	mov    -0x60(%ebp),%eax
960015:	89 83 6c 04 00 00    	mov    %eax,0x46c(%ebx)
96001b:	85 c9                	test   %ecx,%ecx
96001d:	74 13                	je     0x960032
96001f:	6a fb                	push   $0xfffffffb
960021:	57                   	push   %edi
960022:	8d 83 60 04 00 00    	lea    0x460(%ebx),%eax
960028:	50                   	push   %eax
960029:	ff 15 ec 3d d8 00    	call   *0xd83dec
96002f:	8b 55 88             	mov    -0x78(%ebp),%edx
960032:	8b 83 5c 04 00 00    	mov    0x45c(%ebx),%eax
960038:	83 e8 01             	sub    $0x1,%eax
96003b:	74 79                	je     0x9600b6
96003d:	83 e8 01             	sub    $0x1,%eax
960040:	74 34                	je     0x960076
960042:	83 e8 01             	sub    $0x1,%eax
960045:	0f 85 be 03 00 00    	jne    0x960409
96004b:	8b c2                	mov    %edx,%eax
96004d:	33 f6                	xor    %esi,%esi
96004f:	99                   	cltd
960050:	46                   	inc    %esi
960051:	2b c2                	sub    %edx,%eax
960053:	89 b5 64 ff ff ff    	mov    %esi,-0x9c(%ebp)
960059:	d1 f8                	sar    $1,%eax
96005b:	33 d2                	xor    %edx,%edx
96005d:	f7 d8                	neg    %eax
96005f:	01 45 90             	add    %eax,-0x70(%ebp)
960062:	39 b3 24 04 00 00    	cmp    %esi,0x424(%ebx)
960068:	0f 94 c2             	sete   %dl
96006b:	89 95 6c ff ff ff    	mov    %edx,-0x94(%ebp)
960071:	e9 90 00 00 00       	jmp    0x960106
960076:	8b c6                	mov    %esi,%eax
960078:	2b c2                	sub    %edx,%eax
96007a:	89 83 60 04 00 00    	mov    %eax,0x460(%ebx)
960080:	8b 45 9c             	mov    -0x64(%ebp),%eax
960083:	2b 83 90 04 00 00    	sub    0x490(%ebx),%eax
960089:	3b f0                	cmp    %eax,%esi
96008b:	75 08                	jne    0x960095
96008d:	2b c2                	sub    %edx,%eax
96008f:	89 83 60 04 00 00    	mov    %eax,0x460(%ebx)
960095:	8b 8b 60 04 00 00    	mov    0x460(%ebx),%ecx
96009b:	c7 85 6c ff ff ff 01 	movl   $0x1,-0x94(%ebp)
9600a2:	00 00 00
9600a5:	8d 04 11             	lea    (%ecx,%edx,1),%eax
9600a8:	2b 8b 94 04 00 00    	sub    0x494(%ebx),%ecx
9600ae:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
9600b4:	eb 4a                	jmp    0x960100
9600b6:	39 bb c4 02 00 00    	cmp    %edi,0x2c4(%ebx)
9600bc:	74 13                	je     0x9600d1
9600be:	33 f6                	xor    %esi,%esi
9600c0:	46                   	inc    %esi
9600c1:	39 b3 24 04 00 00    	cmp    %esi,0x424(%ebx)
9600c7:	75 08                	jne    0x9600d1
9600c9:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
9600cf:	eb 35                	jmp    0x960106
9600d1:	8b 45 94             	mov    -0x6c(%ebp),%eax
9600d4:	8b 75 8c             	mov    -0x74(%ebp),%esi
9600d7:	03 83 90 04 00 00    	add    0x490(%ebx),%eax
9600dd:	89 b3 60 04 00 00    	mov    %esi,0x460(%ebx)
9600e3:	3b f0                	cmp    %eax,%esi
9600e5:	75 06                	jne    0x9600ed
9600e7:	89 83 60 04 00 00    	mov    %eax,0x460(%ebx)
9600ed:	8b 83 60 04 00 00    	mov    0x460(%ebx),%eax
9600f3:	8b 8b 94 04 00 00    	mov    0x494(%ebx),%ecx
9600f9:	03 c2                	add    %edx,%eax
9600fb:	03 c8                	add    %eax,%ecx
9600fd:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
960100:	89 83 68 04 00 00    	mov    %eax,0x468(%ebx)
960106:	8d 8b 0c 04 00 00    	lea    0x40c(%ebx),%ecx
96010c:	89 bd 5c ff ff ff    	mov    %edi,-0xa4(%ebp)
960112:	8b 01                	mov    (%ecx),%eax
960114:	39 78 f4             	cmp    %edi,-0xc(%eax)
960117:	0f 84 d6 00 00 00    	je     0x9601f3
96011d:	8b 33                	mov    (%ebx),%esi
96011f:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
960125:	51                   	push   %ecx
960126:	50                   	push   %eax
960127:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
96012d:	8b b6 34 03 00 00    	mov    0x334(%esi),%esi
960133:	8b ce                	mov    %esi,%ecx
960135:	50                   	push   %eax
960136:	e8 2a c5 ac ff       	call   0x42c665
96013b:	8b cb                	mov    %ebx,%ecx
96013d:	ff d6                	call   *%esi
96013f:	8b 30                	mov    (%eax),%esi
960141:	8b 48 04             	mov    0x4(%eax),%ecx
960144:	8b c1                	mov    %ecx,%eax
960146:	99                   	cltd
960147:	2b c2                	sub    %edx,%eax
960149:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
96014f:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
960155:	d1 f8                	sar    $1,%eax
960157:	2b d0                	sub    %eax,%edx
960159:	89 93 2c 04 00 00    	mov    %edx,0x42c(%ebx)
96015f:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
960162:	89 83 34 04 00 00    	mov    %eax,0x434(%ebx)
960168:	8b 83 24 04 00 00    	mov    0x424(%ebx),%eax
96016e:	83 e8 01             	sub    $0x1,%eax
960171:	74 36                	je     0x9601a9
960173:	83 e8 01             	sub    $0x1,%eax
960176:	74 21                	je     0x960199
960178:	83 e8 01             	sub    $0x1,%eax
96017b:	0f 85 88 02 00 00    	jne    0x960409
960181:	8b c6                	mov    %esi,%eax
960183:	c7 85 7c ff ff ff 01 	movl   $0x1,-0x84(%ebp)
96018a:	00 00 00
96018d:	99                   	cltd
96018e:	2b c2                	sub    %edx,%eax
960190:	d1 f8                	sar    $1,%eax
960192:	f7 d8                	neg    %eax
960194:	01 45 90             	add    %eax,-0x70(%ebp)
960197:	eb 27                	jmp    0x9601c0
960199:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
96019f:	2b c6                	sub    %esi,%eax
9601a1:	89 83 28 04 00 00    	mov    %eax,0x428(%ebx)
9601a7:	eb 17                	jmp    0x9601c0
9601a9:	8b 83 90 04 00 00    	mov    0x490(%ebx),%eax
9601af:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
9601b2:	89 8b 28 04 00 00    	mov    %ecx,0x428(%ebx)
9601b8:	8d 04 46             	lea    (%esi,%eax,2),%eax
9601bb:	03 c8                	add    %eax,%ecx
9601bd:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
9601c0:	8d b3 28 04 00 00    	lea    0x428(%ebx),%esi
9601c6:	8b cb                	mov    %ebx,%ecx
9601c8:	8b 06                	mov    (%esi),%eax
9601ca:	03 85 5c ff ff ff    	add    -0xa4(%ebp),%eax
9601d0:	57                   	push   %edi
9601d1:	ff b3 90 04 00 00    	push   0x490(%ebx)
9601d7:	89 83 30 04 00 00    	mov    %eax,0x430(%ebx)
9601dd:	8d 45 94             	lea    -0x6c(%ebp),%eax
9601e0:	50                   	push   %eax
9601e1:	56                   	push   %esi
9601e2:	e8 e2 0b ac ff       	call   0x420dc9
9601e7:	8d bb 38 04 00 00    	lea    0x438(%ebx),%edi
9601ed:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9601ee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9601ef:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9601f0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9601f1:	33 ff                	xor    %edi,%edi
9601f3:	83 bd 50 ff ff ff 00 	cmpl   $0x0,-0xb0(%ebp)
9601fa:	74 1c                	je     0x960218
9601fc:	8b 45 90             	mov    -0x70(%ebp),%eax
9601ff:	8b 8b 94 04 00 00    	mov    0x494(%ebx),%ecx
960205:	89 83 f0 03 00 00    	mov    %eax,0x3f0(%ebx)
96020b:	03 45 80             	add    -0x80(%ebp),%eax
96020e:	89 83 f8 03 00 00    	mov    %eax,0x3f8(%ebx)
960214:	03 c8                	add    %eax,%ecx
960216:	eb 03                	jmp    0x96021b
960218:	8b 4d 90             	mov    -0x70(%ebp),%ecx
96021b:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
960222:	74 37                	je     0x96025b
960224:	8b 45 8c             	mov    -0x74(%ebp),%eax
960227:	8b 55 88             	mov    -0x78(%ebp),%edx
96022a:	8b 75 9c             	mov    -0x64(%ebp),%esi
96022d:	89 83 60 04 00 00    	mov    %eax,0x460(%ebx)
960233:	03 c2                	add    %edx,%eax
960235:	89 83 68 04 00 00    	mov    %eax,0x468(%ebx)
96023b:	03 83 90 04 00 00    	add    0x490(%ebx),%eax
960241:	3b c6                	cmp    %esi,%eax
960243:	7e 38                	jle    0x96027d
960245:	2b b3 90 04 00 00    	sub    0x490(%ebx),%esi
96024b:	89 b3 68 04 00 00    	mov    %esi,0x468(%ebx)
960251:	2b f2                	sub    %edx,%esi
960253:	89 b3 60 04 00 00    	mov    %esi,0x460(%ebx)
960259:	eb 22                	jmp    0x96027d
96025b:	83 bd 64 ff ff ff 00 	cmpl   $0x0,-0x9c(%ebp)
960262:	74 19                	je     0x96027d
960264:	8b 45 88             	mov    -0x78(%ebp),%eax
960267:	03 c1                	add    %ecx,%eax
960269:	89 8b 60 04 00 00    	mov    %ecx,0x460(%ebx)
96026f:	8b 8b 94 04 00 00    	mov    0x494(%ebx),%ecx
960275:	89 83 68 04 00 00    	mov    %eax,0x468(%ebx)
96027b:	03 c8                	add    %eax,%ecx
96027d:	83 bd 7c ff ff ff 00 	cmpl   $0x0,-0x84(%ebp)
960284:	74 33                	je     0x9602b9
960286:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
96028c:	8d b3 28 04 00 00    	lea    0x428(%ebx),%esi
960292:	03 c1                	add    %ecx,%eax
960294:	89 0e                	mov    %ecx,(%esi)
960296:	57                   	push   %edi
960297:	ff b3 90 04 00 00    	push   0x490(%ebx)
96029d:	89 83 30 04 00 00    	mov    %eax,0x430(%ebx)
9602a3:	8b cb                	mov    %ebx,%ecx
9602a5:	8d 45 94             	lea    -0x6c(%ebp),%eax
9602a8:	50                   	push   %eax
9602a9:	56                   	push   %esi
9602aa:	e8 1a 0b ac ff       	call   0x420dc9
9602af:	8d bb 38 04 00 00    	lea    0x438(%ebx),%edi
9602b5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9602b6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9602b7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9602b8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
9602b9:	8b cb                	mov    %ebx,%ecx
9602bb:	e8 5f de aa ff       	call   0x40e11f
9602c0:	85 c0                	test   %eax,%eax
9602c2:	74 3d                	je     0x960301
9602c4:	33 c0                	xor    %eax,%eax
9602c6:	8d b3 f0 03 00 00    	lea    0x3f0(%ebx),%esi
9602cc:	39 83 e8 03 00 00    	cmp    %eax,0x3e8(%ebx)
9602d2:	8b cb                	mov    %ebx,%ecx
9602d4:	0f 94 c0             	sete   %al
9602d7:	50                   	push   %eax
9602d8:	ff b3 90 04 00 00    	push   0x490(%ebx)
9602de:	8d 45 94             	lea    -0x6c(%ebp),%eax
9602e1:	50                   	push   %eax
9602e2:	56                   	push   %esi
9602e3:	e8 e1 0a ac ff       	call   0x420dc9
9602e8:	8b 06                	mov    (%esi),%eax
9602ea:	3b 45 94             	cmp    -0x6c(%ebp),%eax
9602ed:	7c 0b                	jl     0x9602fa
9602ef:	8b 83 f8 03 00 00    	mov    0x3f8(%ebx),%eax
9602f5:	3b 45 9c             	cmp    -0x64(%ebp),%eax
9602f8:	7e 07                	jle    0x960301
9602fa:	56                   	push   %esi
9602fb:	ff 15 50 40 d8 00    	call   *0xd84050
960301:	8d b3 60 04 00 00    	lea    0x460(%ebx),%esi
960307:	8d 7d e0             	lea    -0x20(%ebp),%edi
96030a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96030b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96030c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96030d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
96030e:	8d b3 4c 04 00 00    	lea    0x44c(%ebx),%esi
960314:	33 ff                	xor    %edi,%edi
960316:	8b 06                	mov    (%esi),%eax
960318:	39 78 f4             	cmp    %edi,-0xc(%eax)
96031b:	74 23                	je     0x960340
96031d:	8b cb                	mov    %ebx,%ecx
96031f:	e8 fb dd aa ff       	call   0x40e11f
960324:	85 c0                	test   %eax,%eax
960326:	74 18                	je     0x960340
960328:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
96032e:	8d 83 f0 03 00 00    	lea    0x3f0(%ebx),%eax
960334:	8b cb                	mov    %ebx,%ecx
960336:	50                   	push   %eax
960337:	8d 45 e0             	lea    -0x20(%ebp),%eax
96033a:	50                   	push   %eax
96033b:	e8 46 c6 ab ff       	call   0x41c986
960340:	8b 06                	mov    (%esi),%eax
960342:	39 78 f4             	cmp    %edi,-0xc(%eax)
960345:	74 42                	je     0x960389
960347:	8b b3 90 04 00 00    	mov    0x490(%ebx),%esi
96034d:	8d 45 94             	lea    -0x6c(%ebp),%eax
960350:	57                   	push   %edi
960351:	56                   	push   %esi
960352:	50                   	push   %eax
960353:	8d 45 e0             	lea    -0x20(%ebp),%eax
960356:	8b cb                	mov    %ebx,%ecx
960358:	50                   	push   %eax
960359:	e8 6b 0a ac ff       	call   0x420dc9
96035e:	8b 83 f8 03 00 00    	mov    0x3f8(%ebx),%eax
960364:	8d 93 60 04 00 00    	lea    0x460(%ebx),%edx
96036a:	03 42 08             	add    0x8(%edx),%eax
96036d:	8d 0c 70             	lea    (%eax,%esi,2),%ecx
960370:	8b 45 9c             	mov    -0x64(%ebp),%eax
960373:	2b 8b f0 03 00 00    	sub    0x3f0(%ebx),%ecx
960379:	2b 0a                	sub    (%edx),%ecx
96037b:	2b 45 94             	sub    -0x6c(%ebp),%eax
96037e:	3b c8                	cmp    %eax,%ecx
960380:	7e 07                	jle    0x960389
960382:	52                   	push   %edx
960383:	ff 15 50 40 d8 00    	call   *0xd84050
960389:	8b 83 0c 04 00 00    	mov    0x40c(%ebx),%eax
96038f:	39 78 f4             	cmp    %edi,-0xc(%eax)
960392:	74 3b                	je     0x9603cf
960394:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
96039a:	8d 83 f0 03 00 00    	lea    0x3f0(%ebx),%eax
9603a0:	8b cb                	mov    %ebx,%ecx
9603a2:	50                   	push   %eax
9603a3:	8d b3 38 04 00 00    	lea    0x438(%ebx),%esi
9603a9:	56                   	push   %esi
9603aa:	e8 d7 c5 ab ff       	call   0x41c986
9603af:	39 bd 6c ff ff ff    	cmp    %edi,-0x94(%ebp)
9603b5:	75 08                	jne    0x9603bf
9603b7:	39 bd 68 ff ff ff    	cmp    %edi,-0x98(%ebp)
9603bd:	74 03                	je     0x9603c2
9603bf:	33 ff                	xor    %edi,%edi
9603c1:	47                   	inc    %edi
9603c2:	57                   	push   %edi
9603c3:	8d 45 e0             	lea    -0x20(%ebp),%eax
9603c6:	8b cb                	mov    %ebx,%ecx
9603c8:	50                   	push   %eax
9603c9:	56                   	push   %esi
9603ca:	e8 b7 c5 ab ff       	call   0x41c986
9603cf:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
9603d5:	85 c0                	test   %eax,%eax
9603d7:	74 0c                	je     0x9603e5
9603d9:	50                   	push   %eax
9603da:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
9603e0:	e8 fa a8 ab ff       	call   0x41acdf
9603e5:	8b 83 40 04 00 00    	mov    0x440(%ebx),%eax
9603eb:	33 d2                	xor    %edx,%edx
9603ed:	2b 83 38 04 00 00    	sub    0x438(%ebx),%eax
9603f3:	8b cb                	mov    %ebx,%ecx
9603f5:	3b 85 5c ff ff ff    	cmp    -0xa4(%ebp),%eax
9603fb:	0f 9c c2             	setl   %dl
9603fe:	89 93 48 04 00 00    	mov    %edx,0x448(%ebx)
960404:	e8 19 8a aa ff       	call   0x408e22
960409:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
96040f:	e8 e6 84 aa ff       	call   0x4088fa
960414:	e8 9a 25 ab ff       	call   0x4129b3
960419:	c3                   	ret
96041a:	cc                   	int3
96041b:	cc                   	int3
96041c:	cc                   	int3
96041d:	cc                   	int3
96041e:	cc                   	int3
96041f:	cc                   	int3
960420:	cc                   	int3
960421:	cc                   	int3
960422:	cc                   	int3
960423:	cc                   	int3
960424:	cc                   	int3
960425:	cc                   	int3
960426:	cc                   	int3
960427:	cc                   	int3
960428:	cc                   	int3
960429:	cc                   	int3
96042a:	cc                   	int3
96042b:	cc                   	int3
96042c:	cc                   	int3
96042d:	cc                   	int3
96042e:	cc                   	int3
96042f:	cc                   	int3
960430:	cc                   	int3
960431:	cc                   	int3
960432:	cc                   	int3
960433:	cc                   	int3
960434:	cc                   	int3
960435:	cc                   	int3
960436:	cc                   	int3
960437:	cc                   	int3
960438:	cc                   	int3
960439:	cc                   	int3
96043a:	cc                   	int3