Function at 0x100b2580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c7cdb
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x102a000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x54], edi
mov ebx, dword [0x102a5254]
mov ecx, dword [0x102a524c]
mov eax, dword [0x102a5248]
dec ecx
mov dword [ebp - 0x30], ebx
mov ebx, dword [0x102a5250]
dec ebx
mov dword [ebp - 0x34], eax
sub ebx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x50], ebx
cmp ebx, 1
jl 0x100b2906
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
lea esi, [ebx + 1]
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 4], 0
lea eax, [esi + 1]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x28]
push eax
call fcn.1001c520
push esi
lea ecx, [ebp - 0x1c]
call fcn.1001c520
mov eax, dword [ebp - 0x38]
lea ecx, [esi*4]
add eax, 0x78
mov dword [ebp - 0x58], ecx
add eax, edi
push ecx
push eax
push dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
call fcn.10022040
movsd xmm1, qword [0x10293208]
add esp, 0xc
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
mov esi, ebx
mov edx, dword [ebp - 0x38]
mov ecx, ebx
sar eax, 0x10
mov dword [ebp - 0x3c], eax
mov eax, ebx
cvtps2pd xmm0, xmm0
mov ebx, dword [ebp - 0x34]
sar ebx, 8
sar eax, 8
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x30]
mov dword [edi + edx*4 + 0x78], ebx
divsd xmm1, xmm0
sar ecx, 0x10
movzx edx, cl
movzx ecx, al
movzx eax, bl
mov ebx, dword [ebp - 0x34]
movzx ebx, bl
sub ebx, eax
shr esi, 0x18
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x40]
movd xmm4, ecx
movd xmm5, eax
movzx eax, bl
sub eax, ecx
movd xmm3, edx
mov dword [ebp - 0x80], eax
mov ecx, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
movzx eax, al
sub eax, edx
movd xmm2, esi
mov dword [ebp - 0x7c], eax
mov edx, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x34]
shr eax, 0x18
sub eax, esi
cvtpd2ps xmm1, xmm1
mov dword [ebp - 0x34], eax
mov esi, eax
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm4, xmm4
cvtdq2ps xmm5, xmm5
mov dword [ebp - 0x4c], eax
mov ebx, edi
mov eax, dword [ebp - 0x38]
add ebx, 0x7c
lea eax, [ebx + eax*4]
mov ebx, eax
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, xmm2
cvttss2si edi, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
shl edi, 0x18
mulss xmm0, xmm1
addss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movzx esi, al
shl esi, 0x10
mulss xmm0, xmm1
addss xmm0, xmm4
cvttss2si eax, xmm0
movd xmm0, dword [ebp - 0x30]
cvtdq2ps xmm0, xmm0
movzx edx, al
shl edx, 8
mulss xmm0, xmm1
addss xmm0, xmm5
cvttss2si eax, xmm0
movzx ecx, al
mov eax, dword [ebx]
or ecx, edx
mov edx, dword [ebp - 0x3c]
or ecx, esi
mov esi, dword [ebp - 0x4c]
and eax, edi
add esi, dword [ebp - 0x34]
xor eax, ecx
mov ecx, dword [ebp - 0x40]
add edx, dword [ebp - 0x7c]
add ecx, dword [ebp - 0x80]
mov dword [ebx], eax
add ebx, 4
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x30], eax
sub dword [ebp - 0x50], 1
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], ecx
jne 0x100b26f4
push dword [ebp - 0x58]
push dword [ebp - 0x44]
push dword [ebp - 0x1c]
call fcn.10022040
mov edi, dword [ebp - 0x24]
lea eax, [ebp - 0x78]
mov ebx, dword [ebp - 0x54]
add esp, 0xc
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x44], eax
cmp eax, edi
je 0x100b27fe
mov esi, edi
sub esi, eax
sar esi, 2
push esi
call fcn.10008e30
mov ecx, dword [ebp - 0x44]
sub edi, ecx
push edi
push ecx
lea esi, [eax + esi*4]
mov dword [ebp - 0x74], eax
push eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
call fcn.10022040
add esp, 0xc
mov dword [ebp - 0x70], esi
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x44], eax
cmp eax, edi
je 0x100b2850
mov esi, edi
sub esi, eax
sar esi, 2
push esi
call fcn.10008e30
mov ecx, dword [ebp - 0x44]
sub edi, ecx
push edi
push ecx
lea esi, [eax + esi*4]
mov dword [ebp - 0x68], eax
push eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], esi
call fcn.10022040
add esp, 0xc
mov dword [ebp - 0x64], esi
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.100b5610
mov eax, dword [ebx + 0x89c]
lea esi, [ebx + 0x898]
sub eax, dword [esi]
lea ecx, [ebx + 0x880]
sar eax, 2
imul edx, eax, 0xb6db6db7
mov eax, dword [ecx + 4]
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x44], edx
cmp eax, dword [ecx + 8]
je 0x100b2899
mov dword [eax], 1
mov dword [eax + 4], edx
add dword [ecx + 4], 8
jmp 0x100b28a3
lea edx, [ebp - 0x48]
push edx
push eax
call fcn.1001ca60
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
je 0x100b28d5
mov eax, dword [ebp - 0x78]
lea ecx, [edi + 4]
mov dword [edi], eax
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x44], edi
call fcn.10011b00
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 3
push eax
lea ecx, [edi + 0x10]
call fcn.10011b00
add dword [esi + 4], 0x1c
jmp 0x100b28e1
lea eax, [ebp - 0x78]
mov ecx, esi
push eax
push edi
call fcn.1001c680
inc dword [ebx + 0x8a4]
lea ecx, [ebp - 0x78]
call fcn.1001bff0
push dword [ebx + 0x68]
lea eax, [ebx + 0x78]
push dword [ebx + 0x74]
push eax
call fcn.100bd1f0
lea ecx, [ebp - 0x2c]
call fcn.1001bff0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001e883
mov esp, ebp
pop ebp
ret 0x10