Function at 0x14019a4f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp - 1], 0xfffffffffffffffe
mov qword [rsp + 0xe0], rbx
mov rax, qword [0x140479080]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov rsi, r8
mov qword [rbp - 0x29], r8
mov r12, rdx
mov qword [rbp - 0x31], rdx
mov qword [rbp - 9], rcx
mov qword [rbp + 7], rdx
mov qword [rbp + 0xf], r8
xor r15d, r15d
mov word [rbp - 0x49], r15w
mov dword [rbp - 0x45], r15d
mov dword [rbp + 0x17], r15d
mov byte [rbp + 0x1b], r15b
mov rcx, qword [r8]
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x30]
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea r8d, [r15 + 4]
lea rdx, [rbp + 0x17]
call qword [rax + 0x28]
mov ecx, r15d
lea rdx, [rbp + 0x17]
lea r8, str.8BPS
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x14019ada7
cmp rcx, 5
jne 0x14019a581
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov edx, 8
lea r8d, [rdx - 7]
call qword [rax + 0x30]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, [rbp - 0x49]
call qword [rax + 0x28]
movzx ebx, word [rbp - 0x49]
rol bx, 8
mov word [rbp - 0x41], bx
lea eax, [rbx - 3]
cmp ax, 1
jbe 0x14019a646
mov rbx, qword [r12 + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019a60f
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a60f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019a60f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14019a641
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a641
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019a641
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x14019ae15
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 4
lea rdx, [rbp - 0x45]
call qword [rax + 0x28]
mov ecx, dword [rbp - 0x45]
mov r14d, ecx
and r14d, 0xff0000
mov eax, ecx
shr eax, 0x10
or r14d, eax
shr r14d, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or r14d, eax
mov dword [rbp - 0x3d], r14d
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 4
lea rdx, [rbp - 0x45]
call qword [rax + 0x28]
mov ecx, dword [rbp - 0x45]
mov r13d, ecx
and r13d, 0xff0000
mov eax, ecx
shr eax, 0x10
or r13d, eax
shr r13d, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or r13d, eax
mov dword [rbp - 0x39], r13d
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, [rbp - 0x49]
call qword [rax + 0x28]
movzx eax, word [rbp - 0x49]
rol ax, 8
cmp ax, 8
je 0x14019a75e
mov rbx, qword [r12 + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019a727
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a727
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019a727
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14019a759
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a759
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019a759
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x14019ae15
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, [rbp - 0x49]
call qword [rax + 0x28]
movzx eax, word [rbp - 0x49]
rol ax, 8
cmp ax, 3
je 0x14019a7f2
mov rbx, qword [r12 + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019a7bb
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a7bb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019a7bb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14019a7ed
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a7ed
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019a7ed
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x14019ae15
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 4
lea rdx, [rbp - 0x45]
call qword [rax + 0x28]
mov ecx, dword [rbp - 0x45]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
shr edx, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or edx, eax
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 1
call qword [rax + 0x30]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 4
lea rdx, [rbp - 0x45]
call qword [rax + 0x28]
mov ecx, dword [rbp - 0x45]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
shr edx, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or edx, eax
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 1
call qword [rax + 0x30]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 4
lea rdx, [rbp - 0x45]
call qword [rax + 0x28]
mov ecx, dword [rbp - 0x45]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
shr edx, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or edx, eax
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 1
call qword [rax + 0x30]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, [rbp - 0x49]
call qword [rax + 0x28]
movzx esi, word [rbp - 0x49]
rol si, 8
cmp si, 2
jb 0x14019a962
mov rbx, qword [r12 + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019a927
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a927
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019a927
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rbp - 0x29]
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14019a95d
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019a95d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019a95d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x14019ae15
mov rcx, qword [r12]
mov rax, qword [rcx]
mov r9d, r15d
cmp bx, 3
setne r9b
inc r9d
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov edx, r13d
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [rbp - 0x29]
mov rbx, qword [rbx]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x40]
mov edi, eax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + gethostname]
sub edi, eax
movsxd rbx, edi
mov rcx, rbx
call fcn.14023ed88
mov rdi, rax
mov qword [rbp - 0x19], rax
mov rax, qword [rbp - 0x29]
mov rcx, qword [rax]
mov r9, qword [rcx]
mov r8, rbx
mov rdx, rdi
call qword [r9 + 0x28]
mov rcx, qword [r12]
mov rdx, qword [rcx]
call qword [rdx + 0x58]
movzx edx, si
mov rcx, 0xffffffffffffffff
test edx, edx
je 0x14019ab52
cmp edx, 1
jne 0x14019abef
movzx esi, word [rbp - 0x41]
mov dword [rbp - 0x3d], esi
mov eax, esi
imul eax, r14d
movsxd rdi, eax
mov eax, 2
mul rdi
cmovo rax, rcx
mov rcx, rax
call fcn.14023ed88
mov r8, rax
mov qword [rbp - 0x11], rax
mov rbx, qword [rbp - 0x19]
test rdi, rdi
jle 0x14019aa4b
mov rdx, r15
nop dword [rax]
nop dword [rax + rax]
movzx ecx, word [rbx]
mov word [rbp - 0x49], cx
rol cx, 8
mov word [rax + rdx*2], cx
inc rdx
add rbx, 2
cmp rdx, rdi
jl 0x14019aa30
test esi, esi
je 0x14019ab45
mov r13d, r15d
mov eax, esi
nop dword [rax + rax]
mov esi, r15d
test r14d, r14d
jle 0x14019ab35
mov eax, r13d
imul eax, r14d
cdqe
lea r12, [r8 + rax*2]
mov r15, qword [rbp - 0x31]
nop dword [rax]
cmp r13d, 3
je 0x14019aa90
mov edi, 2
sub edi, r13d
jmp 0x14019aa95
mov edi, 3
mov rcx, qword [r15]
mov rax, qword [rcx]
mov edx, esi
call qword [rax + 0x60]
movsxd rcx, edi
add rax, rcx
movzx edx, word [r12]
test dx, dx
je 0x14019ab1c
mov r10d, 0xffff
nop word [rax + rax]
mov r9, rbx
movzx ecx, byte [rbx]
inc rbx
test cl, cl
jns 0x14019aaf2
not cl
movzx ecx, cl
movzx r8d, byte [rbx]
lea rbx, [r9 + 2]
add dx, r10w
add ecx, 2
je 0x14019ab16
mov byte [rax], r8b
add rax, 4
sub rcx, 1
jne 0x14019aae3
jmp 0x14019ab16
movzx ecx, cl
add ecx, 1
je 0x14019ab16
mov r8d, ecx
nop dword [rax]
movzx ecx, byte [rbx]
mov byte [rax], cl
inc rbx
add dx, r10w
add rax, 4
sub r8, 1
jne 0x14019ab00
add dx, r10w
jne 0x14019aac0
inc esi
add r12, 2
cmp esi, r14d
jl 0x14019aa80
xor r15d, r15d
mov r8, qword [rbp - 0x11]
mov eax, dword [rbp - 0x3d]
inc r13d
cmp r13d, eax
jl 0x14019aa60
mov r13d, dword [rbp - 0x39]
mov rcx, r8
call fcn.14023ed44
jmp 0x14019abef
movzx r12d, word [rbp - 0x41]
mov dword [rbp - 0x39], r12d
mov r14d, r15d
test r12d, r12d
je 0x14019abeb
mov ecx, dword [rbp - 0x3d]
nop word [rax + rax]
mov eax, r14d
imul eax, ecx
imul eax, r13d
movsxd rbx, eax
add rbx, rdi
mov esi, r15d
test ecx, ecx
jle 0x14019abe3
mov r12, qword [rbp - 0x31]
nop dword [rax + rax]
cmp r14d, 3
je 0x14019aba0
mov edi, 2
sub edi, r14d
jmp 0x14019aba5
mov edi, 3
mov rcx, qword [r12]
mov rax, qword [rcx]
mov edx, esi
call qword [rax + 0x60]
movsxd rcx, edi
add rax, rcx
test r13d, r13d
jle 0x14019abd2
mov edx, r13d
nop
movzx ecx, byte [rbx]
mov byte [rax], cl
lea rax, [rax + 4]
inc rbx
sub rdx, 1
jne 0x14019abc0
inc esi
mov ecx, dword [rbp - 0x3d]
cmp esi, ecx
jl 0x14019ab90
mov r12d, dword [rbp - 0x39]
mov rdi, qword [rbp - 0x19]
inc r14d
cmp r14d, r12d
jl 0x14019ab70
mov r14d, dword [rbp - 0x3d]
mov rcx, qword [rbp - 0x19]
call fcn.14023ed44
mov bl, 1
mov rsi, qword [rbp - 0x31]
cmp word [rbp - 0x41], 4
jne 0x14019aceb
mov edi, r15d
test r14d, r14d
jle 0x14019ad25
mov r12, qword [rbp - 9]
nop dword [rax]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov edx, edi
call qword [rax + 0x60]
mov r11d, r15d
test r13d, r13d
jle 0x14019acdc
lea r8, [rax + 1]
mov esi, 0xff
movzx eax, byte [r8 + 2]
test al, al
je 0x14019acc8
xor bl, bl
cmp byte [r12 + 8], bl
je 0x14019acd8
cmp al, sil
je 0x14019acc8
movzx ecx, al
movzx eax, byte [r8 - 1]
sub eax, esi
shl eax, 8
cdq
idiv ecx
mov r10d, eax
movzx eax, byte [r8]
sub eax, esi
shl eax, 8
cdq
idiv ecx
lea r9d, [rsi + rax]
movzx eax, byte [r8 + 1]
sub eax, esi
shl eax, 8
cdq
idiv ecx
add eax, esi
add r10d, esi
jns 0x14019ac97
mov r10d, r15d
jmp 0x14019ac9e
cmp r10d, esi
cmovg r10d, esi
test r9d, r9d
jns 0x14019aca8
mov r9d, r15d
jmp 0x14019acaf
cmp r9d, esi
cmovg r9d, esi
test eax, eax
jns 0x14019acb8
mov eax, r15d
jmp 0x14019acbd
cmp eax, esi
cmovg eax, esi
mov byte [r8 - 1], r10b
mov byte [r8], r9b
mov byte [r8 + 1], al
inc r11d
add r8, 4
cmp r11d, r13d
jl 0x14019ac40
mov rsi, qword [rbp - 0x31]
inc edi
cmp edi, r14d
jl 0x14019ac20
test bl, bl
je 0x14019ad25
test r14d, r14d
jle 0x14019ad25
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov edx, r15d
call qword [rax + 0x60]
add rax, 3
test r13d, r13d
jle 0x14019ad1d
mov ecx, r13d
nop dword [rax + rax]
mov byte [rax], 0xff
lea rax, [rax + 4]
sub rcx, 1
jne 0x14019ad10
inc r15d
cmp r15d, r14d
jl 0x14019acf0
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x80]
nop
mov rbx, qword [rsi + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019ad6d
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019ad6d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019ad6d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rbp - 0x29]
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x14019ada3
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019ada3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019ada3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
xor al, al
jmp 0x14019ae17
mov rbx, qword [r12 + 8]
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14019ade3
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019ade3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14019ade3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14019ae15
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14019ae15
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14019ae15
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov al, 1
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.14023ed20
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret