Function at 0x7c006990
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x160
lea rbp, [rsp + 0x80]
mov eax, 0x6590
mov byte [rbp + 0xdf], 0
mov dword [rbp + 0xd8], 0xb88
mov qword [rbp + 0xd0], 0x52b6
mov r8, qword [rbp + 0xb8]
mov r9, r8
xor r9, 0xffffffffffffffff
mov qword [rbp + 0xb8], r9
mov r10d, dword [rbp + 0xd8]
xor r10d, 0x784d
mov dword [rbp], r10d
mov r9, qword [rbp + 0xd0]
add r9, 0xffffffffffffffdc
mov qword [rbp + 0xc8], r9
sub eax, dword [rbp + 0xd8]
mov dword [rbp + 0x44], eax
mov qword [rbp + 0xb0], 0x72a2
mov dword [rbp - 8], 0x2e68
mov qword [rbp + 0x58], rcx
mov qword [rbp + 0x48], rdx
mov eax, dword [rbp + 0x30]
mov rcx, qword [rbp + 0x58]
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x28], r8
mov dword [rbp - 0x2c], eax
call fcn.7c002690
mov qword [rbp + 8], rax
mov r10d, dword [rbp + 0xd8]
xor r10d, 0x6423
mov dword [rbp + 0x30], r10d
cmp qword [rbp + 8], 0
je 0x7c006e59
jmp 0x7c0072ac
mov eax, dword [rbp + 0x60]
add eax, dword [rbp - 4]
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0xd0]
xor rdx, 0xab
mov r8d, dword [rbp - 0x2c]
or r8d, 0x7c5f
mov dword [rbp + 0x30], r8d
mov eax, eax
mov r9d, eax
add rcx, r9
mov qword [rbp + 0xb8], rdx
mov qword [rbp + 0x28], rcx
mov rcx, qword [rbp + 0x48]
mov eax, ecx
mov rcx, qword [rbp + 0x28]
mov r8d, dword [rcx]
mov dword [rbp + 0x30], 0xffffc83d
mov r10d, dword [rbp - 0x2c]
mov qword [rbp - 0x38], rcx
mov ecx, r10d
shr r10d, cl
add r8d, eax
mov dword [rbp + 0x30], r10d
mov rdx, qword [rbp - 0x38]
mov dword [rdx], r8d
jmp 0x7c006e54
mov al, byte [rbp + 0x9f]
and al, 1
add rsp, 0x160
pop rdi
pop rsi
pop rbp
ret
mov eax, 0xe2c
mov ecx, dword [rbp + 0x74]
sub eax, dword [rbp + 0xd8]
mov rdx, qword [rbp - 0x28]
xor rdx, 0x27aa
mov qword [rbp + 0xb8], rdx
cmp ecx, eax
jne 0x7c007298
jmp 0x7c006e31
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0x10], rax
jmp 0x7c006c28
jmp 0x7c006e54
mov eax, dword [rbp + 0xd8]
mov ecx, dword [rbp - 8]
xor eax, 0x742
cmp eax, ecx
jae 0x7c006b1d
jmp 0x7c00726a
mov al, byte [rbp + 0xdf]
xor al, 1
and al, 1
mov byte [rbp + 0x9f], al
jmp 0x7c006acb
mov eax, 0x52be
mov ecx, eax
mov eax, 0x956e
mov edx, eax
mov r8, qword [rbp + 0xd0]
mov r9, qword [rbp + 0xd0]
mov r10, qword [rbp + 0xd0]
mov r11, qword [rbp + 0x10]
add r8, 0xffffffffffffb32a
sub rdx, r10
xor r9, 0x11ae
mov qword [rbp + 0xb8], rdx
mov rdx, qword [rbp + 0xd0]
add rdx, 0xffffffffffffad49
mov r10, qword [rbp - 0x28]
xor r10, rdx
mov qword [rbp + 0xb8], r10
mov rdx, qword [rbp - 0x28]
xor rdx, rdx
mov eax, dword [r11]
mov qword [rbp + 0xb8], rdx
mov esi, dword [rbp - 0x2c]
mov dword [rbp + 0x30], esi
mov dword [rbp - 4], eax
mov rdx, qword [rbp + 0x10]
mov r10, qword [rbp - 0x28]
mov qword [rbp - 0x40], rcx
mov rcx, r10
shl r8, cl
mov qword [rbp + 0xb8], r8
add rdx, 8
mov qword [rbp + 0x90], rdx
mov rdx, qword [rbp + 0x10]
mov r8, qword [rbp - 0x20]
imul r8, r9
mov r9, qword [rbp - 0x40]
sub r9, qword [rbp + 0xd0]
mov qword [rbp + 0xb8], r8
mov eax, dword [rdx + 4]
mov edx, eax
sub rdx, r9
shr rdx, 1
mov eax, edx
mov dword [rbp + 0x34], eax
jmp 0x7c00724a
mov al, byte [rbp + 0xdf]
xor al, 1
and al, 1
mov byte [rbp + 0x9f], al
jmp 0x7c006acb
mov eax, 0x2ff3
mov ecx, eax
mov eax, dword [rbp + 0xd8]
xor eax, 0x11f5
xor eax, dword [rbp]
mov rdx, qword [rbp + 0x10]
mov qword [rbp - 0x18], rdx
mov rdx, qword [rbp - 0x20]
shl rdx, cl
mov qword [rbp + 0xb8], rdx
cmp eax, 0x7b4d
ja 0x7c006b1d
jmp 0x7c007198
mov eax, 0x33ad
mov ecx, eax
mov eax, 0x287
mov edx, eax
mov eax, dword [rbp + 0xd8]
xor eax, 0x1137
mov r8, qword [rbp + 8]
mov dword [rbp + 0x30], 0x1e67
mov r9, qword [rbp + 0xd0]
add r9, 0xffffffffffffa8d6
mov r10, qword [rbp - 0x28]
mov r11, qword [rbp - 0x20]
sub r10, r11
mov qword [rbp + 0xb8], r10
mov qword [rbp + 0xb8], r9
mov esi, dword [r8 + 0xb0]
mov dword [rbp + 0xac], esi
mov r8, qword [rbp + 8]
mov qword [rbp - 0x48], rcx
mov rcx, rdx
mov rdx, qword [rbp - 0x28]
shl rdx, cl
mov qword [rbp + 0xb8], rdx
mov esi, dword [rbp - 8]
mov edi, dword [rbp - 0x2c]
imul eax, edi
mov dword [rbp + 0x30], eax
mov rdx, qword [rbp - 0x28]
xor rdx, r11
mov qword [rbp + 0xb8], rdx
add r8, 0x18
mov rdx, qword [rbp - 0x28]
xor rdx, 0xffffffffffffffff
mov eax, dword [rbp + 0xd8]
xor eax, 0x3db5
mov qword [rbp + 0xb8], rdx
add r8, 0x70
mov rdx, qword [rbp - 0x28]
and rdx, 0x76a
mov qword [rbp + 0xb8], rdx
add r8, 0x28
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x48]
shl rdx, cl
mov qword [rbp + 0xb8], rdx
add r8, 4
mov qword [rbp + 0x80], r8
cmp esi, eax
jbe 0x7c006e65
jmp 0x7c006e54
mov qword [rbp + 0xb8], 0
mov rax, qword [rbp + 0x90]
movzx ecx, word [rax]
shr ecx, 0xc
mov dword [rbp + 0xc4], ecx
mov ecx, dword [rbp - 0x2c]
xor ecx, 0x7271
mov rax, qword [rbp + 0x90]
movzx edx, word [rax]
and edx, 0xfff
mov dword [rbp + 0x30], ecx
mov dword [rbp + 0x60], edx
mov ecx, dword [rbp + 0xc4]
mov edx, ecx
sub edx, 3
mov dword [rbp - 0x4c], ecx
mov dword [rbp - 0x50], edx
je 0x7c006a5c
jmp 0x7c006da6
mov eax, dword [rbp - 0x4c]
sub eax, 0xa
mov dword [rbp - 0x54], eax
je 0x7c00707f
jmp 0x7c006b18
mov eax, 0x75ae
mov ecx, 0x33a4
sub ecx, dword [rbp + 0xd8]
mov edx, dword [rbp - 0x2c]
mov dword [rbp - 0x58], ecx
mov ecx, edx
mov r8d, dword [rbp - 0x58]
shl r8d, cl
mov r9, qword [rbp + 0x50]
mov r10d, dword [r9]
mov dword [rbp + 0x30], r8d
xor edx, edx
cmp r10d, 0
seta cl
and cl, 1
movzx r8d, cl
mov dword [rbp + 0x30], edx
mov dword [rbp - 0xc], r8d
mov edx, dword [rbp - 0x2c]
or edx, edx
mov r9, qword [rbp + 0x38]
mov dword [rbp + 0x30], edx
mov r11, qword [rbp - 0x28]
xor r11, 0xffffffffffffffff
cmp r9, 0
setg cl
mov qword [rbp + 0xb8], r11
and cl, 1
mov byte [rbp + 0x6b], cl
cmp eax, dword [rbp + 0x70]
je 0x7c0072ac
jmp 0x7c006f3a
mov eax, dword [rbp + 0xac]
mov ecx, eax
add rcx, qword [rbp + 0x58]
mov eax, dword [rbp + 0x44]
mov qword [rbp + 0x78], rcx
cmp eax, 0x7a9c
jb 0x7c006b0b
jmp 0x7c00724a
jmp 0x7c007155
mov byte [rbp + 0x9f], 0
jmp 0x7c006acb
mov eax, 0x637f
mov ecx, 0x5337
mov rdx, qword [rbp - 0x28]
add rdx, rdx
sub ecx, dword [rbp + 0xd8]
mov r8, qword [rbp + 0x80]
mov qword [rbp + 0xb8], rdx
mov r9d, dword [rbp + 0xd8]
mov r10d, dword [r8]
mov edx, r10d
xor r9d, 0x25a7
mov qword [rbp + 0x38], rdx
mov r10d, dword [rbp - 0x2c]
mov dword [rbp + 0x30], r10d
xor r10d, ecx
mov dword [rbp + 0x30], r10d
mov ecx, dword [rbp - 0x2c]
sub r9d, ecx
mov rdx, qword [rbp + 0x38]
mov dword [rbp + 0x30], r9d
sub eax, ecx
mov dword [rbp + 0x30], eax
cmp rdx, 0
je 0x7c006b1d
jmp 0x7c006e31
mov eax, 0x6969
mov ecx, dword [rbp + 0x64]
mov edx, ecx
mov r8, qword [rbp - 0x28]
mov qword [rbp + 0xb8], r8
mov r9, qword [rbp + 0x38]
mov ecx, dword [rbp - 0x2c]
sub eax, ecx
mov dword [rbp + 0x30], eax
sub r9, rdx
mov qword [rbp + 0x38], r9
mov rdx, qword [rbp + 0x10]
mov r9, qword [rbp + 0x10]
add ecx, ecx
mov dword [rbp + 0x30], ecx
mov r10, qword [rbp - 0x20]
and r8, r10
mov eax, dword [r9 + 4]
mov qword [rbp + 0xb8], r8
mov r8, qword [rbp - 0x28]
xor r8, 0xffffffffffffffff
mov eax, eax
mov r9d, eax
add rdx, r9
mov qword [rbp + 0xb8], r8
mov qword [rbp + 0x10], rdx
jmp 0x7c006c28
mov rax, qword [rbp + 0xd0]
add rax, 0xffffffffffffc00f
mov rcx, qword [rbp - 0x20]
and rcx, rax
mov edx, dword [rbp + 0x6c]
mov qword [rbp + 0xb8], rcx
mov rax, qword [rbp - 0x28]
or rax, 0x62e
mov r8d, dword [rbp + 0x8c]
mov qword [rbp + 0xb8], rax
cmp edx, r8d
jne 0x7c00724a
jmp 0x7c007028
mov eax, 0x7235
mov ecx, eax
mov rdx, qword [rbp - 0x20]
imul rdx, rdx
sub rcx, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov r9, qword [rbp - 0x20]
mov qword [rbp + 0xb8], r9
mov eax, dword [rbp - 0x2c]
add eax, eax
mov r10, r8
imul r10, r10
mov dword [rbp + 0x30], eax
mov r11, qword [rbp - 0x28]
xor r11, rcx
sub r9, r8
mov rcx, qword [rbp - 0x20]
add r8, rcx
imul r9, r8
sub rdx, r10
mov qword [rbp + 0xb8], r11
cmp rdx, r9
jb 0x7c006ed3
jmp 0x7c006b34
mov eax, 0x1d77
mov rcx, qword [rbp + 0x10]
mov edx, dword [rcx + 4]
mov r8d, dword [rbp - 8]
mov dword [rbp + 0x64], edx
cmp eax, r8d
ja 0x7c006e59
jmp 0x7c006ed3
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax]
mov rdx, qword [rbp - 0x20]
xor rdx, 0xffffffffffffffff
mov qword [rbp + 0xb8], rdx
add rcx, qword [rbp + 0x18]
mov qword [rax], rcx
jmp 0x7c006e54
mov eax, dword [rbp - 0xc]
mov rcx, qword [rbp + 0xd0]
add rcx, 0xffffffffffffc921
mov dl, byte [rbp + 0x6b]
and dl, 1
movzx r8d, dl
and eax, r8d
mov r9, qword [rbp - 0x28]
xor r9, rcx
mov qword [rbp + 0xb8], r9
cmp eax, 0
jne 0x7c006b46
jmp 0x7c006f7e
mov eax, 0x3774
mov ecx, dword [rbp - 0x2c]
shr eax, cl
mov dword [rbp + 0x30], eax
cmp qword [rbp + 0x48], 0
je 0x7c00717d
jmp 0x7c006c63
mov ecx, 0x7aec
mov rax, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0xd0]
xor rdx, 0x22e6
mov r8d, dword [rbp - 4]
mov r9d, dword [rbp - 0x2c]
shr r9d, cl
xor rax, 0x75af
mov dword [rbp + 0x30], r9d
mov r9d, dword [rbp - 0x2c]
or r9d, 0x6d16
mov r10d, dword [rbp + 0x60]
mov dword [rbp + 0x30], r9d
mov r11, qword [rbp - 0x28]
xor r11, r11
add r8d, r10d
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0xb0]
mov qword [rbp + 0xb8], r11
mov r11, qword [rbp - 0x28]
add r11, rdx
add rdi, rax
mov qword [rbp + 0xb8], r11
mov r8d, r8d
mov eax, r8d
mov rdx, qword [rbp + 0xd0]
add rdx, 0x801
add rsi, rax
mov qword [rbp + 0xa0], rsi
mov r8d, dword [rbp - 0x2c]
mov dword [rbp + 0x30], r8d
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x18], rax
mov rax, qword [rbp - 0x28]
sub rax, rax
mov qword [rbp + 0xb8], rax
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x28]
shl rax, cl
mov qword [rbp + 0xb8], rax
and r8d, 0x3d59
mov dword [rbp + 0x30], r8d
cmp rdi, rdx
jae 0x7c007003
jmp 0x7c007028
mov eax, dword [rbp + 0x44]
mov ecx, dword [rbp + 0x44]
xor ecx, 0x6c1c
mov edx, dword [rbp + 0xd8]
xor edx, 0x7687
mov dword [rbp + 0x74], ecx
cmp edx, eax
jbe 0x7c006acb
jmp 0x7c006ade
mov eax, dword [rbp + 0xd8]
mov ecx, dword [rbp + 0x44]
xor eax, 0x2a55
cmp eax, ecx
jb 0x7c006c13
jmp 0x7c007028
mov eax, dword [rbp + 0xd8]
xor eax, 0x6a68
mov ecx, eax
mov eax, dword [rbp - 0x2c]
shl eax, cl
mov dword [rbp + 0x30], eax
mov rdx, qword [rbp - 0x18]
add rdx, 4
mov ecx, dword [rbp - 0x2c]
mov eax, dword [rbp - 0x2c]
shl eax, cl
mov r8d, dword [rbp - 8]
mov dword [rbp + 0x30], eax
mov qword [rbp + 0x50], rdx
mov eax, dword [rbp + 0xd8]
add eax, 0x488c
mov r9d, dword [rbp - 0x2c]
add r9d, 0x1382
mov dword [rbp + 0x30], r9d
mov r9d, dword [rbp - 0x2c]
imul r9d, eax
mov dword [rbp + 0x30], r9d
mov eax, dword [rbp - 8]
mov dword [rbp + 0x70], eax
mov eax, dword [rbp + 0x60]
mov r9d, eax
imul r9d, r9d
mov r10d, r9d
imul r10d, r10d
imul r10d, r9d
mov r11d, dword [rbp + 0xd8]
add r11d, 0x5917
mov dword [rbp + 0x6c], r10d
imul r9d, eax
imul r9d, r9d
mov dword [rbp + 0x8c], r9d
cmp r11d, r8d
je 0x7c006e31
jmp 0x7c006dba
mov eax, dword [rbp + 4]
mov dword [rbp + 0x34], eax
cmp dword [rbp + 0x24], 0
jne 0x7c006d50
jmp 0x7c00727f
mov eax, dword [rbp + 0x34]
mov ecx, dword [rbp + 0x44]
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 0x24]
add eax, 0xffffffff
mov dword [rbp + 4], eax
cmp ecx, 0x527c
jb 0x7c006c28
jmp 0x7c007238
mov al, byte [rbp + 0xdf]
xor al, 0
and al, 1
mov byte [rbp + 0x9f], al
jmp 0x7c006acb
mov eax, 0x6b8c
mov ecx, eax
cmp rcx, qword [rbp + 0xc8]
ja 0x7c006fe2
jmp 0x7c006a5c
mov rax, qword [rbp + 0x90]
add rax, 2
mov qword [rbp + 0x90], rax
jmp 0x7c00724a
mov rax, qword [rbp + 0xc8]
mov ecx, dword [rbp - 0x2c]
mov dword [rbp + 0x30], ecx
cmp rax, 0x581a
jne 0x7c007062
jmp 0x7c006b1d