Function at 0x1008bebf
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x14], edx
mov eax, 0x102bd580
mov edx, 0x101dabe0
mov edi, 0x900
mov esi, 0x80
mov ebx, dword [ebp + 0x18]
movaps xmm1, xmmword [0x10187140]
test ecx, ecx
cmovne edx, eax
mov eax, 0x480
shr esi, cl
shr eax, cl
mov dword [ebp - 0x88], edx
sub edi, eax
shl eax, 2
mov dword [ebp - 0x48], eax
mov eax, 0x40
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp + 0xc]
shr eax, cl
mov dword [ebp - 0x10], eax
mov eax, 0xc0
shr eax, cl
mov dword [ebp - 0x34], eax
mov eax, 0x100
shr eax, cl
mov dword [ebp - 0x30], eax
mov eax, 0x1c0
shr eax, cl
mov dword [ebp - 0x2c], eax
mov eax, 0x200
shr eax, cl
mov dword [ebp - 0x28], eax
mov eax, 0x140
shr eax, cl
lea eax, [edx + eax*4]
mov dword [ebp - 0x84], eax
mov eax, 0x2c0
shr eax, cl
mov dword [ebp - 0x80], eax
mov eax, 0x180
shr eax, cl
lea eax, [edx + eax*4]
mov dword [ebp - 0x7c], eax
mov eax, 0x300
shr eax, cl
mov dword [ebp - 0x78], eax
mov eax, 0x3c0
shr eax, cl
mov dword [ebp - 0x74], eax
mov eax, 0x400
shr eax, cl
mov dword [ebp - 0x70], eax
mov eax, 0x240
shr eax, cl
lea eax, [edx + eax*4]
mov dword [ebp - 0x6c], eax
mov eax, 0x4c0
shr eax, cl
mov ecx, esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], ecx
sub esi, 0xffffff80
lea eax, [ebx + eax*4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x10]
lea eax, [edx + eax*4]
mov dword [ebp - 0x64], eax
lea eax, [edx + ecx*4]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x34]
lea eax, [edx + eax*4]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x30]
lea eax, [edx + eax*4]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x2c]
lea eax, [edx + eax*4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x28]
lea eax, [edx + eax*4]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x14]
lea eax, [eax + 0x100]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + 0x267c]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
cmp eax, ecx
jge 0x1008c02a
push dword [ebp - 0x48]
push dword [ebp + 0x18]
push dword [ebp - 0x44]
call fcn.101613e0
movaps xmm1, xmmword [0x10187140]
mov ecx, dword [ebp - 0x38]
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 0x18]
sub eax, ecx
cmp dword [ebp + 0x20], 0
mov dword [ebx], eax
lea eax, [edx + eax*4]
mov dword [ebp - 0x40], eax
je 0x1008c08f
mov ecx, dword [ebp - 0x3c]
mov eax, 0xffffff80
movss xmm0, dword [esi + eax]
xorps xmm0, xmm1
movss dword [esi + eax], xmm0
mov edx, dword [ecx]
add ecx, 0xfffffffc
mov dword [esi + eax + 0x80], edx
add eax, 4
jne 0x1008c045
mov eax, dword [ebp - 0x18]
shl eax, 8
add eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x14]
mov ebx, eax
push eax
mov eax, dword [ebp - 0x24]
push eax
call dword [eax + 0x2c]
add esp, 0xc
push ebx
mov eax, dword [ebp - 0x40]
mov ebx, eax
push eax
mov eax, dword [ebp - 0x14]
call dword [eax + 0x14]
add esp, 8
jmp 0x1008c0e0
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp + 0x10]
shl ebx, 8
lea eax, [eax + ebx + 0x2600]
mov dword [ebp - 0x4c], eax
push eax
mov eax, dword [ebp - 0x14]
call dword [eax + 8]
add esp, 4
add ebx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x14]
push eax
push ebx
call dword [ebx + 0x2c]
add esp, 0xc
push dword [ebp - 0x4c]
push dword [ebp - 0x20]
push ebx
call dword [ebx + 0x2c]
add esp, 0xc
push dword [ebp + 0x14]
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
mov ebx, eax
push eax
mov eax, dword [ebp - 0x14]
call dword [eax + 0x18]
add esp, 0xc
push dword [ebp - 0x10]
push dword [ebp - 0x88]
push ebx
push edi
mov eax, dword [ebp + 8]
call dword [eax]
add esp, 0x10
mov eax, dword [ebp - 0x34]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x64]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x30]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x60]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x2c]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x5c]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x28]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x58]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x80]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x84]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x78]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x7c]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x74]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x54]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x70]
lea eax, [ebx + eax*4]
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x50]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x68]
lea eax, [ebx + eax*4]
mov ebx, dword [ebp - 0x10]
push ebx
push edi
push dword [ebp - 0x6c]
push eax
push edi
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
movaps xmm1, xmmword [0x10187140]
add dword [ebp - 0x3c], 0x100
lea edi, [edi + ebx*4]
add esi, 0x100
inc eax
cmp eax, 0x20
jne 0x1008c000
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret