418466:	83 e8 20             	sub    $0x20,%eax
418469:	83 c0 c9             	add    $0xffffffc9,%eax
41846c:	eb 03                	jmp    0x418471
41846e:	83 c8 ff             	or     $0xffffffff,%eax
418471:	83 f8 ff             	cmp    $0xffffffff,%eax
418474:	74 31                	je     0x4184a7
418476:	3b 45 14             	cmp    0x14(%ebp),%eax
418479:	73 2c                	jae    0x4184a7
41847b:	8b 75 f8             	mov    -0x8(%ebp),%esi
41847e:	83 cb 08             	or     $0x8,%ebx
418481:	3b f1                	cmp    %ecx,%esi
418483:	72 0b                	jb     0x418490
418485:	75 04                	jne    0x41848b
418487:	3b c2                	cmp    %edx,%eax
418489:	76 05                	jbe    0x418490
41848b:	83 cb 04             	or     $0x4,%ebx
41848e:	eb 09                	jmp    0x418499
418490:	0f af 75 14          	imul   0x14(%ebp),%esi
418494:	03 f0                	add    %eax,%esi
418496:	89 75 f8             	mov    %esi,-0x8(%ebp)
418499:	0f b7 37             	movzwl (%edi),%esi
41849c:	83 c7 02             	add    $0x2,%edi
41849f:	89 7d 0c             	mov    %edi,0xc(%ebp)
4184a2:	e9 39 fd ff ff       	jmp    0x4181e0
4184a7:	56                   	push   %esi
4184a8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4184ab:	e8 d0 cc ff ff       	call   0x415180
4184b0:	f6 c3 08             	test   $0x8,%bl
4184b3:	75 0a                	jne    0x4184bf
4184b5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4184b8:	33 db                	xor    %ebx,%ebx
4184ba:	89 45 0c             	mov    %eax,0xc(%ebp)
4184bd:	eb 41                	jmp    0x418500
4184bf:	8b 75 f8             	mov    -0x8(%ebp),%esi
4184c2:	56                   	push   %esi
4184c3:	53                   	push   %ebx
4184c4:	e8 f6 f6 ff ff       	call   0x417bbf
4184c9:	59                   	pop    %ecx
4184ca:	59                   	pop    %ecx
4184cb:	84 c0                	test   %al,%al
4184cd:	74 28                	je     0x4184f7
4184cf:	e8 97 c5 ff ff       	call   0x414a6b
4184d4:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4184da:	f6 c3 01             	test   $0x1,%bl
4184dd:	75 05                	jne    0x4184e4
4184df:	83 ce ff             	or     $0xffffffff,%esi
4184e2:	eb 1a                	jmp    0x4184fe
4184e4:	f6 c3 02             	test   $0x2,%bl
4184e7:	74 07                	je     0x4184f0
4184e9:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4184ee:	eb 10                	jmp    0x418500
4184f0:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
4184f5:	eb 09                	jmp    0x418500
4184f7:	f6 c3 02             	test   $0x2,%bl
4184fa:	74 02                	je     0x4184fe
4184fc:	f7 de                	neg    %esi
4184fe:	8b de                	mov    %esi,%ebx
418500:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
418504:	5e                   	pop    %esi
418505:	0f 84 65 f9 ff ff    	je     0x417e70
41850b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41850e:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
418515:	e9 56 f9 ff ff       	jmp    0x417e70
41851a:	8b ff                	mov    %edi,%edi
41851c:	55                   	push   %ebp
41851d:	8b ec                	mov    %esp,%ebp
41851f:	83 ec 40             	sub    $0x40,%esp
418522:	8d 4d 0c             	lea    0xc(%ebp),%ecx
418525:	56                   	push   %esi
418526:	57                   	push   %edi
418527:	e8 80 cc ff ff       	call   0x4151ac
41852c:	84 c0                	test   %al,%al
41852e:	74 21                	je     0x418551
418530:	8b 45 14             	mov    0x14(%ebp),%eax
418533:	85 c0                	test   %eax,%eax
418535:	74 36                	je     0x41856d
418537:	83 f8 02             	cmp    $0x2,%eax
41853a:	7c 05                	jl     0x418541
41853c:	83 f8 24             	cmp    $0x24,%eax
41853f:	7e 2c                	jle    0x41856d
418541:	e8 25 c5 ff ff       	call   0x414a6b
418546:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41854c:	e8 91 37 ff ff       	call   0x40bce2
418551:	33 c0                	xor    %eax,%eax
418553:	8b f8                	mov    %eax,%edi
418555:	8b f0                	mov    %eax,%esi
418557:	8b 45 10             	mov    0x10(%ebp),%eax
41855a:	85 c0                	test   %eax,%eax
41855c:	74 05                	je     0x418563
41855e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
418561:	89 08                	mov    %ecx,(%eax)
418563:	8b c7                	mov    %edi,%eax
418565:	8b d6                	mov    %esi,%edx
418567:	5f                   	pop    %edi
418568:	5e                   	pop    %esi
418569:	8b e5                	mov    %ebp,%esp
41856b:	5d                   	pop    %ebp
41856c:	c3                   	ret
41856d:	53                   	push   %ebx
41856e:	ff 75 08             	push   0x8(%ebp)
418571:	8d 4d c0             	lea    -0x40(%ebp),%ecx
418574:	e8 4f 42 ff ff       	call   0x40c7c8
418579:	33 c0                	xor    %eax,%eax
41857b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41857e:	8b f0                	mov    %eax,%esi
418580:	8b 45 0c             	mov    0xc(%ebp),%eax
418583:	89 45 d0             	mov    %eax,-0x30(%ebp)
418586:	eb 03                	jmp    0x41858b
418588:	8b 45 0c             	mov    0xc(%ebp),%eax
41858b:	8a 18                	mov    (%eax),%bl
41858d:	40                   	inc    %eax
41858e:	89 45 0c             	mov    %eax,0xc(%ebp)
418591:	8d 45 c4             	lea    -0x3c(%ebp),%eax
418594:	50                   	push   %eax
418595:	0f b6 c3             	movzbl %bl,%eax
418598:	6a 08                	push   $0x8
41859a:	50                   	push   %eax
41859b:	88 5d f4             	mov    %bl,-0xc(%ebp)
41859e:	88 5d ff             	mov    %bl,-0x1(%ebp)
4185a1:	e8 39 b8 ff ff       	call   0x413ddf
4185a6:	83 c4 0c             	add    $0xc,%esp
4185a9:	85 c0                	test   %eax,%eax
4185ab:	75 db                	jne    0x418588
4185ad:	38 45 18             	cmp    %al,0x18(%ebp)
4185b0:	0f 95 c0             	setne  %al
4185b3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4185b6:	80 fb 2d             	cmp    $0x2d,%bl
4185b9:	75 08                	jne    0x4185c3
4185bb:	83 c8 02             	or     $0x2,%eax
4185be:	89 45 f8             	mov    %eax,-0x8(%ebp)
4185c1:	eb 05                	jmp    0x4185c8
4185c3:	80 fb 2b             	cmp    $0x2b,%bl
4185c6:	75 11                	jne    0x4185d9
4185c8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4185cb:	8a 1f                	mov    (%edi),%bl
4185cd:	47                   	inc    %edi
4185ce:	88 5d ff             	mov    %bl,-0x1(%ebp)
4185d1:	88 5d f4             	mov    %bl,-0xc(%ebp)
4185d4:	89 7d 0c             	mov    %edi,0xc(%ebp)
4185d7:	eb 03                	jmp    0x4185dc
4185d9:	8b 7d 0c             	mov    0xc(%ebp),%edi
4185dc:	8b 4d 14             	mov    0x14(%ebp),%ecx
4185df:	6a 10                	push   $0x10
4185e1:	5a                   	pop    %edx
4185e2:	85 c9                	test   %ecx,%ecx
4185e4:	74 08                	je     0x4185ee
4185e6:	3b ca                	cmp    %edx,%ecx
4185e8:	0f 85 87 00 00 00    	jne    0x418675
4185ee:	8a c3                	mov    %bl,%al
4185f0:	2c 30                	sub    $0x30,%al
4185f2:	3c 09                	cmp    $0x9,%al
4185f4:	77 08                	ja     0x4185fe
4185f6:	0f be c3             	movsbl %bl,%eax
4185f9:	83 c0 d0             	add    $0xffffffd0,%eax
4185fc:	eb 23                	jmp    0x418621
4185fe:	8a c3                	mov    %bl,%al
418600:	2c 61                	sub    $0x61,%al
418602:	3c 19                	cmp    $0x19,%al
418604:	77 08                	ja     0x41860e
418606:	0f be c3             	movsbl %bl,%eax
418609:	83 c0 a9             	add    $0xffffffa9,%eax
41860c:	eb 13                	jmp    0x418621
41860e:	8a c3                	mov    %bl,%al
418610:	2c 41                	sub    $0x41,%al
418612:	3c 19                	cmp    $0x19,%al
418614:	77 08                	ja     0x41861e
418616:	0f be c3             	movsbl %bl,%eax
418619:	83 c0 c9             	add    $0xffffffc9,%eax
41861c:	eb 03                	jmp    0x418621
41861e:	83 c8 ff             	or     $0xffffffff,%eax
418621:	85 c0                	test   %eax,%eax
418623:	74 0c                	je     0x418631
418625:	85 c9                	test   %ecx,%ecx
418627:	75 4c                	jne    0x418675
418629:	6a 0a                	push   $0xa
41862b:	58                   	pop    %eax
41862c:	89 45 14             	mov    %eax,0x14(%ebp)
41862f:	eb 46                	jmp    0x418677
418631:	8a 07                	mov    (%edi),%al
418633:	47                   	inc    %edi
418634:	88 45 e4             	mov    %al,-0x1c(%ebp)
418637:	89 7d 0c             	mov    %edi,0xc(%ebp)
41863a:	3c 78                	cmp    $0x78,%al
41863c:	74 22                	je     0x418660
41863e:	3c 58                	cmp    $0x58,%al
418640:	74 1e                	je     0x418660
418642:	85 c9                	test   %ecx,%ecx
418644:	75 07                	jne    0x41864d
418646:	c7 45 14 08 00 00 00 	movl   $0x8,0x14(%ebp)
41864d:	ff 75 e4             	push   -0x1c(%ebp)
418650:	8d 4d 0c             	lea    0xc(%ebp),%ecx
418653:	e8 00 cb ff ff       	call   0x415158
418658:	8b 7d 0c             	mov    0xc(%ebp),%edi
41865b:	8b 45 14             	mov    0x14(%ebp),%eax
41865e:	eb 17                	jmp    0x418677
418660:	85 c9                	test   %ecx,%ecx
418662:	75 03                	jne    0x418667
418664:	89 55 14             	mov    %edx,0x14(%ebp)
418667:	8a 07                	mov    (%edi),%al
418669:	47                   	inc    %edi
41866a:	88 45 ff             	mov    %al,-0x1(%ebp)
41866d:	88 45 f4             	mov    %al,-0xc(%ebp)
418670:	89 7d 0c             	mov    %edi,0xc(%ebp)
418673:	eb e6                	jmp    0x41865b
418675:	8b c1                	mov    %ecx,%eax
418677:	99                   	cltd
418678:	8b ca                	mov    %edx,%ecx
41867a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41867d:	51                   	push   %ecx
41867e:	50                   	push   %eax
41867f:	6a ff                	push   $0xffffffff
418681:	6a ff                	push   $0xffffffff
418683:	89 4d d8             	mov    %ecx,-0x28(%ebp)
418686:	e8 a5 dc 00 00       	call   0x426330
41868b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
41868e:	8a 4d ff             	mov    -0x1(%ebp),%cl
418691:	89 5d e0             	mov    %ebx,-0x20(%ebp)
418694:	33 db                	xor    %ebx,%ebx
418696:	89 45 e8             	mov    %eax,-0x18(%ebp)
418699:	89 55 e4             	mov    %edx,-0x1c(%ebp)
41869c:	8a c1                	mov    %cl,%al
41869e:	2c 30                	sub    $0x30,%al
4186a0:	3c 09                	cmp    $0x9,%al
4186a2:	77 08                	ja     0x4186ac
4186a4:	0f be d1             	movsbl %cl,%edx
4186a7:	83 c2 d0             	add    $0xffffffd0,%edx
4186aa:	eb 23                	jmp    0x4186cf
4186ac:	8a c1                	mov    %cl,%al
4186ae:	2c 61                	sub    $0x61,%al
4186b0:	3c 19                	cmp    $0x19,%al
4186b2:	77 08                	ja     0x4186bc
4186b4:	0f be d1             	movsbl %cl,%edx
4186b7:	83 c2 a9             	add    $0xffffffa9,%edx
4186ba:	eb 13                	jmp    0x4186cf
4186bc:	8a c1                	mov    %cl,%al
4186be:	2c 41                	sub    $0x41,%al
4186c0:	3c 19                	cmp    $0x19,%al
4186c2:	77 08                	ja     0x4186cc
4186c4:	0f be d1             	movsbl %cl,%edx
4186c7:	83 c2 c9             	add    $0xffffffc9,%edx
4186ca:	eb 03                	jmp    0x4186cf
4186cc:	83 ca ff             	or     $0xffffffff,%edx
4186cf:	89 55 ec             	mov    %edx,-0x14(%ebp)
4186d2:	83 fa ff             	cmp    $0xffffffff,%edx
4186d5:	74 60                	je     0x418737
4186d7:	3b 55 14             	cmp    0x14(%ebp),%edx
4186da:	73 5b                	jae    0x418737
4186dc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4186df:	8b 45 f0             	mov    -0x10(%ebp),%eax
4186e2:	83 c9 08             	or     $0x8,%ecx
4186e5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4186e8:	3b 75 e4             	cmp    -0x1c(%ebp),%esi
4186eb:	72 25                	jb     0x418712
4186ed:	77 05                	ja     0x4186f4
4186ef:	3b 45 e8             	cmp    -0x18(%ebp),%eax
4186f2:	72 1e                	jb     0x418712
4186f4:	3b 45 e8             	cmp    -0x18(%ebp),%eax
4186f7:	75 11                	jne    0x41870a
4186f9:	3b 75 e4             	cmp    -0x1c(%ebp),%esi
4186fc:	75 0c                	jne    0x41870a
4186fe:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
418701:	72 0f                	jb     0x418712
418703:	77 05                	ja     0x41870a
418705:	3b 55 dc             	cmp    -0x24(%ebp),%edx
418708:	76 08                	jbe    0x418712
41870a:	83 c9 04             	or     $0x4,%ecx
41870d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
418710:	eb 17                	jmp    0x418729
418712:	56                   	push   %esi
418713:	50                   	push   %eax
418714:	ff 75 d8             	push   -0x28(%ebp)
418717:	ff 75 d4             	push   -0x2c(%ebp)
41871a:	e8 11 ea fe ff       	call   0x407130
41871f:	03 45 ec             	add    -0x14(%ebp),%eax
418722:	8b f2                	mov    %edx,%esi
418724:	89 45 f0             	mov    %eax,-0x10(%ebp)
418727:	13 f3                	adc    %ebx,%esi
418729:	8a 0f                	mov    (%edi),%cl
41872b:	47                   	inc    %edi
41872c:	88 4d f4             	mov    %cl,-0xc(%ebp)
41872f:	89 7d 0c             	mov    %edi,0xc(%ebp)
418732:	e9 65 ff ff ff       	jmp    0x41869c
418737:	ff 75 f4             	push   -0xc(%ebp)
41873a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41873d:	e8 16 ca ff ff       	call   0x415158
418742:	8b 45 f8             	mov    -0x8(%ebp),%eax
418745:	a8 08                	test   $0x8,%al
418747:	75 0c                	jne    0x418755
418749:	8b 45 d0             	mov    -0x30(%ebp),%eax
41874c:	89 45 0c             	mov    %eax,0xc(%ebp)
41874f:	33 c0                	xor    %eax,%eax
418751:	8b f0                	mov    %eax,%esi
418753:	eb 41                	jmp    0x418796
418755:	8b 7d f0             	mov    -0x10(%ebp),%edi
418758:	56                   	push   %esi
418759:	57                   	push   %edi
41875a:	50                   	push   %eax
41875b:	e8 b8 6e ff ff       	call   0x40f618
418760:	83 c4 0c             	add    $0xc,%esp
418763:	84 c0                	test   %al,%al
418765:	74 33                	je     0x41879a
418767:	e8 ff c2 ff ff       	call   0x414a6b
41876c:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
418772:	8b 45 f8             	mov    -0x8(%ebp),%eax
418775:	a8 01                	test   $0x1,%al
418777:	75 08                	jne    0x418781
418779:	83 cf ff             	or     $0xffffffff,%edi
41877c:	83 ce ff             	or     $0xffffffff,%esi
41877f:	eb 25                	jmp    0x4187a6
418781:	a8 02                	test   $0x2,%al
418783:	74 09                	je     0x41878e
418785:	33 c0                	xor    %eax,%eax
418787:	be 00 00 00 80       	mov    $0x80000000,%esi
41878c:	eb 08                	jmp    0x418796
41878e:	83 c8 ff             	or     $0xffffffff,%eax
418791:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
418796:	8b f8                	mov    %eax,%edi
418798:	eb 0c                	jmp    0x4187a6
41879a:	f6 45 f8 02          	testb  $0x2,-0x8(%ebp)
41879e:	74 06                	je     0x4187a6
4187a0:	f7 df                	neg    %edi
4187a2:	13 f3                	adc    %ebx,%esi
4187a4:	f7 de                	neg    %esi
4187a6:	80 7d cc 00          	cmpb   $0x0,-0x34(%ebp)
4187aa:	5b                   	pop    %ebx
4187ab:	0f 84 a6 fd ff ff    	je     0x418557
4187b1:	8b 45 c0             	mov    -0x40(%ebp),%eax
4187b4:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
4187bb:	e9 97 fd ff ff       	jmp    0x418557
4187c0:	8b ff                	mov    %edi,%edi
4187c2:	55                   	push   %ebp
4187c3:	8b ec                	mov    %esp,%ebp
4187c5:	51                   	push   %ecx
4187c6:	6a 01                	push   $0x1
4187c8:	6a 0a                	push   $0xa
4187ca:	51                   	push   %ecx
4187cb:	51                   	push   %ecx
4187cc:	8b c4                	mov    %esp,%eax
4187ce:	6a 00                	push   $0x0
4187d0:	ff 75 08             	push   0x8(%ebp)
4187d3:	50                   	push   %eax
4187d4:	e8 19 f4 ff ff       	call   0x417bf2
4187d9:	83 c4 0c             	add    $0xc,%esp
4187dc:	6a 00                	push   $0x0
4187de:	e8 52 f6 ff ff       	call   0x417e35
4187e3:	83 c4 14             	add    $0x14,%esp
4187e6:	8b e5                	mov    %ebp,%esp
4187e8:	5d                   	pop    %ebp
4187e9:	c3                   	ret
4187ea:	6a 08                	push   $0x8