409ff5:	85 c0                	test   %eax,%eax
409ff7:	0f 8e 2e 01 00 00    	jle    0x40a12b
409ffd:	6a 3c                	push   $0x3c
409fff:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
40a005:	6a 00                	push   $0x0
40a007:	50                   	push   %eax
40a008:	e8 14 26 01 00       	call   0x41c621
40a00d:	83 a5 a4 fd ff ff 00 	andl   $0x0,-0x25c(%ebp)
40a014:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40a01a:	83 c4 0c             	add    $0xc,%esp
40a01d:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
40a023:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
40a029:	c7 85 9c fd ff ff 01 	movl   $0x1,-0x264(%ebp)
40a030:	00 00 00
40a033:	89 b5 a0 fd ff ff    	mov    %esi,-0x260(%ebp)
40a039:	c7 85 b4 fd ff ff 04 	movl   $0x104,-0x24c(%ebp)
40a040:	01 00 00
40a043:	50                   	push   %eax
40a044:	6a 00                	push   $0x0
40a046:	68 4b 10 00 00       	push   $0x104b
40a04b:	ff b3 04 02 00 00    	push   0x204(%ebx)
40a051:	ff 15 40 34 42 00    	call   *0x423440
40a057:	85 c0                	test   %eax,%eax
40a059:	75 27                	jne    0x40a082
40a05b:	6a 00                	push   $0x0
40a05d:	56                   	push   %esi
40a05e:	68 08 10 00 00       	push   $0x1008
40a063:	ff b3 04 02 00 00    	push   0x204(%ebx)
40a069:	ff 15 40 34 42 00    	call   *0x423440
40a06f:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
40a075:	4e                   	dec    %esi
40a076:	48                   	dec    %eax
40a077:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40a07d:	e9 a0 00 00 00       	jmp    0x40a122
40a082:	33 c0                	xor    %eax,%eax
40a084:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40a08a:	85 ff                	test   %edi,%edi
40a08c:	7e cd                	jle    0x40a05b
40a08e:	8d 8b 30 01 00 00    	lea    0x130(%ebx),%ecx
40a094:	50                   	push   %eax
40a095:	e8 42 99 00 00       	call   0x4139dc
40a09a:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40a0a0:	51                   	push   %ecx
40a0a1:	ff 70 04             	push   0x4(%eax)
40a0a4:	ff 15 64 35 42 00    	call   *0x423564
40a0aa:	59                   	pop    %ecx
40a0ab:	85 c0                	test   %eax,%eax
40a0ad:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40a0b3:	59                   	pop    %ecx
40a0b4:	74 13                	je     0x40a0c9
40a0b6:	40                   	inc    %eax
40a0b7:	8d 8b 30 01 00 00    	lea    0x130(%ebx),%ecx
40a0bd:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40a0c3:	3b c7                	cmp    %edi,%eax
40a0c5:	7c cd                	jl     0x40a094
40a0c7:	eb 4b                	jmp    0x40a114
40a0c9:	89 85 bc fd ff ff    	mov    %eax,-0x244(%ebp)
40a0cf:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
40a0d5:	50                   	push   %eax
40a0d6:	6a 00                	push   $0x0
40a0d8:	68 4c 10 00 00       	push   $0x104c
40a0dd:	ff b3 04 02 00 00    	push   0x204(%ebx)
40a0e3:	c7 85 9c fd ff ff 04 	movl   $0x4,-0x264(%ebp)
40a0ea:	00 00 00
40a0ed:	ff 15 40 34 42 00    	call   *0x423440
40a0f3:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40a0f9:	8b cb                	mov    %ebx,%ecx
40a0fb:	56                   	push   %esi
40a0fc:	e8 41 01 00 00       	call   0x40a242
40a101:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40a107:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
40a10d:	c7 04 81 01 00 00 00 	movl   $0x1,(%ecx,%eax,4)
40a114:	3b c7                	cmp    %edi,%eax
40a116:	0f 8d 3f ff ff ff    	jge    0x40a05b
40a11c:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
40a122:	46                   	inc    %esi
40a123:	3b f0                	cmp    %eax,%esi
40a125:	0f 8c d2 fe ff ff    	jl     0x409ffd
40a12b:	33 f6                	xor    %esi,%esi
40a12d:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
40a133:	85 ff                	test   %edi,%edi
40a135:	0f 8e e5 00 00 00    	jle    0x40a220
40a13b:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
40a141:	83 3c b0 00          	cmpl   $0x0,(%eax,%esi,4)
40a145:	0f 85 c6 00 00 00    	jne    0x40a211
40a14b:	6a 3c                	push   $0x3c
40a14d:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
40a153:	6a 00                	push   $0x0
40a155:	50                   	push   %eax
40a156:	e8 c6 24 01 00       	call   0x41c621
40a15b:	83 c4 0c             	add    $0xc,%esp
40a15e:	c7 85 9c fd ff ff 05 	movl   $0x5,-0x264(%ebp)
40a165:	00 00 00
40a168:	89 b5 bc fd ff ff    	mov    %esi,-0x244(%ebp)
40a16e:	6a 00                	push   $0x0
40a170:	6a 00                	push   $0x0
40a172:	68 04 10 00 00       	push   $0x1004
40a177:	ff b3 04 02 00 00    	push   0x204(%ebx)
40a17d:	ff 15 40 34 42 00    	call   *0x423440
40a183:	83 a5 a4 fd ff ff 00 	andl   $0x0,-0x25c(%ebp)
40a18a:	8d 8b 30 01 00 00    	lea    0x130(%ebx),%ecx
40a190:	56                   	push   %esi
40a191:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
40a197:	e8 40 98 00 00       	call   0x4139dc
40a19c:	83 c0 04             	add    $0x4,%eax
40a19f:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40a1a5:	50                   	push   %eax
40a1a6:	ff 15 80 33 42 00    	call   *0x423380
40a1ac:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40a1b2:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40a1b8:	8b 40 f8             	mov    -0x8(%eax),%eax
40a1bb:	40                   	inc    %eax
40a1bc:	50                   	push   %eax
40a1bd:	ff 15 78 33 42 00    	call   *0x423378
40a1c3:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
40a1c9:	85 c0                	test   %eax,%eax
40a1cb:	74 3e                	je     0x40a20b
40a1cd:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
40a1d3:	50                   	push   %eax
40a1d4:	6a 00                	push   $0x0
40a1d6:	68 4d 10 00 00       	push   $0x104d
40a1db:	ff b3 04 02 00 00    	push   0x204(%ebx)
40a1e1:	ff 15 40 34 42 00    	call   *0x423440
40a1e7:	6a ff                	push   $0xffffffff
40a1e9:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40a1ef:	8b f0                	mov    %eax,%esi
40a1f1:	ff 15 7c 33 42 00    	call   *0x42337c
40a1f7:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40a1fd:	8b cb                	mov    %ebx,%ecx
40a1ff:	56                   	push   %esi
40a200:	e8 3d 00 00 00       	call   0x40a242
40a205:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
40a20b:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
40a211:	46                   	inc    %esi
40a212:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
40a218:	3b f7                	cmp    %edi,%esi
40a21a:	0f 8c 21 ff ff ff    	jl     0x40a141
40a220:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
40a226:	e8 b1 10 01 00       	call   0x41b2dc
40a22b:	59                   	pop    %ecx
40a22c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40a230:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40a236:	ff 15 44 32 42 00    	call   *0x423244
40a23c:	e8 d9 21 01 00       	call   0x41c41a
40a241:	c3                   	ret
40a242:	6a 40                	push   $0x40
40a244:	b8 d1 cc 41 00       	mov    $0x41ccd1,%eax
40a249:	e8 ea 21 01 00       	call   0x41c438
40a24e:	8b f1                	mov    %ecx,%esi
40a250:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a253:	ff 15 40 32 42 00    	call   *0x423240
40a259:	33 ff                	xor    %edi,%edi
40a25b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a25e:	8d 8e 30 01 00 00    	lea    0x130(%esi),%ecx
40a264:	ff 75 0c             	push   0xc(%ebp)
40a267:	e8 70 97 00 00       	call   0x4139dc
40a26c:	8b 48 08             	mov    0x8(%eax),%ecx
40a26f:	85 c9                	test   %ecx,%ecx
40a271:	75 07                	jne    0x40a27a
40a273:	68 98 00 00 00       	push   $0x98
40a278:	eb 17                	jmp    0x40a291
40a27a:	3b 48 0c             	cmp    0xc(%eax),%ecx
40a27d:	75 07                	jne    0x40a286
40a27f:	68 99 00 00 00       	push   $0x99
40a284:	eb 0b                	jmp    0x40a291
40a286:	76 07                	jbe    0x40a28f
40a288:	68 9a 00 00 00       	push   $0x9a
40a28d:	eb 02                	jmp    0x40a291
40a28f:	6a 75                	push   $0x75
40a291:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a294:	ff 15 74 33 42 00    	call   *0x423374
40a29a:	6a 3c                	push   $0x3c
40a29c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a29f:	57                   	push   %edi
40a2a0:	50                   	push   %eax
40a2a1:	e8 7b 23 01 00       	call   0x41c621
40a2a6:	8b 45 08             	mov    0x8(%ebp),%eax
40a2a9:	33 c9                	xor    %ecx,%ecx
40a2ab:	89 45 b8             	mov    %eax,-0x48(%ebp)
40a2ae:	41                   	inc    %ecx
40a2af:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a2b2:	83 c4 0c             	add    $0xc,%esp
40a2b5:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40a2b8:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40a2bb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a2be:	8b 40 f8             	mov    -0x8(%eax),%eax
40a2c1:	40                   	inc    %eax
40a2c2:	50                   	push   %eax
40a2c3:	ff 15 78 33 42 00    	call   *0x423378
40a2c9:	8b 8e 04 02 00 00    	mov    0x204(%esi),%ecx
40a2cf:	85 c0                	test   %eax,%eax
40a2d1:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a2d4:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a2d7:	50                   	push   %eax
40a2d8:	57                   	push   %edi
40a2d9:	68 4c 10 00 00       	push   $0x104c
40a2de:	51                   	push   %ecx
40a2df:	74 13                	je     0x40a2f4
40a2e1:	ff 15 40 34 42 00    	call   *0x423440
40a2e7:	6a ff                	push   $0xffffffff
40a2e9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a2ec:	ff 15 7c 33 42 00    	call   *0x42337c
40a2f2:	eb 0d                	jmp    0x40a301
40a2f4:	c7 45 c8 34 1f 42 00 	movl   $0x421f34,-0x38(%ebp)
40a2fb:	ff 15 40 34 42 00    	call   *0x423440
40a301:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40a305:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a308:	ff 15 44 32 42 00    	call   *0x423244
40a30e:	e8 f3 20 01 00       	call   0x41c406
40a313:	c2 08 00             	ret    $0x8
40a316:	cc                   	int3
40a317:	cc                   	int3
40a318:	cc                   	int3
40a319:	cc                   	int3
40a31a:	cc                   	int3
40a31b:	cc                   	int3
40a31c:	cc                   	int3
40a31d:	cc                   	int3
40a31e:	cc                   	int3
40a31f:	cc                   	int3
40a320:	8b ff                	mov    %edi,%edi
40a322:	55                   	push   %ebp
40a323:	8b ec                	mov    %esp,%ebp
40a325:	53                   	push   %ebx
40a326:	8b 5d 10             	mov    0x10(%ebp),%ebx
40a329:	56                   	push   %esi
40a32a:	57                   	push   %edi
40a32b:	ff 75 08             	push   0x8(%ebp)
40a32e:	8d b3 30 01 00 00    	lea    0x130(%ebx),%esi
40a334:	8b ce                	mov    %esi,%ecx
40a336:	e8 a1 96 00 00       	call   0x4139dc
40a33b:	ff 75 0c             	push   0xc(%ebp)
40a33e:	8b ce                	mov    %esi,%ecx
40a340:	8b f8                	mov    %eax,%edi
40a342:	e8 95 96 00 00       	call   0x4139dc
40a347:	8b 57 08             	mov    0x8(%edi),%edx
40a34a:	2b 57 0c             	sub    0xc(%edi),%edx
40a34d:	8b 48 08             	mov    0x8(%eax),%ecx
40a350:	8b f1                	mov    %ecx,%esi
40a352:	2b 70 0c             	sub    0xc(%eax),%esi
40a355:	3b d6                	cmp    %esi,%edx
40a357:	75 13                	jne    0x40a36c
40a359:	3b 4f 08             	cmp    0x8(%edi),%ecx
40a35c:	75 04                	jne    0x40a362
40a35e:	33 c0                	xor    %eax,%eax
40a360:	eb 18                	jmp    0x40a37a
40a362:	1b c0                	sbb    %eax,%eax
40a364:	83 e0 04             	and    $0x4,%eax
40a367:	83 e8 02             	sub    $0x2,%eax
40a36a:	eb 0e                	jmp    0x40a37a
40a36c:	33 c0                	xor    %eax,%eax
40a36e:	3b d6                	cmp    %esi,%edx
40a370:	0f 9f c0             	setg   %al
40a373:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
40a37a:	83 bb 4c 01 00 00 00 	cmpl   $0x0,0x14c(%ebx)
40a381:	5f                   	pop    %edi
40a382:	5e                   	pop    %esi
40a383:	5b                   	pop    %ebx
40a384:	74 02                	je     0x40a388
40a386:	f7 d8                	neg    %eax
40a388:	5d                   	pop    %ebp
40a389:	c2 0c 00             	ret    $0xc
40a38c:	cc                   	int3
40a38d:	cc                   	int3
40a38e:	cc                   	int3
40a38f:	cc                   	int3
40a390:	8b ff                	mov    %edi,%edi
40a392:	55                   	push   %ebp
40a393:	8b ec                	mov    %esp,%ebp
40a395:	53                   	push   %ebx
40a396:	8b 5d 10             	mov    0x10(%ebp),%ebx
40a399:	56                   	push   %esi
40a39a:	57                   	push   %edi
40a39b:	ff 75 08             	push   0x8(%ebp)
40a39e:	8d b3 30 01 00 00    	lea    0x130(%ebx),%esi
40a3a4:	8b ce                	mov    %esi,%ecx
40a3a6:	e8 31 96 00 00       	call   0x4139dc
40a3ab:	ff 75 0c             	push   0xc(%ebp)
40a3ae:	8b ce                	mov    %esi,%ecx
40a3b0:	8b f8                	mov    %eax,%edi
40a3b2:	e8 25 96 00 00       	call   0x4139dc
40a3b7:	ff 70 04             	push   0x4(%eax)
40a3ba:	ff 77 04             	push   0x4(%edi)
40a3bd:	ff 15 64 35 42 00    	call   *0x423564
40a3c3:	83 bb 48 01 00 00 00 	cmpl   $0x0,0x148(%ebx)
40a3ca:	59                   	pop    %ecx
40a3cb:	59                   	pop    %ecx
40a3cc:	5f                   	pop    %edi
40a3cd:	5e                   	pop    %esi
40a3ce:	5b                   	pop    %ebx
40a3cf:	74 02                	je     0x40a3d3
40a3d1:	f7 d8                	neg    %eax
40a3d3:	5d                   	pop    %ebp
40a3d4:	c2 0c 00             	ret    $0xc
40a3d7:	6a 4c                	push   $0x4c
40a3d9:	b8 f5 cc 41 00       	mov    $0x41ccf5,%eax
40a3de:	e8 88 20 01 00       	call   0x41c46b
40a3e3:	8b f9                	mov    %ecx,%edi
40a3e5:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a3e8:	ff 15 40 32 42 00    	call   *0x423240
40a3ee:	33 f6                	xor    %esi,%esi
40a3f0:	89 75 fc             	mov    %esi,-0x4(%ebp)
40a3f3:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a3f6:	50                   	push   %eax
40a3f7:	ff b7 84 01 00 00    	push   0x184(%edi)
40a3fd:	ff 15 3c 34 42 00    	call   *0x42343c
40a403:	6a 2c                	push   $0x2c
40a405:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a408:	56                   	push   %esi
40a409:	50                   	push   %eax
40a40a:	e8 12 22 01 00       	call   0x41c621
40a40f:	83 c4 0c             	add    $0xc,%esp
40a412:	c7 45 a8 0f 00 00 00 	movl   $0xf,-0x58(%ebp)
40a419:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a41c:	89 75 ac             	mov    %esi,-0x54(%ebp)
40a41f:	68 01 01 00 00       	push   $0x101
40a424:	ff 15 74 33 42 00    	call   *0x423374
40a42a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a42d:	2b 45 e0             	sub    -0x20(%ebp),%eax
40a430:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a433:	db 45 d8             	fildl  -0x28(%ebp)
40a436:	89 75 bc             	mov    %esi,-0x44(%ebp)
40a439:	dd 5d d4             	fstpl  -0x2c(%ebp)
40a43c:	dd 45 d4             	fldl   -0x2c(%ebp)
40a43f:	dc 0d 70 62 40 00    	fmull  0x406270
40a445:	e8 c5 21 01 00       	call   0x41c60f
40a44a:	89 45 b0             	mov    %eax,-0x50(%ebp)
40a44d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a450:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a453:	8b 40 f8             	mov    -0x8(%eax),%eax
40a456:	40                   	inc    %eax
40a457:	50                   	push   %eax
40a458:	ff 15 78 33 42 00    	call   *0x423378
40a45e:	8b 8f 84 01 00 00    	mov    0x184(%edi),%ecx
40a464:	85 c0                	test   %eax,%eax
40a466:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40a469:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a46c:	50                   	push   %eax
40a46d:	56                   	push   %esi
40a46e:	be 61 10 00 00       	mov    $0x1061,%esi
40a473:	56                   	push   %esi
40a474:	51                   	push   %ecx
40a475:	74 13                	je     0x40a48a
40a477:	ff 15 40 34 42 00    	call   *0x423440
40a47d:	6a ff                	push   $0xffffffff
40a47f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a482:	ff 15 7c 33 42 00    	call   *0x42337c
40a488:	eb 0d                	jmp    0x40a497
40a48a:	c7 45 b4 34 1f 42 00 	movl   $0x421f34,-0x4c(%ebp)
40a491:	ff 15 40 34 42 00    	call   *0x423440