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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x101c6438]
push ebx
push esi
push edi
mov ebx, dword [eax + 0x30]
mov dword [ebp - 0xc], ecx
test ebx, ebx
jne 0x1006a724
xor edi, edi
mov dword [ebp - 4], ebx
xor esi, esi
jmp 0x1006a86a
mov eax, ebx
mov dword [ebp - 4], ebx
nop dword [eax]
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x1006a740
xor edx, edx
test ecx, ecx
je 0x1006a770
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1006a750
cmp esi, 0xe3d20ca0
je 0x1006a9b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
test eax, eax
jne 0x1006a730
mov dword [ebp - 4], eax
mov eax, ebx
mov dword [ebp - 8], ebx
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x1006a790
xor edx, edx
test ecx, ecx
je 0x1006a7c0
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1006a7a0
cmp esi, 0x2f82ccee
je 0x1006a9c1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 8], eax
test eax, eax
jne 0x1006a782
mov dword [ebp - 8], eax
mov eax, ebx
mov dword [ebp - 0x10], ebx
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1006a7e0
xor edx, edx
test ecx, ecx
je 0x1006a80c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1006a7f0
cmp esi, 0xb488961c
je 0x1006a820
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x1006a7d2
mov dword [ebp - 0x10], eax
nop dword [eax]
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x1006a830
xor edx, edx
test ecx, ecx
je 0x1006a85d
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1006a840
cmp esi, 0x1da69e46
je 0x1006a9cb
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1006a820
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
xor ebx, ebx
mov ecx, dword [0x101c6508]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
call dword [ebp - 8]
mov ecx, dword [ebp - 4]
fstp dword [ebp - 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
mov eax, dword [edi]
mov ecx, edi
fstp dword [ebp - 0x18]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
mov eax, dword [esi]
mov ecx, esi
fstp dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
mov eax, dword [ebx]
mov ecx, ebx
fstp dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
mov ecx, dword [0x101c6500]
fstp dword [ebp - 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
mov ecx, dword [0x101c6504]
fstp dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
call dword [ebp - 4]
movss xmm0, dword [ebp - 8]
fstp dword [ebp - 4]
movss xmm1, dword [ebp - 4]
comiss xmm0, xmm1
ja 0x1006a900
movaps xmm0, xmm1
minss xmm0, dword [ebp - 0x10]
ucomiss xmm0, dword [0x100e2a98]
lahf
test ah, 0x44
jp 0x1006a915
movss xmm0, dword [0x100e2bb0]
movss xmm1, dword [ebp - 0x18]
movss xmm2, dword [ebp - 0x1c]
comiss xmm1, xmm2
ja 0x1006a92d
movss xmm1, dword [ebp - 0x20]
minss xmm1, xmm2
divss xmm0, xmm1
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
mov ebx, dword [ebp - 0xc]
add esp, 8
fstp dword [ebp - 0x14]
movss xmm0, dword [ebp - 0x14]
mov eax, dword [ebx + 0xc]
movss dword [eax + 0xc], xmm0
mov ecx, dword [0x101c643c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov esi, eax
push 0
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
mov ecx, esi
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 0xc]
push 1
movss dword [eax + 0x10], xmm0
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
pop edi
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 0xc]
pop esi
movss dword [eax + 0x14], xmm0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ebx
mov dword [ebp - 8], eax
jmp 0x1006a782
mov eax, ebx
mov dword [ebp - 0x10], eax
jmp 0x1006a7d2
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
jmp 0x1006a86c