42291f:	e8 62 e5 ff ff       	call   0x420e86
422924:	eb 2f                	jmp    0x422955
422926:	8b ce                	mov    %esi,%ecx
422928:	e8 50 09 00 00       	call   0x42327d
42292d:	eb 26                	jmp    0x422955
42292f:	83 e8 70             	sub    $0x70,%eax
422932:	74 1a                	je     0x42294e
422934:	83 e8 03             	sub    $0x3,%eax
422937:	74 0c                	je     0x422945
422939:	2b c1                	sub    %ecx,%eax
42293b:	74 df                	je     0x42291c
42293d:	83 e8 03             	sub    $0x3,%eax
422940:	75 17                	jne    0x422959
422942:	53                   	push   %ebx
422943:	eb a2                	jmp    0x4228e7
422945:	8b ce                	mov    %esi,%ecx
422947:	e8 ec 09 00 00       	call   0x423338
42294c:	eb 07                	jmp    0x422955
42294e:	8b ce                	mov    %esi,%ecx
422950:	e8 5b 09 00 00       	call   0x4232b0
422955:	84 c0                	test   %al,%al
422957:	75 07                	jne    0x422960
422959:	32 c0                	xor    %al,%al
42295b:	e9 dd 02 00 00       	jmp    0x422c3d
422960:	38 5e 2c             	cmp    %bl,0x2c(%esi)
422963:	0f 85 d2 02 00 00    	jne    0x422c3b
422969:	8b 46 1c             	mov    0x1c(%esi),%eax
42296c:	33 d2                	xor    %edx,%edx
42296e:	c1 e8 04             	shr    $0x4,%eax
422971:	42                   	inc    %edx
422972:	89 5d f4             	mov    %ebx,-0xc(%ebp)
422975:	8b cb                	mov    %ebx,%ecx
422977:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
42297b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
42297e:	6a 20                	push   $0x20
422980:	5f                   	pop    %edi
422981:	84 c2                	test   %al,%dl
422983:	74 33                	je     0x4229b8
422985:	8b 46 1c             	mov    0x1c(%esi),%eax
422988:	c1 e8 06             	shr    $0x6,%eax
42298b:	84 c2                	test   %al,%dl
42298d:	74 04                	je     0x422993
42298f:	6a 2d                	push   $0x2d
422991:	eb 07                	jmp    0x42299a
422993:	84 56 1c             	test   %dl,0x1c(%esi)
422996:	74 0e                	je     0x4229a6
422998:	6a 2b                	push   $0x2b
42299a:	58                   	pop    %eax
42299b:	8b ca                	mov    %edx,%ecx
42299d:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
4229a1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4229a4:	eb 12                	jmp    0x4229b8
4229a6:	8b 46 1c             	mov    0x1c(%esi),%eax
4229a9:	d1 e8                	shr    $1,%eax
4229ab:	84 c2                	test   %al,%dl
4229ad:	74 09                	je     0x4229b8
4229af:	66 89 7d f4          	mov    %di,-0xc(%ebp)
4229b3:	8b ca                	mov    %edx,%ecx
4229b5:	89 55 f0             	mov    %edx,-0x10(%ebp)
4229b8:	0f b7 56 2e          	movzwl 0x2e(%esi),%edx
4229bc:	6a 78                	push   $0x78
4229be:	5f                   	pop    %edi
4229bf:	66 3b d7             	cmp    %di,%dx
4229c2:	74 08                	je     0x4229cc
4229c4:	6a 58                	push   $0x58
4229c6:	58                   	pop    %eax
4229c7:	66 3b d0             	cmp    %ax,%dx
4229ca:	75 0c                	jne    0x4229d8
4229cc:	8b 46 1c             	mov    0x1c(%esi),%eax
4229cf:	c1 e8 05             	shr    $0x5,%eax
4229d2:	b4 01                	mov    $0x1,%ah
4229d4:	a8 01                	test   $0x1,%al
4229d6:	75 02                	jne    0x4229da
4229d8:	8a e3                	mov    %bl,%ah
4229da:	83 fa 61             	cmp    $0x61,%edx
4229dd:	74 08                	je     0x4229e7
4229df:	8a c3                	mov    %bl,%al
4229e1:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
4229e5:	75 02                	jne    0x4229e9
4229e7:	b0 01                	mov    $0x1,%al
4229e9:	c7 45 e8 30 00 00 00 	movl   $0x30,-0x18(%ebp)
4229f0:	84 e4                	test   %ah,%ah
4229f2:	75 04                	jne    0x4229f8
4229f4:	84 c0                	test   %al,%al
4229f6:	74 23                	je     0x422a1b
4229f8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4229fb:	6a 58                	push   $0x58
4229fd:	66 89 44 4d f4       	mov    %ax,-0xc(%ebp,%ecx,2)
422a02:	58                   	pop    %eax
422a03:	66 3b d0             	cmp    %ax,%dx
422a06:	74 06                	je     0x422a0e
422a08:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
422a0c:	75 02                	jne    0x422a10
422a0e:	8b f8                	mov    %eax,%edi
422a10:	66 89 7c 4d f6       	mov    %di,-0xa(%ebp,%ecx,2)
422a15:	83 c1 02             	add    $0x2,%ecx
422a18:	89 4d f0             	mov    %ecx,-0x10(%ebp)
422a1b:	8b 56 20             	mov    0x20(%esi),%edx
422a1e:	2b 56 34             	sub    0x34(%esi),%edx
422a21:	2b d1                	sub    %ecx,%edx
422a23:	f6 46 1c 0c          	testb  $0xc,0x1c(%esi)
422a27:	89 55 dc             	mov    %edx,-0x24(%ebp)
422a2a:	75 5e                	jne    0x422a8a
422a2c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
422a2f:	85 d2                	test   %edx,%edx
422a31:	7e 57                	jle    0x422a8a
422a33:	8b 5e 14             	mov    0x14(%esi),%ebx
422a36:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
422a39:	8b be 48 04 00 00    	mov    0x448(%esi),%edi
422a3f:	8b 47 08             	mov    0x8(%edi),%eax
422a42:	3b 47 04             	cmp    0x4(%edi),%eax
422a45:	75 11                	jne    0x422a58
422a47:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
422a4b:	74 03                	je     0x422a50
422a4d:	43                   	inc    %ebx
422a4e:	eb 03                	jmp    0x422a53
422a50:	83 cb ff             	or     $0xffffffff,%ebx
422a53:	89 5e 14             	mov    %ebx,0x14(%esi)
422a56:	eb 20                	jmp    0x422a78
422a58:	8d 43 01             	lea    0x1(%ebx),%eax
422a5b:	89 46 14             	mov    %eax,0x14(%esi)
422a5e:	ff 47 08             	incl   0x8(%edi)
422a61:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
422a67:	6a 20                	push   $0x20
422a69:	5b                   	pop    %ebx
422a6a:	8b 00                	mov    (%eax),%eax
422a6c:	66 89 18             	mov    %bx,(%eax)
422a6f:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
422a75:	83 00 02             	addl   $0x2,(%eax)
422a78:	8b 5e 14             	mov    0x14(%esi),%ebx
422a7b:	83 fb ff             	cmp    $0xffffffff,%ebx
422a7e:	74 05                	je     0x422a85
422a80:	41                   	inc    %ecx
422a81:	3b ca                	cmp    %edx,%ecx
422a83:	7c b4                	jl     0x422a39
422a85:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422a88:	33 db                	xor    %ebx,%ebx
422a8a:	ff 76 08             	push   0x8(%esi)
422a8d:	8d 7e 14             	lea    0x14(%esi),%edi
422a90:	57                   	push   %edi
422a91:	51                   	push   %ecx
422a92:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
422a98:	8d 4d f4             	lea    -0xc(%ebp),%ecx
422a9b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
422a9e:	51                   	push   %ecx
422a9f:	8b c8                	mov    %eax,%ecx
422aa1:	e8 f3 09 00 00       	call   0x423499
422aa6:	8b 4e 1c             	mov    0x1c(%esi),%ecx
422aa9:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
422aaf:	8b c1                	mov    %ecx,%eax
422ab1:	c1 e8 03             	shr    $0x3,%eax
422ab4:	a8 01                	test   $0x1,%al
422ab6:	74 5b                	je     0x422b13
422ab8:	c1 e9 02             	shr    $0x2,%ecx
422abb:	f6 c1 01             	test   $0x1,%cl
422abe:	75 53                	jne    0x422b13
422ac0:	8b 4d dc             	mov    -0x24(%ebp),%ecx
422ac3:	89 5d ec             	mov    %ebx,-0x14(%ebp)
422ac6:	85 c9                	test   %ecx,%ecx
422ac8:	7e 49                	jle    0x422b13
422aca:	8b 02                	mov    (%edx),%eax
422acc:	89 45 f0             	mov    %eax,-0x10(%ebp)
422acf:	8b d8                	mov    %eax,%ebx
422ad1:	8b 40 08             	mov    0x8(%eax),%eax
422ad4:	3b 43 04             	cmp    0x4(%ebx),%eax
422ad7:	8b c3                	mov    %ebx,%eax
422ad9:	75 12                	jne    0x422aed
422adb:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
422adf:	74 05                	je     0x422ae6
422ae1:	8b 07                	mov    (%edi),%eax
422ae3:	40                   	inc    %eax
422ae4:	eb 03                	jmp    0x422ae9
422ae6:	83 c8 ff             	or     $0xffffffff,%eax
422ae9:	89 07                	mov    %eax,(%edi)
422aeb:	eb 14                	jmp    0x422b01
422aed:	ff 07                	incl   (%edi)
422aef:	ff 40 08             	incl   0x8(%eax)
422af2:	8b 02                	mov    (%edx),%eax
422af4:	8b 5d e8             	mov    -0x18(%ebp),%ebx
422af7:	8b 00                	mov    (%eax),%eax
422af9:	66 89 18             	mov    %bx,(%eax)
422afc:	8b 02                	mov    (%edx),%eax
422afe:	83 00 02             	addl   $0x2,(%eax)
422b01:	83 3f ff             	cmpl   $0xffffffff,(%edi)
422b04:	74 0b                	je     0x422b11
422b06:	8b 45 ec             	mov    -0x14(%ebp),%eax
422b09:	40                   	inc    %eax
422b0a:	89 45 ec             	mov    %eax,-0x14(%ebp)
422b0d:	3b c1                	cmp    %ecx,%eax
422b0f:	7c b9                	jl     0x422aca
422b11:	33 db                	xor    %ebx,%ebx
422b13:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
422b17:	0f 85 ad 00 00 00    	jne    0x422bca
422b1d:	39 5e 34             	cmp    %ebx,0x34(%esi)
422b20:	0f 8e a4 00 00 00    	jle    0x422bca
422b26:	8b 46 08             	mov    0x8(%esi),%eax
422b29:	89 45 e0             	mov    %eax,-0x20(%ebp)
422b2c:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
422b30:	75 0a                	jne    0x422b3c
422b32:	8b c8                	mov    %eax,%ecx
422b34:	e8 47 cb ff ff       	call   0x41f680
422b39:	8b 45 e0             	mov    -0x20(%ebp),%eax
422b3c:	8b 4e 30             	mov    0x30(%esi),%ecx
422b3f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
422b42:	89 5d ec             	mov    %ebx,-0x14(%ebp)
422b45:	39 5e 34             	cmp    %ebx,0x34(%esi)
422b48:	0f 84 8d 00 00 00    	je     0x422bdb
422b4e:	8b 40 0c             	mov    0xc(%eax),%eax
422b51:	33 d2                	xor    %edx,%edx
422b53:	ff 76 08             	push   0x8(%esi)
422b56:	66 89 55 f0          	mov    %dx,-0x10(%ebp)
422b5a:	ff 70 04             	push   0x4(%eax)
422b5d:	8d 45 f0             	lea    -0x10(%ebp),%eax
422b60:	51                   	push   %ecx
422b61:	50                   	push   %eax
422b62:	e8 9e 8a 00 00       	call   0x42b605
422b67:	83 c4 10             	add    $0x10,%esp
422b6a:	89 45 f4             	mov    %eax,-0xc(%ebp)
422b6d:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
422b73:	85 c0                	test   %eax,%eax
422b75:	7e 4e                	jle    0x422bc5
422b77:	8b 0a                	mov    (%edx),%ecx
422b79:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
422b7d:	89 45 d8             	mov    %eax,-0x28(%ebp)
422b80:	8b 41 08             	mov    0x8(%ecx),%eax
422b83:	3b 41 04             	cmp    0x4(%ecx),%eax
422b86:	75 0f                	jne    0x422b97
422b88:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
422b8c:	74 04                	je     0x422b92
422b8e:	ff 07                	incl   (%edi)
422b90:	eb 19                	jmp    0x422bab
422b92:	83 0f ff             	orl    $0xffffffff,(%edi)
422b95:	eb 14                	jmp    0x422bab
422b97:	ff 07                	incl   (%edi)
422b99:	ff 41 08             	incl   0x8(%ecx)
422b9c:	8b 02                	mov    (%edx),%eax
422b9e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
422ba1:	8b 00                	mov    (%eax),%eax
422ba3:	66 89 08             	mov    %cx,(%eax)
422ba6:	8b 02                	mov    (%edx),%eax
422ba8:	83 00 02             	addl   $0x2,(%eax)
422bab:	8b 4d e8             	mov    -0x18(%ebp),%ecx
422bae:	03 4d f4             	add    -0xc(%ebp),%ecx
422bb1:	8b 45 ec             	mov    -0x14(%ebp),%eax
422bb4:	40                   	inc    %eax
422bb5:	89 4d e8             	mov    %ecx,-0x18(%ebp)
422bb8:	3b 46 34             	cmp    0x34(%esi),%eax
422bbb:	89 45 ec             	mov    %eax,-0x14(%ebp)
422bbe:	8b 45 e0             	mov    -0x20(%ebp),%eax
422bc1:	75 8b                	jne    0x422b4e
422bc3:	eb 1c                	jmp    0x422be1
422bc5:	83 0f ff             	orl    $0xffffffff,(%edi)
422bc8:	eb 17                	jmp    0x422be1
422bca:	ff 76 08             	push   0x8(%esi)
422bcd:	8b ca                	mov    %edx,%ecx
422bcf:	57                   	push   %edi
422bd0:	ff 76 34             	push   0x34(%esi)
422bd3:	ff 76 30             	push   0x30(%esi)
422bd6:	e8 be 08 00 00       	call   0x423499
422bdb:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
422be1:	8b 0f                	mov    (%edi),%ecx
422be3:	85 c9                	test   %ecx,%ecx
422be5:	78 54                	js     0x422c3b
422be7:	8b 46 1c             	mov    0x1c(%esi),%eax
422bea:	c1 e8 02             	shr    $0x2,%eax
422bed:	a8 01                	test   $0x1,%al
422bef:	74 4a                	je     0x422c3b
422bf1:	8b 75 dc             	mov    -0x24(%ebp),%esi
422bf4:	85 f6                	test   %esi,%esi
422bf6:	7e 43                	jle    0x422c3b
422bf8:	8b 12                	mov    (%edx),%edx
422bfa:	8b 42 08             	mov    0x8(%edx),%eax
422bfd:	3b 42 04             	cmp    0x4(%edx),%eax
422c00:	75 13                	jne    0x422c15
422c02:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
422c06:	74 03                	je     0x422c0b
422c08:	41                   	inc    %ecx
422c09:	eb 03                	jmp    0x422c0e
422c0b:	83 c9 ff             	or     $0xffffffff,%ecx
422c0e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
422c11:	89 0f                	mov    %ecx,(%edi)
422c13:	eb 1a                	jmp    0x422c2f
422c15:	8d 41 01             	lea    0x1(%ecx),%eax
422c18:	89 07                	mov    %eax,(%edi)
422c1a:	ff 42 08             	incl   0x8(%edx)
422c1d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
422c20:	6a 20                	push   $0x20
422c22:	59                   	pop    %ecx
422c23:	8b 02                	mov    (%edx),%eax
422c25:	8b 00                	mov    (%eax),%eax
422c27:	66 89 08             	mov    %cx,(%eax)
422c2a:	8b 02                	mov    (%edx),%eax
422c2c:	83 00 02             	addl   $0x2,(%eax)
422c2f:	8b 0f                	mov    (%edi),%ecx
422c31:	83 f9 ff             	cmp    $0xffffffff,%ecx
422c34:	74 05                	je     0x422c3b
422c36:	43                   	inc    %ebx
422c37:	3b de                	cmp    %esi,%ebx
422c39:	7c bd                	jl     0x422bf8
422c3b:	b0 01                	mov    $0x1,%al
422c3d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422c40:	5f                   	pop    %edi
422c41:	5e                   	pop    %esi
422c42:	33 cd                	xor    %ebp,%ecx
422c44:	5b                   	pop    %ebx
422c45:	e8 60 6f ff ff       	call   0x419baa
422c4a:	c9                   	leave
422c4b:	c3                   	ret
422c4c:	8b ff                	mov    %edi,%edi
422c4e:	55                   	push   %ebp
422c4f:	8b ec                	mov    %esp,%ebp
422c51:	8b 45 08             	mov    0x8(%ebp),%eax
422c54:	83 f8 0b             	cmp    $0xb,%eax
422c57:	77 20                	ja     0x422c79
422c59:	0f b6 80 94 2c 42 00 	movzbl 0x422c94(%eax),%eax
422c60:	ff 24 85 80 2c 42 00 	jmp    *0x422c80(,%eax,4)
422c67:	33 c0                	xor    %eax,%eax
422c69:	40                   	inc    %eax
422c6a:	5d                   	pop    %ebp
422c6b:	c3                   	ret
422c6c:	6a 02                	push   $0x2
422c6e:	58                   	pop    %eax
422c6f:	5d                   	pop    %ebp
422c70:	c3                   	ret
422c71:	6a 04                	push   $0x4
422c73:	eb f9                	jmp    0x422c6e
422c75:	6a 08                	push   $0x8
422c77:	eb f5                	jmp    0x422c6e
422c79:	33 c0                	xor    %eax,%eax
422c7b:	5d                   	pop    %ebp
422c7c:	c3                   	ret
422c7d:	8d 49 00             	lea    0x0(%ecx),%ecx
422c80:	71 2c                	jno    0x422cae
422c82:	42                   	inc    %edx
422c83:	00 67 2c             	add    %ah,0x2c(%edi)
422c86:	42                   	inc    %edx
422c87:	00 6c 2c 42          	add    %ch,0x42(%esp,%ebp,1)
422c8b:	00 75 2c             	add    %dh,0x2c(%ebp)
422c8e:	42                   	inc    %edx
422c8f:	00 79 2c             	add    %bh,0x2c(%ecx)
422c92:	42                   	inc    %edx
422c93:	00 00                	add    %al,(%eax)
422c95:	01 02                	add    %eax,(%edx)
422c97:	00 03                	add    %al,(%ebx)
422c99:	03 00                	add    (%eax),%eax
422c9b:	00 04 00             	add    %al,(%eax,%eax,1)
422c9e:	00 03                	add    %al,(%ebx)
422ca0:	8b ff                	mov    %edi,%edi
422ca2:	53                   	push   %ebx
422ca3:	56                   	push   %esi