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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x180145040]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov r12, r9
mov qword [rsp + 0x30], r9
movzx edi, r8b
mov byte [rsp + 0x28], r8b
mov r14, rdx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x58], r9
mov rcx, qword [0x180206420]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x1d8]
call rdx
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x1800288d6
mov rdx, qword [r14 + 0x30]
cmp rdx, 0xf
jbe 0x18002884b
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r14 + 0x18]
jb 0x180028846
mov r8, qword [rcx - 8]
sub rcx, r8
add rdx, 0x27
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180029303
mov rcx, r8
call fcn.1800e4af4
xor ebx, ebx
mov qword [r14 + 0x28], rbx
mov qword [r14 + 0x30], 0xf
mov byte [r14 + 0x18], bl
mov rdx, qword [r12 + 0x18]
cmp rdx, 0xf
jbe 0x180028899
inc rdx
mov rcx, qword [r12]
cmp rdx, 0x1000
jb 0x180028894
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002930a
mov rcx, r8
call fcn.1800e4af4
mov byte [r12], 0
mov qword [r12 + 0x18], 0xf
mov qword [r12 + 0x10], rbx
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.1800e4530
mov rbx, qword [rsp + 0x200]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, dword [0x180206288]
mov rax, qword gs:[0x58]
mov edx, 4
mov r13d, edx
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x48], rax
mov eax, dword [rax + rdx]
cmp dword [0x180206608], eax
jle 0x180028930
lea rcx, [0x180206608]
call fcn.1800e45f8
cmp dword [0x180206608], 0xffffffff
jne 0x180028930
mov rax, qword [0x1802062d8]
mov qword [0x180206610], rax
lea rcx, [0x180206608]
call fcn.1800e458c
mov rax, qword [0x180206610]
test rax, rax
je 0x180028810
call rax
mov rsi, rax
test rax, rax
je 0x180028810
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.180024790
mov rcx, qword [rax]
inc rcx
mov qword [rsi + 0x10], rcx
xor r15d, r15d
mov qword [rsi + 0x18], r15
mov ecx, dword [rbx + 0x10]
mov dword [rsi + 0x28], ecx
test dil, dil
je 0x18002897c
mov eax, r15d
jmp 0x18002898e
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.180024790
mov eax, dword [rax + 8]
inc eax
mov dword [rsi + 0x2c], eax
movzx eax, word [rsi + 0x32]
mov ecx, 0xfe88
and ax, cx
mov ecx, 0x88
or ax, cx
mov word [rsi + 0x32], ax
movzx eax, word [r14]
mov word [rsi + 0x30], ax
mov rcx, qword [0x180206438]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x3d8]
call rdx
mov rcx, qword [rax]
mov rdx, qword [rcx]
mov rcx, rax
call rdx
mov rdi, rax
test rax, rax
jne 0x180028a7b
mov rdx, qword [r14 + 0x30]
cmp rdx, 0xf
jbe 0x180028a16
inc rdx
mov rcx, qword [r14 + 0x18]
cmp rdx, 0x1000
jb 0x180028a11
mov r8, qword [rcx - 8]
sub rcx, r8
add rdx, 0x27
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180029303
mov rcx, r8
call fcn.1800e4af4
mov qword [r14 + 0x28], r15
mov qword [r14 + 0x30], 0xf
mov byte [r14 + 0x18], 0
mov rdx, qword [r12 + 0x18]
cmp rdx, 0xf
jbe 0x180028a63
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r12]
jb 0x180028a5e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002930a
mov rcx, r8
call fcn.1800e4af4
mov qword [r12 + 0x10], r15
mov qword [r12 + 0x18], 0xf
mov byte [r12], 0
jmp 0x1800288ac
movzx eax, word [r14]
mov word [rsp + 0x2a], ax
lea r8, [rsp + 0x2a]
lea rdx, [rbp - 0x70]
lea rcx, [0x180207e50]
call fcn.18000f860
mov rcx, qword [rax]
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1800289db
cmp byte [r14 + 0x4c], r15b
je 0x180028adb
mov r8d, dword [r14 + 0x50]
mov rdx, rdi
mov rcx, rsi
call fcn.180024630
movzx eax, word [rsi + 0x32]
mov ecx, 0xff3f
and ax, cx
mov ecx, 0x120
or ax, cx
mov word [rsi + 0x32], ax
cmp qword [r14 + 0x28], r15
je 0x180028c2c
lea rbx, [r14 + 0x18]
cmp qword [rbx + 0x18], 0xf
jbe 0x180028af3
mov rbx, qword [rbx]
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx + r13]
cmp dword [0x1802065f4], eax
jle 0x180028b44
lea rcx, [0x1802065f4]
call fcn.1800e45f8
cmp dword [0x1802065f4], 0xffffffff
jne 0x180028b44
mov rax, qword [0x1802063d0]
mov qword [0x180206510], rax
lea rcx, [0x1802065f4]
call fcn.1800e458c
mov rax, qword [0x180206510]
test rax, rax
je 0x180028b5b
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x50]
call rax
mov dword [rbp - 0x40], 1
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + r13]
cmp dword [0x180206520], eax
jle 0x180028ba2
lea rcx, [0x180206520]
call fcn.1800e45f8
cmp dword [0x180206520], 0xffffffff
jne 0x180028ba2
mov rax, qword [0x1802063d8]
mov qword [0x180206590], rax
lea rcx, [0x180206520]
call fcn.1800e458c
mov rax, qword [0x180206590]
test rax, rax
je 0x180028bb7
mov rdx, rbx
lea rcx, [rbp - 0x30]
call rax
lea rax, [rbp - 0x30]
mov qword [rbp - 0x38], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + r13]
cmp dword [0x1802064d0], eax
jle 0x180028bff
lea rcx, [0x1802064d0]
call fcn.1800e45f8
cmp dword [0x1802064d0], 0xffffffff
jne 0x180028bff
mov rax, qword [0x1802063e0]
mov qword [0x1802065b0], rax
lea rcx, [0x1802064d0]
call fcn.1800e458c
mov rbx, qword [0x1802065b0]
test rbx, rbx
je 0x180028c2c
mov rax, qword [rdi]
mov r8, qword [rax + 0xd8]
mov edx, 0x6f
mov rcx, rdi
call r8
mov rdx, rax
lea r8, [rbp - 0x50]
mov rcx, rsi
call rbx
mov r13, qword [rsp + 0x38]
mov rax, qword [r13]
mov rdx, qword [rax + 0x18]
mov rcx, r13
call rdx
movabs rbx, 0xcbf29ce484222325
mov rdx, rbx
movzx ecx, byte [rax]
movabs r8, 0x100000001b3
test cl, cl
je 0x180028cdb
nop dword [rax]
movsx rcx, cl
lea rax, [rax + 1]
xor rdx, rcx
imul rdx, r8
movzx ecx, byte [rax]
test cl, cl
jne 0x180028c60
movabs rax, 0xc8e19b8ea2fba5a9
cmp rdx, rax
jne 0x180028cdb
movzx eax, word [rsi + 0x32]
mov ecx, 0x9fff
and ax, cx
mov ecx, 0x1800
or ax, cx
mov word [rsi + 0x32], ax
mov eax, dword [r14 + 4]
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x20]
mov r8d, 0xa6
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
cmp byte [r14 + 0x4c], r15b
je 0x180029199
mov r8d, 1
mov rdx, rdi
mov rcx, rsi
call fcn.1800246e0
jmp 0x180029199
movd xmm0, dword [r14 + 4]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x20], xmm0
lea r9, [rsp + 0x20]
mov r8d, 6
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov rax, qword [r13]
mov rdx, qword [rax + 0x18]
mov rcx, r13
call rdx
mov rdx, rbx
movzx ecx, byte [rax]
test cl, cl
je 0x180028d46
movabs r8, 0x100000001b3
movsx rcx, cl
lea rax, [rax + 1]
xor rdx, rcx
imul rdx, r8
movzx ecx, byte [rax]
test cl, cl
jne 0x180028d21
movabs rax, 0x8db664ad06d1125d
cmp rdx, rax
je 0x180028d9a
mov rax, qword [r13]
mov rdx, qword [rax + 0x18]
mov rcx, r13
call rdx
mov rdx, rbx
movzx ecx, byte [rax]
test cl, cl
je 0x180028dae
movabs r12, 0x100000001b3
nop word [rax + rax]
movsx rcx, cl
lea rax, [rax + 1]
xor rdx, rcx
imul rdx, r12
movzx ecx, byte [rax]
test cl, cl
jne 0x180028d70
movabs rax, 0xef83f49eaa48a2f7
cmp rdx, rax
mov r12, qword [rsp + 0x30]
jne 0x180028dae
movzx eax, word [rsi + 0x32]
mov ecx, 0xfe7f
and ax, cx
or ax, 0x60
mov word [rsi + 0x32], ax
cmp dword [r14 + 4], r15d
je 0x180028e19
movss xmm0, dword [r14 + 0x10]
movss dword [rsp + 0x20], xmm0
lea r9, [rsp + 0x20]
mov r8d, 8
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
movd xmm0, dword [r14 + 0xc]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x20], xmm0
lea r9, [rsp + 0x20]
mov r8d, 7
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
cmp byte [r14 + 0x14], r15b
je 0x180028e19
movzx eax, word [rsi + 0x32]
mov ecx, 0xff9f
and ax, cx
mov ecx, 0x180
or ax, cx
mov word [rsi + 0x32], ax
mov ebx, 0x72
lea r13, [r14 + 0x3c]
mov eax, dword [r13 - 4]
test eax, eax
je 0x180028e6d
mov dword [rsp + 0x20], eax
cmp r15d, 5
ja 0x180028e65
lea r8d, [rbx - 1]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x20]
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
jmp 0x180028e6d
mov dword [rsp + 0x20], 0
mov eax, dword [r13]
test eax, eax
je 0x180028ecb
mov dword [rsp + 0x20], eax
lea eax, [r15 + 1]
test eax, eax
js 0x180028ea5
cmp r15d, 5
jge 0x180028ea5
lea r8d, [rbx + 3]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov dword [rsp + 0x20], 0
jmp 0x180028eb7
mov dword [rsp + 0x20], 0
test eax, eax
js 0x180028ecb
cmp r15d, 5
jge 0x180028ecb
lea r8d, [rbx + 4]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov eax, dword [r13 + 4]
test eax, eax
je 0x180028f23
mov dword [rsp + 0x20], eax
lea eax, [r15 + 2]
test eax, eax
js 0x180028f02
cmp eax, 5
jg 0x180028f02
lea r8d, [rbx + 7]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov dword [rsp + 0x20], 0
jmp 0x180028f0f
mov dword [rsp + 0x20], 0
cmp eax, 5
ja 0x180028f23
lea r8d, [rbx + 8]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov eax, dword [r13 + 8]
test eax, eax
je 0x180028f7b
mov dword [rsp + 0x20], eax
lea eax, [r15 + 3]
test eax, eax
js 0x180028f5a
cmp eax, 5
jg 0x180028f5a
lea r8d, [rbx + 0xb]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov dword [rsp + 0x20], 0
jmp 0x180028f67
mov dword [rsp + 0x20], 0
cmp eax, 5
ja 0x180028f7b
lea r8d, [rbx + 0xc]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov eax, dword [r13 + 0xc]
test eax, eax
je 0x180028fd3
mov dword [rsp + 0x20], eax
lea eax, [r15 + 4]
test eax, eax
js 0x180028fb2
cmp eax, 5
jg 0x180028fb2
lea r8d, [rbx + 0xf]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
mov dword [rsp + 0x20], 0
jmp 0x180028fbf
mov dword [rsp + 0x20], 0
cmp eax, 5
ja 0x180028fd3
lea r8d, [rbx + 0x10]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
add r15d, 5
add ebx, 0x14
add r13, 0x14
cmp r15d, 5
jb 0x180028e22
mov r13, qword [rsp + 0x38]
mov rax, qword [r13]
mov rdx, qword [rax + 0x18]
mov rcx, r13
call rdx
movzx ecx, byte [rax]
test cl, cl
je 0x18002904e
movabs rdx, 0xcbf29ce484222325
movabs r13, 0x100000001b3
nop word [rax + rax]
movsx rcx, cl
lea rax, [rax + 1]
xor rdx, rcx
imul rdx, r13
movzx ecx, byte [rax]
test cl, cl
jne 0x180029020
movabs rax, 0xc149d7206506c506
cmp rdx, rax
mov r13, qword [rsp + 0x38]
jne 0x18002904e
or byte [rsi + 0x40], 8
cmp byte [rsp + 0x28], 0
je 0x1800290ad
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
movabs rcx, 0xffffffc553a12800
add rcx, rax
mov rax, rcx
cqo
movabs r8, 0xc92a69c000
idiv r8
movsxd rdx, eax
imul rdx, r8
cmp rdx, rcx
jge 0x180029088
inc eax
imul eax, eax, 0x15180
add eax, 0x99cf0
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x20]
mov r8d, 0x4b
mov rdx, rdi
mov rcx, rsi
call fcn.180024570
cmp byte [r14 + 0x4c], 0
je 0x1800290c2
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.1800246e0
mov eax, dword [r14 + 4]
test eax, eax
je 0x18002916e
mov dword [rsp + 0x20], eax
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x48]
lea rcx, [0x180207e90]
call fcn.180022df0
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
xor r15d, r15d
mov edi, r15d
cmp dword [rax + 0x44], 7
sete dil
add edi, 6
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x30], r15d
mov eax, dword [r14 + 4]
mov dword [rsp + 0x2c], eax
mov rax, qword [r13]
mov rdx, qword [rax + 0x58]
mov rcx, r13
call rdx
movzx ebx, al
lea r8, [rsp + 0x2c]
lea rdx, [rsp + 0x70]
lea rcx, [0x180207e90]
call fcn.180022df0
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov edx, dword [rax + 0x44]
dec edx
add edx, ebx
mov dword [rsp + 0x38], edx
mov eax, edx
shr eax, 0x1f
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x38]
test al, al
cmove rcx, r8
lea rax, [rsp + 0x48]
cmp edi, edx
cmovge rax, rcx
movzx ecx, word [rax]
jmp 0x180029181
mov rax, qword [r13]
mov rdx, qword [rax + 0x58]
mov rcx, r13
call rdx
movzx ecx, al
xor r15d, r15d
mov dword [r14 + 8], ecx
shl cx, 0xb
xor cx, word [rsi + 0x32]
mov edx, 0x7800
and cx, dx
xor word [rsi + 0x32], cx
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rdi + 0x68]
test rbx, rbx
jne 0x1800291ac
mov rcx, r15
jmp 0x18002921c
mov edx, dword [0x180206288]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov ecx, dword [rcx + rax]
cmp dword [0x1802062a0], ecx
jle 0x1800291fe
lea rcx, [0x1802062a0]
call fcn.1800e45f8
cmp dword [0x1802062a0], 0xffffffff
jne 0x1800291fe
mov rax, qword [0x180206330]
mov qword [0x1802062b0], rax
lea rcx, [0x1802062a0]
call fcn.1800e458c
mov rax, qword [0x1802062b0]
test rax, rax
jne 0x18002920f
mov rcx, r15
jmp 0x18002921c
mov edx, 1
mov rcx, rbx
call rax
mov rcx, rax
mov rax, qword [rcx]
mov r8, qword [rax + 8]
mov rdx, rsi
call r8
mov rax, qword [rdi]
mov r10, qword [rax]
movups xmm0, xmmword [rdi + 0x10]
movaps xmmword [rsp + 0x60], xmm0
mov r9d, 4
mov r8, rsi
lea rdx, [rsp + 0x60]
mov rcx, rdi
call r10
lea r8, [rsi + 0x10]
mov r9, r14
lea rdx, [rsp + 0x70]
lea rcx, [0x180205138]
call fcn.18002d970
cmp dword [r14 + 0x54], 0
je 0x18002928f
mov rcx, qword [0x180206420]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1c0]
mov r9, qword [rsi + 0x10]
mov r8d, dword [r13 + 0x2c8]
mov edx, 3
call r10
cmp dword [r14 + 0x58], 0
je 0x1800292ba
mov rcx, qword [0x180206420]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1c0]
mov r9, qword [rsi + 0x10]
mov r8d, dword [r13 + 0x2c8]
mov edx, 2
call r10
cmp dword [r14 + 0x5c], 0
je 0x1800292e2
mov rcx, qword [0x180206420]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1c0]
mov r9, qword [rsi + 0x10]
mov r8d, dword [r13 + 0x2c8]
xor edx, edx
call r10
mov rbx, qword [rsi + 0x10]
mov rdx, r12
lea rcx, [rsp + 0x70]
call fcn.1800096b0
mov r8, rbx
mov rdx, rax
call fcn.18002f370
jmp 0x1800289db
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3