Function at 0x5e7970
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov r8d, 0x14
mov rsi, rdx
mov rbx, rcx
lea rdx, [rcx + 0x20]
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x5e79c0
mov rax, qword [rsi]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x20], rax
mov rax, qword [rsi + 8]
test rcx, rcx
mov qword [rbx + 0x28], rax
mov eax, dword [rsi + 0x10]
mov dword [rbx + 0x30], eax
je 0x5e79c0
add rsp, 0x28
pop rbx
pop rsi
jmp 0x5eae10
add rsp, 0x28
pop rbx
pop rsi
ret
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
movzx eax, byte [rcx + 0x1c]
movzx esi, byte [rcx + 0x24]
movzx r15d, byte [rcx + 0x25]
movzx r12d, byte [rcx + 0x18]
mov byte [rsp + 0x4e], al
movzx eax, byte [rcx + 0x1d]
mov byte [rsp + 0x21], sil
movzx esi, byte [rcx + 0x27]
mov byte [rsp + 0x22], r15b
movzx r15d, byte [rcx + 0x28]
movzx r13d, byte [rcx + 0x19]
mov ebx, eax
mov byte [rsp + 0x4f], al
movzx eax, byte [rcx + 0x1e]
movzx r14d, byte [rcx + 0x1a]
mov byte [rsp + 0x24], sil
movzx ebp, byte [rcx + 0x1b]
mov byte [rsp + 0x25], r15b
mov edx, eax
mov byte [rsp + 0x48], al
movzx eax, byte [rcx + 0x1f]
mov r10d, eax
mov byte [rsp + 0x49], al
movzx eax, byte [rcx + 0x20]
mov r11d, eax
mov byte [rsp + 0x4a], al
movzx eax, byte [rcx + 0x21]
mov r9d, eax
mov byte [rsp + 0x4b], al
movzx eax, byte [rcx + 0x22]
mov r8d, eax
mov byte [rsp + 0x4c], al
movzx eax, byte [rcx + 0x23]
mov byte [rsp + 0x20], al
movzx eax, byte [rcx + 0x26]
mov byte [rsp + 0x23], al
movzx eax, byte [rcx + 0x29]
mov byte [rsp + 0x26], al
movzx esi, byte [rcx + 0x2a]
movzx r15d, byte [rcx + 0x2b]
mov byte [rsp + 0xdd], bl
movzx ebx, byte [rsp + 0x20]
mov qword [rsp + 0xb0], 0
mov rax, qword [rcx + 0x30]
mov byte [rsp + 0xd8], r12b
mov byte [rsp + 0x27], sil
mov rsi, qword [0x00827150]
mov edi, r15d
mov byte [rsp + 0x4d], r15b
mov r15, qword [rcx + 0x38]
mov byte [rsp + 0xe3], bl
movzx ecx, byte [rsp + 0x4e]
movzx ebx, byte [rsp + 0x21]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0xa0], rsi
lea rsi, [0x007099e0]
mov qword [rsp + 0xa8], rsi
cmp rax, r15
mov byte [rsp + 0xdc], cl
movzx ecx, byte [rsp + 0x22]
mov byte [rsp + 0xe4], bl
movzx ebx, byte [rsp + 0x23]
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xe5], cl
mov byte [rsp + 0xd9], r13b
mov byte [rsp + 0xda], r14b
mov byte [rsp + 0xdb], bpl
mov byte [rsp + 0xde], dl
mov byte [rsp + 0xdf], r10b
mov byte [rsp + 0xe0], r11b
mov byte [rsp + 0xe1], r9b
mov byte [rsp + 0xe2], r8b
mov byte [rsp + 0xe6], bl
movzx ecx, byte [rsp + 0x24]
movzx ebx, byte [rsp + 0x25]
mov byte [rsp + 0xeb], dil
mov byte [rsp + 0xe7], cl
movzx ecx, byte [rsp + 0x26]
mov byte [rsp + 0xe8], bl
movzx ebx, byte [rsp + 0x27]
mov byte [rsp + 0xe9], cl
mov rcx, rax
mov byte [rsp + 0xea], bl
je 0x5eb159
mov rdx, qword [0x00827150]
mov rbx, r15
mov r8d, 0x3f
mov qword [rsp + 0x58], rsi
sub rbx, rax
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x60], 0
mov rax, rbx
mov qword [rsp + 0x78], 0
sar rax, 3
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0xb8]
bsr rax, rax
xor rax, 0x3f
cdqe
sub r8, rax
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0xd0]
add r8, r8
mov qword [rsp + 0x80], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x88], rdx
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x90], rdx
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x98], rdx
lea rdx, [rsp + 0x50]
mov r9, rdx
mov qword [rsp + 0x28], rdx
mov rdx, r15
call fcn.007c8660
mov rax, qword [rsp + 0xa0]
cmp rbx, 0x87
mov r11, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov rdi, rax
mov rax, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xe8]
jg 0x5eb170
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x80], r8
mov r8, qword [rsp + 0x28]
mov qword [rsp + 0x88], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x90], rdx
mov rdx, r15
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x70], r10
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x98], rax
call fcn.007c3170
nop
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rcx
mov r8, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x40]
sub rbx, 0xffffffffffffff80
mov qword [rsp + 0x68], r11
mov rdx, rbx
mov qword [rsp + 0x70], r10
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x98], rax
call fcn.007c3170
cmp r15, rbx
je 0x5eb159
mov qword [rsp + 0x30], r15
movzx edi, byte [rsp + 0x4e]
movzx r15d, byte [rsp + 0x4f]
nop dword [rax + rax]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x178], r12b
mov rcx, rbx
add rbx, 8
mov byte [rsp + 0x179], r13b
mov byte [rsp + 0x17a], r14b
mov byte [rsp + 0x17b], bpl
mov byte [rsp + 0x17e], al
movzx eax, byte [rsp + 0x49]
mov byte [rsp + 0x17c], dil
mov byte [rsp + 0x17d], r15b
mov byte [rsp + 0x17f], al
movzx eax, byte [rsp + 0x4a]
mov byte [rsp + 0x180], al
movzx eax, byte [rsp + 0x4b]
mov byte [rsp + 0x181], al
movzx eax, byte [rsp + 0x4c]
mov byte [rsp + 0x182], al
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0x183], al
movzx eax, byte [rsp + 0x21]
mov byte [rsp + 0x184], al
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x185], al
movzx eax, byte [rsp + 0x23]
mov byte [rsp + 0x186], al
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x187], al
movzx eax, byte [rsp + 0x25]
mov byte [rsp + 0x188], al
movzx eax, byte [rsp + 0x26]
mov byte [rsp + 0x189], al
movzx eax, byte [rsp + 0x27]
mov byte [rsp + 0x18a], al
movzx eax, byte [rsp + 0x4d]
mov rdx, qword [rsp + 0x158]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], rsi
mov byte [rsp + 0x18b], al
mov rax, qword [0x00827150]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x170]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x80], rdx
mov rdx, qword [rsp + 0x178]
mov qword [rsp + 0x88], rdx
mov rdx, qword [rsp + 0x180]
mov qword [rsp + 0x90], rdx
mov rdx, qword [rsp + 0x188]
mov qword [rsp + 0x98], rdx
mov rdx, qword [rsp + 0x28]
call fcn.007d0900
cmp qword [rsp + 0x30], rbx
jne 0x5eb1f0
jmp 0x5eb159