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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x7ff627aa8040]
xor rax, rsp
mov qword [rbp + 0x30], rax
xor r15d, r15d
mov dword [rsp + 0x68], r15d
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
mov qword [rbp - 0x10], r15
movdqu xmmword [rbp - 8], xmm1
mov qword [rbp + 8], r15
mov dword [rsp + 0x68], 0x20
mov rcx, qword [0x7ff627aa9560]
test rcx, rcx
je 0x7ff627a7d788
add rcx, 0x50
call fcn.7ff627a117d0
mov rbx, rax
test rax, rax
je 0x7ff627a7d788
lea rcx, [rax + 8]
call fcn.7ff627a117d0
mov rdi, rax
mov rcx, rbx
call fcn.7ff627a117d0
mov rbx, rax
cmp rax, rdi
je 0x7ff627a7d788
mov rcx, rbx
call fcn.7ff627a117d0
mov qword [rsp + 0x30], rax
mov rdx, qword [rbp]
cmp rdx, qword [rbp + 8]
je 0x7ff627a7d771
mov qword [rdx], rax
add qword [rbp], 8
jmp 0x7ff627a7d77f
lea r8, [rsp + 0x30]
lea rcx, [rbp - 8]
call fcn.7ff627a12530
add rbx, 0x10
cmp rbx, rdi
jne 0x7ff627a7d750
mov edi, r15d
mov r12, qword [rbp - 8]
mov rax, qword [rbp]
mov qword [rbp - 0x60], rax
mov esi, 0xf
cmp r12, rax
je 0x7ff627a7daeb
nop word [rax + rax]
mov rbx, qword [r12]
test rbx, rbx
je 0x7ff627a7d928
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], r15
mov r8d, 7
lea rdx, [0x7ff627a98458]
lea rcx, [rbp - 0x50]
call fcn.7ff627a04190
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x30]
lea rcx, [0x7ff627aa9548]
call fcn.7ff627a0f760
mov rcx, qword [rax]
add rcx, 0xc8
call fcn.7ff627a117d0
lea rcx, [rax + 0x48]
call fcn.7ff627a117d0
test rax, rax
je 0x7ff627a7d822
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.7ff627a0f260
jmp 0x7ff627a7d869
mov dword [rsp + 0x38], 0x3f3f3f0c
mov byte [rsp + 0x3c], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], r15
lea rax, [rsp + 0x39]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x7ff627a7d850
lea rdx, [rsp + 0x39]
lea rcx, [rsp + 0x70]
call fcn.7ff627a04190
or edi, 0x10
or edi, 1
mov dword [rsp + 0x68], edi
lea rax, [rbx + 0x48]
mov qword [rbp - 0x70], rax
mov rcx, rax
call fcn.7ff627a117d0
test rax, rax
je 0x7ff627a7d897
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.7ff627a0f260
jmp 0x7ff627a7d8db
mov dword [rsp + 0x40], 0x3f3f3f0c
mov byte [rsp + 0x44], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
lea rax, [rsp + 0x41]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x7ff627a7d8c2
lea rdx, [rsp + 0x41]
lea rcx, [rsp + 0x48]
call fcn.7ff627a04190
or edi, 8
or edi, 2
lea rdx, [rsp + 0x70]
mov r14, qword [rbp - 0x78]
cmp r14, 0xf
cmova rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x48]
mov rsi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x60]
cmp r15, 0xf
cmova rcx, rsi
mov r8, qword [rsp + 0x58]
cmp r8, qword [rbp - 0x80]
jne 0x7ff627a7d91f
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x7ff627a7d936
mov r13b, 1
mov rbx, qword [rbp - 0x70]
jmp 0x7ff627a7d93d
mov r14, qword [rbp - 0x78]
mov r15, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x48]
xor r13b, r13b
add rbx, 0x48
test dil, 2
je 0x7ff627a7d99a
and edi, 0xfffffffd
cmp r15, 0xf
jbe 0x7ff627a7d981
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x7ff627a7d975
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff627a7db2c
mov rcx, rsi
call fcn.7ff627a83324
mov r14, qword [rbp - 0x78]
xor r15d, r15d
mov qword [rsp + 0x58], r15
mov esi, 0xf
mov qword [rsp + 0x60], rsi
mov byte [rsp + 0x48], r15b
jmp 0x7ff627a7d9a2
mov esi, 0xf
xor r15d, r15d
test dil, 1
je 0x7ff627a7d9e4
and edi, 0xfffffffe
cmp r14, 0xf
jbe 0x7ff627a7d9e4
lea rdx, [r14 + 1]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff627a7d9df
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff627a7db33
call fcn.7ff627a83324
test r13b, r13b
je 0x7ff627a7dad9
mov rcx, rbx
call fcn.7ff627a117d0
test rax, rax
je 0x7ff627a7da09
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.7ff627a0f260
jmp 0x7ff627a7da4d
mov dword [rsp + 0x30], 0x3f3f3f0c
mov byte [rsp + 0x34], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
lea rax, [rsp + 0x31]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x7ff627a7da34
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x48]
call fcn.7ff627a04190
or edi, 4
mov rdx, qword [rbp - 0x18]
cmp rdx, qword [rbp - 0x10]
je 0x7ff627a7da92
xorps xmm0, xmm0
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rdx + 0x10], xmm1
mov qword [rsp + 0x58], r15
mov rdx, rsi
mov qword [rsp + 0x60], rdx
mov byte [rsp + 0x48], 0
add qword [rbp - 0x18], 0x20
jmp 0x7ff627a7daa5
lea r8, [rsp + 0x48]
lea rcx, [rbp - 0x20]
call fcn.7ff627a82350
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
jbe 0x7ff627a7dad9
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff627a7dad4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff627a7db3a
call fcn.7ff627a83324
add r12, 8
cmp r12, qword [rbp - 0x60]
jne 0x7ff627a7d7b0
mov r12, qword [rbp - 8]
test r12, r12
je 0x7ff627a7db49
mov rax, qword [rbp + 8]
sub rax, r12
sar rax, 3
lea rdx, [rax*8]
mov rax, r12
cmp rdx, 0x1000
jb 0x7ff627a7db41
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff627a7db41
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, r12
call fcn.7ff627a83324
mov rcx, qword [rbp - 0x20]
cmp rcx, qword [rbp - 0x18]
jne 0x7ff627a7dbf4
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], r15
mov r8d, 0xa
lea rdx, [0x7ff627a98448]
lea rcx, [rsp + 0x70]
call fcn.7ff627a04190
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, qword [rbp - 0x10]
je 0x7ff627a7dba5
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rdx + 0x10], xmm1
mov byte [rsp + 0x70], 0
add qword [rbp - 0x18], 0x20
jmp 0x7ff627a7dbb7
lea r8, [rsp + 0x70]
lea rcx, [rbp - 0x20]
call fcn.7ff627a82350
mov rsi, qword [rbp - 0x78]
cmp rsi, 0xf
jbe 0x7ff627a7dbf0
lea rdx, [rsi + 1]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff627a7dbeb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff627a7dfb6
call fcn.7ff627a83324
mov rcx, qword [rbp - 0x20]
mov edx, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax]
mov eax, dword [rdx + rax]
cmp dword [0x7ff627aa9d40], eax
jle 0x7ff627a7dc52
lea rcx, [0x7ff627aa9d40]
call fcn.7ff627a83400
cmp dword [0x7ff627aa9d40], 0xffffffff
jne 0x7ff627a7dc4e
mov rdx, qword [rbp - 0x20]
lea rcx, [0x7ff627aa9d68]
call fcn.7ff627a038f0
lea rcx, [0x7ff627a874f0]
call fcn.7ff627a836a0
nop
lea rcx, [0x7ff627aa9d40]
call fcn.7ff627a83394
mov rcx, qword [rbp - 0x20]
mov r12d, r15d
mov rax, qword [rbp - 0x18]
sub rax, rcx
sar rax, 5
test rax, rax
je 0x7ff627a7df71
mov rdx, r15
mov qword [rsp + 0x30], 0
mov r13, r15
nop dword [rax + rax]
shl rdx, 5
add rdx, rcx
lea rcx, [rbp + 0x10]
call fcn.7ff627a038f0
nop
lea rdx, [rbp + 0x10]
mov r15, qword [rbp + 0x28]
cmp r15, 0xf
seta r14b
mov rsi, qword [rbp + 0x10]
cmova rdx, rsi
lea rcx, [0x7ff627aa9d68]
cmp qword [0x7ff627aa9d80], 0xf
cmova rcx, qword [0x7ff627aa9d68]
mov r8, qword [0x7ff627aa9d78]
mov rdi, qword [rbp + 0x20]
cmp r8, rdi
jne 0x7ff627a7dcdd
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x7ff627a7dcdd
mov dl, 1
jmp 0x7ff627a7dcdf
xor dl, dl
mov rcx, qword [rbp - 0x20]
add rcx, r13
cmp qword [rcx + 0x18], 0xf
jbe 0x7ff627a7dcf0
mov rcx, qword [rcx]
lea r9, [rsp + 0x30]
xor r8d, r8d
call fcn.7ff627a756d0
mov rcx, qword [0x7ff627aa9578]
mov rax, qword [rcx + 0x4008]
cmp byte [rax + 0xc3], 0
jne 0x7ff627a7df1c
mov ebx, dword [rcx + 0x4978]
cmp byte [rcx + 0x3887], 0
je 0x7ff627a7dd51
mov edx, 0x290
call fcn.7ff627a32aa0
cmp byte [rax + 8], 0
jne 0x7ff627a7dd51
mov ecx, 0x20
call fcn.7ff627a37b20
test al, al
je 0x7ff627a7dd51
mov edx, 1
mov ecx, ebx
call fcn.7ff627a44e40
mov ecx, ebx
call fcn.7ff627a45480
test al, al
je 0x7ff627a7df1c
lea rdx, [rbp + 0x10]
test r14b, r14b
cmovne rdx, rsi
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
movabs r14, 0x100000001b3
test rdi, rdi
je 0x7ff627a7dda3
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, rdi
jb 0x7ff627a7dd90
lea r8, [rbp + 0x10]
lea rdx, [rbp - 0x30]
call fcn.7ff627a08ec0
mov rcx, qword [rax + 8]
mov rax, qword [0x7ff627aa9b88]
test rcx, rcx
cmovne rax, rcx
cmp rax, qword [0x7ff627aa9b88]
setne bl
sete al
mov byte [rsp + 0x20], al
lea rcx, [0x7ff627a98470]
call fcn.7ff627a76150
test al, al
je 0x7ff627a7ddfc
lea r8, [rbp + 0x10]
lea rdx, [rbp - 0x60]
call fcn.7ff627a81d60
mov r15, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
mov rsi, qword [rbp + 0x10]
mov byte [rsp + 0x20], bl
lea rcx, [0x7ff627a98460]
call fcn.7ff627a76150
test al, al
je 0x7ff627a7dec5
lea rdx, [rbp + 0x10]
cmp r15, 0xf
cmova rdx, rsi
movabs rbx, 0xcbf29ce484222325
xor ecx, ecx
test rdi, rdi
je 0x7ff627a7de44
movzx eax, byte [rcx + rdx]
xor rbx, rax
imul rbx, r14
inc rcx
cmp rcx, rdi
jb 0x7ff627a7de31
mov r9, rbx
lea r8, [rbp + 0x10]
lea rdx, [rbp - 0x70]
call fcn.7ff627a08ec0
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x7ff627a7dec5
and rbx, qword [0x7ff627aa9bb0]
add rbx, rbx
mov rcx, qword [0x7ff627aa9b98]
mov rax, qword [rcx + rbx*8]
cmp qword [rcx + rbx*8 + 8], rdx
jne 0x7ff627a7de9b
cmp rax, rdx
jne 0x7ff627a7de90
mov rax, qword [0x7ff627aa9b88]
mov qword [rcx + rbx*8], rax
mov qword [rcx + rbx*8 + 8], rax
jmp 0x7ff627a7dea7
mov rax, qword [rdx + 8]
mov qword [rcx + rbx*8 + 8], rax
jmp 0x7ff627a7dea7
cmp rax, rdx
jne 0x7ff627a7dea7
mov rax, qword [rdx]
mov qword [rcx + rbx*8], rax
mov rcx, qword [rdx]
dec qword [0x7ff627aa9b90]
mov rax, qword [rdx + 8]
mov qword [rax], rcx
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
call fcn.7ff627a126d0
mov rbx, qword [0x7ff627aa9578]
mov rcx, qword [rbx + 0x4008]
cmp qword [rbx + 0x4ad8], rcx
jne 0x7ff627a7df00
cmp byte [rbx + 0x4b69], 0
je 0x7ff627a7df00
cmp dword [rbx + 0x4b10], 0
jne 0x7ff627a7df00
mov eax, dword [rbx + 0x4b6c]
and eax, 0xfffffff2
or eax, 2
mov dword [rbx + 0x4b6c], eax
test dword [rcx + 0x14], 0x1000000
je 0x7ff627a7df10
mov byte [rbx + 0x3f6e], 1
call fcn.7ff627a404d0
mov byte [rbx + 0x3f6e], 0
cmp r15, 0xf
jbe 0x7ff627a7df4f
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x7ff627a7df47
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff627a7dfb6
mov rcx, rsi
call fcn.7ff627a83324
inc r12d
add r13, 0x20
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
sub rax, rcx
sar rax, 5
movsxd rdx, r12d
cmp rdx, rax
jb 0x7ff627a7dc80
test rcx, rcx
je 0x7ff627a7dfc2
mov rdx, qword [rbp - 0x18]
call fcn.7ff627a13cc0
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x20]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff627a7dfbd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff627a7dfbd
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.7ff627a83324
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.7ff627a832c0
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret