Function at 0x14007c770
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov eax, 0xffffff53
test rcx, rcx
je 0x14007ca92
test r9, r9
je 0x14007ca92
mov r11d, dword [rsp + 0xc0]
mov r15d, dword [rsp + 0xb0]
mov esi, dword [rsp + 0xa8]
lea r10d, [r15 + rsi]
cmp r10d, r11d
ja 0x14007ca92
cmp dword [rcx + 0x2c], r11d
jne 0x14007ca92
test byte [rcx + 0x32], 1
jne 0x14007ca90
movzx r11d, byte [rsp + 0xa0]
movzx ebx, byte [rcx + 0x30]
cmp bl, 0xff
je 0x14007c804
mov eax, 0xfffffe8e
cmp bl, r11b
jne 0x14007ca92
cmp word [rcx + 0x24], r8w
jne 0x14007ca92
cmp dword [rcx + 0x28], edx
je 0x14007c810
jmp 0x14007ca92
mov byte [rcx + 0x30], r11b
mov word [rcx + 0x24], r8w
mov dword [rcx + 0x28], edx
lea r12, [rcx + 0x18]
mov rdi, qword [rcx + 0x18]
test rdi, rdi
je 0x14007c908
mov eax, dword [rdi + 8]
mov r8d, dword [rdi + 0xc]
add r8d, eax
cmp eax, esi
seta r11b
cmp r10d, r8d
seta dl
or dl, r11b
xor r14d, r14d
cmp dl, 1
jne 0x14007c88f
cmp r8d, esi
jae 0x14007c88f
xor dl, 1
mov r8d, 1
mov r14, rdi
mov rdi, qword [rdi]
test rdi, rdi
je 0x14007c999
mov eax, dword [rdi + 8]
mov r11d, dword [rdi + 0xc]
add r11d, eax
cmp eax, esi
seta bl
cmp r10d, r11d
seta bpl
or bpl, bl
movzx edx, dl
cmove edx, r8d
cmp bpl, 1
jne 0x14007c88a
cmp r11d, esi
jb 0x14007c850
test dl, dl
sete dl
test dl, dl
je 0x14007ca18
test r14, r14
jne 0x14007c95a
mov r14, r12
cmp r10d, eax
jae 0x14007c95a
mov eax, 0xfffffe39
cmp byte [rcx + 0x31], 9
ja 0x14007ca92
mov r14, r9
mov r13, rcx
mov ebx, r15d
lea rcx, [rbx + 0x10]
call fcn.140046490
test rax, rax
je 0x14007ca11
mov qword [rax], 0
mov dword [rax + 8], esi
mov dword [rax + 0xc], r15d
mov rcx, rax
add rcx, 0x10
mov rdx, r14
mov r8, rbx
mov rsi, rax
call fcn.1400d0700
mov rcx, r13
mov qword [r13 + 0x18], rsi
mov qword [rsi], rdi
jmp 0x14007c9ec
mov rbx, r9
mov r14, rcx
mov edi, r15d
lea rcx, [rdi + 0x10]
call fcn.140046490
test rax, rax
je 0x14007c9f6
mov qword [rax], 0
mov dword [rax + 8], esi
mov dword [rax + 0xc], r15d
mov rcx, rax
add rcx, 0x10
mov rdx, rbx
mov r8, rdi
mov rsi, rax
call fcn.1400d0700
mov rcx, r14
mov qword [r14 + 0x18], rsi
mov dword [r14 + 0x20], r15d
inc byte [r14 + 0x31]
jmp 0x14007ca18
mov r8, rdi
mov r8, qword [r8]
test r8, r8
je 0x14007c972
mov eax, dword [r8 + 0xc]
add eax, dword [r8 + 8]
cmp eax, r10d
jbe 0x14007c95d
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r9
mov rbx, rcx
mov rdx, rdi
mov r9d, esi
call fcn.14007cab0
mov rcx, rbx
test rax, rax
cmove rax, rdi
mov qword [r14], rax
jmp 0x14007ca18
test dl, dl
jne 0x14007ca18
mov eax, 0xfffffe39
cmp byte [rcx + 0x31], 9
ja 0x14007ca92
mov rbx, r9
mov r13, rcx
mov edi, r15d
lea rcx, [rdi + 0x10]
call fcn.140046490
test rax, rax
je 0x14007ca08
mov qword [rax], 0
mov dword [rax + 8], esi
mov dword [rax + 0xc], r15d
mov rcx, rax
add rcx, 0x10
mov rdx, rbx
mov r8, rdi
mov rsi, rax
call fcn.1400d0700
mov qword [r14], rsi
mov rcx, r13
add dword [r13 + 0x20], r15d
inc byte [r13 + 0x31]
jmp 0x14007ca18
mov qword [r12], 0
mov eax, 0xfffffed1
jmp 0x14007ca92
mov qword [r14], 0
jmp 0x14007ca15
mov qword [r12], rdi
mov rcx, r13
mov edx, dword [rcx + 0x20]
cmp edx, dword [rcx + 0x2c]
jne 0x14007ca90
cmp byte [rcx + 0x31], 1
jne 0x14007ca90
mov rax, qword [r12]
cmp dword [rax + 8], 0
jne 0x14007ca90
cmp dword [rax + 0xc], edx
jne 0x14007ca90
mov qword [rcx + 8], rax
lea rdx, [rax + 0x10]
mov qword [rcx + 0x10], rdx
or byte [rcx + 0x32], 1
mov qword [rcx + 0x18], 0
mov byte [rcx + 0x31], 0
movzx edx, byte [rcx + 0x30]
mov byte [rax + 4], dl
mov edx, dword [rcx + 0x2c]
mov r8d, edx
shr r8d, 0x10
mov byte [rax + 5], r8b
mov byte [rax + 6], dh
mov byte [rax + 7], dl
mov edx, dword [rcx + 0x28]
mov byte [rax + 8], dh
mov byte [rax + 9], dl
mov word [rax + 0xa], 0
mov byte [rax + 0xc], 0
mov ecx, dword [rcx + 0x2c]
mov edx, ecx
shr edx, 0x10
mov byte [rax + 0xd], dl
mov byte [rax + 0xe], ch
mov byte [rax + 0xf], cl
xor eax, eax
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret