42289c:	ff 75 10             	push   0x10(%ebp)
42289f:	e8 d3 fd ff ff       	call   0x422677
4228a4:	83 c4 18             	add    $0x18,%esp
4228a7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4228aa:	5f                   	pop    %edi
4228ab:	5e                   	pop    %esi
4228ac:	33 cd                	xor    %ebp,%ecx
4228ae:	5b                   	pop    %ebx
4228af:	e8 1a b9 ff ff       	call   0x41e1ce
4228b4:	c9                   	leave
4228b5:	c3                   	ret
4228b6:	8b ff                	mov    %edi,%edi
4228b8:	55                   	push   %ebp
4228b9:	8b ec                	mov    %esp,%ebp
4228bb:	6a 00                	push   $0x0
4228bd:	ff 75 18             	push   0x18(%ebp)
4228c0:	ff 75 14             	push   0x14(%ebp)
4228c3:	ff 75 10             	push   0x10(%ebp)
4228c6:	ff 75 0c             	push   0xc(%ebp)
4228c9:	ff 75 08             	push   0x8(%ebp)
4228cc:	e8 15 ff ff ff       	call   0x4227e6
4228d1:	83 c4 18             	add    $0x18,%esp
4228d4:	5d                   	pop    %ebp
4228d5:	c3                   	ret
4228d6:	8b ff                	mov    %edi,%edi
4228d8:	55                   	push   %ebp
4228d9:	8b ec                	mov    %esp,%ebp
4228db:	83 ec 24             	sub    $0x24,%esp
4228de:	56                   	push   %esi
4228df:	57                   	push   %edi
4228e0:	ff 75 1c             	push   0x1c(%ebp)
4228e3:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4228e6:	c7 45 ec ff 03 00 00 	movl   $0x3ff,-0x14(%ebp)
4228ed:	33 ff                	xor    %edi,%edi
4228ef:	c7 45 fc 30 00 00 00 	movl   $0x30,-0x4(%ebp)
4228f6:	e8 ed a1 ff ff       	call   0x41cae8
4228fb:	39 7d 14             	cmp    %edi,0x14(%ebp)
4228fe:	7d 03                	jge    0x422903
422900:	89 7d 14             	mov    %edi,0x14(%ebp)
422903:	8b 75 0c             	mov    0xc(%ebp),%esi
422906:	3b f7                	cmp    %edi,%esi
422908:	75 2b                	jne    0x422935
42290a:	e8 8f bf ff ff       	call   0x41e89e
42290f:	6a 16                	push   $0x16
422911:	5e                   	pop    %esi
422912:	57                   	push   %edi
422913:	57                   	push   %edi
422914:	57                   	push   %edi
422915:	57                   	push   %edi
422916:	57                   	push   %edi
422917:	89 30                	mov    %esi,(%eax)
422919:	e8 d5 d2 ff ff       	call   0x41fbf3
42291e:	83 c4 14             	add    $0x14,%esp
422921:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
422925:	74 07                	je     0x42292e
422927:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42292a:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
42292e:	8b c6                	mov    %esi,%eax
422930:	e9 10 03 00 00       	jmp    0x422c45
422935:	39 7d 10             	cmp    %edi,0x10(%ebp)
422938:	76 d0                	jbe    0x42290a
42293a:	8b 45 14             	mov    0x14(%ebp),%eax
42293d:	83 c0 0b             	add    $0xb,%eax
422940:	c6 06 00             	movb   $0x0,(%esi)
422943:	39 45 10             	cmp    %eax,0x10(%ebp)
422946:	77 09                	ja     0x422951
422948:	e8 51 bf ff ff       	call   0x41e89e
42294d:	6a 22                	push   $0x22
42294f:	eb c0                	jmp    0x422911
422951:	8b 7d 08             	mov    0x8(%ebp),%edi
422954:	8b 07                	mov    (%edi),%eax
422956:	89 45 f4             	mov    %eax,-0xc(%ebp)
422959:	8b 47 04             	mov    0x4(%edi),%eax
42295c:	8b c8                	mov    %eax,%ecx
42295e:	c1 e9 14             	shr    $0x14,%ecx
422961:	ba ff 07 00 00       	mov    $0x7ff,%edx
422966:	53                   	push   %ebx
422967:	23 ca                	and    %edx,%ecx
422969:	33 db                	xor    %ebx,%ebx
42296b:	3b ca                	cmp    %edx,%ecx
42296d:	0f 85 90 00 00 00    	jne    0x422a03
422973:	85 db                	test   %ebx,%ebx
422975:	0f 85 88 00 00 00    	jne    0x422a03
42297b:	8b 45 10             	mov    0x10(%ebp),%eax
42297e:	83 f8 ff             	cmp    $0xffffffff,%eax
422981:	75 04                	jne    0x422987
422983:	0b c0                	or     %eax,%eax
422985:	eb 03                	jmp    0x42298a
422987:	83 c0 fe             	add    $0xfffffffe,%eax
42298a:	6a 00                	push   $0x0
42298c:	ff 75 14             	push   0x14(%ebp)
42298f:	8d 5e 02             	lea    0x2(%esi),%ebx
422992:	50                   	push   %eax
422993:	53                   	push   %ebx
422994:	57                   	push   %edi
422995:	e8 1c ff ff ff       	call   0x4228b6
42299a:	83 c4 14             	add    $0x14,%esp
42299d:	85 c0                	test   %eax,%eax
42299f:	74 19                	je     0x4229ba
4229a1:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
4229a5:	c6 06 00             	movb   $0x0,(%esi)
4229a8:	0f 84 96 02 00 00    	je     0x422c44
4229ae:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4229b1:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4229b5:	e9 8a 02 00 00       	jmp    0x422c44
4229ba:	80 3b 2d             	cmpb   $0x2d,(%ebx)
4229bd:	75 04                	jne    0x4229c3
4229bf:	c6 06 2d             	movb   $0x2d,(%esi)
4229c2:	46                   	inc    %esi
4229c3:	c6 06 30             	movb   $0x30,(%esi)
4229c6:	46                   	inc    %esi
4229c7:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4229cb:	6a 65                	push   $0x65
4229cd:	0f 94 c0             	sete   %al
4229d0:	fe c8                	dec    %al
4229d2:	24 e0                	and    $0xe0,%al
4229d4:	04 78                	add    $0x78,%al
4229d6:	88 06                	mov    %al,(%esi)
4229d8:	46                   	inc    %esi
4229d9:	56                   	push   %esi
4229da:	e8 41 33 00 00       	call   0x425d20
4229df:	59                   	pop    %ecx
4229e0:	59                   	pop    %ecx
4229e1:	85 c0                	test   %eax,%eax
4229e3:	0f 84 4c 02 00 00    	je     0x422c35
4229e9:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4229ed:	0f 94 c1             	sete   %cl
4229f0:	fe c9                	dec    %cl
4229f2:	80 e1 e0             	and    $0xe0,%cl
4229f5:	80 c1 70             	add    $0x70,%cl
4229f8:	88 08                	mov    %cl,(%eax)
4229fa:	c6 40 03 00          	movb   $0x0,0x3(%eax)
4229fe:	e9 32 02 00 00       	jmp    0x422c35
422a03:	25 00 00 00 80       	and    $0x80000000,%eax
422a08:	33 c9                	xor    %ecx,%ecx
422a0a:	0b c8                	or     %eax,%ecx
422a0c:	74 04                	je     0x422a12
422a0e:	c6 06 2d             	movb   $0x2d,(%esi)
422a11:	46                   	inc    %esi
422a12:	8b 5d 18             	mov    0x18(%ebp),%ebx
422a15:	c6 06 30             	movb   $0x30,(%esi)
422a18:	46                   	inc    %esi
422a19:	85 db                	test   %ebx,%ebx
422a1b:	0f 94 c0             	sete   %al
422a1e:	fe c8                	dec    %al
422a20:	24 e0                	and    $0xe0,%al
422a22:	04 78                	add    $0x78,%al
422a24:	88 06                	mov    %al,(%esi)
422a26:	8b 4f 04             	mov    0x4(%edi),%ecx
422a29:	46                   	inc    %esi
422a2a:	f7 db                	neg    %ebx
422a2c:	1b db                	sbb    %ebx,%ebx
422a2e:	83 e3 e0             	and    $0xffffffe0,%ebx
422a31:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
422a37:	33 c0                	xor    %eax,%eax
422a39:	83 c3 27             	add    $0x27,%ebx
422a3c:	33 d2                	xor    %edx,%edx
422a3e:	0b c1                	or     %ecx,%eax
422a40:	75 21                	jne    0x422a63
422a42:	c6 06 30             	movb   $0x30,(%esi)
422a45:	8b 4f 04             	mov    0x4(%edi),%ecx
422a48:	8b 07                	mov    (%edi),%eax
422a4a:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
422a50:	46                   	inc    %esi
422a51:	0b c1                	or     %ecx,%eax
422a53:	75 05                	jne    0x422a5a
422a55:	89 55 ec             	mov    %edx,-0x14(%ebp)
422a58:	eb 0d                	jmp    0x422a67
422a5a:	c7 45 ec fe 03 00 00 	movl   $0x3fe,-0x14(%ebp)
422a61:	eb 04                	jmp    0x422a67
422a63:	c6 06 31             	movb   $0x31,(%esi)
422a66:	46                   	inc    %esi
422a67:	8b c6                	mov    %esi,%eax
422a69:	46                   	inc    %esi
422a6a:	89 45 0c             	mov    %eax,0xc(%ebp)
422a6d:	39 55 14             	cmp    %edx,0x14(%ebp)
422a70:	75 04                	jne    0x422a76
422a72:	88 10                	mov    %dl,(%eax)
422a74:	eb 0f                	jmp    0x422a85
422a76:	8b 4d dc             	mov    -0x24(%ebp),%ecx
422a79:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
422a7f:	8b 09                	mov    (%ecx),%ecx
422a81:	8a 09                	mov    (%ecx),%cl
422a83:	88 08                	mov    %cl,(%eax)
422a85:	8b 4f 04             	mov    0x4(%edi),%ecx
422a88:	8b 07                	mov    (%edi),%eax
422a8a:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
422a90:	89 4d f8             	mov    %ecx,-0x8(%ebp)
422a93:	77 08                	ja     0x422a9d
422a95:	3b c2                	cmp    %edx,%eax
422a97:	0f 86 b5 00 00 00    	jbe    0x422b52
422a9d:	89 55 f4             	mov    %edx,-0xc(%ebp)
422aa0:	c7 45 f8 00 00 0f 00 	movl   $0xf0000,-0x8(%ebp)
422aa7:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
422aab:	7e 4d                	jle    0x422afa
422aad:	8b 57 04             	mov    0x4(%edi),%edx
422ab0:	23 55 f8             	and    -0x8(%ebp),%edx
422ab3:	8b 07                	mov    (%edi),%eax
422ab5:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
422ab9:	23 45 f4             	and    -0xc(%ebp),%eax
422abc:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
422ac2:	e8 b9 96 ff ff       	call   0x41c180
422ac7:	66 83 c0 30          	add    $0x30,%ax
422acb:	0f b7 c0             	movzwl %ax,%eax
422ace:	66 83 f8 39          	cmp    $0x39,%ax
422ad2:	76 02                	jbe    0x422ad6
422ad4:	03 c3                	add    %ebx,%eax
422ad6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
422ad9:	83 6d fc 04          	subl   $0x4,-0x4(%ebp)
422add:	88 06                	mov    %al,(%esi)
422adf:	8b 45 f4             	mov    -0xc(%ebp),%eax
422ae2:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
422ae6:	c1 e9 04             	shr    $0x4,%ecx
422ae9:	46                   	inc    %esi
422aea:	ff 4d 14             	decl   0x14(%ebp)
422aed:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
422af2:	89 45 f4             	mov    %eax,-0xc(%ebp)
422af5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
422af8:	7d ad                	jge    0x422aa7
422afa:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
422aff:	7c 51                	jl     0x422b52
422b01:	8b 57 04             	mov    0x4(%edi),%edx
422b04:	23 55 f8             	and    -0x8(%ebp),%edx
422b07:	8b 07                	mov    (%edi),%eax
422b09:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
422b0d:	23 45 f4             	and    -0xc(%ebp),%eax
422b10:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
422b16:	e8 65 96 ff ff       	call   0x41c180
422b1b:	66 83 f8 08          	cmp    $0x8,%ax
422b1f:	76 31                	jbe    0x422b52
422b21:	8d 46 ff             	lea    -0x1(%esi),%eax
422b24:	8a 08                	mov    (%eax),%cl
422b26:	80 f9 66             	cmp    $0x66,%cl
422b29:	74 05                	je     0x422b30
422b2b:	80 f9 46             	cmp    $0x46,%cl
422b2e:	75 06                	jne    0x422b36
422b30:	c6 00 30             	movb   $0x30,(%eax)
422b33:	48                   	dec    %eax
422b34:	eb ee                	jmp    0x422b24
422b36:	3b 45 0c             	cmp    0xc(%ebp),%eax
422b39:	74 14                	je     0x422b4f
422b3b:	8a 08                	mov    (%eax),%cl
422b3d:	80 f9 39             	cmp    $0x39,%cl
422b40:	75 07                	jne    0x422b49
422b42:	80 c3 3a             	add    $0x3a,%bl
422b45:	88 18                	mov    %bl,(%eax)
422b47:	eb 09                	jmp    0x422b52
422b49:	fe c1                	inc    %cl
422b4b:	88 08                	mov    %cl,(%eax)
422b4d:	eb 03                	jmp    0x422b52
422b4f:	fe 40 ff             	incb   -0x1(%eax)
422b52:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
422b56:	7e 11                	jle    0x422b69
422b58:	ff 75 14             	push   0x14(%ebp)
422b5b:	6a 30                	push   $0x30
422b5d:	56                   	push   %esi
422b5e:	e8 9d 76 ff ff       	call   0x41a200
422b63:	83 c4 0c             	add    $0xc,%esp
422b66:	03 75 14             	add    0x14(%ebp),%esi
422b69:	8b 45 0c             	mov    0xc(%ebp),%eax
422b6c:	80 38 00             	cmpb   $0x0,(%eax)
422b6f:	75 02                	jne    0x422b73
422b71:	8b f0                	mov    %eax,%esi
422b73:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
422b77:	b1 34                	mov    $0x34,%cl
422b79:	0f 94 c0             	sete   %al
422b7c:	fe c8                	dec    %al
422b7e:	24 e0                	and    $0xe0,%al
422b80:	04 70                	add    $0x70,%al
422b82:	88 06                	mov    %al,(%esi)
422b84:	8b 07                	mov    (%edi),%eax
422b86:	8b 57 04             	mov    0x4(%edi),%edx
422b89:	46                   	inc    %esi
422b8a:	e8 f1 95 ff ff       	call   0x41c180
422b8f:	33 db                	xor    %ebx,%ebx
422b91:	25 ff 07 00 00       	and    $0x7ff,%eax
422b96:	23 d3                	and    %ebx,%edx
422b98:	2b 45 ec             	sub    -0x14(%ebp),%eax
422b9b:	53                   	push   %ebx
422b9c:	59                   	pop    %ecx
422b9d:	1b d1                	sbb    %ecx,%edx
422b9f:	78 0c                	js     0x422bad
422ba1:	7f 04                	jg     0x422ba7
422ba3:	3b c3                	cmp    %ebx,%eax
422ba5:	72 06                	jb     0x422bad
422ba7:	c6 06 2b             	movb   $0x2b,(%esi)
422baa:	46                   	inc    %esi
422bab:	eb 0a                	jmp    0x422bb7
422bad:	c6 06 2d             	movb   $0x2d,(%esi)
422bb0:	46                   	inc    %esi
422bb1:	f7 d8                	neg    %eax
422bb3:	13 d3                	adc    %ebx,%edx
422bb5:	f7 da                	neg    %edx
422bb7:	3b d3                	cmp    %ebx,%edx
422bb9:	8b fe                	mov    %esi,%edi
422bbb:	c6 06 30             	movb   $0x30,(%esi)
422bbe:	7c 24                	jl     0x422be4
422bc0:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
422bc5:	7f 04                	jg     0x422bcb
422bc7:	3b c1                	cmp    %ecx,%eax
422bc9:	72 19                	jb     0x422be4
422bcb:	53                   	push   %ebx
422bcc:	51                   	push   %ecx
422bcd:	52                   	push   %edx
422bce:	50                   	push   %eax
422bcf:	e8 bc a3 ff ff       	call   0x41cf90
422bd4:	04 30                	add    $0x30,%al
422bd6:	88 06                	mov    %al,(%esi)
422bd8:	46                   	inc    %esi
422bd9:	89 55 f0             	mov    %edx,-0x10(%ebp)
422bdc:	8b c1                	mov    %ecx,%eax
422bde:	8b d3                	mov    %ebx,%edx
422be0:	3b f7                	cmp    %edi,%esi
422be2:	75 0b                	jne    0x422bef
422be4:	85 d2                	test   %edx,%edx
422be6:	7c 1e                	jl     0x422c06
422be8:	7f 05                	jg     0x422bef
422bea:	83 f8 64             	cmp    $0x64,%eax
422bed:	72 17                	jb     0x422c06
422bef:	6a 00                	push   $0x0
422bf1:	6a 64                	push   $0x64
422bf3:	52                   	push   %edx
422bf4:	50                   	push   %eax
422bf5:	e8 96 a3 ff ff       	call   0x41cf90
422bfa:	04 30                	add    $0x30,%al
422bfc:	88 06                	mov    %al,(%esi)
422bfe:	89 55 f0             	mov    %edx,-0x10(%ebp)
422c01:	46                   	inc    %esi
422c02:	8b c1                	mov    %ecx,%eax
422c04:	8b d3                	mov    %ebx,%edx
422c06:	3b f7                	cmp    %edi,%esi
422c08:	75 0b                	jne    0x422c15
422c0a:	85 d2                	test   %edx,%edx
422c0c:	7c 1f                	jl     0x422c2d
422c0e:	7f 05                	jg     0x422c15
422c10:	83 f8 0a             	cmp    $0xa,%eax
422c13:	72 18                	jb     0x422c2d
422c15:	6a 00                	push   $0x0
422c17:	6a 0a                	push   $0xa
422c19:	52                   	push   %edx
422c1a:	50                   	push   %eax
422c1b:	e8 70 a3 ff ff       	call   0x41cf90
422c20:	04 30                	add    $0x30,%al
422c22:	88 06                	mov    %al,(%esi)
422c24:	89 55 f0             	mov    %edx,-0x10(%ebp)
422c27:	46                   	inc    %esi
422c28:	8b c1                	mov    %ecx,%eax
422c2a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
422c2d:	04 30                	add    $0x30,%al
422c2f:	88 06                	mov    %al,(%esi)