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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x204
push ebx
push esi
push edi
mov esi, 0x42cd58
mov dword [ebp - 0x2c], 0xbfec68bb
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x28], 0x11c0e892
xor ecx, ecx
mov dword [ebp - 0x24], 0x833a1e9b
mov dword [ebp - 0x20], 0xf3549c53
mov ebx, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xe6fb3b3d
mov dword [ebp - 0x18], 0xaf3ff6b0
mov dword [ebp - 0x14], 0x8d866c6
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x2000b605
mov dword [ebp - 0xc], 0xf7e78cfb
mov dword [ebp - 8], 0x4c0a8e45
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0x1d71ec4b
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, str.not_supported
lea edi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x4c], 0x53
mov edi, dword [0x4340c8]
mov dword [ebp - 0x30], edi
jne 0x406c9e
mov ecx, dword [0x4340cc]
mov al, 0x53
mov dword [ebp - 0x3c], ecx
test al, al
je 0x406aab
cmp byte [ebp + ebx - 0x4c], 0
je 0x406aab
push 0x42d090
push ecx
call fcn.00404591
mov al, byte [ebx + 0x42d391]
inc ebx
pop ecx
pop ecx
mov ecx, dword [ebp - 0x3c]
cmp al, byte [ebp + ebx - 0x4c]
je 0x406a83
cmp dword [ebp - 0x34], ebx
jae 0x406ad4
mov esi, edi
and esi, 0x689c8eac
sub ebx, dword [ebp - 0x34]
mov edx, ecx
mov ecx, edi
call fcn.004047d2
mov ecx, esi
mov dword [0x4340cc], ecx
sub ebx, 1
jne 0x406abb
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x406ada
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x174]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x6c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov byte [ebp + edi - 0x174], bl
cmp esi, 0x100
jb 0x406aeb
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x174]
mov byte [ebp + edi - 0x174], al
mov byte [ebp + ebx - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x1d4], al
inc esi
cmp esi, 0x2c
jb 0x406b30
mov esi, 0x42cfcc
mov dword [ebp - 0x2c], 0x7dfd306e
lea edi, [ebp - 0x68]
mov dword [ebp - 0x28], 0x79cdac7c
xor ecx, ecx
mov dword [ebp - 0x24], 0x809bb5cf
mov byte [ebp - 0x1a8], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], 0x86fc8070
mov dword [ebp - 0x1c], 0x8cd4ac91
mov dword [ebp - 0x18], 0x2697ff50
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0x49574ec4
mov dword [ebp - 0x10], 0x5ad49363
mov dword [ebp - 0xc], 0x33dc2f58
mov dword [ebp - 8], 0x5390466e
mov dword [ebp - 4], 0xa4d7bc5b
movsw word es:[edi], word [esi]
mov dword [ebp - 0x34], ecx
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x406be6
mov esi, 0x42cfd8
mov dword [ebp - 0x58], 9
lea edi, [ebp - 0x4c]
mov ebx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x30]
xor edx, edx
mov cl, byte [ebp + ebx - 0x174]
mov eax, ebx
mov byte [ebp - 0x35], cl
div dword [ebp - 0x58]
movzx ecx, cl
push 0x42d0d0
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 0x34]
add ecx, eax
movzx eax, cl
push ecx
mov ecx, esi
mov dword [ebp - 0x34], eax
call fcn.00404591
pop ecx
pop ecx
push 0x52
xor eax, eax
pop ecx
mov edx, eax
cmp cx, word [ebp - 0x4c]
jne 0x406c74
xor edi, edi
test cx, cx
je 0x406c71
cmp word [ebp + eax - 0x4c], di
je 0x406c71
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0x42d0d0]
cmp cx, word [ebp + eax - 0x4c]
je 0x406c53
mov edi, dword [ebp - 0x30]
movzx eax, byte [ebp + edx*2 - 0x4c]
movzx ecx, byte [edx*2 + 0x42d0d0]
sub ecx, eax
cmp ecx, 0x1113
jbe 0x406cab
mov eax, edi
and eax, 0x6c467cc
mov dword [ebp - 0x3c], eax
mov esi, eax
mov dword [0x4340cc], eax
jmp 0x406cb9
mov eax, dword [0x4340cc]
mov dword [ebp - 0x3c], eax
jmp 0x406ad6
imul edi, edi, 0xe3e5e000
mov dword [ebp - 0x30], edi
call fcn.0040488c
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp + ecx - 0x174]
mov byte [ebp + ebx - 0x174], al
inc ebx
mov al, byte [ebp - 0x35]
mov byte [ebp + ecx - 0x174], al
cmp ebx, 0x100
jb 0x406c11
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 0x30]
xor eax, 0xdd7bd1e1
mov byte [ebp + ebx - 0x174], cl
mov dword [ebp - 0x30], eax
mov dword [0x4340c8], eax
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x1a4], al
inc esi
cmp esi, 0x2c
jb 0x406ce9
mov esi, str.imageSize
mov dword [ebp - 0x2c], 0xe822ba06
lea edi, [ebp - 0x68]
mov dword [ebp - 0x28], 0x6318475
push 7
xor ecx, ecx
mov dword [ebp - 0x24], 0x291cf095
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x11], al
mov eax, ecx
mov byte [ebp - 0x178], cl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], 0x8d79abc
mov dword [ebp - 0x1c], 0xc7eae92
mov dword [ebp - 0x18], 0xfd0db042
movsw word es:[edi], word [esi]
mov word [ebp - 0x14], 0x5511
mov edi, ecx
mov byte [ebp - 0x12], 0xf5
mov dword [ebp - 0x10], 0xd4317b3c
mov dword [ebp - 0xc], 0x1b4889f8
mov dword [ebp - 8], 0x1640285
mov dword [ebp - 4], 0xa67ccebd
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x406db7
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x174]
push 9
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x68]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov byte [ebp + edi - 0x174], bl
cmp esi, 0x100
jb 0x406dc8
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x174]
mov byte [ebp + edi - 0x174], al
mov byte [ebp + ebx - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x204], al
inc esi
cmp esi, 0x2c
jb 0x406e0d
xor eax, eax
lea edx, [ebp - 0x1a4]
mov byte [ebp - 0x1d8], al
mov ebx, eax
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov dword [ebp - 0x30], eax
inc ecx
lea eax, [ebp - 0x30]
push eax
push 8
call fcn.0040a2e6
call eax
push eax
push 6
lea edx, [ebp - 0x1d4]
pop ecx
call fcn.0040a2e6
call eax
test eax, eax
je 0x406ec0
lea eax, [ebp - 0x3c]
push eax
push 4
lea eax, [ebp - 0x58]
push eax
push 0x14
push dword [ebp - 0x30]
lea edx, [ebp - 0x204]
push 6
pop ecx
call fcn.0040a2e6
call eax
test eax, eax
cmovne ebx, dword [ebp - 0x58]
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x30], 0
je 0x406fc3
xor ecx, ecx
mov dword [ebp - 0x54], 0x59c9c391
mov dword [ebp - 0x50], 0x9443ea30
mov edi, ecx
mov dword [ebp - 0x4c], 0xd1717168
mov eax, ecx
mov dword [ebp - 0x48], 0xf00d7ca3
mov dword [ebp - 0x44], 0x3f79fa1e
mov dword [ebp - 0x40], 0x446502fd
mov dword [ebp - 0x64], 0x73657268
mov dword [ebp - 0x60], 0x746c75
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x406f08
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x174]
push 7
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x64]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov byte [ebp + edi - 0x174], bl
cmp esi, 0x100
jb 0x406f19
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x174]
mov byte [ebp + edi - 0x174], al
mov byte [ebp + ebx - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x54]
mov byte [ebp + esi - 0x74], al
inc esi
cmp esi, 0x18
jb 0x406f5e
push dword [ebp - 0x30]
xor ecx, ecx
lea edx, [ebp - 0x74]
xor eax, eax
inc ecx
mov byte [ebp - 0x5c], al
call fcn.0040a2e6
call eax
mov ebx, dword [ebp - 0x34]
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret