Function at 0x41cbe9
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
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, dword [eax]
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
jmp [edx + 0x6b]
mov ebp, 0xbdb50045
inc ebp
add ah, al
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
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, 0x30003ff
and esi, edi
and eax, edi
shl esi, 0xa
or esi, eax
add esi, 0x1fc20000
add ecx, 2
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x1c], ecx
jmp 0xbb41cc2d
mov eax, dword [ebp + 8]
mov dword [eax], 0x741f22
jmp 0x41cc77
cmp cx, ax
ja 0x45c5d7
add edi, 2
movzx eax, cx
test esi, esi
jne 0x45c5a3
cmp eax, edx
je 0x45c5c7
add eax, 0xffffffd0
lea esi, [eax + esi*8]
mov eax, dword [ebp - 4]
neg eax
sbb eax, eax
and eax, 0x100000
add eax, 0xffff
cmp esi, eax
jbe 0x45c5c7
mov dword [ebp - 0x1c], 1
jmp 0x45c5d4
movzx eax, word [edi]
push 0x37
mov ecx, eax
cmp ax, dx
pop eax
jae 0x45c590
push 0x37
pop eax
movzx ecx, word [edi]
cmp dword [ebp - 0x1c], ebx
je 0x45c606
cmp cx, dx
jb 0x45c3ca
cmp cx, ax
ja 0x45c3ca
add edi, 2
push 0x37
movzx eax, word [edi]
mov ecx, eax
cmp ax, dx
pop eax
jae 0x45c5e8
jmp 0x45c3ca
push 0x7d
pop eax
cmp cx, ax
je 0xbb06c3f2
test al, ah
std
sar byte [edx - 0x38f7ba75], 0
push eax
pop ds
je 0x45c61b
mov eax, dword [ebp + 8]
mov dword [eax], 0x741f50
jmp 0xbb41cc77
push edi
push es
cld
mov edx, 0xc708458b
add byte [0xe9eb1000], ah
and eax, 0xe9eb1000
inc eax
push es
cld
mov edx, 0x66e0458b
cmp dword [edi + 2], eax
jne 0xbb41cc77
lea ecx, [edi + 4]
call fcn.0049b0d9
call 0x2ccad61e
push es
cld
mov edx, 0xc708458b
add byte [0xe9eb1000], ah
push ds
push es
cld
mov edx, 0x83fa4b8d
stc
add eax, 0x61f870f
cld
mov edx, 0xe917c383
pop ss
push es
cld
dec dword [edi]
mov bh, 0x43
add cl, byte [ebp - 0x48f0bce4]
add ebp, ecx
push es
cld
mov edx, 0xf7bfe83
test edi, eax
add byte [edi], bl
je 0x45c6b9
sar byte [ecx], 0x42
add al, 0xf
xchg ebp, eax
shr cl, 0x91
push es
cld
dec dword [edi]
mov bh, 0x4b
add cl, byte [ebx + 0x2bc903c3]
ror dword [edi], 0xb7
add byte [ebx + 0x14727df8], al
mov ecx, 0x82
cmp ax, cx
ja 0x45c6b8
xor edi, 1
mov eax, edi
jmp 0xbb41cd23
add ebx, 4
jmp 0x45c6c6
ret
mov ecx, dword [ebp + 0x14]
jmp 0xbb41ccd7
mov bh, 0x42
add ch, byte [eax + 0x58850f04]
invalid