Function at 0x40ac1b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sti
jne 0x40ac26
xor ecx, ecx
invalid
cmp ecx, 0x4b
mov dword [ebp + 8], esi
jge 0x40ac97
dec edi
mov dword [edx], edi
mov esi, dword [eax]
dec esi
mov dword [eax], esi
mov eax, dword [ebp + 0x10]
mov byte [eax], cl
inc eax
mov dword [ebp + 0x10], eax
xor dword [edx], ecx
sub al, 0
add byte [ebx - 0x3ffda3f], cl
add byte [eax], al
cmp eax, 0xb00dc00
je 0x40ae36
or dword [eax], eax
fsubr dword [ecx - 0x7cb98b00]
inc dword [edx]
jb 0x416f67
mov di, word [edi]
mov edx, eax
adc ah, dl
add ah, bh
add byte [esi - 0x7f], ch
cli
add ah, bl
add byte [eax], al
xor al, 0x85
cmc
add byte [edi], al
or dword [ebp - 1], 0x25000003
and byte [ebx], al
add byte [eax], al
shl ecx, 0xa
or eax, dword [ecx - 0x7d]
add al, 2
cdq
adc eax, 0x81fa8bd8
ret
cli
add ebx, 0x14200
push ecx
jne 0x40aca9
adc edi, 0
mov bh, 7
mov eax, ecx
cdq
mov ebx, eax
scasb al, byte es:[edi]
cli
mov esi, dword [ebx + ecx*4 + 0xbb9d7]
push ebx
add al, ch
push ebp
or eax, dword [eax]
add byte [ebx + 0x6701bec8], cl
inc edx
add byte [ebx], cl
retf 0x110c
mov dword [eax], 0x1e001c
xor edi, edi
add dword [ecx], ebp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, 4
mov cl, byte [ebp + 0x46]
cmp al, 0x5a
mov byte [ebp - 0x24], al
jbe 0x40ae71
mov ebx, dword [esp + ebx*2]
mov ebx, 0xf3442e04
and eax, 0xff
cdq
idiv ebx
add al, 0x30
popfd
or al, 0xc0
mov byte [ecx], al
inc ecx
jmp 0x40ade4
jl 0x40ae2d
scasd eax, dword es:[edi]
cdq
mov cl, 0xfb
add al, 0x30
mov dl, dl
inc ecx
mov al, dl
mov esi, 0xcf018830
mov byte [ecx], 0x2e
inc ecx
dec edi
jne 0x40adf9
or eax, 0x5e5f0c45
mov byte [ecx - 7], 0
minps xmm0, xmm3
push ebp
mov esi, dword [edi + 0x62561183]
push esi
jne 0x40ae6b
push edi
cmp dword [esi], 0xfffffff0
rcl byte [ecx]
mov dword [esi], 0xba008a00
pop edi
pop esi
jl 0x40ae2b
pop ebx
mov esp, ebp
pop ebp
ret 0xa0
add byte [edi + 0x5d], bh
or byte [ebx - 0x3b09e7bd], cl
add dh, byte [ebp + 0x6f]
inc ebx
or al, 0xf5
sal byte [ebp + 0x5e], 0x8b
add byte [edx + 0x14], ch
out dx, eax
xor edi, edi
mov dl, 0xd0
in al, 0xff
dec dword [ebx - 0x76c77638]
js 0x40ae9b
mov dword [eax + ecx + 0x50], eax
js 0x40aea9
push edi
push edi
fimul word [ecx - 0x76a8ef88]
dec ebx
or al, 0xff
adc eax, sym.imp.KERNEL32.dll_CreateEventA
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x10]
dec esp
inc esi
jne 0x40af24
mov al, byte [0x8b0040c0]
push ebx
or al, 0x89
inc edx
adc byte [ebx + 0x488b0c43], cl
adc byte [esi + eax*2 + 0x75], cl
mov esi, dword [di]
jae 0x40ae81
mov esi, dword [0xc6d4c073]
aam 0xc6
mov dh, 0xd6
xchg bl, bl
jne 0x40aed2
pop edi
pop esi
pop ebx
mov esp, dword [eax + 0xcc25d]
call esi
pop edi
adc dword [0x370afc80], eax
pop ebx
mov edi, eax
inc ebp
ret 0x19
pop eax
test ch, al
push edx
mov dword [ebp + 0x14], eax
mov edx, ebp
clc
cmp eax, 0xff8cf39d
cmp dword [ebx + 0x48], 1
jne 0x40af66
push ebx
call fcn.0040b2d0
add byte [eax], al
xor ecx, ecx
test eax, 0xc13b0845
je 0x40af5d
mov eax, dword [ebx + 0x58]
push eax
jg 0x40af3d
invalid
inc ebp
dec ebx
cmp al, 0x89
dec ebx
dec eax
cmp eax, 0x45c74481
or byte [eax], al
add byte [eax], al
outsb dx, byte [esi]
mov dword [ebp + 8], 0x6e000000
jmp 0x40af72
cmp bh, byte [ebp - 8]
test edi, edi
jbe 0x40b017
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x44]
cmp ecx, eax
popal
aaa
mov edi, dword [edx + 0x384b1e40]
cld
push ebp
cmpsd dword [esi], dword es:[edi]
push edx
push eax
push ecx
push ebx
call 0xe05857
mov ebx, dword [esp + esi*8 + 0x5b]
rol al, cl
les edx, [eax]
cmp ebx, dword [ecx + ecx*4 + 0x64740845]
mov esi, dword [ebx + 0x50]
mov eax, dword [ebx + 0x76]
add esi, ecx
invalid
add ebp, ebx
pop ecx
mov ah, 0x8b
inc ebp
or byte [ecx + 0x758b3c73], cl
adc byte [ecx - 0x3fc103ab], cl
sub dword [ebp - 8], ecx
je 0x40af6f
jmp 0x40b017
mov eax, dword [ebp - 4]
jbe 0x40b069
or al, 0x2b
ror dword [ecx - 0x38f88bb2], 0x45
or byte [eax], al
add byte [eax], al
add byte [ebx - 0x17af34bd], cl
or eax, 0x6dfffff3
cld
or byte [edi - 0x7d], bl
pop ebx
mov esp, ebp
pop ebp
ror dword [eax + eax], 1
mov edx, dword [esi]
lea ecx, [ebp + 0xc]
push edx
push edx
push eax
jns 0x40b07d
add byte [0x10c48300], dl
mov ebx, 0xa211b0
mov dword [ebp + 8], eax
jne 0x40afec
mov dword [ebx - 0x19], 0xb501
mov eax, dword [ebp + 0xc]
clc
mov ebx, edi
mov eax, dword [ebp + 8]
pop esi
pop ebx
or byte [esi + 0x5b], bl
mov esp, ebp
pop ebp
ret 0xc
nop
nop
nop
push ebp
invalid