Function at 0x402d80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov ebp, dword [0x00414c24]
lea r11d, [rbp + 0x1ff]
shr r11d, 9
add r11d, 2
cmp edx, r11d
jl 0x402ff5
lea rdx, str._r_nSYSLINUX_4.06
jmp 0x402dbb
add rdx, 4
cmp dword [rdx], 0x3eb202fe
jne 0x402db7
movzx r10d, word [rdx + 0x16]
lea rax, str._r_nSYSLINUX_4.06
mov rbx, qword [rcx]
lea r12, [rcx + 8]
add r10, rax
lea rax, [0x004132f0]
movzx esi, word [r10 + 0xe]
mov dword [rax + rsi], ebx
movzx esi, word [r10 + 0x10]
shr rbx, 0x20
test r9d, r9d
mov dword [rax + rsi], ebx
je 0x402e04
movzx ecx, word [r10 + 0x12]
mov word [rax + rcx], 0x18cd
lea eax, [r11 - 2]
shr ebp, 2
test r8d, r8d
mov word [rdx + 0xa], 2
mov dword [rdx + 0xc], ebp
mov word [rdx + 8], ax
je 0x402e23
mov word [rdx + 0x14], 1
movzx r8d, word [r10 + 0xa]
movzx ecx, word [r10 + 0xc]
lea rax, str._r_nSYSLINUX_4.06
add r8, rax
movzx eax, cx
cmp r11d, eax
jle 0x402e55
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Insufficient_extent_space__build_error__n
lea rcx, [rax + 0x60]
jmp 0x402f48
imul rcx, rcx, 0xa
xor eax, eax
mov rdi, r8
lea r13d, [r11 - 3]
xor r9d, r9d
xor ebx, ebx
mov esi, 0x8000
rep stosb byte [rdi], al
mov rax, r12
mov cx, 0x8000
jmp 0x402eda
mov r14, qword [rax]
add rax, 8
test r9d, r9d
je 0x402ebf
mov edi, r9d
add rdi, rbx
cmp r14, rdi
jne 0x402eb3
lea edi, [r9 + 1]
mov r15d, edi
shl r15d, 9
cmp r15d, 0xffff
ja 0x402eb3
lea r15d, [r15 + rcx - 1]
xor r15d, esi
and r15d, 0xffff0000
je 0x402ec8
mov qword [r8], rbx
mov word [r8 + 8], r9w
add r8, 0xa
mov ecx, esi
mov edi, 1
jmp 0x402ecb
mov r14, rbx
add esi, 0x200
dec r13d
mov r9d, edi
mov rbx, r14
test r13d, r13d
jne 0x402e77
test r9d, r9d
je 0x402eec
mov qword [r8], rbx
mov word [r8 + 8], r9w
movzx eax, word [r10]
dec r11d
lea r8, str._r_nSYSLINUX_4.06
movsxd r11, r11d
mov rcx, qword [r12 + r11*8 - 0x10]
add rax, r8
cmp qword [rsp + 0x90], 0
mov qword [rax], rcx
mov rcx, qword [r12 + r11*8 - 8]
mov qword [rax + 8], rcx
je 0x402f6f
mov rdi, qword [rsp + 0x90]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [r10 + 4]
not ecx
cmp eax, ecx
jge 0x402f57
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Subdirectory_path_too_long..._aborting_install__n
lea rcx, [rax + 0x60]
call fcn.00409de0
mov ecx, 1
call sub.msvcrt.dll_exit
movzx eax, word [r10 + 2]
movsxd rcx, ecx
mov rsi, qword [rsp + 0x90]
add rax, r8
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
cmp qword [rsp + 0x98], 0
je 0x402fc7
mov rdi, qword [rsp + 0x98]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [r10 + 8]
not ecx
cmp eax, ecx
jge 0x402fa8
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Subvol_name_too_long..._aborting_install__n
lea rcx, [rax + 0x60]
jmp 0x402f48
movzx r8d, word [r10 + 6]
lea rax, str._r_nSYSLINUX_4.06
movsxd rcx, ecx
mov rsi, qword [rsp + 0x98]
add rax, r8
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov dword [rdx + 0x10], 0
xor eax, eax
mov ecx, 0x3eb202fe
jmp 0x402fe5
lea r8, str._r_nSYSLINUX_4.06
sub ecx, dword [r8 + rax*4]
inc rax
cmp ebp, eax
jg 0x402fd7
mov dword [rdx + 0x10], ecx
lea eax, [rbp*4]
jmp 0x402ff8
or eax, 0xffffffff
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret