Function at 0x5827e2
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, dword [ebp - 0x3d4]
add eax, 1
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [ebp - 0x3d4]
cmp edx, dword [ecx + 0x18]
jae 0x58256b
mov eax, dword [ebp - 0x3d4]
mov ecx, dword [ebp - 0xe38]
mov edx, dword [ebp - 0x1b4]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x3d8], edx
mov eax, dword [ebp - 0x3d4]
mov ecx, dword [ebp - 0xe3c]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0xe40]
mov ecx, dword [ebp - 0x1b4]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0xe44], ecx
mov dword [ebp - 0xcc], 0
jmp 0x5823cf
mov edx, dword [ebp - 0xcc]
add edx, 1
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0x3d8]
add eax, dword [ebp - 0xcc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x582481
mov edx, dword [ebp - 0xcc]
movsx eax, byte [ebp + edx - 0x4c0]
test eax, eax
je 0x582481
push ebx
push eax
add esp, 4
xor ebx, 0xd519
xor ebx, 0xeaf9
and ebx, 0x12d6b
pop ebx
push ebx
or ebx, 0xaaad
call 0x58242a
add byte [esi + 0x45], al
inc ebp
dec edi
xor eax, 0x3643473c
add esp, 4
pop ebx
mov ecx, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0xcc]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0xcc]
movsx ecx, byte [ebp + eax - 0x4c0]
cmp edx, ecx
je 0x582473
mov edx, dword [ebp - 0x3d8]
add edx, dword [ebp - 0xcc]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0xcc]
movsx edx, byte [ebp + ecx - 0x4c0]
cmp eax, edx
jne 0x58247a
jmp 0x5823c0
jmp 0x582481
push eax
push edi
add esp, 4
xor eax, 0xfa3b
jmp 0x582492
xor eax, 0xb4da
pop eax
push ebx
push eax
add esp, 4
or ebx, 0x15ea5
and ebx, 0xc863
pop ebx
push ebx
add ebx, 0x74cc
pop ebx
mov eax, dword [ebp - 0x3d8]
add eax, dword [ebp - 0xcc]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0xcc]
movsx eax, byte [ebp + edx - 0x4c0]
cmp ecx, eax
jne 0x5824e0
mov dword [ebp - 0x6c0], 0
jmp 0x58254f
push edx
push edi
add esp, 4
sub edx, 0x18641
sub edx, 0x4106
pop edx
push edi
sub edi, 0xddd4
add edi, 0x13c01
and edi, 0x7f79
pop edi
push ecx
push ecx
add esp, 4
add ecx, 0x16419
pop ecx
mov ecx, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0xcc]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0xcc]
movsx ecx, byte [ebp + eax - 0x4c0]
or ecx, 0x20
cmp edx, ecx
jge 0x582545
mov dword [ebp - 0x6c0], 0xffffffff
jmp 0x58254f
mov dword [ebp - 0x6c0], 1
cmp dword [ebp - 0x6c0], 0
jne 0x582566
mov edx, dword [ebp - 0xe44]
mov dword [ebp - 0x23c], edx
jmp 0x582577
jmp 0x582350
mov eax, dword [ebp - 0x3dc]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0
je 0x582652
push edi
push ebx
add esp, 4
and edi, 0x13428
pop edi
push ebx
sub ebx, 0x8e60
pop ebx
push ecx
push esi
add esp, 4
sub ecx, 0xb9c8
xor ecx, 0xae09
or ecx, 0xf4b0
or ecx, 0x162fb
pop ecx
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0xe48], ecx
push ecx
push ebx
add esp, 4
sub ecx, 0x156a5
pop ecx
push ecx
and ecx, 0x541f
xor ecx, 0x63b4
call 0x5825ea
add byte [ecx + 0x35], cl
inc eax
cmp eax, dword [eax + 0x37]
inc ecx
cmp dword [ebx - 0x167efb3c], eax
xchg ebp, eax
mov dword [0x8b590000], eax
xchg ebp, eax
mov eax, 0x89fffff1
xchg ebp, eax
mov ah, 0xf1
invalid
push ebx
push esi
add esp, 4
sub ebx, 0x11203
xor ebx, 0xe79b
and ebx, 0x16d3c
pop ebx
push ecx
jmp 0x582671
xor ecx, 0x16e0b
add ecx, 0x10a8f
add ecx, 0xf466
pop ecx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0xe50], ecx
mov edx, dword [ebp - 0xe50]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xe54], eax
mov ecx, dword [ebp - 0xe54]
mov dword [ebp - 0xb78], ecx
push edx
push eax
add esp, 4
xor edx, 0x124a8
and edx, 0x6ddd
or edx, 0xad0a
pop edx
push ecx
and ecx, 0x16efc
sub ecx, 0x149e2
add ecx, 0xfa2e
xor ecx, 0xf27b
pop ecx
cmp dword [ebp - 0xb78], 0
jne 0x5826f6
mov dword [ebp - 0x188], 0
jmp 0x58299d
mov edx, dword [ebp - 0xb78]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x6cc], ecx
push ecx
call 0x582718
add byte [edi + 0x3e], cl
inc esi
dec ecx
cmp cl, byte [edi + 0x3a]
cmp eax, 0x4c4833d
pop ecx
push ecx
push eax
add esp, 4
xor ecx, 0x14d0a
sub ecx, 0x11f83
xor ecx, 0x45bc
sub ecx, 0x741e
pop ecx
cmp dword [ebp - 0x6cc], 0
jne 0x582752
mov dword [ebp - 0x188], 0
jmp 0x58299d
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x254], edx
push esi
push edx
add esp, 4
or esi, 0x7d3b
or esi, 0x1398b
sub esi, 0x36c4
pop esi
push ecx
or ecx, 0x15567
call 0x58278c
add byte [eax], bh
cmp byte [edi + 0x44], cl
inc esp
cmp eax, 0x83413339
les eax, [ecx + ebx*2]
lea eax, [ebp - 0xc50]
mov dword [ebp - 0x6c8], eax
mov ecx, dword [ebp - 0x254]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x6c4], edx
xor eax, eax
mov word [ebp - 0x11c], ax
xor ecx, ecx
mov word [ebp - 0x30], cx
push ebx
sub ebx, 0xb25a
pop ebx
push edx
and edx, 0x171b7
jmp 0x5827d2
call 0x5827e2
add byte [edi], bh
aas
inc esp
dec esi
dec ebx
dec ebp
dec edx
inc esp
aas
cmp dword [ebx - 0x3d7efb3c], eax
jo 0x5827f9
add byte [eax], al
pop edx
mov edx, dword [ebp - 0x6c4]
mov ax, word [edx]
mov word [ebp - 0x88a], ax
mov ecx, dword [ebp - 0x6c4]
add ecx, 2
mov dword [ebp - 0x6c4], ecx
mov dx, word [ebp - 0x88a]
mov word [ebp - 0x11c], dx
mov eax, dword [ebp - 0x6c8]
mov cx, word [eax]
mov word [ebp - 0x88c], cx
mov edx, dword [ebp - 0x6c8]
add edx, 2
mov dword [ebp - 0x6c8], edx
mov ax, word [ebp - 0x88c]
mov word [ebp - 0x30], ax
push eax
add eax, 0x1cbf
add eax, 0x1464c
pop eax
push ecx
push ecx
add esp, 4
and ecx, 0x23ec
or ecx, 0x144d6
and ecx, 0x105cc
pop ecx
push ebx
push ebx
add esp, 4
jmp 0x582874
idiv edi
dec dword [ebx - 0x6c373]
inc dword [ebx - 0x7276fd3f]
cmp al, 0xf9
invalid
pop ebx
movzx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x582892
movzx edx, word [ebp - 0x11c]
movzx eax, word [ebp - 0x30]
sub edx, eax
mov dword [ebp - 0xb80], edx
jmp 0x5828ec
invalid
mov bh, 0x8d
in al, 0xfe
invalid