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

Disassembly:
mov r11, rsp
push rdi
push r12
sub rsp, 0x178
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x1b8]
xor edi, edi
mov qword [r11 + 8], rbx
mov rbx, rcx
mov qword [r11 - 0x18], rbp
mov rcx, r8
mov qword [r11 - 0x20], rsi
mov rbp, r9
mov esi, edx
mov qword [r11 - 0x28], r13
lea rdx, [rsp + 0x20]
mov qword [r11 - 0x30], r14
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
call fcn.180003980
mov r13d, dword [rsp + 0x20]
mov r12, rax
lea ecx, [r13 + 0x400]
call fcn.180005210
mov r14, rax
test rax, rax
je 0x180003d08
mov ecx, dword [rbx]
mov dword [rax + 4], ecx
mov ecx, dword [rbx + 4]
mov dword [rax + 8], ecx
lea rcx, [0x18001e620]
mov qword [rsp + 0x150], r15
mov dword [rax + 0xc], 2
mov dword [rax + 0x10], 6
mov dword [rax + 0x14], esi
test r12, r12
jne 0x180003b72
lea rcx, [0x18001e640]
call fcn.1800062d0
or rsi, 0xffffffffffffffff
mov rbx, rax
mov r8, rsi
inc r8
cmp byte [rbx + r8], dil
jne 0x180003b81
lea rcx, [r14 + 0x28]
mov rdx, rbx
call fcn.1800011e0
mov r15d, eax
test rbx, rbx
je 0x180003bba
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008090
lea rcx, [rbx - 8]
call fcn.180005280
lea ebx, [r15 + 3]
mov dword [r14 + 0x1c], r15d
mov r15, qword [rsp + 0x150]
and ebx, 0xfffffffc
add ebx, 0x28
mov dword [r14 + 0x18], 0x28
test r12, r12
je 0x180003bf7
mov ecx, ebx
mov r8, r13
add rcx, r14
mov rdx, r12
call fcn.180015600
mov dword [r14 + 0x20], ebx
mov dword [r14 + 0x24], r13d
jmp 0x180003bfb
mov qword [r14 + 0x20], rdi
lea r11d, [r13 + 3]
xor r8d, r8d
and r11d, 0xfffffffc
lea rcx, [r14 + 4]
add r11d, ebx
lea edx, [r11 - 4]
call fcn.180001e30
mov dword [r14], eax
nop dword [rax]
inc rsi
cmp byte [rsi + rbp], dil
jne 0x180003c20
mov word [rsp + 0x30], di
mov rax, rdi
mov byte [rsp + rax + 0x32], al
inc rax
cmp rax, 0x100
jb 0x180003c31
xor r9b, r9b
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rsp + rdi + 0x32]
lea rcx, [rsp + 0x32]
xor edx, edx
mov rax, rdi
div rsi
movzx eax, byte [rdx + rbp]
add al, r8b
add r9b, al
movzx eax, r9b
add rcx, rax
movzx eax, byte [rcx]
mov byte [rsp + rdi + 0x32], al
inc rdi
mov byte [rcx], r8b
cmp rdi, 0x100
jb 0x180003c50
mov r10d, r11d
test r11d, r11d
je 0x180003cfd
movzx edx, byte [rsp + 0x31]
mov r9, r14
movzx r8d, byte [rsp + 0x30]
inc r8b
lea r9, [r9 + 1]
mov byte [rsp + 0x30], r8b
movzx eax, r8b
lea r8, [rsp + 0x32]
add r8, rax
add dl, byte [r8]
mov byte [rsp + 0x31], dl
movzx ecx, byte [r8]
movzx eax, dl
lea rdx, [rsp + 0x32]
add rdx, rax
movzx eax, byte [rdx]
mov byte [r8], al
mov byte [rdx], cl
movzx edx, byte [rsp + 0x31]
movzx r8d, byte [rsp + 0x30]
movzx ecx, byte [rsp + rdx + 0x32]
add cl, byte [rsp + r8 + 0x32]
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x32]
xor byte [r9 - 1], cl
sub r10, 1
jne 0x180003ca0
mov rax, qword [rsp + 0x28]
mov rdi, r14
mov dword [rax], r11d
mov r14, qword [rsp + 0x158]
mov r13, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x168]
mov rbp, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x190]
test r12, r12
je 0x180003d3d
mov rcx, r12
call fcn.180005280
mov rax, rdi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180006c40
add rsp, 0x178
pop r12
pop rdi
ret