Function at 0x180025420
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r14d, edx
mov ebx, 1
mov rdx, rcx
add rcx, 0x2a0
nop dword [rax + rax]
mov rdi, rcx
mov qword [rsp + 0x38], rcx
sub rcx, 0x70
mov qword [rsp + 0x40], rcx
mov eax, dword [rdi - 0x38]
cmp r14d, eax
jle 0x1800256dd
mov r9, qword [rdi - 0x30]
lea r12, [rdx + 0x2a8]
mov qword [rsp + 0x28], r9
test r9, r9
je 0x1800256da
cmp byte [rdi - 4], 0
jge 0x1800256da
movsx ebp, word [rdi - 0x50]
movzx r13d, byte [rdi - 0x39]
mov r8d, ebp
imul r8d, r13d
mov dword [rsp + 0xb8], ebp
sub r8d, dword [rdi - 0x4c]
je 0x1800254bc
mov edx, eax
mov rcx, r12
call fcn.18001f530
mov r9, qword [rsp + 0x28]
mov dword [r9 + 0x2c], ebx
lea rcx, [rdi - 0x48]
mov r15, qword [rdi - 0x28]
movsx r8d, word [rdi - 0x4e]
mov dword [rsp + 0xb0], r8d
mov qword [rsp + 0x30], rcx
test r15, r15
je 0x18002550c
imul r8d, r13d
sub r8d, dword [rcx]
je 0x180025500
mov edx, dword [rdi - 0x38]
mov r9, r15
mov rcx, r12
call fcn.18001f530
mov rcx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
mov r8d, dword [rsp + 0xb0]
mov dword [r15 + 0x2c], ebx
mov ebx, dword [rdi - 0x44]
add ebx, dword [rdi - 0x38]
cmp ebx, r14d
jge 0x1800256a8
movzx edx, byte [rdi - 0x3c]
test dl, dl
jns 0x1800255d5
mov eax, r8d
or eax, ebp
je 0x1800256a8
mov ebp, dword [rdi - 8]
mov eax, edx
and eax, 0x1f
mov ecx, 0x20
sub ecx, eax
shl ecx, 6
mov edi, ecx
nop word [rax + rax]
mov eax, ebp
and ebp, 1
shr eax, 1
neg ebp
and ebp, 0xe008
mov ecx, eax
and ecx, 1
xor ebp, eax
neg ecx
and ecx, 0x1f
mov esi, ecx
sub esi, r13d
je 0x1800255a8
mov r8d, esi
mov r13d, ecx
imul r8d, dword [rsp + 0xb8]
mov edx, ebx
mov rcx, r12
call fcn.18001f530
test r15, r15
je 0x1800255a8
imul esi, dword [rsp + 0xb0]
mov r9, r15
mov edx, ebx
mov rcx, r12
mov r8d, esi
call fcn.18001f530
mov r9, qword [rsp + 0x28]
add ebx, edi
cmp ebx, r14d
jl 0x180025550
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0xb0]
mov dword [rdi - 8], ebp
mov ebp, dword [rsp + 0xb8]
jmp 0x1800256a8
test byte [rdi - 4], 0x40
jne 0x1800256a8
movzx esi, byte [rdi - 0x3b]
mov r14d, dword [rdi - 0x40]
inc esi
and esi, 0x1f
add r14d, r14d
cmp r14d, 0xe
jl 0x180025669
mov eax, r8d
or eax, ebp
je 0x180025675
nop dword [rax]
movzx ecx, byte [rsi + rdi - 0x70]
inc esi
and esi, 0x1f
mov ebp, ecx
sub ebp, r13d
je 0x180025647
mov r8d, ebp
mov r13d, ecx
imul r8d, dword [rsp + 0xb8]
mov edx, ebx
mov rcx, r12
call fcn.18001f530
test r15, r15
je 0x180025647
imul ebp, dword [rsp + 0xb0]
mov r9, r15
mov edx, ebx
mov rcx, r12
mov r8d, ebp
call fcn.18001f530
mov r9, qword [rsp + 0x28]
add ebx, r14d
cmp ebx, dword [rsp + 0xa8]
jl 0x180025600
mov r8d, dword [rsp + 0xb0]
mov ebp, dword [rsp + 0xb8]
jmp 0x180025691
test r14d, r14d
mov eax, 1
cmove r14d, eax
mov ecx, dword [rsp + 0xa8]
mov eax, r14d
sub eax, ebx
dec ecx
add eax, ecx
cdq
idiv r14d
add esi, eax
imul eax, r14d
add ebx, eax
mov r14d, dword [rsp + 0xa8]
lea rcx, [rdi - 0x48]
dec sil
and sil, 0x1f
mov byte [rdi - 0x3b], sil
mov rdx, qword [rsp + 0xa0]
sub ebx, r14d
mov eax, 0
mov byte [rdi - 0x39], r13b
cmovns eax, ebx
imul ebp, r13d
imul r8d, r13d
mov ebx, 1
mov dword [rdi - 0x44], eax
mov dword [rdi - 0x4c], ebp
mov dword [rcx], r8d
mov rcx, qword [rsp + 0x40]
mov eax, r14d
sub eax, r14d
mov dword [rdi - 0x38], eax
cmp rcx, rdx
jne 0x180025450
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret