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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d3a81
mov eax, dword fs:[0]
push eax
sub esp, 0x15c
mov eax, dword [0x100e800c]
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 dword [ebp - 0x64], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 2
xor esi, esi
mov ecx, dword [0x101a9a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x100c48f6
mov ecx, dword [0x101a9a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100c48f6
cmp byte [0x101ae4b4], 0
je 0x100c48f6
mov ecx, dword [0x101ae4b8]
test ecx, ecx
je 0x100c48f6
cmp byte [0x10123115], 0
je 0x100c48f6
mov eax, dword [0x101a9aa4]
movss xmm0, dword [0x101ae4bc]
subss xmm0, dword [eax + 0x10]
mov eax, dword [0x101a9c7c]
add eax, 0xffffffce
xor eax, 0x976fd341
movss dword [ebp - 0x14], xmm0
movss xmm1, dword [eax + ecx]
mov eax, dword [0x101a9c70]
add eax, 0xffffffd1
movss dword [ebp - 0x110], xmm1
xor eax, 0x976fd33e
movss xmm1, dword [eax + ecx]
mov eax, dword [0x101a9c80]
add eax, 0xffffffcd
movss dword [ebp - 0x104], xmm1
movss xmm1, dword [0x100dcc2c]
xor eax, 0x976fd342
mov ebx, dword [eax + ecx]
mov eax, dword [0x101a9c84]
add eax, 0xffffffcc
mov dword [ebp - 0x108], ebx
xor eax, 0x976fd343
comiss xmm1, xmm0
mov eax, dword [eax + ecx]
mov dword [ebp - 0x12c], eax
jae 0x100c48f6
mov ecx, dword [0x101a9a44]
lea edx, [ebp - 0x1c]
push edx
lea edx, [ebp - 0x68]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x101b5710]
test al, 1
jne 0x100c42f4
or eax, 1
mov dword [0x101b5710], eax
mov byte [ebp - 4], 3
mov eax, dword [0x101a9a40]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x100c42d2
mov ebx, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + ebx], 0
jne 0x100c4290
xor edx, edx
test ecx, ecx
je 0x100c42bf
nop dword [eax]
movsx eax, byte [edx + ebx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100c42a0
cmp edi, 0xec694f73
je 0x100c42e6
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10c], eax
test eax, eax
jne 0x100c4280
mov ebx, dword [ebp - 0x108]
xor ecx, ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov dword [0x101b5704], eax
mov byte [ebp - 4], 2
jmp 0x100c42f9
mov ecx, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0x108]
jmp 0x100c42d4
mov eax, dword [0x101b5704]
movd xmm1, dword [ebp - 0x1c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mulss xmm1, dword [ebp - 0x14]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x100dcc2c]
comiss xmm0, xmm1
jae 0x100c48f6
mov ecx, dword [0x101ae4b8]
mov edx, dword [0x101a9c48]
mov eax, dword [0x101a9c4c]
add edx, 0xffffffdb
mov edi, dword [0x101ae588]
xor edx, 0x976fd334
add eax, 0xffffffda
xor eax, 0x976fd335
movss xmm5, dword [ecx + edx + 4]
movss xmm4, dword [ecx + edx]
addss xmm5, dword [eax + ecx + 4]
addss xmm4, dword [eax + ecx]
movss xmm3, dword [ecx + edx + 8]
addss xmm3, dword [eax + ecx + 8]
mov eax, dword [0x101a9d3c]
movss xmm1, dword [edi + edx + 4]
add eax, 0xffffff9e
movss xmm2, dword [edi + edx + 8]
xor eax, 0x976fd371
movss xmm0, dword [eax + edi]
addss xmm0, dword [edi + edx]
addss xmm1, dword [eax + edi + 4]
addss xmm2, dword [eax + edi + 8]
subss xmm4, xmm0
subss xmm5, xmm1
subss xmm3, xmm2
mulss xmm4, xmm4
mulss xmm5, xmm5
mulss xmm3, xmm3
addss xmm5, xmm4
addss xmm5, xmm3
movaps xmm0, xmm5
call fcn.10035c40
mulss xmm0, xmm0
mulss xmm0, dword [0x100dcf18]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_expf
mov eax, dword [0x101a9d18]
mulss xmm0, dword [0x100dcee8]
add eax, 0xffffffa7
xor eax, 0x976fd368
mov ecx, dword [eax + edi]
cvttss2si eax, xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
test ecx, ecx
jle 0x100c442f
movaps xmm2, xmm4
movd xmm0, ecx
mulss xmm2, dword [0x100dcc94]
movaps xmm1, xmm4
cvtdq2ps xmm0, xmm0
subss xmm1, xmm2
mulss xmm1, dword [0x100dcc94]
comiss xmm1, xmm0
jbe 0x100c442c
addss xmm0, xmm0
movaps xmm2, xmm4
subss xmm2, xmm0
movaps xmm4, xmm2
movss xmm3, dword [0x100dcf0c]
movaps xmm0, xmm4
movss xmm2, dword [0x100dcf04]
andps xmm3, xmm4
xorps xmm0, xmm3
mov dword [ebp - 0x24], 1
cmpltss xmm0, xmm2
movaps xmm1, xmm4
xor eax, eax
andps xmm2, xmm0
orps xmm2, xmm3
addss xmm1, xmm2
subss xmm1, xmm2
movaps xmm0, xmm1
subss xmm0, xmm4
movss xmm4, dword [0x100dccd8]
cmpnless xmm0, xmm3
andps xmm0, xmm4
subss xmm1, xmm0
cvttss2si ecx, xmm1
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x34]
test ebx, ebx
jne 0x100c44a4
cmp dword [ebp - 0x20], 0x10
cmovae eax, dword [ebp - 0x34]
mov word [eax], 0x41
jmp 0x100c44b1
cmp dword [ebp - 0x20], 0x10
cmovae eax, dword [ebp - 0x34]
mov word [eax], 0x42
push 0x98
lea eax, [ebp - 0x100]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x100]
call fcn.10043780
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 4
mov dword [ebp - 0x14c], eax
mov edi, eax
mov dword [ebp - 0x148], 2
mov ebx, 2
mov ecx, edi
call fcn.1003ed80
add edi, 0xc
sub ebx, 1
jne 0x100c44f3
push dword [ebp - 0x148]
lea eax, [ebp - 0x34]
mov dword [ebp - 0x118], 0x1004d6a0
push dword [ebp - 0x14c]
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x100]
movq xmm0, qword [ebp - 0x11c]
lea eax, [ebp - 0x14]
movq qword [ebp - 0x144], xmm0
mov edx, str._i____.1fs
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], 0x100a6840
movq xmm0, qword [ebp - 0x11c]
mov dword [ebp - 0x13c], fcn.10044060
movq qword [ebp - 0x138], xmm0
mov dword [ebp - 0x130], 0x100a69d0
call fcn.10040f40
add esp, 8
lea eax, [ebp - 0x164]
lea ecx, [ebp - 0xfc]
push eax
call fcn.10043950
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x100], 0x100d7208
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x104], eax
lea ecx, [ebp - 0xfc]
call fcn.1003d5b0
lea ecx, [ebp - 0xf8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp - 0x64]
call fcn.1004cc30
mov edx, dword [ebp - 0x150]
cmp edx, 0x10
jb 0x100c4626
mov ecx, dword [ebp - 0x164]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c461c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c461c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100c94d3
add esp, 8
lea eax, [ebp - 0x18]
mov edx, str.__i_HP
push eax
lea ecx, [ebp - 0x164]
call fcn.100931e0
add esp, 4
lea ecx, [ebp - 0x4c]
push eax
call fcn.1004cc30
mov edx, dword [ebp - 0x150]
cmp edx, 0x10
jb 0x100c4682
mov ecx, dword [ebp - 0x164]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c4678
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c4678
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100c94d3
add esp, 8
movss xmm2, dword [ebp - 0x14]
mov edi, 0xff000cff
movss xmm5, dword [0x100dcde4]
comiss xmm2, xmm5
movss xmm6, dword [0x100dcdc0]
jbe 0x100c46a8
mov esi, 0xff3cc896
jmp 0x100c46bf
comiss xmm5, xmm2
jbe 0x100c46b9
comiss xmm2, xmm6
jbe 0x100c46b9
mov esi, 0xff8cffff
jmp 0x100c46bf
comiss xmm6, xmm2
cmova esi, edi
movss xmm1, dword [ebp - 0x104]
mov ebx, 0xff8cffff
movss xmm4, dword [0x100dccd8]
mov eax, dword [0x101a9cc8]
mov edx, dword [0x101ae588]
add eax, 0xffffffbb
mov ecx, dword [ebp - 0x18]
xor eax, 0x976fd354
movss xmm0, dword [ebp - 0x110]
divss xmm4, xmm1
cmp ecx, dword [eax + edx]
mov eax, dword [0x101a9aa4]
cmovl edi, ebx
mov ebx, dword [ebp - 0x1c]
movss xmm7, dword [eax + 0x10]
subss xmm0, xmm1
ucomiss xmm1, xmm5
movaps xmm3, xmm7
subss xmm3, xmm0
movd xmm0, ebx
lahf
cvtdq2ps xmm0, xmm0
mulss xmm3, xmm4
movaps xmm1, xmm3
test ah, 0x44
jp 0x100c4731
mulss xmm1, xmm5
jmp 0x100c4735
mulss xmm1, xmm6
mulss xmm1, xmm0
mov eax, 0x783cff96
mov dword [ebp - 0x104], 0x78000cff
movss xmm0, dword [ebp - 0x110]
subss xmm0, xmm7
mulss xmm4, xmm1
comiss xmm0, xmm2
movss dword [ebp - 0x108], xmm4
xorps xmm0, xmm0
cmovae eax, dword [ebp - 0x104]
cmp dword [ebp - 0x12c], 0xffffffff
mov dword [ebp - 0x104], eax
je 0x100c47f4
comiss xmm3, xmm0
jb 0x100c47f4
movss xmm4, dword [0x100dccd8]
comiss xmm4, xmm3
jb 0x100c47f4
mov ecx, dword [0x101a9a50]
push 0x78000000
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101a9a50]
push ebx
push 0x16
push 0
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101a9a50]
push dword [ebp - 0x104]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101a9a50]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
cvttss2si eax, dword [ebp - 0x108]
push eax
push 0x15
push 0
push 1
call edx
movss xmm2, dword [ebp - 0x14]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x18]
mov edx, dword [0x101ae588]
comiss xmm2, xmm0
jbe 0x100c4817
push 0
lea eax, [ebp - 0x64]
mov ecx, 0x101abec4
push eax
push esi
push 5
push 2
call fcn.100b2a40
mov ecx, dword [ebp - 0x18]
mov edx, dword [0x101ae588]
mov eax, dword [0x101a9ca8]
add eax, 0xffffffc3
xor eax, 0x976fd34c
cmp dword [eax + edx], 0
jne 0x100c48f6
mov eax, dword [0x101a9cc8]
add eax, 0xffffffbb
xor eax, 0x976fd354
cmp ecx, dword [eax + edx]
jl 0x100c48d9
push 5
mov dword [ebp - 0x128], 0
lea ecx, [ebp - 0x128]
push str.FATAL
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0xf
mov byte [ebp - 0x128], 0
call fcn.1003dc00
push 0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 5
push eax
push edi
push dword [0x101abecc]
mov ecx, 0x101abec4
push 2
call fcn.100b2a40
mov edx, dword [ebp - 0x114]
cmp edx, 0x10
jb 0x100c48f6
mov ecx, dword [ebp - 0x128]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c48cd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c48cd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100c94d3
add esp, 8
jmp 0x100c48f6
test ecx, ecx
jle 0x100c48f6
push 0
lea eax, [ebp - 0x4c]
mov ecx, 0x101abec4
push eax
push edi
push dword [0x101abecc]
push 2
call fcn.100b2a40
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x100c492a
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c4920
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c49a4
push edx
push ecx
call fcn.100c94d3
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x100c496c
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c4962
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c49a4
push edx
push ecx
call fcn.100c94d3
add esp, 8
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp edx, 0x10
jb 0x100c49b4
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c49aa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c49aa
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100c94d3
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.100c8fa5
mov esp, ebp
pop ebp
ret