Function at 0x14001f680
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rdi
push r12
sub rsp, 0xa0
mov rax, rdx
xor dil, dil
mov r12, r8
shr rax, 0x20
mov rbx, rcx
imul eax, edx
test rcx, rcx
je 0x14001fd98
test r8, r8
je 0x14001fd98
test r9, r9
je 0x14001fd98
mov rcx, qword [rsp + 0xe8]
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x40], r15
test rcx, rcx
je 0x14001f6ec
mov edx, dword [rcx]
mov ecx, 0x64
test edx, edx
cmovs edx, ecx
jmp 0x14001f6f1
mov edx, 0x64
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14001f70f
mov r15d, dword [rcx]
mov ecx, gethostbyname
test r15d, r15d
cmovs r15d, ecx
jmp 0x14001f715
mov r15d, gethostbyname
mov ecx, 0xff
movsxd r13, eax
cmp edx, ecx
mov qword [rsp + 0x68], r13
cmovg edx, ecx
cmp r15d, ecx
cmovg r15d, ecx
mov rcx, r13
mov dword [rsp + 0x44], edx
cmp r15d, edx
cmovg r15d, edx
mov dword [rsp + 0x40], r15d
call fcn.1401084ac
mov r9, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14001fd7b
xor r8d, r8d
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x80], r14
mov edx, r8d
test r13, r13
jle 0x14001f7be
movzx r8d, byte [rsp + 0xe0]
test r8b, r8b
je 0x14001f78e
movzx eax, byte [rbx + rdx*4]
jmp 0x14001f7b2
movzx ecx, byte [rbx + rdx*4 + 1]
movzx eax, byte [rbx + rdx*4 + 2]
imul eax, eax, 0x1c
imul ecx, ecx, 0x96
add ecx, eax
movzx eax, byte [rbx + rdx*4]
imul eax, eax, 0x4d
add ecx, eax
sar ecx, 8
movzx eax, cl
mov byte [rdx + r9], al
inc rdx
cmp rdx, r13
jl 0x14001f783
mov eax, 4
mov rsi, 0xffffffffffffffff
mul r13
cmovo rax, rsi
mov rcx, rax
call fcn.1401094b8
mov rbp, rax
mov qword [rsp + 0x60], rax
mov eax, 4
mul r13
cmovo rax, rsi
mov rcx, rax
call fcn.1401094b8
mov r14, rax
mov qword [rsp + 0x38], rax
mov eax, 4
mul r13
cmovo rax, rsi
mov rcx, rax
call fcn.1401094b8
mov rbx, rax
mov qword [rsp + 0x20], rax
mov eax, 8
mul r13
cmovo rax, rsi
mov rcx, rax
call fcn.1401094b8
mov qword [rsp + 0x48], rax
mov rsi, rax
mov qword [rsp + 0x58], rax
test rbp, rbp
je 0x14001fd23
test r14, r14
je 0x14001fd23
mov r11, rbx
test rbx, rbx
je 0x14001fd23
test rax, rax
je 0x14001fd23
xor ecx, ecx
mov eax, ecx
test r13, r13
jle 0x14001f880
nop word [rax + rax]
mov dword [rbp + rax*4], ecx
mov byte [rax + r12], cl
inc rax
cmp rax, r13
jl 0x14001f870
mov edx, dword [rsp + 0xcc]
mov rcx, qword [rsp + 0xc8]
mov r13d, 1
lea eax, [rdx - 1]
mov dword [rsp + 0x28], r13d
cmp eax, r13d
jle 0x14001f9f2
lea r9d, [rcx - 1]
nop word [rax + rax]
mov eax, r13d
mov dword [rsp + 0xc0], 1
imul eax, ecx
movsxd r8, eax
cmp r9d, 1
jle 0x14001f9cc
mov rdi, qword [rsp + 0x30]
mov r15, rbp
lea rax, [r8 + 1]
lea r12, [rdi + 1]
mov rsi, rdi
sub r14, r11
sub r15, r11
lea r13, [r11 + r8*4 + 4]
mov rbp, rax
sub rsi, r12
jmp 0x14001f905
mov rdi, qword [rsp + 0x30]
movsxd rax, ecx
mov r8, rbp
add r13, 4
lea rdx, [rax + rbp]
sub r8, rax
lea rax, [r12 + rbp]
movzx r9d, byte [rdx + rdi + 1]
movzx ebx, byte [rdx + rdi - 1]
movzx ecx, byte [rsi + rax - 1]
movzx r11d, byte [r8 + rdi - 1]
movzx r10d, byte [r8 + rdi + 1]
movzx edi, byte [rax]
mov rax, qword [rsp + 0x30]
add ecx, ecx
add edi, edi
sub edi, ecx
movzx ecx, byte [rdx + rax]
movzx eax, byte [r8 + rax]
add ecx, ecx
add eax, eax
sub edi, ebx
sub ecx, eax
sub edi, r11d
inc rbp
sub ecx, r10d
add edi, r9d
sub ecx, r11d
add edi, r10d
add ecx, r9d
mov dword [r14 + r13 - 4], edi
add ecx, ebx
mov dword [r13 - 4], ecx
mov eax, ecx
cdq
mov ecx, eax
mov eax, edi
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov eax, dword [rsp + 0xc0]
mov dword [r15 + r13 - 4], ecx
mov rcx, qword [rsp + 0xc8]
inc eax
lea r9d, [rcx - 1]
mov dword [rsp + 0xc0], eax
cmp eax, r9d
jl 0x14001f900
mov edx, dword [rsp + 0xcc]
mov rbp, qword [rsp + 0x60]
mov r13d, dword [rsp + 0x28]
mov r11, qword [rsp + 0x20]
mov r14, qword [rsp + 0x38]
inc r13d
lea eax, [rdx - 1]
mov dword [rsp + 0x28], r13d
cmp r13d, eax
jl 0x14001f8b0
mov rsi, qword [rsp + 0x58]
mov r12, qword [rsp + 0xd0]
mov r15d, dword [rsp + 0x40]
mov r8d, 1
lea eax, [rdx - 1]
mov dword [rsp + 0xc0], r8d
cmp eax, r8d
jle 0x14001fcd6
nop dword [rax]
mov edi, r8d
lea eax, [rcx - 1]
mov ebx, 1
imul edi, ecx
movsxd r8, edi
cmp eax, ebx
jle 0x14001fb30
mov r13, r14
mov r14, r11
lea r9, [r8 + 1]
sub r13, rbp
sub r14, rbp
lea r10, [rbp + r8*4 + 8]
nop
mov r8d, dword [r10 - 4]
cmp r8d, r15d
jle 0x14001fb15
mov r11d, dword [r13 + r10 - 4]
test r11d, r11d
je 0x14001face
mov eax, dword [r14 + r10 - 4]
shl eax, 0xa
cdq
idiv r11d
test eax, eax
jle 0x14001fa96
cmp eax, 0x1a8
jl 0x14001faa6
cmp eax, 0x9a8
jge 0x14001face
movsxd rdx, ecx
lea rax, [rdx + r9]
cmp r8d, dword [rbp + rax*4 + 4]
jl 0x14001fb15
mov rax, r9
sub rax, rdx
cmp r8d, dword [rbp + rax*4 - 4]
jge 0x14001fae9
jmp 0x14001fb15
neg eax
cmp eax, 0x9a8
jg 0x14001face
cmp eax, 0x1a8
jg 0x14001fab3
cmp r8d, dword [r10 - 8]
jl 0x14001fb15
cmp r8d, dword [r10]
jge 0x14001fae9
jmp 0x14001fb15
movsxd rdx, ecx
lea rax, [rdx + r9]
cmp r8d, dword [rbp + rax*4 - 4]
jl 0x14001fb15
mov rax, r9
sub rax, rdx
cmp r8d, dword [rbp + rax*4 + 4]
jmp 0x14001fae7
movsxd rdx, ecx
lea rax, [rdx + r9]
cmp r8d, dword [rbp + rax*4]
jl 0x14001fb15
mov rax, r9
sub rax, rdx
cmp r8d, dword [rbp + rax*4]
jl 0x14001fb15
cmp r8d, dword [rsp + 0x44]
jle 0x14001fb10
lea eax, [rbx + rdi]
mov byte [r9 + r12], 0xff
movsxd rcx, eax
add rcx, r12
add rsi, 8
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
jmp 0x14001fb15
mov byte [r9 + r12], 0x64
lea eax, [rcx - 1]
inc ebx
add r10, 4
inc r9
cmp ebx, eax
jl 0x14001fa40
mov edx, dword [rsp + 0xcc]
mov r8d, dword [rsp + 0xc0]
mov r11, qword [rsp + 0x20]
mov r14, qword [rsp + 0x38]
inc r8d
lea eax, [rdx - 1]
mov dword [rsp + 0xc0], r8d
cmp r8d, eax
jl 0x14001fa10
mov r9, qword [rsp + 0x48]
cmp rsi, r9
je 0x14001fcd6
nop word [rax + rax]
mov rdx, qword [rsi - 8]
sub rsi, 8
cmp byte [rdx + 1], 0x64
lea rax, [rdx + 1]
jne 0x14001fb94
mov byte [rax], 0xff
mov qword [rsi], rax
mov rcx, qword [rsp + 0xc8]
add rsi, 8
cmp byte [rdx - 1], 0x64
lea rax, [rdx - 1]
jne 0x14001fbb0
mov byte [rax], 0xff
mov qword [rsi], rax
mov rcx, qword [rsp + 0xc8]
add rsi, 8
movsxd rax, ecx
cmp byte [rax + rdx], 0x64
jne 0x14001fbd8
mov byte [rax + rdx], 0xff
movsxd rax, dword [rsp + 0xc8]
add rax, rdx
add rsi, 8
mov qword [rsi - 8], rax
mov rcx, qword [rsp + 0xc8]
movsxd rax, ecx
mov r8, rdx
sub r8, rax
cmp byte [r8], 0x64
jne 0x14001fc09
mov byte [r8], 0xff
movsxd rax, dword [rsp + 0xc8]
mov rcx, rdx
sub rcx, rax
add rsi, 8
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
movsxd rax, ecx
mov r8, rdx
sub r8, rax
cmp byte [r8 - 1], 0x64
jne 0x14001fc3f
mov byte [r8 - 1], 0xff
movsxd rax, dword [rsp + 0xc8]
mov rcx, rdx
sub rcx, rax
dec rcx
add rsi, 8
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
movsxd rax, ecx
mov r8, rdx
sub r8, rax
cmp byte [r8 + 1], 0x64
jne 0x14001fc75
mov byte [r8 + 1], 0xff
movsxd rax, dword [rsp + 0xc8]
mov rcx, rdx
sub rcx, rax
inc rcx
add rsi, 8
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
movsxd rax, ecx
cmp byte [rax + rdx - 1], 0x64
jne 0x14001fca1
mov byte [rax + rdx - 1], 0xff
movsxd rax, dword [rsp + 0xc8]
add rsi, 8
lea rcx, [rax + rdx - 1]
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
movsxd rax, ecx
cmp byte [rax + rdx + 1], 0x64
jne 0x14001fccd
mov byte [rax + rdx + 1], 0xff
movsxd rax, dword [rsp + 0xc8]
add rsi, 8
lea rcx, [rax + rdx + 1]
mov qword [rsi - 8], rcx
mov rcx, qword [rsp + 0xc8]
cmp rsi, r9
jne 0x14001fb70
mov rdx, qword [rsp + 0x68]
test rdx, rdx
jle 0x14001fd05
mov rcx, r12
xor r8d, r8d
nop word [rax + rax]
cmp byte [rcx], 0xff
movzx eax, byte [rcx]
cmovne eax, r8d
inc rcx
dec rdx
mov byte [rcx - 1], al
jne 0x14001fcf0
mov rcx, qword [rsp + 0xd8]
movzx eax, byte [r12]
mov rbx, qword [rsp + 0x20]
mov r14, qword [rsp + 0x38]
mov byte [rcx], al
mov dil, 1
jmp 0x14001fd23
mov rcx, qword [rsp + 0x30]
call fcn.140108f48
mov rsi, qword [rsp + 0x90]
test rbp, rbp
je 0x14001fd42
mov rcx, rbp
call fcn.140109878
mov rbp, qword [rsp + 0x98]
test r14, r14
je 0x14001fd57
mov rcx, r14
call fcn.140109878
mov r14, qword [rsp + 0x80]
test rbx, rbx
je 0x14001fd6c
mov rcx, rbx
call fcn.140109878
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14001fd7b
call fcn.140109878
mov r13, qword [rsp + 0x88]
mov r15, qword [rsp + 0x78]
movzx eax, dil
add rsp, 0xa0
pop r12
pop rdi
pop rbx
ret
movzx eax, dil
add rsp, 0xa0
pop r12
pop rdi
pop rbx
ret