5b38e3:	85 c0                	test   %eax,%eax
5b38e5:	0f 8c ab 03 00 00    	jl     0x5b3c96
5b38eb:	40                   	inc    %eax
5b38ec:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b38ef:	33 f6                	xor    %esi,%esi
5b38f1:	8b c6                	mov    %esi,%eax
5b38f3:	25 07 00 00 80       	and    $0x80000007,%eax
5b38f8:	79 05                	jns    0x5b38ff
5b38fa:	48                   	dec    %eax
5b38fb:	83 c8 f8             	or     $0xfffffff8,%eax
5b38fe:	40                   	inc    %eax
5b38ff:	b9 07 00 00 00       	mov    $0x7,%ecx
5b3904:	2b c8                	sub    %eax,%ecx
5b3906:	8b c6                	mov    %esi,%eax
5b3908:	c1 e8 03             	shr    $0x3,%eax
5b390b:	0f b6 04 07          	movzbl (%edi,%eax,1),%eax
5b390f:	d3 e8                	shr    %cl,%eax
5b3911:	24 01                	and    $0x1,%al
5b3913:	88 45 f7             	mov    %al,-0x9(%ebp)
5b3916:	33 c0                	xor    %eax,%eax
5b3918:	8a 45 f7             	mov    -0x9(%ebp),%al
5b391b:	8d 04 40             	lea    (%eax,%eax,2),%eax
5b391e:	8b 55 10             	mov    0x10(%ebp),%edx
5b3921:	8a 14 02             	mov    (%edx,%eax,1),%dl
5b3924:	52                   	push   %edx
5b3925:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b3928:	59                   	pop    %ecx
5b3929:	88 0c 13             	mov    %cl,(%ebx,%edx,1)
5b392c:	8b 55 10             	mov    0x10(%ebp),%edx
5b392f:	8a 54 02 01          	mov    0x1(%edx,%eax,1),%dl
5b3933:	52                   	push   %edx
5b3934:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b3937:	59                   	pop    %ecx
5b3938:	88 4c 13 01          	mov    %cl,0x1(%ebx,%edx,1)
5b393c:	8b 55 10             	mov    0x10(%ebp),%edx
5b393f:	8a 44 02 02          	mov    0x2(%edx,%eax,1),%al
5b3943:	50                   	push   %eax
5b3944:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3947:	5a                   	pop    %edx
5b3948:	88 54 03 02          	mov    %dl,0x2(%ebx,%eax,1)
5b394c:	83 45 f8 03          	addl   $0x3,-0x8(%ebp)
5b3950:	46                   	inc    %esi
5b3951:	ff 4d ec             	decl   -0x14(%ebp)
5b3954:	75 9b                	jne    0x5b38f1
5b3956:	e9 3b 03 00 00       	jmp    0x5b3c96
5b395b:	66 8b 45 18          	mov    0x18(%ebp),%ax
5b395f:	66 83 e8 04          	sub    $0x4,%ax
5b3963:	74 11                	je     0x5b3976
5b3965:	66 83 e8 04          	sub    $0x4,%ax
5b3969:	74 20                	je     0x5b398b
5b396b:	66 83 e8 10          	sub    $0x10,%ax
5b396f:	74 69                	je     0x5b39da
5b3971:	e9 20 03 00 00       	jmp    0x5b3c96
5b3976:	0f b7 4d 14          	movzwl 0x14(%ebp),%ecx
5b397a:	41                   	inc    %ecx
5b397b:	d1 e9                	shr    $1,%ecx
5b397d:	8b d7                	mov    %edi,%edx
5b397f:	8b c3                	mov    %ebx,%eax
5b3981:	e8 3a 45 e5 ff       	call   0x407ec0
5b3986:	e9 0b 03 00 00       	jmp    0x5b3c96
5b398b:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b398f:	48                   	dec    %eax
5b3990:	85 c0                	test   %eax,%eax
5b3992:	0f 8c fe 02 00 00    	jl     0x5b3c96
5b3998:	40                   	inc    %eax
5b3999:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b399c:	33 f6                	xor    %esi,%esi
5b399e:	8b c3                	mov    %ebx,%eax
5b39a0:	8b d6                	mov    %esi,%edx
5b39a2:	81 e2 01 00 00 80    	and    $0x80000001,%edx
5b39a8:	79 05                	jns    0x5b39af
5b39aa:	4a                   	dec    %edx
5b39ab:	83 ca fe             	or     $0xfffffffe,%edx
5b39ae:	42                   	inc    %edx
5b39af:	b9 01 00 00 00       	mov    $0x1,%ecx
5b39b4:	2b ca                	sub    %edx,%ecx
5b39b6:	c1 e1 02             	shl    $0x2,%ecx
5b39b9:	8b d6                	mov    %esi,%edx
5b39bb:	d1 ea                	shr    $1,%edx
5b39bd:	0f b6 14 17          	movzbl (%edi,%edx,1),%edx
5b39c1:	d3 ea                	shr    %cl,%edx
5b39c3:	80 e2 0f             	and    $0xf,%dl
5b39c6:	88 55 f7             	mov    %dl,-0x9(%ebp)
5b39c9:	8a 55 f7             	mov    -0x9(%ebp),%dl
5b39cc:	88 10                	mov    %dl,(%eax)
5b39ce:	46                   	inc    %esi
5b39cf:	40                   	inc    %eax
5b39d0:	ff 4d ec             	decl   -0x14(%ebp)
5b39d3:	75 cb                	jne    0x5b39a0
5b39d5:	e9 bc 02 00 00       	jmp    0x5b3c96
5b39da:	33 c0                	xor    %eax,%eax
5b39dc:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b39df:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b39e3:	48                   	dec    %eax
5b39e4:	85 c0                	test   %eax,%eax
5b39e6:	0f 8c aa 02 00 00    	jl     0x5b3c96
5b39ec:	40                   	inc    %eax
5b39ed:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b39f0:	33 f6                	xor    %esi,%esi
5b39f2:	8b c6                	mov    %esi,%eax
5b39f4:	25 01 00 00 80       	and    $0x80000001,%eax
5b39f9:	79 05                	jns    0x5b3a00
5b39fb:	48                   	dec    %eax
5b39fc:	83 c8 fe             	or     $0xfffffffe,%eax
5b39ff:	40                   	inc    %eax
5b3a00:	ba 01 00 00 00       	mov    $0x1,%edx
5b3a05:	2b d0                	sub    %eax,%edx
5b3a07:	8b ca                	mov    %edx,%ecx
5b3a09:	c1 e1 02             	shl    $0x2,%ecx
5b3a0c:	8b c6                	mov    %esi,%eax
5b3a0e:	d1 e8                	shr    $1,%eax
5b3a10:	0f b6 04 07          	movzbl (%edi,%eax,1),%eax
5b3a14:	d3 e8                	shr    %cl,%eax
5b3a16:	24 0f                	and    $0xf,%al
5b3a18:	88 45 f7             	mov    %al,-0x9(%ebp)
5b3a1b:	33 c0                	xor    %eax,%eax
5b3a1d:	8a 45 f7             	mov    -0x9(%ebp),%al
5b3a20:	8d 04 40             	lea    (%eax,%eax,2),%eax
5b3a23:	8b 55 10             	mov    0x10(%ebp),%edx
5b3a26:	8a 14 02             	mov    (%edx,%eax,1),%dl
5b3a29:	52                   	push   %edx
5b3a2a:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b3a2d:	59                   	pop    %ecx
5b3a2e:	88 0c 13             	mov    %cl,(%ebx,%edx,1)
5b3a31:	8b 55 10             	mov    0x10(%ebp),%edx
5b3a34:	8a 54 02 01          	mov    0x1(%edx,%eax,1),%dl
5b3a38:	52                   	push   %edx
5b3a39:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b3a3c:	59                   	pop    %ecx
5b3a3d:	88 4c 13 01          	mov    %cl,0x1(%ebx,%edx,1)
5b3a41:	8b 55 10             	mov    0x10(%ebp),%edx
5b3a44:	8a 44 02 02          	mov    0x2(%edx,%eax,1),%al
5b3a48:	50                   	push   %eax
5b3a49:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3a4c:	5a                   	pop    %edx
5b3a4d:	88 54 03 02          	mov    %dl,0x2(%ebx,%eax,1)
5b3a51:	83 45 f8 03          	addl   $0x3,-0x8(%ebp)
5b3a55:	46                   	inc    %esi
5b3a56:	ff 4d ec             	decl   -0x14(%ebp)
5b3a59:	75 97                	jne    0x5b39f2
5b3a5b:	e9 36 02 00 00       	jmp    0x5b3c96
5b3a60:	66 8b 45 18          	mov    0x18(%ebp),%ax
5b3a64:	66 ff c8             	dec    %ax
5b3a67:	74 11                	je     0x5b3a7a
5b3a69:	66 83 e8 07          	sub    $0x7,%ax
5b3a6d:	74 65                	je     0x5b3ad4
5b3a6f:	66 83 e8 10          	sub    $0x10,%ax
5b3a73:	74 71                	je     0x5b3ae6
5b3a75:	e9 1c 02 00 00       	jmp    0x5b3c96
5b3a7a:	0f b7 55 14          	movzwl 0x14(%ebp),%edx
5b3a7e:	83 c2 07             	add    $0x7,%edx
5b3a81:	c1 ea 03             	shr    $0x3,%edx
5b3a84:	8b c3                	mov    %ebx,%eax
5b3a86:	e8 49 44 e5 ff       	call   0x407ed4
5b3a8b:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3a8f:	48                   	dec    %eax
5b3a90:	85 c0                	test   %eax,%eax
5b3a92:	0f 8c fe 01 00 00    	jl     0x5b3c96
5b3a98:	40                   	inc    %eax
5b3a99:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b3a9c:	33 f6                	xor    %esi,%esi
5b3a9e:	8b c7                	mov    %edi,%eax
5b3aa0:	8a 10                	mov    (%eax),%dl
5b3aa2:	88 55 f7             	mov    %dl,-0x9(%ebp)
5b3aa5:	8b d6                	mov    %esi,%edx
5b3aa7:	81 e2 07 00 00 80    	and    $0x80000007,%edx
5b3aad:	79 05                	jns    0x5b3ab4
5b3aaf:	4a                   	dec    %edx
5b3ab0:	83 ca f8             	or     $0xfffffff8,%edx
5b3ab3:	42                   	inc    %edx
5b3ab4:	b9 07 00 00 00       	mov    $0x7,%ecx
5b3ab9:	2b ca                	sub    %edx,%ecx
5b3abb:	8a 55 f7             	mov    -0x9(%ebp),%dl
5b3abe:	d2 e2                	shl    %cl,%dl
5b3ac0:	8b ce                	mov    %esi,%ecx
5b3ac2:	c1 e9 03             	shr    $0x3,%ecx
5b3ac5:	08 14 0b             	or     %dl,(%ebx,%ecx,1)
5b3ac8:	46                   	inc    %esi
5b3ac9:	40                   	inc    %eax
5b3aca:	ff 4d ec             	decl   -0x14(%ebp)
5b3acd:	75 d1                	jne    0x5b3aa0
5b3acf:	e9 c2 01 00 00       	jmp    0x5b3c96
5b3ad4:	0f b7 4d 14          	movzwl 0x14(%ebp),%ecx
5b3ad8:	8b d7                	mov    %edi,%edx
5b3ada:	8b c3                	mov    %ebx,%eax
5b3adc:	e8 df 43 e5 ff       	call   0x407ec0
5b3ae1:	e9 b0 01 00 00       	jmp    0x5b3c96
5b3ae6:	33 c0                	xor    %eax,%eax
5b3ae8:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b3aeb:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3aef:	48                   	dec    %eax
5b3af0:	85 c0                	test   %eax,%eax
5b3af2:	0f 8c 9e 01 00 00    	jl     0x5b3c96
5b3af8:	40                   	inc    %eax
5b3af9:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b3afc:	8b c7                	mov    %edi,%eax
5b3afe:	8a 10                	mov    (%eax),%dl
5b3b00:	88 55 f7             	mov    %dl,-0x9(%ebp)
5b3b03:	33 d2                	xor    %edx,%edx
5b3b05:	8a 55 f7             	mov    -0x9(%ebp),%dl
5b3b08:	8d 14 52             	lea    (%edx,%edx,2),%edx
5b3b0b:	8b 4d 10             	mov    0x10(%ebp),%ecx
5b3b0e:	8a 0c 11             	mov    (%ecx,%edx,1),%cl
5b3b11:	8b 75 f8             	mov    -0x8(%ebp),%esi
5b3b14:	88 0c 33             	mov    %cl,(%ebx,%esi,1)
5b3b17:	8b 4d 10             	mov    0x10(%ebp),%ecx
5b3b1a:	8a 4c 11 01          	mov    0x1(%ecx,%edx,1),%cl
5b3b1e:	8b 75 f8             	mov    -0x8(%ebp),%esi
5b3b21:	88 4c 33 01          	mov    %cl,0x1(%ebx,%esi,1)
5b3b25:	8b 4d 10             	mov    0x10(%ebp),%ecx
5b3b28:	8a 54 11 02          	mov    0x2(%ecx,%edx,1),%dl
5b3b2c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5b3b2f:	88 54 0b 02          	mov    %dl,0x2(%ebx,%ecx,1)
5b3b33:	83 45 f8 03          	addl   $0x3,-0x8(%ebp)
5b3b37:	40                   	inc    %eax
5b3b38:	ff 4d ec             	decl   -0x14(%ebp)
5b3b3b:	75 c1                	jne    0x5b3afe
5b3b3d:	e9 54 01 00 00       	jmp    0x5b3c96
5b3b42:	66 8b 45 18          	mov    0x18(%ebp),%ax
5b3b46:	66 83 e8 04          	sub    $0x4,%ax
5b3b4a:	74 19                	je     0x5b3b65
5b3b4c:	66 83 e8 04          	sub    $0x4,%ax
5b3b50:	0f 84 91 00 00 00    	je     0x5b3be7
5b3b56:	66 83 e8 10          	sub    $0x10,%ax
5b3b5a:	0f 84 db 00 00 00    	je     0x5b3c3b
5b3b60:	e9 31 01 00 00       	jmp    0x5b3c96
5b3b65:	33 c0                	xor    %eax,%eax
5b3b67:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b3b6a:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3b6e:	48                   	dec    %eax
5b3b6f:	85 c0                	test   %eax,%eax
5b3b71:	0f 8c 1f 01 00 00    	jl     0x5b3c96
5b3b77:	40                   	inc    %eax
5b3b78:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b3b7b:	33 f6                	xor    %esi,%esi
5b3b7d:	8d 45 e8             	lea    -0x18(%ebp),%eax
5b3b80:	50                   	push   %eax
5b3b81:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3b84:	8a 0c 07             	mov    (%edi,%eax,1),%cl
5b3b87:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3b8a:	8a 44 07 01          	mov    0x1(%edi,%eax,1),%al
5b3b8e:	50                   	push   %eax
5b3b8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3b92:	8a 44 07 02          	mov    0x2(%edi,%eax,1),%al
5b3b96:	5a                   	pop    %edx
5b3b97:	e8 74 57 ff ff       	call   0x5a9310
5b3b9c:	8a 45 ea             	mov    -0x16(%ebp),%al
5b3b9f:	c1 e0 10             	shl    $0x10,%eax
5b3ba2:	66 8b 45 e8          	mov    -0x18(%ebp),%ax
5b3ba6:	50                   	push   %eax
5b3ba7:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b3baa:	e8 f1 bf f8 ff       	call   0x53fba0
5b3baf:	88 45 f7             	mov    %al,-0x9(%ebp)
5b3bb2:	8b c6                	mov    %esi,%eax
5b3bb4:	25 01 00 00 80       	and    $0x80000001,%eax
5b3bb9:	79 05                	jns    0x5b3bc0
5b3bbb:	48                   	dec    %eax
5b3bbc:	83 c8 fe             	or     $0xfffffffe,%eax
5b3bbf:	40                   	inc    %eax
5b3bc0:	ba 01 00 00 00       	mov    $0x1,%edx
5b3bc5:	2b d0                	sub    %eax,%edx
5b3bc7:	8b ca                	mov    %edx,%ecx
5b3bc9:	c1 e1 02             	shl    $0x2,%ecx
5b3bcc:	8a 45 f7             	mov    -0x9(%ebp),%al
5b3bcf:	d2 e0                	shl    %cl,%al
5b3bd1:	8b d6                	mov    %esi,%edx
5b3bd3:	d1 ea                	shr    $1,%edx
5b3bd5:	08 04 13             	or     %al,(%ebx,%edx,1)
5b3bd8:	83 45 f8 03          	addl   $0x3,-0x8(%ebp)
5b3bdc:	46                   	inc    %esi
5b3bdd:	ff 4d ec             	decl   -0x14(%ebp)
5b3be0:	75 9b                	jne    0x5b3b7d
5b3be2:	e9 af 00 00 00       	jmp    0x5b3c96
5b3be7:	33 c0                	xor    %eax,%eax
5b3be9:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b3bec:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3bf0:	48                   	dec    %eax
5b3bf1:	85 c0                	test   %eax,%eax
5b3bf3:	0f 8c 9d 00 00 00    	jl     0x5b3c96
5b3bf9:	40                   	inc    %eax
5b3bfa:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b3bfd:	8d 45 e8             	lea    -0x18(%ebp),%eax
5b3c00:	50                   	push   %eax
5b3c01:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c04:	8a 0c 07             	mov    (%edi,%eax,1),%cl
5b3c07:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c0a:	8a 54 07 01          	mov    0x1(%edi,%eax,1),%dl
5b3c0e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c11:	8a 44 07 02          	mov    0x2(%edi,%eax,1),%al
5b3c15:	e8 f6 56 ff ff       	call   0x5a9310
5b3c1a:	8a 45 ea             	mov    -0x16(%ebp),%al
5b3c1d:	c1 e0 10             	shl    $0x10,%eax
5b3c20:	66 8b 45 e8          	mov    -0x18(%ebp),%ax
5b3c24:	50                   	push   %eax
5b3c25:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b3c28:	e8 73 bf f8 ff       	call   0x53fba0
5b3c2d:	88 03                	mov    %al,(%ebx)
5b3c2f:	83 45 f8 03          	addl   $0x3,-0x8(%ebp)
5b3c33:	43                   	inc    %ebx
5b3c34:	ff 4d ec             	decl   -0x14(%ebp)
5b3c37:	75 c4                	jne    0x5b3bfd
5b3c39:	eb 5b                	jmp    0x5b3c96
5b3c3b:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3c3f:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5b3c42:	8b d7                	mov    %edi,%edx
5b3c44:	8b c3                	mov    %ebx,%eax
5b3c46:	e8 75 42 e5 ff       	call   0x407ec0
5b3c4b:	eb 49                	jmp    0x5b3c96
5b3c4d:	66 8b 45 18          	mov    0x18(%ebp),%ax
5b3c51:	66 83 e8 18          	sub    $0x18,%ax
5b3c55:	75 3f                	jne    0x5b3c96
5b3c57:	33 f6                	xor    %esi,%esi
5b3c59:	33 c0                	xor    %eax,%eax
5b3c5b:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b3c5e:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3c62:	48                   	dec    %eax
5b3c63:	85 c0                	test   %eax,%eax
5b3c65:	7c 2f                	jl     0x5b3c96
5b3c67:	40                   	inc    %eax
5b3c68:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b3c6b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c6e:	8a 04 07             	mov    (%edi,%eax,1),%al
5b3c71:	88 04 33             	mov    %al,(%ebx,%esi,1)
5b3c74:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c77:	8a 44 07 01          	mov    0x1(%edi,%eax,1),%al
5b3c7b:	88 44 33 01          	mov    %al,0x1(%ebx,%esi,1)
5b3c7f:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b3c82:	8a 44 07 02          	mov    0x2(%edi,%eax,1),%al
5b3c86:	88 44 33 02          	mov    %al,0x2(%ebx,%esi,1)
5b3c8a:	83 c6 03             	add    $0x3,%esi
5b3c8d:	83 45 f8 04          	addl   $0x4,-0x8(%ebp)
5b3c91:	ff 4d ec             	decl   -0x14(%ebp)
5b3c94:	75 d5                	jne    0x5b3c6b
5b3c96:	66 8b 45 18          	mov    0x18(%ebp),%ax
5b3c9a:	66 ff c8             	dec    %ax
5b3c9d:	74 14                	je     0x5b3cb3
5b3c9f:	66 83 e8 03          	sub    $0x3,%ax
5b3ca3:	74 1a                	je     0x5b3cbf
5b3ca5:	66 83 e8 04          	sub    $0x4,%ax
5b3ca9:	74 1d                	je     0x5b3cc8
5b3cab:	66 83 e8 10          	sub    $0x10,%ax
5b3caf:	74 1d                	je     0x5b3cce
5b3cb1:	eb 24                	jmp    0x5b3cd7
5b3cb3:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3cb7:	83 c0 07             	add    $0x7,%eax
5b3cba:	c1 e8 03             	shr    $0x3,%eax
5b3cbd:	eb 1a                	jmp    0x5b3cd9
5b3cbf:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
5b3cc3:	40                   	inc    %eax
5b3cc4:	d1 e8                	shr    $1,%eax