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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, ecx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebx + 0xe0], edi
mov dword [ebp - 0x14], ebx
mov eax, dword [edi + 8]
mov dword [ebx + 0xe4], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xf4], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0xf8], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0xfc], eax
mov eax, dword [edi + 0x30]
mov dword [ebx + 0xec], eax
mov ecx, dword [0x100d6aa4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x100d6aa8]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov dword [ebx], eax
test eax, eax
je 0x10021476
mov ecx, dword [0x100d6ca0]
add ecx, 0xffffffcb
xor ecx, 0x18b2ca98
mov eax, dword [ecx + eax]
and eax, 1
add eax, 0xf
mov dword [ebx + 0xa8], eax
mov eax, dword [0x100d6b18]
mov eax, dword [eax + 0x4cb0]
mov dword [ebx + 0xac], eax
mov ecx, dword [0x100d6b6c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
call dword [ebp - 8]
mov ecx, dword [0x100d6b70]
fstp dword [ebp - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
call dword [ebp - 8]
fdivr dword [ebp - 4]
mov ecx, dword [0x100d6b68]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
fstp dword [ebp - 4]
call dword [ebp - 8]
movss xmm0, dword [ebp - 4]
lea esi, [ebx + 0xc4]
fstp dword [ebp - 8]
maxss xmm0, dword [ebp - 8]
push 0
movss dword [ebx + 0xc0], xmm0
mov ecx, dword [0x100d6b10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ebp - 8], eax
call dword [ebp - 8]
fstp dword [esi]
movss xmm0, dword [esi]
lea eax, [ebp - 8]
comiss xmm0, dword [0x1009360c]
mov dword [ebp - 8], 0x3f800000
xorps xmm3, xmm3
cmovbe eax, esi
movss xmm0, dword [eax]
maxss xmm0, xmm3
movss dword [esi], xmm0
mov eax, dword [0x100d6b04]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x100935e0]
cvttss2si ecx, xmm0
mov dword [ebx + 0xc8], ecx
mov eax, dword [0x100d6b18]
mov eax, dword [eax + 0x16c]
mov dword [ebx + 0xcc], eax
add eax, ecx
test dword [ebx + 0xec], 0x79a
mov ecx, dword [ebx]
mov dword [ebx + 0xd0], eax
setne al
mov byte [ebx + 0xd4], al
test ecx, ecx
je 0x10021472
mov eax, dword [0x100d6c9c]
add eax, 0xffffffcc
xor eax, 0x18b2ca97
cmp dword [eax + ecx], 0
jne 0x10021472
mov ecx, dword [0x100dc138]
mov byte [ebx + 4], 1
test cl, 1
jne 0x1002117e
or ecx, 1
xorps xmm0, xmm0
mov dword [0x100dc138], ecx
xorps xmm1, xmm1
movss dword [0x100dbdd4], xmm0
movss dword [0x100dbdd8], xmm1
mov dword [0x100dbddc], 0
jmp 0x1002118e
movss xmm1, dword [0x100dbdd8]
movss xmm0, dword [0x100dbdd4]
movss xmm2, dword [edi + 0xc]
subss xmm2, xmm0
movss xmm0, dword [edi + 0x10]
subss xmm0, xmm1
movss dword [ebp - 8], xmm2
movss dword [ebp - 4], xmm0
test cl, 2
jne 0x10021211
or ecx, 2
mov dword [0x100dc138], ecx
mov ebx, dword [0x100d6aa0]
mov ebx, dword [ebx + 0x30]
test ebx, ebx
je 0x10021209
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + edi], 0
jne 0x100211d0
xor edx, edx
test ecx, ecx
je 0x100211f9
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100211e0
cmp esi, 0x7c2d100c
je 0x10021236
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100211c5
mov ecx, dword [0x100dc138]
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [0x100dbde4], ebx
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jnp 0x1002131a
test cl, 4
jne 0x10021288
or ecx, 4
mov dword [0x100dc138], ecx
mov eax, dword [0x100d6aa0]
mov ebx, dword [eax + 0x30]
jmp 0x1002127c
mov ecx, dword [0x100dc138]
mov edi, dword [ebp + 8]
jmp 0x1002120b
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10021250
xor edx, edx
test ecx, ecx
je 0x10021279
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10021260
cmp esi, 0x12ac36d1
je 0x10021280
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x10021241
mov dword [0x100dbdcc], ebx
jmp 0x1002128e
mov ebx, dword [0x100dbdcc]
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
movss xmm0, dword [ebp - 8]
mov ecx, dword [0x100dbde4]
fstp dword [ebp - 0xc]
divss xmm0, dword [ebp - 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
movss dword [ebp - 8], xmm0
call dword [ebp - 0x10]
movss xmm0, dword [ebp - 8]
movss dword [ebp - 0x10], xmm0
fdivr dword [ebp - 0x10]
fstp dword [ebp - 0x10]
cvttss2si eax, dword [ebp - 0x10]
cmp eax, 0x7fff
jg 0x10021306
cmp eax, 0xffff8000
jl 0x100212ff
cmp eax, 1
jge 0x100212f1
test eax, eax
js 0x100212f1
mov eax, 1
jmp 0x1002130b
cmp eax, 0xffffffff
jle 0x1002130b
test eax, eax
jg 0x1002130b
or eax, 0xffffffff
jmp 0x1002130b
mov eax, 0x8000
jmp 0x1002130b
mov eax, 0x7fff
mov edi, dword [ebp + 8]
xorps xmm3, xmm3
movss xmm0, dword [ebp - 4]
mov word [edi + 0x46], ax
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x1002141f
mov eax, dword [0x100dc138]
test al, 8
jne 0x10021398
or eax, 8
mov dword [0x100dc138], eax
mov eax, dword [0x100d6aa0]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x10021383
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + edi], 0
jne 0x10021350
xor edx, edx
test ecx, ecx
je 0x10021379
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10021360
cmp esi, 0x53453c88
je 0x1002138d
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x10021344
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [0x100dbdd0], ebx
jmp 0x1002139e
mov edi, dword [ebp + 8]
mov dword [0x100dbdd0], ebx
jmp 0x1002139e
mov ebx, dword [0x100dbdd0]
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x30]
mov dword [ebp + 8], eax
call dword [ebp + 8]
movss xmm0, dword [ebp - 4]
mov ecx, dword [0x100dbde4]
fstp dword [ebp + 8]
divss xmm0, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
movss dword [ebp - 4], xmm0
call dword [ebp - 0x10]
movss xmm0, dword [ebp - 4]
movss dword [ebp + 8], xmm0
fdivr dword [ebp + 8]
fstp dword [ebp + 8]
cvttss2si eax, dword [ebp + 8]
cmp eax, 0x7fff
jg 0x10021416
cmp eax, 0xffff8000
jl 0x1002140f
cmp eax, 1
jge 0x10021401
test eax, eax
js 0x10021401
mov eax, 1
jmp 0x1002141b
cmp eax, 0xffffffff
jle 0x1002141b
test eax, eax
jg 0x1002141b
or eax, 0xffffffff
jmp 0x1002141b
mov eax, 0x8000
jmp 0x1002141b
mov eax, 0x7fff
mov word [edi + 0x44], ax
movss xmm0, dword [edi + 0xc]
movss dword [0x100dbdd4], xmm0
movss xmm0, dword [edi + 0x10]
movss dword [0x100dbdd8], xmm0
movss xmm0, dword [edi + 0x14]
movss dword [0x100dbddc], xmm0
call fcn.1006e180
mov edx, dword [ebp - 0x14]
mov ecx, dword [0x100d6ca0]
add ecx, 0xffffffcb
xor ecx, 0x18b2ca98
mov eax, dword [edx]
mov eax, dword [ecx + eax]
mov dword [edx + 8], eax
mov byte [edx + 0x19], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov byte [ebx + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4