Function at 0x6706d184
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x1c
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
push esi
mov esi, dword [esp + 0x30]
push edi
push 0
lea eax, [ebx + esi*2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
cdq
mov ebp, eax
xor ebp, edx
sub ebp, edx
mov edx, dword [esp + 0x40]
cmp ebp, dword [esp + 0x48]
mov ecx, ebp
mov dword [esp + 0x20], ebp
cmovl ecx, dword [esp + 0x48]
mov eax, dword [edx + 4]
sub eax, dword [edx + 8]
imul ecx, eax
mov eax, ebp
cmp ebp, dword [esp + 0x50]
cmovl eax, dword [esp + 0x50]
imul eax, dword [edx + 8]
add ecx, eax
sub ecx, dword [edx + 0xc]
add ecx, esi
mov esi, dword [esp + 0x34]
push ecx
mov ecx, esi
call sym.Ordinal_510
mov eax, dword [esi]
and dword [esp + 0x20], 0
mov edi, dword [eax + 0xc]
add edi, eax
cmp ebx, dword [esp + 0x14]
je 0x6706d37a
push 0x25
pop eax
mov dword [esp + 0x18], ebx
jmp 0x6706d207
add ebx, 2
cmp word [ebx], ax
jne 0x6706d204
mov edx, ebx
mov byte [esp + 0x13], 0
mov esi, ebx
add ebx, 2
movzx eax, word [ebx]
mov ecx, eax
cmp eax, 0x4c
jne 0x6706d22d
lea ebx, [edx + 4]
mov byte [esp + 0x13], 1
movzx ecx, word [ebx]
movzx ecx, cx
call fcn.67068b22
mov ebp, eax
cmp ebp, 0xffffffff
je 0x6706d26e
lea eax, [ebx + 2]
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
je 0x6706d26e
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.67068b22
cmp eax, 0xffffffff
je 0x6706d26e
mov ecx, dword [esp + 0x24]
call fcn.67068b22
mov ebx, dword [esp + 0x28]
imul ebp, ebp, 0xa
add ebp, eax
mov eax, dword [esp + 0x3c]
cmp ebp, dword [eax]
mov eax, dword [esp + 0x18]
je 0x6706d28e
mov esi, ebx
sub esi, eax
and esi, 0xfffffffe
push esi
push eax
push edi
call fcn.671a4d7a
jmp 0x6706d364
sub esi, eax
add ebx, 2
and esi, 0xfffffffe
push esi
push eax
push edi
call fcn.671a4d7a
mov eax, dword [esp + 0x50]
add edi, esi
mov ecx, dword [esp + 0x58]
add esp, 0xc
cmp byte [esp + 0x13], 0
mov esi, dword [esp + 0x1c]
je 0x6706d2bf
cmp esi, ecx
cmovl esi, ecx
sub esi, ecx
jmp 0x6706d2c6
cmp esi, eax
cmovl esi, eax
sub esi, eax
mov ebp, dword [esp + 0x40]
test ebp, ebp
jle 0x6706d2ee
test esi, esi
je 0x6706d2ee
mov edx, esi
mov ax, word [esp + 0x54]
mov ecx, edi
add edi, 2
mov word [ecx], ax
sub edx, 1
jne 0x6706d2d4
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x13], 0
je 0x6706d309
lea eax, [ecx + ecx]
push eax
push dword [esp + 0x54]
push edi
call fcn.671a4d7a
mov eax, dword [esp + 0x58]
jmp 0x6706d31a
add eax, eax
push eax
push dword [esp + 0x4c]
push edi
call fcn.671a4d7a
mov eax, dword [esp + 0x50]
add eax, eax
add esp, 0xc
add edi, eax
mov eax, edi
test ebp, ebp
jns 0x6706d33d
test esi, esi
je 0x6706d33d
mov ax, word [esp + 0x54]
mov ecx, edi
add edi, 2
mov word [ecx], ax
sub esi, 1
jne 0x6706d32b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 4]
jne 0x6706d369
mov esi, dword [esp + 0x14]
sub esi, ebx
and esi, 0xfffffffe
push esi
push ebx
push edi
call fcn.671a4d7a
mov ebx, dword [esp + 0x20]
add esp, 0xc
add edi, esi
push 0x25
pop eax
cmp ebx, dword [esp + 0x14]
jne 0x6706d1fe
mov esi, dword [esp + 0x30]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret