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

Disassembly:
mov eax, dword [0x1021e824]
push ebx
push esi
push edi
test al, 1
jne 0x100d0f38
or eax, 1
mov dword [0x1021e824], eax
mov eax, dword [0x101f4690]
mov ebx, dword [eax + 0x30]
jmp 0x100d0f2c
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100d0f00
xor edx, edx
test ecx, ecx
je 0x100d0f29
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100d0f10
cmp esi, 0xaeb5d04d
je 0x100d0f30
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d0ef0
mov dword [0x1021e834], ebx
jmp 0x100d0f3e
mov ebx, dword [0x1021e834]
mov eax, dword [ebx]
mov ecx, ebx
push 1
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [0x1021e824]
test al, 2
jne 0x100d0fc1
or eax, 2
mov dword [0x1021e824], eax
mov ebx, dword [0x101f4690]
mov ebx, dword [ebx + 0x30]
test ebx, ebx
je 0x100d0fb9
nop word [eax + eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d0f80
xor edx, edx
test ecx, ecx
je 0x100d0fad
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d0f90
cmp edi, 0x5e04e714
je 0x100d10b3
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d0f70
mov eax, dword [0x1021e824]
xor ebx, ebx
mov dword [0x1021e82c], ebx
test al, 4
jne 0x100d1031
or eax, 4
mov dword [0x1021e824], eax
mov ecx, dword [0x101f4690]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x100d1029
nop word [eax + eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d0ff0
xor edx, edx
test ecx, ecx
je 0x100d101d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d1000
cmp edi, 0x95f1e1ab
je 0x100d10bd
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d0fe0
mov eax, dword [0x1021e824]
xor ebx, ebx
mov dword [0x1021e828], ebx
test al, 8
jne 0x100d109d
or eax, 8
mov dword [0x1021e824], eax
mov ecx, dword [0x101f4690]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x100d1095
nop word [eax + eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d1060
xor edx, edx
test ecx, ecx
je 0x100d1089
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d1070
cmp edi, 0xb6239d1c
je 0x100d10c7
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d1050
mov eax, dword [0x1021e824]
xor ebx, ebx
mov dword [0x1021e708], ebx
test al, 0x10
jne 0x100d1118
or eax, 0x10
mov dword [0x1021e824], eax
mov eax, dword [0x101f4690]
mov ebx, dword [eax + 0x30]
jmp 0x100d110c
mov eax, dword [0x1021e824]
jmp 0x100d0fbb
mov eax, dword [0x1021e824]
jmp 0x100d102b
mov eax, dword [0x1021e824]
jmp 0x100d1097
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor eax, eax
nop word [eax + eax]
inc eax
cmp byte [eax + esi], 0
jne 0x100d10e0
xor edx, edx
test eax, eax
je 0x100d1109
nop dword [eax]
movsx ecx, byte [edx + esi]
inc edx
xor ecx, edi
imul edi, ecx, 0x1000193
cmp edx, eax
jb 0x100d10f0
cmp edi, 0x43114b43
je 0x100d1110
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d10d0
mov dword [0x1021e830], ebx
jmp 0x100d111e
mov ebx, dword [0x1021e830]
mov eax, dword [ebx]
mov ecx, ebx
push 0xf
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x1021e82c]
push 0x10162590
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1021e828]
push 0x10160ef4
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1021e708]
push 2
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101f4694]
push str.clear
mov eax, dword [ecx]
mov eax, dword [eax + 0x1b0]
call eax
pop edi
pop esi
pop ebx
ret