Function at 0x1803bb600
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, 0xf8
mov qword [rsp + 0x20], r8
mov r14, rdx
mov rsi, rcx
add rcx, 0x18
mov rax, qword [rsi + 0x28]
cmp dword [rsi], 1
mov r15, qword [rsi + 0x50]
mov qword [rsp + 0x28], rcx
jne 0x1803bb67d
test rax, rax
js 0x1803bb7d5
cvtsi2ss xmm0, rax
test r15, r15
jns 0x1803bb7f3
mov rax, r15
shr rax, 1
mov ecx, r15d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
divss xmm0, xmm1
ucomiss xmm0, dword [0x18048cc70]
jb 0x1803bb809
mov qword [rsi], 0
jmp 0x1803bb698
mov rcx, r15
shr rcx, 2
mov rdx, r15
sub rdx, rcx
cmp rax, rdx
jne 0x1803bb6ae
test rax, rax
je 0x1803bbaf1
add r15, r15
mov rcx, rsi
mov rdx, r15
call fcn.1803bcfe0
test al, al
jne 0x1803bc11f
cmp dword [rsi], 2
jne 0x1803bb747
movdqu xmm0, xmmword [rsi + 8]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
movdqa xmmword [rsp + 0x50], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmmword [0x1804871e0]
movdqa xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x70], xmm0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
mov rdi, qword [r14]
xor eax, eax
test rdi, rdi
setne al
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xc0]
mov r8d, 8
call fcn.1802f50b0
test rdi, rdi
je 0x1803bb9c2
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x50]
jmp 0x1803bb9e2
mov rcx, qword [r14]
xor eax, eax
test rcx, rcx
setne al
movabs r15, 0xcbf29ce484222325
xor r15, rax
movabs rax, 0x1efac7090aef4a21
imul r15, rax
test rcx, rcx
je 0x1803bbae0
mov r8, qword [r14 + 0x10]
test r8, r8
je 0x1803bbc88
mov rax, qword [r14 + 8]
movabs rcx, 0x100000001b3
mov r9, r8
and r9, 7
je 0x1803bbc09
mov r10, r15
mov rdx, rax
nop word cs:[rax + rax]
movzx r15d, byte [rdx]
inc rdx
xor r15, r10
imul r15, rcx
mov r10, r15
dec r9
jne 0x1803bb7b0
cmp r8, 8
jae 0x1803bbc12
jmp 0x1803bbc88
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test r15, r15
js 0x1803bb64b
cvtsi2ss xmm1, r15
divss xmm0, xmm1
ucomiss xmm0, dword [0x18048cc70]
jae 0x1803bb674
mov rcx, rsi
call fcn.180405370
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x1803bb87f
mov rdx, qword [rsi + 0x48]
lea rcx, [rax - 1]
movabs r8, 0x3fffffffffffffff
and r8, rcx
mov rcx, rdx
cmp r8, 7
jb 0x1803bb869
inc r8
mov r9, r8
and r9, 0xfffffffffffffff8
lea rcx, [rdx + r9*4]
xor r10d, r10d
movaps xmm0, xmmword [0x18048cc60]
movups xmmword [rdx + r10*4], xmm0
movups xmmword [rdx + r10*4 + 0x10], xmm0
add r10, 8
cmp r9, r10
jne 0x1803bb850
cmp r8, r9
je 0x1803bb87f
lea rax, [rdx + rax*4]
nop dword [rax]
mov dword [rcx], 0xffff
add rcx, 4
cmp rcx, rax
jne 0x1803bb870
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x1803bb6ae
mov r12, qword [rsi + 0x20]
lea rax, [rax + rax*2]
shl rax, 5
add rax, r12
mov qword [rsp + 0xe0], rax
movzx r13d, word [rsi + 0x58]
mov rbp, qword [rsi + 0x48]
mov rbx, qword [rsi + 0x50]
xor edi, edi
xor r15d, r15d
lea rax, [r12 + 0x60]
mov qword [rsp + 0xf0], rax
lea rax, [r15 + 1]
mov qword [rsp + 0xe8], rax
lea rdx, [r12 + 0x38]
mov rcx, rsi
call fcn.1802f3c90
mov ecx, r13d
and ecx, eax
mov word [r12 + 0x58], ax
xor edx, edx
cmp rcx, rbx
cmovae rcx, rdi
jb 0x1803bb909
nop word cs:[rax + rax]
test rbx, rbx
je 0x1803bb9b0
cmp word [rbp + rcx*4], 0xffff
je 0x1803bb973
movzx r8d, word [rbp + rcx*4 + 2]
and r8d, r13d
mov r9d, ecx
sub r9d, r8d
and r9d, r13d
cmp r9, rdx
jb 0x1803bb95a
inc rdx
inc rcx
cmp rcx, rbx
cmovae rcx, rdi
jae 0x1803bb900
jmp 0x1803bb909
movzx r8d, word [rbp + rcx*4 + 2]
mov word [rbp + rcx*4], r15w
mov word [rbp + rcx*4 + 2], ax
inc rcx
mov eax, r8d
mov r15d, edx
cmp rcx, rbx
cmovae rcx, rdi
jb 0x1803bb968
test rbx, rbx
je 0x1803bb9c0
movzx edx, word [rbp + rcx*4]
cmp dx, 0xffff
jne 0x1803bb940
mov word [rbp + rcx*4], r15w
mov word [rbp + rcx*4 + 2], ax
mov r12, qword [rsp + 0xf0]
cmp r12, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xe8]
jne 0x1803bb8b5
jmp 0x1803bb6ae
jmp 0x1803bb9b0
jmp 0x1803bb9c0
movzx eax, byte [r14 + 8]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xc0]
mov r8d, 8
call fcn.1802f50b0
mov rax, qword [rsp + 0x60]
mov r9, qword [rsp + 0x80]
shl r9, 0x38
or r9, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x68]
xor rcx, r9
mov r8, qword [rsp + 0x50]
add r8, rax
mov rdx, qword [rsp + 0x58]
add rdx, rcx
rol rax, 0xd
xor rax, r8
rol rcx, 0x10
rol r8, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0x11
add r8, rcx
xor rax, rdx
rol rcx, 0x15
xor rcx, r8
rol rdx, 0x20
xor r8, r9
xor rdx, 0xff
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
shl rcx, 0x10
xor rcx, rdx
add rdx, rax
shr rax, 0x2f
shr rcx, 0x2b
xor rcx, rax
mov r15, rdx
shr r15, 0x20
xor r15, rdx
xor r15, rcx
jmp 0x1803bbc88
movzx ecx, byte [r14 + 8]
xor r15, rcx
imul r15, rax
jmp 0x1803bbc88
mov word [rsi + 0x58], 7
movzx eax, byte [0x1805297c8]
mov ecx, 0x20
mov edx, 2
call fcn.1802cbf10
test rax, rax
je 0x1803bc138
mov r12, rax
movaps xmm0, xmmword [0x18048cc60]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r15, r15
je 0x1803bbb42
mov rcx, qword [rsi + 0x48]
shl r15, 2
mov r8d, 2
mov rdx, r15
call fcn.1802cbf20
mov qword [rsi + 0x48], r12
mov qword [rsi + 0x50], 8
movzx eax, byte [0x1805297c8]
mov ecx, 0x240
mov edx, 8
call fcn.1802cbf10
test rax, rax
je 0x1803bc147
mov r15, rax
mov rdi, qword [rsi + 0x28]
test rdi, rdi
je 0x1803bbbcc
mov r12, qword [rsi + 0x20]
add r12, 0x30
jmp 0x1803bbbae
mov rax, qword [r12 - 0x18]
mov rdx, qword [r12 - 0x10]
mov r8, qword [r12 - 8]
mov rcx, r12
call qword [rax + 0x20]
add r12, 0x60
dec rdi
je 0x1803bbbcc
mov rax, qword [r12 + 8]
test rax, rax
je 0x1803bbb90
lea rcx, [r12 + 0x20]
mov rdx, qword [r12 + 0x10]
mov r8, qword [r12 + 0x18]
call qword [rax + 0x20]
jmp 0x1803bbb90
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x1803bbbf0
mov rcx, qword [rsi + 0x20]
shl rax, 5
lea rdx, [rax + rax*2]
mov r8d, 8
call fcn.1802cbf20
mov qword [rsi + 0x18], 6
mov qword [rsi + 0x20], r15
mov qword [rsi + 0x28], 0
jmp 0x1803bb6ae
mov rdx, rax
cmp r8, 8
jb 0x1803bbc88
add rax, r8
nop word cs:[rax + rax]
movzx r8d, byte [rdx]
xor r8, r15
imul r8, rcx
movzx r9d, byte [rdx + 1]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 2]
xor r8, r9
imul r8, rcx
movzx r9d, byte [rdx + 3]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 4]
xor r8, r9
imul r8, rcx
movzx r9d, byte [rdx + 5]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 6]
xor r8, r9
imul r8, rcx
movzx r15d, byte [rdx + 7]
add rdx, 8
xor r15, r8
imul r15, rcx
cmp rdx, rax
jne 0x1803bbc20
and r15d, 0x7fff
movzx eax, word [rsi + 0x58]
mov r12d, r15d
and r12d, eax
xor edi, edi
jmp 0x1803bbcb6
movzx ecx, byte [rcx + 8]
cmp cl, byte [r14 + 8]
je 0x1803bbd65
nop dword [rax + rax]
inc rdi
inc r12
cmp r12, qword [rsi + 0x50]
jb 0x1803bbcc8
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x1803bbcc0
xor r12d, r12d
mov rax, qword [rsi + 0x48]
movzx r13d, word [rax + r12*4]
cmp r13, 0xffff
je 0x1803bbe1b
movzx eax, word [rax + r12*4 + 2]
movzx ecx, word [rsi + 0x58]
mov edx, eax
and edx, ecx
mov r8d, r12d
sub r8d, edx
and r8d, ecx
cmp r8, rdi
jb 0x1803bbf11
cmp ax, r15w
jne 0x1803bbcb0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x1803bc11d
mov rcx, qword [rsi + 0x20]
lea rbx, [r13*2]
add rbx, r13
shl rbx, 5
mov rdx, qword [rcx + rbx + 0x38]
test rdx, rdx
setne r8b
cmp qword [r14], 0
sete r9b
cmp r8b, r9b
je 0x1803bbcb0
add rcx, rbx
add rcx, 0x38
test rdx, rdx
je 0x1803bbc9d
mov rdx, r14
call fcn.180419e20
test al, al
je 0x1803bbcb0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x1803bc11d
mov rax, qword [rsi + 0x20]
lea rdi, [rax + rbx]
lea rcx, [rsi + 0x30]
mov rdx, qword [rsp + 0x20]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
cmp qword [rax + rbx], 0
je 0x1803bc077
mov r14, qword [rdi + 0x10]
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x1803bbdae
call fcn.1803bde10
mov rax, qword [rsi + 0x38]
mov rcx, rbx
shl rcx, 6
mov qword [rax + rcx], 1
mov qword [rax + rcx + 8], r14
mov qword [rax + rcx + 0x10], 0
mov qword [rax + rcx + 0x18], r13
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x20], xmm0
movups xmmword [rax + rcx + 0x30], xmm1
lea rax, [rbx + 1]
mov qword [rsi + 0x40], rax
cmp r14, rax
jae 0x1803bc11d
mov rax, qword [rsi + 0x38]
shl r14, 6
mov qword [rax + r14 + 0x10], 1
mov qword [rax + r14 + 0x18], rbx
mov qword [rdi], 1
jmp 0x1803bc0d3
mov rdi, qword [rsi + 0x28]
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.180402030
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rbx, qword [rsi + 0x28]
cmp rbx, 0x7fff
ja 0x1803bc0de
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x28]
cmp rbx, qword [rcx]
jne 0x1803bbe93
call fcn.1803bdd40
mov rax, qword [rsi + 0x20]
lea rcx, [rbx + rbx*2]
shl rcx, 5
mov qword [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x18], xmm0
movups xmmword [rax + rcx + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movups xmmword [rax + rcx + 0x38], xmm0
movups xmmword [rax + rcx + 0x48], xmm1
mov word [rax + rcx + 0x58], r15w
inc rbx
mov qword [rsi + 0x28], rbx
cmp r12, qword [rsi + 0x50]
jae 0x1803bc11d
mov rax, qword [rsi + 0x48]
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
xor eax, eax
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdi, 0x200
setae bl
cmp qword [rsi], 2
setne bpl
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.180402030
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rdi, qword [rsi + 0x28]
cmp rdi, 0x7fff
ja 0x1803bc0de
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x28]
cmp rdi, qword [rcx]
jne 0x1803bbf97
call fcn.1803bdd40
and bl, bpl
mov rax, qword [rsi + 0x20]
lea rcx, [rdi + rdi*2]
shl rcx, 5
mov qword [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x18], xmm0
movups xmmword [rax + rcx + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movups xmmword [rax + rcx + 0x38], xmm0
movups xmmword [rax + rcx + 0x48], xmm1
mov word [rax + rcx + 0x58], r15w
lea rax, [rdi + 1]
mov qword [rsi + 0x28], rax
mov rax, qword [rsi + 0x48]
mov rcx, qword [rsi + 0x50]
xor r8d, r8d
xor edx, edx
cmp r12, rcx
cmovae r12, r8
jb 0x1803bc005
test rcx, rcx
je 0x1803bc040
movzx r9d, word [rax + r12*4]
cmp r9w, 0xffff
je 0x1803bc042
inc rdx
movzx r10d, word [rax + r12*4 + 2]
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
inc r12
mov r15d, r10d
mov edi, r9d
cmp r12, rcx
cmovae r12, r8
jae 0x1803bc000
jmp 0x1803bc005
jmp 0x1803bc040
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
cmp rdx, 0x80
setb al
not bl
test bl, al
jne 0x1803bbefb
cmp qword [rsi], 0
jne 0x1803bbefb
mov qword [rsi], 1
jmp 0x1803bbefb
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x1803bc086
call fcn.1803bde10
mov rax, qword [rsi + 0x38]
mov rcx, rbx
shl rcx, 6
mov qword [rax + rcx], 0
mov qword [rax + rcx + 8], r13
mov qword [rax + rcx + 0x10], 0
mov qword [rax + rcx + 0x18], r13
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x20], xmm0
movups xmmword [rax + rcx + 0x30], xmm1
lea rax, [rbx + 1]
mov qword [rsi + 0x40], rax
mov qword [rdi], 1
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rbx
mov al, 1
jmp 0x1803bbefd
lea rcx, [rsp + 0xb8]
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1803bc11d
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call qword [rax + 0x20]
ud2
mov r8, qword [rsp + 0x20]
lea rcx, [r8 + 0x18]
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov r8, qword [r8 + 0x10]
call qword [rax + 0x20]
ud2
mov ecx, 2
mov edx, 0x20
call fcn.180407090
mov ecx, 8
mov edx, 0x240
call fcn.180407090
int3