Function at 0x100fbbb0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x1019c020]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push edi
mov edi, ecx
movd xmm0, eax
pshufd xmm2, xmm0, 0
cmp dword [edi + 4], 0
jne 0x100fbbeb
xor al, al
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret 8
cmp dword [edi + 0x3c4], 0
push ebx
push esi
je 0x100fbc10
mov ebx, dword [edi + 0x170]
mov ecx, dword [edi + 0x178]
mov esi, dword [edi + 0x17c]
mov edx, dword [edi + 0x174]
jmp 0x100fbc1a
mov ecx, dword [edi + 0xc]
xor esi, esi
mov edx, dword [edi + 0x10]
xor ebx, ebx
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], ebx
cmp ebx, ecx
je 0x100fbc6f
cmp esi, edx
je 0x100fbc6f
mov edx, dword [ebp + 0xc]
sub edx, 1
je 0x100fbf01
sub edx, 1
je 0x100fbc84
movups xmm0, xmmword [str.Saturate:_wrong_colorspace]
movups xmmword [edi + 0x44], xmm0
movq xmm0, qword [0x10151418]
movq qword [edi + 0x54], xmm0
mov ax, word [0x10151420]
mov word [edi + 0x5c], ax
mov al, byte [0x10151422]
mov byte [edi + 0x5e], al
pop esi
pop ebx
xor al, al
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret 8
xor edx, edx
cmp dword [0x101a1fc0], 2
jl 0x100fbd8e
movaps xmm3, xmmword [str.dddd]
lea ebx, [ebp - 0x104]
movaps xmm4, xmmword [0x10192300]
paddd xmm3, xmm2
movaps xmm2, xmmword [0x10151660]
movaps xmm5, xmmword [0x101516a0]
movaps xmm6, xmmword [0x101516b0]
movaps xmm7, xmmword [0x10151670]
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm0, xmm0, 0
movaps xmm1, xmm7
paddd xmm0, xmm4
psubd xmm0, xmm2
pmulld xmm0, xmm3
cvtdq2ps xmm0, xmm0
divps xmm0, xmm5
addps xmm0, xmm6
cvttps2dq xmm0, xmm0
pminsd xmm1, xmm0
xorps xmm0, xmm0
pmaxsd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
movaps xmm1, xmm7
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10151680]
packuswb xmm0, xmm0
movd dword [ebx + edx], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
psubd xmm0, xmm2
pmulld xmm0, xmm3
cvtdq2ps xmm0, xmm0
divps xmm0, xmm5
addps xmm0, xmm6
cvttps2dq xmm0, xmm0
pminsd xmm1, xmm0
xorps xmm0, xmm0
pmaxsd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10151680]
packuswb xmm0, xmm0
movd dword [ebp + edx - 0x100], xmm0
add edx, 8
cmp edx, 0x100
jl 0x100fbcd0
jmp 0x100fbe07
movss xmm1, dword [0x10192220]
lea ebx, [eax + 0x64]
movss xmm2, dword [0x10192230]
mov dword [ebp - 0x108], ebx
mov ebx, 0xffffff9c
mov ecx, dword [ebp - 0x108]
sub ebx, eax
shl ebx, 7
mov dword [ebp - 0x10c], 0xff
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
addss xmm0, xmm2
cvttss2si eax, xmm0
cmp eax, 0xff
jg 0x100fbde8
test eax, eax
jns 0x100fbde3
xor eax, eax
jmp 0x100fbdef
cmp eax, 0xff
cmovg eax, dword [ebp - 0x10c]
mov byte [ebp + edx - 0x104], al
add ebx, ecx
inc edx
cmp edx, 0x100
jl 0x100fbdc1
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x110]
cmp esi, eax
jge 0x100fc0c9
sub eax, esi
mov dword [ebp - 0x11c], eax
xor eax, eax
mov dword [ebp - 0x108], eax
nop dword [eax + eax]
cdq
idiv dword [ebp - 0x11c]
cmp dword [edi + 0x148], 0
mov dword [edi + 0x144], eax
jne 0x100fc0c9
cmp dword [ebp - 0x110], ecx
jge 0x100fbeca
push esi
push ebx
mov ecx, edi
call sym.FreeImageRender.dll_protected:_bool___thiscall_CxImage::BlindSelectionIsInside_int__int_
test al, al
je 0x100fbebf
push 1
push esi
push ebx
lea eax, [ebp - 0x120]
mov ecx, edi
push eax
call sym.FreeImageRender.dll_protected:_struct_tagRGBQUAD___thiscall_CxImage::BlindGetPixelColor_int__int__bool_
push dword [eax]
call sym.FreeImageRender.dll_public:_static_struct_tagRGBQUAD___cdecl_CxImage::RGBtoYUV_struct_tagRGBQUAD_
mov dword [ebp - 0x10c], eax
shr eax, 8
movzx eax, al
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x10c]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10c], al
push dword [ebp - 0x10c]
call sym.FreeImageRender.dll_public:_static_struct_tagRGBQUAD___cdecl_CxImage::YUVtoRGB_struct_tagRGBQUAD_
add esp, 8
mov ecx, edi
push 0
push eax
push esi
push ebx
call sym.FreeImageRender.dll_protected:_void___thiscall_CxImage::BlindSetPixelColor_int__int__struct_tagRGBQUAD__bool_
mov ecx, dword [ebp - 0x114]
inc ebx
cmp ebx, ecx
jl 0x100fbe52
mov eax, dword [ebp - 0x108]
inc esi
mov ebx, dword [ebp - 0x110]
add eax, 0x64
mov dword [ebp - 0x108], eax
cmp esi, dword [ebp - 0x118]
jl 0x100fbe30
pop esi
pop ebx
mov al, 1
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret 8
cmp dword [0x101a1fc0], 2
jl 0x100fbfc4
movaps xmm3, xmmword [0x10192300]
lea ebx, [ebp - 0x104]
movaps xmm4, xmmword [0x10151670]
xor edx, edx
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm0, xmm0, 0
movaps xmm1, xmm4
paddd xmm0, xmm3
paddd xmm0, xmm2
pminsd xmm1, xmm0
xorps xmm0, xmm0
pmaxsd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
movaps xmm1, xmm4
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10151680]
packuswb xmm0, xmm0
movd dword [ebx + edx], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm3
paddd xmm0, xmm2
pminsd xmm1, xmm0
xorps xmm0, xmm0
pmaxsd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10151680]
packuswb xmm0, xmm0
movd dword [ebp + edx - 0x100], xmm0
add edx, 8
cmp edx, 0x100
jl 0x100fbf24
mov ebx, dword [ebp - 0x110]
jmp 0x100fc003
lea edx, [ebp - 0x104]
mov dword [ebp - 0x108], 0x100
sub edx, eax
mov ecx, edx
cmp eax, 0xff
jg 0x100fbfeb
test eax, eax
jns 0x100fbfe7
xor edx, edx
jmp 0x100fbff0
mov edx, eax
jmp 0x100fbff0
mov edx, 0xff
mov byte [ecx + eax], dl
inc eax
sub dword [ebp - 0x108], 1
jne 0x100fbfd8
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
cmp esi, eax
jge 0x100fc0c9
sub eax, esi
mov dword [ebp - 0x11c], eax
xor eax, eax
mov dword [ebp - 0x10c], eax
cdq
idiv dword [ebp - 0x11c]
cmp dword [edi + 0x148], 0
mov dword [edi + 0x144], eax
jne 0x100fc0c9
cmp dword [ebp - 0x110], ecx
jge 0x100fc0a7
push esi
push ebx
mov ecx, edi
call sym.FreeImageRender.dll_protected:_bool___thiscall_CxImage::BlindSelectionIsInside_int__int_
test al, al
je 0x100fc09c
push 1
push esi
push ebx
lea eax, [ebp - 0x120]
mov ecx, edi
push eax
call sym.FreeImageRender.dll_protected:_struct_tagRGBQUAD___thiscall_CxImage::BlindGetPixelColor_int__int__bool_
push dword [eax]
call sym.FreeImageRender.dll_public:_static_struct_tagRGBQUAD___cdecl_CxImage::RGBtoHSL_struct_tagRGBQUAD_
mov dword [ebp - 0x108], eax
shr eax, 8
movzx eax, al
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x107], al
push dword [ebp - 0x108]
call sym.FreeImageRender.dll_public:_static_struct_tagRGBQUAD___cdecl_CxImage::HSLtoRGB_struct_tagRGBQUAD_
add esp, 8
mov ecx, edi
push 0
push eax
push esi
push ebx
call sym.FreeImageRender.dll_protected:_void___thiscall_CxImage::BlindSetPixelColor_int__int__struct_tagRGBQUAD__bool_
mov ecx, dword [ebp - 0x114]
inc ebx
cmp ebx, ecx
jl 0x100fc043
mov eax, dword [ebp - 0x10c]
inc esi
mov ebx, dword [ebp - 0x110]
add eax, 0x64
mov dword [ebp - 0x10c], eax
cmp esi, dword [ebp - 0x118]
jl 0x100fc021
mov ecx, dword [ebp - 4]
mov al, 1
pop esi
pop ebx
xor ecx, ebp
pop edi
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret 8