Function at 0x7c0017e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x90
lea rbp, [rsp + 0x80]
mov eax, 0x2f92
mov r9d, eax
mov qword [rbp + 8], 0x58fe
mov dword [rbp + 4], 0x11a6
mov r10, qword [rbp - 0x28]
mov r11, qword [rbp + 8]
add r11, 0xffffffffffffe4dd
mov qword [rbp - 0x28], r11
mov qword [rbp - 0x30], 0x2ed8
mov eax, dword [rbp - 0x3c]
mov esi, eax
xor esi, esi
mov dword [rbp - 0x3c], esi
mov qword [rbp - 0x60], rcx
mov rcx, r9
mov r9, r10
shl r9, cl
mov esi, dword [rbp - 4]
mov qword [rbp - 0x28], r9
mov edi, esi
and edi, 0
xor esi, esi
mov dword [rbp - 4], 0x6363
mov r9, r10
add r9, r9
mov qword [rbp - 0x28], r9
cmp edi, esi
mov qword [rbp - 0x68], rdx
mov dword [rbp - 0x6c], r8d
mov qword [rbp - 0x78], r10
mov dword [rbp - 0x7c], eax
jne 0x7c001993
mov eax, dword [rbp + 4]
add eax, 0x1cf
mov dword [rbp - 0x50], eax
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x40], eax
cmp dword [rbp - 0x40], 0xf7d
jb 0x7c0018f1
mov eax, 0x548b
mov ecx, dword [rbp + 4]
xor ecx, 0x6923
and ecx, dword [rbp - 0x50]
mov edx, dword [rbp - 0x6c]
mov dword [rbp - 0x80], ecx
mov ecx, edx
mov r8d, dword [rbp - 0x7c]
shl r8d, cl
mov dword [rbp - 0x3c], r8d
mov r8d, dword [rbp - 0x7c]
and edx, r8d
mov dword [rbp - 0x3c], edx
mov edx, dword [rbp - 0x80]
cmp eax, edx
je 0x7c0019a4
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x58], rax
mov rcx, qword [rbp - 0x68]
mov qword [rbp - 0x10], rcx
mov edx, dword [rbp - 0x6c]
mov dword [rbp], edx
mov r8, qword [rbp - 0x58]
mov qword [rbp - 0x20], r8
mov r8, qword [rbp - 0x10]
mov qword [rbp - 0x38], r8
mov dword [rbp - 0x14], 0
mov eax, dword [rbp - 0x14]
mov dword [rbp - 0x3c], 0x133a
mov ecx, dword [rbp - 0x6c]
xor ecx, 0xffffffff
mov edx, dword [rbp]
mov dword [rbp - 0x3c], ecx
cmp eax, edx
je 0x7c001a11
mov eax, 0x515b
mov ecx, 0x1e3a
mov rdx, qword [rbp - 0x38]
mov r8, rdx
add r8, 1
sub ecx, dword [rbp + 4]
mov qword [rbp - 0x38], r8
mov r9d, dword [rbp - 0x7c]
imul r9d, ecx
mov dword [rbp - 0x3c], r9d
mov r10b, byte [rdx]
mov byte [rbp - 0x15], r10b
mov ecx, dword [rbp - 0x7c]
mov r9d, dword [rbp - 0x6c]
shl r9d, cl
mov dword [rbp - 0x3c], r9d
mov rdx, qword [rbp - 0x20]
mov qword [rbp - 0x48], rdx
mov rdx, qword [rbp - 0x48]
add rdx, 1
mov r9d, dword [rbp - 0x50]
mov qword [rbp - 0x20], rdx
cmp eax, r9d
jb 0x7c0019a4
mov eax, 0x312
mov ecx, eax
mov eax, dword [rbp - 4]
mov dword [rbp - 0x4c], eax
mov rdx, qword [rbp - 0x30]
add rdx, 0x3c1d
cmp rcx, rdx
jae 0x7c00188b
cmp dword [rbp - 0x4c], 0x80a
je 0x7c001969
mov al, byte [rbp - 0x15]
mov rcx, qword [rbp - 0x48]
mov byte [rcx], al
mov rcx, qword [rbp - 0x78]
mov qword [rbp - 0x28], rcx
mov rax, qword [rbp - 0x78]
or rax, 0x199a
mov ecx, dword [rbp - 0x40]
xor ecx, ecx
mov qword [rbp - 0x28], rax
mov edx, dword [rbp - 0x40]
and edx, 0
mov rax, qword [rbp + 8]
xor rax, 0x325b
mov r8, qword [rbp - 0x78]
imul r8, rax
mov qword [rbp - 0x28], r8
cmp ecx, edx
ja 0x7c0019a4
mov eax, 0x4538
mov ecx, 0x11a7
sub ecx, dword [rbp + 4]
mov edx, dword [rbp + 4]
mov r8d, dword [rbp - 0x7c]
sub eax, r8d
xor edx, 0xffffee59
mov dword [rbp - 0x3c], eax
mov eax, dword [rbp - 0x14]
xor r8d, edx
mov dword [rbp - 0x3c], r8d
add eax, ecx
mov ecx, dword [rbp - 0x7c]
mov dword [rbp - 0x3c], ecx
mov dword [rbp - 0x14], eax
jmp 0x7c0018f1
mov eax, 0x1edb
cmp eax, dword [rbp - 4]
je 0x7c001969
mov rax, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x78]
and rcx, rcx
mov qword [rbp - 0x28], rcx
add rsp, 0x90
pop rdi
pop rsi
pop rbp
ret