Function at 0xc46e97
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1bc
push ebx
push esi
push edi
mov esi, 0xc70584
mov dword [ebp - 0x6c], ecx
lea edi, [ebp - 0x68]
mov dword [ebp - 0x44], 0x82c9c277
push 9
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x40], 0x30
mov byte [ebp - 0x3f], al
mov dword [ebp - 0x3e], 0xaf819477
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3a], 0x83242669
mov dword [ebp - 0x36], 0x3e60c1b0
mov dword [ebp - 0x32], 0x1a60e027
mov dword [ebp - 0x2e], 0xcf25cd7
mov dword [ebp - 0x2a], 0x9a6ec129
mov dword [ebp - 0x26], 0xe1a4c236
mov dword [ebp - 0x22], 0xec6811b2
mov dword [ebp - 0x1e], 0x941afb28
mov word [ebp - 0x1a], 0x5c6
movsw word es:[edi], word [esi]
call fcn.00c456ec
mov edi, dword [0xc77144]
xor ebx, ebx
mov esi, ebx
imul edi, edi, 0x645ce2f7
inc esi
cmp byte [esi + 0xc709d0], bl
jne 0xc46f17
call fcn.00c46236
cmp esi, 0xd31
jbe 0xc46f45
mov ecx, 0xc70dc4
and edi, 0xa82ce164
call fcn.00c45ba8
jmp 0xc46f57
xor edi, 0x696a9bdc
mov ecx, 0xc709d0
mov edx, edi
call fcn.00c45da2
mov dword [ebp - 8], ebx
mov eax, ebx
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0xc46f5c
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x18c]
push 9
mov eax, esi
imul edi, edi, 0xc1dab3ec
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov byte [ebp + ecx - 0x18c], bl
cmp esi, 0x100
jb 0xc46f6d
xor ecx, ecx
mov dword [0xc77144], edi
mov dword [ebp - 0x18], ecx
mov eax, ecx
mov dword [ebp - 8], ecx
inc eax
movzx edx, al
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov cl, byte [ebp + edx - 0x18c]
movzx esi, cl
add eax, esi
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + edx - 0x18c], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x18c], cl
movzx eax, byte [ebp + edx - 0x18c]
add eax, esi
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp - 1], al
call fcn.00c4555f
xor ebx, ebx
mov esi, ebx
push edi
mov edx, edi
mov ecx, 0xc709d0
call fcn.00c4574b
mov edi, dword [0xc77144]
add edi, 0xa4336871
inc esi
pop ecx
mov dword [0xc77144], edi
cmp word [esi*2 + 0xc70dc4], bx
jne 0xc47018
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x64], esi
cmp dword [ebp - 0x10], esi
jae 0xc47090
mov ebx, dword [ebp - 0x10]
mov esi, edi
mov dword [ebp - 0xc], edi
call fcn.00c460af
cmp ebx, 0x25be
jne 0xc47071
call fcn.00c46236
mov esi, dword [ebp - 0xc]
and esi, 0xd7cb2dd6
lea edi, [esi - 0x31f97f5]
inc ebx
mov eax, edi
mov dword [0xc77144], edi
mov esi, eax
mov dword [ebp - 0xc], eax
cmp ebx, dword [ebp - 0x64]
jb 0xc47056
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 8]
mov al, byte [ebp + ebx - 0x44]
xor al, byte [ebp - 1]
mov byte [ebp + ebx - 0x1bc], al
inc ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], ebx
cmp ebx, 0x2c
jb 0xc46fc4
lea eax, [ebp - 0x70]
mov dword [ebp - 0x70], 0x208
push eax
push dword [ebp - 0x6c]
xor ecx, ecx
lea edx, [ebp - 0x1bc]
xor ebx, ebx
inc ecx
mov byte [ebp - 0x190], bl
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc47363
mov esi, 0xc70590
mov dword [ebp - 0x5c], 0x399db2df
lea edi, [ebp - 0x68]
mov dword [ebp - 0x58], 0x68ff1cc4
mov ecx, 0xc709d0
mov dword [ebp - 0x54], 0x1af8b3c4
mov dword [ebp - 0x50], 0xd52b511a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4c], 0xf2fe66ed
mov dword [ebp - 0x48], 0x4c03f7a4
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [0xc77144]
mov edx, esi
call fcn.00c45da2
sub esi, 0x1d7af82
mov ecx, 0xc70d70
push esi
mov edx, ecx
call fcn.00c45a44
pop ecx
mov dword [ebp - 0xc], ebx
mov eax, ebx
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0xc4713d
mov dword [ebp - 0x18], ebx
mov edx, esi
mov ecx, 0xc709d0
call fcn.00c45da2
mov edi, ebx
call fcn.00c460af
or esi, 0x7c04a5a8
inc edi
cmp byte [edi + 0xc709d0], 0
jne 0xc4715d
call fcn.00c4641e
mov ebx, dword [ebp - 0x14]
cmp ebx, edi
jae 0xc471c4
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], esi
mov edx, esi
mov ecx, 0xc709d0
call fcn.00c45da2
mov esi, dword [ebp - 0x10]
cmp ebx, 0x128
jne 0xc471a9
call fcn.00c4641e
mov esi, dword [ebp - 8]
add esi, 0xd102b459
xor esi, 0x74b9c6bd
mov dword [ebp - 8], esi
call fcn.00c456ec
inc ebx
mov eax, esi
mov dword [ebp - 0x10], eax
cmp ebx, edi
jb 0xc47184
mov dword [ebp - 0x14], ebx
mov edi, dword [ebp - 0x18]
xor edx, edx
push 6
pop ecx
mov eax, edi
and esi, 0x5bc78f6e
div ecx
mov bl, byte [ebp + edi - 0x18c]
movzx ecx, bl
push 0
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 0xc]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0xc], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp + edi - 0x18c], al
inc edi
mov byte [ebp + ecx - 0x18c], bl
mov dword [ebp - 0x18], edi
pop ebx
cmp edi, 0x100
jb 0xc4714f
or esi, 0x4b8917fb
xor eax, eax
mov dword [ebp - 0x14], esi
mov edx, eax
mov ebx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 0xc], eax
lea eax, [edx + 1]
movzx ecx, al
mov dword [ebp - 0x64], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 8], eax
add eax, esi
movzx eax, al
mov dword [ebp - 0x14], eax
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + ecx - 0x18c], al
call fcn.00c46236
push 8
pop ecx
mov esi, 0xc70030
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
push 0x72
xor eax, eax
pop ecx
movsw word es:[edi], word [esi]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp cx, word [ebp - 0x3c]
jne 0xc472a3
xor esi, esi
test cx, cx
je 0xc472a0
cmp word [ebp + eax - 0x3c], si
je 0xc472a0
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc70dc4]
cmp cx, word [ebp + eax - 0x3c]
je 0xc47282
mov dword [ebp - 0x10], edx
call fcn.00c4641e
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ebp + ecx*2 - 0x3c]
movzx ecx, byte [ecx*2 + 0xc70dc4]
sub ecx, eax
cmp ecx, 0x177b
jne 0xc472cf
call fcn.00c460af
imul ebx, ebx, 0xbeaf7dad
jmp 0xc472df
mov ecx, 0xc70dc4
call fcn.00c45ba8
xor ebx, 0xf9f7afe7
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x64]
mov al, byte [ebp - 1]
mov ecx, dword [ebp - 0xc]
mov byte [ebp + esi - 0x18c], al
movzx eax, byte [ebp + edx - 0x18c]
add eax, dword [ebp - 8]
movzx eax, al
mov dword [0xc77144], ebx
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + ecx - 0x5c]
mov byte [ebp + ecx - 0x8c], al
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, 0x18
jb 0xc4722d
xor ebx, ebx
lea ecx, [ebp - 0x8c]
mov byte [ebp - 0x74], bl
call fcn.00c4d05e
mov esi, eax
mov ecx, esi
call fcn.00c4d317
add eax, eax
push eax
push esi
push dword [ebp - 0x6c]
call fcn.00c4cef6
mov ecx, esi
call fcn.00c4d317
push eax
push ebx
push esi
call fcn.00c4cf49
add esp, 0x18
mov ecx, esi
call fcn.00c4ba07
pop edi
pop esi
pop ebx
leave
ret