Function at 0x426ed0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push edi
mov edi, dword [0x5adec0]
shl esi, 7
add esi, edi
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x14], 0
mov ax, word [esi + 0x34]
movsx ecx, byte [esi + 0x3c]
mov edx, dword [eax*8 + 0x55f464]
xor eax, eax
mov ax, word [edx + ecx*2]
lea ebx, [eax + eax*2]
xor eax, eax
shl ebx, 3
mov dword [esp + 0x18], ebx
mov ax, word [ebx + 0x52a282]
mov bp, word [ebx + 0x52a280]
sub eax, 4
sub ebp, 4
shl eax, 0xf
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
shl ebp, 0xf
test eax, eax
jge 0x426f61
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
sub ecx, ebp
push eax
push ecx
call fcn.004288a0
add esp, 8
test eax, eax
jne 0x427078
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
add eax, 0xffffa000
jmp 0x426f8f
jle 0x427078
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov eax, ebp
push edx
add eax, ecx
push eax
call fcn.004288a0
add esp, 8
test eax, eax
jne 0x427078
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
add eax, 0x6000
mov edx, eax
mov dword [esp + 0x10], eax
test edx, edx
je 0x427078
mov eax, dword [0x620318]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jle 0x427063
mov edx, dword [0x5adec0]
lea edi, [edx + 0x8c]
mov eax, dword [edi - 0xc]
cmp eax, 0x405450
je 0x426fde
cmp eax, 0x406520
je 0x426fde
cmp eax, 0x4068a0
je 0x426fde
cmp eax, 0x405290
jne 0x427043
cmp ecx, dword [esp + 0x2c]
je 0x427043
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi]
mov edx, ebx
lea ecx, [eax + eax*2]
sub edx, dword [esp + 0x10]
shl ecx, 3
xor eax, eax
mov ax, word [ecx + 0x52a280]
sub eax, 4
shl eax, 0xf
add eax, ebp
test edx, edx
jg 0x427010
mov edx, dword [esp + 0x10]
sub edx, ebx
cmp edx, eax
jge 0x42703f
mov ebx, dword [edi + 4]
xor eax, eax
mov ax, word [ecx + 0x52a282]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x10]
sub eax, 4
shl eax, 0xf
add eax, ecx
mov ecx, ebx
sub ecx, edx
test ecx, ecx
jg 0x42703b
sub edx, ebx
mov ecx, edx
cmp ecx, eax
jl 0x427074
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x620318]
inc ecx
add edi, 0x80
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x426fbf
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, edx
sub eax, ecx
mov dword [esi + 0xc], edx
mov dword [esp + 0x14], eax
jmp 0x427078
mov ebx, dword [esp + 0x18]
movsx edi, word [ebx + 0x52a28a]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
xor eax, eax
sub edx, ebp
mov ax, word [ebx + 0x52a282]
add edi, eax
shl edi, 0x10
add ecx, edi
push ecx
push edx
call fcn.004288a0
mov edx, dword [esi + 0xc]
mov ebx, eax
mov eax, dword [esi + 0x10]
mov ecx, ebp
add eax, edi
add ecx, edx
push eax
push ecx
call fcn.004288a0
add esp, 0x10
test ebx, ebx
jne 0x4270ce
test eax, eax
jne 0x4270ce
mov eax, dword [esp + 0x14]
mov byte [esi + 0x41], 0x13
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov ecx, dword [0x62bdd0]
mov dl, cl
sub cl, 0x2c
add dl, 4
and ecx, 0xff
and edx, 0xff
mov ecx, dword [ecx + 0x62c040]
mov dword [0x62bdd0], edx
xor dword [edx + 0x62c040], ecx
test cl, 0xf
jne 0x427148
mov ecx, dword [esp + 0x30]
test ecx, ecx
jge 0x427124
test eax, eax
je 0x427122
mov eax, dword [0x55f280]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
add eax, 0x48
add ecx, edi
push eax
add ebp, edx
push ecx
push ebp
jmp 0x427140
test ecx, ecx
jle 0x427148
test ebx, ebx
je 0x427148
mov edx, dword [0x55f280]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
add edx, 0x48
add eax, edi
push edx
sub ecx, ebp
push eax
push ecx
call fcn.00427170
add esp, 0xc
mov al, byte [esi + 0x3a]
test al, al
je 0x42715f
mov eax, dword [esp + 0x14]
mov byte [esi + 0x41], 0x17
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x14]
mov byte [esi + 0x41], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret