Function at 0x18002ac80
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
push rbp
push r12
push r14
lea rbp, [r11 - 0x38]
sub rsp, 0x120
movaps xmmword [r11 - 0x28], xmm6
movaps xmmword [r11 - 0x38], xmm7
movaps xmmword [r11 - 0x48], xmm8
movaps xmmword [r11 - 0x58], xmm9
movaps xmmword [r11 - 0x68], xmm10
movaps xmmword [r11 - 0x78], xmm11
movaps xmmword [r11 - 0x88], xmm12
movaps xmmword [r11 - 0x98], xmm13
movaps xmmword [r11 - 0xa8], xmm14
mov rax, qword [0x18008d040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rdi, qword [0x18008dc98]
mov r12, rdx
mov r14, rcx
mov rax, qword [rdi + 0x1860]
mov byte [rax + 0x92], 1
mov rbx, qword [rdi + 0x1860]
cmp byte [rbx + 0x94], 0
jne 0x18002afe1
movsxd r8, dword [rbx + 0x1d0]
xor edx, edx
mov rax, qword [rbx + 0x1d8]
mov qword [r11 + 8], r15
movaps xmmword [r11 - 0xb8], xmm15
mov r8d, dword [rax + r8*4 - 4]
call fcn.18001ea20
mov esi, eax
cmp dword [rdi + 0x1890], eax
jne 0x18002ad4a
mov byte [rdi + 0x189c], 1
mov rcx, r14
cmp r14, 0xffffffffffffffff
jae 0x18002ad70
movzx edx, byte [rcx]
test dl, dl
je 0x18002ad70
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x18002ad67
cmp byte [rax], dl
je 0x18002ad70
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x18002ad53
mov r15, qword [rdi + 0x1770]
movss xmm6, dword [rdi + 0x1778]
cmp r14, rcx
jne 0x18002ad8e
xorps xmm8, xmm8
xorps xmm14, xmm14
jmp 0x18002adf2
movss xmm0, dword [0x18008261c]
lea rdx, [rsp + 0x48]
movss xmm3, dword [0x180082610]
movaps xmm2, xmm6
mov qword [rsp + 0x30], rcx
mov rcx, r15
mov qword [rsp + 0x28], r14
movss dword [rsp + 0x20], xmm0
call fcn.18003dcb0
movss xmm0, dword [rsp + 0x48]
xorps xmm8, xmm8
comiss xmm0, xmm8
jbe 0x18002add7
divss xmm6, dword [r15]
subss xmm0, xmm6
addss xmm0, dword [0x18008252c]
movss xmm6, dword [rsp + 0x4c]
cvttss2si eax, xmm0
movd xmm14, eax
cvtdq2ps xmm14, xmm14
movss xmm1, dword [rdi + 0x1460]
lea rcx, [rsp + 0x48]
movss xmm11, dword [rbx + 0xe0]
movaps xmm7, xmm1
movss xmm12, dword [rbx + 0xe4]
addss xmm7, xmm1
addss xmm7, xmm6
movaps xmm9, xmm7
addss xmm7, xmm12
addss xmm9, xmm11
movaps xmm15, xmm7
movaps xmm0, xmm9
subss xmm15, xmm12
subss xmm0, xmm11
movss dword [rsp + 0x4c], xmm15
movss dword [rsp + 0x48], xmm0
call fcn.18001fa10
comiss xmm14, xmm8
mov r15, qword [rsp + 0x140]
movaps xmm4, xmm9
movss dword [rsp + 0x58], xmm11
movss dword [rsp + 0x60], xmm4
movaps xmm5, xmm7
movss dword [rsp + 0x5c], xmm12
movss dword [rsp + 0x64], xmm7
jbe 0x18002ae8d
movss xmm1, dword [rdi + 0x1474]
xorps xmm0, xmm0
call fcn.18002f1f0
comiss xmm14, xmm8
movss xmm0, dword [rbx + 0xe0]
movaps xmm3, xmm11
movss xmm1, dword [rdi + 0x1460]
addss xmm0, xmm8
movaps xmm2, xmm1
movss dword [rsp + 0x58], xmm3
addss xmm2, dword [rbx + 0xe4]
movaps xmm10, xmm0
movss dword [rsp + 0x48], xmm0
addss xmm10, xmm14
movss dword [rsp + 0x68], xmm0
movaps xmm13, xmm2
movss dword [rsp + 0x44], xmm2
addss xmm13, xmm6
movss dword [rsp + 0x6c], xmm2
movaps xmm2, xmm12
movss dword [rsp + 0x5c], xmm2
movss dword [rsp + 0x70], xmm10
movss dword [rsp + 0x74], xmm13
jbe 0x18002af65
movaps xmm0, xmm10
movss dword [rsp + 0x54], xmm15
subss xmm0, dword [rsp + 0x48]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x50], xmm0
call fcn.18001fa10
movaps xmm5, xmm7
movaps xmm4, xmm9
maxss xmm5, xmm13
movaps xmm3, xmm11
movss xmm13, dword [rsp + 0x44]
maxss xmm4, xmm10
minss xmm3, dword [rsp + 0x48]
movaps xmm2, xmm12
minss xmm2, xmm13
movss dword [rsp + 0x64], xmm5
movss dword [rsp + 0x60], xmm4
movss dword [rsp + 0x58], xmm3
movss dword [rsp + 0x5c], xmm2
jmp 0x18002af6c
movss xmm13, dword [rsp + 0x44]
mov rdx, qword [0x18008dc98]
movaps xmm15, xmmword [rsp + 0x80]
mov rcx, qword [rdx + 0x1860]
comiss xmm5, dword [rcx + 0x1e4]
jbe 0x18002afb3
movss xmm0, dword [rcx + 0x1ec]
comiss xmm0, xmm2
jbe 0x18002afb3
comiss xmm4, dword [rcx + 0x1e0]
jbe 0x18002afb3
movss xmm0, dword [rcx + 0x1e8]
comiss xmm0, xmm3
ja 0x18002b03d
test esi, esi
je 0x18002afbf
cmp esi, dword [rdx + 0x1890]
je 0x18002b03d
cmp byte [rdx + 0x2a38], 0
jne 0x18002b03d
movups xmm0, xmmword [rsp + 0x58]
mov dword [rcx + 0x118], esi
mov byte [rcx + 0x12c], 0
movups xmmword [rcx + 0x11c], xmm0
xor al, al
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.180041300
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r14
pop r12
pop rbp
ret
movups xmm0, xmmword [rsp + 0x58]
mov dword [rcx + 0x118], esi
mov byte [rcx + 0x12c], 0
movups xmmword [rcx + 0x11c], xmm0
mov rax, qword [rdx + 0x1860]
movss xmm1, dword [rdx + 0x147c]
movss xmm0, dword [rdx + 0x1480]
maxss xmm3, dword [rax + 0x1e0]
minss xmm4, dword [rax + 0x1e8]
maxss xmm2, dword [rax + 0x1e4]
minss xmm5, dword [rax + 0x1ec]
subss xmm3, xmm1
addss xmm4, xmm1
movss xmm1, dword [rdx + 0x110]
subss xmm2, xmm0
addss xmm5, xmm0
comiss xmm1, xmm3
jb 0x18002b0c5
movss xmm0, dword [rdx + 0x114]
comiss xmm0, xmm2
jb 0x18002b0c5
comiss xmm4, xmm1
jbe 0x18002b0c5
comiss xmm5, xmm0
jbe 0x18002b0c5
mov al, 1
jmp 0x18002b0c7
xor al, al
mov byte [rcx + 0x12c], al
lea r9, [rsp + 0x41]
xor ebx, ebx
lea rcx, [rsp + 0x58]
lea r8, [rsp + 0x40]
mov dword [rsp + 0x20], ebx
mov edx, esi
call fcn.1800291f0
movzx esi, al
test al, al
je 0x18002b0fb
cmp byte [r12], bl
sete cl
mov byte [r12], cl
movss xmm6, dword [rdi + 0x1464]
movzx edx, byte [rsp + 0x40]
cmp byte [rsp + 0x41], bl
je 0x18002b119
test dl, dl
je 0x18002b119
mov ecx, 9
jmp 0x18002b123
test dl, dl
mov ecx, ebx
setne cl
add ecx, 7
movss xmm10, dword [0x180082534]
movaps xmm1, xmm10
call fcn.18001ee60
movaps xmm0, xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm1, xmm11
unpcklps xmm0, xmm7
unpcklps xmm1, xmm12
movq rdx, xmm0
movq rcx, xmm1
mov r8d, eax
call fcn.180023c20
cmp byte [r12], bl
je 0x18002b1ce
movaps xmm0, xmm9
subss xmm7, xmm12
subss xmm0, xmm11
movaps xmm3, xmm10
subss xmm9, xmm11
movaps xmm1, xmm10
mov ecx, 0x12
minss xmm0, xmm7
divss xmm0, dword [0x1800825c8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm3, xmm0
movaps xmm7, xmm3
movaps xmm6, xmm3
addss xmm3, xmm3
addss xmm7, xmm11
addss xmm6, xmm12
subss xmm9, xmm3
call fcn.18001ee60
unpcklps xmm7, xmm6
mov edx, eax
movq rcx, xmm7
movaps xmm2, xmm9
call fcn.180023f30
cmp byte [rdi + 0x2a38], bl
je 0x18002b3d1
cmp byte [r12], bl
je 0x18002b2d9
cmp byte [0x180082423], bl
mov eax, dword [str.hLh6]
mov dword [rsp + 0x50], eax
je 0x18002b2cf
cmp dword [0x18008d088], 2
jl 0x18002b291
movdqa xmm3, xmmword [0x1800826b0]
lea rdx, [rsp + 0x50]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x1800827c0]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x1800827c0]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
psrad xmm2, 5
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rsp + 0x50], xmm2
jmp 0x18002b3c4
lea r8, [rsp + 0x50]
nop word [rax + rax]
mov eax, 0x92492493
lea r8, [r8 + 1]
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, bl
inc ebx
sub al, cl
add al, 0x33
xor byte [r8 - 1], al
cmp ebx, 4
jl 0x18002b2a0
lea rdx, [rsp + 0x50]
jmp 0x18002b3c4
cmp byte [0x180082363], bl
mov eax, dword [0x180082360]
mov dword [rsp + 0x44], eax
je 0x18002b3bf
cmp dword [0x18008d088], 2
jl 0x18002b37e
movdqa xmm3, xmmword [0x1800826b0]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x1800827c0]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x1800827c0]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
psrad xmm2, 5
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rsp + 0x44], xmm2
jmp 0x18002b3bf
lea r8, [rsp + 0x44]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x92492493
lea r8, [r8 + 1]
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, bl
inc ebx
sub al, cl
add al, 0x33
xor byte [r8 - 1], al
cmp ebx, 4
jl 0x18002b390
lea rdx, [rsp + 0x44]
xor r8d, r8d
lea rcx, [rsp + 0x68]
call fcn.1800234d0
comiss xmm14, xmm8
jbe 0x18002b3ee
movss xmm0, dword [rsp + 0x48]
mov rdx, r14
unpcklps xmm0, xmm13
movq rcx, xmm0
call fcn.180023670
movzx eax, sil
jmp 0x18002afe3