56f09c:	3b cd                	cmp    %ebp,%ecx
56f09e:	7d 0f                	jge    0x56f0af
56f0a0:	8b 08                	mov    (%eax),%ecx
56f0a2:	01 0a                	add    %ecx,(%edx)
56f0a4:	8b cb                	mov    %ebx,%ecx
56f0a6:	c1 e1 02             	shl    $0x2,%ecx
56f0a9:	03 d1                	add    %ecx,%edx
56f0ab:	ff 4c 24 2c          	decl   0x2c(%esp)
56f0af:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f0b3:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f0b7:	3b cd                	cmp    %ebp,%ecx
56f0b9:	7c 1a                	jl     0x56f0d5
56f0bb:	ff 4c 24 2c          	decl   0x2c(%esp)
56f0bf:	eb 14                	jmp    0x56f0d5
56f0c1:	8b 08                	mov    (%eax),%ecx
56f0c3:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f0c6:	03 cd                	add    %ebp,%ecx
56f0c8:	d1 f9                	sar    $1,%ecx
56f0ca:	01 0a                	add    %ecx,(%edx)
56f0cc:	8b cb                	mov    %ebx,%ecx
56f0ce:	c1 e1 02             	shl    $0x2,%ecx
56f0d1:	03 d1                	add    %ecx,%edx
56f0d3:	03 c1                	add    %ecx,%eax
56f0d5:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f0d9:	83 44 24 2c ff       	addl   $0xffffffff,0x2c(%esp)
56f0de:	85 c9                	test   %ecx,%ecx
56f0e0:	7f df                	jg     0x56f0c1
56f0e2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f0e6:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f0ea:	3b cd                	cmp    %ebp,%ecx
56f0ec:	7c 04                	jl     0x56f0f2
56f0ee:	8b 00                	mov    (%eax),%eax
56f0f0:	01 02                	add    %eax,(%edx)
56f0f2:	53                   	push   %ebx
56f0f3:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f0f7:	52                   	push   %edx
56f0f8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56f0fc:	51                   	push   %ecx
56f0fd:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f101:	50                   	push   %eax
56f102:	8b 54 24 24          	mov    0x24(%esp),%edx
56f106:	52                   	push   %edx
56f107:	8b d7                	mov    %edi,%edx
56f109:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f10d:	51                   	push   %ecx
56f10e:	8b 44 24 34          	mov    0x34(%esp),%eax
56f112:	50                   	push   %eax
56f113:	8b c6                	mov    %esi,%eax
56f115:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f119:	e8 de f5 ff ff       	call   0x56e6fc
56f11e:	eb 0e                	jmp    0x56f12e
56f120:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f124:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f128:	3b d1                	cmp    %ecx,%edx
56f12a:	75 02                	jne    0x56f12e
56f12c:	d1 3e                	sarl   $1,(%esi)
56f12e:	8b 44 24 20          	mov    0x20(%esp),%eax
56f132:	c1 e0 02             	shl    $0x2,%eax
56f135:	03 f0                	add    %eax,%esi
56f137:	8b 54 24 24          	mov    0x24(%esp),%edx
56f13b:	83 44 24 24 ff       	addl   $0xffffffff,0x24(%esp)
56f140:	85 d2                	test   %edx,%edx
56f142:	0f 8f 75 fe ff ff    	jg     0x56efbd
56f148:	e9 7e 01 00 00       	jmp    0x56f2cb
56f14d:	53                   	push   %ebx
56f14e:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
56f152:	51                   	push   %ecx
56f153:	8d 44 24 14          	lea    0x14(%esp),%eax
56f157:	50                   	push   %eax
56f158:	8d 54 24 1c          	lea    0x1c(%esp),%edx
56f15c:	52                   	push   %edx
56f15d:	8d 4c 24 24          	lea    0x24(%esp),%ecx
56f161:	51                   	push   %ecx
56f162:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56f166:	50                   	push   %eax
56f167:	8d 54 24 34          	lea    0x34(%esp),%edx
56f16b:	52                   	push   %edx
56f16c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f170:	8b d7                	mov    %edi,%edx
56f172:	8b c6                	mov    %esi,%eax
56f174:	e8 63 f2 ff ff       	call   0x56e3dc
56f179:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56f17d:	2b cf                	sub    %edi,%ecx
56f17f:	49                   	dec    %ecx
56f180:	0f 8e 1d 01 00 00    	jle    0x56f2a3
56f186:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f18a:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f18e:	2b cd                	sub    %ebp,%ecx
56f190:	8b 54 24 08          	mov    0x8(%esp),%edx
56f194:	8b 44 24 14          	mov    0x14(%esp),%eax
56f198:	89 4c 24 30          	mov    %ecx,0x30(%esp)
56f19c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f1a0:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f1a4:	3b cd                	cmp    %ebp,%ecx
56f1a6:	7c 11                	jl     0x56f1b9
56f1a8:	8b 08                	mov    (%eax),%ecx
56f1aa:	f7 d9                	neg    %ecx
56f1ac:	01 0a                	add    %ecx,(%edx)
56f1ae:	8b cb                	mov    %ebx,%ecx
56f1b0:	c1 e1 02             	shl    $0x2,%ecx
56f1b3:	03 d1                	add    %ecx,%edx
56f1b5:	ff 4c 24 30          	decl   0x30(%esp)
56f1b9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f1bd:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f1c1:	3b cd                	cmp    %ebp,%ecx
56f1c3:	7e 1d                	jle    0x56f1e2
56f1c5:	ff 4c 24 30          	decl   0x30(%esp)
56f1c9:	eb 17                	jmp    0x56f1e2
56f1cb:	8b 08                	mov    (%eax),%ecx
56f1cd:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f1d0:	03 cd                	add    %ebp,%ecx
56f1d2:	c1 f9 02             	sar    $0x2,%ecx
56f1d5:	f7 d9                	neg    %ecx
56f1d7:	01 0a                	add    %ecx,(%edx)
56f1d9:	8b cb                	mov    %ebx,%ecx
56f1db:	c1 e1 02             	shl    $0x2,%ecx
56f1de:	03 d1                	add    %ecx,%edx
56f1e0:	03 c1                	add    %ecx,%eax
56f1e2:	8b 4c 24 30          	mov    0x30(%esp),%ecx
56f1e6:	83 44 24 30 ff       	addl   $0xffffffff,0x30(%esp)
56f1eb:	85 c9                	test   %ecx,%ecx
56f1ed:	7f dc                	jg     0x56f1cb
56f1ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f1f3:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f1f7:	3b cd                	cmp    %ebp,%ecx
56f1f9:	7e 06                	jle    0x56f201
56f1fb:	8b 00                	mov    (%eax),%eax
56f1fd:	f7 d8                	neg    %eax
56f1ff:	01 02                	add    %eax,(%edx)
56f201:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f205:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56f209:	2b cd                	sub    %ebp,%ecx
56f20b:	8b 44 24 08          	mov    0x8(%esp),%eax
56f20f:	8b 54 24 14          	mov    0x14(%esp),%edx
56f213:	89 4c 24 34          	mov    %ecx,0x34(%esp)
56f217:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f21b:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f21f:	3b cd                	cmp    %ebp,%ecx
56f221:	7d 0f                	jge    0x56f232
56f223:	8b 08                	mov    (%eax),%ecx
56f225:	01 0a                	add    %ecx,(%edx)
56f227:	8b cb                	mov    %ebx,%ecx
56f229:	c1 e1 02             	shl    $0x2,%ecx
56f22c:	03 d1                	add    %ecx,%edx
56f22e:	ff 4c 24 34          	decl   0x34(%esp)
56f232:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f236:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f23a:	3b cd                	cmp    %ebp,%ecx
56f23c:	7c 1a                	jl     0x56f258
56f23e:	ff 4c 24 34          	decl   0x34(%esp)
56f242:	eb 14                	jmp    0x56f258
56f244:	8b 08                	mov    (%eax),%ecx
56f246:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f249:	03 cd                	add    %ebp,%ecx
56f24b:	d1 f9                	sar    $1,%ecx
56f24d:	01 0a                	add    %ecx,(%edx)
56f24f:	8b cb                	mov    %ebx,%ecx
56f251:	c1 e1 02             	shl    $0x2,%ecx
56f254:	03 d1                	add    %ecx,%edx
56f256:	03 c1                	add    %ecx,%eax
56f258:	8b 4c 24 34          	mov    0x34(%esp),%ecx
56f25c:	83 44 24 34 ff       	addl   $0xffffffff,0x34(%esp)
56f261:	85 c9                	test   %ecx,%ecx
56f263:	7f df                	jg     0x56f244
56f265:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f269:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f26d:	3b cd                	cmp    %ebp,%ecx
56f26f:	7c 04                	jl     0x56f275
56f271:	8b 00                	mov    (%eax),%eax
56f273:	01 02                	add    %eax,(%edx)
56f275:	53                   	push   %ebx
56f276:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f27a:	52                   	push   %edx
56f27b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56f27f:	51                   	push   %ecx
56f280:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f284:	50                   	push   %eax
56f285:	8b 54 24 24          	mov    0x24(%esp),%edx
56f289:	52                   	push   %edx
56f28a:	8b d7                	mov    %edi,%edx
56f28c:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f290:	51                   	push   %ecx
56f291:	8b 44 24 34          	mov    0x34(%esp),%eax
56f295:	50                   	push   %eax
56f296:	8b c6                	mov    %esi,%eax
56f298:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f29c:	e8 5b f4 ff ff       	call   0x56e6fc
56f2a1:	eb 0e                	jmp    0x56f2b1
56f2a3:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f2a7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f2ab:	3b d1                	cmp    %ecx,%edx
56f2ad:	75 02                	jne    0x56f2b1
56f2af:	d1 3e                	sarl   $1,(%esi)
56f2b1:	8b 44 24 20          	mov    0x20(%esp),%eax
56f2b5:	c1 e0 02             	shl    $0x2,%eax
56f2b8:	03 f0                	add    %eax,%esi
56f2ba:	8b 54 24 24          	mov    0x24(%esp),%edx
56f2be:	83 44 24 24 ff       	addl   $0xffffffff,0x24(%esp)
56f2c3:	85 d2                	test   %edx,%edx
56f2c5:	0f 8f 82 fe ff ff    	jg     0x56f14d
56f2cb:	83 c4 38             	add    $0x38,%esp
56f2ce:	5d                   	pop    %ebp
56f2cf:	5f                   	pop    %edi
56f2d0:	5e                   	pop    %esi
56f2d1:	5b                   	pop    %ebx
56f2d2:	c3                   	ret
56f2d3:	90                   	nop
56f2d4:	b8 02 00 00 00       	mov    $0x2,%eax
56f2d9:	c3                   	ret
56f2da:	90                   	nop
56f2db:	90                   	nop
56f2dc:	e8 67 b8 fe ff       	call   0x55ab48
56f2e1:	83 c8 ff             	or     $0xffffffff,%eax
56f2e4:	c3                   	ret
56f2e5:	90                   	nop
56f2e6:	90                   	nop
56f2e7:	90                   	nop
56f2e8:	53                   	push   %ebx
56f2e9:	56                   	push   %esi
56f2ea:	57                   	push   %edi
56f2eb:	8b f9                	mov    %ecx,%edi
56f2ed:	33 f6                	xor    %esi,%esi
56f2ef:	33 db                	xor    %ebx,%ebx
56f2f1:	83 fa 01             	cmp    $0x1,%edx
56f2f4:	7f 08                	jg     0x56f2fe
56f2f6:	85 d2                	test   %edx,%edx
56f2f8:	0f 85 92 01 00 00    	jne    0x56f490
56f2fe:	6a 01                	push   $0x1
56f300:	b9 04 00 00 00       	mov    $0x4,%ecx
56f305:	33 d2                	xor    %edx,%edx
56f307:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
56f30c:	e8 47 89 00 00       	call   0x577c58
56f311:	8b f0                	mov    %eax,%esi
56f313:	85 c0                	test   %eax,%eax
56f315:	0f 84 da 01 00 00    	je     0x56f4f5
56f31b:	8b 46 1c             	mov    0x1c(%esi),%eax
56f31e:	8b 4e 04             	mov    0x4(%esi),%ecx
56f321:	ba fd ff ff ff       	mov    $0xfffffffd,%edx
56f326:	2b d1                	sub    %ecx,%edx
56f328:	8b 08                	mov    (%eax),%ecx
56f32a:	c7 04 91 15 fd ff ff 	movl   $0xfffffd15,(%ecx,%edx,4)
56f331:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
56f336:	8b 4e 1c             	mov    0x1c(%esi),%ecx
56f339:	8b 46 04             	mov    0x4(%esi),%eax
56f33c:	2b d0                	sub    %eax,%edx
56f33e:	8b 01                	mov    (%ecx),%eax
56f340:	c7 04 90 29 fe ff ff 	movl   $0xfffffe29,(%eax,%edx,4)
56f347:	83 ca ff             	or     $0xffffffff,%edx
56f34a:	8b 46 1c             	mov    0x1c(%esi),%eax
56f34d:	8b 4e 04             	mov    0x4(%esi),%ecx
56f350:	2b d1                	sub    %ecx,%edx
56f352:	8b 08                	mov    (%eax),%ecx
56f354:	c7 04 91 eb 12 00 00 	movl   $0x12eb,(%ecx,%edx,4)
56f35b:	33 d2                	xor    %edx,%edx
56f35d:	8b 4e 1c             	mov    0x1c(%esi),%ecx
56f360:	8b 46 04             	mov    0x4(%esi),%eax
56f363:	2b d0                	sub    %eax,%edx
56f365:	8b 01                	mov    (%ecx),%eax
56f367:	c7 04 90 ae 23 00 00 	movl   $0x23ae,(%eax,%edx,4)
56f36e:	ba 01 00 00 00       	mov    $0x1,%edx
56f373:	8b 46 1c             	mov    0x1c(%esi),%eax
56f376:	8b 4e 04             	mov    0x4(%esi),%ecx
56f379:	2b d1                	sub    %ecx,%edx
56f37b:	8b 08                	mov    (%eax),%ecx
56f37d:	c7 04 91 eb 12 00 00 	movl   $0x12eb,(%ecx,%edx,4)
56f384:	ba 02 00 00 00       	mov    $0x2,%edx
56f389:	8b 4e 1c             	mov    0x1c(%esi),%ecx
56f38c:	8b 46 04             	mov    0x4(%esi),%eax
56f38f:	2b d0                	sub    %eax,%edx
56f391:	8b 01                	mov    (%ecx),%eax
56f393:	c7 04 90 29 fe ff ff 	movl   $0xfffffe29,(%eax,%edx,4)
56f39a:	ba 03 00 00 00       	mov    $0x3,%edx
56f39f:	8b 46 1c             	mov    0x1c(%esi),%eax
56f3a2:	8b 4e 04             	mov    0x4(%esi),%ecx
56f3a5:	2b d1                	sub    %ecx,%edx
56f3a7:	8b 08                	mov    (%eax),%ecx
56f3a9:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
56f3ae:	c7 04 91 15 fd ff ff 	movl   $0xfffffd15,(%ecx,%edx,4)
56f3b5:	b9 06 00 00 00       	mov    $0x6,%ecx
56f3ba:	33 d2                	xor    %edx,%edx
56f3bc:	6a 01                	push   $0x1
56f3be:	e8 95 88 00 00       	call   0x577c58
56f3c3:	8b d8                	mov    %eax,%ebx
56f3c5:	85 c0                	test   %eax,%eax
56f3c7:	0f 84 28 01 00 00    	je     0x56f4f5
56f3cd:	8b 43 1c             	mov    0x1c(%ebx),%eax
56f3d0:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f3d3:	ba fd ff ff ff       	mov    $0xfffffffd,%edx
56f3d8:	2b d1                	sub    %ecx,%edx
56f3da:	8b 08                	mov    (%eax),%ecx
56f3dc:	c7 04 91 4a fe ff ff 	movl   $0xfffffe4a,(%ecx,%edx,4)
56f3e3:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
56f3e8:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56f3eb:	8b 43 04             	mov    0x4(%ebx),%eax
56f3ee:	2b d0                	sub    %eax,%edx
56f3f0:	8b 01                	mov    (%ecx),%eax
56f3f2:	c7 04 90 ec fe ff ff 	movl   $0xfffffeec,(%eax,%edx,4)
56f3f9:	83 ca ff             	or     $0xffffffff,%edx
56f3fc:	8b 43 1c             	mov    0x1c(%ebx),%eax
56f3ff:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f402:	2b d1                	sub    %ecx,%edx
56f404:	8b 08                	mov    (%eax),%ecx
56f406:	c7 04 91 01 05 00 00 	movl   $0x501,(%ecx,%edx,4)
56f40d:	33 d2                	xor    %edx,%edx
56f40f:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56f412:	8b 43 04             	mov    0x4(%ebx),%eax
56f415:	2b d0                	sub    %eax,%edx
56f417:	8b 01                	mov    (%ecx),%eax
56f419:	c7 04 90 14 11 00 00 	movl   $0x1114,(%eax,%edx,4)
56f420:	ba 01 00 00 00       	mov    $0x1,%edx
56f425:	8b 43 1c             	mov    0x1c(%ebx),%eax
56f428:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f42b:	2b d1                	sub    %ecx,%edx
56f42d:	8b 08                	mov    (%eax),%ecx
56f42f:	c7 04 91 6a d9 ff ff 	movl   $0xffffd96a,(%ecx,%edx,4)
56f436:	ba 02 00 00 00       	mov    $0x2,%edx
56f43b:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56f43e:	8b 43 04             	mov    0x4(%ebx),%eax
56f441:	2b d0                	sub    %eax,%edx
56f443:	8b 01                	mov    (%ecx),%eax
56f445:	c7 04 90 14 11 00 00 	movl   $0x1114,(%eax,%edx,4)
56f44c:	ba 03 00 00 00       	mov    $0x3,%edx
56f451:	8b 43 1c             	mov    0x1c(%ebx),%eax
56f454:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f457:	2b d1                	sub    %ecx,%edx
56f459:	8b 08                	mov    (%eax),%ecx
56f45b:	c7 04 91 01 05 00 00 	movl   $0x501,(%ecx,%edx,4)
56f462:	ba 04 00 00 00       	mov    $0x4,%edx
56f467:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56f46a:	8b 43 04             	mov    0x4(%ebx),%eax
56f46d:	2b d0                	sub    %eax,%edx
56f46f:	8b 01                	mov    (%ecx),%eax
56f471:	c7 04 90 ec fe ff ff 	movl   $0xfffffeec,(%eax,%edx,4)
56f478:	ba 05 00 00 00       	mov    $0x5,%edx
56f47d:	8b 43 1c             	mov    0x1c(%ebx),%eax
56f480:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f483:	2b d1                	sub    %ecx,%edx
56f485:	8b 08                	mov    (%eax),%ecx
56f487:	c7 04 91 4a fe ff ff 	movl   $0xfffffe4a,(%ecx,%edx,4)
56f48e:	eb 5c                	jmp    0x56f4ec
56f490:	4a                   	dec    %edx
56f491:	75 54                	jne    0x56f4e7
56f493:	6a 01                	push   $0x1
56f495:	b9 01 00 00 00       	mov    $0x1,%ecx
56f49a:	33 d2                	xor    %edx,%edx
56f49c:	33 c0                	xor    %eax,%eax
56f49e:	e8 b5 87 00 00       	call   0x577c58
56f4a3:	8b f0                	mov    %eax,%esi
56f4a5:	85 c0                	test   %eax,%eax
56f4a7:	74 4c                	je     0x56f4f5