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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1b8
mov eax, dword [0x1020a0c0]
xor eax, esp
mov dword [esp + 0x1b4], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
test edi, edi
je 0x100a7886
mov eax, dword [0x10229e7c]
cmp dword [eax], 0
je 0x100a7886
mov eax, dword [0x10227c48]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x174]
call eax
test al, al
jne 0x100a7886
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 0x100a7886
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 0x100a7230
cmp ecx, 0x78a2d0fe
ja 0x100a743e
je 0x100a73a6
cmp ecx, 0x1b30ddf0
jne 0x100a7886
cmp dword [0x10342ca8], 0
je 0x100a7886
mov eax, dword [0x10229e7c]
mov ecx, dword [eax]
test ecx, ecx
je 0x100a7481
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a7481
mov eax, dword [edi]
mov ecx, edi
push 0
push str.attacker
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10227c48]
mov dword [esp + 0x10], eax
mov edi, dword [ecx + 0x10]
mov ecx, dword [0x10229e7c]
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 0x100a7886
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 0x100a7886
mov edx, dword [0x10227c48]
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 [0x10342ca0]
mov esi, eax
movss xmm0, dword [0x104e1dbc]
dec edx
and edx, dword [0x10342ca4]
ucomiss xmm0, dword [0x101fefe0]
mov ecx, dword [0x10342c9c]
mov edx, dword [ecx + edx*4]
lahf
test ah, 0x44
jnp 0x100a7378
cmp dword [esp + 0xc], 1
jne 0x100a7378
cmp esi, 0x41
jae 0x100a789a
imul eax, esi, 0x3ef0
movss dword [eax + 0x1023b148], xmm0
mov eax, dword [0x10227c48]
push dword [edx + 0x3f14]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
call fcn.100ac9e0
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.1019d163
mov esp, ebp
pop ebp
ret
cmp dword [0x10342ca8], 0
je 0x100a7886
mov eax, dword [edi]
mov ecx, edi
push 0
push str.userid
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10227c48]
mov edi, eax
mov esi, dword [ecx + 0x10]
mov ecx, dword [0x10229e7c]
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 0x100a7886
mov eax, dword [0x10227c48]
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
cmp eax, 0x41
jae 0x100a789f
imul eax, eax, 0x3ef0
mov byte [eax + 0x1023b145], 1
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.1019d163
mov esp, ebp
pop ebp
ret
cmp ecx, 0x8b8fcce8
je 0x100a753a
cmp ecx, 0xa6abe875
je 0x100a749f
cmp ecx, 0xafcd8f60
jne 0x100a7886
xor eax, eax
cmp eax, 0xffaf0
jae 0x100a789a
mov dword [eax + 0x1023b140], 0
add eax, 0x3ef0
cmp eax, 0xffaf0
jl 0x100a7465
mov ecx, 0x10342c98
call fcn.100acb80
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.1019d163
mov esp, ebp
pop ebp
ret
cmp dword [0x10342ca8], 0
je 0x100a7886
mov eax, dword [edi]
mov ecx, edi
push 0
push str.userid
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10227c48]
mov edi, eax
mov esi, dword [ecx + 0x10]
mov ecx, dword [0x10229e7c]
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 0x100a7886
mov eax, dword [0x10227c48]
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
cmp eax, 0x41
jae 0x100a78a4
imul eax, eax, 0x3ef0
mov dword [eax + 0x1023b140], 0
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.1019d163
mov esp, ebp
pop ebp
ret
cmp dword [0x10342ca8], 0
je 0x100a7886
mov eax, dword [0x10227c48]
mov esi, dword [eax + 0x10]
mov eax, dword [0x10229e7c]
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 0x100a7886
mov ecx, dword [0x10342ca0]
mov eax, dword [0x10342c9c]
dec ecx
and ecx, dword [0x10342ca4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x3f0c], 0
jne 0x100a766a
mov eax, dword [0x10227c3c]
movd xmm0, dword [0x104e5dec]
cvtdq2ps xmm0, xmm0
push ecx
mov eax, dword [eax + 0x10]
mov ecx, edi
mov dword [esp], 0
push 0x101f0b54
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 0x101f0b50
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 0x101f0b58
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.1019d163
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x3ec5], 0
je 0x100a7886
mov eax, dword [edi]
push ecx
mov dword [esp], 0
mov ecx, edi
push 0x101f0b54
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 0x101f0b50
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 0x101f0b58
call dword [esp + 0x14]
mov eax, dword [0x10227c48]
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 [0x104e490c]
mov edi, eax
lea ecx, [esp + 0x1c]
push dword [0x104e4908]
mov dword [esp + 0x1c], edi
call fcn.100acc70
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.100ad020
cmp esi, dword [esp + 0x18]
je 0x100a787d
nop dword [eax]
mov eax, dword [esi]
cmp dword [eax + 0x80], edi
jne 0x100a7870
mov edi, dword [esp + 0x20]
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a786c
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.100a78b0
mov eax, dword [0x10229e7c]
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.100a78b0
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 0x100a783a
sqrtsd xmm0, xmm0
jmp 0x100a783f
call fcn.101c6320
movss xmm1, dword [0x101ff314]
mov edi, dword [esp + 0x10]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100a7870
mov ecx, dword [0x10227c40]
cmp byte [ecx + 0xd0c], 0
sete al
mov byte [ecx + 0xd0c], al
jmp 0x100a7870
mov edi, dword [esp + 0x10]
add esi, 4
cmp esi, dword [esp + 0x18]
jne 0x100a7750
lea ecx, [esp + 0x14]
call fcn.1002bef0
mov ecx, dword [esp + 0x1bc]
pop edi
pop esi
xor ecx, esp
call fcn.1019d163
mov esp, ebp
pop ebp
ret
call fcn.10091180
call fcn.10091180
call fcn.10091180
int3