4021db:	2b c1                	sub    %ecx,%eax
4021dd:	8b cf                	mov    %edi,%ecx
4021df:	89 85 6c fd ff ff    	mov    %eax,-0x294(%ebp)
4021e5:	1b 8d 90 fd ff ff    	sbb    -0x270(%ebp),%ecx
4021eb:	83 a5 64 fd ff ff 00 	andl   $0x0,-0x29c(%ebp)
4021f2:	8b c1                	mov    %ecx,%eax
4021f4:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
4021fa:	25 00 00 00 80       	and    $0x80000000,%eax
4021ff:	89 8d 70 fd ff ff    	mov    %ecx,-0x290(%ebp)
402205:	df ad 6c fd ff ff    	fildll -0x294(%ebp)
40220b:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
402211:	51                   	push   %ecx
402212:	51                   	push   %ecx
402213:	df ad 64 fd ff ff    	fildll -0x29c(%ebp)
402219:	d9 e0                	fchs
40221b:	de c1                	faddp  %st,%st(1)
40221d:	dd 9d 74 fd ff ff    	fstpl  -0x28c(%ebp)
402223:	dd 85 74 fd ff ff    	fldl   -0x28c(%ebp)
402229:	dd 1c 24             	fstpl  (%esp)
40222c:	e8 e6 8f 01 00       	call   0x41b217
402231:	dc 9d 4c fd ff ff    	fcompl -0x2b4(%ebp)
402237:	df e0                	fnstsw %ax
402239:	59                   	pop    %ecx
40223a:	59                   	pop    %ecx
40223b:	f6 c4 05             	test   $0x5,%ah
40223e:	7b 7e                	jnp    0x4022be
402240:	8b 95 7c fd ff ff    	mov    -0x284(%ebp),%edx
402246:	33 c0                	xor    %eax,%eax
402248:	0f ae e8             	lfence
40224b:	0b 85 84 fd ff ff    	or     -0x27c(%ebp),%eax
402251:	8b 8d 88 fd ff ff    	mov    -0x278(%ebp),%ecx
402257:	2b d0                	sub    %eax,%edx
402259:	89 95 5c fd ff ff    	mov    %edx,-0x2a4(%ebp)
40225f:	1b f9                	sbb    %ecx,%edi
402261:	83 a5 54 fd ff ff 00 	andl   $0x0,-0x2ac(%ebp)
402268:	8b c7                	mov    %edi,%eax
40226a:	81 e7 ff ff ff 7f    	and    $0x7fffffff,%edi
402270:	25 00 00 00 80       	and    $0x80000000,%eax
402275:	89 bd 60 fd ff ff    	mov    %edi,-0x2a0(%ebp)
40227b:	df ad 5c fd ff ff    	fildll -0x2a4(%ebp)
402281:	89 85 58 fd ff ff    	mov    %eax,-0x2a8(%ebp)
402287:	51                   	push   %ecx
402288:	51                   	push   %ecx
402289:	df ad 54 fd ff ff    	fildll -0x2ac(%ebp)
40228f:	d9 e0                	fchs
402291:	de c1                	faddp  %st,%st(1)
402293:	dd 9d 74 fd ff ff    	fstpl  -0x28c(%ebp)
402299:	dd 85 74 fd ff ff    	fldl   -0x28c(%ebp)
40229f:	dd 1c 24             	fstpl  (%esp)
4022a2:	e8 70 8f 01 00       	call   0x41b217
4022a7:	dc 9d 4c fd ff ff    	fcompl -0x2b4(%ebp)
4022ad:	df e0                	fnstsw %ax
4022af:	59                   	pop    %ecx
4022b0:	59                   	pop    %ecx
4022b1:	f6 c4 05             	test   $0x5,%ah
4022b4:	7b 08                	jnp    0x4022be
4022b6:	ff 36                	push   (%esi)
4022b8:	ff 15 b0 c1 41 00    	call   *0x41c1b0
4022be:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
4022c4:	50                   	push   %eax
4022c5:	53                   	push   %ebx
4022c6:	ff 15 a4 c0 41 00    	call   *0x41c0a4
4022cc:	85 c0                	test   %eax,%eax
4022ce:	0f 85 25 fe ff ff    	jne    0x4020f9
4022d4:	53                   	push   %ebx
4022d5:	ff 15 9c c0 41 00    	call   *0x41c09c
4022db:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
4022e1:	57                   	push   %edi
4022e2:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
4022e8:	8b ce                	mov    %esi,%ecx
4022ea:	50                   	push   %eax
4022eb:	e8 04 12 00 00       	call   0x4034f4
4022f0:	50                   	push   %eax
4022f1:	8b ce                	mov    %esi,%ecx
4022f3:	e8 e5 12 00 00       	call   0x4035dd
4022f8:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
4022fe:	8d 49 f0             	lea    -0x10(%ecx),%ecx
402301:	e8 fc ef ff ff       	call   0x401302
402306:	ff 36                	push   (%esi)
402308:	ff 15 94 c1 41 00    	call   *0x41c194
40230e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402311:	5f                   	pop    %edi
402312:	5e                   	pop    %esi
402313:	33 cd                	xor    %ebp,%ecx
402315:	5b                   	pop    %ebx
402316:	e8 da 68 00 00       	call   0x408bf5
40231b:	c9                   	leave
40231c:	c2 04 00             	ret    $0x4
40231f:	55                   	push   %ebp
402320:	8b ec                	mov    %esp,%ebp
402322:	81 ec 8c 02 00 00    	sub    $0x28c,%esp
402328:	a1 18 60 42 00       	mov    0x426018,%eax
40232d:	33 c5                	xor    %ebp,%eax
40232f:	89 45 fc             	mov    %eax,-0x4(%ebp)
402332:	53                   	push   %ebx
402333:	56                   	push   %esi
402334:	33 f6                	xor    %esi,%esi
402336:	8b d9                	mov    %ecx,%ebx
402338:	57                   	push   %edi
402339:	89 75 f4             	mov    %esi,-0xc(%ebp)
40233c:	e8 ea ef ff ff       	call   0x40132b
402341:	50                   	push   %eax
402342:	8d 4d f4             	lea    -0xc(%ebp),%ecx
402345:	e8 b2 17 00 00       	call   0x403afc
40234a:	68 c0 2b 42 00       	push   $0x422bc0
40234f:	ff 75 08             	push   0x8(%ebp)
402352:	8d 45 f4             	lea    -0xc(%ebp),%eax
402355:	68 bc 28 42 00       	push   $0x4228bc
40235a:	50                   	push   %eax
40235b:	e8 90 1a 00 00       	call   0x403df0
402360:	68 50 02 00 00       	push   $0x250
402365:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
40236b:	56                   	push   %esi
40236c:	50                   	push   %eax
40236d:	e8 9e 6d 00 00       	call   0x409110
402372:	83 c4 1c             	add    $0x1c,%esp
402375:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
40237b:	56                   	push   %esi
40237c:	56                   	push   %esi
40237d:	6a 01                	push   $0x1
40237f:	50                   	push   %eax
402380:	56                   	push   %esi
402381:	8b 75 f4             	mov    -0xc(%ebp),%esi
402384:	56                   	push   %esi
402385:	ff 15 a0 c0 41 00    	call   *0x41c0a0
40238b:	8b f8                	mov    %eax,%edi
40238d:	83 ff ff             	cmp    $0xffffffff,%edi
402390:	75 08                	jne    0x40239a
402392:	8d 4e f0             	lea    -0x10(%esi),%ecx
402395:	e9 40 01 00 00       	jmp    0x4024da
40239a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40239e:	e8 88 ef ff ff       	call   0x40132b
4023a3:	50                   	push   %eax
4023a4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4023a7:	e8 50 17 00 00       	call   0x403afc
4023ac:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
4023b2:	25 10 04 00 00       	and    $0x410,%eax
4023b7:	83 f8 10             	cmp    $0x10,%eax
4023ba:	0f 85 ec 00 00 00    	jne    0x4024ac
4023c0:	66 83 7d cc 00       	cmpw   $0x0,-0x34(%ebp)
4023c5:	8d 75 cc             	lea    -0x34(%ebp),%esi
4023c8:	75 06                	jne    0x4023d0
4023ca:	8d b5 c4 fd ff ff    	lea    -0x23c(%ebp),%esi
4023d0:	56                   	push   %esi
4023d1:	e8 ef fb ff ff       	call   0x401fc5
4023d6:	84 c0                	test   %al,%al
4023d8:	0f 85 ce 00 00 00    	jne    0x4024ac
4023de:	56                   	push   %esi
4023df:	ff 75 08             	push   0x8(%ebp)
4023e2:	8d 45 f8             	lea    -0x8(%ebp),%eax
4023e5:	68 d0 28 42 00       	push   $0x4228d0
4023ea:	50                   	push   %eax
4023eb:	e8 00 1a 00 00       	call   0x403df0
4023f0:	83 c4 10             	add    $0x10,%esp
4023f3:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
4023f9:	33 f6                	xor    %esi,%esi
4023fb:	89 b5 90 fd ff ff    	mov    %esi,-0x270(%ebp)
402401:	89 b5 94 fd ff ff    	mov    %esi,-0x26c(%ebp)
402407:	56                   	push   %esi
402408:	51                   	push   %ecx
402409:	50                   	push   %eax
40240a:	ff 75 f8             	push   -0x8(%ebp)
40240d:	e8 e7 fb ff ff       	call   0x401ff9
402412:	85 c0                	test   %eax,%eax
402414:	0f 88 92 00 00 00    	js     0x4024ac
40241a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40241d:	89 75 ec             	mov    %esi,-0x14(%ebp)
402420:	50                   	push   %eax
402421:	89 75 f0             	mov    %esi,-0x10(%ebp)
402424:	ff 15 74 c1 41 00    	call   *0x41c174
40242a:	8b 95 94 fd ff ff    	mov    -0x26c(%ebp),%edx
402430:	33 c0                	xor    %eax,%eax
402432:	0b 45 ec             	or     -0x14(%ebp),%eax
402435:	33 c9                	xor    %ecx,%ecx
402437:	0b 8d 90 fd ff ff    	or     -0x270(%ebp),%ecx
40243d:	0b d6                	or     %esi,%edx
40243f:	8b 75 f0             	mov    -0x10(%ebp),%esi
402442:	2b c1                	sub    %ecx,%eax
402444:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
40244a:	1b f2                	sbb    %edx,%esi
40244c:	83 a5 80 fd ff ff 00 	andl   $0x0,-0x280(%ebp)
402453:	8b c6                	mov    %esi,%eax
402455:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
40245b:	25 00 00 00 80       	and    $0x80000000,%eax
402460:	89 b5 8c fd ff ff    	mov    %esi,-0x274(%ebp)
402466:	df ad 88 fd ff ff    	fildll -0x278(%ebp)
40246c:	89 85 84 fd ff ff    	mov    %eax,-0x27c(%ebp)
402472:	51                   	push   %ecx
402473:	51                   	push   %ecx
402474:	df ad 80 fd ff ff    	fildll -0x280(%ebp)
40247a:	d9 e0                	fchs
40247c:	de c1                	faddp  %st,%st(1)
40247e:	dd 9d 78 fd ff ff    	fstpl  -0x288(%ebp)
402484:	dd 85 78 fd ff ff    	fldl   -0x288(%ebp)
40248a:	dd 1c 24             	fstpl  (%esp)
40248d:	e8 85 8d 01 00       	call   0x41b217
402492:	dc 1d 40 35 42 00    	fcompl 0x423540
402498:	df e0                	fnstsw %ax
40249a:	59                   	pop    %ecx
40249b:	59                   	pop    %ecx
40249c:	f6 c4 05             	test   $0x5,%ah
40249f:	7b 0b                	jnp    0x4024ac
4024a1:	8d 45 f8             	lea    -0x8(%ebp),%eax
4024a4:	8b cb                	mov    %ebx,%ecx
4024a6:	50                   	push   %eax
4024a7:	e8 d2 fb ff ff       	call   0x40207e
4024ac:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
4024b2:	50                   	push   %eax
4024b3:	57                   	push   %edi
4024b4:	ff 15 a4 c0 41 00    	call   *0x41c0a4
4024ba:	85 c0                	test   %eax,%eax
4024bc:	0f 85 ea fe ff ff    	jne    0x4023ac
4024c2:	57                   	push   %edi
4024c3:	ff 15 9c c0 41 00    	call   *0x41c09c
4024c9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4024cc:	8d 49 f0             	lea    -0x10(%ecx),%ecx
4024cf:	e8 2e ee ff ff       	call   0x401302
4024d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4024d7:	83 c1 f0             	add    $0xfffffff0,%ecx
4024da:	e8 23 ee ff ff       	call   0x401302
4024df:	8b 4d 08             	mov    0x8(%ebp),%ecx
4024e2:	8d 49 f0             	lea    -0x10(%ecx),%ecx
4024e5:	e8 18 ee ff ff       	call   0x401302
4024ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4024ed:	5f                   	pop    %edi
4024ee:	5e                   	pop    %esi
4024ef:	33 cd                	xor    %ebp,%ecx
4024f1:	5b                   	pop    %ebx
4024f2:	e8 fe 66 00 00       	call   0x408bf5
4024f7:	c9                   	leave
4024f8:	c2 08 00             	ret    $0x8
4024fb:	55                   	push   %ebp
4024fc:	8b ec                	mov    %esp,%ebp
4024fe:	83 ec 10             	sub    $0x10,%esp
402501:	a1 18 60 42 00       	mov    0x426018,%eax
402506:	33 c5                	xor    %ebp,%eax
402508:	89 45 fc             	mov    %eax,-0x4(%ebp)
40250b:	53                   	push   %ebx
40250c:	56                   	push   %esi
40250d:	57                   	push   %edi
40250e:	8b 7d 08             	mov    0x8(%ebp),%edi
402511:	33 db                	xor    %ebx,%ebx
402513:	53                   	push   %ebx
402514:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402517:	ff 37                	push   (%edi)
402519:	ff 15 84 c1 41 00    	call   *0x41c184
40251f:	85 c0                	test   %eax,%eax
402521:	75 14                	jne    0x402537
402523:	ff 15 48 c1 41 00    	call   *0x41c148
402529:	3d b7 00 00 00       	cmp    $0xb7,%eax
40252e:	74 07                	je     0x402537
402530:	32 c0                	xor    %al,%al
402532:	e9 91 00 00 00       	jmp    0x4025c8
402537:	51                   	push   %ecx
402538:	51                   	push   %ecx
402539:	8b 0f                	mov    (%edi),%ecx
40253b:	8b f4                	mov    %esp,%esi
40253d:	83 e9 10             	sub    $0x10,%ecx
402540:	e8 f0 15 00 00       	call   0x403b35
402545:	83 c0 10             	add    $0x10,%eax
402548:	89 06                	mov    %eax,(%esi)
40254a:	8b 75 f4             	mov    -0xc(%ebp),%esi
40254d:	8b ce                	mov    %esi,%ecx
40254f:	e8 cb fd ff ff       	call   0x40231f
402554:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402557:	e8 cf ed ff ff       	call   0x40132b
40255c:	50                   	push   %eax
40255d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
402560:	e8 97 15 00 00       	call   0x403afc
402565:	68 04 01 00 00       	push   $0x104
40256a:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40256d:	e8 6e 11 00 00       	call   0x4036e0
402572:	50                   	push   %eax
402573:	53                   	push   %ebx
402574:	68 c0 2b 42 00       	push   $0x422bc0
402579:	ff 37                	push   (%edi)
40257b:	ff 15 d4 c1 41 00    	call   *0x41c1d4
402581:	6a ff                	push   $0xffffffff
402583:	8d 4d f8             	lea    -0x8(%ebp),%ecx
402586:	8b f8                	mov    %eax,%edi
402588:	e8 27 11 00 00       	call   0x4036b4
40258d:	85 ff                	test   %edi,%edi
40258f:	74 2a                	je     0x4025bb
402591:	83 ff 6f             	cmp    $0x6f,%edi
402594:	74 25                	je     0x4025bb
402596:	ff 75 f8             	push   -0x8(%ebp)
402599:	ff 15 b0 c1 41 00    	call   *0x41c1b0
40259f:	53                   	push   %ebx
4025a0:	ff 75 f8             	push   -0x8(%ebp)
4025a3:	ff 15 84 c1 41 00    	call   *0x41c184
4025a9:	85 c0                	test   %eax,%eax
4025ab:	74 0e                	je     0x4025bb
4025ad:	8d 45 f8             	lea    -0x8(%ebp),%eax
4025b0:	50                   	push   %eax
4025b1:	8d 4e 20             	lea    0x20(%esi),%ecx
4025b4:	e8 24 10 00 00       	call   0x4035dd
4025b9:	b3 01                	mov    $0x1,%bl
4025bb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4025be:	83 c1 f0             	add    $0xfffffff0,%ecx
4025c1:	e8 3c ed ff ff       	call   0x401302
4025c6:	8a c3                	mov    %bl,%al
4025c8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4025cb:	5f                   	pop    %edi
4025cc:	5e                   	pop    %esi
4025cd:	33 cd                	xor    %ebp,%ecx
4025cf:	5b                   	pop    %ebx
4025d0:	e8 20 66 00 00       	call   0x408bf5
4025d5:	c9                   	leave
4025d6:	c2 04 00             	ret    $0x4
4025d9:	55                   	push   %ebp
4025da:	8b ec                	mov    %esp,%ebp
4025dc:	83 ec 0c             	sub    $0xc,%esp
4025df:	a1 18 60 42 00       	mov    0x426018,%eax
4025e4:	33 c5                	xor    %ebp,%eax
4025e6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4025e9:	53                   	push   %ebx
4025ea:	56                   	push   %esi
4025eb:	57                   	push   %edi
4025ec:	8b f9                	mov    %ecx,%edi
4025ee:	ff 15 24 c2 41 00    	call   *0x41c224
4025f4:	85 c0                	test   %eax,%eax
4025f6:	75 07                	jne    0x4025ff
4025f8:	32 c0                	xor    %al,%al
4025fa:	e9 bb 00 00 00       	jmp    0x4026ba
4025ff:	33 db                	xor    %ebx,%ebx
402601:	89 5d f4             	mov    %ebx,-0xc(%ebp)
402604:	e8 22 ed ff ff       	call   0x40132b
402609:	50                   	push   %eax
40260a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40260d:	e8 ea 14 00 00       	call   0x403afc
402612:	68 04 01 00 00       	push   $0x104
402617:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40261a:	e8 c1 10 00 00       	call   0x4036e0
40261f:	50                   	push   %eax
402620:	53                   	push   %ebx
402621:	53                   	push   %ebx
402622:	68 26 80 00 00       	push   $0x8026
402627:	53                   	push   %ebx
402628:	ff 15 2c c2 41 00    	call   *0x41c22c
40262e:	6a ff                	push   $0xffffffff
402630:	8d 4d f4             	lea    -0xc(%ebp),%ecx
402633:	8b f0                	mov    %eax,%esi
402635:	e8 7a 10 00 00       	call   0x4036b4
40263a:	85 f6                	test   %esi,%esi
40263c:	78 6f                	js     0x4026ad
40263e:	ff 75 f4             	push   -0xc(%ebp)
402641:	8d 4d f8             	lea    -0x8(%ebp),%ecx
402644:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402647:	e8 1c 10 00 00       	call   0x403668
40264c:	68 34 27 42 00       	push   $0x422734