Function at 0x10c417f0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x1c
test eax, eax
je 0x10c41c4f
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
push esi
mov esi, dword [esp + 0x30]
push edi
mov edi, esi
imul edi, ebx
lea eax, [edi*4]
push eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
call fcn.1097a670
mov ebp, eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
add eax, 0xfffffc0e
add esp, 4
cmp eax, 6
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ecx
ja case.default.0x10c41846
jmp dword [eax*4 + 0x10c41c54]
xor ebp, ebp
test ebx, ebx
jle 0x10c4188c
xor edi, edi
test esi, esi
jle 0x10c41883
lea esp, [esp]
mov eax, dword [esp + 0x3c]
push ebx
push esi
push ebp
push edi
push eax
call fcn.10c41760
mov edx, dword [esp + 0x2c]
shr eax, 0x18
add edx, eax
add esp, 0x14
inc edi
cmp edi, esi
mov dword [esp + 0x18], edx
jl 0x10c41860
inc ebp
cmp ebp, ebx
jl 0x10c41853
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cdq
idiv edi
test ebx, ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], eax
jle 0x10c41c2a
mov dword [esp + 0x20], ebp
nop
xor edi, edi
test esi, esi
jle 0x10c418e7
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
push ebx
push esi
push ecx
push edi
push edx
call fcn.10c41760
mov edx, dword [esp + 0x2c]
shr eax, 0x18
sub eax, edx
cdq
xor eax, edx
sub eax, edx
shl eax, 0x18
add esp, 0x14
mov dword [ebp], eax
inc edi
add ebp, 4
cmp edi, esi
jl 0x10c418b6
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
inc ecx
lea eax, [esi*4]
add ebp, eax
cmp ecx, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], ebp
jl 0x10c418b0
mov ebp, dword [esp + 0x14]
jmp 0x10c41c2a
cmp ebx, ecx
mov dword [esp + 0x10], ecx
jle 0x10c41c2a
mov dword [esp + 0x18], ebp
mov edi, edi
xor edi, edi
test esi, esi
jle 0x10c41954
mov ebp, dword [esp + 0x18]
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
push ebx
push esi
push eax
push edi
push ecx
call fcn.10c41760
add esp, 0x14
mov dword [ebp], eax
inc edi
add ebp, 4
cmp edi, esi
jl 0x10c41930
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
inc ecx
lea eax, [esi*4]
add edx, eax
cmp ecx, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
jl 0x10c41920
jmp 0x10c41c2a
cmp ebx, ecx
jle 0x10c41c2a
mov edx, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ebx
lea esp, [esp]
test esi, esi
jle 0x10c419c1
mov edi, dword [esp + 0x3c]
sub edi, ebp
mov ebx, esi
lea esp, [esp]
mov eax, dword [edi + edx]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov dword [esp + 0x18], eax
and eax, 0xffffff
shl ecx, 0x18
or eax, ecx
mov dword [edx], eax
add edx, 4
dec ebx
jne 0x10c419a0
mov edx, dword [esp + 0x20]
lea eax, [esi*4]
add edx, eax
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
jne 0x10c41990
jmp 0x10c41c2a
cmp ebx, ecx
jle 0x10c41c2a
mov edx, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebx
test esi, esi
jle 0x10c41a18
mov edi, dword [esp + 0x3c]
sub edi, ebp
mov ebx, esi
mov eax, dword [edx + edi]
movzx ecx, ah
and eax, 0xffffff
shl ecx, 0x18
or eax, ecx
mov dword [edx], eax
add edx, 4
dec ebx
jne 0x10c41a00
mov edx, dword [esp + 0x20]
lea eax, [esi*4]
add edx, eax
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], eax
jne 0x10c419f4
jmp 0x10c41c2a
cmp ebx, ecx
jle 0x10c41c2a
mov edx, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebx
jmp 0x10c41a50
test esi, esi
jle 0x10c41a7d
mov edi, dword [esp + 0x3c]
sub edi, ebp
mov ebx, esi
lea esp, [esp]
mov eax, dword [edx + edi]
mov ecx, eax
and ecx, 0xff
and eax, 0xffffff
shl ecx, 0x18
or eax, ecx
mov dword [edx], eax
add edx, 4
dec ebx
jne 0x10c41a60
mov edx, dword [esp + 0x20]
lea eax, [esi*4]
add edx, eax
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], eax
jne 0x10c41a50
jmp 0x10c41c2a
cmp ebx, ecx
jle 0x10c41c2a
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], ebx
mov edi, edi
test esi, esi
jle 0x10c41b0a
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
sub ebp, eax
mov dword [esp + 0x20], esi
mov eax, dword [ebx + ebp]
mov edx, eax
shr edx, 0x10
movzx edi, ah
movzx edx, dl
mov ecx, eax
mov dword [esp + 0x18], eax
and ecx, 0xff
and eax, 0xffffff
cmp edx, edi
jge 0x10c41aeb
mov edx, edi
cmp edx, ecx
jl 0x10c41af1
mov ecx, edx
shl ecx, 0x18
or ecx, eax
mov eax, dword [esp + 0x20]
mov dword [ebx], ecx
add ebx, 4
dec eax
mov dword [esp + 0x20], eax
jne 0x10c41ac6
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea eax, [esi*4]
add ecx, eax
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
jne 0x10c41ab0
jmp 0x10c41c2a
cmp ebx, ecx
jle 0x10c41c2a
mov ecx, ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
lea ecx, [ecx]
test esi, esi
jle 0x10c41bfa
mov edx, dword [esp + 0x3c]
sub edx, ebp
mov edi, esi
mov eax, dword [edx + ecx]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
test ebx, ebx
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
jge 0x10c41b70
fadd dword [0x10e52ea0]
fmul dword [0x10e4e9dc]
mov ebx, eax
shr ebx, 8
fsubr qword [0x10e470d8]
and ebx, 0xff
test ebx, ebx
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
jge 0x10c41b99
fadd dword [0x10e52ea0]
fmul dword [0x10e4e9dc]
mov ebx, eax
and ebx, 0xff
test ebx, ebx
fsubr qword [0x10e470d8]
mov dword [esp + 0x18], ebx
fmulp st(1)
fild dword [esp + 0x18]
jge 0x10c41bc1
fadd dword [0x10e52ea0]
fmul dword [0x10e4e9dc]
and eax, 0xffffff
add ecx, 4
fsubr qword [0x10e470d8]
fmulp st(1)
fsubr qword [0x10e470d8]
fmul dword [0x10e4e458]
fistp qword [esp + 0x18]
mov ebx, dword [esp + 0x18]
shl ebx, 0x18
or ebx, eax
dec edi
mov dword [ecx - 4], ebx
jne 0x10c41b50
mov ecx, dword [esp + 0x24]
lea eax, [esi*4]
add ecx, eax
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
jne 0x10c41b40
jmp 0x10c41c2a
push ecx
push ecx
push str.Unknown_color_conversion
push ecx
call dword [0x10e43a08]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
mov edx, ecx
shr ecx, 2
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
call fcn.10901b30
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret