Function at 0x140063d40
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 0x140063fa9
test rdx, rdx
je 0x140063fa9
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 0x140063dcb
and r10d, r11d
bt r10d, 0xa
jae 0x140063e64
mov eax, dword [rdx + 8]
cmp dword [rsi + 8], eax
jne 0x140063e64
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 0x140063e08
cmp dl, 0x35
jne 0x140063de8
mov rcx, qword [rsi + 0x10]
mov rdx, rdi
call fcn.140063d40
cmp eax, 2
jl 0x140063e01
cmp byte [rdi], 0x35
jne 0x140063e64
mov rdx, qword [rdi + 0x10]
mov r8d, r12d
mov rcx, rsi
call fcn.140063d40
cmp eax, 2
jge 0x140063e64
mov eax, 1
jmp 0x140063dad
lea eax, [rdx + 0x68]
test al, 0xfd
je 0x140063e9d
mov r8, qword [rsi + 8]
test r8, r8
je 0x140063e9d
mov r9, qword [rdi + 8]
cmp dl, 0x97
jne 0x140063e6e
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 0x140063e64
sub r9, r8
test dl, dl
je 0x140063e99
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 0x140063e47
mov eax, 2
jmp 0x140063dad
sub r9, r8
movzx ecx, byte [r8]
movzx eax, byte [r8 + r9]
sub ecx, eax
jne 0x140063e85
inc r8
test eax, eax
jne 0x140063e71
test ecx, ecx
je 0x140063e99
xor ebx, ebx
cmp dl, 0x35
setne bl
lea eax, [rbx + 1]
jmp 0x140063dad
mov ecx, dword [rsp + 0x60]
xor r10d, r11d
test r10b, 0x10
jne 0x140063e64
bt ecx, 0xe
jb 0x140063dab
bt ecx, 0xb
jb 0x140063e64
mov rdx, qword [rdi + 0x10]
mov r8d, r12d
mov rcx, qword [rsi + 0x10]
call fcn.140063d40
test eax, eax
jne 0x140063e64
mov rdx, qword [rdi + 0x18]
mov r8d, r12d
mov rcx, qword [rsi + 0x18]
call fcn.140063d40
test eax, eax
jne 0x140063e64
mov r15, qword [rsi + 0x20]
xor ebx, ebx
mov r13, qword [rdi + 0x20]
test r15, r15
jne 0x140063ef8
test r13, r13
jne 0x140063e64
jmp 0x140063f5c
test r13, r13
je 0x140063e64
mov eax, dword [r15]
cmp eax, dword [r13]
jne 0x140063e64
mov ebp, ebx
test eax, eax
jle 0x140063f5c
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 0x140063e64
mov rdx, qword [rdx + r14]
mov r8d, r12d
mov rcx, qword [rcx + r14]
call fcn.140063d40
test eax, eax
jne 0x140063e64
inc ebp
add r14, 0x28
cmp ebp, dword [r15]
jl 0x140063f20
test dword [rsp + 0x60], 0x2000
jne 0x140063dab
cmp byte [rsi], 0x61
je 0x140063dab
movzx eax, word [rdi + 0x30]
cmp word [rsi + 0x30], ax
jne 0x140063e64
mov eax, dword [rsi + 0x2c]
mov ecx, dword [rdi + 0x2c]
cmp eax, ecx
je 0x140063dab
cmp eax, r12d
jne 0x140063e64
mov eax, 2
test ecx, ecx
cmovns ebx, eax
mov eax, ebx
jmp 0x140063dad
xor ebx, ebx
mov eax, 2
cmp rdi, rsi
cmove eax, ebx
add rsp, 0x38
pop r12
pop rdi
pop rsi
pop rbx
ret