Function at 0x487130
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbx, rcx
mov rcx, qword [rcx]
mov rsi, rdx
mov r12, r8
mov r13, r9
call sym.ossl_prov_ctx_get0_libctx
mov r14, rax
call sym.ossl_prov_is_running
test eax, eax
jne 0x487178
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r13
mov rcx, rbx
call sym.kdf_tls1_prf_set_ctx_params
test eax, eax
je 0x487160
cmp qword [rbx + 8], 0
je 0x4874a0
cmp qword [rbx + 0x18], 0
je 0x4874d8
cmp qword [rbx + 0x428], 0
je 0x487438
test r12, r12
je 0x487248
mov rcx, r14
lea rbp, [rbx + 0x28]
call sym.ossl_tls1_prf_ems_check_enabled
mov rdi, qword [rbx + 0x428]
test eax, eax
je 0x487280
cmp rdi, 0xc
jbe 0x487280
movabs rax, 0x732072657473616d
cmp qword [rbx + 0x28], rax
jne 0x487280
cmp dword [rbp + 8], 0x65726365
jne 0x487280
cmp byte [rbp + 0xc], 0x74
jne 0x487280
xor eax, eax
mov dword [rsp + 0x48], eax
call sym.ERR_new
lea r8, str.kdf_tls1_prf_derive
mov edx, 0xd0
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xe9
mov ecx, 0x39
call sym.ERR_set_error
mov eax, dword [rsp + 0x48]
jmp 0x487162
call sym.ERR_new
lea r8, str.kdf_tls1_prf_derive
mov edx, 0xc2
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x69
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x487162
mov r10, qword [rbx + 0x10]
mov r14, qword [rbx + 0x20]
mov r15, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
test r10, r10
mov qword [rsp + 0x48], r10
je 0x487470
lea rbx, [r14 + 1]
mov qword [rsp + 0x30], r12
mov r9, rbp
mov rdx, r15
mov qword [rsp + 0x28], rsi
shr rbx, 1
mov qword [rsp + 0x20], rdi
mov r8, rbx
call sym.tls1_prf_P_hash
test eax, eax
je 0x487160
mov r8d, 0x1bb
lea rdx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
mov rcx, r12
call sym.CRYPTO_malloc
mov r10, qword [rsp + 0x48]
test rax, rax
mov r13, rax
je 0x48753c
mov qword [rsp + 0x30], r12
sub r14, rbx
mov r9, rbp
mov r8, rbx
mov qword [rsp + 0x28], rax
lea rdx, [r15 + r14]
mov rcx, r10
mov qword [rsp + 0x20], rdi
call sym.tls1_prf_P_hash
test eax, eax
je 0x487510
lea rcx, [r12 - 1]
cmp rcx, 0xe
jbe 0x487535
mov rdx, r12
xor eax, eax
and rdx, 0xfffffffffffffff0
nop dword [rax]
movdqu xmm0, xmmword [rsi + rax]
movdqu xmm2, xmmword [r13 + rax]
pxor xmm0, xmm2
movups xmmword [rsi + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x487338
mov rax, r12
and rax, 0xfffffffffffffff0
test r12b, 0xf
je 0x487410
mov r8, r12
sub rcx, rax
sub r8, rax
cmp rcx, 6
jbe 0x48739b
lea rdx, [rsi + rax]
movq xmm0, qword [r13 + rax]
movq xmm1, qword [rdx]
pxor xmm0, xmm1
movq qword [rdx], xmm0
mov rdx, r8
and rdx, 0xfffffffffffffff8
add rax, rdx
cmp r8, rdx
je 0x487410
movzx edx, byte [r13 + rax]
xor byte [rsi + rax], dl
lea rdx, [rax + 1]
cmp r12, rdx
jbe 0x487410
movzx ecx, byte [r13 + rax + 1]
xor byte [rsi + rdx], cl
lea rdx, [rax + 2]
cmp r12, rdx
jbe 0x487410
movzx ecx, byte [r13 + rax + 2]
xor byte [rsi + rdx], cl
lea rdx, [rax + 3]
cmp r12, rdx
jbe 0x487410
movzx ecx, byte [r13 + rax + 3]
xor byte [rsi + rdx], cl
lea rdx, [rax + 4]
cmp r12, rdx
jbe 0x487410
movzx ecx, byte [r13 + rax + 4]
xor byte [rsi + rdx], cl
lea rdx, [rax + 5]
cmp r12, rdx
jbe 0x487410
movzx ecx, byte [r13 + rax + 5]
xor byte [rsi + rdx], cl
lea rdx, [rax + 6]
cmp r12, rdx
jbe 0x487410
movzx eax, byte [r13 + rax + 6]
xor byte [rsi + rdx], al
mov r9d, 0x1c7
lea r8, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
mov rdx, r12
mov rcx, r13
call sym.CRYPTO_clear_free
mov eax, 1
jmp 0x487162
call sym.ERR_new
lea r8, str.kdf_tls1_prf_derive
mov edx, 0xbe
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x8c
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x487162
mov qword [rsp + 0x30], r12
mov r9, rbp
mov r8, r14
mov rdx, r15
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
call sym.tls1_prf_P_hash
test eax, eax
setne al
movzx eax, al
jmp 0x487162
call sym.ERR_new
lea r8, str.kdf_tls1_prf_derive
mov edx, 0xb6
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x81
mov ecx, 0x39
call sym.ERR_set_error
jmp 0x487160
call sym.ERR_new
lea r8, str.kdf_tls1_prf_derive
mov edx, 0xba
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x84
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x487162
mov r9d, 0x1c2
mov rdx, r12
mov rcx, r13
mov dword [rsp + 0x48], eax
lea r8, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.CRYPTO_clear_free
mov eax, dword [rsp + 0x48]
jmp 0x487162
xor eax, eax
jmp 0x487366
call sym.ERR_new
lea r8, str.tls1_prf_alg
mov edx, 0x1bc
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_tls1_prf.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x487162