Function at 0x140304370
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
mov eax, dword [0x140695394]
mov ecx, 0xbaee519c
add ecx, dword [0x14063dbd0]
cmp eax, ecx
nop word cs:[rax + rax]
test rdi, rdi
sets al
movzx ecx, byte [0x140693a68]
mov edx, dword [0x140695394]
cmp edx, 0x4a
jg 0x1403043b0
mov edx, ecx
xor dl, al
or al, cl
xor al, 1
or al, dl
mov ecx, eax
xor cl, 1
mov r8d, edx
xor r8b, cl
and cl, dl
and al, dl
xor r8b, 1
or r8b, al
xor r8b, 1
or al, cl
or al, r8b
test al, 1
jne 0x140304410
mov eax, dword [0x140695390]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x1403044c0
jmp 0x140304415
call fcn.1402f1e30
mov r15, qword [rsi]
mov rdx, r15
sub rdx, qword [rsi + 0x10]
mov rax, rdx
neg rax
mov rcx, rax
shr rcx, 1
movabs r8, 0xdcc69b9ccadf0a24
add r8, qword [0x14063dbd8]
xor r8, rcx
cmp rax, r8
seta al
movzx r8d, byte [0x140693d70]
mov r9d, r8d
xor r9b, al
or al, r8b
not al
or al, r9b
sub rcx, rdx
cmp rcx, rdi
cmovbe rcx, rdi
test r9b, 1
movabs rbx, 0x7fffffffffffffff
mov rdx, rbx
cmovne rdx, rcx
test al, 1
cmovne rdx, rcx
test r9b, 1
mov rcx, rdx
cmovne rcx, rbx
test al, 1
cmove rcx, rdx
test r9b, 1
cmove rbx, rcx
test al, 1
cmovne rbx, rcx
sub r15, qword [rsi + 8]
mov eax, dword [0x140695390]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
je 0x1403044d0
nop dword [rax + rax]
mov eax, dword [0x140695394]
cmp eax, 0x44
jge 0x1403044c0
jmp 0x140304415
cmp rbx, 0x1000
jb 0x14030456d
cmp rbx, 0xffffffffffffffd9
jae 0x140304659
mov rax, qword [0x14063dbd8]
movabs rcx, 0x5cc69b9ccadf0a4c
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rcx, [rdx + rax*2]
add rcx, rbx
mov edx, 0xe46d56de
mov r8d, 0xa9bf2341
mov r9d, 0x541f8c73
call fcn.1400a8810
mov rcx, qword [0x14063dbd8]
add rcx, rax
movabs rdx, 0x95f80528190ea5fa
add rdx, rcx
movabs rcx, 0x88ea51f94f26625a
xor rcx, rdx
movabs r8, 0x8ea51f94f26625a
and r8, rdx
lea rcx, [rcx + r8*2]
movabs r14, 0x3de4447b62aa01f8
add r14, rcx
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x14030462b
movabs rax, 0x5cc69b9ccadf0a25
add rax, qword [0x14063dbd8]
cmp rbx, rax
jne 0x14030458b
xor r14d, r14d
jmp 0x14030462b
lea rax, [fcn.140304370]
add eax, eax
add eax, 0x2c40
not eax
mov ecx, eax
neg ecx
mov r12d, ecx
xor r12d, eax
and r12d, ecx
or r12d, eax
nop dword [rax + rax]
mov rcx, rbx
mov edx, 0xe46d56de
mov r8d, 0xa9bf2341
mov r9d, 0x541f8c73
call fcn.1400a8810
cmp r12d, 0xffffffff
je 0x140304628
mov r9d, dword [0x14063dbd0]
lea edx, [r9 - 0x60a457b9]
lea eax, [r9 - 0x48308dc0]
mov ecx, eax
xor ecx, 0x30134245
and eax, 0x30134245
lea r8d, [rcx + rax*2]
add r8d, 0x7ccac025
add r9d, 0xf0ddddc
mov rcx, rbx
call fcn.1400a8810
mov eax, dword [0x14063dbd0]
mov ecx, eax
xor ecx, 0x83fcc582
and eax, 0x3fcc582
lea eax, [rcx + rax*2]
cmp eax, 0xc90e7419
jmp 0x1403045b0
mov r14, rax
lea r8, [rdi + r15]
neg r15
add r15, r14
mov rcx, r15
xor edx, edx
call fcn.140512320
mov r15, qword [0x14063d7b8]
mov eax, dword [0x140695390]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140304673
jmp 0x14030465e
call fcn.140084fb0
movsxd rax, dword [r15]
mov ecx, dword [0x140695390]
mov edx, ecx
not edx
imul edx, ecx
test dl, 1
je 0x140304678
mov eax, dword [r15]
jmp 0x14030465e
movabs rcx, 0x3e30bf6c0e25cc2b
xor rcx, rax
not rax
movabs rdx, 0x41cf4093f1da33d4
and rdx, rax
or rdx, rcx
not rdx
lea rax, [rcx + rdx*2]
movabs rcx, 0xc1cf4093f1da33d5
add r15, rcx
add r15, rax
mov eax, dword [0x140540220]
mov dword [rbp - 4], eax
movabs r12, 0xae2a42a4be1d7cc0
mov r13d, 0xbaee516b
nop dword [rax + rax]
mov rdx, qword [rsi]
mov rax, qword [rsi + 8]
sub rax, rdx
movabs rcx, 0x51d5bd5b41e28340
add rax, rcx
mov rcx, rax
xor rcx, r12
movabs r8, 0x2e2a42a4be1d7cc0
and rax, r8
lea r8, [rcx + rax*2]
mov rcx, r14
call fcn.140511c70
mov r8, qword [rsi]
mov ecx, dword [0x140695390]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14063dbd0]
add ecx, r13d
xor edx, edx
div ecx
test edx, edx
je 0x140304851
mov r9, qword [rsi + 8]
mov rcx, r9
imul rcx, r12
sub rcx, r9
movabs rax, 0xb9b5616d7fb57000
add rax, rcx
sub r9, rax
imul r9, rax
sub r9, rax
imul r9, rax
mov rax, r9
shl rax, cl
mov rdx, r9
mov ecx, eax
shl rdx, cl
mov rax, r9
mov ecx, edx
shl rax, cl
mov rdx, qword [rsi]
mov r10, r9
sub r10, rax
imul r10, rax
mov r8, r10
sub r8, r9
mov ecx, r8d
sub ecx, r10d
imul ecx, r10d
mov rax, r8
shl rax, cl
mov ecx, eax
shl r8, cl
add r8, rdx
mov ecx, edx
sub ecx, r8d
mov rax, r8
shl rax, cl
movabs rcx, 0x57c854364e97fec8
sub rcx, r8
mov r9, rcx
movabs r10, 0xa837abc9b1680138
xor r9, r10
movabs r10, 0x2837abc9b1680138
and rcx, r10
lea rcx, [r9 + rcx*2]
add rcx, rax
sub r8, rcx
imul r8, rcx
shl r8, cl
sub r8, rcx
imul r8, rcx
mov r9, r8
sub r9, rcx
add r9, r8
mov rax, qword [0x14063dbd8]
lea ecx, [rax - 0x1b]
shl r9, cl
sub rax, r9
movabs rcx, 0xaf0de4188fc86e5
add rax, rcx
sub r9, rax
imul r9, rax
mov r8, r9
mov ecx, eax
shl r8, cl
mov ecx, r8d
shl r9, cl
shl r9, cl
mov rax, r9
mov ecx, r8d
shl rax, cl
mov rcx, rax
not rcx
mov r8, r9
and r8, rcx
or rcx, r9
not rcx
or rcx, r8
and rax, r9
lea r8, [rcx + rax*2]
mov rcx, r14
call fcn.140511c70
jmp 0x1403046d0
test r8, r8
je 0x140304b58
lea rax, [fcn.140304370]
add eax, eax
add eax, 0x27c0
mov ecx, eax
not ecx
mov edx, 0xbaee5169
nop word cs:[rax + rax]
test ecx, eax
jne 0x1403048a6
mov r9d, dword [0x140695390]
lea r10d, [r9 + 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x14063dbd0]
add r9d, edx
cmp r10d, r9d
je 0x1403048b5
mov r9d, dword [0x140695394]
cmp r9d, 0x1d
jge 0x140304880
jmp 0x140304884
mov r11d, dword [rbp - 4]
nop dword [rax]
mov eax, dword [0x140695390]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140304904
mov ecx, dword [0x140695380]
lea eax, [rcx + 1]
mov dword [0x140695380], eax
mov edx, dword [0x140695390]
mov r9d, dword [0x14063dbd0]
neg r9d
add r9d, edx
add r9d, 0x53a54438
imul r9d, edx
test r9b, 1
je 0x14030496b
mov ecx, dword [0x140695380]
lea eax, [rcx - 1]
mov r9d, 1
sub r9d, ecx
add ecx, 0xfffffffe
and ecx, 1
mov edx, r9d
and edx, 0xfe
or edx, ecx
mov ecx, r9d
xor ecx, 0x7e
and ecx, r9d
lea ecx, [rdx + rcx*2]
mov edx, eax
shl edx, cl
mov ecx, edx
shl eax, cl
imul r9d, eax
mov edx, r9d
mov ecx, eax
shl edx, cl
mov eax, r9d
sub eax, edx
imul eax, edx
add eax, r9d
mov dword [0x140695380], eax
mov eax, dword [0x140695394]
cmp eax, 0x47
jge 0x1403048c0
jmp 0x1403048d1
mov edx, eax
and edx, ecx
not ecx
mov r9d, eax
not r9d
mov r10d, r9d
xor r10d, ecx
or r10d, edx
not r10d
xor ecx, eax
and ecx, eax
or ecx, r10d
not ecx
mov eax, r9d
xor eax, ecx
and eax, r9d
or eax, ecx
xor eax, 0xffffffff
je 0x14030499f
xor ecx, ecx
jmp 0x140304a13
mov r9d, 0xbaee5169
add r9d, dword [0x14063dbd0]
xor edx, edx
mov ecx, 0
cmp r9d, r11d
jge 0x140304a13
xor r9d, r9d
nop dword [rax + rax]
movsxd rdx, edx
movzx r10d, word [r15 + rdx]
mov ecx, r9d
xor ecx, r9d
xor ecx, r10d
and ecx, r10d
xor ecx, r9d
mov r9d, 0x4511ae95
sub r9d, dword [0x14063dbd0]
mov r10d, 0x8a116f74
sub r10d, edx
add edx, 0x75ee908b
xor edx, r10d
and edx, r9d
xor edx, r10d
and r10d, r9d
lea r9d, [rdx + r10*2]
mov edx, 0x8a116f74
sub edx, r9d
mov r9d, ecx
cmp edx, r11d
jl 0x1403049c0
mov edx, dword [0x140695390]
lea r9d, [rdx - 1]
imul r9d, edx
test r9b, 1
je 0x140304a55
lea rdx, [fcn.140304370]
lea r9d, [rdx + rdx]
add r9d, 0x2b80
not r9d
mov edx, r9d
and edx, 0xfffffffe
xor edx, r9d
nop word cs:[rax + rax]
cmp edx, 1
jne 0x140304a50
mov rdx, qword [rsi + 0x10]
sub rdx, r8
movabs r9, 0x5cc69b9ccadf1a24
add r9, qword [0x14063dbd8]
cmp rdx, r9
jbe 0x140304a8a
mov r9, qword [r8 - 8]
sub r8, r9
add r8, 0xfffffffffffffff8
cmp r8, 0x20
jae 0x140304ad1
add rdx, 0x27
mov r8, r9
mov r9d, dword [0x140695394]
mov r9d, 0xbaee5169
nop word [rax + rax]
mov r10d, dword [0x140695390]
lea r11d, [r10 - 1]
imul r11d, r10d
and r11d, 1
mov r10d, dword [0x14063dbd0]
add r10d, r9d
cmp r11d, r10d
jne 0x140304aa0
mov r9d, dword [0x140695394]
cmp r9d, 0xc
jg 0x140304ae0
jmp 0x140304ad6
call fcn.1404ca324
mov r9b, 1
test r9b, r9b
jne 0x140304aef
nop
mov r9d, dword [0x140695394]
cmp r9d, 0x31
jge 0x140304ae0
jmp 0x140304ad6
movzx r9d, word [0x140540224]
xor r10d, r10d
cmp eax, 1
sbb r10d, r10d
sub r9d, ecx
and r9d, r10d
nop word cs:[rax + rax]
movzx eax, byte [0x140693a68]
mov ecx, dword [0x140695394]
cmp ecx, 0x26
jle 0x140304b33
mov eax, dword [0x140695390]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jmp 0x140304b10
test r9w, r9w
setne cl
or al, cl
and al, 1
mov byte [0x140693a68], al
mov rcx, r8
mov r8d, 0xa082fb96
mov r9d, 0xb161029d
call fcn.1400a75d0
mov qword [rsi], r14
add rdi, r14
mov qword [rsi + 8], rdi
add rbx, r14
mov qword [rsi + 0x10], rbx
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret