Function at 0x59a2fe
Capabilities:
Encrypt data using rc4 prga

Disassembly:
call 0x59b8bf
lcall 0x786b, 0xd9bdad9b
push edx
lcall 0xd350, 0xba4734cd
dec edx
in eax, 0x8d
lea esp, [esp + 4]
push ebp
rol edx, 1
jmp 0x558fff
mov ch, 0x70
mov ecx, dword [ebp + 8]
jmp 0x59a2bf
pop edi
jmp 0x59b900
push edx
jmp 0x55904e
mov cx, si
mov ebp, esp
mov dl, 0x3f
setno dh
lea ecx, [eax + ecx]
jmp 0x558fe9
mov edx, esi
mov ecx, dword [edx]
pop edx
bswap edx
sub edx, 0xd0557eb0
call fcn.00559038
movsd dword es:[edi], dword [esi]
jmp 0x5eceb3
mov cl, byte [ecx]
jmp 0x59a345
push ebx
jmp 0x558fa9
lea esp, [esp + 4]
lea esp, [esp + 2]
je 0x558fd3
jne 0x59a2d5
lea esp, [esp + 4]
inc dword [ebp + 8]
jmp 0x59a31e
lea esp, [esp + 2]
inc eax
call 0x59a2fe
cmp eax, 0x40
pushfd
pop word [esp]
lea esp, [esp + 2]
jmp 0x59a365
xor ecx, ecx
push si
lea esp, [esp + 2]
jmp 0x59a34f
dec edi
stc
mov byte [eax + esi + 0x18], cl
push di
jmp 0x59a314
lea eax, [esi + 0x1a]
jmp 0x558f67
jne 0x558f7d
je 0x59a32c
cli
xchg byte [eax + esi*8 - 3], al
lahf
sbb dword [ecx - 0x499032b1], esp
daa
dec esi
fnstcw word [eax]
shl byte [ecx + 2], cl
pushal
adc al, 0xf2
cld
pop ebx
add byte [ebp - 0x72], dl
mov bl, 0x3c
sar dword [edx - 0x50], 0xfc
lahf
sub eax, 0x95c00ebe
cld
dec dword [ebx + reloc.KERNEL32.dll_HeapFree]
dec esp
pop esi
jbe 0x59a39c
or esp, dword [esi]
push edx
mov ebp, 0x49a75bc
cmpsd dword [esi], dword es:[edi]
xor eax, 0xad4e9c2c
or al, 0x1e
push ds
sbb dword [esi + 0x3759a547], esp
inc ecx
aaa
mov esi, 0xb2f0c5aa
enter 0x41f7, 0xffffffffffffffe4
or dword [eax], esp
fst dword [esi + 0x6d]
xlatb
jp 0x59a3f9
pop esi
div dword [ebp + ebp - 0x45]
dec esp
jle 0x59a40a
out dx, al
jge 0x59a3f1
jg 0x59a3ae
xchg ebx, eax
test eax, 0xfaf6a1e8
dec esp
invalid
mov esi, 0xc513a34c
mov dword [reloc.KERNEL32.dll_HeapFree], eax
sbb dl, byte [eax + 0x444e4444]
nop
sbb eax, 0x4444901a
dec esi
inc esp
retf
push ebx
pop eax
stc
push ss
cmp dword [ebx + reloc.KERNEL32.dll_HeapFree], ecx
sbb eax, 0xaeefbbab
pop eax
out 0x76, eax
iretd
leave
ret
inc esp
sbb al, 0x42
pop ebp
imul edx, dword [edi - 0x45], 0x6f7477f2
push edi
mov ebx, 0x6f7477f2
leave
outsd dx, dword [esi]
mov dword [reloc.KERNEL32.dll_HeapFree], eax
push edi
jbe 0x5ecdb4
stosd dword es:[edi], eax
xchg esi, edi
push eax
push ss
push cs
and cl, byte [ecx + 0x55]
scasd eax, dword es:[edi]
inc edx
in al, 0x93
nop
push ecx
mov esi, dword [edi]
push ebx
add ch, byte [eax - 0x73]
mov dword [ecx - reloc.KERNEL32.dll_HeapFree], 0xb6527a28
mov dl, 0xd9
loopne 0x5ecdae
stc
invalid
mov al, 0x6a
aam 0x38
daa
call 0xe4b69aeb
loope 0x5ece60
wait
or cx, word gs:[ebx + 0x7a]
lodsb al, byte [esi]
call fcn.005f1170
invalid
daa
div eax
xchg ebp, eax
aad 4
lock or cl, byte ss:[esi + 0x6e1c9d4d]
sbb al, 0x6e
xor al, 0x83
jne 0x5ecdb4
jbe 0x5ece12
and eax, 0x4d7376c7
test eax, 0xb38c7a81
enter 0xffffffffffffd3dd, 0xffffffffffffffa9
push ebp
scasd eax, dword es:[edi]
mov ah, 0x30
loop 0x5ece34
adc eax, 0xbfac5d22
dec ebp
jae 0x5ecded
cmpsd dword [esi], dword es:[edi]
adc dword [esi - 0x5e], ebx
xchg edx, eax
invalid
mov al, 0x9d
xor byte [eax - 0x5d], ch
jl 0x5ece06
push 0x5ca27ca3
pop esp
xchg edi, eax
dec esp
xchg ebp, eax
sub edi, ebp
adc al, byte [eax + 0x4e05fb19]
add ebp, dword [eax - reloc.KERNEL32.dll_HeapFree]
xchg edi, eax
sub dl, byte [eax - 0x46]
das
push edx
int1
inc esp
fnstsw word [edi + 0x1cb6d70a]
mov ebp, dword [eax + 0x20]
loopne 0x5eced6
dec edi
and al, byte [edi + 0x25]
xchg byte [ecx], dh
xor byte [ebx], dh
push 0x10095f31
call fcn.00565bfd
bound edi, qword [eax - 0x36]
invalid
push 0xa8d451a1
call fcn.00567c60
mov bl, 0x79
jl 0x5ece5d
pushal
stc
invalid
add al, 0x61
invalid