Function at 0x7ffeca337674
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [rcx + 0x10]
mov r14, rcx
mov ecx, 0xfffffff
mov r13d, dword [rax + 5]
mov r15d, dword [rax + 1]
mov ebx, dword [rax + 9]
and r13, rcx
and r15, rcx
and rbx, rcx
lea r9, [rax + 0xd]
mov rsi, rdx
lea rdx, [0x7ffeca310000]
add r13, rdx
lea r8, [0x7ffeca355a08]
lea rdi, [r9 - 1]
xor ebp, ebp
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x60], r13
cmp rdi, r8
jb 0x7ffeca337723
mov ecx, dword [0x7ffeca34d854]
mov eax, dword [0x7ffeca34d850]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x7ffeca337723
mov ecx, dword [0x7ffeca34d850]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x7ffeca34d850]
imul rdx, rax
add r8, rdx
lea rdx, [0x7ffeca310000]
jmp 0x7ffeca337726
mov r8, rbp
cmp r8, rbp
jne 0x7ffeca337735
mov r8, rdi
and r8, 0xffffffffffff0000
mov r11d, dword [0x7ffeca34d850]
sub r9, r8
mov r10d, r13d
lea rax, [r9 - 0x40]
cmp rax, rbp
cmovl rax, rbp
sub r11, rbx
sub r10d, edx
lea rdi, [rax + r8]
xor eax, eax
inc r11
lea ecx, [rax + 0x40]
mov r9, r11
rep stosb byte [rdi], al
mov rdi, rbp
cmp r11, rbp
je 0x7ffeca3377a2
mov rdx, qword [0x7ffeca355490]
imul rdx, rdx, 0x343fd
shl rdi, 0x10
shr r9, 0x10
add rdx, 0x269ec3
mov rcx, rdx
shr rcx, 0x10
movzx eax, cx
or rdi, rax
cmp r9, rbp
jne 0x7ffeca337773
mov qword [0x7ffeca355490], rdx
xor edx, edx
mov rax, rdi
mov ecx, r10d
div r11
lea r12, [rdx + r8]
mov rdx, rbx
mov r8, r12
mov qword [rsp + 0x48], r12
call fcn.7ffeca32c17c
mov rdx, qword [rbx + r13]
mov dil, bpl
mov qword [rsp + 0x40], rdx
cmp rbx, rbp
jbe 0x7ffeca337daa
lea rcx, [rsp + 0x40]
call fcn.7ffeca343cf4
mov r9d, dword [rsp + 0x44]
mov r11, qword [rsp + 0x40]
mov eax, 0xfffffff
lea rdx, [0x7ffeca310000]
mov qword [rsp + 0x20], rbp
and r11, rax
and r9, rax
mov rax, qword [0x7ffeca34d7b8]
mov rcx, rdx
add r11, rdx
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x7ffeca337885
mov r10, rbp
cmp r9, rbp
jbe 0x7ffeca337b36
mov edx, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x20]
mov r14d, 0x5d178fad
movzx ecx, byte [r11 + r10]
inc r10
add ecx, r14d
add r8d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0xe0], rax
shr rax, 0x20
mov edx, dword [rsp + 0xe0]
add edx, eax
add r8d, edx
cmp r10, r9
jb 0x7ffeca337833
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x20], r8d
jmp 0x7ffeca337b36
movsxd rcx, dword [0x7ffeca31003c]
lea rax, [r11 + r9]
mov r10, 0xfffffffffffff000
mov r8d, dword [rcx + rdx + 0xb0]
mov r15d, dword [rcx + rdx + 0xb4]
mov qword [rsp + 0x58], rax
mov eax, r11d
add r8, rdx
sub eax, edx
mov ebx, eax
mov esi, eax
add rax, r9
mov r9, rax
and rbx, r10
and r9, r10
sub rsi, rbx
sub rax, r9
mov qword [rsp + 0x68], r9
add r15, r8
mov qword [rsp + 0x50], rax
jmp 0x7ffeca3378e8
mov eax, dword [r8]
cmp rax, rbx
jae 0x7ffeca3378ed
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r15
jne 0x7ffeca3378d9
mov r10, rbp
cmp r8, r15
je 0x7ffeca337927
mov eax, dword [r8]
cmp rax, rbx
jne 0x7ffeca337927
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffeca337927
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rsi
jae 0x7ffeca337927
inc r10
add rdx, 2
cmp r10, rcx
jne 0x7ffeca33790e
mov r12d, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov r14d, 0x5d178fad
lea r13, [0x7ffeca310000]
cmp r8, r15
je 0x7ffeca337acc
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffeca337acc
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r10, rax
jne 0x7ffeca337984
add r8, rcx
cmp r8, r15
je 0x7ffeca337acc
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffeca337acc
xor r10d, r10d
jmp 0x7ffeca337957
mov eax, dword [r8]
cmp rax, r9
jne 0x7ffeca3379a2
movzx eax, word [r8 + r10*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x50]
jae 0x7ffeca337acc
mov rax, r10
mov ecx, 0xf000
inc r10
test word [r8 + rax*2 + 8], cx
je 0x7ffeca337942
movzx edx, word [r8 + rax*2 + 8]
xor ebx, ebx
mov esi, edx
and esi, 0xfff
add esi, dword [r8]
add rsi, r13
mov r9, rsi
sub r9, r11
je 0x7ffeca337a1c
movzx ecx, byte [rbx + r11]
inc rbx
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r12d, dword [rsp + 0x28]
add r12d, eax
add ebp, r12d
cmp rbx, r9
jb 0x7ffeca3379d3
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
mov rax, qword [rsi]
shr edx, 0xc
mov qword [rsp + 0x30], rax
cmp edx, 3
je 0x7ffeca337a38
sub edx, 0xa
neg edx
sbb edx, edx
add edx, 3
jmp 0x7ffeca337a3d
mov edx, 2
mov r9, rdi
neg r9
sub edx, 2
je 0x7ffeca337a62
cmp edx, 1
je 0x7ffeca337a53
or rdx, 0xffffffffffffffff
jmp 0x7ffeca337a6c
add rax, r9
mov edx, 8
mov qword [rsp + 0x30], rax
jmp 0x7ffeca337a6c
add dword [rsp + 0x30], r9d
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x7ffeca337abe
movzx ecx, byte [rsp + r9 + 0x30]
inc r9
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r12d, dword [rsp + 0x28]
add r12d, eax
add ebp, r12d
cmp r9, rdx
jb 0x7ffeca337a74
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
mov r9, qword [rsp + 0x68]
lea r11, [rdx + rsi]
jmp 0x7ffeca337942
mov r8, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
xor edx, edx
sub r8, r11
mov dil, dl
je 0x7ffeca337b2f
movzx ecx, byte [rdx + r11]
inc rdx
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0xe0], rax
shr rax, 0x20
mov r12d, dword [rsp + 0xe0]
add r12d, eax
add ebp, r12d
cmp rdx, r8
jb 0x7ffeca337ae0
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
mov rbx, qword [rsp + 0x38]
xor ebp, ebp
mov rcx, rbp
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0xe7], al
cmp rcx, 6
jb 0x7ffeca337b39
call fcn.7ffeca328310
mov r11b, byte [rsp + 0xe8]
mov bpl, byte [rsp + 0xea]
mov r15b, byte [rsp + 0xec]
mov r14b, byte [rsp + 0xed]
mov r12b, byte [rsp + 0xe9]
or r11b, 1
or bpl, 1
or r15b, 1
or r14b, 1
lea rsi, [rbx - 1]
mov byte [rsp + 0xe8], r11b
mov byte [rsp + 0xea], bpl
mov byte [rsp + 0xec], r15b
mov byte [rsp + 0xed], r14b
test rsi, rsi
je 0x7ffeca337d22
mov rax, qword [rsp + 0x48]
lea rbx, [rsi + r13]
sub rax, r13
mov qword [rsp + 0xe0], rax
mov r9b, byte [rbx]
movzx ecx, r9b
test sil, 1
je 0x7ffeca337c67
xor r9b, byte [rsp + 0xeb]
movzx r8d, byte [rsp + 0xeb]
and r9b, 1
je 0x7ffeca337c12
movzx edx, bpl
mov eax, r8d
shr eax, 1
shr edx, 1
xor edx, eax
mov eax, ecx
btc eax, 8
sar eax, 1
xor edx, eax
jmp 0x7ffeca337c19
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffeca337c4f
test r9b, r9b
je 0x7ffeca337c42
btc ecx, 8
shr r8d, 1
movzx edx, bpl
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffeca337c49
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx eax, r14b
jmp 0x7ffeca337cc8
test r9b, r9b
je 0x7ffeca337c5d
movzx edx, bpl
jmp 0x7ffeca337ce2
mov edx, ecx
xor edx, r8d
jmp 0x7ffeca337cf9
xor r9b, r12b
movzx r8d, r12b
and r9b, 1
je 0x7ffeca337c8d
movzx edx, r11b
mov eax, r8d
shr eax, 1
shr edx, 1
xor edx, eax
mov eax, ecx
btc eax, 8
sar eax, 1
xor edx, eax
jmp 0x7ffeca337c94
mov edx, r8d
xor edx, ecx
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffeca337cd9
test r9b, r9b
je 0x7ffeca337cbd
btc ecx, 8
shr r8d, 1
movzx edx, r11b
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffeca337cc4
mov edx, r8d
xor edx, ecx
shr edx, 1
movzx eax, r15b
shr eax, 1
xor r10d, edx
btc eax, 7
sar r10d, 1
xor eax, r10d
jmp 0x7ffeca337d02
test r9b, r9b
je 0x7ffeca337cf4
movzx edx, r11b
btc ecx, 8
shr edx, 1
shr r8d, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffeca337cfb
mov edx, r8d
xor edx, ecx
shr edx, 1
mov eax, r10d
xor eax, edx
sar eax, 1
mov rcx, qword [rsp + 0xe0]
xor dil, al
mov byte [rcx + rbx], al
dec rbx
sub rsi, 1
jne 0x7ffeca337bd1
mov rbx, qword [rsp + 0x38]
movzx ecx, byte [r13]
mov dl, byte [r13]
movzx eax, r12b
xor ecx, eax
xor dl, r12b
shr ecx, 1
and dl, 1
je 0x7ffeca337d49
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffeca337d4b
mov eax, ecx
xor ebp, ebp
test al, 1
je 0x7ffeca337d72
cmp dl, bpl
je 0x7ffeca337d64
movzx edx, r11b
btc edx, 8
sar edx, 1
xor edx, ecx
jmp 0x7ffeca337d66
mov edx, ecx
movzx eax, r15b
xor eax, edx
btc eax, 8
jmp 0x7ffeca337d87
cmp dl, bpl
je 0x7ffeca337d85
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffeca337d87
mov eax, ecx
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
mov r15, qword [rsp + 0x70]
sar eax, 1
mov byte [r12], al
xor dil, al
cmp dil, byte [rbx + r13 + 8]
je 0x7ffeca337e73
call fcn.7ffeca327d60
lea r8, [r14 + 0x18]
lea r10, [0x7ffeca321068]
and r8, 0xfffffffffffffff8
mov rbx, rax
mov qword [r14 + 0x10], r10
mov rcx, qword [0x7ffeca355490]
lea r9, [r8 + 0xfff]
and rbx, 0xfffffffffffff000
mov rdi, rbp
mov r11d, 0xffff
and r9, 0xfffffffffffff000
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
cmp r11, rbp
jne 0x7ffeca337df5
mov qword [0x7ffeca355490], rcx
movabs rax, 0x8000800080008001
mov qword [rsi + 0x98], rbx
mul rdi
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rsi + 0xb0], rdi
mov qword [rsp + 0xd0], rbp
jmp 0x7ffeca337e69
mov rax, qword [rsp + 0xd0]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x7ffeca337e5a
jmp 0x7ffeca337fa1
mov rax, qword [0x7ffeca34d7b8]
lea rcx, [0x7ffeca310000]
mov rbx, r13
mov rsi, rcx
sub rbx, r12
sub rsi, rax
jne 0x7ffeca337e98
cmp rbx, rbp
je 0x7ffeca337f92
mov rbp, qword [rsp + 0x38]
mov r11, r12
xor edi, edi
sub r11, r13
sub r13d, ecx
mov rcx, qword [0x7ffeca34d7a0]
lea r8d, [rcx - 1]
add ebp, r13d
lea r9, [0x7ffeca34d7a0]
test r8d, r8d
js 0x7ffeca337ef6
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r9 + rdx*4 + 4]
and r9d, 0xfffffff
cmp r13d, r9d
jae 0x7ffeca337ee5
lea r8d, [rax - 1]
jmp 0x7ffeca337eea
jbe 0x7ffeca337f55
lea edi, [rax + 1]
cmp r8d, edi
lea r9, [0x7ffeca34d7a0]
jge 0x7ffeca337ec2
movsxd r10, edi
mov eax, ecx
cmp r10, rax
jae 0x7ffeca337f92
lea r13, [0x7ffeca34d7a0]
lea r14, [0x7ffeca310000]
mov edx, dword [r13 + r10*4 + 4]
mov edi, 0xfffffff
mov eax, edx
and eax, edi
cmp eax, ebp
jae 0x7ffeca337f8a
mov r9, rdx
xor r8d, r8d
and r9, rdi
mov edi, edx
sar edx, 0x1e
shl edi, 2
add r9, r14
and edx, 3
sar edi, 0x1e
and edi, 3
sub edi, 1
je 0x7ffeca337f5f
sub edi, 1
je 0x7ffeca337f5a
cmp edi, 1
jne 0x7ffeca337f65
mov r8, rsi
jmp 0x7ffeca337f65
movsxd r10, eax
jmp 0x7ffeca337ef9
mov r8, rbx
jmp 0x7ffeca337f65
mov r8, rsi
sub r8, rbx
sub edx, 2
je 0x7ffeca337f75
cmp edx, 1
jne 0x7ffeca337f80
add qword [r9 + r11], r8
jmp 0x7ffeca337f79
add dword [r9 + r11], r8d
mov rcx, qword [0x7ffeca34d7a0]
inc r10
mov eax, ecx
cmp r10, rax
jb 0x7ffeca337f12
mov r14, qword [rsp + 0xd0]
mov eax, dword [0x7ffeca34d850]
call fcn.7ffeca32c260
lea r10, [r12 + r15]
mov qword [r14 + 0x10], r10
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret