Function at 0x14000a5a0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rsi
sub rsp, 0x180
mov rax, qword [0x140088008]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rax, qword [rcx]
mov rsi, rcx
mov qword [rsp + 0x70], r9
mov dword [rax + 8], 0
call fcn.140009a90
test eax, eax
jne 0x14000a5ee
mov rax, qword [rsi]
xor r8d, r8d
mov rcx, rsi
mov edx, dword [rax + 8]
call fcn.1400090e0
xor eax, eax
jmp 0x14000adf0
mov r10, qword [rsi]
mov ecx, 3
mov qword [rsp + 0x168], r12
mov r12d, 1
mov qword [rsp + 0x160], r13
mov r13d, r12d
mov qword [rsp + 0x158], r14
mov eax, dword [r10 + 8]
cmp eax, ecx
cmovge r13d, ecx
mov dword [rsp + 0x34], r13d
jne 0x14000a647
cmp dword [rsi + 0x4850], ecx
je 0x14000a642
cmp dword [rsi + 0x484c], 0
jne 0x14000a647
cmp dword [rsi + 0x4848], 0
jne 0x14000a647
mov r14d, r12d
jmp 0x14000a64a
xor r14d, r14d
cmp eax, ecx
jne 0x14000a736
cmp r13d, ecx
jae 0x14000a736
test r14d, r14d
jne 0x14000a736
mov eax, r12d
mov qword [rsp + 0x198], rbx
xorps xmm0, xmm0
mov qword [rsp + 0x178], rbp
xorps xmm1, xmm1
mov qword [rsp + 0x170], rdi
xor ebp, ebp
mov qword [rsp + 0x150], r15
movsxd r15, eax
mov qword [rsp + 0x38], r15
movdqu xmmword [rsp + 0x50], xmm0
movdqu xmmword [rsp + 0x60], xmm1
test eax, eax
jle 0x14000a7a3
lea rbx, [rsp + 0x9c]
lea rdi, [rsi + 0x46a4]
nop word [rax + rax]
mov ecx, dword [r10]
add ecx, 3
call fcn.140036d58
mov qword [rdi + 0x44], rax
test rax, rax
je 0x14000ad89
mov eax, dword [rsi + 0x4688]
mov r10, qword [rsi]
cdq
idiv dword [rdi]
mov dword [rbx + 0xc], 0
mov r9d, eax
mov dword [rbx - 4], eax
mov eax, dword [rsi + 0x468c]
cdq
idiv dword [rdi + 4]
xor edx, edx
mov ecx, eax
mov dword [rbx], eax
mov r8d, eax
sar ecx, 1
mov eax, dword [r10]
dec eax
mov dword [rbx + 8], ecx
mov rcx, qword [rdi + 0x2c]
add eax, r9d
div r9d
mov qword [rbx - 0xc], rcx
mov dword [rbx + 4], eax
mov qword [rbx - 0x14], rcx
cmp r9d, r12d
jne 0x14000a761
cmp r8d, r12d
jne 0x14000a752
lea rax, [method.Concurrency::details::VirtualProcessor.virtual_40]
jmp 0x14000a78b
test eax, eax
jg 0x14000a667
xor r8d, r8d
mov edx, eax
mov rcx, rsi
call fcn.1400090e0
xor eax, eax
jmp 0x14000add8
cmp r8d, 2
jne 0x14000a761
lea rax, [0x140009d00]
jmp 0x14000a78b
cmp r9d, 2
jne 0x14000a784
cmp r8d, r12d
jne 0x14000a775
lea rax, [0x140009d50]
jmp 0x14000a78b
cmp r8d, 2
jne 0x14000a784
mov rax, qword [rsi + 0x4880]
jmp 0x14000a78b
lea rax, [0x14000a130]
mov qword [rbx - 0x1c], rax
inc rbp
add rbx, 0x30
add rdi, 0x60
cmp rbp, r15
jl 0x14000a6c0
mov rax, qword [rsi]
mov r8d, dword [rax]
mov r9d, dword [rax + 4]
test r8d, r8d
js 0x14000ad89
je 0x14000a7d1
xor ecx, ecx
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r13d, eax
setle cl
test ecx, ecx
je 0x14000ad89
mov r10d, r8d
imul r10d, r13d
test r10d, r10d
js 0x14000ad89
test r9d, r9d
js 0x14000ad89
je 0x14000a805
xor ecx, ecx
mov eax, 0x7fffffff
cdq
idiv r9d
cmp r10d, eax
setle cl
test ecx, ecx
je 0x14000ad89
imul r8d, r9d
imul r8d, r13d
cmp r8d, 0x7ffffffe
jg 0x14000ad89
lea eax, [r8 + 1]
movsxd rcx, eax
call fcn.140036d58
mov qword [rsp + 0x48], rax
mov r9, rax
test rax, rax
je 0x14000ad89
mov rcx, qword [rsi]
xor edx, edx
mov dword [rsp + 0x30], edx
cmp dword [rcx + 4], edx
jbe 0x14000ad3d
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r8d, r14d
mov qword [rsp + 0x40], r8
nop word [rax + rax]
mov ebx, dword [rcx]
xor r14d, r14d
imul ebx, edx
imul ebx, r13d
add rbx, r9
cmp qword [rsp + 0x38], r14
jle 0x14000a942
mov r13, qword [rsp + 0x38]
lea rbp, [rsi + 0x46c0]
lea rdi, [rsp + 0xa4]
nop
mov r12d, dword [rdi - 8]
mov eax, r12d
mov r15d, dword [rdi]
sar eax, 1
cmp r15d, eax
jl 0x14000a8b7
mov r8, qword [rdi - 0x1c]
jmp 0x14000a8bb
mov r8, qword [rdi - 0x14]
cmp r15d, eax
jl 0x14000a8c6
mov rdx, qword [rdi - 0x14]
jmp 0x14000a8ca
mov rdx, qword [rdi - 0x1c]
mov eax, dword [rdi - 0xc]
mov r9d, dword [rdi - 4]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x20], eax
call qword [rdi - 0x24]
mov qword [rsp + r14*8 + 0x50], rax
lea eax, [r15 + 1]
mov dword [rdi], eax
cmp eax, r12d
jl 0x14000a910
inc dword [rdi + 4]
mov eax, dword [rdi + 4]
mov rcx, qword [rdi - 0x14]
mov dword [rdi], 0
mov qword [rdi - 0x1c], rcx
cmp eax, dword [rbp]
jge 0x14000a910
movsxd rax, dword [rbp + 4]
add rax, rcx
mov qword [rdi - 0x14], rax
inc r14
add rdi, 0x30
add rbp, 0x60
cmp r14, r13
jl 0x14000a8a0
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r13d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
mov rax, qword [rsi]
cmp r13d, 3
jb 0x14000ab21
mov ecx, dword [rax + 8]
cmp ecx, 3
jne 0x14000a9bc
test r8, r8
je 0x14000a99a
xor edx, edx
cmp dword [rax], edx
jbe 0x14000ad17
mov r8d, r13d
nop dword [rax]
movzx eax, byte [rdx + rdi]
mov byte [rbx], al
movzx eax, byte [rdx + r15]
mov byte [rbx + 1], al
movzx eax, byte [rdx + rbp]
inc edx
mov byte [rbx + 2], al
mov byte [rbx + 3], 0xff
add rbx, r8
mov rax, qword [rsi]
cmp edx, dword [rax]
jb 0x14000a970
jmp 0x14000ad17
mov eax, dword [rax]
mov r9, rbp
mov dword [rsp + 0x28], r13d
mov r8, r15
mov dword [rsp + 0x20], eax
mov rdx, rdi
mov rcx, rbx
call qword [rsi + 0x4878]
jmp 0x14000ad17
cmp ecx, 4
jne 0x14000aaea
mov ecx, dword [rsi + 0x484c]
test ecx, ecx
jne 0x14000aa46
xor r9d, r9d
cmp dword [rax], r9d
jbe 0x14000ad1b
mov r10d, r13d
nop
movzx r8d, byte [r9 + r12]
movzx ecx, byte [r9 + rdi]
imul ecx, r8d
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx], al
movzx ecx, byte [r9 + r15]
imul ecx, r8d
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx + 1], al
movzx ecx, byte [r9 + rbp]
inc r9d
mov byte [rbx + 3], 0xff
imul ecx, r8d
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx + 2], al
add rbx, r10
mov rax, qword [rsi]
cmp r9d, dword [rax]
jb 0x14000a9e0
jmp 0x14000ad17
mov eax, dword [rax]
cmp ecx, 2
mov dword [rsp + 0x28], r13d
mov rcx, rbx
mov dword [rsp + 0x20], eax
mov r9, rbp
mov r8, r15
mov rdx, rdi
jne 0x14000a9b1
call qword [rsi + 0x4878]
mov rax, qword [rsi]
xor r8d, r8d
cmp dword [rax], r8d
jbe 0x14000ad17
mov r9d, r13d
nop
movzx edx, byte [r8 + r12]
inc r8d
movzx eax, byte [rbx]
not al
movzx ecx, al
imul ecx, edx
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx], al
movzx eax, byte [rbx + 1]
not al
movzx ecx, al
imul ecx, edx
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx + 1], al
movzx eax, byte [rbx + 2]
not al
movzx ecx, al
imul ecx, edx
sub ecx, 0xffffff80
mov eax, ecx
shr eax, 8
add eax, ecx
shr eax, 8
mov byte [rbx + 2], al
add rbx, r9
mov rax, qword [rsi]
cmp r8d, dword [rax]
jb 0x14000aa80
jmp 0x14000ad17
xor edx, edx
cmp dword [rax], edx
jbe 0x14000ad17
mov r8d, r13d
nop word [rax + rax]
movzx ecx, byte [rdx + rdi]
inc edx
mov byte [rbx + 2], cl
mov byte [rbx + 1], cl
mov byte [rbx], cl
mov byte [rbx + 3], 0xff
add rbx, r8
mov rax, qword [rsi]
cmp edx, dword [rax]
jb 0x14000ab00
jmp 0x14000ad17
test r8, r8
je 0x14000abd2
xor r9d, r9d
cmp r13d, 1
jne 0x14000ab7e
cmp dword [rax], r9d
jbe 0x14000ad1b
nop dword [rax]
movzx eax, byte [r9 + r15]
lea rbx, [rbx + 1]
imul r8d, eax, 0x96
movzx eax, byte [r9 + rbp]
imul ecx, eax, 0x1d
movzx eax, byte [r9 + rdi]
inc r9d
add r8d, ecx
imul ecx, eax, 0x4d
add r8d, ecx
shr r8d, 8
mov byte [rbx - 1], r8b
mov rax, qword [rsi]
cmp r9d, dword [rax]
jb 0x14000ab40
jmp 0x14000ad17
cmp dword [rax], r9d
jbe 0x14000ad1b
nop word [rax + rax]
movzx eax, byte [r9 + r15]
lea rbx, [rbx + 2]
imul r8d, eax, 0x96
movzx eax, byte [r9 + rbp]
imul ecx, eax, 0x1d
movzx eax, byte [r9 + rdi]
inc r9d
mov byte [rbx - 1], 0xff
add r8d, ecx
imul ecx, eax, 0x4d
add r8d, ecx
shr r8d, 8
mov byte [rbx - 2], r8b
mov rax, qword [rsi]
cmp r9d, dword [rax]
jb 0x14000ab90
jmp 0x14000ad17
mov ecx, dword [rax + 8]
cmp ecx, 4
jne 0x14000acd5
cmp dword [rsi + 0x484c], 0
jne 0x14000ac81
xor r10d, r10d
cmp dword [rax], r10d
jbe 0x14000ad1b
mov r11d, r13d
nop word [rax + rax]
movzx ecx, byte [r10 + r12]
movzx edx, byte [r10 + r15]
movzx r8d, byte [r10 + rbp]
movzx r9d, byte [r10 + rdi]
inc r10d
imul edx, ecx
imul r8d, ecx
imul r9d, ecx
mov byte [rbx + 1], 0xff
sub edx, 0xffffff80
mov eax, edx
sub r8d, 0xffffff80
shr eax, 8
sub r9d, 0xffffff80
add eax, edx
shr eax, 8
movzx eax, al
imul edx, eax, 0x96
mov eax, r8d
shr eax, 8
add eax, r8d
shr eax, 8
movzx eax, al
imul ecx, eax, 0x1d
mov eax, r9d
shr eax, 8
add eax, r9d
shr eax, 8
movzx eax, al
add edx, ecx
imul ecx, eax, 0x4d
add edx, ecx
shr edx, 8
mov byte [rbx], dl
add rbx, r11
mov rax, qword [rsi]
cmp r10d, dword [rax]
jb 0x14000ac00
jmp 0x14000ad17
cmp ecx, 4
jne 0x14000acd5
cmp dword [rsi + 0x484c], 2
jne 0x14000acd5
xor r8d, r8d
cmp dword [rax], r8d
jbe 0x14000ad1b
mov r9d, r13d
nop
movzx eax, byte [r8 + rdi]
not al
movzx edx, al
movzx eax, byte [r8 + r12]
inc r8d
imul edx, eax
mov byte [rbx + 1], 0xff
sub edx, 0xffffff80
mov eax, edx
shr eax, 8
add eax, edx
shr eax, 8
mov byte [rbx], al
add rbx, r9
mov rax, qword [rsi]
cmp r8d, dword [rax]
jb 0x14000aca0
jmp 0x14000ad17
xor edx, edx
cmp r13d, 1
jne 0x14000acf3
cmp dword [rax], edx
jbe 0x14000ad17
movzx eax, byte [rdx + rdi]
mov byte [rdx + rbx], al
inc edx
mov rax, qword [rsi]
cmp edx, dword [rax]
jb 0x14000ace1
jmp 0x14000ad17
cmp dword [rax], edx
jbe 0x14000ad17
nop word [rax + rax]
movzx ecx, byte [rdx + rdi]
inc edx
mov byte [rbx], cl
mov byte [rbx + 1], 0xff
lea rbx, [rbx + 2]
mov rax, qword [rsi]
cmp edx, dword [rax]
jb 0x14000ad00
mov edx, dword [rsp + 0x30]
mov rcx, qword [rsi]
inc edx
mov r8, qword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
mov dword [rsp + 0x30], edx
cmp edx, dword [rcx + 4]
jb 0x14000a870
mov r12d, 1
mov rax, qword [rsi]
xor r8d, r8d
mov rcx, rsi
mov edx, dword [rax + 8]
call fcn.1400090e0
mov rax, qword [rsi]
mov ecx, dword [rax]
mov dword [0x14008c2e0], ecx
mov rax, qword [rsi]
mov ecx, dword [rax + 4]
mov dword [0x14008c2cc], ecx
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14000ad82
mov rax, qword [rsi]
cmp dword [rax + 8], 3
mov eax, 3
cmovge r12d, eax
mov dword [rcx], r12d
mov rax, qword [rsp + 0x48]
jmp 0x14000adb8
mov rax, qword [rsi]
xor r8d, r8d
mov rcx, rsi
mov edx, dword [rax + 8]
call fcn.1400090e0
mov rax, qword gs:[0x58]
mov edx, 0x20
mov rcx, qword [rax]
lea rax, str.outofmem
mov qword [rdx + rcx], rax
xor eax, eax
mov rbx, qword [rsp + 0x198]
mov rbp, qword [rsp + 0x178]
mov rdi, qword [rsp + 0x170]
mov r15, qword [rsp + 0x150]
mov r12, qword [rsp + 0x168]
mov r13, qword [rsp + 0x160]
mov r14, qword [rsp + 0x158]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140029de0
add rsp, 0x180
pop rsi
ret