Function at 0x180096680
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
sub rsp, 0x10
movzx edx, byte [rcx + 0x91]
mov r9, rcx
movzx esi, byte [rcx + 0x92]
movzx eax, dl
and al, 0xc
neg al
movzx eax, dl
sbb r8b, r8b
sar al, 7
and al, 0x44
and r8b, 4
or r8b, al
mov eax, dword [rcx + 0x3cc]
neg eax
movzx eax, byte [r9 + 0x388]
sbb cl, cl
and al, 1
and cl, 0x25
shl al, 4
or r8b, cl
and dl, 3
or r8b, al
or r8b, dl
cmp sil, r8b
je 0x18009701f
mov qword [rsp + 0x20], rbx
lea rax, [r9 + 0xf88]
mov qword [rsp + 0x28], rbp
movzx ecx, r8b
mov qword [rsp + 0x30], rdi
and cl, 0x30
mov qword [rsp + 8], r14
mov qword [rsp], r15
lea r15, section..text
mov byte [r9 + 0x92], r8b
cmp cl, 0x10
jne 0x180096752
movzx ecx, word [0x1801520ee]
movzx edx, word [0x1801520f4]
add rcx, r15
movzx r10d, word [0x1801520dc]
add rdx, r15
movzx r11d, word [0x1801520fa]
add r10, r15
movzx ebx, word [0x180152102]
add r11, r15
movzx edi, word [0x180152108]
jmp 0x18009677c
mov rcx, qword [rax + 0x750]
lea r10, [0x180002529]
mov rdx, qword [rax + 0x768]
mov r11, qword [rax + 0x780]
movzx ebx, word [0x180152104]
movzx edi, word [0x18015210a]
lea rbp, [rdi + r15]
mov qword [rax + 0x748], rcx
lea r14, [rbx + r15]
mov qword [rax + 0x760], rdx
movzx edi, r8b
mov qword [rax + 0x700], r10
movzx ebx, r8b
mov qword [rax + 0x778], r11
xor dil, sil
and bl, 4
test dil, 0x64
je 0x1800968de
test bl, bl
jne 0x180096874
mov rdx, rax
lea rcx, [rax + 0x4d0]
mov r10d, 5
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x20], xmm0
movups xmmword [rdx - 0x10], xmm1
sub r10, 1
jne 0x1800967d0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rdx + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x30]
mov rcx, qword [rcx + 0x40]
movups xmmword [rdx + 0x20], xmm0
movups xmmword [rdx + 0x30], xmm1
mov qword [rdx + 0x40], rcx
test r8b, 2
je 0x180096940
lea rcx, [0x180004a1a]
mov qword [rax + 0x248], rcx
mov qword [rax + 0x250], rcx
mov qword [rax + 0x258], rcx
jmp 0x180096939
test r8b, 0x40
je 0x180096883
lea rdx, [0x180004bbb]
jmp 0x180096899
test r8b, 0x20
lea rdx, [0x180004a27]
lea rcx, [0x1800049ff]
cmovne rdx, rcx
mov rcx, rax
mov r10d, inet_ntoa
nop dword [rax]
nop word [rax + rax]
mov qword [rcx], rdx
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rdx
lea rcx, [rcx + 0x40]
mov qword [rcx - 0x28], rdx
mov qword [rcx - 0x20], rdx
mov qword [rcx - 0x18], rdx
mov qword [rcx - 0x10], rdx
mov qword [rcx - 8], rdx
sub r10, 1
jne 0x1800968b0
mov qword [rcx], rdx
jmp 0x180096940
test bl, bl
jne 0x180096940
mov qword [rax + 0x278], rcx
mov qword [rax + 0x290], rdx
mov qword [rax + 0x230], r10
mov qword [rax + 0x2a8], r11
test r8b, 2
jne 0x180096853
mov rcx, qword [rax + 0x718]
mov qword [rax + 0x248], rcx
mov rcx, qword [rax + 0x720]
mov qword [rax + 0x250], rcx
mov rcx, qword [rax + 0x728]
mov qword [rax + 0x258], rcx
mov rcx, qword [rax + 0x730]
mov qword [rax + 0x260], rcx
mov rbx, qword [rsp + 0x20]
test dil, 1
mov rdi, qword [rsp + 0x30]
je 0x180096f90
test r8b, 1
jne 0x180096dc0
movzx ecx, word [0x180152102]
add rcx, r15
mov qword [rax + 0x2c8], rcx
movzx ecx, word [0x180152104]
add rcx, r15
mov qword [rax + 0x2d0], rcx
movzx ecx, word [0x180152106]
add rcx, r15
mov qword [rax + 0x2d8], rcx
movzx ecx, word [0x180152108]
add rcx, r15
mov qword [rax + 0x2e0], rcx
movzx ecx, word [0x18015210a]
add rcx, r15
mov qword [rax + 0x2e8], rcx
movzx ecx, word [0x18015210c]
add rcx, r15
mov qword [rax + 0x2f0], rcx
movzx ecx, word [0x18015210e]
add rcx, r15
mov qword [rax + 0x2f8], rcx
movzx ecx, word [0x180152110]
add rcx, r15
mov qword [rax + 0x300], rcx
movzx ecx, word [str.__q_]
add rcx, r15
mov qword [rax + 0x308], rcx
movzx ecx, word [0x180152114]
add rcx, r15
mov qword [rax + 0x310], rcx
movzx ecx, word [0x180152116]
add rcx, r15
mov qword [rax + 0x318], rcx
movzx ecx, word [0x180152118]
add rcx, r15
mov qword [rax + 0x320], rcx
movzx ecx, word [0x18015211a]
add rcx, r15
mov qword [rax + 0x328], rcx
movzx ecx, word [0x18015211c]
add rcx, r15
mov qword [rax + 0x330], rcx
movzx ecx, word [0x18015211e]
add rcx, r15
mov qword [rax + 0x338], rcx
movzx ecx, word [0x180152120]
add rcx, r15
mov qword [rax + 0x340], rcx
movzx ecx, word [0x180152122]
add rcx, r15
mov qword [rax + 0x348], rcx
movzx ecx, word [0x180152124]
add rcx, r15
mov qword [rax + 0x350], rcx
movzx ecx, word [0x180152126]
add rcx, r15
mov qword [rax + 0x358], rcx
movzx ecx, word [0x180152128]
add rcx, r15
mov qword [rax + 0x360], rcx
movzx ecx, word [0x18015212a]
add rcx, r15
mov qword [rax + 0x368], rcx
movzx ecx, word [0x18015212c]
add rcx, r15
mov qword [rax + 0x370], rcx
movzx ecx, word [0x18015212e]
add rcx, r15
mov qword [rax + 0x378], rcx
movzx ecx, word [0x180152130]
add rcx, r15
mov qword [rax + 0x380], rcx
movzx ecx, word [0x180152132]
add rcx, r15
mov qword [rax + 0x388], rcx
movzx ecx, word [0x180152134]
add rcx, r15
mov qword [rax + 0x390], rcx
movzx ecx, word [0x180152136]
add rcx, r15
mov qword [rax + 0x398], rcx
movzx ecx, word [0x180152138]
add rcx, r15
mov qword [rax + 0x3a0], rcx
movzx ecx, word [0x18015213a]
add rcx, r15
mov qword [rax + 0x3a8], rcx
movzx ecx, word [0x18015213c]
add rcx, r15
mov qword [rax + 0x3b0], rcx
movzx ecx, word [0x18015213e]
add rcx, r15
mov qword [rax + 0x3b8], rcx
movzx ecx, word [0x180152140]
add rcx, r15
mov qword [rax + 0x3c0], rcx
movzx ecx, word [0x180152142]
add rcx, r15
mov qword [rax + 0x3c8], rcx
movzx ecx, word [0x180152144]
add rcx, r15
mov qword [rax + 0x3d0], rcx
movzx ecx, word [0x180152146]
add rcx, r15
mov qword [rax + 0x3d8], rcx
movzx ecx, word [0x180152148]
add rcx, r15
mov qword [rax + 0x3e0], rcx
movzx ecx, word [0x18015214a]
add rcx, r15
mov qword [rax + 0x3e8], rcx
movzx ecx, word [0x18015214c]
add rcx, r15
mov qword [rax + 0x3f0], rcx
movzx ecx, word [0x18015214e]
add rcx, r15
mov qword [rax + 0x3f8], rcx
movzx ecx, word [0x180152150]
add rcx, r15
mov qword [rax + 0x400], rcx
movzx ecx, word [0x180152152]
add rcx, r15
mov qword [rax + 0x408], rcx
movzx ecx, word [0x180152154]
add rcx, r15
mov qword [rax + 0x410], rcx
movzx ecx, word [0x180152156]
add rcx, r15
mov qword [rax + 0x418], rcx
movzx ecx, word [0x180152158]
add rcx, r15
mov qword [rax + 0x420], rcx
movzx ecx, word [0x18015215a]
add rcx, r15
mov qword [rax + 0x428], rcx
movzx ecx, word [0x18015215c]
add rcx, r15
mov qword [rax + 0x430], rcx
movzx ecx, word [0x18015215e]
add rcx, r15
mov qword [rax + 0x438], rcx
movzx ecx, word [0x180152160]
add rcx, r15
mov qword [rax + 0x440], rcx
movzx ecx, word [0x180152162]
add rcx, r15
mov qword [rax + 0x448], rcx
movzx ecx, word [0x180152164]
add rcx, r15
mov qword [rax + 0x450], rcx
movzx ecx, word [0x180152166]
add rcx, r15
mov qword [rax + 0x458], rcx
movzx ecx, word [0x180152168]
add rcx, r15
mov qword [rax + 0x460], rcx
movzx ecx, word [0x18015216a]
add rcx, r15
mov qword [rax + 0x468], rcx
movzx ecx, word [0x18015216c]
add rcx, r15
mov qword [rax + 0x470], rcx
movzx ecx, word [0x18015216e]
add rcx, r15
mov qword [rax + 0x478], rcx
movzx ecx, word [0x180152170]
add rcx, r15
mov qword [rax + 0x480], rcx
movzx ecx, word [0x180152172]
add rcx, r15
mov qword [rax + 0x488], rcx
movzx ecx, word [0x180152174]
add rcx, r15
mov qword [rax + 0x490], rcx
movzx ecx, word [0x180152176]
add rcx, r15
mov qword [rax + 0x498], rcx
movzx ecx, word [0x180152178]
add rcx, r15
mov qword [rax + 0x4a0], rcx
movzx ecx, word [0x18015217a]
add rcx, r15
mov qword [rax + 0x4a8], rcx
movzx ecx, word [0x18015217c]
add rcx, r15
mov qword [rax + 0x4b0], rcx
movzx ecx, word [0x18015217e]
add rcx, r15
mov qword [rax + 0x4b8], rcx
movzx ecx, word [0x180152180]
add rcx, r15
mov qword [rax + 0x4c0], rcx
movzx ecx, word [0x180152182]
add rcx, r15
mov qword [rax + 0x4c8], rcx
jmp 0x180096f96
lea rcx, [0x180004abd]
mov qword [rax + 0x2c8], rcx
mov qword [rax + 0x2d0], rcx
mov qword [rax + 0x2d8], rcx
mov qword [rax + 0x2e0], rcx
mov qword [rax + 0x2e8], rcx
mov qword [rax + 0x2f0], rcx
mov qword [rax + 0x2f8], rcx
mov qword [rax + 0x300], rcx
mov qword [rax + 0x308], rcx
mov qword [rax + 0x310], rcx
mov qword [rax + 0x318], rcx
mov qword [rax + 0x320], rcx
mov qword [rax + 0x328], rcx
mov qword [rax + 0x330], rcx
mov qword [rax + 0x338], rcx
mov qword [rax + 0x340], rcx
mov qword [rax + 0x348], rcx
mov qword [rax + 0x350], rcx
mov qword [rax + 0x358], rcx
mov qword [rax + 0x360], rcx
mov qword [rax + 0x368], rcx
mov qword [rax + 0x370], rcx
mov qword [rax + 0x378], rcx
mov qword [rax + 0x380], rcx
mov qword [rax + 0x388], rcx
mov qword [rax + 0x390], rcx
mov qword [rax + 0x398], rcx
mov qword [rax + 0x3a0], rcx
mov qword [rax + 0x3a8], rcx
mov qword [rax + 0x3b0], rcx
mov qword [rax + 0x3b8], rcx
mov qword [rax + 0x3c0], rcx
mov qword [rax + 0x3c8], rcx
mov qword [rax + 0x3d0], rcx
mov qword [rax + 0x3d8], rcx
mov qword [rax + 0x3e0], rcx
mov qword [rax + 0x3e8], rcx
mov qword [rax + 0x3f0], rcx
mov qword [rax + 0x3f8], rcx
mov qword [rax + 0x400], rcx
mov qword [rax + 0x408], rcx
mov qword [rax + 0x410], rcx
mov qword [rax + 0x418], rcx
mov qword [rax + 0x420], rcx
mov qword [rax + 0x428], rcx
mov qword [rax + 0x430], rcx
mov qword [rax + 0x438], rcx
mov qword [rax + 0x440], rcx
mov qword [rax + 0x448], rcx
mov qword [rax + 0x450], rcx
mov qword [rax + 0x458], rcx
mov qword [rax + 0x460], rcx
mov qword [rax + 0x468], rcx
mov qword [rax + 0x470], rcx
mov qword [rax + 0x478], rcx
mov qword [rax + 0x480], rcx
mov qword [rax + 0x488], rcx
mov qword [rax + 0x490], rcx
mov qword [rax + 0x498], rcx
mov qword [rax + 0x4a0], rcx
mov qword [rax + 0x4a8], rcx
mov qword [rax + 0x4b0], rcx
mov qword [rax + 0x4b8], rcx
mov qword [rax + 0x4c0], rcx
mov qword [rax + 0x4c8], rcx
jmp 0x180096fa4
test r8b, 1
jne 0x180096fa4
mov qword [rax + 0x2c8], r14
mov qword [rax + 0x2e0], rbp
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov rbp, qword [rsp + 0x28]
test r8b, 0x10
je 0x18009701f
test sil, 0x10
jne 0x18009701f
movzx eax, word [r9 + 0x95c]
add ax, ax
dec ax
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or ecx, eax
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movups xmmword [r9 + 0xf08], xmm0
movups xmmword [r9 + 0xf18], xmm0
movups xmmword [r9 + 0xf28], xmm0
movups xmmword [r9 + 0xf38], xmm0
movups xmmword [r9 + 0xf48], xmm0
movups xmmword [r9 + 0xf58], xmm0
movups xmmword [r9 + 0xf68], xmm0
movups xmmword [r9 + 0xf78], xmm0
add rsp, 0x10
pop rsi
ret