Function at 0x552150
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xb0
call fcn.004a0d90
mov eax, dword [0x658aa8]
xor eax, esp
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xd4]
push ebx
mov ebx, dword [esp + 0xc0]
push ebp
xor ebp, ebp
push esi
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xdc]
push edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], ebp
cmp eax, ebp
jne 0x5521d0
call fcn.00509c90
mov dword [esp + 0x28], eax
cmp dword [esp + 0x14], ebp
jne 0x5521da
mov dword [esp + 0x14], eax
push eax
call fcn.00525650
add esp, 4
cmp dword [esp + 0xc8], ebp
mov dword [esp + 0x10], eax
jle 0x552545
test edi, edi
jle 0x552545
cmp esi, edi
jl 0x55252a
lea ecx, [eax + eax + 2]
cmp esi, ecx
jl 0x55252a
sub esi, eax
push 0x9e
dec esi
push str..crypto_rsa_rsa_oaep.c
push esi
call fcn.00500440
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x55224e
push 0xa0
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0xa1
push 4
call fcn.004fb700
add esp, 0x14
jmp 0x5524e9
mov edx, dword [esp + 0x2c]
push 0xa4
push str..crypto_rsa_rsa_oaep.c
push edx
call fcn.00500440
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x552276
push 0xa7
jmp 0x552233
mov ebp, dword [esp + 0x2c]
add ecx, ebp
add ebx, edi
mov dword [esp + 0x20], ecx
test ebp, ebp
jle 0x5522af
mov edx, edi
not edx
shr edx, 0x1f
lea eax, [edi - 1]
shr eax, 0x1f
and eax, edx
dec eax
mov edx, eax
and edx, 1
sub ebx, edx
sub edi, edx
mov dl, byte [ebx]
dec ecx
and dl, al
sub ebp, 1
mov byte [ecx], dl
jne 0x552286
mov dword [esp + 0x20], ecx
movzx eax, byte [ecx]
mov edi, dword [esp + 0x10]
lea ebp, [eax - 1]
not eax
shr eax, 0x1f
shr ebp, 0x1f
and ebp, eax
mov eax, dword [esp + 0x14]
push eax
lea ebx, [ecx + 1]
lea ecx, [edi + ecx + 1]
push esi
push ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x48]
push edi
push ecx
neg ebp
call fcn.00551dc0
add esp, 0x14
test eax, eax
jne 0x5524e9
xor ecx, ecx
test edi, edi
jle 0x55230e
mov edx, ebx
lea eax, [esp + 0x3c]
sub edx, eax
jmp 0x552300
lea eax, [esp + ecx + 0x3c]
mov bl, byte [edx + eax]
xor byte [eax], bl
inc ecx
cmp ecx, edi
jl 0x552300
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
push ecx
push edi
lea edx, [esp + 0x44]
push edx
push esi
push ebx
call fcn.00551dc0
add esp, 0x14
test eax, eax
jne 0x5524ed
test esi, esi
jle 0x55234d
mov ecx, dword [esp + 0x34]
mov eax, ebx
sub ecx, ebx
mov dword [esp + 0x14], esi
nop
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
sub dword [esp + 0x14], 1
jne 0x552340
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xdc]
push 0
push eax
mov eax, dword [esp + 0x2c]
push 0
lea ecx, [esp + 0x88]
push ecx
push edx
push eax
call fcn.00509b60
add esp, 0x18
test eax, eax
je 0x5524ed
push edi
lea ecx, [esp + 0x80]
push ecx
push ebx
call fcn.0050e720
mov edi, dword [esp + 0x1c]
lea edx, [eax - 1]
shr edx, 0x1f
not eax
shr eax, 0x1f
and edx, eax
neg edx
xor ebx, ebx
add esp, 0xc
and ebp, edx
cmp edi, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
jge 0x55240c
mov eax, dword [esp + 0x18]
movzx ecx, byte [edi + eax]
mov edi, dword [esp + 0x10]
mov eax, ecx
xor eax, 1
lea edx, [eax - 1]
shr edx, 0x1f
not eax
shr eax, 0x1f
and edx, eax
mov eax, ebx
neg edx
not eax
and eax, edx
mov ebx, eax
not ebx
and ebx, dword [esp + 0x30]
and eax, edi
or ebx, eax
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x1c]
or ebx, edx
lea edx, [ecx - 1]
shr edx, 0x1f
not ecx
shr ecx, 0x1f
and edx, ecx
neg edx
or edx, ebx
inc edi
and ebp, edx
cmp edi, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
jl 0x5523b0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x30]
inc edx
mov edi, ecx
mov eax, esi
sub eax, edx
sub edi, eax
xor edi, eax
xor eax, ecx
or edi, eax
xor edi, ecx
shr edi, 0x1f
dec edi
and edi, ebx
and ebp, edi
mov eax, esi
sub eax, ecx
xor eax, ecx
mov edi, esi
xor edi, ecx
or eax, edi
xor eax, esi
shr eax, 0x1f
neg eax
mov edi, eax
and eax, esi
not edi
and edi, ecx
or edi, eax
mov eax, esi
sub eax, edi
mov ecx, ebp
not ecx
and eax, ecx
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x18]
mov ecx, esi
sub ecx, eax
lea ebx, [eax + edx]
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebp
test edi, edi
jle 0x5524c3
jmp 0x55247a
mov ebx, dword [esp + 0x24]
mov ecx, edx
xor ecx, dword [esp + 0x1c]
inc edx
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
neg eax
mov ecx, eax
and ecx, esi
sub ebx, ecx
mov ecx, dword [esp + 0x10]
xor eax, ecx
and ecx, eax
movzx eax, cl
mov dword [esp + 0x24], ebx
mov bl, byte [ebx + edx - 1]
and bl, al
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
not al
and al, byte [ecx + edx - 1]
or bl, al
cmp edx, edi
mov byte [ecx + edx - 1], bl
jl 0x552476
push 0x108
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.004fb700
mov edx, ebp
and edx, 1
push edx
call fcn.004fb480
add esp, 0x18
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push 0x40
push eax
call fcn.005105e0
push esi
push ebx
call fcn.005105e0
push ebx
call fcn.00500640
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
push ecx
push esi
call fcn.005105e0
push esi
call fcn.00500640
mov eax, ebp
and eax, dword [esp + 0x3c]
not ebp
add esp, 0x20
or eax, ebp
jmp 0x552548
push 0x99
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.004fb700
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00499a1c
add esp, 0xb0
ret