Function at 0x10086f50
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x24
call fcn.100c8250
cmp dword [esp + 0x2c], 0
push esi
mov dword [esp + 4], 0
jle 0x1008731b
mov esi, dword [esp + 0x38]
test esi, esi
jle 0x1008731b
push ebx
mov ebx, dword [esp + 0x40]
cmp esi, ebx
jg 0x100872fd
cmp ebx, 0xb
jl 0x100872fd
push edi
push 0x7f
push str..crypto_rsa_rsa_ssl.c
push ebx
call fcn.1006b8a0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10086fc9
push 0x81
push str..crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.1006c980
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
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 0x10086fd2
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 0x10087052
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
dec 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 0x1008723f
mov eax, ebp
sub eax, dword [esp + 0x14]
add eax, 0xfffffff5
mov dword [esp + 0x28], eax
nop dword [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 0x10087222
movzx ebp, cl
lea eax, [edi + 0xb]
mov dword [esp + 0x3c], ebp
add ebx, 0xfffffff5
mov edi, dword [esp + 0x3c]
not ebp
nop dword [eax]
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 0x100871f0
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 0x100871c0
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
jmp 0x10087246
lea eax, [edi + 0xb]
mov dword [esp + 0x3c], eax
xor edx, edx
test ecx, ecx
jle 0x100872ab
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
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 0x10087265
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x48]
push ebp
push edi
call fcn.1006b7c0
push edi
call fcn.1006b820
push 0xd8
push str..crypto_rsa_rsa_ssl.c
push dword [esp + 0x30]
push 0x72
push 4
call fcn.1006c980
mov eax, ebx
and eax, 1
push eax
call fcn.1006caa0
add esp, 0x24
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 0x7b
push str..crypto_rsa_rsa_ssl.c
push 0x6f
push 0x72
push 4
call fcn.1006c980
add esp, 0x14
or eax, 0xffffffff
pop ebx
pop esi
add esp, 0x24
ret
or eax, 0xffffffff
pop esi
add esp, 0x24
ret