Function at 0x506708
Capabilities:
Encrypt data using rc4 prga

Disassembly:
and al, byte [0x11993]
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], cl
lodsd eax, dword [esi]
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460d21
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, dh
lodsb al, byte [esi]
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x31993
add byte [eax], al
movsb byte es:[edi], byte [esi]
lodsb al, byte [esi]
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
shr byte [ebp + 0x2000], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x21993]
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x21993
add byte [eax], al
call 0x4632e2
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add al, bh
scasd eax, dword es:[edi]
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x21993
add byte [eax], al
mov al, 0xaf
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add al, al
scasd eax, dword es:[edi]
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x51993
add byte [eax], al
cmp al, 0xaf
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [edi], al
add byte [eax], al
add byte [eax - 0x51], ch
and eax, 0xa000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4c], al
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460e11
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], ch
mov ah, 0x25
add byte [eax], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4c], dh
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460e61
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4c], bl
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x25b4], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460eb1
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x200025b4], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, dl
mov ah, 0x25
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460f01
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x200025b4], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4a], ah
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460f51
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4a], cl
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x25b6], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x460fa1
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x4a], bh
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
int3
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x25b8], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
js 0x461019
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x200025b8], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x31993
add byte [eax], al
aam 0xb8
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
invalid
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
push eax
aaa
and al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
cmp byte [edx + 0x25], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x11993]
add byte [eax], al
jo 0x461087
and al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
and byte [edx + 0x200025], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x31993]
add byte [eax], al
pop eax
mov edx, 0x25
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
jo 0x461042
mov edx, 0x200025
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x11993]
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
cwde
inc ecx
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, ch
mov edx, 0x25
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x11993]
add byte [eax], al
js 0x461109
and eax, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, dl
mov edx, 0x200025
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x11993]
add byte [eax], al
mov eax, 0x25bb
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], al
add byte [eax], al
add al, al
mov ebx, 0x580025
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, byte [0x21993]
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x21993
add byte [eax], al
pushal
mov esp, 0x25
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
jo 0x4610e4
and eax, 0x2000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
add eax, 0x11993
add byte [eax], al
int3
mov ecx, 0xc
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx + eax]
test eax, eax
jne 0x5065a7
jmp 0x5065b1
call 0x5eb876
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x506227
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], 0x40115c
mov dword [ecx], eax
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x5061bb
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], 0x40115c
mov dword [ecx], eax
jmp 0x506749
mov eax, dword [ebx + 0x4c]
xor edx, edx
mov dword [ebp - 0x18], edx
cmp dword [eax + 8], edx
jg 0x506197
cmp byte [ebx + 0x81], 2
je 0x50675d
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x5061e6
lea esp, [esp]
jmp 0x5061bb
mov dword [ebp - 0x30], 0x40115c
lea ecx, [eax + 0x628]
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x28], ecx
mov dword [ecx], eax
mov byte [ebp - 4], 2
mov dword [ebp - 0x30], 0x403798
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 3
mov eax, dword [esi]
and eax, 0xff
lea ecx, [eax - 3]
cmp ecx, 9
ja case.default.0x506266
jmp dword [ecx*4 + 0x44cc98]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov dword [ebp - 0x40], 0x40115c
lea ecx, [eax + 0x628]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x38], ecx
mov dword [ecx], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x40], 0x403798
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], 1
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x506516
cmp byte [eax], 4
jne 0x5061b6
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x506527
cmp byte [ecx], 4
je 0x506539
call 0x5eb876
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x506539
mov eax, dword [ecx]
call dword [eax]
mov esi, eax
mov dword [ebp + 8], eax
jmp 0x50653e
xor esi, esi
mov dword [ebp + 8], esi
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x50654f
push eax
push ebx
push esi
mov ecx, edi
call fcn.005060f7
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x14], 0
cmp dword [eax + 8], 0
jle 0x506201
mov ecx, 0xc
mov dword [ebp - 0x18], ecx
lea esp, [esp]
mov eax, dword [ecx + eax]
test eax, eax
je 0x50657f
cmp dword [eax + 4], 0
jne 0x5061b6
push eax
push ebx
push esi
mov ecx, edi
call fcn.005060f7
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
inc edx
mov ecx, dword [ebp - 0x18]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], ecx
cmp edx, dword [eax + 8]
jge 0x506201
jmp 0x50656e
cmp dword [eax + 4], 0x11
jne 0x5061b6
mov eax, dword [eax + 0x18]
xor edi, edi
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x20], eax
cmp dword [eax + 8], edi
jle 0x5065e4
lea esi, [eax + 0xc]
push dword [esi]
mov ecx, dword [ebp - 0x1c]
push ebx
push dword [ebp + 8]
call fcn.005060f7
mov eax, dword [ebp - 0x20]
lea esi, [esi + 4]
inc edi
cmp edi, dword [eax + 8]
jl 0x5065c4
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x4c]
inc edx
add ecx, 4
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
cmp edx, dword [eax + 8]
jl 0x50619f
mov edi, dword [ebp - 0x1c]
jmp 0x50620e
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cc2e8
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x5dd040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x84]
shr eax, 9
test al, 1
jne 0x5064cd
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
push ebx
mov ecx, eax
call 0x4ca954
push eax
push ebx
push dword [ebp + 8]
mov ecx, edi
call fcn.00506153
jmp 0x50621b