Function at 0x180002310
Capabilities:
Delete file
Encode data using xor
Encrypt data using rc4 ksa
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x1b50]
mov eax, 0x1c50
call fcn.180032d70
sub rsp, rax
mov rax, qword [0x180093030]
xor rax, rsp
mov qword [rbp + 0x1b40], rax
mov rsi, rcx
lea rcx, [rbp + 0xa0]
mov r8d, 0x1aa0
call fcn.18002d8c0
lea rcx, [rsp + 0x50]
xor ebx, ebx
xor edx, edx
mov r8d, 0x102
mov dword [rsp + 0x40], ebx
call fcn.180030f50
mov rax, qword [0x180094c40]
xor r11d, r11d
mov ecx, reloc.WLDAP32.dll_Ordinal_32
mov qword [rbp + 0x52], r11
mov qword [rbp + 0x52], rax
mov rax, qword [0x180094c48]
mov qword [rbp + 0x5a], r11
mov qword [rbp + 0x62], r11
mov qword [rbp + 0x5a], rax
mov rax, qword [0x180094c50]
mov qword [rbp + 0x6a], r11
mov qword [rbp + 0x62], rax
mov rax, qword [0x180094c58]
mov qword [rbp + 0x72], r11
mov qword [rbp + 0x7a], r11
mov qword [rbp + 0x82], r11
mov qword [rbp + 0x8a], r11
mov qword [rbp + 0x6a], rax
mov dword [rbp + 0x94], ecx
test ecx, ecx
je 0x18000262f
mov eax, ebx
lea rcx, [rsp + 0x50]
nop word [rax + rax]
mov byte [rcx], al
inc eax
inc rcx
cmp eax, 0x100
jl 0x1800023e0
mov word [rbp + 0x50], bx
mov r9d, ebx
xor r10b, r10b
lea r8, [rsp + 0x50]
nop dword [rax]
mov eax, r9d
inc r9d
inc r8
cdq
idiv dword [rbp + 0x94]
movsxd rax, edx
movzx ecx, byte [rbp + rax + 0x52]
add cl, byte [r8 - 1]
add r10b, cl
movzx ecx, byte [r8 - 1]
movzx edx, r10b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [r8 - 1], al
mov byte [rsp + rdx + 0x50], cl
cmp r9d, 0x100
jl 0x180002400
movzx edx, byte [rbp + 0x51]
movzx r8d, byte [rbp + 0x50]
mov r10, rbx
nop word [rax + rax]
inc r8b
mov byte [rbp + 0x50], r8b
movzx r8d, r8b
add dl, byte [rsp + r8 + 0x50]
mov byte [rbp + 0x51], dl
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, dl
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx r9d, byte [rbp + 0x51]
movzx ecx, byte [rsp + r9 + 0x50]
movzx edx, byte [rbp + 0x50]
add cl, byte [rsp + rdx + 0x50]
inc dl
movzx eax, cl
movzx r8d, dl
movzx ecx, byte [rsp + rax + 0x50]
mov byte [rbp + 0x50], dl
add r9b, byte [rsp + r8 + 0x50]
xor byte [rbp + r10 + 0xa0], cl
mov byte [rbp + 0x51], r9b
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, r9b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx r9d, byte [rbp + 0x51]
movzx ecx, byte [rsp + r9 + 0x50]
movzx edx, byte [rbp + 0x50]
add cl, byte [rsp + rdx + 0x50]
inc dl
movzx eax, cl
movzx r8d, dl
movzx ecx, byte [rsp + rax + 0x50]
mov byte [rbp + 0x50], dl
add r9b, byte [rsp + r8 + 0x50]
xor byte [rbp + r10 + 0xa1], cl
mov byte [rbp + 0x51], r9b
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, r9b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx r9d, byte [rbp + 0x51]
movzx ecx, byte [rsp + r9 + 0x50]
movzx edx, byte [rbp + 0x50]
add cl, byte [rsp + rdx + 0x50]
inc dl
movzx eax, cl
movzx r8d, dl
movzx ecx, byte [rsp + rax + 0x50]
mov byte [rbp + 0x50], dl
add r9b, byte [rsp + r8 + 0x50]
xor byte [rbp + r10 + 0xa2], cl
mov byte [rbp + 0x51], r9b
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, r9b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx r9d, byte [rbp + 0x51]
movzx ecx, byte [rsp + r9 + 0x50]
movzx edx, byte [rbp + 0x50]
add cl, byte [rsp + rdx + 0x50]
inc dl
movzx r8d, dl
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x50]
mov byte [rbp + 0x50], dl
xor byte [rbp + r10 + 0xa3], cl
add r9b, byte [rsp + r8 + 0x50]
mov byte [rbp + 0x51], r9b
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, r9b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx r9d, byte [rbp + 0x51]
movzx ecx, byte [rsp + r9 + 0x50]
movzx edx, byte [rbp + 0x50]
add cl, byte [rsp + rdx + 0x50]
inc dl
add r10, 6
movzx eax, cl
movzx r8d, dl
movzx ecx, byte [rsp + rax + 0x50]
mov byte [rbp + 0x50], dl
add r9b, byte [rsp + r8 + 0x50]
xor byte [rbp + r10 + 0x9e], cl
mov byte [rbp + 0x51], r9b
movzx ecx, byte [rsp + r8 + 0x50]
movzx edx, r9b
movzx eax, byte [rsp + rdx + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + rdx + 0x50], cl
movzx edx, byte [rbp + 0x51]
movzx r8d, byte [rbp + 0x50]
movzx ecx, byte [rsp + rdx + 0x50]
add cl, byte [rsp + r8 + 0x50]
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x50]
xor byte [rbp + r10 + 0x9f], cl
cmp r10, 0x1aa0
jl 0x180002450
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov edx, 0x40000000
lea r8d, [r9 + 1]
mov rcx, rsi
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180002690
lea r9, [rsp + 0x40]
lea rdx, [rbp + 0xa0]
mov r8d, 0x1aa0
mov rcx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180002690
cmp dword [rsp + 0x40], 0x1aa0
je 0x180002698
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp rdi, 0xffffffffffffffff
je 0x1800026a7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x1800026b4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, ebx
mov rcx, qword [rbp + 0x1b40]
xor rcx, rsp
call fcn.18002cf50
mov rbx, qword [rsp + 0x1c80]
add rsp, 0x1c50
pop rdi
pop rsi
pop rbp
ret