Function at 0x14004cb40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rsi
push rdi
push r12
sub rsp, 0x38
mov r12d, r8d
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x14004cdb9
test rdx, rdx
je 0x14004cdb9
mov eax, dword [rdx + 4]
mov edx, eax
mov ecx, dword [rcx + 4]
or edx, ecx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x60], edx
bt edx, 0xa
jae 0x14004cbc5
and eax, ecx
bt eax, 0xa
jae 0x14004cc68
mov eax, dword [rbx + 8]
cmp dword [rsi + 8], eax
jne 0x14004cc68
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 r9d, byte [rsi]
cmp r9b, byte [rbx]
je 0x14004cc05
cmp r9b, 0x35
jne 0x14004cbe5
mov rcx, qword [rsi + 0x10]
mov rdx, rbx
call fcn.14004cb40
cmp eax, 2
jl 0x14004cbfe
cmp byte [rbx], 0x35
jne 0x14004cc68
mov rdx, qword [rbx + 0x10]
mov r8d, r12d
mov rcx, rsi
call fcn.14004cb40
cmp eax, 2
jge 0x14004cc68
mov eax, 1
jmp 0x14004cba7
lea eax, [r9 + 0x68]
test al, 0xfd
je 0x14004ccad
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x14004cca9
mov r8, qword [rbx + 8]
cmp r9b, 0x97
jne 0x14004cc72
movzx r9d, byte [rdx]
lea r10, [0x14010c000]
movzx eax, byte [r8]
movzx ecx, byte [r9 + r10]
movzx eax, byte [rax + r10]
cmp ecx, eax
jne 0x14004cc68
sub r8, rdx
test r9b, r9b
je 0x14004cca9
movzx eax, byte [r8 + rdx + 1]
inc rdx
movzx ecx, byte [rax + r10]
movzx r9d, byte [rdx]
movzx eax, byte [r9 + r10]
cmp eax, ecx
je 0x14004cc48
mov eax, 2
jmp 0x14004cba7
sub r8, rdx
nop word [rax + rax]
movzx ecx, byte [rdx]
movzx eax, byte [rdx + r8]
sub ecx, eax
jne 0x14004cc93
inc rdx
test eax, eax
jne 0x14004cc80
test ecx, ecx
je 0x14004cca9
xor edi, edi
cmp r9b, 0x35
setne dil
lea eax, [rdi + 1]
jmp 0x14004cba7
mov edx, dword [rsp + 0x60]
mov eax, dword [rsi + 4]
xor eax, dword [rbx + 4]
test al, 0x10
jne 0x14004cc68
bt edx, 0xe
jb 0x14004cba5
bt edx, 0xb
jb 0x14004cc68
mov rdx, qword [rbx + 0x10]
mov r8d, r12d
mov rcx, qword [rsi + 0x10]
call fcn.14004cb40
test eax, eax
jne 0x14004cc68
mov rdx, qword [rbx + 0x18]
mov r8d, r12d
mov rcx, qword [rsi + 0x18]
call fcn.14004cb40
test eax, eax
jne 0x14004cc68
mov r15, qword [rsi + 0x20]
xor edi, edi
mov r13, qword [rbx + 0x20]
test r15, r15
jne 0x14004cd0d
test r13, r13
jne 0x14004cc68
jmp 0x14004cd6c
test r13, r13
je 0x14004cc68
mov eax, dword [r15]
cmp eax, dword [r13]
jne 0x14004cc68
mov ebp, edi
test eax, eax
jle 0x14004cd6c
mov r14, rdi
nop dword [rax]
mov rdx, qword [r13 + 8]
mov rcx, qword [r15 + 8]
movzx eax, byte [rdx + r14 + 0x18]
cmp byte [rcx + r14 + 0x18], al
jne 0x14004cc68
mov rdx, qword [rdx + r14]
mov r8d, r12d
mov rcx, qword [rcx + r14]
call fcn.14004cb40
test eax, eax
jne 0x14004cc68
inc ebp
add r14, 0x28
cmp ebp, dword [r15]
jl 0x14004cd30
test dword [rsp + 0x60], 0x2000
jne 0x14004cba5
cmp byte [rsi], 0x61
je 0x14004cba5
movzx eax, word [rbx + 0x30]
cmp word [rsi + 0x30], ax
jne 0x14004cc68
mov eax, dword [rsi + 0x2c]
mov ecx, dword [rbx + 0x2c]
cmp eax, ecx
je 0x14004cba5
cmp eax, r12d
jne 0x14004cc68
mov eax, 2
test ecx, ecx
cmovns edi, eax
mov eax, edi
jmp 0x14004cba7
xor edi, edi
mov eax, 2
cmp rbx, rsi
cmove eax, edi
add rsp, 0x38
pop r12
pop rdi
pop rsi
pop rbx
ret