Function at 0x40425a
Capabilities:
Encrypt data using rc4 prga

Disassembly:
call fcn.00406ed5
push rbp
push rdi
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x60], rcx
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetDC]
call rax
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 0x30]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_CreateCompatibleDC]
call rax
mov qword [rbp + 0x28], rax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp + 0x24], eax
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp + 0x20], eax
lea rdx, [rbp - 0x30]
mov eax, 0
mov ecx, 5
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
mov qword [rbp], 0
mov eax, 0x2c
mov dword [rbp - 0x30], eax
mov word [rbp - 0x22], 0x20
mov word [rbp - 0x24], 1
mov eax, dword [rbp + 0x24]
mov dword [rbp - 0x2c], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x28], eax
mov rcx, rbp
lea rdx, [rbp - 0x30]
mov rax, qword [rbp + 0x30]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_CreateDIBSection]
call rax
mov qword [rbp + 0x18], rax
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x28]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_SelectObject]
call rax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetDC]
call rax
mov qword [rbp + 0x30], rax
mov ecx, dword [rbp + 0x24]
mov rax, qword [rbp + 0x28]
mov dword [rsp + 0x40], 0x330008
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rdx, qword [rbp + 0x30]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp + 0x20]
mov dword [rsp + 0x20], edx
mov r9d, ecx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_BitBlt]
call rax
mov dword [rbp + 0x3c], 0
jmp 0x40447a
mov eax, dword [rbp + 0x3c]
cdq
idiv dword [rbp + 0x24]
mov dword [rbp + 0x14], edx
mov eax, dword [rbp + 0x3c]
cdq
idiv dword [rbp + 0x24]
mov dword [rbp + 0x10], eax
mov eax, dword [rbp + 0x3c]
add eax, eax
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0x14]
xor eax, dword [rbp + 0x10]
or eax, dword [rbp + 0xc]
mov dword [rbp + 8], eax
mov rax, qword [rbp]
mov edx, dword [rbp + 0x3c]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov rdx, qword [rbp]
mov ecx, dword [rbp + 0x3c]
movsxd rcx, ecx
shl rcx, 2
add rdx, rcx
movzx edx, byte [rdx]
mov ecx, dword [rbp + 8]
add edx, ecx
mov byte [rax], dl
mov rax, qword [rbp]
mov edx, dword [rbp + 0x3c]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov rdx, qword [rbp]
mov ecx, dword [rbp + 0x3c]
movsxd rcx, ecx
shl rcx, 2
add rdx, rcx
movzx edx, byte [rdx + 1]
mov ecx, dword [rbp + 8]
add edx, ecx
mov byte [rax + 1], dl
mov ecx, 0xef
call sym.Hue_int_
mov edx, eax
mov eax, dword [rbp + 0xc]
or edx, eax
mov r8d, edx
mov rax, qword [rbp]
mov edx, dword [rbp + 0x3c]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov rdx, qword [rbp]
mov ecx, dword [rbp + 0x3c]
movsxd rcx, ecx
shl rcx, 2
add rdx, rcx
movzx edx, byte [rdx + 2]
movzx edx, dl
add edx, r8d
mov byte [rax + 2], dl
add dword [rbp + 0x3c], 1
mov eax, dword [rbp + 0x24]
imul eax, dword [rbp + 0x20]
cmp eax, dword [rbp + 0x3c]
jg 0x4043b1
mov ecx, dword [rbp + 0x24]
mov rax, qword [rbp + 0x30]
mov dword [rsp + 0x40], 0x330008
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rdx, qword [rbp + 0x28]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp + 0x20]
mov dword [rsp + 0x20], edx
mov r9d, ecx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_BitBlt]
call rax
mov rax, qword [rbp + 0x30]
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_ReleaseDC]
call rax
mov rax, qword [rbp + 0x30]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_DeleteDC]
call rax
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x40434a