Function at 0x415c50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f4
test dword [0x748140], 0x1000
push ebx
push esi
push edi
mov esi, ecx
jne 0x415f29
call fcn.00415be0
push 0x7208fb
push str.hotkeys
mov ecx, esi
call fcn.00466230
test eax, eax
je 0x415f29
push 0x7208fb
push str.hotkeys
mov ecx, esi
call fcn.00465fd0
mov edx, eax
cmp byte [edx + 8], 6
jne 0x415f29
lea eax, [ebp - 0x28]
mov dword [ebp - 0x10], 0x64
push eax
mov ecx, edx
call fcn.00466e90
lea eax, [ebp - 0x48]
mov ecx, edx
push eax
call fcn.00466ed0
cmp byte [ebp - 0x24], 0
mov ecx, dword [ebp - 0x28]
je 0x415cd4
mov al, byte [ebp - 0x44]
jmp 0x415cda
cmp ecx, dword [ebp - 0x48]
sete al
test al, al
jne 0x415f29
lea ebx, [ecx + 0x18]
push 0x720902
push str.action
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
call fcn.00465fd0
push 0x720908
mov edi, eax
mov ecx, ebx
push str.keys
mov dword [ebp - 8], edi
call fcn.00465fd0
cmp byte [edi + 8], 4
mov esi, eax
mov dword [ebp - 0xc], esi
jne 0x415f1c
cmp byte [esi + 8], 6
jne 0x415f1c
mov eax, dword fs:[0x2c]
mov ecx, dword [0x74d8b0]
mov edx, dword [eax]
cmp ecx, dword [edx + 0x98]
jg 0x415f30
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00465130
lea eax, [ebp - 0x40]
mov ecx, 0x74d8c0
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00429d10
mov edx, dword [ebp - 0x20]
cmp edx, dword [0x74d8c4]
je 0x415d79
mov edx, dword [edx + 0x20]
mov ecx, esi
call fcn.004159e0
jmp 0x415ee8
push 0x7207d1
push str.value
mov ecx, ebx
call fcn.00465fd0
push 0x720064
push str.location
mov ecx, ebx
mov esi, eax
call fcn.00465fd0
cmp byte [esi + 8], 4
mov edi, eax
jne 0x415ee8
lea ecx, [ebp - 0x90]
call fcn.00418d40
cmp dword [ebp - 0x2c], 0xf
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
cmova eax, dword [ebp - 0x40]
push eax
call fcn.0040c060
lea eax, [ebp - 0x1e0]
mov ecx, esi
push eax
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x78]
cmp eax, esi
je 0x415e08
mov ecx, eax
call fcn.004143d0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x78], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x68], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x1e0]
call fcn.004143d0
lea eax, [ebp - 0x1e0]
mov ecx, edi
push eax
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x60]
cmp eax, esi
je 0x415e53
mov ecx, eax
call fcn.004143d0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x60], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x50], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x1e0]
call fcn.004143d0
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1f0]
mov dword [ebp - 8], edi
push eax
call fcn.0042a660
mov esi, dword [eax]
lea eax, [ebp - 0x90]
add esi, 0xc
cmp esi, eax
je 0x415e99
cmp dword [ebp - 0x7c], 0xf
mov ecx, esi
push dword [ebp - 0x80]
cmova eax, dword [ebp - 0x90]
push eax
call fcn.0040c060
lea ecx, [esi + 0x18]
lea eax, [ebp - 0x78]
cmp ecx, eax
je 0x415eb4
cmp dword [ebp - 0x64], 0xf
push dword [ebp - 0x68]
cmova eax, dword [ebp - 0x78]
push eax
call fcn.0040c060
lea ecx, [esi + 0x30]
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x415ecf
cmp dword [ebp - 0x4c], 0xf
push dword [ebp - 0x50]
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0040c060
mov ecx, dword [ebp - 0xc]
mov edx, edi
call fcn.004159e0
inc edi
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x10], edi
call fcn.00418d90
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xf
jbe 0x415f1c
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415f12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41646e
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x28]
call fcn.00428d00
jmp 0x415cc6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x74d8b0
call fcn.005ab9bf
add esp, 4
cmp dword [0x74d8b0], 0xffffffff
jne 0x415d42
mov eax, dword [str.pause]
xorps xmm0, xmm0
movups xmmword [ebp - 0x174], xmm0
mov dword [ebp - 0x1b8], 5
movups xmmword [ebp - 0x1c8], xmm0
mov dword [ebp - 0x1c8], eax
movzx eax, byte [0x720018]
movups xmmword [ebp - 0x1ac], xmm0
mov byte [ebp - 0x1c4], al
mov eax, dword [0x720914]
movups xmmword [ebp - 0x190], xmm0
mov dword [ebp - 0x16c], eax
movq xmm0, qword [str.nextwallpaper]
movzx eax, byte [0x720918]
movq qword [ebp - 0x174], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x158], xmm0
mov byte [ebp - 0x168], al
movq xmm0, qword [str.screenshot]
movzx eax, word [0x720924]
movq qword [ebp - 0x158], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x13c], xmm0
mov word [ebp - 0x150], ax
movq xmm0, qword [str.windowbrowser]
mov eax, dword [0x720930]
movq qword [ebp - 0x13c], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x134], eax
movq xmm0, qword [str.windowsettings]
movzx eax, byte [0x720934]
movq qword [ebp - 0x120], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x104], xmm0
mov byte [ebp - 0x130], al
mov eax, dword [0x720940]
movq xmm0, qword [str.windoweditor]
mov dword [ebp - 0x118], eax
movzx eax, word [0x720944]
movq qword [ebp - 0x104], xmm0
xorps xmm0, xmm0
mov word [ebp - 0x114], ax
mov eax, dword [0x720950]
mov dword [ebp - 0x1b4], 0xf
mov byte [ebp - 0x1c3], 0
mov dword [ebp - 0x1b0], 1
mov dword [ebp - 0x19c], 4
mov dword [ebp - 0x198], 0xf
mov dword [ebp - 0x1ac], 0x706f7473
mov byte [ebp - 0x1a8], 0
mov dword [ebp - 0x194], 2
mov dword [ebp - 0x180], 4
mov dword [ebp - 0x17c], 0xf
mov dword [ebp - 0x190], 0x6574756d
mov byte [ebp - 0x18c], 0
mov dword [ebp - 0x178], 3
mov dword [ebp - 0x164], 0xd
mov dword [ebp - 0x160], 0xf
mov byte [ebp - 0x167], 0
mov dword [ebp - 0x15c], 4
mov dword [ebp - 0x148], 0xa
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x14e], 0
mov dword [ebp - 0x140], 5
mov dword [ebp - 0x12c], 0xd
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x12f], 0
mov dword [ebp - 0x124], 8
mov dword [ebp - 0x110], 0xe
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x112], 0
mov dword [ebp - 0x108], 9
mov dword [ebp - 0xf4], 0xc
mov dword [ebp - 0xf0], 0xf
mov dword [ebp - 0xfc], eax
mov byte [ebp - 0xf8], 0
mov dword [ebp - 0xec], 0xa
movups xmmword [ebp - 0xe8], xmm0
mov dword [ebp - 0xd8], 0xc
mov dword [ebp - 0xd4], 0xf
movq xmm0, qword [str.togglerecord]
lea edi, [ebp - 0x1c8]
mov eax, dword [0x720960]
lea esi, [ebp - 0x94]
movq qword [ebp - 0xe8], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0xe0], eax
movzx eax, word [0x720970]
movups xmmword [ebp - 0xcc], xmm0
mov word [ebp - 0xc4], ax
movq xmm0, qword [str.toggleicons]
movzx eax, byte [0x720972]
movq qword [ebp - 0xcc], xmm0
xorps xmm0, xmm0
mov byte [ebp - 0xc2], al
movzx eax, word [0x72097c]
movups xmmword [ebp - 0xb0], xmm0
mov word [ebp - 0xa8], ax
movzx eax, byte [0x72097e]
movq xmm0, qword [str.screensaver]
mov byte [ebp - 0xa6], al
lea eax, [ebp - 4]
push ecx
push eax
mov ecx, 0x74d8c0
mov byte [ebp - 0xdc], 0
mov dword [ebp - 0xd0], 6
mov dword [ebp - 0xbc], 0xb
mov dword [ebp - 0xb8], 0xf
mov byte [ebp - 0xc1], 0
mov dword [ebp - 0xb4], 7
mov dword [ebp - 0xa0], 0xb
mov dword [ebp - 0x9c], 0xf
movq qword [ebp - 0xb0], xmm0
mov byte [ebp - 0xa5], 0
mov dword [ebp - 0x98], 0xb
mov dword [ebp - 4], 0
call fcn.00428e90
cmp edi, esi
je 0x4163e6
jmp 0x4162c1
cmp dword [edi + 0x14], 0xf
mov edx, edi
mov ebx, dword [edi + 0x10]
jbe 0x4162d0
mov edx, dword [edi]
jmp 0x4162d0
xor ecx, ecx
mov esi, 0x811c9dc5
test ebx, ebx
je 0x4162f3
jmp 0x4162e0
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, ebx
jb 0x4162e0
jmp 0x4162f3
push esi
push edi
lea eax, [ebp - 0x18]
mov ecx, 0x74d8c0
push eax
call fcn.004100f0
cmp dword [ebp - 0x14], 0
jne 0x4163d0
cmp dword [0x74d8c8], 0x71c71c7
je 0x416464
push 0x24
call fcn.005ab82c
add esp, 4
mov dword [ebp - 4], eax
lea ebx, [eax + 8]
push edi
mov ecx, ebx
call fcn.004141c0
mov ecx, dword [edi + 0x18]
mov dword [ebx + 0x18], ecx
mov ecx, dword [0x74d8c8]
inc ecx
mov eax, ecx
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [0x74d8dc]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [0x74d8c0]
jbe 0x4163bc
push ecx
mov ecx, 0x74d8c0
call fcn.0042cd50
push eax
mov ecx, 0x74d8c0
call fcn.0042cb60
push esi
push ebx
lea eax, [ebp - 0x1e8]
mov ecx, 0x74d8c0
push eax
call fcn.004100f0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x4163bf
mov ecx, dword [ebp - 0x18]
push dword [ebp - 4]
push ecx
push esi
mov ecx, 0x74d8c0
call fcn.0040fa90
jmp 0x4163d0
add edi, 0x1c
lea eax, [ebp - 0x94]
cmp edi, eax
jne 0x4162c1
mov ebx, dword [ebp - 0x1c]
jmp 0x4163e6
mov edi, 0xb
lea esi, [ebp - 0x94]
jmp 0x4163f3
mov ecx, dword [esi - 8]
lea esi, [esi - 0x1c]
dec edi
cmp ecx, 0xf
jbe 0x41642a
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x41641e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41646e
mov eax, edx
jmp 0x41641e
push ecx
push eax
call fcn.005ab85c
add esp, 8
jmp 0x41642a
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
test edi, edi
jne 0x4163f3
push 0x6d9e00
call fcn.005abc5f
add esp, 4
push 0x74d8b0
call fcn.005ab96e
mov esi, dword [ebp - 0xc]
add esp, 4
mov edi, dword [ebp - 8]
jmp 0x415d42
push str.unordered_map_set_too_long
call fcn.005acb94
call fcn.005c695f
int3