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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x101cda10]
sub esp, 0x1c
push ebx
push esi
push edi
test al, 1
jne 0x1006f1b2
or eax, 1
mov dword [0x101cda10], eax
mov ebx, dword [0x101c5f7c]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 4], ebx
test ebx, ebx
je 0x1006f198
nop
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1006f160
xor edx, edx
test ecx, ecx
je 0x1006f189
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f170
cmp edi, 0x7ac0d5a
je 0x1006f1a5
mov ebx, dword [ebx + 4]
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x1006f150
mov eax, dword [0x101cda10]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [0x101cda04], ebx
jmp 0x1006f1bb
mov eax, dword [0x101cda10]
mov dword [0x101cda04], ebx
jmp 0x1006f1bb
mov ecx, dword [0x101cda04]
mov dword [ebp - 4], ecx
test al, 2
jne 0x1006f221
or eax, 2
mov dword [0x101cda10], eax
mov ecx, dword [0x101c5f7c]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1006f219
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1006f1e0
xor edx, edx
test ecx, ecx
je 0x1006f20d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f1f0
cmp edi, 0xa0f6f854
je 0x1006f387
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006f1d4
mov eax, dword [0x101cda10]
xor ebx, ebx
mov dword [0x101cda18], ebx
test al, 4
jne 0x1006f291
or eax, 4
mov dword [0x101cda10], eax
mov ecx, dword [0x101c5f7c]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1006f289
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 0x1006f250
xor edx, edx
test ecx, ecx
je 0x1006f27d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f260
cmp edi, 0xd92ab2d6
je 0x1006f391
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006f240
mov eax, dword [0x101cda10]
xor ebx, ebx
mov dword [0x101cda08], ebx
test al, 8
jne 0x1006f301
or eax, 8
mov dword [0x101cda10], eax
mov ecx, dword [0x101c5f7c]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1006f2f9
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 0x1006f2c0
xor edx, edx
test ecx, ecx
je 0x1006f2ed
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f2d0
cmp edi, 0x4e98c3f5
je 0x1006f39b
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006f2b0
mov eax, dword [0x101cda10]
xor ebx, ebx
mov dword [0x101cd9f8], ebx
test al, 0x10
jne 0x1006f36d
or eax, 0x10
mov dword [0x101cda10], eax
mov ecx, dword [0x101c5f7c]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1006f365
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 0x1006f330
xor edx, edx
test ecx, ecx
je 0x1006f359
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f340
cmp edi, 0x1ab8291b
je 0x1006f3a5
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006f320
mov eax, dword [0x101cda10]
xor ebx, ebx
mov dword [0x101cda14], ebx
test al, 0x20
jne 0x1006f3f6
or eax, 0x20
mov dword [0x101cda10], eax
mov eax, dword [0x101c5f7c]
mov ebx, dword [eax + 0x30]
jmp 0x1006f3ec
mov eax, dword [0x101cda10]
jmp 0x1006f21b
mov eax, dword [0x101cda10]
jmp 0x1006f28b
mov eax, dword [0x101cda10]
jmp 0x1006f2fb
mov eax, dword [0x101cda10]
jmp 0x1006f367
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1006f3c0
xor edx, edx
test ecx, ecx
je 0x1006f3e9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1006f3d0
cmp edi, 0x10a491a5
je 0x1006f3f0
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006f3b0
mov dword [0x101cd9fc], ebx
vmovss xmm0, dword [0x100c9e6c]
mov ecx, dword [ebp - 4]
mov bl, byte [0x100c9c44]
vmovss dword [ebp - 0xc], xmm0
vmovss xmm0, dword [0x100c9cdc]
mov eax, dword [ecx]
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [0x100c9da4]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [0x100c9f34]
mov eax, dword [eax + 0x34]
vmovss dword [ebp - 0x18], xmm0
vmovss xmm0, dword [0x100c9ffc]
mov byte [ebp - 8], bl
vmovss dword [ebp - 0x1c], xmm0
call eax
test eax, eax
setne al
cmp al, bl
je 0x1006f463
mov ecx, dword [0x101cda04]
push dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101cda18]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
call dword [ebp - 8]
vmovss xmm1, dword [ebp - 0xc]
fstp dword [ebp - 8]
vmovss xmm0, dword [ebp - 8]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006f49e
mov ecx, dword [0x101cda18]
push ecx
vmovss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101cda08]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
vmovss xmm1, dword [ebp - 0x10]
fstp dword [ebp - 0xc]
vmovss xmm0, dword [ebp - 0xc]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006f4d9
mov ecx, dword [0x101cda08]
push ecx
vmovss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101cd9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
vmovss xmm1, dword [ebp - 0x14]
fstp dword [ebp - 0x10]
vmovss xmm0, dword [ebp - 0x10]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006f514
mov ecx, dword [0x101cd9f8]
push ecx
vmovss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101cda14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
vmovss xmm1, dword [ebp - 0x18]
fstp dword [ebp - 0x14]
vmovss xmm0, dword [ebp - 0x14]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006f54f
mov ecx, dword [0x101cda14]
push ecx
vmovss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101cd9fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x18], eax
call dword [ebp - 0x18]
vmovss xmm1, dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
vmovss xmm0, dword [ebp - 0x18]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006f58a
mov ecx, dword [0x101cd9fc]
push ecx
vmovss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret