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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1403f04b0]
xor rax, rsp
mov qword [rbp - 8], rax
mov rsi, rcx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x30], rcx
lea rax, vtable.sense::GenericETW::Transformer.0
mov qword [rcx], rax
add rcx, 8
call fcn.1400850c4
nop
lea rax, vtable.sense::GenericETW::FileExtensionExtractTransformer.0
mov qword [rsi], rax
lea r12, [rsi + 0xd8]
mov qword [rbp - 0x50], r12
and qword [r12], 0
and qword [r12 + 8], 0
and qword [r12 + 0x10], 0
mov rax, qword [rsi + 0x38]
cmp qword [rsi + 0x30], rax
sete al
mov rcx, qword [rbp + 0x38]
lea rdx, str.TransformerValues_should_not_be_empty
mov qword [rsp + 0x28], rdx
mov byte [rsp + 0x20], al
mov r9d, 0x80070057
lea r8, str.amcorewcd_sourcegenericetw_src_fileextensionextracttransformer.cpp
mov edx, Compress
call fcn.1400796d0
mov rbx, qword [rsi + 0x30]
mov rdi, qword [rsi + 0x38]
cmp rbx, rdi
je 0x14009b20e
mov rsi, r12
mov r8b, 1
mov rdx, rbx
lea rcx, [rbp - 0x28]
call fcn.140059288
nop
lea r8, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r8, qword [rbp - 0x28]
movabs rcx, 0xcbf29ce484222325
xor edx, edx
mov r14, qword [rbp - 0x18]
lea r9, [r14 + r14]
test r9, r9
je 0x14009b0a6
movzx eax, byte [rdx + r8]
xor rcx, rax
movabs r10, 0x100000001b3
imul rcx, r10
inc rdx
cmp rdx, r9
jb 0x14009b088
and rcx, qword [0x1403f1b80]
mov r13, qword [0x1403f1b68]
mov rax, rcx
add rax, rax
mov rax, qword [r13 + rax*8]
add rcx, rcx
mov qword [rbp - 0x48], rcx
mov r15, qword [0x1403f1b58]
cmp qword [r13 + rcx*8], r15
jne 0x14009b0d9
mov rcx, r15
jmp 0x14009b0e1
mov rcx, qword [r13 + rcx*8 + 8]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14009b1a8
lea rcx, [rax + 0x10]
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rdx, qword [rbp - 0x28]
mov r9, rcx
mov r12, qword [rcx + 0x18]
cmp r12, 8
jb 0x14009b10c
mov r9, qword [rcx]
mov r11, qword [rcx + 0x10]
cmp r11, r14
jne 0x14009b14a
mov r10, r11
test r11, r11
je 0x14009b144
sub r9, rdx
movzx ecx, word [r9 + rdx]
movzx r8d, word [rdx]
cmp cx, r8w
jne 0x14009b13b
add rdx, 2
sub r10, 1
jne 0x14009b120
jmp 0x14009b144
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
jmp 0x14009b146
xor ecx, ecx
test ecx, ecx
je 0x14009b156
mov rax, qword [rax]
mov rcx, qword [rbp - 0x48]
jmp 0x14009b0cd
lea rcx, [rax + 0x10]
cmp r12, 8
jb 0x14009b163
mov rcx, qword [rcx]
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rdx, qword [rbp - 0x28]
cmp r14, r11
jne 0x14009b1a8
test r14, r14
je 0x14009b1a2
sub rdx, rcx
movzx r8d, word [rdx + rcx]
movzx r9d, word [rcx]
cmp r8w, r9w
jne 0x14009b199
add rcx, 2
sub r14, 1
jne 0x14009b17e
jmp 0x14009b1a2
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
jmp 0x14009b1a4
xor ecx, ecx
test ecx, ecx
je 0x14009b1ab
mov rax, r15
cmp rax, r15
jne 0x14009b1b4
xor al, al
jmp 0x14009b1bc
mov ecx, dword [rax + 0x30]
mov dword [rbp - 0x50], ecx
mov al, 1
mov rcx, qword [rbp + 0x38]
lea rdx, str.ExtractPart_not_supported
mov qword [rsp + 0x28], rdx
mov byte [rsp + 0x20], al
mov r9d, 0x80070057
lea r8, str.amcorewcd_sourcegenericetw_src_fileextensionextracttransformer.cpp
mov edx, 0x29
call fcn.140059058
nop
lea rcx, [rbp - 0x28]
call fcn.1400492c0
lea rdx, [rbp - 0x50]
mov rcx, rsi
call fcn.14009b9f0
add rbx, 0x20
cmp rbx, rdi
jne 0x14009b051
mov rsi, qword [rbp - 0x40]
mov rax, qword [rsi + 0x38]
sub rax, qword [rsi + 0x30]
sar rax, 5
cmp rax, 1
jbe 0x14009b257
mov rcx, qword [rsi + 0x70]
cmp qword [rsi + 0x68], rcx
sete dl
mov rcx, qword [rbp + 0x38]
lea rax, str.TargetFieldNames_should_not_be_empty
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], dl
mov r9d, 0x80070057
lea r8, str.amcorewcd_sourcegenericetw_src_fileextensionextracttransformer.cpp
mov edx, 0x30
call fcn.1400796d0
nop
mov rax, rsi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14027a710
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret