Function at 0x18007e8f0
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
cmp byte [rcx + 0x1a], 0
mov rdi, rcx
je 0x18007e92f
cmp byte [rcx + 0x18], 0
je 0x18007ea8f
mov rax, qword [0x1802ea778]
mov rdx, qword [rax + 0x48]
cmp byte [rdx + 0x88], 0
je 0x18007e92f
mov ecx, 1
call fcn.180072ee0
test al, al
jne 0x18007ea8f
cmp byte [rdi + 0x18], 0
je 0x18007ea8f
cmp qword [rdi + 0x78], 0
mov qword [rsp + 0x40], rbx
je 0x18007ea51
cmp qword [rdi + 0x70], 0x10
lea rbx, [rdi + 0x58]
mov qword [rsp + 0x48], rsi
mov r8, rbx
jb 0x18007e95f
mov r8, qword [rbx]
movzx r9d, byte [r8]
mov esi, 0x811c9dc5
test r9b, r9b
jne 0x18007e971
mov eax, esi
jmp 0x18007e997
lea edx, [r9 - 0x41]
lea eax, [r9 + 0x20]
cmp dl, 0x19
movzx ecx, al
cmova ecx, r9d
movsx eax, cl
lea rcx, [r8 + 1]
xor eax, esi
imul edx, eax, 0x1000193
call fcn.18007f030
mov rcx, qword [rdi + 0x78]
lea rdx, [rsp + 0x30]
add eax, 0xee7c733b
mov r9d, 4
mov r8, rdi
mov dword [rsp + 0x30], eax
call fcn.180078710
cmp qword [rbx + 0x18], 0x10
jb 0x18007e9c1
mov rbx, qword [rbx]
movzx r8d, byte [rbx]
test r8b, r8b
je 0x18007e9f2
lea ecx, [r8 - 0x41]
lea eax, [r8 + 0x20]
cmp cl, 0x19
movzx edx, al
lea rcx, [rbx + 1]
cmova edx, r8d
movsx eax, dl
xor eax, esi
imul edx, eax, 0x1000193
call fcn.18007f030
mov esi, eax
mov rcx, qword [rdi + 0x78]
lea eax, [rsi - 0x12838e58]
mov r9d, 4
mov dword [rsp + 0x30], eax
lea r8, [rdi + 4]
lea rdx, [rsp + 0x30]
call fcn.180078710
movss xmm3, dword [rdi + 4]
lea rdx, str.save_to_config_x__f_y__f
movss xmm2, dword [rdi]
lea rcx, [0x1802ecc10]
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
movq r9, xmm3
movq r8, xmm2
call fcn.180044770
lea rcx, [0x1802ecc10]
call fcn.180081b50
mov rsi, qword [rsp + 0x48]
mov byte [rdi + 0x18], 0
call fcn.18007f070
mov rbx, rax
cmp byte [rax], 0
je 0x18007ea84
lea rdx, str.stack._end_window_move
lea rcx, [0x1802ecc10]
call fcn.180044770
lea rcx, [0x1802ecc10]
call fcn.180081b50
mov byte [rbx], 0
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov byte [rdi + 0x1d], 0
mov rax, qword [0x1802ea778]
mov rcx, qword [rax + 0x48]
cmp byte [rcx + 0x88], 0
je 0x18007ea89
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.180072eb0
movd xmm1, dword [rsp + 0x30]
movss xmm0, dword [rdi]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x18007eaf6
addss xmm0, dword [rdi + 8]
comiss xmm0, xmm1
jbe 0x18007eaf6
movd xmm1, dword [rsp + 0x38]
movss xmm0, dword [rdi + 4]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x18007eaf6
addss xmm0, dword [0x18029cb58]
comiss xmm0, xmm1
jbe 0x18007eaf6
mov al, 1
jmp 0x18007eaf8
xor al, al
mov ecx, 1
mov byte [rdi + 0x1d], al
call fcn.180072ee0
test al, al
je 0x18007ea89
cmp byte [rdi + 0x18], 0
jne 0x18007eb5d
cmp byte [rdi + 0x1d], 0
je 0x18007ea89
mov eax, dword [rsp + 0x30]
mov dword [rdi + 0x10], eax
mov eax, dword [rsp + 0x38]
mov dword [rdi + 0x14], eax
call fcn.18007f070
cmp byte [rax], 0
jne 0x18007eb53
lea rdx, str.stack._start_window_move
mov byte [rax], 1
lea rcx, [0x1802ecc10]
call fcn.180044770
lea rcx, [0x1802ecc10]
call fcn.180081b50
mov byte [rdi + 0x18], 1
add rsp, 0x20
pop rdi
ret
mov r9d, dword [rsp + 0x30]
mov r8d, r9d
sub r8d, dword [rdi + 0x10]
mov r10d, dword [rsp + 0x38]
mov eax, r8d
cdq
mov ecx, r10d
sub ecx, dword [rdi + 0x14]
xor eax, edx
sub eax, edx
test eax, eax
jg 0x18007eb8b
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
test eax, eax
jle 0x18007ebac
movd xmm0, r8d
movd xmm1, ecx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
addss xmm0, dword [rdi]
addss xmm1, dword [rdi + 4]
movss dword [rdi], xmm0
movss dword [rdi + 4], xmm1
mov dword [rdi + 0x10], r9d
mov dword [rdi + 0x14], r10d
add rsp, 0x20
pop rdi
ret