Function at 0x4b2b70
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 rsi, qword [rsp + 0x180]
mov rbp, qword [rcx]
lea rbx, [rsi + 1]
mov r12, rdx
mov r13, r8
cmp rbp, rbx
jae 0x4b2bb8
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx edi, byte [r8 + rbp - 1]
mov rax, qword [rsp + 0x178]
mov r14, rbp
lea rdx, [rbx + rdi]
add rdi, 1
mov rbx, qword [rsp + 0x178]
sub rax, rdi
xor rax, rdi
xor rbx, rdi
or rbx, rax
mov rax, qword [rsp + 0x178]
xor rax, rbx
mov rbx, rbp
sub rbx, rdx
xor rbx, rdx
xor rdx, rbp
or rbx, rdx
xor rbx, rbp
or rbx, rax
mov eax, 0x40
sar rbx, 0x3f
not rbx
and rdi, rbx
sub r14, rdi
cmp r12, 0x40
cmovbe rax, r12
mov qword [rcx], r14
cmp rsi, rax
ja 0x4b2e60
test rsi, rsi
je 0x4b2e70
mov rax, r14
sub rax, rsi
cmp qword [rsp + 0x178], 1
mov qword [rsp + 0x28], rax
mov qword [rcx], rax
je 0x4b2e80
lea r15, [rsp + 0x40]
mov rcx, qword [rsp + 0x188]
mov qword [rsp + 0x168], r9
mov r8, rsi
xor r9d, r9d
mov rdx, r15
call sym.RAND_bytes_ex
test eax, eax
jle 0x4b2e60
mov r11, qword [rsp + 0x168]
test r11, r11
je 0x4b2e60
cmp qword [rsp + 0x170], 0
je 0x4b2e60
mov r8d, 0x104
lea rdx, str..._openssl_3.1.1_ssl_record_tls_pad.c
mov rcx, rsi
call sym.CRYPTO_malloc
mov r11, qword [rsp + 0x168]
test rax, rax
mov qword [rsp + 0x38], rax
mov qword [r11], rax
je 0x4b2e60
mov rax, qword [rsp + 0x170]
lea r9, [r12 - 0x100]
mov r8, rsi
sub r9, rsi
mov dword [rax], 1
lea rax, [rsp + 0x80]
mov rcx, rax
neg rcx
and ecx, 0x3f
add rcx, rax
lea rax, [rsi + 0x100]
cmp r12, rax
mov eax, 0
cmovbe r9, rax
xor edx, edx
mov qword [rsp + 0x30], r9
call sym.memset
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov rcx, rax
cmp r12, r9
jbe 0x4b2ea6
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x28]
sub rdi, rbp
xor eax, eax
mov qword [rsp + 0x28], r10
mov rbp, rdi
xor edx, edx
xor edi, edi
nop word [rax + rax]
mov r8, rbx
mov r11, r14
xor r8, r9
xor r11, r9
mov r10, r8
sub r8, 1
not r10
and r10, r8
lea r8, [r9 + rbp]
xor r8, r14
sar r10, 0x3f
or r8, r11
or rdi, r10
and r10, rdx
xor r8, r9
or rax, r10
movzx r10d, byte [r13 + r9]
add r9, 1
sar r8, 0x3f
and rdi, r8
lea r8, [rdx + 1]
and r10d, edi
or byte [rcx + rdx], r10b
mov rdx, r8
mov r10, rsi
sub rdx, rsi
xor r10, r8
xor rdx, rsi
or rdx, r10
xor rdx, r8
sar rdx, 0x3f
and rdx, r8
cmp r12, r9
jne 0x4b2d50
mov rbx, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
movzx ebx, bl
xor r8d, r8d
mov r9d, ebx
not r9d
nop word cs:[rax + rax]
mov r11d, eax
mov rdi, rax
movzx ebp, byte [r15 + r8]
add r8, 1
and r11d, 0x20
and rdi, 0xffffffffffffffdf
mov edx, r11d
sub r11d, 1
movzx edi, byte [rcx + rdi]
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 edi, r12d
and edx, eax
movzx eax, bpl
or edx, edi
and eax, r9d
and edx, ebx
or edx, eax
mov rax, r11
mov byte [r10 + r8 - 1], dl
sub rax, rsi
mov rdx, rsi
xor rax, rsi
xor rdx, r11
or rax, rdx
xor rax, r11
sar rax, 0x3f
and rax, r11
cmp rsi, r8
jne 0x4b2de0
mov eax, 1
jmp 0x4b2b9f
xor eax, eax
jmp 0x4b2b9f
xor eax, eax
test rbx, rbx
setne al
jmp 0x4b2b9f
test r9, r9
je 0x4b2e8b
add r13, rax
mov qword [r9], r13
cmp qword [rsp + 0x170], 0
je 0x4b2e56
mov rax, qword [rsp + 0x170]
mov dword [rax], 0
jmp 0x4b2e56
xor eax, eax
jmp 0x4b2dca