Function at 0x1800b9400
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x110
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x120], rbx
mov qword [rbp + 0x128], rsi
mov qword [rbp + 0x130], rdi
movaps xmmword [rbp + 0xe0], xmm6
movaps xmmword [rbp + 0xd0], xmm7
movaps xmmword [rbp + 0xc0], xmm8
movaps xmmword [rbp + 0xb0], xmm9
movaps xmmword [rbp + 0xa0], xmm10
movaps xmmword [rbp + 0x90], xmm11
mov rax, qword [0x180128180]
xor rax, rbp
mov qword [rbp + 0x80], rax
movss xmm0, dword [0x1800f1aa8]
mov rbx, rcx
subss xmm0, dword [rbp + 0x160]
movss xmm7, dword [0x1800f6230]
movabs rdi, 0xffffffffffffff0
movsxd rsi, dword [rbp + 0x158]
movsxd r14, r8d
mov qword [rbp + 0x48], rcx
movsxd rcx, edx
maxss xmm7, xmm0
mov r8, rcx
mov r13d, edx
shl r8, 2
mov qword [rbp + 0x78], r9
mov dword [rbp + 0x40], r14d
mulss xmm7, dword [0x1800f5d68]
lea rax, [r8 + 0xf]
mov dword [rbp + 8], r13d
cmp rax, r8
ja 0x1800b94ce
mov rax, rdi
and rax, 0xfffffffffffffff0
call fcn.1800e3a10
sub rsp, rax
lea rax, [rsp + 0x20]
mov qword [rbp + 0x18], rax
mov rax, qword [rbx + 0x20]
movsx edx, word [rax + rcx*2]
movsx eax, word [rax + rcx*2 - 2]
mov ecx, esi
sub edx, eax
shl edx, cl
movsxd rcx, edx
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x1800b9509
mov rax, rdi
and rax, 0xfffffffffffffff0
call fcn.1800e3a10
sub rsp, rax
lea rax, [rcx + 0xf]
lea r9, [rsp + 0x20]
mov qword [rbp + 0x10], r9
cmp rax, rcx
ja 0x1800b952a
mov rax, rdi
and rax, 0xfffffffffffffff0
call fcn.1800e3a10
sub rsp, rax
lea rax, [rsp + 0x20]
mov qword [rbp + 0x38], rax
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x1800b954b
mov rax, rdi
and rax, 0xfffffffffffffff0
call fcn.1800e3a10
sub rsp, rax
lea rax, [rsp + 0x20]
mov qword [rbp + 0x58], rax
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x1800b956c
mov rax, rdi
and rax, 0xfffffffffffffff0
call fcn.1800e3a10
sub rsp, rax
xor r10d, r10d
lea rax, [rsp + 0x20]
mov qword [rbp + 0x50], rax
test r13d, r13d
jle 0x1800b97f2
mov r8d, dword [rbp + 0x150]
mov eax, r14d
imul r8d, dword [rbp + 0x168]
xorps xmm11, xmm11
mov r11, qword [rbp + 0x148]
neg eax
movsd xmm10, qword [0x1800f6b60]
sbb ecx, ecx
mov qword [rbp + 0x20], r10
and ecx, esi
mov qword [rbp + 0x28], r13
mov dword [rbp + 0xc], r8d
movd xmm9, ecx
mov ecx, r10d
cvtdq2ps xmm9, xmm9
mulss xmm9, xmm7
mov rax, qword [rbx + 0x20]
mov edi, r10d
mov dword [rbp], r10d
lea r10, [rcx + 2]
mov qword [rbp + 0x30], r10
movsx edx, word [rcx + rax]
mov ecx, esi
movsx r12d, word [r10 + rax]
sub r12d, edx
shl edx, cl
mov eax, r12d
shl eax, cl
mov rcx, r9
movsxd r15, eax
mov dword [rbp + 4], eax
mov rbx, r15
lea eax, [r8 + rdx]
shl rbx, 2
cdqe
mov r8, rbx
lea rdx, [r11 + rax*4]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp + 0x10]
xor r10d, r10d
movaps xmm1, xmm11
mov eax, r10d
test r15, r15
jle 0x1800b964f
movss xmm0, dword [rcx + rax*4]
inc rax
cvtps2pd xmm0, xmm0
andps xmm0, xmm10
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
cmp rax, r15
jl 0x1800b9633
movaps xmm6, xmm9
mulss xmm6, xmm1
addss xmm6, xmm1
test r14d, r14d
je 0x1800b96df
cmp r12d, 1
je 0x1800b96df
mov r8, rbx
mov rdx, rcx
mov rbx, qword [rbp + 0x38]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [rbp + 4]
mov ecx, esi
mov r8d, 1
sar edx, cl
shl r8d, cl
mov rcx, rbx
call fcn.1800c1608
xor r10d, r10d
movaps xmm1, xmm11
mov eax, r10d
test r15, r15
jle 0x1800b96bb
movss xmm0, dword [rbx + rax*4]
inc rax
cvtps2pd xmm0, xmm0
andps xmm0, xmm10
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
cmp rax, r15
jl 0x1800b969f
lea eax, [rsi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
mulss xmm0, xmm1
addss xmm0, xmm1
comiss xmm6, xmm0
jbe 0x1800b96df
or edi, 0xffffffff
movaps xmm6, xmm0
mov dword [rbp], edi
mov r13, qword [rbp + 0x10]
mov ebx, r10d
mov edx, 1
movaps xmm8, xmm6
test r14d, r14d
jne 0x1800b96fb
mov eax, edx
cmp r12d, edx
jne 0x1800b96fe
mov eax, r10d
add eax, esi
cmp ebx, eax
jge 0x1800b978f
test r14d, r14d
je 0x1800b9715
mov edi, esi
sub edi, ebx
sub edi, edx
jmp 0x1800b9718
lea edi, [rbx + 1]
mov r8d, edx
mov ecx, ebx
mov edx, dword [rbp + 4]
sar edx, cl
shl r8d, cl
mov rcx, r13
call fcn.1800c1608
xor r10d, r10d
movaps xmm1, xmm11
mov eax, r10d
lea edx, [r10 + 1]
test r15, r15
jle 0x1800b975e
movss xmm0, dword [r13 + rax*4]
add rax, rdx
cvtps2pd xmm0, xmm0
andps xmm0, xmm10
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
cmp rax, r15
jl 0x1800b9740
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
mulss xmm0, xmm1
addss xmm0, xmm1
comiss xmm6, xmm0
jbe 0x1800b9779
movaps xmm6, xmm0
add ebx, edx
comiss xmm8, xmm0
mov eax, ebx
cmovbe eax, dword [rbp]
mov edi, eax
mov dword [rbp], eax
jmp 0x1800b96eb
mov r13, qword [rbp + 0x18]
mov eax, r14d
neg eax
sbb ecx, ecx
and ecx, 4
add ecx, 0xfffffffe
imul ecx, edi
mov rdi, qword [rbp + 0x20]
mov dword [rdi + r13], ecx
cmp r12d, edx
jne 0x1800b97c5
test ecx, ecx
je 0x1800b97be
mov eax, esi
neg eax
add eax, eax
cmp ecx, eax
jne 0x1800b97c5
lea eax, [rcx - 1]
mov dword [rdi + r13], eax
mov rcx, qword [rbp + 0x30]
add rdi, 4
sub qword [rbp + 0x28], rdx
mov r9, qword [rbp + 0x10]
mov r8d, dword [rbp + 0xc]
mov rbx, qword [rbp + 0x48]
mov r11, qword [rbp + 0x148]
mov qword [rbp + 0x20], rdi
jne 0x1800b95d6
mov r13d, dword [rbp + 8]
mov r9d, dword [rbp + 0x140]
lea r8, [0x1800f67c8]
mov r15, qword [rbp + 0x170]
lea r12, [rbp + 0x38]
mov rax, rsi
mov dword [rbp], r10d
shl rax, 3
mov rcx, rsi
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x20], r12
lea rdi, [rax + r8]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x28], rdi
mov esi, dword [rax]
mov eax, r14d
shl eax, 2
movsxd rbx, eax
test r14d, r14d
lea rax, [r14 + rcx*2]
mov dword [rbp + 4], esi
cmovne r9d, r10d
shl rax, 2
lea r10, [r8 + 1]
mov dword [rbp + 0x10], r9d
sub rax, rbx
mov r8d, 2
add r10, rax
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x68], r10
movsx ecx, byte [r10 + rbx - 1]
mov eax, esi
add ecx, ecx
sub eax, ecx
movsx ecx, byte [r10 + rbx]
cdq
add ecx, ecx
mov r11d, eax
mov eax, esi
xor r11d, edx
sub eax, ecx
sub r11d, edx
cdq
imul r11d, dword [r15]
mov r10d, eax
xor r10d, edx
sub r10d, edx
imul r10d, dword [r15]
add r10d, r9d
cmp r13d, 1
jle 0x1800b994a
mov rax, qword [rbp + 0x28]
lea r12d, [r13 - 1]
movsx edi, byte [rbx + rdi]
mov esi, dword [rbp + 0x140]
add edi, edi
movsx eax, byte [rbx + rax + 1]
add eax, eax
mov dword [rbp + 0xc], eax
lea rax, [r15 + 4]
mov r14d, dword [rbp + 0xc]
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x18]
mov r13, qword [rbp + 0x60]
sub rax, r15
mov r15, rax
mov r8d, dword [r15 + r13]
lea ecx, [r10 + rsi]
lea r9d, [r11 + rsi]
mov eax, r8d
sub eax, edi
cdq
xor eax, edx
sub eax, edx
imul eax, dword [r13]
cmp r11d, ecx
cmovl ecx, r11d
sub r8d, r14d
lea r11d, [rcx + rax]
mov ecx, r10d
mov eax, r8d
cdq
xor eax, edx
sub eax, edx
imul eax, dword [r13]
lea r13, [r13 + 4]
cmp r9d, r10d
cmovl ecx, r9d
lea r10d, [rcx + rax]
sub r12, 1
jne 0x1800b98de
mov esi, dword [rbp + 4]
mov r15, qword [rbp + 0x170]
mov r12, qword [rbp + 0x20]
mov r13d, dword [rbp + 8]
mov r9d, dword [rbp + 0x10]
mov r8, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x28]
cmp r11d, r10d
cmovl r10d, r11d
add rbx, 2
mov dword [r12], r10d
mov r11d, 1
mov r10, qword [rbp + 0x68]
add r12, 4
sub r8, r11
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x30], r8
jne 0x1800b9866
mov eax, dword [rbp + 0x38]
mov edi, dword [rbp]
movsxd r14, dword [rbp + 0x40]
cmp dword [rbp + 0x3c], eax
jge 0x1800b9991
test r14d, r14d
cmovne edi, r11d
mov dword [rbp], edi
mov r10, qword [rbp + 0x70]
lea r12, [0x1800f67c8]
lea eax, [rdi + r14*2]
add eax, eax
movsxd r8, eax
mov eax, esi
add r8, r10
movsx ecx, byte [r8 + r12]
add ecx, ecx
sub eax, ecx
movsx ecx, byte [r8 + r12 + 1]
cdq
add ecx, ecx
mov ebx, eax
sub esi, ecx
xor ebx, edx
mov eax, esi
sub ebx, edx
cdq
imul ebx, dword [r15]
mov r8d, eax
xor r8d, edx
sub r8d, edx
imul r8d, dword [r15]
add r8d, r9d
cmp r13d, r11d
jle 0x1800b9aa9
mov ecx, edi
lea r12d, [r13 - 1]
mov rdi, qword [rbp + 0x18]
mov esi, 4
mov r13d, dword [rbp + 0x140]
sub rdi, r15
lea rdx, [rcx + r14*2]
lea r14, [r10 + rdx*2]
lea ecx, [r8 + r13]
mov r10d, ebx
cmp ebx, ecx
cmovge r10d, ecx
xor eax, eax
cmp ebx, ecx
mov rcx, qword [rbp + 0x58]
setge al
mov dword [rsi + rcx], eax
lea ecx, [rbx + r13]
cmp ecx, r8d
mov r11d, ecx
cmovge r11d, r8d
xor eax, eax
cmp ecx, r8d
mov rcx, qword [rbp + 0x50]
setge al
mov dword [rsi + rcx], eax
lea rax, [rsi + r15]
mov r9d, dword [rax]
lea rsi, [rsi + 4]
mov r8d, dword [rax + rdi]
lea rax, [0x1800f67c8]
movsx ecx, byte [r14 + rax]
mov eax, r8d
add ecx, ecx
sub eax, ecx
cdq
mov ebx, eax
lea rax, [0x1800f67c8]
movsx ecx, byte [r14 + rax + 1]
xor ebx, edx
sub ebx, edx
add ecx, ecx
sub r8d, ecx
imul ebx, r9d
mov eax, r8d
cdq
mov r8d, eax
xor r8d, edx
sub r8d, edx
add ebx, r10d
imul r8d, r9d
add r8d, r11d
mov r11d, 1
sub r12, r11
jne 0x1800b9a05
mov edi, dword [rbp]
mov r13d, dword [rbp + 8]
xor eax, eax
movsxd rcx, r13d
cmp ebx, r8d
mov r8, qword [rbp + 0x78]
setge al
mov dword [r8 + rcx*4 - 4], eax
lea eax, [r13 - 2]
movsxd rdx, eax
test eax, eax
js 0x1800b9afb
mov rcx, qword [rbp + 0x50]
mov r9, qword [rbp + 0x58]
sub r9, rcx
sub r8, rcx
lea rax, [rcx + 4]
lea rax, [rax + rdx*4]
mov rcx, rax
cmp dword [r8 + rax], r11d
je 0x1800b9aeb
lea rcx, [r9 + rax]
mov ecx, dword [rcx]
mov dword [r8 + rax - 4], ecx
sub rax, 4
sub rdx, r11
jns 0x1800b9ade
mov eax, edi
mov rcx, qword [rbp + 0x80]
xor rcx, rbp
call fcn.1800e3250
mov rbx, qword [rbp + 0x120]
mov rsi, qword [rbp + 0x128]
mov rdi, qword [rbp + 0x130]
movaps xmm6, xmmword [rbp + 0xe0]
movaps xmm7, xmmword [rbp + 0xd0]
movaps xmm8, xmmword [rbp + 0xc0]
movaps xmm9, xmmword [rbp + 0xb0]
movaps xmm10, xmmword [rbp + 0xa0]
movaps xmm11, xmmword [rbp + 0x90]
lea rsp, [rbp + 0xf0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret