Function at 0x100aa860
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1c
call fcn.10033890
cmp dword [esp + 0x24], 0
push esi
mov dword [esp + 8], 0
jle 0x100aac5f
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x100aac5f
push ebx
mov ebx, dword [esp + 0x38]
cmp esi, ebx
jg 0x100aac41
cmp ebx, 0xb
jl 0x100aac41
push ebp
push 0x7f
push str..crypto_rsa_rsa_ssl.c
push ebx
call fcn.100407f0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x100aa8d9
push 0x81
push str..crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.1003ae70
add esp, 0x14
pop ebp
pop ebx
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret
mov edx, dword [esp + 0x34]
add edx, esi
add ebp, ebx
test ebx, ebx
push edi
jle 0x100aa912
mov edi, ebx
mov ecx, esi
not ecx
shr ecx, 0x1f
lea eax, [esi - 1]
shr eax, 0x1f
and eax, ecx
sub eax, 1
mov ecx, eax
and ecx, 1
sub edx, ecx
sub esi, ecx
mov cl, byte [edx]
sub ebp, 1
and cl, al
sub edi, 1
mov byte [ebp], cl
jne 0x100aa8e8
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp]
mov esi, 2
xor eax, esi
lea ebx, [eax - 1]
lea edx, [ecx - 1]
not eax
shr eax, 0x1f
not ecx
shr ebx, 0x1f
and ebx, eax
shr ecx, 0x1f
shr edx, 0x1f
and edx, ecx
neg ebx
neg edx
and ebx, edx
mov dword [esp + 0x18], ebx
mov ecx, ebx
not ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0x6b
xor edi, edi
cmp dword [esp + 0x40], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
jle 0x100aa9e1
or ecx, 0xffffffff
nop
movzx edx, byte [esi + ebp]
lea eax, [edx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
and eax, edx
neg eax
and ecx, eax
mov dword [esp + 0x1c], ecx
not ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x14]
and ecx, esi
or ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
or ecx, eax
movzx eax, byte [esi + ebp]
xor eax, 3
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
mov dword [esp + 0x10], ecx
not ecx
neg edx
or edx, dword [esp + 0x10]
mov eax, ecx
and eax, 1
add eax, edi
and edx, eax
add esi, 1
cmp esi, dword [esp + 0x40]
mov edi, edx
jl 0x100aa970
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xa]
or eax, edx
xor eax, edx
shr eax, 0x1f
sub eax, 1
and ebx, eax
mov eax, ebx
or eax, ecx
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
and ecx, dword [esp + 0x18]
and eax, 0x71
or ecx, eax
lea eax, [edi - 8]
or eax, edi
xor eax, edi
shr eax, 0x1f
sub eax, 1
mov edi, dword [esp + 0x40]
mov esi, ebx
and ebx, eax
not esi
mov eax, ebx
or eax, esi
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x24]
and esi, ecx
mov ecx, dword [esp + 0x20]
sub edi, edx
and ecx, 0x73
or esi, ecx
mov ecx, dword [esp + 0x34]
mov eax, ebx
not eax
mov dword [esp + 0x24], eax
sub edi, 1
mov edx, ecx
sub edx, edi
xor edx, edi
mov eax, edi
xor eax, ecx
or edx, eax
xor edx, ecx
shr edx, 0x1f
sub edx, 1
and ebx, edx
mov eax, ebx
or eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
and eax, esi
mov esi, dword [esp + 0x40]
and edx, 0x6d
or eax, edx
mov dword [esp + 0x18], eax
add esi, 0xfffffff5
mov eax, esi
sub eax, ecx
xor eax, ecx
mov edx, esi
xor edx, ecx
or eax, edx
xor eax, esi
mov esi, dword [esp + 0x40]
shr eax, 0x1f
neg eax
mov dword [esp + 0x34], eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add esi, 0xfffffff5
and eax, esi
mov edx, dword [esp + 0x24]
and edx, ecx
or eax, edx
mov edx, 1
cmp esi, edx
mov dword [esp + 0x34], eax
jle 0x100aab6f
mov eax, dword [esp + 0x40]
sub eax, edi
add eax, 0xfffffff5
mov dword [esp + 0x24], eax
jmp 0x100aaaf0
mov eax, dword [esp + 0x24]
and eax, edx
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, dword [esp + 0x40]
sub eax, edx
sub ecx, 1
cmp eax, 0xb
jle 0x100aab5e
movzx ecx, cl
mov esi, ecx
not esi
add eax, 0xfffffff5
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ecx
lea esi, [ebp + 0xb]
mov dword [esp + 0x14], eax
jmp 0x100aab34
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov al, byte [esi + edx]
and al, cl
mov ecx, dword [esp + 0x28]
and cl, byte [esi]
add esi, 1
or cl, al
sub dword [esp + 0x14], 1
mov byte [esi - 1], cl
jne 0x100aab30
mov eax, dword [esp + 0x40]
add edx, edx
add eax, 0xfffffff5
cmp edx, eax
jl 0x100aaaf0
mov eax, dword [esp + 0x34]
xor esi, esi
test eax, eax
jle 0x100aabec
mov eax, edi
shr eax, 0x1f
mov ecx, edi
neg ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
jmp 0x100aab94
mov ecx, dword [esp + 0x14]
shr ecx, 0x1f
xor cl, byte [esp + 0x10]
mov eax, esi
shr eax, 0x1f
mov dword [esp + 0x28], eax
xor al, byte [esp + 0x10]
add dword [esp + 0x14], 1
or cl, al
xor cl, byte [esp + 0x28]
add esi, 1
neg cl
movzx eax, cl
movzx ecx, bl
and eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
not eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x28]
mov al, byte [esi + ebp + 0xa]
and al, dl
mov edx, dword [esp + 0x24]
and dl, byte [esi + ecx - 1]
or dl, al
cmp esi, dword [esp + 0x34]
mov byte [esi + ecx - 1], dl
jl 0x100aab90
mov eax, dword [esp + 0x40]
push eax
push ebp
call fcn.1004f4c0
push ebp
call fcn.100409f0
mov ecx, dword [esp + 0x24]
push 0xd8
push str..crypto_rsa_rsa_ssl.c
push ecx
push 0x72
push 4
call fcn.1003ae70
mov edx, ebx
and edx, 1
push edx
call fcn.1003abf0
mov dword [esp + 0x58], ebx
not ebx
add esp, 0x24
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
and eax, edi
pop edi
pop ebp
pop ebx
or eax, ecx
pop esi
add esp, 0x1c
ret
push 0x7b
push str..crypto_rsa_rsa_ssl.c
push 0x6f
push 0x72
push 4
call fcn.1003ae70
add esp, 0x14
pop ebx
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret