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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1b8
mov eax, dword [0x1020c0c0]
xor eax, esp
mov dword [esp + 0x1b4], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
test edi, edi
je 0x100a8ba6
mov eax, dword [0x1022bebc]
cmp dword [eax], 0
je 0x100a8ba6
mov eax, dword [0x10229c80]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x174]
call eax
test al, al
jne 0x100a8ba6
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 4]
call eax
mov edx, eax
mov ecx, 0x811c9dc5
mov al, byte [edx]
test al, al
je 0x100a8ba6
nop dword [eax]
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100a8550
cmp ecx, 0x78a2d0fe
ja 0x100a875e
je 0x100a86c6
cmp ecx, 0x1b30ddf0
jne 0x100a8ba6
cmp dword [0x1033b800], 0
je 0x100a8ba6
mov eax, dword [0x1022bebc]
mov ecx, dword [eax]
test ecx, ecx
je 0x100a87a1
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a87a1
mov eax, dword [edi]
mov ecx, edi
push 0
push str.attacker
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10229c80]
mov dword [esp + 0x10], eax
mov edi, dword [ecx + 0x10]
mov ecx, dword [0x1022bebc]
mov esi, dword [ecx]
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x28]
lea ecx, [esi + 8]
call edx
mov ecx, dword [edi]
mov edx, dword [ecx + 0x20]
lea ecx, [esp + 0x60]
push ecx
push eax
mov ecx, edi
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0xf0]
cmp dword [esp + 0x10], ecx
jne 0x100a8ba6
mov edi, dword [esp + 0xc]
mov ecx, edi
push 0
push str.hitgroup
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0xc], eax
lea edx, [eax - 1]
cmp edx, 6
ja 0x100a8ba6
mov edx, dword [0x10229c80]
mov ecx, edi
push 0
push str.userid
mov esi, dword [edx + 0x10]
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
call edx
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov edx, dword [0x1033b7f8]
mov esi, eax
movss xmm0, dword [0x10453994]
dec edx
and edx, dword [0x1033b7fc]
ucomiss xmm0, dword [0x10201f00]
mov ecx, dword [0x1033b7f4]
mov edx, dword [ecx + edx*4]
lahf
test ah, 0x44
jnp 0x100a8698
cmp dword [esp + 0xc], 1
jne 0x100a8698
cmp esi, 0x41
jae 0x100a8bba
imul eax, esi, 0x3ef0
movss dword [eax + 0x10233778], xmm0
mov eax, dword [0x10229c80]
push dword [edx + 0x3f14]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
call fcn.100ae550
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
cmp dword [0x1033b800], 0
je 0x100a8ba6
mov eax, dword [edi]
mov ecx, edi
push 0
push str.userid
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10229c80]
mov edi, eax
mov esi, dword [ecx + 0x10]
mov ecx, dword [0x1022bebc]
mov ecx, dword [ecx]
add ecx, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
call edx
mov edx, dword [esi]
lea ecx, [esp + 0x60]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0xf0]
cmp edi, ecx
je 0x100a8ba6
mov eax, dword [0x10229c80]
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
cmp eax, 0x41
jae 0x100a8bbf
imul eax, eax, 0x3ef0
mov byte [eax + 0x10233775], 1
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
cmp ecx, 0x8b8fcce8
je 0x100a885a
cmp ecx, 0xa6abe875
je 0x100a87bf
cmp ecx, 0xafcd8f60
jne 0x100a8ba6
xor eax, eax
cmp eax, 0xffaf0
jae 0x100a8bba
mov dword [eax + 0x10233770], 0
add eax, 0x3ef0
cmp eax, 0xffaf0
jl 0x100a8785
mov ecx, 0x1033b7f0
call fcn.100ae830
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
cmp dword [0x1033b800], 0
je 0x100a8ba6
mov eax, dword [edi]
mov ecx, edi
push 0
push str.userid
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10229c80]
mov edi, eax
mov esi, dword [ecx + 0x10]
mov ecx, dword [0x1022bebc]
mov ecx, dword [ecx]
add ecx, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
call edx
mov edx, dword [esi]
lea ecx, [esp + 0x60]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0xf0]
cmp edi, ecx
je 0x100a8ba6
mov eax, dword [0x10229c80]
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
cmp eax, 0x41
jae 0x100a8bc4
imul eax, eax, 0x3ef0
mov dword [eax + 0x10233770], 0
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
cmp dword [0x1033b800], 0
je 0x100a8ba6
mov eax, dword [0x10229c80]
mov esi, dword [eax + 0x10]
mov eax, dword [0x1022bebc]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x60]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or esi, 0xffffffff
mov ecx, edi
test al, al
mov eax, dword [edi]
push 0
cmovne esi, dword [esp + 0xf4]
push str.userid
mov eax, dword [eax + 0x18]
call eax
cmp eax, esi
jne 0x100a8ba6
mov ecx, dword [0x1033b7f8]
mov eax, dword [0x1033b7f4]
dec ecx
and ecx, dword [0x1033b7fc]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x3f0c], 0
jne 0x100a898a
mov eax, dword [0x10229c74]
movd xmm0, dword [0x1051f414]
cvtdq2ps xmm0, xmm0
push ecx
mov eax, dword [eax + 0x10]
mov ecx, edi
mov dword [esp], 0
push 0x101f3b84
mulss xmm0, dword [eax + 0x20]
movss dword [esi + 0x3f10], xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
fstp dword [esp + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x10], eax
push 0x101f3b98
call dword [esp + 0x14]
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
fstp dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x10], eax
push 0x101f3b94
call dword [esp + 0x14]
movq xmm0, qword [esp + 0x14]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
movq qword [esi + 0x3f00], xmm0
mov dword [esi + 0x3f08], eax
mov byte [esi + 0x3f0c], 1
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x3ec5], 0
je 0x100a8ba6
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
push 0x101f3b84
mov eax, dword [eax + 0x20]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
fstp dword [esp + 0x28]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x10], eax
push 0x101f3b98
call dword [esp + 0x14]
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
fstp dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x10], eax
push 0x101f3b94
call dword [esp + 0x14]
mov eax, dword [0x10229c80]
push dword [esi + 0x3f14]
fstp dword [esp + 0x30]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [edi]
push 0
push str.userid
mov dword [esp + 0x28], eax
mov edx, dword [ecx + 0x18]
mov ecx, edi
call edx
push ecx
push dword [0x1051de10]
mov edi, eax
lea ecx, [esp + 0x1c]
push dword [0x1051de0c]
mov dword [esp + 0x1c], edi
call fcn.100ae920
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
sub eax, esi
mov edx, dword [esp + 0x18]
mov ecx, esi
mov byte [esp + 0xc], 0
push dword [esp + 0xc]
sar eax, 2
push dword [esp + 0x24]
push eax
call fcn.100aecd0
cmp esi, dword [esp + 0x18]
je 0x100a8b9d
nop dword [eax]
mov eax, dword [esi]
cmp dword [eax + 0x80], edi
jne 0x100a8b90
mov edi, dword [esp + 0x20]
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a8b8c
mov eax, dword [edi]
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x2a4]
call eax
movss xmm0, dword [esp + 0x48]
movss xmm1, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x50]
movss xmm3, dword [esp + 0x24]
movss xmm4, dword [esp + 0x28]
movss xmm5, dword [esp + 0x2c]
call fcn.100a8bd0
mov eax, dword [0x1022bebc]
lea edx, [esp + 0x54]
push edx
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x40], xmm0
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2a4]
call eax
movss xmm0, dword [esp + 0x48]
movss xmm1, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x50]
movss xmm3, dword [esp + 0x54]
movss xmm4, dword [esp + 0x58]
movss xmm5, dword [esp + 0x5c]
call fcn.100a8bd0
movss dword [esp + 0x34], xmm1
movaps xmm1, xmm0
subss xmm1, dword [esp + 0x3c]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x34]
subss xmm0, dword [esp + 0x40]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100a8b5a
sqrtsd xmm0, xmm0
jmp 0x100a8b5f
call fcn.101c9300
movss xmm1, dword [0x10202234]
mov edi, dword [esp + 0x10]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100a8b90
mov ecx, dword [0x10229c78]
cmp byte [ecx + 0xd0c], 0
sete al
mov byte [ecx + 0xd0c], al
jmp 0x100a8b90
mov edi, dword [esp + 0x10]
add esi, 4
cmp esi, dword [esp + 0x18]
jne 0x100a8a70
lea ecx, [esp + 0x14]
call fcn.1002c1b0
mov ecx, dword [esp + 0x1bc]
pop edi
pop esi
xor ecx, esp
call fcn.101a0143
mov esp, ebp
pop ebp
ret
call fcn.10091dd0
call fcn.10091dd0
call fcn.10091dd0
int3