Function at 0x1800246d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x58
mov qword [rsp + 0x50], rsi
mov r13, r8
mov qword [rsp + 0x48], r15
mov r14, rdx
lea r15, [r8 - 1]
mov qword [rsp + 0x30], r9
sar r15, 1
mov rbp, rcx
mov qword [rsp + 0x38], rdx
mov rsi, rdx
cmp rdx, r15
jge 0x180024800
nop
add rsi, rsi
imul rax, rsi, 0xd0
movzx ecx, byte [rax + rbp + 0x1a0]
cmp cl, byte [rax + rbp + 0xd0]
je 0x180024733
cmp cl, 0x64
sete cl
jmp 0x180024766
lea rdx, [rbp + 0xf8]
add rdx, rax
cmp qword [rdx + 0x18], 0x10
jb 0x180024747
mov rdx, qword [rdx]
lea rcx, [rbp + 0x1c8]
add rcx, rax
cmp qword [rcx + 0x18], 0x10
jb 0x18002475b
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov ecx, eax
shr ecx, 0x1f
movzx eax, cl
inc rsi
xor rax, 1
add rsi, rax
imul rdi, rsi, 0xd0
imul rbx, r14, 0xd0
add rdi, rbp
movzx eax, byte [rdi]
lea rdx, [rdi + 8]
add rbx, rbp
lea rcx, [rbx + 8]
mov byte [rbx], al
call fcn.18001d0a0
lea rdx, [rdi + 0x28]
lea rcx, [rbx + 0x28]
call fcn.18001d0a0
lea rdx, [rdi + 0x48]
lea rcx, [rbx + 0x48]
call fcn.18001d0a0
lea rdx, [rdi + 0x68]
lea rcx, [rbx + 0x68]
call fcn.18001d0a0
mov rax, qword [rdi + 0x88]
lea rdx, [rdi + 0x90]
lea rcx, [rbx + 0x90]
mov qword [rbx + 0x88], rax
call fcn.18001d0a0
lea rdx, [rdi + 0xb0]
lea rcx, [rbx + 0xb0]
call fcn.18001d0a0
mov r14, rsi
cmp rsi, r15
jl 0x180024710
cmp rsi, r15
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
jne 0x1800248a9
test r13b, 1
jne 0x1800248a9
imul rbx, r13, 0xd0
imul rdi, r14, 0xd0
add rbx, 0xffffffffffffff30
add rbx, rbp
movzx eax, byte [rbx]
lea rdx, [rbx + 8]
add rdi, rbp
lea rcx, [rdi + 8]
mov byte [rdi], al
call fcn.18001d0a0
lea rdx, [rbx + 0x28]
lea rcx, [rdi + 0x28]
call fcn.18001d0a0
lea rdx, [rbx + 0x48]
lea rcx, [rdi + 0x48]
call fcn.18001d0a0
lea rdx, [rbx + 0x68]
lea rcx, [rdi + 0x68]
call fcn.18001d0a0
mov rax, qword [rbx + 0x88]
lea rdx, [rbx + 0x90]
lea rcx, [rdi + 0x90]
mov qword [rdi + 0x88], rax
call fcn.18001d0a0
lea rdx, [rbx + 0xb0]
lea rcx, [rdi + 0xb0]
call fcn.18001d0a0
lea r14, [r13 - 1]
mov r9, qword [rsp + 0x30]
mov rdx, r14
mov r8, qword [rsp + 0x38]
mov rcx, rbp
add rsp, 0x58
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
jmp 0x1800255c0
push rbx
push rsi
push r14
push r15
sub rsp, 0x28
mov rsi, r9
mov r15, r8
mov rbx, rdx
mov r14, rcx
cmp r8, rdx
jge 0x1800256c9
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x20], rdi
nop word [rax + rax]
lea rbp, [rbx - 1]
sar rbp, 1
imul rdi, rbp, 0xd0
add rdi, r14
movzx eax, byte [rdi]
cmp al, byte [rsi]
je 0x18002560f
cmp al, 0x64
sete al
jmp 0x180025634
cmp qword [rsi + 0x40], 0x10
lea rdx, [rsi + 0x28]
jb 0x18002561d
mov rdx, qword [rdx]
cmp qword [rdi + 0x40], 0x10
lea rcx, [rdi + 0x28]
jb 0x18002562b
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
shr eax, 0x1f
test al, al
je 0x1800256bf
movzx eax, byte [rdi]
lea rdx, [rdi + 8]
imul rbx, rbx, 0xd0
add rbx, r14
lea rcx, [rbx + 8]
mov byte [rbx], al
call fcn.18001d0a0
lea rdx, [rdi + 0x28]
lea rcx, [rbx + 0x28]
call fcn.18001d0a0
lea rdx, [rdi + 0x48]
lea rcx, [rbx + 0x48]
call fcn.18001d0a0
lea rdx, [rdi + 0x68]
lea rcx, [rbx + 0x68]
call fcn.18001d0a0
mov rax, qword [rdi + 0x88]
lea rdx, [rdi + 0x90]
lea rcx, [rbx + 0x90]
mov qword [rbx + 0x88], rax
call fcn.18001d0a0
lea rdx, [rdi + 0xb0]
lea rcx, [rbx + 0xb0]
call fcn.18001d0a0
mov rbx, rbp
cmp r15, rbp
jl 0x1800255f0
mov rbp, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x20]
movzx eax, byte [rsi]
lea rdx, [rsi + 8]
imul rbx, rbx, 0xd0
add rbx, r14
lea rcx, [rbx + 8]
mov byte [rbx], al
call fcn.18001d0a0
lea rdx, [rsi + 0x28]
lea rcx, [rbx + 0x28]
call fcn.18001d0a0
lea rdx, [rsi + 0x48]
lea rcx, [rbx + 0x48]
call fcn.18001d0a0
lea rdx, [rsi + 0x68]
lea rcx, [rbx + 0x68]
call fcn.18001d0a0
mov rax, qword [rsi + 0x88]
lea rdx, [rsi + 0x90]
lea rcx, [rbx + 0x90]
mov qword [rbx + 0x88], rax
call fcn.18001d0a0
lea rdx, [rsi + 0xb0]
lea rcx, [rbx + 0xb0]
add rsp, 0x28
pop r15
pop r14
pop rsi
pop rbx
jmp fcn.18001d0a0