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

Disassembly:
sub esp, 0x68
cmp dword [edx + 4], 0
push ebx
push ebp
push esi
mov ebp, ecx
mov dword [esp + 0x18], edx
push edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], 0
jle 0x10111571
xor eax, eax
mov edi, 0x3e2d
mov dword [esp + 0x18], eax
nop
mov ebx, dword [edx]
mov esi, 0x811c9dc5
add ebx, eax
mov ecx, dword [ebx]
mov al, byte [ecx]
test al, al
je 0x10111235
movsx eax, al
lea ecx, [ecx + 1]
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x10111221
mov edx, 0xe70c2de5
mov ecx, 0x1021b279
call fcn.100299a0
cmp esi, eax
je 0x1011154d
cmp dword [ebx + 4], 6
jne 0x10111270
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x10111270
mov eax, dword [edx + 0xc]
cmp byte [eax], 0x44
jne 0x10111270
mov eax, dword [ebx + 0x2c]
mov ecx, ebp
add eax, dword [esp + 0x7c]
push eax
call fcn.101111e0
mov esi, dword [ebx]
mov eax, ebp
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 2
mov dword [esp + 0x5c], 0xf
lea edx, [eax + 1]
mov word [esp + 0x48], di
mov byte [esp + 0x4a], 0
nop dword [eax + eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101112a0
sub eax, edx
push eax
push ebp
push ecx
lea ecx, [esp + 0x54]
call fcn.10078280
mov dword [esp + 0x40], 0
mov ecx, esi
mov dword [esp + 0x44], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [esp + 0x30], xmm0
vmovdqu xmm0, xmmword [eax]
vmovdqu xmmword [esp + 0x30], xmm0
vmovq xmm0, qword [eax + 0x10]
vmovq qword [esp + 0x40], xmm0
mov dword [eax + 0x14], 0xf
lea edx, [ecx + 1]
mov dword [eax + 0x10], 0
mov byte [eax], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10111300
sub ecx, edx
push ecx
push esi
lea ecx, [esp + 0x38]
call fcn.10025f70
lea ecx, [esp + 0x60]
mov edi, 0x811c9dc5
vmovdqu xmm1, xmmword [eax]
vmovq xmm0, qword [eax + 0x10]
vmovq qword [esp + 0x70], xmm0
vmovdqu xmmword [esp + 0x60], xmm1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov esi, dword [esp + 0x74]
cmp esi, 0xf
vmovd edx, xmm1
cmova ecx, edx
mov al, byte [ecx]
test al, al
je 0x1011136b
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x10111357
cmp esi, 0xf
jbe 0x1011139b
lea ecx, [esi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x10111391
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1011157b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x101113d1
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x101113c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1011157b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0xf
mov byte [esp + 0x30], 0
cmp ecx, 0xf
jbe 0x1011141c
mov edx, dword [esp + 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10111412
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1011157b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
cmp edi, 0x1df12898
je 0x1011144d
cmp edi, 0x309b765b
jne 0x1011146c
cmp dword [0x10647508], 0
jne 0x1011146c
lea ecx, [ebx + 0x20]
mov dword [0x10647508], ecx
mov eax, dword [ecx]
mov dword [0x10647504], eax
mov dword [ecx], 0x10110eb0
jmp 0x1011146c
cmp dword [0x10647500], 0
jne 0x1011146c
lea ecx, [ebx + 0x20]
mov dword [0x10647500], ecx
mov eax, dword [ecx]
mov dword [0x106474fc], eax
mov dword [ecx], 0x10110e30
mov eax, dword [ebx + 0x2c]
add eax, dword [esp + 0x7c]
mov esi, dword [0x1075a8a4]
mov ecx, dword [0x1075a8a8]
mov dword [esp + 0x20], eax
cmp esi, ecx
je 0x10111498
mov dword [esi], edi
mov dword [esi + 4], eax
add dword [0x1075a8a4], 8
jmp 0x10111548
mov edx, dword [0x1075a8a0]
mov ebx, esi
sub ebx, edx
sar ebx, 3
cmp ebx, 0x1fffffff
je 0x10111580
sub ecx, edx
lea eax, [ebx + 1]
sar ecx, 3
mov dword [esp + 0x24], eax
mov edx, ecx
shr edx, 1
mov eax, 0x1fffffff
sub eax, edx
cmp ecx, eax
jbe 0x101114d3
mov ebp, 0x1fffffff
jmp 0x101114de
lea ebp, [ecx + edx]
lea eax, [ebx + 1]
cmp ebp, eax
cmovb ebp, eax
push ebp
call fcn.10111650
mov edx, eax
mov eax, dword [esp + 0x20]
lea ebx, [edx + ebx*8]
mov dword [esp + 0x28], edx
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov ecx, dword [0x1075a8a4]
cmp esi, ecx
jne 0x1011150c
mov eax, dword [0x1075a8a0]
sub ecx, eax
push ecx
push eax
push edx
jmp 0x1011152e
mov ecx, dword [0x1075a8a0]
mov eax, esi
sub eax, ecx
push eax
push ecx
push edx
call fcn.10180380
mov eax, dword [0x1075a8a4]
lea ecx, [ebx + 8]
add esp, 0xc
sub eax, esi
push eax
push esi
push ecx
call fcn.10180380
add esp, 0xc
push ebp
push dword [esp + 0x28]
push dword [esp + 0x30]
call fcn.101115e0
mov ebp, dword [esp + 0x2c]
mov edi, 0x3e2d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
inc edx
mov eax, dword [esp + 0x18]
add eax, 0x3c
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
cmp edx, dword [ecx + 4]
jge 0x10111571
mov edx, ecx
jmp 0x10111210
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 4
call fcn.101829ea
call fcn.10010aa0
int3