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
40a497:	68 02 01 00 00       	push   $0x102
40a49c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a49f:	ff 15 74 33 42 00    	call   *0x423374
40a4a5:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a4a8:	33 db                	xor    %ebx,%ebx
40a4aa:	2b 45 e0             	sub    -0x20(%ebp),%eax
40a4ad:	43                   	inc    %ebx
40a4ae:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a4b1:	db 45 d8             	fildl  -0x28(%ebp)
40a4b4:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40a4b7:	dd 5d d4             	fstpl  -0x2c(%ebp)
40a4ba:	dd 45 d4             	fldl   -0x2c(%ebp)
40a4bd:	dc 0d b0 62 40 00    	fmull  0x4062b0
40a4c3:	e8 47 21 01 00       	call   0x41c60f
40a4c8:	89 45 b0             	mov    %eax,-0x50(%ebp)
40a4cb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a4ce:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a4d1:	8b 40 f8             	mov    -0x8(%eax),%eax
40a4d4:	40                   	inc    %eax
40a4d5:	50                   	push   %eax
40a4d6:	ff 15 78 33 42 00    	call   *0x423378
40a4dc:	8b 8f 84 01 00 00    	mov    0x184(%edi),%ecx
40a4e2:	85 c0                	test   %eax,%eax
40a4e4:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40a4e7:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a4ea:	50                   	push   %eax
40a4eb:	53                   	push   %ebx
40a4ec:	56                   	push   %esi
40a4ed:	51                   	push   %ecx
40a4ee:	74 13                	je     0x40a503
40a4f0:	ff 15 40 34 42 00    	call   *0x423440
40a4f6:	6a ff                	push   $0xffffffff
40a4f8:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a4fb:	ff 15 7c 33 42 00    	call   *0x42337c
40a501:	eb 0d                	jmp    0x40a510
40a503:	c7 45 b4 34 1f 42 00 	movl   $0x421f34,-0x4c(%ebp)
40a50a:	ff 15 40 34 42 00    	call   *0x423440
40a510:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40a514:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a517:	ff 15 44 32 42 00    	call   *0x423244
40a51d:	e8 f8 1e 01 00       	call   0x41c41a
40a522:	c3                   	ret
40a523:	8b ff                	mov    %edi,%edi
40a525:	56                   	push   %esi
40a526:	57                   	push   %edi
40a527:	8b f9                	mov    %ecx,%edi
40a529:	68 bc 02 00 00       	push   $0x2bc
40a52e:	ff b7 98 00 00 00    	push   0x98(%edi)
40a534:	6a 00                	push   $0x0
40a536:	e8 3b 04 00 00       	call   0x40a976
40a53b:	68 bd 02 00 00       	push   $0x2bd
40a540:	ff b7 9c 00 00 00    	push   0x9c(%edi)
40a546:	8b cf                	mov    %edi,%ecx
40a548:	6a 01                	push   $0x1
40a54a:	e8 27 04 00 00       	call   0x40a976
40a54f:	68 be 02 00 00       	push   $0x2be
40a554:	ff b7 a0 00 00 00    	push   0xa0(%edi)
40a55a:	8b cf                	mov    %edi,%ecx
40a55c:	6a 02                	push   $0x2
40a55e:	e8 13 04 00 00       	call   0x40a976
40a563:	68 bf 02 00 00       	push   $0x2bf
40a568:	ff b7 a4 00 00 00    	push   0xa4(%edi)
40a56e:	8b cf                	mov    %edi,%ecx
40a570:	6a 03                	push   $0x3
40a572:	e8 ff 03 00 00       	call   0x40a976
40a577:	68 c0 02 00 00       	push   $0x2c0
40a57c:	ff b7 a8 00 00 00    	push   0xa8(%edi)
40a582:	8b cf                	mov    %edi,%ecx
40a584:	6a 04                	push   $0x4
40a586:	e8 eb 03 00 00       	call   0x40a976
40a58b:	68 c1 02 00 00       	push   $0x2c1
40a590:	ff b7 ac 00 00 00    	push   0xac(%edi)
40a596:	8b cf                	mov    %edi,%ecx
40a598:	6a 05                	push   $0x5
40a59a:	e8 d7 03 00 00       	call   0x40a976
40a59f:	68 c3 02 00 00       	push   $0x2c3
40a5a4:	ff b7 b0 00 00 00    	push   0xb0(%edi)
40a5aa:	8b cf                	mov    %edi,%ecx
40a5ac:	6a 06                	push   $0x6
40a5ae:	e8 c3 03 00 00       	call   0x40a976
40a5b3:	68 c4 02 00 00       	push   $0x2c4
40a5b8:	ff b7 b4 00 00 00    	push   0xb4(%edi)
40a5be:	8b cf                	mov    %edi,%ecx
40a5c0:	6a 07                	push   $0x7
40a5c2:	e8 af 03 00 00       	call   0x40a976
40a5c7:	68 c5 02 00 00       	push   $0x2c5
40a5cc:	ff b7 b8 00 00 00    	push   0xb8(%edi)
40a5d2:	8b cf                	mov    %edi,%ecx
40a5d4:	6a 08                	push   $0x8
40a5d6:	e8 9b 03 00 00       	call   0x40a976
40a5db:	68 c6 02 00 00       	push   $0x2c6
40a5e0:	ff b7 bc 00 00 00    	push   0xbc(%edi)
40a5e6:	8b cf                	mov    %edi,%ecx
40a5e8:	6a 09                	push   $0x9
40a5ea:	e8 87 03 00 00       	call   0x40a976
40a5ef:	68 c7 02 00 00       	push   $0x2c7
40a5f4:	ff b7 c0 00 00 00    	push   0xc0(%edi)
40a5fa:	8b cf                	mov    %edi,%ecx
40a5fc:	6a 0a                	push   $0xa
40a5fe:	e8 73 03 00 00       	call   0x40a976
40a603:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
40a60a:	6a 0b                	push   $0xb
40a60c:	5e                   	pop    %esi
40a60d:	74 16                	je     0x40a625
40a60f:	68 c8 02 00 00       	push   $0x2c8
40a614:	ff b7 c4 00 00 00    	push   0xc4(%edi)
40a61a:	8b cf                	mov    %edi,%ecx
40a61c:	56                   	push   %esi
40a61d:	e8 54 03 00 00       	call   0x40a976
40a622:	6a 0c                	push   $0xc
40a624:	5e                   	pop    %esi
40a625:	68 c9 02 00 00       	push   $0x2c9
40a62a:	ff b7 c8 00 00 00    	push   0xc8(%edi)
40a630:	8b cf                	mov    %edi,%ecx
40a632:	56                   	push   %esi
40a633:	e8 3e 03 00 00       	call   0x40a976
40a638:	68 ca 02 00 00       	push   $0x2ca
40a63d:	ff b7 cc 00 00 00    	push   0xcc(%edi)
40a643:	46                   	inc    %esi
40a644:	8b cf                	mov    %edi,%ecx
40a646:	56                   	push   %esi
40a647:	e8 2a 03 00 00       	call   0x40a976
40a64c:	68 cb 02 00 00       	push   $0x2cb
40a651:	ff b7 d0 00 00 00    	push   0xd0(%edi)
40a657:	46                   	inc    %esi
40a658:	8b cf                	mov    %edi,%ecx
40a65a:	56                   	push   %esi
40a65b:	e8 16 03 00 00       	call   0x40a976
40a660:	68 cc 02 00 00       	push   $0x2cc
40a665:	ff b7 d4 00 00 00    	push   0xd4(%edi)
40a66b:	46                   	inc    %esi
40a66c:	8b cf                	mov    %edi,%ecx
40a66e:	56                   	push   %esi
40a66f:	e8 02 03 00 00       	call   0x40a976
40a674:	68 cd 02 00 00       	push   $0x2cd
40a679:	ff b7 d8 00 00 00    	push   0xd8(%edi)
40a67f:	46                   	inc    %esi
40a680:	8b cf                	mov    %edi,%ecx
40a682:	56                   	push   %esi
40a683:	e8 ee 02 00 00       	call   0x40a976
40a688:	68 ce 02 00 00       	push   $0x2ce
40a68d:	ff b7 dc 00 00 00    	push   0xdc(%edi)
40a693:	46                   	inc    %esi
40a694:	8b cf                	mov    %edi,%ecx
40a696:	56                   	push   %esi
40a697:	e8 da 02 00 00       	call   0x40a976
40a69c:	68 cf 02 00 00       	push   $0x2cf
40a6a1:	ff b7 e0 00 00 00    	push   0xe0(%edi)
40a6a7:	46                   	inc    %esi
40a6a8:	8b cf                	mov    %edi,%ecx
40a6aa:	56                   	push   %esi
40a6ab:	e8 c6 02 00 00       	call   0x40a976
40a6b0:	46                   	inc    %esi
40a6b1:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
40a6b8:	74 14                	je     0x40a6ce
40a6ba:	68 d0 02 00 00       	push   $0x2d0
40a6bf:	ff b7 e4 00 00 00    	push   0xe4(%edi)
40a6c5:	8b cf                	mov    %edi,%ecx
40a6c7:	56                   	push   %esi
40a6c8:	e8 a9 02 00 00       	call   0x40a976
40a6cd:	46                   	inc    %esi
40a6ce:	68 d1 02 00 00       	push   $0x2d1
40a6d3:	ff b7 e8 00 00 00    	push   0xe8(%edi)
40a6d9:	8b cf                	mov    %edi,%ecx
40a6db:	56                   	push   %esi
40a6dc:	e8 95 02 00 00       	call   0x40a976
40a6e1:	46                   	inc    %esi
40a6e2:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
40a6e9:	74 14                	je     0x40a6ff
40a6eb:	68 d2 02 00 00       	push   $0x2d2
40a6f0:	ff b7 ec 00 00 00    	push   0xec(%edi)
40a6f6:	8b cf                	mov    %edi,%ecx
40a6f8:	56                   	push   %esi
40a6f9:	e8 78 02 00 00       	call   0x40a976
40a6fe:	46                   	inc    %esi