Function at 0x10162830
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x24
call fcn.100657e0
cmp dword [esp + 0x2c], 0
push esi
mov dword [esp + 4], 0
jle 0x10162bfa
mov esi, dword [esp + 0x38]
test esi, esi
jle 0x10162bfa
push ebx
mov ebx, dword [esp + 0x40]
cmp esi, ebx
jg 0x10162bdc
cmp ebx, 0xb
jl 0x10162bdc
push edi
push 0x4e
push str.....crypto_rsa_rsa_ssl.c
push ebx
call fcn.100dd300
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x101628a6
push 0x50
push str.....crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.100edac0
add esp, 0x14
or eax, 0xffffffff
pop edi
pop ebx
pop esi
add esp, 0x24
ret
mov edx, dword [esp + 0x3c]
add edx, esi
add edi, ebx
push ebp
nop
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
mov ebp, edi
and ecx, eax
dec edi
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
and al, cl
mov byte [edi], al
sub ebx, 1
jne 0x101628b0
movzx ebx, byte [ebp]
mov ebp, 2
xor ebx, 2
movzx eax, al
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], 0
lea ebx, [ebx - 1]
lea eax, [eax - 1]
shr ebx, 0x1f
shr eax, 0x1f
neg ebx
neg eax
and ebx, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
not ebx
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x48]
and eax, 0x6b
mov dword [esp + 0x30], eax
or esi, 0xffffffff
mov dword [esp + 0x1c], 0
movzx edx, byte [edi + ebp]
dec edx
shr edx, 0x1f
neg edx
and esi, edx
mov dword [esp + 0x28], esi
not esi
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
and ecx, ebp
and eax, dword [esp + 0x10]
or eax, ecx
movzx ecx, byte [edi + ebp]
xor ecx, 3
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
dec ecx
or eax, edx
shr ecx, 0x1f
mov esi, eax
mov dword [esp + 0x1c], eax
neg ecx
not esi
or ecx, eax
inc ebp
mov eax, esi
and eax, 1
add eax, dword [esp + 0x14]
and ecx, eax
mov dword [esp + 0x14], ecx
cmp ebp, ebx
jl 0x10162930
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
lea eax, [ecx - 0xa]
or eax, ecx
xor eax, ecx
shr eax, 0x1f
dec eax
and ebx, eax
mov eax, ebx
mov ecx, ebx
or eax, dword [esp + 0x20]
not ecx
mov dword [esp + 0x2c], eax
not eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
and eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
and edx, 0x71
or edx, eax
lea eax, [ebp - 8]
or eax, ebp
xor eax, ebp
mov ebp, dword [esp + 0x48]
shr eax, 0x1f
neg eax
and ebx, eax
mov eax, ebx
or eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
not eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
and eax, edx
and esi, 0x73
mov edx, ebx
or esi, eax
not edx
mov eax, ebp
sub eax, dword [esp + 0x10]
dec eax
sub ecx, eax
mov dword [esp + 0x14], eax
xor ecx, eax
xor eax, dword [esp + 0x3c]
or ecx, eax
xor ecx, dword [esp + 0x3c]
shr ecx, 0x1f
dec ecx
and ebx, ecx
mov eax, ebx
mov dword [esp + 0x18], ebx
or eax, edx
lea edx, [ebp - 0xb]
mov dword [esp + 0x30], eax
not eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
and eax, esi
mov esi, dword [esp + 0x3c]
and ecx, 0x6d
or ecx, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ecx
mov eax, edx
mov ecx, edx
xor eax, esi
sub ecx, esi
xor ecx, esi
or ecx, eax
xor ecx, edx
shr ecx, 0x1f
neg ecx
mov dword [esp + 0x3c], ecx
not ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
and eax, edx
and ecx, esi
mov esi, 1
or ecx, eax
mov dword [esp + 0x20], ecx
cmp edx, esi
jle 0x10162b13
mov eax, ebp
sub eax, dword [esp + 0x14]
add eax, 0xfffffff5
mov dword [esp + 0x28], eax
and eax, esi
mov ebx, ebp
sub ebx, esi
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
cmp ebx, 0xb
jle 0x10162af6
movzx ebp, cl
lea eax, [edi + 0xb]
mov dword [esp + 0x3c], ebp
add ebx, 0xfffffff5
mov edi, dword [esp + 0x3c]
not ebp
mov dword [esp + 0x3c], edi
lea eax, [eax + 1]
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0x3c]
mov dl, byte [eax + esi - 1]
and dl, cl
mov ecx, dword [esp + 0x30]
and cl, byte [eax - 1]
or cl, dl
mov byte [eax - 1], cl
sub ebx, 1
jne 0x10162ac4
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov eax, edi
add esi, esi
add eax, 0xb
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
cmp esi, edx
jl 0x10162a98
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
jmp 0x10162b1a
lea eax, [edi + 0xb]
mov dword [esp + 0x3c], eax
xor edx, edx
test ecx, ecx
jle 0x10162b86
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
shr ecx, 0x1f
neg esi
mov dword [esp + 0x2c], ecx
nop dword [eax]
mov eax, esi
inc esi
shr eax, 0x1f
xor al, cl
or al, cl
neg al
movzx ecx, al
movzx eax, bl
and ecx, eax
mov dword [esp + 0x3c], ecx
not ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x3c]
mov cl, byte [edx + ebp]
and cl, al
mov eax, dword [esp + 0x30]
and al, byte [edx + edi]
or al, cl
mov ecx, dword [esp + 0x2c]
mov byte [edx + edi], al
inc edx
cmp edx, dword [esp + 0x20]
jl 0x10162b40
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x48]
push 0xab
push str.....crypto_rsa_rsa_ssl.c
push ebp
push edi
call fcn.100dd3f0
push 0xac
push str.....crypto_rsa_rsa_ssl.c
push dword [esp + 0x34]
push 0x72
push 4
call fcn.100edac0
mov eax, ebx
and eax, 1
push eax
call fcn.100edd10
add esp, 0x28
mov dword [esp + 0x3c], ebx
not ebx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x3c]
and ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
pop ebp
pop edi
pop ebx
or eax, ecx
pop esi
add esp, 0x24
ret
push 0x4a
push str.....crypto_rsa_rsa_ssl.c
push 0x6f
push 0x72
push 4
call fcn.100edac0
add esp, 0x14
or eax, 0xffffffff
pop ebx
pop esi
add esp, 0x24
ret
or eax, 0xffffffff
pop esi
add esp, 0x24
ret