Function at 0x42e138
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, eax
add esp, 0xffffffe8
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
test edi, edi
jne 0x42dffa
mov ebx, dword [esp + 0x10]
mov eax, ebp
call dword [ebx + 0xc]
test eax, eax
jne 0x42dfed
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
xor eax, eax
dec edi
mov al, byte [esi]
inc esi
shl eax, 8
test edi, edi
mov dword [esp], eax
jne 0x42e02b
mov ebx, dword [esp + 0x10]
mov eax, ebp
call dword [ebx + 0xc]
test eax, eax
jne 0x42e01e
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
dec edi
xor eax, eax
mov al, byte [esi]
add dword [esp], eax
inc esi
sub dword [esp], 2
cmp dword [esp], 0
jle 0x42e222
test edi, edi
jne 0x42e067
mov ebx, dword [esp + 0x10]
mov eax, ebp
call dword [ebx + 0xc]
test eax, eax
jne 0x42e05a
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
xor ebx, ebx
dec edi
mov bl, byte [esi]
inc esi
mov eax, ebx
sar eax, 4
and ebx, 0xf
mov dword [esp + 8], eax
mov eax, dword [ebp]
mov dword [eax + 0x14], 0x51
mov dword [eax + 0x18], ebx
mov edx, dword [esp + 8]
mov dword [eax + 0x1c], edx
mov eax, ebp
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 4]
cmp ebx, 4
jl 0x42e0b1
mov eax, dword [ebp]
mov dword [eax + 0x14], 0x1f
mov dword [eax + 0x18], ebx
mov eax, ebp
mov edx, dword [eax]
call dword [edx]
cmp dword [ebp + ebx*4 + 0xa4], 0
jne 0x42e0c9
mov eax, ebp
call fcn.0042f45c
mov dword [ebp + ebx*4 + 0xa4], eax
mov edx, dword [ebp + ebx*4 + 0xa4]
xor ecx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x14], 0x44715c
cmp dword [esp + 8], 0
je 0x42e146
test edi, edi
jne 0x42e10e
mov ebx, dword [esp + 0x10]
mov eax, ebp
call dword [ebx + 0xc]
test eax, eax
jne 0x42e101
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
dec edi
xor ebx, ebx
mov bl, byte [esi]
shl ebx, 8
inc esi
test edi, edi
jne 0x42e13c
mov esi, dword [esp + 0x10]
mov eax, ebp
call dword [esi + 0xc]
test eax, eax
jne 0x42e12f
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
dec edi
xor eax, eax
mov al, byte [esi]
add ebx, eax
inc esi
jmp 0x42e171
test edi, edi
jne 0x42e16b
mov ebx, dword [esp + 0x10]
mov eax, ebp
call dword [ebx + 0xc]
test eax, eax
jne 0x42e15e
xor eax, eax
jmp 0x42e24a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov esi, dword [edx]
dec edi
xor ebx, ebx
mov bl, byte [esi]
inc esi
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov ecx, dword [esp + 0xc]
mov word [ecx + edx*2], bx
inc dword [esp + 4]
add dword [esp + 0x14], 4
cmp dword [esp + 4], 0x40
jl 0x42e0e2
mov eax, dword [ebp]
cmp dword [eax + 0x68], 2
jl 0x42e209
xor edx, edx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xc]
mov ebx, ecx
mov eax, dword [ebp]
add eax, 0x18
movzx edx, word [ebx]
mov dword [eax], edx
movzx ecx, word [ebx + 2]
mov dword [eax + 4], ecx
movzx edx, word [ebx + 4]
mov dword [eax + 8], edx
movzx ecx, word [ebx + 6]
mov dword [eax + 0xc], ecx
movzx edx, word [ebx + 8]
mov dword [eax + 0x10], edx
movzx ecx, word [ebx + 0xa]
mov dword [eax + 0x14], ecx
movzx edx, word [ebx + 0xc]
mov dword [eax + 0x18], edx
movzx ecx, word [ebx + 0xe]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp]
mov dword [eax + 0x14], 0x5d
mov edx, 2
mov eax, ebp
mov ecx, dword [eax]
call dword [ecx + 4]
add dword [esp + 4], 8
add ebx, 0x10
cmp dword [esp + 4], 0x40
jl 0x42e1a8
sub dword [esp], 0x41
cmp dword [esp + 8], 0
je 0x42e218
sub dword [esp], 0x40
cmp dword [esp], 0
jg 0x42e042
cmp dword [esp], 0
je 0x42e238
mov eax, dword [ebp]
mov dword [eax + 0x14], 0xb
mov eax, ebp
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x10]
mov dword [ecx], esi
mov eax, dword [esp + 0x10]
mov dword [eax + 4], edi
mov eax, 1
add esp, 0x18
pop ebp
pop edi
pop esi
pop ebx
ret