Function at 0x4ee5d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x551aa8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
movzx eax, word [edi + 0x66b6]
mov ecx, 1
mov dword [ebp - 0x14], eax
neg eax
push 3
push edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
call fcn.004edab0
add esp, 8
cmp dword [edi + 0xbc], 0
je 0x4ee634
push str.PPG_interpolation..._n
call sub.MSVCR100.dll___iob_func
add eax, 0x40
push eax
call sub.MSVCR100.dll_fprintf
add esp, 8
movzx eax, word [edi + 0x66b4]
mov ebx, 3
sub eax, ebx
mov dword [ebp - 0x1c], ebx
cmp eax, ebx
jle 0x4ee834
movzx eax, word [edi + 0x66b6]
mov esi, dword [edi + 0x65b0]
and ebx, 7
mov edx, esi
lea ecx, [ebx*4 + 2]
shr edx, cl
and edx, 1
add edx, 3
mov ecx, edx
and ecx, 1
lea ecx, [ecx + ebx*2]
add ecx, ecx
shr esi, cl
lea ecx, [eax - 3]
mov dword [ebp - 0x24], edx
and esi, 3
mov dword [ebp - 0x30], esi
cmp edx, ecx
jge 0x4ee81b
mov edi, edi
imul eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x30]
add eax, edx
mov edx, dword [edi + 0x66e0]
lea ecx, [edx + eax*8]
movzx esi, word [ecx + esi*2]
xor edx, edx
mov dword [ebp - 0x38], edx
mov eax, 1
mov dword [ebp - 0x44], esi
lea esi, [eax*8]
mov edi, esi
neg edi
movzx ebx, word [edi + ecx + 2]
mov dword [ebp - 0x2c], ebx
movzx ebx, word [esi + ecx + 2]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x30]
add esi, ebx
movzx esi, word [ecx + esi*2]
add edi, ebx
movzx edi, word [ecx + edi*2]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x2c]
add esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x20]
add esi, dword [ebp - 0x28]
lea eax, [eax + eax*2]
add esi, esi
sub esi, edi
sub esi, ebx
mov dword [ebp + edx - 0x54], esi
mov esi, edi
sub esi, dword [ebp - 0x44]
add eax, eax
mov edi, esi
sar edi, 0x1f
mov dword [ebp - 0x20], edi
mov edi, ebx
sub edi, dword [ebp - 0x44]
add eax, eax
mov dword [ebp - 0x40], edi
sar edi, 0x1f
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x2c]
sub edi, dword [ebp - 0x28]
add eax, eax
mov dword [ebp - 0x3c], edi
sar edi, 0x1f
mov dword [ebp - 0x34], edi
mov edi, ecx
sub edi, eax
movzx eax, word [eax + ecx + 2]
sub eax, dword [ebp - 0x28]
movzx edi, word [edi + 2]
sub edi, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
sar eax, 0x1f
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x3c]
mov ebx, edi
sar ebx, 0x1f
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x20]
xor ebx, esi
mov esi, dword [ebp - 0x4c]
add eax, ebx
mov ebx, esi
xor ebx, dword [ebp - 0x40]
add eax, ebx
sub eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x20]
sub eax, esi
mov esi, dword [ebp - 0x2c]
xor esi, edi
mov edi, dword [ebp - 0x28]
xor edi, dword [ebp - 0x48]
lea eax, [eax + eax*2]
add esi, edi
sub esi, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x28]
lea eax, [eax + esi*2]
mov dword [ebp + edx - 0x60], eax
mov eax, dword [ebp - 0x38]
inc eax
lea edx, [eax*4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + edx - 0x18]
test eax, eax
jg 0x4ee6b3
mov edx, dword [ebp - 0x5c]
xor eax, eax
cmp dword [ebp - 0x60], edx
mov edi, ecx
setg al
mov edx, dword [ebp + eax*4 - 0x18]
mov eax, dword [ebp + eax*4 - 0x54]
add edx, edx
add edx, edx
add edx, edx
movzx esi, word [edx + ecx + 2]
sub edi, edx
movzx edx, word [edi + 2]
sar eax, 2
mov edi, eax
cmp si, dx
jae 0x4ee7e5
cmp eax, edx
jl 0x4ee7d9
mov edi, edx
cmp esi, edi
jg 0x4ee7f7
cmp eax, edx
jl 0x4ee7f9
mov eax, edx
jmp 0x4ee7f9
cmp eax, esi
jl 0x4ee7eb
mov edi, esi
cmp edx, edi
jle 0x4ee7f3
mov eax, edx
jmp 0x4ee7f9
cmp eax, esi
jl 0x4ee7f9
mov eax, esi
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
mov word [ecx + 2], ax
movzx eax, word [edi + 0x66b6]
add edx, 2
lea ecx, [eax - 3]
mov dword [ebp - 0x24], edx
cmp edx, ecx
jl 0x4ee690
movzx ecx, word [edi + 0x66b4]
mov ebx, dword [ebp - 0x1c]
inc ebx
sub ecx, 3
mov dword [ebp - 0x1c], ebx
cmp ebx, ecx
jl 0x4ee654
movzx edx, word [edi + 0x66b4]
mov ebx, 1
dec edx
mov dword [ebp - 0x1c], ebx
cmp edx, ebx
jle 0x4ee952
lea esp, [esp]
mov edx, dword [edi + 0x65b0]
mov eax, ebx
and eax, 7
lea ecx, [eax*4]
mov esi, edx
shr esi, cl
and esi, 1
inc esi
lea ecx, [esi - 1]
and ecx, 1
lea ecx, [ecx + eax*2]
movzx eax, word [edi + 0x66b6]
add ecx, ecx
shr edx, cl
lea ecx, [eax - 1]
mov dword [ebp - 0x24], esi
and edx, 3
cmp esi, ecx
jge 0x4ee93e
nop
mov ecx, dword [edi + 0x66e0]
imul eax, ebx
add eax, esi
lea esi, [ebp - 0x18]
lea eax, [ecx + eax*8]
mov ecx, 1
mov dword [ebp - 0x20], esi
lea esp, [esp]
lea esi, [ecx*4]
add ecx, ecx
mov ebx, edx
sub ebx, esi
movzx ebx, word [eax + ebx*2]
add esi, edx
movzx esi, word [eax + esi*2]
add ecx, ecx
add ebx, esi
add ecx, ecx
mov esi, eax
sub esi, ecx
movzx ecx, word [ecx + eax + 2]
movzx esi, word [esi + 2]
sub ebx, esi
sub ebx, ecx
movzx ecx, word [eax + 2]
lea ecx, [ebx + ecx*2]
sar ecx, 1
cmp ecx, 0xffff
jge 0x4ee8ff
test ecx, ecx
jns 0x4ee8f7
xor ecx, ecx
jmp 0x4ee904
cmp ecx, 0xffff
jl 0x4ee904
mov ecx, 0xffff
mov word [eax + edx*2], cx
mov ecx, 2
sub ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x20]
add ecx, 4
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx]
test ecx, ecx
jg 0x4ee8b0
movzx eax, word [edi + 0x66b6]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x1c]
add esi, 2
lea ecx, [eax - 1]
mov dword [ebp - 0x24], esi
cmp esi, ecx
jl 0x4ee890
movzx edx, word [edi + 0x66b4]
inc ebx
dec edx
mov dword [ebp - 0x1c], ebx
cmp ebx, edx
jl 0x4ee850
movzx eax, word [edi + 0x66b4]
mov esi, 1
dec eax
mov dword [ebp - 0x1c], esi
cmp eax, esi
jle 0x4eeb0f
lea ebx, [ebx]
mov eax, dword [edi + 0x65b0]
mov ebx, esi
and ebx, 7
lea ecx, [ebx*4 + 2]
mov edx, eax
shr edx, cl
and edx, 1
inc edx
mov ecx, edx
and ecx, 1
lea ecx, [ecx + ebx*2]
add ecx, ecx
shr eax, cl
mov ebx, 2
mov dword [ebp - 0x24], edx
and eax, 3
sub ebx, eax
movzx eax, word [edi + 0x66b6]
lea ecx, [eax - 1]
mov dword [ebp - 0x30], ebx
cmp edx, ecx
jge 0x4eeafb
jmp 0x4ee9c3
mov edx, dword [ebp - 0x24]
imul eax, esi
add eax, edx
mov edx, dword [edi + 0x66e0]
lea esi, [edx + eax*8]
mov edx, dword [ebp - 0x14]
xor ecx, ecx
inc edx
mov dword [ebp - 0x38], ecx
cmp edx, ecx
jle 0x4eea9c
movzx eax, word [esi + 2]
add eax, eax
mov dword [ebp - 0x28], eax
jmp 0x4ee9f0
mov eax, ebx
lea edi, [edx*4]
sub eax, edi
movzx eax, word [esi + eax*2]
add edi, ebx
movzx ebx, word [esi + edi*2]
mov edi, eax
sub edi, ebx
add edx, edx
add edx, edx
mov dword [ebp - 0x2c], ebx
movzx ebx, word [esi + 2]
mov dword [ebp - 0x48], edi
add edx, edx
sar edi, 0x1f
mov dword [ebp - 0x34], edi
mov edi, esi
sub edi, edx
movzx edi, word [edi + 2]
movzx edx, word [edx + esi + 2]
mov dword [ebp - 0x4c], edi
sub edi, ebx
sub eax, dword [ebp - 0x4c]
mov ebx, edi
sar ebx, 0x1f
mov dword [ebp - 0x20], ebx
movzx ebx, word [esi + 2]
mov dword [ebp - 0x3c], edx
sub eax, dword [ebp - 0x3c]
sub edx, ebx
add eax, dword [ebp - 0x28]
mov ebx, edx
add eax, dword [ebp - 0x2c]
sar ebx, 0x1f
mov dword [ebp - 0x40], ebx
xor ebx, edx
mov edx, dword [ebp - 0x20]
xor edx, edi
add ebx, edx
mov edx, dword [ebp - 0x34]
xor edx, dword [ebp - 0x48]
mov dword [ebp + ecx - 0x54], eax
mov eax, dword [ebp - 0x38]
add ebx, edx
sub ebx, dword [ebp - 0x20]
inc eax
sub ebx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
sub ebx, dword [ebp - 0x40]
mov dword [ebp + ecx - 0x60], ebx
mov ebx, dword [ebp - 0x30]
lea ecx, [eax*4]
mov edx, dword [ebp + ecx - 0x14]
add edx, dword [ebp + ecx - 0x18]
test edx, edx
jg 0x4ee9f0
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
cmp ecx, eax
je 0x4eeab5
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp + edx*4 - 0x54]
sar eax, 1
jmp 0x4eeabe
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x50]
sar eax, 2
cmp eax, 0xffff
jge 0x4eead4
test eax, eax
jns 0x4eeacd
xor eax, eax
jmp 0x4eead9
cmp eax, 0xffff
jl 0x4eead9
mov eax, 0xffff
mov ecx, dword [ebp - 0x24]
mov word [esi + ebx*2], ax
movzx eax, word [edi + 0x66b6]
mov esi, dword [ebp - 0x1c]
add ecx, 2
lea edx, [eax - 1]
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jl 0x4ee9c0
movzx eax, word [edi + 0x66b4]
inc esi
dec eax
mov dword [ebp - 0x1c], esi
cmp esi, eax
jl 0x4ee970
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0050bf32
mov esp, ebp
pop ebp
ret