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

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
mov rbx, rcx
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x14008ffb5
mov rax, qword [rbx + 0x28]
sub rax, rcx
and rax, 0xfffffffffffffff8
cmp rax, 0x1000
jb 0x14008ffa0
mov rdx, qword [rcx - 8]
sub rcx, rdx
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14009001f
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
and qword [rbx + 0x18], 0
and qword [rbx + 0x20], 0
and qword [rbx + 0x28], 0
mov rax, qword [rbx + 8]
mov rdi, qword [rax]
mov qword [rax], rax
mov rax, qword [rbx + 8]
mov qword [rax + 8], rax
and qword [rbx + 0x10], 0
mov rcx, qword [rbx + 8]
cmp rdi, rcx
je 0x140090009
mov rsi, qword [rdi]
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14008fff4
and qword [rdi + 0x18], 0
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
nop
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdi, rsi
mov rcx, qword [rbx + 8]
cmp rsi, rcx
jne 0x14008ffd5
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov rax, rsp
mov qword [rax + 0x10], rdx
push rdi
sub rsp, 0x30
mov qword [rax - 0x18], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rdi, rdx
mov r10, rcx
mov rsi, qword [rsp + 0x60]
test rsi, rsi
jne 0x140090075
lea edx, [rsi + 2]
mov r8d, 0x2887612
mov rcx, rdi
call fcn.140097848
mov rax, rdi
jmp 0x14009017e
mov dword [rsp + 0x60], r8d
movabs rcx, 0xcbf29ce484222325
xor edx, edx
movzx eax, byte [rsp + rdx + 0x60]
xor rcx, rax
movabs r11, 0x100000001b3
imul rcx, r11
inc rdx
cmp rdx, 4
jb 0x140090086
mov rdx, qword [r10 + 0x40]
and rdx, rcx
add rdx, rdx
mov r11, qword [r10 + 0x28]
mov rbx, qword [r11 + rdx*8]
mov rcx, qword [r10 + 0x18]
cmp qword [r11 + rdx*8], rcx
jne 0x1400900c6
mov rax, rcx
jmp 0x1400900ce
mov rax, qword [r11 + rdx*8 + 8]
mov rax, qword [rax]
cmp rbx, rax
je 0x1400900de
cmp dword [rbx + 0x10], r8d
je 0x1400900e1
mov rbx, qword [rbx]
jmp 0x1400900bb
mov rbx, rcx
cmp rbx, rcx
jne 0x140090100
xor edx, edx
mov r8d, 0x2887613
mov rcx, rdi
call fcn.140097410
mov rax, rdi
jmp 0x14009017e
test r9, r9
je 0x14009015a
mov rdx, qword [rsi]
cmp qword [rbx + 0x28], rdx
ja 0x14009015a
lea r8, [rbx + 0x18]
cmp qword [r8 + 0x18], 8
jb 0x14009011c
mov r8, qword [r8]
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
test eax, eax
je 0x14009013f
movsxd rdx, eax
mov r8d, 0x2887615
mov rcx, rdi
call fcn.1400977c0
mov rax, rdi
jmp 0x14009017e
mov rax, qword [rbx + 0x28]
inc rax
mov qword [rsi], rax
and dword [rdi], 0
and qword [rdi + 8], 0
and dword [rdi + 0x10], 0
mov rax, rdi
jmp 0x14009017e
mov rax, qword [rbx + 0x28]
inc rax
mov qword [rsi], rax
xor edx, edx
mov r8d, 0x2887614
mov rcx, rdi
call fcn.140097388
mov rax, rdi
jmp 0x14009017e
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret