Function at 0x100e4ee0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
movzx eax, word [esi + 0x6602]
push edi
mov ecx, 1
mov dword [esp + 0x60], eax
neg eax
push 3
push esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
call fcn.100e43b0
add esp, 8
cmp dword [esi + 0x8c], 0
je 0x100e4f3b
push str.PPG_interpolation..._n
call fcn.10107014
add eax, 0x40
push eax
call fcn.10106bd7
add esp, 8
movzx eax, word [esi + 0x6600]
mov ebx, 3
sub eax, ebx
cmp eax, ebx
mov dword [esp + 0x10], ebx
jle 0x100e5259
mov eax, dword [esi + 0x6580]
mov edi, ebx
and edi, 7
mov edx, eax
lea ecx, [edi*4 + 2]
shr edx, cl
and edx, 1
add edx, 3
mov ecx, edx
and ecx, 1
lea ecx, [ecx + edi*2]
add ecx, ecx
shr eax, cl
mov dword [esp + 0x14], edx
and eax, 3
mov dword [esp + 0x1c], eax
movzx eax, word [esi + 0x6602]
lea ecx, [eax - 3]
cmp edx, ecx
jge 0x100e5242
lea ebx, [ebx]
mov edi, dword [esp + 0x68]
imul eax, ebx
add eax, edx
mov edx, dword [esi + 0x6630]
movzx esi, word [edx + eax*8 - 6]
lea ecx, [edx + eax*8]
movzx edi, word [ecx + edi*8 + 2]
movzx eax, word [ecx + 0xa]
mov edx, dword [esp + 0x60]
movzx edx, word [ecx + edx*8 + 2]
add eax, eax
add eax, eax
add edi, edi
add edi, edi
mov dword [esp + 0x4c], eax
add esi, esi
add eax, edi
add esi, esi
add edx, edx
add edx, edx
add eax, esi
add eax, edx
sar eax, 2
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
mov dword [esp + 0x30], eax
mov edi, 0x101cde28
jmp 0x100e5000
movsx eax, word [edi + 2]
movsx edx, word [edi]
mov esi, dword [esp + eax*4 + 0x4c]
mov ebx, dword [esp + edx*4 + 0x4c]
cmp ebx, esi
lea eax, [esp + eax*4 + 0x4c]
lea edx, [esp + edx*4 + 0x4c]
jle 0x100e5025
xor esi, ebx
mov dword [edx], esi
xor dword [eax], esi
mov eax, dword [eax]
xor dword [edx], eax
add edi, 4
cmp edi, 0x101cde38
jl 0x100e5000
xor edx, edx
mov dword [esp + 0x24], edx
mov ebx, dword [esp + edx*4 + 0x5c]
mov edi, dword [esp + edx*4 + 0x60]
mov eax, ebx
neg eax
mov edx, edi
add eax, eax
mov esi, 0xfffffffe
neg edx
lea ecx, [ecx]
lea ebp, [edx + eax]
movzx ebp, word [ecx + ebp*8 + 2]
cmp ebp, dword [esp + 0x30]
jle 0x100e5068
inc esi
add edx, edi
add eax, ebx
cmp esi, 2
jl 0x100e5050
cmp esi, 2
je 0x100e51ec
mov edx, dword [esp + 0x24]
inc edx
cmp edx, 4
mov dword [esp + 0x24], edx
jl 0x100e5036
mov esi, dword [esp + 0x1c]
movzx esi, word [ecx + esi*2]
xor edx, edx
mov dword [esp + 0x18], edx
mov eax, 1
mov dword [esp + 0x20], esi
jmp 0x100e50a0
lea esi, [eax*8]
movzx ebp, word [esi + ecx + 2]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x1c]
mov edi, esi
add esi, ebp
movzx esi, word [ecx + esi*2]
neg edi
movzx ebx, word [edi + ecx + 2]
add edi, ebp
movzx edi, word [ecx + edi*2]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x24]
add ebp, esi
add ebp, ebx
add ebp, ebp
mov esi, ebp
mov ebp, dword [esp + 0x30]
sub esi, ebp
sub esi, edi
mov dword [esp + edx + 0x44], esi
mov esi, edi
sub esi, dword [esp + 0x20]
lea eax, [eax + eax*2]
mov edi, esi
sar edi, 0x1f
mov dword [esp + 0x30], edi
mov edi, ebp
sub edi, dword [esp + 0x20]
add eax, eax
mov dword [esp + 0x34], edi
sar edi, 0x1f
mov dword [esp + 0x28], edi
add eax, eax
add eax, eax
mov edi, ebx
sub edi, dword [esp + 0x24]
mov ebp, edi
sar ebp, 0x1f
mov dword [esp + 0x2c], ebp
mov ebp, ecx
sub ebp, eax
movzx eax, word [eax + ecx + 2]
sub eax, dword [esp + 0x24]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x38], eax
sar eax, 0x1f
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
xor eax, edi
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x34]
sub ebp, ebx
add eax, edi
mov edi, dword [esp + 0x30]
xor edi, esi
mov esi, dword [esp + 0x24]
xor esi, dword [esp + 0x38]
add eax, edi
sub eax, dword [esp + 0x28]
mov ebx, ebp
sub eax, dword [esp + 0x2c]
sar ebx, 0x1f
sub eax, dword [esp + 0x30]
mov edi, ebx
xor edi, ebp
add esi, edi
sub esi, dword [esp + 0x24]
lea eax, [eax + eax*2]
sub esi, ebx
lea eax, [eax + esi*2]
mov dword [esp + edx + 0x3c], eax
mov eax, dword [esp + 0x18]
inc eax
lea edx, [eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + edx + 0x5c]
test eax, eax
jg 0x100e50a0
mov edx, dword [esp + 0x3c]
xor eax, eax
cmp edx, dword [esp + 0x40]
mov esi, ecx
setg al
mov edx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + eax*4 + 0x44]
add edx, edx
add edx, edx
add edx, edx
sub esi, edx
movzx esi, word [esi + 2]
movzx edx, word [edx + ecx + 2]
sar eax, 2
mov edi, eax
cmp dx, si
jae 0x100e51ff
movzx esi, si
cmp eax, esi
jl 0x100e51dd
mov edi, esi
movzx edx, dx
cmp edx, edi
jg 0x100e5217
cmp eax, esi
jl 0x100e5219
mov eax, esi
jmp 0x100e5219
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
add edx, eax
sar edx, 3
mov word [ecx + 2], dx
jmp 0x100e521d
movzx edx, dx
cmp eax, edx
jl 0x100e5208
mov edi, edx
movzx esi, si
cmp esi, edi
jle 0x100e5213
mov eax, esi
jmp 0x100e5219
cmp eax, edx
jl 0x100e5219
mov eax, edx
mov word [ecx + 2], ax
mov esi, dword [esp + 0x74]
movzx eax, word [esi + 0x6602]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add edx, 2
lea ecx, [eax - 3]
cmp edx, ecx
mov dword [esp + 0x14], edx
jl 0x100e4fa0
movzx edx, word [esi + 0x6600]
inc ebx
sub edx, 3
cmp ebx, edx
mov dword [esp + 0x10], ebx
jl 0x100e4f55
movzx eax, word [esi + 0x6600]
mov ebx, 1
dec eax
cmp eax, ebx
mov dword [esp + 0x10], ebx
jle 0x100e5379
mov edx, dword [esi + 0x6580]
mov eax, ebx
and eax, 7
lea ecx, [eax*4]
mov edi, edx
shr edi, cl
and edi, 1
inc edi
lea ecx, [edi - 1]
and ecx, 1
lea ecx, [ecx + eax*2]
movzx eax, word [esi + 0x6602]
add ecx, ecx
shr edx, cl
lea ecx, [eax - 1]
mov dword [esp + 0x14], edi
and edx, 3
cmp edi, ecx
jge 0x100e5364
mov ecx, dword [esi + 0x6630]
imul eax, ebx
add eax, edi
lea edi, [esp + 0x5c]
lea eax, [ecx + eax*8]
mov ecx, 1
mov dword [esp + 0x30], edi
lea ecx, [ecx]
lea edi, [ecx*4]
lea ebx, [edi + edx]
movzx ebx, word [eax + ebx*2]
add ecx, ecx
mov ebp, edx
sub ebp, edi
movzx edi, word [eax + ebp*2]
add ecx, ecx
add ebx, edi
add ecx, ecx
mov edi, eax
sub edi, ecx
movzx ecx, word [ecx + eax + 2]
movzx edi, word [edi + 2]
sub ebx, edi
sub ebx, ecx
movzx ecx, word [eax + 2]
lea ecx, [ebx + ecx*2]
sar ecx, 1
cmp ecx, 0xffff
jge 0x100e5320
test ecx, ecx
jge 0x100e5318
xor ecx, ecx
jmp 0x100e5325
cmp ecx, 0xffff
jl 0x100e5325
mov ecx, 0xffff
mov word [eax + edx*2], cx
mov ecx, 2
sub ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x30]
add ecx, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
test ecx, ecx
jg 0x100e52d0
movzx eax, word [esi + 0x6602]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add edi, 2
lea ecx, [eax - 1]
cmp edi, ecx
mov dword [esp + 0x14], edi
jl 0x100e52b2
movzx edx, word [esi + 0x6600]
inc ebx
dec edx
cmp ebx, edx
mov dword [esp + 0x10], ebx
jl 0x100e5272
movzx eax, word [esi + 0x6600]
mov ebp, 1
dec eax
cmp eax, ebp
mov dword [esp + 0x10], ebp
jle 0x100e554d
mov eax, dword [esi + 0x6580]
mov edx, ebp
and edx, 7
mov edi, eax
lea ecx, [edx*4 + 2]
shr edi, cl
mov ebx, 2
and edi, 1
inc edi
mov ecx, edi
and ecx, 1
lea ecx, [ecx + edx*2]
add ecx, ecx
shr eax, cl
mov dword [esp + 0x14], edi
and eax, 3
sub ebx, eax
movzx eax, word [esi + 0x6602]
lea edx, [eax - 1]
cmp edi, edx
mov dword [esp + 0x1c], ebx
jge 0x100e5538
lea esp, [esp]
mov ecx, dword [esi + 0x6630]
imul eax, ebp
add eax, edi
lea edx, [ecx + eax*8]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x18], 0
test ecx, ecx
jle 0x100e54d8
movzx ebp, word [edx + 2]
xor eax, eax
lea esp, [esp]
lea edi, [ecx*4]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov esi, ebx
sub esi, edi
movzx esi, word [edx + esi*2]
add edi, ebx
movzx edi, word [edx + edi*2]
mov dword [esp + 0x38], ecx
mov ebx, edx
sub ebx, ecx
movzx ecx, word [ebx + 2]
mov dword [esp + 0x2c], ecx
sub ecx, ebp
mov ebx, ecx
sar ebx, 0x1f
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x38]
movzx ebx, word [ebx + edx + 2]
mov dword [esp + 0x34], ebx
sub ebx, ebp
mov dword [esp + 0x24], esi
sub esi, edi
mov ebp, ebx
sar ebp, 0x1f
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x30]
xor ebp, ecx
mov dword [esp + 0x28], edi
mov edi, esi
sar edi, 0x1f
mov ecx, edi
xor ecx, esi
add ebp, ecx
mov ecx, dword [esp + 0x38]
mov esi, ecx
xor esi, ebx
add ebp, esi
sub ebp, ecx
sub ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
sub ebp, edi
mov dword [esp + eax + 0x3c], ebp
movzx ebp, word [edx + 2]
lea ecx, [ebp + ebp]
sub ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x24]
mov dword [esp + eax + 0x44], ecx
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
add eax, eax
add eax, eax
mov ecx, dword [esp + eax + 0x60]
add ecx, dword [esp + eax + 0x5c]
test ecx, ecx
jg 0x100e5410
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x3c], eax
je 0x100e54f3
xor ecx, ecx
cmp dword [esp + 0x3c], eax
setg cl
mov eax, dword [esp + ecx*4 + 0x44]
sar eax, 1
jmp 0x100e5500
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
add eax, ecx
sar eax, 2
cmp eax, 0xffff
jge 0x100e5516
test eax, eax
jge 0x100e550f
xor eax, eax
jmp 0x100e551b
cmp eax, 0xffff
jl 0x100e551b
mov eax, 0xffff
mov word [edx + ebx*2], ax
movzx eax, word [esi + 0x6602]
add edi, 2
lea edx, [eax - 1]
cmp edi, edx
mov dword [esp + 0x14], edi
jl 0x100e53e0
movzx eax, word [esi + 0x6600]
inc ebp
dec eax
cmp ebp, eax
mov dword [esp + 0x10], ebp
jl 0x100e5392
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret