Function at 0x140190780
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
vmovups xmmword [rsp + 0x300], xmm6
vmovups xmmword [rsp + 0x310], xmm8
vmovups xmmword [rsp + 0x320], xmm10
vmovups xmmword [rsp + 0x330], xmm12
vmovups xmmword [rsp + 0x340], xmm14
mov r9, qword [rcx + 8]
mov r13, qword [rcx + 0x18]
mov rsi, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov r10, qword [rcx + 0x30]
mov r11, qword [rcx + 0x38]
mov r12, qword [rcx + 0x10]
mov rbx, qword [rcx + 0x48]
mov qword [rsp + 0x3b0], r8
mov r8, qword [rcx]
mov rax, rdx
lea r14, [rsp + 0x80]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r10
mov qword [rsp + 0xb8], r11
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x108], r11
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x90], r12
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0x128], r9
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x148], rdi
mov qword [rsp + 0x150], r10
mov qword [rsp + 0x160], rcx
mov rcx, qword [rdx]
mov qword [rsp + 0x168], rbx
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x170], r8
mov qword [rsp + 0x178], r9
mov qword [rsp + 0x180], r8
mov r8, qword [rdx + 0x10]
mov qword [rsp + 0x188], r9
mov r9, qword [rdx + 0x18]
mov qword [rsp + 0x1a0], rsi
mov rsi, qword [rdx + 0x20]
mov qword [rsp + 0x1a8], rdi
mov rdi, qword [rdx + 0x28]
mov qword [rsp + 0x1b0], r10
mov r10, qword [rdx + 0x30]
mov qword [rsp + 0x138], r13
mov qword [rsp + 0x158], r11
mov qword [rsp + 0x198], r13
mov r13d, 0x20
mov qword [rsp + 0x1b8], r11
mov r11, qword [rdx + 0x38]
mov qword [rsp + 0x1c8], rbx
mov qword [rsp + 0x1e0], rsi
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x190], r12
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1d0], r8
mov qword [rsp + 0x1d8], r9
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x1f0], r10
mov rax, qword [rax + 0x40]
mov rdx, qword [rdx + 0x48]
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x2a0], rax
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2c0]
mov qword [rsp + 0x230], rsi
mov qword [rsp + 0x268], rbx
mov qword [rsp + 0x280], rsi
lea rsi, [rsp + 0x1c0]
mov qword [rsp + 0x2b8], rbx
mov qword [rsp + 0x2c8], rbx
xor ebx, ebx
mov qword [rsp + 0x1f8], r11
mov qword [rsp + 0x208], rdx
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x220], r8
mov qword [rsp + 0x228], r9
mov qword [rsp + 0x238], rdi
mov qword [rsp + 0x240], r10
mov qword [rsp + 0x248], r11
mov qword [rsp + 0x258], rdx
mov qword [rsp + 0x260], rcx
mov qword [rsp + 0x270], r8
mov qword [rsp + 0x278], r9
mov qword [rsp + 0x288], rdi
mov qword [rsp + 0x290], r10
mov qword [rsp + 0x298], r11
mov qword [rsp + 0x2a8], rdx
mov qword [rsp + 0x2b0], rcx
mov qword [rsp + 0x2c0], rcx
mov qword [rsp + 0x2d0], r8
mov qword [rsp + 0x2d8], r9
mov qword [rsp + 0x30], rax
jmp 0x140190abd
sub r13d, 1
je 0x140190c63
vzeroupper
mov r8, qword [rsp + 0x28]
lea rdx, [rsi + rbx]
lea rcx, [r14 + rbx]
mov r15d, 0x100
call sym.neoscrypt_blake2s.constprop.0
mov eax, dword [rsp + 0x2e0]
vmovdqu ymm3, ymmword [rsp + 0x2e0]
vpmovzxbw ymm2, xmmword [rsp + 0x2e0]
vextracti128 xmm0, ymm3, 1
vpmovzxbw ymm0, xmm0
vpmovzxwd ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovzxwd ymm0, xmm0
vpaddd ymm0, ymm1, ymm0
vpmovzxwd ymm1, xmm2
vextracti128 xmm2, ymm2, 1
vpmovzxwd ymm2, xmm2
vpaddd ymm1, ymm1, ymm2
vpaddd ymm0, ymm0, ymm1
vmovdqu xmm1, xmm0
vextracti128 xmm0, ymm0, 1
vpaddd xmm0, xmm1, xmm0
vpsrldq xmm1, xmm0, 8
vpaddd xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpaddd xmm0, xmm0, xmm1
vmovd edi, xmm0
movzx ebx, dil
lea r12, [rsi + rbx]
mov rbp, rbx
sub r15d, ebx
xor dword [r12], eax
mov eax, dword [rsp + 0x2e4]
xor dword [rsi + rbx + 4], eax
mov eax, dword [rsp + 0x2e8]
xor dword [rsi + rbx + 8], eax
mov eax, dword [rsp + 0x2ec]
xor dword [rsi + rbx + 0xc], eax
mov eax, dword [rsp + 0x2f0]
xor dword [rsi + rbx + 0x10], eax
mov eax, dword [rsp + 0x2f4]
xor dword [rsi + rbx + 0x14], eax
mov eax, dword [rsp + 0x2f8]
xor dword [rsi + rbx + 0x18], eax
mov eax, dword [rsp + 0x2fc]
xor dword [rsi + rbx + 0x1c], eax
test dil, 0xe0
jne 0x140190bd2
lea ecx, [rbx + 0x100]
add rcx, rsi
cmp ebx, 0x20
jbe 0x140190e69
mov r8d, 0x20
mov rdx, r12
vzeroupper
call sym.memmove
cmp r15d, 0x1f
ja 0x140190ab0
lea r10d, [rbp - 0xe0]
mov r11d, ebp
mov eax, r10d
and r11d, 3
shr eax, 2
je 0x140190c27
mov dword [rsp + 0x38], r11d
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
lea r8d, [rax*4]
mov dword [rsp + 0x3c], r10d
vzeroupper
call sym.memmove
mov r11d, dword [rsp + 0x38]
test r11d, r11d
je 0x140190ab0
mov r10d, dword [rsp + 0x3c]
mov eax, r10d
sub eax, r11d
cmp eax, r10d
jae 0x140190ab0
sub r11d, r10d
mov rdx, qword [rsp + 0x30]
lea rcx, [rsi + rax]
lea r8d, [rbp + r11 - 0xe1]
add rdx, rax
add r8, 1
vzeroupper
call sym.memmove
sub r13d, 1
jne 0x140190aba
cmp r15d, 0x100
jne 0x140190ee8
vmovdqu ymm5, ymmword [rsp + 0x1c0]
mov rax, qword [rsp + 0x3b0]
vpxor ymm0, ymm5, ymmword [rsp + 0x80]
vmovdqu ymm4, ymmword [rsp + 0x1e0]
vmovdqu ymm5, ymmword [rsp + 0x200]
vmovdqu ymm6, ymmword [rsp + 0x220]
vmovdqu ymmword [rsp + 0x1c0], ymm0
vmovq rcx, xmm0
vpextrq rbx, xmm0, 1
vpxor ymm0, ymm4, ymmword [rsp + 0xa0]
vmovdqu ymm4, ymmword [rsp + 0x240]
mov qword [rax], rcx
vmovdqu ymmword [rsp + 0x1e0], ymm0
vmovdqu xmm14, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0xc0]
vmovdqu ymm5, ymmword [rsp + 0x120]
mov qword [rax + 8], rbx
vmovdqu xmm12, xmm0
vmovdqu xmmword [rax + 0x20], xmm14
vmovdqu ymmword [rsp + 0x200], ymm0
vpxor ymm0, ymm6, ymmword [rsp + 0xe0]
vmovdqu ymmword [rsp + 0x220], ymm0
vmovdqu xmm10, xmm0
vpxor ymm0, ymm4, ymmword [rsp + 0x100]
vmovdqu ymm4, ymmword [rsp + 0x280]
vmovdqu ymmword [rsp + 0x240], ymm0
vmovdqu xmm8, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0x260]
vmovdqu ymm5, ymmword [rsp + 0x2a0]
vmovdqu ymmword [rsp + 0x260], ymm0
vmovdqu xmm6, xmm0
vpxor ymm0, ymm4, ymmword [rsp + 0x140]
vmovdqu ymmword [rsp + 0x280], ymm0
vmovdqu xmm4, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0x160]
vmovdqu xmm5, xmmword [rsp + 0x1d0]
vmovdqu xmmword [rax + 0x10], xmm5
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vmovdqu ymmword [rsp + 0x2a0], ymm0
vmovdqu xmmword [rax + 0x30], xmm5
vmovdqu xmmword [rax + 0x40], xmm12
vmovdqu xmm5, xmmword [rsp + 0x210]
vmovdqu xmmword [rax + 0xa0], xmm6
vmovdqu xmm6, xmmword [rsp + 0x270]
vmovdqu xmmword [rax + 0x50], xmm5
vmovdqu xmm5, xmmword [rsp + 0x230]
vmovdqu xmmword [rax + 0xb0], xmm6
vmovdqu xmm6, xmmword [rsp + 0x290]
vmovdqu xmmword [rax + 0x70], xmm5
vmovdqu xmm5, xmmword [rsp + 0x250]
vmovdqu xmmword [rax + 0xc0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x2b0]
vmovdqu xmmword [rax + 0x60], xmm10
vmovdqu xmmword [rax + 0x80], xmm8
vmovdqu xmmword [rax + 0x90], xmm5
vmovdqu xmmword [rax + 0xd0], xmm6
vmovdqu xmmword [rax + 0xe0], xmm0
vmovdqu xmmword [rax + 0xf0], xmm4
vzeroupper
vmovups xmm6, xmmword [rsp + 0x300]
vmovups xmm8, xmmword [rsp + 0x310]
vmovups xmm10, xmmword [rsp + 0x320]
vmovups xmm12, xmmword [rsp + 0x330]
vmovups xmm14, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r10d, 0x20
sub r10d, ebx
mov r11d, r10d
mov eax, r10d
and r11d, 3
shr eax, 2
je 0x140190ede
mov dword [rsp + 0x3c], r11d
lea r8d, [rax*4]
mov rdx, r12
mov dword [rsp + 0x38], r10d
vzeroupper
call sym.memmove
mov r11d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x38]
mov rcx, rax
test r11d, r11d
je 0x140190ab0
mov eax, r10d
sub eax, r11d
cmp eax, r10d
jae 0x140190ab0
mov r8d, r11d
lea rdx, [r12 + rax]
add rcx, rax
and r8d, 3
vzeroupper
call sym.memmove
jmp 0x140190ab0
test r11d, r11d
jne 0x140190eb4
jmp 0x140190ab0
mov ebx, r15d
mov ecx, r15d
and ebx, 3
shr ecx, 2
je 0x1401911e6
lea edx, [rcx - 1]
cmp edx, 2
jbe 0x140190f1a
lea r10, [rsp + 0x84]
mov r8, r12
sub r8, r10
cmp r8, 0x18
ja 0x140191231
lea r10d, [rcx*4]
xor edx, edx
mov eax, dword [r14 + rdx]
xor dword [r12 + rdx], eax
add rdx, 4
cmp rdx, r10
jne 0x140190f24
test ebx, ebx
jne 0x1401911e6
mov r9d, r15d
lea rdx, [rsp + 0x40]
lea rax, [r14 + r9]
mov r14d, ebp
shr r14d, 2
je 0x1401910d2
lea r8d, [r14 - 1]
cmp r8d, 2
jbe 0x14019120b
cmp r8d, 6
jbe 0x1401913d3
lea r8, [rdx + r9 + 0x40]
mov r13d, ebp
vmovdqu ymm6, ymmword [rsp + 0x1c0]
vpxor ymm0, ymm6, ymmword [r8]
shr r13d, 5
vmovdqu ymmword [rsp + 0x1c0], ymm0
cmp r13d, 1
je 0x140191056
vmovdqu ymm4, ymmword [rsp + 0x1e0]
vpxor ymm0, ymm4, ymmword [r8 + 0x20]
vmovdqu ymmword [rsp + 0x1e0], ymm0
cmp r13d, 2
je 0x140191056
vmovdqu ymm5, ymmword [rsp + 0x200]
vpxor ymm0, ymm5, ymmword [r8 + 0x40]
vmovdqu ymmword [rsp + 0x200], ymm0
cmp r13d, 3
je 0x140191056
vmovdqu ymm6, ymmword [rsp + 0x220]
vpxor ymm0, ymm6, ymmword [r8 + 0x60]
vmovdqu ymmword [rsp + 0x220], ymm0
cmp r13d, 4
je 0x140191056
vmovdqu ymm4, ymmword [rsp + 0x240]
vpxor ymm0, ymm4, ymmword [r8 + 0x80]
vmovdqu ymmword [rsp + 0x240], ymm0
cmp r13d, 5
je 0x140191056
vmovdqu ymm5, ymmword [rsp + 0x260]
vpxor ymm0, ymm5, ymmword [r8 + 0xa0]
vmovdqu ymmword [rsp + 0x260], ymm0
cmp r13d, 7
jne 0x140191056
vmovdqu ymm6, ymmword [r8 + 0xc0]
vpxor ymm0, ymm6, ymmword [rsp + 0x280]
vmovdqu ymmword [rsp + 0x280], ymm0
shl r13d, 3
cmp r14d, r13d
je 0x1401910d2
mov r8d, r14d
sub r8d, r13d
lea r10d, [r8 - 1]
cmp r10d, 2
jbe 0x1401910a5
lea r10d, [r13 + 0x60]
lea r11, [r9 + 0x300]
shl r10, 2
add r11, rsp
vmovdqu xmm0, xmmword [r10 + r11 - 0x400]
add rdx, r10
vpxor xmm0, xmm0, xmmword [rdx]
vmovdqu xmmword [rdx], xmm0
mov edx, r8d
and edx, 0xfffffffc
add r13d, edx
and r8d, 3
je 0x1401910d2
mov edx, r13d
mov r8d, dword [rax + rdx*4]
xor dword [rsi + rdx*4], r8d
lea edx, [r13 + 1]
cmp edx, r14d
jae 0x1401910d2
mov r8d, dword [rax + rdx*4]
xor dword [rsi + rdx*4], r8d
lea edx, [r13 + 2]
cmp edx, r14d
jae 0x1401910d2
mov r8d, dword [rax + rdx*4]
xor dword [rsi + rdx*4], r8d
and edi, 3
jne 0x1401911a1
test ecx, ecx
je 0x1401913b5
mov qword [rsp + 0x28], r9
lea eax, [rcx - 1]
mov rcx, qword [rsp + 0x3b0]
mov rdx, r12
lea r8, [rax*4 + 4]
vzeroupper
call sym.memcpy
test ebx, ebx
mov r9, qword [rsp + 0x28]
je 0x14019113f
mov eax, r15d
sub eax, ebx
cmp eax, r15d
jae 0x14019113f
mov rcx, qword [rsp + 0x3b0]
lea r8d, [rbx - 1]
lea rdx, [r12 + rax]
mov qword [rsp + 0x28], r9
add r8, 1
add rcx, rax
call sym.memcpy
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x3b0]
add rcx, r9
test r14d, r14d
je 0x140191166
lea eax, [r14 - 1]
mov rdx, rsi
lea r8, [rax*4 + 4]
call sym.memcpy
mov rcx, rax
test edi, edi
je 0x140190e28
mov eax, ebp
sub eax, edi
cmp eax, ebp
jae 0x140190e28
add rcx, rax
add rsi, rax
test edi, edi
je 0x140190e28
xor eax, eax
mov edx, eax
add eax, 1
movzx r8d, byte [rsi + rdx]
mov byte [rcx + rdx], r8b
cmp eax, edi
jb 0x14019118a
jmp 0x140190e28
mov edx, ebp
sub edx, edi
cmp edx, ebp
jae 0x1401911ba
movzx r8d, byte [rax + rdx]
xor byte [rsi + rdx], r8b
add rdx, 1
cmp edx, ebp
jb 0x1401911a9
test ecx, ecx
jne 0x1401910e3
test ebx, ebx
jne 0x1401913cb
mov rcx, qword [rsp + 0x3b0]
add rcx, r9
test r14d, r14d
je 0x140191401
vzeroupper
jmp 0x14019114f
mov edx, r15d
sub edx, ebx
cmp edx, r15d
jae 0x140190f3d
movzx eax, byte [r14 + rdx]
xor byte [r12 + rdx], al
add rdx, 1
cmp edx, r15d
jb 0x1401911f4
jmp 0x140190f3d
mov r10d, r14d
mov r8, rax
lea r11, [rdx + r10*4]
mov r10d, dword [r8]
xor dword [rdx + 0x180], r10d
add rdx, 4
add r8, 4
cmp r11, rdx
jne 0x140191215
jmp 0x1401910d2
cmp edx, 6
jbe 0x1401913db
vmovdqu ymm6, ymmword [r12]
mov edx, r15d
vpxor ymm0, ymm6, ymmword [rsp + 0x80]
shr edx, 5
vmovdqu ymmword [r12], ymm0
cmp edx, 1
je 0x140191317
vmovdqu ymm4, ymmword [r12 + 0x20]
vpxor ymm0, ymm4, ymmword [rsp + 0xa0]
vmovdqu ymmword [r12 + 0x20], ymm0
cmp edx, 2
je 0x140191317
vmovdqu ymm6, ymmword [r12 + 0x40]
vpxor ymm0, ymm6, ymmword [rsp + 0xc0]
vmovdqu ymmword [r12 + 0x40], ymm0
cmp edx, 3
je 0x140191317
vmovdqu ymm4, ymmword [r12 + 0x60]
vpxor ymm0, ymm4, ymmword [rsp + 0xe0]
vmovdqu ymmword [r12 + 0x60], ymm0
cmp edx, 4
je 0x140191317
vmovdqu ymm6, ymmword [r12 + 0x80]
vpxor ymm0, ymm6, ymmword [rsp + 0x100]
vmovdqu ymmword [r12 + 0x80], ymm0
cmp edx, 5
je 0x140191317
vmovdqu ymm4, ymmword [r12 + 0xa0]
vpxor ymm0, ymm4, ymmword [rsp + 0x120]
vmovdqu ymmword [r12 + 0xa0], ymm0
cmp edx, 7
jne 0x140191317
vmovdqu ymm6, ymmword [r12 + 0xc0]
vpxor ymm0, ymm6, ymmword [rsp + 0x140]
vmovdqu ymmword [r12 + 0xc0], ymm0
shl edx, 3
cmp ecx, edx
je 0x140190f35
mov r8d, ecx
sub r8d, edx
lea r10d, [r8 - 1]
cmp r10d, 2
jbe 0x140191365
mov r10d, edx
shl r10, 2
lea r11, [r12 + r10]
vmovdqu xmm4, xmmword [r11]
vpxor xmm0, xmm4, xmmword [rsp + r10 + 0x80]
mov r10d, r8d
and r10d, 0xfffffffc
add edx, r10d
and r8d, 3
vmovdqu xmmword [r11], xmm0
je 0x140190f35
mov r8d, edx
shl r8, 2
mov r10d, dword [rsp + r8 + 0x80]
xor dword [r12 + r8], r10d
lea r8d, [rdx + 1]
cmp r8d, ecx
jae 0x140190f35
shl r8, 2
add edx, 2
mov r10d, dword [rsp + r8 + 0x80]
xor dword [r12 + r8], r10d
cmp edx, ecx
jae 0x140190f35
shl rdx, 2
mov r8d, dword [rsp + rdx + 0x80]
xor dword [r12 + rdx], r8d
jmp 0x140190f35
test ebx, ebx
je 0x1401913e5
mov eax, r15d
sub eax, ebx
cmp eax, r15d
jae 0x1401913e5
vzeroupper
jmp 0x140191119
vzeroupper
jmp 0x14019110f
mov r8d, r14d
jmp 0x14019106f
mov r8d, ecx
xor edx, edx
jmp 0x140191332
mov rcx, qword [rsp + 0x3b0]
add rcx, r9
test r14d, r14d
jne 0x1401911de
vzeroupper
jmp 0x140190e28
vzeroupper
jmp 0x14019116e