Function at 0x1800400d0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xf0
lea ebx, [r8 + 0x10a]
movaps xmmword [rax - 0x48], xmm6
mov dword [rsp + 0x40], ebx
mov rsi, r9
mov r15, rcx
cmp r8d, ebx
jae case.0x180040171.10
mov rdi, qword [rbp + 0x7f]
lea r14d, [r8 - 0x22]
movzx r13d, word [rbp + 0x6f]
lea r9, [0x180000000]
mov rbx, qword [rbp + 0x5f]
mov rdx, 0xffffffffffffffff
mov r12, qword [rbp + 0x5f]
xorps xmm6, xmm6
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
nop word [rax + rax]
cmp r14d, 0x9d
ja case.default.0x180040171
movzx eax, byte [r9 + r14 + 0x408bc]
mov ecx, dword [r9 + rax*4 + 0x40884]
add rcx, r9
jmp rcx
mov qword [rsp + 0x48], rdx
lea rax, [rsp + 0x50]
mov rdx, rdi
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
mov qword [rbp - 0x71], 0
lea r8, [rbp - 0x71]
mov dword [rsp + 0x50], 0
mov ecx, 0x111
call fcn.18005fe40
mov dword [r15], eax
mov r8d, dword [rbp + 0x6f]
lea r9, [0x180000000]
mov rdx, 0xffffffffffffffff
jmp case.0x180040171.13
movups xmm0, xmmword [rbp - 0x21]
mov eax, dword [rbp - 1]
movups xmm1, xmmword [rbp - 0x11]
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm1
mov dword [r15 + 0x20], eax
jmp case.0x180040171.13
mov rdx, qword [rsi]
mov ecx, 1
lea rax, [rdx - 1]
cmp rdx, rcx
jbe 0x1800407b4
cmp rax, 0x10
jb 0x180040281
and eax, 0xf
mov r8, rdx
sub r8, rax
xorps xmm3, xmm3
lea rax, [rdi + 0x12]
xorps xmm2, xmm2
movdqu xmm0, xmmword [rax - 0x10]
add rcx, 0x10
movdqu xmm1, xmmword [rax - 0x12]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rax - 0x22]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp rcx, r8
jb 0x180040211
mov r8d, dword [rbp + 0x6f]
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movd eax, xmm2
or r13w, ax
cmp rcx, rdx
jae 0x1800407b4
nop word [rax + rax]
movzx eax, word [rdi + rcx*2 - 2]
xor ax, word [rdi + rcx*2]
inc rcx
or r13w, ax
cmp rcx, rdx
jb 0x180040290
jmp 0x1800407b4
xor r9d, r9d
mov qword [rsp + 0x28], 0
lea rdx, [rbp - 0x69]
mov qword [rsp + 0x20], 0
lea rcx, [rbp - 0x69]
lea r8d, [r9 + 0x5b]
call fcn.18000f320
mov dword [rsp + 0x38], 0x45
lea rax, [rbp - 0x69]
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x51]
lea rax, [rbp - 0x21]
mov qword [rsp + 0x28], 0
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor edx, edx
call fcn.180026900
jmp 0x1800401ab
test r13w, r13w
je case.0x180040171.13
xor r9d, r9d
mov word [rbp - 0x79], r13w
lea r8, [rbp - 0x79]
mov dword [rsp + 0x20], 0xc2
xor edx, edx
xor ecx, ecx
call fcn.180022410
mov rcx, qword [rsi]
lea r8, [rsp + 0x48]
mov qword [rbp - 0x71], rcx
lea rdx, [rbp - 0x71]
lea rcx, [rsp + 0x50]
mov word [rsp + 0x50], ax
mov r9d, 0x4d
mov word [rsp + 0x48], r13w
mov qword [rsp + 0x20], rdi
call fcn.180039df0
jmp 0x1800401ab
xor r13d, r13d
jmp case.0x180040171.13
mov rbx, qword [rdi + 0xc0]
jmp case.0x180040171.13
mov eax, 0xd5
nop
cmp eax, 0xd5
je 0x1800407de
add eax, 0x6303
cmp eax, 0x6303
jbe 0x180040380
test r12, r12
je case.0x180040171.13
xor r9d, r9d
mov qword [rbp - 0x71], r12
mov r8d, 0xf2
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x71]
xor ecx, ecx
call fcn.18002c4f0
mov rcx, qword [rsi]
lea r9, [rsp + 0x48]
mov qword [rsp + 0x48], rax
lea r8, [rbp - 0x59]
mov qword [rbp - 0x59], rcx
lea rax, [rsp + 0x50]
mov ecx, 0x72
mov qword [rsp + 0x50], r12
mov rdx, rdi
mov qword [rsp + 0x20], rax
call fcn.180041420
jmp 0x1800401ab
movss xmm1, dword [rdi]
movaps xmm0, xmm6
movss xmm2, dword [rdi + 4]
subss xmm1, dword [rsi]
subss xmm2, dword [rsi + 4]
unpcklps xmm0, xmm6
movsd qword [rbp - 0x51], xmm0
movss xmm0, dword [rdi + 8]
subss xmm0, dword [rsi + 8]
mov dword [rbp - 0x39], 0x3f800000
mov eax, dword [rbp - 0x39]
mov dword [rbp - 0x49], eax
unpcklps xmm1, xmm2
movss dword [rbp - 0x29], xmm0
mov eax, dword [rbp - 0x29]
mov dword [rbp - 0x61], eax
movsd qword [rbp - 0x69], xmm1
jmp case.0x180040171.13
movzx eax, word [rsi + 2]
lea r8, [rsp + 0x48]
mov edx, 0xa0
mov dword [rsp + 0x48], eax
mov rcx, rdi
call fcn.18002c720
mov r9, rdi
xor r8d, r8d
xor edx, edx
mov ecx, 0xdf
mov r15d, eax
call fcn.18006cbc0
mov edx, dword [rsi + 4]
mov ecx, edx
sub ecx, dword [rbx + 0xc0]
cmp ecx, 0x960
jge 0x1800404d8
mov dword [rbx + 0xc0], edx
mov eax, dword [rsi + 4]
mov dword [rdi + 0xdc], eax
movsxd rax, dword [rbx + 0xe4]
movzx ecx, word [rsi + 2]
cmp ecx, dword [rbx + rax*4 + 0xd8]
jle 0x1800404cf
mov dword [rbx + rax*4 + 0xd8], ecx
mov eax, dword [rsi + 4]
movsxd rcx, dword [rbx + 0xe4]
mov dword [rbx + rcx*4 + 0xd0], eax
movsxd rax, dword [rbx + 0xe4]
mov byte [rax + rbx + 0xe0], r15b
mov r15, qword [rbp + 0x5f]
jmp 0x1800401ab
cmp ecx, 0x5dc0
jge 0x180040563
mov ecx, 0x1d
nop dword [rax]
mov rdx, 0xffffffffffffffff
cmp ecx, 0x1d
je 0x180040532
cmp ecx, 0x13d3
jne 0x180040541
mov dword [rbx + 0xe4], 1
mov eax, dword [rsi + 4]
mov dword [rbx + 0xd4], eax
movzx eax, word [rsi + 2]
mov dword [rbx + 0xdc], eax
movsxd rax, dword [rbx + 0xe4]
mov byte [rax + rbx + 0xe0], r15b
jmp 0x180040541
mov dword [rbx + 0xc4], edx
mov eax, dword [rsi + 4]
mov dword [rbx + 0xc0], eax
add ecx, 0x13b6
cmp ecx, 0x276c
jbe 0x1800404f0
mov r15, qword [rbp + 0x5f]
lea r9, [0x180000000]
mov r8d, dword [rbp + 0x6f]
jmp case.0x180040171.13
cmp ecx, 0x5a550
jle 0x1800404cf
mov r14d, 0xbc
nop word [rax + rax]
mov eax, r14d
sub eax, 0xbc
je 0x18004063b
sub eax, 1
je 0x18004060f
sub eax, 1
je 0x1800405e9
sub eax, 1
je 0x1800405c1
mov rdx, 0xffffffffffffffff
cmp eax, 1
jne 0x1800406e2
movsxd rax, dword [rbx + 0xe4]
mov byte [rax + rbx + 0xe0], r15b
jmp 0x1800406e2
movsxd rcx, dword [rbx + 0xe4]
mov eax, dword [rsi + 4]
mov dword [rbx + rcx*4 + 0xd0], eax
movsxd rax, dword [rbx + 0xe4]
movzx ecx, word [rsi + 2]
mov dword [rbx + rax*4 + 0xd8], ecx
jmp 0x1800406db
mov rdx, 0xffffffffffffffff
mov word [rbx + 0xe0], dx
mov eax, dword [rsi + 4]
mov dword [rbx + 0xc0], eax
mov dword [rbx + 0xe4], 0
jmp 0x1800406e2
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx + 0xc0], xmm0
mov rdx, 0xffffffffffffffff
movups xmmword [rbx + 0xd0], xmm0
mov qword [rbx + 0xe0], rax
mov dword [rbx + 0xc4], edx
jmp 0x1800406e2
mov eax, dword [rbx + 0xd8]
test eax, eax
je 0x180040688
lea r8, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov edx, 0xa0
mov rcx, rdi
call fcn.18002c720
mov r10, qword [rdi]
xor ecx, ecx
mov r9d, dword [rbx + 0xd8]
mov r8d, eax
mov dword [rsp + 0x30], ecx
mov edx, 0xffffffff
mov dword [rsp + 0x28], ecx
mov ecx, dword [rbx + 0xd0]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call qword [r10 + 0x10]
mov eax, dword [rbx + 0xdc]
test eax, eax
je 0x1800406db
lea r8, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov edx, 0xa0
mov rcx, rdi
call fcn.18002c720
mov ecx, dword [rbx + 0xd4]
mov r8d, eax
mov r10, qword [rdi]
mov edx, 0xfffffffe
mov r9d, dword [rbx + 0xdc]
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call qword [r10 + 0x10]
mov rdx, 0xffffffffffffffff
inc r14d
cmp r14d, 0xc1
jb 0x180040580
mov r14d, dword [rsp + 0x50]
lea r9, [0x180000000]
mov r15, qword [rbp + 0x5f]
mov r8d, dword [rbp + 0x6f]
jmp case.0x180040171.13
mov rdx, qword [rsi]
xor r12d, r12d
mov ecx, 1
lea rax, [rdx - 1]
cmp rdx, rcx
jbe 0x1800407b4
cmp rax, 4
jb 0x180040793
and eax, 3
mov r8, rdx
sub r8, rax
xorps xmm3, xmm3
lea rax, [rdi + 0x18]
xorps xmm2, xmm2
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
add rcx, 4
movdqu xmm1, xmmword [rax - 0x18]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rax - 0x28]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp rcx, r8
jb 0x180040740
mov r8d, dword [rbp + 0x6f]
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movq r12, xmm2
cmp rcx, rdx
jae 0x1800407b4
nop dword [rax + rax]
mov rax, qword [rdi + rcx*8 - 8]
xor rax, qword [rdi + rcx*8]
inc rcx
or r12, rax
cmp rcx, rdx
jb 0x1800407a0
mov rdx, 0xffffffffffffffff
mov eax, dword [rsp + 0x40]
add r8d, 0x13
add r14d, 0x13
mov dword [rbp + 0x6f], r8d
mov dword [rsp + 0x50], r14d
cmp r8d, eax
jb 0x180040150
jmp case.0x180040171.10
mov rdx, qword [rbp + 0x67]
movss xmm2, dword [rdx + 0xc]
mulss xmm2, dword [rsi + 4]
movss xmm0, dword [rdx]
mulss xmm0, dword [rsi]
movss xmm1, dword [rdx + 0x18]
mulss xmm1, dword [rsi + 8]
addss xmm2, xmm0
addss xmm2, xmm1
movss dword [rdi], xmm2
movss xmm0, dword [rdx + 0x10]
mulss xmm0, dword [rsi + 4]
movss xmm1, dword [rdx + 0x1c]
mulss xmm1, dword [rsi + 8]
movss xmm3, dword [rdx + 4]
mulss xmm3, dword [rsi]
addss xmm3, xmm0
addss xmm3, xmm1
movss dword [rdi + 4], xmm3
movss xmm2, dword [rdx + 8]
mulss xmm2, dword [rsi]
movss xmm0, dword [rdx + 0x14]
mulss xmm0, dword [rsi + 4]
movss xmm1, dword [rdx + 0x20]
mulss xmm1, dword [rsi + 8]
addss xmm2, xmm0
addss xmm2, xmm1
movss dword [rdi + 8], xmm2
mov rbx, qword [rsp + 0x148]
mov rax, r15
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret