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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
movaps xmmword [rsp + 0x1c0], xmm6
mov qword [rsp + 0x30], r9
mov ebp, r8d
mov qword [rsp + 0x40], rdx
mov r15, rcx
mov rsi, qword [rsp + 0x240]
mov rax, qword [0x1401ce8a8]
xor rax, rsp
mov qword [rsp + 0x1b8], rax
mov eax, dword [0x1401e05cc]
test eax, eax
je 0x140028cbd
mov eax, dword [0x1401e05cc]
test eax, eax
jne 0x1400295ad
lea rcx, [r15 + 0x10]
mov qword [rsp + 0x38], rcx
call fcn.14003c260
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x4c], 0xaaaaaaaa
test rsi, rsi
je 0x140028ce9
mov eax, dword [rsi + 0x80]
jmp 0x140028cee
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [rsp + 0x4c], eax
cmp bpl, 0x45
jne 0x140028db9
lea rsi, [r15 + 0x180]
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
mov rcx, rsi
call fcn.14002a860
mov rbx, qword [rsp + 0x58]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x30]
test rcx, rcx
cmove rcx, rax
add rcx, 0xffffffffffffffff
mov qword [rsp + 0x190], rcx
cmp rax, rcx
jae 0x140028d7c
lea rdx, [rbx + 0x20]
lea r8, str.i___capacity_
lea rcx, [rsp + 0x190]
call fcn.140010750
test rax, rax
je 0x140028d7c
lea rdx, str..._.._base_containers_vector_buffer.h
lea rdi, [rsp + 0x58]
mov rcx, rdi
mov r8d, 0x55
mov r9, rax
call fcn.14000f5b0
mov rcx, rdi
call fcn.14000e210
mov rax, qword [rbx + 0x18]
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx]
sub rdx, qword [rax + rcx*8]
mov qword [rsp + 0x50], rdx
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
mov rcx, rsi
call fcn.14002a860
mov rcx, qword [rsp + 0x58]
add rcx, 0x18
call fcn.14002aae0
mov byte [rsp + 0x2f], bpl
movaps xmm6, xmmword [0x140164c30]
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
lea rcx, [r15 + 0x138]
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
call fcn.14002a5d0
mov rsi, qword [rsp + 0x58]
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x1a0], xmm0
mov rbp, qword [rsi + 0x28]
cmp qword [rsi + 0x30], 0xf
jbe 0x140028e0e
mov rsi, qword [rsi + 0x18]
jmp 0x140028e12
add rsi, 0x18
movabs rbx, 0xcbf29ce484222325
movabs r13, 0x100000001b3
cmp rbp, 0x10
jae 0x140028e69
lea rdi, [rsp + 0x190]
movdqu xmm0, xmmword [rsi]
movdqa xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x1a0], rbp
mov qword [rsp + 0x1a8], 0xf
lea r14, [r15 + 0x1c0]
mov rcx, rbx
test rbp, rbp
jne 0x140028ee0
jmp 0x140028f74
mov rdi, rbp
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x140028ea1
lea rcx, [rdi + 0x28]
call fcn.140128e44
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140028ead
lea rcx, [rdi + 1]
call fcn.140128e44
mov rcx, rax
mov qword [rsp + 0x190], rcx
lea r8, [rbp + 1]
mov rdx, rsi
call fcn.14012aeb0
mov qword [rsp + 0x1a0], rbp
mov qword [rsp + 0x1a8], rdi
lea r14, [r15 + 0x1c0]
mov rdi, qword [rsp + 0x190]
lea rcx, [rbp - 1]
mov eax, ebp
and eax, 3
cmp rcx, 3
jae 0x140028ef6
xor edx, edx
mov rcx, rbx
jmp 0x140028f48
mov rsi, rbp
and rsi, 0xfffffffffffffffc
xor edx, edx
mov rcx, rbx
nop word cs:[rax + rax]
nop dword [rax]
movzx ebx, byte [rdi + rdx]
xor rbx, rcx
imul rbx, r13
movzx ecx, byte [rdi + rdx + 1]
xor rcx, rbx
imul rcx, r13
movzx ebx, byte [rdi + rdx + 2]
xor rbx, rcx
imul rbx, r13
movzx ecx, byte [rdi + rdx + 3]
xor rcx, rbx
imul rcx, r13
add rdx, 4
cmp rsi, rdx
jne 0x140028f10
test rax, rax
je 0x140028f74
add rdx, rdi
xor ebx, ebx
nop word cs:[rax + rax]
nop dword [rax]
movzx esi, byte [rdx + rbx]
xor rcx, rsi
imul rcx, r13
add rbx, 1
cmp rax, rbx
jne 0x140028f60
and rcx, qword [r15 + 0x1f0]
mov r12, qword [r15 + 0x1c8]
mov rax, qword [r15 + 0x1d8]
mov rdx, rcx
shl rdx, 4
mov rbx, qword [rax + rdx + 8]
cmp rbx, r12
je 0x140028fe4
add rcx, rcx
mov rsi, qword [rax + rcx*8]
cmp rbp, qword [rbx + 0x20]
jne 0x140028fd3
nop word [rax + rax]
cmp qword [rbx + 0x28], 0xf
jbe 0x140028fc0
mov rdx, qword [rbx + 0x10]
jmp 0x140028fc4
lea rdx, [rbx + 0x10]
mov rcx, rdi
mov r8, rbp
call fcn.14012b910
test eax, eax
je 0x140028fe4
cmp rbx, rsi
je 0x140028fe9
mov rbx, qword [rbx + 8]
cmp rbp, qword [rbx + 0x20]
je 0x140028fb0
jmp 0x140028fd3
cmp rbx, r12
jne 0x14002902b
mov rsi, qword [r15 + 0x1d0]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rcx
shr rdx, 2
add edx, edx
lea eax, [rdx + rdx*2]
sub esi, eax
add esi, 1
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x190]
mov rcx, r14
call fcn.14002b130
mov rax, qword [rsp + 0x58]
mov dword [rax + 0x30], esi
lea rdx, [rsp + 0x60]
movups xmmword [rsp + 0xe0], xmm6
movups xmmword [rsp + 0xd0], xmm6
movups xmmword [rsp + 0x130], xmm6
movups xmmword [rsp + 0x120], xmm6
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0x100], xmm6
movups xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0xc0], xmm6
movups xmmword [rsp + 0xb0], xmm6
movups xmmword [rsp + 0xa0], xmm6
movups xmmword [rsp + 0x90], xmm6
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rsp + 0x60], xmm6
lea rbx, [rsp + 0x90]
lea rbp, [rsp + 0x70]
lea rax, [0x1401653f8]
mov qword [rsp + 0x58], rax
lea rsi, [rsp + 0xe0]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xdc], 0x78
mov rcx, rsi
xor r8d, r8d
call fcn.140009a00
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea rcx, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + rax + 0x58], rcx
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x88]
mov dword [rsp + rax + 0x54], ecx
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov ecx, 0x10
call fcn.140128e44
mov rdi, rax
mov cl, 1
call fcn.14012706c
mov qword [rdi + 8], rax
mov qword [rsp + 0xc0], rdi
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rbp
lea rax, [rsp + 0x88]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rbx
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xac]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa8], 0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
movdqu xmmword [rsp + 0x88], xmm0
lea rbx, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xc8], 0
mov dword [rsp + 0xd0], 4
lea rbp, [rsp + 0x170]
lea r12, [rsp + 0x190]
mov rcx, r14
mov rdx, rbp
mov r8, r12
call fcn.14002b130
mov rax, qword [rsp + 0x170]
mov r9d, dword [rax + 0x30]
cmp qword [rsp + 0x1a8], 0xf
jbe 0x1400291fd
mov r12, qword [rsp + 0x190]
lea rdx, str._s:_e_0_3_dm
mov rcx, rbp
mov r8, r12
call fcn.14001d3f0
mov r8, qword [rsp + 0x180]
cmp qword [rsp + 0x188], 0xf
jbe 0x14002922a
mov rbp, qword [rsp + 0x170]
lea rcx, [rsp + 0x58]
mov rdx, rbp
call fcn.140010bd0
mov rax, qword [rsp + 0x188]
cmp rax, 0x10
movabs rdi, 0xcbf29ce484222325
jb 0x140029288
mov rcx, qword [rsp + 0x170]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140029283
mov rbp, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbp
cmp rcx, 0x20
jae 0x1400295cf
add rax, 0x28
mov rdx, rax
mov rcx, rbp
call fcn.140128e80
mov r12, rbx
mov r14, rsi
movzx eax, byte [rsp + 0x4c]
xor rax, rdi
imul rax, r13
movzx ecx, byte [rsp + 0x4d]
xor rcx, rax
imul rcx, r13
movzx eax, byte [rsp + 0x4e]
xor rax, rcx
imul rax, r13
movzx edx, byte [rsp + 0x4f]
xor rdx, rax
imul rdx, r13
and rdx, qword [r15 + 0x1b0]
mov rcx, qword [r15 + 0x188]
mov rbx, qword [r15 + 0x198]
mov rax, rdx
shl rax, 4
mov rax, qword [rbx + rax + 8]
cmp rax, rcx
mov rsi, qword [rsp + 0x240]
je 0x140029361
mov ebp, dword [rsp + 0x4c]
cmp ebp, dword [rax + 0x10]
je 0x140029313
add rdx, rdx
mov rdx, qword [rbx + rdx*8]
nop dword [rax]
cmp rax, rdx
je 0x140029361
mov rax, qword [rax + 8]
cmp ebp, dword [rax + 0x10]
jne 0x140029300
test rax, rax
je 0x140029361
cmp rax, rcx
je 0x140029361
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
mov rbx, rcx
sub rbx, rdx
jae 0x140029332
sub rcx, rdx
add rcx, qword [rax + 0x20]
mov rbx, rcx
test rbx, rbx
je 0x140029361
lea rbp, [0x1401678bd]
lea rdi, [rsp + 0x58]
nop word cs:[rax + rax]
nop dword [rax]
mov rcx, rdi
mov rdx, rbp
call fcn.140008310
add rbx, 0xffffffffffffffff
jne 0x140029350
test rsi, rsi
je 0x140029373
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.140043710
mov bl, byte [rsp + 0x2f]
cmp bl, 0x45
jne 0x14002942f
lea rcx, [rsp + 0x50]
call fcn.140021d80
lea rdx, str.___.3f_ms_
lea rbx, [rsp + 0x170]
mov rcx, rbx
movdqa xmm2, xmm0
movq r8, xmm0
call fcn.14001d3f0
mov r8, qword [rsp + 0x180]
cmp qword [rsp + 0x188], 0xf
mov rsi, r14
jbe 0x1400293c8
mov rbx, qword [rsp + 0x170]
lea rcx, [rsp + 0x58]
mov rdx, rbx
call fcn.140010bd0
mov rax, qword [rsp + 0x188]
cmp rax, 0x10
jb 0x14002941c
mov rcx, qword [rsp + 0x170]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140029417
mov rbp, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbp
cmp rcx, 0x20
jae 0x1400295cf
add rax, 0x28
mov rdx, rax
mov rcx, rbp
call fcn.140128e80
lea rdx, str.e_0_m
lea rcx, [rsp + 0x58]
call fcn.140008310
jmp 0x14002947a
lea rdx, str.e_0_m
lea rcx, [rsp + 0x58]
call fcn.140008310
cmp bl, 0x42
mov rsi, r14
jne 0x14002947a
add r15, 0x180
lea rdx, [rsp + 0x170]
lea r8, [rsp + 0x4c]
mov rcx, r15
call fcn.14002a860
mov rcx, qword [rsp + 0x170]
add rcx, 0x18
mov rdx, qword [rsp + 0x30]
call fcn.14002b810
lea rcx, [rsp + 0x60]
mov rbx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.14000da50
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea rcx, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + rax + 0x58], rcx
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x88]
mov dword [rsp + rax + 0x54], ecx
lea rcx, [rsi - 0x80]
mov qword [rsp + 0x60], r12
call fcn.14000a740
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x140029505
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400294fd
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x1400294fd
mov rbp, qword [rax]
mov rcx, rax
mov edx, 1
call qword [rbp]
mov rcx, rdi
call fcn.1401291d8
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0xe0], rax
mov rcx, rsi
call fcn.1401273b4
mov rax, qword [rsp + 0x1a8]
cmp rax, 0x10
jb 0x14002955f
mov rcx, qword [rsp + 0x190]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002955a
mov rbp, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbp
cmp rcx, 0x20
jae 0x1400295cf
add rax, 0x28
mov rdx, rax
mov rcx, rbp
call fcn.140128e80
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [0x1401e05cc]
test eax, eax
je 0x14002957e
mov eax, dword [0x1401e05cc]
test eax, eax
jne 0x1400295bb
mov rcx, qword [rsp + 0x1b8]
xor rcx, rsp
call fcn.140128f20
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14003c760
add dword [rax + 0x38], 1
jmp 0x140028cbd
call fcn.14003c760
mov ecx, dword [rax + 0x38]
test ecx, ecx
je 0x14002957e
add ecx, 0xffffffff
mov dword [rax + 0x38], ecx
jmp 0x14002957e
call fcn.140137b68
int3