Function at 0x43b940
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov r8, qword [rcx + 0x48]
mov r10, qword [rcx + 0x50]
movzx r9d, byte [rcx + 9]
movzx ebx, byte [r10 + r9]
mov esi, ebx
shr esi, 3
mov byte [rcx + 8], sil
not ebx
or ebx, 0xffffff08
mov edi, esi
shl edi, 2
mov al, 4
sub al, dil
mov byte [rcx + 0xa], al
cmp ebx, 0xfffffffa
jne 0x43b9c8
mov byte [rcx + 1], 1
test sil, sil
lea rbx, [0x0043c330]
lea rdi, [0x0043bc40]
cmove rdi, rbx
lea rbx, [0x0043c360]
lea rsi, [0x0043bef0]
setne byte [rcx + 2]
cmove rsi, rbx
mov qword [rcx + 0x78], rdi
mov qword [rcx + 0x80], rsi
movzx ebx, word [r8 + 0x2e]
mov word [rcx + 0xe], bx
movzx ebx, word [r8 + 0x30]
jmp 0x43ba00
not ebx
mov word [rcx + 1], 0
lea rdi, [0x0043c3a0]
mov qword [rcx + 0x78], rdi
lea rdi, [0x0043c620]
mov qword [rcx + 0x80], rdi
cmp ebx, 2
jne 0x43bac5
movzx ebx, word [r8 + 0x2a]
mov word [rcx + 0xe], bx
movzx ebx, word [r8 + 0x2c]
mov word [rcx + 0x10], bx
mov rbx, r9
add rbx, r10
mov dl, byte [r8 + 0x25]
mov byte [rcx + 0xb], dl
mov edx, dword [r8 + 0x34]
lea edi, [rdx - 1]
mov word [rcx + 0x1a], di
mov byte [rcx + 0xc], 0
movzx edi, r9w
movzx eax, al
lea edi, [rax + rdi + 8]
mov word [rcx + 0x12], di
lea rdi, [rbx + rax]
add rdi, 8
mov qword [rcx + 0x60], rdi
lea edi, [rdx - 8]
add rdx, r10
mov qword [rcx + 0x58], rdx
add r10, rax
mov qword [rcx + 0x68], r10
movzx eax, word [rbx + 3]
rol ax, 8
mov word [rcx + 0x18], ax
movzx eax, ax
mov edx, 0xaaaaaaab
imul rdx, rdi
shr rdx, 0x22
cmp edx, eax
jae 0x43ba98
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov esi, 0xb
mov ecx, 0xb
mov r9d, 0x10d31
jmp 0x43bb10
mov dword [rcx + 0x14], 0xffffffff
mov byte [rcx], 1
mov rax, qword [r8 + 8]
mov eax, dword [rax + 0x30]
not eax
or rax, 0xffffffffffdfffff
cmp rax, 0xffffffffffffffff
je 0x43bb21
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x43bb30
lea r14, [0x005fb813]
mov qword [rsp + 0x20], r14
lea rdi, [0x005fc003]
lea rbx, [0x005fc2fd]
mov esi, 0xb
mov ecx, 0xb
mov rdx, rdi
mov r8, rbx
mov r9d, 0x10c8d
call fcn.00408970
mov qword [rsp + 0x20], r14
mov ecx, 0xb
mov rdx, rdi
mov r8, rbx
mov r9d, 0x10d23
call fcn.00408970
mov eax, esi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
xor esi, esi
jmp 0x43bb15
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
movzx eax, word [rcx + 0x18]
mov rcx, qword [rcx + 0x48]
cmp byte [rsi + 8], 1
mov r15d, dword [rcx + 0x38]
mov ebx, r15d
sbb ebx, 0
test eax, eax
je 0x43bbc1
movzx ecx, word [rsi + 0x12]
add ebx, 0xfffffffc
lea r14d, [rcx + rax*2]
mov r13, qword [rsi + 0x50]
lea r12, [rcx + r13]
add r12, 1
xor edi, edi
nop word [rax + rax]
movzx ebp, word [r12 + rdi*2 - 1]
shl ebp, 0x10
bswap ebp
cmp ebp, r14d
setb al
cmp ebp, ebx
setg cl
test al, cl
jne 0x43bbc5
xor al, cl
jne 0x43bbc5
mov rdx, r13
add rdx, rbp
mov rcx, rsi
call qword [rsi + 0x78]
movzx eax, ax
add eax, ebp
cmp eax, r15d
jg 0x43bbf1
add rdi, 1
movzx eax, word [rsi + 0x18]
cmp rdi, rax
jb 0x43bb80
xor esi, esi
jmp 0x43bc20
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov esi, 0xb
mov ecx, 0xb
mov r9d, 0x10cfe
jmp 0x43bc1b
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov esi, 0xb
mov ecx, 0xb
mov r9d, 0x10d03
call fcn.00408970
mov eax, esi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret