Function at 0x18004361c
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
vmovaps xmmword [rsp + 0xa0], xmm6
mov r14, rcx
movsxd r8, dword [rcx + 0x484]
mov r10, qword [rcx + 0x60]
mov edx, dword [rcx + 0x30]
shl r8, 5
test byte [rcx], 2
lea rax, [r10 + r8 + 4]
movzx r9d, word [rax]
mov qword [rsp + 0x68], rcx
jne 0x18004378d
lea rcx, [r9 + 0x6d]
mov rdi, qword [r14 + 0x20]
mov r11, qword [0x1800aa4b0]
movabs rsi, 0x79ce80e4794da07f
add rsi, r11
add r8, r10
add r8, 6
movzx r10d, word [r8]
mov bl, byte [0x1800b5e85]
test rdi, rdi
je 0x1800437d5
test bl, 1
jne 0x1800436fb
movabs rdx, 0x79ce80e4794da065
add r11, rdx
xor edx, edx
movabs rdi, 0x4ec4ec4ec4ec4ec5
lea rbx, [0x1800b5320]
mulx r14, r14, rdi
shr r14, 3
imul r14, r14, 0xffffffffffffffe6
add r14, r11
mov bpl, byte [rdx + r14]
xor bpl, byte [rsi + rdx]
mov byte [rdx + rbx], bpl
inc rdx
cmp rdx, 0xb65
jne 0x1800436bf
mov byte [0x1800b5e85], 1
mov r14, qword [rsp + 0x68]
mov rdi, qword [r14 + 0x20]
mov edx, dword [r14 + 0x30]
add rdi, r9
movsxd r9, edx
imul r9, r10
add r9, rdi
lea r10, [0x1800b5320]
xor r11d, r11d
xor edx, edx
cmp byte [r10 + rdx], 0x2e
sete bl
neg bl
mov byte [r9 + rdx], bl
inc rdx
cmp rdx, 0x6c
jne 0x180043714
movsxd rdx, dword [r14 + 0x30]
inc r11d
add r9, rdx
add r10, 0x6c
cmp r11d, 0x1b
jne 0x180043712
movzx r8d, word [r8]
add rcx, qword [r14 + 0x20]
imul rdx, r8
add rdx, rcx
lea rcx, [0x1800b5320]
xor r8d, r8d
xor r9d, r9d
cmp byte [rcx + r9], 0x58
sete r10b
neg r10b
mov byte [rdx + r9], r10b
inc r9
cmp r9, 0x6c
jne 0x18004375b
movsxd r9, dword [r14 + 0x30]
inc r8d
add rdx, r9
add rcx, 0x6c
cmp r8d, 0x1b
jne 0x180043758
jmp 0x18004390a
movsxd r11, edx
movzx ecx, word [r10 + r8 + 6]
imul rcx, r11
add rcx, r9
mov r8, qword [r14 + 0x20]
test r8, r8
je 0x1800438da
add edx, ecx
movsxd rdx, edx
mov r9b, 0xff
mov byte [rdx + r8 + 1], r9b
mov r8, qword [r14 + 0x20]
mov byte [r8 + rdx], r9b
mov rdx, qword [r14 + 0x20]
mov byte [rcx + rdx + 1], r9b
mov rdx, qword [r14 + 0x20]
mov byte [rdx + rcx], r9b
jmp 0x18004390a
test bl, 1
jne 0x180043832
movabs rdx, 0x79ce80e4794da065
add r11, rdx
xor edx, edx
movabs rdi, 0x4ec4ec4ec4ec4ec5
lea rbx, [0x1800b5320]
mulx r14, r14, rdi
shr r14, 3
imul r14, r14, 0xffffffffffffffe6
add r14, r11
mov bpl, byte [rdx + r14]
xor bpl, byte [rsi + rdx]
mov byte [rdx + rbx], bpl
inc rdx
cmp rdx, 0xb65
jne 0x1800437fa
mov byte [0x1800b5e85], 1
mov r14, qword [rsp + 0x68]
mov edx, dword [r14 + 0x30]
mov r9d, r9d
shl r9, 2
add r9, qword [r14 + 0x28]
movsxd rdx, edx
imul rdx, r10
lea rdx, [r9 + rdx*4]
lea r9, [0x1800b5320]
xor r10d, r10d
xor r11d, r11d
xor esi, esi
cmp byte [r9 + r11], 0x2e
sete sil
neg esi
mov dword [rdx + r11*4], esi
inc r11
cmp r11, 0x6c
jne 0x180043855
movsxd r11, dword [r14 + 0x30]
inc r10d
lea rdx, [rdx + r11*4]
add r9, 0x6c
cmp r10d, 0x1b
jne 0x180043852
movzx edx, word [r8]
mov ecx, ecx
shl rcx, 2
add rcx, qword [r14 + 0x28]
imul r11, rdx
lea rcx, [rcx + r11*4]
lea rdx, [0x1800b5320]
xor r8d, r8d
xor r9d, r9d
xor r10d, r10d
cmp byte [rdx + r9], 0x58
sete r10b
neg r10d
mov dword [rcx + r9*4], r10d
inc r9
cmp r9, 0x6c
jne 0x1800438a7
movsxd r9, dword [r14 + 0x30]
inc r8d
lea rcx, [rcx + r9*4]
add rdx, 0x6c
cmp r8d, 0x1b
jne 0x1800438a4
jmp 0x18004390a
mov r8, qword [r14 + 0x28]
add edx, ecx
movsxd rdx, edx
mov r9d, 0xffffffff
mov dword [r8 + rdx*4 + 4], r9d
mov r8, qword [r14 + 0x28]
mov dword [r8 + rdx*4], r9d
mov rdx, qword [r14 + 0x28]
movsxd rcx, ecx
mov dword [rdx + rcx*4 + 4], r9d
mov rdx, qword [r14 + 0x28]
mov dword [rdx + rcx*4], r9d
vmovd xmm0, dword [rax]
vpmovzxwd xmm0, xmm0
vcvtdq2ps xmm0, xmm0
vaddps xmm0, xmm0, dword [0x18008c544]{1to4}
vmovsd xmm1, qword [r14 + 0x38]
vmulps xmm0, xmm1, xmm0
vmovlps qword [r14 + 0x40], xmm0
test byte [r14], 4
jne 0x180043bd0
movsxd rax, dword [r14 + 0x488]
mov rcx, qword [r14 + 0x60]
shl rax, 5
lea rdx, [rcx + rax]
mov qword [rsp + 0x98], rdx
lea r8, [rcx + rax]
add r8, 6
mov r13, 0xffffffffffffffc0
vmovss xmm6, dword [0x18008c544]
xor edi, edi
mov dword [rsp + 0x64], 0
xor r15d, r15d
mov qword [rsp + 0x90], r8
mov rax, qword [rsp + 0x98]
movzx edx, word [rax]
lea eax, [r15 + rdx]
mov r12d, eax
shr r12d, 1
lea r9, [r12 + r13]
add r9, 0x40
mov ebx, edx
sub ebx, r12d
add ebx, r15d
mov rbp, qword [r14 + 0x20]
test rbp, rbp
mov qword [rsp + 0x70], rdx
je 0x180043a70
movzx r10d, word [r8 - 2]
movzx r8d, word [r8]
mov rcx, r14
mov qword [rsp + 0x78], r8
lea r14d, [r8 + r13]
add r14d, 0x40
mov esi, dword [rcx + 0x30]
imul r14d, esi
mov dword [rsp + 0x80], r10d
add r14d, r10d
add r14, rbp
cmp eax, 2
jb 0x180043a0e
mov r8d, r12d
mov rcx, r14
xor edx, edx
mov qword [rsp + 0x88], r9
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
cmp r13, 0xffffffffffffffc0
je 0x180043a33
lea r8, [r13 + 0x40]
mov eax, r12d
add r14, rax
mov rcx, r14
mov dl, 0xff
mov r14, r9
call sub.VCRUNTIME140.dll_memset
mov r9, r14
mov rdx, qword [rsp + 0x70]
cmp r9d, edx
mov r14, qword [rsp + 0x68]
je 0x180043b31
mov rax, qword [rsp + 0x78]
add eax, dword [rsp + 0x64]
imul esi, eax
add esi, dword [rsp + 0x80]
add rbp, r12
add rbp, rsi
lea rcx, [rbp + 0x40]
add rcx, r13
cmp ebx, 1
adc ebx, 0
jmp 0x180043b27
mov r10, qword [r14 + 0x28]
movzx r11d, word [r8 - 2]
movzx ebp, word [r8]
lea ecx, [r13 + rbp + 0x40]
mov esi, dword [r14 + 0x30]
imul ecx, esi
mov dword [rsp + 0x78], r11d
add ecx, r11d
mov qword [rsp + 0x80], r10
lea r14, [r10 + rcx*4]
cmp eax, 2
jb 0x180043ac8
mov r8d, r12d
shl r8, 2
mov rcx, r14
xor edx, edx
mov qword [rsp + 0x88], r9
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
cmp r13, 0xffffffffffffffc0
je 0x180043aea
mov eax, r12d
lea rcx, [r14 + rax*4]
mov dl, 0xff
mov r8, rdi
mov r14, r9
call sub.VCRUNTIME140.dll_memset
mov r9, r14
mov rdx, qword [rsp + 0x70]
cmp r9d, edx
mov r14, qword [rsp + 0x68]
je 0x180043b31
add ebp, dword [rsp + 0x64]
imul esi, ebp
add esi, dword [rsp + 0x78]
shl rsi, 2
lea rax, [rsi + r12*4]
mov rcx, qword [rsp + 0x80]
add rcx, rax
lea rcx, [rcx + r13*4]
add rcx, 0x100
cmp ebx, 1
adc ebx, 0
shl rbx, 2
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov r8, qword [rsp + 0x90]
movzx eax, word [r8]
lea ecx, [rax + r13]
add ecx, 0x40
vcvtusi2ss xmm0, xmm16, ecx
movzx ecx, word [r8 - 2]
lea edx, [r12 + rcx - 1]
vcvtusi2ss xmm1, xmm16, edx
vmovss xmm2, dword [r14 + 0x38]
vmovss xmm3, dword [r14 + 0x3c]
vmulss xmm0, xmm3, xmm0
vmulss xmm1, xmm2, xmm1
add eax, r13d
add eax, 0x41
vcvtusi2ss xmm4, xmm16, eax
add r12d, ecx
lea eax, [r12 + r13]
add eax, 0x41
vcvtusi2ss xmm5, xmm16, eax
vmulss xmm3, xmm3, xmm4
vaddss xmm0, xmm0, xmm3
vmulss xmm2, xmm2, xmm5
vmulss xmm0, xmm0, xmm6
vmovss dword [r14 + rdi*4 + 0x78], xmm1
vmovss dword [r14 + rdi*4 + 0x7c], xmm0
vmovss dword [r14 + rdi*4 + 0x80], xmm2
vmovss dword [r14 + rdi*4 + 0x84], xmm0
dec r15d
inc dword [rsp + 0x64]
add rdi, 4
inc r13
jne 0x180043982
mov eax, dword [r14 + 0x58]
test eax, eax
jle 0x180043ccf
xor esi, esi
xor edi, edi
mov rdx, qword [r14 + 0x60]
mov rcx, qword [rdx + rsi + 0x18]
test rcx, rcx
je 0x180043cbc
mov r8d, dword [rdx + rsi + 8]
test r8d, r8d
je 0x180043cbc
movzx eax, word [rdx + rsi + 6]
vcvtsi2ss xmm0, xmm19, eax
vmovss xmm1, dword [r14 + 0x38]
vmovss xmm2, dword [r14 + 0x3c]
movzx r9d, word [rdx + rsi + 4]
vcvtsi2ss xmm3, xmm19, r9d
movzx r10d, word [rdx + rsi + 2]
add eax, r10d
vcvtsi2ss xmm4, xmm19, eax
vmulss xmm0, xmm2, xmm0
vmulss xmm5, xmm1, xmm3
vmulss xmm2, xmm2, xmm4
movzx eax, word [rdx + rsi]
add r9d, eax
vcvtsi2ss xmm3, xmm19, r9d
vmulss xmm1, xmm1, xmm3
vcvtsi2ss xmm3, xmm19, r10d
vmovss xmm4, dword [rdx + rsi + 0x14]
vaddss xmm16, xmm4, xmm3
vmovss xmm17, dword [rdx + rsi + 0xc]
vmovss xmm3, dword [rdx + rsi + 0x10]
vcvtsi2ss xmm18, xmm19, eax
vaddss xmm18, xmm3, xmm18
vmovss dword [rsp + 0x58], xmm17
vmovss dword [rsp + 0x40], xmm0
vmovss dword [rsp + 0x38], xmm5
vmovss dword [rsp + 0x30], xmm16
vmovss dword [rsp + 0x28], xmm18
vmovss dword [rsp + 0x20], xmm4
vmovss dword [rsp + 0x50], xmm2
vmovss dword [rsp + 0x48], xmm1
xor edx, edx
call fcn.180043d1e
mov eax, dword [r14 + 0x58]
inc rdi
movsxd rcx, eax
add rsi, 0x20
cmp rdi, rcx
jl 0x180043be0
mov eax, dword [r14 + 0x48]
test eax, eax
jle 0x180043cfb
xor esi, esi
mov rcx, qword [r14 + 0x50]
mov rcx, qword [rcx + rsi*8]
cmp byte [rcx + 0x58], 0
je 0x180043cf0
call fcn.180043fb2
mov eax, dword [r14 + 0x48]
inc rsi
movsxd rcx, eax
cmp rsi, rcx
jl 0x180043cd9
mov byte [r14 + 0x19], 1
vmovaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret