Function at 0x763c0443
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0x50
mov eax, 0x237c12
call fcn.763c6697
mov edi, ecx
mov esi, edx
mov eax, dword [esi + 0x16]
push dword [esi + 0x1a]
mov dword [ebp - 0x2c], eax
call fcn.763c5c8c
movzx ebx, word [esi + 0x20]
mov esi, dword [esi + 0x22]
test esi, esi
pop ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
jne 0x763c057e
and dword [ebp - 4], 0
movzx eax, bx
imul eax, dword [ebp - 0x2c]
add eax, 0x1f
and eax, 0xffffffe0
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
push esi
mov dword [ebp - 0x44], esi
call fcn.763c5c0e
or dword [ebp - 4], 0xffffffff
and dword [ebp - 0x28], 0
cmp dword [ebp - 0x34], 0
pop ecx
mov dword [ebp - 0x1c], eax
jbe 0x763c0560
jmp 0x763c04b7
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp + 8]
push esi
push dword [ebp - 0x1c]
push dword [eax + 0x14]
call dword [eax]
add esp, 0xc
cmp eax, esi
jne 0x763c0560
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
push 8
pop eax
movzx ecx, bx
cdq
idiv ecx
mov esi, dword [ebp - 0x28]
imul esi, dword [ebp + 0xc]
and dword [ebp - 0x20], 0
add esi, edi
cmp dword [ebp - 0x2c], 0
mov byte [ebp - 0x16], al
jbe 0x763c0551
xor bl, bl
or dl, 0xff
mov cl, bl
shl dl, cl
mov al, 8
sub al, byte [ebp - 0x30]
shr dl, cl
sub al, bl
mov cl, al
add bl, byte [ebp - 0x30]
shr dl, cl
shl dl, cl
mov ecx, dword [ebp - 0x24]
and dl, byte [ecx]
mov cl, al
shr dl, cl
mov ecx, dword [ebp + 0x10]
movzx eax, dl
lea ecx, [ecx + eax*4]
mov al, byte [ecx]
mov byte [esi], al
mov al, byte [ecx + 1]
mov byte [esi + 1], al
mov al, byte [ecx + 2]
mov byte [esi + 2], al
mov byte [esi + 3], 0xff
add esi, 4
cmp bl, 8
jb 0x763c04f5
movzx eax, byte [ebp - 0x16]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x24]
cmp eax, dword [ebp - 0x2c]
jb 0x763c04f3
mov ebx, dword [ebp - 0x30]
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x34]
jb 0x763c04b4
push dword [ebp - 0x1c]
jmp 0x763c0685
cmp esi, 1
jne 0x763c0589
cmp bx, 8
je 0x763c059c
cmp esi, 2
jne 0x763c088f
cmp bx, 4
jne 0x763c088f
mov ebx, 0x400
push ebx
call fcn.763c5c0e
push ebx
mov esi, eax
push 0
push esi
mov dword [ebp - 0x3c], esi
call fcn.763c5c14
mov ecx, dword [ebp - 0x30]
add esp, 0x10
push 8
pop eax
movzx ebx, cx
cdq
idiv ebx
cmp cx, 8
mov byte [ebp - 0x13], al
jne 0x763c05d1
mov byte [ebp - 0x11], 0
cmp cx, 4
jne 0x763c05db
mov byte [ebp - 0x11], 1
cmp cx, 8
jne 0x763c05e5
mov byte [ebp - 0x16], 0
cmp cx, 4
jne 0x763c05ef
mov byte [ebp - 0x16], 1
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x12], al
mov byte [ebp - 0x24], al
mov byte [ebp - 0x14], al
mov byte [ebp - 0x15], al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x40], ebx
jne 0x763c0631
mov eax, dword [ebp + 8]
push 0x400
push esi
push dword [eax + 0x14]
call dword [eax]
movzx ecx, byte [ebp - 0x13]
imul eax, ecx
add esp, 0xc
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x40], eax
je 0x763c0684
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, edx
jne 0x763c0657
mov cl, byte [ebp - 0x11]
mov eax, ebx
shr eax, cl
movzx ecx, byte [ebp - 0x13]
mov al, byte [eax + esi]
add ebx, ecx
xor ecx, ecx
test al, al
setne cl
mov byte [ebp - 0x12], al
inc ecx
jmp 0x763c06a1
cmp eax, 1
jne 0x763c06a9
mov cl, byte [ebp - 0x11]
mov eax, ebx
shr eax, cl
movzx ecx, byte [ebp - 0x13]
mov al, byte [eax + esi]
add ebx, ecx
test al, al
mov byte [ebp - 0x24], al
jne 0x763c0692
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x28], edx
jb 0x763c060b
push esi
call fcn.763c5c1a
pop ecx
mov al, 1
jmp 0x763c0891
cmp al, 1
je 0x763c0684
xor ecx, ecx
cmp al, 2
setne cl
lea ecx, [ecx + ecx + 3]
mov dword [ebp - 0x28], ecx
jmp 0x763c060b
cmp eax, 2
jne 0x763c0777
mov cl, byte [ebp - 0x11]
mov eax, ebx
shr eax, cl
movzx ecx, byte [ebp - 0x12]
mov al, byte [eax + esi]
add ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x24], al
movzx eax, byte [ebp - 0x13]
add ebx, eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
jbe 0x763c06dc
sub al, byte [ebp - 0x1c]
mov byte [ebp - 0x12], al
cmp byte [ebp - 0x12], 0
mov dword [ebp - 0x28], edx
jbe 0x763c076d
mov ecx, dword [ebp - 0x20]
imul ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
lea eax, [edi + 1]
add ecx, eax
lea esi, [ecx + edx*4]
mov ecx, edi
sub ecx, eax
add ecx, 2
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x38], edi
sub dword [ebp - 0x38], eax
mov ecx, edi
sub ecx, eax
movzx eax, byte [ebp - 0x12]
add ecx, 3
add dword [ebp - 0x1c], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x28], eax
jne 0x763c072b
and dword [ebp - 0x28], 0
push dword [ebp - 0x30]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.763c089e
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x38]
movzx eax, al
lea eax, [ecx + eax*4]
mov cl, byte [eax]
mov byte [edx + esi], cl
mov cl, byte [eax + 1]
mov byte [esi], cl
mov al, byte [eax + 2]
mov ecx, dword [ebp - 0x4c]
mov byte [ecx + esi], al
mov eax, dword [ebp - 0x50]
mov byte [eax + esi], 0xff
add esi, 4
inc dword [ebp - 0x28]
dec dword [ebp - 0x44]
jne 0x763c071f
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x24], 0
jmp 0x763c07d8
cmp eax, 3
jne 0x763c079b
mov cl, byte [ebp - 0x11]
mov eax, ebx
shr eax, cl
mov dword [ebp - 0x28], 4
mov al, byte [eax + esi]
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x13]
add ebx, eax
jmp 0x763c060b
cmp eax, 4
jne 0x763c07e1
mov cl, byte [ebp - 0x11]
mov eax, ebx
shr eax, cl
movzx ecx, byte [ebp - 0x13]
mov al, byte [eax + esi]
add ebx, ecx
movzx ecx, byte [ebp - 0x15]
add dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x2c]
jb 0x763c07c6
inc dword [ebp - 0x20]
and dword [ebp - 0x1c], 0
movzx eax, al
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x34]
jae 0x763c0684
and dword [ebp - 0x28], 0
jmp 0x763c060b
cmp eax, 5
jne 0x763c085c
movzx ecx, byte [ebp - 0x24]
add ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
jbe 0x763c07fa
sub al, byte [ebp - 0x1c]
mov byte [ebp - 0x24], al
push dword [ebp - 0x30]
mov cl, byte [ebp - 0x11]
movzx eax, bl
and al, byte [ebp - 0x16]
push eax
mov eax, ebx
shr eax, cl
movzx eax, byte [eax + esi]
push eax
call fcn.763c089e
mov ecx, dword [ebp - 0x20]
imul ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
lea ecx, [ecx + edx*4]
mov edx, dword [ebp + 0x10]
movzx eax, al
lea eax, [edx + eax*4]
mov dl, byte [eax]
inc ebx
inc dword [ebp - 0x1c]
dec byte [ebp - 0x24]
inc byte [ebp - 0x14]
mov byte [ecx + edi], dl
mov dl, byte [eax + 1]
mov byte [ecx + edi + 1], dl
mov al, byte [eax + 2]
mov byte [ecx + edi + 2], al
mov al, byte [ebp - 0x24]
neg al
mov byte [ecx + edi + 3], 0xff
sbb eax, eax
add eax, 6
mov dword [ebp - 0x28], eax
jmp 0x763c0887
cmp eax, 6
jne 0x763c0684
movzx ecx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x14]
add ecx, ecx
cdq
lea esi, [ecx + 2]
idiv esi
test edx, edx
je 0x763c087f
sub ecx, edx
lea ebx, [ebx + ecx + 2]
and dword [ebp - 0x28], 0
mov byte [ebp - 0x14], 0
mov esi, dword [ebp - 0x3c]
jmp 0x763c060b
xor al, al
call fcn.763c673c
ret 0xc