Function at 0xe9e3a7
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, 1
rcr bl, 0xf3
mov ebx, dword [esi + 0x58]
stc
test ebx, ebx
jne 0xd688e4
mov ebx, dword [ebp + 0xc]
cmp bl, 0xa8
cmp ebp, esi
cmc
cmp edi, 0x14
jb 0xe9bd8b
lea eax, [edi + ebx - 0x14]
jmp 0xe9bdb0
cmp dword [esi + 0x20], 0
jne 0xb2b070
mov edx, dword [ebp + 0x14]
mov dword [edx], 1
sub eax, eax
btr di, 0x90
cmp dword [esi + 0x20], eax
movzx bx, dl
pop edi
pop esi
setne al
not bx
movsx ebx, si
setb bh
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edi + ebx]
sbb dx, sp
xor dl, 0xca
lea edx, [esi + 0x5c]
cmp ebp, esi
stc
cmp ebx, ecx
je 0xd52bfb
sub edx, ebx
mov bl, 0x41
dec bl
mov bl, byte [eax]
mov byte [edx + eax], bl
inc eax
cmp eax, ecx
jne 0xd52bed
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x58], edi
btc si, 0xf5
add dword [eax], edi
bswap esi
mov eax, dword [ebp + 0x14]
sal di, 0x1b
clc
btr di, 0x99
pop edi
sbb esi, 0x4876100a
sbb ebx, edx
pop esi
movzx ebx, si
mov dword [eax], 3
xor eax, eax
movsx ebx, si
xchg bh, bl
mov ebx, edx
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
xchg bh, bl
not bl
bswap bx
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
add dword [eax], edi
sbb cl, 0xe0
add ecx, ebp
mov ecx, dword [ebp + 0x14]
rol si, 0xb5
pop edi
setp bl
shrd si, di, 0x29
pop esi
mov dword [ecx], 3
xor ebx, 0x59387680
bt ebx, 0x28
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
sub edi, edi
mov dword [ebp - 8], edi
cmp esi, edi
cmp ebx, 0x14
jae 0xd68930
cmp edi, dword [ebp - 4]
jae 0xd6892d
mov eax, dword [ebp + 0xc]
sbb dl, 0xda
sar dl, 0x4f
mov dl, byte [edi + eax]
cmc
cmp di, bx
mov byte [ebx + esi + 0x5c], dl
cmp edx, 0x41230ffe
lea ebx, [ebx + ecx]
stc
cmc
lea edi, [edi + ecx]
test dx, 0x995
cmp ebx, 0x14
jb 0xd688f4
mov dword [ebp - 8], edi
mov dword [esi + 0x58], ebx
cmp ebx, 0x14
jae 0xd68966
lea eax, [esi + 0x5c]
mov ch, 6
movzx ecx, cx
not ecx
push eax
setl ah
mov eax, ebx
cmovs cx, cx
setle cl
mov ecx, esi
call fcn.00e98696
add esp, 4
test eax, eax
je 0xd676bf
mov edi, dword [ebp + 8]
xchg al, al
bswap ax
lea eax, [esi + 0x5c]
mov dword [esi + 0x18], eax
push eax
cwde
mov eax, esi
call fcn.00e9b3c0
test eax, eax
jne 0xd654cf
mov ecx, dword [esi + 0x18]
cwde
sar dl, cl
or ax, si
mov edx, dword [ebp - 8]
sub ecx, ebx
sal ax, 0x37
sub ecx, esi
shrd eax, esi, 0xe5
sbb eax, ebx
lea eax, [edx + ecx - 0x5c]
rcr ch, cl
bt ecx, 0x82
mov ecx, dword [ebp + 0x10]
cmp esi, esi
add dword [ecx], eax
test cl, 0xdf
cmc
add dword [ebp + 0xc], eax
cmp edx, esi
mov dword [esi + 0x58], 0
cmp ax, si
sub dword [ebp - 4], eax
cmp dword [esi + 0x48], 0x112
je 0xb2b05d
mov edi, dword [ebp - 4]
mov ebx, esp
mov ebx, dword [ebp + 0x10]
jmp 0xe9e3f5
push ebx
mov eax, edi
mov cl, al
cmovno ecx, eax
mov ecx, esi
call fcn.00e98696
add esp, 4
test eax, eax
mov eax, ebx
je 0xd52bd0
mov ebx, dword [ebp + 0xc]
bswap di
not di
mov edi, dword [ebp + 8]
push eax
setl ah
mov eax, esi
mov dword [esi + 0x18], ebx
call fcn.00e9b3c0
test eax, eax
jne 0xd654cf
mov eax, dword [esi + 0x18]
setns ch
neg cl
sbb ch, 0x75
mov ecx, dword [ebp + 0x10]
test edi, eax
sub eax, ebx
stc
clc
test cl, 0x76
add dword [ecx], eax
clc
cmc
add ebx, eax
mov dword [ebp + 0xc], ebx
jmp 0xd689c3
cmp dword [esi + 0x48], 0
jne 0xe9c4a6
cmp dword [esi + 0x20], 0
je 0xe9e345
mov edx, dword [ebp + 0x14]
sal bx, cl
rol bl, cl
or di, dx
pop edi
bt si, si
pop esi
sub ebx, ecx
mov dword [edx], 2
adc bx, sp
xchg bl, bh
sub eax, eax
movsx bx, ah
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
xadd si, di
pop edi
pop esi
btc bx, 0x3a
sar ebx, 0x91
mov dword [ecx], 4
xor eax, eax
movzx ebx, bx
not bl
pop ebx
mov esp, ebp
mov bp, 0x3418
movsx ebp, ax
pop ebp
ret
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 0x10]
push esi
xchg si, si
movsx esi, bp
bswap si
push edi
mov edi, dword [ebx]
mov esi, eax
xchg al, al
not ax
movsx eax, dx
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 4], edi
mov dword [ebx], 0
call fcn.00b20912
mov ecx, dword [ebp + 0x14]
cmp bx, 0x41c2
mov dword [ecx], 0
cmp dword [esi + 0x48], 0x112
je 0xb2b05d
cmp dword [esi + 0x4c], 0
je 0xe9e4b6
test edi, edi
jbe 0xe9e43e
mov ecx, dword [esi + 0x58]
clc
cmc
cmp ecx, 5
jae 0xe9e43b
mov eax, dword [ebp + 0xc]
dec dl
mov dl, byte [eax]
mov byte [ecx + esi + 0x5c], dl
inc dword [esi + 0x58]
inc dword [ebx]
inc eax
cmp esp, 0x2dbb024f
test bl, ah
clc
sub edi, 1
mov dword [ebp + 0xc], eax
jne 0xe9e407
mov dword [ebp - 4], edi
cmp dword [esi + 0x58], 5
jb 0xd52c0a
cmp byte [esi + 0x5c], 0
jne 0xd654cf
movzx eax, byte [esi + 0x5d]
mov dx, 0x7432
movzx ecx, byte [esi + 0x5e]
xadd dx, dx
movzx edx, byte [esi + 0x5f]
shl eax, 8
test eax, edi
test bp, 0xb44
stc
or eax, ecx
rcl ch, 0x3b
rcr ch, 0x27
movzx ecx, byte [esi + 0x60]
stc
cmc
shl eax, 8
or eax, edx
sal dx, cl
shl eax, 8
rcr dx, cl
or eax, ecx
mov dword [esi + 0x20], eax
test sp, 0x124b
ror dl, cl
mov dword [esi + 0x1c], 0xffffffff
rcr edx, 0xf
test esp, ebp
sbb dx, bx
mov dword [esi + 0x4c], 0
mov dword [esi + 0x58], 0
mov edx, dword [ebp + 8]
stc
cmp dword [esi + 0x24], edx
jae 0xe9c492
cmp dword [esi + 0x50], 0
je 0xb23c98
mov ecx, dword [esi + 4]
setne dh
rcr ah, cl
add ecx, dword [esi]
mov edx, dword [esi + 0x10]
cwde
mov eax, eax
cmovo ax, cx
mov eax, 0x300
cmc
shl eax, cl
cmp ax, ax
test eax, 0xd317d30
test dx, bx
add eax, 0x736
je 0xe9e54d
mov ecx, eax
lahf
adc edi, ebp
sub ah, 0x8b
mov eax, 0x400
clc
neg edi
mov edi, edx
shr dx, 0xd2
or edx, ebp
sbb dx, bx
movzx edx, ax
not ah
sbb ax, 0x662a
bsf ax, dx
mov eax, edx
cmp esi, 0x8b73109
test cx, 0x896
shl edx, 0x10
clc
or eax, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [ebp - 4]
xchg cl, ch
shld cx, ax, 0x74
mov ecx, 1
sub eax, eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x34], eax
mov dword [esi + 0x50], eax
jmp 0xb23ca0