Function at 0x100b8040
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x1019c020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov edx, 3
mov ecx, edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x10], 0xffffffff
movzx eax, word [edi + 0x66b6]
mov dword [ebp - 0x14], eax
neg eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 1
call fcn.100b6fc0
cmp dword [edi + 0xbc], 0
je 0x100b80aa
push str.PPG_interpolation..._n
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 8
movzx eax, word [edi + 0x66b4]
mov ecx, 3
sub eax, ecx
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
jle 0x100b82c3
movzx esi, word [edi + 0x66b6]
nop word [eax + eax]
mov eax, dword [edi + 0x65b0]
mov edx, ecx
and edx, 7
mov dword [ebp - 0x28], eax
mov ebx, eax
lea ecx, [edx*4 + 2]
shr ebx, cl
and ebx, 1
add ebx, 3
mov eax, ebx
mov dword [ebp - 0x24], ebx
and eax, 1
lea ecx, [eax + edx*2]
mov edx, dword [ebp - 0x28]
add ecx, ecx
lea eax, [esi - 3]
shr edx, cl
and edx, 3
mov dword [ebp - 0x28], edx
cmp ebx, eax
jge 0x100b82aa
nop dword [eax]
nop word [eax + eax]
imul esi, dword [ebp - 0x1c]
mov ecx, 1
mov eax, dword [edi + 0x66e0]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 0
add esi, ebx
lea ebx, [eax + esi*8]
movzx eax, word [ebx + edx*2]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], eax
jmp 0x100b8154
mov ebx, dword [ebp - 0x2c]
shl ecx, 3
mov eax, ecx
neg eax
movzx edi, word [ecx + ebx + 2]
movzx esi, word [eax + ebx + 2]
add eax, edx
movzx edx, word [ebx + eax*2]
mov eax, dword [ebp - 0x28]
add eax, ecx
movzx ecx, word [ebx + eax*2]
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
add eax, edi
add eax, esi
add eax, eax
sub eax, ecx
sub ecx, dword [ebp - 0x30]
sub eax, edx
mov dword [ebp - 0x48], ecx
sub edx, dword [ebp - 0x30]
mov dword [ebp + ebx - 0x58], eax
mov eax, esi
sub eax, edi
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], eax
sar eax, 0x1f
mov dword [ebp - 0x40], eax
mov eax, edx
sar eax, 0x1f
mov edx, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x20]
sar edx, 0x1f
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x2c]
shl ecx, 3
sub eax, ecx
movzx ebx, word [eax + 2]
sub ebx, esi
mov eax, ebx
sar eax, 0x1f
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
movzx esi, word [ecx + eax + 2]
mov ecx, edx
xor ecx, dword [ebp - 0x48]
sub esi, edi
mov eax, dword [ebp - 0x3c]
mov edi, esi
xor eax, dword [ebp - 0x4c]
add ecx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x40]
xor eax, dword [ebp - 0x50]
add ecx, eax
mov eax, dword [ebp - 0x20]
sub ecx, edx
xor eax, ebx
sub ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x40]
lea edx, [ecx + ecx*2]
mov ecx, edi
xor ecx, esi
add ecx, eax
sub ecx, edi
sub ecx, dword [ebp - 0x20]
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x28]
mov dword [ebp + ecx - 0x60], eax
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
shl eax, 2
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp + eax - 0x18]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jg 0x100b8151
mov ecx, dword [ebp - 0x60]
xor eax, eax
cmp ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x2c]
setg al
lea esi, [eax*4]
mov eax, dword [ebp + esi - 0x18]
mov esi, dword [ebp + esi - 0x58]
sar esi, 2
lea ecx, [eax*8]
mov eax, edx
movzx ebx, word [ecx + edx + 2]
sub eax, ecx
movzx ecx, word [eax + 2]
cmp bx, cx
jae 0x100b8271
mov edi, ecx
mov ecx, ebx
jmp 0x100b8273
mov edi, ebx
cmp esi, edi
mov eax, edi
cmovl eax, esi
cmp ecx, eax
jg 0x100b8285
cmp esi, edi
mov ecx, edi
cmovl ecx, esi
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x24]
mov word [edx + 2], cx
add ebx, 2
mov edx, dword [ebp - 0x28]
movzx esi, word [edi + 0x66b6]
mov dword [ebp - 0x24], ebx
lea eax, [esi - 3]
cmp ebx, eax
jl 0x100b8120
mov ecx, dword [ebp - 0x1c]
movzx eax, word [edi + 0x66b4]
inc ecx
sub eax, 3
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jl 0x100b80d0
movzx eax, word [edi + 0x66b4]
mov ecx, 1
dec eax
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
jle 0x100b83e3
nop dword [eax + eax]
mov ebx, dword [edi + 0x65b0]
mov edx, ecx
and edx, 7
mov esi, ebx
lea ecx, [edx*4]
shr esi, cl
and esi, 1
inc esi
mov dword [ebp - 0x20], esi
lea eax, [esi - 1]
and eax, 1
lea ecx, [eax + edx*2]
add ecx, ecx
shr ebx, cl
movzx ecx, word [edi + 0x66b6]
and ebx, 3
lea eax, [ecx - 1]
cmp esi, eax
jge 0x100b83cc
nop
imul ecx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x66e0]
add ecx, esi
lea edi, [eax + ecx*8]
mov eax, 1
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], ecx
nop word [eax + eax]
lea ecx, [eax*4]
lea edx, [eax*8]
lea eax, [ecx + ebx]
movzx esi, word [edi + eax*2]
mov eax, ebx
sub eax, ecx
movzx eax, word [edi + eax*2]
add esi, eax
mov eax, edi
sub eax, edx
movzx eax, word [eax + 2]
sub esi, eax
movzx eax, word [edx + edi + 2]
sub esi, eax
movzx eax, word [edi + 2]
lea eax, [esi + eax*2]
sar eax, 1
cmp eax, 0xffff
jge 0x100b8388
test eax, eax
jns 0x100b8388
xor ecx, ecx
jmp 0x100b8392
mov ecx, 0xffff
cmp eax, ecx
cmovl ecx, eax
mov eax, 2
mov word [edi + ebx*2], cx
sub eax, ebx
mov ebx, eax
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
test eax, eax
jg 0x100b8340
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x20]
add esi, 2
mov dword [ebp - 0x20], esi
movzx ecx, word [edi + 0x66b6]
lea eax, [ecx - 1]
cmp esi, eax
jl 0x100b8320
mov ecx, dword [ebp - 0x1c]
movzx eax, word [edi + 0x66b4]
inc ecx
dec eax
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jl 0x100b82e0
movzx eax, word [edi + 0x66b4]
mov ecx, 1
dec eax
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
jle 0x100b85c8
nop dword [eax + eax]
mov esi, dword [edi + 0x65b0]
mov edx, ecx
and edx, 7
mov edi, esi
mov ebx, 2
lea ecx, [edx*4 + 2]
shr edi, cl
and edi, 1
inc edi
mov eax, edi
mov dword [ebp - 0x30], edi
and eax, 1
lea ecx, [eax + edx*2]
mov edx, dword [ebp - 0x38]
add ecx, ecx
shr esi, cl
and esi, 3
movzx ecx, word [edx + 0x66b6]
sub ebx, esi
mov dword [ebp - 0x24], ebx
lea eax, [ecx - 1]
cmp edi, eax
jge 0x100b85ae
mov esi, dword [ebp - 0x14]
lea eax, [ebx + ebx]
inc esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x68], esi
nop dword [eax + eax]
imul ecx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x66e0]
mov dword [ebp - 0x20], 0
add ecx, edi
lea ebx, [eax + ecx*8]
mov dword [ebp - 0x3c], ebx
test esi, esi
jle 0x100b8551
movzx edi, word [ebx + 2]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], 0
lea eax, [edi + edi]
mov dword [ebp - 0x48], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x24]
lea ecx, [esi*4]
sub eax, ecx
movzx edx, word [ebx + eax*2]
mov eax, dword [ebp - 0x24]
add eax, ecx
mov dword [ebp - 0x64], edx
movzx ecx, word [ebx + eax*2]
mov eax, edx
sub eax, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x4c], eax
lea ecx, [esi*8]
sar eax, 0x1f
mov dword [ebp - 0x50], eax
mov eax, ebx
movzx ebx, word [ecx + ebx + 2]
sub eax, ecx
movzx eax, word [eax + 2]
mov esi, eax
mov dword [ebp - 0x2c], eax
sub esi, edi
mov eax, ebx
sub eax, dword [ebp - 0x40]
mov edi, esi
mov ecx, eax
sar edi, 0x1f
sar ecx, 0x1f
mov edx, ecx
xor edx, eax
mov eax, edi
xor eax, esi
add edx, eax
mov eax, dword [ebp - 0x50]
xor eax, dword [ebp - 0x4c]
add edx, eax
mov eax, dword [ebp - 0x48]
sub eax, ebx
sub edx, ecx
sub eax, dword [ebp - 0x2c]
sub edx, edi
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
add eax, dword [ebp - 0x64]
sub edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
mov dword [ebp + ecx - 0x58], eax
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp + ecx - 0x60], edx
mov dword [ebp - 0x20], eax
shl eax, 2
mov dword [ebp - 0x44], eax
mov esi, dword [ebp + eax - 0x14]
add esi, dword [ebp + eax - 0x18]
test esi, esi
jg 0x100b84a0
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
cmp esi, ecx
je 0x100b856a
xor eax, eax
cmp esi, ecx
setg al
mov eax, dword [ebp + eax*4 - 0x58]
sar eax, 1
jmp 0x100b8573
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x54]
sar eax, 2
cmp eax, 0xffff
jge 0x100b8582
test eax, eax
jns 0x100b8582
xor ecx, ecx
jmp 0x100b858c
mov ecx, 0xffff
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [ebp - 0x34]
add edi, 2
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x30], edi
mov word [eax + ebx], cx
movzx ecx, word [edx + 0x66b6]
lea eax, [ecx - 1]
cmp edi, eax
jl 0x100b8460
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
movzx eax, word [edi + 0x66b4]
dec eax
cmp ecx, eax
jl 0x100b8400
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret