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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x546b0d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push esi
mov dword [ebp - 0x40], 0
push edi
mov dword [ebp - 0x18], ecx
mov byte [ebp - 0xf], 0
mov byte [ebp - 0xd], 0
mov byte [ebp - 0xe], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov eax, dword [ebp + 8]
mov esi, eax
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 0x10
mov edi, dword [eax + 0x10]
jb 0x4cb3e0
mov esi, dword [eax]
cmp dword [0x5cc5e4], 0x10
mov eax, 0x5cc5d0
mov ecx, dword [0x5cc5e0]
cmovae eax, dword [0x5cc5d0]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
cmp edi, ecx
jb 0x4cb434
push ecx
push eax
mov eax, edi
sub eax, ecx
add eax, esi
push eax
call fcn.00467c60
add esp, 0xc
test eax, eax
jne 0x4cb434
mov eax, edi
mov dword [ebp - 0x28], esi
sub eax, dword [0x5cc5e0]
cmp edi, eax
mov byte [ebp - 0xd], 1
cmovb eax, edi
mov dword [ebp - 0x24], eax
jmp 0x4cb4c3
cmp dword [0x5cc5b4], 0x10
mov eax, 0x5cc5a0
mov ecx, dword [0x5cc5b0]
cmovae eax, dword [0x5cc5a0]
cmp edi, ecx
jb 0x4cb47f
push ecx
push eax
mov eax, edi
sub eax, ecx
add eax, esi
push eax
call fcn.00467c60
add esp, 0xc
test eax, eax
jne 0x4cb47f
mov eax, edi
mov dword [ebp - 0x28], esi
sub eax, dword [0x5cc5b0]
cmp edi, eax
mov byte [ebp - 0xe], 1
cmovb eax, edi
mov dword [ebp - 0x24], eax
jmp 0x4cb4c3
mov ecx, dword [0x5cc5c8]
sub esp, 8
cmp dword [0x5cc5cc], 0x10
mov edx, esp
mov eax, 0x5cc5b8
cmovae eax, dword [0x5cc5b8]
mov dword [edx + 4], ecx
lea ecx, [ebp - 0x28]
mov dword [edx], eax
call fcn.004a2710
mov ecx, dword [ebp - 0x14]
test al, al
mov eax, dword [ebp - 0x24]
mov edx, 1
mov esi, dword [ebp - 0x28]
movzx ecx, cl
cmovne ecx, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
test esi, esi
je 0x4cb4e6
push eax
push esi
lea ecx, [ebp - 0x58]
call fcn.0041fee0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4cb51a
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4cb510
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cb78c
push edx
push ecx
call fcn.004b9160
add esp, 8
movups xmm1, xmmword [ebp - 0x58]
lea esi, [ebp - 0x40]
mov byte [ebp - 0x58], 0
movq xmm0, qword [ebp - 0x48]
mov edx, 0x811c9dc5
movq qword [ebp - 0x30], xmm0
cmp dword [ebp - 0x2c], 0x10
mov edi, dword [ebp - 0x30]
movd eax, xmm1
movups xmmword [ebp - 0x40], xmm1
mov dword [ebp - 0x48], 0
cmovae esi, eax
mov dword [ebp - 0x44], 0xf
xor ecx, ecx
test edi, edi
je 0x4cb571
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x4cb560
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x40]
push edx
push eax
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00439940
mov esi, dword [eax + 4]
test esi, esi
jne 0x4cb58e
mov esi, dword [edi + 4]
mov ax, word [0x5cc57c]
test al, al
je 0x4cb5c2
mov dword [ebp - 0x18], 0xd4db60
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 0x18]
sub eax, 0x7b7740
push ecx
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004baf10
mov ax, word [0x5cc57c]
add esp, 0xc
cmp esi, dword [edi + 4]
je 0x4cb6fc
cmp byte [ebp - 0xd], 0
mov edi, dword [ebp + 0xc]
je 0x4cb615
test al, al
je 0x4cb603
mov dword [ebp + 0x14], 0xd5c770
mov ecx, edi
mov eax, dword [ebp + 0x14]
sub eax, 0x7c6320
cmp dword [edi + 0x14], 0x10
jb 0x4cb5f1
mov ecx, dword [edi]
push ecx
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004bada0
add esp, 0xc
mov ecx, dword [esi + 0x20]
push edi
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 0xf], 1
jmp 0x4cb747
cmp byte [ebp - 0xe], 0
je 0x4cb65f
test al, al
je 0x4cb64a
mov dword [ebp + 0x14], 0xd68c38
mov ecx, edi
mov eax, dword [ebp + 0x14]
sub eax, 0x7d27b0
cmp dword [edi + 0x14], 0x10
jb 0x4cb638
mov ecx, dword [edi]
push ecx
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004bada0
add esp, 0xc
mov ecx, dword [esi + 0x20]
push dword [ebp + 0x10]
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov byte [ebp - 0xf], 1
jmp 0x4cb747
cmp byte [ebp - 0x14], 0
je 0x4cb6a9
test al, al
je 0x4cb694
mov dword [ebp + 0x14], 0xd75104
mov ecx, edi
mov eax, dword [ebp + 0x14]
sub eax, 0x7dec40
cmp dword [edi + 0x14], 0x10
jb 0x4cb682
mov ecx, dword [edi]
push ecx
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004bada0
add esp, 0xc
mov ecx, dword [esi + 0x20]
push dword [ebp + 0x10]
push edi
mov eax, dword [ecx]
call dword [eax + 0x10]
mov byte [ebp - 0xf], 1
jmp 0x4cb747
test al, al
je 0x4cb6d8
mov dword [ebp + 0xc], 0xd815d4
mov ecx, edi
mov eax, dword [ebp + 0xc]
sub eax, 0x7eb0d0
cmp dword [edi + 0x14], 0x10
jb 0x4cb6c6
mov ecx, dword [edi]
push ecx
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004bada0
add esp, 0xc
mov ecx, dword [esi + 0x20]
lea edx, [ebp - 0x40]
push edx
push dword [ebp + 0x10]
mov eax, dword [ecx]
push edi
call dword [eax + 4]
cmp byte [ebp + 0x14], 0
je 0x4cb6f6
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov byte [ebp - 0xf], 1
jmp 0x4cb747
mov esi, dword [ebp + 0xc]
test al, al
je 0x4cb724
mov dword [ebp + 0x14], 0xda1510
mov eax, dword [ebp + 0x14]
sub eax, 0x80afe0
push esi
push eax
movzx eax, word [0x5cc57c]
push eax
call fcn.004baf10
add esp, 0xc
push dword [ebp + 8]
lea ecx, [edi + 0x20]
call fcn.0043cba0
cmp eax, esi
je 0x4cb747
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x4cb73e
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.0041fee0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4cb777
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4cb76d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cb78c
push edx
push ecx
call fcn.004b9160
add esp, 8
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xf]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10
call fcn.0051bb5f
int3