Function at 0x14004d910
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r11, qword [rsp + 0xb0]
xor r13d, r13d
mov rsi, qword [rsp + 0xb8]
mov r14, r9
movzx r12d, r8b
mov rbx, rcx
lea r15, [r11 - 1]
mov qword [rsp + 0x38], r15
test r15, r15
js 0x14004db20
mov r9d, r13d
lea r8, [r13 - 1]
movabs rdi, 0x3ff0000000000000
nop dword [rax]
mov rdx, r13
test r12b, r12b
je 0x14004d9f6
test r8, r8
js 0x14004da65
lea rax, [r8 + 1]
cmp rax, 4
jl 0x14004d9e0
lea r10, [r8 - 3]
nop
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
mov qword [r9 + rcx], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
mov qword [r9 + rcx], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
mov qword [r9 + rcx], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
mov qword [r9 + rcx], r13
cmp rdx, r10
jle 0x14004d990
cmp rdx, r8
jg 0x14004da65
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
mov qword [r9 + rcx], r13
cmp rdx, r8
jle 0x14004d9e0
jmp 0x14004da65
test r8, r8
js 0x14004da65
lea rax, [r8 + 1]
cmp rax, 4
jl 0x14004da51
lea r10, [r8 - 3]
nop dword [rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9]
mov qword [rcx + rdx*8], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9]
mov qword [rcx + rdx*8 + 8], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9]
mov qword [rcx + rdx*8 + 0x10], r13
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9]
mov qword [rcx + rdx*8 + 0x18], r13
add rdx, 4
cmp rdx, r10
jle 0x14004da10
cmp rdx, r8
jg 0x14004da65
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9]
mov qword [rcx + rdx*8], r13
inc rdx
cmp rdx, r8
jle 0x14004da51
mov rax, qword [rbx + 0x48]
inc r8
mov rcx, qword [rax + r9]
lea rax, [r8 + 1]
mov qword [r9 + rcx], rdi
add r9, 8
cmp rax, r15
jle 0x14004d970
mov r9, r13
nop dword [rax + rax]
mov r8, r13
cmp r11, 4
jl 0x14004daee
mov r10, r11
lea rdx, [r11*8]
shr r10, 2
lea r8, [r10*4]
mov rax, qword [rsi + 0x48]
lea rdx, [rdx + 0x20]
mov rcx, qword [rax + r9*8]
mov qword [rdx + rcx - 0x20], r13
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + r9*8]
mov qword [rcx + rdx - 0x18], r13
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + r9*8]
mov qword [rcx + rdx - 0x10], r13
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + r9*8]
mov qword [rcx + rdx - 8], r13
sub r10, 1
jne 0x14004dab0
cmp r8, r15
jg 0x14004db14
lea rdx, [r8 + r11]
shl rdx, 3
mov rax, qword [rsi + 0x48]
lea rdx, [rdx + 8]
inc r8
mov rcx, qword [rax + r9*8]
mov qword [rdx + rcx - 8], r13
cmp r8, r15
jle 0x14004dafb
inc r9
cmp r9, r15
jle 0x14004da90
sub r14, 1
mov rbp, r13
mov qword [rsp + 0x30], r14
js 0x14004dc31
xorps xmm3, xmm3
nop word [rax + rax]
mov edi, 1
cmp rdi, r15
jg 0x14004dc1d
mov r14, qword [rsp + 0xb0]
mov rax, qword [rbx + 0x48]
test r12b, r12b
je 0x14004dba7
mov rax, qword [rax + rbp*8]
movsd xmm2, qword [rax + rdi*8]
movsd qword [rsp + 0xa8], xmm2
movsd qword [rsp + 0xc8], xmm3
movsd xmm1, qword [rsp + 0xa8]
movsd xmm0, qword [rsp + 0xc8]
ucomisd xmm1, xmm0
jp 0x14004db94
je 0x14004dc0c
mov r8, qword [rbx + 0x48]
mov r9d, 1
mov edx, r9d
mov r8, qword [r8 + rbp*8]
jmp 0x14004dbf0
mov rax, qword [rax + rdi*8]
movsd xmm2, qword [rax + rbp*8]
movsd qword [rsp + 0xa8], xmm2
movsd qword [rsp + 0xc8], xmm3
movsd xmm1, qword [rsp + 0xa8]
movsd xmm0, qword [rsp + 0xc8]
ucomisd xmm1, xmm0
jp 0x14004dbdc
je 0x14004dc0c
mov rax, qword [rbx + 0x48]
mov edx, 1
mov r9, qword [rbx + 0x10]
mov rcx, qword [rax]
lea r8, [rcx + rbp*8]
mov rax, qword [rsi + 0x48]
movsd qword [rsp + 0x28], xmm2
mov qword [rsp + 0x20], rdi
mov rcx, qword [rax + rdi*8]
lea rcx, [rcx + r14*8]
call fcn.14003f5b0
inc rdi
cmp rdi, r15
jle 0x14004db56
mov r14, qword [rsp + 0x30]
inc rbp
cmp rbp, r14
jle 0x14004db40
mov r11, qword [rsp + 0xb0]
mov rdi, r13
test r15, r15
js 0x14004de14
mov r10, qword [rsp + 0xc0]
lea r14, [r11 - 1]
movaps xmmword [rsp + 0x40], xmm6
mov r13, r14
movsd xmm6, qword [0x140216560]
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xa8], r14
nop dword [rax]
mov rax, qword [rsi + 0x48]
mov r9, qword [r10 + 0x38]
mov rcx, qword [rax + rdi*8]
mov rax, rdi
cqo
sub rax, rdx
sar rax, 1
lea r8, [rcx + r11*8]
test rax, rax
jle 0x14004dcac
mov rcx, qword [r8]
mov qword [r9], rcx
mov rcx, qword [r8 + 8]
add r8, 0x10
mov qword [r9 + 8], rcx
add r9, 0x10
sub rax, 1
jne 0x14004dc90
test dil, 1
je 0x14004dcb8
mov rax, qword [r8]
mov qword [r9], rax
xor r9d, r9d
lea r12, [rdi - 1]
mov ebp, r9d
test r12, r12
js 0x14004dd4e
mov r14, qword [rsp + 0xc0]
mov r15, rdi
mov r13, qword [rsp + 0x98]
nop
mov rax, qword [rsi + 0x48]
mov edx, 1
mov r9d, edx
mov qword [rsp + 0x20], r15
mov rbx, qword [rax + rbp*8]
mov rax, qword [r14 + 0x38]
lea rcx, [rbx + rbp*8]
lea r8, [rax + rbp*8]
call fcn.14003ed50
mov rax, qword [r13 + 0x38]
inc rbp
dec r15
movsd xmm5, qword [rax + rdi*8]
xorps xmm5, xmm6
mulsd xmm0, xmm5
movsd qword [rbx + rdi*8], xmm0
cmp rbp, r12
jle 0x14004dce0
mov r14, qword [rsp + 0xc8]
xor r9d, r9d
mov r13, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0xc0]
mov r11, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x98]
lea rdx, [rdi + 1]
mov rax, qword [rax + 0x38]
movsd xmm0, qword [rax + rdi*8]
mov rax, qword [rsi + 0x48]
xorps xmm0, xmm6
mov rcx, qword [rax + rdi*8]
movsd qword [rcx + rdi*8], xmm0
cmp rdi, r14
jge 0x14004ddf8
cmp r13, 4
jl 0x14004ddcc
lea r8, [r14 - 3]
nop word [rax + rax]
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8]
mov qword [rcx + rdi*8], r9
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
mov qword [rcx + rdi*8], r9
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
mov qword [rcx + rdi*8], r9
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
mov qword [rcx + rdi*8], r9
cmp rdx, r8
jle 0x14004dd90
cmp rdx, r14
jg 0x14004ddf8
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
mov qword [rcx + rdi*8], r9
cmp rdx, r14
jle 0x14004ddd1
inc rdi
dec r13
mov qword [rsp + 0xa8], r13
jmp 0x14004dc70
dec r13
inc rdi
mov qword [rsp + 0xa8], r13
cmp rdi, r15
jle 0x14004dc70
movaps xmm6, xmmword [rsp + 0x40]
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret