40a16b:	39 1d 38 b3 40 00    	cmp    %ebx,0x40b338
40a171:	75 10                	jne    0x40a183
40a173:	68 38 b3 40 00       	push   $0x40b338
40a178:	68 c4 60 40 00       	push   $0x4060c4
40a17d:	ff 15 4c 11 40 00    	call   *0x40114c
40a183:	8b 35 38 b3 40 00    	mov    0x40b338,%esi
40a189:	8b 06                	mov    (%esi),%eax
40a18b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a18e:	51                   	push   %ecx
40a18f:	56                   	push   %esi
40a190:	ff 50 14             	call   *0x14(%eax)
40a193:	db e2                	fnclex
40a195:	3b c3                	cmp    %ebx,%eax
40a197:	7d 0b                	jge    0x40a1a4
40a199:	6a 14                	push   $0x14
40a19b:	68 b4 60 40 00       	push   $0x4060b4
40a1a0:	56                   	push   %esi
40a1a1:	50                   	push   %eax
40a1a2:	ff d7                	call   *%edi
40a1a4:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a1a7:	8b 10                	mov    (%eax),%edx
40a1a9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a1ac:	51                   	push   %ecx
40a1ad:	50                   	push   %eax
40a1ae:	8b f0                	mov    %eax,%esi
40a1b0:	ff 92 f8 00 00 00    	call   *0xf8(%edx)
40a1b6:	db e2                	fnclex
40a1b8:	3b c3                	cmp    %ebx,%eax
40a1ba:	7d 0e                	jge    0x40a1ca
40a1bc:	68 f8 00 00 00       	push   $0xf8
40a1c1:	68 d4 60 40 00       	push   $0x4060d4
40a1c6:	56                   	push   %esi
40a1c7:	50                   	push   %eax
40a1c8:	ff d7                	call   *%edi
40a1ca:	8b 55 e0             	mov    -0x20(%ebp),%edx
40a1cd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a1d0:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a1d3:	ff 15 b0 11 40 00    	call   *0x4011b0
40a1d9:	8b 1d d0 11 40 00    	mov    0x4011d0,%ebx
40a1df:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a1e2:	ff d3                	call   *%ebx
40a1e4:	6a 00                	push   $0x0
40a1e6:	6a 00                	push   $0x0
40a1e8:	ff 15 18 10 40 00    	call   *0x401018
40a1ee:	ff 15 a8 10 40 00    	call   *0x4010a8
40a1f4:	dc 1d c8 12 40 00    	fcompl 0x4012c8
40a1fa:	df e0                	fnstsw %ax
40a1fc:	f6 c4 40             	test   $0x40,%ah
40a1ff:	0f 84 8a 00 00 00    	je     0x40a28f
40a205:	a1 38 b3 40 00       	mov    0x40b338,%eax
40a20a:	85 c0                	test   %eax,%eax
40a20c:	75 10                	jne    0x40a21e
40a20e:	68 38 b3 40 00       	push   $0x40b338
40a213:	68 c4 60 40 00       	push   $0x4060c4
40a218:	ff 15 4c 11 40 00    	call   *0x40114c
40a21e:	8b 35 38 b3 40 00    	mov    0x40b338,%esi
40a224:	8b 16                	mov    (%esi),%edx
40a226:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a229:	50                   	push   %eax
40a22a:	56                   	push   %esi
40a22b:	ff 52 14             	call   *0x14(%edx)
40a22e:	db e2                	fnclex
40a230:	85 c0                	test   %eax,%eax
40a232:	7d 0b                	jge    0x40a23f
40a234:	6a 14                	push   $0x14
40a236:	68 b4 60 40 00       	push   $0x4060b4
40a23b:	56                   	push   %esi
40a23c:	50                   	push   %eax
40a23d:	ff d7                	call   *%edi
40a23f:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a242:	8b 08                	mov    (%eax),%ecx
40a244:	8d 55 e0             	lea    -0x20(%ebp),%edx
40a247:	52                   	push   %edx
40a248:	50                   	push   %eax
40a249:	8b f0                	mov    %eax,%esi
40a24b:	ff 51 50             	call   *0x50(%ecx)
40a24e:	db e2                	fnclex
40a250:	85 c0                	test   %eax,%eax
40a252:	7d 0b                	jge    0x40a25f
40a254:	6a 50                	push   $0x50
40a256:	68 d4 60 40 00       	push   $0x4060d4
40a25b:	56                   	push   %esi
40a25c:	50                   	push   %eax
40a25d:	ff d7                	call   *%edi
40a25f:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a262:	50                   	push   %eax
40a263:	6a 00                	push   $0x0
40a265:	ff 15 d4 10 40 00    	call   *0x4010d4
40a26b:	8b f0                	mov    %eax,%esi
40a26d:	f7 de                	neg    %esi
40a26f:	1b f6                	sbb    %esi,%esi
40a271:	46                   	inc    %esi
40a272:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a275:	f7 de                	neg    %esi
40a277:	ff 15 cc 11 40 00    	call   *0x4011cc
40a27d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a280:	ff d3                	call   *%ebx
40a282:	66 85 f6             	test   %si,%si
40a285:	74 08                	je     0x40a28f
40a287:	6a 2e                	push   $0x2e
40a289:	ff 15 58 11 40 00    	call   *0x401158
40a28f:	9b                   	fwait
40a290:	68 c4 a2 40 00       	push   $0x40a2c4
40a295:	eb 1c                	jmp    0x40a2b3
40a297:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a29a:	ff 15 cc 11 40 00    	call   *0x4011cc
40a2a0:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a2a3:	ff 15 d0 11 40 00    	call   *0x4011d0
40a2a9:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40a2ac:	ff 15 1c 10 40 00    	call   *0x40101c
40a2b2:	c3                   	ret
40a2b3:	8b 35 cc 11 40 00    	mov    0x4011cc,%esi
40a2b9:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a2bc:	ff d6                	call   *%esi
40a2be:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40a2c1:	ff d6                	call   *%esi
40a2c3:	c3                   	ret
40a2c4:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40a2c7:	66 8b 55 e8          	mov    -0x18(%ebp),%dx
40a2cb:	5f                   	pop    %edi
40a2cc:	66 89 11             	mov    %dx,(%ecx)
40a2cf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a2d2:	5e                   	pop    %esi
40a2d3:	33 c0                	xor    %eax,%eax
40a2d5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a2dc:	5b                   	pop    %ebx
40a2dd:	8b e5                	mov    %ebp,%esp
40a2df:	5d                   	pop    %ebp
40a2e0:	c2 18 00             	ret    $0x18
40a2e3:	e9 44 70 ff ff       	jmp    0x40132c
40a2e8:	90                   	nop
40a2e9:	90                   	nop
40a2ea:	90                   	nop
40a2eb:	90                   	nop
40a2ec:	90                   	nop
40a2ed:	90                   	nop
40a2ee:	90                   	nop
40a2ef:	90                   	nop
40a2f0:	55                   	push   %ebp
40a2f1:	8b ec                	mov    %esp,%ebp
40a2f3:	83 ec 08             	sub    $0x8,%esp
40a2f6:	68 26 13 40 00       	push   $0x401326
40a2fb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a301:	50                   	push   %eax
40a302:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40a309:	81 ec d4 00 00 00    	sub    $0xd4,%esp
40a30f:	53                   	push   %ebx
40a310:	56                   	push   %esi
40a311:	57                   	push   %edi
40a312:	89 65 f8             	mov    %esp,-0x8(%ebp)
40a315:	c7 45 fc f8 12 40 00 	movl   $0x4012f8,-0x4(%ebp)
40a31c:	33 f6                	xor    %esi,%esi
40a31e:	6a 08                	push   $0x8
40a320:	68 cc 68 40 00       	push   $0x4068cc
40a325:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40a328:	50                   	push   %eax
40a329:	89 75 c8             	mov    %esi,-0x38(%ebp)
40a32c:	89 75 cc             	mov    %esi,-0x34(%ebp)
40a32f:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40a332:	89 75 c0             	mov    %esi,-0x40(%ebp)
40a335:	89 75 bc             	mov    %esi,-0x44(%ebp)
40a338:	89 75 b8             	mov    %esi,-0x48(%ebp)
40a33b:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40a33e:	89 75 a4             	mov    %esi,-0x5c(%ebp)
40a341:	89 75 94             	mov    %esi,-0x6c(%ebp)
40a344:	89 75 90             	mov    %esi,-0x70(%ebp)
40a347:	89 75 80             	mov    %esi,-0x80(%ebp)
40a34a:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
40a350:	89 b5 60 ff ff ff    	mov    %esi,-0xa0(%ebp)
40a356:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
40a35c:	89 b5 40 ff ff ff    	mov    %esi,-0xc0(%ebp)
40a362:	89 b5 3c ff ff ff    	mov    %esi,-0xc4(%ebp)
40a368:	89 b5 38 ff ff ff    	mov    %esi,-0xc8(%ebp)
40a36e:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
40a374:	ff 15 d8 10 40 00    	call   *0x4010d8
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