Function at 0x1800051d0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0xd0
mov rcx, qword [0x180121e18]
mov rbx, rdx
mov rax, qword [rcx + 0x20]
mov r8, qword [rax]
test r8, r8
je 0x18000583c
mov r8, qword [r8 + 8]
mov eax, dword [rcx + 0x64]
mov qword [r11 + 8], rsi
mov qword [r11 + 0x10], rdi
movaps xmmword [r11 - 0x18], xmm6
movzx edi, byte [rax + r8]
movaps xmmword [r11 - 0x28], xmm7
movaps xmmword [r11 - 0x38], xmm8
movaps xmmword [r11 - 0x48], xmm9
movaps xmmword [r11 - 0x58], xmm10
movaps xmmword [r11 - 0x68], xmm11
movaps xmmword [r11 - 0x78], xmm13
call fcn.18001dce0
movss xmm9, dword [rbx]
movss xmm8, dword [rbx + 4]
movss xmm7, dword [rbx + 8]
movsd xmm11, qword [rax + 0x60]
movss xmm13, dword [rax + 0x68]
movaps xmm1, xmm11
movaps xmm0, xmm13
movsd qword [rsp + 0x20], xmm11
movss xmm2, dword [rsp + 0x24]
subss xmm0, xmm7
subss xmm2, xmm8
subss xmm1, xmm9
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180005297
xorps xmm10, xmm10
sqrtss xmm10, xmm2
jmp 0x1800052a3
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm10, xmm0
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movups xmm1, xmmword [str.pNwdi]
xor esi, esi
cmp dword [0x180120d10], 2
mov r8d, esi
mov rbx, qword [rax + 0x10]
mov eax, dword [0x1800a8f28]
mov dword [rsp + 0x50], eax
movzx eax, byte [0x1800a8f2c]
mov byte [rsp + 0x54], al
movups xmmword [rsp + 0x40], xmm1
jl 0x18000542f
movdqa xmm0, xmmword [0x1800a8f90]
lea rcx, [rsp + 0x44]
movdqa xmm5, xmmword [0x1800a8f50]
movdqa xmm4, xmmword [0x1800a8fb0]
movdqa xmm6, xmmword [0x1800a8f70]
movdqa xmmword [rsp + 0x30], xmm0
mov edx, dword [rsp + 0x30]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 0x1a
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1800a8f60]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 0x1a
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800a8f60]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x180005320
cmp r8d, 0x15
jge 0x180005474
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop word [rax + rax]
mov eax, 0x8b6e9cad
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 0x1a
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x78
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor byte [r9 - 1], al
cmp r8d, 0x15
jl 0x180005440
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x1800054b7
test dil, 0x40
je 0x1800054b7
movss xmm0, dword [rbx + 0x2ac]
ucomiss xmm0, dword [0x1800a8f4c]
jp 0x1800054b7
jne 0x1800054b7
mov dword [rbx + 0x2ac], esi
mov dword [rbx + 0x2c0], 0x42de0000
mov dword [rbx + 0x2c4], 0x42de0000
movss xmm0, dword [rbx + 0x130]
ucomiss xmm0, dword [0x1800a8f40]
mov rdi, qword [rsp + 0xe8]
jp 0x18000550c
jne 0x18000550c
movss xmm0, dword [rbx + 0x49c]
ucomiss xmm0, dword [0x1800a8f34]
mov dword [rbx + 0x130], 0x42de0000
mov dword [rbx + 0x134], 0x42de0000
mov dword [rbx + 0x4cc], esi
jp 0x180005505
jne 0x180005505
mov dword [rbx + 0x49c], esi
mov qword [rbx + 0x2ac], rsi
mov rax, qword [0x180121e00]
subss xmm9, xmm11
subss xmm8, dword [rsp + 0x24]
movss xmm6, dword [0x1800a8f30]
subss xmm7, xmm13
movaps xmm13, xmmword [rsp + 0x60]
xorps xmm0, xmm0
mov ecx, dword [rax + 0x28]
movaps xmm11, xmmword [rsp + 0x70]
mov rsi, qword [rsp + 0xe0]
divss xmm9, xmm10
lea eax, [rcx + rcx*4]
shl eax, 2
cmp ecx, 1
mov rcx, qword [0x180121e18]
cvtsi2ss xmm0, eax
divss xmm8, xmm10
divss xmm7, xmm10
movaps xmm10, xmmword [rsp + 0x80]
divss xmm6, xmm0
jg 0x1800055b7
call fcn.18001dce0
movss dword [rax + 0x40], xmm9
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm7
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm9
unpcklps xmm0, xmm8
movsd qword [rax + 0x3d0], xmm0
movss dword [rax + 0x3d8], xmm7
jmp 0x18000581a
call fcn.18001dce0
movaps xmm0, xmm9
movsd xmm1, qword [rax + 0x40]
mov ebx, dword [rax + 0x48]
subss xmm0, xmm1
movsd qword [rsp + 0x20], xmm1
comiss xmm0, xmm6
ja 0x1800055e4
movaps xmm0, xmm1
subss xmm0, xmm9
comiss xmm0, xmm6
jbe 0x180005620
comiss xmm1, xmm9
jbe 0x180005601
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x40]
subss xmm0, xmm6
jmp 0x18000561b
comiss xmm9, xmm1
jbe 0x180005620
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm6
addss xmm0, dword [rax + 0x40]
movss dword [rax + 0x40], xmm0
movss xmm1, dword [rsp + 0x24]
movaps xmm0, xmm8
subss xmm0, xmm1
comiss xmm0, xmm6
ja 0x180005640
movaps xmm0, xmm1
subss xmm0, xmm8
comiss xmm0, xmm6
jbe 0x18000567c
comiss xmm1, xmm8
jbe 0x18000565d
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x44]
subss xmm0, xmm6
jmp 0x180005677
comiss xmm8, xmm1
jbe 0x18000567c
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm6
addss xmm0, dword [rax + 0x44]
movss dword [rax + 0x44], xmm0
movaps xmm0, xmm7
movd xmm1, ebx
subss xmm0, xmm1
comiss xmm0, xmm6
ja 0x180005698
movaps xmm0, xmm1
subss xmm0, xmm7
comiss xmm0, xmm6
jbe 0x1800056d2
comiss xmm1, xmm7
jbe 0x1800056b4
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x48]
subss xmm0, xmm6
jmp 0x1800056cd
comiss xmm7, xmm1
jbe 0x1800056d2
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm6
addss xmm0, dword [rax + 0x48]
movss dword [rax + 0x48], xmm0
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm9
movsd xmm1, qword [rax + 0x3d0]
mov ebx, dword [rax + 0x3d8]
subss xmm0, xmm1
movsd qword [rsp + 0x20], xmm1
comiss xmm0, xmm6
ja 0x18000570c
movaps xmm0, xmm1
subss xmm0, xmm9
comiss xmm0, xmm6
jbe 0x180005751
comiss xmm1, xmm9
jbe 0x18000572c
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x3d0]
subss xmm0, xmm6
jmp 0x180005749
comiss xmm9, xmm1
jbe 0x180005751
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm6
addss xmm0, dword [rax + 0x3d0]
movss dword [rax + 0x3d0], xmm0
movss xmm1, dword [rsp + 0x24]
movaps xmm0, xmm8
subss xmm0, xmm1
comiss xmm0, xmm6
ja 0x180005771
movaps xmm0, xmm1
subss xmm0, xmm8
comiss xmm0, xmm6
jbe 0x1800057b6
comiss xmm1, xmm8
jbe 0x180005791
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x3d4]
subss xmm0, xmm6
jmp 0x1800057ae
comiss xmm8, xmm1
jbe 0x1800057b6
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movaps xmm0, xmm6
addss xmm0, dword [rax + 0x3d4]
movss dword [rax + 0x3d4], xmm0
movaps xmm0, xmm7
movd xmm1, ebx
subss xmm0, xmm1
comiss xmm0, xmm6
ja 0x1800057d2
movaps xmm0, xmm1
subss xmm0, xmm7
comiss xmm0, xmm6
jbe 0x18000581a
comiss xmm1, xmm7
jbe 0x1800057f9
mov rcx, qword [0x180121e18]
call fcn.18001dce0
movss xmm0, dword [rax + 0x3d8]
subss xmm0, xmm6
movss dword [rax + 0x3d8], xmm0
jmp 0x18000581a
comiss xmm7, xmm1
jbe 0x18000581a
mov rcx, qword [0x180121e18]
call fcn.18001dce0
addss xmm6, dword [rax + 0x3d8]
movss dword [rax + 0x3d8], xmm6
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0x90]
add rsp, 0xd0
pop rbx
ret