Function at 0x18000ed80
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rdx, qword [0x1800adca0]
movss xmm0, dword [0x18004e824]
mov rdi, rdx
comiss xmm0, dword [rdx + 0x41c8]
ja 0x18000f51b
mov qword [rax + 0x10], rbx
xor ebx, ebx
mov qword [rax + 0x18], rsi
mov esi, dword [0x1800adb58]
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movdqa xmm7, xmmword [0x18004e950]
cmp qword [rdx + 0x41c0], rbx
jne 0x18000f04a
cmp byte [0x18004e6db], bl
movups xmm3, xmmword [0x18004e6c8]
mov ecx, dword [0x18004e6d8]
mov dword [rbp - 0x30], ecx
movups xmmword [rbp - 0x40], xmm3
je 0x18000f033
mov r8d, ebx
cmp esi, 2
jl 0x18000eff4
movdqa xmm4, xmmword [0x18004e960]
movdqa xmm2, xmmword [0x18004e8e0]
movdqa xmm5, xmmword [str.7777]
movdqa xmm1, xmm2
movdqa xmm6, xmmword [0x18004e970]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
movd eax, xmm3
movdqa xmm3, xmmword [0x18004e900]
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, eax
andps xmm2, xmm7
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm6
xorps xmm2, xmm0
movd dword [rbp - 0x40], xmm2
movdqa xmm2, xmmword [0x18004e8f0]
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movdqa xmm1, xmm3
pmulld xmm0, xmm5
psubd xmm2, xmm0
punpckldq xmm1, xmm3
movd xmm0, dword [rbp - 0x3c]
andps xmm2, xmm7
pmuldq xmm1, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm6
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rbp - 0x3c], xmm2
movdqa xmm2, xmmword [0x18004e910]
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movdqa xmm1, xmm2
pmulld xmm0, xmm5
psubd xmm3, xmm0
punpckldq xmm1, xmm2
movd xmm0, dword [rbp - 0x38]
andps xmm3, xmm7
packuswb xmm3, xmm3
packuswb xmm3, xmm3
pmuldq xmm1, xmm4
paddb xmm3, xmm6
xorps xmm3, xmm0
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
movd dword [rbp - 0x38], xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movdqa xmm3, xmmword [0x18004e920]
andps xmm2, xmm7
movd xmm0, dword [rbp - 0x34]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
pmuldq xmm1, xmm4
paddb xmm2, xmm6
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rbp - 0x34], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm3, xmm0
movd xmm0, ecx
andps xmm3, xmm7
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm6
xorps xmm3, xmm0
movd dword [rbp - 0x30], xmm3
jmp 0x18000f033
lea r9, [rbp - 0x40]
nop dword [rax + rax]
mov eax, 0x29e4129f
lea r9, [r9 + 1]
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor byte [r9 - 1], al
cmp r8d, 0x14
jl 0x18000f000
lea rcx, [rbp - 0x40]
call fcn.180008c60
mov qword [rdi + 0x41c0], rax
mov rdx, qword [0x1800adca0]
mov rax, qword [rdx + 0x4040]
mov dword [rbp - 0x38], 0x7f7fffff
mov dword [rbp - 0x34], 0x7f7fffff
movups xmm0, xmmword [rbp - 0x40]
mov rcx, qword [rax]
movss xmm2, dword [rcx + 0xc]
movss xmm1, dword [rcx + 0x10]
or dword [rdx + 0x3f40], 0x10
mulss xmm1, dword [0x18004e828]
mov qword [rdx + 0x3f90], rbx
mulss xmm2, dword [0x18004e828]
mov qword [rdx + 0x3f98], rbx
movss xmm0, xmm2
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movups xmmword [rdx + 0x3f7c], xmm0
lea rdx, [rbp + 0x10]
mov rax, qword [0x1800adca0]
movss xmm1, dword [rcx + 0x10]
movss xmm2, dword [rcx + 0xc]
mulss xmm1, dword [0x18004e834]
mulss xmm2, dword [0x18004e834]
addss xmm1, dword [rcx + 8]
movups xmmword [rbp - 0x40], xmm0
addss xmm2, dword [rcx + 4]
or dword [rax + 0x3f40], 1
mov ecx, 2
movss dword [rax + 0x3f54], xmm1
mov dword [rax + 0x3f58], 0x3f000000
mov dword [rax + 0x3f5c], 0x3f000000
movss dword [rax + 0x3f50], xmm2
mov dword [rax + 0x3f44], 1
movss xmm0, dword [rdi + 0x3780]
movss xmm1, dword [rdi + 0x3784]
addss xmm0, xmm0
addss xmm1, xmm1
movss dword [rbp + 0x10], xmm0
movss dword [rbp + 0x14], xmm1
call fcn.180010ae0
cmp byte [0x18004e6f3], bl
movups xmm6, xmmword [0x18004e6e0]
mov edx, dword [0x18004e6f0]
mov dword [rbp - 0x30], edx
movups xmmword [rbp - 0x40], xmm6
je 0x18000f39e
cmp esi, 2
jl 0x18000f368
movdqa xmm4, xmmword [0x18004e960]
movdqa xmm3, xmmword [0x18004e8e0]
movdqa xmm2, xmmword [0x18004e8f0]
movdqa xmm1, xmm3
movdqa xmm5, xmmword [str.7777]
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
mov ecx, dword [0x18004e970]
punpckldq xmm1, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
movd eax, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movdqa xmm1, xmm2
pmulld xmm0, xmm5
psubd xmm3, xmm0
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
andps xmm3, xmm7
packuswb xmm3, xmm3
packuswb xmm3, xmm3
movd xmm0, ecx
paddb xmm3, xmm0
movd xmm0, eax
xorps xmm3, xmm0
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
movd dword [rbp - 0x40], xmm3
movdqa xmm3, xmmword [0x18004e900]
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movd xmm1, dword [rbp - 0x3c]
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm7
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
xorps xmm2, xmm1
pmuldq xmm0, xmm4
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd dword [rbp - 0x3c], xmm2
movdqa xmm2, xmmword [0x18004e910]
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movd xmm1, dword [rbp - 0x38]
pmulld xmm0, xmm5
psubd xmm3, xmm0
movd xmm0, ecx
andps xmm3, xmm7
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm0
movdqa xmm0, xmm2
xorps xmm3, xmm1
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movd dword [rbp - 0x38], xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
movdqa xmm3, xmmword [0x18004e920]
paddd xmm0, xmm1
movd xmm1, dword [rbp - 0x34]
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm7
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
xorps xmm2, xmm1
movdqa xmm1, xmm3
pmuldq xmm0, xmm4
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd dword [rbp - 0x34], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movd xmm1, edx
pmulld xmm0, xmm5
psubd xmm3, xmm0
movd xmm0, ecx
andps xmm3, xmm7
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm0
xorps xmm3, xmm1
movd dword [rbp - 0x30], xmm3
jmp 0x18000f39e
lea r8, [rbp - 0x40]
nop dword [rax]
mov eax, 0x29e4129f
lea r8, [r8 + 1]
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, bl
inc ebx
sub al, cl
add al, 0x36
xor byte [r8 - 1], al
cmp ebx, 0x14
jl 0x18000f370
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0xc1347
call fcn.180003800
mov eax, dword [rdi + 0x3de8]
movaps xmm7, xmmword [rsp + 0x40]
sub eax, 1
movaps xmm6, xmmword [rsp + 0x50]
movsxd rsi, eax
js 0x18000f496
nop dword [rax + rax]
mov rax, qword [rdi + 0x3df0]
mov rbx, qword [rax + rsi*8]
cmp byte [rbx + 0x8f], 0
je 0x18000f48c
cmp rbx, qword [rbx + 0x350]
jne 0x18000f48c
test dword [rbx + 0xc], 0x80000
jne 0x18000f48c
mov r10, qword [rbx]
mov rcx, r10
cmp r10, 0xffffffffffffffff
jae 0x18000f432
nop
movzx edx, byte [rcx]
test dl, dl
je 0x18000f42d
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x18000f424
cmp byte [rax], dl
je 0x18000f42d
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x18000f410
cmp r10, rcx
jne 0x18000f46b
mov eax, dword [rbx + 0xc]
bt eax, 0x1a
jae 0x18000f444
lea r10, str._Popup_
jmp 0x18000f46b
bt eax, 0xa
jae 0x18000f464
lea rdx, str.MainMenuBar
mov rcx, r10
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
lea r10, str._Main_menu_bar_
test eax, eax
je 0x18000f46b
lea r10, str._Untitled_
cmp qword [rdi + 0x41b0], rbx
lea r9, [rbp + 0x10]
mov rcx, r10
mov qword [rbp + 0x10], 0
sete dl
xor r8d, r8d
call fcn.18002cbf0
sub rsi, 1
jns 0x18000f3d0
call fcn.180007b50
mov rcx, qword [0x1800adca0]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x3fc0]
mov r8, qword [rcx + 0x3fc8]
lea rdx, [rax + rax*2]
movsxd rax, dword [r8 + rdx*4 - 0xc]
lea r10, [rax + rax*2]
lea rax, [0x18004dab0]
cmp dword [rax + r10*4], 8
mov r9d, dword [rax + r10*4 + 8]
jne 0x18000f515
mov eax, dword [rax + r10*4 + 4]
cmp eax, 1
jne 0x18000f4f6
mov eax, dword [r8 + rdx*4 - 8]
mov dword [r9 + rcx + 0x3778], eax
jmp 0x18000f515
cmp eax, 2
jne 0x18000f515
mov eax, dword [r8 + rdx*4 - 8]
mov dword [r9 + rcx + 0x3778], eax
mov eax, dword [r8 + rdx*4 - 4]
mov dword [r9 + rcx + 0x377c], eax
dec dword [rcx + 0x3fc0]
mov rdi, qword [rsp + 0x88]
add rsp, 0x60
pop rbp
ret