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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x10112308]
add eax, 0xffffffa3
mov dword [ebp - 0x10], ecx
xor eax, 0x7e88123b
mov dword [ebp - 0x14], edx
push ebx
push esi
push edi
mov eax, dword [eax + ecx]
mov ecx, dword [0x1011202c]
push ecx
mov edx, esp
movss dword [ebp - 4], xmm1
mov esi, dword [ecx]
mov esi, dword [esi + 0x10]
mov dword [edx], eax
call esi
test eax, eax
jne 0x10087784
xorps xmm0, xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101181f8]
test cl, 1
jne 0x10087814
or ecx, 1
mov dword [0x101181f8], ecx
mov ebx, dword [0x10112024]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x100877f9
nop dword [eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100877c0
xor edx, edx
test ecx, ecx
je 0x100877e9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100877d0
cmp edi, 0x874b1932
je 0x10087806
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x100877b0
mov ecx, dword [0x101181f8]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x101181fc], ebx
jmp 0x1008781c
mov ecx, dword [0x101181f8]
mov dword [0x101181fc], ebx
jmp 0x1008781c
mov eax, dword [0x101181fc]
mov dword [ebp - 8], eax
test cl, 2
jne 0x100878a4
or ecx, 2
mov dword [0x101181f8], ecx
mov eax, dword [0x10112024]
mov ebx, dword [eax + 0x30]
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x10087889
nop dword [eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10087850
xor edx, edx
test ecx, ecx
je 0x10087879
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10087860
cmp edi, 0x227932f
je 0x10087896
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc], ebx
test ebx, ebx
jne 0x10087840
mov ecx, dword [0x101181f8]
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [0x101181f4], ebx
jmp 0x100878ac
mov ecx, dword [0x101181f8]
mov dword [0x101181f4], ebx
jmp 0x100878ac
mov eax, dword [0x101181f4]
mov dword [ebp - 0xc], eax
test cl, 4
jne 0x1008790e
or ecx, 4
mov dword [0x101181f8], ecx
mov eax, dword [0x10112024]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x10087906
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100878d0
xor edx, edx
test ecx, ecx
je 0x100878f9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100878e0
cmp edi, 0x51c2378
je 0x10087926
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100878c6
mov ecx, dword [0x101181f8]
xor ebx, ebx
mov dword [0x10118204], ebx
test cl, 8
jne 0x10087976
or ecx, 8
mov dword [0x101181f8], ecx
mov eax, dword [0x10112024]
mov ebx, dword [eax + 0x30]
jmp 0x1008796c
mov ecx, dword [0x101181f8]
jmp 0x10087908
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10087940
xor edx, edx
test ecx, ecx
je 0x10087969
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10087950
cmp edi, 0x2d45f02d
je 0x10087970
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x10087930
mov dword [0x101181f0], ebx
mov eax, dword [0x1011223c]
mov ebx, dword [ebp - 0x10]
add eax, 0xffffffd6
xor eax, 0x7e881208
cmp dword [eax + ebx], 3
jne 0x1008799c
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
jmp 0x100879aa
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov eax, dword [0x1011223c]
add eax, 0xffffffd6
xor eax, 0x7e881208
fstp dword [ebp - 0xc]
cmp dword [eax + ebx], 3
jne 0x100879d3
mov ecx, dword [0x10118204]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
jmp 0x100879e4
mov ecx, dword [0x101181f0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov eax, dword [0x101181f8]
fstp dword [ebp - 8]
test al, 0x10
jne 0x100879ff
or eax, 0x10
mov dword [0x101181f8], eax
mov byte [0x10118200], 0
mov eax, dword [0x101122c8]
movss xmm3, dword [0x100ad710]
add eax, 0xffffffb3
movss xmm0, dword [ebp - 8]
xor eax, 0x7e88122b
mov ecx, dword [eax + ebx]
mov eax, dword [0x101122b4]
add eax, 0xffffffb8
xor eax, 0x7e881226
mov dl, byte [eax + ebx]
test dl, dl
je 0x10087a34
mulss xmm0, xmm3
mov esi, dword [ebp - 0x14]
lea eax, [esi - 1]
cmp eax, 6
ja case.default.0x10087a3f
jmp dword [eax*4 + 0x10087b10]
mulss xmm0, dword [0x100ad818]
mulss xmm0, dword [ebp - 4]
movaps xmm5, xmm0
jmp 0x10087a91
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [ebp - 4]
jmp 0x10087a91
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [0x100ad750]
mulss xmm5, dword [ebp - 4]
jmp 0x10087a91
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [0x100ad720]
mulss xmm5, dword [ebp - 4]
jmp 0x10087a91
movss xmm5, dword [ebp - 4]
test ecx, ecx
jle case.default.0x10087a9a
cmp esi, 5
ja case.default.0x10087a9a
jmp dword [esi*4 + 0x10087b2c]
mov eax, dword [0x101122ac]
add eax, 0xffffffba
xor eax, 0x7e881224
cmp byte [eax + ebx], 0
je case.default.0x10087a9a
movss xmm2, dword [0x100ad748]
movaps xmm1, xmm3
test dl, dl
je 0x10087ad6
movss xmm3, dword [0x100ad6e0]
movss xmm1, dword [0x100ad6d4]
movaps xmm2, xmm3
mulss xmm1, xmm5
movaps xmm0, xmm5
mulss xmm2, xmm3
subss xmm0, xmm1
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
mulss xmm2, xmm0
comiss xmm2, xmm4
jbe 0x10087b00
divss xmm4, xmm3
movaps xmm1, xmm5
subss xmm1, xmm4
movaps xmm5, xmm1
pop edi
pop esi
movaps xmm0, xmm5
pop ebx
mov esp, ebp
pop ebp
ret