Function at 0x140020551
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x50], r8
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x40], rcx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
mov eax, dword [0x1400c8a20]
cmp dword [0x1400c8a24], 9
setg cl
lea edx, [rax + 1]
imul edx, eax
and dl, cl
mov byte [rbp + 0x97], dl
mov al, byte [rbp + 0x97]
xor eax, eax
lea rcx, [0x140052d90]
movsxd rdx, dword [rax + rcx]
xor dword [rbp + rdx*4], 0x1e27
add rax, 4
cmp rax, 0x5c
jne 0x1400205c0
mov eax, 0x4819
xor ecx, ecx
mov qword [rbp - 0x38], rcx
lea r8, [0x140052f44]
lea rdi, [0x140052e40]
lea rsi, [0x140052e90]
lea r14, [0x140052f28]
lea r13, [0x140052f20]
lea r11, [0x140052f30]
lea r10, [0x140052d30]
lea r9, [0x140052f38]
lea r15, [0x140052df0]
lea r12, [0x140052ee0]
xor ecx, ecx
mov qword [rbp - 0x20], rcx
xor ecx, ecx
mov qword [rbp - 0x18], rcx
xor ecx, ecx
mov qword [rbp - 0x10], rcx
xor ecx, ecx
mov qword [rbp - 0x28], rcx
xor ecx, ecx
mov qword [rbp - 0x70], rcx
xor ecx, ecx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x58], rcx
xor ecx, ecx
mov qword [rbp - 0x30], rcx
xor ecx, ecx
mov qword [rbp - 8], rcx
cmp eax, 0x4818
jg 0x1400206a3
cmp eax, 0x25fc
jg 0x140020704
cmp eax, 0x8bf
jg 0x140020770
cmp eax, 0x24e
je 0x140020ada
cmp eax, 0x348
je 0x1400209c6
cmp eax, 0x363
je 0x140020f19
jmp 0x140020663
cmp eax, 0x6e3e
jle 0x14002073f
cmp eax, 0x7986
jg 0x140020857
cmp eax, 0x6e3f
je 0x140020b08
cmp eax, 0x70d1
je 0x140020b20
cmp eax, 0x735d
jne 0x140020663
mov eax, dword [0x1400c8a28]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0xe46
mov ecx, 0x7f01
cmove eax, ecx
cmp dword [0x1400c8a2c], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x40]
jmp 0x140020663
cmp eax, 0x3148
jle 0x14002091f
cmp eax, 0x3149
je 0x140020c47
cmp eax, 0x420b
je 0x140020a1f
cmp eax, 0x45df
jne 0x140020663
mov eax, dword [rbp + 0x4c]
mov ecx, 0x6b13
xor eax, ecx
jmp 0x140020663
cmp eax, 0x5067
jle 0x14002095d
cmp eax, 0x5068
je 0x140020cd8
cmp eax, 0x52f5
je 0x140020d25
cmp eax, 0x5c3b
je 0x1400208c0
jmp 0x140020663
cmp eax, 0x8c0
je 0x140020d91
cmp eax, 0x98e
je 0x140020a81
cmp eax, 0x1ade
jne 0x140020663
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x70]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp - 0x40]
mov qword [rax], rcx
mov rax, qword [rbp + 0x88]
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x88]
mov qword [rcx], rax
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp - 0x48]
mov qword [rax], rcx
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
mov rax, qword [rbp + 0x78]
mov dword [rax], 0x2df2c077
mov eax, dword [rbp + 0x44]
mov ecx, 0x6ed0
xor eax, ecx
jmp 0x140020663
cmp eax, 0x7987
je 0x140020dea
cmp eax, 0x7b6d
je 0x140020df9
cmp eax, 0x7e16
jne 0x140020663
mov eax, dword [rbp + 0x64]
cmp byte [rbp - 0x28], 0
jne 0x140020899
xor edx, edx
movsxd rcx, dword [rdx + r12]
xor dword [rbp + rcx*4], 0x2e15
add rdx, 4
cmp rdx, 0x40
jne 0x140020883
mov cl, 1
mov qword [rbp - 0x28], rcx
cmp eax, 0x2df2c077
je 0x1400209c6
cmp eax, 0x45b950f6
je 0x140020a1f
cmp eax, 0x77aeb8f5
jne 0x140020a81
mov eax, dword [0x1400c8a30]
cmp dword [0x1400c8a34], 0xa
setl cl
mov edx, eax
not edx
lea ebx, [rax + rax]
add ebx, edx
imul ebx, eax
test bl, 1
sete al
or al, cl
cmp byte [rbp - 0x58], 0
jne 0x140020902
xor ecx, ecx
movsxd rdx, dword [rcx + r9]
xor dword [rbp + rdx*4], 0x476
add rcx, 4
cmp rcx, 0xc
jne 0x1400208ec
test al, al
mov eax, 0x6644
mov ecx, 0x78b9
cmovne eax, ecx
xor eax, dword [rbp + 0x30]
mov cl, 1
mov qword [rbp - 0x58], rcx
jmp 0x140020663
cmp eax, 0x25fd
je 0x140020e43
cmp eax, 0x2fb4
jne 0x140020f0c
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov eax, dword [rbp + 0x58]
mov ecx, 0x7ccf
xor eax, ecx
jmp 0x140020663
cmp eax, 0x4819
je 0x140020eb8
cmp eax, 0x489b
jne 0x140020663
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
sub rax, 1
mov rcx, qword [rbp + 0x70]
mov edx, 0x45b950f6
mov ebx, 0x77aeb8f5
cmovb edx, ebx
mov qword [rcx], rax
mov rax, qword [rbp + 0x78]
mov dword [rax], edx
mov eax, dword [0x1400c8a38]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x1a4f
mov ecx, 0x6241
cmove eax, ecx
cmp dword [0x1400c8a3c], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x24]
jmp 0x140020663
cmp dword [0x1400c8a40], 0xa
mov eax, dword [0x1400c8a44]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x68], 0
jne 0x140020a02
xor edx, edx
movsxd rcx, dword [rdx + r14]
xor dword [rbp + rcx*4], 0x28d2
add rdx, 4
cmp rdx, 8
jne 0x1400209ec
test al, al
mov eax, 0x329d
mov ecx, 0x16b
cmovne eax, ecx
xor eax, dword [rbp + 0x20]
mov cl, 1
mov qword [rbp - 0x68], rcx
jmp 0x140020663
cmp dword [0x1400c8a48], 0xa
mov ecx, dword [0x1400c8a4c]
setl al
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
sete cl
or dl, al
xor dl, cl
xor dl, 1
xor al, cl
or al, dl
cmp byte [rbp - 0x60], 0
jne 0x140020a64
xor edx, edx
movsxd rcx, dword [rdx + r11]
xor dword [rbp + rcx*4], 0x16dd
add rdx, 4
cmp rdx, 8
jne 0x140020a4e
test al, al
mov eax, 0x1998
mov ecx, 0x1b05
cmovne eax, ecx
xor eax, dword [rbp + 0x28]
mov cl, 1
mov qword [rbp - 0x60], rcx
jmp 0x140020663
cmp dword [0x1400c8a50], 0xa
mov eax, dword [0x1400c8a54]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x70], 0
jne 0x140020abd
xor edx, edx
movsxd rcx, dword [rdx + r13]
xor dword [rbp + rcx*4], 0x20ad
add rdx, 4
cmp rdx, 8
jne 0x140020aa7
test al, al
mov eax, 0xc2f
mov ecx, 0x4bbe
cmovne eax, ecx
xor eax, dword [rbp + 0x18]
mov cl, 1
mov qword [rbp - 0x70], rcx
jmp 0x140020663
mov eax, dword [0x1400c8a58]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x2c82
mov ecx, 0x6a3e
cmove eax, ecx
cmp dword [0x1400c8a5c], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x1c]
jmp 0x140020663
mov rax, qword [rbp + 0x78]
mov eax, dword [rax]
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x48]
mov ecx, 0x608f
xor eax, ecx
jmp 0x140020663
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x70]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp - 0x40]
mov qword [rax], rcx
mov rax, qword [rbp + 0x88]
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov rdx, qword [rbp + 0x88]
mov qword [rdx], rax
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp - 0x48]
mov qword [rax], rcx
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
mov rax, qword [rbp + 0x78]
mov dword [rax], 0x2df2c077
mov edx, dword [0x1400c8a60]
cmp dword [0x1400c8a64], 0xa
setl al
lea ecx, [rdx + 1]
imul ecx, edx
and ecx, 1
sete dl
or cl, al
xor cl, dl
xor al, dl
mov edx, eax
and dl, cl
xor cl, 1
mov ebx, eax
or bl, cl
xor bl, dl
xor al, 1
or al, cl
xor al, bl
cmp byte [rbp - 0x20], 0
jne 0x140020c2a
xor edx, edx
movsxd rcx, dword [rdx + r15]
xor dword [rbp + rcx*4], 0x52f6
add rdx, 4
cmp rdx, 0x50
jne 0x140020c14
test al, 1
mov eax, 0x16c1
mov ecx, 0x4df
cmovne eax, ecx
xor eax, dword [rbp + 8]
mov cl, 1
mov qword [rbp - 0x20], rcx
jmp 0x140020663
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov ecx, dword [0x1400c8a68]
cmp dword [0x1400c8a6c], 0xa
setl al
mov edx, ecx
not edx
lea ebx, [rcx + rcx]
add edx, ebx
add edx, 0xfbf6f056
imul edx, ecx
and edx, 1
sete r8b
mov ebx, eax
and bl, dl
mov ecx, eax
or cl, r8b
or dl, al
xor dl, bl
xor dl, cl
xor al, r8b
mov ecx, eax
and cl, dl
xor dl, 1
mov ebx, eax
or bl, dl
xor bl, cl
xor al, 1
or al, dl
xor al, bl
cmp byte [rbp - 0x30], 0
jne 0x140020cbb
xor dword [rbp + 0x38], 0x119
test al, 1
mov eax, 0x7d2e
mov ecx, 0x6232
cmovne eax, ecx
xor eax, dword [rbp + 0x34]
mov cl, 1
mov qword [rbp - 0x30], rcx
jmp 0x140020ef2
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
lea rcx, [rax + 1]
mov rdx, qword [rbp + 0x80]
mov qword [rdx], rcx
mov al, byte [rax]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
lea rdx, [rcx + 1]
mov rbx, qword [rbp + 0x88]
mov qword [rbx], rdx
mov byte [rcx], al
mov rax, qword [rbp + 0x78]
mov dword [rax], 0x2df2c077
mov eax, dword [rbp + 0x54]
mov ecx, 0xdd8
xor eax, ecx
jmp 0x140020663
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
lea rcx, [rax + 1]
mov rdx, qword [rbp + 0x80]
mov qword [rdx], rcx
mov al, byte [rax]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
lea rdx, [rcx + 1]
mov rbx, qword [rbp + 0x88]
mov qword [rbx], rdx
mov byte [rcx], al
mov rax, qword [rbp + 0x78]
mov dword [rax], 0x2df2c077
mov eax, dword [0x1400c8a70]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0xf45
mov ecx, 0x5c4e
cmove eax, ecx
cmp dword [0x1400c8a74], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x2c]
jmp 0x140020663
cmp dword [0x1400c8a78], 0xa
mov eax, dword [0x1400c8a7c]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x18], 0
jne 0x140020dcd
xor edx, edx
movsxd rcx, dword [rdx + rdi]
xor dword [rbp + rcx*4], 0x985
add rdx, 4
cmp rdx, 0x4c
jne 0x140020db7
test al, al
mov eax, 0x22c8
mov ecx, 0x690a
cmovne eax, ecx
xor eax, dword [rbp + 0xc]
mov cl, 1
mov qword [rbp - 0x18], rcx
jmp 0x140020663
mov eax, dword [rbp + 0x5c]
mov ecx, 0x49c
xor eax, ecx
jmp 0x140020663
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
mov rcx, rax
and rcx, 0xfffffffffffffffe
mov rdx, rax
not rdx
add rcx, rax
or rdx, 1
add rdx, rcx
mov rcx, qword [rbp + 0x70]
mov qword [rcx], rdx
test rax, rax
mov eax, 0x45b950f6
mov ecx, 0x77aeb8f5
cmove eax, ecx
mov rcx, qword [rbp + 0x78]
mov dword [rcx], eax
mov eax, dword [rbp + 0x50]
mov ecx, 0x29b9
xor eax, ecx
jmp 0x140020663
mov rax, qword [rbp + 0x78]
mov eax, dword [rax]
mov dword [rbp + 0x64], eax
mov eax, dword [0x1400c8a80]
cmp dword [0x1400c8a84], 0xa
setl cl
lea edx, [rax + 0x7d7ffaa3]
not edx
lea ebx, [rax + rax]
add ebx, 0x7d7ffaa3
add edx, ebx
add edx, 2
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x10], 0
jne 0x140020e9b
xor edx, edx
movsxd rcx, dword [rdx + rsi]
xor dword [rbp + rcx*4], 0x2297
add rdx, 4
cmp rdx, 0x44
jne 0x140020e85
test al, al
mov eax, 0x2b4d
mov ecx, 0x3b64
cmovne eax, ecx
xor eax, dword [rbp + 0x10]
mov cl, 1
mov qword [rbp - 0x10], rcx
jmp 0x140020663
mov al, byte [rbp + 0x97]
cmp byte [rbp - 0x38], 0
jne 0x140020eda
xor r8d, r8d
movsxd rdx, dword [r8 + r10]
xor byte [rbp + rdx*4], 0x26
add r8, 4
cmp r8, 0x58
jne 0x140020ec7
test al, 1
mov eax, 0x6ef6
mov ecx, 0x4f9
cmovne eax, ecx
xor eax, dword [rbp]
mov cl, 1
mov qword [rbp - 0x38], rcx
lea r8, [0x140052f44]
lea rdi, [0x140052e40]
lea rsi, [0x140052e90]
jmp 0x140020663
cmp eax, 0x30a8
jne 0x140020663
jmp 0x140020f84
mov eax, dword [0x1400c8a88]
cmp dword [0x1400c8a8c], 0xa
setl cl
lea edx, [rax + 0x1507a84d]
not edx
lea ebx, [rax + rax]
add ebx, 0x1507a84d
add edx, ebx
add edx, 0x1507a84c
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 8], 0
jne 0x140020f6b
xor edx, edx
movsxd rcx, dword [rdx + r8]
xor dword [rbp + rcx*4], 0x3e31
add rdx, 4
cmp rdx, 8
jne 0x140020f55
test al, al
mov eax, 0x3077
mov ecx, 0x3aad
cmovne eax, ecx
xor eax, dword [rbp + 0x3c]
mov cl, 1
jmp 0x14002065f
mov rax, qword [rbp - 0x78]
lea rsp, [rbp + 0x98]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret