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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10391219
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x1049b0c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
cmp byte [eax + 8], 0
je 0x100c9687
mov ecx, dword [eax + 0x154]
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x100c9687
cmp dword [eax + 0x158], 0
je 0x100c9687
mov eax, dword [0x10541630]
test al, 1
jne 0x100c9212
or eax, 1
mov dword [0x10541630], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x100c9134
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100c9129
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x100c9103
xor edx, edx
test ecx, ecx
je 0x100c9129
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c9110
cmp esi, 0x4e9f1122
je 0x100c914a
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x100c90f0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x10541634], eax
jmp 0x100c9217
mov eax, dword [ebp - 0x10]
xor esi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x100c91e8
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x100c9194
cmp dword [ecx + 4], 0
jle 0x100c9194
push 0
mov edx, 0x1c93bcf0
call fcn.10238b60
add esp, 4
test eax, eax
je 0x100c9191
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x10]
mov edi, dword [ebx]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100c91a0
xor edx, edx
test ecx, ecx
je 0x100c91cc
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c91b0
cmp esi, 0x1c93bcf0
je 0x100c91fb
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
inc edx
mov esi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], ecx
cmp edx, dword [eax + 4]
jl 0x100c9163
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x10541634], eax
jmp 0x100c9217
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x10541634], eax
jmp 0x100c9217
mov eax, dword [0x10541634]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x38], eax
mov eax, dword [0x10544908]
test al, 1
jne 0x100c9372
or eax, 1
mov dword [0x10544908], eax
mov dword [ebp - 4], 1
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x100c9294
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x100c9289
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100c9260
xor edx, edx
test ecx, ecx
je 0x100c9289
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c9270
cmp esi, 0x72e242a1
je 0x100c92aa
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x100c9247
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x105446c4], eax
jmp 0x100c9377
mov eax, dword [ebp - 0x18]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x28], esi
cmp dword [eax + 4], esi
jle 0x100c9348
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x100c92f4
cmp dword [ecx + 4], 0
jle 0x100c92f4
push 0
mov edx, 0x84cdad2
call fcn.10238b60
add esp, 4
test eax, eax
je 0x100c92f1
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x18]
mov edi, dword [ebx]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100c9300
xor edx, edx
test ecx, ecx
je 0x100c932c
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c9310
cmp esi, 0x84cdad2
je 0x100c935b
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x100c92c3
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x105446c4], eax
jmp 0x100c9377
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [0x105446c4], eax
jmp 0x100c9377
mov eax, dword [0x105446c4]
cmp dword [ebp - 0x38], 2
je 0x100c9687
cmp dword [ecx + eax], 0
jle 0x100c9687
cmp byte [0x10520c34], 0
je 0x100c9687
mov esi, dword [ebp - 0x3c]
lea ecx, [esi + 0x64]
call fcn.100c7100
test al, al
je 0x100c9687
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xa8]
sub eax, ecx
sar eax, 4
cmp eax, 1
jb 0x100c9687
movss xmm0, dword [ecx]
movss xmm1, dword [0x1046f3bc]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ecx + 4]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [ecx + 8]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [0x10520c44]
mulss xmm0, xmm1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x34], 0
cvttss2si ebx, xmm0
mov dword [ebp - 0x30], 0
movss xmm0, dword [0x10520c40]
mulss xmm0, xmm1
movzx ebx, bl
shl ebx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x10520c3c]
mulss xmm0, xmm1
movzx eax, al
or ebx, eax
shl ebx, 8
cvttss2si edx, xmm0
movss xmm0, dword [0x10520c38]
mulss xmm0, xmm1
movzx eax, dl
or ebx, eax
shl ebx, 8
cvttss2si ecx, xmm0
movzx eax, cl
or ebx, eax
mov eax, dword [0x1055d084]
add eax, 0x8227453d
xor eax, 0xb5eaaa9f
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x24]
add ecx, 0x24
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
or eax, 3
mov dword [ebp - 4], 2
mov dword [ecx], eax
mov eax, dword [esi + 0xac]
mov esi, dword [esi + 0xa8]
mov dword [ebp - 0x3c], eax
cmp esi, eax
je 0x100c9682
movss xmm7, dword [0x1046f104]
nop dword [eax]
mov edi, dword [0x1055d084]
lea eax, [ebp - 0x2c]
push 0
push eax
add edi, 0x8227453d
lea eax, [ebp - 0x58]
xor edi, 0xb5eaaa9f
push eax
mov ecx, edi
call fcn.102708d0
test al, al
je 0x100c9664
push 0
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
push esi
call fcn.102708d0
test al, al
je 0x100c9664
movzx eax, bl
movss xmm3, dword [0x1046efa4]
movd xmm2, eax
mov eax, ebx
shr eax, 8
movzx eax, al
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, ebx
shr eax, 0x18
cvtdq2ps xmm0, xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mulss xmm2, xmm3
mulss xmm1, xmm3
mulss xmm0, xmm3
mulss xmm4, xmm3
xorps xmm3, xmm3
comiss xmm3, xmm2
jbe 0x100c954a
xorps xmm2, xmm2
jmp 0x100c954e
minss xmm2, xmm7
movss xmm6, dword [0x1046f3bc]
movss xmm5, dword [0x1046f094]
mulss xmm2, xmm6
addss xmm2, xmm5
cvttss2si ecx, xmm2
shl ecx, 0x10
comiss xmm3, xmm1
jbe 0x100c9577
xorps xmm1, xmm1
jmp 0x100c957b
minss xmm1, xmm7
mulss xmm1, xmm6
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm3, xmm0
jbe 0x100c9596
xorps xmm0, xmm0
jmp 0x100c959a
minss xmm0, xmm7
mulss xmm0, xmm6
addss xmm0, xmm5
cvttss2si eax, xmm0
or ecx, eax
comiss xmm3, xmm4
jbe 0x100c95b2
xorps xmm4, xmm4
jmp 0x100c95b6
minss xmm4, xmm7
movss xmm0, dword [ebp - 0x34]
mulss xmm4, xmm6
push ecx
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x30]
addss xmm4, xmm5
mov dword [esp], 0x3f800000
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x28]
cvttss2si eax, xmm4
movss dword [ebp - 0x18], xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.100ec980
movss xmm0, dword [ebp - 0x34]
mov eax, dword [0x1055d084]
push ecx
movss dword [ebp - 0x14], xmm0
lea ecx, [ebp - 0x14]
movss xmm0, dword [ebp - 0x30]
add eax, 0x8227453d
mov dword [esp], 0x40000000
xor eax, 0xb5eaaa9f
push 0x32ebebeb
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x44]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x28]
push ecx
mov ecx, dword [eax + 0xc]
movss dword [ebp - 0x40], xmm0
call fcn.100ec980
movss xmm7, dword [0x1046f104]
movq xmm0, qword [esi]
mov eax, dword [esi + 8]
add esi, 0x10
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x50], eax
cmp esi, dword [ebp - 0x3c]
jne 0x100c94b0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret