Function at 0x463950
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x20
call fcn.00596bf0
cmp dword [ebp + 0xc], 0
push esi
push edi
mov esi, ecx
mov edi, edx
mov dword [ebp - 0xc], 0
jle 0x463d11
test esi, esi
jle 0x463d11
push ebx
mov ebx, dword [ebp + 0x10]
cmp esi, ebx
jg 0x463d03
cmp ebx, 0xb
jl 0x463d03
push 0x4e
push str.....crypto_rsa_rsa_ssl.c
push ebx
call fcn.004196c0
add esp, 0xc
test eax, eax
jne 0x4639c4
push 0x50
push str.....crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.0040e790
add esp, 0x14
pop ebx
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
add eax, ebx
add edi, esi
mov dword [ebp - 4], eax
test ebx, ebx
jle 0x4639f6
nop
mov edx, esi
not edx
shr edx, 0x1f
lea ecx, [esi - 1]
shr ecx, 0x1f
and ecx, edx
dec ecx
mov edx, ecx
and edx, 1
sub edi, edx
sub esi, edx
mov dl, byte [edi]
dec eax
and dl, cl
dec ebx
mov byte [eax], dl
jne 0x4639d0
mov dword [ebp - 4], eax
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
mov edi, 2
xor ecx, edi
lea esi, [ecx - 1]
not ecx
shr ecx, 0x1f
shr esi, 0x1f
and esi, ecx
lea ecx, [edx - 1]
not edx
shr ecx, 0x1f
shr edx, 0x1f
and ecx, edx
neg ecx
neg esi
and esi, ecx
mov dword [ebp - 0x10], esi
mov ecx, esi
not ecx
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
and edx, 0x6b
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], ebx
cmp dword [ebp + 0x10], edi
jle 0x463ab8
or ecx, 0xffffffff
jmp 0x463a53
mov eax, dword [ebp - 4]
movzx edx, byte [edi + eax]
lea eax, [edx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
neg eax
and ecx, eax
mov dword [ebp - 0x14], ecx
not ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
and edx, dword [ebp - 0xc]
and ecx, edi
or ecx, edx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, byte [edi + eax]
xor eax, 3
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
mov dword [ebp - 8], ecx
not ecx
neg edx
or edx, dword [ebp - 8]
mov eax, ecx
and eax, 1
add ebx, eax
inc edi
and ebx, edx
cmp edi, dword [ebp + 0x10]
jl 0x463a50
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
lea eax, [edx - 0xa]
or eax, edx
xor eax, edx
shr eax, 0x1f
dec eax
and esi, eax
mov eax, esi
or eax, ecx
mov dword [ebp - 0x1c], eax
not eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
and ecx, dword [ebp - 0x10]
and eax, 0x71
or ecx, eax
lea eax, [ebx - 8]
or eax, ebx
xor eax, ebx
shr eax, 0x1f
dec eax
mov edi, esi
and esi, eax
not edi
mov eax, esi
or eax, edi
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp + 0x10]
not eax
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x1c]
and ebx, ecx
mov ecx, dword [ebp - 0x18]
sub edi, edx
and ecx, 0x73
or ebx, ecx
mov ecx, dword [ebp + 0xc]
mov eax, esi
not eax
mov dword [ebp - 0x1c], eax
dec edi
mov edx, ecx
sub edx, edi
xor edx, edi
mov eax, edi
xor eax, ecx
or edx, eax
xor edx, ecx
shr edx, 0x1f
dec edx
and esi, edx
mov eax, esi
or eax, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
not eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
and eax, ebx
and edx, 0x6d
or eax, edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
add edx, 0xfffffff5
mov eax, edx
sub eax, ecx
xor eax, ecx
mov ebx, edx
xor ebx, ecx
or eax, ebx
mov ebx, dword [ebp + 0x10]
xor eax, edx
shr eax, 0x1f
neg eax
mov dword [ebp + 0xc], eax
not eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
add ebx, 0xfffffff5
and eax, ebx
mov edx, dword [ebp - 0x1c]
and edx, ecx
or eax, edx
mov edx, 1
mov dword [ebp + 0xc], eax
cmp ebx, edx
jle 0x463c03
mov eax, dword [ebp + 0x10]
sub eax, edi
add eax, 0xfffffff5
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0x10]
and eax, edx
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
sub ebx, edx
dec ecx
cmp ebx, 0xb
jle 0x463bf4
movzx ecx, cl
mov eax, ecx
not eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
add eax, 0xb
add ebx, 0xfffffff5
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ebx
jmp 0x463bd3
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 8]
mov cl, byte [eax + edx]
and cl, bl
mov ebx, dword [ebp - 0x20]
and bl, byte [eax]
inc eax
or bl, cl
dec dword [ebp - 0xc]
mov byte [eax - 1], bl
jne 0x463bd0
mov eax, dword [ebp + 0x10]
add edx, edx
add eax, 0xfffffff5
cmp edx, eax
jl 0x463b97
mov eax, dword [ebp + 0xc]
xor ecx, ecx
test eax, eax
jle 0x463c54
mov eax, edi
neg eax
mov dword [ebp - 0xc], eax
xor eax, edi
mov edx, ecx
xor edx, edi
or eax, edx
xor eax, ecx
shr eax, 0x1f
neg eax
and eax, esi
movzx eax, al
mov dword [ebp - 0x20], eax
not eax
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov al, byte [eax + ecx + 0xb]
mov ebx, dword [ebp - 0x1c]
and al, dl
mov edx, dword [ebp + 8]
and bl, byte [ecx + edx]
inc ecx
or bl, al
mov eax, dword [ebp - 0xc]
mov byte [ecx + edx - 1], bl
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp + 0xc]
jl 0x463c10
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x463c68
mov ecx, dword [ebp - 4]
push eax
push ecx
call fcn.00527a20
add esp, 8
mov eax, dword [fcn.00419900]
test eax, eax
je 0x463c8d
cmp eax, fcn.00419900
je 0x463c8d
mov edx, dword [ebp - 4]
push 0xa5
push str.....crypto_rsa_rsa_ssl.c
push edx
call eax
add esp, 0xc
jmp 0x463c99
mov eax, dword [ebp - 4]
push eax
call fcn.0057bec0
add esp, 4
mov ecx, dword [ebp - 0x10]
push 0xa6
push str.....crypto_rsa_rsa_ssl.c
push ecx
push 0x72
push 4
call fcn.0040e790
mov ebx, esi
add esp, 0x14
and ebx, 1
call fcn.0040f240
test eax, eax
je 0x463cea
mov edx, dword [eax + 0x180]
lea ecx, [ebx - 1]
shr ecx, 0x1f
not ebx
shr ebx, 0x1f
and ecx, ebx
neg ecx
mov dword [ebp + 0xc], ecx
not ecx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
and ecx, 2
or dword [eax + edx*4], ecx
mov dword [ebp + 0xc], esi
not esi
mov dword [ebp - 0x20], esi
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
pop ebx
and eax, edi
pop edi
or eax, edx
pop esi
mov esp, ebp
pop ebp
ret
push 0x4a
push str.....crypto_rsa_rsa_ssl.c
push 0x6f
jmp 0x4639ae
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret