Function at 0x14004ed00
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4b8
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
cmp dword [rcx + 0x148], 1
mov r15, r8
mov rax, qword [rsp + 0x528]
mov r14, rdx
mov r12, qword [rsp + 0x530]
mov rbx, rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x538]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x48], r9
jne 0x14004f05c
mov rsi, qword [rcx + 8]
lea rax, [rsi - 0x10]
cmp rax, 0x3f0
ja 0x14004f05c
mov ecx, dword [rcx + 0x14c]
call fcn.1400464f0
mov rbp, rax
test rax, rax
je 0x14004f05c
mov rcx, rax
call fcn.140045fe0
movzx edi, al
lea r13d, [rdi + rdi]
lea r11d, [r13 + 2]
cmp r11, rsi
ja 0x14004f05c
lea rax, [rsp + 0xa0]
mov r9, r12
mov r8, r15
mov qword [rsp + 0x20], rax
mov rdx, r14
mov rcx, rbx
call fcn.14004e750
mov ebx, eax
test eax, eax
jne 0x14004f037
lea rcx, [rsp + 0x30]
call fcn.140046570
xor r8d, r8d
lea rcx, [rsp + 0x30]
mov rdx, rbp
call fcn.140046580
mov ebx, eax
test eax, eax
jne 0x14004f02d
lea rax, [rsp + 0x30]
mov r14, rsi
sub r14, rdi
mov qword [rsp + 0x20], rax
lea r15, [rsp + 0xa1]
mov edx, edi
add r15, rdi
lea rcx, [rsp + 0xa1]
mov r8, r15
lea r9, [r14 - 1]
call fcn.14004f530
mov ebx, eax
test eax, eax
jne 0x14004f02d
lea rax, [rsp + 0x30]
mov r9d, edi
lea r8, [rsp + 0xa1]
mov qword [rsp + 0x20], rax
lea rdx, [r14 - 1]
mov rcx, r15
call fcn.14004f530
mov ebx, eax
test eax, eax
jne 0x14004f02d
lea rcx, [rsp + 0x30]
call fcn.140045f20
mov r8, qword [rsp + 0x520]
lea r9, [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
mov rcx, rbp
call fcn.140045cd0
mov ebx, eax
test eax, eax
jne 0x14004f037
movzx r9d, byte [rsp + 0xa0]
lea rdx, [rsp + 0xa1]
xor ebx, ebx
add rdx, rdi
mov ecx, ebx
test rdi, rdi
je 0x14004ef55
cmp rdi, 0x20
jb 0x14004ef40
mov eax, edi
xorps xmm3, xmm3
and rax, 0xffffffffffffffe0
xorps xmm2, xmm2
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rsp + rcx + 0x60]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rdx + 0x10]
add rdx, 0x20
por xmm3, xmm1
movdqu xmm1, xmmword [rsp + rcx + 0x70]
add rcx, 0x20
pxor xmm1, xmm0
por xmm2, xmm1
cmp rcx, rax
jb 0x14004eec1
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd eax, xmm2
or r9b, al
cmp rcx, rdi
jae 0x14004ef55
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x60]
inc rcx
xor al, byte [rdx]
inc rdx
or r9b, al
cmp rcx, rdi
jb 0x14004ef40
mov eax, r13d
mov r14, rsi
sub r14, rax
xor r8b, r8b
add r14, 0xfffffffffffffffe
mov r10, rbx
mov r11, rbx
mov rdi, rbx
mov rcx, rbx
cmp r14, 2
jb 0x14004efbc
lea rbp, [r14 - 1]
nop dword [rax + rax]
or r8b, byte [rcx + rdx]
movzx eax, r8b
neg al
or al, r8b
or r8b, byte [rcx + rdx + 1]
not al
add rcx, 2
movzx eax, al
shr rax, 7
add r10, rax
movzx eax, r8b
neg al
or al, r8b
not al
movzx eax, al
shr rax, 7
add r11, rax
cmp rcx, rbp
jb 0x14004ef80
cmp rcx, r14
jae 0x14004efd7
or r8b, byte [rcx + rdx]
movzx eax, r8b
neg al
or al, r8b
not al
movzx edi, al
shr rdi, 7
lea rax, [r11 + r10]
add rax, rdi
add rdx, rax
movzx eax, byte [rdx]
inc rdx
xor al, 1
or r9b, al
je 0x14004eff5
mov ebx, 0xffffbf00
jmp 0x14004f037
sub rsi, rdx
lea r8, [rsp + 0xa0]
add r8, rsi
cmp r8, qword [rsp + 0x540]
jbe 0x14004f014
mov ebx, 0xffffbc00
jmp 0x14004f037
mov rax, qword [rsp + 0x50]
mov qword [rax], r8
test r8, r8
je 0x14004f037
mov rcx, qword [rsp + 0x58]
call fcn.140068bd0
jmp 0x14004f037
lea rcx, [rsp + 0x30]
call fcn.140045f20
mov edx, 0x400
lea rcx, [rsp + 0xa0]
call fcn.1400386b0
mov edx, 0x40
lea rcx, [rsp + 0x60]
call fcn.1400386b0
mov eax, ebx
jmp 0x14004f061
mov eax, 0xffffbf80
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.14001a6d0
add rsp, 0x4b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret