Function at 0x436ca0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
jmp 0x438db8
mov eax, 1
mov edi, edi
mov ecx, dword [ebp - 0xc]
movzx ecx, word [ecx + eax*2]
cmp edx, 0x1000000
jae 0x436f61
mov edi, dword [ebp - 4]
cmp dword [ebp + 8], edi
jae 0x43757d
mov edi, dword [ebp + 8]
movzx ebx, byte [edi]
shl esi, 8
or esi, ebx
mov ebx, dword [ebp - 0x14]
shl edx, 8
inc edi
mov dword [ebp + 8], edi
mov edi, edx
shr edi, 0xb
imul edi, ecx
cmp esi, edi
jae 0x438fd9
mov edx, edi
add eax, eax
push 0x437e44
ret
jae 0x43757d
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
je 0x437f88
jne 0x437f88
mov dword [esi + 0x10], 0x111abce0
mov dword [esi], 0x11476550
sbb edx, dword [esp + 0xc]
or al, 0x4a
mov ecx, 0xf8b239a2
mov edi, 0xe2c1cc94
or byte [ebx], cl
jmp 0x4375d8
jb 0x43906d
mov ebx, edi
shr ebx, 1
dec ebx
jmp 0x43743b
sub edx, ecx
je 0x438029
jne 0x438029
cmp esi, 0x10
push 0x103f5014
push 0x6cc3a0
lea esi, [eax + 0x30]
add dword [edx], ebx
jg 0x4371f7
xchg edi, eax
shl dword [0xfd9d8d0], cl
mov dh, 0x5c
or edi, edi
mov eax, dword [edi]
mov ecx, 8
sub cl, al
shr ebx, cl
mov ecx, dword [edi + 4]
push 0x4382b4
ret
mov dword [ebp - 0x14], ebx
push 0x438730
ret
jae 0x43757f
push 0x437eb1
ret
xor eax, eax
pop edi
je 0x437d6d
jne 0x437d6d
push 0x48921d
push 0x13eb
movzx ebx, word [esi + 0x34]
enter 0xffffffffffffa1aa, 0xffffffffffffff96
sbb al, 0x88
mov edi, 0x9027be59
sbb byte [ebx - 0x377cfe20], al
add cl, byte [ebx - 0x741f2c35]
dec ebp
clc
sub eax, edi
je 0x4394de
jne 0x4394de
out 0x75, eax
push 0xa8b77c
mov ecx, dword [eax*4 + 0xcf3cec]
jmp dword [eax + 0x5e1ad24b]
inc ecx
jmp 0x4387a0
mov esp, ebp
pop ebp
ret
pop esi
pop ebx
jmp 0x437950
mov ecx, edx
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
cmp esi, ecx
jae 0x4371e1
mov edx, ecx
add edi, edi
jmp 0x43802f
or esi, ecx
inc eax
je 0x437d8c
jne 0x437d8c
mov dword [0x112b0504], eax
mov eax, 0xf746b0
cmp byte [ebx + 0xbe], 8
push 0xa19
int1
xor eax, 0x8b057950
inc ebp
hlt
sub esi, ecx
lea edi, [edi + edi + 1]
cmp edi, 0x40
jb 0x438109
sub edi, 0x40
mov dword [ebp + 8], eax
cmp edi, 4
jmp 0x4370dc
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
cmp edx, 0x1000000
jmp 0x4390ea
mov ecx, edx
push 0x4384da
ret
push esi
jmp 0x438e69
mov dword [ebp + 8], ecx
push 0x437bbf
ret
sub esp, 0x18
push ebx
je 0x4386a9
jne 0x4386a9
mov dword [eax + 0x460], ecx
push 0x1148938c
add byte [ecx - 0x67ffa9b5], dl
mov eax, dword [ebx + 0x214]
xchg ebx, eax
dec eax
adc dword [eax], eax
xchg ecx, eax
dec ebx
push esi
add byte [eax + 0x214838b], bl
add byte [eax], al
mov eax, dword [0x41b2b0]
push 0x9c040
push 0x10013d10
mov ecx, dword [eax*4 + 0xd7e6c0]
mov eax, 0xa8c088
pop esi
pop esi
js 0x438e4a
sbb dword [ebx], edi
inc ebp
cld
cmp eax, dword [ebp - 4]
je 0x437035
jne 0x437035
psrad mm2, 0x12
call dword [0x104b5034]
add ecx, 0x85c
push 0x43aea0
cmpsb byte [esi], byte es:[edi]
ja 0x438dd0
movzx edi, word [ecx + eax*2 + 0x198]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 3
cmp edx, 0x1000000
jmp 0x439144
cmp byte [0x1000005], 0x9a
push ds
adc byte [ebx + ebx*4 + 0x1e], dh
adc byte [ecx], bh
xor eax, 0xdab34c
jae 0x438ec1
popal
outsd dx, dword [esi]
sal eax, cl
out dx, al
pop edx
pop eax
stc
mov ecx, 0x7df26857
inc ebx
add bl, al
mov dword [0x115419e0], eax
mov al, byte [ebx - 1]
push 0x11222220
mov ah, byte [esi]
invalid
push edi
push 0x437df2
ret
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jae 0x43757d
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
or esi, ecx
inc eax
push 0x438252
ret
sub edx, edi
sub esi, edi
lea eax, [eax + eax + 1]
dec ebx
mov dword [ebp - 0x14], ebx
push 0x437cc9
ret
mov eax, dword [ebp - 0x18]
cmp edx, 0x1000000
jmp 0x4374ba
jae 0x437d8c
jmp 0x438dff
jae 0x4385c5
push 0x436d9f
ret
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x436f26