Function at 0x180001360
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x180045c90]
mov r14, rcx
mov r11d, dword [0x180045be8]
mov rdi, r8
mov rcx, qword [rsp + 0xc8]
dec r11d
mov r13, qword [rsp + 0xc0]
mov qword [rsp + 0x20], rax
mov eax, dword [0x180045c3c]
add eax, 0x13
mov dword [0x180045be8], r11d
movsxd r10, eax
movsxd rax, r11d
mov dword [rsp + 0xa0], 0x916e00
movzx r12d, word [rcx + r10*2]
or r12, rax
mov eax, 0xffff
add word [r14], ax
movzx eax, word [r14]
mov rsi, qword [0x180045c70]
add rax, 4
mov r15d, dword [0x180045bf0]
movzx r10d, word [0x180045c04]
mov dword [rsp + 8], r15d
lea rax, [rax + rax*2]
mov r9, qword [r8 + rax*8]
movabs rax, 0xd658556732071def
mul qword [r8 + 0xd5b0]
add r9, 0x1a67
mov rax, rdx
mov qword [rsp + 0x10], r9
shr rax, 0xb
mov qword [rsp + 0x28], rax
mov rax, qword [r8 + 0xf048]
mov r8, qword [0x180045be0]
mov qword [rsp], rax
inc r8
mov qword [0x180045be0], r8
movzx eax, word [r14]
movzx ecx, word [rcx + rax*2]
movabs rax, 0xae9dfdb2aac7c5
mul rsi
sub ecx, 0x7c6
mov eax, 0x1775
movsxd rbx, ecx
shr rdx, 4
movzx ecx, dx
imul ecx, eax
mov rax, qword [0x180045c58]
sub si, cx
mov rcx, qword [rsp]
movzx r11d, si
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x18], r11
movsxd rbp, dword [rax + r11*4]
mov eax, dword [0x180045c3c]
dec eax
mov dword [0x180045c3c], eax
cdqe
cmp rbp, qword [rcx + rax*8]
jb 0x18000164a
mov r8, qword [rsp + 0x10]
lea r11, [r10 + rbp*2]
mov rdx, qword [rsp + 0xb0]
lea r9, [rbx + rbp*4]
movzx eax, si
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0xc8]
sub rax, r10
lea rcx, [rdi + rcx*8]
sub r8, rbx
mov qword [rsp + 0x40], rcx
mov rbx, qword [rsp]
lea rdi, [rdi + rbp*8]
mov qword [rsp + 0xc0], r8
lea r10, [rax + 0xa]
mov qword [rsp + 0x38], r10
mov rax, qword [0x180045c60]
xor qword [rdi], rax
movzx eax, word [r12 + 0x2b40]
sub ax, word [rcx]
or word [r11], ax
mov eax, 0x827
sub rax, qword [0x180045c28]
mov rcx, qword [rsp + 0xb8]
mov qword [0x180045c28], rax
movzx eax, word [r14 + 2]
add rcx, rax
movzx eax, byte [r8 + r9]
add al, byte [rdx + 0x3b88]
or al, 0x25
and byte [rcx + 8], al
movzx ecx, word [r10 + r11]
cmp ecx, dword [r9]
je 0x1800015ff
movzx r8d, si
mov rsi, qword [rsp + 0x10]
lea eax, [r15 + r8*2]
mov r15, qword [rsp + 0x18]
lea r10d, [r8 + 0xb]
movsxd rbx, eax
add r10, qword [rsp + 0x28]
nop dword [rax]
mov eax, 0x34
inc ecx
sub al, byte [r10]
mov byte [r10], al
movzx r8d, byte [0x180045bf7]
mov eax, r8d
add r8b, 0xff
and eax, dword [rsi + r15*4]
cdq
mov byte [0x180045bf7], r8b
idiv dword [0x180045c50]
xor edx, edx
mov dword [0x180045c50], eax
mov eax, 0x1434
movzx r8d, word [r13 + r15*2]
div r8d
mov qword [0x180045c90], rbx
add edx, 0x110
mov dword [0x180045c4c], edx
cmp ecx, dword [r9]
jne 0x180001580
mov rsi, qword [rsp + 0x30]
mov r15d, dword [rsp + 8]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xc0]
mov rbx, qword [rsp]
mov r10, qword [rsp + 0x38]
mov eax, dword [0x180045c3c]
inc ebp
dec eax
movsxd rcx, ebp
mov dword [0x180045c3c], eax
add rdi, 8
cdqe
add r11, 2
add r9, 4
cmp rcx, qword [rbx + rax*8]
mov rcx, qword [rsp + 0x40]
jae 0x180001500
mov r8, qword [0x180045be0]
mov rdi, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x18]
mov r9, qword [rsp + 0x10]
jmp 0x18000164d
mov rbx, rcx
add dword [r9 + r8*4], 0xd03
movsxd rax, dword [0x180045c50]
mov r10, qword [rsp + 0x20]
mov rbp, qword [rsp + 0xc8]
movsxd rcx, dword [r12 + rax*4]
sub rcx, qword [r11*8 + 0x1207]
mov qword [r11*8 + 0x1207], rcx
movzx ecx, word [r14 + 2]
lea rax, [rcx + rcx*2]
lea rdx, [r10 + rax*8]
mov rax, qword [0x180045c20]
mov rcx, qword [rax + rcx*8]
sub rcx, qword [rdx + 0x38]
mov rax, qword [rsp + 0xb8]
mov qword [rdx + 0x38], rcx
movsxd r9, dword [0x180045bec]
mov r8, qword [0x180045c90]
movzx ecx, byte [rax + 0x10d0]
mov eax, r9d
cdq
idiv ecx
movzx ecx, si
mov eax, edx
add ecx, 7
cdq
idiv dword [0x180045c68]
xor edx, edx
mov dword [0x180045c68], eax
movsxd rax, dword [0x180045c54]
and rax, r8
inc r8
div r9
mov qword [0x180045c90], r8
mov dword [0x180045bec], eax
mov eax, 0x1c48
cmp word [r13 + rcx*2], ax
jne 0x18000171c
movsxd rax, dword [0x180045c78]
cmp rax, qword [r10 + r11*8]
jb 0x18000171c
movzx eax, word [rbp + r11*2]
dec r15d
cmp eax, r15d
jl 0x18000177a
movzx eax, word [r14 + 2]
xor edx, edx
lea r8, [rdi + rax*8]
mov rax, qword [0x180045bf8]
mov rdi, qword [rsp + 0xa8]
movzx ecx, word [r13 + rax*2]
mov eax, 0x17e6
div ecx
xor edx, edx
movsxd rcx, eax
add qword [r8 + 0xe8], rcx
movsxd rax, dword [0x180045c00]
mov rcx, qword [0x180045c20]
movsxd rax, dword [rdi + rax*4]
add rax, qword [rcx + 0x6488]
div qword [r11*8 + 0x1207]
mov qword [r11*8 + 0x1207], rdx
jmp 0x180001782
mov rdi, qword [rsp + 0xa8]
movzx edx, byte [0x180045bf7]
inc si
movzx r8d, si
movzx ecx, word [r13 + rdx*2]
mov r9d, dword [r12 + r8*4]
cmp r9d, ecx
jl 0x1800018bb
mov r10d, r9d
movabs r11, 0x76c747562f1802c9
sub r10d, r15d
nop dword [rax]
nop word [rax + rax]
inc dl
movsxd rax, r9d
mov byte [0x180045bf7], dl
inc si
movzx ecx, word [rax*8 + 0x1207]
or cx, word [r12 + 0x2394]
xor cx, word [0x180045c50]
or cx, r9w
inc r9d
mov word [rbp + r8*2], cx
dec dword [0x180045c50]
movzx eax, word [r14 + 2]
lea r8, [rax*2]
mov eax, r10d
movzx ecx, word [r8 + rbp + 0x3a]
cdq
idiv ecx
xor edx, edx
inc r10d
mov word [r8 + rbp + 0x3a], ax
mov eax, dword [rbx + 0x5538]
movzx ecx, word [r14 + 2]
movzx r8d, si
mov dword [r12 + rcx*4], eax
mov eax, dword [rsp + 0xa0]
inc eax
mov dword [rsp + 0xa0], eax
cdqe
mov qword [0x180045c90], rax
movsxd rax, dword [rdi + r8*4]
div qword [0x180045c30]
mov rcx, rax
mov rax, r11
xor rcx, 0x1bf1
mul rcx
mov rax, qword [rsp + 0x20]
shr rdx, 0xb
add qword [rax + r8*8], rdx
movsxd rax, dword [0x180045c3c]
mov rdx, qword [0x180045be0]
movsxd rcx, dword [0x180045c68]
dec rdx
and rcx, rax
mov qword [0x180045be0], rdx
and rcx, qword [0x180045c28]
mov rax, qword [0x180045c10]
mov qword [rax + rdx*8], rcx
movzx edx, byte [0x180045bf7]
movzx ecx, word [r13 + rdx*2]
cmp r9d, ecx
jge 0x1800017c0
mov rax, qword [0x180045c20]
inc dl
mov byte [0x180045bf7], dl
movzx ecx, word [r14 + 2]
mov eax, dword [rax + rcx*8]
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret