45717a:	8b 4f 04             	mov    0x4(%edi),%ecx
45717d:	6a 29                	push   $0x29
45717f:	8b 71 20             	mov    0x20(%ecx),%esi
457182:	8b ce                	mov    %esi,%ecx
457184:	e8 63 aa fa ff       	call   0x401bec
457189:	84 c0                	test   %al,%al
45718b:	75 1c                	jne    0x4571a9
45718d:	8b ce                	mov    %esi,%ecx
45718f:	e8 f2 60 fb ff       	call   0x40d286
457194:	89 44 24 10          	mov    %eax,0x10(%esp)
457198:	db 44 24 10          	fildl  0x10(%esp)
45719c:	d9 ee                	fldz
45719e:	d8 d9                	fcomp  %st(1)
4571a0:	df e0                	fnstsw %ax
4571a2:	f6 c4 01             	test   $0x1,%ah
4571a5:	75 08                	jne    0x4571af
4571a7:	dd d8                	fstp   %st(0)
4571a9:	dd 05 10 6a 4b 00    	fldl   0x4b6a10
4571af:	dd 5c 24 38          	fstpl  0x38(%esp)
4571b3:	8b 47 04             	mov    0x4(%edi),%eax
4571b6:	6a 29                	push   $0x29
4571b8:	8b 70 1c             	mov    0x1c(%eax),%esi
4571bb:	8b ce                	mov    %esi,%ecx
4571bd:	e8 2a aa fa ff       	call   0x401bec
4571c2:	84 c0                	test   %al,%al
4571c4:	74 0a                	je     0x4571d0
4571c6:	81 4c 24 30 80 00 00 	orl    $0x80,0x30(%esp)
4571cd:	00
4571ce:	eb 0b                	jmp    0x4571db
4571d0:	8b ce                	mov    %esi,%ecx
4571d2:	e8 af 60 fb ff       	call   0x40d286
4571d7:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4571db:	8b 47 04             	mov    0x4(%edi),%eax
4571de:	6a 29                	push   $0x29
4571e0:	8b 70 18             	mov    0x18(%eax),%esi
4571e3:	8b ce                	mov    %esi,%ecx
4571e5:	e8 02 aa fa ff       	call   0x401bec
4571ea:	84 c0                	test   %al,%al
4571ec:	74 07                	je     0x4571f5
4571ee:	83 4c 24 30 40       	orl    $0x40,0x30(%esp)
4571f3:	eb 0b                	jmp    0x457200
4571f5:	8b ce                	mov    %esi,%ecx
4571f7:	e8 8a 60 fb ff       	call   0x40d286
4571fc:	89 44 24 28          	mov    %eax,0x28(%esp)
457200:	8b 47 04             	mov    0x4(%edi),%eax
457203:	8b 48 14             	mov    0x14(%eax),%ecx
457206:	e8 7b 60 fb ff       	call   0x40d286
45720b:	85 c0                	test   %eax,%eax
45720d:	78 20                	js     0x45722f
45720f:	8b 47 04             	mov    0x4(%edi),%eax
457212:	6a 29                	push   $0x29
457214:	8b 70 14             	mov    0x14(%eax),%esi
457217:	8b ce                	mov    %esi,%ecx
457219:	e8 ce a9 fa ff       	call   0x401bec
45721e:	84 c0                	test   %al,%al
457220:	75 0d                	jne    0x45722f
457222:	8b ce                	mov    %esi,%ecx
457224:	e8 5d 60 fb ff       	call   0x40d286
457229:	89 44 24 24          	mov    %eax,0x24(%esp)
45722d:	eb 05                	jmp    0x457234
45722f:	83 4c 24 30 20       	orl    $0x20,0x30(%esp)
457234:	8b 47 04             	mov    0x4(%edi),%eax
457237:	8b 48 10             	mov    0x10(%eax),%ecx
45723a:	e8 47 60 fb ff       	call   0x40d286
45723f:	85 c0                	test   %eax,%eax
457241:	78 20                	js     0x457263
457243:	8b 47 04             	mov    0x4(%edi),%eax
457246:	6a 29                	push   $0x29
457248:	8b 70 10             	mov    0x10(%eax),%esi
45724b:	8b ce                	mov    %esi,%ecx
45724d:	e8 9a a9 fa ff       	call   0x401bec
457252:	84 c0                	test   %al,%al
457254:	75 0d                	jne    0x457263
457256:	8b ce                	mov    %esi,%ecx
457258:	e8 29 60 fb ff       	call   0x40d286
45725d:	89 44 24 20          	mov    %eax,0x20(%esp)
457261:	eb 05                	jmp    0x457268
457263:	83 4c 24 30 10       	orl    $0x10,0x30(%esp)
457268:	8b 47 04             	mov    0x4(%edi),%eax
45726b:	6a 29                	push   $0x29
45726d:	8b 70 0c             	mov    0xc(%eax),%esi
457270:	8b ce                	mov    %esi,%ecx
457272:	e8 75 a9 fa ff       	call   0x401bec
457277:	84 c0                	test   %al,%al
457279:	74 2c                	je     0x4572a7
45727b:	33 c0                	xor    %eax,%eax
45727d:	66 89 44 24 40       	mov    %ax,0x40(%esp)
457282:	8b 47 04             	mov    0x4(%edi),%eax
457285:	6a 29                	push   $0x29
457287:	8b 70 08             	mov    0x8(%eax),%esi
45728a:	8b ce                	mov    %esi,%ecx
45728c:	e8 5b a9 fa ff       	call   0x401bec
457291:	84 c0                	test   %al,%al
457293:	0f 84 23 01 00 00    	je     0x4573bc
457299:	8d 4c 24 54          	lea    0x54(%esp),%ecx
45729d:	e8 2c 4a fb ff       	call   0x40bcce
4572a2:	e9 28 01 00 00       	jmp    0x4573cf
4572a7:	8b ce                	mov    %esi,%ecx
4572a9:	e8 be 20 fb ff       	call   0x40936c
4572ae:	8b 46 08             	mov    0x8(%esi),%eax
4572b1:	8b 00                	mov    (%eax),%eax
4572b3:	0f b7 30             	movzwl (%eax),%esi
4572b6:	66 85 f6             	test   %si,%si
4572b9:	74 c7                	je     0x457282
4572bb:	8b ce                	mov    %esi,%ecx
4572bd:	e8 5e 61 fc ff       	call   0x41d420
4572c2:	85 c0                	test   %eax,%eax
4572c4:	75 05                	jne    0x4572cb
4572c6:	66 89 74 24 40       	mov    %si,0x40(%esp)
4572cb:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
4572d2:	00
4572d3:	8b 47 04             	mov    0x4(%edi),%eax
4572d6:	8b 70 0c             	mov    0xc(%eax),%esi
4572d9:	8b ce                	mov    %esi,%ecx
4572db:	e8 8c 20 fb ff       	call   0x40936c
4572e0:	8b 46 08             	mov    0x8(%esi),%eax
4572e3:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4572e7:	8b 00                	mov    (%eax),%eax
4572e9:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4572ed:	66 85 c0             	test   %ax,%ax
4572f0:	74 90                	je     0x457282
4572f2:	83 f8 30             	cmp    $0x30,%eax
4572f5:	0f 8c 9f 00 00 00    	jl     0x45739a
4572fb:	83 f8 39             	cmp    $0x39,%eax
4572fe:	7e 15                	jle    0x457315
457300:	83 f8 4d             	cmp    $0x4d,%eax
457303:	74 09                	je     0x45730e
457305:	83 f8 6d             	cmp    $0x6d,%eax
457308:	0f 85 8c 00 00 00    	jne    0x45739a
45730e:	83 4c 24 30 01       	orl    $0x1,0x30(%esp)
457313:	eb 7c                	jmp    0x457391
457315:	8b 47 04             	mov    0x4(%edi),%eax
457318:	8b 70 0c             	mov    0xc(%eax),%esi
45731b:	8b ce                	mov    %esi,%ecx
45731d:	e8 4a 20 fb ff       	call   0x40936c
457322:	8b 46 08             	mov    0x8(%esi),%eax
457325:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
457329:	8b 00                	mov    (%eax),%eax
45732b:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
45732f:	83 e8 30             	sub    $0x30,%eax
457332:	89 44 24 10          	mov    %eax,0x10(%esp)
457336:	8b 47 04             	mov    0x4(%edi),%eax
457339:	8b 70 0c             	mov    0xc(%eax),%esi
45733c:	8b ce                	mov    %esi,%ecx
45733e:	e8 29 20 fb ff       	call   0x40936c
457343:	8b 46 08             	mov    0x8(%esi),%eax
457346:	8b 00                	mov    (%eax),%eax
457348:	0f b7 44 58 02       	movzwl 0x2(%eax,%ebx,2),%eax
45734d:	50                   	push   %eax
45734e:	e8 d2 a9 fc ff       	call   0x421d25
457353:	59                   	pop    %ecx
457354:	85 c0                	test   %eax,%eax
457356:	74 29                	je     0x457381
457358:	8b 47 04             	mov    0x4(%edi),%eax
45735b:	43                   	inc    %ebx
45735c:	8b 70 0c             	mov    0xc(%eax),%esi
45735f:	8b ce                	mov    %esi,%ecx
457361:	e8 06 20 fb ff       	call   0x40936c
457366:	8b 4c 24 10          	mov    0x10(%esp),%ecx
45736a:	8b 46 08             	mov    0x8(%esi),%eax
45736d:	6b c9 0a             	imul   $0xa,%ecx,%ecx
457370:	8b 00                	mov    (%eax),%eax
457372:	83 c1 d0             	add    $0xffffffd0,%ecx
457375:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
457379:	03 c8                	add    %eax,%ecx
45737b:	89 4c 24 10          	mov    %ecx,0x10(%esp)
45737f:	eb b5                	jmp    0x457336
457381:	8b 44 24 10          	mov    0x10(%esp),%eax
457385:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
457389:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45738d:	89 44 24 34          	mov    %eax,0x34(%esp)
457391:	ff 44 24 0c          	incl   0xc(%esp)
457395:	e9 39 ff ff ff       	jmp    0x4572d3
45739a:	6a 00                	push   $0x0
45739c:	6a 03                	push   $0x3
45739e:	8b 03                	mov    (%ebx),%eax
4573a0:	8b 48 04             	mov    0x4(%eax),%ecx
4573a3:	03 cb                	add    %ebx,%ecx
4573a5:	e8 a2 5b ff ff       	call   0x44cf4c
4573aa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4573ad:	68 00 dc 49 00       	push   $0x49dc00
4573b2:	e8 02 5a fb ff       	call   0x40cdb9
4573b7:	e9 12 01 00 00       	jmp    0x4574ce
4573bc:	8b ce                	mov    %esi,%ecx
4573be:	e8 a9 1f fb ff       	call   0x40936c
4573c3:	ff 76 08             	push   0x8(%esi)
4573c6:	8d 4c 24 58          	lea    0x58(%esp),%ecx
4573ca:	e8 1e fb fa ff       	call   0x406eed
4573cf:	8b 47 04             	mov    0x4(%edi),%eax
4573d2:	6a 29                	push   $0x29
4573d4:	8b 70 04             	mov    0x4(%eax),%esi
4573d7:	8b ce                	mov    %esi,%ecx
4573d9:	e8 0e a8 fa ff       	call   0x401bec
4573de:	84 c0                	test   %al,%al
4573e0:	74 0b                	je     0x4573ed
4573e2:	8d 4c 24 64          	lea    0x64(%esp),%ecx
4573e6:	e8 e3 48 fb ff       	call   0x40bcce
4573eb:	eb 13                	jmp    0x457400
4573ed:	8b ce                	mov    %esi,%ecx
4573ef:	e8 78 1f fb ff       	call   0x40936c
4573f4:	ff 76 08             	push   0x8(%esi)
4573f7:	8d 4c 24 68          	lea    0x68(%esp),%ecx
4573fb:	e8 ed fa fa ff       	call   0x406eed
457400:	8b 47 04             	mov    0x4(%edi),%eax
457403:	6a 29                	push   $0x29
457405:	8b 30                	mov    (%eax),%esi
457407:	8b ce                	mov    %esi,%ecx
457409:	e8 de a7 fa ff       	call   0x401bec
45740e:	84 c0                	test   %al,%al
457410:	74 09                	je     0x45741b
457412:	8d 83 b8 00 00 00    	lea    0xb8(%ebx),%eax
457418:	50                   	push   %eax
457419:	eb 0a                	jmp    0x457425
45741b:	8b ce                	mov    %esi,%ecx
45741d:	e8 4a 1f fb ff       	call   0x40936c
457422:	ff 76 08             	push   0x8(%esi)
457425:	8d 4c 24 48          	lea    0x48(%esp),%ecx
457429:	e8 bf fa fa ff       	call   0x406eed
45742e:	83 7c 24 1c 06       	cmpl   $0x6,0x1c(%esp)
457433:	77 08                	ja     0x45743d
457435:	81 4c 24 30 c0 00 00 	orl    $0xc0,0x30(%esp)
45743c:	00
45743d:	8b 54 24 2c          	mov    0x2c(%esp),%edx
457441:	51                   	push   %ecx
457442:	ff 74 24 28          	push   0x28(%esp)
457446:	8b 4c 24 30          	mov    0x30(%esp),%ecx
45744a:	ff 74 24 28          	push   0x28(%esp)
45744e:	e8 6a ff fe ff       	call   0x4473bd
457453:	83 c4 0c             	add    $0xc,%esp
457456:	85 c0                	test   %eax,%eax
457458:	75 08                	jne    0x457462
45745a:	50                   	push   %eax
45745b:	6a 04                	push   $0x4
45745d:	e9 3c ff ff ff       	jmp    0x45739e
457462:	ff 74 24 14          	push   0x14(%esp)
457466:	51                   	push   %ecx
457467:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45746b:	e8 c2 75 fe ff       	call   0x43ea32
457470:	83 f8 01             	cmp    $0x1,%eax
457473:	75 0f                	jne    0x457484
457475:	8b 4d 0c             	mov    0xc(%ebp),%ecx
457478:	8d 44 24 54          	lea    0x54(%esp),%eax
45747c:	50                   	push   %eax
45747d:	e8 e6 f6 fa ff       	call   0x406b68
457482:	eb 4a                	jmp    0x4574ce
457484:	6a 00                	push   $0x0
457486:	83 f8 02             	cmp    $0x2,%eax
457489:	75 07                	jne    0x457492
45748b:	6a 01                	push   $0x1
45748d:	e9 0c ff ff ff       	jmp    0x45739e
457492:	83 f8 03             	cmp    $0x3,%eax
457495:	8b 03                	mov    (%ebx),%eax
457497:	8b 48 04             	mov    0x4(%eax),%ecx
45749a:	75 07                	jne    0x4574a3
45749c:	6a 02                	push   $0x2
45749e:	e9 00 ff ff ff       	jmp    0x4573a3
4574a3:	6a 03                	push   $0x3
4574a5:	e9 f9 fe ff ff       	jmp    0x4573a3
4574aa:	8b 75 0c             	mov    0xc(%ebp),%esi
4574ad:	8b ce                	mov    %esi,%ecx
4574af:	e8 6c b7 fb ff       	call   0x412c20
4574b4:	83 26 00             	andl   $0x0,(%esi)
4574b7:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4574be:	8b 03                	mov    (%ebx),%eax
4574c0:	6a 00                	push   $0x0
4574c2:	8b 48 04             	mov    0x4(%eax),%ecx
4574c5:	6a 05                	push   $0x5
4574c7:	03 cb                	add    %ebx,%ecx
4574c9:	e8 7e 5a ff ff       	call   0x44cf4c
4574ce:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4574d2:	e8 70 ef ff ff       	call   0x456447
4574d7:	5f                   	pop    %edi
4574d8:	5e                   	pop    %esi
4574d9:	33 c0                	xor    %eax,%eax
4574db:	5b                   	pop    %ebx
4574dc:	8b e5                	mov    %ebp,%esp
4574de:	5d                   	pop    %ebp
4574df:	c2 08 00             	ret    $0x8
4574e2:	cf                   	iret
4574e3:	73 45                	jae    0x45752a
4574e5:	00 82 72 45 00 68    	add    %al,0x68004572(%edx)
4574eb:	72 45                	jb     0x457532
4574ed:	00 34 72             	add    %dh,(%edx,%esi,2)
4574f0:	45                   	inc    %ebp
4574f1:	00 00                	add    %al,(%eax)
4574f3:	72 45                	jb     0x45753a
4574f5:	00 db                	add    %bl,%bl
4574f7:	71 45                	jno    0x45753e
4574f9:	00 b3 71 45 00 7a    	add    %dh,0x7a004571(%ebx)
4574ff:	71 45                	jno    0x457546
457501:	00 6b 71             	add    %ch,0x71(%ebx)
457504:	45                   	inc    %ebp
457505:	00 55 8b             	add    %dl,-0x75(%ebp)
457508:	ec                   	in     (%dx),%al
457509:	e8 ec fc fe ff       	call   0x4471fa
45750e:	84 c0                	test   %al,%al
457510:	75 16                	jne    0x457528
457512:	56                   	push   %esi
457513:	8b 75 0c             	mov    0xc(%ebp),%esi
457516:	8b ce                	mov    %esi,%ecx
457518:	e8 03 b7 fb ff       	call   0x412c20
45751d:	83 26 00             	andl   $0x0,(%esi)
457520:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
457527:	5e                   	pop    %esi
457528:	33 c0                	xor    %eax,%eax
45752a:	5d                   	pop    %ebp
45752b:	c2 08 00             	ret    $0x8
45752e:	55                   	push   %ebp
45752f:	8b ec                	mov    %esp,%ebp
457531:	8b 45 08             	mov    0x8(%ebp),%eax
457534:	6a 09                	push   $0x9
457536:	8b 48 04             	mov    0x4(%eax),%ecx
457539:	8b 09                	mov    (%ecx),%ecx
45753b:	e8 a4 60 fb ff       	call   0x40d5e4
457540:	84 c0                	test   %al,%al
457542:	75 16                	jne    0x45755a
457544:	56                   	push   %esi
457545:	8b 75 0c             	mov    0xc(%ebp),%esi
457548:	8b ce                	mov    %esi,%ecx
45754a:	e8 d1 b6 fb ff       	call   0x412c20
45754f:	83 26 00             	andl   $0x0,(%esi)
457552:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
457559:	5e                   	pop    %esi
45755a:	33 c0                	xor    %eax,%eax
45755c:	5d                   	pop    %ebp
45755d:	c2 08 00             	ret    $0x8
457560:	55                   	push   %ebp
457561:	8b ec                	mov    %esp,%ebp
457563:	83 ec 10             	sub    $0x10,%esp
457566:	8b 45 08             	mov    0x8(%ebp),%eax
457569:	56                   	push   %esi
45756a:	8b 40 04             	mov    0x4(%eax),%eax
45756d:	57                   	push   %edi
45756e:	8b 30                	mov    (%eax),%esi
457570:	8b ce                	mov    %esi,%ecx
457572:	e8 f5 1d fb ff       	call   0x40936c
457577:	8b 4e 08             	mov    0x8(%esi),%ecx
45757a:	8b 01                	mov    (%ecx),%eax
45757c:	89 45 f0             	mov    %eax,-0x10(%ebp)
45757f:	8b 41 04             	mov    0x4(%ecx),%eax
457582:	89 45 f4             	mov    %eax,-0xc(%ebp)
457585:	8b 41 08             	mov    0x8(%ecx),%eax
457588:	89 45 f8             	mov    %eax,-0x8(%ebp)
45758b:	8b 41 0c             	mov    0xc(%ecx),%eax
45758e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
457591:	ff 00                	incl   (%eax)
457593:	89 45 fc             	mov    %eax,-0x4(%ebp)
457596:	e8 5f 48 fb ff       	call   0x40bdfa
45759b:	ff 75 f4             	push   -0xc(%ebp)
45759e:	ff 75 f0             	push   -0x10(%ebp)