Function at 0x1ee7d7b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp dword [esi + 0x48], 0
jne 0x1864a37
cmp dword [esi + 0x20], 0
je 0x1e72f65
mov edx, dword [ebp + 0x14]
pop edi
btc esi, 0xf3
shld bx, ax, 0xd4
pop esi
mov dword [edx], 2
rcl bh, 0x5b
sub eax, eax
cmovb bx, cx
movsx ebx, di
movsx bx, al
pop ebx
mov esp, ebp
mov bp, 0x198
pop ebp
ret
pop edi
pop esi
mov ah, ch
mov eax, 1
movzx ebx, bx
pop ebx
mov esp, ebp
movsx ebp, bx
pop ebp
ret
mov eax, dword [ebp + 0x10]
cmp bp, bp
sbb ecx, ebx
shld si, di, 0x96
add dword [eax], edi
ror edi, 0xe8
sbb edi, 0xa8f4b37
mov ecx, dword [ebp + 0x14]
cmp ebp, edx
pop edi
pop esi
xchg bl, bl
btc bx, 0x90
sub bh, 0x33
mov dword [ecx], 3
rcr bl, 0x3f
sub eax, eax
movsx bx, ch
pop ebx
mov esp, ebp
mov bp, 0x684e
movsx ebp, di
pop ebp
ret
mov ecx, dword [ebp + 0x14]
btc edi, 0x93
pop edi
bt bx, 0xd2
dec esi
pop esi
mov dword [ecx], 4
xor eax, eax
not ebx
movsx ebx, bp
cmovae bx, bp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x20], 0
jne 0x1e72fa2
mov edx, dword [ebp + 0x14]
shld bx, di, 0x3a
mov dword [edx], 1
xor eax, eax
bsf di, si
cmp dword [esi + 0x20], eax
pop edi
cmovg bx, ax
movzx bx, cl
pop esi
mov al, 0x16
bswap bx
setne al
movzx ebx, di
pop ebx
mov esp, ebp
mov bp, 0xf0
movzx ebp, ax
pop ebp
ret
xor edi, edi
test sp, di
cmc
mov dword [ebp - 8], edi
cmp ebx, 0x14
jae 0x1ee775f
cmp edi, dword [ebp - 4]
jae 0x1ee7759
mov eax, dword [ebp + 0xc]
mov dl, byte [edi + eax]
cmp sp, di
mov byte [ebx + esi + 0x5c], dl
stc
add ebx, ecx
lea edi, [edi + ecx]
cmp ebx, 0x14
jb 0x1ee7734
mov dword [ebp - 8], edi
cmp dx, di
mov dword [esi + 0x58], ebx
test ch, dh
cmp ebx, 0x14
jae 0x1ee778b
lea eax, [esi + 0x5c]
setbe cl
push eax
mov eax, ebx
mov ecx, esi
call fcn.0185ac6e
add esp, 4
test esi, eax
stc
test eax, eax
je 0x186b340
mov edi, dword [ebp + 8]
cbw
bswap eax
lea eax, [esi + 0x5c]
mov dword [esi + 0x18], eax
push eax
mov eax, esi
call fcn.0124036e
test eax, eax
jne 0x18688d0
mov ecx, dword [esi + 0x18]
adc ah, 0x58
mov edx, dword [ebp - 8]
sub ecx, ebx
cmc
rol eax, 0x44
bsr ax, si
sub ecx, esi
bt eax, 0x2c
test bx, si
shld eax, ebp, 0x74
lea eax, [edx + ecx - 0x5c]
mov ecx, dword [ebp + 0x10]
cmp esi, 0x53154290
cmp esp, esp
add dword [ecx], eax
cmc
add dword [ebp + 0xc], eax
mov dword [esi + 0x58], 0
test dx, 0x4f54
stc
sub dword [ebp - 4], eax
cmp esi, ebp
cmp dword [esi + 0x48], 0x112
je 0x1e72f8a
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 0x10]
jmp 0x1ee7dc9
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
bswap di
mov edi, dword [ebx]
mov si, bx
mov esi, eax
seto al
movsx eax, si
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 4], edi
mov dword [ebx], 0
call fcn.01ee7f37
mov ecx, dword [ebp + 0x14]
cmp esp, 0x79f102ef
test esp, ecx
mov dword [ecx], 0
stc
clc
cmp dword [esi + 0x48], 0x112
je 0x1e72f8a
cmp dword [esi + 0x4c], 0
je 0x1ee7e88
test edi, edi
jbe 0x1ee7e09
mov ecx, dword [esi + 0x58]
cmp al, bl
cmp ecx, 5
jae 0x1ee7e05
mov eax, dword [ebp + 0xc]
mov dl, byte [eax]
mov byte [ecx + esi + 0x5c], dl
inc dword [esi + 0x58]
inc dword [ebx]
inc eax
stc
sub edi, 1
mov dword [ebp + 0xc], eax
jne 0x1ee7ddb
mov dword [ebp - 4], edi
stc
cmp dword [esi + 0x58], 5
jb 0x1eeb5fa
cmp byte [esi + 0x5c], 0
jne 0x18688d0
movzx eax, byte [esi + 0x5d]
ror dl, 0x89
sar dl, 0x93
cdq
movzx ecx, byte [esi + 0x5e]
movzx edx, byte [esi + 0x5f]
shl eax, 8
stc
or eax, ecx
movzx ecx, byte [esi + 0x60]
stc
shl eax, 8
cmc
clc
or eax, edx
shr dx, cl
btc dx, si
shl eax, 8
shrd dx, bx, 0xbe
movsx edx, cx
or eax, ecx
sar dh, 0x8d
adc dl, 0xc9
mov dword [esi + 0x20], eax
cmp ch, 0xaf
or dl, 0xf3
bsf edx, edx
mov dword [esi + 0x1c], 0xffffffff
rcl dh, cl
test esi, ebp
cmc
mov dword [esi + 0x4c], 0
cmp esp, eax
mov dword [esi + 0x58], 0
mov dl, cl
ror edx, cl
mov edx, dword [ebp + 8]
stc
test sp, 0x15ff
cmp dword [esi + 0x24], edx
jae 0x1864a23
cmp dword [esi + 0x50], 0
je 0x1ee9848
mov ecx, dword [esi + 4]
rcr ah, cl
setg dl
add ecx, dword [esi]
shl ah, 0xd8
xor ah, bl
mov edx, dword [esi + 0x10]
mov eax, 0x300
shl eax, cl
add eax, 0x736
je 0x1ee7f02
mov ecx, eax
or al, 0xae
sbb ax, di
mov eax, 0x400
mov edi, edx
sar dh, cl
clc
movzx edx, ax
mov eax, esi
mov eax, edx
shl edx, 0x10
cmp edx, 0x5485258
or eax, edx
stc
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
bswap edi
mov edi, dword [ebp - 4]
shrd ecx, esp, 0x4a
btr ecx, 0xa2
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 0x1ee9850
mov ecx, 1
cmp bh, 0xb8
mov ebx, dword [esi + 0x58]
stc
cmp cl, bh
test ebx, ebx
jne 0x1ee7722
mov ebx, dword [ebp + 0xc]
cmp edi, 0x14
jb 0x1eeb008
lea eax, [edi + ebx - 0x14]
jmp 0x1eeb042
push ebx
cwde
mov ax, cx
cmovs cx, si
mov eax, edi
not cl
mov cx, 0x196d
movzx ecx, si
mov ecx, esi
call fcn.0185ac6e
lea esp, [esp + 4]
test edi, ebp
cmp bh, 0x6f
clc
test eax, eax
mov eax, ebx
je 0x1eeb5ba
mov ebx, dword [ebp + 0xc]
xchg edi, edi
movsx edi, bp
not di
mov edi, dword [ebp + 8]
push eax
bswap ax
mov eax, 0x47602675
not eax
mov eax, esi
mov dword [esi + 0x18], ebx
call fcn.0124036e
test eax, eax
jne 0x18688d0
mov eax, dword [esi + 0x18]
sar ch, cl
xadd cl, cl
mov ecx, dword [ebp + 0x10]
test edi, edx
stc
sub eax, ebx
cmp bp, si
test ch, 0x34
cmc
add dword [ecx], eax
cmp di, bp
cmp ecx, 0x390e07eb
add ebx, eax
mov dword [ebp + 0xc], ebx
jmp 0x1ee77ea
lea ecx, [edi + ebx]
dec dl
lea edx, [esi + 0x5c]
cmp ebx, ecx
je 0x1eeb5df
sub edx, ebx
xchg bl, bl
mov bl, byte [eax]
mov byte [edx + eax], bl
inc eax
cmp ch, 0xb4
cmp eax, ecx
jne 0x1eeb5ce
mov eax, dword [ebp + 0x10]
dec ebx
btc ebx, ebp
mov dword [esi + 0x58], edi
btr esi, edx
bt esi, ebx
add dword [eax], edi
cmovns ax, bx
xchg esi, edi
test cx, bx
mov eax, dword [ebp + 0x14]
pop edi
btc esi, 0x3f
or bx, 0x489b
sub bx, bx
pop esi
shl ebx, 0x5e
mov dword [eax], 3
xor eax, eax
xchg bx, bx
bswap bx
pop ebx
mov esp, ebp
cmovae ebp, eax
pop ebp
ret