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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e574d
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x100f500c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1018c41c]
test al, 1
jne 0x100d2708
or eax, 1
mov dword [0x1018c41c], eax
mov eax, dword [0x10186d5c]
mov ebx, dword [eax + 0x30]
jmp 0x100d26fc
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x100d26d0
xor edx, edx
test ecx, ecx
je 0x100d26f9
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100d26e0
cmp esi, 0x90f473ab
je 0x100d2700
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100d26c6
mov dword [0x1018c424], ebx
jmp 0x100d270e
mov ebx, dword [0x1018c424]
cmp byte [0x10179c20], 0
je 0x100d2738
mov ecx, dword [0x10186fc4]
mov eax, dword [0x1016e340]
add ecx, 0xffffffb8
xor ecx, 0x6e623413
cmp byte [ecx + eax], 0
jne 0x100d2738
mov ecx, 3
jmp 0x100d273a
xor ecx, ecx
mov eax, dword [ebx]
push ecx
mov ecx, ebx
mov eax, dword [eax + 0x40]
call eax
cmp byte [0x101846a4], 0
je 0x100d2ae6
mov eax, dword [0x10186dbc]
movss xmm1, dword [eax + 0x10]
comiss xmm1, dword [0x1018c030]
ja 0x100d2ae6
movss xmm2, dword [0x1018c034]
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x100d2ae6
subss xmm1, dword [0x1018c02c]
movss xmm0, dword [0x100e9cac]
mov eax, dword [0x1016e748]
cdq
sub eax, edx
divss xmm1, xmm2
mov esi, eax
mov eax, dword [0x1016e74c]
cdq
sub eax, edx
sar esi, 1
mov edx, dword [0x1018475c]
mov edi, eax
mov eax, dword [0x10184758]
mov ecx, eax
sar edi, 1
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x38], edi
subss xmm0, xmm1
mulss xmm0, dword [0x100e9e34]
cvttss2si ebx, xmm0
mov dword [ebp - 0x34], ebx
cmp ecx, edx
je 0x100d298b
cmp dword [ecx], 0
je 0x100d27e2
add ecx, 4
cmp ecx, edx
jne 0x100d27d6
cmp ecx, edx
je 0x100d298b
mov ecx, dword [0x10186d6c]
movss xmm1, dword [0x100e9d60]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
mov byte [ebp - 0x29], bl
push dword [ebp - 0x2c]
mulss xmm0, dword [0x100e9bf8]
mov eax, dword [eax + 0x38]
subss xmm1, xmm0
movss dword [ebp - 0x30], xmm1
call eax
mov ecx, dword [0x10186d6c]
movss xmm1, dword [ebp - 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c]
lea eax, [edi - 0xc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x3c], eax
lea eax, [esi + 0xc]
movd xmm0, eax
lea eax, [edi - 5]
cvtdq2ps xmm0, xmm0
push dword [ebp - 0x3c]
addss xmm0, xmm1
cvttss2si ebx, xmm0
movd xmm0, eax
lea eax, [esi + 5]
cvtdq2ps xmm0, xmm0
push ebx
mov dword [ebp - 0x44], ebx
subss xmm0, xmm1
cvttss2si edi, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push edi
mov dword [ebp - 0x40], edi
addss xmm0, xmm1
cvttss2si esi, xmm0
push esi
call edx
mov ecx, dword [0x10186d6c]
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10186d6c]
mov ebx, dword [ebp - 0x38]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c]
lea eax, [ebx + 0xc]
movd xmm0, eax
lea eax, [ebx + 5]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x30]
cvttss2si edi, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push edi
mov dword [ebp - 0x38], edi
push dword [ebp - 0x44]
addss xmm0, dword [ebp - 0x30]
cvttss2si ebx, xmm0
push ebx
push esi
call edx
mov ecx, dword [0x10186d6c]
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10186d6c]
mov esi, dword [ebp - 0x48]
push dword [ebp - 0x38]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c]
lea eax, [esi - 0xc]
movd xmm0, eax
lea eax, [esi - 5]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x30]
cvttss2si edi, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push edi
push ebx
subss xmm0, dword [ebp - 0x30]
cvttss2si esi, xmm0
push esi
call edx
mov ecx, dword [0x10186d6c]
mov ebx, dword [ebp - 0x34]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
mov eax, dword [ecx]
mov byte [ebp - 0x29], bl
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10186d6c]
push dword [ebp - 0x3c]
push edi
mov eax, dword [ecx]
push dword [ebp - 0x40]
push esi
mov eax, dword [eax + 0x4c]
call eax
mov edx, dword [0x1018475c]
mov eax, dword [0x10184758]
cmp eax, edx
je 0x100d2ae6
cmp dword [eax], 2
je 0x100d299f
add eax, 4
cmp eax, edx
jne 0x100d2993
cmp eax, edx
je 0x100d2ae6
push 0x10186168
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xa6925
lea ecx, [ebp - 0x28]
call fcn.100daed0
add esp, 4
mov dword [ebp - 4], 0
mov edi, 1
mov eax, dword [0x10186dbc]
cmp dword [eax + 0x18], edi
jl 0x100d2ab0
nop dword [eax + eax]
mov ecx, dword [0x10186d64]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edx, 0x10186194
mov ecx, 0x1018617c
call fcn.100cdb10
test al, al
je 0x100d2aa1
mov edx, 0x1018619c
mov ecx, 0x10186188
call fcn.100cdb10
test al, al
je 0x100d2aa1
movss xmm3, dword [0x10186198]
lea ecx, [ebp - 0x28]
movaps xmm0, xmm3
subss xmm0, dword [0x101861a0]
push 2
push ecx
push ecx
mov ecx, esp
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
subss xmm3, xmm2
mulss xmm0, dword [0x100e9c70]
cvttss2si eax, xmm0
movss xmm0, dword [0x10186194]
cvttss2si edx, xmm3
movd xmm1, eax
sub edx, dword [0x10189458]
cvtdq2ps xmm1, xmm1
sub edx, 0xa
mov word [ecx], 0xffff
push edx
cdq
sub eax, edx
mov byte [ecx + 2], 0xff
sar eax, 1
mulss xmm1, dword [0x100e9c70]
mov byte [ecx + 3], bl
mov ecx, 0x10189474
subss xmm0, xmm1
cvttss2si esi, xmm0
add eax, esi
push eax
call fcn.100ce130
mov eax, dword [0x10186dbc]
inc edi
cmp edi, dword [eax + 0x18]
jle 0x100d29e0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x100d2ae6
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2adc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d2adc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100dc450
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100dbfd5
mov esp, ebp
pop ebp
ret