Function at 0x180055650
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
push rbx
push rbp
sub rsp, 0x58
xor eax, eax
mov rbx, rcx
movsxd rcx, r9d
mov rbp, rdx
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x88], eax
test r9d, r9d
jle 0x180055995
mov qword [r11 + 8], rsi
xorps xmm2, xmm2
mov qword [r11 + 0x10], rdi
lea rdi, [r8 + 0x20]
mov qword [r11 + 0x18], r12
mov qword [r11 - 0x18], r13
xor r13d, r13d
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov r11d, pe_nt_image_headers64
movaps xmmword [rsp + 0x30], xmm6
movss xmm6, dword [0x180096320]
nop
movss xmm4, dword [rdi - 0x20]
comiss xmm4, xmm2
jbe 0x1800556fc
movsxd r10, dword [rbp + 0x1c]
mov r9, qword [rbp]
movsx ecx, r11w
movzx eax, byte [r10 + r9 + 7]
movzx edx, byte [r10 + r9 + 6]
imul edx, ecx
movsx ecx, r11w
add dx, ax
movzx eax, byte [r10 + r9 + 5]
movsx r8d, dx
movzx edx, byte [r10 + r9 + 4]
imul edx, ecx
add ax, dx
cwde
sub eax, r8d
movd xmm0, eax
jmp 0x18005571a
movsxd rdx, dword [rbp + 0x14]
xorps xmm4, xmm6
mov rax, qword [rbp]
movzx ecx, byte [rdx + rax + 0x12]
movzx eax, byte [rdx + rax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
movzx eax, byte [rbx + 0x18]
xor esi, esi
cvtdq2ps xmm0, xmm0
mov byte [rdi], al
movzx eax, byte [rbx + 0x1c]
mov byte [rdi + 1], al
divss xmm4, xmm0
cmp dword [rdi - 0x10], esi
jle 0x180055958
mov r14, qword [rsp + 0x90]
mov rax, r13
shl rax, 4
add r14, 6
xor r15d, r15d
add r14, rax
mov eax, dword [rdi - 0x1c]
test eax, eax
je 0x18005575e
lea edx, [rax + rsi]
jmp 0x180055766
mov rax, qword [rdi - 0x18]
mov edx, dword [r15 + rax]
mov rcx, rbp
call fcn.1800522a0
mov r12d, dword [rbx + 0x18]
mov edx, eax
mov eax, dword [rbx + 0x1c]
xorps xmm3, xmm3
xorps xmm5, xmm5
mov rcx, rbp
cvtsi2ss xmm5, r12
cvtsi2ss xmm3, rax
mulss xmm5, xmm4
mulss xmm3, xmm4
call fcn.180052630
test eax, eax
jns 0x1800557aa
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1800558fd
mov r8, qword [rbp]
mov r10d, pe_nt_image_headers64
movsxd r11, eax
movsx ecx, r10w
movzx eax, byte [r11 + r8 + 3]
movzx edx, byte [r11 + r8 + 2]
imul edx, ecx
movsx ecx, r10w
add dx, ax
movzx eax, byte [r11 + r8 + 5]
movsx r9d, dx
movzx edx, byte [r11 + r8 + 4]
imul edx, ecx
movsx ecx, r10w
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
add ax, dx
movzx edx, byte [r11 + r8 + 6]
cwde
mov dword [rsp + 0x20], eax
imul edx, ecx
mov ecx, pe_nt_image_headers64
movzx eax, byte [r11 + r8 + 7]
mulss xmm0, xmm5
movsx ecx, cx
add dx, ax
movzx eax, byte [r11 + r8 + 9]
addss xmm0, xmm2
movsx r10d, dx
movzx edx, byte [r11 + r8 + 8]
imul edx, ecx
xor ecx, ecx
add dx, ax
comiss xmm2, xmm0
movsx r8d, dx
cvttss2si eax, xmm0
seta cl
movd xmm1, r8d
sub eax, ecx
xor ecx, ecx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm3
cvttss2si r9d, xmm0
movaps xmm0, xmm2
subss xmm0, xmm1
movd xmm1, r10d
cvtdq2ps xmm1, xmm1
comiss xmm2, xmm0
cvttss2si eax, xmm0
seta cl
mulss xmm1, xmm5
sub eax, ecx
addss xmm1, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm2
cvttss2si r8d, xmm0
cvttss2si eax, xmm1
jb 0x1800558a6
movd xmm0, eax
lea edx, [rax + 1]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
cmovbe edx, eax
jmp 0x1800558ba
movd xmm0, eax
mov edx, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm1, xmm2
jbe 0x1800558ba
inc edx
movd xmm0, dword [rsp + 0x20]
movaps xmm1, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
subss xmm1, xmm0
comiss xmm1, xmm2
cvttss2si eax, xmm1
jb 0x1800558e9
movd xmm0, eax
lea ecx, [rax + 1]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
cmovbe ecx, eax
jmp 0x1800558fd
movd xmm0, eax
mov ecx, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm1, xmm2
jbe 0x1800558fd
inc ecx
movzx eax, word [rbx + 0x14]
inc r13
sub ax, r9w
inc esi
dec ax
add r15, 4
add ax, r12w
add ax, dx
mov word [r14 - 2], ax
movzx eax, word [rbx + 0x1c]
sub ax, r8w
dec ax
add ax, word [rbx + 0x14]
add ax, cx
mov word [r14], ax
add r14, 0x10
mov eax, dword [rsp + 0x88]
inc eax
mov dword [rsp + 0x88], eax
cmp esi, dword [rdi - 0x10]
jl 0x180055752
mov r11d, pe_nt_image_headers64
jmp 0x18005595f
mov eax, dword [rsp + 0x88]
add rdi, 0x28
sub qword [rsp + 0x28], 1
jne 0x1800556b0
movaps xmm6, xmmword [rsp + 0x30]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
add rsp, 0x58
pop rbp
pop rbx
ret