Function at 0x14004ca60
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 0x14004ccd9
test rdx, rdx
je 0x14004ccd9
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 0x14004cae5
and eax, ecx
bt eax, 0xa
jae 0x14004cb88
mov eax, dword [rbx + 8]
cmp dword [rsi + 8], eax
jne 0x14004cb88
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 0x14004cb25
cmp r9b, 0x35
jne 0x14004cb05
mov rcx, qword [rsi + 0x10]
mov rdx, rbx
call fcn.14004ca60
cmp eax, 2
jl 0x14004cb1e
cmp byte [rbx], 0x35
jne 0x14004cb88
mov rdx, qword [rbx + 0x10]
mov r8d, r12d
mov rcx, rsi
call fcn.14004ca60
cmp eax, 2
jge 0x14004cb88
mov eax, 1
jmp 0x14004cac7
lea eax, [r9 + 0x68]
test al, 0xfd
je 0x14004cbcd
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x14004cbc9
mov r8, qword [rbx + 8]
cmp r9b, 0x97
jne 0x14004cb92
movzx r9d, byte [rdx]
lea r10, [0x14010afe0]
movzx eax, byte [r8]
movzx ecx, byte [r9 + r10]
movzx eax, byte [rax + r10]
cmp ecx, eax
jne 0x14004cb88
sub r8, rdx
test r9b, r9b
je 0x14004cbc9
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 0x14004cb68
mov eax, 2
jmp 0x14004cac7
sub r8, rdx
nop word [rax + rax]
movzx ecx, byte [rdx]
movzx eax, byte [rdx + r8]
sub ecx, eax
jne 0x14004cbb3
inc rdx
test eax, eax
jne 0x14004cba0
test ecx, ecx
je 0x14004cbc9
xor edi, edi
cmp r9b, 0x35
setne dil
lea eax, [rdi + 1]
jmp 0x14004cac7
mov edx, dword [rsp + 0x60]
mov eax, dword [rsi + 4]
xor eax, dword [rbx + 4]
test al, 0x10
jne 0x14004cb88
bt edx, 0xe
jb 0x14004cac5
bt edx, 0xb
jb 0x14004cb88
mov rdx, qword [rbx + 0x10]
mov r8d, r12d
mov rcx, qword [rsi + 0x10]
call fcn.14004ca60
test eax, eax
jne 0x14004cb88
mov rdx, qword [rbx + 0x18]
mov r8d, r12d
mov rcx, qword [rsi + 0x18]
call fcn.14004ca60
test eax, eax
jne 0x14004cb88
mov r15, qword [rsi + 0x20]
xor edi, edi
mov r13, qword [rbx + 0x20]
test r15, r15
jne 0x14004cc2d
test r13, r13
jne 0x14004cb88
jmp 0x14004cc8c
test r13, r13
je 0x14004cb88
mov eax, dword [r15]
cmp eax, dword [r13]
jne 0x14004cb88
mov ebp, edi
test eax, eax
jle 0x14004cc8c
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 0x14004cb88
mov rdx, qword [rdx + r14]
mov r8d, r12d
mov rcx, qword [rcx + r14]
call fcn.14004ca60
test eax, eax
jne 0x14004cb88
inc ebp
add r14, 0x28
cmp ebp, dword [r15]
jl 0x14004cc50
test dword [rsp + 0x60], 0x2000
jne 0x14004cac5
cmp byte [rsi], 0x61
je 0x14004cac5
movzx eax, word [rbx + 0x30]
cmp word [rsi + 0x30], ax
jne 0x14004cb88
mov eax, dword [rsi + 0x2c]
mov ecx, dword [rbx + 0x2c]
cmp eax, ecx
je 0x14004cac5
cmp eax, r12d
jne 0x14004cb88
mov eax, 2
test ecx, ecx
cmovns edi, eax
mov eax, edi
jmp 0x14004cac7
xor edi, edi
mov eax, 2
cmp rbx, rsi
cmove eax, edi
add rsp, 0x38
pop r12
pop rdi
pop rsi
pop rbx
ret