Function at 0x1400bf590
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rdi, rdx
mov r14, qword [rcx + 0x18]
movzx r8d, word [r14 + 0x3d2]
nop word cs:[rax + rax]
mov eax, dword [0x141dd81b8]
or eax, dword [0x141dd81bc]
cmp eax, 0x888f9271
je 0x1400bf5c0
mov rsi, qword [rcx + 0x28]
movzx r13d, word [rsi + 0x3d2]
lea rbx, [rdi + r13]
cmp rbx, 0xc
jae 0x1400bf9e4
nop dword [rax]
mov eax, dword [0x141dd81c0]
and eax, dword [0x141dd81c4]
or eax, 0x3cb98b28
imul eax, eax, 0xa1f75227
or eax, 0x5fc67980
cmp eax, 0x151b6c8d
jb 0x1400bf5f0
nop word cs:[rax + rax]
mov eax, dword [0x141dd81c8]
add eax, dword [0x141dd81cc]
imul eax, eax, 0x3d1a5027
add eax, 0x29eee51e
or eax, 0x8dd1904
cmp eax, 0x194e5934
jb 0x1400bf620
mov r12, r8
sub r12, rdi
jb 0x1400bf9e4
mov qword [rsp + 0x38], rcx
nop word cs:[rax + rax]
mov eax, dword [0x141dd81d0]
mov ecx, dword [0x141dd81d4]
add eax, ecx
add eax, 0xfd40bbf2
imul rax, rax, 0xc122f39
shr rax, 0x3b
imul eax, eax, 0x8fd2f192
cmp eax, 0x8ea1431b
je 0x1400bf660
mov eax, dword [0x141dd81d8]
imul eax, dword [0x141dd81dc]
or eax, 0x8b41f181
xor eax, 0x5af114e2
imul eax, eax, 0x51b46bae
cmp eax, 0x81abeca6
jne 0x1400bf6fc
mov word [r14 + 0x3d2], r12w
mov word [rsi + 0x3d2], bx
lea rdx, [rsi + 0x168]
imul rax, rdi, 0x38
lea rcx, [rsi + rax]
add rcx, 0x168
mov r15, r8
imul r8, r13, 0x38
call sub.VCRUNTIME140.dll_memmove
mov rcx, rdi
shl rcx, 5
add rcx, rsi
mov r8, r13
shl r8, 5
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov r8, r15
lea r15, [rsi + 0x168]
imul rax, rdi, 0x38
add rax, rsi
add rax, 0x168
mov qword [rsp + 0x58], rax
imul rax, r13, 0x38
mov qword [rsp + 0x50], rax
mov rax, r13
mov rbp, rdi
shl rbp, 5
add rbp, rsi
mov r13, rbx
mov qword [rsp + 0x20], rax
mov rbx, rax
shl rbx, 5
lea rax, [r12 + 1]
mov qword [rsp + 0x30], rax
sub r8, rax
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x28], rdi
lea rax, [rdi - 1]
mov qword [rsp + 0x40], rax
nop word [rax + rax]
mov eax, dword [0x141dd81e0]
and eax, dword [0x141dd81e4]
imul edi, eax, 0xd43d2850
mov word [r14 + 0x3d2], r12w
mov word [rsi + 0x3d2], r13w
mov rcx, qword [rsp + 0x58]
mov rdx, r15
mov r8, qword [rsp + 0x50]
call sub.VCRUNTIME140.dll_memmove
mov rcx, rbp
mov rdx, rsi
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
cmp edi, 0x5fe3fddc
je 0x1400bf760
mov rbx, qword [rsp + 0x48]
cmp rbx, qword [rsp + 0x40]
jne 0x1400bf9b6
mov rbp, qword [rsp + 0x30]
imul rax, rbp, 0x38
mov rdi, r14
mov r14, r12
lea rdx, [rdi + rax]
add rdx, 0x168
imul r12, rbx, 0x38
mov rcx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rbp
shl rdx, 5
add rdx, rdi
shl rbx, 5
mov rcx, rsi
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
imul rax, r14, 0x38
shl r14, 5
movups xmm0, xmmword [rdi + r14]
movups xmm1, xmmword [rdi + r14 + 0x10]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
mov r10, qword [rsp + 0x38]
mov rcx, qword [r10]
mov rdx, qword [r10 + 0x10]
imul r8, rdx, 0x38
shl rdx, 5
mov r9, qword [rcx + r8 + 0x198]
mov qword [rsp + 0x90], r9
movups xmm0, xmmword [rcx + r8 + 0x168]
movups xmm1, xmmword [rcx + r8 + 0x178]
movups xmm2, xmmword [rcx + r8 + 0x188]
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov r9, qword [rdi + rax + 0x198]
movups xmm0, xmmword [rdi + rax + 0x168]
movups xmm1, xmmword [rdi + rax + 0x178]
movups xmm2, xmmword [rdi + rax + 0x188]
movups xmmword [rcx + r8 + 0x168], xmm0
mov qword [rcx + r8 + 0x198], r9
movups xmmword [rcx + r8 + 0x188], xmm2
movups xmmword [rcx + r8 + 0x178], xmm1
movups xmm0, xmmword [rcx + rdx]
movups xmm1, xmmword [rcx + rdx + 0x10]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx], xmm0
mov rax, qword [rsp + 0x90]
mov qword [r15 + r12 + 0x30], rax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movups xmmword [r15 + r12 + 0x20], xmm2
movups xmmword [r15 + r12 + 0x10], xmm1
movups xmmword [r15 + r12], xmm0
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movups xmmword [rsi + rbx + 0x10], xmm1
movups xmmword [rsi + rbx], xmm0
cmp qword [r10 + 0x20], 0
mov rax, qword [r10 + 0x30]
je 0x1400bf999
nop dword [rax]
mov ecx, dword [0x141dd81f0]
imul ecx, dword [0x141dd81f4]
add ecx, 0x6d519a8
and ecx, 0x2dc23fa2
add ecx, 0x5ca2af85
cmp ecx, 0xf92fb3d7
ja 0x1400bf940
test rax, rax
mov r15, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
je 0x1400bf9a2
mov eax, dword [0x141dd8210]
imul eax, dword [0x141dd8214]
imul eax, eax, 0x2207a46
cmp eax, 0x846a1e5b
jne 0x1400bfadc
jmp 0x1400bfb04
test rax, rax
je 0x1400bfa91
ud2
ud2
ud2
test rcx, rcx
je 0x1400bfa91
xor edx, edx
jmp 0x1400bfa0f
inc rax
inc rdx
dec rcx
je 0x1400bfa91
mov r8d, dword [0x141dd81f8]
and r8d, dword [0x141dd81fc]
add r8d, 0x531adb25
and r8d, 0x7f114290
add r8d, 0x6961d23d
cmp r8d, 0x77a8555f
jb 0x1400bfa7c
nop dword [rax + rax]
mov r8d, dword [0x141dd8200]
sub r8d, dword [0x141dd8204]
mov r9, qword [rsi + rax*8 + 0x3d8]
mov qword [r9 + 0x160], rsi
mov word [r9 + 0x3d0], ax
or r8d, 0x80001800
and r8d, 0xa1101800
cmp r8d, 0x52074d00
jae 0x1400bfa00
mov r8, qword [rbx + rax*8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], ax
jmp 0x1400bfa40
mov eax, 0xca94bad3
nop word cs:[rax + rax]
mov ecx, dword [0x141dd8208]
and ecx, dword [0x141dd820c]
imul rcx, rax
shr rcx, 0x3e
xor ecx, 0x85766009
or ecx, 0x58898f72
cmp ecx, 0x55f1f591
jb 0x1400bfaa0
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rbx, [rsi + 0x3d8]
lea rcx, [rsi + r15*8]
add rcx, 0x3d8
lea r8, [r14*8 + 8]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
xor eax, eax
test al, al
je 0x1400bfb25
lea rdx, [rsi + 0x3d8]
lea rcx, [rsi + r15*8]
add rcx, 0x3d8
lea r8, [r14*8 + 8]
call sub.VCRUNTIME140.dll_memmove
jmp 0x1400bfadc
mov eax, dword [0x141dd8218]
imul eax, dword [0x141dd821c]
lea r14, [rdi + rbp*8]
add r14, 0x3d8
or eax, 0xf7ffeff7
add eax, 0x67884d40
cmp eax, 0x1704bd52
jae 0x1400bfb61
lea r8, [r15*8]
mov rcx, rbx
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
shl r15, 3
nop word cs:[rax + rax]
mov eax, dword [0x141dd8220]
add eax, dword [0x141dd8224]
imul eax, eax, 0xdf429107
imul rax, rax, 0x9efa71b
shr rax, 0x36
imul edi, eax, 0x5a2382bc
mov rcx, rbx
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
cmp edi, 0xf10cf06c
ja 0x1400bfb70
lea r8, [r13 + 1]
mov ecx, r8d
and ecx, 3
cmp r13, 3
jae 0x1400bfbc0
xor eax, eax
jmp 0x1400bf9e6
mov eax, dword [0x141dd8228]
xor edx, edx
div dword [0x141dd822c]
and r8, 0xfffffffffffffffc
nop word cs:[rax + rax]
mov eax, dword [0x141dd8230]
add eax, dword [0x141dd8234]
or eax, 0x70964893
and eax, 0x70b6d99b
cmp eax, 0x9b03233c
ja 0x1400bfbe0
nop dword [rax]
mov eax, dword [0x141dd8238]
sub eax, dword [0x141dd823c]
add eax, 0x237c25c0
xor eax, 0x7f817d92
add eax, 0x49446a02
cmp eax, 0x13aa0a77
jb 0x1400bfc00
xor edx, edx
mov r9d, 0x992fdded
xor r10d, r10d
jmp 0x1400bfc3c
inc r10
cmp r10, r8
je 0x1400bfd4d
mov rax, r10
mov r10d, dword [0x141dd8240]
add r10d, dword [0x141dd8244]
imul r10, r9
shr r10, 0x3f
or r10d, 0x172603aa
xor r10d, 0x1224bd27
cmp r10d, 0x971deeee
ja 0x1400bfce0
nop dword [rax]
mov r10, qword [rsi + rax*8 + 0x3d8]
mov qword [r10 + 0x160], rsi
mov word [r10 + 0x3d0], ax
mov r10, qword [rsi + rax*8 + 0x3e0]
mov qword [r10 + 0x160], rsi
lea r11d, [rax + 1]
mov word [r10 + 0x3d0], r11w
mov r10, qword [rsi + rax*8 + 0x3e8]
mov qword [r10 + 0x160], rsi
lea r11d, [rax + 2]
mov word [r10 + 0x3d0], r11w
lea r10, [rax + 3]
mov r11, qword [rsi + rax*8 + 0x3f0]
mov qword [r11 + 0x160], rsi
mov word [r11 + 0x3d0], r10w
test dl, dl
je 0x1400bfc30
mov r10, qword [rsi + rax*8 + 0x3d8]
mov qword [r10 + 0x160], rsi
mov word [r10 + 0x3d0], ax
mov r10, qword [rsi + rax*8 + 0x3e0]
mov qword [r10 + 0x160], rsi
lea r11d, [rax + 1]
mov word [r10 + 0x3d0], r11w
mov r10, qword [rsi + rax*8 + 0x3e8]
mov qword [r10 + 0x160], rsi
lea r11d, [rax + 2]
mov word [r10 + 0x3d0], r11w
mov r10, qword [rsi + rax*8 + 0x3f0]
mov qword [r10 + 0x160], rsi
lea r11d, [rax + 3]
mov word [r10 + 0x3d0], r11w
jmp 0x1400bfc70
add rax, 4
jmp 0x1400bf9e6