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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x220
push ebx
push ebp
mov ebp, dword [0x1015c940]
xor edx, edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], ebp
push ebp
mov dword [esp + 0x1c], edi
mov eax, dword [edi]
push dword [eax + 4]
lea eax, [esp + 0x30]
push eax
call fcn.1009e0f0
mov edx, eax
mov ecx, 0x811c9dc5
mov al, byte [edx]
test al, al
je 0x100e8939
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100e8593
cmp ecx, 0xafcd8f60
ja 0x100e8806
je 0x100e8783
cmp ecx, 0x8b8fcce8
ja 0x100e872e
je 0x100e8629
cmp ecx, 0x1b30ddf0
je 0x100e85f2
cmp ecx, 0x4400fb1c
jne 0x100e8939
lea eax, [esp + 0x14]
mov ecx, 0x1015a680
push eax
call fcn.100f2bd0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x14]
mov ecx, 0x1015a680
push eax
call fcn.100f2890
lea eax, [esp + 0x14]
mov ecx, 0x1015a240
push eax
call fcn.100bc230
push 0
lea eax, [esp + 0x18]
mov ecx, 0x1015a240
push eax
call fcn.100bc430
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [0x1015a2f4], 0
je 0x100e8939
mov eax, dword [0x1015692c]
mov ecx, dword [eax]
test ecx, ecx
je 0x100e8939
mov eax, dword [ecx + 8]
add ecx, 8
push dword [0x1015c940]
xor edx, edx
push dword [eax + 0x28]
lea eax, [esp + 0x30]
push eax
call fcn.1009e0f0
mov esi, dword [0x1015a320]
lea edx, [esp + 0xd8]
push edx
push eax
push dword [0x1015a31c]
mov ecx, dword [esi]
lea eax, [esp + 0x40]
xor edx, edx
push dword [ecx + 0x20]
mov ecx, esi
push eax
call fcn.1009e0f0
push 0
or esi, 0xffffffff
mov ecx, edi
test al, al
mov eax, dword [edi]
push str.userid
cmovne esi, dword [esp + 0x170]
xor edx, edx
push ebp
push dword [eax + 0x18]
lea eax, [esp + 0x2c]
push eax
call fcn.1009e0f0
cmp eax, esi
jne 0x100e8939
lea eax, [esp + 0x14]
mov ecx, 0x1015a2f4
push eax
lea eax, [esp + 0x44]
push eax
call fcn.100baa40
cmp byte [esp + 0xd0], 0
je 0x100e8939
mov ecx, dword [0x1015a310]
lea edx, [esp + 0x40]
push edx
push dword [0x1015a30c]
xor edx, edx
mov eax, dword [ecx]
push dword [eax + 0x30]
lea eax, [esp + 0x28]
push eax
call fcn.1009e0f0
test eax, eax
je 0x100e8939
and dword [eax + 0x34], 0xffffbfff
mov ecx, dword [0x1015a324]
movss xmm0, dword [ecx + 0x10]
addss xmm0, dword [0x1014b1e8]
movss dword [eax + 0xc8], xmm0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0xa6abe875
jne 0x100e8939
lea eax, [esp + 0x14]
mov ecx, 0x1015a340
push eax
call fcn.100d56f0
lea eax, [esp + 0x14]
mov ecx, 0x1015a340
push eax
push 0x1015c69c
call fcn.100d5850
lea eax, [esp + 0x14]
mov ecx, 0x1015a680
push eax
call fcn.100f26c0
lea eax, [esp + 0x14]
mov ecx, 0x1015a680
push eax
call fcn.100f2a20
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x1015c960
call fcn.100fcc16
add esp, 4
test eax, eax
jne 0x100e8941
mov edi, dword [0x10156a18]
mov dword [0x10156a18], eax
test edi, edi
je 0x100e87cb
nop word [eax + eax]
mov esi, dword [edi]
lea ecx, [edi + 0x5c]
call fcn.100a0d10
push 0x68
push edi
call fcn.100fa9c7
add esp, 8
mov edi, esi
test esi, esi
jne 0x100e87b0
push 0x1015c960
call fcn.100fcc27
add esp, 4
cmp byte [0x1015c788], 0
je 0x100e85db
mov eax, dword [0x1015a6e0]
mov eax, dword [eax + 0x1c]
movss xmm0, dword [eax]
addss xmm0, dword [0x1014b258]
movss dword [0x101569dc], xmm0
jmp 0x100e85db
cmp ecx, 0xc80e399d
je 0x100e883d
cmp ecx, 0xd704819d
je 0x100e85db
cmp ecx, 0xfdad5fe5
jne 0x100e8939
lea eax, [esp + 0x14]
mov ecx, 0x1015a680
push eax
call fcn.100f3c70
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x1015692c]
mov ebx, dword [0x1015a340]
mov esi, dword [0x1015a358]
mov ecx, dword [eax]
test ecx, ecx
je 0x100e8939
mov eax, dword [ecx + 8]
add ecx, 8
push dword [0x1015c940]
xor edx, edx
push dword [eax + 0x28]
lea eax, [esp + 0x24]
push eax
call fcn.1009e0f0
mov edx, dword [esi]
lea ecx, [esp + 0xd8]
push ecx
push eax
push ebx
push dword [edx + 0x20]
lea eax, [esp + 0x44]
xor edx, edx
push eax
mov ecx, esi
call fcn.1009e0f0
push 0
or esi, 0xffffffff
mov ecx, edi
test al, al
mov eax, dword [edi]
push str.userid
cmovne esi, dword [esp + 0x170]
xor edx, edx
push ebp
push dword [eax + 0x18]
lea eax, [esp + 0x38]
push eax
call fcn.1009e0f0
cmp esi, eax
jne 0x100e8939
push 0x330ca589
lea eax, [esp + 0x14]
mov byte [esp + 0x14], 0x36
push eax
lea eax, [esp + 0x1c]
mov ecx, 0x1015a4e8
push eax
call fcn.100c2ff0
mov esi, dword [eax + 4]
test esi, esi
je 0x100e8939
cmp esi, dword [0x1015a4ec]
je 0x100e8939
mov esi, dword [esi + 0xc]
lea ebx, [esi + 0x14]
test ebx, ebx
je 0x100e8939
cmp byte [ebx + 0x20], 4
jne 0x100e8939
mov eax, dword [ebx]
cmp eax, 0xffffffff
jle 0x100e8939
inc eax
xor edx, edx
push eax
mov eax, dword [edi]
mov ecx, edi
push str.musickitmvps
push ebp
push dword [eax + 0x34]
lea eax, [esp + 0x2c]
push eax
call fcn.1009e0f0
mov eax, dword [ebx]
lea ecx, [esp + 0x14]
inc eax
mov dword [esp + 0x14], 0x1015a460
push eax
push esi
mov dword [esp + 0x20], 0x1015a528
call fcn.100c2930
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.100fcce4
int3