Function at 0x4b2eb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
xor eax, eax
mov rbp, qword [rsp + 0x180]
mov rdi, qword [rcx]
mov r12, rdx
mov rdx, qword [rsp + 0x178]
mov r13, r8
mov r11, r9
cmp rdx, 1
setne al
xor r8d, r8d
add rax, rbp
cmp rdi, rax
jb 0x4b320f
cmp rdx, 1
je 0x4b3250
movzx ebx, byte [r13 + rdi - 1]
mov r8d, dword [rsp + 0x188]
lea rdx, [rdi - 1]
mov rsi, rbx
test r8d, r8d
jne 0x4b3200
add rax, rbx
mov rdx, rdi
sub rdx, rax
xor rdx, rax
xor rax, rdi
or rax, rdx
xor rax, rdi
sar rax, 0x3f
mov r10, rax
not r10
cmp rdi, 0xff
jbe 0x4b3230
mov r15d, 0x100
mov r14, rdi
mov r9, rbx
xor r8d, r8d
sub r14, rbx
add r14, r13
mov rdx, r8
mov rax, rbx
xor rdx, r9
xor rax, r8
add r8, 1
or rax, rdx
movzx edx, byte [r14 + r9 - 1]
sub r9, 1
xor rax, rbx
xor edx, esi
sar rax, 0x3f
movzx edx, dl
not rdx
or rax, rdx
and r10, rax
cmp r8, r15
jb 0x4b2f60
mov rax, r10
not rax
movzx eax, al
or r10, 0xffffffffffffff00
add rbx, 1
mov r14, rdi
lea rsi, [rax - 1]
mov eax, 0x40
and r10, rsi
mov rsi, r10
sar rsi, 0x3f
and rbx, rsi
sub r14, rbx
cmp r12, 0x40
cmovbe rax, r12
mov qword [rcx], r14
cmp rbp, rax
ja 0x4b3248
test rbp, rbp
je 0x4b32a0
mov rax, r14
lea r15, [rsp + 0x40]
xor r9d, r9d
mov r8, rbp
sub rax, rbp
mov rdx, r15
mov qword [rsp + 0x168], r11
mov qword [rcx], rax
mov rcx, qword [rsp + 0x190]
mov qword [rsp + 0x28], rax
call sym.RAND_bytes_ex
mov r11, qword [rsp + 0x168]
test eax, eax
jle 0x4b3248
test r11, r11
mov qword [rsp + 0x168], r11
je 0x4b3248
cmp qword [rsp + 0x170], 0
je 0x4b3248
mov r8d, 0x104
lea rdx, str..._openssl_3.1.1_ssl_record_tls_pad.c
mov rcx, rbp
call sym.CRYPTO_malloc
mov r11, qword [rsp + 0x168]
mov qword [rsp + 0x30], rax
mov qword [r11], rax
test rax, rax
je 0x4b3248
lea rdx, [rsp + 0x80]
mov rax, qword [rsp + 0x170]
lea r9, [r12 - 0x100]
mov r8, rbp
mov rcx, rdx
sub r9, rbp
neg rcx
mov dword [rax], 1
mov rax, rcx
and eax, 0x3f
lea rcx, [rdx + rax]
lea rax, [rbp + 0x100]
cmp r12, rax
mov eax, 0
cmovbe r9, rax
xor edx, edx
mov qword [rsp + 0x38], r9
call sym.memset
mov r9, qword [rsp + 0x38]
mov rcx, rax
cmp r12, r9
jbe 0x4b32af
mov qword [rsp + 0x38], rsi
sub rbx, rdi
mov rdi, qword [rsp + 0x28]
xor eax, eax
mov r10, rbx
xor edx, edx
xor ebx, ebx
nop dword [rax]
mov r8, rdi
mov rsi, r14
xor r8, r9
xor rsi, r9
mov r11, r8
sub r8, 1
not r11
and r11, r8
lea r8, [r9 + r10]
xor r8, r14
sar r11, 0x3f
or r8, rsi
or rbx, r11
and r11, rdx
xor r8, r9
or rax, r11
movzx r11d, byte [r13 + r9]
add r9, 1
sar r8, 0x3f
and rbx, r8
lea r8, [rdx + 1]
and r11d, ebx
or byte [rcx + rdx], r11b
mov rdx, r8
mov r11, rbp
sub rdx, rbp
xor r11, r8
xor rdx, rbp
or rdx, r11
xor rdx, r8
sar rdx, 0x3f
and rdx, r8
cmp r12, r9
jne 0x4b30f0
mov rsi, qword [rsp + 0x38]
movzx esi, sil
mov r10, qword [rsp + 0x30]
xor r8d, r8d
mov r9d, esi
not r9d
nop word [rax + rax]
mov r11d, eax
mov rbx, rax
movzx edi, byte [r15 + r8]
add r8, 1
and r11d, 0x20
and rbx, 0xffffffffffffffdf
mov edx, r11d
sub r11d, 1
movzx ebx, byte [rcx + rbx]
not edx
and edx, r11d
lea r11, [rax + 1]
or rax, 0x20
movzx eax, byte [rcx + rax]
sar edx, 0x1f
movzx edx, dl
mov r12d, edx
not edx
and ebx, r12d
and edx, eax
movzx eax, dil
or edx, ebx
and eax, r9d
and edx, esi
or edx, eax
mov rax, r11
mov byte [r10 + r8 - 1], dl
sub rax, rbp
mov rdx, rbp
xor rax, rbp
xor rdx, r11
or rax, rdx
xor rax, r11
sar rax, 0x3f
and rax, r11
cmp rbp, r8
jne 0x4b3180
jmp 0x4b3209
sub rdx, rbp
sub rdx, rbx
mov qword [rcx], rdx
mov r8d, 1
mov eax, r8d
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, rdi
test rdi, rdi
jne 0x4b2f51
jmp 0x4b2f9d
xor r8d, r8d
jmp 0x4b320f
cmp r12, 0x40
mov eax, 0x40
cmova r12, rax
cmp rbp, r12
ja 0x4b3248
test rbp, rbp
je 0x4b3209
sub rdi, rbp
mov qword [rcx], rdi
test r9, r9
je 0x4b3278
add rdi, r13
mov qword [r11], rdi
cmp qword [rsp + 0x170], 0
je 0x4b3209
mov rax, qword [rsp + 0x170]
mov r8d, 1
mov dword [rax], 0
jmp 0x4b320f
xor r8d, r8d
test rsi, rsi
setne r8b
jmp 0x4b320f
xor eax, eax
jmp 0x4b3165