41262f:	53                   	push   %ebx
412630:	56                   	push   %esi
412631:	57                   	push   %edi
412632:	e8 e4 f2 ff ff       	call   0x41191b
412637:	84 c0                	test   %al,%al
412639:	74 2f                	je     0x41266a
41263b:	8b 75 14             	mov    0x14(%ebp),%esi
41263e:	85 f6                	test   %esi,%esi
412640:	74 3d                	je     0x41267f
412642:	83 fe 02             	cmp    $0x2,%esi
412645:	7c 05                	jl     0x41264c
412647:	83 fe 24             	cmp    $0x24,%esi
41264a:	7e 33                	jle    0x41267f
41264c:	8b 45 08             	mov    0x8(%ebp),%eax
41264f:	50                   	push   %eax
412650:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
412654:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41265b:	33 c0                	xor    %eax,%eax
41265d:	50                   	push   %eax
41265e:	50                   	push   %eax
41265f:	50                   	push   %eax
412660:	50                   	push   %eax
412661:	50                   	push   %eax
412662:	e8 0a ad ff ff       	call   0x40d371
412667:	83 c4 18             	add    $0x18,%esp
41266a:	8b 4d 10             	mov    0x10(%ebp),%ecx
41266d:	85 c9                	test   %ecx,%ecx
41266f:	0f 84 f4 01 00 00    	je     0x412869
412675:	8b 45 0c             	mov    0xc(%ebp),%eax
412678:	89 01                	mov    %eax,(%ecx)
41267a:	e9 ea 01 00 00       	jmp    0x412869
41267f:	8b 45 0c             	mov    0xc(%ebp),%eax
412682:	33 ff                	xor    %edi,%edi
412684:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
412688:	89 45 d8             	mov    %eax,-0x28(%ebp)
41268b:	8a 18                	mov    (%eax),%bl
41268d:	40                   	inc    %eax
41268e:	89 45 0c             	mov    %eax,0xc(%ebp)
412691:	8b 45 08             	mov    0x8(%ebp),%eax
412694:	88 5d f8             	mov    %bl,-0x8(%ebp)
412697:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
41269b:	75 0a                	jne    0x4126a7
41269d:	8b c8                	mov    %eax,%ecx
41269f:	e8 1c f2 ff ff       	call   0x4118c0
4126a4:	8b 45 08             	mov    0x8(%ebp),%eax
4126a7:	83 c0 0c             	add    $0xc,%eax
4126aa:	50                   	push   %eax
4126ab:	89 45 f4             	mov    %eax,-0xc(%ebp)
4126ae:	0f b6 c3             	movzbl %bl,%eax
4126b1:	6a 08                	push   $0x8
4126b3:	50                   	push   %eax
4126b4:	e8 33 02 00 00       	call   0x4128ec
4126b9:	83 c4 0c             	add    $0xc,%esp
4126bc:	85 c0                	test   %eax,%eax
4126be:	74 25                	je     0x4126e5
4126c0:	8b 75 f4             	mov    -0xc(%ebp),%esi
4126c3:	8b 45 0c             	mov    0xc(%ebp),%eax
4126c6:	56                   	push   %esi
4126c7:	6a 08                	push   $0x8
4126c9:	8a 18                	mov    (%eax),%bl
4126cb:	40                   	inc    %eax
4126cc:	89 45 0c             	mov    %eax,0xc(%ebp)
4126cf:	0f b6 c3             	movzbl %bl,%eax
4126d2:	50                   	push   %eax
4126d3:	88 5d f8             	mov    %bl,-0x8(%ebp)
4126d6:	e8 11 02 00 00       	call   0x4128ec
4126db:	83 c4 0c             	add    $0xc,%esp
4126de:	85 c0                	test   %eax,%eax
4126e0:	75 e1                	jne    0x4126c3
4126e2:	8b 75 14             	mov    0x14(%ebp),%esi
4126e5:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
4126e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4126ec:	80 fb 2d             	cmp    $0x2d,%bl
4126ef:	75 08                	jne    0x4126f9
4126f1:	83 c8 02             	or     $0x2,%eax
4126f4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4126f7:	eb 05                	jmp    0x4126fe
4126f9:	80 fb 2b             	cmp    $0x2b,%bl
4126fc:	75 0e                	jne    0x41270c
4126fe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412701:	8a 19                	mov    (%ecx),%bl
412703:	41                   	inc    %ecx
412704:	88 5d f8             	mov    %bl,-0x8(%ebp)
412707:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41270a:	eb 03                	jmp    0x41270f
41270c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41270f:	85 f6                	test   %esi,%esi
412711:	74 05                	je     0x412718
412713:	83 fe 10             	cmp    $0x10,%esi
412716:	75 72                	jne    0x41278a
412718:	8a c3                	mov    %bl,%al
41271a:	2c 30                	sub    $0x30,%al
41271c:	3c 09                	cmp    $0x9,%al
41271e:	77 08                	ja     0x412728
412720:	0f be c3             	movsbl %bl,%eax
412723:	83 c0 d0             	add    $0xffffffd0,%eax
412726:	eb 1e                	jmp    0x412746
412728:	8a c3                	mov    %bl,%al
41272a:	2c 61                	sub    $0x61,%al
41272c:	3c 19                	cmp    $0x19,%al
41272e:	77 08                	ja     0x412738
412730:	0f be c3             	movsbl %bl,%eax
412733:	83 c0 a9             	add    $0xffffffa9,%eax
412736:	eb 0e                	jmp    0x412746
412738:	8a c3                	mov    %bl,%al
41273a:	2c 41                	sub    $0x41,%al
41273c:	3c 19                	cmp    $0x19,%al
41273e:	77 43                	ja     0x412783
412740:	0f be c3             	movsbl %bl,%eax
412743:	83 c0 c9             	add    $0xffffffc9,%eax
412746:	85 c0                	test   %eax,%eax
412748:	75 39                	jne    0x412783
41274a:	8a 01                	mov    (%ecx),%al
41274c:	41                   	inc    %ecx
41274d:	88 45 f4             	mov    %al,-0xc(%ebp)
412750:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412753:	3c 78                	cmp    $0x78,%al
412755:	74 18                	je     0x41276f
412757:	3c 58                	cmp    $0x58,%al
412759:	74 14                	je     0x41276f
41275b:	85 f6                	test   %esi,%esi
41275d:	75 03                	jne    0x412762
41275f:	6a 08                	push   $0x8
412761:	5e                   	pop    %esi
412762:	ff 75 f4             	push   -0xc(%ebp)
412765:	8d 4d 0c             	lea    0xc(%ebp),%ecx
412768:	e8 f5 f0 ff ff       	call   0x411862
41276d:	eb 1b                	jmp    0x41278a
41276f:	85 f6                	test   %esi,%esi
412771:	75 03                	jne    0x412776
412773:	6a 10                	push   $0x10
412775:	5e                   	pop    %esi
412776:	8a 19                	mov    (%ecx),%bl
412778:	8d 41 01             	lea    0x1(%ecx),%eax
41277b:	88 5d f8             	mov    %bl,-0x8(%ebp)
41277e:	89 45 0c             	mov    %eax,0xc(%ebp)
412781:	eb 07                	jmp    0x41278a
412783:	85 f6                	test   %esi,%esi
412785:	75 03                	jne    0x41278a
412787:	6a 0a                	push   $0xa
412789:	5e                   	pop    %esi
41278a:	8b c6                	mov    %esi,%eax
41278c:	99                   	cltd
41278d:	8b ca                	mov    %edx,%ecx
41278f:	89 45 e8             	mov    %eax,-0x18(%ebp)
412792:	51                   	push   %ecx
412793:	50                   	push   %eax
412794:	6a ff                	push   $0xffffffff
412796:	6a ff                	push   $0xffffffff
412798:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41279b:	e8 80 b5 01 00       	call   0x42dd20
4127a0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4127a3:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4127a6:	8a c3                	mov    %bl,%al
4127a8:	2c 30                	sub    $0x30,%al
4127aa:	3c 09                	cmp    $0x9,%al
4127ac:	77 08                	ja     0x4127b6
4127ae:	0f be c3             	movsbl %bl,%eax
4127b1:	83 c0 d0             	add    $0xffffffd0,%eax
4127b4:	eb 23                	jmp    0x4127d9
4127b6:	8a c3                	mov    %bl,%al
4127b8:	2c 61                	sub    $0x61,%al
4127ba:	3c 19                	cmp    $0x19,%al
4127bc:	77 08                	ja     0x4127c6
4127be:	0f be c3             	movsbl %bl,%eax
4127c1:	83 c0 a9             	add    $0xffffffa9,%eax
4127c4:	eb 13                	jmp    0x4127d9
4127c6:	8a c3                	mov    %bl,%al
4127c8:	2c 41                	sub    $0x41,%al
4127ca:	3c 19                	cmp    $0x19,%al
4127cc:	77 08                	ja     0x4127d6
4127ce:	0f be c3             	movsbl %bl,%eax
4127d1:	83 c0 c9             	add    $0xffffffc9,%eax
4127d4:	eb 03                	jmp    0x4127d9
4127d6:	83 c8 ff             	or     $0xffffffff,%eax
4127d9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4127dc:	3b c6                	cmp    %esi,%eax
4127de:	73 6b                	jae    0x41284b
4127e0:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4127e3:	57                   	push   %edi
4127e4:	53                   	push   %ebx
4127e5:	ff 75 ec             	push   -0x14(%ebp)
4127e8:	ff 75 e8             	push   -0x18(%ebp)
4127eb:	e8 d0 77 ff ff       	call   0x409fc0
4127f0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4127f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4127f6:	33 c0                	xor    %eax,%eax
4127f8:	03 4d f0             	add    -0x10(%ebp),%ecx
4127fb:	89 55 dc             	mov    %edx,-0x24(%ebp)
4127fe:	13 c2                	adc    %edx,%eax
412800:	89 45 f4             	mov    %eax,-0xc(%ebp)
412803:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
412806:	72 0c                	jb     0x412814
412808:	77 05                	ja     0x41280f
41280a:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
41280d:	76 05                	jbe    0x412814
41280f:	33 d2                	xor    %edx,%edx
412811:	42                   	inc    %edx
412812:	eb 02                	jmp    0x412816
412814:	33 d2                	xor    %edx,%edx
412816:	3b 45 dc             	cmp    -0x24(%ebp),%eax
412819:	77 0c                	ja     0x412827
41281b:	72 05                	jb     0x412822
41281d:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
412820:	73 05                	jae    0x412827
412822:	33 c0                	xor    %eax,%eax
412824:	40                   	inc    %eax
412825:	eb 02                	jmp    0x412829
412827:	33 c0                	xor    %eax,%eax
412829:	8b 7d f4             	mov    -0xc(%ebp),%edi
41282c:	0b c2                	or     %edx,%eax
41282e:	c1 e0 02             	shl    $0x2,%eax
412831:	83 c8 08             	or     $0x8,%eax
412834:	89 4d f0             	mov    %ecx,-0x10(%ebp)
412837:	09 45 fc             	or     %eax,-0x4(%ebp)
41283a:	8b 45 0c             	mov    0xc(%ebp),%eax
41283d:	8a 18                	mov    (%eax),%bl
41283f:	40                   	inc    %eax
412840:	88 5d f8             	mov    %bl,-0x8(%ebp)
412843:	89 45 0c             	mov    %eax,0xc(%ebp)
412846:	e9 5b ff ff ff       	jmp    0x4127a6
41284b:	ff 75 f8             	push   -0x8(%ebp)
41284e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
412851:	e8 0c f0 ff ff       	call   0x411862
412856:	8b 45 fc             	mov    -0x4(%ebp),%eax
412859:	a8 08                	test   $0x8,%al
41285b:	75 12                	jne    0x41286f
41285d:	8b 45 10             	mov    0x10(%ebp),%eax
412860:	85 c0                	test   %eax,%eax
412862:	74 05                	je     0x412869
412864:	8b 4d d8             	mov    -0x28(%ebp),%ecx
412867:	89 08                	mov    %ecx,(%eax)
412869:	33 c0                	xor    %eax,%eax
41286b:	33 d2                	xor    %edx,%edx
41286d:	eb 78                	jmp    0x4128e7
41286f:	8b 5d f0             	mov    -0x10(%ebp),%ebx
412872:	57                   	push   %edi
412873:	53                   	push   %ebx
412874:	50                   	push   %eax
412875:	e8 14 f5 ff ff       	call   0x411d8e
41287a:	83 c4 0c             	add    $0xc,%esp
41287d:	84 c0                	test   %al,%al
41287f:	74 49                	je     0x4128ca
412881:	8b 45 08             	mov    0x8(%ebp),%eax
412884:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
412888:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
41288f:	8b 45 fc             	mov    -0x4(%ebp),%eax
412892:	a8 01                	test   $0x1,%al
412894:	75 08                	jne    0x41289e
412896:	83 cb ff             	or     $0xffffffff,%ebx
412899:	83 cf ff             	or     $0xffffffff,%edi
41289c:	eb 39                	jmp    0x4128d7
41289e:	8b 4d 10             	mov    0x10(%ebp),%ecx
4128a1:	a8 02                	test   $0x2,%al
4128a3:	74 12                	je     0x4128b7
4128a5:	85 c9                	test   %ecx,%ecx
4128a7:	74 05                	je     0x4128ae
4128a9:	8b 45 0c             	mov    0xc(%ebp),%eax
4128ac:	89 01                	mov    %eax,(%ecx)
4128ae:	33 c0                	xor    %eax,%eax
4128b0:	ba 00 00 00 80       	mov    $0x80000000,%edx
4128b5:	eb 30                	jmp    0x4128e7
4128b7:	85 c9                	test   %ecx,%ecx
4128b9:	74 05                	je     0x4128c0
4128bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4128be:	89 01                	mov    %eax,(%ecx)
4128c0:	83 c8 ff             	or     $0xffffffff,%eax
4128c3:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
4128c8:	eb 1d                	jmp    0x4128e7
4128ca:	f6 45 fc 02          	testb  $0x2,-0x4(%ebp)
4128ce:	74 07                	je     0x4128d7
4128d0:	f7 db                	neg    %ebx
4128d2:	83 d7 00             	adc    $0x0,%edi
4128d5:	f7 df                	neg    %edi
4128d7:	8b 75 10             	mov    0x10(%ebp),%esi
4128da:	85 f6                	test   %esi,%esi
4128dc:	74 05                	je     0x4128e3
4128de:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4128e1:	89 0e                	mov    %ecx,(%esi)
4128e3:	8b c3                	mov    %ebx,%eax
4128e5:	8b d7                	mov    %edi,%edx
4128e7:	5f                   	pop    %edi
4128e8:	5e                   	pop    %esi
4128e9:	5b                   	pop    %ebx
4128ea:	c9                   	leave
4128eb:	c3                   	ret
4128ec:	8b ff                	mov    %edi,%edi
4128ee:	55                   	push   %ebp
4128ef:	8b ec                	mov    %esp,%ebp
4128f1:	8b 4d 10             	mov    0x10(%ebp),%ecx
4128f4:	85 c9                	test   %ecx,%ecx
4128f6:	75 16                	jne    0x41290e
4128f8:	ff 75 0c             	push   0xc(%ebp)
4128fb:	ff 75 08             	push   0x8(%ebp)
4128fe:	e8 b9 b5 00 00       	call   0x41debc
412903:	50                   	push   %eax
412904:	e8 fc f2 ff ff       	call   0x411c05
412909:	83 c4 0c             	add    $0xc,%esp
41290c:	5d                   	pop    %ebp
41290d:	c3                   	ret
41290e:	8b 55 08             	mov    0x8(%ebp),%edx
412911:	56                   	push   %esi
412912:	8b 31                	mov    (%ecx),%esi
412914:	8d 42 01             	lea    0x1(%edx),%eax
412917:	3d 00 01 00 00       	cmp    $0x100,%eax
41291c:	77 0b                	ja     0x412929
41291e:	8b 06                	mov    (%esi),%eax
412920:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
412924:	23 45 0c             	and    0xc(%ebp),%eax
412927:	eb 17                	jmp    0x412940
412929:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
41292d:	7e 0f                	jle    0x41293e
41292f:	51                   	push   %ecx
412930:	ff 75 0c             	push   0xc(%ebp)
412933:	52                   	push   %edx
412934:	e8 10 b6 00 00       	call   0x41df49
412939:	83 c4 0c             	add    $0xc,%esp
41293c:	eb 02                	jmp    0x412940
41293e:	33 c0                	xor    %eax,%eax
412940:	5e                   	pop    %esi
412941:	5d                   	pop    %ebp
412942:	c3                   	ret
412943:	8b ff                	mov    %edi,%edi
412945:	55                   	push   %ebp
412946:	8b ec                	mov    %esp,%ebp
412948:	83 ec 2c             	sub    $0x2c,%esp
41294b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
41294e:	56                   	push   %esi
41294f:	6a 00                	push   $0x0
412951:	e8 8c a7 ff ff       	call   0x40d0e2
412956:	8b 45 08             	mov    0x8(%ebp),%eax
412959:	6a 01                	push   $0x1
41295b:	6a 0a                	push   $0xa
41295d:	51                   	push   %ecx
41295e:	51                   	push   %ecx
41295f:	8b cc                	mov    %esp,%ecx
412961:	83 61 04 00          	andl   $0x0,0x4(%ecx)
412965:	89 01                	mov    %eax,(%ecx)
412967:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41296a:	50                   	push   %eax
41296b:	e8 a6 f6 ff ff       	call   0x412016
412970:	83 c4 14             	add    $0x14,%esp
412973:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
412976:	8b f0                	mov    %eax,%esi
412978:	e8 ad a7 ff ff       	call   0x40d12a
41297d:	8b c6                	mov    %esi,%eax
41297f:	5e                   	pop    %esi
412980:	c9                   	leave
412981:	c3                   	ret
412982:	8b ff                	mov    %edi,%edi