4054bc:	89 01                	mov    %eax,(%ecx)
4054be:	89 51 04             	mov    %edx,0x4(%ecx)
4054c1:	c3                   	ret
4054c2:	8b c0                	mov    %eax,%eax
4054c4:	01 10                	add    %edx,(%eax)
4054c6:	83 50 04 00          	adcl   $0x0,0x4(%eax)
4054ca:	c3                   	ret
4054cb:	90                   	nop
4054cc:	56                   	push   %esi
4054cd:	96                   	xchg   %eax,%esi
4054ce:	ad                   	lods   %ds:(%esi),%eax
4054cf:	2b 02                	sub    (%edx),%eax
4054d1:	89 01                	mov    %eax,(%ecx)
4054d3:	ad                   	lods   %ds:(%esi),%eax
4054d4:	1b 42 04             	sbb    0x4(%edx),%eax
4054d7:	89 41 04             	mov    %eax,0x4(%ecx)
4054da:	5e                   	pop    %esi
4054db:	c3                   	ret
4054dc:	8b 08                	mov    (%eax),%ecx
4054de:	f7 d9                	neg    %ecx
4054e0:	89 0a                	mov    %ecx,(%edx)
4054e2:	b9 00 00 00 00       	mov    $0x0,%ecx
4054e7:	1b 48 04             	sbb    0x4(%eax),%ecx
4054ea:	89 4a 04             	mov    %ecx,0x4(%edx)
4054ed:	c3                   	ret
4054ee:	8b c0                	mov    %eax,%eax
4054f0:	56                   	push   %esi
4054f1:	57                   	push   %edi
4054f2:	96                   	xchg   %eax,%esi
4054f3:	89 cf                	mov    %ecx,%edi
4054f5:	89 d1                	mov    %edx,%ecx
4054f7:	ad                   	lods   %ds:(%esi),%eax
4054f8:	f7 e1                	mul    %ecx
4054fa:	ab                   	stos   %eax,%es:(%edi)
4054fb:	87 d1                	xchg   %edx,%ecx
4054fd:	ad                   	lods   %ds:(%esi),%eax
4054fe:	f7 e2                	mul    %edx
405500:	01 c8                	add    %ecx,%eax
405502:	ab                   	stos   %eax,%es:(%edi)
405503:	5f                   	pop    %edi
405504:	5e                   	pop    %esi
405505:	c3                   	ret
405506:	8b c0                	mov    %eax,%eax
405508:	31 d2                	xor    %edx,%edx
40550a:	39 50 04             	cmp    %edx,0x4(%eax)
40550d:	92                   	xchg   %eax,%edx
40550e:	7f 06                	jg     0x405516
405510:	7c 06                	jl     0x405518
405512:	39 02                	cmp    %eax,(%edx)
405514:	74 03                	je     0x405519
405516:	40                   	inc    %eax
405517:	c3                   	ret
405518:	48                   	dec    %eax
405519:	c3                   	ret
40551a:	8b c0                	mov    %eax,%eax
40551c:	53                   	push   %ebx
40551d:	56                   	push   %esi
40551e:	83 c4 f8             	add    $0xfffffff8,%esp
405521:	8b f2                	mov    %edx,%esi
405523:	8b d8                	mov    %eax,%ebx
405525:	8b cc                	mov    %esp,%ecx
405527:	8b d6                	mov    %esi,%edx
405529:	8b c3                	mov    %ebx,%eax
40552b:	e8 9c ff ff ff       	call   0x4054cc
405530:	8b c4                	mov    %esp,%eax
405532:	e8 d1 ff ff ff       	call   0x405508
405537:	59                   	pop    %ecx
405538:	5a                   	pop    %edx
405539:	5e                   	pop    %esi
40553a:	5b                   	pop    %ebx
40553b:	c3                   	ret
40553c:	53                   	push   %ebx
40553d:	56                   	push   %esi
40553e:	57                   	push   %edi
40553f:	55                   	push   %ebp
405540:	83 c4 f4             	add    $0xfffffff4,%esp
405543:	8b fa                	mov    %edx,%edi
405545:	8b f0                	mov    %eax,%esi
405547:	33 c0                	xor    %eax,%eax
405549:	89 07                	mov    %eax,(%edi)
40554b:	33 c0                	xor    %eax,%eax
40554d:	89 47 04             	mov    %eax,0x4(%edi)
405550:	bd 01 00 00 00       	mov    $0x1,%ebp
405555:	85 f6                	test   %esi,%esi
405557:	74 7d                	je     0x4055d6
405559:	c6 04 24 00          	movb   $0x0,(%esp)
40555d:	8a 06                	mov    (%esi),%al
40555f:	3c 2d                	cmp    $0x2d,%al
405561:	75 07                	jne    0x40556a
405563:	c6 04 24 01          	movb   $0x1,(%esp)
405567:	45                   	inc    %ebp
405568:	eb 43                	jmp    0x4055ad
40556a:	3c 2b                	cmp    $0x2b,%al
40556c:	75 3f                	jne    0x4055ad
40556e:	45                   	inc    %ebp
40556f:	eb 3c                	jmp    0x4055ad
405571:	8a 5c 2e ff          	mov    -0x1(%esi,%ebp,1),%bl
405575:	80 fb 30             	cmp    $0x30,%bl
405578:	72 3e                	jb     0x4055b8
40557a:	80 fb 39             	cmp    $0x39,%bl
40557d:	77 39                	ja     0x4055b8
40557f:	8d 4c 24 04          	lea    0x4(%esp),%ecx
405583:	8b c7                	mov    %edi,%eax
405585:	ba 0a 00 00 00       	mov    $0xa,%edx
40558a:	e8 e1 53 00 00       	call   0x40a970
40558f:	8b 44 24 04          	mov    0x4(%esp),%eax
405593:	89 07                	mov    %eax,(%edi)
405595:	8b 44 24 08          	mov    0x8(%esp),%eax
405599:	89 47 04             	mov    %eax,0x4(%edi)
40559c:	33 d2                	xor    %edx,%edx
40559e:	8a 54 2e ff          	mov    -0x1(%esi,%ebp,1),%dl
4055a2:	83 ea 30             	sub    $0x30,%edx
4055a5:	8b c7                	mov    %edi,%eax
4055a7:	e8 18 ff ff ff       	call   0x4054c4
4055ac:	45                   	inc    %ebp
4055ad:	8b c6                	mov    %esi,%eax
4055af:	e8 40 e3 ff ff       	call   0x4038f4
4055b4:	3b e8                	cmp    %eax,%ebp
4055b6:	7e b9                	jle    0x405571
4055b8:	80 3c 24 00          	cmpb   $0x0,(%esp)
4055bc:	74 18                	je     0x4055d6
4055be:	8d 54 24 04          	lea    0x4(%esp),%edx
4055c2:	8b c7                	mov    %edi,%eax
4055c4:	e8 13 ff ff ff       	call   0x4054dc
4055c9:	8b 44 24 04          	mov    0x4(%esp),%eax
4055cd:	89 07                	mov    %eax,(%edi)
4055cf:	8b 44 24 08          	mov    0x8(%esp),%eax
4055d3:	89 47 04             	mov    %eax,0x4(%edi)
4055d6:	83 c4 0c             	add    $0xc,%esp
4055d9:	5d                   	pop    %ebp
4055da:	5f                   	pop    %edi
4055db:	5e                   	pop    %esi
4055dc:	5b                   	pop    %ebx
4055dd:	c3                   	ret
4055de:	8b c0                	mov    %eax,%eax
4055e0:	55                   	push   %ebp
4055e1:	8b ec                	mov    %esp,%ebp
4055e3:	d9 e8                	fld1
4055e5:	85 c0                	test   %eax,%eax
4055e7:	74 17                	je     0x405600
4055e9:	db 6d 08             	fldt   0x8(%ebp)
4055ec:	7f 08                	jg     0x4055f6
4055ee:	d8 f9                	fdivr  %st(1),%st
4055f0:	f7 d8                	neg    %eax
4055f2:	eb 02                	jmp    0x4055f6
4055f4:	d8 c8                	fmul   %st(0),%st
4055f6:	d1 e8                	shr    $1,%eax
4055f8:	73 fa                	jae    0x4055f4
4055fa:	dc c9                	fmul   %st,%st(1)
4055fc:	75 f6                	jne    0x4055f4
4055fe:	dd d8                	fstp   %st(0)
405600:	9b                   	fwait
405601:	5d                   	pop    %ebp
405602:	c2 0c 00             	ret    $0xc
405605:	8d 40 00             	lea    0x0(%eax),%eax
405608:	55                   	push   %ebp
405609:	8b ec                	mov    %esp,%ebp
40560b:	83 c4 dc             	add    $0xffffffdc,%esp
40560e:	53                   	push   %ebx
40560f:	56                   	push   %esi
405610:	57                   	push   %edi
405611:	33 d2                	xor    %edx,%edx
405613:	89 55 dc             	mov    %edx,-0x24(%ebp)
405616:	8b f0                	mov    %eax,%esi
405618:	33 c0                	xor    %eax,%eax
40561a:	55                   	push   %ebp
40561b:	68 55 57 40 00       	push   $0x405755
405620:	64 ff 30             	push   %fs:(%eax)
405623:	64 89 20             	mov    %esp,%fs:(%eax)
405626:	33 c0                	xor    %eax,%eax
405628:	89 45 f8             	mov    %eax,-0x8(%ebp)
40562b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40562e:	85 f6                	test   %esi,%esi
405630:	0f 84 09 01 00 00    	je     0x40573f
405636:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40563a:	bf 01 00 00 00       	mov    $0x1,%edi
40563f:	80 3e 2d             	cmpb   $0x2d,(%esi)
405642:	75 05                	jne    0x405649
405644:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
405648:	47                   	inc    %edi
405649:	33 db                	xor    %ebx,%ebx
40564b:	33 c0                	xor    %eax,%eax
40564d:	89 45 e8             	mov    %eax,-0x18(%ebp)
405650:	c7 45 ec 00 00 f0 3f 	movl   $0x3ff00000,-0x14(%ebp)
405657:	e9 c5 00 00 00       	jmp    0x405721
40565c:	33 c0                	xor    %eax,%eax
40565e:	8a 44 3e ff          	mov    -0x1(%esi,%edi,1),%al
405662:	83 f8 30             	cmp    $0x30,%eax
405665:	7d 0f                	jge    0x405676
405667:	83 e8 2c             	sub    $0x2c,%eax
40566a:	74 21                	je     0x40568d
40566c:	83 e8 02             	sub    $0x2,%eax
40566f:	74 1c                	je     0x40568d
405671:	e9 aa 00 00 00       	jmp    0x405720
405676:	83 c0 d0             	add    $0xffffffd0,%eax
405679:	83 e8 0a             	sub    $0xa,%eax
40567c:	72 1e                	jb     0x40569c
40567e:	83 e8 0b             	sub    $0xb,%eax
405681:	74 68                	je     0x4056eb
405683:	83 e8 20             	sub    $0x20,%eax
405686:	74 63                	je     0x4056eb
405688:	e9 93 00 00 00       	jmp    0x405720
40568d:	84 db                	test   %bl,%bl
40568f:	0f 85 9b 00 00 00    	jne    0x405730
405695:	b3 01                	mov    $0x1,%bl
405697:	e9 84 00 00 00       	jmp    0x405720
40569c:	84 db                	test   %bl,%bl
40569e:	75 23                	jne    0x4056c3
4056a0:	dd 45 f8             	fldl   -0x8(%ebp)
4056a3:	d8 0d 68 57 40 00    	fmuls  0x405768
4056a9:	33 c0                	xor    %eax,%eax
4056ab:	8a 44 3e ff          	mov    -0x1(%esi,%edi,1),%al
4056af:	89 45 e0             	mov    %eax,-0x20(%ebp)
4056b2:	db 45 e0             	fildl  -0x20(%ebp)
4056b5:	de c1                	faddp  %st,%st(1)
4056b7:	d8 25 6c 57 40 00    	fsubs  0x40576c
4056bd:	dd 5d f8             	fstpl  -0x8(%ebp)
4056c0:	9b                   	fwait
4056c1:	eb 5d                	jmp    0x405720
4056c3:	db 2d 70 57 40 00    	fldt   0x405770
4056c9:	dc 4d e8             	fmull  -0x18(%ebp)
4056cc:	dd 5d e8             	fstpl  -0x18(%ebp)
4056cf:	9b                   	fwait
4056d0:	33 c0                	xor    %eax,%eax
4056d2:	8a 44 3e ff          	mov    -0x1(%esi,%edi,1),%al
4056d6:	83 e8 30             	sub    $0x30,%eax
4056d9:	89 45 e0             	mov    %eax,-0x20(%ebp)
4056dc:	db 45 e0             	fildl  -0x20(%ebp)
4056df:	dc 4d e8             	fmull  -0x18(%ebp)
4056e2:	dc 45 f8             	faddl  -0x8(%ebp)
4056e5:	dd 5d f8             	fstpl  -0x8(%ebp)
4056e8:	9b                   	fwait
4056e9:	eb 35                	jmp    0x405720
4056eb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4056ee:	8d 57 01             	lea    0x1(%edi),%edx
4056f1:	8b c6                	mov    %esi,%eax
4056f3:	e8 14 80 00 00       	call   0x40d70c
4056f8:	8b 45 dc             	mov    -0x24(%ebp),%eax
4056fb:	e8 00 80 00 00       	call   0x40d700
405700:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405703:	68 02 40 00 00       	push   $0x4002
405708:	68 00 00 00 a0       	push   $0xa0000000
40570d:	6a 00                	push   $0x0
40570f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405712:	e8 c9 fe ff ff       	call   0x4055e0
405717:	dc 4d f8             	fmull  -0x8(%ebp)
40571a:	dd 5d f8             	fstpl  -0x8(%ebp)
40571d:	9b                   	fwait
40571e:	eb 10                	jmp    0x405730
405720:	47                   	inc    %edi
405721:	8b c6                	mov    %esi,%eax
405723:	e8 cc e1 ff ff       	call   0x4038f4
405728:	3b f8                	cmp    %eax,%edi
40572a:	0f 8e 2c ff ff ff    	jle    0x40565c
405730:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
405734:	74 09                	je     0x40573f
405736:	dd 45 f8             	fldl   -0x8(%ebp)
405739:	d9 e0                	fchs
40573b:	dd 5d f8             	fstpl  -0x8(%ebp)
40573e:	9b                   	fwait
40573f:	33 c0                	xor    %eax,%eax
405741:	5a                   	pop    %edx
405742:	59                   	pop    %ecx
405743:	59                   	pop    %ecx
405744:	64 89 10             	mov    %edx,%fs:(%eax)
405747:	68 5c 57 40 00       	push   $0x40575c
40574c:	8d 45 dc             	lea    -0x24(%ebp),%eax
40574f:	e8 40 df ff ff       	call   0x403694
405754:	c3                   	ret
405755:	e9 ae d9 ff ff       	jmp    0x403108
40575a:	eb f0                	jmp    0x40574c
40575c:	dd 45 f8             	fldl   -0x8(%ebp)
40575f:	5f                   	pop    %edi
405760:	5e                   	pop    %esi
405761:	5b                   	pop    %ebx
405762:	8b e5                	mov    %ebp,%esp
405764:	5d                   	pop    %ebp
405765:	c3                   	ret
405766:	00 00                	add    %al,(%eax)
405768:	00 00                	add    %al,(%eax)
40576a:	20 41 00             	and    %al,0x0(%ecx)
40576d:	00 40 42             	add    %al,0x42(%eax)
405770:	cd cc                	int    $0xcc
405772:	cc                   	int3
405773:	cc                   	int3
405774:	cc                   	int3
405775:	cc                   	int3
405776:	cc                   	int3
405777:	cc                   	int3
405778:	fb                   	sti
405779:	3f                   	aas
40577a:	00 00                	add    %al,(%eax)
40577c:	f7 ea                	imul   %edx
40577e:	f7 f9                	idiv   %ecx
405780:	c3                   	ret
405781:	8d 40 00             	lea    0x0(%eax),%eax
405784:	57                   	push   %edi
405785:	56                   	push   %esi
405786:	89 c6                	mov    %eax,%esi
405788:	89 d7                	mov    %edx,%edi
40578a:	83 c9 ff             	or     $0xffffffff,%ecx
40578d:	32 c0                	xor    %al,%al
40578f:	f2 ae                	repnz scas %es:(%edi),%al
405791:	f7 d1                	not    %ecx
405793:	89 f7                	mov    %esi,%edi
405795:	89 d6                	mov    %edx,%esi
405797:	89 ca                	mov    %ecx,%edx
405799:	89 f8                	mov    %edi,%eax
40579b:	c1 e9 02             	shr    $0x2,%ecx
40579e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4057a0:	89 d1                	mov    %edx,%ecx
4057a2:	83 e1 03             	and    $0x3,%ecx
4057a5:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4057a7:	5e                   	pop    %esi
4057a8:	5f                   	pop    %edi
4057a9:	c3                   	ret
4057aa:	8b c0                	mov    %eax,%eax
4057ac:	57                   	push   %edi
4057ad:	89 c7                	mov    %eax,%edi
4057af:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4057b4:	32 c0                	xor    %al,%al
4057b6:	f2 ae                	repnz scas %es:(%edi),%al
4057b8:	f7 d1                	not    %ecx
4057ba:	fd                   	std
4057bb:	4f                   	dec    %edi
4057bc:	88 d0                	mov    %dl,%al
4057be:	f2 ae                	repnz scas %es:(%edi),%al
4057c0:	b8 00 00 00 00       	mov    $0x0,%eax
4057c5:	75 03                	jne    0x4057ca
4057c7:	89 f8                	mov    %edi,%eax
4057c9:	40                   	inc    %eax
4057ca:	fc                   	cld
4057cb:	5f                   	pop    %edi
4057cc:	c3                   	ret
4057cd:	8d 40 00             	lea    0x0(%eax),%eax
4057d0:	57                   	push   %edi
4057d1:	97                   	xchg   %eax,%edi
4057d2:	92                   	xchg   %eax,%edx
4057d3:	f2 ae                	repnz scas %es:(%edi),%al
4057d5:	97                   	xchg   %eax,%edi
4057d6:	5f                   	pop    %edi
4057d7:	c3                   	ret
4057d8:	56                   	push   %esi
4057d9:	57                   	push   %edi
4057da:	89 c6                	mov    %eax,%esi
4057dc:	89 d7                	mov    %edx,%edi
4057de:	89 ca                	mov    %ecx,%edx
4057e0:	31 c0                	xor    %eax,%eax
4057e2:	83 e2 03             	and    $0x3,%edx
4057e5:	d1 e9                	shr    $1,%ecx