Function at 0x140005680
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov rsi, rcx
mov dword [rbp - 0x40], 0x198e1094
mov dword [rbp - 8], 0x198e1094
mov eax, dword [rbp - 8]
mov ecx, dword [rbp - 0x40]
mov dword [rbp - 0x4c], ecx
mov edx, eax
xor edx, edx
not edx
and edx, ecx
xor edx, eax
mov qword [rbp - 0x48], rdx
mov byte [rbp - 0x40], 0xb
movzx eax, byte [rbp - 0x40]
add al, 0xf5
movzx eax, al
mov dword [rbp - 0x18], eax
mov rax, qword [rsi + 0x30]
lea rcx, [rbp - 0x48]
mov qword [rbp - 8], rcx
mov qword [rbp - 0x10], rax
test rax, rax
je 0x140005746
lea rdi, [rbp - 0x10]
mov qword [rbp - 0x40], rdi
sub rsp, 0x20
lea rcx, [rbp - 0x40]
call fcn.1400072c0
add rsp, 0x20
mov dword [rbp - 0x18], eax
test eax, eax
je 0x140005746
movsxd rcx, eax
sub rsp, 0x20
call fcn.1400015e0
add rsp, 0x20
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rdi
lea rax, [rbp - 8]
mov qword [rbp - 0x38], rax
lea rax, [rbp - 0x18]
mov qword [rbp - 0x30], rax
sub rsp, 0x20
lea rcx, [rbp - 0x40]
call fcn.140007420
add rsp, 0x20
test eax, eax
jne 0x140005746
mov rax, qword [rbp - 8]
mov qword [rax], 0
movaps xmm0, xmmword [0x140009cf0]
movaps xmmword [rbp - 0x30], xmm0
movaps xmm0, xmmword [0x140009ce0]
movaps xmmword [rbp - 0x40], xmm0
mov dword [rbp - 0x10], 0
lea rdi, [rbp - 0x40]
lea r14, [rbp - 0x10]
lea rbx, [rbp - 8]
nop
mov qword [rbp - 8], rdi
mov qword [rbp], r14
sub rsp, 0x20
mov rcx, rbx
call fcn.1400068b0
add rsp, 0x20
movsxd rax, dword [rbp - 0x10]
lea rcx, [rax + 1]
mov dword [rbp - 0x10], ecx
cmp qword [rbp + rax*8 - 0x38], 0
jne 0x140005770
movsxd rdx, dword [rbp - 0x18]
dec rdx
mov rcx, qword [rbp - 0x48]
sub rsp, 0x20
call fcn.140006a40
add rsp, 0x20
mov rbx, rax
sub rsp, 0x20
mov ecx, 0x104
call fcn.1400015e0
add rsp, 0x20
mov rcx, rax
mov qword [rbp - 0x10], rax
xor eax, eax
xorps xmm0, xmm0
nop word cs:[rax + rax]
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, 0x100
jne 0x1400057e0
xor eax, eax
nop word cs:[rax + rax]
mov dword [rcx + rax + 0x100], 0
add rax, 4
cmp rax, 4
jne 0x140005800
mov byte [rbp - 0x40], 0x95
mov byte [rbp - 8], 0x95
movzx eax, byte [rbp - 8]
movzx edx, byte [rbp - 0x40]
mov r15d, 0x10
sub rsp, r15
mov r8, rsp
mov byte [r8], dl
sub rsp, r15
mov r9, rsp
mov byte [r9], al
movzx r8d, byte [r8]
not r8b
or dl, al
not al
or al, r8b
and al, dl
mov dword [rbp - 0x40], 0x152f4346
mov dword [rbp - 8], 0x152f4358
mov edx, dword [rbp - 8]
mov r8d, dword [rbp - 0x40]
sub rsp, r15
mov r9, rsp
mov dword [r9], r8d
sub rsp, r15
mov r10, rsp
mov dword [r10], edx
mov r9d, dword [r9]
not r9d
or r8d, edx
not edx
or edx, r9d
and edx, r8d
movzx r8d, al
cmp edx, r8d
jbe 0x140005926
lea r9, [0x140009d00]
nop dword [rax]
movzx r10d, byte [r8 + r9]
mov byte [rbp - 0x40], 0x1a
movzx eax, byte [rbp - 0x40]
add al, 0xf6
movzx r11d, al
mov eax, r8d
xor edx, edx
div r11d
movzx eax, byte [rbx + rdx]
sub rsp, r15
mov rdx, rsp
mov byte [rdx], al
sub rsp, r15
mov r11, rsp
mov byte [r11], r10b
movzx edx, byte [rdx]
not dl
or al, r10b
not r10b
or r10b, dl
and r10b, al
mov byte [rcx + r8], r10b
inc r8
mov dword [rbp - 0x40], 0x152f4346
mov dword [rbp - 8], 0x152f4358
mov eax, dword [rbp - 8]
mov edx, dword [rbp - 0x40]
sub rsp, r15
mov r10, rsp
mov dword [r10], edx
sub rsp, r15
mov r11, rsp
mov dword [r11], eax
mov r10d, dword [r10]
not r10d
or edx, eax
not eax
or eax, r10d
and eax, edx
cmp r8, rax
jb 0x1400058a0
mov dword [rbp - 0x40], 0xb92a9778
mov dword [rbp - 8], 0xb92a967c
mov ecx, dword [rbp - 8]
mov eax, dword [rbp - 0x40]
sub rsp, r15
mov rdx, rsp
mov dword [rdx], eax
sub rsp, r15
mov r8, rsp
mov dword [r8], ecx
mov edx, dword [rdx]
not edx
or eax, ecx
not ecx
or ecx, edx
and ecx, eax
add rcx, rcx
sub rsp, 0x20
call fcn.1400015e0
add rsp, 0x20
mov qword [rsi], rax
mov dword [rbp - 0x40], 0x22e21a9c
mov dword [rbp - 8], 0x22e21b98
mov edx, dword [rbp - 8]
mov ecx, dword [rbp - 0x40]
sub rsp, r15
mov r8, rsp
mov dword [r8], ecx
mov r8d, ecx
not r8d
and r8d, edx
not edx
and edx, ecx
or edx, r8d
je 0x1400059fd
mov ecx, edx
cmp edx, 8
jae 0x1400059a8
mov r8, rax
mov r9, rcx
jmp 0x1400059e6
cmp edx, 0x10
jae 0x140005ab0
xor edx, edx
mov r10d, ecx
and r10d, 0xfffffff8
mov r8, rax
add r8, r10
mov r9d, ecx
and r9d, 7
nop word [rax + rax]
mov qword [rax + rdx], 0
add rdx, 8
cmp r10, rdx
jne 0x1400059d0
cmp r10, rcx
je 0x1400059fd
xor eax, eax
nop dword [rax + rax]
mov byte [r8 + rax], 0
inc rax
cmp r9, rax
jne 0x1400059f0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rsi
sub rsp, 0x20
mov rcx, rdi
call fcn.140007110
add rsp, 0x20
lea rax, [0x14000a388]
mov qword [rbp - 0x40], rax
lea rax, [0x14000a44a]
mov qword [rbp - 0x38], rax
mov rax, qword [rsi]
mov qword [rbp - 0x30], rax
lea rax, [0x14000a46a]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0
mov dword [rbp - 0x14], 0
lea rbx, [rbp - 0x14]
lea rsi, [rbp - 8]
nop word cs:[rax + rax]
mov qword [rbp - 8], rdi
mov qword [rbp], rbx
sub rsp, 0x20
mov rcx, rsi
call fcn.1400065e0
add rsp, 0x20
movsxd rax, dword [rbp - 0x14]
lea rcx, [rax + 1]
mov dword [rbp - 0x14], ecx
cmp qword [rbp + rax*8 - 0x38], 0
jne 0x140005a60
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140005aa1
sub rsp, 0x20
call fcn.140001890
add rsp, 0x20
mov al, 1
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov edx, ecx
and edx, 0xfffffff0
xor r8d, r8d
xorps xmm0, xmm0
nop dword [rax + rax]
movups xmmword [rax + r8], xmm0
add r8, 0x10
cmp rdx, r8
jne 0x140005ac0
cmp rdx, rcx
je 0x1400059fd
test cl, 8
jne 0x1400059b3
and ecx, 0xf
add rax, rdx
jmp 0x1400059a0