Function at 0x180020d80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7e0]
sub rsp, 0x8e0
mov rax, qword [0x180080a28]
xor rax, rsp
mov qword [rbp + 0x7d0], rax
imul esi, edx, 0xbac
mov r15, r8
mov qword [rsp + 0x40], r9
mov eax, edx
mov qword [rsp + 0x78], r8
mov dword [rbp - 0x70], edx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x58], edx
mov dword [rbp - 0x6c], esi
cmp edx, esi
ja 0x1800215ee
mov r14, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x54]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x78]
mov r12, qword [rsp + 0x68]
cmp eax, 0x9d37
ja 0x1800211e3
je 0x1800211c6
cmp eax, 0xfa
ja 0x180020f9e
je 0x180020f47
sub eax, 1
je 0x1800215a1
sub eax, 0xd
je 0x180020e7a
sub eax, 0x80
je 0x180020e6c
cmp eax, 0x63
jne 0x18002157e
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [r15 + rax], 0
jne 0x180020e40
inc rax
lea rcx, [rbp - 0x80]
mov edx, 0x3d
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x80], rax
call fcn.180031360
mov qword [rbp - 0x40], rax
jmp 0x180021579
mov ebx, dword [r15]
add ebx, ebx
mov dword [rsp + 0x50], ebx
jmp 0x18002157e
mov eax, dword [rcx]
cmp dword [r15], eax
jle 0x180020ed2
mov ebx, 0x58
mov eax, ebx
sub eax, 0x58
je 0x180020e99
cmp eax, 1
jne 0x180020ec6
mov qword [rsp + 0x70], rcx
jmp 0x180020ec6
xor r9d, r9d
mov dword [rsp + 0x20], 0x21
xor r8d, r8d
lea rcx, [rbp - 0x68]
mov rdx, r15
call fcn.18003e850
test eax, eax
jne 0x180021000
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx]
mov dword [rsp + 0x48], eax
inc ebx
cmp ebx, 0x5a
jb 0x180020e86
jmp 0x180021579
mov ebx, 0xa4
mov eax, ebx
sub eax, 0xa3
je 0x180020f33
cmp eax, 1
jne 0x180020f38
mov rdx, rcx
mov dword [rsp + 0x20], 0x21
lea rcx, [rbp - 0x68]
xor r9d, r9d
xor r8d, r8d
call fcn.18003e850
test eax, eax
je 0x180020f25
mov edx, 0x40
mov ecx, edx
sub ecx, 0x40
je 0x180020f1a
cmp ecx, 1
je 0x1800215ee
jmp 0x180020f1e
mov dword [rsp + 0x38], eax
inc edx
cmp edx, 0x42
jb 0x180020f08
mov eax, dword [r15]
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x48], eax
jmp 0x180020f38
mov qword [rsp + 0x70], r15
dec ebx
cmp ebx, 0xa2
ja 0x180020ed7
jmp 0x180021579
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call fcn.180020d80
test al, al
jne 0x180020f86
mov eax, 0x64
xor ecx, ecx
cmp eax, 0x64
je 0x180020f75
cmp eax, 0xdac
je 0x1800215ee
jmp 0x180020f7a
mov qword [rsp + 0x38], rcx
add eax, 0xd48
cmp eax, 0x1a90
jbe 0x180020f63
mov rdx, qword [rsp + 0x60]
mov rcx, qword [r15]
call qword [0x180080b28]
mov qword [rsp + 0x38], rax
jmp 0x180021579
cmp eax, 0x922
je 0x18002106e
cmp eax, 0x1236
je 0x180021049
cmp eax, 0x1b4a
je 0x180021009
cmp eax, 0x5ca2
jne 0x18002157e
mov ebx, dword [rsp + 0x50]
cmp dword [rcx + 4], ebx
jge 0x18002157e
xor r9d, r9d
mov dword [rbp - 0x80], ebx
lea rax, [rbp - 0x80]
mov r8, rcx
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x5f]
call fcn.18004c460
test eax, eax
je 0x180021579
nop dword [rax + rax]
mov dword [rsp + 0x38], eax
jmp 0x1800215ee
mov eax, 0x7c
nop
cmp eax, 0x7c
je 0x1800215e6
add eax, 0x1e84
cmp eax, 0x1e84
jbe 0x180021010
mov r8, rcx
mov dword [rsp + 0x20], 0x8e
xor ecx, ecx
xor r9d, r9d
xor edx, edx
call fcn.180037c30
mov dword [rsp + 0x38], 0
jmp 0x180021579
mov r8d, 0xa3
lea rdx, [rbp - 0x68]
mov rcx, r9
call fcn.180045070
lea rdx, [rbp - 0x68]
mov ecx, 0x32
call fcn.18003ef60
jmp 0x180021579
mov ebx, dword [rsp + 0x48]
xor edx, edx
test ebx, ebx
jle 0x180021173
cmp ebx, 0x10
jb 0x180021173
mov r8, qword [rbp - 0x58]
lea eax, [rbx - 1]
mov r15, qword [rsp + 0x70]
mov r10, qword [r15 + 0x10]
lea r9, [r15 + 0x10]
movsxd rcx, eax
lea rax, [r10 + rcx*4]
lea r11, [r8 + rcx*4]
cmp r8, rax
ja 0x1800210b2
cmp r11, r10
jae 0x18002117c
cmp r8, r9
ja 0x1800210c0
cmp r11, r9
jae 0x18002117c
mov ecx, ebx
and ecx, 0x8000000f
jge 0x1800210d1
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, ebx
mov r8, 0xfffffffffffffff0
sub eax, ecx
mov r11d, reloc.SHELL32.dll_ILFindLastID
movsxd r15, eax
mov rbx, 0xffffffffffffffe0
mov rax, qword [rbp - 0x58]
mov r9, rax
sub r8, rax
neg r9
sub r11, rax
sub rbx, rax
lea rcx, [rax + 0x20]
movdqu xmm0, xmmword [rcx - 0x20]
lea rax, [rbx + rcx]
add rdx, 0x10
movdqu xmm1, xmmword [rax + r10]
lea rax, [r8 + rcx]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmm1, xmmword [rax + r10]
lea rax, [r9 + rcx]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x10], xmm1
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rax + r10]
lea rax, [r11 + rcx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x40], xmm1
movdqu xmm0, xmmword [rcx - 0x30]
movdqu xmm1, xmmword [rax + r10]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rdx, r15
jl 0x180021103
mov ebx, dword [rsp + 0x48]
mov r15, qword [rsp + 0x70]
mov r8, qword [rbp - 0x58]
movsxd r9, ebx
cmp rdx, r9
jge 0x1800211a9
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r15 + 0x10]
mov ecx, dword [rax + rdx*4]
xor dword [r8 + rdx*4], ecx
inc rdx
cmp rdx, r9
jge 0x1800211a9
mov r8, qword [rbp - 0x58]
jmp 0x180021190
xor r9d, r9d
mov dword [rsp + 0x20], 0x8e
lea r8, [rbp - 0x68]
xor edx, edx
xor ecx, ecx
call fcn.180037c30
jmp 0x180021579
mov rbx, qword [rbp - 0x40]
mov rdx, r15
mov r8, qword [rbp - 0x48]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x38], rbx
jmp 0x180021579
cmp eax, 0x170de
ja 0x1800213d0
je 0x1800213c6
cmp eax, 0xa316
je 0x1800215ee
cmp eax, 0xb8b6
je 0x1800213b9
cmp eax, 0x114ca
je 0x180021221
cmp eax, 0x1397d
je 0x1800215ee
jmp 0x18002157e
mov ebx, dword [rsp + 0x50]
xor edx, edx
mov dword [rsp + 0x30], edx
test ebx, ebx
jle 0x18002157e
mov r12d, dword [rbp - 0x78]
lea r9, [rbp - 0x30]
nop dword [rax + rax]
mov eax, edx
mov r8d, 0xd7
shr rax, 1
mov r10d, edx
lea r11, [rax*4]
nop word [rax + rax]
cmp r8d, 0x231db
ja 0x180021330
je 0x1800212f4
cmp r8d, 0xd7
je 0x1800212e0
cmp r8d, 0x8d18
je 0x1800212d1
cmp r8d, 0x11959
je 0x1800212bf
cmp r8d, 0x1a59a
jne 0x180021380
mov rax, qword [r15 + 0x10]
mov r13d, dword [r15]
sub r13d, dword [rsp + 0x4c]
movsxd rcx, r12d
lea r14, [rax + rcx*4]
lea eax, [r12 + 1]
cmp r13d, eax
cmovge r13d, eax
jmp 0x180021380
movsxd rcx, dword [rsp + 0x4c]
mov rax, qword [r15 + 0x10]
lea rsi, [rax + rcx*4]
jmp 0x180021380
mov eax, r10d
sub eax, r12d
mov dword [rsp + 0x4c], eax
jmp 0x180021380
mov r12d, dword [r15]
xor edi, edi
dec r12d
cmp r12d, edx
cmovge r12d, edx
jmp 0x180021380
mov eax, r12d
sub eax, dword [rsp + 0x4c]
inc eax
sar eax, 1
cmp r13d, eax
cmovl eax, r13d
mov r13d, eax
test eax, eax
jle 0x180021380
mov eax, r13d
mov edx, dword [rsi]
add rsi, 4
mov ecx, dword [r14]
sub r14, 4
imul rdx, rcx
add rdi, rdx
sub rax, 1
jne 0x180021310
mov edx, dword [rsp + 0x30]
jmp 0x180021380
cmp r8d, 0x2be1c
je 0x180021364
cmp r8d, 0x34a5d
je 0x180021358
cmp r8d, 0x3d69e
jne 0x180021380
mov rax, rdi
shr rax, 0x1c
mov qword [rbp - 0x50], rax
jmp 0x180021380
mov eax, edi
and eax, 0xfffffff
mov dword [r9], eax
jmp 0x180021380
mov rax, qword [rbp - 0x50]
lea rdi, [rax + rdi*2]
test dl, 1
jne 0x180021380
mov rax, qword [r15 + 0x10]
mov ecx, dword [rax + r11]
imul rcx, rcx
add rdi, rcx
add r8d, 0x8c41
cmp r8d, 0x46208
jbe 0x180021260
inc edx
mov dword [rbp - 0x78], r12d
add r9, 4
mov dword [rsp + 0x54], r13d
mov dword [rsp + 0x30], edx
cmp edx, ebx
jl 0x180021240
mov r12, qword [rsp + 0x68]
jmp 0x180021579
mov qword [rbp - 0x50], 0
jmp 0x18002157e
mov eax, dword [rcx]
mov dword [rbp - 0x74], eax
jmp 0x18002157e
cmp eax, 0x1ccf2
je 0x1800213f2
cmp eax, 0x22906
je 0x180021025
cmp eax, 0x2851a
je 0x1800215ee
jmp 0x18002157e
mov eax, dword [r15]
mov r15d, 0xe9
mov r13d, dword [rbp - 0x74]
add eax, eax
mov dword [rcx], eax
nop dword [rax]
nop word [rax + rax]
mov eax, r15d
sub eax, 0xe7
je 0x18002152b
sub eax, 1
je 0x180021435
cmp eax, 1
jne 0x18002155f
mov r12, qword [rcx + 0x10]
jmp 0x18002155f
movsxd rbx, dword [rsp + 0x50]
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x30], r9d
test ebx, ebx
jle 0x1800214f9
cmp ebx, 0x10
jb 0x1800214f9
lea eax, [rbx - 1]
mov dword [rsp + 0x30], r9d
movsxd rcx, eax
lea rax, [rbp - 0x30]
lea rax, [rax + rcx*4]
lea r8, [r12 + rcx*4]
cmp r12, rax
ja 0x18002147e
lea rax, [rbp - 0x30]
cmp r8, rax
jae 0x1800214f9
mov ecx, ebx
and ecx, 0x8000000f
jge 0x18002148f
dec ecx
or ecx, 0xfffffff0
inc ecx
movdqa xmm1, xmmword [0x18007b800]
mov eax, ebx
sub eax, ecx
movsxd rcx, eax
nop
movdqu xmm0, xmmword [rbp + rdx*4 - 0x30]
add r9d, 0x10
pand xmm0, xmm1
movdqu xmmword [r12], xmm0
movdqu xmm0, xmmword [rbp + rdx*4 - 0x20]
pand xmm0, xmm1
movdqu xmmword [r12 + 0x10], xmm0
movdqu xmm0, xmmword [rbp + rdx*4 - 0x10]
pand xmm0, xmm1
movdqu xmmword [r12 + 0x20], xmm0
movdqu xmm0, xmmword [rbp + rdx*4]
add rdx, 0x10
pand xmm0, xmm1
movdqu xmmword [r12 + 0x30], xmm0
add r12, 0x40
cmp rdx, rcx
jl 0x1800214a0
mov dword [rsp + 0x30], r9d
cmp rdx, rbx
jge 0x18002155a
mov eax, ebx
sub eax, edx
add r9d, eax
mov dword [rsp + 0x30], r9d
nop word [rax + rax]
mov eax, dword [rbp + rdx*4 - 0x30]
inc rdx
and eax, 0xfffffff
mov dword [r12], eax
add r12, 4
cmp rdx, rbx
jl 0x180021510
jmp 0x18002155a
mov edx, dword [rsp + 0x30]
cmp edx, r13d
jge 0x18002155f
mov eax, r13d
mov rcx, r12
sub eax, edx
add edx, eax
movsxd rbx, eax
mov dword [rsp + 0x30], edx
xor edx, edx
shl rbx, 2
mov r8, rbx
and r8, 0xfffffffffffffffc
call sub.VCRUNTIME140.dll_memset
add r12, rbx
mov rcx, qword [rsp + 0x60]
dec r15d
cmp r15d, 0xe6
ja 0x180021410
mov r13d, dword [rsp + 0x54]
mov qword [rsp + 0x68], r12
mov r9, qword [rsp + 0x40]
imul eax, dword [rbp - 0x70], 0xa6
add dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
cmp eax, dword [rbp - 0x6c]
ja 0x1800215ee
mov r15, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
jmp 0x180020df5
mov rcx, qword [0x180080b28]
mov eax, 0x92
mov rdx, qword [0x180080b20]
cmp eax, 0x92
je 0x1800215c4
cmp eax, 0x12b
je 0x1800215ee
jmp 0x1800215d8
test rcx, rcx
je 0x1800215d3
mov byte [rsp + 0x38], 1
test rdx, rdx
jne 0x1800215d8
mov byte [rsp + 0x38], 0
add eax, 0x99
cmp eax, 0x1c4
jb 0x1800215b4
jmp 0x1800215ee
mov dword [rsp + 0x38], 0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rbp + 0x7d0]
xor rcx, rsp
call fcn.180072740
mov rbx, qword [rsp + 0x928]
add rsp, 0x8e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret