Function at 0x14004de5f
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb78
mov r14, r8
mov rbx, rdx
mov rsi, rcx
lea rbp, [rsp + 0x4b0]
mov rcx, rbp
call fcn.14004c448
cmp dword [rbp], 1
mov rdi, qword [rbp + 8]
movups xmm0, xmmword [rbp + 0x10]
movaps xmmword [rsp + 0x90], xmm0
jne 0x14004deb8
movaps xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x60], xmm0
jmp 0x14004df83
lea rdx, [rsp + 0x4d0]
lea rbp, [rsp + 0xc8]
mov r8d, 0x3e8
mov rcx, rbp
call fcn.1400931b0
mov qword [rbp - 0x18], rdi
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rbp - 0x10], xmm0
lea rbp, [rsp + 0x4b0]
lea rdx, [rsp + 0xb0]
mov rcx, rbp
xor r8d, r8d
call fcn.14004c65c
cmp dword [rbp], 1
je 0x14004df4d
lea rbp, [rsp + 0x4b0]
lea rdx, [rsp + 0xb0]
mov rcx, rbp
xor r8d, r8d
call fcn.14004c65c
cmp dword [rbp], 1
je 0x14004df4d
lea rbp, [rsp + 0x4b0]
lea rdx, [rsp + 0xb0]
mov rcx, rbp
xor r8d, r8d
call fcn.14004c65c
cmp dword [rbp], 1
jne 0x14004e0e0
mov rdi, qword [rsp + 0x4b8]
movups xmm0, xmmword [rsp + 0x4c0]
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0xb0]
call fcn.14004c865
mov eax, 1
movaps xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x60], xmm0
test rax, rax
je 0x14004dfab
mov qword [rsi + 8], rdi
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi], 1
add rsp, 0xb78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [rsp + 0x8d0]
lea rdx, [rsp + 0xa00]
mov r8d, 0x130
mov rcx, r15
call fcn.1400931b0
mov qword [r15 - 0x18], rdi
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [r15 - 0x10], xmm0
mov rdx, rbx
mov r14b, byte [r15 + 0x2c]
mov bl, byte [rbx + 0x12]
test bl, bl
je 0x14004e03a
add rdx, 0x10
lea rbp, [rsp + 0x4b0]
lea r8, [rsp + 0x8b8]
mov rcx, rbp
call fcn.14004b529
cmp dword [rbp], 1
lea rdx, [rsp + 0x4b8]
jne 0x14004e059
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rdx]
movaps xmmword [rsp + 0xb0], xmm0
mov qword [rsi + 0x18], rax
movups xmmword [rsi + 8], xmm0
mov qword [rsi], 1
jmp 0x14004e0bb
lea rcx, [rsp + 0xa00]
lea rdx, [rsp + 0x8b8]
mov r8d, 0x148
call fcn.1400931b0
xor edi, edi
jmp 0x14004e08a
lea rdi, [rsp + 0xb0]
mov r8d, 0x178
mov rcx, rdi
call fcn.1400931b0
lea rcx, [rsp + 0xa00]
mov r8d, 0x178
mov rdx, rdi
call fcn.1400931b0
mov edi, 1
lea rcx, [rsi + 0x10]
lea rdx, [rsp + 0xa00]
mov r8d, 0x178
call fcn.1400931b0
mov qword [rsi + 8], rdi
mov byte [rsi + 0x188], r14b
mov qword [rsi], 0
test bl, bl
je 0x14004df97
mov rcx, r15
call fcn.1400136a0
lea rsi, [rsp + 0x8e0]
mov rcx, rsi
call fcn.14004c241
mov rcx, rsi
call fcn.14006b8f1
jmp 0x14004df97
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x28], rsi
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x14004e44e
mov rcx, qword [r14]
lea rax, [rax + rax*2]
lea rax, [rcx + rax*8]
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x50], rax
mov r14, qword [rcx]
mov qword [rsp + 0x80], rcx
mov rcx, qword [rcx + 0x10]
mov rax, qword [rsp + 0x350]
cmp rax, rcx
cmovbe rax, rcx
mov qword [rsp + 0x350], rax
inc qword [rsp + 0x358]
mov r13d, dword [rsp + 0x390]
test rcx, rcx
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x58], rcx
je 0x14004e3bd
lea rax, [r14 + rcx]
mov qword [rsp + 0x88], rax
xor ebp, ebp
xor ebx, ebx
movzx r15d, byte [r14]
mov edi, r13d
test bpl, 1
mov bpl, 1
jne 0x14004e19b
cmp qword [rsp + 0x388], rdi
jbe 0x14004e613
mov rax, qword [rsp + 0x378]
lea rcx, [rdi + rdi*8]
cmp qword [rax + rcx*8 + 0x30], 0
setne bpl
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 8], 1
jne 0x14004e1b2
test bpl, bpl
jne 0x14004e412
test r15, r15
je 0x14004e1dd
lea rax, [r15 - 1]
mov rcx, qword [rsp + 0x4a8]
cmp rcx, rax
jbe 0x14004e613
mov rdx, qword [rsp + 0x498]
mov byte [rdx + rax], 1
mov rax, r15
jmp 0x14004e1e7
mov rcx, qword [rsp + 0x4a8]
xor eax, eax
cmp rcx, rax
jbe 0x14004e613
mov rcx, qword [rsp + 0x498]
mov byte [rcx + rax], 1
mov rcx, qword [rsp + 0xb0]
cmp byte [rcx + 0xb], 0
je 0x14004e284
lea ecx, [r15 - 0x41]
cmp cl, 0x19
ja 0x14004e21b
mov ecx, r15d
or cl, 0x20
jmp 0x14004e237
lea ecx, [r15 - 0x61]
mov edx, r15d
and dl, 0xdf
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, r15d
test cl, cl
je 0x14004e3ae
mov rsi, rdi
mov rdi, rbp
movzx ebp, cl
dec rbp
mov rdx, qword [rsp + 0x4a8]
cmp rdx, rbp
jbe 0x14004e613
mov r8, rbx
mov rbx, qword [rsp + 0x498]
mov byte [rbx + rbp], 1
mov rbx, r8
mov rbp, rdi
mov rdi, rsi
movzx ecx, cl
cmp rdx, rcx
jbe 0x14004e613
mov rdx, qword [rsp + 0x498]
mov byte [rdx + rcx], 1
cmp qword [rsp + 0x388], rdi
jbe 0x14004e613
inc rbx
mov rcx, qword [rsp + 0x378]
lea r12, [rdi + rdi*8]
cmp dword [rcx + r12*8], 1
jne 0x14004e2be
cmp qword [rcx + r12*8 + 0x18], rax
jbe 0x14004e613
shl rax, 2
add rax, qword [rcx + r12*8 + 8]
jmp 0x14004e2e6
mov rdx, qword [rcx + r12*8 + 8]
mov rcx, qword [rcx + r12*8 + 0x18]
add rdx, 0xfffffffffffffffc
shl rcx, 3
test rcx, rcx
je 0x14004e2f2
lea rax, [rdx + 8]
add rcx, 0xfffffffffffffff8
cmp byte [rdx + 4], r15b
mov rdx, rax
jne 0x14004e2d0
mov r13d, dword [rax]
test r13d, r13d
jne 0x14004e39b
lea rcx, [rsp + 0x4b0]
lea rdx, [rsp + 0xb0]
mov r8, rbx
call fcn.14004c65c
cmp dword [rsp + 0x4b0], 1
je 0x14004e430
cmp qword [rsp + 0x388], rdi
jbe 0x14004e613
mov r13d, dword [rsp + 0x4b4]
shl r12, 3
mov rcx, qword [rsp + 0x378]
add rcx, r12
mov edx, r15d
mov r8d, r13d
call fcn.14004dd39
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 0xb], 0
je 0x14004e39b
cmp qword [rsp + 0x388], rdi
jbe 0x14004e613
lea eax, [r15 - 0x41]
cmp al, 0x1a
jae 0x14004e375
or r15b, 0x20
mov edx, r15d
jmp 0x14004e388
lea eax, [r15 - 0x61]
mov ecx, r15d
and cl, 0xdf
cmp al, 0x1a
movzx edx, cl
cmovae edx, r15d
add r12, qword [rsp + 0x378]
mov rcx, r12
mov r8d, r13d
call fcn.14004dd39
inc r14
cmp r14, qword [rsp + 0x88]
jne 0x14004e167
jmp 0x14004e3bd
mov rdx, qword [rsp + 0x4a8]
xor ecx, ecx
jmp 0x14004e26c
mov eax, r13d
cmp qword [rsp + 0x388], rax
jbe 0x14004e613
lea rcx, [rax + rax*8]
shl rcx, 3
add rcx, qword [rsp + 0x378]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
call fcn.14004de15
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 9], 0
je 0x14004e412
lea rcx, [rsp + 0xb8]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x58]
call fcn.1400161b9
mov rcx, qword [rsp + 0x80]
add rcx, 0x18
inc qword [rsp + 0x50]
cmp rcx, qword [rsp + 0x70]
jne 0x14004e10e
jmp 0x14004e44e
mov rdi, qword [rsp + 0x4b8]
movups xmm0, xmmword [rsp + 0x4c0]
movaps xmmword [rsp + 0xa0], xmm0
cmp rdi, 2
jne 0x14004e48c
lea rbx, [rsp + 0xb0]
mov rcx, rbx
call fcn.14004c783
mov rcx, rbx
call fcn.14004c81e
mov rax, qword [rbx]
cmp byte [rax + 0xa], 0
mov rsi, qword [rsp + 0x28]
jne 0x14004e4ad
mov al, byte [rax + 8]
dec al
lea rcx, [rsp + 0xb0]
cmp al, 2
jae 0x14004e4a8
call fcn.14004cd0d
jmp 0x14004e4ad
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x30], xmm0
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x48]
jmp 0x14004df62
call fcn.14004c99c
lea r12, [rsp + 0x358]
lea r14, [rsp + 0x498]
lea rcx, [rsp + 0xb0]
call fcn.14004c8af
lea rbp, [rsp + 0x396]
lea rbx, [rsp + 0x4b1]
xor edi, edi
mov r8d, 0xff
mov rcx, rbx
xor edx, edx
call fcn.140092ff0
mov rax, qword [r14]
mov rcx, qword [r14 + 0x10]
mov byte [rbx - 1], 0
xor edx, edx
cmp rcx, rdx
je 0x14004e613
cmp byte [rax + rdx], 0
je 0x14004e511
inc dil
je 0x14004e613
mov byte [rsp + rdx + 0x4b1], dil
inc rdx
cmp rdx, 0xff
jne 0x14004e4f9
lea rdx, [rsp + 0x4b0]
mov r8d, 0x100
mov rcx, rbp
call fcn.1400931b0
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 0xa], 0
jne 0x14004e578
lea rcx, [rsp + 0xb8]
call fcn.140013254
mov r15, rax
mov rbp, rdx
lea rbx, [rsp + 0x368]
mov rcx, rbx
call fcn.1400136a0
mov qword [rbx], r15
mov rsi, qword [rsp + 0x28]
mov qword [rbx + 8], rbp
mov rcx, qword [rsp + 0x388]
test rcx, rcx
je 0x14004e5c3
mov rax, qword [rsp + 0x378]
lea rcx, [rcx + rcx*8]
lea rdx, [rax + rcx*8]
xor ebp, ebp
cmp dword [rax], 1
sete cl
mov rbx, qword [rax + 0x18]
xor cl, 3
shl rbx, cl
mov rcx, qword [rax + 0x30]
shl rcx, 4
add rcx, rbp
add rcx, rbx
add rax, 0x48
mov rbp, rcx
cmp rax, rdx
jne 0x14004e597
jmp 0x14004e5c5
xor ecx, ecx
lea rdx, [rsp + 0x368]
mov qword [rdx - 8], rcx
mov rdi, qword [rdx - 0x18]
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0xa00]
mov r8d, 0x130
call fcn.1400931b0
lea rcx, [rsp + 0xb8]
call fcn.14004d287
mov rcx, r14
call fcn.14004b4d8
xor eax, eax
mov rbx, qword [rsp + 0x48]
jmp 0x14004df74
ud2