Function at 0x41633c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
stc
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
or dword [ebp - 0x14], 0xffffffff
and dword [ebp - 0x10], 0
shr eax, 0xb
push ebx
and eax, 1
mov dword [ebp - 8], ecx
push esi
mov dword [ebp - 0xc], eax
lea esi, [edx + 4]
movzx eax, word [edx]
mov ecx, 0x85
push edi
xor edi, edi
mov dword [ebp - 4], edi
cmp ax, cx
je case.0x416454.98
add ecx, 5
cmp ax, cx
je case.0x416454.98
mov ecx, 0x86
cmp ax, cx
je case.0x416454.98
add ecx, 5
jmp 0x4163d1
add esi, 4
inc edi
mov dword [ebp - 4], edi
add esi, 2
movzx ebx, word [esi]
mov edx, ebx
mov ecx, edx
cmp ecx, 0xa1
ja case.0x4163ac.98
xchg dword [edx], esp
add dword [eax], eax
add byte [edi], cl
mov dh, 0x81
xor byte [ebp + 0x41], ah
add bh, bh
jmp dword [eax*4 + 0x4164d0]
movzx eax, byte [ecx + 0x416530]
jmp dword [eax*4 + 0x4164d0]
inc edi
add esi, 4
mov dword [ebp - 4], edi
cmp dword [ebp - 0xc], 0
je 0x416392
mov ax, word [esi - 2]
mov ecx, 0xfc00
add ah, bh
add byte [eax], al
and ax, cx
mov ecx, 0xd800
cmp ax, cx
jne 0x416392
jmp case.0x416454.98
mov eax, dword [ebp - 0x14]
test eax, eax
jns 0x416434
mov eax, edi
mov dword [ebp - 0x14], eax
push 0x77
pop ecx
cmp dx, cx
je 0x41643d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 0x70
je 0x450e72
add esi, 0x22
movzx eax, word [esi]
add eax, 0xffffff9e
cmp eax, 0xb
jbe 0x41644d
inc edi
mov dword [ebp - 4], edi
jmp 0x416392
movzx eax, byte [ebx + 0x4a5470]
push 0x77
pop edi
lea esi, [esi + eax*2]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], di
je 0x41641d
mov edi, dword [ebp - 4]
add esi, 4
jmp 0x416392
cmp edi, eax
jge 0x4163e4
jmp 0x450daf
xor edi, edi
add esi, 4
and dword [ebp - 0x10], edi
mov dword [ebp - 4], edi
jmp 0x416392
movzx eax, byte [eax + 0x4165e0]
jmp dword [eax*4 + 0x4165d4]
push dword [ebp + 0x10]
mov ecx, dword [ebp - 8]
mov edx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0041633c
add esp, 0xc
test eax, eax
js 0x4163ec
add edi, eax
push 0x77
mov dword [ebp - 4], edi
pop edi
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], di
jne 0x416429
jmp 0x416481
movzx eax, word [esi + 2]
push 0x10
pop edx
cmp ax, dx
je 0x4164ba
push 0xf
pop edx
cmp ax, dx
je 0x4164ba
movzx eax, byte [ecx + 0x4a5470]
lea esi, [esi + eax*2]
jmp 0x416392
invalid
push 0x77
pop edi
jmp 0x450dbe
add eax, dword [eax]
add esi, 4
jmp case.0x4163ac.3
or eax, 0xffffffff
jmp 0x4163ec
push 0xfffffffffffffffd
jmp 0x451041
call dword [0xe848f680]
push eax
call dword [0xe848f658]
jmp 0x4160a1
push es
mov dword [edi], 0x4b9d58
je 0x416469
test byte [esi + edx*2 + 0x708dfffc], dh
add al, 0xe9
jecxz 0x450e10
lea esi, [eax + 4]
jmp 0x97c063a0
jnp 0x450d54
add bh, byte [ebp - 0x10]
jge 0x450db0
add byte [edi], cl
test dword [ebx], ebp
push esi
inc eax
or ch, cl
and dword [esi - 4], edx
dec dword [edi]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], di
je 0x450dcc
mov bh, 0x46
add cl, byte [ebp + 0x39664634]
je 0x450dcc
mov edi, dword [ebp - 4]
movzx eax, word [esi]
mov bh, 6
mov bh, 6
movzx eax, byte [eax + 0x4a5470]
jmp 0x4164b8
je 0x450e06
push 2
jmp 0x450e08
push 4
pop eax
jmp 0x4164b8
movzx eax, word [esi + 2]
add edi, eax
inc esi
add al, byte [ebx]
clc
add esi, 6
jmp 0x4163c5
je 0x450e3d
xor eax, eax
jmp 0x450e40
push 2
pop eax
lea esi, [esi + eax*2]
jmp 0x450e4e
add al, byte [ebx]
clc
mov dword [ebp - 4], edi
cld
add esi, 6
jmp 0x97c063a0
jge 0x450e4d
add byte [edi], cl
test dword [ebp + 0x56], ebp
inc eax
or ch, cl
xor al, 0x55
cld
dec dword [edi]
mov bh, 0x46
add al, 0x6a
adc byte [ebx + 0x66], bl
cmp eax, ebx
je 0xa8564c8
push esi
inc eax
or ch, byte [edx + 0xf]
push 0xf
pop ebx
cmp ax, bx
jmp 0x4164af
cld
invalid
cld
dec dword [edi]
mov bh, 0x46
add cl, byte [ebp - 0x7e16b9cc]
push ebp
cld
push edi
inc ebp
or al, 0
aam 0
add dh, byte [ebp + 0x63]
mov ebx, dword [ebp - 8]
movzx ecx, word [esi + 2]
movzx edx, word [esi + 4]
movzx eax, word [ebx + 0x24]
imul ecx, eax
movzx eax, word [ebx + 0x22]
add ecx, eax
lea ecx, [ebx + ecx*2]
mov ebx, 0x49e856ce
jmp 0x450f2c
movzx eax, word [ecx]
dec edx
and dword [edx + 2], edi
mov dword [ebp - 0x1c], edx
add al, 0x8b
add al, 0x50
call fcn.0048d851
mov edx, eax
pop ecx
mov ecx, edx
mov eax, dword [edi + ecx]
test byte [esi + 1], dh
mov dword [esi], eax
push 0x77
pop edi
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
cmp word [ecx], di
je 0x450eda
mov edi, dword [ebp - 4]
cmp esi, edx
jbe 0x450f02
cmp esi, ecx
jae 0x450f02
mov dword [ebp - 0x10], 0x16afffc
xor ebx, ebx
add esi, 6
jmp 0x1af0f83
and al, 0x75
adc byte [eax - 0x1b], dl
lodsb al, byte [esi]
mov dword [eax - 0x59], ebx
cld
inc dword [ebx - 0x3abc838]
push 2
push esi
call 0x2c2d255
mov ebx, eax
mov eax, dword [ebp - 8]
call 0x55d0f771
in al, 0xf
mov bh, 0x40
inc eax
inc eax
and al, 0x8d
or al, 0x41
mov dword [ebp - 0x18], ecx
test edx, edx
jg 0x450eb7
jmp 0x450efa
add esi, dword [ebx]
rol byte [eax + 0xf], 0xaf
ret
add byte [eax], al
mov eax, dword [ebp - 0x10]
cld
jmp [edx + 1]
mov dh, 0x81
jo 0x451082
dec edx
add byte [ebp - 0x6f16b9cc], cl
push ebx
cld
dec dword [edi]
mov bh, 0x46
add cl, byte [edi]
mov dh, 0x89
jo 0x451095
dec edx
add byte [ebx], al
enter 0x348d, 0x4e
jmp 0x4163a0
push esi
cld
add bh, byte [ecx]
push ebp
or al, 0xf
invalid
dec dword [edi]
mov bh, 0x4e
add al, 0x33
rol byte [edx - 0x7d], cl