42181d:	73 1b                	jae    0x42183a
42181f:	e9 b9 fe ff ff       	jmp    0x4216dd
421824:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
42182b:	73 0d                	jae    0x42183a
42182d:	0f b7 c6             	movzwl %si,%eax
421830:	2d 10 ff 00 00       	sub    $0xff10,%eax
421835:	83 f8 ff             	cmp    $0xffffffff,%eax
421838:	75 28                	jne    0x421862
42183a:	0f b7 c6             	movzwl %si,%eax
42183d:	83 f8 41             	cmp    $0x41,%eax
421840:	72 0a                	jb     0x42184c
421842:	83 f8 5a             	cmp    $0x5a,%eax
421845:	77 05                	ja     0x42184c
421847:	8d 48 9f             	lea    -0x61(%eax),%ecx
42184a:	eb 08                	jmp    0x421854
42184c:	8d 48 9f             	lea    -0x61(%eax),%ecx
42184f:	83 f9 19             	cmp    $0x19,%ecx
421852:	77 4f                	ja     0x4218a3
421854:	83 f9 19             	cmp    $0x19,%ecx
421857:	77 03                	ja     0x42185c
421859:	83 c0 e0             	add    $0xffffffe0,%eax
42185c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42185f:	83 c0 c9             	add    $0xffffffc9,%eax
421862:	85 c0                	test   %eax,%eax
421864:	75 3d                	jne    0x4218a3
421866:	0f b7 01             	movzwl (%ecx),%eax
421869:	83 c1 02             	add    $0x2,%ecx
42186c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
42186f:	83 f8 78             	cmp    $0x78,%eax
421872:	74 1a                	je     0x42188e
421874:	83 f8 58             	cmp    $0x58,%eax
421877:	74 15                	je     0x42188e
421879:	85 ff                	test   %edi,%edi
42187b:	75 06                	jne    0x421883
42187d:	6a 08                	push   $0x8
42187f:	5f                   	pop    %edi
421880:	89 7d 14             	mov    %edi,0x14(%ebp)
421883:	50                   	push   %eax
421884:	8d 4d 0c             	lea    0xc(%ebp),%ecx
421887:	e8 e4 2c 00 00       	call   0x424570
42188c:	eb 1f                	jmp    0x4218ad
42188e:	85 ff                	test   %edi,%edi
421890:	75 06                	jne    0x421898
421892:	6a 10                	push   $0x10
421894:	5f                   	pop    %edi
421895:	89 7d 14             	mov    %edi,0x14(%ebp)
421898:	0f b7 31             	movzwl (%ecx),%esi
42189b:	83 c1 02             	add    $0x2,%ecx
42189e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4218a1:	eb 0a                	jmp    0x4218ad
4218a3:	85 ff                	test   %edi,%edi
4218a5:	75 06                	jne    0x4218ad
4218a7:	6a 0a                	push   $0xa
4218a9:	5f                   	pop    %edi
4218aa:	89 7d 14             	mov    %edi,0x14(%ebp)
4218ad:	83 c8 ff             	or     $0xffffffff,%eax
4218b0:	33 d2                	xor    %edx,%edx
4218b2:	f7 f7                	div    %edi
4218b4:	8b f8                	mov    %eax,%edi
4218b6:	6a 30                	push   $0x30
4218b8:	58                   	pop    %eax
4218b9:	66 3b f0             	cmp    %ax,%si
4218bc:	0f 82 4c 01 00 00    	jb     0x421a0e
4218c2:	6a 3a                	push   $0x3a
4218c4:	59                   	pop    %ecx
4218c5:	66 3b f1             	cmp    %cx,%si
4218c8:	0f 82 36 01 00 00    	jb     0x421a04
4218ce:	b8 10 ff 00 00       	mov    $0xff10,%eax
4218d3:	66 3b f0             	cmp    %ax,%si
4218d6:	0f 83 1f 01 00 00    	jae    0x4219fb
4218dc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4218df:	66 3b f0             	cmp    %ax,%si
4218e2:	0f 82 26 01 00 00    	jb     0x421a0e
4218e8:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
4218ec:	0f 82 12 01 00 00    	jb     0x421a04
4218f2:	8b 45 f0             	mov    -0x10(%ebp),%eax
4218f5:	66 3b f0             	cmp    %ax,%si
4218f8:	0f 82 10 01 00 00    	jb     0x421a0e
4218fe:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
421902:	0f 82 fc 00 00 00    	jb     0x421a04
421908:	8b 45 e8             	mov    -0x18(%ebp),%eax
42190b:	66 3b f0             	cmp    %ax,%si
42190e:	0f 82 fa 00 00 00    	jb     0x421a0e
421914:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
421918:	0f 82 e6 00 00 00    	jb     0x421a04
42191e:	8b 45 e0             	mov    -0x20(%ebp),%eax
421921:	66 3b f0             	cmp    %ax,%si
421924:	0f 82 e4 00 00 00    	jb     0x421a0e
42192a:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
42192e:	0f 82 d0 00 00 00    	jb     0x421a04
421934:	8b 45 d8             	mov    -0x28(%ebp),%eax
421937:	66 3b f0             	cmp    %ax,%si
42193a:	0f 82 ce 00 00 00    	jb     0x421a0e
421940:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
421944:	0f 82 ba 00 00 00    	jb     0x421a04
42194a:	8b 45 d0             	mov    -0x30(%ebp),%eax
42194d:	66 3b f0             	cmp    %ax,%si
421950:	0f 82 b8 00 00 00    	jb     0x421a0e
421956:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
42195a:	0f 82 a4 00 00 00    	jb     0x421a04
421960:	8b 45 c8             	mov    -0x38(%ebp),%eax
421963:	66 3b f0             	cmp    %ax,%si
421966:	0f 82 a2 00 00 00    	jb     0x421a0e
42196c:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
421970:	0f 82 8e 00 00 00    	jb     0x421a04
421976:	8b 45 c0             	mov    -0x40(%ebp),%eax
421979:	66 3b f0             	cmp    %ax,%si
42197c:	0f 82 8c 00 00 00    	jb     0x421a0e
421982:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
421986:	72 7c                	jb     0x421a04
421988:	8b 45 b8             	mov    -0x48(%ebp),%eax
42198b:	66 3b f0             	cmp    %ax,%si
42198e:	72 7e                	jb     0x421a0e
421990:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
421994:	72 6e                	jb     0x421a04
421996:	8b 45 b0             	mov    -0x50(%ebp),%eax
421999:	66 3b f0             	cmp    %ax,%si
42199c:	72 70                	jb     0x421a0e
42199e:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
4219a2:	72 60                	jb     0x421a04
4219a4:	8b 45 a8             	mov    -0x58(%ebp),%eax
4219a7:	66 3b f0             	cmp    %ax,%si
4219aa:	72 62                	jb     0x421a0e
4219ac:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
4219b0:	72 52                	jb     0x421a04
4219b2:	8b 45 a0             	mov    -0x60(%ebp),%eax
4219b5:	66 3b f0             	cmp    %ax,%si
4219b8:	72 54                	jb     0x421a0e
4219ba:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
4219be:	72 44                	jb     0x421a04
4219c0:	8b 45 98             	mov    -0x68(%ebp),%eax
4219c3:	66 3b f0             	cmp    %ax,%si
4219c6:	72 46                	jb     0x421a0e
4219c8:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
4219cc:	72 36                	jb     0x421a04
4219ce:	8b 45 90             	mov    -0x70(%ebp),%eax
4219d1:	66 3b f0             	cmp    %ax,%si
4219d4:	72 38                	jb     0x421a0e
4219d6:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
4219da:	72 28                	jb     0x421a04
4219dc:	8b 45 88             	mov    -0x78(%ebp),%eax
4219df:	66 3b f0             	cmp    %ax,%si
4219e2:	72 2a                	jb     0x421a0e
4219e4:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
4219e8:	72 1a                	jb     0x421a04
4219ea:	8b 45 80             	mov    -0x80(%ebp),%eax
4219ed:	66 3b f0             	cmp    %ax,%si
4219f0:	72 1c                	jb     0x421a0e
4219f2:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
4219f9:	eb 07                	jmp    0x421a02
4219fb:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
421a02:	73 0a                	jae    0x421a0e
421a04:	0f b7 ce             	movzwl %si,%ecx
421a07:	2b c8                	sub    %eax,%ecx
421a09:	83 f9 ff             	cmp    $0xffffffff,%ecx
421a0c:	75 2e                	jne    0x421a3c
421a0e:	0f b7 ce             	movzwl %si,%ecx
421a11:	83 f9 41             	cmp    $0x41,%ecx
421a14:	72 05                	jb     0x421a1b
421a16:	83 f9 5a             	cmp    $0x5a,%ecx
421a19:	76 0b                	jbe    0x421a26
421a1b:	83 f9 61             	cmp    $0x61,%ecx
421a1e:	72 19                	jb     0x421a39
421a20:	66 83 fe 7a          	cmp    $0x7a,%si
421a24:	77 13                	ja     0x421a39
421a26:	6a 19                	push   $0x19
421a28:	8d 46 9f             	lea    -0x61(%esi),%eax
421a2b:	5a                   	pop    %edx
421a2c:	66 3b c2             	cmp    %dx,%ax
421a2f:	77 03                	ja     0x421a34
421a31:	83 c1 e0             	add    $0xffffffe0,%ecx
421a34:	83 c1 c9             	add    $0xffffffc9,%ecx
421a37:	eb 03                	jmp    0x421a3c
421a39:	83 c9 ff             	or     $0xffffffff,%ecx
421a3c:	8b 55 14             	mov    0x14(%ebp),%edx
421a3f:	3b ca                	cmp    %edx,%ecx
421a41:	73 34                	jae    0x421a77
421a43:	8b 45 fc             	mov    -0x4(%ebp),%eax
421a46:	0f af c2             	imul   %edx,%eax
421a49:	8d 14 08             	lea    (%eax,%ecx,1),%edx
421a4c:	3b d0                	cmp    %eax,%edx
421a4e:	1b c9                	sbb    %ecx,%ecx
421a50:	f7 d9                	neg    %ecx
421a52:	3b 7d fc             	cmp    -0x4(%ebp),%edi
421a55:	89 55 fc             	mov    %edx,-0x4(%ebp)
421a58:	1b c0                	sbb    %eax,%eax
421a5a:	f7 d8                	neg    %eax
421a5c:	0b c8                	or     %eax,%ecx
421a5e:	c1 e1 02             	shl    $0x2,%ecx
421a61:	83 c9 08             	or     $0x8,%ecx
421a64:	0b d9                	or     %ecx,%ebx
421a66:	8b 4d 0c             	mov    0xc(%ebp),%ecx
421a69:	0f b7 31             	movzwl (%ecx),%esi
421a6c:	83 c1 02             	add    $0x2,%ecx
421a6f:	89 4d 0c             	mov    %ecx,0xc(%ebp)
421a72:	e9 3f fe ff ff       	jmp    0x4218b6
421a77:	56                   	push   %esi
421a78:	8d 4d 0c             	lea    0xc(%ebp),%ecx
421a7b:	e8 f0 2a 00 00       	call   0x424570
421a80:	f6 c3 08             	test   $0x8,%bl
421a83:	75 13                	jne    0x421a98
421a85:	8b 45 10             	mov    0x10(%ebp),%eax
421a88:	85 c0                	test   %eax,%eax
421a8a:	74 08                	je     0x421a94
421a8c:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
421a92:	89 08                	mov    %ecx,(%eax)
421a94:	33 c0                	xor    %eax,%eax
421a96:	eb 65                	jmp    0x421afd
421a98:	8b 75 fc             	mov    -0x4(%ebp),%esi
421a9b:	56                   	push   %esi
421a9c:	53                   	push   %ebx
421a9d:	e8 b0 f7 ff ff       	call   0x421252
421aa2:	59                   	pop    %ecx
421aa3:	59                   	pop    %ecx
421aa4:	84 c0                	test   %al,%al
421aa6:	74 40                	je     0x421ae8
421aa8:	8b 45 08             	mov    0x8(%ebp),%eax
421aab:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421aaf:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
421ab6:	f6 c3 01             	test   $0x1,%bl
421ab9:	75 05                	jne    0x421ac0
421abb:	83 ce ff             	or     $0xffffffff,%esi
421abe:	eb 2f                	jmp    0x421aef
421ac0:	8b 4d 10             	mov    0x10(%ebp),%ecx
421ac3:	f6 c3 02             	test   $0x2,%bl
421ac6:	74 10                	je     0x421ad8
421ac8:	85 c9                	test   %ecx,%ecx
421aca:	74 05                	je     0x421ad1
421acc:	8b 45 0c             	mov    0xc(%ebp),%eax
421acf:	89 01                	mov    %eax,(%ecx)
421ad1:	b8 00 00 00 80       	mov    $0x80000000,%eax
421ad6:	eb 25                	jmp    0x421afd
421ad8:	85 c9                	test   %ecx,%ecx
421ada:	74 05                	je     0x421ae1
421adc:	8b 45 0c             	mov    0xc(%ebp),%eax
421adf:	89 01                	mov    %eax,(%ecx)
421ae1:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
421ae6:	eb 15                	jmp    0x421afd
421ae8:	f6 c3 02             	test   $0x2,%bl
421aeb:	74 02                	je     0x421aef
421aed:	f7 de                	neg    %esi
421aef:	8b 55 10             	mov    0x10(%ebp),%edx
421af2:	85 d2                	test   %edx,%edx
421af4:	74 05                	je     0x421afb
421af6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
421af9:	89 0a                	mov    %ecx,(%edx)
421afb:	8b c6                	mov    %esi,%eax
421afd:	5f                   	pop    %edi
421afe:	5e                   	pop    %esi
421aff:	5b                   	pop    %ebx
421b00:	c9                   	leave
421b01:	c3                   	ret
421b02:	8b ff                	mov    %edi,%edi
421b04:	56                   	push   %esi
421b05:	8b f1                	mov    %ecx,%esi
421b07:	57                   	push   %edi
421b08:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
421b0e:	e8 0b f6 ff ff       	call   0x42111e
421b13:	85 ff                	test   %edi,%edi
421b15:	75 04                	jne    0x421b1b
421b17:	03 c6                	add    %esi,%eax
421b19:	eb 02                	jmp    0x421b1d
421b1b:	03 c7                	add    %edi,%eax
421b1d:	5f                   	pop    %edi
421b1e:	5e                   	pop    %esi
421b1f:	c3                   	ret
421b20:	8b ff                	mov    %edi,%edi
421b22:	55                   	push   %ebp
421b23:	8b ec                	mov    %esp,%ebp
421b25:	83 ec 0c             	sub    $0xc,%esp
421b28:	53                   	push   %ebx
421b29:	56                   	push   %esi
421b2a:	8b f1                	mov    %ecx,%esi
421b2c:	57                   	push   %edi
421b2d:	ff 76 28             	push   0x28(%esi)
421b30:	e8 5d 22 00 00       	call   0x423d92
421b35:	59                   	pop    %ecx
421b36:	8b c8                	mov    %eax,%ecx
421b38:	89 45 f4             	mov    %eax,-0xc(%ebp)
421b3b:	6a 00                	push   $0x0
421b3d:	5b                   	pop    %ebx
421b3e:	83 e9 01             	sub    $0x1,%ecx
421b41:	0f 84 99 00 00 00    	je     0x421be0
421b47:	83 e9 01             	sub    $0x1,%ecx
421b4a:	74 75                	je     0x421bc1
421b4c:	49                   	dec    %ecx
421b4d:	83 e9 01             	sub    $0x1,%ecx
421b50:	74 46                	je     0x421b98
421b52:	83 e9 04             	sub    $0x4,%ecx
421b55:	74 27                	je     0x421b7e
421b57:	8b 46 08             	mov    0x8(%esi),%eax
421b5a:	83 c0 18             	add    $0x18,%eax
421b5d:	c6 40 04 01          	movb   $0x1,0x4(%eax)
421b61:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
421b67:	ff 76 08             	push   0x8(%esi)
421b6a:	53                   	push   %ebx
421b6b:	53                   	push   %ebx
421b6c:	53                   	push   %ebx
421b6d:	53                   	push   %ebx
421b6e:	53                   	push   %ebx
421b6f:	e8 7e ee ff ff       	call   0x4209f2
421b74:	83 c4 18             	add    $0x18,%esp
421b77:	32 c0                	xor    %al,%al
421b79:	e9 28 01 00 00       	jmp    0x421ca6
421b7e:	8b 4e 10             	mov    0x10(%esi),%ecx
421b81:	8b 7e 1c             	mov    0x1c(%esi),%edi
421b84:	8b c7                	mov    %edi,%eax
421b86:	c1 e8 04             	shr    $0x4,%eax
421b89:	a8 01                	test   $0x1,%al
421b8b:	8d 41 08             	lea    0x8(%ecx),%eax
421b8e:	89 46 10             	mov    %eax,0x10(%esi)
421b91:	8b 01                	mov    (%ecx),%eax
421b93:	8b 51 04             	mov    0x4(%ecx),%edx
421b96:	eb 66                	jmp    0x421bfe
421b98:	8b 7e 1c             	mov    0x1c(%esi),%edi
421b9b:	8b c7                	mov    %edi,%eax
421b9d:	c1 e8 04             	shr    $0x4,%eax
421ba0:	a8 01                	test   $0x1,%al
421ba2:	74 0d                	je     0x421bb1
421ba4:	8b 46 10             	mov    0x10(%esi),%eax
421ba7:	8d 48 04             	lea    0x4(%eax),%ecx
421baa:	89 4e 10             	mov    %ecx,0x10(%esi)
421bad:	8b 00                	mov    (%eax),%eax
421baf:	eb 4c                	jmp    0x421bfd
421bb1:	8b 4e 10             	mov    0x10(%esi),%ecx
421bb4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
421bb7:	8d 41 04             	lea    0x4(%ecx),%eax
421bba:	89 46 10             	mov    %eax,0x10(%esi)
421bbd:	8b 01                	mov    (%ecx),%eax
421bbf:	eb 40                	jmp    0x421c01
421bc1:	8b 7e 1c             	mov    0x1c(%esi),%edi
421bc4:	8b c7                	mov    %edi,%eax
421bc6:	8b 4e 10             	mov    0x10(%esi),%ecx
421bc9:	c1 e8 04             	shr    $0x4,%eax
421bcc:	a8 01                	test   $0x1,%al
421bce:	8d 41 04             	lea    0x4(%ecx),%eax
421bd1:	89 46 10             	mov    %eax,0x10(%esi)
421bd4:	74 05                	je     0x421bdb
421bd6:	0f bf 01             	movswl (%ecx),%eax
421bd9:	eb 22                	jmp    0x421bfd
421bdb:	0f b7 01             	movzwl (%ecx),%eax
421bde:	eb 1d                	jmp    0x421bfd
421be0:	8b 7e 1c             	mov    0x1c(%esi),%edi
421be3:	8b c7                	mov    %edi,%eax
421be5:	8b 4e 10             	mov    0x10(%esi),%ecx
421be8:	c1 e8 04             	shr    $0x4,%eax
421beb:	a8 01                	test   $0x1,%al
421bed:	8d 41 04             	lea    0x4(%ecx),%eax
421bf0:	89 46 10             	mov    %eax,0x10(%esi)
421bf3:	74 05                	je     0x421bfa