Function at 0x180014973
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x108
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x50], rcx
xorps xmm0, xmm0
movups xmmword [rbp + 0x3c], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
cmp dword [0x1800e5900], 0xa
mov eax, dword [0x1800e5904]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
mov byte [rbp + 0x7f], dl
xor cl, al
mov byte [rbp + 0x7e], cl
xor eax, eax
lea rcx, [0x180052cb0]
movsxd rdx, dword [rax + rcx]
xor dword [rbp + rdx*4 - 0x20], 0x1e27
add rax, 4
cmp rax, 0x68
jne 0x1800149e2
mov eax, 0x8c0
xor r14d, r14d
lea r12, [0x180052de0]
lea rbx, [0x180052e30]
lea r10, [0x180052e94]
lea r9, [0x180052e9c]
lea rsi, [0x180052d80]
lea r13, [0x180052e8c]
lea r11, [0x180052e7c]
lea r8, [0x180052e84]
lea rdi, [0x180052ea8]
lea r15, [0x180052d20]
mov ecx, 0
mov qword [rbp - 0x40], rcx
xor ecx, ecx
mov qword [rbp - 0x38], rcx
xor ecx, ecx
mov qword [rbp - 0x30], rcx
xor ecx, ecx
mov qword [rbp + 0x58], rcx
xor ecx, ecx
mov qword [rbp - 0x78], 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 - 0x48], rcx
xor ecx, ecx
mov qword [rbp - 0x28], rcx
cmp eax, 0x420a
jg 0x180014afa
cmp eax, 0x1d99
jle 0x180014b61
cmp eax, 0x2ff6
jle 0x180014c9d
cmp eax, 0x3148
jg 0x180014f11
cmp eax, 0x2ff7
je 0x180014fa2
cmp eax, 0x30a8
jne 0x180014a8b
mov rax, qword [rbp + 0x70]
mov dword [rax], 0xb128fd9
mov eax, dword [0x1800e5908]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x42e0
mov ecx, 0x2440
cmove eax, ecx
cmp dword [0x1800e590c], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0xc]
jmp 0x180014a8b
cmp eax, 0x6e3e
jg 0x180014bee
cmp eax, 0x5067
jg 0x180014d39
cmp eax, 0x45de
jg 0x180014f36
cmp eax, 0x420b
je 0x180014fd0
cmp eax, 0x42aa
jne 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
cmp word [rax], 0
mov eax, 0xf6152adc
mov ecx, 0xdadca4b0
cmove eax, ecx
mov rcx, qword [rbp + 0x70]
mov dword [rcx], eax
mov eax, dword [rbp + 0x38]
mov ecx, 0x3d19
xor eax, ecx
jmp 0x180014a8b
cmp eax, 0x8bf
jg 0x180014da9
cmp eax, 0x24e
je 0x180014ffe
cmp eax, 0x348
je 0x180015069
cmp eax, 0x363
jne 0x180014a8b
cmp dword [0x1800e5910], 0xa
mov eax, dword [0x1800e5914]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x60], 0
jne 0x180014bca
xor ecx, ecx
movsxd rdi, dword [rcx + r10]
xor dword [rbp + rdi*4 - 0x20], 0x476
add rcx, 4
cmp rcx, 8
jne 0x180014bb4
test al, al
mov eax, 0x3b2c
mov ecx, 0x3aad
cmovne eax, ecx
xor eax, dword [rbp + 0x10]
mov cl, 1
mov qword [rbp - 0x60], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
cmp eax, 0x7986
jg 0x180014e23
cmp eax, 0x6e3f
je 0x180015119
cmp eax, 0x72dc
je 0x180015180
cmp eax, 0x735d
jne 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
add rax, 2
mov rcx, qword [rbp + 0x80]
mov qword [rcx], rax
mov rax, qword [rbp + 0x70]
mov dword [rax], 0x3aabdc03
mov eax, dword [0x1800e5918]
mov ecx, dword [0x1800e591c]
cmp ecx, 9
setg dl
cmp ecx, 0xa
mov rsi, r14
setl bl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
lea rdi, [0x180052ea8]
sete al
mov ecx, ebx
and cl, al
xor bl, cl
and dl, al
xor dl, bl
lea rsi, [0x180052d80]
lea rbx, [0x180052e30]
mov eax, 0x3f5a
mov edx, 0x36eb
cmovne eax, edx
test cl, cl
cmovne eax, edx
xor eax, dword [rbp + 0x14]
jmp 0x180014a8b
cmp eax, 0x1d9a
je 0x1800151b1
cmp eax, 0x1dcd
je 0x1800151c0
cmp eax, 0x2fb4
jne 0x180014a8b
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x80]
mov qword [rcx], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x70]
mov dword [rax], 0x3aabdc03
mov eax, dword [rbp + 0x2c]
mov ecx, 0x6017
xor eax, ecx
jmp 0x180014a8b
cmp eax, 0x5068
je 0x1800151d9
cmp eax, 0x52f5
je 0x1800152e8
cmp eax, 0x5c3b
jne 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
cmp word [rax], 0
mov eax, 0xf6152adc
mov ecx, 0xdadca4b0
cmove eax, ecx
mov rcx, qword [rbp + 0x70]
mov dword [rcx], eax
mov eax, dword [0x1800e5920]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x2388
mov ecx, 0x1a4f
cmove eax, ecx
cmp dword [0x1800e5924], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 4]
jmp 0x180014a8b
cmp eax, 0x8c0
je 0x180015207
cmp eax, 0x98e
je 0x180015257
cmp eax, 0x1ade
jne 0x180014a8b
cmp dword [0x1800e5928], 0xa
mov eax, dword [0x1800e592c]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x58], 0
jne 0x180014e06
xor ecx, ecx
movsxd rdx, dword [rcx + r9]
xor dword [rbp + rdx*4 - 0x20], 0x5039
add rcx, 4
cmp rcx, 0xc
jne 0x180014df0
test al, al
mov eax, 0x6607
mov ecx, 0x27cf
cmovne eax, ecx
xor eax, dword [rbp + 0x18]
mov cl, 1
mov qword [rbp - 0x58], rcx
jmp 0x180014a8b
cmp eax, 0x7987
je 0x1800152b8
cmp eax, 0x7b6d
je 0x180015361
cmp eax, 0x7e16
jne 0x180014a8b
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp - 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x80]
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x80]
mov qword [rcx], rax
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x70]
mov dword [rax], 0x3aabdc03
cmp dword [0x1800e5930], 0xa
mov eax, dword [0x1800e5934]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x40], 0
jne 0x180014eed
xor ecx, ecx
movsxd rdi, dword [rcx + r15]
xor dword [rbp + rdi*4 - 0x20], 0x52f6
add rcx, 4
cmp rcx, 0x5c
jne 0x180014ed7
test al, al
mov eax, 0x31b5
mov ecx, 0x178f
cmovne eax, ecx
xor eax, dword [rbp - 0x18]
mov cl, 1
mov qword [rbp - 0x40], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
cmp eax, 0x3149
je 0x1800150b8
cmp eax, 0x34c1
jne 0x180014a8b
mov eax, dword [rbp + 0x48]
mov ecx, 0x7f35
xor eax, ecx
jmp 0x180014a8b
cmp eax, 0x489b
jne 0x180015354
cmp dword [0x1800e5938], 0xa
mov eax, dword [0x1800e593c]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x78], 0
jne 0x180014f7e
xor ecx, ecx
movsxd rdi, dword [rcx + r11]
xor dword [rbp + rdi*4 - 0x20], 0x20ad
add rcx, 4
cmp rcx, 8
jne 0x180014f68
test al, al
mov eax, 0x546a
mov ecx, 0xbfb
cmovne eax, ecx
xor eax, dword [rbp - 8]
mov cl, 1
mov qword [rbp - 0x78], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x68]
sub rax, qword [rcx]
sar rax, 1
mov qword [rbp - 0x80], rax
mov rax, qword [rbp + 0x80]
mov eax, dword [rbp + 0x44]
mov ecx, 0x77f6
xor eax, ecx
jmp 0x180014a8b
mov eax, dword [0x1800e5940]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
mov eax, 0x74c7
mov ecx, 0x1230
cmove eax, ecx
cmp dword [0x1800e5944], 0xa
cmovl eax, ecx
xor eax, dword [rbp - 4]
jmp 0x180014a8b
mov rax, qword [rbp + 0x70]
mov eax, dword [rax]
mov dword [rbp + 0x64], eax
cmp dword [0x1800e5948], 0xa
mov eax, dword [0x1800e594c]
setl cl
mov edi, eax
not edi
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x30], 0
jne 0x180015045
xor ecx, ecx
movsxd rdi, dword [rcx + r12]
xor dword [rbp + rdi*4 - 0x20], 0x2297
add rcx, 4
cmp rcx, 0x50
jne 0x18001502f
test al, al
mov eax, 0x3cf5
mov ecx, 0x463a
cmovne eax, ecx
xor eax, dword [rbp - 0x10]
mov cl, 1
mov qword [rbp - 0x30], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
mov eax, dword [rbp + 0x64]
cmp byte [rbp + 0x58], 0
jne 0x18001508a
xor ecx, ecx
movsxd rdi, dword [rcx + rbx]
xor dword [rbp + rdi*4 - 0x20], 0x2e15
add rcx, 4
cmp rcx, 0x4c
jne 0x180015074
cmp eax, 0xb128fd8
jg 0x1800152d0
mov cl, 1
mov qword [rbp + 0x58], rcx
cmp eax, 0xdadca4b0
lea rdi, [0x180052ea8]
je 0x180014dca
cmp eax, 0xf6152adc
jne 0x180014f41
cmp dword [0x1800e5950], 0xa
mov eax, dword [0x1800e5954]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x68], 0
jne 0x1800150f5
xor ecx, ecx
movsxd rdi, dword [rcx + r13]
xor dword [rbp + rdi*4 - 0x20], 0x16dd
add rcx, 4
cmp rcx, 8
jne 0x1800150df
test al, al
mov eax, 0x543d
mov ecx, 0x7958
cmovne eax, ecx
xor eax, dword [rbp + 8]
mov cl, 1
mov qword [rbp - 0x68], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x68]
sub rax, qword [rcx]
sar rax, 1
mov qword [rbp - 0x80], rax
mov rax, qword [rbp + 0x80]
cmp dword [0x1800e5958], 0xa
mov eax, dword [0x1800e595c]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x48], 0
jne 0x180015163
xor dword [rbp + 0x20], 0x3e31
test al, al
mov eax, 0x363e
mov ecx, 0x5c16
cmovne eax, ecx
xor eax, dword [rbp + 0x1c]
mov cl, 1
mov qword [rbp - 0x48], rcx
jmp 0x180014a8b
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
add rax, 2
mov rcx, qword [rbp + 0x80]
mov qword [rcx], rax
mov rax, qword [rbp + 0x70]
mov dword [rax], 0x3aabdc03
mov eax, dword [rbp + 0x40]
mov ecx, 0x3edb
xor eax, ecx
jmp 0x180014a8b
mov eax, dword [rbp + 0x34]
mov ecx, 0x2b56
xor eax, ecx
jmp 0x180014a8b
mov rax, qword [rbp + 0x70]
mov dword [rax], 0xb128fd9
mov eax, dword [rbp + 0x3c]
mov ecx, 0x6f85
xor eax, ecx
jmp 0x180014a8b
mov eax, dword [0x1800e5960]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x1b9c
mov ecx, 0x26d3
cmove eax, ecx
cmp dword [0x1800e5964], 0xa
cmovl eax, ecx
xor eax, dword [rbp + 0x28]
jmp 0x180014a8b
mov al, byte [rbp + 0x7f]
or al, byte [rbp + 0x7e]
test r14b, r14b
lea rdx, [0x180052c40]
jne 0x18001522f
xor ecx, ecx
movsxd r14, dword [rcx + rdx]
xor byte [rbp + r14*4 - 0x20], 0x26
add rcx, 4
cmp rcx, 0x64
jne 0x18001521b
test al, 1
mov eax, 0x3193
mov ecx, 0x6031
cmovne eax, ecx
xor eax, dword [rbp - 0x20]
mov r14b, 1
lea rbx, [0x180052e30]
lea rsi, [0x180052d80]
jmp 0x180014a8b
cmp dword [0x1800e5968], 0xa
mov eax, dword [0x1800e596c]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x38], 0
jne 0x180015294
xor ecx, ecx
movsxd rdi, dword [rcx + rsi]
xor dword [rbp + rdi*4 - 0x20], 0x985
add rcx, 4
cmp rcx, 0x58
jne 0x18001527e
test al, al
mov eax, 0x3570
mov ecx, 0x4eb9
cmovne eax, ecx
xor eax, dword [rbp - 0x14]
mov cl, 1
mov qword [rbp - 0x38], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
mov rax, qword [rbp + 0x70]
mov eax, dword [rax]
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x30]
mov ecx, 0x473c
xor eax, ecx
jmp 0x180014a8b
cmp eax, 0xb128fd9
je 0x180015349
mov cl, 1
mov qword [rbp + 0x58], rcx
cmp eax, 0x3aabdc03
jne 0x180014f41
cmp dword [0x1800e5970], 0xa
mov eax, dword [0x1800e5974]
setl cl
lea edi, [rax + 1]
imul edi, eax
test dil, 1
sete al
or al, cl
cmp byte [rbp - 0x70], 0
jne 0x180015325
xor ecx, ecx
movsxd rdi, dword [rcx + r8]
xor dword [rbp + rdi*4 - 0x20], 0x28d2
add rcx, 4
cmp rcx, 8
jne 0x18001530f
test al, al
mov eax, 0xb5a
mov ecx, 0x15cb
cmovne eax, ecx
xor eax, dword [rbp]
mov cl, 1
mov qword [rbp - 0x70], rcx
lea rdi, [0x180052ea8]
jmp 0x180014a8b
mov al, 1
mov qword [rbp + 0x58], rax
jmp 0x180014b8d
cmp eax, 0x45df
jne 0x180014a8b
jmp 0x1800153b6
cmp dword [0x1800e5978], 0xa
mov eax, dword [0x1800e597c]
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x28], 0
jne 0x18001539d
xor ecx, ecx
movsxd rdx, dword [rcx + rdi]
xor dword [rbp + rdx*4 - 0x20], 0x66ad
add rcx, 4
cmp rcx, 8
jne 0x180015387
test al, al
mov eax, 0x7d31
mov ecx, 0x1998
cmovne eax, ecx
xor eax, dword [rbp + 0x24]
mov cl, 1
jmp 0x180014a87
mov rax, qword [rbp - 0x80]
lea rsp, [rbp + 0x88]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret