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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1b8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x120], xmm8
movdqa xmmword [rbp + 0x110], xmm7
movdqa xmmword [rbp + 0x100], xmm6
mov qword [rbp + 0xf8], 0xfffffffffffffffe
mov qword [rbp + 0xe0], r9
mov rdi, r8
mov rsi, rcx
mov byte [rbp + 0xf7], 1
mov qword [rsp + 0x20], 2
lea r9, str.::C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001flog4rs_1.2.0_srclib.rs
lea rcx, [rbp + 0x10]
mov qword [rbp + 0xe8], rdx
call fcn.1800c9d50
mov byte [rbp + 0xf7], 1
lea rcx, [rbp - 0x30]
lea rdx, [rbp + 0x10]
call fcn.180090390
cmp qword [rbp - 0x30], 0
je 0x180091406
mov rbx, qword [rbp - 0x28]
test rbx, rbx
je 0x180091435
cmp rbx, rdi
jae 0x18009143d
mov rax, qword [rbp + 0xe8]
cmp byte [rax + rbx], 0xbf
jg 0x18009143f
mov byte [rbp + 0xf7], 1
lea rax, [0x18016ed48]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0xe8]
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.180128070
jmp 0x180091b05
mov eax, 1
mov qword [rbp + 0xc0], rax
mov rbx, rdi
xor eax, eax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd8], rsi
cmp qword [rsi + 0x38], 0
jne 0x1800914bb
jmp 0x1800916de
mov r8d, 2
jmp 0x180091448
jne 0x1800913d9
mov r8, rbx
add r8, 2
je 0x18009148f
cmp r8, rdi
jae 0x180091460
mov rax, qword [rbp + 0xe8]
cmp byte [rax + r8], 0xbf
jle 0x180091465
mov rax, r8
jmp 0x180091491
mov rax, rdi
je 0x180091491
mov byte [rbp + 0xf7], 1
lea rax, [0x18016ed60]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0xe8]
mov rdx, rdi
mov r9, rdi
call fcn.180128070
jmp 0x180091b05
xor eax, eax
sub rdi, rax
mov qword [rbp + 0xc8], rdi
add rax, qword [rbp + 0xe8]
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xd8], rsi
cmp qword [rsi + 0x38], 0
je 0x1800916de
test rbx, rbx
je 0x1800914eb
mov ecx, ebx
and ecx, 7
movabs rax, 0x100000001b3
cmp rbx, 8
jae 0x180091501
movabs r9, 0xcbf29ce484222325
mov rdx, qword [rbp + 0xe8]
jmp 0x180091589
movabs rsi, 0xaf64724c8602eb6e
mov r10, qword [rbp + 0xd8]
jmp 0x1800915c2
mov r8, rbx
and r8, 0xfffffffffffffff8
movabs r9, 0xcbf29ce484222325
mov rdx, qword [rbp + 0xe8]
nop dword [rax]
movzx r10d, byte [rdx]
xor r10, r9
imul r10, rax
movzx r9d, byte [rdx + 1]
xor r9, r10
imul r9, rax
movzx r10d, byte [rdx + 2]
xor r10, r9
imul r10, rax
movzx r9d, byte [rdx + 3]
xor r9, r10
imul r9, rax
movzx r10d, byte [rdx + 4]
xor r10, r9
imul r10, rax
movzx r9d, byte [rdx + 5]
xor r9, r10
imul r9, rax
movzx r10d, byte [rdx + 6]
xor r10, r9
imul r10, rax
movzx r9d, byte [rdx + 7]
add rdx, 8
xor r9, r10
imul r9, rax
add r8, 0xfffffffffffffff8
jne 0x180091520
mov r10, qword [rbp + 0xd8]
mov rsi, r9
test rcx, rcx
je 0x1800915b7
xor r8d, r8d
nop dword [rax + rax]
movzx esi, byte [rdx + r8]
xor rsi, r9
imul rsi, rax
inc r8
mov r9, rsi
cmp rcx, r8
jne 0x1800915a0
xor rsi, 0xff
imul rsi, rax
mov rcx, qword [r10 + 0x20]
mov r13, qword [r10 + 0x28]
mov rax, rsi
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
mov qword [rbp + 0xd0], rcx
lea r15, [rcx - 0x58]
xor r14d, r14d
pcmpeqd xmm7, xmm7
and rsi, r13
mov rax, qword [rbp + 0xd0]
movdqu xmm8, xmmword [rax + rsi]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb edi, xmm0
test edi, edi
jne 0x18009164c
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x1800916de
add rsi, r14
add rsi, 0x10
add r14, 0x10
jmp 0x1800915f5
lea eax, [rdi - 1]
and eax, edi
mov edi, eax
test ax, ax
je 0x180091616
tzcnt eax, edi
add rax, rsi
and rax, r13
neg rax
imul r12, rax, 0x58
cmp qword [r15 + r12 + 0x10], rbx
jne 0x180091640
lea rax, [r15 + r12]
mov rdx, qword [rax + 8]
mov rcx, qword [rbp + 0xe8]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180091640
mov rax, qword [rbp + 0xd0]
lea rcx, [rax + r12]
add rcx, 0xffffffffffffffc0
mov rdx, qword [rbp + 0xe0]
mov rax, qword [rdx + 0x10]
mov qword [rbp + 0x20], rax
movups xmm0, xmmword [rdx]
movaps xmmword [rbp + 0x10], xmm0
mov byte [rbp + 0xf7], 0
mov rax, qword [rbp + 0x1a8]
mov qword [rsp + 0x28], rax
movzx eax, byte [rbp + 0x1a0]
mov byte [rsp + 0x20], al
lea r9, [rbp + 0x10]
mov rdx, qword [rbp + 0xc0]
mov r8, qword [rbp + 0xc8]
call fcn.180091330
jmp 0x180091aa5
cmp qword [rbp + 0xc8], 0
je 0x180091749
mov rdi, qword [rbp + 0xd8]
mov r15, qword [rdi]
mov r13, qword [rdi + 0x10]
mov r14, qword [rdi + 0x18]
test r14, r14
je 0x18009179e
mov rax, r14
shr rax, 0x3c
lea r12, [r14*8]
test rax, rax
jne 0x180091ae6
movzx eax, byte [0x1801bd731]
mov eax, 8
mov qword [rbp + 0xd0], rax
mov edx, 8
mov rcx, r12
call fcn.180022830
test rax, rax
je 0x180091aef
mov rsi, rax
jmp 0x1800917a6
cmp byte [rbp + 0x1a0], 0
mov rcx, qword [rbp + 0xe0]
mov rdi, qword [rbp + 0xd8]
je 0x18009197e
mov rsi, qword [rdi + 0x10]
mov r14, qword [rdi + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rcx + 0x10]
sub rax, rdx
cmp rax, r14
jae 0x18009188c
mov byte [rbp + 0xf7], 1
mov r8, r14
call fcn.180123930
mov rcx, qword [rbp + 0xe0]
mov rdx, qword [rcx + 0x10]
jmp 0x180091895
mov esi, 8
xor r12d, r12d
mov rcx, rsi
mov rdx, r13
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp + 0x10], r15
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], r14
movups xmm0, xmmword [0x18016ed90]
movups xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [0x18016eda0]
movups xmmword [rbp + 0x40], xmm0
mov rcx, qword [rbp + 0xe0]
mov rax, qword [rcx + 0x10]
mov qword [rbp - 0x20], rax
movdqu xmm0, xmmword [rcx]
movdqa xmmword [rbp - 0x30], xmm0
mov rax, qword [rbp + 0x1a8]
mov qword [rsp + 0x28], rax
movzx eax, byte [rbp + 0x1a0]
mov byte [rsp + 0x20], al
lea rcx, [rbp + 0x10]
lea r9, [rbp - 0x30]
mov rdx, qword [rbp + 0xc0]
mov r8, qword [rbp + 0xc8]
call fcn.180091330
movdqu xmm0, xmmword [rbp + 0x10]
movups xmm1, xmmword [rbp + 0x20]
movups xmm2, xmmword [rbp + 0x30]
movups xmm3, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x90], xmm1
movaps xmmword [rbp + 0xa0], xmm2
movaps xmmword [rbp + 0xb0], xmm3
test rbx, rbx
je 0x1800919c8
js 0x180091acf
movzx eax, byte [0x1801bd731]
mov r14d, 1
mov edx, 1
mov rcx, rbx
call fcn.180022830
test rax, rax
je 0x180091ad2
mov rsi, rax
jmp 0x1800919cd
test r14, r14
je 0x18009197a
mov rax, qword [rcx + 8]
cmp r14, 8
jb 0x1800918b0
lea r8, [rax + rdx*8]
sub r8, rsi
cmp r8, 0x20
jae 0x180091934
xor r11d, r11d
mov r9, r14
mov r8, r11
and r9, 3
je 0x1800918d3
nop
mov r10, qword [rsi + r8*8]
mov qword [rax + rdx*8], r10
inc rdx
inc r8
dec r9
jne 0x1800918c0
sub r11, r14
cmp r11, 0xfffffffffffffffc
ja 0x18009197a
lea rax, [rax + rdx*8]
add rax, 0x18
lea r10, [rsi + r8*8]
add r10, 0x18
sub r14, r8
xor r8d, r8d
nop word cs:[rax + rax]
mov r9, qword [r10 + r8*8 - 0x18]
mov qword [rax + r8*8 - 0x18], r9
mov r9, qword [r10 + r8*8 - 0x10]
mov qword [rax + r8*8 - 0x10], r9
mov r9, qword [r10 + r8*8 - 8]
mov qword [rax + r8*8 - 8], r9
mov r9, qword [r10 + r8*8]
mov qword [rax + r8*8], r9
add r8, 4
cmp r14, r8
jne 0x180091900
add rdx, r8
jmp 0x18009197a
lea r8, [rdx*8]
mov r11, r14
and r11, 0xfffffffffffffffc
add rdx, r11
add r8, rax
add r8, 0x10
xor r9d, r9d
movdqu xmm0, xmmword [rsi + r9*8]
movups xmm1, xmmword [rsi + r9*8 + 0x10]
movdqu xmmword [r8 + r9*8 - 0x10], xmm0
movups xmmword [r8 + r9*8], xmm1
add r9, 4
cmp r11, r9
jne 0x180091950
cmp r14, r11
jne 0x1800918b3
mov qword [rcx + 0x10], rdx
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x98], rax
movups xmm0, xmmword [rcx]
movups xmmword [rbp + 0x88], xmm0
mov rax, qword [rbp + 0x1a8]
mov qword [rbp + 0x80], rax
movups xmm0, xmmword [0x18016ed90]
movaps xmmword [rbp + 0xa0], xmm0
movdqu xmm0, xmmword [0x18016eda0]
movdqa xmmword [rbp + 0xb0], xmm0
test rbx, rbx
jne 0x18009185b
mov esi, 1
add rdi, 0x20
mov rcx, rsi
mov rdx, qword [rbp + 0xe8]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rbx
movdqa xmm0, xmmword [rbp + 0x80]
movaps xmm1, xmmword [rbp + 0x90]
movaps xmm2, xmmword [rbp + 0xa0]
movaps xmm3, xmmword [rbp + 0xb0]
movaps xmmword [rbp + 0x40], xmm3
movaps xmmword [rbp + 0x30], xmm2
movaps xmmword [rbp + 0x20], xmm1
movdqa xmmword [rbp + 0x10], xmm0
mov byte [rbp + 0xf6], 1
lea rcx, [rbp - 0x30]
lea r8, [rbp - 0x48]
lea r9, [rbp + 0x10]
mov rdx, rdi
call fcn.18009e540
cmp dword [rbp - 0x30], 6
je 0x180091aa5
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x180091a5a
mov rcx, qword [rbp - 0x20]
shl rdx, 3
mov r8d, 8
call fcn.180022840
mov rsi, qword [rbp - 8]
test rsi, rsi
je 0x180091aa5
lea rcx, [rbp - 0x10]
mov byte [rbp + 0xf6], 1
call fcn.1800214d0
lea rax, [rsi + 1]
mov ecx, 0x58
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rsi, rax
add rsi, 0x11
je 0x180091aa5
mov rcx, qword [rbp - 0x10]
sub rcx, rax
mov r8d, 0x10
mov rdx, rsi
call fcn.180022840
movaps xmm6, xmmword [rbp + 0x100]
movaps xmm7, xmmword [rbp + 0x110]
movaps xmm8, xmmword [rbp + 0x120]
add rsp, 0x1b8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r14d, r14d
mov byte [rbp + 0xf6], 0
mov rcx, r14
mov rdx, rbx
call fcn.180127940
jmp 0x180091b05
xor eax, eax
mov qword [rbp + 0xd0], rax
mov byte [rbp + 0xf7], 1
mov rcx, qword [rbp + 0xd0]
mov rdx, r12
call fcn.180127940
ud2