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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x140111200]
xor rax, rsp
mov qword [rbp + 8], rax
mov r14, r9
mov r15, r8
mov qword [rbp - 0x70], rdx
mov r13, rcx
mov qword [rbp - 0x80], rcx
lea rcx, [rbp - 0x38]
call fcn.140052e50
nop
mov r11, qword [rbp - 0x20]
mov r9, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x28]
test rsi, rsi
je 0x140058624
lea r8, [rbp - 0x38]
cmp r11, 8
cmovae r8, r9
movabs rdx, 0xcbf29ce484222325
lea r10, [rsi + rsi]
xor edi, edi
mov ecx, edi
movabs rbx, 0x100000001b3
test r10, r10
je 0x140058114
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, rbx
inc rcx
cmp rcx, r10
jb 0x140058100
mov rcx, qword [r13 + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [r13 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov r12, qword [r13 + 8]
cmp rbx, r12
je 0x140058191
mov r10, qword [rax + rcx*8]
nop dword [rax]
nop dword [rax + rax]
lea rax, [rbx + 0x10]
mov rcx, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x140058152
mov rax, qword [rax]
lea r8, [rbp - 0x38]
cmp r11, 8
cmovae r8, r9
cmp rsi, rcx
jne 0x140058186
mov rdx, rsi
test rsi, rsi
je 0x140058194
sub r8, rax
nop
movzx ecx, word [rax + r8]
cmp cx, word [rax]
jne 0x140058186
add rax, 2
sub rdx, 1
je 0x140058194
jmp 0x140058170
cmp rbx, r10
je 0x140058191
mov rbx, qword [rbx + 8]
jmp 0x140058140
mov rbx, rdi
test rbx, rbx
je 0x140058624
cmp rbx, r12
je 0x140058624
mov qword [rsp + 0x30], rdi
lea rdx, [rsp + 0x30]
mov rcx, r14
call qword [sym.imp.ole32.dll_StringFromCLSID]
test eax, eax
js 0x1400581fa
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
mov rdx, qword [rsp + 0x30]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400581e0
lea rcx, [rbp - 0x60]
call fcn.140005220
mov byte [rbp - 0x40], 1
jmp 0x1400581fe
mov byte [rbp - 0x40], 0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14005820f
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop
cmp byte [rbp - 0x40], 0
jne 0x140058286
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
lea rax, str.Invalid_layout_id
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], 0x11
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x50]
movsd qword [rsp + 0x70], xmm1
lea r9, [rbp - 0x70]
mov r8d, 4
lea rdx, [rsp + 0x60]
mov rcx, qword [0x140119a58]
call fcn.1400093f0
xor bl, bl
cmp byte [rbp - 0x40], 0
je 0x140058279
lea rcx, [rbp - 0x60]
call fcn.1400065f0
mov r11, qword [rbp - 0x20]
mov r9, qword [rbp - 0x38]
jmp 0x140058626
lea rdx, [rbp - 0x18]
mov rcx, r15
call fcn.140072660
nop
lea rcx, str.Remove_app_zone_history__device:___layout:_
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], 0x2f
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x70], xmm0
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov rcx, qword [0x140119a58]
call fcn.14005cdc0
nop
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x14005833d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140058338
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058686
call fcn.14009ecd8
lea r13, [rbx + 0x30]
mov rbx, qword [r13]
mov r11, qword [r13 + 8]
cmp rbx, r11
je 0x140058268
lea rcx, [rbx + 0x50]
mov rdx, r15
call fcn.140052830
test al, al
je 0x140058375
mov rax, qword [rbx + 0x40]
cmp rax, qword [r14]
jne 0x140058375
mov rax, qword [rbx + 0x48]
cmp rax, qword [r14 + 8]
je 0x14005837e
add rbx, 0xe8
jmp 0x140058349
mov r8, r15
mov r14, qword [rbp - 0x70]
mov rdx, r14
mov rsi, qword [rbp - 0x80]
mov rcx, rsi
call fcn.1400586a0
test al, al
jne 0x14005847e
mov dword [rsp + 0x30], edi
lea rdx, [rsp + 0x30]
mov rcx, r14
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov r8d, dword [rsp + 0x30]
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, byte [rsp + 0x31]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x32]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x33]
xor rdx, rax
imul rdx, rcx
and rdx, qword [rbx + 0x30]
shl rdx, 4
add rdx, qword [rbx + 0x18]
mov rax, qword [rdx + 8]
mov r9, qword [rbx + 8]
cmp rax, r9
je 0x14005842a
mov rcx, qword [rdx]
cmp r8d, dword [rax + 0x10]
je 0x140058427
cmp rax, rcx
je 0x14005842a
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x140058418
mov rdi, rax
test rdi, rdi
je 0x14005847e
mov rax, qword [rdx]
cmp qword [rdx + 8], rdi
jne 0x140058450
cmp rax, rdi
jne 0x140058446
mov qword [rdx], r9
mov qword [rdx + 8], r9
jmp 0x14005845b
mov r9, qword [rdi + 8]
mov qword [rdx + 8], r9
jmp 0x14005845b
cmp rax, rdi
jne 0x14005845b
mov rax, qword [rdi]
mov qword [rdx], rax
mov r8, qword [rdi]
dec qword [rbx + 0x10]
mov rax, qword [rdi + 8]
mov qword [rax], r8
mov rax, qword [rdi + 8]
mov qword [r8 + 8], rax
mov edx, 0x20
mov rcx, rdi
call fcn.14009ecd8
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.140062490
nop
mov r15, qword [rbx + 8]
mov rdi, qword [r15]
mov r14, qword [rsp + 0x60]
cmp rdi, r15
je 0x14005855d
mov r12, qword [rsp + 0x68]
nop word [rax + rax]
mov rsi, qword [rdi + 0x18]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.140062490
mov rcx, rsi
call qword [sym.imp.USER32.dll_IsWindow]
mov rsi, qword [rsp + 0x40]
test eax, eax
je 0x140058504
mov r8, r12
sub r8, r14
mov rcx, r8
sar rcx, 3
mov rax, qword [rsp + 0x48]
sub rax, rsi
sar rax, 3
cmp rcx, rax
jne 0x140058504
mov rdx, rsi
mov rcx, r14
call fcn.1400a1d10
test eax, eax
je 0x1400585db
test rsi, rsi
je 0x14005854a
mov rax, qword [rsp + 0x50]
sub rax, rsi
sar rax, 3
lea rdx, [rax*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140058542
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058692
mov rcx, rsi
call fcn.14009ecd8
mov rax, qword [rdi]
mov rdi, rax
cmp rax, r15
jne 0x1400584b0
mov rsi, qword [rbp - 0x80]
mov r8, rbx
lea rdx, [rbp - 0x70]
mov rcx, r13
call fcn.140059b30
mov rax, qword [r13 + 8]
cmp qword [r13], rax
jne 0x140058582
lea rdx, [rbp - 0x38]
mov rcx, rsi
call fcn.140059f20
mov rcx, rsi
call fcn.1400575e0
mov bl, 1
test r14, r14
je 0x14005826a
mov rax, qword [rsp + 0x70]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x1400585ce
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005868c
mov rcx, r14
call fcn.14009ecd8
jmp 0x14005826a
test rsi, rsi
je 0x14005861d
mov rax, qword [rsp + 0x50]
sub rax, rsi
sar rax, 3
lea rdx, [rax*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140058615
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058692
mov rcx, rsi
call fcn.14009ecd8
xor bl, bl
jmp 0x14005858c
xor bl, bl
cmp r11, 8
jb 0x14005865d
lea rdx, [r11*2 + 2]
mov rax, r9
cmp rdx, 0x1000
jb 0x140058655
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058680
mov rcx, r9
call fcn.14009ecd8
movzx eax, bl
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.14009ea10
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400a5cd4
nop
call fcn.1400a5cd4
nop
call fcn.1400a5cd4
nop
call fcn.1400a5cd4
int3