Function at 0x1400df270
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2f8
mov qword [rsp + 0x58], rcx
cmp rdx, 2
jb 0x1400df938
mov rsi, r8
mov r8, rdx
movabs rax, 0x3fffffffffffffff
add rax, rdx
mov rcx, rax
or rcx, rdx
shr rcx, 0x20
je 0x1400df2b8
xor edx, edx
div r8
jmp 0x1400df2bd
xor edx, edx
div r8d
mov qword [rsp + 0x70], rax
cmp r8, 0x1001
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x60], r8
jae 0x1400df2ed
mov rax, r8
shr rax, 1
sub r8, rax
cmp r8, 0x40
mov eax, 0x40
cmovb rax, r8
jmp 0x1400df2fa
mov rcx, r8
call fcn.1402d3a10
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x58]
lea rcx, [rax + 4]
mov qword [rsp + 0x68], rcx
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x80], rax
mov r15d, 1
xor r8d, r8d
xor r13d, r13d
mov qword [rsp + 0x40], rsi
nop word [rax + rax]
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
lea rax, [rax + r8*4]
mov qword [rsp + 0x48], rax
sub rdx, r8
jbe 0x1400df3c0
mov rbp, r8
cmp rdx, qword [rsp + 0x50]
jae 0x1400df3e0
cmp byte [rsp + 0x360], 0
je 0x1400df3ee
cmp rdx, 0x20
mov eax, 0x20
cmovae rdx, rax
mov rax, qword [rsp + 0x368]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rdi, rdx
mov r8, rsi
mov r9, qword [rsp + 0x38]
call fcn.1400ed280
mov r9, qword [rsp + 0x38]
mov eax, edi
lea rcx, [rax*2 + 1]
jmp 0x1400df5cd
xor ecx, ecx
mov eax, 1
mov qword [rsp + 0x78], rax
cmp r13, 2
jae 0x1400df630
jmp 0x1400df8c6
cmp rdx, 2
jae 0x1400df40a
mov rax, rdx
jmp 0x1400df5c0
mov rax, qword [rsp + 0x50]
cmp rax, rdx
cmovb rdx, rax
add rdx, rdx
mov rsi, qword [rsp + 0x40]
mov rcx, rdx
jmp 0x1400df5cd
mov rdi, rdx
mov rdx, qword [rsp + 0x48]
lea r12, [rdx + 4]
mov rcx, r12
call fcn.1400ea460
mov ebx, eax
cmp al, 0xff
je 0x1400df471
mov eax, 2
cmp rdi, 2
mov r9, qword [rsp + 0x38]
je 0x1400df5c0
mov rax, qword [rsp + 0x68]
lea r14, [rax + rbp*4]
mov esi, 2
nop word cs:[rax + rax]
mov rdx, r14
add r14, 4
mov rcx, r14
call fcn.1400ea460
cmp al, 0xff
je 0x1400df4e3
inc rsi
cmp rdi, rsi
jne 0x1400df450
jmp 0x1400df4cb
cmp rdi, 2
jne 0x1400df4a0
mov eax, 2
mov ecx, 1
mov rdx, r12
cmp rcx, 1
movabs rbx, 0x3ffffffffffffffe
jne 0x1400df543
xor r8d, r8d
jmp 0x1400df596
mov rax, qword [rsp + 0x68]
lea r14, [rax + rbp*4]
mov esi, 2
nop
mov rdx, r14
add r14, 4
mov rcx, r14
call fcn.1400ea460
cmp al, 0xff
jne 0x1400df4e3
inc rsi
cmp rdi, rsi
jne 0x1400df4b0
mov rdx, rdi
mov rsi, rdi
cmp rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x38]
jb 0x1400df356
jmp 0x1400df4f6
mov rdx, rdi
cmp rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x38]
jb 0x1400df356
cmp bl, 0xff
je 0x1400df503
mov rax, rsi
jmp 0x1400df5c0
mov eax, 1
cmp rsi, 2
jb 0x1400df5c0
mov rcx, rsi
shr rcx, 1
mov rax, qword [rsp + 0x48]
lea rdx, [rax + rsi*4]
lea rax, [rcx*4]
sub rdx, rax
mov rax, rsi
cmp rcx, 1
movabs rbx, 0x3ffffffffffffffe
je 0x1400df498
mov r9, rcx
and r9, 0xfffffffffffffffe
lea r10, [rdx + rcx*4]
add r10, 0xfffffffffffffffc
add edx, 0xfffffffc
xor r8d, r8d
nop word cs:[rax + rax]
mov r11d, dword [r10]
mov esi, dword [r12 + r8*4 - 4]
mov dword [r12 + r8*4 - 4], r11d
mov dword [r10], esi
mov r11, r8
xor r11, rbx
add r11, rcx
mov esi, dword [rdx + r11*4]
xor al, 0x9a
mov edi, dword [r12 + r8*4]
mov dword [r12 + r8*4], esi
mov dword [rdx + r11*4], edi
add r8, 2
rol byte [rdx], 0x49
add edx, 0xfffffff8
cmp r9, r8
jne case.0x1400de7e3.357
test cl, 1
je 0x1400df5b9
mov r9, r8
not r9
add rcx, r9
mov r9d, dword [rdx + rcx*4]
mov r11, qword [rsp + 0x48]
mov r10d, dword [r11 + r8*4]
mov dword [r11 + r8*4], r9d
mov dword [rdx + rcx*4], r10d
mov r9, qword [rsp + 0x38]
nop
lea rcx, [rax*2 + 1]
mov rsi, qword [rsp + 0x40]
mov r8, rbp
mov rax, r15
shr rax, 1
mov qword [rsp + 0x78], rcx
shr rcx, 1
lea rdx, [rbp*2]
sub rdx, rax
lea rax, [rcx + rbp*2]
mov rcx, qword [rsp + 0x70]
imul rdx, rcx
imul rax, rcx
xor rax, rdx
je 0x1400df612
bsr rcx, rax
xor rcx, 0x3f
cmp r13, 2
jae 0x1400df630
jmp 0x1400df8c6
mov ecx, 0x40
cmp r13, 2
jb 0x1400df8c6
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x80]
lea rax, [rax + r8*4]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x90], rcx
jmp 0x1400df699
mov rbx, r12
mov r14, rsi
sub r15, r14
mov rcx, rbx
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov r9, qword [rsp + 0x38]
lea r15, [rdi*2 + 1]
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
cmp r13, 1
jbe 0x1400df8c0
cmp byte [rsp + r13 + 0xa5], cl
jb 0x1400df8c6
dec r13
mov r12, qword [rsp + r13*8 + 0xe8]
mov r14, r12
shr r14, 1
mov rbp, r15
shr rbp, 1
lea rdi, [r14 + rbp]
cmp rdi, r9
ja 0x1400df6f0
mov eax, r12d
or eax, r15d
and eax, 1
jne 0x1400df6f0
add rdi, rdi
mov r15, rdi
cmp r13, 1
ja 0x1400df699
jmp 0x1400df8c0
mov rax, r8
sub rax, rdi
mov rcx, qword [rsp + 0x58]
lea rbx, [rcx + rax*4]
test r12b, 1
jne 0x1400df760
mov rax, r14
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov rcx, qword [rsp + 0x368]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, rbx
mov rdx, r14
mov r8, rsi
mov r9, qword [rsp + 0x38]
call fcn.1400ed280
mov r9, qword [rsp + 0x38]
test r15b, 1
je 0x1400df766
cmp r15, 2
jae 0x1400df7b6
jmp 0x1400df672
test r15b, 1
jne 0x1400df750
lea rcx, [rbx + r14*4]
mov rax, rbp
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov rdx, qword [rsp + 0x368]
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rdx, rbp
mov r8, rsi
mov r9, qword [rsp + 0x38]
call fcn.1400ed280
mov r9, qword [rsp + 0x38]
cmp r15, 2
jb 0x1400df672
cmp r12, 2
jb 0x1400df672
cmp r14, rbp
mov rsi, rbp
cmovb rsi, r14
cmp rsi, r9
ja 0x1400df672
lea r12, [rbx + r14*4]
cmp rbp, r14
mov rdx, rbx
cmovb rdx, r12
lea r8, [rsi*4]
mov r15, qword [rsp + 0x40]
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
lea r15, [r15 + rsi*4]
cmp rbp, r14
jae 0x1400df85e
mov r14, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x40]
nop dword [rax]
lea rcx, [r15 - 4]
lea rdx, [r12 - 4]
call fcn.1400ea460
xor ecx, ecx
xor edx, edx
cmp al, 0xff
sete cl
setne dl
mov rax, r15
cmove rax, r12
mov eax, dword [rax - 4]
mov dword [r14], eax
lea r12, [r12 + rdx*4]
add r12, 0xfffffffffffffffc
lea r15, [r15 + rcx*4]
add r15, 0xfffffffffffffffc
cmp r12, rbx
je 0x1400df656
add r14, 0xfffffffffffffffc
cmp r15, rsi
jne 0x1400df810
jmp 0x1400df656
test rsi, rsi
je 0x1400df8b5
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
nop dword [rax]
mov rcx, r12
mov rdx, r14
call fcn.1400ea460
xor ecx, ecx
xor edx, edx
cmp al, 0xff
sete al
setne dl
mov r8, r14
cmove r8, r12
mov r8d, dword [r8]
mov dword [rbx], r8d
lea r14, [r14 + rdx*4]
add rbx, 4
cmp r14, r15
je 0x1400df65c
mov cl, al
lea r12, [r12 + rcx*4]
cmp r12, rsi
jne 0x1400df870
jmp 0x1400df65c
mov r14, qword [rsp + 0x40]
jmp 0x1400df65c
mov r13d, 1
mov qword [rsp + r13*8 + 0xe8], r15
mov byte [rsp + r13 + 0xa6], cl
cmp qword [rsp + 0x60], r8
jbe 0x1400df8f3
inc r13
mov r15, qword [rsp + 0x78]
mov rax, r15
shr rax, 1
add r8, rax
jmp 0x1400df330
test r15b, 1
jne 0x1400df938
mov rdx, qword [rsp + 0x60]
mov rax, rdx
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov rcx, qword [rsp + 0x368]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x58]
mov r8, rsi
call fcn.1400ed280
nop
add rsp, 0x2f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret