50a0db:	51                   	push   %ecx
50a0dc:	53                   	push   %ebx
50a0dd:	56                   	push   %esi
50a0de:	57                   	push   %edi
50a0df:	8b f9                	mov    %ecx,%edi
50a0e1:	89 55 fc             	mov    %edx,-0x4(%ebp)
50a0e4:	8b f0                	mov    %eax,%esi
50a0e6:	8b df                	mov    %edi,%ebx
50a0e8:	3b 5d 08             	cmp    0x8(%ebp),%ebx
50a0eb:	7d 19                	jge    0x50a106
50a0ed:	53                   	push   %ebx
50a0ee:	6a 01                	push   $0x1
50a0f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a0f3:	8d 57 ff             	lea    -0x1(%edi),%edx
50a0f6:	50                   	push   %eax
50a0f7:	8b c6                	mov    %esi,%eax
50a0f9:	8b ce                	mov    %esi,%ecx
50a0fb:	e8 94 da ff ff       	call   0x507b94
50a100:	43                   	inc    %ebx
50a101:	3b 5d 08             	cmp    0x8(%ebp),%ebx
50a104:	7c e7                	jl     0x50a0ed
50a106:	5f                   	pop    %edi
50a107:	5e                   	pop    %esi
50a108:	5b                   	pop    %ebx
50a109:	59                   	pop    %ecx
50a10a:	5d                   	pop    %ebp
50a10b:	c2 04 00             	ret    $0x4
50a10e:	90                   	nop
50a10f:	90                   	nop
50a110:	55                   	push   %ebp
50a111:	8b ec                	mov    %esp,%ebp
50a113:	83 c4 ec             	add    $0xffffffec,%esp
50a116:	53                   	push   %ebx
50a117:	56                   	push   %esi
50a118:	57                   	push   %edi
50a119:	8b d8                	mov    %eax,%ebx
50a11b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50a11e:	89 55 fc             	mov    %edx,-0x4(%ebp)
50a121:	8b b3 4c 01 00 00    	mov    0x14c(%ebx),%esi
50a127:	e9 20 01 00 00       	jmp    0x50a24c
50a12c:	8b 8b e4 00 00 00    	mov    0xe4(%ebx),%ecx
50a132:	8b 55 14             	mov    0x14(%ebp),%edx
50a135:	2b 4e 34             	sub    0x34(%esi),%ecx
50a138:	2b d0                	sub    %eax,%edx
50a13a:	8b c2                	mov    %edx,%eax
50a13c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50a13f:	3b 45 f4             	cmp    -0xc(%ebp),%eax
50a142:	76 05                	jbe    0x50a149
50a144:	8b 55 f4             	mov    -0xc(%ebp),%edx
50a147:	eb 02                	jmp    0x50a14b
50a149:	8b d0                	mov    %eax,%edx
50a14b:	89 55 f4             	mov    %edx,-0xc(%ebp)
50a14e:	8b 46 34             	mov    0x34(%esi),%eax
50a151:	50                   	push   %eax
50a152:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a155:	51                   	push   %ecx
50a156:	8d 4e 08             	lea    0x8(%esi),%ecx
50a159:	8b 45 f8             	mov    -0x8(%ebp),%eax
50a15c:	8b 10                	mov    (%eax),%edx
50a15e:	8b c3                	mov    %ebx,%eax
50a160:	c1 e2 02             	shl    $0x2,%edx
50a163:	03 55 fc             	add    -0x4(%ebp),%edx
50a166:	8b b8 58 01 00 00    	mov    0x158(%eax),%edi
50a16c:	ff 57 04             	call   *0x4(%edi)
50a16f:	8b 55 f8             	mov    -0x8(%ebp),%edx
50a172:	8b 45 f4             	mov    -0xc(%ebp),%eax
50a175:	01 02                	add    %eax,(%edx)
50a177:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a17a:	01 4e 34             	add    %ecx,0x34(%esi)
50a17d:	29 46 30             	sub    %eax,0x30(%esi)
50a180:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
50a184:	75 3f                	jne    0x50a1c5
50a186:	8b 46 34             	mov    0x34(%esi),%eax
50a189:	3b 83 e4 00 00 00    	cmp    0xe4(%ebx),%eax
50a18f:	7d 34                	jge    0x50a1c5
50a191:	33 ff                	xor    %edi,%edi
50a193:	8d 46 08             	lea    0x8(%esi),%eax
50a196:	89 45 f0             	mov    %eax,-0x10(%ebp)
50a199:	eb 1c                	jmp    0x50a1b7
50a19b:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
50a1a1:	52                   	push   %edx
50a1a2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50a1a5:	8b 01                	mov    (%ecx),%eax
50a1a7:	8b 4e 34             	mov    0x34(%esi),%ecx
50a1aa:	8b 53 18             	mov    0x18(%ebx),%edx
50a1ad:	e8 26 ff ff ff       	call   0x50a0d8
50a1b2:	47                   	inc    %edi
50a1b3:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
50a1b7:	3b 7b 34             	cmp    0x34(%ebx),%edi
50a1ba:	7c df                	jl     0x50a19b
50a1bc:	8b 83 e4 00 00 00    	mov    0xe4(%ebx),%eax
50a1c2:	89 46 34             	mov    %eax,0x34(%esi)
50a1c5:	8b 56 34             	mov    0x34(%esi),%edx
50a1c8:	3b 93 e4 00 00 00    	cmp    0xe4(%ebx),%edx
50a1ce:	75 24                	jne    0x50a1f4
50a1d0:	8b 4d 10             	mov    0x10(%ebp),%ecx
50a1d3:	51                   	push   %ecx
50a1d4:	33 c9                	xor    %ecx,%ecx
50a1d6:	8b 45 0c             	mov    0xc(%ebp),%eax
50a1d9:	8b 10                	mov    (%eax),%edx
50a1db:	8b c3                	mov    %ebx,%eax
50a1dd:	52                   	push   %edx
50a1de:	8d 56 08             	lea    0x8(%esi),%edx
50a1e1:	8b b8 5c 01 00 00    	mov    0x15c(%eax),%edi
50a1e7:	ff 57 04             	call   *0x4(%edi)
50a1ea:	33 c0                	xor    %eax,%eax
50a1ec:	89 46 34             	mov    %eax,0x34(%esi)
50a1ef:	8b 55 0c             	mov    0xc(%ebp),%edx
50a1f2:	ff 02                	incl   (%edx)
50a1f4:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
50a1f8:	75 52                	jne    0x50a24c
50a1fa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50a1fd:	8b 01                	mov    (%ecx),%eax
50a1ff:	3b 45 08             	cmp    0x8(%ebp),%eax
50a202:	73 48                	jae    0x50a24c
50a204:	8b 45 10             	mov    0x10(%ebp),%eax
50a207:	8b 73 3c             	mov    0x3c(%ebx),%esi
50a20a:	8b d0                	mov    %eax,%edx
50a20c:	33 ff                	xor    %edi,%edi
50a20e:	89 55 ec             	mov    %edx,-0x14(%ebp)
50a211:	eb 2a                	jmp    0x50a23d
50a213:	8b 46 0c             	mov    0xc(%esi),%eax
50a216:	8b d0                	mov    %eax,%edx
50a218:	0f af 55 08          	imul   0x8(%ebp),%edx
50a21c:	52                   	push   %edx
50a21d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50a220:	8b 09                	mov    (%ecx),%ecx
50a222:	0f af c8             	imul   %eax,%ecx
50a225:	8b 56 1c             	mov    0x1c(%esi),%edx
50a228:	c1 e2 03             	shl    $0x3,%edx
50a22b:	8b 45 ec             	mov    -0x14(%ebp),%eax
50a22e:	8b 00                	mov    (%eax),%eax
50a230:	e8 a3 fe ff ff       	call   0x50a0d8
50a235:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
50a239:	47                   	inc    %edi
50a23a:	83 c6 54             	add    $0x54,%esi
50a23d:	3b 7b 34             	cmp    0x34(%ebx),%edi
50a240:	7c d1                	jl     0x50a213
50a242:	8b 55 0c             	mov    0xc(%ebp),%edx
50a245:	8b 4d 08             	mov    0x8(%ebp),%ecx
50a248:	89 0a                	mov    %ecx,(%edx)
50a24a:	eb 18                	jmp    0x50a264
50a24c:	8b 45 f8             	mov    -0x8(%ebp),%eax
50a24f:	8b 00                	mov    (%eax),%eax
50a251:	3b 45 14             	cmp    0x14(%ebp),%eax
50a254:	73 0e                	jae    0x50a264
50a256:	8b 55 0c             	mov    0xc(%ebp),%edx
50a259:	8b 0a                	mov    (%edx),%ecx
50a25b:	3b 4d 08             	cmp    0x8(%ebp),%ecx
50a25e:	0f 82 c8 fe ff ff    	jb     0x50a12c
50a264:	5f                   	pop    %edi
50a265:	5e                   	pop    %esi
50a266:	5b                   	pop    %ebx
50a267:	8b e5                	mov    %ebp,%esp
50a269:	5d                   	pop    %ebp
50a26a:	c2 10 00             	ret    $0x10
50a26d:	90                   	nop
50a26e:	90                   	nop
50a26f:	90                   	nop
50a270:	55                   	push   %ebp
50a271:	8b ec                	mov    %esp,%ebp
50a273:	83 c4 e4             	add    $0xffffffe4,%esp
50a276:	53                   	push   %ebx
50a277:	56                   	push   %esi
50a278:	57                   	push   %edi
50a279:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50a27c:	89 55 f8             	mov    %edx,-0x8(%ebp)
50a27f:	89 45 fc             	mov    %eax,-0x4(%ebp)
50a282:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a285:	8b 98 4c 01 00 00    	mov    0x14c(%eax),%ebx
50a28b:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a28e:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
50a294:	8d 14 52             	lea    (%edx,%edx,2),%edx
50a297:	89 55 e8             	mov    %edx,-0x18(%ebp)
50a29a:	e9 62 01 00 00       	jmp    0x50a401
50a29f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a2a2:	8b 01                	mov    (%ecx),%eax
50a2a4:	3b 45 14             	cmp    0x14(%ebp),%eax
50a2a7:	0f 83 af 00 00 00    	jae    0x50a35c
50a2ad:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
50a2b0:	8b 55 14             	mov    0x14(%ebp),%edx
50a2b3:	2b 4b 34             	sub    0x34(%ebx),%ecx
50a2b6:	2b d0                	sub    %eax,%edx
50a2b8:	8b c2                	mov    %edx,%eax
50a2ba:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50a2bd:	3b 45 f0             	cmp    -0x10(%ebp),%eax
50a2c0:	76 05                	jbe    0x50a2c7
50a2c2:	8b 55 f0             	mov    -0x10(%ebp),%edx
50a2c5:	eb 02                	jmp    0x50a2c9
50a2c7:	8b d0                	mov    %eax,%edx
50a2c9:	89 55 f0             	mov    %edx,-0x10(%ebp)
50a2cc:	8b 43 34             	mov    0x34(%ebx),%eax
50a2cf:	50                   	push   %eax
50a2d0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50a2d3:	51                   	push   %ecx
50a2d4:	8d 4b 08             	lea    0x8(%ebx),%ecx
50a2d7:	8b 45 f4             	mov    -0xc(%ebp),%eax
50a2da:	8b 10                	mov    (%eax),%edx
50a2dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a2df:	c1 e2 02             	shl    $0x2,%edx
50a2e2:	03 55 f8             	add    -0x8(%ebp),%edx
50a2e5:	8b b0 58 01 00 00    	mov    0x158(%eax),%esi
50a2eb:	ff 56 04             	call   *0x4(%esi)
50a2ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a2f1:	8b 50 1c             	mov    0x1c(%eax),%edx
50a2f4:	3b 53 30             	cmp    0x30(%ebx),%edx
50a2f7:	75 50                	jne    0x50a349
50a2f9:	33 c9                	xor    %ecx,%ecx
50a2fb:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50a2fe:	8d 43 08             	lea    0x8(%ebx),%eax
50a301:	89 45 e4             	mov    %eax,-0x1c(%ebp)
50a304:	eb 38                	jmp    0x50a33e
50a306:	bf 01 00 00 00       	mov    $0x1,%edi
50a30b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50a30e:	8b f0                	mov    %eax,%esi
50a310:	eb 1a                	jmp    0x50a32c
50a312:	8b d7                	mov    %edi,%edx
50a314:	f7 da                	neg    %edx
50a316:	52                   	push   %edx
50a317:	6a 01                	push   $0x1
50a319:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a31c:	8b 51 18             	mov    0x18(%ecx),%edx
50a31f:	52                   	push   %edx
50a320:	33 d2                	xor    %edx,%edx
50a322:	8b 06                	mov    (%esi),%eax
50a324:	8b c8                	mov    %eax,%ecx
50a326:	e8 69 d8 ff ff       	call   0x507b94
50a32b:	47                   	inc    %edi
50a32c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a32f:	3b b9 e4 00 00 00    	cmp    0xe4(%ecx),%edi
50a335:	7e db                	jle    0x50a312
50a337:	ff 45 ec             	incl   -0x14(%ebp)
50a33a:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
50a33e:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a341:	8b 50 34             	mov    0x34(%eax),%edx
50a344:	3b 55 ec             	cmp    -0x14(%ebp),%edx
50a347:	7f bd                	jg     0x50a306
50a349:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a34c:	8b 45 f0             	mov    -0x10(%ebp),%eax
50a34f:	01 01                	add    %eax,(%ecx)
50a351:	8b 55 f0             	mov    -0x10(%ebp),%edx
50a354:	01 53 34             	add    %edx,0x34(%ebx)
50a357:	29 43 30             	sub    %eax,0x30(%ebx)
50a35a:	eb 47                	jmp    0x50a3a3
50a35c:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
50a360:	0f 85 a9 00 00 00    	jne    0x50a40f
50a366:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a369:	3b 4b 3c             	cmp    0x3c(%ebx),%ecx
50a36c:	7d 35                	jge    0x50a3a3
50a36e:	33 c0                	xor    %eax,%eax
50a370:	8d 73 08             	lea    0x8(%ebx),%esi
50a373:	89 45 ec             	mov    %eax,-0x14(%ebp)
50a376:	eb 1a                	jmp    0x50a392
50a378:	8b 43 3c             	mov    0x3c(%ebx),%eax
50a37b:	50                   	push   %eax
50a37c:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a37f:	8b 52 18             	mov    0x18(%edx),%edx
50a382:	8b 06                	mov    (%esi),%eax
50a384:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a387:	e8 4c fd ff ff       	call   0x50a0d8
50a38c:	ff 45 ec             	incl   -0x14(%ebp)
50a38f:	83 c6 04             	add    $0x4,%esi
50a392:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a395:	8b 50 34             	mov    0x34(%eax),%edx
50a398:	3b 55 ec             	cmp    -0x14(%ebp),%edx
50a39b:	7f db                	jg     0x50a378
50a39d:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
50a3a0:	89 4b 34             	mov    %ecx,0x34(%ebx)
50a3a3:	8b 43 34             	mov    0x34(%ebx),%eax
50a3a6:	3b 43 3c             	cmp    0x3c(%ebx),%eax
50a3a9:	75 56                	jne    0x50a401
50a3ab:	8b 55 10             	mov    0x10(%ebp),%edx
50a3ae:	52                   	push   %edx
50a3af:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50a3b2:	8b 01                	mov    (%ecx),%eax
50a3b4:	50                   	push   %eax
50a3b5:	8d 53 08             	lea    0x8(%ebx),%edx
50a3b8:	8b 4b 38             	mov    0x38(%ebx),%ecx
50a3bb:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a3be:	8b b0 5c 01 00 00    	mov    0x15c(%eax),%esi
50a3c4:	ff 56 04             	call   *0x4(%esi)
50a3c7:	8b 45 0c             	mov    0xc(%ebp),%eax
50a3ca:	ff 00                	incl   (%eax)
50a3cc:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a3cf:	8b 8a e4 00 00 00    	mov    0xe4(%edx),%ecx
50a3d5:	01 4b 38             	add    %ecx,0x38(%ebx)
50a3d8:	8b 43 38             	mov    0x38(%ebx),%eax
50a3db:	3b 45 e8             	cmp    -0x18(%ebp),%eax
50a3de:	7c 05                	jl     0x50a3e5
50a3e0:	33 d2                	xor    %edx,%edx
50a3e2:	89 53 38             	mov    %edx,0x38(%ebx)
50a3e5:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a3e8:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
50a3eb:	7c 05                	jl     0x50a3f2
50a3ed:	33 c0                	xor    %eax,%eax
50a3ef:	89 43 34             	mov    %eax,0x34(%ebx)
50a3f2:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a3f5:	8b 8a e4 00 00 00    	mov    0xe4(%edx),%ecx
50a3fb:	03 4b 34             	add    0x34(%ebx),%ecx
50a3fe:	89 4b 3c             	mov    %ecx,0x3c(%ebx)
50a401:	8b 45 0c             	mov    0xc(%ebp),%eax
50a404:	8b 10                	mov    (%eax),%edx
50a406:	3b 55 08             	cmp    0x8(%ebp),%edx
50a409:	0f 82 90 fe ff ff    	jb     0x50a29f
50a40f:	5f                   	pop    %edi
50a410:	5e                   	pop    %esi
50a411:	5b                   	pop    %ebx
50a412:	8b e5                	mov    %ebp,%esp
50a414:	5d                   	pop    %ebp
50a415:	c2 10 00             	ret    $0x10
50a418:	53                   	push   %ebx
50a419:	56                   	push   %esi
50a41a:	57                   	push   %edi
50a41b:	55                   	push   %ebp
50a41c:	83 c4 ec             	add    $0xffffffec,%esp
50a41f:	89 04 24             	mov    %eax,(%esp)
50a422:	8b 04 24             	mov    (%esp),%eax
50a425:	8b b0 4c 01 00 00    	mov    0x14c(%eax),%esi
50a42b:	8b 04 24             	mov    (%esp),%eax
50a42e:	8b 98 e4 00 00 00    	mov    0xe4(%eax),%ebx
50a434:	8b 04 24             	mov    (%esp),%eax
50a437:	8b 50 34             	mov    0x34(%eax),%edx
50a43a:	8b 04 24             	mov    (%esp),%eax
50a43d:	0f af d3             	imul   %ebx,%edx
50a440:	8b 78 04             	mov    0x4(%eax),%edi
50a443:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a446:	c1 e1 02             	shl    $0x2,%ecx
50a449:	ba 01 00 00 00       	mov    $0x1,%edx
50a44e:	ff 17                	call   *(%edi)
50a450:	89 44 24 0c          	mov    %eax,0xc(%esp)
50a454:	33 c0                	xor    %eax,%eax
50a456:	89 44 24 04          	mov    %eax,0x4(%esp)
50a45a:	8b 14 24             	mov    (%esp),%edx
50a45d:	8b 4a 3c             	mov    0x3c(%edx),%ecx
50a460:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50a464:	8d 46 08             	lea    0x8(%esi),%eax
50a467:	89 44 24 10          	mov    %eax,0x10(%esp)
50a46b:	e9 a7 00 00 00       	jmp    0x50a517
50a470:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
50a473:	52                   	push   %edx
50a474:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50a478:	8b 54 24 04          	mov    0x4(%esp),%edx
50a47c:	8b 41 1c             	mov    0x1c(%ecx),%eax
50a47f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50a483:	c1 e0 03             	shl    $0x3,%eax
50a486:	f7 aa e0 00 00 00    	imull  0xe0(%edx)
50a48c:	99                   	cltd
50a48d:	f7 79 08             	idivl  0x8(%ecx)
50a490:	8b c8                	mov    %eax,%ecx
50a492:	8b 44 24 04          	mov    0x4(%esp),%eax