Function at 0x10043fe0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
xor edx, edx
mov dword [ebp - 4], ebx
mov eax, dword [edi + 0x30]
lea esi, [ebx + 0xa]
movzx ecx, word [ebx + 8]
inc eax
imul eax, ecx
mov dword [ebp - 8], ecx
movzx ecx, word [esi]
dec eax
div dword [edi + 0x2c]
mov edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
jbe 0x1004402f
mov ecx, eax
nop dword [eax]
movzx eax, word [esi + 2]
lea esi, [esi + 2]
inc edx
cmp eax, ecx
ja 0x10044020
mov dword [ebp + 8], edx
movzx eax, word [ebx + edx*2 + 6]
xor edx, edx
imul eax, dword [edi + 0x2c]
movzx esi, word [ebx + 8]
mov ecx, dword [edi + 0x28]
div esi
lea esi, [ecx - 1]
xor edx, edx
add esi, eax
mov eax, dword [ebp + 8]
movzx eax, word [ebx + eax*2 + 8]
imul eax, dword [edi + 0x2c]
div dword [ebp - 8]
sub dword [edi + 0x30], eax
add eax, ecx
mov dword [edi + 0x28], eax
mov ecx, dword [edi + 0x28]
mov eax, ecx
xor eax, esi
test eax, 0x8000
je 0x1004408b
test ecx, 0x4000
je 0x100440d3
test esi, 0x4000
jne 0x100440d3
or esi, 0x4000
and ecx, 0x3fff
and ecx, 0x7fff
and esi, 0x7fff
add ecx, ecx
add esi, esi
mov dword [edi + 0x28], ecx
or esi, 1
mov ecx, dword [edi]
cmp ecx, 0x10000
jb 0x100440bc
lea ecx, [edi + 8]
call fcn.10091840
movzx ecx, al
or ecx, 0x100
lea eax, [ecx + ecx]
shr ecx, 7
mov dword [edi], eax
and ecx, 1
mov eax, dword [edi + 0x30]
add eax, eax
or ecx, eax
mov dword [edi + 0x30], ecx
jmp 0x10044061
sub esi, ecx
mov edx, ebx
mov ecx, dword [ebp + 8]
inc esi
dec ecx
mov dword [edi + 0x2c], esi
lea esi, [edx + 8]
movzx edi, byte [ecx + edx + 0x8a]
lea esi, [esi + ecx*2]
mov dword [ebp - 0xc], edi
add word [esi], 8
lea esi, [esi - 2]
mov eax, ecx
dec ecx
test eax, eax
jne 0x100440f0
mov eax, 0xed8
lea esi, [edx + 8]
cmp word [esi], ax
jbe 0x10044221
add dword [edx + 4], 0xffffffff
mov ebx, dword [edx]
jne 0x100441fb
xor edi, edi
mov dword [edx + 4], 0x32
test ebx, ebx
je 0x10044149
nop dword [eax + eax]
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, word [esi]
inc edi
sub ecx, eax
inc ecx
sar ecx, 1
mov word [esi - 2], cx
mov ebx, dword [edx]
cmp edi, ebx
jb 0x10044130
lea eax, [ebx - 1]
xor esi, esi
test eax, eax
je 0x100441ef
lea edi, [esi + 1]
mov ecx, ebx
cmp edi, ebx
jae 0x100441e3
lea ebx, [edi + 4]
lea ebx, [edx + ebx*2]
mov dword [ebp - 8], ebx
nop dword [eax]
movzx eax, word [ebx]
mov dword [ebp + 8], eax
lea eax, [edx + 8]
movzx ecx, word [eax + esi*2]
lea eax, [eax + esi*2]
mov edx, ecx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 4]
cmp cx, word [ebp + 8]
jae 0x100441c4
mov dl, byte [edx + esi + 0x8a]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 4]
mov word [eax], cx
mov ecx, dword [ebp - 4]
mov cl, byte [ecx + edi + 0x8a]
mov byte [ebx + esi + 0x8a], cl
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov word [ebx], cx
mov ecx, dword [ebp - 4]
mov byte [ecx + edi + 0x8a], dl
mov edx, ecx
mov cx, word [eax + 2]
lea eax, [eax - 2]
add word [eax + 2], cx
mov ecx, esi
dec esi
test ecx, ecx
jne 0x100441c4
mov ecx, dword [edx]
inc edi
add ebx, 2
mov dword [ebp - 8], ebx
cmp edi, ecx
jb 0x10044170
mov ebx, ecx
inc esi
dec ecx
cmp esi, ecx
jb 0x10044156
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
dec ebx
lea ecx, [edx + 8]
lea ecx, [ecx + ebx*2]
shr word [ecx], 1
movzx eax, word [ecx]
movzx edx, word [ecx + 2]
cmp ax, dx
ja 0x10044217
lea eax, [edx + 1]
mov word [ecx], ax
mov eax, ebx
sub ecx, 2
dec ebx
test eax, eax
jne 0x10044202
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4