Function at 0x75c8e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x10
push ebx
push esi
push edi
mov esi, 0xd92bb0
mov edi, 0xa
push esi
call fcn.00655ef0
add esp, 4
add esi, 0x4c0
dec edi
jne 0x656b00
mov esi, 0xd95ff0
mov edi, 0xa
lea esp, [esp]
push esi
call fcn.00655ef0
add esp, 4
add esi, 0x4c0
dec edi
jne 0x656b20
mov eax, dword [0x91db50]
mov byte [eax + 0x4c], 0
mov ecx, dword [0x91db50]
mov byte [ecx + 0x53], 0
mov edx, dword [0x91db50]
mov byte [edx + 0x54], 0
mov eax, dword [0x91db50]
mov byte [eax + 0x52], 0
mov eax, dword [0x91db50]
shr word [eax + 2], 1
mov ecx, dword [0x91db50]
mov byte [ecx + 0xd0], 0
mov edx, dword [0x91db50]
mov byte [edx + 0xcf], 0
xor bl, bl
lea ecx, [ecx]
test bl, bl
mov eax, 0xd92bb0
je 0x656b8e
mov eax, 0xd95ff0
movzx ecx, byte [eax + 0xd9]
mov edx, dword [0x91db50]
mov byte [ecx + edx + 0xbc], 0
movzx ecx, byte [eax + 0xd9]
mov esi, dword [0x91db50]
xor edx, edx
mov dword [esi + ecx*4 + 0xa4], edx
movzx ecx, byte [eax + 0xd9]
mov esi, dword [0x91db50]
mov dword [esi + ecx*4 + 0xac], edx
movzx ecx, byte [eax + 0xd9]
mov esi, dword [0x91db50]
mov byte [ecx + esi + 0xca], dl
movzx ecx, byte [eax + 0xd9]
mov esi, dword [0x91db50]
mov byte [ecx + esi + 0xcc], dl
movzx ecx, byte [eax + 0xd9]
mov esi, dword [0x91db50]
mov byte [ecx + esi + 0xc8], dl
mov esi, 5
mov edi, edi
movzx ecx, byte [eax + 0xd9]
lea edi, [edx + ecx*4]
lea ecx, [ecx + edi + 0x4e]
mov edi, dword [0x91db50]
lea edi, [edi + ecx*2]
inc edx
dec esi
mov byte [ecx + edi], 0xff
jne 0x656c10
inc bl
cmp bl, 2
jb 0x656b80
mov edx, dword [0x91db50]
mov byte [edx + 0xe5], 0
mov eax, dword [0x91cfa8]
movzx eax, byte [eax + 0x71]
cmp eax, 3
ja case.default.0x656c59
jmp dword [eax*4 + 0x656f3c]
lea ecx, [esp + 0xf]
push ecx
lea edx, [esp + 0x10]
push edx
call fcn.00671d80
movzx ecx, byte [esp + 0x14]
mov eax, 0x66666667
imul ecx
movzx ecx, byte [0xed5aa0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
add esp, 8
cmp ecx, edx
mov bl, 1
jge 0x656ca1
mov edx, dword [0x91db50]
mov byte [edx + 0xcf], bl
movzx ecx, byte [esp + 0xc]
mov eax, 0x66666667
imul ecx
movzx ecx, byte [0xed8410]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
jmp 0x656d7f
mov ecx, dword [0xed5a7c]
mov edx, dword [0xed83ec]
mov eax, ecx
sub eax, edx
test eax, eax
jg 0x656cdb
neg eax
cmp eax, 2
jl case.0x656c59.2
cmp ecx, edx
jle 0x656cf5
mov eax, dword [0x91db50]
mov byte [eax + 0xd0], 2
jmp case.default.0x656c59
mov ecx, dword [0x91db50]
mov byte [ecx + 0xcf], 2
jmp case.default.0x656c59
mov cl, byte [0xed8410]
mov dl, byte [0xed5aa0]
movzx esi, cl
movzx eax, dl
sub eax, esi
test eax, eax
jg 0x656d21
neg eax
cmp eax, 5
mov bl, 1
jle 0x656d45
cmp dl, cl
jbe 0x656d3a
mov edx, dword [0x91db50]
mov byte [edx + 0xd0], bl
jmp 0x656d45
mov eax, dword [0x91db50]
mov byte [eax + 0xcf], bl
mov ecx, dword [0x91cfa8]
movzx eax, byte [ecx + 0x71]
lea edx, [eax + eax*2]
movzx eax, byte [0xed5aa0]
cmp eax, edx
jge 0x656d69
mov ecx, dword [0x91db50]
mov byte [ecx + 0xcf], bl
mov edx, dword [0x91cfa8]
movzx eax, byte [edx + 0x71]
movzx ecx, byte [0xed8410]
lea eax, [eax + eax*2]
cmp ecx, eax
jge case.default.0x656c59
mov edx, dword [0x91db50]
mov byte [edx + 0xd0], bl
mov byte [esp + 0xd], 0
mov edi, 0xffff8001
xor bl, bl
lea esp, [esp]
test bl, bl
mov eax, 0xd95ff0
jne 0x656dae
mov eax, 0xd92bb0
movzx ecx, byte [eax + 0xd8]
movzx esi, byte [eax + 0xd8]
push 0x32
mov byte [esp + ecx + 0x14], 2
call fcn.0063c860
mov edx, esi
imul edx, edx, 0x274
movzx ecx, byte [edx + 0xe7ecd1]
add esp, 4
cmp eax, ecx
jge 0x656de3
mov byte [esp + esi + 0x10], 0
inc bl
cmp bl, 2
jb 0x656da0
xor al, al
mov byte [esp + 0xe], al
test al, al
mov esi, 0xd95ff0
jne 0x656dfe
mov esi, 0xd92bb0
mov dword [esp + 0x14], 0xa
jmp 0x656e10
mov al, byte [esi + 1]
test al, al
je 0x656f0c
mov al, byte [esi + 0xd9]
xor edx, edx
test al, al
sete dl
movsx eax, di
lea edx, [edx + edx - 1]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fmul dword [esi + 0x2c4]
fild dword [esp + 0x18]
fcompp
fnstsw ax
test ah, 5
jp 0x656f0c
movzx eax, byte [esi + 0xd8]
mov cl, byte [esp + eax + 0x10]
movzx edx, byte [esi + 0xd7]
test cl, cl
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
jne 0x656e84
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6634]
shr ecx, 0xb
push 0x1e
and ecx, 0x7f
jmp 0x656e95
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6628]
push 0x28
shr ecx, 0x19
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
mov ebx, edx
add ebx, eax
movzx eax, bl
lea ecx, [eax + eax*2]
add esp, 8
push ecx
call fcn.0063c860
add esp, 4
test eax, eax
je 0x656f0c
cmp bl, byte [esp + 0xd]
jb 0x656f0c
movzx edx, byte [esi + 0xd8]
mov al, byte [esi]
mov ecx, dword [0x91db50]
mov byte [edx + ecx + 0xd8], al
mov al, byte [esi + 0xd9]
xor edx, edx
test al, al
sete dl
mov byte [esp + 0xd], bl
lea edx, [edx + edx - 1]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmul dword [esi + 0x2c4]
call fcn.0043bd30
mov edi, eax
mov eax, dword [esp + 0x14]
add esi, 0x4c0
dec eax
mov dword [esp + 0x14], eax
jne 0x656e10
mov al, byte [esp + 0xe]
inc al
cmp al, 2
mov byte [esp + 0xe], al
jb 0x656df0
pop edi
pop esi
pop ebx
add esp, 0x10
ret
sub esp, 0xc
movzx eax, byte [0xd92c88]
mov ecx, dword [0x91cfa4]
cmp byte [eax + ecx + 0x35], 1
mov dword [esp + 4], 0xd92bb0
je 0x75c907
mov dword [esp + 4], 0xd95ff0
mov ecx, dword [0x91db50]
xor eax, eax
mov ax, word [ecx + 2]
test ax, ax
je 0x75c922
dec eax
mov word [ecx + 2], ax
jmp 0x75c9e4
push esi
push edi
xor esi, esi
mov edi, 5
jmp 0x75c930
cmp esi, 4
ja case.default.0x75c939
jmp dword [esi*4 + 0x75ca24]
mov byte [esp + 8], 1
jmp 0x75c961
mov byte [esp + 8], 3
jmp 0x75c961
mov byte [esp + 8], 7
jmp 0x75c961
mov byte [esp + 8], 4
jmp 0x75c961
mov byte [esp + 8], 5
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor ecx, ecx
mov cl, byte [eax]
push edx
push ecx
call fcn.00657a50
add esp, 8
test al, al
je case.default.0x75c939
cmp al, 0xff
je 0x75c98c
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x75c991
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
cmp byte [edx], 0
je case.default.0x75c939
mov cl, byte [edx + 0xd9]
xor eax, eax
test cl, cl
sete al
lea eax, [eax + eax - 1]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [edx + 0x2c4]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x41
jne case.default.0x75c939
mov ecx, dword [0x91db50]
mov word [ecx + 2], 0xc
inc esi
dec edi
jne 0x75c930
pop edi
pop esi
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x35]
mov ecx, dword [0x91db50]
cmp byte [ecx + 0x16], al
je 0x75ca00
mov byte [ecx + 0x16], al
call 0x656af0
mov eax, dword [0x91cfa4]
mov ecx, dword [0x91db50]
mov al, byte [eax + 0x36]
cmp byte [ecx + 0x17], al
je 0x75ca1e
mov byte [ecx + 0x17], al
add esp, 0xc
jmp 0x656af0
add esp, 0xc
ret