Function at 0x1804f93a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov qword [rsp + 0x50], r9
mov rsi, r8
mov r15, rdx
mov rbp, rcx
cmp rdx, 0x21
jae 0x1804f9434
cmp r15, 2
jb 0x1804f9f68
lea rax, [r15 + 0x10]
cmp rax, qword [rsp + 0x50]
ja 0x1804f9f7c
mov r12, r15
shr r12, 1
cmp r15, 0xf
mov qword [rsp + 0x48], rbp
jbe 0x1804f9c54
mov rdi, r15
shl rdi, 4
lea r8, [rsi + rdi]
mov rcx, rbp
mov rdx, rsi
call fcn.1804f87f0
mov rdx, r12
shl rdx, 4
lea rcx, [rdx + rbp]
add rdx, rsi
lea r8, [rsi + rdi]
add r8, 0x80
call fcn.1804f87f0
mov r8d, 8
jmp 0x1804f9c9a
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x58], rax
mov edi, dword [rsp + 0x120]
lea rax, [rsi - 0x10]
mov qword [rsp + 0x80], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0xa8], rax
mov rbx, r15
mov qword [rsp + 0x48], rbp
nop dword [rax + rax]
sub edi, 1
jb 0x1804f9c2a
mov dword [rsp + 0x60], edi
mov r9, rbx
shr r9, 3
mov r15, r9
shl r15, 6
add r15, rbp
imul r13, r9, 0x70
add r13, rbp
cmp rbx, 0x40
mov qword [rsp + 0x68], rbx
jae 0x1804f9560
mov rcx, qword [rbp]
mov qword [rsp + 0x40], rcx
mov rbx, qword [rbp + 8]
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov r12, rbx
sub r12, r8
mov qword [rsp + 0x78], r8
cmovb r8, rbx
mov qword [rsp + 0x70], rdx
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r12, rax
mov rdx, qword [r13]
mov r14, rbp
mov rbp, qword [r13 + 8]
mov rdi, rbx
sub rdi, rbp
cmovae rbx, rbp
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rdx
mov r8, rbx
mov rbx, qword [rsp + 0x68]
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rdi, rax
mov qword [rsp + 0x40], r12
xor rdi, r12
mov r12, r14
js 0x1804f9574
mov rax, qword [rsp + 0x78]
mov rdi, rax
sub rdi, rbp
cmovb rbp, rax
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xb0]
mov r8, rbp
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rdi, rax
xor rdi, qword [rsp + 0x40]
cmovs r15, r13
mov r12, r15
jmp 0x1804f9574
mov rcx, rbp
mov rdx, r15
mov r8, r13
call fcn.1804f8540
mov r12, rax
mov r14, rbp
mov rax, r12
sub rax, r14
shr rax, 4
mov qword [rsp + 0x40], rax
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], r8
cmp qword [rsp + 0x58], 0
mov rbp, r14
je 0x1804f95d3
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rdi, rax
test rdi, rdi
jns 0x1804f9920
cmp rbx, qword [rsp + 0x50]
ja 0x1804f9f7c
shl rbx, 4
mov qword [rsp + 0x70], rbx
lea r13, [rsi + rbx]
xor r15d, r15d
mov rdi, rbp
mov r14, qword [rsp + 0x40]
nop word cs:[rax + rax]
mov rax, r14
sub rax, 3
mov ebx, 0
cmovae rbx, rax
shl rbx, 4
add rbx, rbp
cmp rdi, rbx
jae 0x1804f9757
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rbp, rax
lea rax, [r13 - 0x10]
test rbp, rbp
cmovs rax, rsi
mov rcx, r15
shl rcx, 4
movups xmm0, xmmword [rdi]
movups xmmword [rax + rcx], xmm0
shr rbp, 0x3f
add rbp, r15
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r15, rax
sub r15, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r15, rax
lea rax, [r13 - 0x20]
test r15, r15
cmovs rax, rsi
mov rcx, rbp
shl rcx, 4
movups xmm0, xmmword [rdi + 0x10]
movups xmmword [rax + rcx], xmm0
shr r15, 0x3f
add r15, rbp
mov rcx, qword [rdi + 0x20]
mov rax, qword [rdi + 0x28]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rbp, rax
lea rax, [r13 - 0x30]
test rbp, rbp
cmovs rax, rsi
mov rcx, r15
shl rcx, 4
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rax + rcx], xmm0
shr rbp, 0x3f
add rbp, r15
mov rcx, qword [rdi + 0x30]
mov rax, qword [rdi + 0x38]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r15, rax
sub r15, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r15, rax
add r13, 0xffffffffffffffc0
test r15, r15
mov rax, r13
cmovs rax, rsi
mov rcx, rbp
shl rcx, 4
movups xmm0, xmmword [rdi + 0x30]
movups xmmword [rax + rcx], xmm0
shr r15, 0x3f
add r15, rbp
add rdi, 0x40
cmp rdi, rbx
jb 0x1804f9620
mov rbp, qword [rsp + 0x48]
mov rbx, r14
shl rbx, 4
add rbx, rbp
cmp rdi, rbx
jae 0x1804f97c6
nop word cs:[rax + rax]
mov rbp, r15
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r15, rax
sub r15, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r15, rax
add r13, 0xfffffffffffffff0
test r15, r15
mov rax, r13
cmovs rax, rsi
mov rcx, rbp
shl rcx, 4
movups xmm0, xmmword [rdi]
movups xmmword [rax + rcx], xmm0
shr r15, 0x3f
add r15, rbp
add rdi, 0x10
cmp rdi, rbx
jb 0x1804f9770
mov rbx, qword [rsp + 0x68]
cmp r14, rbx
je 0x1804f9800
mov rax, r15
shl rax, 4
movups xmm0, xmmword [rdi]
movups xmmword [r13 + rax - 0x10], xmm0
add r13, 0xfffffffffffffff0
add rdi, 0x10
mov r14, rbx
mov rbp, qword [rsp + 0x48]
jmp 0x1804f9600
mov r13, r15
shl r13, 4
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
mov rdx, rsi
mov r8, r13
call fcn.1806a7400
mov rdx, rbx
sub rdx, r15
je 0x1804f98c2
lea rax, [r15 + 1]
cmp rbx, rax
jne 0x1804f9840
xor eax, eax
jmp 0x1804f98a0
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0xa8]
lea r8, [rax + r13]
mov r11, qword [rsp + 0x70]
add r11, qword [rsp + 0x80]
xor r9d, r9d
movabs r10, 0xffffffffffffffe
nop dword [rax]
movups xmm0, xmmword [r11]
movups xmmword [r8 - 0x10], xmm0
lea rax, [r9 + 2]
xor r9, r10
add r9, rbx
shl r9, 4
movups xmm0, xmmword [rsi + r9]
movups xmmword [r8], xmm0
add r8, 0x20
add r11, 0xffffffffffffffe0
mov r9, rax
cmp rcx, rax
jne 0x1804f9870
test dl, 1
je 0x1804f98c2
mov rcx, rax
not rcx
add rcx, rbx
shl rcx, 4
add rax, r15
shl rax, 4
movups xmm0, xmmword [rsi + rcx]
movups xmmword [rbp + rax], xmm0
test r15, r15
je 0x1804f9920
cmp rbx, r15
jb 0x1804f9f7c
add r13, rbp
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov edi, dword [rsp + 0x60]
mov dword [rsp + 0x20], edi
mov rcx, r13
mov r8, rsi
mov r9, qword [rsp + 0x50]
call fcn.1804f93a0
mov rbx, r15
cmp r15, 0x21
jae 0x1804f9470
jmp 0x1804f93c7
cmp rbx, qword [rsp + 0x50]
ja 0x1804f9f7c
shl rbx, 4
mov qword [rsp + 0x58], rbx
lea r15, [rsi + rbx]
xor edi, edi
mov rbx, qword [rsp + 0x40]
nop
mov rax, rbx
sub rax, 3
mov r14d, 0
cmovae r14, rax
shl r14, 4
add r14, qword [rsp + 0x48]
cmp rbp, r14
mov qword [rsp + 0x40], rbx
jae 0x1804f9aaf
nop dword [rax + rax]
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
lea rax, [r15 - 0x10]
xor ebx, ebx
test r13, r13
setns bl
cmovns rax, rsi
mov rcx, rdi
shl rcx, 4
movups xmm0, xmmword [rbp]
movups xmmword [rax + rcx], xmm0
add rbx, rdi
mov rdx, qword [rbp + 0x10]
mov r8, qword [rbp + 0x18]
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
lea rax, [r15 - 0x20]
xor edi, edi
test r13, r13
setns dil
cmovns rax, rsi
mov rcx, rbx
shl rcx, 4
movups xmm0, xmmword [rbp + 0x10]
movups xmmword [rax + rcx], xmm0
add rdi, rbx
mov rdx, qword [rbp + 0x20]
mov r8, qword [rbp + 0x28]
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
lea rax, [r15 - 0x30]
xor ebx, ebx
test r13, r13
setns bl
cmovns rax, rsi
mov rcx, rdi
shl rcx, 4
movups xmm0, xmmword [rbp + 0x20]
movups xmmword [rax + rcx], xmm0
add rbx, rdi
mov rdx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x38]
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
add r15, 0xffffffffffffffc0
xor edi, edi
test r13, r13
mov rax, r15
cmovns rax, rsi
setns dil
mov rcx, rbx
shl rcx, 4
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rax + rcx], xmm0
add rdi, rbx
add rbp, 0x40
cmp rbp, r14
jb 0x1804f9970
mov rbx, qword [rsp + 0x40]
shl rbx, 4
add rbx, qword [rsp + 0x48]
cmp rbp, rbx
jae 0x1804f9b1a
nop dword [rax]
mov r14, rdi
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
add r15, 0xfffffffffffffff0
xor edi, edi
test r13, r13
mov rax, r15
cmovns rax, rsi
setns dil
mov rcx, r14
shl rcx, 4
movups xmm0, xmmword [rbp]
movups xmmword [rax + rcx], xmm0
add rdi, r14
add rbp, 0x10
cmp rbp, rbx
jb 0x1804f9ac0
mov rbx, qword [rsp + 0x68]
cmp qword [rsp + 0x40], rbx
je 0x1804f9b50
add r15, 0xfffffffffffffff0
mov rax, rdi
shl rax, 4
movups xmm0, xmmword [rbp]
movups xmmword [rsi + rax], xmm0
inc rdi
add rbp, 0x10
jmp 0x1804f9940
mov r12, rdi
shl r12, 4
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
mov rdx, rsi
mov r8, r12
call fcn.1806a7400
mov r15, rbx
sub r15, rdi
je 0x1804f9c01
lea rax, [rdi + 1]
cmp rbx, rax
jne 0x1804f9b83
xor eax, eax
jmp 0x1804f9bde
mov rcx, r15
and rcx, 0xfffffffffffffffe
lea rdx, [r12 + rbp]
add rdx, 0x10
mov r10, qword [rsp + 0x58]
add r10, qword [rsp + 0x80]
xor r8d, r8d
movabs r9, 0xffffffffffffffe
nop dword [rax]
movups xmm0, xmmword [r10]
movups xmmword [rdx - 0x10], xmm0
lea rax, [r8 + 2]
xor r8, r9
add r8, rbx
shl r8, 4
movups xmm0, xmmword [rsi + r8]
movups xmmword [rdx], xmm0
add rdx, 0x20
add r10, 0xffffffffffffffe0
mov r8, rax
cmp rcx, rax
jne 0x1804f9bb0
test r15b, 1
je 0x1804f9c01
mov rcx, rax
not rcx
add rcx, rbx
shl rcx, 4
add rax, rdi
shl rax, 4
movups xmm0, xmmword [rsi + rcx]
movups xmmword [rbp + rax], xmm0
cmp rbx, rdi
jb 0x1804f9f7c
add rbp, r12
mov eax, 0
mov qword [rsp + 0x58], rax
cmp r15, 0x21
mov edi, dword [rsp + 0x60]
jae 0x1804f9454
jmp 0x1804f93c7
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, rbp
mov rdx, rbx
mov r8, rsi
mov r9, qword [rsp + 0x50]
call fcn.1804f8c60
jmp 0x1804f9f68
mov rbx, r12
shl rbx, 4
lea r14, [rbx + rbp]
add rbx, rsi
cmp r15, 7
jbe 0x1804f9c86
mov rcx, rbp
mov rdx, rsi
call fcn.1804f8660
mov rcx, r14
mov rdx, rbx
call fcn.1804f8660
mov r8d, 4
jmp 0x1804f9c9a
movups xmm0, xmmword [rbp]
movups xmmword [rsi], xmm0
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov r8d, 1
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], r12
mov qword [rsp + 0xa0], 2
mov r9, r15
sub r9, r12
mov rax, r8
shl rax, 4
mov qword [rsp + 0x78], rax
mov eax, 2
xor ecx, ecx
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x70], r9
jmp 0x1804f9d18
mov rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x70]
cmp rax, rcx
je 0x1804f9e29
lea rdx, [rcx + 1]
mov qword [rsp + 0x98], rdx
mov rbp, qword [rsp + rcx*8 + 0x88]
test rbp, rbp
mov r13, r9
cmove r13, r12
mov rcx, rdx
cmp r8, r13
jae 0x1804f9d0f
shl rbp, 4
mov rax, qword [rsp + 0x48]
add rax, rbp
mov qword [rsp + 0x40], rax
add rbp, rsi
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x68], rax
mov r12, r8
mov qword [rsp + 0x50], r13
jmp 0x1804f9d87
mov rdi, rbp
mov r13, qword [rsp + 0x50]
mov qword [rdi], rbx
mov qword [rdi + 8], r14
inc r12
add qword [rsp + 0x68], 0x10
cmp r12, r13
je 0x1804f9cf0
mov rax, r12
shl rax, 4
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [rcx + rax]
movups xmmword [rbp + rax], xmm0
mov rbx, qword [rbp + rax]
mov r14, qword [rbp + rax + 8]
mov rdx, qword [rbp + rax - 0x10]
mov r8, qword [rbp + rax - 8]
mov rdi, r14
sub rdi, r8
cmovb r8, r14
mov rcx, rbx
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rdi, rax
test rdi, rdi
jns 0x1804f9d75
mov rdi, qword [rsp + 0x68]
nop word cs:[rax + rax]
movups xmm0, xmmword [rbp + rdi - 0x10]
movups xmmword [rbp + rdi], xmm0
cmp rdi, 0x10
je 0x1804f9d66
mov rdx, qword [rbp + rdi - 0x20]
mov r8, qword [rbp + rdi - 0x18]
mov r13, r14
sub r13, r8
cmovb r8, r14
mov rcx, rbx
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
add rdi, 0xfffffffffffffff0
test r13, r13
js 0x1804f9de0
add rdi, rbp
jmp 0x1804f9d69
mov rax, r12
shl rax, 4
lea rbx, [rsi + rax]
lea r13, [rsi + rax]
add r13, 0xfffffffffffffff0
mov rax, r15
shl rax, 4
lea r14, [rsi + rax]
add r14, 0xfffffffffffffff0
mov rbp, qword [rsp + 0x48]
lea rcx, [rax + rbp]
add rcx, 0xfffffffffffffff0
cmp r12, 1
adc r12, 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x60], r12
mov rdi, r13
mov r13, rbx
mov r12, rsi
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rbx, rax
xor esi, esi
test rbx, rbx
setns sil
mov rax, r13
cmovns rax, r12
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
shr rbx, 0x3b
and ebx, 0xfffffff0
add rbx, r13
shl rsi, 4
add rsi, r12
mov r12, qword [rsp + 0x60]
add rbp, 0x10
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
mov r13, rax
sub r13, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r13, rax
xor eax, eax
test r13, r13
setns al
mov rcx, rdi
cmovns rcx, r14
movups xmm0, xmmword [rcx]
mov rcx, qword [rsp + 0x48]
movups xmmword [rcx], xmm0
shl rax, 4
sub r14, rax
sar r13, 0x3f
shl r13, 4
add r13, rdi
add rcx, 0xfffffffffffffff0
dec r12
jne 0x1804f9e60
add r13, 0x10
test r15b, 1
je 0x1804f9f5a
xor eax, eax
xor ecx, ecx
cmp rsi, r13
setae al
setb cl
mov rdx, rbx
cmovb rdx, rsi
movups xmm0, xmmword [rdx]
movups xmmword [rbp], xmm0
shl rcx, 4
add rsi, rcx
shl rax, 4
add rbx, rax
cmp rsi, r13
jne 0x1804f9f7c
add r14, 0x10
cmp rbx, r14
jne 0x1804f9f7c
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2