Function at 0x41cb89
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, ecx
mov dword [ebp - 0x30], edx
mov edx, dword [ebp + 0x10]
push ebx
push esi
mov ecx, dword [eax]
and edx, 0x800
xor ebx, ebx
mov dword [ebp - 0x2c], eax
push edi
mov dword [ebp - 4], edx
movzx esi, word [ecx + 2]
add ecx, 4
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x41cbcd
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
je 0x45bea1
lea eax, [ecx - 2]
mov dword [ebp - 0x24], eax
mov edi, eax
mov dword [ebp - 0x18], edi
test esi, esi
je 0x45bec6
lea eax, [esi - 0x30]
cmp eax, 0x4a
ja 0x41cc17
lea eax, [esi - 0x30]
mov dword [ebp - 0x20], 0x7b
mov dword [ebp - 0x14], eax
movsx eax, word [eax*2 + 0x4b1b88]
mov dword [ebp - 8], eax
test eax, eax
je 0x45bed4
jg 0x41cc35
mov ebx, eax
neg ebx
cmp ebx, 0xc
je 0x45c5ce
test dword [ebp + 0x10], 0x20000000
jne 0x45c5f9
mov eax, dword [ebp - 0x2c]
mov dword [eax], edi
mov eax, dword [ebp - 0x30]
pop edi
mov dword [eax], esi
mov eax, ebx
pop esi
pop ebx
leave
ret
mov esi, eax
jmp 0x41cc17
add byte [eax], al
mov dword [ebp - 0x24], 0x81
mov dword [ebp - 0x28], 0x82
mov dword [ebp - 0x20], 0x85
push 0x77
pop esi
movzx eax, word [ebx]
cmp eax, 0x76
je 0x41ccc8
cmp ax, si
je 0x45c60d
movzx esi, ax
mov eax, 0x83
cmp esi, eax
ja 0x45c66e
add eax, 0xfffffffe
cmp esi, eax
jae 0x45cdbe
test esi, esi
je 0x45c625
cmp esi, 0x78
jne 0x45c61c
cmp dword [edx + 4], 0
jne 0x45c632
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
add ebx, 8
jmp 0x41cc7a
add ch, cl
mov eax, 0x8dfbfc0b
dec ecx
add byte [ebp + edi*4 - 0x424affbb], ch
inc ebp
add byte [ebp - 0x3bffba43], dh
mov ebp, 0xbdc40045
inc ebp
add byte [ecx - 0x46ffba43], bh
mov ebp, 0xbdcc0045
inc ebp
add byte [edx], dh
mov esi, 0xbe320045
inc ebp
add byte [edx - 0x42], al
int3
inc ebp
add byte [edx - 0x42], al
inc ebp
add byte [esi - 0x42], al
inc ebp
add byte [esi - 0x42], al
inc ebp
add byte [esi], dh
mov esi, 0xbe360045
inc ebp
add byte [edi], cl
mov bh, 1
mov edi, 0xc7903ff
and esi, edi
and eax, edi
shl esi, 0xa
or esi, eax
add esi, 0x3ff448d
add ecx, 2
sbb byte [ebp - 0xc], dh
mov dword [ebp - 0x1c], ecx
jmp 0x43cacc16
mov eax, dword [ebp + 8]
mov dword [edx + 3], 0x9fe9feff
or ah, bh
sti
push 0x7d
pop ecx
cmp ax, cx
je 0x45c3d7
mov eax, dword [ebp + 8]
mov dword [edi + ecx*2 + 3], 0x89e9feff
or ah, bh
sti
test edx, edx
jmp 0x45c3de
je 0xfc41cc60
lea eax, [esi - 0xd800]
cmp eax, 0xdd2307ff
ja 0x43cacc60
mov eax, dword [ebp + 8]
mov dword [ecx + ecx*2 + 3], 0x5de9feff
or byte [ebp - 0x460c74bd], al
inc dword [eax]
jl 0x45c419
inc eax
mov dword [ebp - 8], eax
movzx eax, word [edi + 2]
mov ebx, eax
mov dword [ebp - 0x1c], ebx
push 0
pop ebx
cmp ax, cx
ja 0x41cc60
test byte [eax + 0x4c3dd0], 8
je 0xfc41cc60
push 0x61
movzx edx, ax
add edi, 2
pop eax
cmp word [ebp - 0x1c], ax
jb 0x45c442
sub edx, 0x20
cmp edx, 0x41
sbb eax, eax
shl esi, 4
and eax, 0xfffffff9
add eax, 0x37
sub esi, eax
mov eax, dword [ebp - 8]
add esi, edx
cmp eax, 2
jl 0x45c40a
jmp 0xfc41cc60
std
sbb bh, dh
mov dword [ebx], edi
enter 0xffffffffffff870f, 0xffffffffffffffd9
std
add byte [0x6a02c783], cl
aaa
movzx eax, word [edi]
mov ecx, eax
cmp ax, dx
pop eax
jae 0x45c5d1
jmp 0x45c3b3
cmp di, di
inc ebp
or bh, al
inc esp
push eax
add edi, edi
invalid
inc esp
and eax, 0xe9e9f87d
inc eax
push es
test dword [ebx - 0x75], eax
inc ebp
loopne 0x45c681
cmp dword [edi + 2], eax
jne 0x43cacc60
inc edi
add cl, byte [edi]
test dword [esi + eax], edi
test dword [ebx - 0x73], eax
lea ecx, [edi + 4]
call 0x486b0c2
mov eax, dword [eax + ecx*4]
test dword [esi + eax], ebp
dec edi
add al, 0xe8
xchg esi, eax
ljmp 0x8588
test dword [ebx - 0x75], eax
inc ebp
or bh, al
inc esp
and eax, 0xe9e9f87d
push ds
push es
test dword [ebx - 0x73], eax
dec ebx
cli
cmp ecx, 5
ja 0x43cacc6d
add ebx, 0x17
jmp 0xfc41cc6d
xor eax, eax
cmp dword [edx + 4], eax
setne al
jmp 0xfc41cd0c
add ecx, ecx
sub eax, ecx
movzx ecx, word [edi]
cmp eax, 0x7d
jb 0x45c6a1
mov ecx, 0xf7c0082
cmp ax, cx
ja 0x45c6a1
xor edi, 1
mov eax, edi
jmp 0x43cacd0c
add ebx, 4
jmp 0x45c6af
mov ecx, dword [ebp + 0x14]
jmp 0x43caccc0
push edi
rol byte [ebx + 0x43e901e0], 1
invalid