Function at 0x41ce80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x14]
movzx edx, byte [eax + 0x481]
movzx ecx, dl
cmp ecx, 6
ja case.0x41cf18.0
jmp dword [ecx*4 + 0x41ceb3]
movzx eax, byte [eax + 0x480]
sub al, 8
je 0x41cee3
sub al, 8
je 0x41cef2
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cb50
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cba4
jmp case.0x41cf18.0
movzx eax, byte [eax + 0x480]
cmp eax, 0x10
ja case.0x41cf18.0
movzx eax, byte [eax + 0x41cf1f]
jmp dword [eax*4 + 0x41cf30]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cc44
jmp case.0x41cf18.0
cmp dl, 3
jne 0x41cf63
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cc98
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cc54
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41ccdc
jmp case.0x41cf18.0
cmp word [eax + 0x37], 0x18
je 0x41cf9a
mov ecx, 0x41d114
mov dl, 1
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_Exception_]
call fcn.004079d8
call sub.rtl120.bpl__System__RaiseExcept_qqrv
jmp case.0x41cf18.0
movzx eax, byte [eax + 0x480]
sub al, 8
je 0x41cfab
sub al, 8
je 0x41cfb7
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cd08
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41cd6c
jmp case.0x41cf18.0
movzx eax, byte [eax + 0x480]
sub al, 8
je 0x41cfd4
sub al, 8
je 0x41cfe0
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41ce1c
jmp case.0x41cf18.0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x41ce44
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + 0x45c]
test edx, edx
je 0x41cffc
mov dword [ebp - 0xc], edx
jmp 0x41d001
xor edx, edx
mov dword [ebp - 0xc], edx
mov edx, dword [eax + 0x46c]
mov dword [ebp - 8], edx
mov edx, dword [eax + 0x454]
test edx, edx
je 0x41d018
mov esi, edx
jmp 0x41d01a
xor esi, esi
mov eax, dword [ebx + 0x1c]
dec eax
test eax, eax
jl 0x41d0fe
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x20]
inc eax
push eax
lea eax, [ebx + 0x4c]
push eax
mov eax, dword [ebp + 8]
push eax
movzx eax, byte [ebx + 0x48]
mov ecx, dword [ebx + eax*4 + 0x40]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0041beb8
sub eax, 0xffffffff
je 0x41d056
dec eax
jne 0x41d0ab
jmp 0x41d0fe
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + 0xc]
mov edx, dword [edx + 0x164]
imul edx, dword [ebx + 0x1c]
mov eax, dword [eax + 0x45c]
call fcn.00402094
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x46c]
test eax, eax
je 0x41d08a
mov edx, dword [ebx + 0x18]
imul edx, dword [ebx + 0x1c]
call fcn.00402094
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 0x454]
test eax, eax
je 0x41d0fe
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x164]
imul edx, dword [ebx + 0x1c]
call fcn.00402094
jmp 0x41d0fe
mov eax, ebx
call fcn.0041d130
mov eax, dword [ebp - 8]
push eax
push esi
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
lea edx, [eax + 1]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
call dword [ebp - 0x18]
movzx eax, byte [ebx + 0x48]
xor al, 1
mov byte [ebx + 0x48], al
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x164]
add dword [ebp - 0xc], eax
test esi, esi
je 0x41d0e9
add esi, eax
cmp dword [ebp - 8], 0
je 0x41d0f5
mov eax, dword [ebx + 0x18]
add dword [ebp - 8], eax
dec dword [ebp - 0x1c]
jne 0x41d02a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8