Function at 0x6b562000
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_EVP_MD_size
test eax, eax
js 0x6b56217c
mov esi, eax
cmp ebx, 0xffffffff
je 0x6b5623a0
cmp ebx, 0xfffffffe
je 0x6b562190
cmp ebx, 0xfffffffd
jl 0x6b5623b0
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_BN_num_bits
mov dword [esp], edi
sub eax, 1
and eax, 7
mov dword [esp + 0x30], eax
mov ebp, eax
call sym.libcrypto_1_1.dll_RSA_size
mov dword [esp + 0x2c], eax
test ebp, ebp
jne 0x6b56207e
mov ecx, dword [esp + 0x64]
sub eax, 1
mov dword [esp + 0x2c], eax
mov eax, ecx
mov byte [ecx], 0
add eax, 1
mov dword [esp + 0x64], eax
lea eax, [esi + 2]
cmp eax, dword [esp + 0x2c]
jg 0x6b562150
mov eax, dword [esp + 0x2c]
sub eax, esi
sub eax, 2
cmp ebx, 0xfffffffd
je 0x6b562390
mov ebp, ebx
cmp ebx, eax
jg 0x6b5623d0
test ebx, ebx
jle 0x6b562388
mov dword [esp + 8], 0xc5
mov dword [esp + 4], str.crypto_rsa_rsa_pss.c
mov dword [esp], ebp
call sym.libcrypto_1_1.dll_CRYPTO_malloc
mov edi, eax
test eax, eax
je 0x6b562410
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.libcrypto_1_1.dll_RAND_bytes
test eax, eax
jle 0x6b562378
call sym.libcrypto_1_1.dll_EVP_MD_CTX_new
mov edx, eax
xor eax, eax
test edx, edx
je 0x6b56211a
mov eax, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp + 0x34], edx
call sym.libcrypto_1_1.dll_EVP_DigestInit_ex
mov edx, dword [esp + 0x34]
test eax, eax
jne 0x6b5621a0
mov dword [esp], edx
mov dword [esp + 0x2c], eax
call sym.libcrypto_1_1.dll_EVP_MD_CTX_free
mov dword [esp + 4], ebp
mov dword [esp], edi
mov dword [esp + 0xc], 0xf7
mov dword [esp + 8], str.crypto_rsa_rsa_pss.c
call sym.libcrypto_1_1.dll_CRYPTO_clear_free
mov eax, dword [esp + 0x2c]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0xb9
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x6e
mov dword [esp + 4], 0x98
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov ebp, ebx
xor edx, edx
xor edi, edi
xor eax, eax
jmp 0x6b56211a
mov ebx, 0xfffffffd
jmp 0x6b562040
mov dword [esp], edx
mov dword [esp + 8], 8
mov dword [esp + 4], 0x6b614e10
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
mov edx, dword [esp + 0x34]
test eax, eax
je 0x6b56211a
mov eax, dword [esp + 0x68]
mov dword [esp], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
mov edx, dword [esp + 0x34]
test eax, eax
je 0x6b56211a
test ebx, ebx
je 0x6b562208
mov dword [esp], edx
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp + 0x34], edx
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
mov edx, dword [esp + 0x34]
test eax, eax
je 0x6b56211a
mov ecx, dword [esp + 0x64]
mov eax, esi
mov dword [esp], edx
not eax
add eax, dword [esp + 0x2c]
mov dword [esp + 8], 0
add ecx, eax
mov dword [esp + 0x34], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
call sym.libcrypto_1_1.dll_EVP_DigestFinal_ex
mov edx, dword [esp + 0x34]
test eax, eax
je 0x6b56211a
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_PKCS1_MGF1
mov edx, dword [esp + 0x34]
mov ecx, eax
xor eax, eax
test ecx, ecx
jne 0x6b56211a
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
sub eax, esi
sub eax, ebx
lea ecx, [ecx + eax - 2]
xor byte [ecx], 1
mov dword [esp + 0x34], ecx
test ebx, ebx
jle 0x6b56233c
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x64]
lea esi, [esi + eax - 1]
lea eax, [ecx + eax + 3]
cmp edi, eax
lea eax, [edi + 4]
setae byte [esp + 0x38]
cmp esi, eax
movzx ecx, byte [esp + 0x38]
setae al
or eax, ecx
mov ecx, eax
lea eax, [ebx - 1]
cmp eax, 2
seta al
test cl, al
je 0x6b562445
mov eax, edi
or eax, esi
test al, 3
jne 0x6b562445
mov dword [esp + 0x34], edx
mov ecx, ebx
xor eax, eax
and ecx, 0xfffffffc
lea esi, [esi]
mov edx, dword [edi + eax]
xor dword [esi + eax], edx
add eax, 4
cmp eax, ecx
jne 0x6b5622f8
mov esi, dword [esp + 0x3c]
mov eax, ebx
mov edx, dword [esp + 0x34]
and eax, 0xfffffffc
add esi, eax
cmp ebx, eax
je 0x6b56233c
movzx ecx, byte [edi + eax]
xor byte [esi], cl
lea ecx, [eax + 1]
cmp ebx, ecx
jle 0x6b56233c
movzx ecx, byte [edi + eax + 1]
xor byte [esi + 1], cl
lea ecx, [eax + 2]
cmp ebx, ecx
jle 0x6b56233c
movzx eax, byte [edi + eax + 2]
xor byte [esi + 2], al
mov eax, dword [esp + 0x30]
test eax, eax
je 0x6b56235a
mov ecx, 8
mov eax, 0xff
sub ecx, dword [esp + 0x30]
sar eax, cl
mov ecx, dword [esp + 0x64]
and byte [ecx], al
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov byte [eax + ecx - 1], 0xbc
mov eax, 1
jmp 0x6b56211a
xor edx, edx
xor eax, eax
jmp 0x6b56211a
xor edi, edi
jmp 0x6b5620e5
mov ebx, eax
mov ebp, eax
jmp 0x6b5620a7
mov ebx, eax
jmp 0x6b562040
mov dword [esp + 0x10], 0xae
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
jmp 0x6b562168
mov dword [esp + 0x10], 0xc0
xor edi, edi
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x6e
mov dword [esp + 4], 0x98
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
xor edx, edx
xor eax, eax
jmp 0x6b56211a
mov dword [esp + 0x10], 0xc7
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x98
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
xor edx, edx
xor eax, eax
jmp 0x6b56211a
mov ecx, dword [esp + 0x34]
mov eax, edi
mov esi, edx
lea ecx, [ecx + ebx + 1]
mov ebx, dword [esp + 0x3c]
add ebx, 1
movzx edx, byte [eax]
add eax, 1
xor byte [ebx - 1], dl
cmp ebx, ecx
jne 0x6b562455
mov edx, esi
jmp 0x6b56233c