Function at 0x140097c00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rdx
mov rdi, rcx
mov r14, qword [rdx + 0x28]
movzx ebp, byte [rdx + 0x30]
mov eax, dword [0x14021a5b8]
mov ecx, dword [0x14021a5bc]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
imul eax, ecx, 0x46c64f66
not eax
and eax, 0x68bbe6a6
cmp eax, 0x6ea7c1f7
jne 0x140097c53
movzx eax, byte [0x14022cb78]
lea r15, [rsi + 0x38]
nop word [rax + rax]
mov eax, dword [0x14021a5c0]
add eax, dword [0x14021a5c4]
and eax, 0x58448640
xor eax, 0x4c145d3e
movzx ecx, byte [0x14022cb78]
add eax, 0xb7bdcb9e
jae 0x140097c60
mov edx, 0x5f0
xor ecx, ecx
call fcn.140107940
test rax, rax
je 0x140098145
mov rbx, rax
mov byte [rsp + 0x27], bpl
mov eax, dword [0x14021a5d0]
or eax, dword [0x14021a5d4]
mov ecx, eax
not ecx
or ecx, 0x324a0b45
add eax, ecx
inc eax
or eax, 0x6f21812c
add eax, 0xfbf3375e
cmp eax, 0xd74ecec9
jbe 0x140097ce0
mov r8d, 0x5f0
mov rcx, rbx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
nop dword [rax]
mov eax, dword [0x14021a5d8]
mov ebp, dword [0x14021a5dc]
not eax
not ebp
or ebp, eax
mov eax, ebp
not eax
or eax, 0x9091010c
or ebp, 0x5081050
and ebp, eax
not ebp
or ebp, 0x6a66eea3
mov r8d, 0x5f0
mov rcx, rbx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
cmp ebp, 0x418acca1
je 0x140097ce0
mov qword [rsp + 0x28], r14
nop dword [rax + rax]
mov eax, dword [0x14021a5e0]
xor edx, edx
div dword [0x14021a5e4]
mov ecx, eax
xor ecx, 0x4800802c
xor eax, 0xfac192bf
and ecx, 0x4d34e82c
add ecx, ecx
sub ecx, eax
add ecx, 0x1670d44d
cmp ecx, 0xd2d6c815
ja 0x140097d30
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsi + 0x60]
movabs r14, 0x942f563d2f49a344
movabs r13, 0x12f848738be65ffa
movabs r8, 0x800000000000000
mov r9d, 0xa8aff0cb
mov eax, dword [0x14021a5e8]
mov edx, dword [0x14021a5ec]
add eax, edx
add eax, 0x340cab72
imul rax, rax, 0xa8b38bd
shr rax, 0x39
imul eax, eax, 0xe4f81800
cmp eax, 0x64383117
je 0x140097dfd
nop dword [rax + rax]
mov eax, dword [0x14021a5f0]
xor edx, edx
div dword [0x14021a5f4]
mov edx, eax
and edx, 0xdf8b777d
or eax, 0xdf8b777d
add eax, edx
add eax, 0xf686ebe8
or eax, 0x17f0e086
mov r10d, 1
lock xadd qword [0x14022cac0], r10
cmp eax, 0x147ca707
jne 0x140097e10
lock inc qword [0x14022cac0]
jmp 0x140097dc0
mov r12, r10
not r12
movabs rdx, 0x7465646279746573
mov rax, rdx
not rax
or rax, r10
or r12, rdx
not rax
not r12
or r12, rax
movabs rax, 0x6c7967656e657261
add rax, r12
movabs rdx, 0xa60c596fc19fead0
lea rsi, [rdx + r12]
rol r12, 0x10
mov rdx, rax
and rdx, r12
add rdx, rdx
add r12, rax
sub r12, rdx
movabs rax, 0xded7d4e2d7dedfc6
add rax, r12
movabs rdx, 0xe414a674f0de7325
mov r11, rdx
not r11
mov rbp, rsi
and rbp, rdx
mov rdx, rsi
not rdx
and rdx, r11
not rbp
not rdx
and rdx, rbp
rol r12, 0x15
rol rsi, 0x20
mov r11, rax
and r11, r10
add r11, r11
add r10, rax
sub r10, r11
mov r11, r12
and r11, rax
add r11, r11
add r12, rax
sub r12, r11
mov r11, r8
not r11
xor r11, r8
and r12, r11
xor r12, r8
movabs rbp, 0x5b44c3cd8359cc5f
add r10, rbp
add r10, rdx
sub r10, rbp
rol rdx, 0xd
add rsi, r12
mov rax, r10
not rax
mov rbp, rax
and rbp, rdx
not rbp
or rax, rdx
and rax, rbp
not rax
rol r12, 0x10
mov rdx, rsi
not rdx
or rdx, r12
not r12
or r12, rsi
and r12, rdx
rol r10, 0x20
not r12
mov rdx, rsi
and rdx, rax
or rsi, rax
add rsi, rdx
movabs rdx, 0x4e350b11283f04fc
add r10, rdx
add r10, r12
sub r10, rdx
rol rax, 0x11
mov rdx, rsi
and rdx, rax
add rdx, rdx
add rax, rsi
rol r12, 0x15
sub rax, rdx
xor r12, r10
rol rsi, 0x20
and r10, r11
xor r10, r8
movzx edx, sil
add rdx, rdx
neg rdx
add rdx, rsi
add rdx, 0xff
add r10, rax
mov r11, r12
and r11, rdx
or rdx, r12
rol rax, 0xd
add rdx, r11
mov r11, r10
xor r11, rax
not r11
and r11, rax
add r11, r11
sub rax, r11
add rax, r10
rol r12, 0x10
not r12
mov r11, r12
and r11, rdx
or r12, rdx
not r12
or r12, r11
nop word cs:[rax + rax]
mov r11d, dword [0x14021a5f8]
mov esi, dword [0x14021a5fc]
not esi
mov ebp, r11d
or ebp, esi
and esi, r11d
not esi
and esi, ebp
not esi
add esi, 0x20cff405
imul rsi, r9
shr rsi, 0x3f
imul r11d, esi, 0xd9f601a2
cmp r11d, 0x284367f
ja 0x140097fc0
rol r10, 0x20
add rdx, rax
add r10, r12
rol rax, 0x11
xor rax, rdx
rol r12, 0x15
mov r11, r14
not r11
xor r11, r14
and r12, r11
xor r12, r14
and r11, r10
xor r11, r14
xor r11, r12
rol rdx, 0x20
add r10, rax
add rdx, r11
rol rax, 0xd
mov rsi, rax
xor rsi, r10
not rsi
and rsi, r10
add rsi, rsi
mov r12, r10
sub r12, rsi
add r12, rax
rol r11, 0x10
rol r10, 0x20
xor r11, rdx
add rdx, r12
rol r12, 0x11
add r10, r11
xor r12, rdx
rol r11, 0x15
xor r11, r10
rol rdx, 0x20
mov rax, r12
and rax, r10
xor r10, r12
lea rax, [r10 + rax*2]
add rdx, r11
rol r12, 0xd
mov r10, r12
xor r10, rax
not r10
and r10, rax
add r10, r10
sub rax, r10
add rax, r12
rol r11, 0x10
mov r10, r13
not r10
xor r10, r13
and r11, r10
xor r11, r13
and r10, rdx
xor r10, r13
xor r10, r11
add rdx, rax
rol rax, 0x11
rol r10, 0x15
mov r11, rdx
rol r11, 0x20
not rax
mov rsi, r10
or rsi, rax
and rax, r10
not rax
and rax, rsi
xor rax, r11
not rax
mov r10, rax
and r10, rdx
add r10, r10
add rax, rdx
sub rax, r10
je 0x140097d90
mov edx, dword [0x14021a600]
mov r8d, dword [0x14021a604]
not edx
not r8d
and r8d, edx
not r8d
add r8d, 0x56e54c1c
xor r8d, 0x38782805
mov edx, 0xa099036b
imul rdx, r8
shr rdx, 0x3f
cmp edx, 0x27f6e9b9
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
movzx r11d, byte [rsp + 0x27]
jbe 0x14009817a
jmp 0x14009820b
mov eax, dword [0x14021a5c8]
or eax, dword [0x14021a5cc]
mov ecx, eax
and ecx, 0x48dffbb0
or eax, 0x48dffbb0
add eax, ecx
or eax, 0x2f1bb5a9
cmp eax, 0x28ff2f57
je 0x140098174
ud2
ud2
mov edx, dword [0x14021a608]
or edx, dword [0x14021a60c]
imul r8, rdx, 0xff76bcf
shr r8, 0x20
sub edx, r8d
shr edx, 1
add edx, r8d
shr edx, 0x1f
imul edx, edx, 0x54199d61
and edx, 0x678cd921
mov r8, qword [r9 + 0x58]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rdi + 0x128], xmm1
movups xmmword [rdi + 0x118], xmm0
mov qword [rdi + 0x138], r10
mov byte [rdi + 0x140], r11b
mov qword [rdi], 0
mov qword [rdi + 8], rbx
mov qword [rdi + 0x80], 0
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x100], rcx
mov qword [rdi + 0x108], rax
mov qword [rdi + 0x110], r8
cmp edx, 0x9b873862
jbe 0x14009826b
mov rdx, qword [r9 + 0x58]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rdi + 0x128], xmm1
movups xmmword [rdi + 0x118], xmm0
mov qword [rdi + 0x138], r10
mov byte [rdi + 0x140], r11b
mov qword [rdi], 0
mov qword [rdi + 8], rbx
mov qword [rdi + 0x80], 0
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x100], rcx
mov qword [rdi + 0x108], rax
mov qword [rdi + 0x110], rdx
jmp 0x14009817a
mov rax, qword [r9 + 0x10]
shl rax, 1
test rax, rax
je 0x1400982f0
mov eax, dword [0x14021a610]
xor edx, edx
div dword [0x14021a614]
nop word cs:[rax + rax]
mov eax, dword [0x14021a618]
xor edx, edx
div dword [0x14021a61c]
add eax, 0x2d129f77
mov ecx, eax
and ecx, 0x230e0e52
mov edx, ecx
not edx
and edx, 0xf75fd107
mov r8d, eax
and r8d, 0xe50
imul r8d, edx
and eax, 0x230e0002
or ecx, 0xf75fd107
imul ecx, eax
add ecx, r8d
cmp ecx, 0x19129f1
jb 0x140098290
mov r8, qword [r9 + 0x18]
mov rcx, qword [0x14022cb48]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov eax, dword [0x14021a620]
mov ecx, dword [0x14021a624]
mov edx, eax
and edx, ecx
add edx, edx
add eax, ecx
sub eax, edx
and eax, 0x52050006
imul eax, eax, 0x8c1a1309
cmp eax, 0x58f3c6f5
ja 0x1400982f0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret