Function at 0x14003f080
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x140]
sub rsp, 0x240
mov r14, r9
mov r15, r8
mov rbx, rdx
mov r13, rcx
mov qword [rbp + 0x190], rdx
mov rsi, rdx
lea rdi, [r8 - 1]
mov qword [rbp + 0x188], rdi
mov r12, rdi
sar r12, 1
cmp rdx, r12
jge 0x14003f360
nop dword [rax]
nop dword [rax + rax]
lea r14, [rsi + rsi]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rsi, r14
shl rsi, 8
lea rdi, [r13 + 0x100]
add rdi, rsi
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140004000
nop
movzx eax, word [rdi + 0x20]
mov word [rsp + 0x60], ax
lea rdx, [rdi + 0x28]
lea rcx, [rsp + 0x68]
call fcn.140004000
nop
lea rdx, [rdi + 0x48]
lea rcx, [rbp - 0x78]
call fcn.140004000
nop
lea rdx, [rdi + 0x68]
lea rcx, [rbp - 0x58]
call fcn.140004000
nop
lea rdx, [rdi + 0x88]
lea rcx, [rbp - 0x38]
call fcn.140004000
nop
lea rdx, [rdi + 0xa8]
lea rcx, [rbp - 0x18]
call fcn.140004000
nop
lea rdx, [rdi + 0xc8]
lea rcx, [rbp + 8]
call fcn.140004000
movzx eax, byte [rdi + 0xe8]
mov byte [rbp + 0x28], al
mov rax, qword [rdi + 0xf0]
mov qword [rbp + 0x30], rax
movzx eax, byte [rdi + 0xf8]
mov byte [rbp + 0x38], al
movzx eax, byte [rdi + 0xf9]
mov byte [rbp + 0x39], al
lea rax, [rbp + 0x40]
mov qword [rsp + 0x38], rax
lea rdi, [r13 + 0x200]
add rdi, rsi
mov rdx, rdi
lea rcx, [rbp + 0x40]
call fcn.140004000
nop
movzx eax, word [rdi + 0x20]
mov word [rbp + 0x60], ax
lea rdx, [rdi + 0x28]
lea rcx, [rbp + 0x68]
call fcn.140004000
nop
lea rdx, [rdi + 0x48]
lea rcx, [rbp + 0x88]
call fcn.140004000
nop
lea rdx, [rdi + 0x68]
lea rcx, [rbp + 0xa8]
call fcn.140004000
nop
lea rdx, [rdi + 0x88]
lea rcx, [rbp + 0xc8]
call fcn.140004000
nop
lea rdx, [rdi + 0xa8]
lea rcx, [rbp + 0xe8]
call fcn.140004000
nop
lea rdx, [rdi + 0xc8]
lea rcx, [rbp + 0x108]
call fcn.140004000
movzx eax, byte [rdi + 0xe8]
mov byte [rbp + 0x128], al
mov rcx, qword [rdi + 0xf0]
mov qword [rbp + 0x130], rcx
movzx eax, byte [rdi + 0xf8]
mov byte [rbp + 0x138], al
movzx eax, byte [rdi + 0xf9]
mov byte [rbp + 0x139], al
cmp rcx, qword [rbp + 0x30]
setb dil
lea rcx, [rbp + 0x40]
call fcn.140004a30
lea rcx, [rsp + 0x40]
call fcn.140004a30
movzx esi, dil
xor rsi, 1
inc rsi
add rsi, r14
mov rdi, rsi
shl rdi, 8
add rdi, r13
shl rbx, 8
add rbx, r13
mov rdx, rdi
mov rcx, rbx
call fcn.14001a2d0
movzx eax, word [rdi + 0x20]
mov word [rbx + 0x20], ax
lea rdx, [rdi + 0x28]
lea rcx, [rbx + 0x28]
call fcn.14001a2d0
lea rdx, [rdi + 0x48]
lea rcx, [rbx + 0x48]
call fcn.14001a2d0
lea rdx, [rdi + 0x68]
lea rcx, [rbx + 0x68]
call fcn.14001a2d0
lea rdx, [rdi + 0x88]
lea rcx, [rbx + 0x88]
call fcn.14001a2d0
lea rdx, [rdi + 0xa8]
lea rcx, [rbx + 0xa8]
call fcn.14001a2d0
lea rdx, [rdi + 0xc8]
lea rcx, [rbx + 0xc8]
call fcn.14001a2d0
movzx eax, byte [rdi + 0xe8]
mov byte [rbx + 0xe8], al
mov rax, qword [rdi + 0xf0]
mov qword [rbx + 0xf0], rax
movzx eax, byte [rdi + 0xf8]
mov byte [rbx + 0xf8], al
movzx eax, byte [rdi + 0xf9]
mov byte [rbx + 0xf9], al
mov rbx, rsi
cmp rsi, r12
jl 0x14003f0e0
mov rdi, qword [rbp + 0x188]
mov r14, qword [rbp + 0x198]
cmp rsi, r12
jne 0x14003f389
test r15b, 1
jne 0x14003f389
shl r15, 8
lea rdx, [r13 - 0x100]
add rdx, r15
shl rbx, 8
lea rcx, [rbx + r13]
call fcn.14001a470
mov rbx, rdi
movzx eax, byte [rbp + 0x1a0]
mov byte [rbp + 0x1a0], al
mov r9, r14
mov r8, qword [rbp + 0x190]
mov rdx, rbx
mov rcx, r13
mov rbx, qword [rsp + 0x280]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp 0x14003f3d0
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x120]
sub rsp, 0x220
mov r15, r9
mov r13, r8
mov rbx, rdx
mov r12, rcx
lea r14, [rdx - 1]
sar r14, 1
cmp r8, rdx
jge 0x14003f680
lea rdi, [r9 + 0x28]
lea rsi, [r9 + 0x48]
nop dword [rax]
nop word [rax + rax]
lea rax, [rsp + 0x20]
mov qword [rbp + 0x160], rax
mov rdx, r15
lea rcx, [rsp + 0x20]
call fcn.140004000
nop
movzx eax, word [r15 + 0x20]
mov word [rsp + 0x40], ax
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.140004000
nop
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.140004000
nop
lea rdx, [r15 + 0x68]
lea rcx, [rbp - 0x78]
call fcn.140004000
nop
lea rdx, [r15 + 0x88]
lea rcx, [rbp - 0x58]
call fcn.140004000
nop
lea rdx, [r15 + 0xa8]
lea rcx, [rbp - 0x38]
call fcn.140004000
nop
lea rdx, [r15 + 0xc8]
lea rcx, [rbp - 0x18]
call fcn.140004000
movzx eax, byte [r15 + 0xe8]
mov byte [rbp + 8], al
mov rax, qword [r15 + 0xf0]
mov qword [rbp + 0x10], rax
movzx eax, byte [r15 + 0xf8]
mov byte [rbp + 0x18], al
movzx eax, byte [r15 + 0xf9]
mov byte [rbp + 0x19], al
lea rax, [rbp + 0x20]
mov qword [rbp + 0x168], rax
mov rsi, r14
shl rsi, 8
add rsi, r12
mov rdx, rsi
lea rcx, [rbp + 0x20]
call fcn.140004000
nop
movzx eax, word [rsi + 0x20]
mov word [rbp + 0x40], ax
lea rdx, [rsi + 0x28]
lea rcx, [rbp + 0x48]
call fcn.140004000
nop
lea rdx, [rsi + 0x48]
lea rcx, [rbp + 0x68]
call fcn.140004000
nop
lea rdx, [rsi + 0x68]
lea rcx, [rbp + 0x88]
call fcn.140004000
nop
lea rdx, [rsi + 0x88]
lea rcx, [rbp + 0xa8]
call fcn.140004000
nop
lea rdx, [rsi + 0xa8]
lea rcx, [rbp + 0xc8]
call fcn.140004000
nop
lea rdx, [rsi + 0xc8]
lea rcx, [rbp + 0xe8]
call fcn.140004000
movzx eax, byte [rsi + 0xe8]
mov byte [rbp + 0x108], al
mov rcx, qword [rsi + 0xf0]
mov qword [rbp + 0x110], rcx
movzx eax, byte [rsi + 0xf8]
mov byte [rbp + 0x118], al
movzx eax, byte [rsi + 0xf9]
mov byte [rbp + 0x119], al
cmp rcx, qword [rbp + 0x10]
setb dil
lea rcx, [rbp + 0x20]
call fcn.140004a30
lea rcx, [rsp + 0x20]
call fcn.140004a30
test dil, dil
je 0x14003f680
shl rbx, 8
add rbx, r12
mov rdx, rsi
mov rcx, rbx
call fcn.14001a2d0
movzx eax, word [rsi + 0x20]
mov word [rbx + 0x20], ax
lea rcx, [rbx + 0x28]
lea rdx, [rsi + 0x28]
call fcn.14001a2d0
lea rcx, [rbx + 0x48]
lea rdx, [rsi + 0x48]
call fcn.14001a2d0
lea rcx, [rbx + 0x68]
lea rdx, [rsi + 0x68]
call fcn.14001a2d0
lea rcx, [rbx + 0x88]
lea rdx, [rsi + 0x88]
call fcn.14001a2d0
lea rcx, [rbx + 0xa8]
lea rdx, [rsi + 0xa8]
call fcn.14001a2d0
lea rcx, [rbx + 0xc8]
lea rdx, [rsi + 0xc8]
call fcn.14001a2d0
movzx eax, byte [rsi + 0xe8]
mov byte [rbx + 0xe8], al
mov rax, qword [rsi + 0xf0]
mov qword [rbx + 0xf0], rax
movzx eax, byte [rsi + 0xf8]
mov byte [rbx + 0xf8], al
movzx eax, byte [rsi + 0xf9]
mov byte [rbx + 0xf9], al
mov rbx, r14
dec r14
sar r14, 1
cmp r13, rbx
lea rdi, [r15 + 0x28]
lea rsi, [r15 + 0x48]
jl 0x14003f420
shl rbx, 8
lea rcx, [r12 + rbx]
mov rdx, r15
mov rbx, qword [rsp + 0x270]
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp fcn.14001a470