504098:	99                   	cltd
504099:	f7 f9                	idiv   %ecx
50409b:	85 db                	test   %ebx,%ebx
50409d:	7e 17                	jle    0x5040b6
50409f:	8b cb                	mov    %ebx,%ecx
5040a1:	ba 01 00 00 00       	mov    $0x1,%edx
5040a6:	d3 e2                	shl    %cl,%edx
5040a8:	3b c2                	cmp    %edx,%eax
5040aa:	7c 0a                	jl     0x5040b6
5040ac:	8b cb                	mov    %ebx,%ecx
5040ae:	b8 01 00 00 00       	mov    $0x1,%eax
5040b3:	d3 e0                	shl    %cl,%eax
5040b5:	48                   	dec    %eax
5040b6:	f7 d8                	neg    %eax
5040b8:	66 89 84 24 9a 00 00 	mov    %ax,0x9a(%esp)
5040bf:	00
5040c0:	8b 54 24 50          	mov    0x50(%esp),%edx
5040c4:	8b 5a 08             	mov    0x8(%edx),%ebx
5040c7:	85 db                	test   %ebx,%ebx
5040c9:	0f 84 96 00 00 00    	je     0x504165
5040cf:	66 83 bc 24 a8 00 00 	cmpw   $0x0,0xa8(%esp)
5040d6:	00 00
5040d8:	0f 85 87 00 00 00    	jne    0x504165
5040de:	8b 44 24 74          	mov    0x74(%esp),%eax
5040e2:	2b 84 24 88 00 00 00 	sub    0x88(%esp),%eax
5040e9:	f7 6c 24 58          	imull  0x58(%esp)
5040ed:	8b c8                	mov    %eax,%ecx
5040ef:	c1 e1 02             	shl    $0x2,%ecx
5040f2:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
5040f5:	85 c9                	test   %ecx,%ecx
5040f7:	7c 32                	jl     0x50412b
5040f9:	8b 44 24 64          	mov    0x64(%esp),%eax
5040fd:	8b 54 24 64          	mov    0x64(%esp),%edx
504101:	c1 e0 07             	shl    $0x7,%eax
504104:	c1 e2 08             	shl    $0x8,%edx
504107:	03 c1                	add    %ecx,%eax
504109:	8b ca                	mov    %edx,%ecx
50410b:	99                   	cltd
50410c:	f7 f9                	idiv   %ecx
50410e:	85 db                	test   %ebx,%ebx
504110:	7e 4b                	jle    0x50415d
504112:	8b cb                	mov    %ebx,%ecx
504114:	ba 01 00 00 00       	mov    $0x1,%edx
504119:	d3 e2                	shl    %cl,%edx
50411b:	3b c2                	cmp    %edx,%eax
50411d:	7c 3e                	jl     0x50415d
50411f:	8b cb                	mov    %ebx,%ecx
504121:	b8 01 00 00 00       	mov    $0x1,%eax
504126:	d3 e0                	shl    %cl,%eax
504128:	48                   	dec    %eax
504129:	eb 32                	jmp    0x50415d
50412b:	8b 44 24 64          	mov    0x64(%esp),%eax
50412f:	8b 54 24 64          	mov    0x64(%esp),%edx
504133:	c1 e0 07             	shl    $0x7,%eax
504136:	c1 e2 08             	shl    $0x8,%edx
504139:	2b c1                	sub    %ecx,%eax
50413b:	8b ca                	mov    %edx,%ecx
50413d:	99                   	cltd
50413e:	f7 f9                	idiv   %ecx
504140:	85 db                	test   %ebx,%ebx
504142:	7e 17                	jle    0x50415b
504144:	8b cb                	mov    %ebx,%ecx
504146:	ba 01 00 00 00       	mov    $0x1,%edx
50414b:	d3 e2                	shl    %cl,%edx
50414d:	3b c2                	cmp    %edx,%eax
50414f:	7c 0a                	jl     0x50415b
504151:	8b cb                	mov    %ebx,%ecx
504153:	b8 01 00 00 00       	mov    $0x1,%eax
504158:	d3 e0                	shl    %cl,%eax
50415a:	48                   	dec    %eax
50415b:	f7 d8                	neg    %eax
50415d:	66 89 84 24 a8 00 00 	mov    %ax,0xa8(%esp)
504164:	00
504165:	8b 54 24 50          	mov    0x50(%esp),%edx
504169:	8b 5a 0c             	mov    0xc(%edx),%ebx
50416c:	85 db                	test   %ebx,%ebx
50416e:	0f 84 99 00 00 00    	je     0x50420d
504174:	66 83 bc 24 b8 00 00 	cmpw   $0x0,0xb8(%esp)
50417b:	00 00
50417d:	0f 85 8a 00 00 00    	jne    0x50420d
504183:	8b 44 24 74          	mov    0x74(%esp),%eax
504187:	8b 54 24 7c          	mov    0x7c(%esp),%edx
50418b:	03 84 24 88 00 00 00 	add    0x88(%esp),%eax
504192:	03 d2                	add    %edx,%edx
504194:	2b c2                	sub    %edx,%eax
504196:	f7 6c 24 58          	imull  0x58(%esp)
50419a:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
50419d:	85 c9                	test   %ecx,%ecx
50419f:	7c 32                	jl     0x5041d3
5041a1:	8b 44 24 6c          	mov    0x6c(%esp),%eax
5041a5:	8b 54 24 6c          	mov    0x6c(%esp),%edx
5041a9:	c1 e0 07             	shl    $0x7,%eax
5041ac:	c1 e2 08             	shl    $0x8,%edx
5041af:	03 c1                	add    %ecx,%eax
5041b1:	8b ca                	mov    %edx,%ecx
5041b3:	99                   	cltd
5041b4:	f7 f9                	idiv   %ecx
5041b6:	85 db                	test   %ebx,%ebx
5041b8:	7e 4b                	jle    0x504205
5041ba:	8b cb                	mov    %ebx,%ecx
5041bc:	ba 01 00 00 00       	mov    $0x1,%edx
5041c1:	d3 e2                	shl    %cl,%edx
5041c3:	3b c2                	cmp    %edx,%eax
5041c5:	7c 3e                	jl     0x504205
5041c7:	8b cb                	mov    %ebx,%ecx
5041c9:	b8 01 00 00 00       	mov    $0x1,%eax
5041ce:	d3 e0                	shl    %cl,%eax
5041d0:	48                   	dec    %eax
5041d1:	eb 32                	jmp    0x504205
5041d3:	8b 44 24 6c          	mov    0x6c(%esp),%eax
5041d7:	8b 54 24 6c          	mov    0x6c(%esp),%edx
5041db:	c1 e0 07             	shl    $0x7,%eax
5041de:	c1 e2 08             	shl    $0x8,%edx
5041e1:	2b c1                	sub    %ecx,%eax
5041e3:	8b ca                	mov    %edx,%ecx
5041e5:	99                   	cltd
5041e6:	f7 f9                	idiv   %ecx
5041e8:	85 db                	test   %ebx,%ebx
5041ea:	7e 17                	jle    0x504203
5041ec:	8b cb                	mov    %ebx,%ecx
5041ee:	ba 01 00 00 00       	mov    $0x1,%edx
5041f3:	d3 e2                	shl    %cl,%edx
5041f5:	3b c2                	cmp    %edx,%eax
5041f7:	7c 0a                	jl     0x504203
5041f9:	8b cb                	mov    %ebx,%ecx
5041fb:	b8 01 00 00 00       	mov    $0x1,%eax
504200:	d3 e0                	shl    %cl,%eax
504202:	48                   	dec    %eax
504203:	f7 d8                	neg    %eax
504205:	66 89 84 24 b8 00 00 	mov    %ax,0xb8(%esp)
50420c:	00
50420d:	8b 54 24 50          	mov    0x50(%esp),%edx
504211:	8b 5a 10             	mov    0x10(%edx),%ebx
504214:	85 db                	test   %ebx,%ebx
504216:	0f 84 9c 00 00 00    	je     0x5042b8
50421c:	66 83 bc 24 aa 00 00 	cmpw   $0x0,0xaa(%esp)
504223:	00 00
504225:	0f 85 8d 00 00 00    	jne    0x5042b8
50422b:	8b 44 24 70          	mov    0x70(%esp),%eax
50422f:	2b 44 24 78          	sub    0x78(%esp),%eax
504233:	2b 84 24 84 00 00 00 	sub    0x84(%esp),%eax
50423a:	03 84 24 8c 00 00 00 	add    0x8c(%esp),%eax
504241:	f7 6c 24 58          	imull  0x58(%esp)
504245:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
504248:	85 c9                	test   %ecx,%ecx
50424a:	7c 32                	jl     0x50427e
50424c:	8b 44 24 68          	mov    0x68(%esp),%eax
504250:	8b 54 24 68          	mov    0x68(%esp),%edx
504254:	c1 e0 07             	shl    $0x7,%eax
504257:	c1 e2 08             	shl    $0x8,%edx
50425a:	03 c1                	add    %ecx,%eax
50425c:	8b ca                	mov    %edx,%ecx
50425e:	99                   	cltd
50425f:	f7 f9                	idiv   %ecx
504261:	85 db                	test   %ebx,%ebx
504263:	7e 4b                	jle    0x5042b0
504265:	8b cb                	mov    %ebx,%ecx
504267:	ba 01 00 00 00       	mov    $0x1,%edx
50426c:	d3 e2                	shl    %cl,%edx
50426e:	3b c2                	cmp    %edx,%eax
504270:	7c 3e                	jl     0x5042b0
504272:	8b cb                	mov    %ebx,%ecx
504274:	b8 01 00 00 00       	mov    $0x1,%eax
504279:	d3 e0                	shl    %cl,%eax
50427b:	48                   	dec    %eax
50427c:	eb 32                	jmp    0x5042b0
50427e:	8b 44 24 68          	mov    0x68(%esp),%eax
504282:	8b 54 24 68          	mov    0x68(%esp),%edx
504286:	c1 e0 07             	shl    $0x7,%eax
504289:	c1 e2 08             	shl    $0x8,%edx
50428c:	2b c1                	sub    %ecx,%eax
50428e:	8b ca                	mov    %edx,%ecx
504290:	99                   	cltd
504291:	f7 f9                	idiv   %ecx
504293:	85 db                	test   %ebx,%ebx
504295:	7e 17                	jle    0x5042ae
504297:	8b cb                	mov    %ebx,%ecx
504299:	ba 01 00 00 00       	mov    $0x1,%edx
50429e:	d3 e2                	shl    %cl,%edx
5042a0:	3b c2                	cmp    %edx,%eax
5042a2:	7c 0a                	jl     0x5042ae
5042a4:	8b cb                	mov    %ebx,%ecx
5042a6:	b8 01 00 00 00       	mov    $0x1,%eax
5042ab:	d3 e0                	shl    %cl,%eax
5042ad:	48                   	dec    %eax
5042ae:	f7 d8                	neg    %eax
5042b0:	66 89 84 24 aa 00 00 	mov    %ax,0xaa(%esp)
5042b7:	00
5042b8:	8b 54 24 50          	mov    0x50(%esp),%edx
5042bc:	8b 5a 14             	mov    0x14(%edx),%ebx
5042bf:	85 db                	test   %ebx,%ebx
5042c1:	0f 84 96 00 00 00    	je     0x50435d
5042c7:	66 83 bc 24 9c 00 00 	cmpw   $0x0,0x9c(%esp)
5042ce:	00 00
5042d0:	0f 85 87 00 00 00    	jne    0x50435d
5042d6:	03 b4 24 80 00 00 00 	add    0x80(%esp),%esi
5042dd:	8b 44 24 7c          	mov    0x7c(%esp),%eax
5042e1:	03 c0                	add    %eax,%eax
5042e3:	2b f0                	sub    %eax,%esi
5042e5:	0f af 74 24 58       	imul   0x58(%esp),%esi
5042ea:	8d 0c f6             	lea    (%esi,%esi,8),%ecx
5042ed:	85 c9                	test   %ecx,%ecx
5042ef:	7c 32                	jl     0x504323
5042f1:	8b 44 24 60          	mov    0x60(%esp),%eax
5042f5:	8b 54 24 60          	mov    0x60(%esp),%edx
5042f9:	c1 e0 07             	shl    $0x7,%eax
5042fc:	c1 e2 08             	shl    $0x8,%edx
5042ff:	03 c1                	add    %ecx,%eax
504301:	8b ca                	mov    %edx,%ecx
504303:	99                   	cltd
504304:	f7 f9                	idiv   %ecx
504306:	85 db                	test   %ebx,%ebx
504308:	7e 4b                	jle    0x504355
50430a:	8b cb                	mov    %ebx,%ecx
50430c:	ba 01 00 00 00       	mov    $0x1,%edx
504311:	d3 e2                	shl    %cl,%edx
504313:	3b c2                	cmp    %edx,%eax
504315:	7c 3e                	jl     0x504355
504317:	8b cb                	mov    %ebx,%ecx
504319:	b8 01 00 00 00       	mov    $0x1,%eax
50431e:	d3 e0                	shl    %cl,%eax
504320:	48                   	dec    %eax
504321:	eb 32                	jmp    0x504355
504323:	8b 44 24 60          	mov    0x60(%esp),%eax
504327:	8b 54 24 60          	mov    0x60(%esp),%edx
50432b:	c1 e0 07             	shl    $0x7,%eax
50432e:	c1 e2 08             	shl    $0x8,%edx
504331:	2b c1                	sub    %ecx,%eax
504333:	8b ca                	mov    %edx,%ecx
504335:	99                   	cltd
504336:	f7 f9                	idiv   %ecx
504338:	85 db                	test   %ebx,%ebx
50433a:	7e 17                	jle    0x504353
50433c:	8b cb                	mov    %ebx,%ecx
50433e:	ba 01 00 00 00       	mov    $0x1,%edx
504343:	d3 e2                	shl    %cl,%edx
504345:	3b c2                	cmp    %edx,%eax
504347:	7c 0a                	jl     0x504353
504349:	8b cb                	mov    %ebx,%ecx
50434b:	b8 01 00 00 00       	mov    $0x1,%eax
504350:	d3 e0                	shl    %cl,%eax
504352:	48                   	dec    %eax
504353:	f7 d8                	neg    %eax
504355:	66 89 84 24 9c 00 00 	mov    %ax,0x9c(%esp)
50435c:	00
50435d:	8b 54 24 38          	mov    0x38(%esp),%edx
504361:	52                   	push   %edx
504362:	8b 44 24 40          	mov    0x40(%esp),%eax
504366:	50                   	push   %eax
504367:	8d 8c 24 a0 00 00 00 	lea    0xa0(%esp),%ecx
50436e:	8b 54 24 48          	mov    0x48(%esp),%edx
504372:	8b 44 24 08          	mov    0x8(%esp),%eax
504376:	ff 54 24 4c          	call   *0x4c(%esp)
50437a:	8b 54 24 74          	mov    0x74(%esp),%edx
50437e:	89 54 24 70          	mov    %edx,0x70(%esp)
504382:	8b 4c 24 78          	mov    0x78(%esp),%ecx
504386:	89 4c 24 74          	mov    %ecx,0x74(%esp)
50438a:	8b 74 24 7c          	mov    0x7c(%esp),%esi
50438e:	8b 84 24 80 00 00 00 	mov    0x80(%esp),%eax
504395:	89 44 24 7c          	mov    %eax,0x7c(%esp)
504399:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
5043a0:	89 94 24 84 00 00 00 	mov    %edx,0x84(%esp)
5043a7:	8b 8c 24 8c 00 00 00 	mov    0x8c(%esp),%ecx
5043ae:	89 8c 24 88 00 00 00 	mov    %ecx,0x88(%esp)
5043b5:	81 44 24 2c 80 00 00 	addl   $0x80,0x2c(%esp)
5043bc:	00
5043bd:	81 44 24 30 80 00 00 	addl   $0x80,0x30(%esp)
5043c4:	00
5043c5:	81 44 24 34 80 00 00 	addl   $0x80,0x34(%esp)
5043cc:	00
5043cd:	8b 44 24 40          	mov    0x40(%esp),%eax
5043d1:	8b 50 24             	mov    0x24(%eax),%edx
5043d4:	01 54 24 3c          	add    %edx,0x3c(%esp)
5043d8:	ff 44 24 10          	incl   0x10(%esp)
5043dc:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5043e0:	3b 4c 24 14          	cmp    0x14(%esp),%ecx
5043e4:	0f 86 e2 fb ff ff    	jbe    0x503fcc
5043ea:	8b 44 24 40          	mov    0x40(%esp),%eax
5043ee:	8b 50 24             	mov    0x24(%eax),%edx
5043f1:	c1 e2 02             	shl    $0x2,%edx
5043f4:	01 54 24 38          	add    %edx,0x38(%esp)
5043f8:	ff 44 24 1c          	incl   0x1c(%esp)
5043fc:	83 84 24 94 00 00 00 	addl   $0x4,0x94(%esp)
504403:	04
504404:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
504408:	3b 4c 24 20          	cmp    0x20(%esp),%ecx
50440c:	0f 8c f4 fa ff ff    	jl     0x503f06
504412:	ff 44 24 18          	incl   0x18(%esp)
504416:	83 44 24 40 54       	addl   $0x54,0x40(%esp)
50441b:	8b 04 24             	mov    (%esp),%eax
50441e:	8b 50 20             	mov    0x20(%eax),%edx
504421:	3b 54 24 18          	cmp    0x18(%esp),%edx
504425:	0f 8f 2f f9 ff ff    	jg     0x503d5a
50442b:	8b 0c 24             	mov    (%esp),%ecx
50442e:	ff 81 98 00 00 00    	incl   0x98(%ecx)
504434:	8b 81 98 00 00 00    	mov    0x98(%ecx),%eax
50443a:	8b 14 24             	mov    (%esp),%edx
50443d:	3b 82 38 01 00 00    	cmp    0x138(%edx),%eax
504443:	73 07                	jae    0x50444c
504445:	b8 03 00 00 00       	mov    $0x3,%eax
50444a:	eb 05                	jmp    0x504451
50444c:	b8 04 00 00 00       	mov    $0x4,%eax
504451:	81 c4 18 01 00 00    	add    $0x118,%esp
504457:	5e                   	pop    %esi
504458:	5b                   	pop    %ebx
504459:	c3                   	ret
50445a:	90                   	nop
50445b:	90                   	nop
50445c:	53                   	push   %ebx
50445d:	56                   	push   %esi
50445e:	57                   	push   %edi
50445f:	8b f8                	mov    %eax,%edi
504461:	8b c7                	mov    %edi,%eax
504463:	55                   	push   %ebp
504464:	8b da                	mov    %edx,%ebx
504466:	ba 01 00 00 00       	mov    $0x1,%edx
50446b:	8b 70 04             	mov    0x4(%eax),%esi
50446e:	83 c4 f4             	add    $0xfffffff4,%esp
504471:	b9 74 00 00 00       	mov    $0x74,%ecx
504476:	ff 16                	call   *(%esi)
504478:	8b f0                	mov    %eax,%esi
50447a:	33 c0                	xor    %eax,%eax
50447c:	89 b7 a4 01 00 00    	mov    %esi,0x1a4(%edi)
504482:	85 db                	test   %ebx,%ebx
504484:	c7 06 1c 35 50 00    	movl   $0x50351c,(%esi)
50448a:	c7 46 08 2c 35 50 00 	movl   $0x50352c,0x8(%esi)
504491:	89 46 70             	mov    %eax,0x70(%esi)
504494:	0f 84 8d 00 00 00    	je     0x504527
50449a:	33 d2                	xor    %edx,%edx
50449c:	89 14 24             	mov    %edx,(%esp)
50449f:	8b 9f d4 00 00 00    	mov    0xd4(%edi),%ebx
5044a5:	8d 46 48             	lea    0x48(%esi),%eax
5044a8:	89 44 24 08          	mov    %eax,0x8(%esp)
5044ac:	eb 5b                	jmp    0x504509
5044ae:	8b 53 0c             	mov    0xc(%ebx),%edx
5044b1:	89 54 24 04          	mov    %edx,0x4(%esp)
5044b5:	83 bf d8 00 00 00 00 	cmpl   $0x0,0xd8(%edi)
5044bc:	74 0b                	je     0x5044c9
5044be:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5044c2:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
5044c5:	89 4c 24 04          	mov    %ecx,0x4(%esp)
5044c9:	8b 53 08             	mov    0x8(%ebx),%edx
5044cc:	8b 43 1c             	mov    0x1c(%ebx),%eax
5044cf:	e8 a8 36 00 00       	call   0x507b7c
5044d4:	50                   	push   %eax
5044d5:	8b 53 0c             	mov    0xc(%ebx),%edx
5044d8:	8b 43 20             	mov    0x20(%ebx),%eax
5044db:	e8 9c 36 00 00       	call   0x507b7c
5044e0:	50                   	push   %eax
5044e1:	8b c7                	mov    %edi,%eax