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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp byte [0x1020db44], 0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
je 0x100adea8
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 4]
xor esi, esi
mov dword [ebp - 4], eax
mov ecx, 0x84222325
mov edi, 0xcbf29ce4
cmp byte [eax], 0
je 0x100adc4c
inc esi
cmp byte [esi + eax], 0
jne 0x100adc45
test esi, esi
je 0x100adea8
xor ebx, ebx
movsx eax, byte [ebx + eax]
push 0x100
cdq
push 0x1b3
xor edx, edi
xor eax, ecx
push edx
push eax
call fcn.10130100
inc ebx
mov ecx, eax
mov eax, dword [ebp - 4]
mov edi, edx
cmp ebx, esi
jb 0x100adc56
mov ebx, dword [ebp - 8]
cmp edi, 0x3943e50e
ja 0x100ade8e
jb 0x100adc99
cmp ecx, 0x2bb2e9fe
ja 0x100ade8e
cmp ecx, 0x2bb2e9fe
jne 0x100add81
cmp edi, 0x3943e50e
jne 0x100add81
mov esi, dword [0x1020dcf4]
test esi, esi
je 0x100adea8
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1020f4b0]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x10216e1c]
cmp eax, dword [edi + 4]
jle 0x100add08
push 0x10216e1c
call fcn.100d7b67
add esp, 4
cmp dword [0x10216e1c], 0xffffffff
jne 0x100add08
mov eax, dword [0x10216e24]
push 0x10216e1c
mov dword [0x10216e20], eax
call fcn.100d7b16
add esp, 4
mov eax, dword [0x10216e20]
cmp dword [eax + esi], 0
jne 0x100adea8
mov eax, dword [0x10216e2c]
cmp eax, dword [edi + 4]
jle 0x100add51
push 0x10216e2c
call fcn.100d7b67
add esp, 4
cmp dword [0x10216e2c], 0xffffffff
jne 0x100add51
mov eax, dword [0x10216e28]
push 0x10216e2c
mov dword [0x10216e18], eax
call fcn.100d7b16
add esp, 4
mov eax, dword [0x10216e18]
cmp dword [eax + esi], 0
jle 0x100adea8
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
je 0x100adea8
cmp byte [eax], 0
jne 0x100adea8
mov byte [eax], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, 0x5de24d68
jne 0x100adda4
cmp edi, 0x4251ee7
jne 0x100adda4
push dword [ebp + 8]
mov ecx, ebx
call fcn.100ad120
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, 0xedb6640
jne 0x100adea8
cmp edi, 0x1baa64fb
jne 0x100adea8
lea edi, [ebx + 0xee4]
lea eax, [edi + 0x104]
cmp eax, edi
sbb ecx, ecx
and ecx, 0xffffffbf
add ecx, 0x41
cmp edi, eax
ja 0x100addda
xor eax, eax
rep stosd dword es:[edi], eax
lea ecx, [ebx + 0xac]
lea edx, [ecx + 0xe38]
cmp ecx, edx
je 0x100ade5c
add ecx, 0x30
nop dword [eax]
mov eax, dword [ecx - 0x2c]
cmp eax, dword [ecx - 0x28]
je 0x100addfb
mov dword [ecx - 0x28], eax
cmp byte [ecx - 0x20], 0
je 0x100ade45
mov dword [ecx - 0x20], 0
mov word [ecx - 0x1c], 0
mov dword [ecx - 0x18], 0xffffffff
mov dword [ecx - 0x10], 0
mov dword [ecx - 0x14], 0
mov dword [ecx - 0xc], 0
mov dword [ecx - 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx - 4], 0
cmp dword [ecx - 0x30], 0
je 0x100ade52
mov dword [ecx - 0x30], 0
add ecx, 0x38
lea eax, [ecx - 0x30]
cmp eax, edx
jne 0x100addf0
cmp byte [0x1020dbfc], 0
jne 0x100ade6c
mov byte [0x1020dbfc], 1
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 4]
cmp ecx, edx
je 0x100adea8
push ecx
call fcn.10069510
mov eax, dword [ebx + 4]
add esp, 4
mov dword [ebx + 8], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, 0xb118f470
jne 0x100adea8
cmp edi, 0xd089c265
jne 0x100adea8
push dword [ebp + 8]
mov ecx, ebx
call fcn.100ad510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4