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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x1800c86c0]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov rdi, rdx
mov r13, rcx
mov qword [rsp + 0x40], rcx
xor r11d, r11d
mov r9, qword [rdx]
lea r14d, [r11 + 1]
lea r15d, [r11 + 0x1f]
jmp 0x180028f84
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x180028f81
mov qword [rdx], r9
mov r10, qword [rdx + 8]
cmp r9, r10
jae 0x180029585
cmp byte [r9], 0x7b
jne 0x180029585
mov r12, qword [rdx + 0x10]
mov rsi, qword [rdx + 0x18]
mov qword [rsp + 0x40], rsi
mov qword [rdx + 0x10], r9
mov qword [rdx + 0x18], r10
inc r9
mov qword [rdx], r9
jmp 0x180028fca
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x180028fc7
mov qword [rdx], r9
mov ecx, r11d
mov r8, qword [0x1800b9470]
mov rdx, r11
movzx eax, byte [r8 + rdx]
shl ecx, 8
or ecx, eax
add rdx, r14
cmp rdx, 3
jb 0x180028fe6
imul eax, ecx, 0xcc9e2d51
mov dword [rsp + 0x78], eax
xor eax, eax
mov dword [rsp + 0x7c], eax
movups xmm0, xmmword [0x1800b9470]
movdqu xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r11
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rbp - 0x78]
movaps xmmword [rbp - 0x20], xmm1
movups xmm0, xmmword [rbp - 0x68]
movaps xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rbp - 0x58]
movaps xmmword [rbp], xmm1
jmp 0x18002904f
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x18002904c
mov qword [rdi], r9
mov al, byte [r9]
cmp al, 0x2c
jne 0x180029082
inc r9
mov qword [rdi], r9
jmp 0x180029070
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x18002906d
mov qword [rdi], r9
mov al, byte [r9]
mov dl, 0x7d
cmp al, dl
sete r8b
cmp al, 0x22
sete cl
or cl, r8b
je 0x180029590
cmp r9, r10
jae 0x1800290a5
cmp al, dl
je 0x18002959e
movzx ecx, al
sub ecx, r14d
cmp ecx, r15d
ja 0x1800290bf
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x1800290b0
mov qword [rdi], r9
mov rbx, qword [rbp - 0x18]
cmp byte [r9], dl
je 0x1800292bb
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.18001c6d4
mov rdx, qword [rsp + 0x38]
xor r9d, r9d
mov r15, qword [rsp + 0x30]
cmp rdx, 4
ja 0x180029115
mov ecx, r9d
mov r8d, r9d
test rdx, rdx
je 0x18002910c
movzx eax, byte [r15 + r8]
shl ecx, 8
or ecx, eax
add r8, r14
cmp r8, rdx
jb 0x1800290fa
imul r11d, ecx, 0xcc9e2d51
jmp 0x18002913a
mov r11d, 0x811c9dc5
mov rcx, r9
test rdx, rdx
je 0x18002913a
movzx eax, byte [r15 + rcx]
xor eax, r11d
imul r11d, eax, 0x1000193
add rcx, r14
cmp rcx, rdx
jb 0x180029123
mov rcx, r9
lea rsi, [rbp - 0x28]
cmp dword [rbp + rcx*4 - 0x30], r11d
jne 0x1800291aa
movups xmm1, xmmword [rsi]
mov r14, rdx
mov r9, qword [rsi + 8]
cmp r9, rdx
cmovb r14, r9
mov r8, r15
add r14, r15
cmp r15, r14
je 0x18002917f
movq r10, xmm1
sub r10, r15
mov al, byte [r10 + r8]
cmp byte [r8], al
jl 0x18002919f
jg 0x180029194
inc r8
cmp r8, r14
jne 0x18002916c
xor eax, eax
cmp rdx, r9
jb 0x1800291a4
ja 0x1800291a4
mov r14d, 1
test eax, eax
je 0x1800291b9
jmp 0x1800291aa
mov r14d, 1
mov eax, r14d
jmp 0x18002918e
or eax, 0xffffffff
jmp 0x180029188
mov r14d, 1
add rcx, r14
add rsi, 0x38
cmp rcx, r14
jb 0x180029141
mov rcx, r14
cmp rcx, r14
jb 0x180029211
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.18001c79c
mov r9, qword [rdi]
mov r15d, 0x1f
jmp 0x1800291d9
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x1800291d6
mov qword [rdi], r9
cmp byte [r9], 0x2c
jne 0x18002929e
inc r9
mov qword [rdi], r9
jmp 0x1800291fd
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x1800291fa
mov qword [rdi], r9
jmp 0x18002929e
xor r11d, r11d
test rcx, rcx
je 0x18002933b
imul rbx, rcx, 0x38
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.18001c79c
mov rcx, rax
mov rax, qword [rax]
mov qword [rbp + rbx - 0x18], rax
mov rax, qword [rcx + 8]
mov qword [rbp + rbx - 0x10], rax
mov rax, qword [rcx + 0x10]
mov qword [rbp + rbx - 8], rax
mov rax, qword [rcx + 0x18]
mov qword [rbp + rbx], rax
mov rax, qword [rcx + 0x20]
mov qword [rbp + rbx + 8], rax
mov r9, qword [rdi]
mov r15d, 0x1f
jmp 0x18002926b
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x180029268
mov qword [rdi], r9
cmp byte [r9], 0x2c
jne 0x18002929a
inc r9
mov qword [rdi], r9
jmp 0x18002928b
add r9, r14
movzx eax, byte [r9]
sub eax, r14d
cmp eax, r15d
jbe 0x180029288
mov qword [rdi], r9
mov rbx, qword [rbp - 0x18]
cmp byte [r9], 0x7d
setne cl
xor r11d, r11d
test rbx, rbx
sete al
test al, cl
jne 0x1800290cf
mov rsi, qword [rsp + 0x40]
mov r8, qword [rbp - 0x10]
mov r10, qword [rbp - 8]
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
movzx eax, r11b
test rbx, rbx
cmove eax, r14d
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x20], r10
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
test al, al
jne 0x1800293b0
test r9, r9
je 0x180029361
cmp r9, qword [rdi + 8]
jae 0x180029361
mov al, byte [r9]
test al, al
je 0x180029361
cmp al, 0x22
jne 0x1800295d8
lea rax, [r9 + 1]
mov qword [rdi], rax
cmp rax, qword [rdi + 8]
jae 0x1800295d8
mov rdx, rdi
lea rcx, [rbp - 0x30]
call fcn.18001cda4
movsd xmm0, qword [rbp - 0x10]
movups xmm1, xmmword [rbp - 0x20]
movups xmm2, xmmword [rbp - 0x30]
xor r11d, r11d
jmp 0x180029372
mov r9, qword [rdi]
mov rbx, r9
mov r8, qword [rdi + 8]
mov r10, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
mov rsi, qword [rsp + 0x40]
mov r15d, 0x1f
jmp 0x1800292cb
movups xmm2, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movsd xmm0, qword [rdi + 0x20]
movsd qword [rbp - 0x10], xmm0
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x60], xmm1
movsd qword [rsp + 0x70], xmm0
cmp qword [rbp - 0x10], r11
jge 0x1800293db
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
movq rdx, xmm2
psrldq xmm2, 8
movq r8, xmm2
cmp rdx, r8
je 0x1800293ff
sub r8, rdx
jmp 0x180029418
test rbx, rbx
je 0x18002951f
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rsp + 0x60], xmm1
movsd xmm0, qword [rbp - 0x10]
movsd qword [rsp + 0x70], xmm0
test rcx, rcx
js 0x1800293eb
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x10]
call fcn.18001e820
jmp 0x180029422
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
cmp rbx, r8
jne 0x180029412
movdqa xmm0, xmmword [0x1800baf50]
movdqu xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x10], r11b
jmp 0x180029422
sub r8, rbx
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.180005a0c
nop
mov rdx, qword [rdi]
cmp rdx, qword [rdi + 8]
jae 0x180029579
jmp 0x180029434
add rdx, r14
movzx eax, byte [rdx]
sub eax, r14d
cmp eax, r15d
jbe 0x180029431
mov qword [rdi], rdx
cmp byte [rdx], 0x2c
jne 0x180029460
inc rdx
mov qword [rdi], rdx
jmp 0x180029452
add rdx, r14
movzx eax, byte [rdx]
sub eax, r14d
cmp eax, r15d
jbe 0x18002944f
mov qword [rdi], rdx
cmp rdx, qword [rdi + 8]
jae 0x180029579
mov al, byte [rdx]
test al, al
je 0x180029579
cmp al, 0x7d
sete cl
cmp al, 0x22
sete al
or al, cl
jne 0x1800294a3
add rdx, r14
mov r8b, byte [rdx]
cmp r8b, 0x7d
sete cl
cmp r8b, 0x22
sete al
or al, cl
je 0x180029482
test r8b, r8b
je 0x180029579
mov qword [rdi], rdx
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.18001c3f0
mov rcx, qword [rdi]
jmp 0x1800294bb
add rcx, r14
movzx eax, byte [rcx]
sub eax, r14d
cmp eax, r15d
jbe 0x1800294b8
mov qword [rdi], rcx
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rsi
xorps xmm0, xmm0
movups xmmword [r13], xmm0
xor eax, eax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rax
lea r8d, [rax + 0x20]
lea rdx, [rbp + 0x10]
mov rcx, r13
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
nop
mov rax, r13
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1800a21a0
mov rbx, qword [rsp + 0x190]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x1800b9470]
call fcn.18001a244
mov r8, rax
call fcn.180005a04
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1800096fc
mov rcx, rax
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x38], rax
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180019d4c
mov rdx, rdi
mov rcx, qword [rax]
call fcn.18001c610
nop
mov rdx, rdi
mov ecx, r14d
call fcn.18001bc9c
nop
mov ecx, reloc.WS2_32.dll_ntohs
call fcn.18001bc9c
int3
mov rdx, rdi
mov ecx, 0x25
call fcn.18001bc9c
int3
mov rax, qword [0x1800b9470]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 3
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x48]
call fcn.180019d4c
mov rdx, rdi
mov rcx, qword [rax]
call fcn.18001c610
int3
mov rdx, rdi
mov ecx, 0xa
call fcn.18001bc9c
int3