Function at 0x14003e1d0
Capabilities:
Encode data using xor

Disassembly:
push rdi
push r14
push r15
mov dword [rsp - 0x24], edi
sub rsp, 0x50
xor r14d, r14d
mov rdi, rcx
mov dword [rsp + 0x70], r14d
mov dword [rsp - 0x10], edi
call fcn.140034e00
mov rcx, rax
call fcn.1400313f0
mov rcx, qword [0x1400a29e8]
xchg rbx, rbx
mov rdx, rax
call fcn.14002ed50
mov rcx, rax
call fcn.14004e4f0
mov r11, r11
cmp dword [rdi + 0x158], 4
mov r15, rax
je 0x14003e566
xchg r11, r11
mov rcx, qword [rax + 0x158]
test rcx, rcx
je 0x14003e566
cmp byte [rcx + 0x6c], r14b
mov dword [rsp - 0xc], 0x5b2247f1
je 0x14003e566
mov qword [rsp + 0x78], rbx
lea rdx, [rsp + 0x20]
xchg rcx, rcx
mov qword [rsp + 0x48], rsi
mov rcx, rdi
mov qword [rsp + 0x40], r12
call fcn.14003e800
mov dword [rsp - 0x18], ebx
mov r9, qword [rdi + 0x148]
lea rdx, [rsp + 0x30]
mov rbx, qword [r15 + 0x158]
mov r8, r8
lea rcx, [rsp + 0x20]
xor r8d, r8d
call fcn.1400693f0
mov rdx, rax
mov dword [rsp - 0x44], 0x148ac31e
mov rcx, rbx
call fcn.140031500
cmp qword [rsp + 0x38], 4
lea r12d, [rax + 4]
xchg rdi, rdi
jbe 0x14003e2c2
mov rcx, qword [rsp + 0x30]
call fcn.140072210
mov dword [rsp - 0xc], esi
mov rsi, qword [rsp + 0x28]
cmp qword [rdi + 0x148], rsi
je 0x14003e445
mov rcx, rcx
mov qword [rsp + 0x80], rbp
lea rcx, [rsi + 1]
cmp rsi, 4
lea rbp, [rsp + 0x20]
mov r14, r14
pushf
mov eax, 0x7e178487
sub eax, 0x14b72885
xor eax, 0x3cf47386
mov rbp, rbp
xor eax, 0x21dc4a5a
sub eax, 0x744865dc
popf
xchg rbp, rbp
cmova rbp, qword [rsp + 0x20]
mul rcx
pushf
movabs rcx, 0xffffffff62a4b6ea
mov dword [rsp - 0x24], 0x364ccb13
sub rcx, 0x5b2dcec
add rcx, 0xc5d3ab7
sub rcx, 0x59ea6667
add rcx, 0x7fffffff
mov rsi, rsi
add rcx, 0x709b51b2
popf
cmovo rax, rcx
mov rcx, rax
mov dword [rsp - 0x40], 0x73ecaac1
call fcn.140072200
mov rbx, rax
mov r8, r14
test rsi, rsi
mov r14, r14
je 0x14003e3d8
mov rdx, rax
sub rbp, rax
nop dword [rax]
mov rsp, rsp
movzx ecx, r8b
lea rdx, [rdx + 2]
and cl, 3
mov eax, 0x39900c93
mov dword [rsp - 0x18], edx
sub eax, 0x30024530
add eax, 0x646f1b29
xor eax, 0x73fd889c
xchg rsp, rsp
add eax, 0x331ff455
shl cl, 3
inc r8
mov dword [rsp - 0x3c], 0x3d604eef
sar eax, cl
movsx eax, al
xor ax, word [rdx + rbp - 2]
mov word [rdx - 2], ax
mov r12, r12
cmp r8, rsi
jb 0x14003e389
mov word [rbx + rsi*2], r14w
xchg rcx, rcx
mov rax, qword [rdi + 0x148]
mov rcx, qword [r15 + 0x158]
lea rdx, [rbx + rax*2]
mov dword [rsp - 0x14], edi
call fcn.1400317a0
mov rbp, qword [rsp + 0x80]
mov esi, eax
xchg r11, r11
mov r14d, 0x5e14cf6c
sub r14d, 0x451bdea2
add r14d, 0x17311a4e
mov r10, r10
xor r14d, 0x5210d472
sub r14d, 0x344fd09c
xor r14d, 0x7ee9dfe3
xor r14d, 0x5302d12c
mov dword [rsp - 0x18], 0x21f74290
jmp 0x14003e450
mov rbx, qword [rsp + 0x70]
mov esi, r14d
mov rsp, rsp
test r14b, 1
je 0x14003e461
mov rcx, rbx
mov rsp, rsp
call fcn.140072210
lea rdx, [rsp + 0x70]
mov rcx, rdi
mov r12, r12
call fcn.14004fd40
lea rdx, [rsp + 0x70]
mov rcx, rdi
mov dword [rsp - 0x14], 0x8779ec9
mov ebx, dword [rax]
sub ebx, dword [rdi + 0x158]
sub ebx, r12d
mov dword [rsp - 0x30], 0x30a5037e
call fcn.14004fd40
cmp esi, ebx
cmovle ebx, esi
mov dword [rsp - 0x40], 0xc7bb3ec
mov rsi, qword [rsp + 0x48]
mov ecx, dword [rax]
sub ecx, ebx
mov dword [rsp - 0x40], esp
mov rbx, qword [rsp + 0x78]
mov eax, ecx
sub eax, r12d
xchg r14, r14
mov dword [rdi + 0x158], eax
cmp eax, 4
jle 0x14003e506
mov rbp, rbp
mov dword [rdi + 0x158], 0x4c124f87
sub dword [rdi + 0x158], 0x3f23399d
xor dword [rdi + 0x158], 0x7442ea16
xor dword [rdi + 0x158], 0x5daee9dc
mov dword [rsp - 0x2c], edi
sub dword [rdi + 0x158], 0x2503161c
jmp 0x14003e548
lea eax, [rcx - 4]
cmp eax, 4
jge 0x14003e548
mov r13, r13
mov eax, 0x1e5e755e
add eax, 0x4ef0735c
xor eax, 0x43eaf779
mov r9, r9
add eax, 0x3bf7ae59
xor eax, 0x41171af1
xor eax, 0x42e95203
mov dword [rsp - 0x20], 0x33800ae6
sub eax, 0x696586e6
sub eax, r12d
mov dword [rdi + 0x158], eax
cmp qword [rsp + 0x28], 4
mov dword [rsp - 0x24], esi
mov r12, qword [rsp + 0x40]
jbe 0x14003e566
mov rcx, qword [rsp + 0x20]
call fcn.140072210
xchg r11, r11
add rsp, 0x50
pop r15
pop r14
xchg r14, r14
pop rdi
ret