Function at 0x425070
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa10
mov esi, esp
push 0x1000
call fcn.00409060
add esp, 4
mov dword [esi + 0x90], eax
mov dword [esi + 0x600], 0xfb241648
mov dword [esi + 0x604], 0x11e0dded
mov word [esi + 0x608], 0x4d2e
mov dword [esi + 0x60e], 0
mov dword [esi + 0x60a], 0
mov dword [esi + 0x800], 0
mov eax, dword [esi + 0x800]
cmp eax, 0x11
ja 0x42512f
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x800]
mov ecx, dword [esi + 0x800]
movzx ecx, byte [esi + ecx + 0x600]
lea edx, [eax + 0x3d8fe975]
add eax, 0x75
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x1e8], edx
mov eax, dword [esi + 0x1e8]
add al, 0xcd
mov ecx, dword [esi + 0x800]
mov byte [esi + ecx + 0x600], al
inc dword [esi + 0x800]
mov eax, dword [esi + 0x800]
cmp eax, 0x12
jb 0x4250e0
mov eax, dword [str.default]
mov dword [esi + 0x800], 0xaef4e688
mov dword [esi + 0x804], 0x50525b5b
mov dword [esi + 0x808], 0x445a6657
mov dword [esi + 0x80c], 0x55515e56
mov word [esi + 0x810], 0x85a8
mov byte [esi + 0x812], 0xe4
mov dword [esi + 0x813], 0
mov byte [esi + 0x817], 0
mov dword [esi + 0xf8], 0
mov ecx, dword [esi + 0xf8]
cmp ecx, 0x17
ja 0x42520a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xf8]
mov edx, dword [esi + 0xf8]
movzx edi, byte [esi + edx + 0x800]
lea edx, [ecx - 0x734e7643]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0x8cb189bc
mov dword [esi + 0x1e8], ecx
mov ecx, dword [esi + 0x1e8]
mov edx, ecx
or edx, 0xd4
and ecx, 0xd4
add ecx, edx
inc cl
mov edx, dword [esi + 0xf8]
mov byte [esi + edx + 0x800], cl
inc dword [esi + 0xf8]
mov ecx, dword [esi + 0xf8]
cmp ecx, 0x18
jb 0x4251a0
mov ecx, dword [str.VXGDR__l3]
mov dword [esi + 0x1e8], 0xc42617b
mov dword [esi + 0x1ec], 0x2e2a7d09
mov dword [esi + 0x1f0], 0x37785317
mov dword [esi + 0x1f4], 0x23547543
mov dword [esi + 0x1f8], 0x30272619
mov dword [esi + 0x1fc], 0xdee5dc24
mov dword [esi + 0x200], 0x9c72dcdc
mov dword [esi + 0x204], 0xd0ebb18a
mov dword [esi + 0x208], 0x91bdc2d1
mov dword [esi + 0x20c], 0xc4f3bf82
mov dword [esi + 0x210], 0x9bb2c5ca
mov dword [esi + 0x214], 0x97c2faa0
mov dword [esi + 0x218], 0x8190b885
mov dword [esi + 0x21c], 0x5580bf82
mov dword [esi + 0x220], 0x909ca9b9
mov dword [esi + 0x224], 0x47a48f96
mov word [esi + 0x228], 0
mov dword [esi + 0x554], 0
mov edx, dword [esi + 0x554]
cmp edx, 0x41
ja 0x425323
nop
nop
mov edx, dword [esi + 0x554]
mov edi, dword [esi + 0x554]
movzx edi, byte [esi + edi + 0x1e8]
lea ebx, [edx + 0x139eceb]
add edx, 0xeb
and edx, edi
or ebx, edi
sub ebx, edx
mov dword [esi + 0xf8], ebx
mov edx, dword [esi + 0xf8]
add dl, 0x93
mov edi, dword [esi + 0x554]
mov byte [esi + edi + 0x1e8], dl
inc dword [esi + 0x554]
mov edx, dword [esi + 0x554]
cmp edx, 0x42
jb 0x4252d0
movzx edx, byte [esi + 0x1e8]
mov ebx, dword [esi + 0x90]
test dl, dl
je 0x42534b
lea edi, [esi + 0x1e9]
mov ebx, dword [esi + 0x90]
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x425340
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
mov edi, ebx
je 0x42536b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x425360
mov byte [edi], 0
movzx ecx, byte [esi + 0x800]
test cl, cl
je 0x42538b
lea edx, [esi + 0x801]
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x425380
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4253ab
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4253a0
mov byte [edi], 0
movzx eax, byte [esi + 0x600]
test al, al
je 0x4253cb
lea ecx, [esi + 0x601]
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4253c0
mov byte [edi], 0
push 0
call fcn.00438ab0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [ecx*4 + 0x442bdc]
mov ecx, 0x9a7aef48
xor ecx, dword [0x442be4]
add ecx, edx
inc ecx
jmp ecx
mov fs, eax
add byte [eax], al
add byte [ecx - 0x5fa9680f], al
xor ecx, 0x16a05697
xor ecx, 0x16a05697
mov eax, dword [esi + 0x2c8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x443ea0]
xor ecx, 0x2ffef21e
sub eax, ecx
jmp eax