41473c:	33 c5                	xor    %ebp,%eax
41473e:	89 45 fc             	mov    %eax,-0x4(%ebp)
414741:	8b 45 08             	mov    0x8(%ebp),%eax
414744:	53                   	push   %ebx
414745:	56                   	push   %esi
414746:	57                   	push   %edi
414747:	8b 7d 0c             	mov    0xc(%ebp),%edi
41474a:	6a 16                	push   $0x16
41474c:	5e                   	pop    %esi
41474d:	56                   	push   %esi
41474e:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
414751:	51                   	push   %ecx
414752:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
414755:	51                   	push   %ecx
414756:	ff 70 04             	push   0x4(%eax)
414759:	ff 30                	push   (%eax)
41475b:	e8 aa 23 00 00       	call   0x416b0a
414760:	33 db                	xor    %ebx,%ebx
414762:	83 c4 14             	add    $0x14,%esp
414765:	3b fb                	cmp    %ebx,%edi
414767:	75 18                	jne    0x414781
414769:	e8 67 13 ff ff       	call   0x405ad5
41476e:	53                   	push   %ebx
41476f:	53                   	push   %ebx
414770:	53                   	push   %ebx
414771:	53                   	push   %ebx
414772:	53                   	push   %ebx
414773:	89 30                	mov    %esi,(%eax)
414775:	e8 ab 0a ff ff       	call   0x405225
41477a:	83 c4 14             	add    $0x14,%esp
41477d:	8b c6                	mov    %esi,%eax
41477f:	eb 6f                	jmp    0x4147f0
414781:	8b 45 10             	mov    0x10(%ebp),%eax
414784:	3b c3                	cmp    %ebx,%eax
414786:	76 e1                	jbe    0x414769
414788:	8b 75 14             	mov    0x14(%ebp),%esi
41478b:	83 f8 ff             	cmp    $0xffffffff,%eax
41478e:	75 05                	jne    0x414795
414790:	83 c8 ff             	or     $0xffffffff,%eax
414793:	eb 14                	jmp    0x4147a9
414795:	33 c9                	xor    %ecx,%ecx
414797:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
41479b:	0f 94 c1             	sete   %cl
41479e:	2b c1                	sub    %ecx,%eax
4147a0:	33 c9                	xor    %ecx,%ecx
4147a2:	3b f3                	cmp    %ebx,%esi
4147a4:	0f 9f c1             	setg   %cl
4147a7:	2b c1                	sub    %ecx,%eax
4147a9:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4147ac:	51                   	push   %ecx
4147ad:	8d 4e 01             	lea    0x1(%esi),%ecx
4147b0:	51                   	push   %ecx
4147b1:	50                   	push   %eax
4147b2:	33 c0                	xor    %eax,%eax
4147b4:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
4147b8:	0f 94 c0             	sete   %al
4147bb:	33 c9                	xor    %ecx,%ecx
4147bd:	3b f3                	cmp    %ebx,%esi
4147bf:	0f 9f c1             	setg   %cl
4147c2:	03 c7                	add    %edi,%eax
4147c4:	03 c8                	add    %eax,%ecx
4147c6:	51                   	push   %ecx
4147c7:	e8 c2 21 00 00       	call   0x41698e
4147cc:	83 c4 10             	add    $0x10,%esp
4147cf:	3b c3                	cmp    %ebx,%eax
4147d1:	74 04                	je     0x4147d7
4147d3:	88 1f                	mov    %bl,(%edi)
4147d5:	eb 19                	jmp    0x4147f0
4147d7:	ff 75 1c             	push   0x1c(%ebp)
4147da:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4147dd:	53                   	push   %ebx
4147de:	50                   	push   %eax
4147df:	ff 75 18             	push   0x18(%ebp)
4147e2:	8b c7                	mov    %edi,%eax
4147e4:	56                   	push   %esi
4147e5:	ff 75 10             	push   0x10(%ebp)
4147e8:	e8 d3 fd ff ff       	call   0x4145c0
4147ed:	83 c4 18             	add    $0x18,%esp
4147f0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4147f3:	5f                   	pop    %edi
4147f4:	5e                   	pop    %esi
4147f5:	33 cd                	xor    %ebp,%ecx
4147f7:	5b                   	pop    %ebx
4147f8:	e8 29 1e ff ff       	call   0x406626
4147fd:	c9                   	leave
4147fe:	c3                   	ret
4147ff:	8b ff                	mov    %edi,%edi
414801:	55                   	push   %ebp
414802:	8b ec                	mov    %esp,%ebp
414804:	6a 00                	push   $0x0
414806:	ff 75 18             	push   0x18(%ebp)
414809:	ff 75 14             	push   0x14(%ebp)
41480c:	ff 75 10             	push   0x10(%ebp)
41480f:	ff 75 0c             	push   0xc(%ebp)
414812:	ff 75 08             	push   0x8(%ebp)
414815:	e8 15 ff ff ff       	call   0x41472f
41481a:	83 c4 18             	add    $0x18,%esp
41481d:	5d                   	pop    %ebp
41481e:	c3                   	ret
41481f:	8b ff                	mov    %edi,%edi
414821:	55                   	push   %ebp
414822:	8b ec                	mov    %esp,%ebp
414824:	83 ec 24             	sub    $0x24,%esp
414827:	56                   	push   %esi
414828:	57                   	push   %edi
414829:	ff 75 1c             	push   0x1c(%ebp)
41482c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
41482f:	c7 45 ec ff 03 00 00 	movl   $0x3ff,-0x14(%ebp)
414836:	33 ff                	xor    %edi,%edi
414838:	c7 45 fc 30 00 00 00 	movl   $0x30,-0x4(%ebp)
41483f:	e8 20 30 ff ff       	call   0x407864
414844:	39 7d 14             	cmp    %edi,0x14(%ebp)
414847:	7d 03                	jge    0x41484c
414849:	89 7d 14             	mov    %edi,0x14(%ebp)
41484c:	8b 75 0c             	mov    0xc(%ebp),%esi
41484f:	3b f7                	cmp    %edi,%esi
414851:	75 2b                	jne    0x41487e
414853:	e8 7d 12 ff ff       	call   0x405ad5
414858:	6a 16                	push   $0x16
41485a:	5e                   	pop    %esi
41485b:	57                   	push   %edi
41485c:	57                   	push   %edi
41485d:	57                   	push   %edi
41485e:	57                   	push   %edi
41485f:	57                   	push   %edi
414860:	89 30                	mov    %esi,(%eax)
414862:	e8 be 09 ff ff       	call   0x405225
414867:	83 c4 14             	add    $0x14,%esp
41486a:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
41486e:	74 07                	je     0x414877
414870:	8b 45 e4             	mov    -0x1c(%ebp),%eax
414873:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
414877:	8b c6                	mov    %esi,%eax
414879:	e9 10 03 00 00       	jmp    0x414b8e
41487e:	39 7d 10             	cmp    %edi,0x10(%ebp)
414881:	76 d0                	jbe    0x414853
414883:	8b 45 14             	mov    0x14(%ebp),%eax
414886:	83 c0 0b             	add    $0xb,%eax
414889:	c6 06 00             	movb   $0x0,(%esi)
41488c:	39 45 10             	cmp    %eax,0x10(%ebp)
41488f:	77 09                	ja     0x41489a
414891:	e8 3f 12 ff ff       	call   0x405ad5
414896:	6a 22                	push   $0x22
414898:	eb c0                	jmp    0x41485a
41489a:	8b 7d 08             	mov    0x8(%ebp),%edi
41489d:	8b 07                	mov    (%edi),%eax
41489f:	89 45 f4             	mov    %eax,-0xc(%ebp)
4148a2:	8b 47 04             	mov    0x4(%edi),%eax
4148a5:	8b c8                	mov    %eax,%ecx
4148a7:	c1 e9 14             	shr    $0x14,%ecx
4148aa:	ba ff 07 00 00       	mov    $0x7ff,%edx
4148af:	53                   	push   %ebx
4148b0:	23 ca                	and    %edx,%ecx
4148b2:	33 db                	xor    %ebx,%ebx
4148b4:	3b ca                	cmp    %edx,%ecx
4148b6:	0f 85 90 00 00 00    	jne    0x41494c
4148bc:	85 db                	test   %ebx,%ebx
4148be:	0f 85 88 00 00 00    	jne    0x41494c
4148c4:	8b 45 10             	mov    0x10(%ebp),%eax
4148c7:	83 f8 ff             	cmp    $0xffffffff,%eax
4148ca:	75 04                	jne    0x4148d0
4148cc:	0b c0                	or     %eax,%eax
4148ce:	eb 03                	jmp    0x4148d3
4148d0:	83 c0 fe             	add    $0xfffffffe,%eax
4148d3:	6a 00                	push   $0x0
4148d5:	ff 75 14             	push   0x14(%ebp)
4148d8:	8d 5e 02             	lea    0x2(%esi),%ebx
4148db:	50                   	push   %eax
4148dc:	53                   	push   %ebx
4148dd:	57                   	push   %edi
4148de:	e8 1c ff ff ff       	call   0x4147ff
4148e3:	83 c4 14             	add    $0x14,%esp
4148e6:	85 c0                	test   %eax,%eax
4148e8:	74 19                	je     0x414903
4148ea:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
4148ee:	c6 06 00             	movb   $0x0,(%esi)
4148f1:	0f 84 96 02 00 00    	je     0x414b8d
4148f7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4148fa:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4148fe:	e9 8a 02 00 00       	jmp    0x414b8d
414903:	80 3b 2d             	cmpb   $0x2d,(%ebx)
414906:	75 04                	jne    0x41490c
414908:	c6 06 2d             	movb   $0x2d,(%esi)
41490b:	46                   	inc    %esi
41490c:	c6 06 30             	movb   $0x30,(%esi)
41490f:	46                   	inc    %esi
414910:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
414914:	6a 65                	push   $0x65
414916:	0f 94 c0             	sete   %al
414919:	fe c8                	dec    %al
41491b:	24 e0                	and    $0xe0,%al
41491d:	04 78                	add    $0x78,%al
41491f:	88 06                	mov    %al,(%esi)
414921:	46                   	inc    %esi
414922:	56                   	push   %esi
414923:	e8 a8 1d 00 00       	call   0x4166d0
414928:	59                   	pop    %ecx
414929:	59                   	pop    %ecx
41492a:	85 c0                	test   %eax,%eax
41492c:	0f 84 4c 02 00 00    	je     0x414b7e
414932:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
414936:	0f 94 c1             	sete   %cl
414939:	fe c9                	dec    %cl
41493b:	80 e1 e0             	and    $0xe0,%cl
41493e:	80 c1 70             	add    $0x70,%cl
414941:	88 08                	mov    %cl,(%eax)
414943:	c6 40 03 00          	movb   $0x0,0x3(%eax)
414947:	e9 32 02 00 00       	jmp    0x414b7e
41494c:	25 00 00 00 80       	and    $0x80000000,%eax
414951:	33 c9                	xor    %ecx,%ecx
414953:	0b c8                	or     %eax,%ecx
414955:	74 04                	je     0x41495b
414957:	c6 06 2d             	movb   $0x2d,(%esi)
41495a:	46                   	inc    %esi
41495b:	8b 5d 18             	mov    0x18(%ebp),%ebx
41495e:	c6 06 30             	movb   $0x30,(%esi)
414961:	46                   	inc    %esi
414962:	85 db                	test   %ebx,%ebx
414964:	0f 94 c0             	sete   %al
414967:	fe c8                	dec    %al
414969:	24 e0                	and    $0xe0,%al
41496b:	04 78                	add    $0x78,%al
41496d:	88 06                	mov    %al,(%esi)
41496f:	8b 4f 04             	mov    0x4(%edi),%ecx
414972:	46                   	inc    %esi
414973:	f7 db                	neg    %ebx
414975:	1b db                	sbb    %ebx,%ebx
414977:	83 e3 e0             	and    $0xffffffe0,%ebx
41497a:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
414980:	33 c0                	xor    %eax,%eax
414982:	83 c3 27             	add    $0x27,%ebx
414985:	33 d2                	xor    %edx,%edx
414987:	0b c1                	or     %ecx,%eax
414989:	75 21                	jne    0x4149ac
41498b:	c6 06 30             	movb   $0x30,(%esi)
41498e:	8b 4f 04             	mov    0x4(%edi),%ecx
414991:	8b 07                	mov    (%edi),%eax
414993:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
414999:	46                   	inc    %esi
41499a:	0b c1                	or     %ecx,%eax
41499c:	75 05                	jne    0x4149a3
41499e:	89 55 ec             	mov    %edx,-0x14(%ebp)
4149a1:	eb 0d                	jmp    0x4149b0
4149a3:	c7 45 ec fe 03 00 00 	movl   $0x3fe,-0x14(%ebp)
4149aa:	eb 04                	jmp    0x4149b0
4149ac:	c6 06 31             	movb   $0x31,(%esi)
4149af:	46                   	inc    %esi
4149b0:	8b c6                	mov    %esi,%eax
4149b2:	46                   	inc    %esi
4149b3:	89 45 0c             	mov    %eax,0xc(%ebp)
4149b6:	39 55 14             	cmp    %edx,0x14(%ebp)
4149b9:	75 04                	jne    0x4149bf
4149bb:	88 10                	mov    %dl,(%eax)
4149bd:	eb 0f                	jmp    0x4149ce
4149bf:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4149c2:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
4149c8:	8b 09                	mov    (%ecx),%ecx
4149ca:	8a 09                	mov    (%ecx),%cl
4149cc:	88 08                	mov    %cl,(%eax)
4149ce:	8b 4f 04             	mov    0x4(%edi),%ecx
4149d1:	8b 07                	mov    (%edi),%eax
4149d3:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
4149d9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4149dc:	77 08                	ja     0x4149e6
4149de:	3b c2                	cmp    %edx,%eax
4149e0:	0f 86 b5 00 00 00    	jbe    0x414a9b
4149e6:	89 55 f4             	mov    %edx,-0xc(%ebp)
4149e9:	c7 45 f8 00 00 0f 00 	movl   $0xf0000,-0x8(%ebp)
4149f0:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4149f4:	7e 4d                	jle    0x414a43
4149f6:	8b 57 04             	mov    0x4(%edi),%edx
4149f9:	23 55 f8             	and    -0x8(%ebp),%edx
4149fc:	8b 07                	mov    (%edi),%eax
4149fe:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
414a02:	23 45 f4             	and    -0xc(%ebp),%eax
414a05:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
414a0b:	e8 70 22 00 00       	call   0x416c80
414a10:	66 83 c0 30          	add    $0x30,%ax
414a14:	0f b7 c0             	movzwl %ax,%eax
414a17:	66 83 f8 39          	cmp    $0x39,%ax
414a1b:	76 02                	jbe    0x414a1f
414a1d:	03 c3                	add    %ebx,%eax
414a1f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
414a22:	83 6d fc 04          	subl   $0x4,-0x4(%ebp)
414a26:	88 06                	mov    %al,(%esi)
414a28:	8b 45 f4             	mov    -0xc(%ebp),%eax
414a2b:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
414a2f:	c1 e9 04             	shr    $0x4,%ecx
414a32:	46                   	inc    %esi
414a33:	ff 4d 14             	decl   0x14(%ebp)
414a36:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
414a3b:	89 45 f4             	mov    %eax,-0xc(%ebp)
414a3e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
414a41:	7d ad                	jge    0x4149f0
414a43:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
414a48:	7c 51                	jl     0x414a9b
414a4a:	8b 57 04             	mov    0x4(%edi),%edx
414a4d:	23 55 f8             	and    -0x8(%ebp),%edx
414a50:	8b 07                	mov    (%edi),%eax
414a52:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
414a56:	23 45 f4             	and    -0xc(%ebp),%eax
414a59:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
414a5f:	e8 1c 22 00 00       	call   0x416c80
414a64:	66 83 f8 08          	cmp    $0x8,%ax
414a68:	76 31                	jbe    0x414a9b
414a6a:	8d 46 ff             	lea    -0x1(%esi),%eax
414a6d:	8a 08                	mov    (%eax),%cl
414a6f:	80 f9 66             	cmp    $0x66,%cl
414a72:	74 05                	je     0x414a79
414a74:	80 f9 46             	cmp    $0x46,%cl
414a77:	75 06                	jne    0x414a7f
414a79:	c6 00 30             	movb   $0x30,(%eax)
414a7c:	48                   	dec    %eax
414a7d:	eb ee                	jmp    0x414a6d
414a7f:	3b 45 0c             	cmp    0xc(%ebp),%eax
414a82:	74 14                	je     0x414a98
414a84:	8a 08                	mov    (%eax),%cl
414a86:	80 f9 39             	cmp    $0x39,%cl
414a89:	75 07                	jne    0x414a92
414a8b:	80 c3 3a             	add    $0x3a,%bl
414a8e:	88 18                	mov    %bl,(%eax)
414a90:	eb 09                	jmp    0x414a9b
414a92:	fe c1                	inc    %cl
414a94:	88 08                	mov    %cl,(%eax)
414a96:	eb 03                	jmp    0x414a9b
414a98:	fe 40 ff             	incb   -0x1(%eax)
414a9b:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
414a9f:	7e 11                	jle    0x414ab2
414aa1:	ff 75 14             	push   0x14(%ebp)
414aa4:	6a 30                	push   $0x30
414aa6:	56                   	push   %esi
414aa7:	e8 54 5c ff ff       	call   0x40a700
414aac:	83 c4 0c             	add    $0xc,%esp
414aaf:	03 75 14             	add    0x14(%ebp),%esi
414ab2:	8b 45 0c             	mov    0xc(%ebp),%eax
414ab5:	80 38 00             	cmpb   $0x0,(%eax)
414ab8:	75 02                	jne    0x414abc
414aba:	8b f0                	mov    %eax,%esi
414abc:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
414ac0:	b1 34                	mov    $0x34,%cl
414ac2:	0f 94 c0             	sete   %al
414ac5:	fe c8                	dec    %al
414ac7:	24 e0                	and    $0xe0,%al
414ac9:	04 70                	add    $0x70,%al
414acb:	88 06                	mov    %al,(%esi)
414acd:	8b 07                	mov    (%edi),%eax
414acf:	8b 57 04             	mov    0x4(%edi),%edx
414ad2:	46                   	inc    %esi
414ad3:	e8 a8 21 00 00       	call   0x416c80
414ad8:	33 db                	xor    %ebx,%ebx