Function at 0x140313c90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov r10, rdx
mov r15, rcx
mov eax, dword [rcx + 8]
cmp eax, dword [rdx + 8]
sete cl
movzx eax, byte [0x1405641d0]
xor al, cl
mov edx, eax
not dl
test dl, cl
jne 0x140313cc8
test al, 1
je 0x140313d8f
mov eax, dword [r15 + 0xc]
cmp eax, dword [r10 + 0xc]
jne 0x140313d8f
mov eax, dword [r15 + 0x10]
cmp eax, dword [r10 + 0x10]
jne 0x140313d8f
mov eax, dword [r15 + 0x14]
cmp eax, dword [r10 + 0x14]
jne 0x140313d8f
mov eax, dword [r15 + 0x18]
cmp eax, dword [r10 + 0x18]
jne 0x140313d8f
mov ecx, dword [r10 + 0x1c]
movsxd rax, dword [0x140449f34]
cmp dword [r15 + 0x1c], ecx
mov r8d, dword [0x140449f18]
jne 0x140313d8f
mov ecx, dword [r15 + 0x20]
cmp ecx, dword [r10 + 0x20]
jne 0x140313d8f
lea rcx, [0x140449f34]
neg rax
movabs rdx, 0x835b574c9658d7f4
mov r9, rdx
sub r9, rcx
sub r9, rdx
mov rcx, rax
xor rcx, r9
and r9, rax
lea rax, [rcx + r9*2]
movabs rcx, 0x424cf760c5a40489
movabs rdx, 0x41fc8c2b1e9a6d37
mov r9, rdx
sub r9, rcx
sub r9, rax
add r9, rcx
movabs rax, 0x21f3908a9dd5350b
sub r9, rax
sub r9, rdx
add r9, rax
mov r13d, dword [r15 + 0x24]
mov r11d, dword [r10 + 0x24]
mov al, 1
test al, al
je 0x140313df0
jmp 0x140313da2
xor eax, eax
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140540fe4]
mov edx, dword [0x1405430d4]
mov ecx, edx
xor ecx, 0xc4c26798
mov esi, edx
and esi, 0x44c26798
lea esi, [rcx + rsi*2]
sub esi, edx
lea ecx, [rsi + rax]
add ecx, 0x3b3d9869
mov dword [0x140540fe4], ecx
mov edi, dword [0x140566ba8]
mov ebx, edi
sub ebx, edx
add ebx, 0xe7d775b0
imul ebx, edi
test bl, 1
je 0x140313ebd
nop
mov eax, dword [0x140540fe4]
mov ecx, eax
neg ecx
imul ecx, eax
mov eax, ecx
neg eax
imul eax, ecx
mov esi, dword [0x1405430d4]
mov edi, esi
sub edi, eax
lea edx, [rdi + rcx]
add edx, 0xc4c26797
add edi, ecx
mov ecx, 0x3b3d9869
sub ecx, edi
sub eax, edx
imul eax, ecx
neg ecx
add eax, esi
add eax, 0xc4c26797
mov ebx, eax
not ebx
mov r14d, 0x3b3d9868
sub r14d, edi
mov edi, eax
and edi, r14d
and r14d, ebx
and ebx, ecx
or edi, ebx
xor eax, ecx
or r14d, eax
not r14d
lea eax, [rdi + r14*2]
shl eax, cl
sub eax, edx
mov edx, esi
sub edx, eax
add edx, 0xc4c26797
imul edx, eax
sub edx, eax
imul edx, eax
mov ecx, eax
shl edx, cl
mov eax, esi
sub eax, edx
mov ecx, edx
shl edx, cl
lea ecx, [rax + rdx]
add ecx, 0xc4c26797
add eax, 0xc4c26797
imul eax, edx
sub eax, ecx
neg ecx
imul ecx, eax
sub ecx, eax
imul ecx, eax
sub ecx, eax
mov dword [0x140540fe4], ecx
mov ecx, dword [0x140566ba8]
lea eax, [rcx - 1]
imul eax, ecx
add esi, 0xc4c26799
xor edx, edx
div esi
test edx, edx
jne 0x140313df0
jmp 0x140313da2
add esi, eax
mov edx, 0xc4c26796
sub edx, esi
xor edx, eax
not edx
and eax, ecx
or edx, eax
not edx
or edx, eax
test edx, ecx
mov qword [rsp], r15
jne 0x140313ee5
xor esi, esi
test r8d, r8d
jg 0x140313f65
xor eax, eax
cmp r13d, r11d
jne 0x140313d8f
xor r8d, r8d
test edx, ecx
setne r8b
mov qword [rsp + 0x10], r8
mov rcx, qword [0x140449f10]
mov qword [rsp + 8], rcx
movabs r12, 0xfa1c06b884110097
movabs r13, 0xf0eb67b3e8dd4795
movabs rbp, 0xdd69e0247d8d1a5d
movabs r15, 0xc69facc044ad1aca
movabs rbx, 0xc264b4b4e0298dfd
movabs rsi, 0xc0b72640cf3b68bd
movabs rdi, 0x4beffb80187c3ccc
cmp qword [rsp], 0
mov qword [rsp + 0x18], r10
jne 0x140313fd9
jmp 0x14031403f
lea rax, [fcn.140313c90]
lea edi, [rax + rax]
add edi, 0x42e0
mov ebx, edi
not ebx
mov bpl, 1
xor eax, eax
jmp 0x140313f9b
mov r14, r15
xor r14, r15
not r14
and rax, r14
xor rax, r15
add esi, 8
cmp esi, r8d
jge 0x140313ee7
movsxd r14, esi
add r14, r9
mov r15d, dword [0x140566ba8]
lea r12d, [r15 - 1]
imul r12d, r15d
test r12b, 1
jne 0x140313fc0
mov r15, qword [r14]
test ebx, edi
je 0x140313f80
nop dword [rax]
mov r15, qword [r14]
test bpl, bpl
je 0x140313fc0
jmp 0x140313fb6
mov eax, dword [rdx + 0x2c]
cmp eax, dword [r10 + 0x2c]
sete al
jmp 0x140313d91
mov rcx, qword [rsp + 0x10]
dec rcx
mov rdx, qword [rsp + 8]
sub rdx, rax
mov r8, rdx
not r8
xor rdx, rcx
xor rcx, r8
and rcx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
sete cl
setne dl
movzx r8d, byte [0x1405641d0]
xor dl, r8b
not r8b
and r8b, cl
or r8b, dl
not r8b
or r8b, dl
and r8b, 1
mov byte [0x1405641d0], r8b
mov ecx, dword [0x140566ba8]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x140314479
mov r9, qword [rsp + 0x10]
lea rcx, [r9 - 1]
mov r8, r9
sub r8, rcx
imul r8, rcx
mov rdx, r9
sub rdx, r8
imul rdx, r8
mov r8, r9
movabs r9, 0x96bfff4b0edcfd89
movabs rcx, 0x937395e9b87cdb7f
sub r8, rcx
sub r8, rdx
add r8, rcx
imul r8, rdx
sub r8, rdx
mov qword [rsp + 0x68], rdx
imul r8, rdx
mov qword [rsp + 0x60], r8
movabs rcx, 0x687856a2f0eb448c
lea rdx, [rcx + r9]
movabs rcx, 0x52ce5ac833c31fee
add rdx, rcx
mov qword [rsp + 0x58], rdx
movabs rcx, 0x23d7c7c749ee5444
movabs rdx, 0x93a792585a7ab0b
add rdx, rcx
movabs rcx, 0x91566c8d430e8b34
add rdx, rcx
mov qword [rsp + 0x50], rdx
mov rcx, qword [rsp + 8]
add rcx, rbp
mov qword [rsp + 0x48], rcx
movabs rcx, 0xd84bfce2f598aa14
movabs rdx, 0x9304adb3e9bff193
lea r8, [rdx + rcx]
movabs rdx, 0xb1fb8b44f2c52483
add r8, rdx
sub r8, rcx
mov qword [rsp + 0x40], r8
movabs rcx, 0xb9ac8d0ab5e3ca90
movabs rdx, 0x46c0a91385291efd
add rdx, rcx
mov qword [rsp + 0x38], rdx
movabs rdx, 0x213f5c0c0d257a86
add rcx, rdx
mov qword [rsp + 0x30], rcx
movabs rcx, 0xb6e3b84ea8ae5a07
movabs rdx, 0x87e56301bab292ff
add rdx, rcx
mov qword [rsp + 0x28], rdx
movabs rdx, 0x5ef3af5187da74c1
add rcx, rdx
mov qword [rsp + 0x20], rcx
mov r10, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
shl r10, cl
mov r11, r10
shl r11, cl
mov r8, rax
mov ecx, eax
shl r8, cl
lea r14, [r8 + rdi]
sub r14, rax
sub r14, rdi
imul r14, rax
add r8, rsi
mov rcx, r14
sub rcx, r8
add rcx, rsi
mov rdi, r13
sub rdi, rcx
movabs rcx, 0x66793a5f53f4ce9f
add rdi, rcx
sub rdi, r13
sub rdi, rcx
sub rdi, r9
mov rcx, qword [rsp + 0x58]
add rcx, r14
add rdi, rcx
mov r8, qword [0x1405430d8]
mov rdx, rbx
mov rbx, rbp
mov rbp, r12
movabs r12, 0x52ce5ac833c31fee
sub r12, rdi
movabs rcx, 0x9304adb3e9bff193
lea rdi, [rcx + r8]
mov rcx, rdi
sub rcx, r15
movabs r9, 0x687856a2f0eb448c
add rcx, r9
add rcx, r15
add rcx, r14
add rcx, r12
movabs r9, 0x93a792585a7ab0b
sub rcx, r9
add rcx, qword [rsp + 0x50]
sub rcx, r14
movabs r9, 0x91566c8d430e8b34
sub rcx, r9
movabs r9, 0x23d7c7c749ee5444
sub rcx, r9
imul rcx, r14
movabs rsi, 0x8068de46799e68f2
mov r9, r15
sub rsi, rsi
sub rsi, rcx
mov r12, rsi
xor r12, r14
not rsi
not r14
and r14, rsi
or r14, r12
not r14
lea rsi, [r12 + r14*2]
mov r12, rbp
mov rbp, rbx
mov rbx, rdx
movabs r14, 0x8cb7fa01c47512ac
add rsi, r14
sub r14, rsi
add rcx, r12
add rcx, r14
sub rcx, r12
mov r14, qword [rsp + 0x48]
sub r14, rcx
sub r14, rbp
imul r14, rcx
shl r14, cl
sub r10, rdx
sub r10, r11
mov r11, r14
sub r11, rcx
imul r11, rcx
movabs rdx, 0x5042e7138007e90e
sub r11, r14
sub r11, rdx
add r11, rdx
mov ecx, r11d
shl r14, cl
add r10, rbx
movabs rdx, 0xbd23ee8d90f4fd29
lea rcx, [rdi + rdx]
sub rcx, r14
sub rcx, rdx
movabs rdx, 0x24d9006b3a2a8103
sub rcx, rdx
add r11, rdx
add r11, r14
add r11, rcx
mov ecx, r10d
shl r11, cl
mov rdx, qword [rsp + 0x40]
mov rcx, rdx
xor rcx, r8
and r8, rdx
lea r8, [rcx + r8*2]
movabs rcx, 0xb1fb8b44f2c52483
sub r8, rcx
movabs rdx, 0xbf70d87147c7b6e5
sub r8, rdx
sub r8, r11
mov rcx, r11
movabs r11, 0x93f14e61ff10a036
sub rcx, r11
sub rcx, r10
add rcx, r11
imul rcx, r10
add r8, rdx
movabs rdx, 0x2a5fa5668e046e06
mov r10, rdx
sub r10, r8
sub r10, rdx
movabs rdx, 0x3ced9ad01b410093
mov r8, rdx
sub r8, rcx
sub r8, rdx
mov r11, r10
xor r11, r8
and r8, r10
lea r10, [r11 + r8*2]
mov rdx, qword [rsp + 0x38]
add r10, rdx
add r10, rcx
movabs r8, 0x46c0a91385291efd
sub r8, r10
add r8, qword [rsp + 0x30]
movabs rdx, 0x213f5c0c0d257a86
sub r8, rdx
imul r8, rcx
mov r10, r8
shl r10, cl
mov rcx, qword [rsp + 0x28]
lea r11, [rcx + r8]
mov ecx, r10d
shl r8, cl
movabs rcx, 0x87e56301bab292ff
sub rcx, r11
add rcx, qword [rsp + 0x20]
movabs rdx, 0x5ef3af5187da74c1
sub rcx, rdx
mov r10, rcx
not r10
mov r11, r8
not r11
mov rsi, r10
and rsi, r8
mov r14, rcx
and r14, r11
or r14, rsi
movabs r9, 0x96bfff4b0edcfd89
xor rcx, r8
and r10, r11
or r10, rcx
not r10
lea rcx, [r14 + r10*2]
movabs rdx, 0x362af00b2bc16806
mov r10, r8
sub r10, rcx
add r10, rdx
sub r8, r10
mov r10, qword [rsp + 0x18]
add r8, rdx
xor r11, r8
and r11, r8
cmp r11, rdi
movabs rdi, 0x4beffb80187c3ccc
movabs rsi, 0xc0b72640cf3b68bd
setne cl
or cl, byte [0x140565ba8]
sub cl, byte [0x1405641d0]
and cl, 1
mov byte [0x1405641d0], cl
test r10, r10
je 0x140314170
jmp 0x140313fd9
mov rdx, qword [rsp]
mov eax, dword [rdx + 0x28]
cmp eax, dword [r10 + 0x28]
je 0x140313fca
jmp 0x140313d8f