Function at 0x10019140
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov dword [ebp - 0x78], ecx
mov byte [ebp - 2], 0
mov byte [ebp - 1], 0
mov byte [ebp - 3], 0
mov eax, 1
test eax, eax
je 0x10019169
push 0x15dbd30
call dword [0x15a8364]
push 0x15dbd48
call dword [0x15a8364]
movzx ecx, byte [0x15d20b8]
test ecx, ecx
jne 0x1001934a
mov dword [ebp - 0xc], 0x15db6d8
mov dword [ebp - 0x1c], 0x15db4d8
mov dword [ebp - 0x18], 0x152a850
mov edx, dword [0x15d2a7c]
mov dword [ebp - 0x54], edx
mov eax, dword [0x15db8dc]
movzx ecx, word [eax + 0xa]
mov edx, dword [0x15ce93c]
sub edx, ecx
add edx, dword [ebp - 0x54]
mov dword [ebp - 0x14], edx
mov eax, dword [0x15db8dc]
movzx ecx, word [eax + 0xa]
add ecx, dword [0x15ceb3c]
mov edx, dword [0x15db8d8]
movzx eax, word [edx + 0xa]
add ecx, eax
mov dword [ebp - 0x10], ecx
call fcn.10076270
mov ecx, dword [0x15dbcb0]
lea edx, [eax + ecx + 0x1b6c3cd1]
mov dword [ebp - 8], edx
mov eax, dword [0x15dbcac]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0
je 0x10019226
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
je 0x10019226
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov eax, dword [edx]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
jmp 0x10019202
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
je 0x10019259
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
je 0x10019259
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x2c], eax
jmp 0x10019235
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
je 0x1001928c
mov eax, dword [ebp - 0x30]
cmp dword [eax], 0
je 0x1001928c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
mov eax, dword [edx]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
jmp 0x10019268
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x14]
push eax
call dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 0
je 0x100192d4
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
je 0x100192d4
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov eax, dword [edx]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x34]
add eax, 4
mov dword [ebp - 0x34], eax
jmp 0x100192b0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 0
je 0x10019307
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
je 0x10019307
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
mov eax, dword [edx]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
jmp 0x100192e3
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
je 0x1001933a
mov eax, dword [ebp - 0x3c]
cmp dword [eax], 0
je 0x1001933a
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
jmp 0x10019316
mov ecx, dword [ebp - 0x20]
mov dword [0x15d20b4], ecx
mov byte [0x15d20b8], 1
mov edx, dword [0x15db6f0]
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], 0
je 0x10019380
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
je 0x10019380
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx]
mov eax, dword [edx]
sub eax, dword [0x15dbcac]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx]
mov dword [edx], eax
mov eax, dword [ebp - 0x40]
add eax, 4
mov dword [ebp - 0x40], eax
jmp 0x10019359
mov ecx, dword [0x15d2a7c]
mov dword [ebp - 0x58], ecx
push 0
mov edx, dword [0x15ceb40]
push edx
mov eax, dword [ebp - 0x58]
add eax, dword [0x15ce940]
push eax
mov ecx, dword [0x15d20b4]
push ecx
call fcn.1008eb90
add esp, 0x10
pop ebp
add dword [ecx - 0x18], edx
call 0x93019b00
les edx, [eax]
mov edx, dword [0x15db6f0]
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0
je 0x100193e1
mov eax, dword [ebp - 0x44]
cmp dword [eax], 0
je 0x100193e1
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov eax, dword [edx]
add eax, dword [0x15dbcac]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov dword [edx], eax
dec ebp
mov esp, 0x289118b
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x44], eax
jmp 0x100193ba
xchg edx, edi
nop
xchg edx, edi
sal dword [ecx + 0x45], 1
sub dword [ebx + 0xf], edi
lcall 0x4a31, 0xfce5df60
xor dword [esi + 0x11ce4929], 0xa0caec8a
lea ecx, [edi + 5]
inc ecx
lodsd eax, dword [esi]
jne 0x100193a0
int1
je 0x100193d0
salc
add cl, byte [esi + 0x7c]
test al, 0x5b
psllw mm3, qword [edx + 0xb5e82ac]
cmp al, 0x87
mov edi, 0x631e7bea
fistp dword [ecx]
cmpsd dword [esi], dword es:[edi]
popfd
dec esp
movsb byte es:[edi], byte [esi]
xor bh, byte [ecx - 0x210b00be]
out 0xb9, al
or eax, 0xabb0412
or al, 0x78
push ebp
bound ebp, qword es:[bp + si + 0x5a]
pop edx
call 0xa3419e38
movsb byte es:[edi], byte [esi]
mov ah, 0x71
shr edx, 1
les esp, [ecx]
inc ecx
mov esp, 0x7c00c4ff
or ecx, ebx
sub edi, dword [edi]
jnp 0x1001948d
dec esi
mov ecx, edx
test dword [ebx + 0x56ef6b04], esi
sbb dl, byte [edx + 0x3a]
rol byte [ebx - 0x4e], 0x28
dec edx
pop ss
test dword [esi + 0x6cd915ad], 0xb6d3889b
daa
pushfd
aam 0xbd
mov esi, 0xfea0cc17
stc
loope 0x1001940d
sbb al, byte [ecx + edi*2 + 0xe51ec21]
push eax
daa
dec ebx
mov ecx, 0x369d449f
sub eax, 0x3af730fd
in al, dx
push es
inc edi
mov cl, 0x50
xchg esi, eax
int 0xb0
mov esi, 0xe7b9a3b2
cmpsd dword [esi], dword es:[edi]
je 0x1001943c
jbe 0x10019435
adc dword [ebx - 0x7f], ebx
wait
outsb dx, byte [esi]
mov esp, 0x7916a416
test eax, 0x10793010
mov al, 0xce
xchg edi, eax
mov ebx, 0x3a6e5855
nop
mov byte [eax + 0x53], dl
push edx
adc byte [eax + 0x55bb97ce], dh
pop eax
outsb dx, byte [esi]
cmp dl, byte [eax + 0x52535088]
jp 0x1001949f
mov ch, 0x11
jmp 0x100194e6
and al, 0xe5
xor al, 0xfd
jb 0x100194aa
mov eax, edi
ljmp 0x2122