Function at 0x6b55f2a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x6c]
test ebp, ebp
jle 0x6b55f551
test ebx, ebx
jle 0x6b55f551
cmp ebx, dword [esp + 0x70]
jg 0x6b55f558
cmp dword [esp + 0x70], 0xa
jle 0x6b55f558
mov eax, dword [esp + 0x70]
mov dword [esp + 8], 0xb2
mov dword [esp + 4], str.crypto_rsa_rsa_pk1.c
mov dword [esp], eax
call sym.libcrypto_1_1.dll_CRYPTO_malloc
test eax, eax
je 0x6b55f58b
mov ecx, dword [esp + 0x68]
add eax, dword [esp + 0x70]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x70]
mov esi, eax
mov edx, eax
add ecx, ebx
nop
mov edi, ebx
lea eax, [ebx - 1]
sub edx, 1
not edi
and edi, eax
sar edi, 0x1f
mov eax, edi
add edi, 1
sub ecx, edi
sub ebx, edi
mov edi, esi
not eax
sub edi, edx
and al, byte [ecx]
mov byte [edx], al
cmp ebp, edi
jg 0x6b55f310
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x70]
movzx edi, al
neg edx
test ecx, ecx
mov ecx, 0xffffffff
cmovle edx, ecx
lea ebx, [esi + edx]
mov esi, 2
movzx eax, byte [ebx + 1]
mov dword [esp + 0x28], ebx
mov ebp, ebx
mov edx, eax
xor edx, 2
movzx edx, dl
lea eax, [edx - 1]
not edx
and edx, eax
mov eax, edi
sub edi, 1
not eax
and eax, edi
xor edi, edi
and eax, edx
cdq
mov dword [esp + 0x2c], edx
xor edx, edx
lea esi, [esi]
movzx eax, byte [ebp + esi]
mov ecx, eax
sub eax, 1
not ecx
and ecx, eax
mov eax, edi
sar ecx, 0x1f
not eax
and eax, ecx
or edi, ecx
mov ebx, eax
not eax
and ebx, esi
and edx, eax
add esi, 1
or edx, ebx
cmp dword [esp + 0x70], esi
jg 0x6b55f388
lea eax, [edx - 0xa]
mov esi, dword [esp + 0x70]
mov ecx, edx
mov ebp, dword [esp + 0x64]
xor ecx, 0xa
mov dword [esp + 0x38], eax
xor eax, 0xa
mov edi, 1
or eax, ecx
lea ecx, [esi - 1]
sub ecx, edx
xor eax, edx
mov edx, ebp
mov esi, ecx
sub edx, ecx
sar eax, 0x1f
mov dword [esp + 0x3c], ecx
xor esi, ebp
xor edx, ecx
not eax
and eax, dword [esp + 0x2c]
or edx, esi
xor edx, ebp
sar edx, 0x1f
not edx
and edx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
lea esi, [eax - 0xb]
mov eax, esi
mov edx, esi
mov dword [esp + 0x34], esi
sub eax, ebp
xor edx, ebp
xor eax, ebp
or eax, edx
xor eax, esi
sar eax, 0x1f
mov edx, eax
not eax
and edx, esi
and eax, ebp
or edx, eax
mov dword [esp + 0x30], edx
cmp esi, 1
jle 0x6b55f487
nop
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x70]
and eax, edi
sub ebp, edi
mov ebx, eax
sub eax, 1
not ebx
and ebx, eax
sar ebx, 0x1f
mov eax, ebx
not eax
cmp ebp, 0xb
jle 0x6b55f47f
mov ecx, dword [esp + 0x28]
movzx esi, al
or ebx, 0xffffff00
lea eax, [ecx + 0xb]
add ebp, ecx
lea esi, [esi]
nop
movzx edx, byte [eax + edi]
movzx ecx, byte [eax]
add eax, 1
and edx, esi
and ecx, ebx
or edx, ecx
mov byte [eax - 1], dl
cmp ebp, eax
jne 0x6b55f468
add edi, edi
cmp dword [esp + 0x34], edi
jg 0x6b55f430
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
xor edx, edx
neg ebx
test eax, eax
je 0x6b55f4dc
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x60]
nop
mov eax, esi
mov ecx, esi
xor ecx, ebx
xor eax, edx
add ebx, 1
or eax, ecx
mov ecx, dword [esp + 0x28]
xor eax, edx
movzx ecx, byte [ecx + edx + 0xb]
sar eax, 0x1f
and eax, dword [esp + 0x2c]
movzx eax, al
mov ebp, eax
not eax
and ecx, ebp
movzx ebp, byte [edi + edx]
and eax, ebp
or eax, ecx
mov byte [edi + edx], al
add edx, 1
cmp edx, dword [esp + 0x30]
jne 0x6b55f4a0
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], 0xfa
mov dword [esp + 8], str.crypto_rsa_rsa_pk1.c
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_CRYPTO_clear_free
mov dword [esp + 0x10], 0xfb
mov dword [esp + 0xc], str.crypto_rsa_rsa_pk1.c
mov dword [esp + 8], 0x9f
mov dword [esp + 4], 0x71
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov esi, dword [esp + 0x2c]
mov eax, esi
and eax, 1
mov dword [esp], eax
call sym._err_clear_last_constant_time
mov edx, esi
mov eax, esi
and eax, dword [esp + 0x3c]
not edx
or eax, edx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xffffffff
jmp 0x6b55f549
mov dword [esp + 0x10], 0xad
mov dword [esp + 0xc], str.crypto_rsa_rsa_pk1.c
mov dword [esp + 8], 0x9f
mov dword [esp + 4], 0x71
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov eax, 0xffffffff
jmp 0x6b55f549
mov dword [esp + 0x10], 0xb4
mov dword [esp + 0xc], str.crypto_rsa_rsa_pk1.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x71
mov dword [esp], 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov eax, 0xffffffff
jmp 0x6b55f549