4090f4:	89 55 10             	mov    %edx,0x10(%ebp)
4090f7:	85 ff                	test   %edi,%edi
4090f9:	7e 4c                	jle    0x409147
4090fb:	b8 10 01 00 00       	mov    $0x110,%eax
409100:	89 45 08             	mov    %eax,0x8(%ebp)
409103:	05 fc fe ff ff       	add    $0xfffffefc,%eax
409108:	03 c1                	add    %ecx,%eax
40910a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40910d:	81 38 ea 03 00 00    	cmpl   $0x3ea,(%eax)
409113:	75 7b                	jne    0x409190
409115:	b8 41 dd b3 20       	mov    $0x20b3dd41,%eax
40911a:	f7 eb                	imul   %ebx
40911c:	c1 fa 07             	sar    $0x7,%edx
40911f:	8b da                	mov    %edx,%ebx
409121:	c1 eb 1f             	shr    $0x1f,%ebx
409124:	03 da                	add    %edx,%ebx
409126:	8b 45 08             	mov    0x8(%ebp),%eax
409129:	8b 55 10             	mov    0x10(%ebp),%edx
40912c:	8b 04 08             	mov    (%eax,%ecx,1),%eax
40912f:	0f af c3             	imul   %ebx,%eax
409132:	03 d0                	add    %eax,%edx
409134:	8b 45 08             	mov    0x8(%ebp),%eax
409137:	83 c0 04             	add    $0x4,%eax
40913a:	89 55 10             	mov    %edx,0x10(%ebp)
40913d:	89 45 08             	mov    %eax,0x8(%ebp)
409140:	4f                   	dec    %edi
409141:	75 c0                	jne    0x409103
409143:	85 d2                	test   %edx,%edx
409145:	78 63                	js     0x4091aa
409147:	8b 41 04             	mov    0x4(%ecx),%eax
40914a:	8d 1c 95 00 00 00 00 	lea    0x0(,%edx,4),%ebx
409151:	8b 0c 03             	mov    (%ebx,%eax,1),%ecx
409154:	85 c9                	test   %ecx,%ecx
409156:	75 48                	jne    0x4091a0
409158:	6a 10                	push   $0x10
40915a:	e8 97 7e 01 00       	call   0x420ff6
40915f:	8b f8                	mov    %eax,%edi
409161:	83 c4 04             	add    $0x4,%esp
409164:	85 ff                	test   %edi,%edi
409166:	74 34                	je     0x40919c
409168:	ff 75 0c             	push   0xc(%ebp)
40916b:	8b cf                	mov    %edi,%ecx
40916d:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
409174:	e8 47 09 00 00       	call   0x409ac0
409179:	8b 06                	mov    (%esi),%eax
40917b:	8b 40 04             	mov    0x4(%eax),%eax
40917e:	89 3c 03             	mov    %edi,(%ebx,%eax,1)
409181:	8b 0e                	mov    (%esi),%ecx
409183:	8b 41 04             	mov    0x4(%ecx),%eax
409186:	8b 04 03             	mov    (%ebx,%eax,1),%eax
409189:	5f                   	pop    %edi
40918a:	5e                   	pop    %esi
40918b:	5b                   	pop    %ebx
40918c:	8b e5                	mov    %ebp,%esp
40918e:	5d                   	pop    %ebp
40918f:	c3                   	ret
409190:	8b c3                	mov    %ebx,%eax
409192:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409195:	99                   	cltd
409196:	f7 3b                	idivl  (%ebx)
409198:	8b d8                	mov    %eax,%ebx
40919a:	eb 8a                	jmp    0x409126
40919c:	33 ff                	xor    %edi,%edi
40919e:	eb d9                	jmp    0x409179
4091a0:	ff 75 0c             	push   0xc(%ebp)
4091a3:	e8 f4 0c 00 00       	call   0x409e9c
4091a8:	eb d7                	jmp    0x409181
4091aa:	33 c0                	xor    %eax,%eax
4091ac:	eb db                	jmp    0x409189
4091ae:	cc                   	int3
4091af:	cc                   	int3
4091b0:	55                   	push   %ebp
4091b1:	8b ec                	mov    %esp,%ebp
4091b3:	56                   	push   %esi
4091b4:	8b 75 08             	mov    0x8(%ebp),%esi
4091b7:	8b ce                	mov    %esi,%ecx
4091b9:	57                   	push   %edi
4091ba:	e8 01 01 00 00       	call   0x4092c0
4091bf:	8b 7d 0c             	mov    0xc(%ebp),%edi
4091c2:	85 ff                	test   %edi,%edi
4091c4:	74 23                	je     0x4091e9
4091c6:	8b 06                	mov    (%esi),%eax
4091c8:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
4091cf:	00 00 00
4091d2:	7e 15                	jle    0x4091e9
4091d4:	53                   	push   %ebx
4091d5:	8d 5d 0c             	lea    0xc(%ebp),%ebx
4091d8:	ff 73 04             	push   0x4(%ebx)
4091db:	8d 5b 04             	lea    0x4(%ebx),%ebx
4091de:	8b ce                	mov    %esi,%ecx
4091e0:	e8 a7 00 00 00       	call   0x40928c
4091e5:	4f                   	dec    %edi
4091e6:	75 f0                	jne    0x4091d8
4091e8:	5b                   	pop    %ebx
4091e9:	8b 0e                	mov    (%esi),%ecx
4091eb:	33 ff                	xor    %edi,%edi
4091ed:	8b 81 10 02 00 00    	mov    0x210(%ecx),%eax
4091f3:	89 81 0c 01 00 00    	mov    %eax,0x10c(%ecx)
4091f9:	8b 06                	mov    (%esi),%eax
4091fb:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
409202:	8b 06                	mov    (%esi),%eax
409204:	39 b8 0c 01 00 00    	cmp    %edi,0x10c(%eax)
40920a:	7e 34                	jle    0x409240
40920c:	8b c8                	mov    %eax,%ecx
40920e:	ba 0c 00 00 00       	mov    $0xc,%edx
409213:	8b 84 0a 04 01 00 00 	mov    0x104(%edx,%ecx,1),%eax
40921a:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
40921d:	8b 0e                	mov    (%esi),%ecx
40921f:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
409222:	0f af 41 08          	imul   0x8(%ecx),%eax
409226:	89 41 08             	mov    %eax,0x8(%ecx)
409229:	8b 0e                	mov    (%esi),%ecx
40922b:	81 79 08 00 00 00 01 	cmpl   $0x1000000,0x8(%ecx)
409232:	7f 54                	jg     0x409288
409234:	47                   	inc    %edi
409235:	83 c2 04             	add    $0x4,%edx
409238:	3b b9 0c 01 00 00    	cmp    0x10c(%ecx),%edi
40923e:	7c d3                	jl     0x409213
409240:	8b 06                	mov    (%esi),%eax
409242:	33 c9                	xor    %ecx,%ecx
409244:	ba 04 00 00 00       	mov    $0x4,%edx
409249:	8b 40 08             	mov    0x8(%eax),%eax
40924c:	f7 e2                	mul    %edx
40924e:	0f 90 c1             	seto   %cl
409251:	f7 d9                	neg    %ecx
409253:	0b c8                	or     %eax,%ecx
409255:	51                   	push   %ecx
409256:	e8 9b 7d 01 00       	call   0x420ff6
40925b:	8b 0e                	mov    (%esi),%ecx
40925d:	83 c4 04             	add    $0x4,%esp
409260:	89 41 04             	mov    %eax,0x4(%ecx)
409263:	33 c0                	xor    %eax,%eax
409265:	8b 0e                	mov    (%esi),%ecx
409267:	39 41 08             	cmp    %eax,0x8(%ecx)
40926a:	7e 16                	jle    0x409282
40926c:	8d 64 24 00          	lea    0x0(%esp),%esp
409270:	8b 49 04             	mov    0x4(%ecx),%ecx
409273:	c7 04 81 00 00 00 00 	movl   $0x0,(%ecx,%eax,4)
40927a:	40                   	inc    %eax
40927b:	8b 0e                	mov    (%esi),%ecx
40927d:	3b 41 08             	cmp    0x8(%ecx),%eax
409280:	7c ee                	jl     0x409270
409282:	b0 01                	mov    $0x1,%al
409284:	5f                   	pop    %edi
409285:	5e                   	pop    %esi
409286:	5d                   	pop    %ebp
409287:	c3                   	ret
409288:	32 c0                	xor    %al,%al
40928a:	eb f8                	jmp    0x409284
40928c:	55                   	push   %ebp
40928d:	8b ec                	mov    %esp,%ebp
40928f:	8b 11                	mov    (%ecx),%edx
409291:	56                   	push   %esi
409292:	8b b2 10 02 00 00    	mov    0x210(%edx),%esi
409298:	83 fe 40             	cmp    $0x40,%esi
40929b:	7d 19                	jge    0x4092b6
40929d:	8b 45 08             	mov    0x8(%ebp),%eax
4092a0:	89 84 b2 10 01 00 00 	mov    %eax,0x110(%edx,%esi,4)
4092a7:	8b 01                	mov    (%ecx),%eax
4092a9:	ff 80 10 02 00 00    	incl   0x210(%eax)
4092af:	b0 01                	mov    $0x1,%al
4092b1:	5e                   	pop    %esi
4092b2:	5d                   	pop    %ebp
4092b3:	c2 04 00             	ret    $0x4
4092b6:	32 c0                	xor    %al,%al
4092b8:	eb f7                	jmp    0x4092b1
4092ba:	cc                   	int3
4092bb:	cc                   	int3
4092bc:	cc                   	int3
4092bd:	cc                   	int3
4092be:	cc                   	int3
4092bf:	cc                   	int3
4092c0:	53                   	push   %ebx
4092c1:	56                   	push   %esi
4092c2:	8b d9                	mov    %ecx,%ebx
4092c4:	e8 b9 00 00 00       	call   0x409382
4092c9:	84 c0                	test   %al,%al
4092cb:	8b 03                	mov    (%ebx),%eax
4092cd:	0f 84 f5 62 03 00    	je     0x43f5c8
4092d3:	33 f6                	xor    %esi,%esi
4092d5:	39 70 08             	cmp    %esi,0x8(%eax)
4092d8:	7f 36                	jg     0x409310
4092da:	8b 03                	mov    (%ebx),%eax
4092dc:	ff 70 04             	push   0x4(%eax)
4092df:	e8 88 7d 01 00       	call   0x42106c
4092e4:	83 c4 04             	add    $0x4,%esp
4092e7:	8b 03                	mov    (%ebx),%eax
4092e9:	5e                   	pop    %esi
4092ea:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
4092f1:	8b 03                	mov    (%ebx),%eax
4092f3:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4092f9:	8b 03                	mov    (%ebx),%eax
4092fb:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
409302:	8b 03                	mov    (%ebx),%eax
409304:	5b                   	pop    %ebx
409305:	c7 80 0c 01 00 00 00 	movl   $0x0,0x10c(%eax)
40930c:	00 00 00
40930f:	c3                   	ret
409310:	57                   	push   %edi
409311:	8b 03                	mov    (%ebx),%eax
409313:	8b 40 04             	mov    0x4(%eax),%eax
409316:	8b 3c b0             	mov    (%eax,%esi,4),%edi
409319:	85 ff                	test   %edi,%edi
40931b:	75 0b                	jne    0x409328
40931d:	8b 03                	mov    (%ebx),%eax
40931f:	46                   	inc    %esi
409320:	3b 70 08             	cmp    0x8(%eax),%esi
409323:	7c ec                	jl     0x409311
409325:	5f                   	pop    %edi
409326:	eb b2                	jmp    0x4092da
409328:	8b cf                	mov    %edi,%ecx
40932a:	e8 c1 0a 00 00       	call   0x409df0
40932f:	57                   	push   %edi
409330:	e8 37 7d 01 00       	call   0x42106c
409335:	83 c4 04             	add    $0x4,%esp
409338:	eb e3                	jmp    0x40931d
40933a:	55                   	push   %ebp
40933b:	8b ec                	mov    %esp,%ebp
40933d:	56                   	push   %esi
40933e:	8b f1                	mov    %ecx,%esi
409340:	8b 4d 08             	mov    0x8(%ebp),%ecx
409343:	8b 01                	mov    (%ecx),%eax
409345:	81 38 ff ff ff 7f    	cmpl   $0x7fffffff,(%eax)
40934b:	0f 84 be 62 03 00    	je     0x43f60f
409351:	89 06                	mov    %eax,(%esi)
409353:	ff 00                	incl   (%eax)
409355:	8b c6                	mov    %esi,%eax
409357:	5e                   	pop    %esi
409358:	5d                   	pop    %ebp
409359:	c2 04 00             	ret    $0x4
40935c:	56                   	push   %esi
40935d:	68 14 02 00 00       	push   $0x214
409362:	8b f1                	mov    %ecx,%esi
409364:	e8 8d 7c 01 00       	call   0x420ff6
409369:	89 06                	mov    %eax,(%esi)
40936b:	59                   	pop    %ecx
40936c:	83 60 04 00          	andl   $0x0,0x4(%eax)
409370:	8b 06                	mov    (%esi),%eax
409372:	83 60 08 00          	andl   $0x0,0x8(%eax)
409376:	8b 06                	mov    (%esi),%eax
409378:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40937e:	8b c6                	mov    %esi,%eax
409380:	5e                   	pop    %esi
409381:	c3                   	ret
409382:	8b 01                	mov    (%ecx),%eax
409384:	8b 08                	mov    (%eax),%ecx
409386:	33 c0                	xor    %eax,%eax
409388:	40                   	inc    %eax
409389:	3b c8                	cmp    %eax,%ecx
40938b:	75 01                	jne    0x40938e
40938d:	c3                   	ret
40938e:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
409394:	74 f7                	je     0x40938d
409396:	33 c0                	xor    %eax,%eax
409398:	c3                   	ret
409399:	8b 41 0c             	mov    0xc(%ecx),%eax
40939c:	48                   	dec    %eax
40939d:	74 21                	je     0x4093c0
40939f:	48                   	dec    %eax
4093a0:	0f 84 a0 62 03 00    	je     0x43f646
4093a6:	48                   	dec    %eax
4093a7:	0f 84 89 62 03 00    	je     0x43f636
4093ad:	48                   	dec    %eax
4093ae:	74 20                	je     0x4093d0
4093b0:	83 e8 03             	sub    $0x3,%eax
4093b3:	74 12                	je     0x4093c7
4093b5:	48                   	dec    %eax
4093b6:	48                   	dec    %eax
4093b7:	0f 85 67 62 03 00    	jne    0x43f624
4093bd:	8a 01                	mov    (%ecx),%al
4093bf:	c3                   	ret
4093c0:	83 39 00             	cmpl   $0x0,(%ecx)
4093c3:	0f 95 c0             	setne  %al
4093c6:	c3                   	ret
4093c7:	33 c0                	xor    %eax,%eax
4093c9:	39 01                	cmp    %eax,(%ecx)
4093cb:	e9 62 62 03 00       	jmp    0x43f632
4093d0:	8b 49 08             	mov    0x8(%ecx),%ecx
4093d3:	33 c0                	xor    %eax,%eax
4093d5:	39 41 04             	cmp    %eax,0x4(%ecx)
4093d8:	e9 55 62 03 00       	jmp    0x43f632
4093dd:	83 79 0c 08          	cmpl   $0x8,0xc(%ecx)
4093e1:	0f 84 69 62 03 00    	je     0x43f650
4093e7:	32 c0                	xor    %al,%al
4093e9:	c3                   	ret
4093ea:	55                   	push   %ebp
4093eb:	8b ec                	mov    %esp,%ebp
4093ed:	56                   	push   %esi
4093ee:	6a 10                	push   $0x10
4093f0:	8b f1                	mov    %ecx,%esi
4093f2:	e8 ff 7b 01 00       	call   0x420ff6
4093f7:	8b d0                	mov    %eax,%edx
4093f9:	59                   	pop    %ecx
4093fa:	85 d2                	test   %edx,%edx
4093fc:	74 2c                	je     0x40942a
4093fe:	8b 45 08             	mov    0x8(%ebp),%eax
409401:	8b 08                	mov    (%eax),%ecx
409403:	89 0a                	mov    %ecx,(%edx)
409405:	8b 48 04             	mov    0x4(%eax),%ecx
409408:	89 4a 04             	mov    %ecx,0x4(%edx)
40940b:	8b 48 08             	mov    0x8(%eax),%ecx
40940e:	89 4a 08             	mov    %ecx,0x8(%edx)
409411:	8b 40 0c             	mov    0xc(%eax),%eax
409414:	89 42 0c             	mov    %eax,0xc(%edx)
409417:	ff 00                	incl   (%eax)
409419:	89 56 08             	mov    %edx,0x8(%esi)
40941c:	8b c6                	mov    %esi,%eax
40941e:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
409425:	5e                   	pop    %esi
409426:	5d                   	pop    %ebp
409427:	c2 04 00             	ret    $0x4
40942a:	33 d2                	xor    %edx,%edx
40942c:	eb eb                	jmp    0x409419
40942e:	56                   	push   %esi
40942f:	8b f1                	mov    %ecx,%esi
409431:	e8 ea 05 00 00       	call   0x409a20
409436:	6a 04                	push   $0x4
409438:	c7 46 0c 05 00 00 00 	movl   $0x5,0xc(%esi)
40943f:	e8 b2 7b 01 00       	call   0x420ff6
409444:	59                   	pop    %ecx
409445:	85 c0                	test   %eax,%eax
409447:	74 0b                	je     0x409454
409449:	8b c8                	mov    %eax,%ecx
40944b:	e8 0c ff ff ff       	call   0x40935c
409450:	89 06                	mov    %eax,(%esi)
409452:	5e                   	pop    %esi
409453:	c3                   	ret
409454:	33 c0                	xor    %eax,%eax
409456:	eb f8                	jmp    0x409450
409458:	56                   	push   %esi
409459:	8b f1                	mov    %ecx,%esi
40945b:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40945f:	74 21                	je     0x409482
409461:	e8 ba 05 00 00       	call   0x409a20
409466:	6a 04                	push   $0x4
409468:	c7 46 0c 05 00 00 00 	movl   $0x5,0xc(%esi)
40946f:	e8 82 7b 01 00       	call   0x420ff6
409474:	59                   	pop    %ecx
409475:	85 c0                	test   %eax,%eax
409477:	74 0b                	je     0x409484
409479:	8b c8                	mov    %eax,%ecx
40947b:	e8 dc fe ff ff       	call   0x40935c
409480:	89 06                	mov    %eax,(%esi)
409482:	5e                   	pop    %esi
409483:	c3                   	ret
409484:	33 c0                	xor    %eax,%eax
409486:	eb f8                	jmp    0x409480
409488:	56                   	push   %esi
409489:	8b f1                	mov    %ecx,%esi
40948b:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)