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

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
mov rbp, r8
mov rbx, rdx
mov rsi, rcx
xor r8d, r8d
mov rcx, qword [rcx + 8]
xor edx, edx
call qword [sym.imp.lua.dll_lua_createtable]
mov rcx, qword [rsi + 8]
mov edx, 0xffffffff
call qword [sym.imp.lua.dll_lua_pushvalue]
cmp qword [rbx + 0x18], 0xf
lea r12, [rbx + 0x18]
mov rdx, rbx
lea rdi, [rsi + 8]
jbe 0x1400cd087
mov rdx, qword [rbx]
lea r15, [rbx + 0x18]
jmp 0x1400cd08a
mov r15, r12
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_setglobal]
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_gettop]
mov rcx, qword [rsi + 8]
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x78], eax
call qword [sym.imp.lua.dll_lua_createtable]
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_gettop]
lea r13, [rsi + 8]
mov qword [rsp + 0x80], r12
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x1400cd108
mov rcx, qword [rsi + 8]
xor r8d, r8d
mov rdx, rax
call qword [sym.imp.lua.dll_lua_pushcclosure]
mov edx, dword [rsp + 0x70]
lea r8, str.__call
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_setfield]
mov r13, rdi
mov qword [rsp + 0x80], r15
xor edi, edi
mov r15, r13
mov dword [rsp + 0x88], edi
cmp qword [rbp + 0x10], rdi
je 0x1400cd186
cmp qword [rbp + 0x18], 0xf
jbe 0x1400cd125
mov rbp, qword [rbp]
mov rcx, qword [rsi + 8]
mov rdx, rbp
call qword [sym.imp.lua.dll_lua_getglobal]
mov rcx, qword [rsi + 8]
mov edx, 0xffffffff
mov r8d, reloc.WS2_32.dll_WSASetLastError
call qword [sym.imp.lua.dll_lua_rawgeti]
mov rcx, qword [rsi + 8]
mov edx, 0xffffffff
call fcn.1400245e0
mov rcx, qword [rsi + 8]
inc eax
mov edx, 0xfffffffe
mov dword [rsp + 0x88], eax
call qword [sym.imp.lua.dll_lua_settop]
mov edx, dword [rsp + 0x70]
lea r8, str.__index
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_setfield]
lea r15, [rsi + 8]
mov ebp, dword [rsp + 0x78]
mov edx, ebp
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_setmetatable]
cmp qword [r12], 0xf
mov rdx, rbx
jbe 0x1400cd1a3
mov rdx, qword [rbx]
mov rcx, qword [r13]
call qword [sym.imp.lua.dll_luaL_newmetatable]
mov rcx, qword [r13]
call qword [sym.imp.lua.dll_lua_gettop]
mov rcx, qword [r13]
mov edx, ebp
mov r14d, eax
call qword [sym.imp.lua.dll_lua_pushvalue]
mov rcx, qword [r13]
lea r8, str.__metatable
mov edx, r14d
call qword [sym.imp.lua.dll_lua_setfield]
mov rcx, qword [r13]
mov edx, ebp
call qword [sym.imp.lua.dll_lua_pushvalue]
mov rcx, qword [r13]
lea r8, str.__index
mov edx, r14d
call qword [sym.imp.lua.dll_lua_setfield]
mov rax, qword [rsp + 0x80]
mov rdx, rbx
mov r8, qword [rbx + 0x10]
cmp qword [rax], 0xf
jbe 0x1400cd216
mov rdx, qword [rbx]
lea r15, [rsi + 8]
movabs rcx, 0xcbf29ce484222325
test r8, r8
je 0x1400cd247
movabs r9, 0x100000001b3
nop
movzx eax, byte [rdx + rdi]
inc rdi
xor rcx, rax
imul rcx, r9
cmp rdi, r8
jb 0x1400cd230
lea r15, [rsi + 8]
vxorps xmm1, xmm1, xmm1
test rcx, rcx
js 0x1400cd257
vcvtsi2sd xmm1, xmm1, rcx
jmp 0x1400cd26c
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
vcvtsi2sd xmm1, xmm1, rax
vaddsd xmm1, xmm1, xmm1
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_pushnumber]
mov rcx, qword [r15]
mov r8d, 0x68
mov edx, r14d
call qword [sym.imp.lua.dll_lua_rawseti]
mov eax, dword [rsp + 0x88]
mov rcx, qword [r15]
vxorps xmm1, xmm1, xmm1
vcvtsi2sd xmm1, xmm1, rax
call qword [sym.imp.lua.dll_lua_pushnumber]
mov rcx, qword [r15]
mov r8d, reloc.WS2_32.dll_WSASetLastError
mov edx, r14d
call qword [sym.imp.lua.dll_lua_rawseti]
mov rbp, qword [rbx + 0x18]
mov rcx, rbx
mov rdi, qword [rbx + 0x10]
cmp rbp, 0xf
jbe 0x1400cd2c7
mov rcx, qword [rbx]
cmp rdi, 4
jne 0x1400cd2f0
mov r8, rdi
lea rdx, str.Item
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd2f0
vmovsd xmm1, qword [0x1402175e0]
mov rcx, qword [r15]
jmp 0x1400cd41b
mov rcx, rbx
cmp rbp, 0xf
jbe 0x1400cd2fc
mov rcx, qword [rbx]
cmp rdi, 9
jne 0x1400cd322
mov r8, rdi
lea rdx, str.Container
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd322
vmovsd xmm1, qword [0x1402175f0]
jmp 0x1400cd417
mov rcx, rbx
cmp rbp, 0xf
jbe 0x1400cd32e
mov rcx, qword [rbx]
cmp rdi, 8
jne 0x1400cd354
mov r8, rdi
lea rdx, str.Teleport
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd354
vmovsd xmm1, qword [0x1402175f8]
jmp 0x1400cd417
mov rcx, rbx
cmp rbp, 0xf
jbe 0x1400cd360
mov rcx, qword [rbx]
cmp rdi, 6
jne 0x1400cd386
mov r8, rdi
lea rdx, str.Player
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd386
vmovsd xmm1, qword [0x140217600]
jmp 0x1400cd417
mov rcx, rbx
cmp rbp, 0xf
jbe 0x1400cd392
mov rcx, qword [rbx]
cmp rdi, 7
jne 0x1400cd3b5
mov r8, rdi
lea rdx, str.Pokemon
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd3b5
vmovsd xmm1, qword [0x140217608]
jmp 0x1400cd417
mov rcx, rbx
cmp rbp, 0xf
jbe 0x1400cd3c1
mov rcx, qword [rbx]
cmp rdi, 3
jne 0x1400cd3e4
mov r8, rdi
lea rdx, [0x1402017b4]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd3e4
vmovsd xmm1, qword [0x140217610]
jmp 0x1400cd417
mov r8, rdi
cmp rbp, 0xf
jbe 0x1400cd3f0
mov rbx, qword [rbx]
cmp r8, 4
jne 0x1400cd413
lea rdx, str.Tile
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400cd413
vmovsd xmm1, qword [0x140217618]
jmp 0x1400cd417
vxorpd xmm1, xmm1, xmm1
mov rcx, qword [rsi + 8]
call qword [sym.imp.lua.dll_lua_pushnumber]
mov rcx, qword [rsi + 8]
mov r8d, reloc.WS2_32.dll_WSACleanup
mov edx, r14d
call qword [sym.imp.lua.dll_lua_rawseti]
mov rcx, qword [rsi + 8]
mov edx, 0xfffffffd
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [sym.imp.lua.dll_lua_settop]