40a37a:	8b 1d 4c 10 40 00    	mov    0x40104c,%ebx
40a380:	68 74 68 40 00       	push   $0x406874
40a385:	68 1c 65 40 00       	push   $0x40651c
40a38a:	ff d3                	call   *%ebx
40a38c:	8b 3d b0 11 40 00    	mov    0x4011b0,%edi
40a392:	8b d0                	mov    %eax,%edx
40a394:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a397:	ff d7                	call   *%edi
40a399:	50                   	push   %eax
40a39a:	68 a4 63 40 00       	push   $0x4063a4
40a39f:	ff d3                	call   *%ebx
40a3a1:	8b d0                	mov    %eax,%edx
40a3a3:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40a3a6:	ff d7                	call   *%edi
40a3a8:	50                   	push   %eax
40a3a9:	68 a4 63 40 00       	push   $0x4063a4
40a3ae:	ff d3                	call   *%ebx
40a3b0:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a3b3:	51                   	push   %ecx
40a3b4:	89 45 ac             	mov    %eax,-0x54(%ebp)
40a3b7:	c7 45 a4 08 00 00 00 	movl   $0x8,-0x5c(%ebp)
40a3be:	ff 15 5c 10 40 00    	call   *0x40105c
40a3c4:	33 db                	xor    %ebx,%ebx
40a3c6:	66 3d ff ff          	cmp    $0xffff,%ax
40a3ca:	0f 95 c3             	setne  %bl
40a3cd:	8d 55 bc             	lea    -0x44(%ebp),%edx
40a3d0:	52                   	push   %edx
40a3d1:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a3d4:	50                   	push   %eax
40a3d5:	6a 02                	push   $0x2
40a3d7:	f7 db                	neg    %ebx
40a3d9:	ff 15 78 11 40 00    	call   *0x401178
40a3df:	83 c4 0c             	add    $0xc,%esp
40a3e2:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a3e5:	ff 15 1c 10 40 00    	call   *0x40101c
40a3eb:	66 3b de             	cmp    %si,%bx
40a3ee:	74 29                	je     0x40a419
40a3f0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a3f3:	8b 0b                	mov    (%ebx),%ecx
40a3f5:	68 c6 4b 00 00       	push   $0x4bc6
40a3fa:	53                   	push   %ebx
40a3fb:	ff 91 54 02 00 00    	call   *0x254(%ecx)
40a401:	db e2                	fnclex
40a403:	3b c6                	cmp    %esi,%eax
40a405:	7d 12                	jge    0x40a419
40a407:	68 54 02 00 00       	push   $0x254
40a40c:	68 ec 5e 40 00       	push   $0x405eec
40a411:	53                   	push   %ebx
40a412:	50                   	push   %eax
40a413:	ff 15 58 10 40 00    	call   *0x401058
40a419:	39 35 38 b3 40 00    	cmp    %esi,0x40b338
40a41f:	75 10                	jne    0x40a431
40a421:	68 38 b3 40 00       	push   $0x40b338
40a426:	68 c4 60 40 00       	push   $0x4060c4
40a42b:	ff 15 4c 11 40 00    	call   *0x40114c
40a431:	8b 1d 38 b3 40 00    	mov    0x40b338,%ebx
40a437:	8b 13                	mov    (%ebx),%edx
40a439:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a43c:	50                   	push   %eax
40a43d:	53                   	push   %ebx
40a43e:	ff 52 14             	call   *0x14(%edx)
40a441:	db e2                	fnclex
40a443:	3b c6                	cmp    %esi,%eax
40a445:	7d 0f                	jge    0x40a456
40a447:	6a 14                	push   $0x14
40a449:	68 b4 60 40 00       	push   $0x4060b4
40a44e:	53                   	push   %ebx
40a44f:	50                   	push   %eax
40a450:	ff 15 58 10 40 00    	call   *0x401058
40a456:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40a459:	8b 08                	mov    (%eax),%ecx
40a45b:	8d 95 3c ff ff ff    	lea    -0xc4(%ebp),%edx
40a461:	52                   	push   %edx
40a462:	50                   	push   %eax
40a463:	8b d8                	mov    %eax,%ebx
40a465:	ff 91 c8 00 00 00    	call   *0xc8(%ecx)
40a46b:	db e2                	fnclex
40a46d:	3b c6                	cmp    %esi,%eax
40a46f:	7d 12                	jge    0x40a483
40a471:	68 c8 00 00 00       	push   $0xc8
40a476:	68 d4 60 40 00       	push   $0x4060d4
40a47b:	53                   	push   %ebx
40a47c:	50                   	push   %eax
40a47d:	ff 15 58 10 40 00    	call   *0x401058
40a483:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a486:	ff 15 d0 11 40 00    	call   *0x4011d0
40a48c:	68 ec 62 40 00       	push   $0x4062ec
40a491:	ff 15 cc 10 40 00    	call   *0x4010cc
40a497:	8b d0                	mov    %eax,%edx
40a499:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a49c:	ff d7                	call   *%edi
40a49e:	50                   	push   %eax
40a49f:	68 f4 62 40 00       	push   $0x4062f4
40a4a4:	ff 15 d4 10 40 00    	call   *0x4010d4
40a4aa:	8b d8                	mov    %eax,%ebx
40a4ac:	f7 db                	neg    %ebx
40a4ae:	1b db                	sbb    %ebx,%ebx
40a4b0:	f7 db                	neg    %ebx
40a4b2:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a4b5:	f7 db                	neg    %ebx
40a4b7:	ff 15 cc 11 40 00    	call   *0x4011cc
40a4bd:	66 3b de             	cmp    %si,%bx
40a4c0:	74 1d                	je     0x40a4df
40a4c2:	56                   	push   %esi
40a4c3:	68 88 68 40 00       	push   $0x406888
40a4c8:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40a4cb:	50                   	push   %eax
40a4cc:	ff 15 3c 11 40 00    	call   *0x40113c
40a4d2:	8b 1d 1c 10 40 00    	mov    0x40101c,%ebx
40a4d8:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a4db:	ff d3                	call   *%ebx
40a4dd:	eb 06                	jmp    0x40a4e5
40a4df:	8b 1d 1c 10 40 00    	mov    0x40101c,%ebx
40a4e5:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a4e8:	51                   	push   %ecx
40a4e9:	c7 45 ac 7a 35 00 00 	movl   $0x357a,-0x54(%ebp)
40a4f0:	c7 45 a4 02 00 00 00 	movl   $0x2,-0x5c(%ebp)
40a4f7:	ff 15 78 10 40 00    	call   *0x401078
40a4fd:	8b d0                	mov    %eax,%edx
40a4ff:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40a502:	ff d7                	call   *%edi
40a504:	50                   	push   %eax
40a505:	68 a4 68 40 00       	push   $0x4068a4
40a50a:	68 ac 68 40 00       	push   $0x4068ac
40a50f:	ff 15 4c 10 40 00    	call   *0x40104c
40a515:	8b d0                	mov    %eax,%edx
40a517:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a51a:	ff d7                	call   *%edi
40a51c:	50                   	push   %eax
40a51d:	68 b4 68 40 00       	push   $0x4068b4
40a522:	ff 15 4c 10 40 00    	call   *0x40104c
40a528:	8b d0                	mov    %eax,%edx
40a52a:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40a52d:	ff d7                	call   *%edi
40a52f:	50                   	push   %eax
40a530:	ff 15 d4 10 40 00    	call   *0x4010d4
40a536:	8b f8                	mov    %eax,%edi
40a538:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a53b:	52                   	push   %edx
40a53c:	f7 df                	neg    %edi
40a53e:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a541:	50                   	push   %eax
40a542:	1b ff                	sbb    %edi,%edi
40a544:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a547:	51                   	push   %ecx
40a548:	f7 df                	neg    %edi
40a54a:	6a 03                	push   $0x3
40a54c:	f7 df                	neg    %edi
40a54e:	ff 15 78 11 40 00    	call   *0x401178
40a554:	83 c4 10             	add    $0x10,%esp
40a557:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a55a:	ff d3                	call   *%ebx
40a55c:	66 3b fe             	cmp    %si,%di
40a55f:	74 29                	je     0x40a58a
40a561:	8b 7d 08             	mov    0x8(%ebp),%edi
40a564:	8b 17                	mov    (%edi),%edx
40a566:	68 68 5a 00 00       	push   $0x5a68
40a56b:	57                   	push   %edi
40a56c:	ff 92 54 02 00 00    	call   *0x254(%edx)
40a572:	db e2                	fnclex
40a574:	3b c6                	cmp    %esi,%eax
40a576:	7d 12                	jge    0x40a58a
40a578:	68 54 02 00 00       	push   $0x254
40a57d:	68 ec 5e 40 00       	push   $0x405eec
40a582:	57                   	push   %edi
40a583:	50                   	push   %eax
40a584:	ff 15 58 10 40 00    	call   *0x401058
40a58a:	56                   	push   %esi
40a58b:	6a ff                	push   $0xffffffff
40a58d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40a590:	68 c4 68 40 00       	push   $0x4068c4
40a595:	8d 55 80             	lea    -0x80(%ebp),%edx
40a598:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
40a59e:	52                   	push   %edx
40a59f:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40a5a2:	8d 8d 38 ff ff ff    	lea    -0xc8(%ebp),%ecx
40a5a8:	50                   	push   %eax
40a5a9:	89 4d 88             	mov    %ecx,-0x78(%ebp)
40a5ac:	c7 45 80 08 60 00 00 	movl   $0x6008,-0x80(%ebp)
40a5b3:	ff 15 ac 10 40 00    	call   *0x4010ac
40a5b9:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a5bc:	51                   	push   %ecx
40a5bd:	68 08 20 00 00       	push   $0x2008
40a5c2:	ff 15 6c 10 40 00    	call   *0x40106c
40a5c8:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40a5ce:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
40a5d4:	52                   	push   %edx
40a5d5:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a5d8:	50                   	push   %eax
40a5d9:	ff 15 b8 11 40 00    	call   *0x4011b8
40a5df:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a5e2:	ff d3                	call   *%ebx
40a5e4:	56                   	push   %esi
40a5e5:	6a 03                	push   $0x3
40a5e7:	6a 01                	push   $0x1
40a5e9:	56                   	push   %esi
40a5ea:	8d 4d 90             	lea    -0x70(%ebp),%ecx
40a5ed:	51                   	push   %ecx
40a5ee:	6a 10                	push   $0x10
40a5f0:	68 80 08 00 00       	push   $0x880
40a5f5:	ff 15 10 11 40 00    	call   *0x401110
40a5fb:	8b 45 90             	mov    -0x70(%ebp),%eax
40a5fe:	c7 45 88 ff ff ff ff 	movl   $0xffffffff,-0x78(%ebp)
40a605:	c7 45 80 0b 00 00 00 	movl   $0xb,-0x80(%ebp)
40a60c:	8b 48 14             	mov    0x14(%eax),%ecx
40a60f:	c1 e1 04             	shl    $0x4,%ecx
40a612:	8b f9                	mov    %ecx,%edi
40a614:	8b 48 0c             	mov    0xc(%eax),%ecx
40a617:	2b cf                	sub    %edi,%ecx
40a619:	8b 3d 10 10 40 00    	mov    0x401010,%edi
40a61f:	83 c4 1c             	add    $0x1c,%esp
40a622:	8d 55 80             	lea    -0x80(%ebp),%edx
40a625:	ff d7                	call   *%edi
40a627:	8b 45 90             	mov    -0x70(%ebp),%eax
40a62a:	c7 85 78 ff ff ff 4c 	movl   $0x40604c,-0x88(%ebp)
40a631:	60 40 00
40a634:	c7 85 70 ff ff ff 08 	movl   $0x8,-0x90(%ebp)
40a63b:	00 00 00
40a63e:	8b 48 14             	mov    0x14(%eax),%ecx
40a641:	c1 e1 04             	shl    $0x4,%ecx
40a644:	8b d9                	mov    %ecx,%ebx
40a646:	8b 48 0c             	mov    0xc(%eax),%ecx
40a649:	2b cb                	sub    %ebx,%ecx
40a64b:	8b 1d a4 11 40 00    	mov    0x4011a4,%ebx
40a651:	8d 95 70 ff ff ff    	lea    -0x90(%ebp),%edx
40a657:	83 c1 10             	add    $0x10,%ecx
40a65a:	ff d3                	call   *%ebx
40a65c:	8b 45 90             	mov    -0x70(%ebp),%eax
40a65f:	c7 85 68 ff ff ff ff 	movl   $0xffffffff,-0x98(%ebp)
40a666:	ff ff ff
40a669:	c7 85 60 ff ff ff 0b 	movl   $0xb,-0xa0(%ebp)
40a670:	00 00 00
40a673:	b9 02 00 00 00       	mov    $0x2,%ecx
40a678:	2b 48 14             	sub    0x14(%eax),%ecx
40a67b:	8d 95 60 ff ff ff    	lea    -0xa0(%ebp),%edx
40a681:	c1 e1 04             	shl    $0x4,%ecx
40a684:	03 48 0c             	add    0xc(%eax),%ecx
40a687:	ff d7                	call   *%edi
40a689:	8b 45 90             	mov    -0x70(%ebp),%eax
40a68c:	c7 85 58 ff ff ff 64 	movl   $0x406064,-0xa8(%ebp)
40a693:	60 40 00
40a696:	c7 85 50 ff ff ff 08 	movl   $0x8,-0xb0(%ebp)
40a69d:	00 00 00
40a6a0:	8b 78 14             	mov    0x14(%eax),%edi
40a6a3:	b9 03 00 00 00       	mov    $0x3,%ecx
40a6a8:	2b cf                	sub    %edi,%ecx
40a6aa:	8b 78 0c             	mov    0xc(%eax),%edi
40a6ad:	c1 e1 04             	shl    $0x4,%ecx
40a6b0:	8d 95 50 ff ff ff    	lea    -0xb0(%ebp),%edx
40a6b6:	03 cf                	add    %edi,%ecx
40a6b8:	ff d3                	call   *%ebx
40a6ba:	8d 55 90             	lea    -0x70(%ebp),%edx
40a6bd:	52                   	push   %edx
40a6be:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40a6c1:	50                   	push   %eax
40a6c2:	ff 15 74 10 40 00    	call   *0x401074
40a6c8:	8d 4d 90             	lea    -0x70(%ebp),%ecx
40a6cb:	51                   	push   %ecx
40a6cc:	56                   	push   %esi
40a6cd:	ff 15 bc 10 40 00    	call   *0x4010bc
40a6d3:	8d 55 a4             	lea    -0x5c(%ebp),%edx
40a6d6:	52                   	push   %edx
40a6d7:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40a6dd:	50                   	push   %eax
40a6de:	c7 85 48 ff ff ff 4c 	movl   $0x40604c,-0xb8(%ebp)
40a6e5:	60 40 00
40a6e8:	c7 85 40 ff ff ff 08 	movl   $0x8008,-0xc0(%ebp)
40a6ef:	80 00 00
40a6f2:	ff 15 88 11 40 00    	call   *0x401188
40a6f8:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a6fb:	66 8b f8             	mov    %ax,%di
40a6fe:	ff 15 1c 10 40 00    	call   *0x40101c
40a704:	66 3b fe             	cmp    %si,%di
40a707:	74 44                	je     0x40a74d
40a709:	8b 7d 08             	mov    0x8(%ebp),%edi
40a70c:	dd 05 f0 12 40 00    	fldl   0x4012f0
40a712:	8b 0f                	mov    (%edi),%ecx
40a714:	df e0                	fnstsw %ax
40a716:	a8 0d                	test   $0xd,%al
40a718:	0f 85 bd 00 00 00    	jne    0x40a7db
40a71e:	d9 9d 1c ff ff ff    	fstps  -0xe4(%ebp)
40a724:	d9 85 1c ff ff ff    	flds   -0xe4(%ebp)
40a72a:	51                   	push   %ecx
40a72b:	d9 1c 24             	fstps  (%esp)
40a72e:	57                   	push   %edi
40a72f:	ff 91 84 00 00 00    	call   *0x84(%ecx)
40a735:	db e2                	fnclex
40a737:	3b c6                	cmp    %esi,%eax
40a739:	7d 12                	jge    0x40a74d
40a73b:	68 84 00 00 00       	push   $0x84
40a740:	68 ec 5e 40 00       	push   $0x405eec
40a745:	57                   	push   %edi
40a746:	50                   	push   %eax
40a747:	ff 15 58 10 40 00    	call   *0x401058
40a74d:	9b                   	fwait
40a74e:	68 b8 a7 40 00       	push   $0x40a7b8
40a753:	eb 40                	jmp    0x40a795
40a755:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a758:	52                   	push   %edx
40a759:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a75c:	50                   	push   %eax
40a75d:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a760:	51                   	push   %ecx
40a761:	6a 03                	push   $0x3
40a763:	ff 15 78 11 40 00    	call   *0x401178
40a769:	83 c4 10             	add    $0x10,%esp
40a76c:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a76f:	ff 15 d0 11 40 00    	call   *0x4011d0
40a775:	8d 55 94             	lea    -0x6c(%ebp),%edx
40a778:	52                   	push   %edx
40a779:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40a77c:	50                   	push   %eax
40a77d:	6a 02                	push   $0x2
40a77f:	ff 15 28 10 40 00    	call   *0x401028
40a785:	83 c4 0c             	add    $0xc,%esp
40a788:	8d 4d 90             	lea    -0x70(%ebp),%ecx
40a78b:	51                   	push   %ecx
40a78c:	6a 00                	push   $0x0
40a78e:	ff 15 70 10 40 00    	call   *0x401070
40a794:	c3                   	ret
40a795:	8b 3d 70 10 40 00    	mov    0x401070,%edi
40a79b:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40a7a1:	50                   	push   %eax
40a7a2:	8d 55 d4             	lea    -0x2c(%ebp),%edx
40a7a5:	33 f6                	xor    %esi,%esi
40a7a7:	56                   	push   %esi
40a7a8:	89 95 38 ff ff ff    	mov    %edx,-0xc8(%ebp)
40a7ae:	ff d7                	call   *%edi
40a7b0:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40a7b3:	51                   	push   %ecx
40a7b4:	56                   	push   %esi
40a7b5:	ff d7                	call   *%edi
40a7b7:	c3                   	ret
40a7b8:	8b 45 20             	mov    0x20(%ebp),%eax
40a7bb:	8b 55 c8             	mov    -0x38(%ebp),%edx
40a7be:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40a7c1:	89 10                	mov    %edx,(%eax)
40a7c3:	89 48 04             	mov    %ecx,0x4(%eax)
40a7c6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a7c9:	5f                   	pop    %edi
40a7ca:	5e                   	pop    %esi
40a7cb:	33 c0                	xor    %eax,%eax
40a7cd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a7d4:	5b                   	pop    %ebx
40a7d5:	8b e5                	mov    %ebp,%esp
40a7d7:	5d                   	pop    %ebp
40a7d8:	c2 1c 00             	ret    $0x1c
40a7db:	e9 4c 6b ff ff       	jmp    0x40132c
40a7e0:	55                   	push   %ebp
40a7e1:	8b ec                	mov    %esp,%ebp