Function at 0x426d60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x14
mov edx, dword [0x58a8a0]
push ebx
mov ebx, dword [esp + 0x1c]
xor eax, eax
shl ebx, 7
add ebx, edx
push ebp
push esi
push edi
mov ax, word [ebx + 0x34]
xor ebp, ebp
movsx ecx, byte [ebx + 0x3c]
mov edx, dword [eax*8 + 0x54f9c4]
xor eax, eax
xor esi, esi
mov ax, word [edx + ecx*2]
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], esi
lea edi, [eax + eax*2]
xor eax, eax
shl edi, 3
mov dword [esp + 0x18], edi
mov ax, word [edi + 0x529e42]
mov bp, word [edi + 0x529e40]
sub eax, 4
sub ebp, 4
shl eax, 0xf
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
shl ebp, 0xf
cmp eax, esi
jge 0x426deb
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, ebp
push eax
push ecx
call fcn.00428740
add esp, 8
test eax, eax
jne 0x426e11
mov eax, dword [ebx + 0xc]
sub eax, 0x6000
jmp 0x426e0d
jle 0x426e11
mov edx, dword [ebx + 0x10]
mov eax, ebp
push edx
mov edx, dword [ebx + 0xc]
add eax, edx
push eax
call fcn.00428740
add esp, 8
test eax, eax
jne 0x426e11
mov eax, dword [ebx + 0xc]
add eax, 0x6000
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], esi
je 0x426f01
mov eax, dword [0x5fccf8]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x14], ecx
jle 0x426eeb
mov edx, dword [0x58a8a0]
lea esi, [edx + 0x8c]
mov eax, dword [esi - 0xc]
cmp eax, 0x4054c0
je 0x426e5c
cmp eax, 0x4065d0
je 0x426e5c
cmp eax, 0x406990
je 0x426e5c
cmp eax, 0x4052f0
jne 0x426ec5
cmp ecx, dword [esp + 0x28]
je 0x426ec5
mov eax, dword [esi + 0x1c]
mov edi, dword [esi]
mov edx, edi
lea ecx, [eax + eax*2]
sub edx, dword [esp + 0x10]
shl ecx, 3
xor eax, eax
mov ax, word [ecx + 0x529e40]
sub eax, 4
shl eax, 0xf
add eax, ebp
test edx, edx
jg 0x426e8e
mov edx, dword [esp + 0x10]
sub edx, edi
cmp edx, eax
jge 0x426ebd
mov edi, dword [esi + 4]
xor eax, eax
mov ax, word [ecx + 0x529e42]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x10]
sub eax, 4
shl eax, 0xf
add eax, ecx
mov ecx, edi
sub ecx, edx
test ecx, ecx
jg 0x426eb9
sub edx, edi
mov ecx, edx
cmp ecx, eax
jl 0x426edf
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [0x5fccf8]
inc ecx
add esi, 0x80
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x426e3d
jmp 0x426eeb
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x426f01
mov edx, dword [ebx + 0xc]
mov eax, ecx
sub eax, edx
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x1c], eax
movsx esi, word [edi + 0x529e4a]
xor eax, eax
mov edx, dword [ebx + 0xc]
mov ax, word [edi + 0x529e42]
mov edi, dword [ebx + 0x10]
add esi, eax
sub edx, ebp
shl esi, 0x10
mov ecx, esi
add ecx, edi
push ecx
push edx
call fcn.00428740
mov edx, dword [ebx + 0x10]
mov edi, eax
mov eax, esi
add esp, 8
add eax, edx
mov edx, dword [ebx + 0xc]
mov ecx, ebp
push eax
add ecx, edx
push ecx
call fcn.00428740
add esp, 8
test edi, edi
jne 0x426f5e
test eax, eax
jne 0x426f5e
mov byte [ebx + 0x41], 0x13
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, dword [0x6087b0]
mov dl, cl
sub cl, 0x2c
add dl, 4
and ecx, 0xff
and edx, 0xff
mov ecx, dword [ecx + 0x608a20]
mov dword [0x6087b0], edx
xor dword [edx + 0x608a20], ecx
test cl, 0xf
jne 0x426fd8
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jge 0x426fb4
test eax, eax
je 0x426fb2
mov eax, dword [0x54f800]
mov edx, dword [ebx + 0xc]
add eax, 0x48
push eax
mov eax, dword [ebx + 0x10]
add esi, eax
add ebp, edx
push esi
push ebp
jmp 0x426fd0
test ecx, ecx
jle 0x426fd8
test edi, edi
je 0x426fd8
mov ecx, dword [0x54f800]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
add ecx, 0x48
add esi, eax
push ecx
sub edx, ebp
push esi
push edx
call fcn.00427000
add esp, 0xc
mov al, byte [ebx + 0x3a]
test al, al
je 0x426fef
mov byte [ebx + 0x41], 0x17
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov byte [ebx + 0x41], 1
pop ebp
pop ebx
add esp, 0x14
ret