Function at 0x6b561a50
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x28], eax
mov eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [esp + 0x8c], eax
xor eax, eax
call sym.libcrypto_1_1.dll_EVP_MD_CTX_new
mov ebx, eax
test eax, eax
je 0x6b561dbc
mov eax, dword [esp + 0x28]
test esi, esi
mov dword [esp], eax
cmove esi, eax
call sym.libcrypto_1_1.dll_EVP_MD_size
mov dword [esp + 0x24], eax
test eax, eax
js 0x6b561dbc
cmp dword [esp + 0xc4], 0xffffffff
je 0x6b561e40
cmp dword [esp + 0xc4], 0xfffffffd
jl 0x6b561e68
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_BN_num_bits
mov dword [esp], ebp
sub eax, 1
and eax, 7
mov dword [esp + 0x2c], eax
call sym.libcrypto_1_1.dll_RSA_size
movzx ecx, byte [esp + 0x2c]
movzx ebp, byte [edi]
mov edx, 0xff
shl edx, cl
and ebp, edx
mov dword [esp + 0x20], ebp
jne 0x6b561d90
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x6b561b21
add edi, 1
sub eax, 1
mov ecx, dword [esp + 0x24]
lea edx, [ecx + 2]
cmp edx, eax
jg 0x6b561e88
mov edx, eax
sub edx, dword [esp + 0x24]
sub edx, 2
cmp dword [esp + 0xc4], 0xfffffffd
je 0x6b561e50
cmp dword [esp + 0xc4], edx
jg 0x6b561ec0
cmp byte [edi + eax - 1], 0xbc
jne 0x6b561e10
sub eax, dword [esp + 0x24]
mov dword [esp + 8], 0x5d
mov dword [esp + 0x38], eax
sub eax, 1
mov dword [esp + 4], str.crypto_rsa_rsa_pss.c
lea ecx, [edi + eax]
mov dword [esp], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
call sym.libcrypto_1_1.dll_CRYPTO_malloc
mov ebp, eax
test eax, eax
je 0x6b561f28
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call sym.libcrypto_1_1.dll_PKCS1_MGF1
test eax, eax
js 0x6b561dc6
test esi, esi
jle 0x6b561c57
lea eax, [ebp + 4]
mov esi, dword [esp + 0x38]
cmp edi, eax
lea eax, [edi + 4]
setae dl
cmp ebp, eax
setae al
or eax, edx
lea edx, [esi - 2]
cmp edx, 2
seta dl
test al, dl
je 0x6b561f60
mov eax, edi
or eax, ebp
test al, 3
jne 0x6b561f60
mov ecx, dword [esp + 0x34]
mov eax, ebp
mov edx, edi
and ecx, 0xfffffffc
add ecx, ebp
lea esi, [esi]
nop
mov esi, dword [edx]
xor dword [eax], esi
add eax, 4
add edx, 4
cmp eax, ecx
jne 0x6b561c10
mov esi, dword [esp + 0x34]
mov eax, esi
and eax, 0xfffffffc
test esi, 3
je 0x6b561c57
movzx edx, byte [edi + eax]
xor byte [ebp + eax], dl
lea edx, [eax + 1]
cmp edx, esi
jge 0x6b561c57
movzx ecx, byte [edi + eax + 1]
xor byte [ebp + edx], cl
lea edx, [eax + 2]
cmp esi, edx
jle 0x6b561c57
movzx eax, byte [edi + eax + 2]
xor byte [ebp + edx], al
mov edx, dword [esp + 0x2c]
movzx eax, byte [ebp]
test edx, edx
jne 0x6b561ed0
test al, al
jne 0x6b561fb9
mov ecx, dword [esp + 0x38]
sub ecx, 2
test ecx, ecx
jle 0x6b561ef0
xor edx, edx
jmp 0x6b561c90
cmp edx, ecx
je 0x6b561ef0
mov esi, edx
add edx, 1
movzx eax, byte [ebp + edx]
test al, al
je 0x6b561c88
add esi, 2
cmp al, 1
jne 0x6b561ef0
cmp dword [esp + 0xc4], 0xfffffffe
je 0x6b561cc6
mov eax, dword [esp + 0x34]
sub eax, esi
cmp eax, dword [esp + 0xc4]
jne 0x6b561f88
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.libcrypto_1_1.dll_EVP_DigestInit_ex
test eax, eax
je 0x6b561dbe
mov dword [esp + 8], 8
mov dword [esp + 4], 0x6b614e10
mov dword [esp], ebx
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
test eax, eax
je 0x6b561dbe
mov eax, dword [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
test eax, eax
je 0x6b561dbe
cmp dword [esp + 0x34], esi
je 0x6b561d48
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
sub eax, esi
add esi, ebp
mov dword [esp + 8], eax
mov dword [esp + 4], esi
call sym.libcrypto_1_1.dll_EVP_DigestUpdate
test eax, eax
je 0x6b561dbe
lea esi, [esp + 0x4c]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym.libcrypto_1_1.dll_EVP_DigestFinal_ex
test eax, eax
je 0x6b561dbe
mov eax, dword [esp + 0x24]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym._memcmp
test eax, eax
jne 0x6b561fc3
mov dword [esp + 0x20], 1
jmp 0x6b561dc6
mov dword [esp + 0x10], 0x46
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x85
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
xor ebp, ebp
mov dword [esp + 0x20], 0
mov dword [esp + 8], 0x83
mov dword [esp + 4], str.crypto_rsa_rsa_pss.c
mov dword [esp], ebp
call sym.libcrypto_1_1.dll_CRYPTO_free
mov dword [esp], ebx
call sym.libcrypto_1_1.dll_EVP_MD_CTX_free
mov eax, dword [esp + 0x8c]
xor eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
jne 0x6b561ff4
mov eax, dword [esp + 0x20]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x58
xor ebp, ebp
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x86
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
mov dword [esp + 0xc4], eax
jmp 0x6b561adb
cmp byte [edi + eax - 1], 0xbc
mov dword [esp + 0xc4], edx
je 0x6b561b5f
jmp 0x6b561e10
mov dword [esp + 0x10], 0x3f
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
jmp 0x6b561da8
mov dword [esp + 0x10], 0x4e
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
xor ebp, ebp
mov dword [esp + 8], 0x6d
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
mov dword [esp + 0x10], 0x54
jmp 0x6b561e90
mov ecx, 8
mov edx, 0xff
sub ecx, dword [esp + 0x2c]
sar edx, cl
and eax, edx
mov byte [ebp], al
jmp 0x6b561c67
mov dword [esp + 0x10], 0x6a
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x87
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
mov dword [esp + 0x10], 0x5f
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
mov esi, dword [esp + 0x34]
mov eax, ebp
lea edx, [ebp + esi]
lea esi, [esi]
movzx ecx, byte [edi]
xor byte [eax], cl
add eax, 1
add edi, 1
cmp eax, edx
jne 0x6b561f70
jmp 0x6b561c57
mov dword [esp + 0x10], 0x6e
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
mov esi, 1
jmp 0x6b561ca1
mov dword [esp + 0x10], 0x7c
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x68
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
jmp 0x6b561dc6
call sym.___stack_chk_fail
lea esi, [esi]