Function at 0x140063ef0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rsi
push rdi
push r12
sub rsp, 0x38
mov r12d, r8d
mov rdi, rdx
mov rsi, rcx
test rcx, rcx
je 0x140064159
test rdx, rdx
je 0x140064159
mov r11d, dword [rcx + 4]
mov r10d, dword [rdx + 4]
mov ecx, r10d
mov qword [rsp + 0x68], rbp
or ecx, r11d
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x60], ecx
bt ecx, 0xa
jae 0x140063f7b
and r10d, r11d
bt r10d, 0xa
jae 0x140064014
mov eax, dword [rdx + 8]
cmp dword [rsi + 8], eax
jne 0x140064014
xor eax, eax
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x20]
add rsp, 0x38
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx edx, byte [rsi]
cmp dl, byte [rdi]
je 0x140063fb8
cmp dl, 0x35
jne 0x140063f98
mov rcx, qword [rsi + 0x10]
mov rdx, rdi
call fcn.140063ef0
cmp eax, 2
jl 0x140063fb1
cmp byte [rdi], 0x35
jne 0x140064014
mov rdx, qword [rdi + 0x10]
mov r8d, r12d
mov rcx, rsi
call fcn.140063ef0
cmp eax, 2
jge 0x140064014
mov eax, 1
jmp 0x140063f5d
lea eax, [rdx + 0x68]
test al, 0xfd
je 0x14006404d
mov r8, qword [rsi + 8]
test r8, r8
je 0x14006404d
mov r9, qword [rdi + 8]
cmp dl, 0x97
jne 0x14006401e
movzx edx, byte [r8]
lea rbx, [0x1401930e0]
movzx eax, byte [r9]
movzx ecx, byte [rdx + rbx]
movzx eax, byte [rax + rbx]
cmp ecx, eax
jne 0x140064014
sub r9, r8
test dl, dl
je 0x140064049
movzx eax, byte [r9 + r8 + 1]
inc r8
movzx ecx, byte [rax + rbx]
movzx edx, byte [r8]
movzx eax, byte [rdx + rbx]
cmp eax, ecx
je 0x140063ff7
mov eax, 2
jmp 0x140063f5d
sub r9, r8
movzx ecx, byte [r8]
movzx eax, byte [r8 + r9]
sub ecx, eax
jne 0x140064035
inc r8
test eax, eax
jne 0x140064021
test ecx, ecx
je 0x140064049
xor ebx, ebx
cmp dl, 0x35
setne bl
lea eax, [rbx + 1]
jmp 0x140063f5d
mov ecx, dword [rsp + 0x60]
xor r10d, r11d
test r10b, 0x10
jne 0x140064014
bt ecx, 0xe
jb 0x140063f5b
bt ecx, 0xb
jb 0x140064014
mov rdx, qword [rdi + 0x10]
mov r8d, r12d
mov rcx, qword [rsi + 0x10]
call fcn.140063ef0
test eax, eax
jne 0x140064014
mov rdx, qword [rdi + 0x18]
mov r8d, r12d
mov rcx, qword [rsi + 0x18]
call fcn.140063ef0
test eax, eax
jne 0x140064014
mov r15, qword [rsi + 0x20]
xor ebx, ebx
mov r13, qword [rdi + 0x20]
test r15, r15
jne 0x1400640a8
test r13, r13
jne 0x140064014
jmp 0x14006410c
test r13, r13
je 0x140064014
mov eax, dword [r15]
cmp eax, dword [r13]
jne 0x140064014
mov ebp, ebx
test eax, eax
jle 0x14006410c
mov r14, rbx
nop word [rax + rax]
mov rdx, qword [r13 + 8]
mov rcx, qword [r15 + 8]
movzx eax, byte [rdx + r14 + 0x18]
cmp byte [rcx + r14 + 0x18], al
jne 0x140064014
mov rdx, qword [rdx + r14]
mov r8d, r12d
mov rcx, qword [rcx + r14]
call fcn.140063ef0
test eax, eax
jne 0x140064014
inc ebp
add r14, 0x28
cmp ebp, dword [r15]
jl 0x1400640d0
test dword [rsp + 0x60], 0x2000
jne 0x140063f5b
cmp byte [rsi], 0x61
je 0x140063f5b
movzx eax, word [rdi + 0x30]
cmp word [rsi + 0x30], ax
jne 0x140064014
mov eax, dword [rsi + 0x2c]
mov ecx, dword [rdi + 0x2c]
cmp eax, ecx
je 0x140063f5b
cmp eax, r12d
jne 0x140064014
mov eax, 2
test ecx, ecx
cmovns ebx, eax
mov eax, ebx
jmp 0x140063f5d
xor ebx, ebx
mov eax, 2
cmp rdi, rsi
cmove eax, ebx
add rsp, 0x38
pop r12
pop rdi
pop rsi
pop rbx
ret